rustV 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 ansi_term-1164fd4433ce14a8attyӌ-7ebf4c7664ea8481libcٕ{-39fcc1944b95b078bitflagsӳU-69acfc798c96d00cstrsim̤욘5-f824bb4277ee233dtextwrap⠮-6e40a0f62398dd02 unicode_widthஒK-ad20b503d31ef93fvec_map넪q-2ab22218ef725bf2쏇Ϩu4)MvZt׳dbstd &삕Wj ansi_term`~9NPA۠;foatty̛| S$ Hvec_map") V3-< \(p'RBQ{_8;9'%jf ]?}cA֦S#PJEVONz;4dj#]-KI<_uoh  â.q za?8v’z )z!OCʁ0 oCJ: Pe[N ]BK&~L, Ks IOhR?8*w9'jMT3f#X7=PP>|`)^macrosp<#0;Uvalue_tޛ;&*(싏value_t_or_exit)[th,> zvalues_tJ"5i4*values_t_or_exit$*_R&)_clap_count_exprsjuz8;dvarg_enum;ɵ8W crate_versioni]K1Չ crate_authorsrY]ɩ|)Fcrate_descriptionQ[2T nJ-y crate_name*d0UT㴩app_from_crate<&` ʼ)iclap_app3+R@8 impl_settings GC/ˌzuwlnerr@"_g$ V5d debug_macros8m)s/+]*debuglnw1HB?(YE*sdebuglnL;883> find_by_namek;cDL+find_opt_by_long~2793A,xfind_flag_by_longyJ)|'PB _find_by_long*_߭HIp%find_opt_by_shorts_*Ilfind_flag_by_short0aTb5lm_find_by_shortp-XƞFE?E find_subcmdJ0;P=B8:shorts"us+^Mlongs̖ڙB,F1 _shorts_longsFwB˟Xl arg_namessxٖ N4gsc_names8:'{`:*~G_names#;|&ZgHqappmu]&#K?helpQ-*4w`۪@*=4~ X3@R1)VvKGB@<|)gYYQ@tQFl6i@vn_ @`/ |%@cs}@,!&SD,g@] QdM>).@R..R+E Ϩ@ lJ)}5(%IN@ c1wpD޴zҿ@ \ Py} w@ X]V>@ BR@ Ðt t Z@_y%;@0.lk@? PU@0ETLz@gbc'cV{d x @۳9Z w|f'bԼ >5g(9f'cö"=`x|;fTқLGxb5@ ArgWithOrder%y"αRj'b[M|u?5"_j'c"4'lTjas_baseG' x= j@is=?{ltnn'bvhAbwn'ct;@ :0wnTI a0$P~lS%nas_baseaS t'Į*@ as_arg_trait,%~_@-s'a7}b,44`s'b6d%ZAvJc\*sT-ZrX@9> b}w'bĊ`ݙGPYw'c:2\xviwdisp_ordnm9qoƎw+@colorjeSڰ갴@Help QÙEt*|'ab c{C|writerJBf|next_line_helpE]vO#U`XVD|hide_pvkDFzW .A&|term_wO!T[7 |colorT"%W0|cizerE~ RhXCm@0|longestYX{35nL~ |force_next_lineY51JEt'cEIvF|use_longt*5)hJ@V$$H#Qh78'anڳ*pnew_Dt]t#u4dF7 XEeldNU>write_app_helpLz̓Dw4S܏write_parser_helpl^fN% write_parser_help_to_stderr Yxik[_write_parser_help\d9A write_helpG]!G4kpGQ@'\t${Tg<%'a F]Lګ(?write_args_unsortedG!'b-OlY:H0'c㼻ᤆE'dNV4 <I̜E;x&3'%ʚ6v\e縢 write_argsļ!kq&c'bhLBM~Ws*'cuj1Vi"X'dx%HZe/+I@e$`E@$ܟO'O ԋrᚻ write_argAsh_k{A,'b!+Z,"'c ƦڙrQD/shortȻp'bF "'bNP:ϳ?џo write_versionN19V > write_bin_name|]+܊;I6 write_name> C{٤xGVwrite_default_helpHٱ:'x} write_thingzߔ2?h(ъ@V@CopyUntilResultI!n˨DelimiterFoundQ1n,3ۜp7aEoucb*0sD)dA `DelimiterNotFound;)yKGXm2T K"Bb B0Yb}}uFUq ReaderEmptyQK;Gq˫iĎJ̖ ReadError{Tp kdyrd V,sWG0gh&T jq>  WriteError gD@J73+Je]}χtד0VmJ샛dS@ copy_untilK Q:ER:6Py+YWn ^XTp}9@copy_and_captureפCF'aWcRN+BWx^ٞHA$! l6?pomr@\nc߬CHz'ao^3nwrite_templated_help; f92\){̎<7 vІ.ZM~l =eERUĀ5@%҉y`]-Cd9F >'3aG?- sd|`Q j߁ٔuġ$/{f(MiJ sz]Nf|Od,*4г֟f;uʐ*l%~QNo^"e'/nD(1$) 1n 5 ",~ En|Zo(h~cW s,_W%qcm!"."jO/HT){£#4XLv5mq$S< Y DCN%?h%ĶVAI&&sPf7r0@E'孎chY7V( eQ}잮),k/Gp[4QG*zYHGZv#Uk+jڈZ4Q,㝅~y$ -yՓ=_0[$oni .MtK`e'an&dh-I'bve7jasJ with_nameK#Ժ֑BSpQ  help_shortX2wưe`džnJEqjf version_short?`^r CNTH5xZ1+9gen_completions_to-gllv5"Tl1`Y1.implied_settingsm vY#add_argz,CًTm add_arg_refgw[52C5 add_groupy4v,za7 bQ#gykb3ӗyTDRTSI"*add_subcommand[ޔIpropagate_settingsD|)^MX*&z>derive_display_orderrt8'rگ!ӡX6$C34~i v,wҫ 9bݳ*Gvrequired@(ץ~ǦZhas_args)cZmh /1qhas_optsjQ\zG)o߯bo has_flagsR!Ahas_positionalsin,Gdav ahas_subcommands ֆzhas_visible_optsVRQ4!fs\Kс}y:}O3 has_visible_flagsuGk;3+hj#4,has_visible_positionals^Q ZKεSQwMhas_visible_subcommands'34˴3FUH`EJϏx~Ţ!5Ch;;Bis_setBqGZsetD':/K J#g$unset(gC6Dj verify_positionalsFobC<s[Ce0d$/"8 lpK"%r a-Ǔ|2,Qpropagate_globalsqWe~T?Lpossible_subcommand9]D?Y-fM#BwG+r*starts 6[`W-)$@d:S(1Qf ߶lj*?/[203parse_help_subcommand%_9zu}I<ն]T||T2W@ !A5@jrs15ݕ'&\-m@iS880& &4i] l8h3 e kևAטPٷ! is_new_arg'@k9ߋt`Š/nBCymq{̑sBb*yu%?\get_matches_with qܕ: .2bI+ 9!}FATEex{b,n<ہx9a(.[ hmi6MhEhӼr7}UUu\"EX/Qa4remove_overridesT|S]Lgpropagate_help_versionc0)]M|߬Vbuild_bin_names.JLj7vrparse_subcommandz;*\LlXdIE0^34\CTp{@T׬?;1 I=k5EY}T1{,9;d cVMgroups_for_argV args_in_groupH]IK?%0Rm;SY;ʁk[\3V Jo|Xwpx;/OC=r4XZаCqPqUarg_names_in_group!o,;K^%OX \k!.&ұ 40䡙N&QG|create_help_and_version 'Pfvcheck_for_help_and_version_strEPfL4Ycheck_for_help_and_version_char6:vwi ljz use_long_helpߙ~1Й1[^|2F*6\u W  ;d!p )%"xRቍ+궉 {Z~>4 Hu 8y2gr_help<8 mASa_versionD݆%2parse_long_arg6%SϞcRfRtIuITNjΫ):EX9M"d>O82@²`9r parse_opt_$FO ڧĥ̖/ItMadd_val_to_argeD qAWg^^yadd_single_val_to_arg̈́!,W A5 !Kv=0g parse_flagb|eAcP"?`P'SCEBE wwdid_you_mean_errorg$ACn=q:}KKyO;61R!,6 print_versionRN$DMWv)m O write_version bP.WTa^B!o4hgAEg+5d4 print_helpZ&">5 write_helpA!1*DYEWQ-yZ6hkwrite_long_helpw2qĴ&WtQ! write_help_err&O]}87-JVWGƈ;ױ-8 add_defaults 1T;Ũadd_val|6ZžE@;add_env!~]7PA*add_valɅ\˴X`,flagsϜ_j+uE#optsT\N'dڕ& positionals8Kp vi subcommandsϽŀ oɺcolorjp(-T)lM_ find_any_argV&SuGМ[Tu is_bin_nameq=J=[ ݥݯsE\:his_alias0+\#AI*Rʪ.!/iGfind_subcommand=ΝV{)1UO contains_long E /U4pM9Gcontains_short<54wzD:(1*Kjbr:,"?settingsH$+`\??ǰiO ynewɏeut izeroed6Rv )iC.U6χ( 6$mHErr9YʾRYb$Kfrom_strK(FXLc`v?usageP𝲁% _IEMʻ%g3ZB ~8Nuqp2D 5*=~+rk>N'7ǚu:dLaVmu`J( V (*ZH_CDNsMhxL/voFx)zk J\E;prsm++ K8C:'hcreate_usage_with_title3\ˣ$`create_error_usage:&o>d\~'a8bXwI1;'bפƝ% Y@ /V',BK#.ʲ}KxlKbcreate_usage_no_titlevz̻Ѩyؚcreate_help_usage@8):x,ol IP q.ZYSvˊ7yoڈrXWt6NQtT,[#^n~GtE.WL!< U<V_-gZsu1lg"lC!u%%6$ʂ a  /OҰVcreate_smart_usagez^op3 Ol7j#f);*BYʋi7j#@2u-}{E癛 get_args_tag/ι;)b7I$^UƋAoP&H_䘙`SM> AͻVҟ 埸*je)}!wllSeZ0?R H?|4>kZ&ՄH\~`4#)miN92nֿq`Z1opڧhytHf ;%Z1Gg ie tݍ9bY& 7LJXkP@ tDhВD졃 }2gQ^oW }d8UwqADb$o+1kneeds_flags_tagX\fdRI>=iLl=%get_required_usage_from[FpFh'}'a ]}#_+K'b{&qs{Vk( get_requiresOOn Ffנ9f^"k^/+H,~EaC?F~FxC5 Pg| /@YjEzpо)t%J]}=A(CM۸ݧZ;-3Tna=cжoXOj:^(v@֓t@ndAYQ :B]ī$ }*05R#@FFPr  O E! Mㆧf_p[L  kVlP‚[9 l^#FRR e`Mˎ:N}ʍԊ#MNJ3obs?t|@*ハ%s"^>Nqóe2#}h7}jYcFg,NO%o 0 M.eiL]8zsBC? validatorpu%#ڇQbEU|tolSRoCQݸy$Q "" eS :/4$\x4.>J-58.7tK3IB,#lWp;Iw!عM'xCq˅թ{ ޔ=F' u!3>W]*PA!3Hm tDDe%OWj` ֹ!eygc &^sYnœz<04 T$oS!KW^ sD-,#Zq" ZvBYh*)UB)F> ۊt 4˿S*~>ZL|%f\Iy-d=kVN5z( Validator|M} VJH؏}%g+#CUdl'au5+r93.]'bOӊ\ѐ 9'zrWAby9E0}:Fm>S<~GdazKrN'a *)p:\6ܷ'bLKdkr]LZ?'zF[CvrL- new =;JZ"<~tdvalidater˔61w2`rۿxrRvalidate_arg_values'71! s;A8PJXr_A&uG"S#7< build_err-> [Rh > e)݉W[i-~$'F Xgމ>fχ+&KU3Y+B11?Z?3 wE4ױ?D10+validate_blacklist3Ti;IuExIJ(+6'[VM[4Ю4Zvalidate_matched_argsĢU~B XokUZOXP6 7y t9/V ]ޭ(nFvalidate_arg_num_occurs}n[YDAt"h`|݋+fqvalidate_arg_num_vals-.AkN:bYvQvalidate_arg_requiresΛ`0Aoϣ-u|w"(IrDvj:U=:J v?[&_ hLI_h%+rX,validate_required|DYT Ls􇠋LIWJmLrWLZ7 2ҕj@X$validate_arg_conflictsBދ H.2Oɵr,yT;\PR@1?c&՛74f?1pXD\w%m#ݔx+y_ottzeQ is_missing_required_ok A\A$&?{_ FHUԔ?)k8p?J}춯*usܤX(?jsdmlR?o 8[6AN]??|6԰EV}۽?OOvE)@?u͚2(?B?ݨ,J"x? p 'Rtnv? q3B) 'Yd#? j!R? RqM霖]? Ac/#A ?9 )j+~?m͟??Cj| BI?ODL7Ace= W?z&PyNBd7?x5S7hȟʏ|Q?O8T ާ?' P'"I+FE?;;QY=y>'?9@V!?.4~%?;gv?-_VpgqN#.'-?})UvMW&jPW?mF'P)>?o߃T-}7POĭ?App@ه*|Lˇб'aHKXJ\Kj6? 郡4]lc'ak={>Θʎ'b|)QD4m1S!new I$PaSʅrn#؜6Sget_name2lYWeG_zM get_bin_nameQ!p[H$Y][宺MNGWkGFu with_defaults]\k69<SU@Rej/(VI2authorn=EA͹vSm76Uɥ7Ħ-bin_nameA-u8XS^+P̍Labout}G܀^_s Swpe% long_about,: pDvzSz=(kT-QnameKKy:):WŸS$ŝYX~yI after_help8SH% SIt2dx before_helphY8{rB?Sv/+}version5Tu\ltSr1yP long_version KC7Zf1SN/8[>4xusagew@ .S ;Stm=,8?helpCӢ"8; Sy ڷջ[  help_shortJmTS,vbSr)yxѠj1U version_shortHv.2WjbwɴS3*2[I%ɲ help_messagejQŌ}%S+ASLJh?version_messagewyWa[x(.S*Yw#L_.hQ:template3+6ä޳St tPsettingNAcB1շeKl[settingsV䜯}X88global_settingZaT9H!uglobal_settingsPga%_ unset_settingVm`5XFjxunset_settingssm7ݪ.fset_term_widthZ`=,max_term_widthNEvPMYMgGargNJY lf(;As*kB0/#_*argsj) display_order2!GHvm8J print_helpy$6Hpprint_long_helpA  HO write_helpdiAZ(‚sWZQr/w:ށwrite_long_helpLi V ;Wv<8B癤@ write_versionMA`2+,}W @W J0}S"56}write_long_version~Dڈ1R)W.4qW Sgen_completionszF}<T@v@-ZMQS^'oN*zZ0gen_completions_togJ v㍫WǑ ]vnpSWCoG4H get_matches8+ FUget_matches_safeB4u;/Nget_matches_fromTRERI -f!4\SW/T՗$]U&ev)=-get_matches_from_safeqEQЍ@ʇIM̼F4& e&TT| D hget_matches_from_safe_borrow;G$gtI\e365utb;HTXM~XAU# @5gz*z-)8? FϹ@M6mp&f'a,fy05'" 'b~]Y +x`$clonepPtVd1S?Rl^'nTQ4Py^*a'er ;BD7Ai namesoqbi$2M overrides?H6requires U\lJ blackliste?%O(̬required_unlessx+z|s val_namesوw՗9bö7is_set]9$ZNcval_terminator!%R)^ϒFsetF?p;㌓ has_switchЄ G>-max_valsH^d]"V-num_valsУƶN  possible_vals]7+p'ys^ validatorYd'݁_ validator_os[FOfUKmin_valskWMmu>{y6shortf4璉/long-k9L8 val_delimvoV=&btN+ takes_value|]j UcHfhelpξZj^C long_helph|Zp'? default_val7?1?Cdefault_vals_ifs';|O env.XxVL''s8ջTӇ5longest_filterT!WAQbaliasesOM6pxoG!)/q=Xn?pfT ^T?'npD. 0'eԈh8`?F)fmt7 T؆GuargsurWxWTs{7cW ",y;ـ VvJVa4Dg(R|"6 RF%v*+k63x0GNm +EI2=L̬&0<#bfn?4M͐3©NxY  Vܓ ΎA ` + Nh= &TuH@F zD HCOj أfUdsLr>ie8/ͣ=a2@)GistFY)<*g 9QVv(ײRTzfdm. -16[5N^q^xUBE; YV2Z8jOtV3macros.ڗB.R9any_argsY=qtsoa:l~%9y_e"kced4ktOd67;CzF4B_3r[2`8Eа<.2ViAL\4Z5\&z,"znI xdV BFKAnyArg.az{@]k,'n;(2 'eK +'6=name;2bP)"i', overridesʚءJ`W aliases?xFx­^(requires˵w[ ;r] blacklist"W1ޘXrequired_unlessL]1/++is_setrꤏDsetjϒ|۴*ʻN has_switchT+MƥZfmax_vals8 r=min_valsow4?եnum_valsf\C>a~ possible_vals͠@Q*?ၬ] validatorX3.YI]dW validator_osG5i1K]cshort˥ܬ?~ }](long '[XŎ val_delim!D%R/ƫ!J takes_valueBЪ0h Yt/xP val_namesT?yE_ helpy+f:n?Q long_helpr=D;M default_vald8ȪQkdefault_vals_ifsF}05|HLLenv8*;#'s{MHRUۥlongest_filterﱳխI~Oe.val_terminatorM^ Z DispOrderEp'X@U&vdisp_ordFӁr>U1̃/b'n*Lj(H)GO'ebAS ms'ze"?1%WT T[}TMNname7nv!# overridesm?IHWWxNA\aliases~` Q2urequires:5޻ 8 blacklistip-9hrequired_unlesse!Kv!is_setc\ ¾Hu($set~]_j f[ has_switchGS/max_valsQa9"6w*Xmin_vals,x閹%"Hfnum_valsld8F ?/MWlongest_filterlB~Uw艚$val_terminatoru9ᇶL/,arg)}O76l-kOV/{IɇblDm3hv FQS{}:r h4`;~@\>={ҙVM|ZM^t /VVALIBKreb2]ʹ!q졄>'iQ \42XS N,MW36TwER FV\' O eN uՆP/F8 :.FJ2;~Bc9P&J='a v` ڲH'b :2CG with_nameRHRw/+ from_usageig b!jVn.Ishort-!VefFDSos3H2~a/֭eO2long GJu:~.ΘDfs!\aliasL$*Ѿ eS9Z=JUaE\aliases/P< /-j5JDr,FQʜ visible_aliasՃkvrRS'O@kW=visible_aliases/Ppmmp 6~(help~1c<(BL& long_help}S]2y/lasta t17orequired!\3TOQrequire_equals{ⷣٮ+X$F_gcallow_hyphen_valuesD&E'gJ7 {irequired_unlesskZQkʧrequired_unless_all@Ty2]mzIjq3ݙgrequired_unless_oneo8-v gOjQ֎conflicts_with ȚC֍Oconflicts_with_allc y]FLNö]QHݳoverrides_withAE @j~p:overrides_with_allɆ'!|ODwg(_=X+requiresx˷wߣg requires_if6NE٫ requires_ifs& 'ZZz7׃R required_if6NKgrҿ8 q required_ifswdF} )I requires_allv{ '{B7 takes_value"T;hide_possible_valuesr(1yc֜}phide_default_value;;E\DbCVGindexhVDltЍqmultiple3#HӬ Ovalue_terminatora"`܏?W*global>cϖ$*5; empty_valuesǔԙ+J1VK(DhiddenY_,0jpossible_valuespF5/hw%ш$ -7k dj+possible_value2t>4[case_insensitive)LjXCx!groupphnss@yegroupsl%@i*u.ёnumber_of_valueslT򠞓xoR.A validator˜1q}&AZF;!QB."&5% validator_os%d.觺;t7bFR_< max_values{kyٰ- min_values/1dɹTE use_delimiterhWH손·Grequire_delimitern&w v/$cڥvalue_delimiter\m%SYlJO value_names9eof)M J value_nameif79=f default_valueZB{RmEEp?default_value_osP#jjwdefault_value_ifsĠ_.4/_7default_value_ifs_osfP^DDenvsԺ=~frenv_osETi[ ~hVEhide_env_values2O:'${next_line_helpP+nZ(>R display_order]5R73]rawV!Y*,b]EIhidden_short_help@p|T\;sdOhidden_long_helpU4wn~OlZTis_setоT5J]ZKsetg}iA|Ǡunsetss~:4n|bsetbNHͧjz57unsetb09,Ҹ8V?y0,{q{₏'a{0GD7Z'bD}pQr=fJ'zwtS' ?m Dfrom| 't.\M:=6Dt41h'nR"ߩu75'e#|tqlb͗eq}~kM]#=I arg_builderȻʜPot7ߪ^F\ufՓPpW`X4V(;>Ux)}e/"qh_FhhD>Z{J ]&Uذ?[baseNPʳʬ?Aַ?ӴϬ0)3X[䶇m*rc09bVes(B7[IBd:VYݗ'n 1xD݁i'e*" k?` snewHFsYw1 8Qsetw"y;z+\unsetfg,8+\:is_set5IpHP(%pNG5V!'nA/W&6d9'e~ ϦW'z3 1v$PǶpfrom kJ ӽDFw3fIDI'n8pQo$'e,cvQKeq oTo6taVflagbqd#rwo3+ynXjoPCo_,Nd K7@[B|pE0b,`N8C#EǠSʕA$i/08&Ot* g[N)h~ Q])ɹn.Ę qUIM<8hz Q=W,^טc :uӾ¶Ƙqj 6*$CQ?|OI [ikCY !H1lQwsŠ#!M ̊z`a(QsB̼Ps[3PJ:M6BcTݓ]ϥX\coׁBi޲ 'nF(6%;+n>'e(h>f>t RUnewT 4M̃)l0vI%|PS'a*.*Ͼ( XP'bx.5;dTaxfromm(aȡP&0H: z1PG'n{z^31@j'e圛\@v)tdc[;fmtX_N)e=dr{M(WBabH6s^ \#[Wa ]縀 x>*6ޏ @b{(6y֭)zvT\qC X>Al~c*WǚD>8+RU#Xb]?[jSZ (q+~KX%8 (b+j){>t*k1HvMlGJ'n:II(2;Ea>'eo[ :newl[HZwP]ս^g s^'n9cfMZr'e-1p5\:X'zw4)U+?#9P; fromxq5*@wN/}tP}R9sɦ'nNovt {K'eB'XK?pАfromYÿĭutQK>*\;[LĈ 'nAuT 'euY N fmtC4[{㞗6]Eg|6Sz9d 'n;zT_ 'enކ$ gL namelYr,$ew  overrides<2߷RZVBd1>C c`S؟l޴a requiresAbJMN5 L?(2.  blacklist@ N short7F/F7'nԚ long3{$\T:W  val_delim<2 f+Ch  takes_value+\ľ7x#N helpjlYy**R  long_helpq~r( J7;  default_val_+S`nNmg&,}U default_vals_ifs Nվ@˹E '0C/x7z\ envӷLHjM 'sk#Fv6~ o6viÕ&l longest_filterݓIȦg;dB aliases+_3 5nɈ\ >6QSp@ëX::Ԁ;I 'nnݭxI>R> 'eogTM*/qlm disp_ord~7#XNZnE[ՠF 'nmr7mߑ 'eOkeWG eqyAv}<(7 positionalbHTΥA6"0- ݴCnbe% Hp n4,/j-b ~ _]Y ƃ Ҽŏh R !(:T cP]ڕMZ Z "6{>T  "$" ?)((n  c)azf q3  Ҡ>g9Ȉa  iWHU?<  kLރ  fqe$Yd'  K? u{0,/  } }g:wF 0x^\n$F MT,;E/ KO'* @C]{ l dֹF/72 BHh4*V CHS&Tᄮf  s@Rm&8E 'n@OV ~ 'e"_KqZP newv/  from_arg_refq58@ U+1 from_argXc`y  multiple_stryEklju 9]gteMEM^ name_no_brackets"k&ڬ>A(G ( BBG,;5Q a/+e+&6 'nSQ &"yA)b 'e4-ǒ*?`@ fmt8h'w`N,& xp]C. 'nk*y*1&1˶ 'eo+*6^*v3ž namevϙ W#Ϧ  overridesZ~f N$\  CFy]@.:e requirese!"; f)dA>q j"r  blacklist7CԔ< eM? fhoOu( required_unless zChn(JK `̍ʹl&ծt  val_names3Dn%XH is_setP-[JwpOR7 setO%B+ j  has_switch3PB[A9 max_vals,Vԩz>4 val_terminator<"TeK|f+V num_vals X5%V),  possible_vals|"\i*\M h5DTOnG  validatorK uT`q Y@`  validator_osGE lI[ min_valsj0|/k;T shortlHLdQ}_%6k3 long ;Oh|hA4  val_delim5>;72>Bj"N  takes_valueqZrS,W help.}x̺0 W6h   long_help!5Dfp8: default_vals_ifs%?߾/O > 's"VY\ %]Uܷ3. longest_filtersG wSy~_%& aliasesoVA'M0J~ v+ɶ:J=L 'no .l=WI$ 'eA nY$v+$ | disp_ordy\RLW t&sD>:gnT 'n3hMJwn->AW 'e|["}g eqc4*[תUA$switchedQK;#I+6 EZvxI0D (1 y;а 'e9 B5$ L default@R$exg O[b,F/'0To 'n1O1?gJi 'e`šz*Wեڂ) 'zp,@Gf_J from=#.̀(É zAߨ_-O@ޕ 'e;:7gv clone& B3 kvaluedn>L^ =+n6I`_'5g]C tۥf^X n1%|C.?_ ԝy *cA 'nEvZ=x7 'ey\[ 3mJ defaultV;lMupr2 ?|RZf1d; 'n.UMc_+0[ 'e}:7sY tce& 'a?;+5I=f new,!{[1k8d* process_arg_overridesy#ht[ 'bjQ潷}b handle_self_overridesjpZ*`B(dz| 'b;ve.w`A  is_present~ñI/H-ֳX propagate_globalsqpڤ,n fill_in_global_valuesWx0LY;& get_mutrОCY:2- Pa getX걜:Ԭ removeHvaL8v   remove_allQ@eLjDhe9d insertEXMpy containsU\_[s is_empty?x. +p7G usage f{x4N`}W  arg_namesUz@$ entry}x/WM)#^  subcommandeUc>\۽#B subcommand_namesgd8tcD L iterU*w< inc_occurrence_of_ "~ ҃v2} inc_occurrences_ofRu#;  !b4\: 4OU^2O]厣-  ~T3jЀu-m 'a}wV6{oՌ  with_nameHLqdl63 argK6='Rh' argsQ|/ؚM@sˣC multipleyިB  required>^ԂDayKC%  requiresCUy xK̿{CH  requires_allg2Zg\:B conflicts_with$Kƈ5A) conflicts_with_allFf5x0S .E0z"{t 'a7#%'K fmtDK>]$ эʛ+%Z 'at!kF2 x 'zŹ֏ZJ. from7WH\3g@d =_\L}%цmO 'a=|p jI cloneш=G)5 matched_argD}wu4  ms'@'T d{eй]dx) default\0茫kɺbT H (хu OaJ$# defaultrC¨[QvD>%ҁ .֛\qE#(В` ErrXUBr9իKdz from_str$~2o 6 subcommanddp:):GsZP (DHCk q-Jj9: 'a,=%g5  with_name >[ɺuy subcommand_detailshΘX!!"چ option_details_for_pathsU' އ9 vals_forAPaFcuL1ltn bOn Uw all_options_for_path g *GFV*>E elvishJ+TY`#O i)P-*XnE'?% ě$l=i 4:-  ElvishGen 7a*iRf 'azK=$T4f 'b UPLh^'*O pRdžE {pWhا@?ȕ 'a!(v˛K 'bI<*P<{@@ 'aoʏ6GNaD/ 'b:~译:;d new,/]{  generate_to6NW.`Mqu W| JF1u6Ơ  escape_stringCc/ 4j|ZVS  generate_toaek>A}Ʌ}=  W>\|\= I4  escape_stringe^8?^Ǭ}G  get_tooltip/3/1fxXԖ" TLw%WT2P, generate_innerG q68S 'aUu *UTJ]5 'bqH<:V.  'pTɧuֆ{&( shellDT)I  *_ |xu#Ӱc.y E uv3Qxi 1=SI"5 2#)Z2 variants#Sxx9aaՒ3* al 0 E FUFГыP=, Err3 (PD{8A from_strF(W8s. $aE fmtЮzNDK:X) zsh{{0-F$Hɼ ŖR?]*  WAT%yb=& subcommand_detailse"%-UҜ subcommands_of @ {o1| add_sc\X[, )i+| TA~F get_subcommands_ofAG3+q  parser_ofvM|<} 'a '8 'b밫Ÿ6@T<|  get_args_of8F+I.  escape_helpPdn+i5켶fp]H  escape_valueڔqLQ.  write_opts_ofwr ~nC,v write_flags_oflpKj@ write_positionals_ofoIO> gU4"Wo( d&=Auz 7.h]Zƃv ZK3A̸^Υ #H/7ch 'ҁypuMCQ p^Wr S=v6CN; ComplGenqq&VNo 'aiHRv3! 'b$݅1c[s p׆)_xYYW‘ 1yч*q 'ame=zM3V 'b[hҲmęr new4,] %zb generatemX"q1@ɷ6 W~>_7 all_subcommand_names;3A[!|B]m V}iIB\lՊa x((it\AcM` all_subcommandsB+@| o! ʩ  subcommands_of.Oh get_all_subcommand_pathsC=]! Z sKS"errorslOD2XwU 8 XqZisS 0h|D;  q[T'q }~ JV4  4s0 ٍD)o!< :Ni6;_4q QHƵ6+wc ѯf~le=NX  B{$)  )P]O!+g>!3  $ZÏ,z8  eXkj/l  (Aj̟e . xK |ϼou} Result8mu"Ӟ L Tܼ +eΓC& [WvD-  use_stderrͣa*\P exitx̏r}\]f% write_toYYgkñx+F/ W.^O.Q'%[ argument_conflict HKY Os}ATr U˯K?mĶMf  empty_valueLY)a|P U`d}г&e  invalid_valuet(tp]+| B!k0bh G٭Z^aCvO U晾8811D} invalid_subcommand9LOQ?N SH3h DOѴ=CVA Nev[6w  U.?>lo(-d}H unrecognized_subcommand_o=,; S5{ܐ˶[ Nت̔VZk0R  missing_required_argumentrP]8N)k RXv*IXi VHz.28F?2P U Tp+V_|Z+ too_few_values3lh'Jm#B9K UҸ ZgQ*& m value_validation^dJtd2_6 value_validation_autot "?KQ=Z wrong_number_of_valuesJ)/%<' T= S]K1+QpHxAPƀx US>v#Md unexpected_multiple_usageE%5[ W Uf7w- 'VC unknown_argumentXh 8v 򞔶 Ax14 RǏ U7J `IZm:L io_error-b5f] argument_not_found_autoyܺw4}y A>z$,9u>ī with_description5ȊFCf 8I( s  description=ϚܻK1 }ittVs  fmt{mwݭZ L.vBVp3/ fromMD}WSB cF *D[\8 fromN|icfmt=M"c ;M  XPF +k+ %Tk/+lY> TdVI "rFb]`  k =8ΒdQgd &q .dHwz ΊB\%@bv is_a_ttyً1~6P0w~  is_term_dumbe{1)ɔp T  ColorizerOption0Gy"At*  use_stderroW]K!zo when{-ݓ+?W  ColorizergȱIç"ǯ when ĒlP ܚ colorЈ 퍵(ѯDV촑R  [yHD֌vb;n new2EsTB  goodV6Ώ}DyZy{ Tzz m warning iZ y1Vȳ=W+ osstringextXFɱؐ8VIz`l S,i3Db OsStrExt24bk!ߊՋ@ starts_withZaz )? split_at_byte%FEJpr*split_ate4zMrtrim_left_matches30}  contains_bytebwUv](t split&KLT@F0XfA` starts_withS=~r{S= contains_byteP3ag? split_at_byte`j@۰?9B9)trim_left_matchesNEWpsplit_atsBwWsplit<3%("ai6 d^'a|r&GItem*݋Ș)TOnextq>y7Yd?<strextRM :7L3I_StrExtgX//][r_is_char_boundary dAe^{3R8UL'}e_is_char_boundary7! ~a. suggestionsnq&H-pHovm[5u- = NmSrBPo0 bb"#i\  ἆs&longSv@C2†Eshortd$"S6multiple ŭhelppDZbHname_endm,5"qtoken27G̬qlong_end0t help_start:FH5default]PM:;>? ParseResultpe관M''aӅ^>B$FlagDj0FFC,iäV䫙o))OptC\q-}ƚ/qqI6in¡ɶ å0soXtY<&]PosšJ .zs{ܽNoƻF 0ӪpϥR'?.MaybeHyphenValue~1MAc[, E_e MaybeNegNumjŻ &Ǜ!#һ@NotFoundL V4e͏XYA 2 ValuesDone7ny$BST0D9q&h͸Vx8Rk`q/'a8%*{dcloneĝc"b@$Y늖?_FnM'a r~P9C3#p7[I7ܶJ'a**.94)E 67Z^- 'a {=6{eq}lSLneU~=B`ўm*˚9zsH_'a aP>e叅+'(fmt7Pܕm6VnParseri pj4D'a?4́W""'b#WQM=ZSmetasvO{settingsy/QeZjL g_settings;OX4_2Oc^flagsVam\m G optsKy산/Oy positionalsc86xd subcommands̘c焼egroupse 8[;!5) global_args&(emg-'requireds:{ {GM<r_ifsL$`6+ " overridesV)l@ām help_shortAq2V version_shortS7GmUΌcacheJu8Ł0795Z0 help_messageŁٿFD=version_message!.V$N _NM<cur_idx.?89 tZa${0 Tb '='aУMJ|*&ISR'bOnx2eidefaultŒ#z.ahF!?'aוp&ϴ$Pa 'bqb7/1sclone]&]Ѹr-l1sM0=3 f{ 1fϋ)'VGmFc.522wXY4&)kxjZ<t.ҡdy闳Myf ٖ /|bBtKi %*4.[}{,+&H|<'zt as_trait_obja֧ߍYZơ 'ahh9i0tǏ'bS[I7L_t)ZnT`Q%_:Pr0z{W) \p8aE4(#>(rHSZ as_trait_objg4}~[5y'aPqY08?|X'b2nxy[a#'Laz-)gTx !9  (g:AZZ_j 84G5 #T[(+lנ_ޥ/0\SB]͏+1ZTB E84lnHo#)*1+ϳ,}!9*YǧJU(٪*O^cNiB~Kfh|HCkEu.keȒk^*:UmrKNy8 c;8Vm!~gC #m5.EphZ ;EO']wj㖃aCMv<''P=b+{݁Ϧ!̼{(Њj;4iPƧ=-Ȗ1>$*{^iw  p ϝXrdNso杺 *s(,h/%NZs#ƻ^iQ[||7/s2E:j7-]BdkA2=Ltx35"U 8:/^!mXdL3O3A-\#t> q[l1;* wU 7 Pa\t; 9:O,'ңS B.W[aCIXJiԅvߛ"f2wn۸(Y cva}Qf#6x'kG mal*rMxBU" r8̐(VA&)t2C4+4ƶG O6iIeւN;Gq:N+ V,qNd\H| Z#؟ )Z/ÜCHkoGD\-lFlags7kT*iŀS?LbitsTV@0ZvfJQ(tgR}hash>*w5`&n Q__HLY"(b {ɱ5qYͽQ e#"cmpf l>{Kwr?@T2FDfώ~ partial_cmp:7Ep{lt}<402rWle%! ?kgt< _#Ǎ.FggewXuZ59\('8*yBcloneb̄eG*8IbpV:dk,z5 fS;wassert_receiver_is_total_eqɉ&^l @KqdEx ~TlS nE[N)v-Ieq Y`7RLneV85! P jrG4xƼ҉: i7t;z{;t߯ fmtcMY ̕q+Y __BitFlagsЫap? :bk,SC_NEGATE_REQS ^w'X SC_REQUIREDIR\Ѵ (A_REQUIRED_ELSE_HELP"!يV9FGLOBAL_VERSIONM! < BVERSIONLESS_SCf{O+rE UNIFIED_HELPT(spUk' nW WAIT_ON_ERROR)oxl䃗%}SC_REQUIRED_ELSE_HELPz}9lh2NEEDS_LONG_HELPJ~ZUSUf2NEEDS_LONG_VERSIONM#n?6# NEEDS_SC_HELPXa/F}{:DISABLE_VERSION>2jUUHIDDEN10GXpaiZ؃NTRAILING_VARARG,fjЅes NO_BIN_NAMEH)T6Z ALLOW_UNK_SC _3.lM UTF8_STRICTQonO\CM UTF8_NONER_&8RwLEADING_HYPHENMt70Lv67 NO_POS_VALUESѤD[A ONEXT_LINE_HELPrlM(pUDERIVE_DISP_ORDERxEYXa  COLORED_HELPG o;,WDONT_DELIM_TRAIL}G²ALLOW_NEG_NUMSgV,xLOW_INDEX_MUL_POSrRf"ܳTRAILING_VALUESOz nKVALID_NEG_NUM_FOUNDpQ|;[? PROPAGATED)XKX`VALID_ARG_FOUNDTV4rߎINFER_SUBCOMMANDS0 dtR0( CONTAINS_LAST̂#F}ARGS_OVERRIDE_SELFK_{\{SDISABLE_HELP_FLAGS ޷CXqQRb`OK>p~q h^GdKtcJOOfmt~e."g c2dWtP$aALLOW_NEG_NUMS{_S5u|LOW_INDEX_MUL_POSGBX_HH&DISABLE_HELP_SCiipJJ\{tDONT_COLLAPSE_ARGS|^G:ARGS_NEGATE_SCS郞L\$#=PROPAGATE_VALS_DOWNE+ApALLOW_MISSING_POSH̳<fXTRAILING_VALUES#a@rvU{VALID_NEG_NUM_FOUND1 l#b  PROPAGATED[懀n.V^VALID_ARG_FOUND) zj 0J,INFER_SUBCOMMANDSҜrnt_0Ž CONTAINS_LASTAmJymARGS_OVERRIDE_SELF)wiS NDISABLE_HELP_FLAGSNm W]%*empty&(D1(G&9;allSGGbits:X8QP| from_bits0X:eQkЀfrom_bits_truncateaoc/C%"from_bits_uncheckedUM ޑis_empty ^3K-ais_all 1%#eE˫? intersectsu@@zCEcontainsvi~.2Nqinsert{)removeռ:/80toggle- N e|rsetAlC&#G ,  intersectionp]gR/nunion5\-N q differencenb>ڂ6i^3symmetric_differenceml|DN^ complement8 5.+)eR@OC}⪄OutputfVQSqbitoro0KJK?1ܰߓr+-ɥ bitor_assigno Ez%Ik+Vɿ hΠ5Output\ WP!pMbitxor a {*%&55[{`m bitxor_assignٍխd^*Jģr–'ɥtaf<s%OutputvUs9t9${(bitandկ[[HRXp,̼ kg- bitand_assign /߶P/ֲ^h=AyRgaXOutputV{,;subxlsBUnyט sub_assignnU34"g&|v.#JŗOutputY#]o(i-qtnot@ c~h~($TXa\textendca0NW7i]|wH<SC_NEGATE_REQSX2V$e?P SC_REQUIRED{1:/mEA_REQUIRED_ELSE_HELP7rޅcÑKGLOBAL_VERSIONjuґ)ڐܖVERSIONLESS_SCAk F'g _fb UNIFIED_HELP'v[x. WAIT_ON_ERROR#\ʍ(Ӣo_SC_REQUIRED_ELSE_HELPjN3<'@NEEDS_LONG_HELP/ΐ<Q¾BNEEDS_LONG_VERSION,Vx52ZYOe* NEEDS_SC_HELPSz[TvmDISABLE_VERSIONt&"NGdHIDDENꡲ{[2h!TRAILING_VARARGV"Mkjyo NO_BIN_NAMEGzsg^hW( ALLOW_UNK_SCpX9|$g UTF8_STRICTK~ԖKLckl UTF8_NONEbs'lӱյRE@LEADING_HYPHENLJs5ORW@9 NO_POS_VALUES X<էΙ޾pNEXT_LINE_HELP5.ԱzQϸDERIVE_DISP_ORDERF_\gj9_ COLORED_HELPZ__9P COLOR_ALWAYSlD~h COLOR_AUTO>gXx9l^ COLOR_NEVERv ˓^'ѴDONT_DELIM_TRAILe8&ddAE[4ALLOW_NEG_NUMSX!JPd9vLOW_INDEX_MUL_POS=im h^9_mwDISABLE_HELP_SC,jO}DONT_COLLAPSE_ARGS7ljlARGS_NEGATE_SCS;w[M- IPROPAGATE_VALS_DOWN]y^ ALLOW_MISSING_POSo)CJTRAILING_VALUESʼ(Ҵi7V"VALID_NEG_NUM_FOUND\wLU7^ PROPAGATED3*PLD[VALID_ARG_FOUND?G6]INFER_SUBCOMMANDS9j*YU'Td CONTAINS_LASTY]àIH瓈,NARGS_OVERRIDE_SELFַdi, ~ǂxaDISABLE_HELP_FLAGS]X!M4TVrH¢1"SC_NEGATE_REQS\gz_ SC_REQUIREDʞcX{&{A_REQUIRED_ELSE_HELP":4KYGLOBAL_VERSIONd9$1x_ԗVERSIONLESS_SCEI\Nz_B UNIFIED_HELP_X(3 WAIT_ON_ERROR\ҷ$UFV -SC_REQUIRED_ELSE_HELPؘ-=R,н"NEEDS_LONG_HELP}}Ti+ BNEEDS_LONG_VERSIONS$ R񆁖 NEEDS_SC_HELPd܍vTDISABLE_VERSIONR_~ HIDDEN2 bjETRAILING_VARARGc8kܜAm&H NO_BIN_NAME&ox>ɝ ALLOW_UNK_SCUs `93K UTF8_STRICTR/̂F=[v UTF8_NONE-;2T;êLEADING_HYPHEN!Y@Ok NO_POS_VALUESuE 4D>fVALID_NEG_NUM_FOUNDh\FG<4 PROPAGATEDyb]JlJEg$VALID_ARG_FOUNDH|91|t z}sINFER_SUBCOMMANDSÒV}aHT CONTAINS_LASToW#ju_QrARGS_OVERRIDE_SELF3-"Wwd&ԵyneͰ5D5鲧׋ e4HZTclone Fǒg)<]![.dބ@t$:"~F] SF7fmt!-a3Yset9 #t9unsetu ColorAuto`uV6YH'Fb5iwX[_ ColorAlways&_$g88tKٟ ColorNever>vϳ)hrAP( SI DontCollapseArgsInUsage1:Ր4/?}˴3DontDelimitTrailingValuesZxk Qab; #|DisableHelpFlags[V39z@S %N`gKuDisableHelpSubcommandըd[vJ{~%w߄DisableVersionǭ{5/HZ'@fFVRFDeriveDisplayOrder<jW ({GHND45CIՇC GlobalVersionoVRoU\$DaG +3HiddeniQXRҞhM>THidePossibleValuesInHelp/ƒ?:KkvG% +ܐR%InferSubcommands`İAxO ȡ eE>ʒc NoBinaryName.`tt< ifvNY"NX": NextLineHelpK;y0zqΈnS 9$j=3V55y?PropagateGlobalValuesDown72x}GL%BuL5SubcommandsNegateReqs4[%7q?}R)29Wjؤ8JD!SubcommandRequiredElseHelpyBXL4P۹r(K' StrictUtf8Cu\5/ S/r8sM fSubcommandRequireduze%_O|39>"MTrailingVarArgX/ƣ!ߑx> -G_O툉;ާHUnifiedHelpMessagep 7U; &cKBT|K<)VersionlessSubcommands5̪o9%@`]r- WaitOnErrorQ >5c>kd1#PWVjzlaNeedsLongVersion.aLӞd.WM9e?ehK NeedsLongHelp ],o-e|/INeedsSubcommandHelp 1H:DXn y}TQPcOLowIndexMultiplePositionalSeڨ}&]gd>Ȅ.6ڬ2#TrailingValues!,#%cۋtt]A; ValidNegNumFound mԿ&sljOOTq0C Propagatedc?{Opw2HLG )jSYp9 ValidArgFound;2~ɰZkAG=lHj ContainsLastO2-_ܮjgQOh9#9zMD$pV!&clone$Q3TA79S\bl;7ہ{y%M+{yKyUzߎ ͺ<@8X]79(*N"wR"+O`p9f:vg }D)nFLu=d?R*ԙ%z6vANC6 o3jI葅_c+!ÿYD>z"5HCe}#%'ystٲWFg$.^iXT8bwG%ˮ}'λ;&.zHÿPڬW'/QE'()(x+g;`rA)bNpN0@ p*_hg9`A+];m»ot,>Zo=%|>OBɉ0\rbO R(xEH ]-3D"VE'"'spkP@;҆<h})eF Oi-q&6;N as_trait_obj) #d%ڴrrqS'a[||Sv''bl:3OΔ]=T4|S+㓝 kI~DHQ RU;]jibp'.VSU as_trait_objO`.3:|F#G 'a5,mir'bLQHnx[+Tp@9-%u{!H00gj{8G\f^[Z@EʎPHJ*8`$M%6ˡ@ k'>W4jⰐtc-,H@-o{o as_trait_obj=Mkf}G&R'auEUڈ'bO!v⽿%u~C&?T}7/p o xW.ڿn #Kve {mtHF7џ_4LED*T@^ݣ:\TLIZg~GzΜ(zTg[AХ9t6LsG᫇/!FL$ e(:)FRsRu6-0Mf#CEM7vtyn8ww K.aRrG`l!r $uЮ}?M^v$2uuDGo1r@ssqjArgIζrvu'a/y`OCk'b&;MM7tb 0 usnFBxDovac(*g{indexXCT.y켶Szr_ifsUov#@F_@|XVzGO'au#[i~fp'bn@4m[clone8=&V‘^{`vh4p$ 'a' l'l'bt]·$4Odefault ǫu˯O/ީBasebUC >rt'azsgw]7 Lj'b[y#!Ywdanamei3bǭ>-Ƭhelpf%inY{ long_help!'Ř >Ф"]P. blacklist#դ1z#Exsettingskc2(:r_unless[Pt~\3sa5 overridesPj^}vי_groupsyBɇ1ǢӮ}requiresI5}ޑvhAw]r'aWsc,'b b s Xj>p"defaultfa9#$F+ .3?P'ʒ''amaQ$kMڭ'bAl.Q cclonecZT&AH54&spE%F'aݞT1=1wW'bq0GS#)fmt~-t-o.W*m FlagBuilder;h:U_'nz,I3'sn'eEԞR4MFn,bWՅ{)e75S slW=v,֙Gci]4aK=oG'nssGEゃ'eñkaNkrfmtBEZjj)ILtxk@DNy렰y2'n|ȣ :q~+ 0'e^@p"Gp̔cloneP@xׁh;h ni.EG%oddn 2Bl  ArgMatchesu.m~>PS&'aZU_~cP6targs8s. t subcommand ="N/?Susage_zs@H"/] ߆Nl#M3'aQ`$) V)clone__ytB/f|  xڳ/T'aJt^-("fmt= 90\W)0 Valuesާ[6lSӄ'a t$dG'ک;iterҭf-4yW hsٶ'ah[ć1LOcloneyCvY3zLb _G)3nkx'a{8yrfmt|j, CŒx OsValues~޹1Kk'aӑ RBUhiter_/EFĎjk Qڪ lh;X'aM- ]UMclonefekQ ptľ[u!l{E'a ca&SWb\fmt`(-_j6ڊ Indices%wu `Mƥ7'aA6 T5$Ҽiterr\٦=4uـ~ s !cJdB'avltKqUO"I"fclone>ȿ+窍 Qi8qň&o'a-~&^8QWw/fmtAT{Hvm=] ArgGroupI#],So{D'a +| 5n؄namekU #w& hargs;2g6e#requiredTGr!aم!frequires. ;Dpke conflicts[ 3ڃu&}SQ?multiplek1.uf?`7 |TQ7v&H'az'PjԮ,Ndefaultj7{MD[{b  MatchedArgO[$HC6foccursJRӞTz"u^indices>#z_7*vals?`v QK+ < Ltclonef;Np3Ű t>$JnJfmt_},R҂ǁ Flagss PrO:_tXbits{iJ$͹,Qr E@h(8="Xhash蒅|W9܌X__HGΣ@g%:+ "{CٔiRcmpǍsI~K ' ՛v>Cd8'  partial_cmpT#GO ltF/'*љle gFegtW ge| ?Q/)R $)ExcPjclone|jplNP Ck[@N n.mystkL assert_receiver_is_total_eqd%۵Nx  x"  ű34݋,Cveq%@G1%XUneԋ ntO@ :  L˘"񑫟&  szX1nS1-fmtzc":4[# __BitFlagsfdmi REQUIRED4A<^MULTIPLEs(Mb )]a EMPTY_VALSdYiqGLOBAL% apm/)HIDDENp$Y{}0 TAKES_VALd>+:"K USE_DELIM" nNc%K0wNEXT_LINE_HELP4L9S'I R_UNLESS_ALL!W$D.hsR  REQ_DELIM9l^K| F DELIM_NOT_SET A7V5 @U HIDE_POS_VALS OA;n92ȮALLOW_TAC_VALSzO.YT REQUIRE_EQUALSJp"=LAST+uuSHIDE_DEFAULT_VAL{~DG wrCASE_INSENSITIVEnV;MVrThhH HIDE_ENV_VALSkNRTYwHIDDEN_SHORT_HV#}Q HIDDEN_LONG_HJS *!OZƍ !F^  Nm{i-'fmt2LO,.W .pƿ*fmtpZ VI)) .5yw\10fmtRDU˳>: ۡ/6s R̴fmtȈ :0[I ]؞)orREQUIRED|'L(xعMULTIPLEq?hI|1C EMPTY_VALS'qߠCCM(GLOBAL-lږw,֦2&HIDDENC;D'QED TAKES_VALyU67n7;, USE_DELIMmk+NEXT_LINE_HELPvciHթe R_UNLESS_ALL` DDuyP REQ_DELIM=zл7  DELIM_NOT_SETB0d˖@"X HIDE_POS_VALS |eL}#dALLOW_TAC_VALSj=KViߛnREQUIRE_EQUALSO^ا7LAST,ǎ}[,HIDE_DEFAULT_VAL}&AJ3fCASE_INSENSITIVEW( chXbk HIDE_ENV_VALSrL`#kB 䥷=HIDDEN_SHORT_H+!@}(}n4? HIDDEN_LONG_Hl@&Uiu)&Tempty5(VY_67allO4u4^]Vvbits\rjxs from_bitsTjxfrom_bits_truncateTtBm.;Vfrom_bits_unchecked4(΍~/is_emptyj@oYb47pWis_allipD/ intersectsFWh^!Fjcontains׼G!Q=:insertY!diQLWremovegGÁrfq}ntoggle6鸆jװsets/Q y" intersectionQ7Z"zם!ޭp unionKQ5 difference5q/5PwFGsymmetric_differenceHquQBDO3Q, complementVH)+I{B  l` ^Output@ee3χSqbitor+Cw&Վv} ړ!9gLE# bitor_assignL" :kyy  @[aCf;OutputV\`M5zbitxorEg\н OED$0# bitxor_assignr'-~; *kQCɻOutput9\Oس8nǡOdbitand^(W*wH:S 9Qt {V: bitand_assign8ʩ6ӞYОN o,RSOutputi5+KKWsubЬ^.iqh ^s[3̃b sub_assign؄ a/v. J u`DIv;dOutputDvM]`htnote`Yܝ jn;q 1=reSoextend6fEmcST7(֏3@[ 118S\. from_iter8"c8/)T,삓f.FӫREQUIRED=P_svMULTIPLENPzZ=^uZ EMPTY_VALS1a8"R9GLOBALAO+$ҳ,HIDDEN=?8JsT<# TAKES_VALwMv3Gp:PO USE_DELIMOw#M)*NEXT_LINE_HELPaO0SeW\ R_UNLESS_ALL_Ac* V REQ_DELIM 276mz DELIM_NOT_SETlʲ5.|D HIDE_POS_VALSs%7¼ A0ALLOW_TAC_VALSpzI3.p5ЦREQUIRE_EQUALSZ'f rI^T0LASTfB&RC@;*BpHIDE_DEFAULT_VALmoBkNɎpCASE_INSENSITIVE$ 7 7n#0, HIDE_ENV_VALSMwєĂsHIDDEN_SHORT_H}].S]U;T HIDDEN_LONG_Hmo$yCRY |  __BitFlagsK9?JfycwYREQUIREDQk̡hEMULTIPLEڬcip1y EMPTY_VALS5}X#`9GGLOBALBأ_yHIDDENW^?^~+& TAKES_VALw[4.Ĭ-A USE_DELIMFH4v NEXT_LINE_HELP鐝~]'El R_UNLESS_ALL3d^. ov REQ_DELIM?$)>Hަky DELIM_NOT_SETQ'J$cpC HIDE_POS_VALSj9R(seALLOW_TAC_VALS:0;GREQUIRE_EQUALS "s[Ú{-8!{oLASTl ~F]mNLHIDE_DEFAULT_VALcq@DFƌs#CASE_INSENSITIVE=U5T55h HIDE_ENV_VALS}+5#T 4[fBHIDDEN_SHORT_Hf}OtF}M HIDDEN_LONG_HlضElc)"PgKX g}SREQUIRED5%^'|hxsMULTIPLEtxމ&p EMPTY_VALS%,+/4gf\@GLOBAL'b,b0HIDDEN"?R_J#d6W TAKES_VAL,Ǡt\ USE_DELIML&\Mt REQUIRE_EQUALSM GL)|dLASTot$cKJHIDE_DEFAULT_VALEA4__gpCASE_INSENSITIVEb$ 2g#6g HIDE_ENV_VALSv8n2b:HIDDEN_SHORT_Hc{2@d>x HIDDEN_LONG_HiP® D|Mt  ArgFlagsĩ1:qOxO>W%] C0y F[UITF $ù-U9& ?;oCEclone)K8$闓EI 쎐4 Z[?fmt3{;p0\ setj Fܓ; unset i}hKAu5Nh is_setDZv_r  ArgSettingsXF <`Required>0#+'zؤ ]T8/ ^] Multiplesu퐏* ~FfZGlobalGԹ7S_vY}CT ܚHidden2}`x…'•\Yui_? TakesValueTq ]5+ƴ /)*GUseValueDelimiterѦt`[ȟJ¶Z@ NextLineHelp莟 .ZX|=e:_&,RequireDelimiter=z88T5x|Z-%8әjx|4vHidePossibleValues5-pq̝B[Qo!d=ɻ 2a+h@dAllowLeadingHyphenՓ/k$3|zD9JGE=jvx RequireEquals@h^a$M_I򌫠݃%LastT0t^5TL~wt* [%BHideDefaultValuebTN^OtXp[} G:CaseInsensitive<~uuOrI{֑:fuK_%^Q~ HideEnvValuesEldk lJ+\q{Xè '0GGHiddenShortHelpMPScf(0K7 ?2XHiddenLongHelp#Yq`ޓ@gn:31"QvRequiredUnlessAll!5;ZEqXvtIs_OValueDelimiterNotSetItd,A+@3w$k?|W@  T{Um7pXfcloneˆ9I#= !gզH!eIP[ "U ֫† #qM@h#[eq(!4q $ߋ:W(yfmt\eN)(F{@  SubCommand 5ZM[.0LMN'an~ͱOe G2name'.nCImatchestH 7  j@=J2'a!5Bo&O>clone;فnnFN uiBȰL` ?'acw]jNo+?fmtux٦.sB p -q;BRqk  |sgͬ"]A uykh6lY(2Dbz/Z  ada k ;@.3 ;{\CI ?-^j CQԆۋUm FFwѴic} aCmp' ?JeVxz2 ~*NY!3'% ìeBp@u9P  hC)0p  {Z{SXlFHvN  Qm#9gJ<  i !p TZ߰  g:f9@&j $aca!iPe  Shell zݨ+*9<aBashc,|/mX> +{\1̆QEFish)yҢ瓊WA^JWpqD('Zsh.&[[ƏtZ#e1ᶚu2 PowerShell70I[Vac;fP"J-"f%ElvishI}g< =e.x RG:&XS Pp)(4Զ-#ccloneQ+d j/V^f^@u GK'vfmtr=dtu`F 1)u1n 94Hi $;GHԼ  r ' ٟۍ06`d)4  ErrorKindR}K"J̏ InvalidValue‰&U4}(6MKJmYv$RoUnknownArgumentaNt7Ie9j`IfI?InvalidSubcommandX[R+`ӏ 0+ v%iًJI(:qUnrecognizedSubcommandIPɃ 4S3ī=p%_kUPK EmptyValuegaO0VE"l]mKbAa%ValueValidationk=ŀ19,ψɩ TooManyValueshPZ exRx#9 ҁP TooFewValuesJe }&mѭ1zX>+vWrongNumberOfValuesQ9T۞xe"Ν6Uą?6c:aArgumentConflict$06OKJ)wXu)AE//=&0MissingRequiredArgument`=]YHyH_^o]dM"MissingSubcommand }'PKD<989ߛE˟S݄_~MissingArgumentOrSubcommand 7Aw]3'uְ}}UnexpectedMultipleUsageʮKۅDyy\as)ChHM#| InvalidUtf8Tu5aś."H 2}: : HelpDisplayed-c 03Ԫl5 VersionDisplayed)(A2d&C@o ><"z *   ColorWhen(wA+ێmj;Auto&a+L% .+iv\C Always[#(^|%;wP2Z\߇ NeverVҗg^ Q{'d @JZE_ >7!n"beqVx?_ g- <"Xa1I HNqclone'+1P+m v#0uM~ u<I I@X-Nfmtgx`E(kl& Formatu(s ,oT8 2'ɳq8&]qsErrorYrG Sx)|~:!DžGoodj9kωqEaL@[Hz0OW6gurN0None]~oI{)>y&eddz0@X%{Pt#   J zoyTx3v:JU! Hfmt)հu7MOsSplitD"\} ю'aPBpŘ &ZsepJm]́ija s@ /val@ L9"pos4-9RWc^b> h'a]j`XyD"fmtW+W\;mMBi o6a!,URfmt+Z*VdGY9 l k >>ۃuˎ EuCCs BTeIHXB;l"#N|p*([ɝ7+"i V\~0F+#&%5ȣUrg\n-B^ vqzb6f7<ӽR#Pə+(RP-XDu?t0L۸}Kp^n۩-e{pbGM?H*BF;A 3iz ]$A-h{ hŧNӃB)bjtmB#vCHך<C1 4i,T݅&CFy*|5Dh)Nl sTaDW رrW_ |_z:`Fq"lq@bG!-;? O5K~G`-_gۋH%~?Њ׫H@dIx"xbIw~;QR gIwQQ<"\)J [!}dHJ4N6?ӜK 9\ A_K}_%؈/θӄ&Lt:R6 oLBb +4D}NUq6zɍXNDi]LO<0~Q-ؓ-@}=|NQPLVJHyƩB$RQ<⹸6RX58U#w S;sY-xEp|SLL;udzU̎s g\۫*U<$K-7S>9VWJn(JtG`V/Գu~' f RXJ%di^0Xصڅ\x?VXIYYcN|&L!T]YMNal? #%Z\:<(.mKZmhwﻶs6O[ih4e`LF\[5*ĉ!\Z'Jǒ pj_~f\Xdy[1]c]u""M.)H ;yу]uXm.Yq`6N9^1_<u!ަ넗l ^q]^p|ױR:0nȮUo(`dMfAx ڶRt1Eϵ,*Cyuxܱ1ޏZ~ ?:MD $߂˜笎}ˊЋpB{^O^TZ7}eqy* ̽tE6L4$*jF̀tNщӈs- Ej/A-տўһ»_&_&WC+'ʠx9<Ա.* +Pcn9}N'6l9$+$F fP2F \9lDBE`; q)l(Ne(?`؞Ĕ=58~46Y|!Oe5sH sײkW?6y(|t%O^"I5-U) 6iO'KÄRh{/YzD6cD+YHl:0AG餼;L}m?; EV vqtL%twm|jUcvQ-3/ Ç*gC7BL6E>laaKzuQWo$Yp͎ESme072#cG2 Ŵןx7/Pm3ltP/eOQHTնlC}Y} b )ss9ԪA o>-$h<1))8G8 +,rSQ]4Eh40@ߒ~ ?EMMpϰ#o.gKjC#7s`Z!w]d8~o=6arw>C ?ޮO_L3¤-IV@@ $؎H%` ޞc!zQlo%DLϮG螺D4ڊzi7ix,iR-{lP"^^}R6n7^&%𖓢Gh3 hN\y^ތ=\ͯS`n֜潹ZuPž 3x`b/\'??!؛RVoNZO8qTqs_8DNJo/), g"i!0 bm+PXv1"a|!h^qsBz?T'JE&WR}/GYѹ ?jeC T%IRIH$oS6k+!.wcAmNݸԒNJ3x)kH5klރ=bmVߘ_/z %AZ6c'fGj+Gb=%hF{ڜ,]W.ŗ}7Fd_L^#yKƀK'lnNϩRs!i:+B5JO*i:e5ǒ0׺[]2ԇt84~ Qr:jMp?1N`XlhM_+{Ps"md8F"v3=ݿפG Qc;`S= r  #K-8ZcH$vU_7Y b!Joϲh|ft>kY]X!".? =4u\$i*Y]l V;Ppe[N;|(Z6Yqj#c<_44$8J*eo WhhB /).E,. "ea VS+XN TẼ$0bXX3k =9GKZ Daފ-p.#/8A"8y1ș1X@'%r=H* ,f?r* L${Ёw75l:@1D&lҩ&P!clgɿah#@To,F~4:66!C a_ NeWǪM;2ɋGw0Xxz Ag!VS^ ߋA-NPj'9~CȁѻW`go}GRxT{ÇF<Գt~J.)=y֖|2GSU[N/@;j3Q;%kg=^os7-5oqiy:ECm٥&bֹfI6fHB m^j9T"}}R#˼N;̞Q8Է2;}ɀyČM)+t%^ 6%y#2TJJ {4pSZ"S9lRtů´=j;jǁKgZ-Qmh#Y6Z-ga5iރS$&3pԤP8eb2/LK,4Tb͊R`-Ԑ>oca?onLn<6k'J *VH4.oWr256iz*NM >X{hN.`뜣VؕԙimBBIѷ7zosaMvr=.;y3JMbD#D-92 j%.LJ>M8'T21l7߈.)K8}I~Q,O~mA M`)i mفqNKYSRId!o^U͚Bvi̷&ym"?590$C2W 2tA`?0S3~<*!0FPGV`OŪ0F=M N9FycBPEnu N6=ܪtlPX\߉FiKx?v[mz;/+cZ0D])SlA€r[K;W[^d"<P6i ZW$WKAq'|G O[ M$\βsIM΂R! L9n-L* K5B6~XX0yjRAN IѢɩN UΤϝf0!7{YP]ipN{r^^WXWlJW$P"=#e3 01f<.!QjkDl' AE:H,dm]< FJ*ORץjU\l GB5Qgon\ם6/ۭW9Me^72A+u7R{f]:RG:+KۧK{їݮ<ƼsG9N^*<.l$`k(lfnC'I OWqQ B+R}̉z Plqd u䶗~'rË-Yyvv}bbkCX Bng~p='I Yt)nhMeBWWlp9,HJJt@?:8cΰZ%e X|;Gu#:H>V+A@.Dehm0(#4zKᙺ0 l㬦U)@Ċ )l:˪N:Z,+!BЯ<]|6^ >Ѽ Jj7(6T!(cv^30Wo(KT?"Yj#LK`psB#mO±cm144o|853s sWl!@/|{fh"Ȋf :U(RSarpdC ?Ƥ{hUԯ%M{fe#k>!)Is#u#dJiO+zKI`=7*K̔qSU8~7(6Ù<LD=23b>ϹX~JpCc Ƀ${8x*HLG|UaOR9[eHm1-Ih00u>MCl]$2#H.9E%8 ٧Cesl`y.z-s7>vcꁧÒ)zeo `kqŏ&$S J HlcVP*[[/#ʽ#fzI/_#c"՝|'6zH&#L:OG\9/N^tRIby$MGBxj{J)z(vU0FFyd݀*䛧gNKCߛO!E{cO'.I^qwpBClƲ%gdXR1h? B1T 7C@ؽvJT_ci*zİ8I霓"3IoZpL]W,:f!_a Z!7k0l-.y! &Wa;裏D5W? |p]IE3{˕{{×(NTLG7" hl 3,=$#iqT==N^#TQ d~&uXb%#X@; <̈h@eÈXطPhyxPf u~Iʓ\a.d;yPfLE#YCٍfܝ&T-XusÝMb/hEY'(cBZ GoB/*Zj5ВDrlT1TւBZ>?.}'~Rݡ4ρ;r0]|ʉ~G;Aث |W5p52s"h'cS }+"Df] < ɮ:IH҄{C9"> u t ״jMs\9}T xIʎEK7wIgԽpt7 uylv"# Kk NS^@zkîҝ'=Se%gT.qm*t4Dϕ AiCN,zJ 9S]RoN퓸V &cq%w҆V[ B /(7dF1oZ ~|cd_ f:Ӕ~o0 Fsw~JhR hu S-D}W/+lv PK寒q$ N~  scw QӕJ Z' vp@   ^~" ) #:B6}?  +LB$  ,^ Ȁ ҁ x. H* 3)ɩ Fq8w<)Xh 9TKلoM  єɸW;c|ܧ+ Lf; / B̐b|q-%+ ;*3&³&:) ӀͳHFDp3( @$KrmF8 c lOM8P)< 9.~m)h$ m*':#/ S AHC+  C.?wGO rW=c  'fbs  vj8Yhkx 0' {Q=/BaL"  ĶKn|Lhf $!ܟXS sW }}@zЭtQ uf~Jfgŧ '{EZBT' > EwـJ  V zHlGbuj  [~wԟ!Q |6X\eE4[ hYBn^_) f;tp`K 2_^fnG:e FztcY p'U4nLQBbn `oy,~YXLi V]' M:NM{  7CAxϔ \e e@i| #pR<3 .3؛ |i ;.G wX H[3ZWf ӷ*+pQ ' r92 S\Ez Z`Vx r& @C $x-2  <{n 5]8w_ OR {ilT %O`aXzS^/ cjYL?gMƭ QPW9j)Z- 4Bnvh k5PN>}h8 "LbƁ) ME;Hz ,үF׈3 |h1?^V^zW  \ÝA'f 2V}s,҇!l ]P~? IYd`3 ABui$pK 6_Wh0YBGQ #[jb1 = Y7({=R1' vIՋxK R- w631WNz 2))+d Y=H3o\VL iv X%T\y lWM+3^ NUC08ӽ -NB.PN 8H@ 7ü8jW ^bB Ȥ pdq"h6 *7P#]}l4 v ۛ)1  |(* hs ocKM4H| P ~<5Ő={o 69 G^)Y.U}9 +46#h+g<M ,0HQ;("G S>VL'&.[ A.H{eɼQK Eg;o#u) UȮs#t oOE43!%h0߫ 1yE-`5 Z\O=), xcnsp “'U  t[ʍ yg.):X R t!fSQ> v.!TH# r,c0n-2 ?Ok:Ҍ)0 Yk"|Ġzu^ /s.] >jd ||h)~fGKMW -am!jz 4(hmT "gv!:z# @@31Y?  7cj^8я Xg`G6   {7,< IӒ0+jcV5F K%@BYxny  I!u1Z Ir"+5iRu"vW ^bqOC F  q:ZHpe ׽IJ> :|[w2BDD npkGj н Җ0܉$ %v^!@ A9sKI S#-eye AY!|(/[ 4&x\ʨh VµUaR1F []\;!Hf ֪$!%͚ < p`2W' ] 6GU!+   w0oJLJe*L /BHJ U;ׄ$ 4 ߓ9YFa VDV - Dwς NB5TօX] T#o/(I:B =FHzM5 s 1<۽\ T}ݽQ#)-  9=iD _2 fo[f 3*YaYzͬ ɾzD wbaBa S>Kq6~U􆿪 CzZrZ0lt( "K[~8C 6{V5%Ԛ aPQͼ0< Pu2In: ߬&͸7@c 4Vۣӵ] l}IQt E`R\ֻ| B303xi .)[Uֻ{uVE d},*n) ;rK!։2(- :/Wl{f] 8" E pN5ۤ[ .ɕj\3R@g_qYK;}Y+m~slӰAl3*v8FX{x& 1K`qA3r1[̓Xu?Uy15eJ5vmtξj@p2>%I'WR(8Nc:bٗʹ+z9,mBδV&3z7 % 7e{'b{E=mZPɒJSmU@]];΁1?{*Isy<,z[Wӳ    w          f              n              4   6  ( 3  3  ( 3  *c (   )T B   <B   j( 333  std ansi_term attybitflagsөstrsimtextwrapժ unicode_width vec_mapApp AppSettings  ArgArgGroup ArgMatches  ArgSettings  OsValuesĬĬ SubCommandά ά ValuesڬڬShellError ErrorKind  Result Format value_tvalue_t_or_exitvalues_tvalues_t_or_exit_clap_count_exprs arg_enum! crate_version "ܰS crate_authors #crate_description$[ crate_name %Mapp_from_crate&clap_app'2"Y `clap` is a simple-to-use, efficient, and full-featured library for parsing command line\F arguments and subcommands when writing console/terminal applications.I ## About a `clap` is used to parse *and validate* the string of command line arguments provided by the userda at runtime. You provide the list of valid possibilities, and `clap` handles the rest. This meansdZ you focus on your *applications* functionality, and less on the parsing and validating of] arguments.] `clap` also provides the traditional version and help switches (or flags) 'for free' meaning`b automatically with no configuration. It does this by checking the list of valid possibilities youe] supplied and adding only the ones you haven't already defined. If you are using subcommands,`a `clap` will also auto-generate a `help` subcommand for you in addition to the traditional flags.d ` Once `clap` parses the user provided string of arguments, it returns the matches along with any c] applicable values. If the user made an error or typo, `clap` informs them of the mistake and `] exits gracefully (or returns a `Result` type and allows you to perform any clean up prior to `_ exit). Because of this, you can make reasonable assumptions in your code about the validity of b the arguments.    ## Quick Example  _ The following examples show a quick example of some of the very basic functionality of `clap`. bV For more advanced usage, such as requirements, conflicts, groups, multiple values andYU occurrences see the [documentation](https://docs.rs/clap/), [examples/] directory ofX* this repository or the [video tutorials].-a **NOTE:** All of these examples are functionally the same, but show different styles in which tod use `clap`_ The first example shows a method that allows more advanced configuration options (not shown inba this small example), or even dynamically generating arguments when desired. The downside is it'sd more verbose. ```no_run J // (Full example with detailed comments in examples/01b_quick_example.rs)M //` // This example demonstrates clap's full 'builder pattern' style of creating arguments which iscc // more verbose, but allows easier editing, and at times more advanced options, or the possibilityf& // to generate arguments dynamically.) extern crate clap;" use clap::{Arg, App, SubCommand};% fn main() {/ let matches = App::new("My Super Program")2* .version("1.0")-B .author("Kevin K. ")E8 .about("Does awesome things");8 .arg(Arg::with_name("config");+ .short("c")./ .long("config")23 .value_name("FILE")6B .help("Sets a custom config file")E3 .takes_value(true))67 .arg(Arg::with_name("INPUT"):C .help("Sets the input file to use")F/ .required(true)2* .index(1))-3 .arg(Arg::with_name("v")6+ .short("v")./ .multiple(true)2E .help("Sets the level of verbosity"))HD .subcommand(SubCommand::with_name("test")GJ .about("controls testing features")M6 .version("1.3")9U .author("Someone E. ")XC .arg(Arg::with_name("debug") F6 .short("d") 9W .help("print debug information verbosely")))!Z* .get_matches();!-"R // Gets a value for config if supplied by user, or defaults to "default.conf""UG let config = matches.value_of("config").unwrap_or("default.conf");"J. println!("Value for config: {}", config);#1#U // Calling .unwrap() is safe here because "INPUT" is required (if "INPUT" wasn't#XO // required we could have used an 'if let' to conditionally get the value)$RJ println!("Using input file: {}", matches.value_of("INPUT").unwrap());%M%P // Vary the output based on how many times the user used the "verbose" flag%S? // (i.e. 'myprog -v -v -v' or 'myprog -vvv' vs 'myprog -v'&B( match matches.occurrences_of("v") {'+* 0 => println!("No verbose info"),'-, 1 => println!("Some verbose info"),'// 2 => println!("Tons of verbose info"),(2- 3 | _ => println!("Don't be crazy"),(0 }( )X // You can handle information about subcommands by requesting their matches by name)[K // (as below), requesting just the name used, or both at the same time)N@ if let Some(matches) = matches.subcommand_matches("test") {*C) if matches.is_present("debug") {*,0 println!("Printing debug info...");+3 } else {+. println!("Printing normally...");+1 },  }, ,' // more program logic goes here...,* }, ```,,V The next example shows a far less verbose method, but sacrifices some of the advanced,Y_ configuration options (not shown in this small example). This method also takes a *very* minor-b runtime penalty... ```no_run. J // (Full example with detailed comments in examples/01a_quick_example.rs).M ///Q // This example demonstrates clap's "usage strings" method of creating arguments/T // which is less verbose0 extern crate clap;0" use clap::{Arg, App, SubCommand};0%0 fn main() {0$ let matches = App::new("myapp")0'* .version("1.0")1-B .author("Kevin K. ")1E8 .about("Does awesome things")2;, .args_from_usage(2/O "-c, --config=[FILE] 'Sets a custom config file'2RP 'Sets the input file to use'3SS -v... 'Sets the level of verbosity'")4VD .subcommand(SubCommand::with_name("test")4GJ .about("controls testing features")5M6 .version("1.3")69U .author("Someone E. ")6X` .arg_from_usage("-d, --debug 'Print debug information'"))7c* .get_matches();8-8# // Same as previous example...8& }8 ```88` This third method shows how you can use a YAML file to build your CLI and keep your Rust source8cX tidy or support multiple localized translations by having different YAML files for each9[ localization.::^ First, create the `cli.yml` file to hold your CLI options, but it could be called anything we:a like:; ; ```yaml;  name: myapp; version: "1.0";% author: Kevin K. ;( about: Does awesome things< args:<  - config:< short: c< long: config< value_name: FILE<( help: Sets a custom config file=+ takes_value: true= - INPUT:=) help: Sets the input file to use=, required: true> index: 1> - verbose:> short: v> multiple: true>* help: Sets the level of verbosity?- subcommands:? - test:?) about: controls testing features?, version: "1.3"@4 author: Someone E. @7 args:@ - debug:@ short: dA. help: print debug informationA1 ```AA\ Since this feature requires additional dependencies that not everyone may want, it is *not*A_K compiled in by default and we need to enable a feature flag in Cargo.toml:BNC^ Simply change your `clap = "~2.27.0"` to `clap = {version = "~2.27.0", features = ["yaml"]}`.CaC] At last we create our `main.rs` file just like we would have with the previous two examples:C`D ```ignoreD @ // (Full example with detailed comments in examples/17_yaml.rs)DC //E` // This example demonstrates clap's building from YAML style of creating arguments which is farEcY // more clean, but takes a very small performance hit compared to the other two methods.F\ #[macro_use]F extern crate clap;G use clap::App;GG fn main() {G] // The YAML file is found relative to the current file, similar to how modules are foundG`& let yaml = load_yaml!("cli.yml");H)6 let matches = App::from_yaml(yaml).get_matches();H9I$ // Same as previous examples...I' }I ```II\ Finally there is a macro version, which is like a hybrid approach offering the speed of theI_D builder pattern (the first example), but without all the verbosity.JGJ ```no_runJ  #[macro_use]K extern crate clap;KK fn main() {K% let matches = clap_app!(myapp =>K( (version: "1.0")K1 (author: "Kevin K. ")L4' (about: "Does awesome things")L*L (@arg CONFIG: -c --config +takes_value "Sets a custom config file")LO= (@arg INPUT: +required "Sets the input file to use")M@G (@arg debug: -d ... "Sets the level of debugging information")MJ (@subcommand test =>N 1 (about: "controls testing features")N4 (version: "1.3")O < (author: "Someone E. ")O?L (@arg verbose: -v --verbose "Print test information verbosely")OO )P  ).get_matches();PP // Same as before...P }Q ```QQa If you were to compile any of the above programs and run them with the flag `--help` or `-h` (orQdZ `help` subcommand, since we defined `test` as a subcommand) the following would be outputR]R ```textR  $ myprog --helpR My Super Program 1.0S Kevin K. S  Does awesome thingsSS USAGE:S 1 MyApp [FLAGS] [OPTIONS] [SUBCOMMAND]S4T FLAGS:T ) -h, --help Prints this messageT,1 -v Sets the level of verbosityT40 -V, --version Prints version informationU3U OPTIONS:U 5 -c, --config Sets a custom config fileU8V ARGS:V # INPUT The input file to useV&V SUBCOMMANDS:V help Prints this messageV#& test Controls testing featuresW) ```WW[ **NOTE:** You could also run `myapp test --help` to see similar output and options for theW^ `test` subcommand.XX ## Try it!XX ### Pre-Built TestXX; To try out the pre-built example, use the following steps:X>YY * Clone the repository `$ git clone https://github.com/clap-rs/clap && cd clap-rs/tests`Y\0 * Compile the example `$ cargo build --release`Y3: * Run the help info `$ ./target/release/claptests --help`Z= * Play with the arguments!Z[! ### BYOB (Build Your Own Binary)[$[M To test out `clap`'s default auto-generated help/version follow these steps:[P\A * Create a new cargo project `$ cargo new fake --bin && cd fake`\D" * Add `clap` to your `Cargo.toml`\%\ ```toml]  [dependencies]] clap = "2"] ```]]* * Add the following to your `src/main.rs`]-] ```no_run]  extern crate clap;] use clap::App;^^ fn main() {^7 App::new("fake").version("v1.0-beta").get_matches();^: }^ ```^_/ * Build your program `$ cargo build --release`_2X * Run with help or version `$ ./target/release/fake --help` or `$ ./target/release/fake_[ --version``` ## Usage` `a For full usage, add `clap` as a dependency in your `Cargo.toml` (it is **highly** recommended to`d[ use the `~major.minor.patch` style versions in your `Cargo.toml`, for more information seea^F [Compatibility Policy](#compatibility-policy)) to use from crates.io:aIb ```tomlb  [dependencies]b clap = "~2.27.0"b ```bc< Or get the latest changes from the master branch at github:c?c ```tomlc  [dependencies.clap]c, git = "https://github.com/clap-rs/clap.git"c/ ```dd- Add `extern crate clap;` to your crate root.d0d; Define a list of valid arguments for your program (see thed>N [documentation](https://docs.rs/clap/) or [examples/] directory of this repo)eQeJ Then run `cargo build` or `cargo update && cargo build` for your project.eMf% ### Optional Dependencies / Featuresf(f! #### Features enabled by defaultf$g{ * `suggestions`: Turns on the `Did you mean '--myoption'?` feature for when users make typos. (builds dependency `strsim`)g~ * `color`: Turns on colored error messages. This feature only works on non-Windows OSs. (builds dependency `ansi-term` and `atty`)h@ * `wrap_help`: Wraps the help at the actual terminal width wheniCE available, instead of 120 characters. (builds dependency `textwrap`iH with feature `term_size`)jj1 To disable these, add this to your `Cargo.toml`:j4k ```tomlk  [dependencies.clap]k version = "~2.27.0"k default-features = falsek ```kkT You can also selectively enable only the features you'd like to include, by adding:kWl ```tomll  [dependencies.clap]l version = "~2.27.0"l default-features = falsemm- # Cherry-pick the features you'd like to usem0& features = [ "suggestions", "color" ]m) ```nn #### Opt-in featuresnnY * **"yaml"**: Enables building CLIs from YAML documents. (builds dependency `yaml-rust`)n\[ * **"unstable"**: Enables unstable `clap` features that may change from release to releaseo^o ### Dependencies TreeopH The following graphic depicts `clap`s dependency graph (generated usingpK8 [cargo-graph](https://github.com/kbknapp/cargo-graph)).p;q( * **Dashed** Line: Optional dependencyq+T * **Red** Color: **NOT** included by default (must use cargo `features` to enable)qW? * **Blue** Color: Dev dependency, only used while developing.rBrV ![clap dependencies](https://github.com/clap-rs/clap/blob/v2.33.1/clap_dep_graph.png)rYs ### More Informationss^ You can find complete documentation on the [docs.rs](https://docs.rs/clap/) for this project.satL You can also find usage examples in the [examples/] directory of this repo.tOu #### Video TutorialsuuY There's also the video tutorial series [Argument Parsing with Rust v2][video tutorials].u\vS These videos slowly trickle out as I finish them and currently a work in progress.vVv ## How to ContributevwY Contributions are always welcome! And there is a multitude of ways in which you can helpw\] depending on what you like to do, or are good at. Anything from documentation, code cleanup,w`\ issue completion, new features, you name it, even filing issues is contributing and greatlyx_ appreciated!yy_ Another really great way to help is if you find an interesting, or helpful way in which to useybV `clap`. You can either add it to the [examples/] directory, or file an issue and tellzY7 me. I'm all about giving credit where credit is due :){:{ Please read [CONTRIBUTING.md](https://github.com/clap-rs/clap/blob/v2.33.1/.github/CONTRIBUTING.md) before you start contributing.{|| ### Testing Code||R To test with all features both enabled and disabled, you can run theese commands:|U} ```text} # $ cargo test --no-default-features}&( $ cargo test --features "yaml unstable"}+ ```~~] Alternatively, if you have [`just`](https://github.com/casey/just) installed you can run the~`[ prebuilt recipes. *Not* using `just` is perfectly fine as well, it simply bundles commands^ automatically.4 For example, to test the code, as above simply run:7 ```text  $ just run-testsˀ ```Y From here on, I will list the appropriate `cargo` command as well as the `just` command.\ɁQ Sometimes it's helpful to only run a subset of the tests, which can be done via:́T ```text  $ cargo test --test #ւ # Orڂ $ just run-test  ``` ### Linting CodeE During the CI process `clap` runs against many different lints usingHa [`clippy`](https://github.com/Manishearth/rust-clippy). In order to check if these lints pass ondK your own computer prior to submitting a PR you'll need a nightly compiler.ڄN1 In order to check the code for lints run either:4 ```text  $ rustup override add nightly! $ cargo build --features lints" $ rustup override removeԆ # Or؆ $ just lint ``` ### Debugging Code` Another helpful technique is to see the `clap` debug output while developing features. In ordercT to see the debug output while running the full test suite or individual tests, run:W؈ ```text܈  $ cargo test --features debug! # Or for individual tests1 $ cargo test --test --features debug4D # The corresponding just command for individual debugging tests is:G $ just debug  ```ʊҊ ### Goals֊ \ There are a few goals of `clap` that I'd like to maintain throughout contributions. If your_[ proposed changes break, or go against any of these goals we'll discuss the changes furtherȋ^` before merging (but will *not* be ignored, all contributes are welcome!). These are by no meanscZ hard-and-fast rules, as I'm no expert and break them myself from time to time (even if by] mistake or ignorance)., * Remain backwards compatible when possible/d - If backwards compatibility *must* be broken, use deprecation warnings if at all possible beforegC removing legacy code - This does not apply for security concernsF * Parse arguments quickly^ - Parsing of arguments shouldn't slow down usage of the main program - This is also true ofae generating help and usage information (although *slightly* less stringent, as the program is abouth to exit)Б& * Try to be cognizant of memory usageߑ)c - Once parsing is complete, the memory footprint of `clap` should be low since the main programf is the star of the showE * `panic!` on *developer* error, exit gracefully on *end-user* errorHד ### Compatibility Policyۓa Because `clap` takes `SemVer` and compatibility seriously, this is the official policy regardingd0 breaking changes and previous versions of Rust.3[ `clap` will pin the minimum required version of Rust to the CI builds. Bumping the minimum^` version of Rust is considered a minor breaking change, meaning *at a minimum* the minor versionc of `clap` will be bumped.ܖ_ In order to keep from being surprised by breaking changes, it is **highly** recommended to useb5 the `~major.minor.patch` style in your `Cargo.toml`:8 ```toml  [dependencies] clap = "~2.27.0"# ```Θ֘a This will cause *only* the patch version to be updated upon a `cargo update` call, and thereforeژdF cannot break due to new features, or bumped minimum versions of Rust.I #### Minimum Version of Rust ` `clap` will officially support current stable Rust, minus two releases, but may work with priorcZ releases as well. For example, current stable Rust at the time of this writing is 1.21.0,]^ meaning `clap` is guaranteed to compile with 1.19.0 and beyond. At the 1.22.0 release, `clap`a; will be guaranteed to compile with 1.20.0 and beyond, etc.֜>a Upon bumping the minimum version of Rust (assuming it's within the stable-2 range), it *must* bed( clearly annotated in the `CHANGELOG.md`+ ## LicenseY `clap` is licensed under the MIT license. Please read the [LICENSE-MIT][license] file in\& this repository for more information.)ȟC [examples/]: https://github.com/clap-rs/clap/tree/v2.33.1/examples̟F\ [video tutorials]: https://www.youtube.com/playlist?list=PLza5oFLQGTl2Z5T8g1pRkIynR3E0_pc7U_D [license]: https://github.com/clap-rs/clap/blob/v2.33.1/LICENSE-MITG  crate_type ʡlib̡֡doc֡١ html_root_urlڡ https://docs.rs/clap/2.33.3ӡ6deny missing_docs  missing_debug_implementationsƢ missing_copy_implementations̢ trivial_casts  unused_import_braces unused_allocationforbid unstable_features ?    macro_use [ * ܭcfg| not featuredebugЭ  macro_useЭ }Э env ?env?OsStr?OsString5?fmt?io?BufRead? BufWriter  ?Write?Path ?process! ?Rc ? StdResult  ? AppSettings Help|?Parser?AnyArg?Arg?ArgGroup? ArgMatcher   ? ArgMatcher   ? ArgMatches  ? ArgSettings  ?Shell? ClapResult  ?map ?VecMap?@Cow@cmp @BTreeMapđ@Displayܑ3ґ@io@Cursor6@Read@Write@usizeA @Parser@usageΒɒ @Appߒߒ@ AppSettings  @AnyArg@ ArgSettings  @ DispOrder  @Error@ ClapResult  @ Colorizerӓ  ӓ @ColorizerOptionޓ ޓ@Format@VecMap @INTERNAL_ERROR_MSG @textwrap@UnicodeWidthStr@? ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcfjnsw| @Xcfg not feature wrap_help "`ϕ ȕ- ` s@ a ֖" "@Ж!   Ж!Ж!ۖ Ж!@9Selfc'bd'ceedcSelfd'be'c֗3֗ @QTcg'bh'c'bg'chTiihgg'bh'c3˘ @ŘtmSelfj'bk'cllkjck'bl'c  self @- mk'bl'c  ck'bl'cjj Ǚ@rjo'bp'c'bo'cpTqqpoǙco'bp'c self @A ro'bp'c  co'bp'cnn ӚӚӚӚӚ c֚ӚӚܚܚݚA ӚӚӚӚselfA  x@P st'au'b jt'au'b'at'buTvutvjt'au'b  jZxZ@^zx'by'c'bx'cyyxself @/ zx'by'c ww `clap` Help Writer.W Wraps a writer stream providing different methods to generate help for `clap` objects.Z~|}'a'a}}}'a}'a@ }'a}'a||@||@ ||@Ρ Ρ||@ ||@ ||@||@||@||@ޢ|'a'awnext_line_helphide_pvcolorĤcizer٤term_wmax_wuse_longc Create a new `Help` instance.! 'a 'a'awappuse_long Reads help settings from an App#* and write its help to the wrapped stream.- 'a wparseruse_longǯ!" Reads help settings from a Parser%* and write its help to the wrapped stream.ٮ- 'a wparser" Reads help settings from a Parser%T and write its help to the wrapped stream which will be stderr. This method preventsW formatting when required. 'aƲwparserstderruse_longԴ-׳doc׳ڳ hidden۳ճ 'aselfparser. Writes the parser help to the wrapped stream.1 'a  @n|'a'aselfargs@ܾU Writes help for each argument in the order they were declared to the wrapped stream.X߾ 'a'b'c'dI 'b'c'dI'b'd'c'd'd)ɿ)) 'dj'b'c'dҿ:DED  # 7ܾ E 22D%% % %   2 )  ۇ9-22 (922 2 2 2 2 22 2 22 )  2 9      92 Some  2     ;  #   # #; ;J #      !"E" (#"!9"##!$ % & ' '# &'  )&&%#9 & ( % ( ' %$#59   ) )%Some * *) $* * ) ' % + +$ , , { ,  - . / /  0 1 2 2  12 01   1  /0.  { + 0 /  .-! . 3 - 3#%$  7 7-Ok 7 2 -{ +  4 4-Err 5 6 64  65'" 6  5(" 5 4 2 - , ) +$#*9#! E&  , 8 9 : : ; < = > >+  m>=,  <= ;< > <  :;9- ; : 98. 9 ? 8 ?021  C C8Ok C = 8 +$  @ @8ErrABB@BA3/BA4/A @ = 8 )#!Ok E&DD6E7E78ܾ       F | ߓ 22%ۇ%222 22; # ) ߓ ߓ    ɘɘ       self argsarg_v use_longiter2 __next2 valargfirst  iter#__next $val )arg +err 4val7err@valCܾselfargs@ X Sorts arguments by length and display order and write their help to the wrapped stream.[ 'a'b'c'd'b'c'dI'b'd'c'd'd)) 'dj'b'c'dEYY    7D    Y  ۇ   ) (D        )          Some      ;  # ؎ # #;;J !! !  ! T  "  "6 Z""#$$ %&&  &%&'' $%'#'%$#   (()*++ >+*+ (*)*,,)  - . / 0 0, /0  )/.  / 1 . 1!#"  0 . -,)Ok(BD  2 2.Some  3 32 -3 3 2 0 . 4 4-  5  6 7 74    76$ 7    (65%  6  8  85 &  9 : ; < <8 ;<   );:' ;= :=(*)<: 9 8 5 4 -   >>:Some ??>9??><:@ @9AA(A+, BC D DEFGGɘFGEFF DEC- (8EDCB.CH BH021LLBOkLGB8IIBErrJKKIKJ4/KJ5/JIGBA6 @ 9 8 5 4 -,)(7D3 AMNOO P Q RSS@ SR9  QR PQSQ OPN:PONM;NT MT=?>XXMOkXRM@ 9 &UUMErrVWWUWV@<WVA<VURM63YYC   t     Z  ۇ ; #                       ɘɘ   self argsord_m use_longiter __next valargbtmfirst (iter ,__next -val 2btm 4iter  8__next 9val>arg@errIvalLerrUvalX selfarg@3 Writes help for an argument to the wrapped stream.6 'a c'b'cselfarg@7 Writes argument's short command to the wrapped stream.: 'a c'b'cselfarg@6 Writes argument's long command to the wrapped stream.9 'a c'b'cselfarg@9 Writes argument's possible values to the wrapped stream.< 'a c'b'cselfh@ 'a self؆ argކ  spec_vals "@Æ . Writes argument's help to the wrapped stream. 1Ɔ  'a c'b'c ˆ self a @  'a  c  use_long arg @ >  j @Ϯ 4|'a'aself parser  B Writes help for all arguments (options, flags, args, subcommands) E; including titles of a Parser Object to the wrapped stream. >  'a  self parser @ F Writes help for subcommands of a Parser Object to the wrapped stream. I  'a self parser @ 9 Writes version of a Parser Object to the wrapped stream. < 'a self parser @ = Writes binary name of a Parser Object to the wrapped stream. @  'a self parser  ? Writes default help for a Parser Object to the wrapped stream. B  'a   @ @ Possible results for a copying function that stops when a given C byte was found. @  @  @ @ @    @    DelimiterFound      @    @    DelimiterNotFound      @ @ @   @     ReadError      @   @     WriteError         r w delimiter_byte "@ ]O Copies the contents of a reader into a writer until a delimiter byte is found. R0 On success, the total number of bytes that were 3* copied from reader to writer is returned. - RW    RW          )                   (7                  )ʍ               )      & ' ' &'  ' x&    Some   )           )       $ $Err  %  %$   ReadError%    % $ $   Ok           m                          &DelimiterFound &   -   -  )       -      " "Err # #"  WriteError#  # "    %   Ok    !   !  !        )      x ( ( )DelimiterNotFound( ) ( x  &  )    )           / .*      ʍ ʍ ʍ   ʍ                   ɘ  ɘ  ˘               x  x  )   r w delimiter_byte count iter __next  val wb b c e "e  $    r w  tag_buffer @ F Copies the contents of a reader into a writer until a {tag} is found, I< copying the tag content to a buffer and returning its size. ?9 In addition to errors, there are three possible outputs: <% - `None`: The reader was consumed. (K - `Some(Ok(0))`: No tag was captured but the reader still contains data. NP - `Some(Ok(length>0))`: a tag with `length` was captured to the `tag_buffer`. S    6#ˡ RW  Nj ؋  ) :  9        ފ  {                    (      Err    Someˡ     (   ReadError    WriteError                    #                       %       % 7   }   %       6 6 WriteError  %    DelimiterFound    Ok   Someˡ         DelimiterNotFound     ! " " ɘ !"  ! !  Ζ    :    #  # 1' ( ( () (* '+ , - . .  ǰ .- $ :  $Err % & &$ %Err& % & Someˡ %  % $ ' :   ,- . / 0 0 /  /0 0 ' '  ,/+ ' / , (*+ ()* 1 Ζ ()' / 9  ) ( 1 ' 1 5 5Ok  5 Someˡ 5  5  2 9  2'Err 3 4 42 3Err4 3 4 Someˡ 3  3 2  ; ' ;"! 7 8 86 7Err8 7 8 Someˡ 7  7 6  6 6 ReadError      (  - + * 9  ' ' 9!# 9  'Err! " :     :$& :  Err$ <  <%$    ,   2    ,=              ˡ            ӳ      %  ӳ        ˡ     ˡ      ɘ  ɘ    ˡ    ˡ 1    (  (  '             ˡ    ˡ   ˡ        r w  tag_buffer e  buffer_size  rb  tag_length not_tag_length e $e 2e 6 @ )|'a'aselfщ parser׉ template $@ K Write help to stream for the parser in the format defined by the template.Ȁ N & Tags arg given inside curly brackets: ) Valid tags are:с % * `{bin}` - Binary name. (( * `{version}` - Version number. +, * `{author}` - Author information.Ƃ /G * `{usage}` - Automatically generated or given usage string. JW * `{all-args}` - Help for all arguments (options, flags, positionals arguments,Ƀ Z; and subcommands) including titles. >< * `{unified}` - Unified help for options and flags. ?( * `{flags}` - Help for flags. +* * `{options}` - Help for options.߅ -8 * `{positionals}` - Help for positionals arguments. ;. * `{subcommands}` - Help for subcommands.ц 1E * `{after-help}` - Info to be displayed after the help message. HF * `{before-help}` - Info to be displayed before the help message.ԇ I T The template system is, on purpose, very simple. Therefore the tags have to written W& in the lowercase and without spacing. )  'a   ̉ ū ̫ ̫  PJ٫ ٫ ̫ ԫ  ( ԫ ݫ ݫ ޫ ū ̫    ū ƫ  ̫ ٫ lineƫ wrapper  ū  help  avail_chars @ 6  ?  'b'b 7ȳ  'b s   'b Cell  OsStr  OsString 5 DisplayӶ 3ɶ File  io   BufWriter  Write  Peekable  PathBuf¸ ; Iter۸ 7ϸ Help | AppMeta  AppFlags  ASڹ  usage   Validator  App   ArgSettings  AnyArg̺ ̺ ArgԺ Ժ ArgGroupٺ ٺ  ArgMatcher   ArgMatcher  Base   FlagBuilder   OptBuilder   PosBuilder  Switched  ComplGen  Shellӻ ƻ  ClapResult  ޻ Error   ErrorKind   ColorWhen  map  VecMap   OsStrExt2ڼ ͼ  suggestions   SubCommand  INTERNAL_ERROR_MSG    INVALID_UTF8  *  'a'b'a'b'a'b n   'a'b self s   'a'b   self s   'a'b  self  for_shell buf "   'a'bW   W             '                                                             '                          ,                                   ,    ,  ,  ,  , self  for_shell buf  self  for_shell od !   'a'b 5 self   inline   'a'b    #          #   #        #        1+assertion failed: self.verify_positionals()+++      >                 *7    ؄                               ؄     *                          ɧ%ɧ%ʧ$ C C C C9 C  C9 C C   ʧ$ʧ$ʧ$ʧ$ ʧ$! " # $ $    , $#   $ "# % & ' 8( 8) * 8+ , - . .    .-   . ,-# 8 8  ,+ 8 *+ , 8  >*)  8() * / 0 0 /؄ 0 0   *7    (/'  / (   , '&  ' %&ʧ$! "ʧ$!  %%" 1 1! 2 2!ڑ ʧ$3 4 41 5 5  3   2ʧ$ʧ$ 3453ʧ$54ʧ$6 7 72 8 8  3   ʧ$ʧ$ 3 786ʧ$ 87ʧ$ 366321ʧ$ ʧ$ʧ$  ӕ ʧ$ʧ$ 3ʧ$ɧ%ɧ%B 1B  ʧ$:   #            ؄       ؄   B ɧ%B ɧ%B ʧ$B CB CB CB ʧ$B ӕ ʧ$Bʜ ʧ$B̜ ʧ$B ڑ ʧ$B B B Bڑ B B B  8B 8B B 8B   B B B B؄  ڑ Bӕ ʧ$B B Bӕ ʧ$Bڑ B  Cself  should_err g  arg0 1arg1 2  C  C The group '   C' contains the arg '? C' that doesn't actually exist. C C  ʧ$ C C Cself a   inline ! 'a'b  I   . -%%'        #        >     ' )7         Y44#44 ߩ 44 > Y )7    / > / )     )     6 )     %        -  *          .            +  +IdII( 0 0 0 0 0  0  0 0 I(!I("I(#I($I(% & &I(% &J& ' '% I(( ) )' * *   I(I(ϓ )*(I( J*J)I($ ӕ (J(J'I(#$I("#I(!" J"I(I( !I(J!JI=I I=JJ%J$J#J JJ 1  , ,  Some  - . / 0 0 1 1,  01/  1 0 . / / - . . - - , ɧ%2ɧ%3ʧ$4 :5 :6 :7 : :  :7 :67 :56 6ʧ$8ʧ$9ʧ$:ʧ$;ʧ$< = =,ʧ$< == > >< ʧ$? @ @> A A   ʧ$ʧ$ϓ @A?ʧ$ A@ʧ$; ӕ ??>ʧ$:;ʧ$9:ʧ$89 9ʧ$ʧ$ 584ʧ$85ɧ%34ɧ%23Bؗ 2B B   B  C C  Some  D E F G G H HC   GHF  H G E F F D E E D D C  ɧ%Iɧ%Jʧ$K :L :M :N : :  :N :MN :LM Mʧ$Oʧ$Pʧ$Qʧ$Rʧ$S T TCʧ$S TT U US ʧ$V W WU X X  3   ʧ$ʧ$ 3WXVʧ$ XWʧ$R ӕ VVUʧ$QRʧ$PQʧ$OP Pʧ$ʧ$ LOKʧ$OLɧ%JKɧ%IJBؗ IB Y  Z [ [   ,[Z!  [ Z"# _ ` `    ,`_&  \ ] ]    K ]\$  ] ^\   ^\ % Y^ \ ' ` Y_ _ ' Z  a !b c d d e eY  O dec(  e d !b c c a b b a)* a  v Cw Bx y z z { {   z{y1 ɧ%fɧ%gʧ$h i j k    k jk ij jʧ$lʧ$mʧ$nʧ$oʧ$p q q ʧ$p qq r rp ʧ$s t tr u u   ʧ$ʧ$ϓ tus+ʧ$ utʧ$o ӕ ssrʧ$noʧ$mnʧ$lm mʧ$ʧ$ ilh,ʧ$liɧ%ghɧ%fgBؗ fB Bx B B0 Bx B B0 | } } ~ ~   }~|2  | y Cw x x v w w v34 { z By./ ~ } B|.- v          7 ɧ%ɧ%ʧ$ ` ` ` ` `  ` ` ` ʧ$ʧ$ʧ$ʧ$ʧ$   ʧ$    ʧ$            ʧ$ ʧ$ ϓ 5ʧ$   ʧ$  ӕ  ʧ$ʧ$ʧ$ ʧ$ʧ$ 6ʧ$ɧ%ɧ%Bؗ B   89 H     C C % %  C ά :  C  !   *   ; &          <=           ,>   B@Only one positional argument may have last(true) set. Found two.@@@     ?@           ,C ɧ%ɧ%ʧ$ V V V V V  V V V ʧ$ʧ$ʧ$ʧ$ʧ$   ʧ$    ʧ$            ʧ$ ʧ$ ϓ Aʧ$   ʧ$  ӕ  ʧ$ʧ$ʧ$ ʧ$ʧ$ Bʧ$ɧ%ɧ%Bؗ B     DE  Hɧ%ɧ%ʧ$ W W W W W  W W W ʧ$ʧ$ʧ$ʧ$ʧ$   ʧ$    ʧ$            ʧ$ ʧ$ ϓ Fʧ$   ʧ$  ӕ  ʧ$ʧ$ʧ$ ʧ$ʧ$ Gʧ$ɧ%ɧ%Bؗ B    Y  IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$     . -  % % '           Y 4   4 ߩ   /    Ȱ  IdI I( 0 0 0 I( ӕ I( I( I( I(  ӕ I(         B ɧ%B ɧ%B ʧ$B :B :B :B ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B        B ɧ%B ɧ%B ʧ$B :B :B :B ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B                 !  B ɧ%B ɧ%B ʧ$B B B B ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B   C B      B ɧ%B ɧ%B ʧ$B `B `B `B ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B           C C % !     B ɧ%B ɧ%B ʧ$B VB VB VB ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B      B ɧ%B ɧ%B ʧ$B WB WB WB ʧ$B ʧ$B ʧ$B ʧ$B ʧ$B  Bӕ ʧ$B B  W V `  : : 0 self a resIarg0 'l ,arg0 >s Carg0 Ui Yarg0 rarg0  arg0  arg0    W  W.Flags or Options may not have last(true) set. ... W% has both a short and last(true) set.%%% W W IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ W W W V  V.Flags or Options may not have last(true) set. ... V$ has both a long and last(true) set.$$$ V V IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ V V V `  `(Global arguments cannot be required. '((( `"' is marked as global and required?""" ` ` IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ ` ` `    Argument "   " has the same index as another positional argument Perhaps try .multiple(true) to allow one positional argument to take multiple values   IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$    :  :!Argument short must be unique -!!! : is already in use : : IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ : : : :  :!Argument long must be unique --!!! : is already in use : : IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ : : : 0  0Non-unique argument name:  0 is already in use 0 0 IZI( ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ 0 0 0self a   inline "  'a'b 'a'b    #        Some          (           _                   )7            _ _               Some                %   #               %  #          _   w _ L  L    ԫ      ԫ          ô        %     self a r_ifs iter  __next  val  arg val  self a   inline "  'a'b Ω   (              Some          (                             )                             Some                1                 >         ڑ   1  *7     ڑ            Some         #                      ! ! (    !   ! " # #  $ $    #$"  $ # " % & & ' (  '    # &'%  ' & % (           (    (        a )                 ޞ  ޞ        1       ڑ                      self a grps iter  __next  val  g found ag ag  self a   inline #  'a'b Ω                                  #          Some     Y !  !    ! !   !   !  >     Y  )7       "       )                (                               )                            Some                                                              Y  !      !                      self a areqs  iter  __next  val name  self a   inline #  'a'b Ω                  %      %             )                           Some                                 !         A A    M M M M     "        > > M                %                           self a l    help         version      self a    'a'b ө  self a   'a'b Ω  selfϐ groupՐ   'a'b 'aʐ self subcmd ח ޗ  'a'b 'a'b self    'a'b  self     'a'b  self֮  Ů I̮  'a'b 7ծ self  ݯ ~ѯ inlineѯ +ϯ  'a'b    N -       #    N N N N N N      ʰ  L   ʰ ԰ ԰  O ԰ ۰  - - - - - -   ߩ    #      N  -  -Ӱ   Nݯ ~   O N O - O  O  O  O  O  O self ݯ ~self   D inline +  'a'b     ߩ           D      self  Dselfٱ  DZ F inline + α 'a'b ر              DZ F  ر     selfر DZ Fself   R inline +  'a'b  Ҳ Ҳ Ҳ  Ҳ     Ѳ     R²  Ѳ Ҳ Ѳ  Ҳ self  Rself   R inline +  'a'b     # ɳ  # ɳ ҳ   ҳ ٳ  R        self  Rself    inline +߳  'a'b      ߩ       =ڴ       ߩ     ˴ ˴ ڴ Ĵ      Ϊ     "  8  *     '           8   8  8  8  8  8 "self  selfе    inline ,  'a'b ϵ            >                         Ŷ "  9  *  Ψ   '       ٵ  ϵ    9   9  9  9  9  9 Ŷ "selfϵ  self    inline ,  'a'b        η  η ׷  D  & &    & ά        &  " [  *   '          [ & [ & [  [ "self  self    inline ,  'a'b                ڹ ڹ pڹ pڹ 9ڹ !ڹ 9 ڹ ! ڹ !  ڹ 9ڹ 9    ڹ 9   ɹ  ڹ !  ڹ 9  >     ڹ p  )7       %ڹ pɺ  ɺ   ڹ ܺ  *      ܺ "             ڹ    ڹ p  ڹ p  ڹ 9   ڹ !  ڹ 9 ю ڹ !    self  self s  K inline -  'a'b  ƻ ƻ ۻ ۻ ƻ Ի  Ի ܻ ܻ   K   ƻ  ߬ ƻ ƻ  ۻ self s  Kself s  A inline -  'a'b    ߬          A     ߬   self s  Aself޼ s ̼ E inline - Ӽ  'a'b ټ   ߬         ̼ E  ټ      selfټ s ̼ Eself  ݽ /  'a'b  self     'a'b  self arg_os    'a'b  self it    'a'bIT  'aIT     )   )    k݁ ݁ ݁ ݁ ݁ ݁ ݁        )              )׺  #     ‚ т j т j т B т , т , т B  ,          т j ,     т j   т Ƀ    Ƀ  σ  Ѓ Ѓ  ރ                     >         )7    Ä      (     Ä                        )    Ä     Ä  Ä       Some       Ä  Ä        ڄ ! !ڄ  "ڄ  #ۄ  $܄  %܄  &܄  '܄  (܄  )܄  ) ܄  ܄   )( ܄   Ä  Ä   v v     vA  ܄  '(ބ  )܄    '&  ܄  %&  'ۄ  ۄ  %$ۄ   %ڄ  #$ڄ  "#  *        *ڄ ! ڄ ! "*!ڄ !  &   *  &   (  &  $  #  "ׄ  !ׄ    Å ׄ   م  !  + u , ? - ? . # / ? 0 # 1 # 1  ?  ? 10 ? # /0  1 ?   /.   ? -.  /ֆ  2ֆ  3ֆ  3 ֆ  2  3  3 u ц  *     -2, ц   2  - 4    ,      ,4+    4  ,  5 +  5! ψ  >ψ  ?ψ ? @ψ ? Aψ # Bψ ? Cψ # Dψ # D ψ ? ψ ? DC' ψ ?  6  6+Some ‡  7‡  76  7‡  7܇  8܇  9܇  9  : ;  <  <   # <;"    <  =;   =; #   :=  ;܇  8 9:  :  9ه M 8$%  8  6 ;  8  6  &  0  .  +   ψ # BC  Dψ ?   BA(  ψ ? @A  B  E  F  F  E F  Fψ    *     @E?)    E  @ы Gψ  ͋  ,     ?G>* ͋ ۋ  Gۋ  ?ň  H >ň  H,+  Qݍ " Rݍ  Sݍ  Tݍ  Uݍ  Vݍ  V ݍ  ݍ  VU2 ݍ  ʈ  Iʈ  I>Some  J  JI  J  J  K  L  L  M N  O  O   ON-    O  PN   PN .   MP  N  K LM  M  L M K/0  K  I  C  A  > ;  K  I  C  A  >Ќ  & ݍ  TUߍ  Vݍ    TS3    Tݍ "  SR4       S 6 W  X  Y  Y      YX5Y   Y  Z  [  [   Z[ 6  XZW6Y Ύ  ZΎ  X \  ]  ]   ]\7Y   ]       RW\Q8Y   \  W     R  ErrQ    Q  [  U  C  A  >  0  .  +    Ä  Ä     9   :  1  0  .  +Id ^I _I( `ď  aď  bď  cď  ď    ď  cď  bcď  ab ʏ  bI( dI( eI( fI( gI( h͏  i͏  i׏  j׏  k؏ lُ mُ m ؏ ؏ ml< ؏   m׏  kl׏  jkI( hiI( h jJ jJ i͏  n͏  nh׏  o׏  oh I( p͏  q͏  qn͏  r͏  r͏  3   I( I( 3qrp= I(J rJ qI( s׏  t׏  to׏  u׏  u׏   I( I(ϓ tus> I( J uJ tI( g ӕ psJ sJ pJ oJ nI( fgI( efI( de J eI( I( ad`? I(J dJ aI= Iķ `_@ I= J `J lJ kJ hJ gJ fJ cJ ^_J _  [Z v  w w wBC      JE  xؐ yؐ zؐ zؐ  subcommand  ؐ yzȐ Ȑ  y xDEȐ      y z 4{ .| .} .} .,The subcommand whose help message to display,,, .|} 4{Some| 4{ | @x  { { }đ ~đ đ xˑ ˑ đ Ǒ   ~FhǑ      ~         x   Q  Gh    Hh    ߬  ߬    ߬ ߬ Ih Ò Ò  +߬ Ò Β Β Β Β Β x K   K w &         & &    LE &   MN S"ޓ .IdII(            I(I(I(I(I(     I(I(JJ    I(       I(I( OEI(JJI(       I(I( PEI( JJI( ӕ JJJJI(I(I( JI(I( QEI(JJI=Iķ REI= JJJJJJJޓ .Someޓ . ˓   ji        TE   Err   U   V   W  1     R    X  ^    ^  ^     Β Β Β EΒ x\Β Β Β \]Β x  ^Β ^_Β x  `Β `aΒ x  bΒ bcΒ x  dΒ deΒ x  fΒ fg˓   ˓ E˓     S ف   ڃ         IZ I( IZI(  ׺  ݁ ׻ ׺   ‚ т jт jт B  т ,   ރ                        ڄ ! ڄ ڄ ۄ   ܄  ܄   ܄  ܄  ܄    u  ? ? # ?ю # ֆ  ֆ     ‡ ه M܇  ه M܇ ه M ه M ه M   ψ  ψ  ψ ? ψ ? ψ # ψ ?ю ψ #   ы ň  ʈ   M   M  M  M  M   ݍ " ݍ  ݍ  ݍ  ݍ  6ߊ     IdI I( ď  ď  ď  I(ʜ I(ʜ I(̜ I( I(͏  ׏ ׏ ؏ ُ ͏   ׏  ӕ I(͏  ͏ ӕ I( ׏  ׏    ؐ ؐ 4 . .đ   đ  ˑ     ߬ ߬ ߬    &   ޓ .IdI I(    I(ʜ I(ʜ I(̜ I(I(    ӕ I(  ӕ I(        ď    Β Β self it cmds݁  help_help bin_name‚ scރ sc iter  __next  val i  cmd  c  6cʈ  IresI _arg0͏  narg1׏  opb xresIarg0 arg1          ف   ڃ         IZ I( IZI(   ď  ď ď  ď ď  ف   ڃ         IZ I( IZI( ď  ď ď   help   ف   ڃ         IZ I( IZI(   self arg_os  needs_val_of (ߕ  'a'b  self matcher it ڨ   'a'b    'a  IT          t@t@t@t@t@t@t@t@t@t@t@t@t@t@t        ڨ ǫ t ttt֫  ֫ ֫  ֫  ֫  ֫   ֫  ά     *assertion failed: self.app_debug_asserts()***֫ ֫ ֫ ֫ ֫ ֫   G 3    3 ά      ӫ ֫    m m m  m     ֫   *         r   ֫   G  )    ɭ    ,    ­   /  ֫ ӫ  1  ߬  $ 1   #   ӫ  ʮ ծ ծ ծ ڮ  ڮ  կ կ կ կ گ  گ        ڰ       ± jر ر ر ر ۱  ) ۱    ̱  ̱  ± jѱ !ѱ ѱ ѱ !Some " # #!     #"  # $ % %˳ &˳ && ų  %&$ų  ߳ &߳ % $ '̴ (̴ (ܴ )ܴ *ܴ +ܴ ,ܴ ,"ܴ +,ܴ ܴ  +*ܴ ɛ "ܴ )* + - -̴ &Ѵ ()-'Ѵ ! - ) ( , *  . r/ M0 1 2 3 3 4 4%   342)  .    .    @ @' @ @ / ../ r< r/ r r$ r< r/ r r$ < = > ? ?"  ?>,  0 / M0 M M( M0 M M( 5 6 7 8 8"   87* ϵ 5ϵ 1 r0"# 4 3 1 2 2 M1&' 67 8ʵ 9ʵ :ʵ ;ʵ ;ʵ  ʵ :;ʵ 9:ε :   695+ ϵ ;ϵ 9ϵ 7ϵ 6 M5&% => ?   =<-  = > r<!"˷ . D E F F G G%   FGE3  A B B C C%   BCA0  C B A˷ . 1ɛ 'ɛ "2ɛ "ɛ !ɛ ɛ ɛ  Ѹ GѸ F D EѸ E $D45 $ H  HVV6 !K L L M N O P P" OP   ON7  MN O !  LMK8  M L I IK J JK P N K  Q  QI  Q9: J I Qع V  R  S  SJ  T  U  U   TU "   ,STR;   T  S  U 9 V  W  X  XRƾ  Yƾ  ƾ    ƾ  Y    XYW@  9 V 9 9 ? 9 V 9 9 ?о $ Zо  [о  [ܾ  \ܾ  \#о $ վ  [\ZAվ   Z  W  VBC˾  Y˾  X 9 W=>  \  [ 9 Z=<  S  ]  ^  _  _  `  `      _`^D   `  _     ^]E    ^  a ]  aGIH    e  e]Ok  e  ]  S    b  b]Err  c  d  db    dcKF  ө   d    cLF    c  b  ]ܿ  V  R J I Q  M D  Nɛ 'ɛ "Oɛ "  Pɛ !ɛ ɛ ɛ   Qҩ ҩ ҩ ҩ ҩ ҩ Rҩ ҩ ҩ ҩ   Jܿ  V  f  g  h  hR    hgT   h  fSomeg  f  g   ɛ "ɛ !ɛ   i i' iWX    j k k l l $  kljY  l k mDn+opqrstt  tsZrst rq[pqr u v v u vv+ *     Ѩ ² puo\upD ,Ѩ    o  n] owGx+yz{|}~~ߩ  ~}^|}~Ϊ |{_z{|     + *      ² zy`zG ,    y  xay?+ ά b     + *      ² c? ,      d , xweCx nwmfwn  } { s q     m          j   g          m      "   h              i      jk -      "   }  * *  )         "    l      )    m $     *  * n *        prq  * *Ok *  9       www *     Err          so       * to            u j   v i  M j  x i D 1 - - - -| - - - -|     "              ɘ     ~    -z{         -zy  ' '  &         "        &   !    '  '  '          ' 'Ok '  6        '     Err                 '                u    / ' '  '      "           / ' '  '      "                 ' '  '    '  E   '  /  .h           ' '  '    '  E   '  /  .f                         "                        0 / . .       .   .  .    / /  /  0                  Err              w   j     Opt   J J & J & &ߩ  J J  J &  J Ϊ   J          *                ,        + +  *         "          *    %     +  +  +          + +Ok +  :       x +     Err                 +               v i $ D    K J &     &   !       * )     )   $          " !     !       J J J J J J     (       K      J   J   "      *     F         "                   #2    2 )      s;#;## ;; ;#; s )    &> ) ζ7        ԷH ) ŷԷ F   F          Some  %     "            %        6                   6     0 / . .       .  . .    / /  /  0                       Err                  N         +    $ +   & j j j j j j +               '          '    "   j         +    j           e  +                       ! ! ! !       e  e e  e  e e            %                        +       e          e  !  ! !  ! ! ! ! ! ! !  ! L! '! ! ! ! ! '!   " ! ! ! !  #   ! !  ! !  !   ! !Some   " " " " "      " "    " # ' # # # # #      # '# '     ' # # # " # # !# # # # # !#  N   # # #  # # # # #Some $ $  $Pos $ $ # # # # # # # # # # # # # # # # # #    # # #    # # # # # #  % E% !% % % % % % % % % %    %  % %  % g% @% @% % % % % % % % % % %    % % % % % E% E E% E% E E% % % E% % % % % % % % !%   % % % E% % % %    % % % %    % %#%2%%%%%% %  %%%% %%2% )    %%%s%;%#%;%#%#% ;%; ;#%%;% %%s% )    &%%>%% ) ۷      H%%% ) %% @%   @ @% % % g%  ,  % % % % % % % % % % % %  %   % % # " " " ! ! ! ! ! ! !  ! !  ! B! ! ! ! ! !) !    ! ! ! L! L L! L! L L! ! ! ! ! !% !    ! ! ! ! ! L! ! ! L! B! B B! B! B B! ! ! ! ! !% !    ! ! ! ! ! B! ! ! B! ! ! ! !  !    ! $! ! ! ! ! ! !! ! ! ! ! !!   ! ! !  !΃ ) !΃ !΃ !ڃ !ڃ !΃ )!Ӄ  Ӄ $ ! !Some ? & & & & & &  &     ?& ? ?& ?& ? ?& & & & & & &% &    & & & & & ?& & & &  & ?& &  & & & & & & &% &    & & & & & & & & &" &    & & &    & & &    & & & & &  & 0& /& .& .& & & & & & & .&  . & .& & & & /& /  / & 0& & & & &    & & & Җ  & & & & &Err & & & & & & & & & & & !ă !  ɛ  ɛ ɛ 'ɛ "ɛ "ɛ  P &  & &  & J& & & & & & &    & & & & & &  & & J& J J& J& J J& %& & & & & &  &    & & & & & J& & %&  & & J& & %& & &߬ & &% %&    & & & & & 0 & & & & & & &   & 0&  ,  հ   % & & & & & & & & & $&    & & 'D'+''''''' ' ''' '' ' ' ' ' '+' *    ² ''D' ,Ѩ     ڛ ''G'+'''''''ߩ ' '''Ϊ '' ' ' ' ' '+' *    ² ''G' ,     '?'+''''' 'ά '' ' ' ' ' '+' *    ² ''?' ,     '' C''' '' ' ' ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (    ( ( ( ( ( ( ( ( ' ' ' '  'Some ' ' '  ' & & & ) & (& & & & & & & & & &" & &    & & & & (&    # & & & & ) & )  )   &  &   & & )& )&Ok & & & & #) ) ) ) )  #)    ) &  &  &Err  +  +  +  +      +  + )     +  & & & &  ! ) ) ) ) 2) ) ) ) )  2)    ) )ˀ -)ˀ -)ˀ -)ˀ -)    ) )€  ,     € 7 ) ) ) $. . .߬ . .( $.    . . . + . *. . .  . . *.   Ƃ .Ƃ . +. Ƃ . h. h.ނ . ނ .  ނ . h. . $. . .߬ . .( $.    . . .ă ! &! ! !˃ ! Ž  !Ž !Î !Ď ^!Ŏ #!Ŏ !Ŏ !ю !ю !Ŏ #!ʎ  ʎ  !΄ !΄ !΄ !΄ !΄ !"΄ !΄  ΄ ΄ !ӄ !΄ !Մ  Մ ܄ ! !  !Dž  !ȅ !ȅ !ȅ !ԅ !ԅ !ȅ !ͅ  ͅ ΄ ! ! !Some 0 0 0   0  0 !Ȅ ! ! !Dž !  !ą !ڇ ! ! ! ! ! !" !    !† 0!Æ /!Ć .!Ć .!ކ !ކ ! ! ! ! !Ć .!Ć Ć .Ć .! ! ! !Æ /!Æ / Æ / !† 0! ! ! ! !    ! ! !    ! ! !Err ! ! ! ! !ڇ ! ! ! !  ! ! !   ! ! !    ! %!   !  ! !Ȅ ! ! ! / /    1  1҉ 1҉ 1҉ 1҉ 1Չ  Չ ډ 1ȉ 1 ȉ 1 1͉ 1͉ 1Some 2 2 2 2    2 4 3 3 3 3 3 3 3 3 3   43 4 43 43 4 43 3 3 3 3 3 3 3   Ί 3Ί 3Ί 3Ί 3 3 3 3 3   2 3 3 3    3 43Ί 3Ί 3 3 Ί 3 43 3Ȍ 3Ȍ 3Ȍ 3، 3، 3، 3، ، 3܌ 3܌ 3܌ 3܌ 3܌ 3܌ 3܌ 3܌  ܌  3 03 /3 .3 .3‹ 3‹ 3ȋ 3ȋ 3ы 3ы 3 .3  . .3Ջ 3Ջ 3Ջ 3 /3 /  /Ջ 3 03 3 3 3 3    3 3 3    3 3 3Err 3 3 3 3 3 3 2 2 1 1 /  / /  / !  ! !  ! !܌ 3݌ 3Ȍ 3͌ ͌ ތ 3ތ 3ތ 3ߌ 3ߌ 3ߌ 3ߌ 3 2 2 1 1 1 1 1 1 1 k1 1 1  1 1 1 1  1 1    1 k1 k1 1 1 1  w 1 1 1 1 1  /  / !  ! ! &!Ž !Ž Ž !Ž !Ž Ž ! "! !! ! ! ! ! !!    ! ! !Î !Î Î !Î !Î Î ! ! ! ! ! !" !   Ώ !Ώ !Ž ! Ώ !Ž !Ď ^!Ď ^Ď ^!Ď ^!Ď ^Ď ^! %! ! ! ! ! %!    ! !Î ! ! !Ď ^! ! !Ď ^! ! !ɏ !ɏ !ɏ !ɏ !ɏ ɘɏ !ɏ !̏ ! !  ͏ !͏ !͏ !͏ !Î ! ! ! "!  !Ž ! H ! ! ! ! !  ! H! !ܐ !ݐ !ސ !ސ !ސ !ސ !ސ !ސ !"ސ !ސ  ސ ސ ! !ސ !   ސ ! !ݐ !ݐ  ݐ  !ܐ ! ! ! !  ! 0! /! .! .! ! !Ƒ !Ƒ !ϑ !ϑ ! .!  . ! .!ӑ !ӑ !ӑ ! /! /  /ӑ ! 0! ! ! ! !    ! ! !  Җ  ! ! ! ! !Err ! ! ! ! ! ! ! ! ! ! ! ! ! H! H H! H! H H! ;! !! ! ! ! ! !!    ! ! ! ;! ; ;! ;! ; ;!Ԓ !Ԓ !Ԓ !Ԓ !ْ ɣ ْ  ! ! H!ϒ !ϒ ! ;! ! ;! ֙ ! ! ! ! ! ! ! ! !" !    F! ! ! !“ !“ !“ !“ !“ !“ !"“ !“  “ “ !Ǔ !“ !ɓ  ɓ “ !ٓ ! !    ٓ ! ! !#!2!!!!!! !  !!!! !!2! )    !!!s!;!#!;!#!#! ;!; ;#!!;! !!s! )    &!!>!! ) ۷      H!!! ) !! F!   F ! ! !  ! !ߗ %!ߗ !ߗ !ߗ !ߗ !ߗ !"ߗ !ߗ  ߗ  ! !Some 4є %4є 4є 4є 4є 4є 4"є 4є  є є 4֔ 4є 4ؔ  ؔ  4є %4   4  4 4 4 64 4 4 4   4•  •  4  4ɕ 4Օ 4Օ 4Օ 4 Օ 4 64˕ ˕  4 4 04 /4 .4 .4 4 4 4 4 4 4 .4  . .4 4 4 4 /4 /  / 4 04ɖ 4ɖ 4ɖ 4ɖ 4Ζ  Ζ  4Ԗ 4 4  4    4 4 4 4 4  4 4Err 4 4 4 4 4 4 4 ! ! ! ! ! ! ! ! ! ! ! ! !ߗ ! !ߗ !    !ߗ %!   !  ! 6! ! ! !   !    !Ę !Ę !Ę ! Ę ! 6!  Ә !Ә ! ! ! ! !    ! !  !    ! ! !  ! !Err ! ! ! ! ! ! ! !    ! ! !    ! ! ! ! !  !˚ 0!̚ /!͚ .!͚ .! ! ! ! ! ! !͚ .!͚ ͚ . !͚ .! ! ! !̚ /!̚ / ̚ / !˚ 0! ! ! ! !    ! !֙ !֙ Җ֙  ! ! ! !ҙ !Errҙ ! ! ! ! ! ! ! ! ! !˙ !ɛ  ɛ ɛ 'ɛ "ɛ "ɛ ɛ !ɛ ɛ ɛ ± jԛ     #      #     Some 5֜ 5֜ S55555555 5 555 555555 55 *    55 5 5 5  5֜ S5  ,   5 5֜ 5  ֜ 5    5 5 5 5 5Ş . 6Ş -6Ş 6Ş 6۞ 6۞ 6ܞ 6ݞ 6ݞ 6ܞ 6ܞ  ܞ  6۞ 6۞ 6 6 6 6 6Ş -6ʞ    ʞ ( 5 6 6 6 6Ş . 6Ş . Ş .   6  6   6 6Ş .6Ş .6Ok 6 6 6 6 5Ş . 6  6  6Err  8  8  8  8      8  8Ş .     8  6 6 6 6 5 5      Q 5      +      +   &ş ʟ ʟ ʟ   ʟ ݟ  ݟ       ʟ 6      ;̠ ;̠ ; /; .; ; ; ; ; ; ; .;  . ; ; ; /; ; ; ; ;    ; ;   ɡ ;ǡ ;ǡ ;ǡ ; ;Err ;ȡ ;ɡ ;ɡ ;ס      ޡ   ԛ  88 #8  < < < < < < < < <     < <  <       <  <   < < < <Ok < < <ף < +< < < < < < < <      <  <  <Err  >  >  >  >      >  >      >  < < <        < < < <    < +<   <ä &<ä &< < <ף <ף <ף  ף <# < < <ӣ <Errӣ < < < <̣        $     ܦ ADA+AAAAAAA A AAA AA A A A A A+A *    ² AADA ,Ѩ      AAGA+AAAAAAAߩ A AAAΪ AA A A A A A+A *    ² AAGA ,     A?A+AAAAA Aά AA A A A A A+A *    ² AA?A ,     AA CAAA AA A A A A A B B Bԧ Bԧ B B B B B B B B B B B B   ͨ Bͨ Bͨ Bͨ Bͨ BΨ BΨ BΨ Bب A A A A A A A    A A A A A A A A    A A A A A A  Aũ Aũ A AA   , ̩ A̩ A̩ A̩ Aҩ ҩ ҩ ҩ ҩ ҩ ҩ ҩ ҩ ө Jҩ ҩ ҩ ҩ ɛ    f    f  f  R J I Q Dɛ 'ɛ "Uɛ ɛ ɛ כ  ؛ ؛ כ   ԛ ɛ ɛ ɛ ɛ Some ɛ  ɛ      !  ! ! /  / / 1 4  4 4 !  ! !Cڨ Ʈ { y y x x i i g               * *     ' '       + +  8 7 ! " R# # ! & ' &  &  * )& ), ) ! ! /܉ 1 2 !  5  6  7Ş .6Ş .9    <  = < ? ئ A٩     t   ֫  ֫  ֫  ֫  ֫  m m  G 3  ɭ  1 ʮ  ծ կ  կ     ± j ر ± jر ̱  ѱ     ˳   ̴  ܴ  ܴ  ܴ  ܴ   r M       ʵ  ʵ  ʵ              !             9   ƾ о $ о  ܾ                        DѨ +         G +ɔ         ?+                                * * )                *   -            ɘ  ɘ          ' ' &               '        /  Ƌ '  '    '            /   '  '    '                     0 / . .         ɔ J J & J &     + + *                +   K J &      " !   * )    F                 #2   ю ŷs ; # ;ю #ζ>    %      6ߊ     0 / . .      +   +      '   e +                 ! "    '     !      #   #                 E  !                g  @  @                 #2   ю s ; # ;ю #>    L '      B         & ! &  &   ! ?                 0 / . .         J    %    %  0    &   'D+        G+ɔ        ?+   ͢             ) (           &     )& #    2  Ƴˀ -ˀ - $  + *   ނ  $  &΃ )  & ΃  & ڃ  ! ΄  ΄  ΄  ΄   ! Dž  ȅ  ȅ  ԅ  † 0Æ /Ć .Ć . ކ     %  %  %  %  / ҉  ҉ ȉ  ͉ 1 2  4          0 / . . ‹ ȋ  ы  Ȍ Ȍ ، ،  ܌  ܌  ܌  ܌    k    &Ž   &Ž  &Î  &Ď ^ &Ŏ # & Ŏ  & ю  & % &  &  &  &  &  &  &ɏ  &ɘɏ  &ɘɏ  & " & ! &  &  ܐ ݐ  ސ  ސ  ސ  ސ  ސ    0 / . . Ƒ  ϑ   & H  &  &  & ; & ! &  &  &Ԓ  & Ԓ   F        “   “   “   “   “  #2   ю s ; # ;ю #>  ! є % є  є  є  є   6ߊ  Օ Օ  0 / . .    ɖ ɖ  ߗ % ߗ  ߗ  ߗ  ߗ  6ߊ  Ę Ę  ֙          ˚ 0̚ /͚ .͚ .    כ  ؛    5֜ ֜ ֜  ֜ S֜      ю ֜  ֜  Ş . Ş - Ş ۞ ۞ ܞ ݞ       6    Ş .6 #   ş ߊ ʟ  ʟ    ̠  / .     +               <     <ף  +     ä &    ܦ AD+        G+ɔ        ?+        ԧ          A   A  A  A  A  Aũ  # ƾ  ҩ ɛ      ɛ 6self matcher it has_argsʮ  subcmd_name  needs_val_of  pos_counter sc_is_external argѱ !arg_os "starts_new_arg 'is_match  Isc_name  Jsc_name  Rerr  bval  e check_all jany_arg merr  val *err  val 'name arg err  val +cdate low_index_mults   missing_pos !na "n #p $sc_match %p & check_all 'any_arg (err  *val ),sc_name /s 0sc_m 1v͉ 2a 3cdate 4 pos_sc_name 5sc_name 6err  7valŞ .9bnş ;out <err  =val ? check_all Aany_argܦ Bڨ       Cڨ Ʈ { y y x x i i g               * *     ' '       + +  8 7 ! " R# # ! & ' &  &  * )& ), ) ! ! /܉ 1 2 !  5  6  7Ş .6Ş .9    <  = < ? ئ A   ƾ ƾ helpƾ ƾ Cڨ Ʈ { y y x x i i g               * *     ' '       + +  8 7 ! " R# # ! & ' &  &  * )& ), ) ! ! /܉ 1 2 !  5  6  7Ş .6Ş .9    <  = < ? ئ A ƾ ƾ ƾ self matcher ٩ ܩ  'a'b   self  ߱   'a'b  self  ͳ г  'a'b  self sc_name matcher it ,   'a'b      IT߽  н  ӽ     e        '  &      &    !   '     %  "                      "  )            ,  )                         (              H                )&                    Some                           H     ! ! " # $ % % $%   $#  "# $ & ' ' &Some' & ' ( ( E  !"&(    E ( & " ! % #  )  *  *     ( *)    *  +  +) l    ,  -  .  /  /+  ./    ).-    .  0 -  0  /  - , +  )  #   *  1  1-Some  2  21  ,2  2  1  /  -  3  3, < 4Ư. 5  6  7  7  67կ 8  9  :  ;        ;  :;  9:  :կ <կ =կ >կ ?կ @  A  A3կ @A A  B  B@կ C  D  DB  E  E  3   կ կ 3DECկ  E Dկ ? ӕ C C Bկ >?կ =>կ <=  =կ կ 9<8 կ < 9Ư. ˯  2685!˯) 8 6  F  G  G   FG <   / 5F4"   F  5  G  @  ?  >  ;  7  4  3 , l    $   %  H I I J K K   JK   IJH& J I K H eL 5M 5N O 5P Q Q  5 5  QP' 5 OP Q 5  > ON(  5MN O R S S R S S e  *7        MRL) " R M T L T+* ] U ULSome  V   V,    WIdXIYI(Z [ \ ]      ] \] [\ \I(^I(_I(`I(aI(b 5c 5d e f f     fe-`  f g h i  i.`  hi gh 5 egd/0  g e 5cd j k  l m m     ,ml10 Ji` m l23 p p  kp p 5 n o o  on40  o kn n 5 jk q r s t tU     ts60  t rs qrI(bcI(b jI(b qJqJjJc 5u 5ub v vb w wb I(x 5y 5yu 5z 5z 5ćI(I(yzx70I(JzJyI({ | |v } }   I(I(ϓ |}{80I(J}J|I(~  w     I(I(ϓ ~90I( JJI(a ӕ x{~J~J{JxJwJvJuI(`aI(_`I(^_ J_I(I( [^Z:0I(J^J[I=Iķ ZY;0I=JZJsJrJlJkJi=<JY` JiJhJdJbJaJ`J]JXYJY WSomeX W X U   ba      ?`    5 @A    5 { {        BA J`  {CD      {E    {E {     U     FA    I(I( I( JJJ 5 5 { {   I( 5 5 5 5 5ćI(I( GAI(JJI( { { { { {  I(I( ϓ HAI(JJI(       I(I( ϓ IAI( JJI( ӕ JJJJJJI(I(I( JI(I( JAI(JJI=Iķ KAI=JJJJJJMLJ` JJJJJJJJJ Some   U   dc    +  + O` +        QSR ` + +Ok       t   U     Y`  +     Err          UP        + VP             VW     V U P N L X   T      V  Z[   t t    \`  `        V U ] P N L Ok   ^  T     V  _ U   W ` U   W W IdII(            I(I(I(I(I( 5 5        >`  U    ` U     +  *  U   V    *    N` %    H ?  ?  l c  c կ   IZI(IZI(     + +ξ  ߽      ' &    "                                              ߊ             < Ư.    կ    կ կ կ կҠկ   ӕ կ ć        e  5 5   5  ΐ       IdI I(    I( ӕ I(I(I(  I( 5 5ߊ                  5  ӕ I( 5ć 5ӕ I(  ӕ I(   IdI I(    I(I(I(I(I( 5 5ߊ     { {        5 { ӕ I( 5ć 5ӕ I( { {ӕ I(   +  *             +   t        self߽ sc_name matcher it  mid_string hs  iter  __next  val k reqs  iter  +__next  ,val  1s  3arg0  Bsc U sc_matcher VresIYarg0 5uarg1 varg2 wresIarg0 5arg1 {arg2 err  val +             H ?  ?  l c  c կ   IZI(IZI(     + +              H ?  ?  l c  c կ   IZI(IZI(     + +             H ?  ?  l c  c կ   IZI(IZI(     + +   self name    'a'b # 'a self group   'a'b  self group    'a'b  self     'a'b  self arg    'a'b  self arg    'a'b  self    'a'b  self߅use_longՅ؅ 'a'b ޅselfɉuse_longω 'a'b ȉselfmatcherfull_argƍit- 'a'b     IT     ώ V(            (         =      - ˑ4ˑ ˑ ˑˑˑ ԑ-ԑˑ ˑ4  =  őő Some Ò ÒҒ ݒݒ     3YY--ߩ --  --Ϊ   Y )     Y !"" !  "" *    !!˓ # ˓ #4=Y>Y?-@A-BCC -- CB#-Г$Г$Some $% & &߬ ''($ &'%'&%(Ǖ1 )Ǖ0*Ǖ+Ǖ+֕,֕, ە-ە-$ .//   , /. /00Ǖ0̕ +,-.0*̕+0.-,+Ǖ1 Ǖ1 *)Ǖ1  * 1 ) 1 Ǖ15Ǖ15)Ok Ǖ1 (55)2 6 7 7 899$8  992 ,  հ 786'Ǖ1  2 2)Err 3 4 42  43  4 Ǖ1  3  3 2) ($ ƞƞƞ   87t6 !t"ۖ: ; ;$ ۖ:Some;ۖ:;Ζ ::t"6<<(Ok <<ABC- A@$ADY )    @D?%Y>?D@EFF EFF *    >E=&E> G = G('# fgghh# ghf@HH=SomeѨ $ I J J߬  K K($  JKI)  K J I) L( M N Nњ Oњ O (  NOM*#Ԛ OԚ N) ) ML+) ՚ M՚ P L՚ P-/.֚  ) T) TLOk՚ T֚ L U V W W X XH Y Y  WXYV4) ՚ Q՚ QLErr՚ R՚ S՚ SQ՚ ՚ SR0,՚ ՚ S՚ ) ƆR1,՚ ՚ R՚ Q֚ L՚ 2H՚ 3ƞBƞ?ƞ=՚  Y X W  VU5  V Z U Z798   ^ ^UOk  ^ Uʛ3 _ʛ `ʛ `  a b bH a Ѩ b bʛ3 ՛ ,  հ `ܛa_<՛(  [ [UErr \ ] ][  ]\:6  ]  Ɔ\;6  \ [ U 2 a `Ǜv _=>Ǜv ? c d dH  cSomed c d  c cǛv ? _՜ e՜ eҜ Ok eҜ  e˜2hgfAB! jkkll&! kljDii!Ok i!ԝi(Cƞf(3lkajEF ƞjƞfƞBƞ?ƞ=ƞƞƞ noppq )    pqoGmmOk mmƞj#Cȟqȟp&ʟ ) onHʟ ҟo rSst uv w wn wvIJ uvw utKJnu#xS )     txsLJ(ȠxȠtjנ )  srMJנ ߠsvTyzz!{!| }~~  ~}NO~     ! }|POrJ !{|}  r  QOT z{yROO{zС̡ /     ySO̡yrTJrnUn  |  Ǖ1Ǖ1ݗ՚  ՚  ) )     ݟ    ƍ(         ő  ˑ4 ˑ  ˑ ˑ    3 YY -  - ˓  Г$    Ǖ1 Ǖ0 Ǖ֕ ە      Ǖ12  Ԅ ۖ 4 YY -  -  Ѩ $  ) (  њ՚ ՚ ՚ ՚ )   Ѩ       ʛ3 ʛ җ  ՜#   !       S      #T !!          ڧ©Сself matcherfull_argƍitval arg p0p1őoptГ$ret(err 2valǕ15flag Herr՚ Qval) Terr [val^ args_rest n args_rest2 r selfˢmatcher٢full_arg% 'a'b  Ƣselfvalopthad_eqmatcher5 'a'b  'a'b  selfargvalmatcher)  'a'bA  A'a'b37P O  %  OOOOOO*     *    % P    O  O JJKKLLMM- JKLM5(        FFGGHHII-FGHI3( Some       !""# $%% $%%#$$   "#! .. --(. . .     ..Ok .2Ok 22.   Err        . Ɔ       # "  (!   ! & &  ' ( ) * *& )*  ))(  )+ (+  * ('&  j ;%<==> ?@@ ?@@>??% =><-! ,,(Some  - -, '- -, * (. .', /, 0+ 1 2 2 3 3 4 4. 5 5+ 23451!& 5 4 3 2, , 10",  1 6 0 6$&%  , :, :0Ok ,/: :3 / / 0.',  7 70Err 8 9 97  98'#  9 , Ɔ8(#  8 7 / 0.'&   j;jj,j;jj,)ABBCC) BCA.%A<;/0>=j<+)CBjA*)1DDDD1;EEOk EE24IHGF4 6MLKJ6   ..    , , N    P O  *      2 .2 . 2 -2 22 2  2 2  .              , , +       , j %  )   - -- -- -- -selfargvalmatcherdelimerr val.iretiter &__next 'val ,v .err 7val, : selfargvmatcher'  'a'b  A'(?((           (           Some    M  Ok  "  !      !   4      4 ,  !! " #$$ $# "#$?!" "! %  %&&?& Some  ' ( (&  ('"  ( ) )'M * + , - -) ,-  ,+ )" ,. +. - +*)" //+Some00/*00/ - +1 1*23345514566 3462643521*M) '&&98`7 7>>Ok >> : ; <== =<!  ;<=:Opt;:; Ok : :<7'  #?  78899 897?#%? Some #@ @$# eeMBBA   (    M M M !   4                         selfargvmatchertgrps&iter )__next *val/grp1 selfflagmatcher! 'a'b 'a'b selfargmatcher args_rest /  'a'b   selfwuse_long 'a'b  W                Ok          Err                         /                  selfwuse_longerr  val  selfwuse_long 'a'b  W  " k " "   ' ' ' ' ؄   k ,      7''  """"؄ k ,  2  k         GGկHIJKa  KaJKIJ JկLկMկNկOկPQRSTT U ڧTUS Some    D    //կ0123_  3_2312 2կ4կ5կ6կ7կ89:;<< =<=;կ`  ` կկկկկ !"## #"!"#$%%-$% ! $ $! &&կկ &&''(( կ)**'++  կկ *+)կ+*կ,--(..  կկϓ -.,կ  .-կ ӕ ),,)('կկկ կկ կƯ.˯   ˯) %" =<:;9:>>կ8 9կ8 >>9??8 @@8 կABB?CC  կկϓ BCAկCBկDEE@FF  կկϓ EFDկ FEկ7 ӕ ADDA@?կ67կ56կ45 5կկ 140կ41Ư.˯ /0˯)0/;:8763!ÀUÀTRSQRƀVƀVկP QկP VVQWWP ƀXƀXP կYZZW[[  կկϓ Z[Yկ[Zկ\ƀ]ƀ]Xƀ^ƀ^ƀ  կկϓ ]^\կ ^]կO ӕ Y\\YXWկNOկMNկLM Mկկ ILHկLIƯ.˯ GH ˯)HGӀSӀRӀPӀOӀNӀK!ــ ڀկկկb   k 'k"k؄ "kk "k'k؄ 'ߊ   Ư. Ư. կƯ. Ư. Ư. Ư. կƯ.ʜ կƯ.ʜ կƯ.̜ կƯ.ݖ կƯ.Ư.Ư.Ư.Ư.Ư.Ư.Ư.  Ư.ӕ կƯ.Ư. Ư.ӕ կƯ. Ư. Ư. Ư. կƯ. Ư. Ư. Ư. կƯ.ʜ կƯ.ʜ կƯ.̜ կƯ.  կƯ. Ư.Ư.Ư.Ư.ڧƯ.   Ư.ӕ կƯ. Ư. Ư.ӕ կƯ. Ư. Ư. Ư. կƯ. Ư. Ư. Ư. կƯ.ʜ կƯ.ʜ կƯ.̜ կƯ.կƯ. Ư.Ư.Ư.Ư.ڧƯ. ƀ  ƀƯ.ӕ կƯ. Ư. Ư.ӕ կƯ. ƀƯ. ƀ    selfwuse_longverbnarg0'arg1(arg0?arg1@arg0Warg1ƀX  կկկ    կկկ    կկկ  self  'a'b selfww 'a'b  W  ڂ'ڂ ڂ'w  ڂ'ڂ' ڂ' selfwwselfw{ 'a'b  W  ܃&܃܃&{à  ܃&܃& ܃& selfw{selfw~ 'a'b  W  ܄*܄! ܄*~Ä  ܄*܄* ܄* selfw~selfmatcher 'a'b self֟matcherܟŸ ɟ 'a'b џselfͪ Rƪ 'a'b 7̪self O 'a'b 7self f 'a'b 'a'bself جN߬ 'a'b 7self doc] hidden 'a'b self߱nameʱѱ 'a'b  'a'bޱselfvalueõ@ Check is a given string matches the binary name for this parserC 'a'b selfvalue·4 Check is a given string is an alias for this parser7 'a'b selfӻscٻ 'a'b 'b  'b ݻselflXinline_  'a'b  ,,Z--    --   -  -  Z )      )   Ψ  $   q< <  ߩ << < <Ϊ q )   )     $ )   ,      *Ā     X  ,,Z -  - Āq <   <     selflXselfs`inline_  'a'b  --Z--    --   -  -  Z )      ) Ċ  Ψ  $   q< <  ߩ << < <Ϊ q )   )     $ )   - & *ݏ     ` & -&-ݏZ -  - Ċq <   <  && selfs` h n  %   AsciiExtBitOrFromStrBS? ߬ ߬ ߬ ߬ selfrhsJ ߬ ߬ ߬ ߬ ߬  ߬ allow` deprecated ߬ 8 ߬ @ ߬ selfs}  ߬ selfs М selfs  ߬   B s   BBTreeMapVecDequeParserɧASէ  ArgSettings AnyArg ArgMatcher    ArgMatcher    PosBuilder  INTERNAL_ERROR_MSGȨ Ȩ ? pusedɪC ͘       ڑ        on              on     +؄ ߩ  Ϊ           + *     +؄  Űά    Some " !  ïï!  FFF FFF ݯ ޯޯޯ  ޯ    دد" دF ݯ  F    + * ը  ʱʱSome ߰"!   !  ߰E߰E߰E߰E߰E߰E!"" ## "#!! ߰" ߰E#"߰E!fͰe$   ڑ +ɔ        F"F!F F ïFݯ FޯF ޯF +   ը   ߰E߰"߰E!߰E ߰E ߰E߰E ߰E np؄ o p      npmatcherĭextra 'a'b 'b 'apusedA ͘ɸ3   ̸̸̸؄   ̸ܸ ܸ   ؄   ̸0 ɸ3̸0  ɸ3ߊ ̸ ̸  p؄ ɸ3      r!    #IdId I I(          I(I(I(I(I(I(JI(ćI(I( I( JJI( ӕ JJI(I(I( JI(I(    I(!JJ I=Iķ    I= J JJJJJ  J Id »ĻĻ Ļ Ļ  Ļ ĻĻĻĻĻĻŻĻĻĻĻ !IZI(  !IdIdI I(  I( I( I( I(ҠI(ӕ I(ćڧ»ĻasresI arg0!  !IZI(F       BBBBBB  ¾ ¾   վվ־  Bվ վ  վBF   F      ¾oF߿     ߿  ߿   p߿#    #  #   o#$     $  $   p$     A  oooooo       AAAAAA       o  A  A    o    oAo oo o oo o ooo o p!       !  !  p!$     $  $   p$p incl_reqs ?       s%    #IdId I I(          I(I(I(I(I(I(JI(ćI(I( I( JJI( ӕ JJI(I(I( JI(I(    I(%JJ I=Iķ    I= J JJJJJ  J Id      %IZI( %IdIdI I(  I( I( I( I(ҠI(ӕ I(ćڧaccsresI arg0%  %IZI(3   ؄       ؄   0 30 3ߊ    p؄ 3pused: ͘(    !!  " (  (! pos(&     &  & pos&$      $  $ pos$$             ڑ      $   $  ڑ  ڑ ggrp_sڑ $     Z"!!      ZZZZZZ         " Z      Z      Z"!    pos(    !!" (  (! pos(&     &  & pos&$      $  $ pos$D     I(            I(I(I( I( I(     D   I(   I(  JJ     I( 3     I(I( 3 I(J JJI(  I(I(ϓ I( JJI( ӕ JJJJI(  I( I( JI(I( I(JJI=Iķ I=JJJ  JJ J J J JDIZI(I   D  I(     I(ʜ I(ʜ I(̜ I(  I(       ӕ I( ζӕ I(    posresIarg0arg1D    [ ]  DIZI(          G# # GGGGGG             G      G     Some        G#      idxpos     ؄       p؄         Some        highest_req_posidxpos(    !!" (  (! pos(&     &  & pos&$      $  $ pos$D     I(            I(I(I( I( I(   γ D   ˴I(   I(  JJ     I(ζI(I(I(J JJI(  I(I(ϓ I( JJI( ӕ JJJJI(  I( I( JI(I( I(JJI=Iķ I=JJJ  JJ J J J JDIZI(I D  I(     I(ʜ I(ʜ I(̜ I(I(       ӕ I( ζӕ I(    posresIarg0arg1D    [ ]  DIZI(     p incl_reqs >  "    ڑ   "   " ڑ  ڑ  ggrp_sڑ "p&          ,  Njȋ     a         ڑ    ڑ    ڑ argaڑ "   Ψ      ,  , "  Ψ "Ѩ   a"         Njȋ   a         ڑ    ڑ    ڑ argaڑ "        "   "  a"         Njȋ   a         ڑ    ڑ    ڑ argaڑ "        "   "  a"        ,         g    ڑ       ڑ  ڑ gaڑ ˆ     φφ φ  φچ , چφ , ˆ  φ  ˆ  ̆ φφ ğˆ          Njȋ   a         ڑ    ڑ    ڑ argaڑ "   Ψ     " "Ѩ  a"         Njȋ   a         ڑ    ڑ    ڑ argaڑ "        " "  a"         Njȋ   a         ڑ    ڑ    ڑ argaڑ "        " "  a"           g    ڑ       ڑ  ڑ gaڑ ˆ     φφ φ  φچچφˆ  φ՘ˆ  ̆φφ ğˆ !           ?!   !      gn desc_reqs̃  !     ؄  ĝĝŝ         gp؄               ڑ ڑ     ڑ    pa˞ʞ3    ΞΞΞ Ξ ؄  Ξܞά ܞΞΞ/ * ʞ3Ξ   ʞ3ڑ ˞ Ξ Ξ Ξ a˞p؄ ʞ3          ڑ  mpos         ڑ    ڑ    ڑ xposşڑ ğ7    ʟʟʟ ʟ ؄  ʟ؟ά ؟ʟߟڑ ʟ1 * ğ7ʟ    ğ7 ş ʟ ʟ ʟ ڑ posşp؄ ğ72      ۇ+++++++    à    +2+   2     incl_last ۇpos2٠+    $$ $$ $     $ߠ% ٠+ ߠ  ٠+ڠ$  $     posڠargs_in_groups ٠+             posۢ           ۢ  ۢ ܢ ڑ    posܢaۢ7      ؄  ΢ά ΢բۢۢۢۢ3ע * ע7   7ڑ     ۢۢap؄ 7         ڑ £££ã   ڑ    ڑ xposڑ 7      ؄  ά ڑ £1 * ãããģ7  7     ڑ posp؄ 7ڣ2    ܣܣ  ۇ+++++++  +ڣ2+   ڣ2ۣ ܣ    incl_last ۇposܣڣ2+    $$ $$ $     $̤̤% ̤̤̤ͤ+   +$  $     posargs_in_groups +          pos¨    ƨ ƨ Ǩ Ǩ  ƨ ƨ ԨԨƨƨƨררררب¨ƨ  ¨ èƨ ڑ ƨ  Ǩ Ԩpèname¨:    2  ؄  ά ¨¨¨¨ר2 * بب3 بب٨:    :ڑ 2    ¨¨namep؄ :       ڑ  gname1    )؄          ) *   * 1    1ڑ )     namep؄ 1%      éΩΩũũҩҩ ҩҩө%  %ڑ     Ωnameargs_in_groups %G     ?  , ??????(    ,  @ ?  ,    (  ?G   Gڑ ?(namematcherG      ڑ         oaڑ     Ψ     ɫʫ Ψ Ѩ Ѩ f      ڑ         oaڑ          ǬȬ    o   L+؄ ߩ  Ϊ       ڑ   ڑ   + *    L ,  Ȭ Ȭ    |߬ , ߬   ؄ ڑ | L|+|ɔ | | | | | |ڑ  |||p؄ aڑ           ڑ  gn*    ؄        & * *    *ڑ      np؄ *preqsԁmatcherextra incl_last 8 'a'b  'a  'a  AsciiExtDisplay3 ParseResultϱ ϱ ParserܱܱAS usage  ArgSettings AnyArgDzDz ArgMatcherϲ  ϲ  ArgMatcherϲ  ϲ  MatchedArg۲ ۲  ClapResult  Error ErrorKind   Colorizer   ColorizerOption INTERNAL_ERROR_MSGճ ճ INVALID_UTF8  ? V'a'b'z'a'b'z'a'bô'b'zϴ 'a'z 'z'a'bV 'a'b'zV VVV VVԴ'a'b'z'a'b'zpJ 'a'b'z 'z'a'bself needs_val_of subcmd_name matcherɶ:ѵص 'a'b'z 'a  'aselfargmamatcher( 'a'b'zA    A'a'b3s  (        )        Ok  Some     7   777 777        7     7 $%% %$ 2100   !!0 !00! 11 12"##  #"#""Err% & $ &2''$Some ()*++ +*)*+ )()*,(-..//( ./- l$/.-!"55' 6 7 89::( :9%l 0 122'  21#l 012'3'4'4('3 44: *  03,$l,301': 89 78 6756,&l65987'-;<<,; <<;(),(1=>>(??'@AA@A A2B1C0D0EFF GGHH0FGHE*+00DEHGF11 DC,n1>lD2BCIJJ  JI.nElJ  >?@BI=/n IB@?>Err==E0lEC,(;'$(;'2 $yKGL%M$NOOPP$OPN; yKyy6yKyy6UVV W X YZZ  ZY>ULK@AGLGG:GLGG:QRSTT TS<QMyL45PO%M NNGM89RSTRQ= SRGQ87Z XY WXVWU?YXWVyU43Kghh hgH [\]]\] ]2^1_0`0abb ccdd0bcdaB00`adcb11 `_CD1`2^_eff  feEDaf \^e[FDe^\Err[[aGa_Kh i g iJIVjjgSome ӂ(klmnnj łnmK lmn(o"pqrstt tsLrst rqMr" qpN q(op( ˂ӂlokO(polu kuQPkUvvkErr5 w x y z z yz  z xSome y x y {  {v | } }   }|Rp }5 55  x{|wTp5  |  { x: Errw:  wvsmkjgAsmkjVg~ ~W  ~ YXj~Some          Z         [       \       ^] i  Err          Some   "         _a    ba  `  "   cd         er a   ɉfr     Err   ga   h`    ~   j~(k>--m  {S So  d dq               7        2100           ( :ޞ  :  : :': '          2100    yG%$        2100     Â( ˂Âӂ("    5             "       selfargmamatcheriter__nextval valp_vals'val_str(ok,vtorje vvtor e selfnamematcher!  'a'b'z  selfmatcher 'a'b'zselfmatcherփ ك 'a'b'zselfőaӑmamatcher& 'a'b'z  Ađϒ1    1111111Ó ē ē ē ͓ ͓ ēƓ   Ɠ  Ó    1Ok     2100 0 0011   12ƕƕƕ ƕ͕   ͕ӕ      Err   đӑ1  Ó ēē ͓ 2100   ƕ ƕselfđaӑmamatcherselfama͖matcher& 'a'b'zAe        +Some          ƙ ƙ       ڙ ۙܙ ܙܙ ܙ  ۙڙ ڙڙ  ڙ ڙ#        Κ ߚ ߚ  ܚ   + ˜ΜΜΜללΜММ˜ܝ%ܝ% ܝ  %  !!   ! ! "## "##$ " $  "" ˜%˜&v' ())   )(v(v'vvv'vvv(ƞH*Ǟ+Ǟ,Ǟ,О-О-Ǟɞ,-+ɞ*'"#)v(ƞH.ƞH*ƞHƞHƞH.ƞH*ƞHƞH. /00   0/ +v*-,ƞH+0 122 1223 1 3/!./11/ƞH.44ere&44$&as$ 25160708Ġ9Ġ9 ̠:̠:ՠ;ՠ;09:;8%0078٠;٠:٠911 76&'1٠7256<==  =<('8= &5<)' <5&Err8*86' ݛǡ >ǡ?ǡ?ǡ ɡ ?>,ɡ ҡ? @ > @.-?AA>SomeBC DEE   ED/ĢECD̢DТFТFABCFҢFҢCB01BA? ̣GHI{JK{L{MGN'OP'QRR '' RQ2'PQR' PO3PG ) ON4OSTTST{٤ , NSM5٤{LM LK6{JKSNLJI7J U V V  UV IUH8¥U¥I٥W٥X٥X٥WX ٥X2Y1Z0[0\]] ^^__0]^_\900[\_^]11 [Z:;1[2YZ`aa  a`<;ڦ\Ŧạ̣ HWY`G=;̣ئ`ئYئWئHȣErrGȣ٦Gڦ\> ڦ\ڦZڦVڦTڦQڦMڦKBA>> b cdd  dc@ d e c eBAܫbܫRffcSome(ghi jkk   kjG(m(g((F(m(g((Fmmf(mDChgHIkijjllfh illi(hDEg}}fb }}ǫfR nݩoݩpݩpݩop ݩpqqf rss   srJ s2t1u0v0w̪x̪x ԪyԪyݪzݪz0xyzwK00vwzyx11 vuLM1v2tu{||  |{NMw| oqrt{nOM{trqoErrnnwPwugǫfcQbc7~! [ 7~77V7~77V  # \ ~]^!!!Z!!!Z  b !XW7TU!XY7TS~Okbϭ 2100 0_0011 `a12ʮʮʮ ʮѮ baѮ׮ϭϭcaϭ˭Err˭d~ĭQԡ͖     ڙ#ڙڙ#ۙڙ#ܙ ڙ# ܙڙ#ڙ  ܚߚ  ˜ΜΜ ל   ܝ ܝv ƞHǞǞ О  2100 Ġ̠ ՠ   ǡ ǡ   Т̣  {  { {G '  '   ٥٥2100       (  ݩݩ 2100 ̪Ԫ ݪ  7!  ϭ 2100   ʮ ʮ selfama͖matchernum should_err  numA min_vals_zero bnumf selfa¯maѯmatcher& 'a'b'zA!        Some ޱ0 ޱ0 ޱ  ޱ ޱ ޱ      ޱ0 )     "  ޱ0ޱ0 (   ޱ0 ޱ0ޱ0 ʱޱ0ޱ0ޱ0ޱ0ޱ0ޱ0ޱ0ޱ0 )˙ޱ0α  α   Ŵ0&Ŵ0'Ŵ (Ŵ)Ŵ)Ŵ ̴ )(̴ޱ0!α α Some α α α ٱٱбб ձձ DzBDzBDzBDzBDzBDzBDzB DzBDzB  !!  !  !   " " *    "" }ʱ۳#۳#$$%%۳* #$%% %$# Գ1Գ1Ѵ)ڴ*Ŵ0Ӵ )  (*'Ӵ"*(Ŵ0Ŵ0 ( '&Ŵ0'Ŵ0+Ŵ0+&Ŵ0,Ŵ0-Ŵ0.Ŵ0/Ŵ0/+Ŵ0./Ŵ0Ŵ0 ).-Ŵ0. 0 - 0/-,+& Ŵ0 1 1-Some  2 21 ,2 21/-33, 4 5 6 6 7 73 675 7 6 4 5 5{ 4 43,  8 8ܵ 9ܵ 9 : ; ;3 :Some; : ;0 ŵţ89:ŵ+ : 9 8 43,+&7Ok ʱޱα ޱŴ Ŵ<¯ѯ    ˙ޱ0˙ޱ0 ޱ ޱ˙ޱ0 ޱ0 ޱ0 ˙ޱ0ޱ0α  α  α  бձ  DzBDzB DzB}}} } } } } ۳ Ŵ0Ŵ0Ŵ0Ŵ0Ŵ0 Ŵ Ŵ0 ŴŴ0ڴŴ0 Ŵ0Ŵ0 Ŵ0Ŵ0     {{{{ܵ  selfa¯maѯmatchera_reqsiterޱ0__nextޱ0valα valбnameձ missing_req iterŴ0+__nextŴ0,val 1name 3selfжmatcherֶ 'a'b'z ˶selfamatcher 'a'b'z   selfamatcher 'a'b'zغselfmatcherextra" 'a'b'zԹselfamatcherinline  'a'b'zغ 8'   '  " : )      )    $  8 ,  :      8'  :)  selfamatcherZX Used to create a representation of a command line program and all possible command line[M arguments. Application settings are set using the "builder pattern" with thePR [`App::get_matches`] family of methods being the terminal methods that starts theUW runtime-parsing process. These methods then return information about the user suppliedZ arguments (or lack there of).!T **NOTE:** There aren't any mandatory "options" that one must set. The "options" mayW` also appear in any order (so long as one of the [`App::get_matches`] methods is the last methodc called).  # Examples ```no_run  # use clap::{App, Arg}; let m = App::new("My Program")" .author("Me, me@mail.com")" .version("1.0.2")6 .about("Explains in brief what the program does")9 .arg( + Arg::with_name("in_file").index(1). ) G .after_help("Longer explanation to appear after the options when \JE displaying the help information from --help or -h")H .get_matches();% // Your program logic starts here...( ```; [`App::get_matches`]: ./struct.App.html#method.get_matches>allowߊ missing_debug_implementations''a'b'a'b'a'b doc hidden'a'b?'a'b'a'bnuX Creates a new instance of an application requiring a name. The name may be, but doesn't[[ have to be same as the binary. The name will be displayed to the user when they request to^- print version or help and usage information.0 # Examples ```no_run  # use clap::{App, Arg};" let prog = App::new("My Program")% # ; ``` 'a'bSS   ; u ; ;;nuself @ Get the name of the app 'a'b self l Get the name of the binary 'a'b n[ Creates a new instance of an application requiring a name, but uses the [`crate_authors!`]^Z and [`crate_version!`] macros to fill in the [`App::author`] and [`App::version`] fields.] # Examples ```no_run  # use clap::{App, Arg};, let prog = App::with_defaults("My Program")/ # ; ```0 [`crate_authors!`]: ./macro.crate_authors!.html30 [`crate_version!`]: ./macro.crate_version!.html31 [`App::author`]: ./struct.App.html#method.author42 [`App::version`]: ./struct.App.html#method.author5  deprecated  since2.14.1 noteKCan never work; use explicit App::author() and App::version() calls insteadM 2.14.1KCan never work; use explicit App::author() and App::version() calls instead 'a'bS Ɓ؁؁؁؁ځځ߁ƁƁƁ; $Kevin K. $Some$6   ɂ΂ ΂ ΂ ΂2.19.2?΂ ɂSome ɂւ !   ւׂ    Ɓ؁؁ $ ɂ΂΂naselfauthorH Sets a string of author(s) that will be displayed to the user when theyK4 request the help information with `--help` or `-h`.7X **Pro-tip:** Use `clap`s convenience macro [`crate_authors!`] to automatically set your[_ application's author(s) to the same thing as your crate at compile time. See the [`examples/`]b directory for more informationʕ" See the [`examples/`] directory for more information" # ExamplesƖٖ ```no_run  # use clap::{App, Arg}; App::new("myprog")" .author("Me, me@mymain.com")% # ;ؗ ```0 [`crate_authors!`]: ./macro.crate_authors!.html3E [`examples/`]: https://github.com/clap-rs/clap/tree/v2.33.1/examplesH 'a'bS 'b љ֙ ֙ ֙֙֙ ݙ ݙ ֙ љSomeљ(      љ֙ ֙ ֙selfauthorselfϟname՟V Overrides the system-determined binary name. This should only be used when absolutelyYW necessary, such as when the binary name for your application is misleading, or perhapsܚZ/ *not* how the user should invoke your program.2X **Pro-tip:** When building things such as third party `cargo` subcommands, this setting[ **should** be used!ڜC **NOTE:** This command **should not** be used for [`SubCommand`]s.Fɝ # Examplesѝ ```no_run  # use clap::{App, Arg}; App::new("My Program") .bin_name("my_binary") # ; ```) [`SubCommand`]: ./struct.SubCommand.html, 'a'bS   Some           ˟՟  self˟name՟selfabout\ Sets a string describing what the program does. This will be displayed when displaying help_ information with `-h`.Y **NOTE:** If only `about` is provided, and not [`App::long_about`] but the user requests\G `--help` clap will still display the contents of `about` appropriatelyJU **NOTE:** Only [`App::about`] is used in completion script generation in order to beX conciseң  # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")9 .about("Does really amazing things to great people")Ҥ< # ; ```9 [`App::long_about`]: ./struct.App.html#method.long_about< 'a'bS Ŧʦ ʦ ʦʦʦ ЦЦ ʦ զŦSomeŦ֦&   ֦צ   Ŧʦ ʦ ʦselfaboutselfabout\ Sets a string describing what the program does. This will be displayed when displaying help_ information.էY **NOTE:** If only `long_about` is provided, and not [`App::about`] but the user requests\H `-h` clap will still display the contents of `long_about` appropriatelyӨKU **NOTE:** Only [`App::about`] is used in completion script generation in order to beX concise  # Examples ```no_run  # use clap::{App, Arg};ͪ App::new("myprog") .long_about(E "Does really amazing things to great people. Now let's talk a littleHI more in depth about how this subcommand really works. It may take aboutL' a few lines of text, but that's ok!")* # ; ```/ [`App::about`]: ./struct.App.html#method.about2ĭ 'a'bSϭҭ      Some+   ƮŮ     selfaboutselfnametR Sets the program's name. This will be displayed when displaying help information.̮UQ **Pro-top:** This function is particularly useful when configuring a program viaTY [`App::from_yaml`] in conjunction with the [`crate_name!`] macro to derive the program's\ name from its `Cargo.toml`. # Examples ```ignore  # #[macro_use] # extern crate clap;б # use clap::App; # fn main() {! let yml = load_yaml!("app.yml");$ let app = App::from_yaml(yml)Ų! .name(crate_name!());? // continued logic goes here, such as `app.get_matches()` etc.B # }ܳ ```7 [`App::from_yaml`]: ./struct.App.html#method.from_yaml:) [`crate_name!`]: ./macro.crate_name.html, 'a'bS   ƵƵt˵  ߵ    ˵ֵt   selfnametselfhelpѹZ Adds additional help information to be displayed in addition to auto-generated help. This][ information is displayed **after** the auto-generated help information. This is often usedȶ^> to describe how to use the arguments, or caveats to be noted.A # Examples ```no_run  # use clap::App; App::new("myprog")W .after_help("Does really amazing things to great people...but be careful with -R")ڸZ # ; ```Źع 'a'bS    ѹ  Someº)   ºúͺ׺ֺѹ     selfhelpѹselfhelpZ Adds additional help information to be displayed in addition to auto-generated help. Thisݺ]\ information is displayed **before** the auto-generated help information. This is often used_ for header information.ü # Examples˼޼ ```no_run  # use clap::App; App::new("myprog")F .before_help("Some info I'd like to appear before the help info")I # ; ``` 'a'bS      Someܾ(    ;    selfhelpselfverT Sets a string of the version number to be displayed when displaying version or helpW information with `-V`.T **NOTE:** If only `version` is provided, and not [`App::long_version`] but the userWU requests `--version` clap will still display the contents of `version` appropriatelyXX **Pro-tip:** Use `clap`s convenience macro [`crate_version!`] to automatically set your[] application's version to the same thing as your crate at compile time. See the [`examples/`]` directory for more information" # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog") .version("v0.1.24") # ; ```0 [`crate_version!`]: ./macro.crate_version!.html3E [`examples/`]: https://github.com/clap-rs/clap/tree/v2.33.1/examplesH= [`App::long_version`]: ./struct.App.html#method.long_version@ 'a'bS      Some&        selfverselfverT Sets a string of the version number to be displayed when displaying version or helpW information with `--version`.!T **NOTE:** If only `long_version` is provided, and not [`App::version`] but the userWS requests `-V` clap will still display the contents of `long_version` appropriatelyVX **Pro-tip:** Use `clap`s convenience macro [`crate_version!`] to automatically set your[] application's version to the same thing as your crate at compile time. See the [`examples/`]` directory for more information" # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog") .long_version( "v0.1.24  commit: abcdef89726d revision: 123 release: 2 binary: myprog") # ; ```0 [`crate_version!`]: ./macro.crate_version!.html3E [`examples/`]: https://github.com/clap-rs/clap/tree/v2.33.1/examplesH3 [`App::version`]: ./struct.App.html#method.version6 'a'bS      Some+        selfverselfusageH Sets a custom usage string to override the auto-generated usage string.KZ This will be displayed to the user when errors are found in argument parsing, or when you] call [`ArgMatches::usage`][ **CAUTION:** Using this setting disables `clap`s "context-aware" usage strings. After this^J setting is set, this will be the only usage string displayed to the user!MM **NOTE:** You do not need to specify the "USAGE: \n\t" portion, as that willPJ still be applied by `clap`, you only need to specify the portion startingM with the binary name.L **NOTE:** This will not replace the entire help message, *only* the portionO showing the usage. # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")) .usage("myapp [-clDas] "), # ; ```= [`ArgMatches::usage`]: ./struct.ArgMatches.html#method.usage@ 'a'bS      Some*        selfusageselfhelpZ Sets a custom help message and overrides the auto-generated one. This should only be used]2 when the auto-generated message does not suffice.5B This will be displayed to the user when they use `--help` or `-h`EX **NOTE:** This replaces the **entire** help message, so nothing will be auto-generated.[Z **NOTE:** This **only** replaces the help message for the current command, meaning if you]S are using subcommands, those help messages will still be auto-generated unless youV* specify a [`Arg::help`] for them as well.- # Examples ```no_run  # use clap::{App, Arg}; App::new("myapp") .help("myapp v1.0\n\" Does awesome things\n\% (C) me@mail.com\n\n\#. USAGE: myapp \n\n\1 Options:\n\4 -h, --help Display this message\n\74 -V, --version Display version info\n\77 -s Do something with stuff\n\:, -v Be verbose\n\n\/ Commmands:\n\3 help Prints this message\n\6+ work Do some work"). # ; ```- [`Arg::help`]: ./struct.Arg.html#method.help0 'a'bS      Some(        selfhelpselfsy; Sets the [`short`] for the auto-generated `help` argument.>V By default `clap` automatically assigns `h`, but this can be overridden if you have aYV different argument which you'd prefer to use the `-h` short with. This can be done byYB defining your own argument with a lowercase `h` as the [`short`].EY `clap` lazily generates these `help` arguments **after** you've defined any arguments of\ your own. J **NOTE:** Any leading `-` characters will be stripped, and only the firstM8 non `-` character will be used as the [`short`] version; # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")T .help_short("H") // Using an uppercase `H` instead of the default lowercase `h`W # ; ```* [`short`]: ./struct.Arg.html#method.short- 'a'bS'b       y  y     selfsyselfsz> Sets the [`short`] for the auto-generated `version` argument.AV By default `clap` automatically assigns `V`, but this can be overridden if you have aYV different argument which you'd prefer to use the `-V` short with. This can be done byYC defining your own argument with an uppercase `V` as the [`short`].F\ `clap` lazily generates these `version` arguments **after** you've defined any arguments of_ your own. J **NOTE:** Any leading `-` characters will be stripped, and only the firstM6 non `-` character will be used as the `short` version9 # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")T .version_short("v") // Using a lowercase `v` instead of the default capital `V`W # ; ```* [`short`]: ./struct.Arg.html#method.short- 'a'bS           z   z     selfszselfs; Sets the help text for the auto-generated `help` argument.>R By default `clap` sets this to `"Prints help information"`, but if you're using aUZ different convention for your help messages and would prefer a different phrasing you can] override it. # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")Y .help_message("Print help information") // Perhaps you want imperative help messages\ # ; ``` 'a'bS 'a  Some$     selfsselfs> Sets the help text for the auto-generated `version` argument.AU By default `clap` sets this to `"Prints version information"`, but if you're using aX[ different convention for your help messages and would prefer a different phrasing then you^ can change it. # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")_ .version_message("Print version information") // Perhaps you want imperative help messagesb # ; ``` 'a'bS҇  Some'     selfsselfĎsʎ}B Sets the help template to be used, overriding the default format.E& Tags arg given inside curly brackets.)Ԁ Valid tags are:܀# * `{bin}` - Binary name.&& * `{version}` - Version number.)* * `{author}` - Author information.Ձ-@ * `{about}` - General description (from [`App::about`])CE * `{usage}` - Automatically generated or given usage string.ςHU * `{all-args}` - Help for all arguments (options, flags, positionals arguments,X9 and subcommands) including titles.<T * `{unified}` - Unified help for options and flags. Note, you must *also* setWZ [`AppSettings::UnifiedHelpMessage`] to fully merge both options and]E flags, otherwise the ordering is "best effort"H& * `{flags}` - Help for flags.ņ)( * `{options}` - Help for options.+6 * `{positionals}` - Help for positionals arguments.9, * `{subcommands}` - Help for subcommands./4 * `{after-help}` - Help from [`App::after_help`]76 * `{before-help}` - Help from [`App::before_help`]ш9 # Examples ```no_run  # use clap::{App, Arg};ĉ App::new("myprog") .version("1.0")- .template("{bin} ({version}) - {usage}")0 # ;Њ ```܊Y **NOTE:** The template system is, on purpose, very simple. Therefore the tags have to be\* written in lowercase and without spacing.ɋ-/ [`App::about`]: ./struct.App.html#method.about29 [`App::after_help`]: ./struct.App.html#method.after_help<; [`App::before_help`]: ./struct.App.html#method.before_help>X [`AppSettings::UnifiedHelpMessage`]: ./enum.AppSettings.html#variant.UnifiedHelpMessage[ 'a'bS } Some%   } ӎ ʎ selfsʎ}selfsettingh= Enables a single command, or [`SubCommand`], level settings.@C See [`AppSettings`] for a full list of possibilities and examples.F # ExamplesԐ ```no_runܐ % # use clap::{App, Arg, AppSettings};( App::new("myprog"). .setting(AppSettings::SubcommandRequired)1' .setting(AppSettings::WaitOnError)* # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.html, 'a'b selfsettings< Enables multiple command, or [`SubCommand`], level settings?ǔC See [`AppSettings`] for a full list of possibilities and examples.ϔF # Examples ```no_run % # use clap::{App, Arg, AppSettings};ϕ( App::new("myprog")1 .settings(&[AppSettings::SubcommandRequired,4, AppSettings::WaitOnError])Ж/ # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.html͗, 'a'b  selfsettingߝT Enables a single setting that is propagated down through all child [`SubCommand`]s.WC See [`AppSettings`] for a full list of possibilities and examples.FŚV **NOTE**: The setting is *only* propagated *down* and not up through parent commands.͚Y # Examplesƛ ```no_runΛ % # use clap::{App, Arg, AppSettings};( App::new("myprog")5 .global_setting(AppSettings::SubcommandRequired)8 # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.html, 'a'b selfsettingsY Enables multiple settings which are propagated *down* through all child [`SubCommand`]s.\ݟC See [`AppSettings`] for a full list of possibilities and examples.FV **NOTE**: The setting is *only* propagated *down* and not up through parent commands.Y # Examples ```no_run % # use clap::{App, Arg, AppSettings};ˡ( App::new("myprog")8 .global_settings(&[AppSettings::SubcommandRequired,;, AppSettings::ColoredHelp])Ӣ/ # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.htmlУ, 'a'bselfsettingp= Disables a single command, or [`SubCommand`], level setting.ƥ@C See [`AppSettings`] for a full list of possibilities and examples.Fަ # Examples ```no_run  # use clap::{App, AppSettings};# App::new("myprog")+ .unset_setting(AppSettings::ColorAuto)֧. # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.htmlҨ, 'a'b selfsettings> Disables multiple command, or [`SubCommand`], level settings.AC See [`AppSettings`] for a full list of possibilities and examples.ǪF # Examples ```no_run  # use clap::{App, AppSettings};ǫ# App::new("myprog"). .unset_settings(&[AppSettings::ColorAuto,16 AppSettings::AllowInvalidUtf8])9 # ; ```) [`SubCommand`]: ./struct.SubCommand.html,) [`AppSettings`]: ./enum.AppSettings.htmlǭ, 'a'bselfwidthtZ Sets the terminal width at which to wrap help messages. Defaults to `120`. Using `0` will]2 ignore terminal widths and use source formatting.5] `clap` automatically tries to determine the terminal width on Unix, Linux, macOS and Windows`X if the `wrap_help` cargo "feature" has been used while compiling. If the terminal width[0 cannot be determined, `clap` defaults to `120`.3J **NOTE:** This setting applies globally and *not* on a per-command basis.MI **NOTE:** This setting must be set **before** any subcommands are added!L # Platform SpecificW Only Unix, Linux, macOS and Windows support automatic determination of terminal width.ZU Even on those platforms, this setting is useful if for any reason the terminal widthX cannot be determined.Ե # Examples ```no_run  # use clap::App; App::new("myprog") .set_term_width(80)۶ # ; ``` 'a'bselfwk[ Sets the max terminal width at which to wrap help messages. Using `0` will ignore terminal^" widths and use source formatting.%] `clap` automatically tries to determine the terminal width on Unix, Linux, macOS and Windows`X if the `wrap_help` cargo "feature" has been used while compiling, but one might want to[? limit the size (e.g. when the terminal is running fullscreen).BJ **NOTE:** This setting applies globally and *not* on a per-command basis.MI **NOTE:** This setting must be set **before** any subcommands are added!L # Platform SpecificW Only Unix, Linux, macOS and Windows support automatic determination of terminal width.Z # Examples ```no_run  # use clap::App; App::new("myprog") .max_term_width(100)վ # ; ``` 'a'bselfao7 Adds an [argument] to the list of valid possibilities.: # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")Z // Adding a single "flag" argument with a short and help text, using Arg::with_name()] .arg(  Arg::with_name("debug")# .short("d"), .help("turns on debugging mode")/ ) \ // Adding a single "option" argument with a short, a long, and help text using the less_! // verbose Arg::from_usage()$ .arg( W Arg::from_usage("-c --config=[CONFIG] 'Optionally sets a config file to use'")Z )  # ; ``` [argument]: ./struct.Arg.html! 'a'bA'a'b   o o    selfaoselfargs= Adds multiple [arguments] to the list of valid possibilities@ # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog") .args(C &[Arg::from_usage("[debug] -d 'turns on debugging info'"),FI Arg::with_name("input").index(1).help("the input file to use")]L )  # ; ``` [arguments]: ./struct.Arg.html" 'a'b  selfusage|Y A convenience method for adding a single [argument] from a usage type string. The string\> used follows the same rules and syntax as [`Arg::from_usage`]AS **NOTE:** The downside to using this method is that you can not set any additionalVH properties of the [`Arg`] other than what [`Arg::from_usage`] supports.K # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog")M .arg_from_usage("-c --config= 'Sets a configuration file to use'")P # ; ``` [argument]: ./struct.Arg.html! [`Arg`]: ./struct.Arg.html9 [`Arg::from_usage`]: ./struct.Arg.html#method.from_usage< 'a'b݇selfusageI Adds multiple [arguments] at once from a usage string, one per line. SeeLC [`Arg::from_usage`] for details on the syntax and rules supported.FW **NOTE:** Like [`App::arg_from_usage`] the downside is you only set properties for theZ- [`Arg`]s which [`Arg::from_usage`] supports.0 # Examples ```no_run  # use clap::{App, Arg}; App::new("myprog") .args_from_usage(? "-c --config=[FILE] 'Sets a configuration file to use'B2 [debug]... -d 'Sets the debugging level'5) 'The input file to use'", )  # ; ``` [arguments]: ./struct.Arg.html"9 [`Arg::from_usage`]: ./struct.Arg.html#method.from_usage<A [`App::arg_from_usage`]: ./struct.App.html#method.arg_from_usageD [`Arg`]: ./struct.Arg.html 'a'b݇selfnameR Allows adding a [`SubCommand`] alias, which function as "hidden" subcommands thatUZ automatically dispatch as if this subcommand was used. This is more efficient, and easier]Z than creating multiple hidden subcommands as one only needs to check for the existence of]$ this command, and not all variants.' # Examples ```no_run $ # use clap::{App, Arg, SubCommand};' let m = App::new("myprog")6 .subcommand(SubCommand::with_name("test")9$ .alias("do-stuff"))'; .get_matches_from(vec!["myprog", "do-stuff"]);>/ assert_eq!(m.subcommand_name(), Some("test"));2 ```) [`SubCommand`]: ./struct.SubCommand.html, 'a'bS     #   9 9  9  9 9            Some       #  9  99  9   U 99 99   99  Some         99 % 9          7      99 U9 9   9selfnameals selfnamesR Allows adding [`SubCommand`] aliases, which function as "hidden" subcommands thatUZ automatically dispatch as if this subcommand was used. This is more efficient, and easier]Z than creating multiple hidden subcommands as one only needs to check for the existence of]$ this command, and not all variants.' # Examples ```rust $ # use clap::{App, Arg, SubCommand};' let m = App::new("myprog")6 .subcommand(SubCommand::with_name("test")9> .aliases(&["do-stuff", "do-tests", "tests"]))A- .arg(Arg::with_name("input")05 .help("the file to add")8& .index(1)). .required(false))1; .get_matches_from(vec!["myprog", "do-tests"]);>/ assert_eq!(m.subcommand_name(), Some("test"));2 ```) [`SubCommand`]: ./struct.SubCommand.html, 'a'b  selfnameT Allows adding a [`SubCommand`] alias that functions exactly like those defined withWF [`App::alias`], except that they are visible inside the help message.I # Examples ```no_run $ # use clap::{App, Arg, SubCommand};' let m = App::new("myprog")6 .subcommand(SubCommand::with_name("test")9, .visible_alias("do-stuff"))/; .get_matches_from(vec!["myprog", "do-stuff"]);>/ assert_eq!(m.subcommand_name(), Some("test"));2 ```) [`SubCommand`]: ./struct.SubCommand.html,/ [`App::alias`]: ./struct.App.html#method.alias2 'a'bS       9 9  9  9 9            Some      Ā  9  99  9   99 99  99  Some        999          6    99 9 9   9selfnameals selfnamesX Allows adding multiple [`SubCommand`] aliases that functions exactly like those defined[M with [`App::aliases`], except that they are visible inside the help message.P # Examples ```no_run $ # use clap::{App, Arg, SubCommand};' let m = App::new("myprog")6 .subcommand(SubCommand::with_name("test")9: .visible_aliases(&["do-stuff", "tests"]))=; .get_matches_from(vec!["myprog", "do-stuff"]);>/ assert_eq!(m.subcommand_name(), Some("test"));2 ```) [`SubCommand`]: ./struct.SubCommand.html,3 [`App::aliases`]: ./struct.App.html#method.aliases6 'a'bself߉groupΉiZ Adds an [`ArgGroup`] to the application. [`ArgGroup`]s are a family of related arguments.]Z By placing them in a logical group, you can build easier requirement and exclusion rules.]Y For instance, you can make an entire [`ArgGroup`] required, meaning that one (and *only*\: one) argument from that group must be present at runtime.=W You can also do things such as name an [`ArgGroup`] as a conflict to another argument.Z\ Meaning any of the arguments that belong to that group will cause a failure if present with_ the conflicting argument.\ Another added benefit of [`ArgGroup`]s is that you can extract a value from a group instead_0 of determining exactly which argument was used.3܂Z Finally, using [`ArgGroup`]s to ensure exclusion between arguments is another very common] useƃ҃ # Examplesڃ[ The following example demonstrates using an [`ArgGroup`] to ensure that one, and only one,^A of the arguments from the specified group is present at runtime.؄D ```no_run  # use clap::{App, ArgGroup};  App::new("app") .args_from_usage(4 "--set-ver [ver] 'set the version manually'7/ --major 'auto increase major'҆2/ --minor 'auto increase minor'21 --patch 'auto increase patch'")4' .group(ArgGroup::with_name("vers")*7 .args(&["set-ver", "major", "minor","patch"]): .required(true)) # ; ```% [`ArgGroup`]: ./struct.ArgGroup.html(Չ 'a'b'aselfԑgroupsڑ‘4 Adds multiple [`ArgGroup`]s to the [`App`] at once.7 # Examples ```no_run  # use clap::{App, ArgGroup};  App::new("app")Ӌ .args_from_usage(4 "--set-ver [ver] 'set the version manually'7/ --major 'auto increase major'Ō2/ --minor 'auto increase minor'2/ --patch 'auto increase patch'2) -c [FILE] 'a config file',* -i [IFACE] 'an interface'")- .groups(&[͎$ ArgGroup::with_name("vers")': .args(&["set-ver", "major", "minor","patch"])= .required(true),ҏ % ArgGroup::with_name("input")( .args(&["c", "i"])" ])ː  # ;ڐ ```% [`ArgGroup`]: ./struct.ArgGroup.html( [`App`]: ./struct.App.htmlɑ 'a'b  selfsubcmd͘tV Adds a [`SubCommand`] to the list of valid possibilities. Subcommands are effectivelyYY sub-[`App`]s, because they can contain their own arguments, subcommands, version, usage,\\ etc. They also function just like [`App`]s, in that they get their own auto generated help,_ version, and usage. # Examples ```no_runĕ $ # use clap::{App, Arg, SubCommand};֕' App::new("myprog")0 .subcommand(SubCommand::with_name("config")32 .about("Controls configuration features")Ֆ5J .arg_from_usage(" 'Required configuration file to use'"))M # ; ```) [`SubCommand`]: ./struct.SubCommand.html, [`App`]: ./struct.App.htmlԘ 'a'bselfsubcmdsR Adds multiple subcommands to the list of valid possibilities by iterating over anǙU$ [`IntoIterator`] of [`SubCommand`]s'͚ # Examples՚ ```rust $ # use clap::{App, Arg, SubCommand};' # App::new("myprog") .subcommands( vec![ɛU SubCommand::with_name("config").about("Controls configuration functionality")XN .arg(Arg::with_name("config_file").index(1)),œQN SubCommand::with_name("debug").about("Controls debug functionality")])Q # ; ```) [`SubCommand`]: ./struct.SubCommand.html,M [`IntoIterator`]: https://doc.rust-lang.org/std/iter/trait.IntoIterator.htmlP 'a'b  I ( ՟  ( ( L    ) ( Р    РРРР   Some               ŠŠƠР РРРLРڠРРРР L>>            Рselfsubcmdsiter__nextval subcmd selfordk\ Allows custom ordering of [`SubCommand`]s within the help message. Subcommands with a lower_Z value will be displayed first in the help message. This is helpful when one would like toΡ]X emphasise frequently used subcommands, or prioritize those towards the top of the list.[T Duplicate values **are** allowed. Subcommands with duplicate display orders will beW! displayed in alphabetical order.$2 **NOTE:** The default is 999 for all subcommands.5פ # Examplesߤ ```rust  # use clap::{App, SubCommand};" let m = App::new("cust-ord") T .subcommand(SubCommand::with_name("alpha") // typically subcommands are grouped֥WV // alphabetically by name. SubcommandsYZ // without a display_order have a value of]\ // 999 and are displayed alphabetically with_L // all other 999 subcommands֨O& .about("Some help and text"))). .subcommand(SubCommand::with_name("beta")ة1S .display_order(1) // In order to force this subcommand to appear *first*VT // all we have to do is give it a value lower than 999.WY // Any other subcommands with a value of 1 will be displayedū\Z // alphabetically with this one...then 2 values, then 3, etc.]& .about("I should be first!"))) .get_matches_from(vec![ "cust-ord", "--help"ڭ  ]);  ```6 The above example displays the following help message9 ```text  cust-ord  USAGE:  cust-ord [FLAGS] [OPTIONS]"ȯ FLAGS:Я - -h, --help Prints help information߯00 -V, --version Prints version information3̰ SUBCOMMANDS:԰ beta I should be first!" alpha Some help and text" ```) [`SubCommand`]: ./struct.SubCommand.htmlñ, 'a'bself ݸV Prints the full help message to [`io::stdout()`] using a [`BufWriter`] using the sameY: method as if someone ran `-h` to request the help messageó=W **NOTE:** clap has the ability to distinguish between "short" and "long" help messagesZA depending on if the user ran [`-h` (short)] or [`--help` (long)]D # Examplesе ```rustص  # use clap::App;" let mut app = App::new("myprog");% app.print_help(); ```ŶB [`io::stdout()`]: https://doc.rust-lang.org/std/io/fn.stdout.htmlѶEF [`BufWriter`]: https://doc.rust-lang.org/std/io/struct.BufWriter.htmlI. [`-h` (short)]: ./struct.Arg.html#method.help16 [`--help` (long)]: ./struct.Arg.html#method.long_help9 'a'b self V Prints the full help message to [`io::stdout()`] using a [`BufWriter`] using the sameʼY> method as if someone ran `--help` to request the help messageAW **NOTE:** clap has the ability to distinguish between "short" and "long" help messagesZA depending on if the user ran [`-h` (short)] or [`--help` (long)]վD # Examples ```rust  # use clap::App;ѿ" let mut app = App::new("myprog");% app.print_long_help(); ```B [`io::stdout()`]: https://doc.rust-lang.org/std/io/fn.stdout.htmlEF [`BufWriter`]: https://doc.rust-lang.org/std/io/struct.BufWriter.htmlI. [`-h` (short)]: ./struct.Arg.html#method.help16 [`--help` (long)]: ./struct.Arg.html#method.long_help9 'a'bselfw\ Writes the full help message to the user to a [`io::Write`] object in the same method as if_ the user ran `-h`W **NOTE:** clap has the ability to distinguish between "short" and "long" help messagesZA depending on if the user ran [`-h` (short)] or [`--help` (long)]D\ **NOTE:** There is a known bug where this method does not write propagated global arguments_H or autogenerated arguments (i.e. the default help/version args). PreferK. [`App::write_long_help`] instead if possible!1 # Examples ```rust  # use clap::App; use std::io;" let mut app = App::new("myprog");% let mut out = io::stdout();> app.write_help(&mut out).expect("failed to write to stdout");A ```A [`io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.htmlD. [`-h` (short)]: ./struct.Arg.html#method.help16 [`--help` (long)]: ./struct.Arg.html#method.long_help9 'a'b  W  $ $  $$ $ selfwselfw\ Writes the full help message to the user to a [`io::Write`] object in the same method as if_ the user ran `--help`W **NOTE:** clap has the ability to distinguish between "short" and "long" help messagesZA depending on if the user ran [`-h` (short)] or [`--help` (long)]D # Examples ```rust  # use clap::App; use std::io;" let mut app = App::new("myprog");% let mut out = io::stdout();C app.write_long_help(&mut out).expect("failed to write to stdout");F ```A [`io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.htmlD. [`-h` (short)]: ./struct.Arg.html#method.help16 [`--help` (long)]: ./struct.Arg.html#method.long_help9 'a'b  W                            #  #        ## # self wselfwZ Writes the version message to the user to a [`io::Write`] object as if the user ran `-V`.]Z **NOTE:** clap has the ability to distinguish between "short" and "long" version messages]D depending on if the user ran [`-V` (short)] or [`--version` (long)]G # Examples ```rust  # use clap::App; use std::io;" let mut app = App::new("myprog");% let mut out = io::stdout();A app.write_version(&mut out).expect("failed to write to stdout");D ```A [`io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.htmlD1 [`-V` (short)]: ./struct.App.html#method.version4< [`--version` (long)]: ./struct.App.html#method.long_version? 'a'b  W    2ȟ   22 2 selfwselfwA Writes the version message to the user to a [`io::Write`] objectDZ **NOTE:** clap has the ability to distinguish between "short" and "long" version messages]D depending on if the user ran [`-V` (short)] or [`--version` (long)]G # Examples ```rust  # use clap::App; use std::io;" let mut app = App::new("myprog");% let mut out = io::stdout();F app.write_long_version(&mut out).expect("failed to write to stdout");I ```A [`io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.htmlD1 [`-V` (short)]: ./struct.App.html#method.version4< [`--version` (long)]: ./struct.App.html#method.long_version? 'a'b  W    1ȟ   11 1 selfwselfbin_name for_shell out_dir4C Generate a completions file for a specified shell at compile time.FX **NOTE:** to generate the file at compile time you must use a `build.rs` "Build Script"[ # ExamplesZ The following example generates a bash completion script via a `build.rs` script. In this]Z simple example, we'll demo a very small application with only a single subcommand and two]\ args. Real applications could be many multiple levels deep in subcommands, and have tens or_# potentially hundreds of arguments.&Z First, it helps if we separate out our `App` definition into a separate file. Whether you]R do this as a function, or bare App definition is a matter of personal preference.U ``` // src/cli.rs" use clap::{App, Arg, SubCommand};%. pub fn build_cli() -> App<'static, 'static> {1 App::new("compl")$ .about("Tests completions")'$ .arg(Arg::with_name("file")'& .help("some input file")))2 .subcommand(SubCommand::with_name("test")5# .about("tests things")&( .arg(Arg::with_name("case")+ .long("case")!# .takes_value(true)&, .help("the case to test")))/ } ```O In our regular code, we can simply call this `build_cli()` function, then callRQ `get_matches()`, or any of the other normal methods directly after. For example:T ```ignore  // src/main.rs mod cli;  fn main() {, let m = cli::build_cli().get_matches();/! // normal logic continues...$ } ```C Next, we set up our `Cargo.toml` to use a `build.rs` build script.F ```toml  # Cargo.toml build = "build.rs" [build-dependencies] clap = "2.23" ```1 Next, we place a `build.rs` in our project root.4 ```ignore  extern crate clap; use clap::Shell; include!("src/cli.rs"); fn main() {0 let outdir = match env::var_os("OUT_DIR") {3 None => return, Some(outdir) => outdir,# };  let mut app = build_cli();"R app.gen_completions("myapp", // We need to specify the bin name manuallyUW Shell::Bash, // Then say which shell to build completions forZQ outdir); // Then say where write the completions toT } ```N Now, once we compile there will be a `{bin_name}.bash` file in the directory.QG Assuming we compiled with debug mode, it would be somewhere similar toJ< `/target/debug/build/myapp-/out/myapp.bash`.?B Fish shell completions will use the file format `{bin_name}.fish`E 'a'bS TS     Some   ʀ 1    *ˀ ˀ ˀ ̀xxӀҀ ҀҀҀ        1          ŀ    ŀ    1   Ҁself bin_name for_shell out_dirselfbin_name for_shell buf0Y Generate a completions file for a specified shell at runtime. Until `cargo install` canـ\V install extra files like a completion script, this may be used e.g. in a command thatYY outputs the contents of the completion script, to be redirected into a file by the user.\ # Examplesa Assuming a separate `cli.rs` like the [example above](./struct.App.html#method.gen_completions),d? we can let users generate a completion script using a command:B̄ ```ignoreԄ  // src/main.rs mod cli;  use std::io; fn main() {2 let matches = cli::build_cli().get_matches();Dž59 if matches.is_present("generate-bash-completions") {<V cli::build_cli().gen_completions_to("myapp", Shell::Bash, &mut io::stdout());ʆY } ! // normal logic continues...$ } ``` Usage:  ```shell V $ myapp generate-bash-completions > /usr/share/bash-completion/completions/myapp.bashY ``` 'a'b  WS݉  ÉƉ ӊ؊؊؊؊ӊSomeӊ      pp       )        )     " ݉     ӊ؊؊)   self݉ bin_name for_shell bufself e[ Starts the parsing process, upon a failed parse an error will be displayed to the user and^\ the process will exit with the appropriate error code. By default this method gets all user_Z provided arguments from [`env::args_os`] in order to allow for invalid UTF-8 code points,]# which are legal on many platforms.э& # Examples ```no_run  # use clap::{App, Arg};! let matches = App::new("myprog")ю$# // Args and options go here...& .get_matches(); ```D [`env::args_os`]: https://doc.rust-lang.org/std/env/fn.args_os.html͏G 'a'b'aself _ Starts the parsing process. This method will return a [`clap::Result`] type instead of exitingbW the process on failed parse. By default this method gets matches from [`env::args_os`]ZʒY **NOTE:** This method WILL NOT exit when `--help` or `--version` (or short versions) areҒ\@ used. It will return a [`clap::Error`], where the [`kind`] is aC\ [`ErrorKind::HelpDisplayed`] or [`ErrorKind::VersionDisplayed`] respectively. You must call_5 [`Error::exit`] or perform a [`std::process::exit`].ߔ8 # Examples ```no_run  # use clap::{App, Arg};ѕ! let matches = App::new("myprog")$# // Args and options go here...& .get_matches_safe()Ŗ% .unwrap_or_else( |e| e.exit() );( ```D [`env::args_os`]: https://doc.rust-lang.org/std/env/fn.args_os.htmlGJ [`ErrorKind::HelpDisplayed`]: ./enum.ErrorKind.html#variant.HelpDisplayedMP [`ErrorKind::VersionDisplayed`]: ./enum.ErrorKind.html#variant.VersionDisplayedS1 [`Error::exit`]: ./struct.Error.html#method.exit4K [`std::process::exit`]: https://doc.rust-lang.org/std/process/fn.exit.html͙N% [`clap::Result`]: ./type.Result.html(% [`clap::Error`]: ./struct.Error.html͚( [`kind`]: ./struct.Error.html! 'a'bselfiträe Starts the parsing process. Like [`App::get_matches`] this method does not return a [`clap::Result`]hZ and will automatically exit with an error message. This method, however, lets you specify]P what iterator to use when performing matches, such as a [`Vec`] of your making.SF **NOTE:** The first argument will be parsed as the binary name unlessI& [`AppSettings::NoBinaryName`] is used) # Examples ```no_run  # use clap::{App, Arg};> let arg_vec = vec!["my_prog", "some", "args", "to", "parse"];A! let matches = App::new("myprog")$# // Args and options go here...& .get_matches_from(arg_vec);# ```; [`App::get_matches`]: ./struct.App.html#method.get_matches>% [`clap::Result`]: ./type.Result.htmlע(; [`Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.html>L [`AppSettings::NoBinaryName`]: ./enum.AppSettings.html#variant.NoBinaryNameǣO 'a'b   IT   (   &&&&&ݥݥ&   !  /    Τ  ä& ݥselfiträselfitr÷L Starts the parsing process. A combination of [`App::get_matches_from`], andǪO [`App::get_matches_safe`]Y **NOTE:** This method WILL NOT exit when `--help` or `--version` (or short versions) areū\] used. It will return a [`clap::Error`], where the [`kind`] is a [`ErrorKind::HelpDisplayed`]`R or [`ErrorKind::VersionDisplayed`] respectively. You must call [`Error::exit`] orU+ perform a [`std::process::exit`] yourself..F **NOTE:** The first argument will be parsed as the binary name unlessI& [`AppSettings::NoBinaryName`] is used) # Examples ```no_run  # use clap::{App, Arg};ѯ> let arg_vec = vec!["my_prog", "some", "args", "to", "parse"];A! let matches = App::new("myprog")$# // Args and options go here...&$ .get_matches_from_safe(arg_vec)'@ .unwrap_or_else( |e| { panic!("An error occurs: {}", e) });C ```E [`App::get_matches_from`]: ./struct.App.html#method.get_matches_fromHE [`App::get_matches_safe`]: ./struct.App.html#method.get_matches_safeHJ [`ErrorKind::HelpDisplayed`]: ./enum.ErrorKind.html#variant.HelpDisplayedMP [`ErrorKind::VersionDisplayed`]: ./enum.ErrorKind.html#variant.VersionDisplayedS1 [`Error::exit`]: ./struct.Error.html#method.exit״4K [`std::process::exit`]: https://doc.rust-lang.org/std/process/fn.exit.htmlN% [`clap::Error`]: ./struct.Error.html(1 [`Error::exit`]: ./struct.Error.html#method.exit4 [`kind`]: ./struct.Error.htmlɶ!L [`AppSettings::NoBinaryName`]: ./enum.AppSettings.html#variant.NoBinaryNameOʷ 'a'b   IT   θ ߸&!÷÷  && selfitr÷selfitr] Starts the parsing process without consuming the [`App`] struct `self`. This is normally not`V the desired functionality, instead prefer [`App::get_matches_from_safe`] which *does*Y consume `self`.F **NOTE:** The first argument will be parsed as the binary name unlessI& [`AppSettings::NoBinaryName`] is used׻) # Examples ```no_run  # use clap::{App, Arg};> let arg_vec = vec!["my_prog", "some", "args", "to", "parse"];ڼA" let mut app = App::new("myprog");%# // Args and options go here...ҽ&8 let matches = app.get_matches_from_safe_borrow(arg_vec);@ .unwrap_or_else( |e| { panic!("An error occurs: {}", e) });C ``` [`App`]: ./struct.App.htmlO [`App::get_matches_from_safe`]: ./struct.App.html#method.get_matches_from_safeRL [`AppSettings::NoBinaryName`]: ./enum.AppSettings.html#variant.NoBinaryNameO 'a'b   IT    I NPOQN'& '& ='    =       =        =  #  '#  =    =ON  ? P)( (  A!)  (  AQ   HQSome   B !! ! !     B  "##   #" #$ "$& %%"Some &'()*++% +*)* )('(+)'&*', &,$--&Some.//    ,/. /. !#0 122-  21" 20Some101   DC.-$*%*(&%&'B"H9344  5 6 6 5678 9:P:  ):9)A :89789  4573+*29A754; 3;-,31*<<3Err==<Err==<9/A9863PO0=O.92A 9863>0?@ABCDDCD #  CB3AABC > A@4AAE0 )7     @E?5AE@: )Ѳ ?>6A ?DB* F G G H I J K K> JK  JI78 HI J*  GHF98">A  H G K I F L M O M ML:8 M OkL  L>;A>PO.NN<O=O=>P?P?@A   0   00#Q(QEGQSome EAR RFE   &S  '&     #    )(                        9     ˳0Ѳ    *     self itrmatcher itnamebn_ospf%s-e<global_arg_vec >?l'a'b 'a'bself ?A 'a'b ?'n'e'n'e'n'eself ?, 'n'e  'nself ?> 'n'e  'eself ?P 'n'e  self ?> 'n'eself ?D 'n'eself ?D 'n'e self ?ڀ>݀ 'n'e self ?@ 'n'eself ?y 'n'e  self ?2 'n'eself ?6 'n'e self߃ ?҃6Ճ 'n'e ރself ?B 'n'eself ?Ԅ\ׄ 'n'e ӂӂselfƅ ?a 'n'e   Ņself ?6 'n'e self ?ֆ4ن 'n'e ߆self ?6 'n'eself؇ ?ʇ8͇ 'n'e ׇself ?2 'n'eselfLj ?C 'n'eƈself ?M 'n'eself ?؉?ۉ 'n'e 'e self ?o 'n'eself ?V 'n'e 's 'n  's self ?5 'n'eself ? 'n'e#?'n'e3'n'eselff?f 'n'e  2 AnyArg DispOrder  ArgBase FlagBuilder  OptBuilder  PosBuilder  SwitchedValued ArgMatcher   ArgMatcher   ArgMatches  OsValuesValuesArgGroup MatchedArg ArgFlags ArgSettings  SubCommand      macro_use  OsStrOsString5std_fmtRc  ArgSettings map VecMapINTERNAL_ERROR_MSG  doc hiddenSelf'n'eself  'n'e 'nself * 'n'e  'eself * 'n'e#self < 'n'e  self * 'n'eself 0 'n'eself & 'n'e self  'n'e  self  'n'eself " 'n'e self " 'n'e self̀ "€ 'n'e ˀself . 'n'eself E 'n'eself J 'n'eself   'n'e self ׂ"ڂ 'n'e߂self $ 'n'e self  'n'eself؃ ʃ0̓ 'n'e ׃self " 'n'eself ' 'n'eself ҄+Մ 'n'e 'e self [ 'n'eself B 'n'e 's 'n  's self ! 'n'eself φ,҆ 'n'e 8Selfself   ʇ 'z  'n'e'n'e'zT 'n'e 'zself 8 'n'e'z    'nˆ  ˆLjΈ8 self8self ӈMֈ 'n'e'z    'e   ӈM„ selfӈMself K 'n'e'z  #څ ىىى   K „ ىىselfKself ^ 'n'e'z    څ  Ê  Ê ̊ӊ^%„ self^self ؊Mۊ 'n'e'z  ͅ    ؊M„ self؊Mself Y 'n'e'z  ͅ   YNj„ selfYselfaJ 'n'e'z  ʌʌÌ  Ì ˌˌҌJ„   ʌselfaJself ׌Lڌ 'n'e'z   ތ ׌L ތ selfތ ׌Lself A 'n'e'z  ύύύ׍  ׍ A„ ύύselfAself D 'n'e'z     D  „ selfDselfĎ D 'n'e'z  Î   D ͎ „ ÎselfÎDself D 'n'e'z     ďD  „ selfDselfۏ ɏȔ 'n'e'z  ͅ ڏ  ɏU„ ڏselfڏɏUself h 'n'e'z     h٨-„ selfhself p 'n'e'z    p/„ selfpself ? 'n'e'z    Ē?  „ self?selfҒ ɒ@̒ 'n'e'z  Ԋ ђ  ɒ@ ے„ ђselfђɒ@self G 'n'e'z  ē  ē ΓՓG  „ selfGself ړCݓ 'n'e'z     ړC„ selfړCself S 'n'e'z   څ ܔܔܔ   S „ ܔܔselfSself @ 'n'e'z  Ԋ   @ „ self@self͕ J• 'n'e'z  Ԋ ̕   J ֕„ ̕self̕Jself P 'n'e'z   'e ÖÖÖ˖  ˖ זޖP„ ÖÖselfPself  'n'e'z     ȗȗȗЗ  З <„ ȗȗselfself _ 'n'e'z  's  'n  's    Ř̘_ )„  self_self јIԘ 'n'e'z    јI„ selfјIself T 'n'e'z  Ԋ ՙՙՙݙ  ݙT „ ՙՙselfTenv envOsStrOsString5OsStrExt-Rc VecMap BaseSwitchedValued ArgSettings  UsageParserΝ  'a'b'a'bnĮ[ Creates a new instance of [`Arg`] using a unique string name. The name will be used to get^S information about whether or not the argument was used at runtime, get values, setV% relationships with other args, etc..(V **NOTE:** In the case of arguments that take values (i.e. [`Arg::takes_value(true)`])YY and positional arguments (i.e. those without a preceding `-` or `--`) the name will also\M be displayed when the user prints the usage/help information of the program.P # Examplesì֬ ```rustެ  # use clap::{App, Arg}; Arg::with_name("config") # ; ```A [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueǭD [`Arg`]: ./struct.Arg.html 'a'b 'a uuY Creates a new instance of [`Arg`] from a usage string. Allows creation of basic settings\M for the [`Arg`]. The syntax is flexible, but there are some rules to follow.PY **NOTE**: Not all settings may be set using the usage string method. Some properties are\( only available via the builder pattern.+Z **NOTE**: Only ASCII values are officially supported in [`Arg::from_usage`] strings. Some]A UTF-8 codepoints may work just fine, but this is not guaranteed.D # Syntax , Usage strings typically following the form:/ ```notrust; [explicit name] [short] [long] [value names] [help string]> ```U This is not a hard rule as the attributes can appear in other orders. There are alsoXZ several additional sigils which denote additional settings. Below are the details of each] portion of the string. ### Explicit NameW This is an optional field, if it's omitted the argument will use one of the additionalZ7 fields as the name using the following priority order::= * Explicit Name (This always takes precedence when present)@ * Long  * Short  * Value NameZ `clap` determines explicit names as the first string of characters between either `[]` or]\ `<>` where `[]` has the dual notation of meaning the argument is optional, and `<>` meaning_ the argument is required.# Explicit names may be followed by:&! * The multiple denotation `...`$W Example explicit names as follows (`ename` for an optional argument, and `rname` for aZ required argument): ```notrust [ename] -s, --long 'some flag'"' -r, --longer 'some other flag'* ``` ### Short ? This is set by placing a single character after a leading `-`.B Shorts may be followed by! * The multiple denotation `...`$0 * An optional comma `,` which is cosmetic only3 * Value notation0 Example shorts are as follows (`-s`, and `-r`):3 ```notrust -s, --long 'some flag') -r [val], --longer 'some option', ``` ### Long @ This is set by placing a word (no spaces) after a leading `--`.C Shorts may be followed by! * The multiple denotation `...`$ * Value notation8 Example longs are as follows (`--some`, and `--rapid`):; ```notrust -s, --some 'some flag' --rapid=[FILE] 'some option'  ``` ### Values (Value Notation)Z This is set by placing a word(s) between `[]` or `<>` optionally after `=` (although this]Z is cosmetic only and does not affect functionality). If an explicit name has **not** been][ set, using `<>` will denote a required argument, and `[]` will denote an optional argument^ Values may be followed by! * The multiple denotation `...`$ * More Value notationY More than one value will also implicitly set the arguments number of values, i.e. having\\ two values, `--option [val1] [val2]` specifies that in order for option to be satisified it_ must receive exactly two values#5 Example values are as follows (`FILE`, and `SPEED`):8 ```notrust -s, --some [FILE] 'some option'#3 --rapid=... 'some required multiple option'6 ``` ### Help StringT The help string is denoted between a pair of single quotes `''` and may contain anyW characters.% Example help strings are as follows:( ```notrust -s, --some [FILE] 'some option'#3 --rapid=... 'some required multiple option'6 ``` ### Additional SigilsZ Multiple notation `...` (three consecutive dots/periods) specifies that this argument may]Z be used multiple times. Do not confuse multiple occurrences (`...`) with multiple values.]U `--option val1 val2` is a single occurrence with multiple values. `--flag --flag` isXQ multiple occurrences (and then you can obviously have instances of both as well)T # Examples ```rust  # use clap::{App, Arg}; App::new("prog") .args(&[a Arg::from_usage("--config 'a required file for the configuration and no short'"),da Arg::from_usage("-d, --debug... 'turns on debugging information and allows multiples'"),dC Arg::from_usage("[input] 'an optional input file to use'")F ]) # ; ``` [`Arg`]: ./struct.Arg.html9 [`Arg::from_usage`]: ./struct.Arg.html#method.from_usage< 'a'b selfsB Sets the short version of the argument without the preceding `-`.EX By default `clap` automatically assigns `V` and `h` to the auto-generated `version` and[[ `help` arguments respectively. You may use the uppercase `V` or lowercase `h` for your own^S arguments, in which case `clap` simply will not assign those to the auto-generatedV `version` or `help` arguments."J **NOTE:** Any leading `-` characters will be stripped, and only the firstM8 non `-` character will be used as the [`short`] version; # ExamplesZ To set [`short`] use a single valid UTF-8 code point. If you supply a leading `-` such as] `-c`, the `-` will be stripped.# ```rust  # use clap::{App, Arg}; Arg::with_name("config") .short("c") # ; ```S Setting [`short`] allows using the argument via a single hyphen (`-`) such as `-c`V ```rust  # use clap::{App, Arg}; let m = App::new("prog")" .arg(Arg::with_name("config")% .short("c")) .get_matches_from(vec![ "prog", "-c" ]); ! assert!(m.is_present("config"));$ ```* [`short`]: ./struct.Arg.html#method.short- 'a'b  S  ؀9 ؀9؀9 ؀9؀9 ؀9؀9 ؀9؀9؀2؀2؀*؀*؀ ؀  ؀ ؀ ؀ ڀ  ڀ؀     ؀* E    ؀* ؀2 D؀2؀9 ) ɀH                   ؀9 ݈!؀2݈!؀2؀*؀*؀ ؀ ؀! selfsselfl}B Sets the long version of the argument without the preceding `--`.ES By default `clap` automatically assigns `version` and `help` to the auto-generatedVZ `version` and `help` arguments respectively. You may use the word `version` or `help` for؂]Z the long form of your own arguments, in which case `clap` simply will not assign those to]2 the auto-generated `version` or `help` arguments.5ք6 **NOTE:** Any leading `-` characters will be strippedބ9 # Examples[ To set `long` use a word containing valid UTF-8 codepoints. If you supply a double leading^[ `--` such as `--config` they will be stripped. Hyphens in the middle of the word, however,^7 will *not* be stripped (i.e. `config-file` is allowed):ć ```rusṫ  # use clap::{App, Arg};܇ Arg::with_name("cfg") .long("config") # ; ```ˆΈW Setting `long` allows using the argument via a double hyphen (`--`) such as `--config`ֈZ ```rust  # use clap::{App, Arg};͉ let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config")) .get_matches_from(vec![֊ "prog", "--config" ]);  assert!(m.is_present("cfg"));! ```ۋ 'a'b 'b selfѓnameדI Allows adding a [`Arg`] alias, which function as "hidden" arguments thatLX automatically dispatch as if this argument was used. This is more efficient, and easier[X than creating multiple hidden arguments as one only needs to check for the existence of[$ this command, and not all variants.' # Examples ```rustʏ  # use clap::{App, Arg};ڏ let m = App::new("prog")( .arg(Arg::with_name("test")+ .long("test")ː .alias("alias") .takes_value(true))# .get_matches_from(vec!["& "prog", "--alias", "cool") ]); assert!(m.is_present("test"));". assert_eq!(m.value_of("test"), Some("cool"));ɒ1 ``` [`Arg`]: ./struct.Arg.html 'a'b  S!      9 9  9  9 9          Some      ƔĀǔǔȔҔ  9  99  9   99 99  99  Some       999      7  ͓ד   99 9 9   9self͓nameדals selfϜnames՜I Allows adding [`Arg`] aliases, which function as "hidden" arguments thatLX automatically dispatch as if this argument was used. This is more efficient, and easier[Z than creating multiple hidden subcommands as one only needs to check for the existence of]$ this command, and not all variants.ϗ' # Examples ```rust  # use clap::{App, Arg}; let m = App::new("prog")Θ( .arg(Arg::with_name("test")+" .long("test")%A .aliases(&["do-stuff", "do-tests", "tests"])əD- .help("the file to add")0& .required(false))ǚ)$ .get_matches_from(vec!['% "prog", "--do-tests"( ]);Λ assert!(m.is_present("test"));" ``` [`Arg`]: ./struct.Arg.htmlÜ 'a'b  ! ܜselfnameƥM Allows adding a [`Arg`] alias that functions exactly like those defined withPF [`Arg::alias`], except that they are visible inside the help message.ٟI # Examples  ```rustʠ  # use clap::{App, Arg};ڠ let m = App::new("prog")( .arg(Arg::with_name("test")+4 .visible_alias("something-awesome")ˡ7 .long("test")!$ .takes_value(true))' .get_matches_from(vec![٢"4 "prog", "--something-awesome", "coffee"7 ]); assert!(m.is_present("test"));У"0 assert_eq!(m.value_of("test"), Some("coffee"));3 ``` [`Arg`]: ./struct.Arg.html/ [`App::alias`]: ./struct.Arg.html#method.aliasޤ2 'a'b  S!     9 9  9  9 9          Some      Ā  9  99  9   99 99  99  Some   զ   999զ  զզ    6 ҥ ƥ  99 9 9   9selfnameƥals selfnamesQ Allows adding multiple [`Arg`] aliases that functions exactly like those definedTM with [`Arg::aliases`], except that they are visible inside the help message.Pר # Examplesߨ ```rust  # use clap::{App, Arg}; let m = App::new("prog")( .arg(Arg::with_name("test")˩+ .long("test")!E .visible_aliases(&["something", "awesome", "cool"]))H .get_matches_from(vec![" "prog", "--awesome"# ]); assert!(m.is_present("test"));ѫ" ``` [`Arg`]: ./struct.Arg.html3 [`App::aliases`]: ./struct.Arg.html#method.aliases6 'a'b ´! self˽hѽ]\ Sets the short help text of the argument that will be displayed to the user when they print_Y the help information with `-h`. Typically, this is a short (one line) description of the\ arg.\ **NOTE:** If only `Arg::help` is provided, and not [`Arg::long_help`] but the user requests_F `--help` clap will still display the contents of `help` appropriatelyIZ **NOTE:** Only `Arg::help` is used in completion script generation in order to be conciseIJ] # ExamplesU Any valid UTF-8 is allowed in the help text. The one exception is when one wishes toɳX\ include a newline in the help text and have the following text be properly aligned with all_ the other help text. ```rust  # use clap::{App, Arg}; Arg::with_name("config")ߵ0 .help("The config file used by the myprog")3 # ; ```ĶжY Setting `help` displays a short message to the side of the argument when the user passesض\ `-h` or `--help` (by default)." ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config")= .help("Some help text describing the --config arg"))@ .get_matches_from(vec![Ź "prog", "--help" ]);  ``` The above example displaysѺ ```notrustٺ helptest  USAGE:  helptest [FLAGS] FLAGS: < --config Some help text describing the --config argǻ?) -h, --help Prints help information,, -V, --version Prints version information/ ```7 [`Arg::long_help`]: ./struct.Arg.html#method.long_help:½ 'a'b ! selfhg[ Sets the long help text of the argument that will be displayed to the user when they print^X the help information with `--help`. Typically this a more detailed (multi-line) message[ that describes the arg.\ **NOTE:** If only `long_help` is provided, and not [`Arg::help`] but the user requests `-h`_B clap will still display the contents of `long_help` appropriatelyE\ **NOTE:** Only [`Arg::help`] is used in completion script generation in order to be concise_ # ExamplesU Any valid UTF-8 is allowed in the help text. The one exception is when one wishes toX\ include a newline in the help text and have the following text be properly aligned with all_ the other help text. ```rust  # use clap::{App, Arg}; Arg::with_name("config") .long_help(; "The config file used by the myprog must be in JSON format>8 with only valid keys and may not contain other nonsense;< that cannot be read by this program. Obviously I'm going on? and on, so I'll stop now.") # ; ```Y Setting `help` displays a short message to the side of the argument when the user passes\ `-h` or `--help` (by default)." ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config") .long_help(; "The config file used by the myprog must be in JSON format>8 with only valid keys and may not contain other nonsense;< that cannot be read by this program. Obviously I'm going on? and on, so I'll stop now."))  .get_matches_from(vec![ "prog", "--help" ]);  ``` The above example displays ```notrust helptest  USAGE:  helptest [FLAGS] FLAGS:  --configB The config file used by the myprog must be in JSON formatE@ with only valid keys and may not contain other nonsenseCD that cannot be read by this program. Obviously I'm going onG" and on, so I'll stop now.% -h, --help Prints help information# -V, --version# Prints version information& ```- [`Arg::help`]: ./struct.Arg.html#method.help0 'a'b ! selflY Specifies that this arg is the last, or final, positional argument (i.e. has the highest\S index) and is *only* able to be accessed via the `--` syntax (i.e. `$ prog args --V] last_arg`). Even, if no other arguments are left to parse, if the user omits the `--` syntax`Z they will receive an [`UnknownArgument`] error. Setting an argument to `.last(true)` also]] allows one to access this arg early using the `--` syntax. Accessing an arg early, even with`+ the `--` syntax is otherwise not possible..X **NOTE:** This will change the usage string to look like `$ prog [FLAGS] [-- ]` if[" `ARG` is marked as `.last(true)`.%[ **NOTE:** This setting will imply [`AppSettings::DontCollapseArgsInUsage`] because failing^6 to set this can make the usage string very confusing.9Z **NOTE**: This setting only applies to positional arguments, and has no affect on FLAGS /] OPTIONS X **CAUTION:** Setting an argument to `.last(true)` *and* having child subcommands is not[V recommended with the exception of *also* using [`AppSettings::ArgsNegateSubcommands`]YX (or [`AppSettings::SubcommandsNegateReqs`] if the argument marked `.last(true)` is also[ marked [`.required(true)`]) # Examples ```rust  # use clap::Arg; Arg::with_name("args") .last(true) # ; ```[ Setting [`Arg::last(true)`] ensures the arg has the highest [index] of all positional args^> and requires that the `--` syntax be used to access it early.A ```rust  # use clap::{App, Arg}; let res = App::new("prog")" .arg(Arg::with_name("first"))%# .arg(Arg::with_name("second"))&- .arg(Arg::with_name("third").last(true))0! .get_matches_from_safe(vec![$% "prog", "one", "--", "three"( ]);  assert!(res.is_ok()); let m = res.unwrap();0 assert_eq!(m.value_of("third"), Some("three"));3) assert!(m.value_of("second").is_none());, ```Y Even if the positional argument marked `.last(true)` is the only argument left to parse,\4 failing to use the `--` syntax results in an error.7 ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog")" .arg(Arg::with_name("first"))%# .arg(Arg::with_name("second"))&- .arg(Arg::with_name("third").last(true))0! .get_matches_from_safe(vec![$& "prog", "one", "two", "three") ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ```3 [`Arg::last(true)`]: ./struct.Arg.html#method.last6( [index]: ./struct.Arg.html#method.index+b [`AppSettings::DontCollapseArgsInUsage`]: ./enum.AppSettings.html#variant.DontCollapseArgsInUsagee^ [`AppSettings::ArgsNegateSubcommands`]: ./enum.AppSettings.html#variant.ArgsNegateSubcommandsa^ [`AppSettings::SubcommandsNegateReqs`]: ./enum.AppSettings.html#variant.SubcommandsNegateReqsa7 [`.required(true)`]: ./struct.Arg.html#method.required:C [`UnknownArgument`]: ./enum.ErrorKind.html#variant.UnknownArgumentF 'a'b selfrY Sets whether or not the argument is required by default. Required by default means it is\V required, when no other conflicting rules have been evaluated. Conflicting rules takeY5 precedence over being required. **Default:** `false`8[ **NOTE:** Flags (i.e. not positional, or arguments that take values) cannot be required by^Z default. This is simply because if a flag should be required, it should simply be implied]Z as no additional information is required from user. Flags by their very nature are simply] yes/no, or true/false. # Examples ```rust  # use clap::Arg; Arg::with_name("config") .required(true) # ; ```O Setting [`Arg::required(true)`] requires that the argument be used at runtime.R ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")" .required(true) .takes_value(true) .long("config"))! .get_matches_from_safe(vec![$( "prog", "--config", "file.conf"+ ]);  assert!(res.is_ok()); ```O Setting [`Arg::required(true)`] and *not* supplying that argument is an error.R ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .required(true) .takes_value(true) .long("config"))! .get_matches_from_safe(vec![$ "prog" ]);  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::required(true)`]: ./struct.Arg.html#method.required> 'a'b selfˌrь[ Requires that options use the `--option=val` syntax (i.e. an equals between the option and^' associated value) **Default:** `false`*U **NOTE:** This setting also removes the default of allowing empty values and impliesX [`Arg::empty_values(false)`].! # Examples ```rust  # use clap::Arg; Arg::with_name("config") .long("config")р .takes_value(true) .require_equals(true) # ; ```Ɓ[ Setting [`Arg::require_equals(true)`] requires that the option have an equals sign between΁^ it and the associated value. ւ ```rustނ  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")" .require_equals(true)؃! .takes_value(true) .long("config"))! .get_matches_from_safe(vec![„$% "prog", "--config=file.conf"( ]);  assert!(res.is_ok()); ```΅څY Setting [`Arg::require_equals(true)`] and *not* supplying the equals will cause an error\+ unless [`Arg::empty_values(true)`] is set.Æ. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")܇" .require_equals(true)! .takes_value(true) .long("config"))̈! .get_matches_from_safe(vec![$( "prog", "--config", "file.conf"+ ]);Ɖ ։ assert!(res.is_err());މ: assert_eq!(res.unwrap_err().kind, ErrorKind::EmptyValue);= ```G [`Arg::require_equals(true)`]: ./struct.Arg.html#method.require_equalsˊJC [`Arg::empty_values(true)`]: ./struct.Arg.html#method.empty_valuesFD [`Arg::empty_values(false)`]: ./struct.Arg.html#method.empty_valuesG 'a'b selfa6 Allows values which start with a leading hyphen (`-`)9\ **WARNING**: Take caution when using this setting combined with [`Arg::multiple(true)`], as_X this becomes ambiguous `$ prog --arg -- -- val`. All three `--, --, val` will be valuesڏ[R when the user may have thought the second `--` would constitute the normal, "OnlyUX positional args follow" idiom. To fix this, consider using [`Arg::number_of_values(1)`][[ **WARNING**: When building your CLIs, consider the effects of allowing leading hyphens and^Y the user passing in a value that matches a valid short. For example `prog -opt -F` whereߒ\^ `-F` is supposed to be a value, yet `-F` is *also* a valid short for another arg. Care shouldaX should be taken when designing these args. This is compounded by the ability to "stack"[] short args. I.e. if `-val` is supposed to be a value, but `-v`, `-a`, and `-l` are all valid` shorts.  # Examples ```rust  # use clap::Arg; Arg::with_name("pattern")ǖ .allow_hyphen_values(true)" # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("pat")"# .allow_hyphen_values(true)& .takes_value(true)Ә .long("pattern")) .get_matches_from(vec![% "prog", "--pattern", "-file"( ]); . assert_eq!(m.value_of("pat"), Some("-file"));1 ```ÚY Not setting [`Arg::allow_hyphen_values(true)`] and supplying a value which starts with a˚\ hyphen is an error.ț ```rustЛ # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("pat")" .takes_value(true)՜ .long("pattern"))! .get_matches_from_safe(vec![$% "prog", "--pattern", "-file"Ý( ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ```Q [`Arg::allow_hyphen_values(true)`]: ./struct.Arg.html#method.allow_hyphen_valuesT; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multipleӟ>H [`Arg::number_of_values(1)`]: ./struct.Arg.html#method.number_of_valuesK 'a'b selfɲnameϲW Sets an arg that override this arg's required setting. (i.e. this arg will be requiredZ( unless this other argument is present).+ˣ[ **Pro Tip:** Using [`Arg::required_unless`] implies [`Arg::required`] and is therefore notӣ^ mandatory to also set.դ # Examplesݤ ```rust  # use clap::Arg; Arg::with_name("config") .required_unless("debug")¥! # ; ```U Setting [`Arg::required_unless(name)`] requires that the argument be used at runtimeXU *unless* `name` is present. In the following example, the required argument is *not*XL provided, but it's not an error because the `unless` arg has been supplied.§O ```rust  # use clap::{App, Arg}; let res = App::new("prog")Ψ .arg(Arg::with_name("cfg")" .required_unless("dbg")# .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")" .long("debug"))! .get_matches_from_safe(vec![˪$ "prog", "--debug" ]);  assert!(res.is_ok()); ```̫ث[ Setting [`Arg::required_unless(name)`] and *not* supplying `name` or this arg is an error.^ì ```rustˬ # # use clap::{App, Arg, ErrorKind};۬& let res = App::new("prog") .arg(Arg::with_name("cfg")" .required_unless("dbg")Э# .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")" .long("debug"))! .get_matches_from_safe(vec![$ "prog" ]);ï ӯ assert!(res.is_err());ۯG assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```ɰC [`Arg::required_unless`]: ./struct.Arg.html#method.required_unlessհF5 [`Arg::required`]: ./struct.Arg.html#method.required8I [`Arg::required_unless(name)`]: ./struct.Arg.html#method.required_unlessݱL 'a'b selfnames\ Sets args that override this arg's required setting. (i.e. this arg will be required unless_( all these other arguments are present).+W **NOTE:** If you wish for this argument to only be required if *one of* these args areǵZ) present see [`Arg::required_unless_one`],׶ # Examples߶ ```rust  # use clap::Arg; Arg::with_name("config")* .required_unless_all(&["cfg", "dbg"])ķ- # ; ```Z Setting [`Arg::required_unless_all(names)`] requires that the argument be used at runtime]W *unless* *all* the args in `names` are present. In the following example, the requiredZZ argument is *not* provided, but it's not an error because all the `unless` args have been׹] supplied. ˺ ```rustӺ  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")"1 .required_unless_all(&["dbg", "infile"])ͻ4 .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")ʼ" .long("debug"))" .arg(Arg::with_name("infile")% .short("i") .takes_value(true))׽! .get_matches_from_safe(vec![$( "prog", "--debug", "-i", "file"+ ]);Ծ  assert!(res.is_ok()); ```Y Setting [`Arg::required_unless_all(names)`] and *not* supplying *all* of `names` or this\ arg is an error. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")"1 .required_unless_all(&["dbg", "infile"])4 .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")" .long("debug"))" .arg(Arg::with_name("infile")% .short("i") .takes_value(true))! .get_matches_from_safe(vec![$ "prog" ]);  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```K [`Arg::required_unless_one`]: ./struct.Arg.html#method.required_unless_oneNR [`Arg::required_unless_all(names)`]: ./struct.Arg.html#method.required_unless_allU 'a'b   selfnamesW Sets args that override this arg's [required] setting. (i.e. this arg will be requiredZ= unless *at least one of* these other arguments are present).@W **NOTE:** If you wish for this argument to only be required if *all of* these args areZ) present see [`Arg::required_unless_all`], # Examples ```rust  # use clap::Arg; Arg::with_name("config")* .required_unless_all(&["cfg", "dbg"])- # ; ```Z Setting [`Arg::required_unless_one(names)`] requires that the argument be used at runtime]Z *unless* *at least one of* the args in `names` are present. In the following example, the]Y required argument is *not* provided, but it's not an error because one the `unless` args\ have been supplied. ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")"1 .required_unless_one(&["dbg", "infile"])4 .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")" .long("debug"))" .arg(Arg::with_name("infile")% .short("i") .takes_value(true))! .get_matches_from_safe(vec![$ "prog", "--debug" ]);  assert!(res.is_ok()); ```Z Setting [`Arg::required_unless_one(names)`] and *not* supplying *at least one of* `names`] or this arg is an error. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")"1 .required_unless_one(&["dbg", "infile"])4 .takes_value(true) .long("config")) .arg(Arg::with_name("dbg")" .long("debug"))" .arg(Arg::with_name("infile")% .short("i") .takes_value(true))! .get_matches_from_safe(vec![$ "prog" ]);  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```. [required]: ./struct.Arg.html#method.required1R [`Arg::required_unless_one(names)`]: ./struct.Arg.html#method.required_unless_oneUK [`Arg::required_unless_all`]: ./struct.Arg.html#method.required_unless_allN 'a'b " selfnameD Sets a conflicting argument by name. I.e. when using this argument,G8 the following argument can't be present and vice versa.;[ **NOTE:** Conflicting rules take precedence over being required by default. Conflict rules^W only need to be set for one of the two arguments, they do not need to be set for each.Z\ **NOTE:** Defining a conflict is two-way, but does *not* need to defined for both arguments_Y (i.e. if A conflicts with B, defining A.conflicts_with(B) is sufficient. You do not need\% need to also do B.conflicts_with(A))( # Examples ```rust  # use clap::Arg; Arg::with_name("config") .conflicts_with("debug")  # ; ```X Setting conflicting argument, and having both arguments present at runtime is an error.[ ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)! .conflicts_with("debug")$ .long("config"))! .arg(Arg::with_name("debug")$ .long("debug"))! .get_matches_from_safe(vec![$3 "prog", "--debug", "--config", "file.conf"6 ]);  assert!(res.is_err());@ assert_eq!(res.unwrap_err().kind, ErrorKind::ArgumentConflict);C ``` 'a'b selfnamesX The same as [`Arg::conflicts_with`] but allows specifying multiple two-way conlicts per[ argument. [ **NOTE:** Conflicting rules take precedence over being required by default. Conflict rules^W only need to be set for one of the two arguments, they do not need to be set for each.Z\ **NOTE:** Defining a conflict is two-way, but does *not* need to defined for both arguments_Y (i.e. if A conflicts with B, defining A.conflicts_with(B) is sufficient. You do not need\% need to also do B.conflicts_with(A))( # Examples ```rust  # use clap::Arg; Arg::with_name("config")- .conflicts_with_all(&["debug", "input"])0 # ; ```X Setting conflicting argument, and having any of the arguments present at runtime with a[" conflicting argument is an error.% ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)1 .conflicts_with_all(&["debug", "input"])4 .long("config"))! .arg(Arg::with_name("debug")$ .long("debug"))! .arg(Arg::with_name("input")$ .index(1))! .get_matches_from_safe(vec![$4 "prog", "--config", "file.conf", "file.txt"7 ]);  assert!(res.is_err());@ assert_eq!(res.unwrap_err().kind, ErrorKind::ArgumentConflict);C ```A [`Arg::conflicts_with`]: ./struct.Arg.html#method.conflicts_withD 'a'b " selfnameS Sets a overridable argument by name. I.e. this argument and the following argumentVU will override each other in POSIX style (whichever argument was specified at runtimeX **last** "wins")X **NOTE:** When an argument is overridden it is essentially as if it never was used, any[X conflicts, requirements, etc. are evaluated **after** all "overrides" have been removed[X **WARNING:** Positional arguments cannot override themselves (or we would never be able[Y to advance to the next positional). If a positional agument lists itself as an override,\ it is simply ignored. # ExamplesԀ ```rust܀  # use clap::{App, Arg}; let m = App::new("prog")3 .arg(Arg::from_usage("-f, --flag 'some flag'")6" .conflicts_with("debug"))%6 .arg(Arg::from_usage("-d, --debug 'other flag'"))95 .arg(Arg::from_usage("-c, --color 'third flag'")Ђ8! .overrides_with("flag"))$ .get_matches_from(vec![$ "prog", "-f", "-d", "-c"]);ڃ'@ // ^~~~~~~~~~~~^~~~~ flag is overridden by colorC΄ assert!(m.is_present("color"));ք#Z assert!(m.is_present("debug")); // even though flag conflicts with debug, it's as if flag]W // was never used because it was overridden with colorZ assert!(!m.is_present("flag"));# ```Y Care must be taken when using this setting, and having an arg override with itself. This\Q is common practice when supporting things like shell aliases, config files, etc.ԇT> However, when combined with multiple values, it can get dicy.A* Here is how clap handles such situations:-W When a flag overrides itself, it's as if the flag was only ever used once (essentiallyZ1 preventing a "Unexpected multiple usage" error):4Ŋ ```rust͊  # use clap::{App, Arg};݊ let m = App::new("posix")P .arg(Arg::from_usage("--flag 'some flag'").overrides_with("flag"))SB .get_matches_from(vec!["posix", "--flag", "--flag"]);E assert!(m.is_present("flag"));") assert_eq!(m.occurrences_of("flag"), 1);, ```X Making a arg `multiple(true)` and override itself is essentially meaningless. Therefore[] clap ignores an override of self if it's a flag and it already accepts multiple occurrences.` ``` # use clap::{App, Arg}; let m = App::new("posix")S .arg(Arg::from_usage("--flag... 'some flag'").overrides_with("flag"))VQ .get_matches_from(vec!["", "--flag", "--flag", "--flag", "--flag"]);T assert!(m.is_present("flag"));") assert_eq!(m.occurrences_of("flag"), 4);, ```̑X Now notice with options (which *do not* set `multiple(true)`), it's as if only the lastؑ[ occurrence happened.Ւ ```ݒ # use clap::{App, Arg}; let m = App::new("posix")U .arg(Arg::from_usage("--opt [val] 'some option'").overrides_with("opt"))XF .get_matches_from(vec!["", "--opt=some", "--opt=other"]);I assert!(m.is_present("opt"));֔!( assert_eq!(m.occurrences_of("opt"), 1);+. assert_eq!(m.value_of("opt"), Some("other"));1 ```] Just like flags, options with `multiple(true)` set, will ignore the "override self" setting.`ۖ ``` # use clap::{App, Arg}; let m = App::new("posix")A .arg(Arg::from_usage("--opt [val]... 'some option'")D( .overrides_with("opt"))+\ .get_matches_from(vec!["", "--opt", "first", "over", "--opt", "other", "val"]);_ assert!(m.is_present("opt"));!( assert_eq!(m.occurrences_of("opt"), 2);+a assert_eq!(m.values_of("opt").unwrap().collect::>(), &["first", "over", "other", "val"]);d ```͚ٚZ A safe thing to do if you'd like to support an option which supports multiple values, but]P also is "overridable" by itself, is to use `use_delimiter(false)` and *not* useÛSX `multiple(true)` while telling users to seperate values with a comma (i.e. `val1,val2`)[ ``` # use clap::{App, Arg}; let m = App::new("posix")> .arg(Arg::from_usage("--opt [val] 'some option'")ѝA' .overrides_with("opt")*' .use_delimiter(false))ƞ*N .get_matches_from(vec!["", "--opt=some,other", "--opt=one,two"]);Q assert!(m.is_present("opt"));˟!( assert_eq!(m.occurrences_of("opt"), 1);+K assert_eq!(m.values_of("opt").unwrap().collect::>(), &["one,two"]);N ``` 'a'b selfĭnamesʭ[ Sets multiple mutually overridable arguments by name. I.e. this argument and the following^V argument will override each other in POSIX style (whichever argument was specified atңY runtime **last** "wins")ѤX **NOTE:** When an argument is overridden it is essentially as if it never was used, any٤[X conflicts, requirements, etc. are evaluated **after** all "overrides" have been removed[ # Examples ```rust  # use clap::{App, Arg};̦ let m = App::new("prog")3 .arg(Arg::from_usage("-f, --flag 'some flag'")6" .conflicts_with("color"))ȧ%6 .arg(Arg::from_usage("-d, --debug 'other flag'"))95 .arg(Arg::from_usage("-c, --color 'third flag'")81 .overrides_with_all(&["flag", "debug"]))4 .get_matches_from(vec![$ "prog", "-f", "-d", "-c"]);ʩ'I // ^~~~~~^~~~~~~~~ flag and debug are overridden by colorLǪZ assert!(m.is_present("color")); // even though flag conflicts with color, it's as if flagϪ]Z // and debug were never used because they were overridden]. // with color1! assert!(!m.is_present("debug"));ɬ$ assert!(!m.is_present("flag"));# ``` 'a'b " ѭselfnameM Sets an argument by name that is required when this one is present I.e. whenP? using this argument, the following argument *must* be present.BW **NOTE:** [Conflicting] rules and [override] rules take precedence over being requiredZ # Examples ```rust  # use clap::Arg; Arg::with_name("config") .requires("input")۲ # ; ```U Setting [`Arg::requires(name)`] requires that the argument be used at runtime if theXY defining argument is used. If the defining argument isn't used, the other argument isn't\ requiredش  ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")ĵ" .takes_value(true) .requires("input") .long("config"))! .arg(Arg::with_name("input")Ҷ$ .index(1))! .get_matches_from_safe(vec![$ "prog" ]);ַ E assert!(res.is_ok()); // We didn't use cfg, so input wasn't requiredH ```ǸO Setting [`Arg::requires(name)`] and *not* supplying that argument is an error.ϸR ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true) .requires("input")ֺ .long("config"))! .arg(Arg::with_name("input")$ .index(1))û! .get_matches_from_safe(vec![޻$( "prog", "--config", "file.conf"+ ]); Ǽ assert!(res.is_err());ϼG assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::requires(name)`]: ./struct.Arg.html#method.requiresɽ>7 [Conflicting]: ./struct.Arg.html#method.conflicts_with:4 [override]: ./struct.Arg.html#method.overrides_with˾7 'a'b selfvalarg] Allows a conditional requirement. The requirement will only become valid if this arg's value` equals `val`.A **NOTE:** If using YAML the values should be laid out as followsD ```yaml  requires_if: - [val, arg] ``` # Examples ```rust  # use clap::Arg; Arg::with_name("config") .requires_if("val", "arg")" # ; ```Y Setting [`Arg::requires_if(val, arg)`] requires that the `arg` be used at runtime if the\] defining argument's value is equal to `val`. If the defining argument is anything other than`* `val`, the other argument isn't required.- ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)( .requires_if("my.cfg", "other")+ .long("config"))" .arg(Arg::with_name("other"))%! .get_matches_from_safe(vec![$' "prog", "--config", "some.cfg"* ]); Q assert!(res.is_ok()); // We didn't use --config=my.cfg, so other wasn't requiredT ```Z Setting [`Arg::requires_if(val, arg)`] and setting the value to `val` but *not* supplying] `arg` is an error. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)( .requires_if("my.cfg", "input")+ .long("config"))" .arg(Arg::with_name("input"))%! .get_matches_from_safe(vec![$% "prog", "--config", "my.cfg"( ]);  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::requires(name)`]: ./struct.Arg.html#method.requires>7 [Conflicting]: ./struct.Arg.html#method.conflicts_with:4 [override]: ./struct.Arg.html#method.overrides_with7 'a'b ! selfifse Allows multiple conditional requirements. The requirement will only become valid if this arg's valueh equals `val`.A **NOTE:** If using YAML the values should be laid out as followsD ```yaml  requires_if: - [val, arg] - [val2, arg2] ``` # Examples ```rust  # use clap::Arg; Arg::with_name("config") .requires_ifs(&[ ("val", "arg"), ("other_val", "arg2")," ])  # ; ```a Setting [`Arg::requires_ifs(&["val", "arg"])`] requires that the `arg` be used at runtime if thed` defining argument's value is equal to `val`. If the defining argument's value is anything otherc" than `val`, `arg` isn't required.% ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true) .requires_ifs(&[% ("special.conf", "opt"),(% ("other.conf", "other"),( ]) .long("config")) .arg(Arg::with_name("opt")" .long("option") .takes_value(true))" .arg(Arg::with_name("other"))%! .get_matches_from_safe(vec![$+ "prog", "--config", "special.conf". ]); W assert!(res.is_err()); // We used --config=special.conf so --option is requiredZG assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::requires(name)`]: ./struct.Arg.html#method.requires>7 [Conflicting]: ./struct.Arg.html#method.conflicts_with:4 [override]: ./struct.Arg.html#method.overrides_with7 'a'b  !  selfargvalZ Allows specifying that an argument is [required] conditionally. The requirement will only]: become valid if the specified `arg`'s value equals `val`.=A **NOTE:** If using YAML the values should be laid out as followsD ```yaml  required_if: - [arg, val] ``` # Examples ```rust  # use clap::Arg; Arg::with_name("config")' .required_if("other_arg", "value")* # ; ```W Setting [`Arg::required_if(arg, val)`] makes this arg required if the `arg` is used atZ] runtime and it's value is equal to `val`. If the `arg`'s value is anything other than `val`,` this argument isn't required.! ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)) .required_if("other", "special"), .long("config"))! .arg(Arg::with_name("other")$ .long("other") .takes_value(true))! .get_matches_from_safe(vec![$) "prog", "--other", "not-special", ]); Q assert!(res.is_ok()); // We didn't use --other=special, so "cfg" wasn't requiredT ```] Setting [`Arg::required_if(arg, val)`] and having `arg` used with a value of `val` but *not*` using this arg is an error. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true)) .required_if("other", "special"), .long("config"))! .arg(Arg::with_name("other")$ .long("other") .takes_value(true))! .get_matches_from_safe(vec![$% "prog", "--other", "special"( ]);  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::requires(name)`]: ./struct.Arg.html#method.requires>7 [Conflicting]: ./struct.Arg.html#method.conflicts_with:. [required]: ./struct.Arg.html#method.required1 'a'b ! selfifsǏS Allows specifying that an argument is [required] based on multiple conditions. TheV\ conditions are set up in a `(arg, val)` style tuple. The requirement will only become valid_G if one of the specified `arg`'s value equals it's corresponding `val`.JA **NOTE:** If using YAML the values should be laid out as followsD ```yaml  required_if: - [arg, val] - [arg2, val2] ``` # Examples ```rust  # use clap::Arg; Arg::with_name("config") .required_ifs(&[ ("extra", "val"), ("option", "spec") ])  # ; ```Z Setting [`Arg::required_ifs(&[(arg, val)])`] makes this arg required if any of the `arg`s]\ are used at runtime and it's corresponding value is equal to `val`. If the `arg`'s value is_9 anything other than `val`, this argument isn't required.< ```rust€  # use clap::{App, Arg};Ҁ let res = App::new("prog") .arg(Arg::with_name("cfg")" .required_ifs(&[ ("extra", "val"),݁! ("option", "spec")" ]) .takes_value(true) .long("config"))! .arg(Arg::with_name("extra")$ .takes_value(true) .long("extra"))̓" .arg(Arg::with_name("option")% .takes_value(true) .long("option"))! .get_matches_from_safe(vec![ۄ$$ "prog", "--option", "other"' ]); ] assert!(res.is_ok()); // We didn't use --option=spec, or --extra=val so "cfg" isn't requiredȅ` ```Y Setting [`Arg::required_ifs(&[(arg, val)])`] and having any of the `arg`s used with it's\5 value of `val` but *not* using this arg is an error.8߇ ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")ň" .required_ifs(&[ ("extra", "val"),! ("option", "spec")" ])ډ .takes_value(true) .long("config"))! .arg(Arg::with_name("extra")$ .takes_value(true)ڊ .long("extra"))" .arg(Arg::with_name("option")% .takes_value(true)Nj .long("option"))! .get_matches_from_safe(vec![$# "prog", "--option", "spec"& ]);ߌ  assert!(res.is_err());G assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```; [`Arg::requires(name)`]: ./struct.Arg.html#method.requires>7 [Conflicting]: ./struct.Arg.html#method.conflicts_with:. [required]: ./struct.Arg.html#method.required1 'a'b   ! ̏selfnamesV Sets multiple arguments by names that are required when this one is present I.e. whenƒY@ using this argument, the following arguments *must* be present.CW **NOTE:** [Conflicting] rules and [override] rules take precedence over being requiredZ by default.Ӕ # Examples ```rust  # use clap::Arg; Arg::with_name("config")( .requires_all(&["input", "output"])ԕ+ # ; ```W Setting [`Arg::requires_all(&[arg, arg2])`] requires that all the arguments be used atZY runtime if the defining argument is used. If the defining argument isn't used, the other\ argument isn't required ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("cfg")ߘ" .takes_value(true) .requires("input") .long("config"))̙! .arg(Arg::with_name("input")$ .index(1))" .arg(Arg::with_name("output")% .index(2))ۚ! .get_matches_from_safe(vec![$ "prog" ]); ƛQ assert!(res.is_ok()); // We didn't use cfg, so input and output weren't requiredΛT ```X Setting [`Arg::requires_all(&[arg, arg2])`] and *not* supplying all the arguments is an[ error.  ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("cfg")" .takes_value(true), .requires_all(&["input", "output"])ڞ/ .long("config"))! .arg(Arg::with_name("input")$ .index(1))؟" .arg(Arg::with_name("output")% .index(2))! .get_matches_from_safe(vec![$2 "prog", "--config", "file.conf", "in.txt"5 ]);  assert!(res.is_err()); // We didn't use outputҡG assert_eq!(res.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J ```7 [Conflicting]: ./struct.Arg.html#method.conflicts_with͢:4 [override]: ./struct.Arg.html#method.overrides_with7K [`Arg::requires_all(&[arg, arg2])`]: ./struct.Arg.html#method.requires_allȣN 'a'b " selfȳtvγ7 Specifies that the argument takes a value at run time.:P **NOTE:** values for arguments may be specified in any of the following methodsSɨ7 * Using a space such as `-o value` or `--option value`Ѩ:F * Using an equals and no space such as `-o=value` or `--option=value`I- * Use a short and no space such as `-ovalue`ީ0Z **NOTE:** By default, args which allow [multiple values] are delimited by commas, meaning]V `--option=val1,val2,val3` is three values for the `--option` argument. If you wish toYV change the delimiter to another character you can use [`Arg::value_delimiter(char)`],۫Y\ alternatively you can turn delimiting values **OFF** by using [`Arg::use_delimiter(false)`]_ # Examples ```rust  # use clap::{App, Arg};Э Arg::with_name("config") .takes_value(true) # ; ```Ȯ ```rustЮ  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("mode")# .long("mode")ɯ .takes_value(true)) .get_matches_from(vec![! "prog", "--mode", "fast"$ ]);ذ  assert!(m.is_present("mode"));". assert_eq!(m.value_of("mode"), Some("fast"));1 ```ͱI [`Arg::value_delimiter(char)`]: ./struct.Arg.html#method.value_delimiterٱLF [`Arg::use_delimiter(false)`]: ./struct.Arg.html#method.use_delimiterI5 [multiple values]: ./struct.Arg.html#method.multiple8 'a'b selfhideX Specifies if the possible values of an argument should be displayed in the help text or[5 not. Defaults to `false` (i.e. show possible values)ֵ8W This is useful for args with many values, or ones which are explained elsewhere in theZ help text. # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("config") .hide_possible_values(true)# # ; ``` ```rustɸ  # use clap::{App, Arg};ٸ let m = App::new("prog") .arg(Arg::with_name("mode")# .long("mode")¹, .possible_values(&["fast", "slow"])/ .takes_value(true)& .hide_possible_values(true));) ```X If we were to run the above program with `--help` the `[values: fast, slow]` portion of[ the help text would be omitted.# 'a'b selfhideV Specifies if the default value of an argument should be displayed in the help text orY3 not. Defaults to `false` (i.e. show default value)ž6X This is useful when default behavior of an arg is explained elsewhere in the help text.[ # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("config") .hide_default_value(true)! # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("connect") .arg(Arg::with_name("host")# .long("host")$ .default_value("localhost")'$ .hide_default_value(true));' ```X If we were to run the above program with `--help` the `[default: localhost]` portion of[ the help text would be omitted.# 'a'b selfidx]@ Specifies the index of a positional argument **starting at** 1.C[ **NOTE:** The index refers to position according to **other positional argument**. It does^5 not define position in the argument list as a whole.8W **NOTE:** If no [`Arg::short`], or [`Arg::long`] have been defined, you can optionallyZU leave off the `index` method, and the index will be assigned in order of evaluation.XE Utilizing the `index` method allows for setting indexes out of orderH\ **NOTE:** When utilized with [`Arg::multiple(true)`], only the **last** positional argument_9 may be defined as multiple (i.e. with the highest index)< # Panics [ Although not in this method directly, [`App`] will [`panic!`] if indexes are skipped (such^V as defining `index(1)` and `index(3)` but not `index(2)`, or a positional argument isY1 defined as multiple and is not the highest index4 # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("config") .index(1) # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("mode")# .index(1))! .arg(Arg::with_name("debug")$ .long("debug")) .get_matches_from(vec![" "prog", "--debug", "fast"% ]);  assert!(m.is_present("mode"));"Z assert_eq!(m.value_of("mode"), Some("fast")); // notice index(1) means "first positional"]F // *not* first argumentI ```/ [`Arg::short`]: ./struct.Arg.html#method.short2- [`Arg::long`]: ./struct.Arg.html#method.long0; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple> [`App`]: ./struct.App.html< [`panic!`]: https://doc.rust-lang.org/std/macro.panic!.html? 'a'b  selfmultiO Specifies that the argument may appear more than once. For flags, this resultsRZ in the number of occurrences of the flag being recorded. For example `-ddd` or `-d -d -d`]Y would count as three occurrences. For options there is a distinct difference in multiple\ occurrences vs multiple values.#J For example, `--opt val1 val2` is one occurrence, but two values. WhereasM, `--opt val1 --opt val2` is two occurrences./ **WARNING:**W Setting `multiple(true)` for an [option] with no other details, allows multiple valuesZ\ **and** multiple occurrences because it isn't possible to have more occurrences than values_Y for options. Because multiple values are allowed, `--option val1 val2 val3` is perfectly\W valid, be careful when designing a CLI where positional arguments are expected after aZX option which accepts multiple values, as `clap` will continue parsing *values* until it[Q reaches the max or specific number of values defined, or another flag or option.T **Pro Tip**:\ It's possible to define an option which allows multiple occurrences, but only one value per_M occurrence. To do this use [`Arg::number_of_values(1)`] in coordination withP [`Arg::multiple(true)`]. **WARNING:**Z When using args with `multiple(true)` on [options] or [positionals] (i.e. those args that]] accept values) and [subcommands], one needs to consider the possibility of an argument value`\ being the same as a valid subcommand. By default `clap` will parse the argument in question_Z as a value *only if* a value is possible at that moment. Otherwise it will be parsed as a][ subcommand. In effect, this means using `multiple(true)` with no additional parameters and^X a possible value that coincides with a subcommand name, the subcommand cannot be called[) unless another argument is passed first.,] As an example, consider a CLI with an option `--ui-paths=...` and subcommand `signer``9 The following would be parsed as values to `--ui-paths`.< ```notrust( $ program --ui-paths path1 path2 signer+ ```Z This is because `--ui-paths` accepts multiple values. `clap` will continue parsing values]E until another argument is reached and it knows `--ui-paths` is done.HY By adding additional parameters to `--ui-paths` we can solve this issue. Consider adding\[ [`Arg::number_of_values(1)`] as discussed above. The following are all valid, and `signer`^? is parsed as both a subcommand and a value in the second case.B ```notrust" $ program --ui-paths path1 signer%4 $ program --ui-paths path1 --ui-paths signer signer7 ``` # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .short("d") .multiple(true) # ; ``` An example with flags ```rust  # use clap::{App, Arg}; let m = App::new("prog")# .arg(Arg::with_name("verbose")& .multiple(true) .short("v")) .get_matches_from(vec![I "prog", "-v", "-v", "-v" // note, -vvv would have same resultL ]); " assert!(m.is_present("verbose"));%, assert_eq!(m.occurrences_of("verbose"), 3);/ ``` An example with options ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("file")# .multiple(true) .takes_value(true) .short("F")) .get_matches_from(vec![0 "prog", "-F", "file1", "file2", "file3"3 ]);  assert!(m.is_present("file"));"G assert_eq!(m.occurrences_of("file"), 1); // notice only one occurrenceJ< let files: Vec<_> = m.values_of("file").unwrap().collect();?0 assert_eq!(files, ["file1", "file2", "file3"]);3 ```5 This is functionally equivalent to the example above8 ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("file")# .multiple(true) .takes_value(true) .short("F")) .get_matches_from(vec![< "prog", "-F", "file1", "-F", "file2", "-F", "file3"? ]); < let files: Vec<_> = m.values_of("file").unwrap().collect();?0 assert_eq!(files, ["file1", "file2", "file3"]);3 assert!(m.is_present("file"));"A assert_eq!(m.occurrences_of("file"), 3); // Notice 3 occurrencesD< let files: Vec<_> = m.values_of("file").unwrap().collect();?0 assert_eq!(files, ["file1", "file2", "file3"]);3 ```Z A common mistake is to define an option which allows multiples, and a positional argument] ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("file")# .multiple(true) .takes_value(true) .short("F")) .arg(Arg::with_name("word")# .index(1)) .get_matches_from(vec![8 "prog", "-F", "file1", "file2", "file3", "word"; ]);  assert!(m.is_present("file"));"< let files: Vec<_> = m.values_of("file").unwrap().collect();?I assert_eq!(files, ["file1", "file2", "file3", "word"]); // wait...what?!L= assert!(!m.is_present("word")); // but we clearly used word!Ă@ ```Z The problem is clap doesn't know when to stop parsing values for "files". This is further]X compounded by if we'd said `word -F file1 file2` it would have worked fine, so it would[* appear to only fail sometimes...not good!ׄ-X A solution for the example above is to specify that `-F` only accepts one value, but is[! allowed to appear multiple times$ ```rust  # use clap::{App, Arg}; let m = App::new("prog")҆ .arg(Arg::with_name("file")# .multiple(true) .takes_value(true) .number_of_values(1)އ  .short("F")) .arg(Arg::with_name("word")# .index(1))Ȉ .get_matches_from(vec![D "prog", "-F", "file1", "-F", "file2", "-F", "file3", "word"G ]);Ӊ  assert!(m.is_present("file"));"< let files: Vec<_> = m.values_of("file").unwrap().collect();?0 assert_eq!(files, ["file1", "file2", "file3"]);֊3 assert!(m.is_present("word"));". assert_eq!(m.value_of("word"), Some("word"));1 ```X As a final example, notice if we define [`Arg::number_of_values(1)`] and try to run the[W problem example above, it would have been a runtime error with a pretty message to the׌Z user :) ƍ ```rust΍ # # use clap::{App, Arg, ErrorKind};ލ& let res = App::new("prog") .arg(Arg::with_name("file")# .multiple(true)Ԏ .takes_value(true) .number_of_values(1)  .short("F")) .arg(Arg::with_name("word")ُ# .index(1))! .get_matches_from_safe(vec![$8 "prog", "-F", "file1", "file2", "file3", "word"Ő; ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ```/ [option]: ./struct.Arg.html#method.takes_value20 [options]: ./struct.Arg.html#method.takes_valueƒ3( [subcommands]: ./struct.SubCommand.html+. [positionals]: ./struct.Arg.html#method.index1H [`Arg::number_of_values(1)`]: ./struct.Arg.html#method.number_of_valuesK; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple> 'a'b selfterm[ Specifies a value that *stops* parsing multiple values of a give argument. By default when^W one sets [`multiple(true)`] on an argument, clap will continue parsing values for thatZ] argument until it reaches another valid argument, or one of the other more specific settings`G for multiple values is used (such as [`min_values`], [`max_values`] orޘJ [`number_of_values`]).̙L **NOTE:** This setting only applies to [options] and [positional arguments]ԙO\ **NOTE:** When the terminator is passed in on the command line, it is **not** stored as one_ of the values # Examplesś ```rust͛  # use clap::{App, Arg};ݛ Arg::with_name("vals") .takes_value(true) .multiple(true) .value_terminator(";")ל # ; ```\ The following example uses two arguments, a sequence of commands, and the location in which_ to perform them ```rust  # use clap::{App, Arg}; let m = App::new("prog")ƞ .arg(Arg::with_name("cmds")# .multiple(true)# .allow_hyphen_values(true)& .value_terminator(";"))ڟ#% .arg(Arg::with_name("location"))( .get_matches_from(vec![L "prog", "find", "-type", "f", "-name", "special", ";", "/home/clap"ӠO ]); ; let cmds: Vec<_> = m.values_of("cmds").unwrap().collect();>@ assert_eq!(&cmds, &["find", "-type", "f", "-name", "special"]);C8 assert_eq!(m.value_of("location"), Some("/home/clap"));¢; ```0 [options]: ./struct.Arg.html#method.takes_value37 [positional arguments]: ./struct.Arg.html#method.indexƣ:6 [`multiple(true)`]: ./struct.Arg.html#method.multiple94 [`min_values`]: ./struct.Arg.html#method.min_valuesä7@ [`number_of_values`]: ./struct.Arg.html#method.number_of_valuesC4 [`max_values`]: ./struct.Arg.html#method.max_valuesǥ7 'a'b ! selfõgɵH Specifies that an argument can be matched to all child [`SubCommand`]s.K[ **NOTE:** Global arguments *only* propagate down, **not** up (to parent commands), however^Z their values once a user uses them will be propagated back up to parents. In effect, this][ means one should *define* all global arguments at the top level, however it doesn't matterǩ^+ where the user *uses* the global argument..ݪ # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .short("d")Ы .global(true) # ; ```T For example, assume an application with two subcommands, and you'd like to define aWX `--verbose` flag that can be called on any of the subcommands and parent, but you don't[E want to clutter the source with three duplicate [`Arg`] definitions.ޭH ```rust $ # use clap::{App, Arg, SubCommand};î' let m = App::new("prog") .arg(Arg::with_name("verb")# .long("verbose") .short("v")ٯ .global(true))/ .subcommand(SubCommand::with_name("test"))23 .subcommand(SubCommand::with_name("do-stuff"))˰6 .get_matches_from(vec![( "prog", "do-stuff", "--verbose"+ ]);ڱ 3 assert_eq!(m.subcommand_name(), Some("do-stuff"));67 let sub_m = m.subcommand_matches("do-stuff").unwrap();:# assert!(sub_m.is_present("verb"));& ```) [`SubCommand`]: ./struct.SubCommand.html,. [required]: ./struct.Arg.html#method.requiredԳ1) [`ArgMatches`]: ./struct.ArgMatches.html,O [`ArgMatches::is_present("flag")`]: ./struct.ArgMatches.html#method.is_presentR [`Arg`]: ./struct.Arg.html 'a'b selfevZ Allows an argument to accept explicitly empty values. An empty value must be specified at]0 the command line with an explicit `""`, or `''`ɷ3C **NOTE:** Defaults to `true` (Explicitly empty values are allowed)FԸI **NOTE:** Implicitly sets [`Arg::takes_value(true)`] when set to `false`ܸL # Examplesȹ ```rustй  # use clap::{App, Arg}; Arg::with_name("file") .long("file") .empty_values(false) # ;ں ```Y The default is to allow empty values, such as `--option ""` would be an empty value. But\4 we can change to make empty values become an error.ӻ7 ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog")Ҽ .arg(Arg::with_name("cfg")" .long("config") .short("v") .empty_values(false))ؽ!! .get_matches_from_safe(vec![$ "prog", "--config=" ]);˾ ۾ assert!(res.is_err());: assert_eq!(res.unwrap_err().kind, ErrorKind::EmptyValue);= ```ĿA [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueпD 'a'b selfh, Hides an argument from help message output./_ **NOTE:** Implicitly sets [`Arg::hidden_short_help(true)`] and [`Arg::hidden_long_help(true)`]b when set to trueJ **NOTE:** This does **not** hide the argument from usage strings on errorM # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .hidden(true) # ; ```H Setting `hidden(true)` will hide the argument when displaying help textK ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config") .hidden(true)= .help("Some help text describing the --config arg"))@ .get_matches_from(vec![ "prog", "--help" ]);  ``` The above example displays ```notrust helptest  USAGE:  helptest [FLAGS] FLAGS: ) -h, --help Prints help information,, -V, --version Prints version information/ ```M [`Arg::hidden_short_help(true)`]: ./struct.Arg.html#method.hidden_short_helpPK [`Arg::hidden_long_help(true)`]: ./struct.Arg.html#method.hidden_long_helpN 'a'b selfnamesX Specifies a list of possible values for this argument. At runtime, `clap` verifies that[K only one of the specified values was used, or fails with an error message.NL **NOTE:** This setting only applies to [options] and [positional arguments]O # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("mode") .takes_value(true)2 .possible_values(&["fast", "slow", "medium"])5 # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("mode")# .long("mode") .takes_value(true)7 .possible_values(&["fast", "slow", "medium"])): .get_matches_from(vec![! "prog", "--mode", "fast"$ ]);  assert!(m.is_present("mode"));". assert_eq!(m.value_of("mode"), Some("fast"));1 ```\ The next example shows a failed parse from using a value which wasn't defined as one of the_ possible values. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("mode")# .long("mode") .takes_value(true)7 .possible_values(&["fast", "slow", "medium"])):! .get_matches_from_safe(vec![$" "prog", "--mode", "wrong"% ]);  assert!(res.is_err());< assert_eq!(res.unwrap_err().kind, ErrorKind::InvalidValue);? ```0 [options]: ./struct.Arg.html#method.takes_value37 [positional arguments]: ./struct.Arg.html#method.index: 'a'b ´! selfnameY Specifies a possible value for this argument, one at a time. At runtime, `clap` verifies\M that only one of the specified values was used, or fails with error message.PL **NOTE:** This setting only applies to [options] and [positional arguments]O # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("mode") .takes_value(true) .possible_value("fast") .possible_value("slow") .possible_value("medium")! # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("mode")# .long("mode") .takes_value(true) .possible_value("fast")# .possible_value("slow")## .possible_value("medium"))& .get_matches_from(vec![! "prog", "--mode", "fast"$ ]);  assert!(m.is_present("mode"));". assert_eq!(m.value_of("mode"), Some("fast"));1 ```\ The next example shows a failed parse from using a value which wasn't defined as one of the_ possible values. ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("mode")# .long("mode") .takes_value(true) .possible_value("fast")# .possible_value("slow")## .possible_value("medium"))&! .get_matches_from_safe(vec![$" "prog", "--mode", "wrong"% ]);  assert!(res.is_err());< assert_eq!(res.unwrap_err().kind, ErrorKind::InvalidValue);? ```0 [options]: ./struct.Arg.html#method.takes_value37 [positional arguments]: ./struct.Arg.html#method.index: 'a'b ! selfci` When used with [`Arg::possible_values`] it allows the argument value to pass validation even ifc> the case differs from that of the specified `possible_value`.A1 **Pro Tip:** Use this setting with [`arg_enum!`]4 # Examples ```rust  # use clap::{App, Arg}; # use std::ascii::AsciiExt; let m = App::new("pv")" .arg(Arg::with_name("option")% .long("--option") .takes_value(true)# .possible_value("test123")&! .case_insensitive(true))$ .get_matches_from(vec![% "pv", "--option", "TeSt123",( ]); H assert!(m.value_of("option").unwrap().eq_ignore_ascii_case("test123"));K ```= This setting also works when multiple values can be defined:@ ```rust  # use clap::{App, Arg}; let m = App::new("pv")" .arg(Arg::with_name("option")% .short("-o") .long("--option") .takes_value(true)# .possible_value("test123")&# .possible_value("test321")& .multiple(true)! .case_insensitive(true))$ .get_matches_from(vec![: "pv", "--option", "TeSt123", "teST123", "tESt321"= ]); G let matched_vals = m.values_of("option").unwrap().collect::>();J@ assert_eq!(&*matched_vals, &["TeSt123", "teST123", "tESt321"]);C ```J [`Arg::case_insensitive(true)`]: ./struct.Arg.html#method.possible_valuesM% [`arg_enum!`]: ./macro.arg_enum.html( 'a'b selfnameЃ@ Specifies the name of the [`ArgGroup`] the argument belongs to.C # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .long("debug") .group("mode") # ; ```Y Multiple arguments can be a member of a single group and then the group checked as if it\ was one of said arguments. ```rust  # use clap::{App, Arg}; let m = App::new("prog")! .arg(Arg::with_name("debug")ƀ$ .long("debug") .group("mode"))# .arg(Arg::with_name("verbose")& .long("verbose")ف .group("mode")) .get_matches_from(vec![ "prog", "--debug" ]);  assert!(m.is_present("mode"));" ```% [`ArgGroup`]: ./struct.ArgGroup.html(׃ 'a'b selfnamesH Specifies the names of multiple [`ArgGroup`]'s the argument belongs to.K # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug")ӆ .long("debug")$ .groups(&["mode", "verbosity"])' # ; ```Ƈ҇P Arguments can be members of multiple groups and then the group checked as if itڇS was one of said arguments.Ո ```rust݈  # use clap::{App, Arg}; let m = App::new("prog")! .arg(Arg::with_name("debug")$ .long("debug")׉) .groups(&["mode", "verbosity"])),# .arg(Arg::with_name("verbose")& .long("verbose")Ҋ) .groups(&["mode", "verbosity"])), .get_matches_from(vec![ "prog", "--debug"ȋ ]);  assert!(m.is_present("mode"));"$ assert!(m.is_present("verbosity"));' ```͌% [`ArgGroup`]: ./struct.ArgGroup.htmlٌ( 'a'b " selfŚqty˚[ Specifies how many values are required to satisfy this argument. For example, if you had a^F `-f ` argument where you wanted exactly 3 'files' you would setIY `.number_of_values(3)`, and this argument wouldn't be satisfied unless the user provided\ 3 and only 3 values.БH **NOTE:** Does *not* require [`Arg::multiple(true)`] to be set. SettingK\ [`Arg::multiple(true)`] would allow `-f -f ` whereŒ_[ as *not* setting [`Arg::multiple(true)`] would only allow one occurrence of this argument.^ # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("file")ߔ .short("f") .number_of_values(3) # ; ```Õϕ7 Not supplying the correct number of values is an errorו: ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog")ٖ .arg(Arg::with_name("file")# .takes_value(true) .number_of_values(2)Ǘ  .short("F"))! .get_matches_from_safe(vec![$ "prog", "-F", "file1"! ]);ؘ  assert!(res.is_err());C assert_eq!(res.unwrap_err().kind, ErrorKind::WrongNumberOfValues);F ```ڙ; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple> 'a'b  selffЩW Allows one to perform a custom validation on the argument value. You provide a closurețZY which accepts a [`String`] value, and return a [`Result`] where the [`Err(String)`] is a\ message displayed to the user."V **NOTE:** The error message does *not* need to contain the `error:` portion, only theY% message as all errors will appear as([ `error: Invalid value for '': ` where `` is replaced by the actualž^C arg, and `` is the `String` you return as the error.FY **NOTE:** There is a small performance hit for using validators, as they are implemented\[ with [`Rc`] pointers. And the value to be checked will be allocated an extra time in order٠^W to to be passed to the closure. This performance hit is extremely minimal in the grandZ scheme of things. # ExamplesТ ```rustآ  # use clap::{App, Arg};- fn has_at(v: String) -> Result<(), String> {0* if v.contains("@") { return Ok(()); }-H Err(String::from("The value did not contain the required @ sigil"))K } let res = App::new("prog")ɤ .arg(Arg::with_name("file")# .index(1) .validator(has_at))! .get_matches_from_safe(vec![ҥ$ "prog", "some@file" ]);  assert!(res.is_ok());> assert_eq!(res.unwrap().value_of("file"), Some("some@file"));ͦA ```D [`String`]: https://doc.rust-lang.org/std/string/struct.String.htmlGB [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.htmlES [`Err(String)`]: https://doc.rust-lang.org/std/result/enum.Result.html#variant.ErrV8 [`Rc`]: https://doc.rust-lang.org/std/rc/struct.Rc.html;ש 'a'bF & F&&ӂ &ӂ&ު    & Щ łުSomełު˪ ł˪ &˪˪ &Щ  &&ުł & &selffЩselffQ Works identically to Validator but is intended to be used with values that couldT% contain non UTF-8 formatted strings.( # ExamplesdocԶ ```rust  # use clap::{App, Arg};# # use std::ffi::{OsStr, OsString};&$ # use std::os::unix::ffi::OsStrExt;ӭ'6 fn has_ampersand(v: &OsStr) -> Result<(), OsString> {9B if v.as_bytes().iter().any(|b| *b == b'&') { return Ok(()); }EJ Err(OsString::from("The value did not contain the required & sigil"))M }ٯ let res = App::new("prog") .arg(Arg::with_name("file")# .index(1)& .validator_os(has_ampersand))Ȱ)! .get_matches_from_safe(vec![$ "prog", "Fish & chips"" ]);Ʊ  assert!(res.is_ok());ֱA assert_eq!(res.unwrap().value_of("file"), Some("Fish & chips"));D ```D [`String`]: https://doc.rust-lang.org/std/string/struct.String.htmlɲG? [`OsStr`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.htmlBE [`OsString`]: https://doc.rust-lang.org/std/ffi/struct.OsString.htmlܳHB [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.htmlES [`Err(String)`]: https://doc.rust-lang.org/std/result/enum.Result.html#variant.ErrV8 [`Rc`]: https://doc.rust-lang.org/std/rc/struct.Rc.htmlε; 'a'b& & Fپ&&Ҷ"&&   &  Some Ƿ & &ȷ  && & &selffselfqtyZ Specifies the *maximum* number of values are for this argument. For example, if you had aη]Z `-f ` argument where you wanted up to 3 'files' you would set `.max_values(3)`, and]J this argument would be satisfied if the user provided, 1, 2, or 3 values.MR **NOTE:** This does *not* implicitly set [`Arg::multiple(true)`]. This is becauseUZ `-o val -o val` is multiple occurrences but a single value and `-o val1 val2` is a singleƺ]L occurrence with multiple values. For positional arguments this **does** setO] [`Arg::multiple(true)`] because there is no way to determine the difference between multiple`! occurrences and multiple values.$ # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("file")ݽ .short("f") .max_values(3) # ; ```Ǿ< Supplying less than the maximum number of values is allowedϾ? ```rust  # use clap::{App, Arg}; let res = App::new("prog")˿ .arg(Arg::with_name("file")# .takes_value(true) .max_values(3) .short("F"))! .get_matches_from_safe(vec![$' "prog", "-F", "file1", "file2"* ]);  assert!(res.is_ok()); let m = res.unwrap();< let files: Vec<_> = m.values_of("file").unwrap().collect();?' assert_eq!(files, ["file1", "file2"]);* ```= Supplying more than the maximum number of values is an error@ ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("file")# .takes_value(true) .max_values(2) .short("F"))! .get_matches_from_safe(vec![$0 "prog", "-F", "file1", "file2", "file3"3 ]);  assert!(res.is_err());= assert_eq!(res.unwrap_err().kind, ErrorKind::TooManyValues);@ ```; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple> 'a'b  selfqtyV Specifies the *minimum* number of values for this argument. For example, if you had aYG `-f ` argument where you wanted at least 2 'files' you would setJW `.min_values(2)`, and this argument would be satisfied if the user provided, 2 or moreZ values. P **NOTE:** This does not implicitly set [`Arg::multiple(true)`]. This is becauseSZ `-o val -o val` is multiple occurrences but a single value and `-o val1 val2` is a single]L occurrence with multiple values. For positional arguments this **does** setO] [`Arg::multiple(true)`] because there is no way to determine the difference between multiple`! occurrences and multiple values.$ # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("file") .short("f") .min_values(3) # ; ```< Supplying more than the minimum number of values is allowed? ```rust  # use clap::{App, Arg}; let res = App::new("prog") .arg(Arg::with_name("file")# .takes_value(true) .min_values(2) .short("F"))! .get_matches_from_safe(vec![$0 "prog", "-F", "file1", "file2", "file3"3 ]);  assert!(res.is_ok()); let m = res.unwrap();< let files: Vec<_> = m.values_of("file").unwrap().collect();?0 assert_eq!(files, ["file1", "file2", "file3"]);3 ```= Supplying less than the minimum number of values is an error@ ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("file")# .takes_value(true) .min_values(2) .short("F"))! .get_matches_from_safe(vec![$ "prog", "-F", "file1"! ]);  assert!(res.is_err());< assert_eq!(res.unwrap_err().kind, ErrorKind::TooFewValues);? ```; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple> 'a'b  selfdT Specifies whether or not an argument should allow grouping of multiple values via aW\ delimiter. I.e. should `--option=val1,val2,val3` be parsed as three values (`val1`, `val2`,_Z and `val3`) or as a single value (`val1,val2,val3`). Defaults to using `,` (comma) as the]X value delimiter for all arguments that accept values (options and positional arguments)[Z **NOTE:** The default is `false`. When set to `true` the default [`Arg::value_delimiter`]] is the comma `,`. # Examples2 The following example shows the default behavior.5 ```rust  # use clap::{App, Arg}; let delims = App::new("prog")!" .arg(Arg::with_name("option")% .long("option") .use_delimiter(true)  .takes_value(true)) .get_matches_from(vec![+ "prog", "--option=val1,val2,val3",. ]); & assert!(delims.is_present("option"));)0 assert_eq!(delims.occurrences_of("option"), 1);3_ assert_eq!(delims.values_of("option").unwrap().collect::>(), ["val1", "val2", "val3"]);b ```W The next example shows the difference when turning delimiters off. This is the defaultZ behavior  ```rust  # use clap::{App, Arg}; let nodelims = App::new("prog")#" .arg(Arg::with_name("option")% .long("option") .use_delimiter(false)! .takes_value(true)) .get_matches_from(vec![+ "prog", "--option=val1,val2,val3",. ]); ( assert!(nodelims.is_present("option"));+2 assert_eq!(nodelims.occurrences_of("option"), 1);5D assert_eq!(nodelims.value_of("option").unwrap(), "val1,val2,val3");G ```C [`Arg::value_delimiter`]: ./struct.Arg.html#method.value_delimiterF 'a'b selfօd܅W Specifies that *multiple values* may only be set using the delimiter. This means if anZY if an option is encountered, and no delimiter is found, it automatically assumed that no\\ additional values for that option follow. This is unlike the default, where it is generally_W assumed that more values will follow regardless of whether or not a delimiter is used.Z" **NOTE:** The default is `false`.%D **NOTE:** Setting this to true implies [`Arg::use_delimiter(true)`]GZ **NOTE:** It's a good idea to inform the user that use of a delimiter is required, either]" through help text or other means.% # ExamplesW These examples demonstrate what happens when `require_delimiter(true)` is used. NoticeZL everything works in this first example, as we use a delimiter, as expected.O ```rust  # use clap::{App, Arg}; let delims = App::new("prog")! .arg(Arg::with_name("opt")" .short("o") .takes_value(true) .multiple(true)" .require_delimiter(true))% .get_matches_from(vec![( "prog", "-o", "val1,val2,val3",+ ]); # assert!(delims.is_present("opt"));&\ assert_eq!(delims.values_of("opt").unwrap().collect::>(), ["val1", "val2", "val3"]);_ ```O In this next example, we will *not* use a delimiter. Notice it's now an error.R ```rust # # use clap::{App, Arg, ErrorKind};& let res = App::new("prog") .arg(Arg::with_name("opt")" .short("o") .takes_value(true) .multiple(true)" .require_delimiter(true))%! .get_matches_from_safe(vec![$. "prog", "-o", "val1", "val2", "val3",1 ]);  assert!(res.is_err()); let err = res.unwrap_err();2 assert_eq!(err.kind, ErrorKind::UnknownArgument);5 ```Y What's happening is `-o` is getting `val1`, and because delimiters are required yet none\T were present, it stops parsing `-o`. At this point it reaches `val2` and because noWQ positional arguments have been defined, it's an error of an unexpected argument.T\ In this final example, we contrast the above with `clap`'s default behavior where the above_ is *not* an error.߀ ```rust  # use clap::{App, Arg}; let delims = App::new("prog")! .arg(Arg::with_name("opt")؁" .short("o") .takes_value(true) .multiple(true)) .get_matches_from(vec![߂. "prog", "-o", "val1", "val2", "val3",1 ]); Ƀ# assert!(delims.is_present("opt"));у&\ assert_eq!(delims.values_of("opt").unwrap().collect::>(), ["val1", "val2", "val3"]);_ ```E [`Arg::use_delimiter(true)`]: ./struct.Arg.html#method.use_delimiterH 'a'b selfdZ Specifies the separator to use when values are clumped together, defaults to `,` (comma).]7 **NOTE:** implicitly sets [`Arg::use_delimiter(true)`]:5 **NOTE:** implicitly sets [`Arg::takes_value(true)`]Ɗ8 # Examples ```rust  # use clap::{App, Arg}; let m = App::new("prog")֋" .arg(Arg::with_name("config")% .short("c") .long("config") .value_delimiter(";"))݌" .get_matches_from(vec![* "prog", "--config=val1;val2;val3"- ]);ڍ Y assert_eq!(m.values_of("config").unwrap().collect::>(), ["val1", "val2", "val3"])\ ```ӎE [`Arg::use_delimiter(true)`]: ./struct.Arg.html#method.use_delimiterߎHA [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD 'a'b  selfnames[ Specify multiple names for values of option arguments. These names are cosmetic only, used^\ for help and usage strings only. The names are **not** used to access arguments. The valuesؓ_X of the arguments are accessed in numeric order (i.e. if you specify two names `one` and[H `two` `one` will be the first matched value, `two` will be the second).KV This setting can be very helpful when describing the type of input the user should beY\ using, such as `FILE`, `INTERFACE`, etc. Although not required, it's somewhat convention toҖ_, use all capital letters for the value name./T **Pro Tip:** It may help to use [`Arg::next_line_help(true)`] if there are long, orWW multiple value names in order to not throw off the help text alignment of all options.ΘZY **NOTE:** This implicitly sets [`Arg::number_of_values`] if the number of value names is\[ greater than one. I.e. be aware that the number of "names" you set for the values, will be^? the *exact* number of values required to satisfy this argumentB5 **NOTE:** implicitly sets [`Arg::takes_value(true)`]ț8? **NOTE:** Does *not* require or imply [`Arg::multiple(true)`].BԜ # Examplesܜ ```rust  # use clap::{App, Arg}; Arg::with_name("speed") .short("s")ǝ$ .value_names(&["fast", "slow"])ߝ' # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog")۞ .arg(Arg::with_name("io")! .long("io-files"). .value_names(&["INFILE", "OUTFILE"]))ğ1 .get_matches_from(vec![ "prog", "--help" ]);  ```Ϡ8 Running the above program produces the following output۠; ```notrust valnames ǡ USAGE:ϡ  valnames [FLAGS] [OPTIONS]ޡ! FLAGS: - -h, --help Prints help information00 -V, --version Prints version informationТ3 OPTIONS: 4 --io-files Some help text7 ```ݣG [`Arg::next_line_help(true)`]: ./struct.Arg.html#method.next_line_helpJE [`Arg::number_of_values`]: ./struct.Arg.html#method.number_of_valuesHA [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multipleΥ> 'a'b ´! selfnameR Specifies the name for value of [option] or [positional] arguments inside of helpګUY documentation. This name is cosmetic only, the name is **not** used to access arguments.\V This setting can be very helpful when describing the type of input the user should beY\ using, such as `FILE`, `INTERFACE`, etc. Although not required, it's somewhat convention to_, use all capital letters for the value name.׮/5 **NOTE:** implicitly sets [`Arg::takes_value(true)`]8Я # Examplesد ```rust  # use clap::{App, Arg}; Arg::with_name("cfg") .long("config") .value_name("FILE")ݰ # ; ``` ```rust  # use clap::{App, Arg}; let m = App::new("prog")ͱ" .arg(Arg::with_name("config")% .long("config") .value_name("FILE"))  .get_matches_from(vec![ݲ "prog", "--help" ]);  ```8 Running the above program produces the following output; ```notrust valnames  USAGE:  valnames [FLAGS] [OPTIONS]! FLAGS: - -h, --help Prints help information00 -V, --version Prints version information3 OPTIONS: ' --config Some help text* ```/ [option]: ./struct.Arg.html#method.takes_value2- [positional]: ./struct.Arg.html#method.index0A [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD 'a'b ! selfvalyE Specifies the value of the argument when *not* specified at runtime.H^ **NOTE:** If the user *does not* use this argument at runtime, [`ArgMatches::occurrences_of`]ǻa\ will return `0` even though the [`ArgMatches::value_of`] will return the default specified._^ **NOTE:** If the user *does not* use this argument at runtime [`ArgMatches::is_present`] willaZ still return `true`. If you wish to determine whether the argument was used at runtime or]] not, consider [`ArgMatches::occurrences_of`] which will return `0` if the argument was *not*` used at runtime.ƿ߿[ **NOTE:** This setting is perfectly compatible with [`Arg::default_value_if`] but slightly^\ different. `Arg::default_value` *only* takes affect when the user has not provided this arg_] at runtime. `Arg::default_value_if` however only takes affect when the user has not provided`S a value at runtime **and** these other conditions are met as well. If you have setVZ `Arg::default_value` and `Arg::default_value_if`, and the user **did not** provide a this]Q arg at runtime, nor did were the conditions met for `Arg::default_value_if`, theT& `Arg::default_value` will be applied.); **NOTE:** This implicitly sets [`Arg::takes_value(true)`].>Z **NOTE:** This setting effectively disables `AppSettings::ArgRequiredElseHelp` if used in]E conjunction as it ensures that some argument will always be present.H # ExamplesG First we use the default value without providing any value at runtime.J ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("opt")" .long("myopt")! .default_value("myval"))$ .get_matches_from(vec![ "prog" ]); . assert_eq!(m.value_of("opt"), Some("myval"));1 assert!(m.is_present("opt"));!( assert_eq!(m.occurrences_of("opt"), 0);+ ```< Next we provide a value at runtime to override the default.? ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("opt")" .long("myopt")! .default_value("myval"))$ .get_matches_from(vec![& "prog", "--myopt=non_default") ]); 4 assert_eq!(m.value_of("opt"), Some("non_default"));7 assert!(m.is_present("opt"));!( assert_eq!(m.occurrences_of("opt"), 1);+ ```O [`ArgMatches::occurrences_of`]: ./struct.ArgMatches.html#method.occurrences_ofRC [`ArgMatches::value_of`]: ./struct.ArgMatches.html#method.value_ofFA [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueDG [`ArgMatches::is_present`]: ./struct.ArgMatches.html#method.is_presentJE [`Arg::default_value_if`]: ./struct.Arg.html#method.default_value_ifH 'a'b selfvalL Provides a default value in the exact same manner as [`Arg::default_value`]O only using [`OsStr`]s instead."? [`Arg::default_value`]: ./struct.Arg.html#method.default_valueB? [`OsStr`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.htmlB 'a'b 'a  selfargvaldefault)Z Specifies the value of the argument if `arg` has been used at runtime. If `val` is set to][ `None`, `arg` only needs to be present. If `val` is set to `"some-val"` then `arg` must be^1 present at runtime **and** have the value `val`.4X **NOTE:** This setting is perfectly compatible with [`Arg::default_value`] but slightly[\ different. `Arg::default_value` *only* takes affect when the user has not provided this arg_] at runtime. This setting however only takes affect when the user has not provided a value at`] runtime **and** these other conditions are met as well. If you have set `Arg::default_value``] and `Arg::default_value_if`, and the user **did not** provide a this arg at runtime, nor did`V were the conditions met for `Arg::default_value_if`, the `Arg::default_value` will beY applied. ; **NOTE:** This implicitly sets [`Arg::takes_value(true)`].>\ **NOTE:** If using YAML the values should be laid out as follows (`None` can be represented_ as `null` in YAML) ```yaml  default_value_if: - [arg, val, default] ``` # ExamplesJ First we use the default value only if another arg is present at runtime.M ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("flag")# .long("flag"))! .arg(Arg::with_name("other")$ .long("other")4 .default_value_if("flag", None, "default"))7 .get_matches_from(vec![ "prog", "--flag" ]); 2 assert_eq!(m.value_of("other"), Some("default"));5 ```; Next we run the same test, but without providing `--flag`.> ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("flag")# .long("flag"))! .arg(Arg::with_name("other")$ .long("other")4 .default_value_if("flag", None, "default"))7 .get_matches_from(vec![ "prog" ]); ' assert_eq!(m.value_of("other"), None);* ```M Now lets only use the default value if `--opt` contains the value `special`.P ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("opt")" .takes_value(true) .long("opt"))! .arg(Arg::with_name("other")$ .long("other")> .default_value_if("opt", Some("special"), "default"))A .get_matches_from(vec![# "prog", "--opt", "special"& ]); 2 assert_eq!(m.value_of("other"), Some("default"));5 ```Y We can run the same test and provide any value *other than* `special` and we won't get a\ default value. ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("opt")" .takes_value(true) .long("opt"))! .arg(Arg::with_name("other")$ .long("other")> .default_value_if("opt", Some("special"), "default"))A .get_matches_from(vec![" "prog", "--opt", "hahaha"% ]); ' assert_eq!(m.value_of("other"), None);* ```A [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD? [`Arg::default_value`]: ./struct.Arg.html#method.default_valueB 'a'b !! selfargvaldefault)[ Provides a conditional default value in the exact same manner as [`Arg::default_value_if`]^ only using [`OsStr`]s instead."E [`Arg::default_value_if`]: ./struct.Arg.html#method.default_value_ifH? [`OsStr`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.htmlB 'a'b  'b ( selfifs̒Z Specifies multiple values and conditions in the same manner as [`Arg::default_value_if`].]P The method takes a slice of tuples in the `(arg, Option, default)` format.S] **NOTE**: The conditions are stored in order and evaluated in the same order. I.e. the first`] if multiple conditions are true, the first one found will be applied and the ultimate value.`A **NOTE:** If using YAML the values should be laid out as followsD ```yaml  default_value_if: - [arg, val, default] - [arg2, null, default2]  ``` # ExamplesJ First we use the default value only if another arg is present at runtime.M ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("flag")ށ# .long("flag")) .arg(Arg::with_name("opt")" .long("opt")̂ .takes_value(true))! .arg(Arg::with_name("other")$ .long("other") .default_value_ifs(&[Ճ!' ("flag", None, "default"),*. ("opt", Some("channal"), "chan"),1 ])) .get_matches_from(vec![# "prog", "--opt", "channal"& ]);Å Ӆ/ assert_eq!(m.value_of("other"), Some("chan"));ۅ2 ```; Next we run the same test, but without providing `--flag`.> ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("flag")‡# .long("flag"))! .arg(Arg::with_name("other")$ .long("other") .default_value_ifs(&[ш!' ("flag", None, "default"),*. ("opt", Some("channal"), "chan"),1 ]))܉ .get_matches_from(vec![ "prog" ]); ' assert_eq!(m.value_of("other"), None);Ê* ```Z We can also see that these values are applied in order, and if more than one condition is]& true, only the first evaluated "wins") ```rust  # use clap::{App, Arg}; let m = App::new("prog")Ό .arg(Arg::with_name("flag")# .long("flag")) .arg(Arg::with_name("opt")" .long("opt")ݍ .takes_value(true))! .arg(Arg::with_name("other")$ .long("other")ǎ .default_value_ifs(&[!' ("flag", None, "default"),*. ("opt", Some("channal"), "chan"),1 ])) .get_matches_from(vec![- "prog", "--opt", "channal", "--flag"0 ]);ސ 2 assert_eq!(m.value_of("other"), Some("default"));5 ```A [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD? [`Arg::default_value`]: ./struct.Arg.html#method.default_valueBӒ 'a'b   (! selfØifsɘI Provides multiple conditional default values in the exact same manner asL: [`Arg::default_value_ifs`] only using [`OsStr`]s instead.=G [`Arg::default_value_ifs`]: ./struct.Arg.html#method.default_value_ifs̖J? [`OsStr`]: https://doc.rust-lang.org/std/ffi/struct.OsStr.htmlB 'a'b   (( Θselfname۸UY Specifies that if the value is not passed in as an argument, that it should be retrieved\Z from the environment, if available. If it is not present in the environment, then default] rules will apply.ӛ^ **NOTE:** If the user *does not* use this argument at runtime, [`ArgMatches::occurrences_of`]a\ will return `0` even though the [`ArgMatches::value_of`] will return the default specified.ۜ_^ **NOTE:** If the user *does not* use this argument at runtime [`ArgMatches::is_present`] willǝa_ return `true` if the variable is present in the environment . If you wish to determine whetherb\ the argument was used at runtime or not, consider [`ArgMatches::occurrences_of`] which will_6 return `0` if the argument was *not* used at runtime.9; **NOTE:** This implicitly sets [`Arg::takes_value(true)`].>] **NOTE:** If [`Arg::multiple(true)`] is set then [`Arg::use_delimiter(true)`] should also be`[ set. Otherwise, only a single argument will be returned from the environment variable. The^D default delimiter is `,` and follows all the other delimiter rules.ѢG # ExamplesC In this example, we show the variable coming from the environment:F ```rust  # use std::env; # use clap::{App, Arg};ۤ env::set_var("MY_FLAG", "env");# let m = App::new("prog") .arg(Arg::with_name("flag")# .long("flag")ܥ .env("MY_FLAG")) .get_matches_from(vec![ "prog" ]);֦ - assert_eq!(m.value_of("flag"), Some("env"));0 ```H In this example, we show the variable coming from an option on the CLI:K ```rust  # use std::env; # use clap::{App, Arg};ר env::set_var("MY_FLAG", "env");ߨ# let m = App::new("prog") .arg(Arg::with_name("flag")# .long("flag")ة .env("MY_FLAG")) .get_matches_from(vec![ "prog", "--flag", "opt"# ]); - assert_eq!(m.value_of("flag"), Some("opt"));0 ```P In this example, we show the variable coming from the environment even with theīS presence of a default: ```rustì  # use std::env;Ӭ # use clap::{App, Arg}; env::set_var("MY_FLAG", "env");# let m = App::new("prog")í .arg(Arg::with_name("flag")# .long("flag") .env("MY_FLAG")# .default_value("default"))ʮ& .get_matches_from(vec![ "prog" ]); - assert_eq!(m.value_of("flag"), Some("env"));ȯ0 ```V In this example, we show the use of multiple values in a single environment variable:Y ```rust  # use std::env; # use clap::{App, Arg};, env::set_var("MY_FLAG_MULTI", "env1,env2");DZ/ let m = App::new("prog") .arg(Arg::with_name("flag")# .long("flag")̲ .env("MY_FLAG_MULTI")! .multiple(true) .use_delimiter(true))! .get_matches_from(vec![ֳ "prog" ]); T assert_eq!(m.values_of("flag").unwrap().collect::>(), vec!["env1", "env2"]);W ```O [`ArgMatches::occurrences_of`]: ./struct.ArgMatches.html#method.occurrences_ofRC [`ArgMatches::value_of`]: ./struct.ArgMatches.html#method.value_ofFG [`ArgMatches::is_present`]: ./struct.ArgMatches.html#method.is_presentJA [`Arg::takes_value(true)`]: ./struct.Arg.html#method.takes_valueD; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple˷>E [`Arg::use_delimiter(true)`]: ./struct.Arg.html#method.use_delimiterH 'a'b selfnameY Specifies that if the value is not passed in as an argument, that it should be retrieved\V from the environment if available in the exact same manner as [`Arg::env`] only usingY [`OsStr`]s instead. 'a'b ' selfhide% @TODO @p2 @docs @release: write docs( 'a'b selfnlhX When set to `true` the help string will be displayed on the line after the argument and[Z indented once. This can be helpful for arguments with very long or complex help messages.]\ This can also be helpful for arguments with very long flag names, or many/long value names._@ **NOTE:** To apply this setting to all arguments consider usingC [`AppSettings::NextLineHelp`]! # Examples ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("opt")"" .long("long-option-flag")% .short("o") .takes_value(true), .value_names(&["value1", "value2"])/4 .help("Some really long help and complex\n\73 help that makes more sense to be\n\6, on a line after the option")/ .next_line_help(true))" .get_matches_from(vec![ "prog", "--help" ]);  ```6 The above example displays the following help message9 ```notrust nlh USAGE:  nlh [FLAGS] [OPTIONS] FLAGS: - -h, --help Prints help information00 -V, --version Prints version information3 OPTIONS: - -o, --long-option-flag 0* Some really long help and complex-) help that makes more sense to be,# on a line after the option& ```L [`AppSettings::NextLineHelp`]: ./enum.AppSettings.html#variant.NextLineHelpO 'a'b selfordfX Allows custom ordering of args within the help message. Args with a lower value will be[V displayed first in the help message. This is helpful when one would like to emphasiseYX frequently used args, or prioritize those towards the top of the list. Duplicate values[V **are** allowed. Args with duplicate display orders will be displayed in alphabeticalY order. 0 **NOTE:** The default is 999 for all arguments.3[ **NOTE:** This setting is ignored for [positional arguments] which are always displayed in^ [index] order. # Examples ```rust  # use clap::{App, Arg}; let m = App::new("prog")S .arg(Arg::with_name("a") // Typically args are grouped alphabetically by name.VY // Args without a display_order have a value of 999 and are\Y // displayed alphabetically with all other 999 valued args.\ .long("long-option")  .short("o") .takes_value(true)% .help("Some help and text"))( .arg(Arg::with_name("b")  .long("other-option")! .short("O") .takes_value(true)L .display_order(1) // In order to force this arg to appear *first*OT // all we have to do is give it a value lower than 999.WR // Any other args with a value of 1 will be displayedUZ // alphabetically with this one...then 2 values, then 3, etc.]% .help("I should be first!"))( .get_matches_from(vec![ "prog", "--help" ]);  ```6 The above example displays the following help message9 ```notrust cust-ord  USAGE:  cust-ord [FLAGS] [OPTIONS]" FLAGS: - -h, --help Prints help information00 -V, --version Prints version information3 OPTIONS: 1 -O, --other-option I should be first!41 -o, --long-option Some help and text4 ```7 [positional arguments]: ./struct.Arg.html#method.index:( [index]: ./struct.Arg.html#method.index+ 'a'b  selfrawiE Indicates that all parameters passed after this should not be parsedHF individually, but rather passed in their entirety. It is worth notingIL that setting this requires all values to come after a `--` to indicate theyO% should all be captured. For example:( ```notrust4 --foo something -- -v -v -v -b -b -b --baz -q -u -x7 ```V Will result in everything after `--` to be considered one raw argument. This behaviorYT may not be exactly what you are expecting and using [`AppSettings::TrailingVarArg`]W may be more appropriate.[ **NOTE:** Implicitly sets [`Arg::multiple(true)`], [`Arg::allow_hyphen_values(true)`], and^' [`Arg::last(true)`] when set to `true`*; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple>Q [`Arg::allow_hyphen_values(true)`]: ./struct.Arg.html#method.allow_hyphen_valuesT3 [`Arg::last(true)`]: ./struct.Arg.html#method.last6P [`AppSettings::TrailingVarArg`]: ./enum.AppSettings.html#variant.TrailingVarArgS 'a'b selfhide2 Hides an argument from short help message output.5J **NOTE:** This does **not** hide the argument from usage strings on errorMP **NOTE:** Setting this option will cause next-line-help output style to be usedS% when long help (`--help`) is called.( # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .hidden_short_help(true)  # ; ```Y Setting `hidden_short_help(true)` will hide the argument when displaying short help text\ ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config")! .hidden_short_help(true)$= .help("Some help text describing the --config arg"))@ .get_matches_from(vec![ "prog", "-h" ]);  ``` The above example displays ```notrust helptest  USAGE:  helptest [FLAGS] FLAGS: ) -h, --help Prints help information,, -V, --version Prints version information/ ``` However, when --help is called" ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config")! .hidden_short_help(true)$= .help("Some help text describing the --config arg"))@ .get_matches_from(vec![ "prog", "--help" ]);  ```& Then the following would be displayed) ```notrust helptest  USAGE:  helptest [FLAGS] FLAGS: < --config Some help text describing the --config arg?) -h, --help Prints help information,, -V, --version Prints version information/ ``` 'a'b selfhide1 Hides an argument from long help message output.4J **NOTE:** This does **not** hide the argument from usage strings on errorMP **NOTE:** Setting this option will cause next-line-help output style to be usedS% when long help (`--help`) is called.( # Examples ```rust  # use clap::{App, Arg}; Arg::with_name("debug") .hidden_long_help(true) # ; ```W Setting `hidden_long_help(true)` will hide the argument when displaying long help textZ ```rust  # use clap::{App, Arg}; let m = App::new("prog") .arg(Arg::with_name("cfg")" .long("config") .hidden_long_help(true)#= .help("Some help text describing the --config arg"))@ .get_matches_from(vec![ "prog", "--help" ]);  ```́ف The above example displays ```notrust helptest  USAGE:  helptest [FLAGS]ǂ FLAGS: ) -h, --help Prints help information,, -V, --version Prints version information/ ```߃ However, when -h is called ```rust  # use clap::{App, Arg}; let m = App::new("prog")΄ .arg(Arg::with_name("cfg")" .long("config") .hidden_long_help(true)#= .help("Some help text describing the --config arg"))ޅ@ .get_matches_from(vec![ "prog", "-h"dž ]);  ```& Then the following would be displayed) ```notrust helptestч  USAGE:  helptest [FLAGS] FLAGS: < --config Some help text describing the --config arg?) -h, --help Prints help information,, -V, --version Prints version information/ ```Չ 'a'b selfʌsЌMG Checks if one of the [`ArgSettings`] settings is set for the argument.J) [`ArgSettings`]: ./enum.ArgSettings.html,Œ 'a'b   ɌselfsW; Sets one of the [`ArgSettings`] settings for the argument.>э) [`ArgSettings`]: ./enum.ArgSettings.htmlٍ, 'a'b selfs[= Unsets one of the [`ArgSettings`] settings for the argument.@) [`ArgSettings`]: ./enum.ArgSettings.html, 'a'b selfsِEȐdocȐːҐ hidden̐Ɛ 'a'b  selfʑsБIdoc hidden 'a'b) ő'a'b) 'z)'a'b'zaɒĒ 'a'b'z))z'n'e ))'n'eselfДother֔ɔK̔ 'n'e ) )ϔ Base FlagBuilderƕ  OptBuilder ە PosBuilder SwitchedValuedӖŖ ArgArgFlags ArgSettings  Uܖ 'n'e'n'ename { 'n'e 'n)selfsK 'n'e ) selfsO 'n'e) selfŝs˝T 'n'e ) ĝ'n'e) 'z'n'e'n'e'zaԞ̞?Ϟ 'n'e'zԫ))'n'e ))'n'eselfğotherʟR 'n'e ) )ßFromOsStrOsStringȠ5ȠDisplay3 Formatter 2 Result2mem Rc  StdResult  AnyArgܡܡ ArgSettings  Base DispOrder  Switchedmap VecMapArg ȣ'n'e'n'ename  'n'e 'n)'a'b) 'z'a'b'a'b'zaʥ¥ť 'a'b'zڴ))Ѧ'a'b)'a'b'a'ba 'a'b))Ѩ'n'e3ٷ)'n'eselff 'n'e ٷ) 'n'eι)'n'e'n'eself 5 'n'e ι) 'nself ٫cܫ 'n'eܺ)  'eselfά tĬ 'n'eܺ)  Ի))ͬselfȭ c 'n'eܺ)ǻ)ǭself h 'n'eܺ)ǻ)selfsR 'n'eܺ) self 1 'n'eܺ)self 3 'n'eܺ)selfs԰Hװ 'n'e ι) ۰self 6 'n'eܺ) self ܱD߱ 'n'eܺ) Ի)self 6 'n'eܺ) self B 'n'eܺ)ǻ)self \ 'n'eܺ)self a 'n'eܺ)self 6 'n'eܺ) self < 'n'eܺ) self = 'n'eܺ)Ǽ)self 8 'n'eܺ) self = 'n'eܺ)Ǽ)self G 'n'eܺ)Ǽ)self @ 'n'eܺ)Ǽ)self̸ ? 'n'eܺ) 'e ˸self o 'n'eܺ))))self V 'n'e 'sι) 'n  's self ϺFҺ 'n'eܺ)self  'n'eܺ)#Ի)پr'n'e)'n'eself ; 'n'e )Ϳ'n'e ))'n'eselfotherS 'n'e ) )OsStrOsString5Display3 Formatter 2 Result2mem Rc  StdResult  AnyArgArg ArgSettings  Base DispOrder  SwitchedValuedmap VecMapINTERNAL_ERROR_MSG   'n'e'n'ename  'n'e 'n)'n'e) 'z'n'e'n'e'za 'n'e'z)) 'n'e)'n'e'n'ea 'n'e))  'n 'e3)'n 'e   selff  'n 'e )     'n 'e) 'n 'e'n 'e   self 5  'n 'e ) 'n  self c  'n 'e)  'e  self t  'n 'e)  ))  self c  'n 'e))  self h  'n 'e))  self Y  'n 'e) )  selfsR  'n 'e)   self 1  'n 'e)  selfsH  'n 'e )   self A  'n 'e)   self M  'n 'e))  self A  'n 'e)   self k  'n 'e))  self q  'n 'e)  self y  'n 'e)  self A  'n 'e)   self <  'n 'e)   self =  'n 'e))  self D  'n 'e)   self 2  'n 'e)  self =  'n 'e))  self G  'n 'e))  self M  'n 'e) 'e   self   'n 'e))))  self   'n 'e  's) 'n   's   self 5  'n 'e)  self   'n 'e)#)  q  'n 'e)'n 'e  self ;  'n 'e )    'n 'e ))'n 'e  selfotherR  'n 'e ) )   Cow OsStr OsString5 Displayև3և Formatter߇ 2߇  Result2 mem  Rc  StdResult   AnyArgЈЈ ArgSettings؈ ؈  Base DispOrder   Valued map  VecMap Arg INTERNAL_ERROR_MSG       'n 'e'n 'e   nameidxȋ  'n 'e 'n)  aidxߌ  'n 'e  'n 'e)  aidx  'n 'e))  selfߓ ʓѓ  'n 'e ) ޓ self   'n 'e)   Ý  'n 'e3)'n 'e   selff   'n 'e )    ͤ  'n 'e* 'n 'e'n 'e   self  5  'n 'e * 'n  selfΥ  cå  'n 'e*  'e ͥ self  t  'n 'e*  **  self  c  'n 'e**  self  h  'n 'e**  self  Y  'n 'e* *  selfߩs ԩRש  'n 'e*  ީ selfs H  'n 'e *   self  2  'n 'e*  self  A  'n 'e*   self  M  'n 'e**  selfԬ  ǬAʬ  'n 'e*  Ӭ self  k  'n 'e**  self  q  'n 'e*  self  y  'n 'e*  self  A  'n 'e*   self  4  'n 'e*   self  6  'n 'e**  self  D  'n 'e*   self  2  'n 'e*  self  =  'n 'e**  self  G  'n 'e**  selfγ    'n 'e** 'e ̒* ͳ self  ߴM  'n 'e*Œ*  self    'n 'e  's* 'n   's   self  5  'n 'e*  self  >  'n 'e*#*   u  'n 'e*'n 'e   self  ?  'n 'e *     'n 'e **'n 'e   selfother R  'n 'e * *  Arg      'e*'e     'e*     'e* 'z 'n 'e'n 'e 'z   a ?  'n 'e 'z**     'e *'e  self    'e **  OsStr OsString5 Rc  VecMap  Arg      'n 'e*'n 'e      'n 'e*     'n 'e'n 'e   self   'n 'e *     'n 'eʡ* 'z 'n 'e'n 'e 'z   a   'n 'e 'z*ʡ*   Entry Iter HashMap4 OsStr mem  Deref ArgSettings  AnyArg  ArgMatches   MatchedArg   SubCommand      .doc hiddenallow missing_debug_implementations'   'a 'a   'a   .  'a**  ...... r   'a*'a   F  'a*   @   'a'a  :  'aߪ*  selfa overrides required check_all =  'a ߪ*  'a 'b #  'b 'a #*  selfa  'a*  'a 'b  selfnameT  'a ߪ*  selfglobal_arg_vec  'a*  *  selfglobal_arg_vecvals_map,    'a*ͯ* 4*4  self arg  h   'a*    self arg ف X   'a*    selfʂ argЂ  L   'a* ł  self args  }  'a*     self name  d   'a**   self arg  W   'a*   self  Ӆ Eڅ   'a*   self usage  R   'a*   self   i  'a 'aߪ**  self arg  j   'a***   self sc Ո h܈  'a* 'a   selfۉ  É Vʉ   'a*  ډ  self   O   'a*   self arg     'a**   selfՍ argsۍ     'a*ͯ* Ѝ  self arg val    'a**    self argƑ idxԑ    'a**   selfϓ oՓ     'a 'b* 'b A   Γ  ˓  'a 'b                   ߔ  ߔ         Some                         Some                          ʖ ˖ ̖ ̖ ̖   ̖ Ԗ   Ԗ ؖ ˖     ʖ  ʖ ʖ   ʖ   ʖ #            ʗ ؗ               $ % & ' '   '&   Some   ! " "     "!  "  ! ! # #  # #     ޘ & ޘ & %& '   ,%$  & % $ $   ( (ƚ )ƚ )  ()    $ ۚ )ۚ ( &    *ߓ Γ Փ      ߔ         ʖ #ʖ ʖ #˖ ʖ #̖ ʖ # ̖ ʖ # ʖ                       ƚ selfΓ oՓ ma  num  num   o   'a* 'a'a  self   6   'a**   Cow   HashMap 4  OsStr   OsString 5  Mapۜ М  Iter 7  MatchedArg   SubCommand   INVALID_UTF8           'a*'a      'a*     'a'a   \ doc    hidden     'a*  self name  \ Gets the value of a specific [option] or [positional] argument (i.e. an argument that takes _I an additional value at runtime). If the option wasn't present at runtime L it returns `None`.Ƴ  W *NOTE:* If getting a value for an option or positional argument that allows multiples, ZX prefer [`ArgMatches::values_of`] as `ArgMatches::value_of` will only return the *first*ȴ [ value.   # Panics е M This method will [`panic!`] if the value contains invalid UTF-8 code points.ص P  # Examples ȶ  ```rustж  # use clap::{App, Arg};  let m = App::new("myapp") " .arg(Arg::with_name("output") % .takes_value(true))̷ 3 .get_matches_from(vec!["myapp", "something"]); 6 5 assert_eq!(m.value_of("output"), Some("something")); 8 ``` / [option]: ./struct.Arg.html#method.takes_value 2- [positional]: ./struct.Arg.html#method.index 0E [`ArgMatches::values_of`]: ./struct.ArgMatches.html#method.values_of H< [`panic!`]: https://doc.rust-lang.org/std/macro.panic!.html ?   'aS **  S    * * ջ ջ ջ 4*       *    ջ ߻  *߻    ɻ  ɻ » λ  λ  Some                    >              »    Some                  ȼ Ѽ Ѽ Ѽ Ѽ Ѽ  ʼ  ʼ  ݼ ݼ  %Some %޼ ߼ ߼ ߼                 M   * *ջ  *ջ   * ɻ λ  n  n  n  n       Ѽ Ѽ self name argλ  v  Ѽ self name  W Gets the lossy value of a specific argument. If the argument wasn't present at runtime ZX it returns `None`. A lossy value is one which contains invalid UTF-8 code points, those [0 invalid points will be replaced with `\u{FFFD}`о 3 W *NOTE:* If getting a value for an option or positional argument that allows multiples, ZZ prefer [`Arg::values_of_lossy`] as `value_of_lossy()` will only return the *first* value. ]  # Examples   doc   ```   # use clap::{App, Arg};  use std::ffi::OsString; 0 use std::os::unix::ffi::{OsStrExt,OsStringExt}; 3  let m = App::new("utf8") . .arg(Arg::from_usage(" 'some arg'")) 15 .get_matches_from(vec![OsString::from("myprog"), 8, // "Hi {0xe9}!" /V OsString::from_vec(vec![b'H', b'i', b' ', 0xe9, b'!'])]); Y@ assert_eq!(&*m.value_of_lossy("arg").unwrap(), "Hi \u{FFFD}!"); C ``` J [`Arg::values_of_lossy`]: ./struct.ArgMatches.html#method.values_of_lossy M   'a* 'a** 'a S   * *    *      *      *           Some                   *                 Some                    Some                   z A * * * *   *    b  b  b  b       self name arg  v  self name  [ Gets the OS version of a string value of a specific argument. If the option wasn't present ^W at runtime it returns `None`. An OS value on Unix-like systems is any series of bytes, ZX regardless of whether or not they contain valid UTF-8 code points. Since [`String`]s in [X Rust are guaranteed to be valid UTF-8, a valid filename on a Unix system as an argument [- value may contain invalid UTF-8 code points. 0 W *NOTE:* If getting a value for an option or positional argument that allows multiples, ZW prefer [`ArgMatches::values_of_os`] as `Arg::value_of_os` will only return the *first* Z value.   # Examples   doc   ```   # use clap::{App, Arg};  use std::ffi::OsString; 0 use std::os::unix::ffi::{OsStrExt,OsStringExt}; 3  let m = App::new("utf8") . .arg(Arg::from_usage(" 'some arg'")) 15 .get_matches_from(vec![OsString::from("myprog"), 8, // "Hi {0xe9}!" /V OsString::from_vec(vec![b'H', b'i', b' ', 0xe9, b'!'])]); YX assert_eq!(&*m.value_of_os("arg").unwrap().as_bytes(), [b'H', b'i', b' ', 0xe9, b'!']); [ ``` D [`String`]: https://doc.rust-lang.org/std/string/struct.String.html GK [`ArgMatches::values_of_os`]: ./struct.ArgMatches.html#method.values_of_os N  'a*** S    * *  )  *      *     ) *     , m  ,  *  6        * *  m* ) m*  m  m  m*  mї+ ,self name  self name  Y Gets a [`Values`] struct which implements [`Iterator`] for values of a specific argument \Z (i.e. an argument that takes multiple values at runtime). If the option wasn't present at ] runtime it returns `None`   # Panics  O This method will panic if any of the values contain invalid UTF-8 code points. R  # Examples   ```rust  # use clap::{App, Arg};  let m = App::new("myprog") " .arg(Arg::with_name("output") % .multiple(true)  .short("o")  .takes_value(true))  .get_matches_from(vec![ / "myprog", "-o", "val1", "val2", "val3" 2 ]); @ let vals: Vec<&str> = m.values_of("output").unwrap().collect(); C, assert_eq!(vals, ["val1", "val2", "val3"]); / ``` ! [`Values`]: ./struct.Values.html $E [`Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html H  'a*** 'a S   * *    *      *      *              Some        O !                        !  )         O  Ԩ+  USome U          ǩ+ * * * *   *   + ǩ+ O+ !    + self name arg  to_str_slice  self name  V Gets the lossy values of a specific argument. If the option wasn't present at runtime YX it returns `None`. A lossy value is one where if it contains invalid UTF-8 code points, [6 those invalid points will be replaced with `\u{FFFD}` 9  # Examples   doc   ```   # use clap::{App, Arg};  use std::ffi::OsString; % use std::os::unix::ffi::OsStringExt; (  let m = App::new("utf8") 1 .arg(Arg::from_usage("... 'some arg'")) 45 .get_matches_from(vec![OsString::from("myprog"), 8$ // "Hi" 'B OsString::from_vec(vec![b'H', b'i']), E) // "{0xe9}!" ,D OsString::from_vec(vec![0xe9, b'!'])]); G= let mut itr = m.values_of_lossy("arg").unwrap().into_iter(); @, assert_eq!(&itr.next().unwrap()[..], "Hi"); /3 assert_eq!(&itr.next().unwrap()[..], "\u{FFFD}!"); 6 assert_eq!(itr.next(), None); ! ```    'a*** S   * *    *      *      *              Some  c $  $     $ $  $     $       $ c  )  *    )      ) +     Some          * * * *   *    ȼ+ c $  $ + $self name arg  self name  Y Gets a [`OsValues`] struct which is implements [`Iterator`] for [`OsString`] values of a \Z specific argument. If the option wasn't present at runtime it returns `None`. An OS value ]W on Unix-like systems is any series of bytes, regardless of whether or not they contain Z] valid UTF-8 code points. Since [`String`]s in Rust are guaranteed to be valid UTF-8, a valid `\ filename as an argument value on Linux (for example) may contain invalid UTF-8 code points. _  # Examples   doc   ```   # use clap::{App, Arg};  use std::ffi::{OsStr,OsString}; #0 use std::os::unix::ffi::{OsStrExt,OsStringExt}; 3  let m = App::new("utf8") 1 .arg(Arg::from_usage("... 'some arg'")) 45 .get_matches_from(vec![OsString::from("myprog"), 8( // "Hi" +F OsString::from_vec(vec![b'H', b'i']), I- // "{0xe9}!" 0H OsString::from_vec(vec![0xe9, b'!'])]); K : let mut itr = m.values_of_os("arg").unwrap().into_iter(); =0 assert_eq!(itr.next(), Some(OsStr::new("Hi"))); 3@ assert_eq!(itr.next(), Some(OsStr::from_bytes(&[0xe9, b'!']))); C assert_eq!(itr.next(), None); ! ``` % [`OsValues`]: ./struct.OsValues.html (E [`Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html HE [`OsString`]: https://doc.rust-lang.org/std/ffi/struct.OsString.html HD [`String`]: https://doc.rust-lang.org/std/string/struct.String.html G  'a*** 'a S   * *    +    *      *      *                Some Q !                       !  )          Q  +  WSome W          w+ * * + * *   *   + Q+ !    + self name  to_str_slice arg  self!name!!I Returns `true` if an argument was present at runtime, otherwise `false`. L  # Examples   ```rust  # use clap::{App, Arg};  let m = App::new("myprog") ! .arg(Arg::with_name("debug") $ .short("d"))  .get_matches_from(vec![  "myprog", "-d"  ]);   assert!(m.is_present("debug")); # ``` !  'a*** S  ! *!*! ̀!  Ù! !ŀ! р!р!+Some+!!!! ! ! ! ! !* !! ! !!  !!!!!!Hʁ!ʁ!ŀ! !!ʁ!ʁ!! !ԁ!  ԁ! *!  !  ! ! ! !*  !! ! ԁ!%ށ! *   ށ!! ! ! ! !!`!*!*!̀!  +р!!H!!H!!H ! !H! !H*!ԁ!%*ԁ! ԁ!%! ԁ!%! ԁ!%*!self!name!scр!!self!name!!Z Returns the number of times an argument was used at runtime. If an argument isn't present!] it will return `0`.!!V **NOTE:** This returns the number of times the argument was used, *not* the number of!YX values. For example, `-o val1 val2 val3 -o val4` would return `2` (2 occurrences, but 4![ values).Ʉ! ڄ! # Examples!! ```rust!  # use clap::{App, Arg};! let m = App::new("myprog")!! .arg(Arg::with_name("debug")Ѕ!$ .short("d")! .multiple(true))! .get_matches_from(vec![!# "myprog", "-d", "-d", "-d"چ!& ]);! !* assert_eq!(m.occurrences_of("debug"), 3);!- ```χ!ۇ!P This next example shows that counts actual uses of the argument, not just `-`'s!S! ```rustÈ!  # use clap::{App, Arg};ӈ! let m = App::new("myprog")!! .arg(Arg::with_name("debug")!$ .short("d")! .multiple(true))ۉ! .arg(Arg::with_name("flag")!# .short("f"))! .get_matches_from(vec![! "myprog", "-ddfd"! ]);! !* assert_eq!(m.occurrences_of("debug"), 3);!-) assert_eq!(m.occurrences_of("flag"), 1);ы!, ```!!  'a*** S  ! *!*! Ԍ!Ԍ! Ԍ! *! ! !!! !*!!! !Ԍ!ތ!*ތ!!!!! Ԍ!4! , * +!!!!!!!! ƌ!*!*!Ԍ!4*Ԍ!Ԍ!4*Ԍ! Ԍ!4! Ԍ!4! Ԍ!4*!Ԍ!4+! self!name!!self!name!˷!W Gets the starting index of the argument in respect to all other arguments. Indices are!Z2 similar to argv indices, but are not exactly 1:1.!5!U For flags (i.e. those arguments which don't have an associated value), indices refer!XY to occurrence of the switch, such as `-f`, or `--flag`. However, for options the indices!\\ refer to the *values* `-o val` would therefore not represent two distinct indices, only the!_6 index for `val` would be recorded. This is by design.א!9![ Besides the flag/option descrepancy, the primary difference between an argv index and clap!^[ index, is that clap continues counting once all arguments have properly seperated, whereas!^ an argv index does not.!!# The examples should clear this up.!&!Y *NOTE:* If an argument is allowed multiple times, this method will only give the *first*!\ index.! ! # Examples!ɔ!W The argv indices are listed in the comments below. See how they correspond to the clapє!ZY indices. Note that if it's not listed in a clap index, this is becuase it's not saved in!\( in an `ArgMatches` struct for querying.!+! ```rustɖ!  # use clap::{App, Arg};ٖ! let m = App::new("myapp")! .arg(Arg::with_name("flag")!# .short("f"))×!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true))!9 .get_matches_from(vec!["myapp", "-f", "-o", "val"]);ʘ!<4 // ARGV idices: ^0 ^1 ^2 ^3!74 // clap idices: ^1 ^3Ǚ!7!) assert_eq!(m.index_of("flag"), Some(1));!,+ assert_eq!(m.index_of("option"), Some(3));!. ```!!: Now notice, if we use one of the other styles of options:!=ś! ```rust͛!  # use clap::{App, Arg};ݛ! let m = App::new("myapp")! .arg(Arg::with_name("flag")!# .short("f"))ǜ!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true))!6 .get_matches_from(vec!["myapp", "-f", "-o=val"]);Ν!9. // ARGV idices: ^0 ^1 ^2!11 // clap idices: ^1 ^3ž!4!) assert_eq!(m.index_of("flag"), Some(1));!,+ assert_eq!(m.index_of("option"), Some(3));!. ```!!Z Things become much more complicated, or clear if we look at a more complex combination of!]D flags. Let's also throw in the final option style for good measure.ݠ!G! ```rust!  # use clap::{App, Arg};! let m = App::new("myapp")! .arg(Arg::with_name("flag")!# .short("f"))!! .arg(Arg::with_name("flag2")Ȣ!$ .short("F"))!! .arg(Arg::with_name("flag3")!$ .short("z"))!" .arg(Arg::with_name("option")ԣ!% .short("o")! .takes_value(true))!7 .get_matches_from(vec!["myapp", "-fzF", "-oval"]);!:0 // ARGV idices: ^0 ^1 ^2!31 // clap idices: ^1,2,3 ^5!4 //!> // clap sees the above as 'myapp -f -z -F -o val'!A< // ^0 ^1 ^2 ^3 ^4 ^5˦!?) assert_eq!(m.index_of("flag"), Some(1));!,* assert_eq!(m.index_of("flag2"), Some(3));!-* assert_eq!(m.index_of("flag3"), Some(2));!-+ assert_eq!(m.index_of("option"), Some(5));!. ```ר!!@ One final combination of flags/options to see how they combine:!C! ```rust!  # use clap::{App, Arg};˩! let m = App::new("myapp")! .arg(Arg::with_name("flag")!# .short("f"))!! .arg(Arg::with_name("flag2")Ҫ!$ .short("F"))!! .arg(Arg::with_name("flag3")!$ .short("z"))!" .arg(Arg::with_name("option")ޫ!% .short("o")! .takes_value(true)! .multiple(true))Ǭ!2 .get_matches_from(vec!["myapp", "-fzFoval"]);!5( // ARGV idices: ^0 ^1!+. // clap idices: ^1,2,3^5ҭ!1 //!> // clap sees the above as 'myapp -f -z -F -o val'!A< // ^0 ^1 ^2 ^3 ^4 ^5!?) assert_eq!(m.index_of("flag"), Some(1));!,* assert_eq!(m.index_of("flag2"), Some(3));گ!-* assert_eq!(m.index_of("flag3"), Some(2));!-+ assert_eq!(m.index_of("option"), Some(5));!. ```!!X The last part to mention is when values are sent in multiple groups with a [delimiter].![! ```rust!  # use clap::{App, Arg};! let m = App::new("myapp")!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true)! .multiple(true))!; .get_matches_from(vec!["myapp", "-o=val1,val2,val3"]);ɳ!>( // ARGV idices: ^0 ^1!+5 // clap idices: ^2 ^3 ^4!8 //!@ // clap sees the above as 'myapp -o val1 val2 val3'!C= // ^0 ^1 ^2 ^3 ^4ص!@+ assert_eq!(m.index_of("option"), Some(2));!. ```ж!) [`ArgMatches`]: ./struct.ArgMatches.htmlܶ!,6 [delimiter]: ./struct.Arg.html#method.value_delimiter!9ҷ!  'a*** S  ! *۷!*޷! !! ! *! ! !!! !*!˷!! ¸!!!*!ù!ø!ø!!  ! ! ! ! Some! !  ! !  !   #!! ,  !!  ! !! > ! !! ڸ! ڸ! ! ! ! ! ߸!߸! Some!!!Some!!!! ! ! !!ù! Ĺ!!!!ù! ˷!Ÿ!l!0! *!*!*!*! ! ! *!! !Ӹ!T!Ӹ!T  ! Ӹ!T,!Ӹ!T ,! ڸ!߸!!self!name!arg! i߸!˷!self!name!!P Gets all indices of the argument in respect to all other arguments. Indices areʹ!S2 similar to argv indices, but are not exactly 1:1.!5ܺ!U For flags (i.e. those arguments which don't have an associated value), indices refer!XY to occurrence of the switch, such as `-f`, or `--flag`. However, for options the indices!\\ refer to the *values* `-o val` would therefore not represent two distinct indices, only the!_6 index for `val` would be recorded. This is by design.!9Ľ!Q *NOTE:* For more information about how clap indices compare to argv indices, see̽!T [`ArgMatches::index_of`]!ƾ! # Examplesξ!! ```rust!  # use clap::{App, Arg};! let m = App::new("myapp")!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true)! .use_delimiter(true)!  .multiple(true))!; .get_matches_from(vec!["myapp", "-o=val1,val2,val3"]);!>( // ARGV idices: ^0 ^1!+5 // clap idices: ^2 ^3 ^4!8 //!@ // clap sees the above as 'myapp -o val1 val2 val3'!C= // ^0 ^1 ^2 ^3 ^4!@M assert_eq!(m.indices_of("option").unwrap().collect::>(), &[2, 3, 4]);!P ```!!B Another quick example is when flags and options are used together!E! ```rust!  # use clap::{App, Arg};! let m = App::new("myapp")!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true)! .multiple(true))! .arg(Arg::with_name("flag")!# .short("f")! .multiple(true))!N .get_matches_from(vec!["myapp", "-o", "val1", "-f", "-o", "val2", "-f"]);!QJ // ARGV idices: ^0 ^1 ^2 ^3 ^4 ^5 ^6!MJ // clap idices: ^2 ^3 ^5 ^6!M!J assert_eq!(m.indices_of("option").unwrap().collect::>(), &[2, 5]);!MH assert_eq!(m.indices_of("flag").unwrap().collect::>(), &[3, 6]);!K ```!![ One final example, which is an odd case; if we *don't* use value delimiter as we did with!^\ the first example above instead of `val1`, `val2` and `val3` all being distinc values, they!_Z would all be a single value of `val1,val2,val3`, in which case case they'd only receive a!] single index.!! ```rust!  # use clap::{App, Arg};! let m = App::new("myapp")!" .arg(Arg::with_name("option")!% .short("o")! .takes_value(true)! .multiple(true))!; .get_matches_from(vec!["myapp", "-o=val1,val2,val3"]);!>( // ARGV idices: ^0 ^1!++ // clap idices: ^2!. //!B // clap sees the above as 'myapp -o "val1,val2,val3"'!E4 // ^0 ^1 ^2!7G assert_eq!(m.indices_of("option").unwrap().collect::>(), &[2]);!J ```!) [`ArgMatches`]: ./struct.ArgMatches.html!,C [`ArgMatches::index_of`]: ./struct.ArgMatches.html#method.index_of!F6 [delimiter]: ./struct.Arg.html#method.value_delimiter!9!  'a*** 'a S   *!*! !! ! *! ! !!! !*!!! !!!*!!!!!  ! !!!! ! ! Some! ! !   !O !  ! ! !! !  ,!!,!!! !!! > !!!! ! ! )7   ! !! !O ,, ! !USome !U! !! ! !!!!!!,!*!*!*!*! ! ! *!! !,!,!O,! ,!,! ,!Ȭ,! ,!self!name!arg! to_usize! !self!name!!Z Because [`Subcommand`]s are essentially "sub-[`App`]s" they have their own [`ArgMatches`]!]Y as well. This method returns the [`ArgMatches`] for a particular subcommand or `None` if!\* the subcommand wasn't present at runtime.!-! # Examples!! ```rust! $ # use clap::{App, Arg, SubCommand};!' let app_m = App::new("myprog")!"! .arg(Arg::with_name("debug")!$ .short("d"))!. .subcommand(SubCommand::with_name("test")!1# .arg(Arg::with_name("opt")!& .long("option")!! .takes_value(true)))!$ .get_matches_from(vec![!2 "myprog", "-d", "test", "--option", "val"!5 ]);! !\ // Both parent commands, and child subcommands can have arguments present at the same times!_$ assert!(app_m.is_present("debug"));!'!, // Get the subcommand's ArgMatches instance!/8 if let Some(sub_m) = app_m.subcommand_matches("test") {!;" // Use the struct like normal!%4 assert_eq!(sub_m.value_of("opt"), Some("val"));!7 }! ```!) [`Subcommand`]: ./struct.SubCommand.html!, [`App`]: ./struct.App.html!) [`ArgMatches`]: ./struct.ArgMatches.html!,!  'a**** S  ! *!*! !  +! !! !!+Some+!!!! ! ! ! ! !* !! ! !!+!!!!!!S!!! !  !  !  !  !Some* !! ! !!! !!! !!k *!*!*!! +!!S!!S!!S ! !S! !S*!*! *! self!name!s!!self! !mZ Because [`Subcommand`]s are essentially "sub-[`App`]s" they have their own [`ArgMatches`]!]Z as well.But simply getting the sub-[`ArgMatches`] doesn't help much if we don't also know!]\ which subcommand was actually used. This method returns the name of the subcommand that was!_* used at runtime, or `None` if one wasn't.!-!Y *NOTE*: Subcommands form a hierarchy, where multiple subcommands can be used at runtime,!\R but only a single subcommand from any group of sibling commands may used at once.!U!\ An ASCII art depiction may help explain this better...Using a fictional version of `git` as!_Z the demo subject. Imagine the following are all subcommands of `git` (note, the author is!]V aware these aren't actually all subcommands in the real `git` interface, but it makes!Y explanation easier)!! ```notrust!= Top Level App (git) TOP!@ |!"0 -----------------------------------------!31 / | \ \!4A clone push add commit LEVEL 1!D1 | / \ / \ |!4A url origin remote ref name message LEVEL 2!D" / /\!%A path remote local LEVEL 3!D ```!!X Given the above fictional subcommand hierarchy, valid runtime uses would be (not an all![Y inclusive list, and not including argument options per command for brevity and clarity):!\! ```sh!  $ git clone url! $ git push origin path! $ git add ref local! $ git commit message! ```!!W Notice only one command per "level" may be used. You could not, for example, do `$ git!Z clone url push origin path`!! # Examples!! ```no_run! $ # use clap::{App, Arg, SubCommand};!' let app_m = App::new("git")! 1 .subcommand(SubCommand::with_name("clone"))!40 .subcommand(SubCommand::with_name("push"))!32 .subcommand(SubCommand::with_name("commit"))!5 .get_matches();!! match app_m.subcommand_name() {!#, Some("clone") => {}, // clone was used!/+ Some("push") => {}, // push was used!.- Some("commit") => {}, // commit was used!0K _ => {}, // Either no subcommand or one not tested for...!N }! ```!) [`Subcommand`]: ./struct.SubCommand.html!, [`App`]: ./struct.App.html!) [`ArgMatches`]: ./struct.ArgMatches.html!,!  'a*  ! self" ҉"\ This brings together [`ArgMatches::subcommand_matches`] and [`ArgMatches::subcommand_name`]!_6 by returning a tuple with both pieces of information.!9! # Examples!! ```no_run! $ # use clap::{App, Arg, SubCommand};!' let app_m = App::new("git")! 1 .subcommand(SubCommand::with_name("clone"))!40 .subcommand(SubCommand::with_name("push"))!32 .subcommand(SubCommand::with_name("commit"))!5 .get_matches();!! match app_m.subcommand() {!5 ("clone", Some(sub_m)) => {}, // clone was used!84 ("push", Some(sub_m)) => {}, // push was used!76 ("commit", Some(sub_m)) => {}, // commit was used!9T _ => {}, // Either no subcommand or one not tested for...!W }! ```!![ Another useful scenario is when you want to support third party, or external, subcommands.!^[ In these cases you can't know the subcommand name ahead of time, so use a variable insteadр"^ with pattern matching!"Ӂ" ```rustہ"  # use clap::{App, AppSettings};"#9 // Assume there is an external subcommand named "subcmd""< let app_m = App::new("myprog")Ԃ""4 .setting(AppSettings::AllowExternalSubcommands)"7 .get_matches_from(vec!["B "myprog", "subcmd", "--option", "value", "-fff", "--flag"ۃ"E ]);" "[ // All trailing arguments will be stored under the subcommand's sub-matches using an empty"^ // string argument name" match app_m.subcommand() {"! (external, Some(sub_m)) => {"$K let ext_args: Vec<&str> = sub_m.values_of("").unwrap().collect();"N) assert_eq!(external, "subcmd");߆",H assert_eq!(ext_args, ["--option", "value", "-fff", "--flag"]);"K },"  _ => {}," }" ```"W [`ArgMatches::subcommand_matches`]: ./struct.ArgMatches.html#method.subcommand_matches"ZQ [`ArgMatches::subcommand_name`]: ./struct.ArgMatches.html#method.subcommand_name"Tى"  'a*, " self" ӎ"VP Returns a string slice of the usage statement for the [`App`] or [`SubCommand`]"S" # Examples"" ```no_run" $ # use clap::{App, Arg, SubCommand};"' let app_m = App::new("myprog")ʌ""/ .subcommand(SubCommand::with_name("test"))"2 .get_matches();"č" println!("{}", app_m.usage());̍"" ```") [`Subcommand`]: ./struct.SubCommand.html", [`App`]: ./struct.App.html"ڎ"  'a* " o  %+    o  '+- !i! !, ! "  'a)۔-'a   "" 'a  self"  ԗ"Fח"  'a ۔-- ܗ" self"  "S"  'a ۔- "  "  'a(-'a  self"  "P"  'a - 'a "  ", 'a(-'a   ɚ" Creates an empty iterator."  'a-'a   ""  'a-  0"""""""" "! " "!"!-" "!"  "% -" "  'a)-'a   ϥ"ԥ" 'a   self"  "H"  'a -ǜ- " selfƦ"  "S"  'a -ɖ- Ŧ"  "  'a(-'a  selfէ"  ç"RƧ"  'a - 'a  Ч"  ". 'a(̟-'a   " Creates an empty iterator.ɨ"  'a-'a   ""  'a-  0ȩ"ȩ"ȩ"ȩ"ȩ"ȩ"ȩ"" "!-ͩ" "!"!-" "!"  "' -" "  'a)-'a   ""  selfݲ"  в"DӲ"  'a - ز" self"  "S"  'a -ɖ- "  "  'a(-'a  self"  "N"  'a - "  "- 'a(Φ-'a   õ" Creates an empty iterator."  'a-'a   ""  'a-  0"""""""" "" ""-" "" " -"Debug"3" Debug"3" Formatter" 2"  Result"2" n    "a  'a'a  n""Z Creates a new instance of `ArgGroup` using a unique string name. The name will be used to"]Z get values from the group or refer to the group inside of conflict and requirement rules."]" # Examples"" ```rust"  # use clap::{App, ArgGroup};"  ArgGroup::with_name("config")"! # ;" ```""  'a 'a-  self"n"") Adds an [argument] to this group by name"," # Examples"" ```rust" " # use clap::{App, Arg, ArgGroup};"% let m = App::new("myprog")" .arg(Arg::with_name("flag")"# .short("f"))"! .arg(Arg::with_name("color")"$ .short("c"))", .group(ArgGroup::with_name("req_flags")"/ .arg("flag")" .arg("color"))"- .get_matches_from(vec!["myprog", "-f"]);"0: // maybe we don't know which of the two flags was used..."=$ assert!(m.is_present("req_flags"));"'0 // but we can also check individually if needed"3 assert!(m.is_present("flag"));"" ```" [argument]: ./struct.Arg.html"!"  'a---  self"ns""0 Adds multiple [arguments] to this group by name"3" # Examples"" ```rust" " # use clap::{App, Arg, ArgGroup};"% let m = App::new("myprog")" .arg(Arg::with_name("flag")"# .short("f"))"! .arg(Arg::with_name("color")"$ .short("c"))", .group(ArgGroup::with_name("req_flags")"/# .args(&["flag", "color"]))"&- .get_matches_from(vec!["myprog", "-f"]);"0: // maybe we don't know which of the two flags was used..."=$ assert!(m.is_present("req_flags"));"'0 // but we can also check individually if needed"3 assert!(m.is_present("flag"));"" ```" [arguments]: ./struct.Arg.html"""  'a-  -- " self#m##ZR Allows more than one of the ['Arg']s in this group to be used. (Default: `false`)"U" # Examples""X Notice in this example we use *both* the `-f` and `-c` flags which are both part of the"[ group" " ```rust" " # use clap::{App, Arg, ArgGroup};"% let m = App::new("myprog")" .arg(Arg::with_name("flag")"# .short("f"))"! .arg(Arg::with_name("color")"$ .short("c"))", .group(ArgGroup::with_name("req_flags")"/" .args(&["flag", "color"])"% .multiple(true))"3 .get_matches_from(vec!["myprog", "-f", "-c"]);"6: // maybe we don't know which of the two flags was used..."=$ assert!(m.is_present("req_flags"));"' ```#\ In this next example, we show the default behavior (i.e. `multiple(false)) which will throw#_= an error if more than one of the args in the group was used.#@с# ```rustف# - # use clap::{App, Arg, ArgGroup, ErrorKind};#0 let result = App::new("myprog")## .arg(Arg::with_name("flag")Ƃ## .short("f"))#! .arg(Arg::with_name("color")#$ .short("c"))#, .group(ArgGroup::with_name("req_flags")у#/# .args(&["flag", "color"]))#&8 .get_matches_from_safe(vec!["myprog", "-f", "-c"]);#;8 // Because we used both args in the group it's an error#; assert!(result.is_err());# let err = result.unwrap_err();҅#"3 assert_eq!(err.kind, ErrorKind::ArgumentConflict);#6 ```# ['Arg']: ./struct.Arg.html##  'a--  selfה#rݔ#Ô#ZZ Sets the group as required or not. A required group will be displayed in the usage stringÇ#]X of the application in the format ``. A required `ArgGroup` simply states#[G that one argument from this group *must* be present at runtime (unless#J$ conflicting with another argument).ԉ#'#U **NOTE:** This setting only applies to the current [`App`] / [`SubCommand`], and not#X globally.# #X **NOTE:** By default, [`ArgGroup::multiple`] is set to `false` which when combined with#[Y `ArgGroup::required(true)` states, "One and *only one* arg must be used from this group.ߋ#\U Use of more than one arg is an error." Vice setting `ArgGroup::multiple(true)` which#XQ states, '*At least* one arg from this group must be used. Using multiple is OK."#T# # Examples## ```rust# - # use clap::{App, Arg, ArgGroup, ErrorKind};#0 let result = App::new("myprog")ގ## .arg(Arg::with_name("flag")## .short("f"))#! .arg(Arg::with_name("color")ˏ#$ .short("c"))#, .group(ArgGroup::with_name("req_flags")#/" .args(&["flag", "color"])Ő#% .required(true))#, .get_matches_from_safe(vec!["myprog"]);#/E // Because we didn't use any of the args in the group, it's an errorđ#H assert!(result.is_err());# let err = result.unwrap_err();#": assert_eq!(err.kind, ErrorKind::MissingRequiredArgument);ڒ#= ```# [`App`]: ./struct.App.html#) [`SubCommand`]: ./struct.SubCommand.html˓#,? [`ArgGroup::multiple`]: ./struct.ArgGroup.html#method.multiple#Bʔ#  'a--  self#n#՟#L Sets the requirement rules of this group. This is not to be confused with a#OY [required group]. Requirement rules function just like [argument requirement rules], you#\[ can name other arguments or groups that must be present when any one of the arguments fromؖ#^ this group is used.#ח#> **NOTE:** The name provided may be an argument, or group nameߗ#A# # Examples## ```rustȘ# - # use clap::{App, Arg, ArgGroup, ErrorKind};ؘ#0 let result = App::new("myprog")## .arg(Arg::with_name("flag")## .short("f"))ݙ#! .arg(Arg::with_name("color")#$ .short("c"))#! .arg(Arg::with_name("debug")#$ .short("d"))#, .group(ArgGroup::with_name("req_flags")#/" .args(&["flag", "color"])#% .requires("debug"))#2 .get_matches_from_safe(vec!["myprog", "-c"]);#5Z // because we used an arg from the group, and the group requires "-d" to be used, it's anœ#] // error#  assert!(result.is_err());# let err = result.unwrap_err();ם#": assert_eq!(err.kind, ErrorKind::MissingRequiredArgument);#= ```#9 [required group]: ./struct.ArgGroup.html#method.required̞#<@ [argument requirement rules]: ./struct.Arg.html#method.requires#Cܟ#  'a---  self#ns#ݬ#L Sets the requirement rules of this group. This is not to be confused with a#OY [required group]. Requirement rules function just like [argument requirement rules], you#\\ can name other arguments or groups that must be present when one of the arguments from this#_ group is used.ʣ##? **NOTE:** The names provided may be an argument, or group name#B# # Examples#ˤ# ```rustӤ# - # use clap::{App, Arg, ArgGroup, ErrorKind};#0 let result = App::new("myprog")## .arg(Arg::with_name("flag")## .short("f"))#! .arg(Arg::with_name("color")#$ .short("c"))#! .arg(Arg::with_name("debug")˦#$ .short("d"))# .arg(Arg::with_name("verb")## .short("v"))#, .group(ArgGroup::with_name("req_flags")֧#/" .args(&["flag", "color"])#%+ .requires_all(&["debug", "verb"]))#.8 .get_matches_from_safe(vec!["myprog", "-c", "-d"]);#;[ // because we used an arg from the group, and the group requires "-d" and "-v" to be used,#^' // yet we only used "-d" it's an error#* assert!(result.is_err());# let err = result.unwrap_err();۪#": assert_eq!(err.kind, ErrorKind::MissingRequiredArgument);#= ```ī#9 [required group]: ./struct.ArgGroup.html#method.requiredЫ#<D [argument requirement rules]: ./struct.Arg.html#method.requires_all#G#  'a-ּ-- # selfƷ#n̷##Z Sets the exclusion rules of this group. Exclusion (aka conflict) rules function just like#]V [argument exclusion rules], you can name other arguments or groups that must *not* beԮ#Y< present when one of the arguments from this group are used.#?#> **NOTE:** The name provided may be an argument, or group name#Aİ# # Examples̰#߰# ```rust# - # use clap::{App, Arg, ArgGroup, ErrorKind};#0 let result = App::new("myprog")## .arg(Arg::with_name("flag")Ա## .short("f"))#! .arg(Arg::with_name("color")#$ .short("c"))²#! .arg(Arg::with_name("debug")߲#$ .short("d"))#, .group(ArgGroup::with_name("req_flags")#/" .args(&["flag", "color"])ٳ#%" .conflicts_with("debug"))#%8 .get_matches_from_safe(vec!["myprog", "-c", "-d"]);#;[ // because we used an arg from the group, and the group conflicts with "-d", it's an error#^ assert!(result.is_err());е# let err = result.unwrap_err();#"3 assert_eq!(err.kind, ErrorKind::ArgumentConflict);#6 ```Զ#D [argument exclusion rules]: ./struct.Arg.html#method.conflicts_with#G#  'a---  self#ns##K Sets the exclusion rules of this group. Exclusion rules function just like#NV [argument exclusion rules], you can name other arguments or groups that must *not* be#Y< present when one of the arguments from this group are used.ú#?#? **NOTE:** The names provided may be an argument, or group name#Bֻ# # Examples޻## ```rust# - # use clap::{App, Arg, ArgGroup, ErrorKind};#0 let result = App::new("myprog")## .arg(Arg::with_name("flag")## .short("f"))#! .arg(Arg::with_name("color")#$ .short("c"))Խ#! .arg(Arg::with_name("debug")#$ .short("d"))# .arg(Arg::with_name("verb")## .short("v"))߾#, .group(ArgGroup::with_name("req_flags")#/" .args(&["flag", "color"])#%1 .conflicts_with_all(&["debug", "verb"]))ڿ#48 .get_matches_from_safe(vec!["myprog", "-c", "-v"]);#;[ // because we used an arg from the group, and the group conflicts with either "-v" or "-d"#^ // it's an error# assert!(result.is_err());# let err = result.unwrap_err();#"3 assert_eq!(err.kind, ErrorKind::ArgumentConflict);#6 ```#H [argument exclusion rules]: ./struct.Arg.html#method.conflicts_with_all#K#  'a-ּ-- #  #  'a3.'a  self#f# ##  'a .  #  #  'a. 'z.'a 'z   g# ##  'a 'zˆ..   #  'a ׉.'a  self#  ##  'a ׉.׉. #  OsString#5#    #  ##    #R #:#   AsciiExt## FromStr#B# 9    # #8#   selfs}     selfs .   selfs     ˆ$y  $W$    $ B  $$  s×$ $ $   B Ɨ$  App$$ ArgMatches$ $  7   $  'a'a  name$ $NT Creates a new instance of a subcommand requiring a name. The name will be displayed$WC to the user when they print version or help and usage information.$F$ # Examples$$ ```rust$ $ # use clap::{App, Arg, SubCommand};$' App::new("myprog")$ .subcommand($) SubCommand::with_name("config"))$, # ;$ ```$$  'a 'b 'a 'b 'b  $  Write$$ BashGen$ $ ElvishGen$  $ FishGen$ $ PowerShellGen$  $ Shell$$ZshGen$ $ Parser$$  $ $ $  macro_use$ $ $Write$$ Parser$$ OptBuilder$ $ completions$ $  t $ $$K   'a 'b 'a 'b   'a 'b$.$ 'b 'b$ $$ 'b 'a 'b   $0   'a 'b'a 'b  p$$J$  'a 'b 'b 'a 'b.  self$buf$$ $  'a 'b  .  W  $  $ $*$$$$ $ IdIdI I( $ $ $ $H$    $ H$ $  % I(I(I(I(I(%&%&%%%   %% %$ %%&% ,% %%&Æ%AÆ%AÆ%Æ%݆%&݆%&݆%&݆%&݆%݆%݆%   ݆%% %%݆%&%.%݆%&݆%&݆%& ݆%&݆%&%%Æ%AȆ% Ȇ%<%%Æ%A%D %D!%"%"ۇ%&#ۇ%&$ۇ%&%ۇ%&&ۇ%'ۇ%(ۇ%(   ۇ%% (' %%(ۇ%&%.'&  %Jۇ%&%&ۇ%&ۇ%& %$  ۇ%&ۇ%&#$%'%%%DÇ% "#!  Ç%?%#%"%D !%)%*%+%+%% +* %%+%)*׈%,׈%-׈%.׈%.׈%܈% .-܈%J! %.׈%,-I(I(I( I()I(,J,J)J JJ%&/%&/Æ%A0Æ%A0%D1%D1%2%2׈%3׈%3I(4%&5%&5/%&6%&6%&ćI(I(564I(J*J6J5I(7Æ%A8Æ%A80Æ%A9Æ%A9Æ%A  I(I( 897I(J-J9J8I(:%D;%D;1%D<%D<%D  I(I( ;<:I(J<J;I(=%>%>2%?%?%  I(I( >?=I(J?J>I(@׈%A׈%A3׈%B׈%B׈%  I(I( AB@I(JBJAI( ӕ 47:=@J@J=J:J7J4J3J2J1J0J/I(I(I( JI(CI(DI(EI(GI(    I(EGI(DEI(CD  .JDI(I( 3 C I(JCJJ I=Iķ   I=J JEJ-J JJ!J*J-J*J*J!J&J$J!J  JJJJJJJJ J J Id$ % !"% $ %$$   #"$$$$$F $F&$% $%#Failed to write to completions file###'$$("$"$)$$$$ $ %$ IZI(I$  $ $$ $$ $ IdIdI I( $.$.$ I( ӕ I(.I(.I(I(%&%&ߊ % %Æ%AÆ%Aþ.Æ%݆%&݆%&݆%&݆%&ߊ ݆% ݆%%D%Dþ.%ۇ%&ۇ%&ۇ%&ۇ%&ߊ ۇ% ۇ%%%þ.%׈%׈%þ.׈%%&Æ%A%D%׈%ӕ I(%&ć%&ӕ I(Æ%A Æ%Aӕ I(%D %Dӕ I(% %ӕ I(׈% ׈%.I(.I(.I($.I(.$self$buf$resI arg0%&/arg1Æ%A0arg2%D1arg3%2arg4׈%3$ fI(I(I(I(I( I(I(I(I(I(.I(I(I(I( I( I( I(I( I(. I(I(I(. I(. I(I(I(.I(I(I(I( I( I( .I( I(I( .I( .I( I(I( . I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I("I(#I($I(!I( I(!."I(!I(I(!.#I(!.$I( I(I( .!I('I((I()I(&I( I(&.'I(&I(I(&.(I(&.)I(%I(I(%.&I(,I(-I(.I(+I( I(+.,I(+I(I(+.-I(+..I(*I(I(*.+I(1I(2I(3I(0I( I(0.1I(0I(I(0.2I(0.3I(/I(I(/.0I( .   %*/I(I($ IZI(4.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(I($  $_$() { local i cur prev opts cmds COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" cmd="" opts="" for i in ${COMP_WORDS[@]} do case "${i}" in $) cmd="$!" ;; !!!$W *) ;; esac done case "${cmd}" in WWW$) opts="?$" if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 fi case "${prev}" in $ *) COMPREPLY=() ;; esac COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; $ esac } complete -F _$ -o bashdefault -o default ?$ $$$ IZI(.$.$$self%  %%  'a 'b. % self%  % %  'a 'b. % selfÖ%pathɖ% %%  'a 'b. –% self%o% %%  'a 'b.  % selfء%pathޡ% % ¡%  'a 'b. ס% $Writeͬ%Ĭ% Parser%% INTERNAL_ERROR_MSG% % \ $ % %M   'a 'b 'a 'b    'a 'b%.ȭ% 'b 'bȭ% ȭ%ȭ% 'b 'a 'b   %   'a 'b'a 'b   p%%L%  'a 'b 'b 'a 'b.  self%buf%ٮ%%  'a 'b  .  W  %  % %%%%%   %% %ٮ%%%&%.%ȯ%د% 88 #8 %%% % % % %% %  %  %  %   %&%   %&&% % %% % % II(߰%߰%߰%߰%,߰%   ߰%,߰%߰% Ŵ%I(I(I(I(I(ߴ%ߴ%%%I(I(JJߴ%ߴ%%%I(ߴ%ߴ%ߴ%ߴ%ߴ%ćI(I(I(ϵ%JJI(% % %!%!%  I(I(  ! I(ϵ%J!J I( ӕ JJJJI(I(I( JI("I(#I($I(+I( .  I($+I(#$I("#.J#I(I(." I(J"JJI=Iķ  I=JJ$JJJJJ J$%%&%&%'%(%)%) %%.)(  % %'(ǵ%)$$ .&'% $ϵ% $'$&$* %$* $%#Failed to write to completions file###$$% $% $($%%%ϵ% ϵ% ϵ%ϵ%ϵ%ϵ%ϵ%е%ٮ%%ԯ%%%IZI(-%  % %%ߊ % % د% % %%% % % %I I( ߰%.߰%.߰% I(ʜ I(ʜ I(̜ I(I(ߴ%%ߴ%%ӕ I(ߴ%ćߴ%ӕ I(% %.I(.I(.I($ %%%%$.I(.߰% self%buf%bin_name%namesد% subcommands_cases%result% resIarg0ߴ%arg1%ٮ% I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I( I( I( I(I( I(. I(I(I(. I(. I(I(I(.I(I(I(I( I( I( .I( I(I( .I( .I( I(I( . I( . I(I(ٮ%%ԯ%%%IZI(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(I(߰% ߰% edit:completion:arg-completer[߰%] = [@words]{ fn spaces [n]{ repeat $n ' ' | joins '' } fn cand [text desc]{ edit:complex-candidate $text &display-suffix=' '(spaces (- 14 (wcswidth $text)))$desc } command = '?߰%' for word $words[1:-1] { if (has-prefix $word '-') { break } command = $command';'$word } completions = [߰%$ ] $completions[$command] } $$$߰%߰%ٮ%%ԯ%%%IZI(.߰%.߰%߰%% string%  %( % ն%ɶ% help%data% ƶ%B T ֜/T  %֜/ն%֜/ض% %  % ƶ%Է%Է%Է%ٷ% ֜/ٷ% %%Some%%%% /%ķ%ķ%%\%%%\%%ƶ%%!% %֜/%% %%\%%\ ֜/Է%help%data%help%ƶ%%p%previous_command_name%namesθ%- %.  'p 'a 'b #  'p%$Write%% Parser%% 5 $ %%K   'a 'b 'a 'b    'a 'b%/% 'b 'b% %% 'b 'a 'b   %   'a 'b'a 'b   p%%J%  'a 'b 'b 'a 'b/  self%buf%%%  'a 'b  /  W  %  % %%%%%   %% %%%%&%.%%% % % % %3%% % % %%   %% % % % % % %%%%  %%% %% % % % %3%   %3%% % %%% % %$%%%%%%%%. % %%$$ . $$$$ $  $%#Failed to write to completions file###$$$$$%%%%%%%%%%  % %%ߊ % %% %3%%%/%%%%% % $ %%%%$self%buf%command%buffer% %% string%  %( %% root_command% comp_gen% subcommand% buffer%< %`/   %$ Write%% Parser%% INTERNAL_ERROR_MSG% % \ $ % %Q   'a 'b 'a 'b    'a 'b%˷/% 'b 'b% %% 'b 'a 'b   %   'a 'b'a 'b   p%%P%  'a 'b 'b 'a 'b۸/  self%buf%% %  'a 'b  ۸/  W  %  % %%%%%   %% %% %%&%.%%% 88.8 %%% % % % %% %  %  %  %   %&%   %&&% % %% % % II(%%%%,%.  %,%% %I(I(I(I(I(%%%%I(I(JJ%%%%I(%%%%%ćI(I(I(%JJI(% % %!%!%  I(I(  ! I(%J!J I( ӕ JJJJI(I(I( JI("I(#I($I(+I(.  I($+I(#$I("#.J#I(I(." I(J"JJI=Iķ  I=JJ$JJJJJ J$%%&%&%'%(%)%) %%.)(  % %'(%)$$ .&'% $% $'$&$* %$* $%#Failed to write to completions file###$$% $% $($%% % % % %%%%%%% % % %%IZI(-%  % %%ߊ % % % % %%% % % %I I( %.%.% I(ʜ I(ʜ I(̜ I(҉/I(%%%%ӕ I(%ć%ӕ I(% %.I(.I(.I($ %%%%$.I(.% self%buf%bin_name%names% subcommands_cases%result% resIarg0%arg1%%  I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I( I( I( I(I( I(. I(I(I(. I(. I(I(I(.I(I(I(I( I( I( .I( I(I( .I( .I( I(I( . I( . I(I(% % % %%IZI(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(I(% % using namespace System.Management.Automation using namespace System.Management.Automation.Language Register-ArgumentCompleter -Native -CommandName '%' -ScriptBlock { param($wordToComplete, $commandAst, $cursorPosition) $commandElements = $commandAst.CommandElements $command = @( '%' for ($i = 1; $i -lt $commandElements.Count; $i++) { $element = $commandElements[$i] if ($element -isnot [StringConstantExpressionAst] -or $element.StringConstantType -ne [StringConstantType]::BareWord -or $element.Value.StartsWith('-')) { break } $element.Value }) -join ';' $completions = @(switch ($command) {?%} }) $completions.Where{ $_.CompletionText -like "$wordToComplete*" } | Sort-Object -Property ListItemText } }}}%%% % % %%IZI(.%.%%% string%  %( % %% help%data% %B ֜/ ֜/T  %/%/% %  % %%%%% /% %%Some%%%% /%%%%\%%%\%%%%!% %֜/%% %%\%%\/%help%data%help%%%p%previous_command_name%names%- %/  'p 'a 'b #  'p%$AsciiExt&& fmt&& FromStr&B& Q $   ӎ& &f3 A list of possible variants in `&'static str` form&6&    & B  &&  sʐ& &&   B ͐&  & 3 selfϕ&fՕ& Ǖ&ʕ&     Ε& $AsciiExtט&˘& Write&& Parser&& App&& AnyArg&& ArgSettings& &  completionsΙ& Ι&  INTERNAL_ERROR_MSGߙ& ߙ&  $ &&J   'a 'b 'a 'b   'a 'b&/& 'b 'b& && 'b 'a 'b   &   'a 'b'a 'b  p&&k&  'a 'b 'b 'a 'b/  self&buf&ӛ&ڛ&  'a 'b  /  W  &  & &$Ȝ&Ȝ&ٜ&ٜ&IdIdI I( & & & &5&   & 5& &  & I(I(I(I(I(&&&&&&&   && &ӛ&&&&&.&&&&Ԡ&Ԡ&&& Ԡ&Ԡ& Ԡ&&Ԡ&&&&& && &&&ȡ&ȡ&ۡ&ۡ& ȡ&ȡ& ȡ&J&ȡ&I(I(I(I(JJJJ&& && Ԡ&!Ԡ&!&"&"ȡ&#ȡ&#I($&&%&&% &&&&&&&&ćI(I(%&$  I(JJ&J%I('Ԡ&(Ԡ&(!Ԡ&)Ԡ&)Ԡ&  I(I( ()'  I(JJ)J(I(*&+&+"&,&,&  I(I( +,*  I(J,J+I(-ȡ&.ȡ&.#ȡ&/ȡ&/ȡ&  I(I( ./-  I(J/J.I( ӕ $'*-J-J*J'J$J#J"J!J I(I(I( JI(0I(1I(2I(4I( .  I(24I(12I(01.J1I(I(. 0  I(J0JJ I=Iķ    I=J J2JJ JJJJJJ JJJJJJ J J Idٜ&&.& ٜ&&$$ .$$$$$3 $3 $%#Failed to write to completions file###$$$$$$$&&&ӛ&IZI(6&  & &$ Ȝ&ٜ&ٜ&IdIdI I( &/&/& I( ӕ I(0I(0I(I(&&&&ߊ & &Ԡ&Ԡ& &&& &ȡ&ȡ& ۡ&&&Ԡ&&ȡ&ӕ I(&&ć&&ӕ I(Ԡ& Ԡ&ӕ I(& &ӕ I(ȡ& ȡ&.I(ʆ0I(ʆ0I($ʆ0I(/&self&buf&resI arg0&& arg1Ԡ&!arg2&"arg3ȡ&#ӛ&>I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I( I( I( I(I( I(. I(I(I(. I(. I(I(I(.I(I(I(I( I( I( .I( I(I( .I( .I( I(I( . I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I(I(I(I(I( I(.I(I(I(.I(.I(I(I(.I( . I(I(ӛ&IZI( ʆ0I(̆0I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(.I(I(& & #compdef   & autoload -U is-at-least _&() { typeset -A opt_args typeset -a _arguments_options local ret=1 if is-at-least 5.2; then _arguments_options=(-s -S -C) else _arguments_options=(-s -C) fi local context curcontext="$curcontext" state line & & } & _& "$@"&&ӛ&IZI(/&/&&&p& &+/&&          &&&&&   0& & vis&&&          &&& &&  & &n&& &pķ& &' Ƿ&&sc&n&ret& &3  &&p& &+/&& p&sc& &K   'b 'a 'b0&& p& &$/&& string&  && && string&  &' &&     &&&& ֱ0&&&&&   & &&v&&& p& && &&p& &' &'     ''''' -- ''' ' '''''''''''' ''''''v'''     '''' ֱ0''''' 0' ''v'''     I(Ą'Ą'Ą'Ą'Ą'    Ą'Ą'Ą' Ʉ'I(I(I( I( I( ' ' '''''Y'&'''&' '''''Y' ) 0''''Ӆ' ) 0Ӆ'''' '''''''' '''  ' J '''  I(  J '' I('''''  I(I(  I( JJI( ӕ JJI(  I( I( JI(I(   I(J JJI=Iķ   I=JJ  JJ JJ JJJ J J J J''IZI(I 0' ' I( Ą' Ą' Ą' I( I( I( I(I(''  '0' ''0'Y '& '0''''ӕ I(' ' Ą'values'resIarg0''Ą' Ą'(Ą')Ą'Ą''IZI( Ą' Ą'Ą'&p& &- &$$L   'a 'b 'a 'b    'a 'b$0$ 'b 'b$ $$ 'b 'a 'b   $   'a 'b'a 'b   p$$K$  'a 'b 'b 'a 'b0  self$ for_shell$ buf$"$$  'a 'b  0  W  $  $ $$  $  $$$$ $$ $$ $$$$ $$  $$$$$$%$  $$$$$$ $ $ $  $$    $$  $ $ $ $%$    $$ $ $ $$ $$$ $$   $$ $$$$$$    $$$$ $$$$$ $$  $$$$$$+$  $$$$$$$$$$'$  $$$$$$$$ $ $  $$ $þ.$$ž.$$ $$ $$/$$/$$ $$ $$0$$0$$ $$ $$/$$/$$ $$ $$/$$/$$ $$ $self$ for_shell$ buf$$$          $$$$$ $ $$$$$$ $   0$0$ $$n$$$          $$$ $$$ $$$$$$    $ $ $ $s$$$p$$60$$     #0     $$$ $$$ $$$$$0$    0$ $ $ $s$$$p$$;00$$p$$: 0$$)          $$$ $$%$ $$%$$$$)$  0$) $ $ $s$$)$p$first$$G0$FromŇ'' StdError' χ' std_fmt'' Display'3' io'' Write'' processÈ'!'  StdResult' Ј'  AnyArg''  ColorWhen' '  Colorizer'  '  ColorizerOption' ' suggestionslj' lj'    Ҋ'ˊ' Š') Short hand for [`Result`] typeՉ'"'B [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.html'E֜/T  /Ҋ' 's self' '1 Should the message be written to `stdout` or not'4'   ' self' '< Prints the error to `stderr` and exits with a status of `1`'?' 0 ' self'w''k'doc'ސ'' hidden''' W0 0 W  ' 0'0'''կ''''' 0''' 'կկ կ կ կ '  ' կ   ' '  կ' ' ' ' '   կկ կ կ ӕ կ  կ կ  կկ կƯ.˯  0˯)' ' ' '''kկ' ' 0'Ư.0'Ư. կƯ. 'Ư.'Ư.'Ư. կƯ. կƯ. կƯ. կƯ.0կƯ.' ' Ư.ӕ կƯ.' Ư. ' 'self'w'arg0' 'k' ''''kկ'''arg'other'usage'color'*''doc''' hidden''' OU 11  O U   ' 1'1'1' 31'. 'b''b''9 9 9 9  ' '  '  ' ' ' '    -'' ' ''   -' (c (c+*(' 9   9 9 9 U09999 9 9' ' 'R'''R''R ('b'  'b(IdII(ǀ(xǀ(xǀ(xǀ(xaǀ(x  11ǀ(xaǀ(xǀ(x (I(I(I(I(I(с(с(с(с( с(Ӂ( ف(error:?Ӂ(( (с(((( (  (!("(#($(%(%((  %$ ( (#$(%(( #"  ((#(!"((  !  (J$(!( ((&('Ă( ( Ă( ( (A(A (9B(.C(.D(.D(.,one or more of the other specified arguments,,,(.CD(9ʄ( CB ʄ( (ɂ()ɂ(bɂ(ɂ()Some1(*(+(+)( ( 1+* ((+(,(-(-( .(/(/*( ( /.((/(( #-.,((*  (.(-(,ă(0ă(0 Id1I2I(3փ(4փ(5փ(6փ(`փ(  11փ(6`փ(56փ(45 ۃ(5I(7I(8I(9I(:I(;ރ(<ރ(<*I(;<J<ރ(=ރ(=;I(>ރ(?ރ(?=ރ(@ރ(@ރ(  I(I( ?@>I( J@J?I(: ӕ >J>J=I(9:I(89I(78 J8I(I( 473I(J7J4I=Iķ 32I=J3J;J:J9J6J12J2ă(ƃ( 01'ƃ((1(0(* (*()(ӄ(C(A( AB' (?Ԅ(DԄ(BԄ(A((&'(E(E(F(G(H(H (( H(--help?G((H(FGI( I(1I( &I( 1EI(1FJFJEJ&JJс(Iс(I1(J(J1(K(Kğ1(L(L1(M(M1I(Nс(Oс(OIс(Pс(Pс( 31  1 I(I( 31OPNI(J' JPJOI(Q(R(RJ(S(S(11I(I(â1RSQI(JSJRI(T(U(UK(V(V( 3Ɵ1  Ɵ1 I(I( 3Ɵ1UVT I(JVJUI(W(X(XL(Y(Y( 31  1 I(I( 31XYW!I(JYJXI(Z([([M(\(\(11I(I(â1[\Z"I(J\J[I( ӕ NQTWZJZJWJTJQJNJMJLJKJJJII(I(I( JI(I( #I(JJI=Iķ $I=JJGJ''&JJ$%J'J$(%J$J"JJJJJJJJÅ(]Å(] (^(_(_(^Some_(^(_((( (^(^(](( (()('(b*,(b((Some1*99 %1 1d9 '''IZĂ((IZI(I(e' '1'1' ''19 U19 19 '' ' '' 'R '(IdI I( ǀ(x1ǀ(x1ǀ(x I(.I(.I(.I(11ğ111I(1с(1с( с(1(1(1((((( (ğ1(Ɵ1(Ă( 1ɂ((1(( (( (ă(1ă(ă(IdI I( փ( փ( փ( I( I( I( I(0I(ރ(ރ(ӕ I(ރ( ރ(1((9(.(.1(1(1(1(1с(1(ğ1(1(1(ӕ I(1с(1с(ӕ I(1(1(ӕ I(ğ1(1(ӕ I(1(1(ӕ I(1(1((Å((((( փ(1ǀ(x((9arg'other'usage'color'v'c' resInameɂ()n(*resI2arg0ރ(=arg0с(Iarg1(Jarg2(Karg3(Larg4(M'փ( փ('փ('փ(փ( '''IZĂ((IZI(I( փ( փ(փ(ǀ(x ǀ(xǀ(x The argument 'ǀ(x' cannot be used with ǀ(x ǀ(x For more information try ?ǀ(xǀ(x '''IZĂ((IZI(I(1ǀ(x1ǀ(xǀ(xarg(usagedž(colorц(((doc((( hidden((( U11  U  ( 1(31(((R(((R؇((R ((b(1(b((IdII( ( ( ( (8(. 1( 8( (  ۉ( I( I(I(I(I(((((((̍1(error:?(( ((((((((((( 1( (((1( (((((Ԋ(Ԋ(Ԋ(Ԋ(Ԋ(֊(1ۊ(--help?֊(J(Ԋ(I(1I(ğ1I( 1I(1JJJJ((1((ğ1( ( 1Ԋ(!Ԋ(!1I("(#(#($($(11I(I(â1#$" I(J$J#I(%(&(&('('(11I(I(1&'% I(J'J&I((()() (*(*( 31  1 I(I( 31)*( I(J*J)I(+Ԋ(,Ԋ(,!Ԋ(-Ԋ(-Ԋ(11I(I(â1,-+ I(J-J,I( ӕ "%(+J+J(J%J"J!J JJI(I(I(  JI(I(    I(J J I=Iķ  I=J JJJJJJJJJ JJ(.(.(!/909 19 29 39 3 1(4( 5( 6(7(7( (߇176(( 56‹(7(ċ( 54ċ( ڋ(͋(59 3 4949 239 1219392991109 91(!/Some0(!/ϋ(0((((/ڋ(/ڋ(.ڋ(((6((9913199((IZI(:( (1dž( ц((1(R ((IdI I( (.(.( I(0I(0I(0I(1ğ111I(1(1(1(ğ1(Ɵ1(1(( (1(1Ԋ(1Ԋ(1Ԋ(1(ğ1(1(1Ԋ(ӕ I(1(1(ӕ I(ğ1(1(ӕ I(1(1(ӕ I(1Ԋ(1Ԋ(((((!(9(19 (19 19 (((( (( ( (.(9 arg(usagedž(colorц(c(resIarg0(arg1(arg2( arg3Ԋ(!(( (( The argument '(*' requires a value but none was supplied ***( For more information try ?((((IZI(.(.((bad_val( good_vals( argΌ(usage(color(;( (doc((( hidden((( BGU1  1غ1  B G U   ( 1(1(1(1( 1( 31ύ(31(:((Rӎ(ӎ((R((R ((b(1(b( (( ( ( ( ( (( 1  (((( ( ( ( ( (( >1 (Ï((J(& 171   (Jď( ď( ŏ( ԏ( 88 # 8( ( ( ( (  ( 1  ( ( (( ( (l ( ( ( ( ( ( ( ( (  )1  ( (( ( ((ܐ(ܐ((( 1(2( 3(4(4( ( 43 ( ( !((Some 1((((((((( (II(((( (( 111( ( ( (I(!I("I(#I($I(%( &( '((((()()( ( 1()' ( ()((( &'I(% 1&J&( *( *%1I( +(  ,(  ,*(  -(  -(  31  1 I( I( 31,-+ I( J -J ,I( $ ӕ +J +J*I(#$I("#I(!" J"I(I( ! I(J!JI=Iķ  I= JJ'J%J$J#J J J(.(/(/ΐ(0ΐ(0(ɐ(1/0. ɐ( ѐ(0ѐ(/Ґ(.ܐ(ܐ(ܐ((l (23(4( ( 21 ((2(3(1( 5(6(7(8(8((087 ((67(8(9(:(:(, (9:((0695 ( (9(6(:(7Id ;I <I( =( >( ?( @( (/ 111( @( ?@( >? ( ?I( AI( BI( CI( DI( E( F( G( H( H( (̍1H(error:?G( ( H( FGʓ( Iʓ( Jʓ( Kʓ( Kԓ( Lԓ( Mԓ( Mԓ( ܓ(1MLܓ((5 ( Mʓ( ̓(1KLJ̓( ( L( Kʓ( IJ( N( O( P( P( Q( R( R( ( 1RQ( ( R( (1PQO( ( Q( P( NO( S( S5( T( T ۔( U۔( U( V( W( X( X( (1X(--help?W! (J O#( X( VWI( E1FI( E1II( Eğ1NI( ESI( ETI( E 1UI( E1VJ VJ UJ TJ SJ NJ IJ F( Y( YE1ʓ( Zʓ( ZE1( [( [Eğ1(  \(  \E( ]( ]E۔( ^۔( ^E2( _( _E1I( `( a( aY( b( b(11I( I(â1ab`" I(J bJ aI( cʓ( dʓ( dZʓ( eʓ( eʓ(11I( I(â1dec# I(J eJ dI( f( g( g[( h( h(11I( I(1ghf$ I(J hJ gI( i(  j(  j\(  k(  k(   I( I( jki% I(J kJ jI( l( m( m]( n( n(  I( I( mnl& I(J nJ mI( o۔( p۔( p^۔( q۔( q۔( 31  1 I( I( 31pqo' I(J qJ pI( r( s( s_( t( t(11I( I( â1str( I(J tJ sI( D ӕ `cfilorJ rJ oJ lJ iJ fJ cJ `J _J ^J ]J \J [J ZJ YI( CDI( BCI( AB J BI( I( >A=) I(J AJ >I= Iķ =<* I=J =J WJ O,+J <J OJ JJ GJ EJ DJ CJ @J ;<J <( u( uϕ(> v9 w9  x9  y9  z9  z ٕ( {ٕ( |ٕ( }ٕ( ~ٕ( ~ٕ( ݕ(߇1~}-9ݕ(ٕ( |}( ~ٕ( ( |{/9( ( ;( |( ( ( ( ( ( (101(( ( ( ( 21( 9 {9( 9  z {9 9 {9  yz9  xy19 z9 y9 9 1xw3.9 9 xϕ(> vSomewϕ(> v( w( ;( (( v( v( u( ;(54 (5(5 (( 6( (((}(7(8(9 9 %2z 2.9( ((Џ((l(c((c(KIZI((IZ I( (1(1(  Ό(1( ((1(R ӎ( ((( 1(1(1( ԏ( 1( 1( 1( 1( 1(  1( 2( (1(1(1((I I( ((( I( I( I( I(1I(1( 1( 1(1(1( ӕ I(1( 1( (1(ΐ(( 0(2( 1(( 0(0(0((((IdI I( (/(/( I( ӕ I(2I(2I(11ğ121I(1(1(1(1ʓ(1ʓ(1ʓ(ԓ(2ԓ(ğ1(Ɵ1(1(( (( (2۔(1(1(1(1( 1ʓ( ğ1( (  ( 2۔( 1( ӕ I(1(1(ӕ I(1ʓ(1ʓ(ӕ I(ğ1(1(ӕ I((  ( ӕ I(( (ӕ I(2۔(2۔(ӕ I(1(1((((ϕ(>(9(19 (U29 29 (ٕ((ٕ( (ٕ( ( ٕ((((((((2(/( (9bad_val( good_vals( argΌ(usage(color(c(suffix( sortedԏ( iter( __next( val(v(val(resI arg0(  * valid_values( 5resI <arg0( Yarg1ʓ( Zarg2( [arg3(  \arg4( ]arg5۔( ^arg6( _( ( (( '(' isn't a valid value for '?(' [possible values: (] ( ( For more information try ?((( ((Џ((l(c((c(KIZI((IZ I( /(/((( (((( ((Џ((l(c((c(KIZI((IZ I( (((subcmd( did_you_mean( name(usage(color(>((doc(ђ(( hidden((( SDNU2222  S D N U     2і(2Ԗ(2ז(2ږ(2( 2( 32(32(32( Ә(XӘ(Ә(ט(ט(ט( ޘ( 2ޘ( (X((((R Ǚ( Ǚ( (R ((R   ֙( (b(1 (b((((י( Id I I( ((((W(  2222(W(( (I(I(I(I(I(Ü(Ü(Ü(Ü(Ü(Ŝ(̍1˜(error:?Ŝ( Ӝ(Ü((((((((((( (((((1 ( ((((( (!(!("( #( #(( 2#" ((#((1!" ( ("(!( ($($˝( %˝( &˝('˝('˝( ͝(1'ҝ(--& ͝( ֝('˝( %&((()(*(+(+(( +* ( (+()*(()(,(,(-(.(/(/((1/(--help?.('(/(-.I(1I(1I(1I( 2$I(1%I( (I( 2,I(1-J-J,J(J%J$JJJÜ(0Ü(01(1(11(2(21(3(32˝( 4˝( 41(5(5 (6(62(7(71I(8Ü(9Ü(90Ü(:Ü(:Ü(11I(I(â19:8I(J:J9I(;(<(<1(=(=(11I(I(â1<=;I(J=J<I(>(?(?2(@(@(11I(I(â1?@>I(J@J?I(A(B(B3(C(C( 32  2 I(I( 32BCAI(JCJBI(D˝( E˝( E4˝( F˝( F˝( 11I(I(â1EFDI(JFJEI(G(H(H5(I(I(  I(I(ϓ HIGI(JIJHI(J(K(K6(L(L( 32  2 I(I( 32KLJI(JLJKI(M(N(N7(O(O(11I(I(â1NOMI(JOJNI( ӕ 8;>ADGJMJMJJJGJDJAJ>J;J8J7J6J5J4J3J2J1J0I(I(I( JI(I(  I(JJI=Iķ   I= J J.J*J)J&J JJJJJJJJ  J Ǟ(PǞ(P( Q9R9 S9 T9 U9 U 1(V(X((V9 U V9V9 TU9 ST19U9T99 1SR9(  9S( QSomeR( Q(R( (((Q(Q(P( ((X(((((((X(((X(Ϙ((IZI(YЗ(2(2( 2(2( (Ә(2ט((1(R Ǚ((IdI I( (2(2( I( ӕ I(2I(2I(11121 21I(1Ü(1Ü(1Ü(1(1(1((((1(1(1(( 2( 2(1˝( 1˝( 1˝( ((((2(1(1(1(1Ü(1(1(2(1˝(  (2(1(ӕ I(1Ü(1Ü(ӕ I(1(1(ӕ I(1(1(ӕ I(2(2(ӕ I(1˝( 1˝( ӕ I( ( (ӕ I(2(2(ӕ I(1(1((Ǟ((( (9(19 (19 19 ((2((subcmd( did_you_mean( name(usage(color(sӘ(c(resI arg0Ü(0arg1(1arg2(2arg3(3arg4˝( 4arg5(5arg6(6arg7(7(( (( The subcommand '(#' wasn't recognized Did you mean '###(L'? If you believe you received this message in error, try re-running with 'LLL( ( (' ( For more information try ?(((Ϙ((IZI(2(2((subcmdӟ(nameޟ(color(!((doc((( hidden((( 2N22  S N   2͟(2П(2( 32(ʠ(@ʠ(ʠ(Π(Π(Π( ՠ(ٽ2ՠ( ڠ(@ڠ(ڠ(((R(((R((R ͡((b(1(b(ǥ(Ρ(Id I I( ( ( ((?(1 22(?( (  ( I(I(I(I(I(ţ(ţ(ţ(ţ(ţ(ǣ(̍1ͣ(error:?ǣ( գ(ţ((((((((((( (((((1( (((((((((1(USAGE:?(((( ( ä(!ä("ä(#ä(#ä(Ť(1#ʤ(--help?" Ť(Ҥ(#ä(!"I(1I(1I(1I( 2 I(1!J!J JJJţ($ţ($1(%(%1(&(&1('('2ä((ä((1I()ţ(*ţ(*$ţ(+ţ(+ţ(11I(I(â1*+) I(J+J*I(,(-(-%(.(.(11I(I(â1-., I(J.J-I(/(0(0&(1(1(11I(I(â101/ I(J1J0I(2(3(3'(4(4( 32  2 I(I( 32342 I(J4J3I(5ä(6ä(6(ä(7ä(7ä(11I(I(â1675I(J7J6I( ӕ ),/25J5J2J/J,J)J(J'J&J%J$I(I(I( JI(I(   I(JJ I=Iķ   I=J J"JJJJJJJJJ  J (!8(!8( 99:9 ;9 <9 =9 = 1(>(@((>9 = >9>9 <=9 ;<19=9<991;:9(  9;( 9Some:( 9(:١( ١(١(١(9(9(8( ǥ(ǥ(@ǥ(ǥ(ǥ(ȥ(ǥ(@ǥ(ǥ(ǥ(@(Ơ((IZI(A(2ӟ(2ޟ( (ʠ(2Π((1(R (١(IdI I( (1(1( I(.I(.I(.I(11121I(1ţ(1ţ(1ţ(1(1(1((((1(1(1(2(1ä(1ä(1ä(1ţ(1(1(2(1ä(ӕ I(1ţ(1ţ(ӕ I(1(1(ӕ I(1(1(ӕ I(2(3(ӕ I(1ä(1ä(١((!١(( ١(9١(19 ١(19 19 ١((1(ǥ( subcmdӟ(nameޟ(color(sʠ(c(resI arg0ţ($arg1(%arg2(&arg3('arg4ä(((( (( The subcommand '(' wasn't recognized ( (1 help ... For more information try 111(((Ơ((IZI(1(1((required(usage(color($(Х(docХ(ݓӥ(ڥ( hiddenԥ(Υ((  1 1  R U     (1(3 Φ(1(((Rҧ(ҧ((R((R ((b(1(b((IdII( ( ( ( (,(.  1( ,( (  ( I( I(I(I(I(((((((̍1©(error:?((( ʩ((ݩ(ݩ(((((((((1(--help?(((I(1I(  I(1I(1JJJJ((1ݩ(ݩ(3((1((1I(((( ( (11I(I(â1 I(J JI(!ݩ("ݩ("ݩ(#ݩ(#ݩ( 3     I(I( 3 "#!I(J#J"I($(%(%(&(&(11I(I(ئ1%&$ I(J&J%I('((((()()(11I(I(â1()' I(J)J(I( ӕ !$'J'J$J!JJJJJI(I(I(  JI(I(    I(J J I=Iķ   I=J JJJJJJ JJ("*("* (+(+((( (+(+(*((( ((((IZI(-( (1( ((1(R ҧ((IdI I( (.(.( I(0I(0I(0I(1311I(1(1(1(3ݩ(1(1(1(1(1(3ݩ(1(1(ӕ I(1(1(ӕ I(3ݩ(3ݩ(ӕ I(1(1(ӕ I(1(1((("((.( required(usage(color(c(resIarg0(arg1ݩ(arg2(arg3((( ((4 The following required arguments were not provided:444( ( For more information try ?((((IZI(.(.((nameī(usageͫ(color׫( ((doc((( hidden((( N131  N U    3(1(3( 33(1( ¬(0¬(¬(0¬(¬(լ(R((լ(R(լ(R (Ƭ(bƬ(1Ƭ(b((IdII( ( ( ( (/(. 31( /( (  ( I( I(I(I(I(((((((̍1(error:?(ϰ(0ϰ( ((((((((0(((( 3( (((¯(¯(ٯ(ٯ(ٯ(ٯ(ٯ(ۯ(1(--help?ۯ(J(ٯ(I(1I( 3I(1I(1JJJJ((1((3¯(¯(1ٯ( ٯ( 1I(!("("(#(#(11I(I(â1"#! I(J#J"I($(%(%(&(&( 33  3 I(I( 33%&$ I(J&J%I('¯((¯((¯()¯()¯(11I(I(ئ1()' I(J)J(I(*ٯ(+ٯ(+ ٯ(,ٯ(,ٯ(11I(I(â1+,* I(J,J+I( ӕ !$'*J*J'J$J!J JJJI(I(I(  JI(I(    I(J J I=Iķ  I=J JJJJJJJJJ JJ(-(- (.(.((( (.ɰ(.ɰ(-ɰ(ϰ(ϰ(а(ϰ(0ϰ(ϰ(((IZI(1(3ī(1ͫ( ׫(¬(1լ(R ((IdI I( (.(.( I(0I(0I(0I(1311I(1(1(1(3(3(1(3(1¯(1ٯ(1ٯ(1ٯ(1(3(1¯(1ٯ(ӕ I(1(1(ӕ I(3(3(ӕ I(1¯(1¯(ӕ I(1ٯ(1ٯ(((((.(ϰ( nameī(usageͫ(color׫(c¬(resIarg0(arg1(arg2¯(arg3ٯ( (( (( '(3' requires a subcommand, but one was not provided 333( For more information try ?((((IZI(.(.((usage(color((ذ(docذ(Ŕ۰(( hiddenܰ(ְ(( 11  U   1(1( Ա((R(((R((R (ر(bر(1ر(b((IdII(( ( ( (&(  1( &( (  ( I( I( I(I(I(((((((̍1(error:?((((((ɴ(ɴ(ɴ(ɴ(ɴ(˴(1д(--help?˴(ش(ɴ(I(1I(1I(1JJJ((1((1ɴ(ɴ(1I((((((11I(I(â1I(JJI(((( ( (11I(I(1 I(J JI(!ɴ("ɴ("ɴ(#ɴ(#ɴ(11I(I(â1"#!I( J#J"I( ӕ !J!JJJJJI(I( I(  J I(I(    I(J J I=Iķ  I=JJJJJJJ JJ($($(%(%IJ(IJ(IJ(IJ(%(%($((( ((б(IZI('(1( (Ա(1(R (IJ(IdI I( ( ( ( I(I(I(I(111I(1(1(1(1(1ɴ(1ɴ(1ɴ(1(1(1ɴ(ӕ I(1(1(ӕ I(1(1(ӕ I(1ɴ(1ɴ(IJ((IJ(( (usage(color(cԱ(resIarg0(arg1(arg2ɴ((( ((6 Invalid UTF-8 was detected in one or more arguments 666( For more information try ?(((б(IZI( ( ((val(arg(usage(color((ӵ(µ(docµ(ŵ(̵( hiddenƵ((ڵ( V1311  V U   ( 3(1(3( 33̶(3ֶ(1((((( ( 3(ӵ((((R( ( (R((R  ( (b(1(b(((Id I I( ɸ( ɸ(ɸ(ɸ(Eɸ(1 31ɸ(Eɸ(ɸ(  (I(I(I(I(I(((((((̍1(error:?(((( ( ((((( (1( ((( ˺(˺(˺(˺(պ(պ( պ( պ(ٺ( 1 ٺ( ( ˺(ͺ(1 ͺ( ((˺((!(!("(#($($((1$(--help?#  (J($("#I(1I(1I(ğ1I(1!I(1"J"J!JJJ(%(%1( &( &1˺('˺('ğ1((((1()()1I(*(+(+%(,(,(11I(I(â1+,*  I(J,J+I(-( .( .&( /( /( 11I(I(â1./-  I(J/J.I(0˺(1˺(1'˺(2˺(2˺(11I(I(1120 I(J2J1I(3(4(4((5(5(11I(I(ئ1453 I(J5J4I(6(7(7)(8(8(11I(I(â1786 I(J8J7I( ӕ *-036J6J3J0J-J*J)J(J'J&J%I(I(I( JI(I(    I(JJ I=Iķ    I=J J#JJ JJJJJJJJ  J (9(9(/:9;9 <9 =9 >9 > 2(?( @( A(B(B( (߇1BA(( @A(B(( @?( ( (@( C(D(D( ( DC( (D9 > ?C9C9?9 =>9 <=19>9=991<;99? 9<(/:Some;(/:(;( (((:(:(9( (((A(((992>2F9ӵ(((IZI(G(3( (1( (( 3((1(R ((IdI I( ɸ(1ɸ(1ɸ( I(.I(.I(.I(1I(1(1(1(1( 1( 1((ğ1˺(Ɵ1˺(1˺(պ( պ(1(1(1(1(1(1( ğ1˺(1(1(ӕ I(1(1(ӕ I(1( 1( ӕ I(ğ1˺(1˺(ӕ I(1(1(ӕ I(1(1(((((/(9(19 (29 29 (((( (( ( ((( ((1ɸ(9 val(arg(usage(color(v(c(resI arg0(%arg1( &arg2˺('arg3((arg4()ӵ(ɸ( ɸ(ɸ( The value '  ɸ(' was provided to 'ɸ(,', but it wasn't expecting any more values ,,,ɸ( For more information try ?ɸ(ɸ(ӵ(((IZI(1ɸ(1ɸ(ɸ(arg(min_vals( curr_vals( usage(color(<ż((doc((( hidden((̼( 111  U  ( 1ۼ(1('((R(((R;((R ((b(1(bż((Id I I( ( ( ((U(/ 1(U( (  ( I(I(I(I(I(((((((̍1(error:?(( ((((((((((( 1( (((1( ((((((((( ( ((  ( J( ((1 ( (((( !( "(#(#($( %( %(( %$  ( J(%( (1#$"  ( ($(#( !"((&(('( (( )( )( ()(()(((J" (*(*(as('*(*((('(ere((((&'(+(+(,(-(.(.((1.(--help?- (#(.(,-I(1I(ğ1I(ğ1I(ğ1!I( &I(1+I(1,J,J+J&J!JJJ(/(/1(0(0ğ1(1(1ğ1( 2( 2ğ1((3((3 (4(41(5(51I(6(7(7/(8(8(11I(I(â1786 I(J8J7I(9(:(:0(;(;(11I(I(1:;9 I(J;J:I(<(=(=1(>(>(11I(I(1=>< I(J>J=I(?( @( @2( A( A( 11I(I(1@A? I(JAJ@I(B((C((C3((D((D((  I(I(ϓ CDB I(JDJCI(E(F(F4(G(G(11I(I(1FGE I(JGJFI(H(I(I5(J(J(11I(I(â1IJH I(JJJII( ӕ 69<?BEHJHJEJBJ?J<J9J6J5J4J3J2J1J0J/I(I(I( JI(I(    I(JJ I=Iķ    I=J J-J(J'J"J JJJ"JJJ JJJJJJJ  J (K(K(!L9M9 N9 O9 P9 P 1(Q( R( S(T(T( (߇1TS!&(( RS(T(( RQ#&( ( (R9 P Q9Q9 OP9 NO19P9O991NM$"9 9N(!LSomeM(!L(M( (((L(L(K( ((S(%(991P1V"9ż((IZI(W۽( ((( 1( ((1(R ((IdI I( (/(/( I(2I(2I(2I(1ğ1ğ1ğ1 11I(1(1(1(ğ1(Ɵ1(1(( (ğ1(Ɵ1(1(( (ğ1( Ɵ1( 1((( ((((( ( (1(1(1(1(1(ğ1(ğ1(ğ1(  ((1(1(ӕ I(1(1(ӕ I(ğ1(1(ӕ I(ğ1(1(ӕ I(ğ1( 1( ӕ I( (( ((ӕ I(1(1(ӕ I(1(1(((((!(9(19 (19 19 (((( (( ( (/(9arg(min_vals( curr_vals( usage(color(c(resI arg0(/arg1(0arg2(1arg3( 2arg4((3arg5(4arg6(5ż(( (( The argument '(' requires at least ?( values, but only ( w( provided   ( For more information try ?((ż((IZI(/(/((arg(err(color(((doc((( hidden(((ɉ1  ( err( ((doc((( hidden(((   arg(num_vals( curr_vals( suffix(usage(color(H((doc((( hidden((( 21121  S U   ( 2(1(32(1(&((R( ( (R((R  ( (b(1(b((Id I I( ( (((R(/ 21(R((  (I(I(I(I(I(((((((̍1(error:?((( ((((((((((( 1( (((1( (((((((( (!(!(( 4! ( J(!((1  ( ( ((( "( #($($(%( &( &(( 4&%  ( J(&( (1$%#  ( (%($( "#('('((((()(*(+(+((1+(--help?*(J# #(+()*I(1I(ğ1I(ğ1I(ğ1"I( 2'I(1(I(1)J)J(J'J"JJJ(,(,1(-(-ğ1(.(.ğ1( /( /ğ1(0(04(1(11(2(21I(3(4(4,(5(5(11I(I(â1453I(J5J4I(6(7(7-(8(8(11I(I(1786I(J8J7I(9(:(:.(;(;(11I(I(1:;9I(J;J:I(<( =( =/( >( >( 11I(I(1=><I(J>J=I(?(@(@0(A(A( 32  2 I(I( 32@A?I(JAJ@I(B(C(C1(D(D(11I(I(ئ1CDBI(JDJCI(E(F(F2(G(G(11I(I(â1FGEI(JGJFI( ӕ 369<?BEJEJBJ?J<J9J6J3J2J1J0J/J.J-J,I(I(I( JI(I(   I(JJ I=Iķ   I=J J*J#J JJJ#JJJJJJJJJJ  J (H(H(!I9J9 K9 L9 M9 M 1(N( O( P(Q(Q( (߇1QP%(( OP(Q(( ON!%( ( (O9 M N9N9 LM9 KL19M9L991KJ" 9 9K(!ISomeJ(!I(J( (((I(I(H( ((P(#($(991M1S 9((IZI(T( ((( 2(1( ((1(R ((IdI I( (/(/( I(2I(2I(2I(1ğ1ğ1ğ1411I(1(1(1(ğ1(Ɵ1(1(( (ğ1(Ɵ1(1((4(ğ1( Ɵ1( 1((( 4(1(1(1(1(1(ğ1(ğ1(ğ1( 4(1(1(ӕ I(1(1(ӕ I(ğ1(1(ӕ I(ğ1(1(ӕ I(ğ1( 1( ӕ I(4(4(ӕ I(1(1(ӕ I(1(1(((((!(9(19 (19 19 (((( (( ( (/(9arg(num_vals( curr_vals( suffix(usage(color(c(resI arg0(,arg1(-arg2(.arg3( /arg4(0arg5(1arg6(2(( (( The argument '( ' requires   ( values, but ?  ( w( provided   ( For more information try ?((((IZI(/(/((arg(usage(color(((doc((( hidden((( 111  U  ( 1(1(((R(((R((R ((b(1(b((IdII( ( ( ( (8(. 1( 8( (  ( I( I(I(I(I(((((((̍1(error:?(( ((((((((((( 1( (((1( (((((((((((1(--help?(J((I(1I(ğ1I(1I(1JJJJ((1((ğ1( ( 1(!(!1I("(#(#($($(11I(I(â1#$" I(J$J#I(%(&(&('('(11I(I(1&'% I(J'J&I((()() (*(*(11I(I(1)*( I(J*J)I(+(,(,!(-(-(11I(I(â1,-+ I(J-J,I( ӕ "%(+J+J(J%J"J!J JJI(I(I(  JI(I(    I(J J I=Iķ  I=J JJJJJJJJJ JJ(".(". (!/909 19 29 39 3 1(4( 5( 6(7(7( (߇176(( 56(7(( 54( ((59 3 4949 239 1219392991109 91(!/Some0(!/(0((( (/(/(.(((6((9913199((IZI(:( (1( ((1(R ((IdI I( (.(.( I(0I(0I(0I(1I(1(1(1(ğ1(Ɵ1(1(( (1(1(1(1(1(ğ1(1(1(ӕ I(1(1(ӕ I(ğ1(1(ӕ I(1(1(ӕ I(1(1((("((!(9(19 (19 19 (((( (( ( (.(9 arg(usage(color(c(resIarg0(arg1(arg2( arg3(!(( (( The argument '(B' was provided more than once, but cannot be used multiple times BBB( For more information try ?((((IZI(.(.((arg( did_you_mean( usage(color(1((doc((( hidden((( A151  A U   ( 5(1(5( 1( (T((((( ( 5( (T((((R( ( (R((R  ( (b(1(b(((Id I I( ( (((S(1 51(S((  (I(I(I(I(I(((((((̍1(error:?( (((((((((((( (((((1( (((((( ( !( !(( D! ( (!(  I$I(%(&('(((R(  51((R('((&' ('I()I(*I(+I(,I(-( .( .I(- .J.( /( /- I(0( 1( 1/( 2( 2(   I(I(ϓ 120 I(("(#(#( ("#(( " ( ("(#( J2J1I(, ӕ 0J0J/I(+,I(*+I()* J*I(I( &)% I(J)J&I=Iķ %$I=J%J-J,J+J(J$J$(((3(3(4(5(6(6((16(--help?5((6(45I(1I(1I(I(13I(14J4J3JJJ(7(71(8(81(9(9(:(:1(;(;1I(<(=(=7(>(>(11I(I(â1=><I(JJ>J=I(?(@(@8(A(A(11I(I(â1@A?I(JAJ@I(B(C(C9(D(D(  I(I( CDBI(JDJCI(E(F(F:(G(G(11I(I(ئ1FGEI(JGJFI(H(I(I;(J(J(11I(I(â1IJHI(JJJII( ӕ <?BEHJHJEJBJ?J<J;J:J9J8J7I(I(I( JI(I(   I(JJ I=Iķ   I=J J5JJ J JJJJJJJJJ  J (K(K( L9M9 N9 O9 P9 P 1(Q(T((Q9 P Q9Q9 OP9 NO19P9O991NM9(  9N( LSomeM( L(M( (((L(L(K( ((T(((((T(((T(((IZIZI(I(U(5(( 1( ((5((1(R ((IdI I( (1(1( I(.I(.I(.I(1111I(1(1(1(1(1(1(((((((( ((((I I( ( ( ( I( I( I( I( I( (  ( ӕ I( (  ( 1(1(1(1(1(1((1(1(ӕ I(1(1(ӕ I(1(1(ӕ I(( (ӕ I(1(1(ӕ I(1(1((((( (9(19 (19 19 (( (1((arg( did_you_mean( usage(color(a(c(resI resI$arg0( /arg0(7arg1(8arg2(9arg3(:arg4(;(( (( (((((IZIZI(I( ( ((( (( Found argument '(7' which wasn't expected, or isn't valid in this context?777( ( For more information try ?(((((IZIZI(I(1(1((e(color(((doc((( hidden((( 0  ( arg( ((doc((( hidden((( 55 A   5(5( ((((((( (5(( ((((((\(((\((\ (\ ((l(1(l(IdII( (# (# (# (#'(#  5(# '(# (#  ( I( I(I(I(I(((((((̍1(error:?(((( ( ((( ( ((( I(1I(JJ((1( ( I((((((11I(I(â1I(JJI(( ( ( ( (   I(I( I(J JJI( ӕ JJJJI(I(I(  JI(I(    I(J J I=Iķ   I=J J  JJJJJJJ JJ( ( ( !9"9 #9 $9 %9 % 1(&((((&9 % &9&9 $%9 #$19%9$991#" 9( 9#( !Some"( !("((((!(!( ((((((((((((((((IZI()(5((5((1(\ ((IdI I( (# (# (# I(ʜ I(ʜ I(̜ I(1I(1(1(1(( ( (1(( ӕ I(1(1(ӕ I((  ( (((( (9(19 (19 19 (( (#(arg(a(c(resIarg0(arg1( ((# (#(# The argument '(#' wasn't found(#(#(((IZI( (# (#(# description( kind((+ Create an error with a custom description.(.(H This can be used in combination with `Error::exit` to exit your program(K with a custom error message.( (  (  (\  self(  (<( 0 (  ( 3self(f( (l( 0  (  ( e( (e(    (  e( (n(    Ʈ ANSIString( ]( Green(( Green(( Red(( Red(( Yellow(( Yellow(( atty(( env( ( env(( fmt(( ®       (stderr( (%(cfg(ܙ(( feature((color(( ( ( ((Q(doc((( hidden(( 1((   ((   ( (-(doc((( hidden((   ((    ( option( ((11  self(msg((( ֜/ ֜/֜/ T  ( /(3֜/( ֜/( (  ((((None֜/(((( (((Good֜/((((((Good֜/(((((6( 1(֜/(((֜/((֜/((֜/(self(msg((self(msg((( ֜/6֜/6 T  ( /(ʇ6( ۇ6( (  ((((None֜/(((( (((Warning֜/((((((Warning֜/(((((6( 1(֜/(((֜/((֜/((֜/(self(msg((self(msg((( ֜/6֜/6 T  ( /(ʇ6( ۇ6( (  ())(None֜/(((( ))(Error֜/((())(Error֜/((()(6( 1(֜/(((֜/)(֜/)(֜/)self(msg((self̀)msgҀ))À) ֜/6֜/6 T  ˀ) /Ȁ)ʇ6) ۇ6) ؁)؁)ˁ)None֜/ˁ)ہ)))6݀) 1ˀ)֜/Ҁ)ˁ)֜/؁)selfˀ)msgҀ)) )  ))   ) ))cfg)ϛ)) all))) feature))color)) not))) target_os) )windows) ): 6T  /)ۇ6) selfˇ)  )Ç) ֜/ 6 ʇ) ) ) Ή)Ή)None֜/) ))) ) ֜/ ))))Error֜/) ))) ) :))) ))) )6)))) y)))))Ո)Ո)Warning֜/߈) ߈) )  ) ) ) )6  )) ߈)) ~   )) ) ))) ) Good֜/) ) ) )) ) )6 ))))6  ))) ) ))؉)؉) ؉)))))))4ň)2).)36ԇ)  6ʇ))/))) )))) )/)/Ո))6߈))) )/)/))6))) )/)/Ή))) )/)selfʇ)e)eՈ)e) eΉ)) ) ))cfg))) all))) feature))color)) not))) target_os) )windows) ): 636T  /)ۇ6) self)f) )d) ֜/6  ) ))կ))))) ֜/))) )կկ կ կ կ ) )) ))) Ď)6Ď))d ˎ))) կ   6  )) 6կ))))) 36  6 կկ 36կ կ ӕ կ  կ կ  կկ կҎ)Ư.˯  3˯)Ҏ)Ҏ)Ҏ)Ҏ) Ҏ) Ҏ) Ҏ)ӎ))dկ ) 6) 2)Ư.ó6)Ư. կƯ. )Ư.)Ư.)Ư. կƯ. կƯ. կƯ. կƯ.6կƯ.6)Ư.6)Ư.6) Ư.6)6)Ư.ӕ կƯ.6)Ư.6))self)f)arg0))d) ))))dկ)))ϮValues))VecMap))/ˮ خ OsStr)ݧ)OsStrExtƨ)-)7ԮҪ) Ȫ))doc)՜)Ū) hidden))Selfself)s))()  )self)b))3) )selfԫ)iګ)ǫ)1ʫ) 6ӫ)self)b))-) )self)bǬ))') )self)b)۬)"ެ) ))  self)s))) 6)self)byte))) )self)byte))) 6)self)byte))) )self)i))) 6)self)b))) ۾6))'a)6'a)) 'a self) )) 'a 66) ))LSelfself)index))2) ))self)index)))inline)ˠ) ) ))))) ))) ) D))) )));)))) ) ) )) D  ) )))) )) ) ) ) )) > ) ) )) )  ) ) Some ))) ) ))) ))))t))) ))) ))) )))) ))) )t) )))))))))) ))t6))t))t))t))t))))t))t))t))t)self)index)b) ) App))strsim))Format)) M ) )) v)possible_values))K Produces a string from a given list of possible values which is similar to)N3 the passed in value `v` with a certain confidence.)6R Thus in a list of possible values like ["foo", "bar"], the value "fop" will yield)U3 `Some("foo")`, whereas "blark" would yield `None`.)6)cfg))) feature)) suggestions) ) 'aT   'a'aTI) )6) 6'a)) ( 'a6) ) ))))))))))))))) ) ) )  )) ))) ) ) ) ))))) ) Some 6) ) ) ) ) ) )))) ))) ) ))) ) 6 )) ))$)   )$ ))))Y)) ) ))̙?))Y )Y)Y)Y)Y)Y)Y)E)) ) )) ,) ))))E)E)E)E)E)E),)))) ) )) ,6))))Y ))E))) , 6)))) ) ), ))))E)) )!) ") ") #) $)%)%) )6%$) ) #$)%)!")!#)#)") Some6!) )!)+ ) )$)))))))))& )&) ') 'Some6) () (')Some())()')^) ))^))))))))))') )) )6) ) ))6)6))))6)6)6)) )) ) 6)))Y)))) ))E))) 6) )),)))6))6))6) )) 6)6)) ) ) 6))) )^)  v)possible_values) candidate) iter)__next)val) pv) confidence)  candidate) ') ) )) 'z6 Ψ )  ))  ) 6  Ψ ) Ѩ )f)) ) 'z6 666 )  ))  ) 6   )  )o)) )'z6 666 ))))) )   )) ) )))) ))))))) 6 6) ) ) )) ) x) subcommand) 6))'z6 666 ˠ2))v)L)4)L)4)4  )L)L )L)4))L) )))  )v) ) 6 )) ))1 ) ) ) )) ߩ ))  )) )))Ϊ   )) ) )1) ) 6  ))) )) ) 6 6 )8 ) )) )) ))) )))) 66)))) ) )))  ) ) ) Some) )))):))) )   )) ))))) ))))))6)):) * 6)))))  ) )))))  ):&))Some)))))I I(!);");#);$);E);.6 666);$E);#$);"# )#I(%I(&I('I((I())*)D)16 666)*D)+),) -) -),Good-),)-)+,)#.)#/)0) 1) 1))610) )1)#/Good0)#/)0)#./I()1*I()1+I()1.J.J+J*)2)2)1)3)3)1)#4)#4)1I(5)6)62)7)7)11I(I(â1675I(J7J6I(8)9)93):):)11I(I(â19:8I(J:J9I(;)#<)#<4)#=)#=)#11I(I(â1<=;I( J=J<I(( ӕ 58;J;J8J5J4J3J2I('(I(&'I(%& J&I(I( "%!I(J%J"I=Iķ ! I=$J!J/J,J)J(J'J$J J )">)?)?)@)A)A)B) C) C)BSomeC)B)C)@A)@ B)B)A)">?)">ˠ2@)@)?)(Some6>)()>)))))  )))))))IZI(F6) 6   6 7) ) 7)6)v )L )4 )L )46) 6)1 ) ) ) )6) )  ))7))) )):ޞ ) ) ) 6)6)) ))I I( );.);.); I(I(I(I(111I(1)1)1)) 1)#1)#) ) 1)1)1)#ӕ I(1)1)ӕ I(1)1)ӕ I(1)#1)#)(6)")())(ˠ2))())( ))() 1).); subcommand) arg) args_rest) 7opts) candidate)  candidate) score)score)suffix)resI arg0)2arg1)3arg2)#4))Good)--))) )))))))IZI(1)1))); ); Did you mean to put '););' after the subcommand ');'?);); )))))))IZI(.);.););)'z6 666 6))))) 6  Τ7) 6) score)))'z6 6666ˠ2) ˠ2))) ˠ2) 6  7ˠ2)6) suggestion) ))'z6 666ˠ2) ) ) ) )))) ))))ˠ2)6  ˠ2)) )))arg) args_rest) longs) subcommands) 4)M Returns a suffix that can be empty, or is the standard 'did you mean' phrase)P 'z6  'z  'z  'z'zTI)6) )6) 6'z)) ( 'z6) ))))))) 6 )))) )))$)%)&) ') () () ) ( (' ) *)  ) Some) I I( ) )))0) 6 )0))  )I(I(I(I(I())/)16 )/))) )  )Good)))I(1I(1JJ))1))1I()))))11I(I(â1I(JJI())) ) )11I(I(â1 I( J JI( ӕ JJJJI(I(I( JI(I(   I(JJ I=Iķ   I=J JJJJJJ  J )!)! )") #) # )"Some#)")#)!) ")")!) ) ))) )()))*)*)+)+)) *))7+)+)*)) ) 67')& ))))'),)) * 77&,% )),)&)-)) ,6ˠ27%-$ )!)-)%).)) ,ˠ27$. )().)$)) ))IZI(1ˠ2)) )  ) ) )) ))) )I I( ) ) ) I(ʜ I(ʜ I(̜ I(11I(1)1)1)) 1)1)ӕ I(1)1)ӕ I(1)1)) )) )ˠ2))6))7)) ) ) ) )7)) ))7))7))7))7)1) ) arg) args_rest) longs) subcommands)  candidate)  suffix) resI arg0)arg1)) )Good)--)))) ))IZI(1)1))) ) Did you mean ))?))) ))IZI( ) )) ) ))arg)values))M Returns a suffix that can be empty, or is the standard 'did you mean' phrase)P 'z6   'z'zTI)Ȯ7) )6) 6'z)) ( 'z6) ))))))) 7)))) )) ) ) ) )#) ) Some)I I( ) ) ) )) 6 ) ) )  ) I(I(I(I(I())) ) )Good)))I(1J))1I()))))11I(I(â1I( JJI( ӕ JJI(I(I( JI(I(   I(JJ I=Iķ   I=J JJJJJ J J )))) ) )Some)))) ))))) )))) ))) )))))xIZI( ˠ2)) )) )))) ))) )I I( ) ) ) I( I( I( I(1I(1)1)) 1)ӕ I(1)1)))) ))) )) ) ) )arg)values) candidate) suffix)resI arg0))) ) Did you mean ')'?)))))xIZI( ) )) ArgSettings* Ё*Arg** VecMap** INTERNAL_ERROR_MSG* *yф*/'a'ausage* ** 'a 'a7usage* ** 'a77self* ** 'a7'a'aself*argȐ** * 'a 7 7*self*f*ښ*ݚ* 'aF77F*7*7*77* **כ***e*P*-***  * *  *  * *  * **   *ښ*** * *-* D***Ȝ*  Ȝ*  Ȝ* Ȝ*  7 М* *P* )7  7 *ќ* ќ**e* )77***q*q *q******ښ** * 7***e7*P7*-*** 7* * 7Ȝ* 7Ȝ*  *qself* f*ښ*self*arg*** 'a77*self*arg*** 'a77*self*arg*ԣ*ף* 'a77ݣ*self*arg*ܨ*ߨ* 'a7 Х *self*arg*** 'a77**b***inline*Ӫ* ***]*************>**9******b**9˴*bѴ*ȴ**inline** *1*$****'*> *>*>*>*> *>*>*>* * *> -***1*1*1*1*1*1*1*1***1[**>*$*$*$*$ *$*$*$*$ ***$< **1*************. *$ ȴ*^ ۴*Ѵ**>*1*>*$*>**>**>**>**>**>*bѴ*ȴ*^*b***inline** ӵ*>ӵ*1ӵ*$ӵ*ӵ*ӵ*ӵ*'ӵ*K ӵ*Kӵ*Kӵ*Kӵ*K ӵ*Kӵ*Kӵ*K* * ӵ*K  **ӵ*> ӵ*>ӵ*>ӵ*>ӵ*> ӵ*>ӵ*>ӵ*>* * ӵ*> =*ӵ*Kӵ*1 ӵ*1ӵ*1ӵ*1 ӵ*1 ӵ*1ӵ*1ӵ*1 * * ӵ*1 [ *ӵ*>ӵ*$ӵ*$ӵ*$ӵ*$ӵ*$ӵ*$ӵ*$ӵ*$**ӵ*$< *ӵ*1 ӵ*ӵ*ӵ*ӵ*ӵ*ӵ*ӵ*ӵ*ӵ*ӵ***ӵ*.ӵ*$*n ȵ**ӵ*Kӵ*>ӵ*Kӵ*1ӵ*Kӵ*$ӵ*Kӵ*ӵ*Kӵ*ӵ*K*ӵ*K*ӵ*K*ӵ*K*ӵ*K*b**n* b***inline** ϶*϶*϶*  Զ*'ض*۶**/Ķ**϶* ϶*b**/e"Fatal internal error. Please consider filing a bug report at https://github.com/clap-rs/clap/issues"ecFatal internal error. Please consider filing a bug report at https://github.com/clap-rs/clap/issuesccc װ %"unexpected invalid UTF-8 code point"%ѰI%%#unexpected invalid UTF-8 code point###ѰIѰI ѰIƮ   doc    hidden   allow    missing_debug_implementations  ''b'bخ ܮ       'b  8ӯ !ׯ 8  8  8 ð 8  8 ) #8ȱ ̱ 8     8  Dz ˲     8  automatically_derived   allow    unused_qualifications   allow    missing_debug_implementations  ''b ו8'bself    inline    'b ו8ו8 'خ خ        ӯ !ӯ !           ) )  ȱ  ȱ          Dz Dz      خ خ خ خ خ خ خ  خ                                   8  ̯ ӯ !ӯ ! ӯ !!ӯ !!ӯ ! !ӯ !ӯ !8 ӯ !  " # $ $ #$  8#"   # % & ' ' &'  8&%   & ( ) * * )*  8)(  ܰ ) + , - - ,-  8,+   , ). )/ )0 )0 )/0 ) )  /.  ) /ȱ 1ȱ 2ȱ 3ȱ 3 ȱ 23ȱ ȱ 821ȱ  2 4 5 6 6 56  854  . 5 7 8 9 9 89  887  8 : ; < < ;<    ;:  4 ;Dz =Dz >Dz ?Dz ?Dz >?Dz Dz   >=Dz ߲ > @ A B B AB  8A@  A C D E E DE  8DC E D           "  %  (  +  .  1  4  7  : = @  C E C B @ ? = < : 9 7 6 4 3 1 0 . - + * ( ' % $ " !                             F    خ     ӯ !      ) ȱ     Dz ݴ8   خ  خ  خ                     ӯ !  ӯ !  ӯ !                          ) 8 ) 8 )  ȱ   ȱ   ȱ                    Dz  ݴ8Dz  ݴ8Dz    ݴ8  ݴ8       self  __self_0_0خ  __self_0_1  __self_0_2  __self_0_3  __self_0_4ӯ ! __self_0_5  __self_0_6  __self_0_7  __self_0_8  __self_0_9 ) __self_0_10ȱ  __self_0_11  __self_0_12  __self_0_13  __self_0_14Dz  __self_0_15  __self_0_16    automatically_derived   allow    unused_qualifications   allow    missing_debug_implementations  ''b8'b  inline    'b8خ خ خ  خ                  8  ӯ !ӯ !ӯ !8ӯ !   8     8     8      8   )  ) )   )ȱ  ȱ ȱ 8 ȱ     8        8         Dz Dz Dz  Dz    8    8 "                                                    خ         ӯ !          )  ȱ        Dz       ܽ docܽ ߽   hidden ڽ 'a'a   'a  8  8 8   'a88 'a88 Opt         'a88 'a88 Pos        8 8̾ ̾ 8̾ 8ݾ ݾ 8ݾ 8 8 8ҽ ҽ automatically_derivedҽ ҽ ҽ allowҽ ҽ ҽ  unused_qualificationsҽ ҽ 'a 8'aselfҽ  ҽ ҽ inlineҽ ҽ ҽ  'a 88ҽ ҽ ׽ ҽ ҽ ҽ  ҽ ҽ selfҽ ҽ ̽ ̽ automatically_derived̽ ̽ ̽ allow̽ ̽ ̽  unused_qualifications̽ ̽ 'a8'a 'a8'a  automatically_derived   allow    unused_qualifications  'a 88'aself other   inline    'a 8 8            ɽ ɽ        8  ɽ ɽ              ɽ  ɽ            ɽ                ɽ ɽ                   Opt   Opt          ɽ ɽ     Pos   Pos          ɽ ɽ  ɽ   ɽ ɽ ɽ  ʽ                                                  self other  __self_vi  __arg_1_vi __self_0  __arg_1_0 __self_0  __arg_1_0  self other   inline    'a88        8 ɽ ɽ        8  ɽ ɽ              ɽ  ɽ            ɽ                ɽ ɽ                   Opt   Opt           ɽ ɽ     Pos   Pos      8   ɽ ɽ  ɽ   ɽ ɽ ɽ  ʽ                              8                    self other  __self_vi  __arg_1_vi __self_0  __arg_1_0 __self_0  __arg_1_0    automatically_derived   allow    unused_qualifications  'a39'aself f    'a 9  ֿ ˿  allow    missing_debug_implementations  ' doc    hidden  'a'b'a'b'a'b 9  'b  ߬   ߬  # #'a'b ! #'a'b + 'a'b ! #'a'b  #'a ! #'a'b  # 'a + #9 'b9 & #99      9 ! ‘9 $ ‘9    automatically_derived   allow    unused_qualifications   allow    missing_debug_implementations  ''a'b9'a'b'a'b   inline    'a'b9           ߬     ݖ9 ǿ  # # #   # ! ! ! ߩ  ! + + +     +ǿ  ! ! !     !ǿ        ǿ   !  ! !   !ǿ          ǿ  +  + +    +ǿ   &  & &    &ǿ          ǿ     9 ǿ     8  ! ! !8 ! $ $ $8 $     $   ߬  ߬    ߩ                         ǿ ǿ ǿ ǿ ǿ ǿ  ǿ  ǿ  ǿ  ǿ  ǿ ǿ ǿ ǿ ǿ ǿ ǿ ǿ ȿ      ߬  ߬   # ߩ !  +  !    !    +  &        !  $     automatically_derived   allow    unused_qualifications   allow    missing_debug_implementations  ''a'b 9'a'b'a'b self    inline    'a'b 99 )    ߬  ߬ # # ! !ߩ + + ! !    ! !     + +  & &        ! ! $ $                        ߬          9    # # # # # # #    #  ! !! !" !" !!" ! !  ߩ !  ! ! +# +$ +% +% +$% + +   $#   +  $ !& !' !( !( !'( ! !   '&   !   ' ) * + + *+     *)   #  * !, !- !. !. !-. ! !  -, ! &  - / 0 1 1 01     0/  ) 0 +2 +3 +4 +4 +34 + +   32 + , 3 &5 &6 &7 &7 &67 & &   65 & / 6 8 9 : : 9:     98  2 9 ; < = = <=  9<;  5 < > ? @ @ ?@  8?>  ? !A !B !C !C !BC ! !8BA ! B $D $E $F $F $EF $ $8ED $ E G H I I HI    HG I H   ߬  ߬    ߩ   #  &  ) ,  /  2  5  8  ;  >  A  D G I G F D C A @ > = ; : 8 7 5 4 2 1 / . , + ) ( & % # "                              J  ز8    # ! +ю !  !    +ԫ &Ґ Ґ   ! $    ز8  ز8  ߬      ߬       #  #  # ߩ !  !  !  +  +  +  ! ю ! ю !        !  !  !        + 9 + 9 +  & ԫ & ԫ &   Ґ  Ґ    Ґ  Ґ         !  !  !  $  $  $      self  __self_0_0  __self_0_1  __self_0_2  __self_0_3 # __self_0_4 ! __self_0_5 + __self_0_6 ! __self_0_7  __self_0_8 ! __self_0_9  __self_0_10 + __self_0_11 & __self_0_12  __self_0_13  __self_0_14  __self_0_15 ! __self_0_16 $ __self_0_17    xD 'a'b 'a'b'a'bT'a'b   ^   x^  xD 'a'b 'a'b'a'bT'a'b   ^   x^  xD 'a'b 'a'b'a'bT'a'b   ^   x^Y7YYYYautomatically_derivedYYYallowYYY unused_qualificationsYY949selfYstateYYY __H 9 9__HY9Y49YYYYYYYYYYY 49YYYYYYYYY 9Y 9Y4YY4YY4YY9YselfYstateY __self_0_0YYYYautomatically_derivedYYYallowYYY unused_qualificationsYY9 9selfYotherYYYinlineYYY 9 9°Y YYYYYYYYYYY Y Y YY  YYYY Y Y Y Y Y YYYY YYYYYYYYY 9Y9Y9Y4Y4YY9YY4YY4YY4YY4YY9YselfYotherY __self_1_0Y __self_0_0YcmpY YY Y automatically_derivedY Y Y allowY Y Y  unused_qualificationsY Y 999selfY otherY Y Y inlineY Y Y  999Y YYYYYYYYYYY Y Y YY YYYY Y Y Y Y Y YY Some9Y Y  Y  Y Some9Y 9Y Y YY YYYYYY Y Y Y9Y 9Y 9Y 4Y4YY 9YY 4YY 4YY 4YY 4YYYY 9Y 9YselfY otherY  __self_1_0Y __self_0_0YcmpY Y selfY otherY Y Y inlineY Y Y  99YYYYYYYYYY Y Y Y Y Y Y YY9 YY YY  Y  YY ,9 YYY YY  Y Y  9Y  Y Y   99 Y Y Y Y YYYYYY Y Y Y 9Y 9Y 4Y4YY :YY 9YY 9YY 4YY 4YY 4YY 4YY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY Y Y inlineY Y Y  99YYYYYYYYYY Y Y Y Y Y Y YY9 YY YY  Y  YY: YYY YY  Y Y :Y  Y Y   99 Y Y Y Y YYYYYY Y Y Y 9Y 9Y 4Y4YY :YY 9YY 9YY 4YY 4YY 4YY 4YY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY Y Y inlineY Y Y  99YYYYYYYYYY Y Y Y Y Y Y YY9 YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y 9Y 9Y 4Y4YY :YY 9YY 9YY 4YY 4YY 4YY 4YY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY Y Y inlineY Y Y  99YYYYYYYYYY Y Y Y Y Y Y YY9 YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y 9Y 9Y 4Y4YY :YY 9YY 9YY 4YY 4YY 4YY 4YY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y YYautomatically_derivedYYYallowYYY unused_qualificationsYY9 9selfY YYinlineYYY 99YYYYY9Y9YselfYYY99YYautomatically_derivedYYYallowYYY unused_qualificationsYY9 9selfY YYinlineYYYdocYYY hiddenYYY 9YYYYYYY9YselfYYY 99Y Y automatically_derivedY Y Y allowY Y Y  unused_qualificationsY Y 9 99selfY otherY Y Y inlineY Y Y  99Y YYYYYYYYY YYYYYY Y Y Y 9Y 9Y 4Y4YY YY YselfY otherY  __self_1_0Y __self_0_0YY selfY otherY Y Y inlineY Y Y  99Y YYYYYYYYY YYYYYY Y Y Y 9Y 9Y 4Y4YY YY YselfY otherY  __self_1_0Y __self_0_0YY YYautomatically_derivedYYYallowYYY unused_qualificationsYY99e939selffffff 9 fj jjallowjjj non_snake_casejjSelfselfk k!kinlinekk  kkkkk!k kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!selfk k!kinlinekk  kkkkk!k:kselfkk!mlallowllm non_snake_caseml99selfo qsnallownƒnn deprecatedn  ninlinenǒ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownޔnn deprecatedn  ninlinenߔ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallown֕nn deprecatedn  ninlinenו  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownΖnn deprecatedn  ninlinenϖ  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownƗnn deprecatedn  ninlinenǗ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownޙnn deprecatedn  ninlinenߙ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallown֚nn deprecatedn  ninlinenך  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownΛnn deprecatedn  ninlinenϛ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownƜnn deprecatedn  ninlinenǜ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownޞnn deprecatedn  ninlinenߞ  9oo!o!o!o qq q q q q qqqq q q q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9selfo qsnallownnn deprecatedn  ninlinen  9oo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqso9ooo!q0qq0q q0q q0q selfoqso 9q 9q 9y939selfyfzyy 9 y{939self{f{{{ 9 {}939self}f}}} 9 }939selff 9 @allow݉ dead_code 9Self{bits: 1,}.9..9.Self{bits: 1 << 1,}. 9..9.Self{bits: 1 << 2,}.9..9.Self{bits: 1 << 3,}.9..9.Self{bits: 1 << 4,}.9..9.Self{bits: 1 << 5,}. 9 ..9.Self{bits: 1 << 6,}. 9@..9.Self{bits: 1 << 7,}.9..9.Self{bits: 1 << 8,}.9..9.Self{bits: 1 << 9,}.9..9.Self{bits: 1 << 10,}. 9..9.Self{bits: 1 << 11,}.9..9.Self{bits: 1 << 12,}.9 ..9.Self{bits: 1 << 13,}.9@..9.Self{bits: 1 << 14,}. 9..9.Self{bits: 1 << 15,}. 9..9.Self{bits: 1 << 16,}. 9..9.Self{bits: 1 << 17,}. 9..9.Self{bits: 1 << 18,}.9..9.Self{bits: 1 << 19,}. 9 ..9.Self{bits: 1 << 20,}.9@..9.Self{bits: 1 << 21,}.9..9.Self{bits: 1 << 22,}. 9..9.Self{bits: 1 << 23,}. 9..9.Self{bits: 1 << 24,}. 9..9.Self{bits: 1 << 25,}. 9..9.Self{bits: 1 << 26,}.9 ..9.Self{bits: 1 << 27,}.9@..9.Self{bits: 1 << 28,}.9..9.Self{bits: 1 << 29,}.9..9.Self{bits: 1 << 30,}.9..9.Self{bits: 1 << 31,}.9..9.Self{bits: 1 << 32,}.9..9.Self{bits: 1 << 33,}.9 ..9.Self{bits: 1 << 34,}.9@..9.Self{bits: 1 << 35,}.9..9.Self{bits: 1 << 36,}. 9..9.Self{bits: 1 << 37,}.9..9.Self{bits: 1 << 38,}.9..9.Self{bits: 1 << 39,}. 9..9.Self{bits: 1 << 40,}.9 ..9.Self{bits: 1 << 41,}.9@..9.M Returns an empty set of flags."inlineڌ  9ЃM9M& Returns the set containing all flags.ރ)inline  9b/b/܆9*b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9self؇ ŇH5 Returns the raw value of the flags currently stored.8inline ҇ 9ׇ ŇH9ׇselfׇŇHbits߉ ȉ8 Convert from underlying bit representation, unless that;? representation contains bits that do not correspond to a flag.Binline Չ  9    =  = Ŋ#       ݊2Some9݊2ȉ =#߉9 9 ݊29 ݊2bits߉ȉbitsÍ x> Convert from underlying bit representation, dropping any bitsA! that do not correspond to flags.܌$inline  9   = &x9ЍÍ&&&&9 bitsÍxbits g; Convert from underlying bit representation, preserving all>7 bits (even those not corresponding to a defined flag).: # Safetyˏ : The caller of the `bitflags!` macro can chose to allow or=- disallow extra bits for their bitflags type.09 The caller of `from_bits_unchecked()` has to ensure that<9 all bits correspond to a defined flag or that extra bitsԑ<" are valid for this bitflags type.%ђinlineђϒ  9 ̓g9 bitsgselfȔ h1 Returns `true` if no flags are currently stored.ړ4inlineƍ  9ǔ  =    =  =# hє9ǔ# #9##9 #9 selfǔhself l/ Returns `true` if all flags are currently set.2inlineڍ  9   =  Ė Ė ̖̖і і ) ٖٖl9)))9 )Ė )і selflselfotherE Returns `true` if there are flags common to both `self` and `other`.H͗inline͗˗   991&&  ˜ ˜ ˘˘&&͘1Ϙ=Ϙ ؘ2 ؘ 992129&29&22 2˜ selfotherselfotherxK Returns `true` if all of the flags in `other` are contained within `self`.NҙinlineҙЙ  99     ƚ ƚ & ϚϚޚx99&& & &ƚ selfotherxself˛otherћ^& Inserts the specified flags in-place.)inline   99ƛ  ޛ8ޛ8^ޛ 9ƛ 9ћ selfƛ otherћ^selfother_& Removes the specified flags in-place.)ܜinlineܜڜ  =9     99ϝ_= 9  self other_selfotherž^& Toggles the specified flags in-place.ݝ)inlineǎ  =9  Ϟ8Ϟ8^Ϟ= 9ž self otherž^selfothervalue&F Inserts or removes the specified flags depending on the passed value.Iinlineَ  =9ƠƠà    =   = ̠;̠;à  ;;àա֡ = 9àƠ=9=9self othervalueselfotherz9 Returns the intersection between the flags in `self` and< `other`. ƢA Specifically, the returned set contains only the flags which are֢D( present in *both* `self` *and* `other`.+ߣ3 This is equivalent to using the `&` operator (e.g.6) [`ops::BitAnd`]), as in `flags & other`.,E [`ops::BitAnd`]: https://doc.rust-lang.org/std/ops/trait.BitAnd.htmlHҥinlineҥХ must_use   999 ҦҦ Ҧ ަ ަ ҦŦ%z999Ŧ%ҦŦ%Ҧ Ŧ%ަ selfotherzselfothers> Returns the union of between the flags in `self` and `other`.Aԧ< Specifically, the returned set contains all flags which are?A present in *either* `self` *or* `other`, including any which areD< present in both (see [`Self::symmetric_difference`] if that? is undesirable).ͩ3 This is equivalent to using the `|` operator (e.g.6( [`ops::BitOr`]), as in `flags | other`.+C [`ops::BitOr`]: https://doc.rust-lang.org/std/ops/trait.BitOr.htmlFޫinlineޫܫ must_use  999 ׬׬ ׬   ׬ʬ%s999ʬ%׬ʬ%׬ ʬ% selfothersselfͲotherӲy@ Returns the difference between the flags in `self` and `other`.Cۭ= Specifically, the returned set contains all flags present in@0 `self`, except for the ones present in `other`.3A It is also conceptually equivalent to the "bit-clear" operation:D6 `flags & !other` (and this syntax is also supported).ٯ93 This is equivalent to using the `-` operator (e.g.6& [`ops::Sub`]), as in `flags - other`.)? [`ops::Sub`]: https://doc.rust-lang.org/std/ops/trait.Sub.htmlBinline must_use ²  999        &y99Ͳ9Ӳ&& & & selfͲotherӲyselfotherѹ? Returns the [symmetric difference][sym-diff] between the flagsB in `self` and `other`.@ Specifically, the returned set contains the flags present which´C> are present in `self` or `other`, but that are not present inA> both. Equivalently, it contains the flags present in *exactlyA% one* of the sets `self` and `other`.(3 This is equivalent to using the `^` operator (e.g.6) [`ops::BitXor`]), as in `flags ^ other`.,? [sym-diff]: https://en.wikipedia.org/wiki/Symmetric_differenceBE [`ops::BitXor`]: https://doc.rust-lang.org/std/ops/trait.BitXor.htmlθHinline must_use ޹ 999     ºº%ĺӺѹ999%% % selfotherѹself j- Returns the complement of this set of flags.0@ Specifically, the returned set contains all the flags which areC8 not set in `self`, but which are allowed for this type.;Ƽ: Alternatively, it can be thought of as the set differenceּ=? between [`Self::all()`] and `self` (e.g. `Self::all() - self`)B3 This is equivalent to using the `!` operator (e.g.6 [`ops::Not`]), as in `!flags`.¾" [`Self::all()`]: Self::all? [`ops::Not`]: https://doc.rust-lang.org/std/ops/trait.Not.htmlBinline׏ must_use؏   99     $=$j99$ $ selfj9999selfothern, Returns the union of the two sets of flags./inline  999     %n999%% % selfothern999selfother` Adds the set of flags.inline   =9  88`= 9 self other`9999selfotherj> Returns the left flags, but with all the right flags toggled.Ainline  999     %j999%% % selfotherj999selfothera Toggles the set of flags.inline̐   =9  88a= 9 self othera9999selfotherj8 Returns the intersection between the two sets of flags.;inline  999     %j999%% % selfotherj999selfothera( Disables all flags disabled in the set.+inline   =9  88a= 9 self othera9999selfotherh5 Returns the set difference of the two sets of flags.8inline  999        &h999&& & & selfotherh999selfother_' Disables all flags enabled in the set.*inlineÑ   =9     99_= 9  self other_999self \- Returns the complement of this set of flags.0inline  99         = '' 99'\99'9' ' '9 self\9(99selfiterator ֜/=֜/T/(֜/,֜/(9   (֜/N    )֜/(  NN    Some9        9 =   NNBB= ֜/>֜/>9= >>999=9self iteratoriter__nextval item 9(99iterator  ֜/֜/9T/>,>       =  (99֜/m9 ֜/=֜/iteratorresult _ ___allow___ non_snake_case__Selfconst SC_NEGATE_REQS: u64 = 0;______const SC_REQUIRED: u64 = 0;_ _____$const A_REQUIRED_ELSE_HELP: u64 = 0;$______const GLOBAL_VERSION: u64 = 0;______const VERSIONLESS_SC: u64 = 0;______const UNIFIED_HELP: u64 = 0;_ _____const WAIT_ON_ERROR: u64 = 0;_ _____%const SC_REQUIRED_ELSE_HELP: u64 = 0;%______const NEEDS_LONG_HELP: u64 = 0;______"const NEEDS_LONG_VERSION: u64 = 0;"______const NEEDS_SC_HELP: u64 = 0;_ _____const DISABLE_VERSION: u64 = 0;______const HIDDEN: u64 = 0;______const TRAILING_VARARG: u64 = 0;______const NO_BIN_NAME: u64 = 0;_ _____const ALLOW_UNK_SC: u64 = 0;_ _____const UTF8_STRICT: u64 = 0;_ _____const UTF8_NONE: u64 = 0;_ _____const LEADING_HYPHEN: u64 = 0;______const NO_POS_VALUES: u64 = 0;_ _____const NEXT_LINE_HELP: u64 = 0;______!const DERIVE_DISP_ORDER: u64 = 0;!______const COLORED_HELP: u64 = 0;_ _____const COLOR_ALWAYS: u64 = 0;_ _____const COLOR_AUTO: u64 = 0;_ _____const COLOR_NEVER: u64 = 0;_ _____ const DONT_DELIM_TRAIL: u64 = 0; ______const ALLOW_NEG_NUMS: u64 = 0;______!const LOW_INDEX_MUL_POS: u64 = 0;!______const DISABLE_HELP_SC: u64 = 0;______"const DONT_COLLAPSE_ARGS: u64 = 0;"______const ARGS_NEGATE_SCS: u64 = 0;______#const PROPAGATE_VALS_DOWN: u64 = 0;#______!const ALLOW_MISSING_POS: u64 = 0;!______const TRAILING_VALUES: u64 = 0;______#const VALID_NEG_NUM_FOUND: u64 = 0;#______const PROPAGATED: u64 = 0;_ _____const VALID_ARG_FOUND: u64 = 0;______!const INFER_SUBCOMMANDS: u64 = 0;!______const CONTAINS_LAST: u64 = 0;_ _____"const ARGS_OVERRIDE_SELF: u64 = 0;"______"const DISABLE_HELP_FLAGS: u64 = 0;"______``allow``` non_snake_case``99Self::SC_NEGATE_REQS.bitsbaallowaaa deprecateda  b b bbbb 9Self::SC_REQUIRED.bitsbaallowaaa deprecateda   b b bbbb 9Self::A_REQUIRED_ELSE_HELP.bitsbaallowaaa deprecateda  b b bbbb 9Self::GLOBAL_VERSION.bitsbaallowaƣaa deprecateda  b b bbbb 9Self::VERSIONLESS_SC.bitsbaallowaΣaa deprecateda  b b bbbb 9Self::UNIFIED_HELP.bitsbaallowa֣aa deprecateda   b b  bbbb 9Self::WAIT_ON_ERROR.bitsbaallowaޣaa deprecateda   b b @bbbb 9 Self::SC_REQUIRED_ELSE_HELP.bits baallowaaa deprecateda  b b bbbb 9Self::NEEDS_LONG_HELP.bitsbaallowaaa deprecateda  b b bbbb 9Self::NEEDS_LONG_VERSION.bitsbaallowaaa deprecateda  b b bbbb 9Self::NEEDS_SC_HELP.bitsbaallowaaa deprecateda   b b bbbb 9Self::DISABLE_VERSION.bitsbaallowaaa deprecateda  b b bbbb 9Self::HIDDEN.bitsbaallowaaa deprecateda  b b  bbbb 9Self::TRAILING_VARARG.bitsbaallowaaa deprecateda  b b @bbbb 9Self::NO_BIN_NAME.bitsbaallowaaa deprecateda   b b bbbb 9Self::ALLOW_UNK_SC.bitsbaallowaaa deprecateda   b b bbbb 9Self::UTF8_STRICT.bitsbaallowaaa deprecateda   b b bbbb 9Self::UTF8_NONE.bitsbaallowaaa deprecateda   b b bbbb 9Self::LEADING_HYPHEN.bitsbaallowaaa deprecateda  b b bbbb 9Self::NO_POS_VALUES.bitsbaallowaƤaa deprecateda   b b  bbbb 9Self::NEXT_LINE_HELP.bitsbaallowaΤaa deprecateda  b b @bbbb 9Self::DERIVE_DISP_ORDER.bitsbaallowa֤aa deprecateda  b b bbbb 9Self::COLORED_HELP.bitsbaallowaޤaa deprecateda   b b bbbb 9Self::COLOR_ALWAYS.bitsbaallowaaa deprecateda   b b bbbb 9Self::COLOR_AUTO.bitsbaallowaaa deprecateda   b b bbbb 9Self::COLOR_NEVER.bitsbaallowaaa deprecateda   b b bbbb 9Self::DONT_DELIM_TRAIL.bitsbaallowaaa deprecateda  b b  bbbb 9Self::ALLOW_NEG_NUMS.bitsbaallowaaa deprecateda  b b @bbbb 9Self::LOW_INDEX_MUL_POS.bitsbaallowaaa deprecateda  b b bbbb 9Self::DISABLE_HELP_SC.bitsbaallowaaa deprecateda  b b bbbb 9Self::DONT_COLLAPSE_ARGS.bitsbaallowaaa deprecateda  b b bbbb 9Self::ARGS_NEGATE_SCS.bitsbaallowaaa deprecateda  b b bbbb 9Self::PROPAGATE_VALS_DOWN.bitsbaallowaaa deprecateda  b b bbbb 9Self::ALLOW_MISSING_POS.bitsbaallowaaa deprecateda  b b  bbbb 9Self::TRAILING_VALUES.bitsbaallowaaa deprecateda  b b @bbbb 9Self::VALID_NEG_NUM_FOUND.bitsbaallowaƥaa deprecateda  b b bbbb 9Self::PROPAGATED.bitsbaallowaΥaa deprecateda   b b bbbb 9Self::VALID_ARG_FOUND.bitsbaallowa֥aa deprecateda  b b bbbb 9Self::INFER_SUBCOMMANDS.bitsbaallowaޥaa deprecateda  b b bbbb 9Self::CONTAINS_LAST.bitsbaallowaaa deprecateda   b b bbbb 9Self::ARGS_OVERRIDE_SELF.bitsbaallowaaa deprecateda  b b  bbbb 9Self::DISABLE_HELP_FLAGS.bitsbaallowaaa deprecateda  b b @bbbb 9doc hidden߬ 9 9߬ 9߬ 9 ߬ ߬   automatically_derived   allow    unused_qualifications  ߬  ߬ ߬ self other   inline     ߬ 99  99        99 9 9self other  __self_1_0 __self_0_0 self other   inline    ?99  99        99 9 9self other  __self_1_0 __self_0_0 automatically_derivedݦallowަ unused_qualifications߬  ߬ self inline ߬ ߬  selfautomatically_derivedallow unused_qualifications߬ ߬ automatically_derivedallow unused_qualifications߬ 3߬ selff   > Application level settings, which affect how [`App`] operatesAZ **NOTE:** When these settings are used, they apply only to current command, and are *not*]: propagated down or up through child or parent subcommands= [`App`]: ./struct.App.html R Specifies that any invalid UTF-8 code points should *not* be treated as an error.U( This is the default behavior of `clap`.+N **NOTE:** Using argument values with invalid UTF-8 code points requires usingQ[ [`ArgMatches::os_value_of`], [`ArgMatches::os_values_of`], [`ArgMatches::lossy_value_of`],^\ or [`ArgMatches::lossy_values_of`] for those particular arguments which may contain invalid_ UTF-8 valuesM **NOTE:** This rule only applies to argument values, as flags, options, andP? [`SubCommand`]s themselves only allow valid UTF-8 code points.B # Platform Specific Non Windows systems only # Examplesdocѳ ```  # use clap::{App, AppSettings};# use std::ffi::OsString;0 use std::os::unix::ffi::{OsStrExt,OsStringExt};3 let r = App::new("myprog"), //.setting(AppSettings::AllowInvalidUtf8)/3 .arg_from_usage(" 'some positional arg'")6 .get_matches_from_safe( vec![& OsString::from("myprog"),). OsString::from_vec(vec![0xe9])]);1 assert!(r.is_ok()); let m = r.unwrap();? assert_eq!(m.value_of_os("arg").unwrap().as_bytes(), &[0xe9]);B ```I [`ArgMatches::os_value_of`]: ./struct.ArgMatches.html#method.os_value_ofLK [`ArgMatches::os_values_of`]: ./struct.ArgMatches.html#method.os_values_ofNO [`ArgMatches::lossy_value_of`]: ./struct.ArgMatches.html#method.lossy_value_ofRQ [`ArgMatches::lossy_values_of`]: ./struct.ArgMatches.html#method.lossy_values_ofT) [`SubCommand`]: ./struct.SubCommand.html,  F Essentially sets [`Arg::overrides_with("itself")`] for all arguments.IX **WARNING:** Positional arguments cannot override themselves (or we would never be able[O to advance to the next positional). This setting ignores positional arguments.RK [`Arg::overrides_with("itself")`]: ./struct.Arg.html#method.overrides_withN  Z Specifies that leading hyphens are allowed in argument *values*, such as negative numbers]H like `-10`. (which would otherwise be parsed as another flag or option)KY **NOTE:** Use this setting with caution as it silences certain circumstances which would\V otherwise be an error (such as accidentally forgetting to specify a value for leadingY_ option). It is preferred to set this on a per argument basis, via [`Arg::allow_hyphen_values`]bԁ # Examples܁ ```rust % # use clap::{Arg, App, AppSettings};(I // Imagine you needed to represent negative numbers as well, such as -10L let m = App::new("nums"). .setting(AppSettings::AllowLeadingHyphen)1) .arg(Arg::with_name("neg").index(1))܃, .get_matches_from(vec![ "nums", "-20" ]);τ ߄, assert_eq!(m.value_of("neg"), Some("-20"));/ # ; ```K [`Arg::allow_hyphen_values`]: ./struct.Arg.html#method.allow_hyphen_valuesN  > Allows negative numbers to pass as values. This is similar toA= `AllowLeadingHyphen` except that it only allows numbers, all@4 other undefined leading hyphens will fail to parse.7 # Examples ```rust % # use clap::{App, Arg, AppSettings};( let res = App::new("myprog")ƈ  .version("v1.1")0 .setting(AppSettings::AllowNegativeNumbers)3 .arg(Arg::with_name("num"))#! .get_matches_from_safe(vec![$ "myprog", "-20" ]);  assert!(res.is_ok()); let m = res.unwrap();ߊ/ assert_eq!(m.value_of("num").unwrap(), "-20");2 ```K [`AllowLeadingHyphen`]: ./enum.AppSettings.html#variant.AllowLeadingHyphenN  ҮW Allows one to implement two styles of CLIs where positionals can be used out of order.ZY The first example is a CLI where the second to last positional argument is optional, but\\ the final positional argument is required. Such as `$ prog [optional] ` where one_( of the two following usages is allowed:ڎ+! * `$ prog [optional] `$ * `$ prog `ُ[ This would otherwise not be allowed. This is useful when `[optional]` has a default value.^ĐX **Note:** when using this style of "missing positionals" the final positional *must* be̐[N [required] if `--` will not be used to skip to the final positional argument.Q[ **Note:** This style also only allows a single positional argument to be "skipped" without^@ the use of `--`. To skip more than one, see the second example.C] The second example is when one wants to skip multiple optional positional arguments, and use`Z of the `--` operator is OK (but not required if all arguments will be specified anyways).]] For example, imagine a CLI which has three positional arguments `[foo] [bar] [baz]...` where`S `baz` accepts multiple values (similar to man `ARGS...` style training arguments).V̖: With this setting the following invocations are possible:Ԗ=" * `$ prog foo bar baz1 baz2 baz3`%! * `$ prog foo -- baz1 baz2 baz3`ȗ$ * `$ prog -- baz1 baz2 baz3`  # Examples Style number one from above: ޘ ```rust % # use clap::{App, Arg, AppSettings};(9 // Assume there is an external subcommand named "subcmd"< let m = App::new("myprog")2 .setting(AppSettings::AllowMissingPositional)5! .arg(Arg::with_name("arg1"))$ .arg(Arg::with_name("arg2")# .required(true)) .get_matches_from(vec![ "prog", "other"כ ]); & assert_eq!(m.value_of("arg1"), None);)/ assert_eq!(m.value_of("arg2"), Some("other"));2 ```[ Now the same example, but using a default value for the first optional positional argument^ ```rust % # use clap::{App, Arg, AppSettings};(9 // Assume there is an external subcommand named "subcmd"< let m = App::new("myprog")2 .setting(AppSettings::AllowMissingPositional)5 .arg(Arg::with_name("arg1")Ο#% .default_value("something"))( .arg(Arg::with_name("arg2")# .required(true))ˠ .get_matches_from(vec![ "prog", "other" ]); 3 assert_eq!(m.value_of("arg1"), Some("something"));ȡ6/ assert_eq!(m.value_of("arg2"), Some("other"));2 ``` Style number two from above:Ƣ  ```rust % # use clap::{App, Arg, AppSettings};(9 // Assume there is an external subcommand named "subcmd"< let m = App::new("myprog")2 .setting(AppSettings::AllowMissingPositional)5 .arg(Arg::with_name("foo"))Τ# .arg(Arg::with_name("bar"))#/ .arg(Arg::with_name("baz").multiple(true))2 .get_matches_from(vec![ե5 "prog", "foo", "bar", "baz1", "baz2", "baz3"8 ]); Ʀ, assert_eq!(m.value_of("foo"), Some("foo"));Φ/, assert_eq!(m.value_of("bar"), Some("bar"));/X assert_eq!(m.values_of("baz").unwrap().collect::>(), &["baz1", "baz2", "baz3"]);[ ```I Now notice if we don't specify `foo` or `baz` but use the `--` operator.L ```rust % # use clap::{App, Arg, AppSettings};(9 // Assume there is an external subcommand named "subcmd"< let m = App::new("myprog")2 .setting(AppSettings::AllowMissingPositional)5 .arg(Arg::with_name("foo"))ު# .arg(Arg::with_name("bar"))#/ .arg(Arg::with_name("baz").multiple(true))2 .get_matches_from(vec![- "prog", "--", "baz1", "baz2", "baz3"0 ]); ά% assert_eq!(m.value_of("foo"), None);֬(% assert_eq!(m.value_of("bar"), None);(X assert_eq!(m.values_of("baz").unwrap().collect::>(), &["baz1", "baz2", "baz3"]);[ ```. [required]: ./struct.Arg.html#method.required1Ү Ү 2 Specifies that an unexpected positional argument,5D which would otherwise cause a [`ErrorKind::UnknownArgument`] error,GP should instead be treated as a [`SubCommand`] within the [`ArgMatches`] struct.SͰ) **NOTE:** Use this setting with caution,հ,O as a truly unexpected argument (i.e. one that is *NOT* an external subcommand)RN will **not** cause an error and instead be treated as a potential subcommand.ݱQL One should check for such cases manually and inform the user appropriately.O # Examples ```rust  # use clap::{App, AppSettings};#9 // Assume there is an external subcommand named "subcmd"< let m = App::new("myprog")4 .setting(AppSettings::AllowExternalSubcommands)ƴ7 .get_matches_from(vec![B "myprog", "subcmd", "--option", "value", "-fff", "--flag"E ]); [ // All trailing arguments will be stored under the subcommand's sub-matches using an empty^ // string argument name match m.subcommand() {! (external, Some(ext_m)) => {$K let ext_args: Vec<&str> = ext_m.values_of("").unwrap().collect();ӷN) assert_eq!(external, "subcmd");,H assert_eq!(ext_args, ["--option", "value", "-fff", "--flag"]);׸K },  _ => {}, }˹ ```չN [`ErrorKind::UnknownArgument`]: ./enum.ErrorKind.html#variant.UnknownArgumentQ) [`SubCommand`]: ./struct.SubCommand.html,) [`ArgMatches`]: ./struct.ArgMatches.html,  \ Specifies that use of a valid [argument] negates [subcommands] being used after. By default_4 `clap` allows arguments between subcommands such as7U ` [cmd_args] [cmd2_args] [cmd3_args]`. This setting disables thatؼX[ functionality and says that arguments can only follow the *final* subcommand. For instance^B using this setting makes only the following invocations possible:E$ * ` [cmd3_args]`' * ` [cmd2_args]`  * ` [cmd_args]`ؿ # Examples ```rust  # use clap::{App, AppSettings};# App::new("myprog")1 .setting(AppSettings::ArgsNegateSubcommands)4 # ; ```( [subcommands]: ./struct.SubCommand.html+ [argument]: ./struct.Arg.html!  M Specifies that the help text should be displayed (and then exit gracefully),PO if no arguments are present at runtime (i.e. an empty run such as, `$ myprog`.R- **NOTE:** [`SubCommand`]s count as arguments0U **NOTE:** Setting [`Arg::default_value`] effectively disables this option as it willX- ensure that some argument is always present.0 # Examples ```rust  # use clap::{App, AppSettings};# App::new("myprog")/ .setting(AppSettings::ArgRequiredElseHelp)2 # ; ```) [`SubCommand`]: ./struct.SubCommand.html,? [`Arg::default_value`]: ./struct.Arg.html#method.default_valueB    Uses colorized help messages.!: **NOTE:** Must be compiled with the `color` cargo feature= # Platform SpecificQ This setting only applies to Unix, Linux, and macOS (i.e. non-Windows platforms)T # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")' .setting(AppSettings::ColoredHelp)* .get_matches(); ```    K Enables colored output only when the output is going to a terminal or TTY.N2 **NOTE:** This is the default behavior of `clap`.5; **NOTE:** Must be compiled with the `color` cargo feature.> # Platform SpecificR This setting only applies to Unix, Linux, and macOS (i.e. non-Windows platforms).U # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")% .setting(AppSettings::ColorAuto)( .get_matches(); ```     [ Enables colored output regardless of whether or not the output is going to a terminal/TTY.^; **NOTE:** Must be compiled with the `color` cargo feature.> # Platform SpecificR This setting only applies to Unix, Linux, and macOS (i.e. non-Windows platforms).U # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")' .setting(AppSettings::ColorAlways)* .get_matches(); ```     T Disables colored output no matter if the output is going to a terminal/TTY, or not.W: **NOTE:** Must be compiled with the `color` cargo feature= # Platform SpecificQ This setting only applies to Unix, Linux, and macOS (i.e. non-Windows platforms)T # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")& .setting(AppSettings::ColorNever)) .get_matches(); ```    [ Disables the automatic collapsing of positional args into `[ARGS]` inside the usage string^ # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")3 .setting(AppSettings::DontCollapseArgsInUsage)6 .get_matches(); ```    Y Disables the automatic delimiting of values when `--` or [`AppSettings::TrailingVarArg`]\ was used. Z **NOTE:** The same thing can be done manually by setting the final positional argument to]Z [`Arg::use_delimiter(false)`]. Using this setting is safer, because it's easier to locate] when making changes. # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")5 .setting(AppSettings::DontDelimitTrailingValues)8 .get_matches(); ```P [`AppSettings::TrailingVarArg`]: ./enum.AppSettings.html#variant.TrailingVarArgSF [`Arg::use_delimiter(false)`]: ./struct.Arg.html#method.use_delimiterI   P Disables `-h` and `--help` [`App`] without affecting any of the [`SubCommand`]sS: (Defaults to `false`; application *does* have help flags)= # Examples ```rust + # use clap::{App, AppSettings, ErrorKind};. let res = App::new("myprog") , .setting(AppSettings::DisableHelpFlags)/! .get_matches_from_safe(vec![$ "myprog", "-h" ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ``` ```rust 7 # use clap::{App, SubCommand, AppSettings, ErrorKind};: let res = App::new("myprog") , .setting(AppSettings::DisableHelpFlags)// .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", "test", "-h"" ]);  assert!(res.is_err());= assert_eq!(res.unwrap_err().kind, ErrorKind::HelpDisplayed);@ ```) [`SubCommand`]: ./struct.SubCommand.html, [`App`]: ./struct.App.html   Disables the `help` subcommand" # Examples ```rust 7 # use clap::{App, AppSettings, ErrorKind, SubCommand};: let res = App::new("myprog")  .version("v1.1")1 .setting(AppSettings::DisableHelpSubcommand)4S // Normally, creating a subcommand causes a `help` subcommand to automaticallyV // be generated as well/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", "help" ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ```) [`SubCommand`]: ./struct.SubCommand.html,  S Disables `-V` and `--version` [`App`] without affecting any of the [`SubCommand`]sV> (Defaults to `false`; application *does* have a version flag)A # Examples ```rust + # use clap::{App, AppSettings, ErrorKind};. let res = App::new("myprog")  .version("v1.1")* .setting(AppSettings::DisableVersion)-! .get_matches_from_safe(vec![$ "myprog", "-V" ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ``` ```rust 7 # use clap::{App, SubCommand, AppSettings, ErrorKind};: let res = App::new("myprog")  .version("v1.1")* .setting(AppSettings::DisableVersion)-/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", "test", "-V"" ]);  assert!(res.is_err());@ assert_eq!(res.unwrap_err().kind, ErrorKind::VersionDisplayed);C ```) [`SubCommand`]: ./struct.SubCommand.html, [`App`]: ./struct.App.html  [ Displays the arguments and [`SubCommand`]s in the help message in the order that they were^: declared in, and not alphabetically which is the default.= # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog"). .setting(AppSettings::DeriveDisplayOrder)1 .get_matches(); ```) [`SubCommand`]: ./struct.SubCommand.html,   S Specifies to use the version of the current command for all child [`SubCommand`]s.VX (Defaults to `false`; subcommands have independent version strings from their parents.)[\ **NOTE:** The version for the current command **and** this setting must be set **prior** to_ adding any child subcommands  # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog") .version("v1.1")) .setting(AppSettings::GlobalVersion)׀,/ .subcommand(SubCommand::with_name("test"))2 .get_matches();2 // running `$ myprog test --version` will displayہ5 // "myprog-test v1.1" ```) [`SubCommand`]: ./struct.SubCommand.html,  G Specifies that this [`SubCommand`] should be hidden from help messagesJӃ # Examplesۃ ```rust 1 # use clap::{App, Arg, AppSettings, SubCommand};4 App::new("myprog"). .subcommand(SubCommand::with_name("test")ڄ1# .setting(AppSettings::Hidden))& # ; ```Dž) [`SubCommand`]: ./struct.SubCommand.htmlӅ,  N Tells `clap` *not* to print possible values when displaying help information.QN This can be useful if there are many values, or they are explained elsewhere.Q  Z Tries to match unknown args to partial [`subcommands`] or their [aliases]. For example to܇]M match a subcommand named `test`, one could use `t`, `te`, `tes`, and `test`.P[ **NOTE:** The match *must not* be ambiguous at all in order to succeed. i.e. to match `te`^\ to `test` there could not also be a subcommand or alias `temp` because both start with `te`_Y **CAUTION:** This setting can interfere with [positional/free arguments], take care when\S designing CLIs which allow inferred subcommands and have potential positional/freeˋV[ arguments whose values could start with the same characters as subcommands. If this is the^Z case, it's recommended to use settings such as [`AppSeettings::ArgsNegateSubcommands`] in] conjunction with this setting." # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};ǎ4 let m = App::new("prog"), .setting(AppSettings::InferSubcommands)// .subcommand(SubCommand::with_name("test"))Տ2 .get_matches_from(vec![ "prog", "te" ]);͐ / assert_eq!(m.subcommand_name(), Some("test"));ݐ2 ```* [`subcommands`]: ./struct.SubCommand.html-< [positional/free arguments]: ./struct.Arg.html#method.indexґ?* [aliases]: ./struct.App.html#method.alias-_ [`AppSeettings::ArgsNegateSubcommands`]: ./enum.AppSettings.html#variant.ArgsNegateSubcommandsȒb   Z Specifies that the parser should not assume the first argument passed is the binary name.Ɠ]\ This is normally the case when using a "daemon" style mode, or an interactive CLI where one_I one would not normally type the binary or program name for each command.Lݕ # Examples ```rust % # use clap::{App, Arg, AppSettings};( let m = App::new("myprog")( .setting(AppSettings::NoBinaryName)+8 .arg(Arg::from_usage("... 'commands to run'"));/ .get_matches_from(vec!["command", "set"]);З2= let cmds: Vec<&str> = m.values_of("cmd").unwrap().collect();@& assert_eq!(cmds, ["command", "set"]);Ԙ) ```  ӛ I Places the help string for all arguments on the line after the argument.L # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog")( .setting(AppSettings::NextLineHelp)+ .get_matches(); ```Ǜӛ ӛ [ **DEPRECATED**: This setting is no longer required in order to propagate values up or down^ɜ] Specifies that the parser should propagate global arg's values down or up through any *used*ќ`[ child subcommands. Meaning, if a subcommand wasn't used, the values won't be propagated to^ said subcommand. # Examples͞ ```rust՞ 1 # use clap::{App, Arg, AppSettings, SubCommand};4 let m = App::new("myprog")3 .arg(Arg::from_usage("[cmd] 'command to run'")6 .global(true)). .subcommand(SubCommand::with_name("foo"))15 .get_matches_from(vec!["myprog", "set", "foo"]);Ѡ8, assert_eq!(m.value_of("cmd"), Some("set"));/ʡ2 let sub_m = m.subcommand_matches("foo").unwrap();ҡ50 assert_eq!(sub_m.value_of("cmd"), Some("set"));3 ```Ģ] Now doing the same thing, but *not* using any subcommands will result in the value not beingТ` propagated down.Σ ```rust֣ 1 # use clap::{App, Arg, AppSettings, SubCommand};4 let m = App::new("myprog")3 .arg(Arg::from_usage("[cmd] 'command to run'")¤6 .global(true)). .subcommand(SubCommand::with_name("foo"))1. .get_matches_from(vec!["myprog", "set"]);ҥ1, assert_eq!(m.value_of("cmd"), Some("set"));/Ħ0 assert!(m.subcommand_matches("foo").is_none());̦3 ```  deprecated ާ since2.27.0 note&No longer required to propagate values(P2.27.0&No longer required to propagate values 2.27.0&No longer required to propagate values ŶK Allows [`SubCommand`]s to override all requirements of the parent command.NV For example if you had a subcommand or top level application with a required argumentبYA that is only required as long as there is no subcommand present,DU using this setting would allow you to set those arguments to [`Arg::required(true)`]XN and yet receive no error so long as the user uses a valid subcommand instead.ܪQS **NOTE:** This defaults to false (using subcommand does *not* negate requirements)V # ExamplesL This first example shows that it is an error to not use a required argumentO ```rust < # use clap::{App, Arg, AppSettings, SubCommand, ErrorKind};? let err = App::new("myprog") 1 .setting(AppSettings::SubcommandsNegateReqs)4/ .arg(Arg::with_name("opt").required(true))Ʈ2/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog"ݯ ]);  assert!(err.is_err());G assert_eq!(err.unwrap_err().kind, ErrorKind::MissingRequiredArgument);J # ; ```W This next example shows that it is no longer error to not use a required argument if aZ valid subcommand is used. ```rust < # use clap::{App, Arg, AppSettings, SubCommand, ErrorKind};? let noerr = App::new("myprog")"1 .setting(AppSettings::SubcommandsNegateReqs)4/ .arg(Arg::with_name("opt").required(true))ѳ2/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", "test" ]);  assert!(noerr.is_ok()); # ; ```ŵ; [`Arg::required(true)`]: ./struct.Arg.html#method.requiredѵ>) [`SubCommand`]: ./struct.SubCommand.html,Ŷ Ŷ S Specifies that the help text should be displayed (before exiting gracefully) if noVO [`SubCommand`]s are present at runtime (i.e. an empty run such as `$ myprog`).RX **NOTE:** This should *not* be used with [`AppSettings::SubcommandRequired`] as they do[M nearly same thing; this prints the help text, and the other prints an error.Pй[ **NOTE:** If the user specifies arguments at runtime, but no subcommand the help text willع^Q still be displayed and exit. If this is *not* the desired result, consider usingT. [`AppSettings::ArgRequiredElseHelp`] instead.1ʻ # Examplesһ ```rust % # use clap::{App, Arg, AppSettings};( App::new("myprog")6 .setting(AppSettings::SubcommandRequiredElseHelp)ż9 # ; ```) [`SubCommand`]: ./struct.SubCommand.html,X [`AppSettings::SubcommandRequired`]: ./enum.AppSettings.html#variant.SubcommandRequired̽[Z [`AppSettings::ArgRequiredElseHelp`]: ./enum.AppSettings.html#variant.ArgRequiredElseHelp]   T Specifies that any invalid UTF-8 code points should be treated as an error and failW) with a [`ErrorKind::InvalidUtf8`] error.,X **NOTE:** This rule only applies to argument values; Things such as flags, options, and[? [`SubCommand`]s themselves only allow valid UTF-8 code points.B # Platform Specific Non Windows systems only # Examplesdoc ``` + # use clap::{App, AppSettings, ErrorKind};. use std::ffi::OsString;% use std::os::unix::ffi::OsStringExt;( let m = App::new("myprog")& .setting(AppSettings::StrictUtf8))3 .arg_from_usage(" 'some positional arg'")6 .get_matches_from_safe( vec![& OsString::from("myprog"),). OsString::from_vec(vec![0xe9])]);1 assert!(m.is_err());9 assert_eq!(m.unwrap_err().kind, ErrorKind::InvalidUtf8);< ```) [`SubCommand`]: ./struct.SubCommand.html,F [`ErrorKind::InvalidUtf8`]: ./enum.ErrorKind.html#variant.InvalidUtf8I  C Allows specifying that if no [`SubCommand`] is present at runtime,F error and exit gracefully.M **NOTE:** This defaults to `false` (subcommands do *not* need to be present)P # Examples ```rust 7 # use clap::{App, AppSettings, SubCommand, ErrorKind};: let err = App::new("myprog") . .setting(AppSettings::SubcommandRequired)1/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", ]);  assert!(err.is_err());A assert_eq!(err.unwrap_err().kind, ErrorKind::MissingSubcommand);D # ; ```) [`SubCommand`]: ./struct.SubCommand.html,  V Specifies that the final positional argument is a "VarArg" and that `clap` should notY# attempt to parse any further args.&U The values of the trailing positional argument will contain all args from itself on.X[ **NOTE:** The final positional argument **must** have [`Arg::multiple(true)`] or the usage^ string equivalent. # Examples ```rust % # use clap::{App, Arg, AppSettings};( let m = App::new("myprog")* .setting(AppSettings::TrailingVarArg)-8 .arg(Arg::from_usage("... 'commands to run'"));= .get_matches_from(vec!["myprog", "arg1", "-r", "val1"]);@> let trail: Vec<&str> = m.values_of("cmd").unwrap().collect();A+ assert_eq!(trail, ["arg1", "-r", "val1"]);. ```; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple>  J Groups flags and options together, presenting a more unified help messageM$ (a la `getopts` or `docopt` style).'R The default is that the auto-generated help message will group flags, and optionsU separately.O **NOTE:** This setting is cosmetic only and does not affect any functionality.R # Examples ```no_run 1 # use clap::{App, Arg, SubCommand, AppSettings};4 App::new("myprog"). .setting(AppSettings::UnifiedHelpMessage)1 .get_matches();[ // running `myprog --help` will display a unified "docopt" or "getopts" style help message^ ```  6 Disables `-V` and `--version` for all [`SubCommand`]s9< (Defaults to `false`; subcommands *do* have version flags.)?H **NOTE:** This setting must be set **prior** to adding any subcommands.K # Examples ```rust 7 # use clap::{App, SubCommand, AppSettings, ErrorKind};: let res = App::new("myprog")  .version("v1.1")2 .setting(AppSettings::VersionlessSubcommands)5/ .subcommand(SubCommand::with_name("test"))2! .get_matches_from_safe(vec![$ "myprog", "test", "-V"" ]);  assert!(res.is_err());? assert_eq!(res.unwrap_err().kind, ErrorKind::UnknownArgument);B ```) [`SubCommand`]: ./struct.SubCommand.html,    \ Will display a message "Press \[ENTER\]/\[RETURN\] to continue..." and wait for user before_ exiting X This is most useful when writing an application which is run from a GUI shortcut, or on[V Windows where a user tries to open the binary by double-clicking instead of using theY command line.[ **NOTE:** This setting is **not** recursive with [`SubCommand`]s, meaning if you wish this^[ behavior for all subcommands, you must set this on each command (needing this is extremely^ rare)  # Examples ```rust % # use clap::{App, Arg, AppSettings};( App::new("myprog")' .setting(AppSettings::WaitOnError)* # ; ```) [`SubCommand`]: ./struct.SubCommand.html,   !doc hidden ! " doc hidden " #doc hidden # $doc hidden $ %doc hidden % &doc hidden & ' doc hidden ' ( doc hidden ( ) doc hidden ) automatically_derivedallow unused_qualifications   self inline       selfautomatically_derivedȴallowɴ unused_qualifications       automatically_derived ش  allow ٴ   unused_qualifications      self other   inline    B                     B                                                B B   B  B   B  B         self other  __self_vi  __arg_1_vi  automatically_derivedallow unused_qualifications 3 selff B   xD 'a'b 'a'b'a'bT'a'b   ^   x^  xD 'a'b 'a'b'a'bT'a'b   ^   x^  xD 'a'b 'a'b'a'bT'a'b   ^   x^X The abstract representation of a command line argument. Used to set all the options andܝ[< relationships that define a valid argument for the program.?_ There are two methods for constructing [`Arg`]s, using the builder pattern and setting optionsb` manually, or using a usage string which is far less verbose but has fewer options. You can alsoߟcI use a combination of the two methods to achieve the best of both worlds.àL # Examples ```rust  # use clap::Arg;J // Using the traditional builder pattern and setting each option manuallyȡM# let cfg = Arg::with_name("config")& .short("c") .long("config")Ӣ .takes_value(true) .value_name("FILE")1 .help("Provides a config file to myprog");4F // Using a usage string (setting a similar argument to the one above)ݣI[ let input = Arg::from_usage("-i, --input=[FILE] 'Provides an input file to the program'");^ ``` [`Arg`]: ./struct.Arg.htmlallowҥ missing_debug_implementations''a'b'a'b'a'bBdoc hidden'a'bݦ̦doc̦Ϧ֦ hiddenЦʦ'bdoc hidden'a'bdoc hidden *էdocէاߧ hidden٧ӧ# 'a 'bautomatically_derivedallow unused_qualificationsallowҥ missing_debug_implementations''a'b B'a'b'a'bself inline 'a'b BB  ݦݦ   **       æݦ ݦ ݦ ݦ ݦ ݦݦ     ݦ          ̧*******    *                 ݦ     *    ݦBݦBݦ BB    *B*B*self __self_0_0 __self_0_1ݦ __self_0_2 __self_0_3 __self_0_4*ޥޥautomatically_derivedޥޥޥallowޥޥޥ unused_qualificationsޥޥallowҥ missing_debug_implementations''a'bB'a'b'a'bޥޥinlineޥޥޥ 'a'bB   ޥݦݦݦ  ݦ    ***   * ޥ ޥ ޥ ޥ ޥ ޥ ޥޥ ޥ ݦޥ ޥ ޥ *ޥ'a'b'a'b'a'b 'a 'bטۘ B# #B"ęB# B B5#BBautomatically_derivedallow unused_qualifications'a'bB'a'b'a'binline 'a'bB 8טטט8ט###  # """B"###B  #   B   5 55   5              ט # " #   5automatically_derivedallow unused_qualifications'a'b C'a'b'a'bself inline 'a'b CC טט ## "" ##      5 5            8Иטטטטטטט8ט#######   #  """""""C"### # # ##C  # ! " # #  "#  C"!   "5$5%5&5& 5%&55   %$ 5 &%       ! $&$#!     ! '     ט#"# 5      ט ט ט ### """ ###     555 self __self_0_0 __self_0_1 __self_0_2ט __self_0_3# __self_0_4 __self_0_5" __self_0_6# __self_0_7  __self_0_85 ٗٗautomatically_derivedٗٗٗallowٗٗٗ unused_qualificationsٗٗ'a'b3C'a'b'a'bselfٗfٗٗٗ 'a'b C ٗ fӢdocӢ֢ݢ hiddenעѢ'n'e'n'e'n'eC'n'e'eɢɢautomatically_derivedɢɢɢallowɢɢɢ unused_qualificationsɢɢ'n'e3C'n'e'n'eselfɢfɢɢɢ 'n'e C ɢ¢¢automatically_derived¢¢¢allow¢¢¢ unused_qualifications¢¢'n'e C'n'e'n'eself¢ ¢¢inline¢¢¢ 'n'e CC¢   B¢   B £¢ ¢ Ƣ ƢƢƢƢƢǢƢ¢¢ ¢Ѩ ¢ B¢ ¢ ¢ ¢ ¢B¢Bself¢ __self_0_0 __self_0_1¢automatically_derivedallow unused_qualifications'n'eC'n'e'n'einline 'n'eCBB      allow missing_debug_implementations'doc hidden'n'e'n'e'n'eͳC'n'e'e'n'eautomatically_derivedallow unused_qualificationsallow missing_debug_implementations''n'e C'n'e'n'eself inline 'n'e CC    B    B       B              BB    BB BBself __self_0_0 __self_0_1 __self_0_2automatically_derivedallow unused_qualificationsallow missing_debug_implementations''n'eC'n'e'n'einline 'n'eCBBB        {allow߉ missing_debug_implementations‰'doc hidden'n'e 'n'e'n'eCŊ'n'eڊފ'n'e automatically_derivedallow unused_qualificationsallow߉ missing_debug_implementations‰''n'eC'n'e'n'e inline 'n'eCBڊڊڊBڊ      ڊ automatically_derivedallow unused_qualificationsallow߉ missing_debug_implementations‰''n'e C'n'e'n'eself  inline 'n'e CC  ڊڊ Bӊڊڊ ڊ ڊ ڊ ڊڊB ڊ                     Bڊ4    ڊBڊBڊ44self __self_0_0 __self_0_1ڊ __self_0_2'b'b  'b)#C  automatically_derivedallow unused_qualifications'b3C'bselff  'b C allow missing_debug_implementations''a'b 'a'b'a'b' # 'b& C   ; @  "  'b M 'aCC. 'a   C automatically_derivedallow unused_qualificationsallow missing_debug_implementations''a'b C'a'b'a'bself  inline 'a'b CC'' &&    ;;&@@&   " " M M  ߻ . .   C   '''''''C'&&&&&&&  C&BBB;;;;;;;  & ;@ @!@"@"@!"@@  &!  @!#$%% $%9$#  $"&"'"("( "'(""  '& " 'M)M*M+M+ M*+MM  C*) M*.,.-.... .-...  C-,.-/011 0180/) 10 C   &&  #& C) C, /1/.,+)(&%#"      ,2 B' C&    &; &@Ґ " CM C.  '''C&D&D&         &;D;D;&@D@D@ Ґ Ґ """CMɁDMɁDMC.݁D.݁D.    self __self_0_0' __self_0_1& __self_0_2 __self_0_3 __self_0_4 __self_0_5; __self_0_6@ __self_0_7 __self_0_8" __self_0_9M __self_0_10. __self_0_11   \ Used to get information about the arguments that were supplied to the program at runtime by _` the user. New instances of this struct are obtained by using the [`App::get_matches`] family of c methods.   # Examples   ```no_run  # use clap::{App, Arg};  let matches = App::new("MyApp")ԟ # .arg(Arg::with_name("out") " .long("output")  .required(true)  .takes_value(true))Ӡ ! .arg(Arg::with_name("debug") $ .short("d")  .multiple(true))  .arg(Arg::with_name("cfg")͡ " .short("c")  .takes_value(true)) 9 .get_matches(); // builds the instance of ArgMatches < ] // to get information about the "cfg" argument we created, such as the value supplied we use `< // various ArgMatches methods, such as ArgMatches::value_ofʣ ?+ if let Some(c) = matches.value_of("cfg") { .% println!("Value for -c: {}", c); ( }  \ // The ArgMatches::value_of method returns an Option because the user may not have supplied _\ // that argument at runtime. But if we specified that the argument was "required" as we did̥ _[ // with the "out" argument, we can safely unwrap because `clap` verifies that was actually ^ // used at runtime. F println!("Value for --output: {}", matches.value_of("out").unwrap()); I - // You can check the presence of an argument 0 if matches.is_present("out") { "_ // Another way to check if an argument was present, or if it occurred multiple times is toŨ bZ // use occurrences_of() which returns 0 if an argument isn't found at runtime, or the ]] // number of times that it occurred, if it was. To allow an argument to appear more than `\ // once, you must use the .multiple(true) method, otherwise it will only return 1 or 0. _- if matches.occurrences_of("debug") > 2 {ǫ 0= println!("Debug mode is REALLY on, don't be crazy"); @ } else { + println!("Debug mode kind of on");ʬ . }  }  ``` ; [`App::get_matches`]: ./struct.App.html#method.get_matches >'a 'a & doc    hidden   4 'a*ڮ +ɮ docɮ ̮ Ӯ  hiddenͮ Ǯ ޮ U'a  doc    hidden      automatically_derived   allow    unused_qualifications  'a ̡D'aself    inline    'a ̡D̡D  & &*ڮ +ڮ ++   & & & & & & &  * &  ڮ +ڮ + ڮ + ڮ + ڮ + ڮ +ڮ +  + ڮ +          8      * +                * * & +ڮ +  * & * & * & +ڮ + ިDڮ + ިDڮ +      self  __self_0_0 & __self_0_1ڮ + __self_0_2   ٭ ٭ automatically_derived٭ ٭ ٭ allow٭ ٭ ٭  unused_qualifications٭ ٭ 'a3ҬD'aself٭ f٭  ٭ ٭  'a ҬD ٭ Ö""Y] An iterator for getting multiple values out of an argument via the [`ArgMatches::values_of`]"` method." " # Examples"" ```rust"  # use clap::{App, Arg};" let m = App::new("myapp")"" .arg(Arg::with_name("output")ْ"% .short("o")" .multiple(true)" .takes_value(true))"< .get_matches_from(vec!["myapp", "-o", "val1", "val2"]);ӓ"?"1 let mut values = m.values_of("output").unwrap();"4̔") assert_eq!(values.next(), Some("val1"));Д",) assert_eq!(values.next(), Some("val2"));",! assert_eq!(values.next(), None);"$ ```ϕ"E [`ArgMatches::values_of`]: ./struct.ArgMatches.html#method.values_ofו"H'a'a Ԗ":Ԗ"7'a   'a  'a ""automatically_derived"""allow""" unused_qualifications""'a D'aself"  ""inline""" 'a DD"Ԗ":Ԗ":+Ԗ":Ԗ":Ԗ":Ԗ":Ԗ":Ԗ":Ԗ":  +Ԗ":""+""""""ǩ+" ǩ+" +Ԗ":"+Ԗ":"DԖ":"DԖ":self" __self_0_0Ԗ":" ""automatically_derived"""allow""" unused_qualifications""'a3D'aself"f" "" 'a D "Ҥ"Ǥ"]` An iterator for getting multiple values out of an argument via the [`ArgMatches::values_of_os`]"c\ method. Usage of this iterator allows values which contain invalid UTF-8 code points unlike"_ [`Values`]."" # Examples""Ɵ"docƟ"ʟ" ```̟"Ɵ"  # use clap::{App, Arg};՟" use std::ffi::OsString;"0 use std::os::unix::ffi::{OsStrExt,OsStringExt};"3" let m = App::new("utf8")Š". .arg(Arg::from_usage(" 'some arg'"))"15 .get_matches_from(vec![OsString::from("myprog"),"8, // "Hi {0xe9}!"͡"/V OsString::from_vec(vec![b'H', b'i', b' ', 0xe9, b'!'])]);"YX assert_eq!(&*m.value_of_os("arg").unwrap().as_bytes(), [b'H', b'i', b' ', 0xe9, b'!']);ע"[ ```"K [`ArgMatches::values_of_os`]: ./struct.ArgMatches.html#method.values_of_os"N! [`Values`]: ./struct.Values.html"$'a'a "<"7'a   'a  'a  ""automatically_derived"""allow""" unused_qualifications""'a D'aself"  ""inline""" 'a DD""<"<+"<"<"<"<"<"<"<  +"<""+ä"ä"ä"Ĥ"""+" +" +"<"+"<"D"<"D"<self" __self_0_0"<" ""automatically_derived"""allow""" unused_qualifications""'a3D'aself"f" "" 'a D """_ An iterator for getting multiple indices out of an argument via the [`ArgMatches::indices_of`]ī"b method." " # Examples"Ƭ" ```rustʬ"  # use clap::{App, Arg};֬" let m = App::new("myapp")"" .arg(Arg::with_name("output")"% .short("o")" .multiple(true)έ" .takes_value(true))"< .get_matches_from(vec!["myapp", "-o", "val1", "val2"]);"?ʮ"3 let mut indices = m.indices_of("output").unwrap();ή"6"% assert_eq!(indices.next(), Some(2));"(% assert_eq!(indices.next(), Some(3));"(" assert_eq!(indices.next(), None);ۯ"% ```"G [`ArgMatches::indices_of`]: ./struct.ArgMatches.html#method.indices_of"J'a'a ٱ"2ٱ"7'a  'a ""automatically_derived"""allow""" unused_qualifications""'a D'aself"  ""inline""" 'a DD"ٱ"2ٱ"2,ٱ"2ٱ"2ٱ"2ٱ"2ٱ"2ٱ"2ٱ"2  ,ٱ"2"",""""""," ," ,ٱ"2",ٱ"2"Dٱ"2"Dٱ"2self" __self_0_0ٱ"2" ݰ"ݰ"automatically_derivedݰ"ݰ"ݰ"allowݰ"ݰ"ݰ" unused_qualificationsݰ"ݰ"'a3D'aselfݰ"fݰ" ݰ"ݰ" 'a D ݰ"""Z `ArgGroup`s are a family of related [arguments] and way for you to express, "Any of these"][ arguments". By placing arguments in a logical group, you can create easier requirement and"^^ exclusion rules instead of having to list each argument individually, or when you want a rule"a& to apply "any but not all" arguments.")"] For instance, you can make an entire `ArgGroup` required. If [`ArgGroup::multiple(true)`] is"`O set, this means that at least one argument from that group must be present. If"RX [`ArgGroup::multiple(false)`] is set (the default), one and *only* one must be present."["^ You can also do things such as name an entire `ArgGroup` as a [conflict] or [requirement] for"a^ another argument, meaning any of the arguments that belong to that group will cause a failure"a* if present, or must present respectively."-"[ Perhaps the most common use of `ArgGroup`s is to require one and *only* one argument to be"^^ present out of a given set. Imagine that you had multiple arguments, and you want one of them"a] to be required, but making all of them required isn't feasible because perhaps they conflict"`] with each other. For example, lets say that you were building an application where one could"`O set a given version number by supplying a string with an option argument, i.e."R] `--set-ver v1.2.3`, you also wanted to support automatically using a previous version number"`W and simply incrementing one of the three numbers. So you create three flags `--major`,"Z_ `--minor`, and `--patch`. All of these arguments shouldn't be used at one time but you want to"bO specify that *at least one* of them is used. For this, you can create a group."R"_ Finally, you may use `ArgGroup`s to pull a value from a group of arguments when you don't care"b5 exactly which argument was actually used at runtime."8" # Examples""\ The following example demonstrates using an `ArgGroup` to ensure that one, and only one, of"_> the arguments from the specified group is present at runtime."A" ```rust" ( # use clap::{App, ArgGroup, ErrorKind};"+ let result = App::new("app")"  .args_from_usage("4 "--set-ver [ver] 'set the version manually'"7/ --major 'auto increase major'"2/ --minor 'auto increase minor'"21 --patch 'auto increase patch'")"4' .group(ArgGroup::with_name("vers")"*8 .args(&["set-ver", "major", "minor", "patch"])"; .required(true))"? .get_matches_from_safe(vec!["app", "--major", "--patch"]);"B7 // Because we used two args in the group it's an error": assert!(result.is_err());" let err = result.unwrap_err();""3 assert_eq!(err.kind, ErrorKind::ArgumentConflict);"6 ```"= This next example shows a passing parse of the same scenario"@" ```rust"  # use clap::{App, ArgGroup};"  let result = App::new("app")"  .args_from_usage("4 "--set-ver [ver] 'set the version manually'"7/ --major 'auto increase major'"2/ --minor 'auto increase minor'"21 --patch 'auto increase patch'")"4' .group(ArgGroup::with_name("vers")"*7 .args(&["set-ver", "major", "minor","patch"])": .required(true))"4 .get_matches_from_safe(vec!["app", "--major"]);"7 assert!(result.is_ok());" let matches = result.unwrap();""O // We may not know which of the args was used, so we can test for the group..."R% assert!(matches.is_present("vers"));"(L // we could also alternatively check each arg individually (not shown here)"O ```"E [`ArgGroup::multiple(true)`]: ./struct.ArgGroup.html#method.multiple"H [arguments]: ./struct.Arg.html""4 [conflict]: ./struct.Arg.html#method.conflicts_with"71 [requirement]: ./struct.Arg.html#method.requires"4'a 'a""doc""" hidden""" 'a""doc""" hidden"""#E""doc""" hidden""""""doc""" hidden"""E"#"doc""" hidden""" тE""doc""" hidden""" ""automatically_derived"""allow""" unused_qualifications""'a…E'a ""inline""" 'a…E """B"""""9"""" """""""B""""#"#"#B"#"""E  "" "" "" " """""""""" """" """" """ "#"""# ##doc### hidden## ##doc### hidden#####doc### hidden###,##doc### hidden###  ##automatically_derived###allow### unused_qualifications## self#  ##inline### *# ####,## #######C##### # # # ##  , ## # # # # # ##     # # ##,#  # # # ############4#Ȭ,# ####4##4##,##Ȭ,##Ȭ,## ## ## #self# __self_0_0# __self_0_1# __self_0_2## ##automatically_derived###allow### unused_qualifications##3self#f# ## * ## Y7 YY YYautomatically_derivedYYYallowYYY unused_qualificationsYYE4EselfYstateY YY 9 E9__HY9Y9YYYYYYYYYYY 49YYYYYYYYY EY9Y YYҡEYYҡEYY9YselfYstateY __self_0_0YY YYautomatically_derivedYYYallowYYY unused_qualificationsYYE EselfYotherY YYinlineYYY ٞE E9Y YYYYYYYYYYY Y Y YY  YYYY Y Y Y Y Y YYYY YYYYYYYYY 9YEYEYҡEYҡEYY9YYҡEYYҡEYYҡEYYҡEYY9YselfYotherY __self_1_0Y __self_0_0YcmpY Y Y Y automatically_derivedY Y Y allowY Y Y  unused_qualificationsY Y EEEselfY otherY  Y Y inlineY Y Y  ٞEE9Y YYYYYYYYYYY Y Y YY YYYY Y Y Y Y Y YY Some9Y Y  Y  Y Some9Y 9Y Y YY YYYYYY Y Y Y9Y EY EY ҡEYҡEYY 9YY ҡEYY ҡEYY ҡEYY ҡEYYYY 9Y 9YselfY otherY  __self_1_0Y __self_0_0YcmpY Y selfY otherY  Y Y inlineY Y Y  ٞEEYYYYYYYYYY Y Y Y Y Y Y YYͯE YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y EY EY ҡEYҡEYY :YY 9YY 9YY ҡEYY ҡEYY ҡEYY ҡEYY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY  Y Y inlineY Y Y  ٞEEYYYYYYYYYY Y Y Y Y Y Y YYͯE YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y EY EY ҡEYҡEYY :YY 9YY 9YY ҡEYY ҡEYY ҡEYY ҡEYY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY  Y Y inlineY Y Y  ٞEEYYYYYYYYYY Y Y Y Y Y Y YYͯE YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y EY EY ҡEYҡEYY :YY 9YY 9YY ҡEYY ҡEYY ҡEYY ҡEYY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y selfY otherY  Y Y inlineY Y Y  ٞEEYYYYYYYYYY Y Y Y Y Y Y YYͯE YY YY  Y  YY: YYY YY  Y Y :Y  Y Y : Y Y Y Y YYYYYY Y Y Y EY EY ҡEYҡEYY :YY 9YY 9YY ҡEYY ҡEYY ҡEYY ҡEYY 9Y Y :Y :Y selfY otherY  __self_1_0Y __self_0_0YY Y Y Y Y Y Y :Y 9Y Y  YYautomatically_derivedYYYallowYYY unused_qualificationsYYE EselfY  YYinlineYYY ٞEEYYYYYEYEYselfYY YEE YYautomatically_derivedYYYallowYYY unused_qualificationsYYE EselfY  YYinlineYYYdocYYY hiddenYYY ٞEYYYYYYYEYselfYY Y EE Y Y automatically_derivedY Y Y allowY Y Y  unused_qualificationsY Y E EEselfY otherY  Y Y inlineY Y Y  ٞEEY YYYYYYYYY YYYYYY Y Y Y EY EY ҡEYҡEYY YY YselfY otherY  __self_1_0Y __self_0_0YY selfY otherY  Y Y inlineY Y Y  ٞEEY YYYYYYYYY YYYYYY Y Y Y EY EY ҡEYҡEYY YY YselfY otherY  __self_1_0Y __self_0_0YY  YYautomatically_derivedYYYallowYYY unused_qualificationsYYEE eE3Eselffff ff ٞE fj  jjallowjjj non_snake_casejjSelfselfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk!selfk  k!kinlinekk # kkkkk!k:kselfkk! mlallowllm non_snake_casemlEEselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q @qqqq q q @q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownрnn deprecatedn  ninlinenҀ # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownɁnn deprecatedn  ninlinenʁ # ٞEoo!o!o!o qq q q q q qqqq q q q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq Eselfo  qsnallownnn deprecatedn  ninlinen # ٞEoo!o!o!o qq q q q q  qqqq q q  q0 qqoppoqqsoEooo!q0qq0q q0q q0q selfoqso Eq Eq E yE3Eselfyfz yy ٞE y {E3Eself{f{ {{ ٞE { }E3Eself}f} }} ٞE } E3Eselff  ٞE  @allow dead_code ESelf{bits: 1,}.#E#..E.Self{bits: 1 << 1,}.#E..E.Self{bits: 1 << 2,}.# E..E.Self{bits: 1 << 3,}.#E..E.Self{bits: 1 << 4,}.#E..E.Self{bits: 1 << 5,}.# E ..E.Self{bits: 1 << 6,}.# E@..E.Self{bits: 1 << 7,}.#E..E.Self{bits: 1 << 8,}.# E..E.Self{bits: 1 << 9,}.# E..E.Self{bits: 1 << 10,}.# E..E.Self{bits: 1 << 11,}.# E..E.Self{bits: 1 << 12,}.#E ..E.Self{bits: 1 << 13,}.#E@..E.Self{bits: 1 << 14,}.#E..E.Self{bits: 1 << 15,}.#E..E.Self{bits: 1 << 16,}.#E..E.Self{bits: 1 << 17,}.# E..E.Self{bits: 1 << 18,}.#E..E.Self{bits: 1 << 19,}.# E ..E.M Returns an empty set of flags."inline  EЃMEM& Returns the set containing all flags.ރ)inline  Eb/b/?܆EbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEself؇ ŇH5 Returns the raw value of the flags currently stored.8inline ҇ ٞEׇ ŇH#EׇselfׇŇHbits߉ ȉ8 Convert from underlying bit representation, unless that;? representation contains bits that do not correspond to a flag.Binline Չ  E    ƯG  G Ŋ#       ݊2SomeE݊2ȉ G#߉E E ݊2E ݊2bits߉ȉbitsÍ x> Convert from underlying bit representation, dropping any bitsA! that do not correspond to flags.܌$inline  E   ƯG &xEЍÍ&&&&E bitsÍxbits g; Convert from underlying bit representation, preserving all>7 bits (even those not corresponding to a defined flag).: # Safetyˏ : The caller of the `bitflags!` macro can chose to allow or=- disallow extra bits for their bitflags type.09 The caller of `from_bits_unchecked()` has to ensure that<9 all bits correspond to a defined flag or that extra bitsԑ<" are valid for this bitflags type.%ђinlineђϒ  E ̓gE bitsgselfȔ h1 Returns `true` if no flags are currently stored.ړ4inline  ٞEǔ  G    ׭G  G# hєEǔ# #E##E #E selfǔhself l/ Returns `true` if all flags are currently set.2inline  ٞE   ƯG  Ė Ė ̖̖і і ) ٖٖlE)))E )Ė )і selflselfotherE Returns `true` if there are flags common to both `self` and `other`.H͗inline͗˗   ٞEE1&&  ˜ ˜ ˘˘&&͘1ϘGϘ ؘ2 ؘ EE212E&2E&22 2˜ selfotherselfotherxK Returns `true` if all of the flags in `other` are contained within `self`.NҙinlineҙЙ  ٞEE     ƚ ƚ & ϚϚޚxEE&& & &ƚ selfotherxself˛otherћ^& Inserts the specified flags in-place.)inline   EEƛ  ޛ8ޛ8^ޛ Eƛ Eћ selfƛ otherћ^selfother_& Removes the specified flags in-place.)ܜinlineܜڜ  GE     99ϝ_G E  self other_selfotherž^& Toggles the specified flags in-place.ݝ)inline  GE  Ϟ8Ϟ8^ϞG Ež self otherž^selfothervalue&F Inserts or removes the specified flags depending on the passed value.Iinline  GEƠƠà    G   G ̠;̠;à  ;;àա֡ G EàƠGEGEself othervalueselfotherz9 Returns the intersection between the flags in `self` and< `other`. ƢA Specifically, the returned set contains only the flags which are֢D( present in *both* `self` *and* `other`.+ߣ3 This is equivalent to using the `&` operator (e.g.6) [`ops::BitAnd`]), as in `flags & other`.,E [`ops::BitAnd`]: https://doc.rust-lang.org/std/ops/trait.BitAnd.htmlHҥinlineҥХ must_use   EEE ҦҦ Ҧ ަ ަ ҦŦ%zEEEŦ%ҦŦ%Ҧ Ŧ%ަ selfotherzselfothers> Returns the union of between the flags in `self` and `other`.Aԧ< Specifically, the returned set contains all flags which are?A present in *either* `self` *or* `other`, including any which areD< present in both (see [`Self::symmetric_difference`] if that? is undesirable).ͩ3 This is equivalent to using the `|` operator (e.g.6( [`ops::BitOr`]), as in `flags | other`.+C [`ops::BitOr`]: https://doc.rust-lang.org/std/ops/trait.BitOr.htmlFޫinlineޫܫ must_use  EEE ׬׬ ׬   ׬ʬ%sEEEʬ%׬ʬ%׬ ʬ% selfothersselfͲotherӲy@ Returns the difference between the flags in `self` and `other`.Cۭ= Specifically, the returned set contains all flags present in@0 `self`, except for the ones present in `other`.3A It is also conceptually equivalent to the "bit-clear" operation:D6 `flags & !other` (and this syntax is also supported).ٯ93 This is equivalent to using the `-` operator (e.g.6& [`ops::Sub`]), as in `flags - other`.)? [`ops::Sub`]: https://doc.rust-lang.org/std/ops/trait.Sub.htmlBinline must_use ²  EEE        &yEEͲEӲ&& & & selfͲotherӲyselfotherѹ? Returns the [symmetric difference][sym-diff] between the flagsB in `self` and `other`.@ Specifically, the returned set contains the flags present which´C> are present in `self` or `other`, but that are not present inA> both. Equivalently, it contains the flags present in *exactlyA% one* of the sets `self` and `other`.(3 This is equivalent to using the `^` operator (e.g.6) [`ops::BitXor`]), as in `flags ^ other`.,? [sym-diff]: https://en.wikipedia.org/wiki/Symmetric_differenceBE [`ops::BitXor`]: https://doc.rust-lang.org/std/ops/trait.BitXor.htmlθHinline must_use ޹ EEE     ºº%ĺӺѹEEE%% % selfotherѹself j- Returns the complement of this set of flags.0@ Specifically, the returned set contains all the flags which areC8 not set in `self`, but which are allowed for this type.;Ƽ: Alternatively, it can be thought of as the set differenceּ=? between [`Self::all()`] and `self` (e.g. `Self::all() - self`)B3 This is equivalent to using the `!` operator (e.g.6 [`ops::Not`]), as in `!flags`.¾" [`Self::all()`]: Self::all? [`ops::Not`]: https://doc.rust-lang.org/std/ops/trait.Not.htmlBinline must_use   EE     $G$jEE$ $ selfj EEE Eselfother n, Returns the union of the two sets of flags./inline  EEE     %nEEE%% % selfothern EEEselfother ` Adds the set of flags.inline   GE  88`G E self other` EEE Eselfother j> Returns the left flags, but with all the right flags toggled.Ainline  EEE     %jEEE%% % selfotherj EEEselfother a Toggles the set of flags.inline   GE  88aG E self othera EEE Eselfother j8 Returns the intersection between the two sets of flags.;inline  EEE     %jEEE%% % selfotherj EEEselfother a( Disables all flags disabled in the set.+inline   GE  88aG E self othera EEE Eselfother h5 Returns the set difference of the two sets of flags.8inline  EEE        &hEEE&& & & selfotherh EEEselfother _' Disables all flags enabled in the set.*inline   GE     99_G E  self other_ EE Eself  \- Returns the complement of this set of flags.0inline  EE         ƯG '' EE'\EE'E' ' 'E self\ E(EEselfiterator  ֜/G֜/T/>,֜/(E  >N   >  NN    SomeE        9 G   NNBBG ֜/>֜/>EG>>EEEGEself iteratoriter__nextval item  E(EEiterator   ֜/֜/ET/>,H       ׭G  (EE֜/mE ֜/G֜/iteratorresult _  ___allow___ non_snake_case__Selfconst REQUIRED: u32 = 0; _#____#_const MULTIPLE: u32 = 0; _#____#_const EMPTY_VALS: u32 = 0; _# ____#_const GLOBAL: u32 = 0; _#____#_const HIDDEN: u32 = 0; _#____#_const TAKES_VAL: u32 = 0; _# ____#_const USE_DELIM: u32 = 0; _# ____#_const NEXT_LINE_HELP: u32 = 0; _#____#_const R_UNLESS_ALL: u32 = 0; _# ____#_const REQ_DELIM: u32 = 0; _# ____#_const DELIM_NOT_SET: u32 = 0; _# ____#_const HIDE_POS_VALS: u32 = 0; _# ____#_const ALLOW_TAC_VALS: u32 = 0; _#____#_const REQUIRE_EQUALS: u32 = 0; _#____#_const LAST: u32 = 0; _#____#_ const HIDE_DEFAULT_VAL: u32 = 0;  _#____#_ const CASE_INSENSITIVE: u32 = 0;  _#____#_const HIDE_ENV_VALS: u32 = 0; _# ____#_const HIDDEN_SHORT_H: u32 = 0; _#____#_const HIDDEN_LONG_H: u32 = 0; _# ____#_ ``allow``` non_snake_case``EESelf::REQUIRED.bits baallowaaa deprecateda  #b b bb#bb ESelf::MULTIPLE.bits baallowaaa deprecateda  #b b bb#bb ESelf::EMPTY_VALS.bits baallowaaa deprecateda  # b b bb#bb ESelf::GLOBAL.bits baallowaaa deprecateda  #b b bb#bb ESelf::HIDDEN.bits baallowaaa deprecateda  #b b bb#bb ESelf::TAKES_VAL.bits baallowaaa deprecateda  # b b  bb#bb ESelf::USE_DELIM.bits baallowaaa deprecateda  # b b @bb#bb ESelf::NEXT_LINE_HELP.bits baallowaaa deprecateda  #b b bb#bb ESelf::R_UNLESS_ALL.bits baallowaaa deprecateda  # b b bb#bb ESelf::REQ_DELIM.bits baallowaDŽaa deprecateda  # b b bb#bb ESelf::DELIM_NOT_SET.bits baallowaτaa deprecateda  # b b bb#bb ESelf::HIDE_POS_VALS.bits baallowaׄaa deprecateda  # b b bb#bb ESelf::ALLOW_TAC_VALS.bits baallowa߄aa deprecateda  #b b  bb#bb ESelf::REQUIRE_EQUALS.bits baallowaaa deprecateda  #b b @bb#bb ESelf::LAST.bits baallowaaa deprecateda  #b b bb#bb ESelf::HIDE_DEFAULT_VAL.bits baallowaaa deprecateda  #b b bb#bb ESelf::CASE_INSENSITIVE.bits baallowaaa deprecateda  #b b bb#bb ESelf::HIDE_ENV_VALS.bits baallowaaa deprecateda  # b b bb#bb ESelf::HIDDEN_SHORT_H.bits baallowaaa deprecateda  #b b bb#bb ESelf::HIDDEN_LONG_H.bits baallowaaa deprecateda  # b b  bb#bb E###doc### hidden##  ##E # E#E###E## ##automatically_derived###allow### unused_qualifications## ##automatically_derived###allow### unused_qualifications## self#  ##inline### .#######self## ##automatically_derived#̅##allow#ͅ## unused_qualifications##3self#f# ## . #$ $ ^ Various settings that apply to arguments and may be set, unset, and checked via getter/setterƇ$a: methods [`Arg::set`], [`Arg::unset`], and [`Arg::is_set`]$=$+ [`Arg::set`]: ./struct.Arg.html#method.set$./ [`Arg::unset`]: ./struct.Arg.html#method.unset$21 [`Arg::is_set`]: ./struct.Arg.html#method.is_set̉$4 $ The argument must be usedŊ$$ $ $@ The argument may be used multiple times such as `--flag --flag`$C$ $ $ 7 The argument allows empty values such as `--option ""`ˋ$:$ $ $I The argument should be propagated down through all child [`SubCommand`]s$L$) [`SubCommand`]: ./struct.SubCommand.html$,$ $ $2 The argument should **not** be shown in help text$5$ $ $ 9 The argument accepts a value, such as `--option `$<$ $ $G Determines if the argument allows values to be grouped via a delimiterȎ$J$ $ $ 4 Prints the help text on the line after the argument$7$ $ $> Requires the use of a value delimiter for all multiple values$A$ $  $/ Hides the possible values from the help stringؐ$2$  $  ё$" Allows vals that start with a '-'$%ё$  ё$  $ * Require options use `--option=val` syntax$-$  $  $Z Specifies that the arg is the last positional argument and may be accessed early via `--`$] syntax$ $  $  ޓ$- Hides the default value from the help string$0ޓ$  ޓ$ $. Makes `Arg::possible_values` case insensitive$1$ $ $ % Hides ENV values in the help message$($ $ $8 The argument should **not** be shown in short help text$;$ $ $7 The argument should **not** be shown in long help textԕ$:$ $ $$doc$$$ hidden$$$ $ $Ӗ$docӖ$֖$ݖ$ hiddenז$і$$ $  $$automatically_derived$$$allow$$$ unused_qualifications$$   self$  $$inline$$$    $$$$ $  $self$$ $$automatically_derived$$$allow$Œ$$ unused_qualifications$$   $    $ $ automatically_derived$ ь$ $ allow$ Ҍ$ $  unused_qualifications$ $     self$ other$  $ $ inline$ ی$ $  I  $ $ $ $ $ $ $ $    $ $$$ $ $ $ $ $ $ I$  $$$  $  $  $  $  $  $     $ $ $  $  $ $ $  $ $ $ $  $ $ $ $ $ $ $$$ $$ $ $ $ $  $ I$ I$ $ $ I$ $ I$ $ $ I$ $ I$ $ $ $ $ $ $ $ $ self$ other$  __self_vi$  __arg_1_vi$ $  $$automatically_derived$$$allow$$$ unused_qualifications$$ 3 self$f$ $$ I $$ $z: The abstract representation of a command line subcommand.$=Ź$_ This struct describes all the valid options of the subcommand for the program. Subcommands areɹ$bU essentially "sub-[`App`]s" and contain all the same possibilities (such as their own$X) [arguments], subcommands, and settings).$,$ # Examples$Ż$ ```rustɻ$ $ # use clap::{App, Arg, SubCommand};ջ$' App::new("myprog")$ .subcommand($( SubCommand::with_name("config")$+- .about("Used for configuration")ռ$0/ .arg(Arg::with_name("config_file")$27 .help("The configuration file to use")$: .index(1)))$ # ;$ ```$ [`App`]: ./struct.App.html$ [arguments]: ./struct.Arg.htmlþ$"'a 'a$$doc$$$ hidden$$$ڿ$ɿ$docɿ$̿$ӿ$ hiddenͿ$ǿ$޿$'a $$automatically_derived$Đ$$allow$Ő$$ unused_qualifications$$'a I'aself$  $$inline$А$$ 'a II$ $$ڿ$ڿ$$$$$$$$ $$$ڿ$ڿ$ڿ$ ڿ$ ڿ$ ڿ$ڿ$  ڿ$ $$$$ $$$$$$$$$ $ $$*ڿ$$$$$$$$ڿ$$*ڿ$$*ڿ$self$ __self_0_0$ __self_0_1ڿ$$ $$automatically_derived$$$allow$$$ unused_qualifications$$'a3I'aself$f$ $$ 'a I $Ӌ& ʋ&8 Describes which shell to produce a completions file for&; &D Generates a .bash completion file for the Bourne Again SHell (BASH)ߋ&G& & &L Generates a .fish completion file for the Friendly Interactive SHell (fish)&O& & ͍&2 Generates a completion file for the Z SHell (ZSH)&5͍& ͍& & + Generates a completion file for PowerShell֍&.& & Ȏ&' Generates a completion file for Elvish&*Ȏ& Ȏ&  ‹&‹&automatically_derived‹&ϰ‹&‹&allow‹&а‹&‹& unused_qualifications‹&‹&   self‹&  ‹&‹&inline‹&ٰ‹&‹& / ‹&‹&Nj&‹& ‹&  ‹&self‹&‹& &&automatically_derived&&&allow&&& unused_qualifications&&   &&automatically_derived&&&allow&&& unused_qualifications&& 3 self&f& && / &΋' ŋ'i+ Command line argument parser kind of error'.' 5 Occurs when an [`Arg`] has a set of possible values,ދ'87 and the user provides a value which isn't in that set.':ڌ' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!! .arg(Arg::with_name("speed")ލ'$ .possible_value("fast")'#! .possible_value("slow"))'$3 .get_matches_from_safe(vec!["prog", "other"]);؎'6 assert!(result.is_err());'? assert_eq!(result.unwrap_err().kind, ErrorKind::InvalidValue);'B ```' [`Arg`]: ./struct.Arg.html'' ' 'X Occurs when a user provides a flag, option, argument or subcommand which isn't defined.'[' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};ё'& let result = App::new("prog")'!0 .arg(Arg::from_usage("--flag 'some flag'"))'35 .get_matches_from_safe(vec!["prog", "--other"]);ڒ'8 assert!(result.is_err());'B assert_eq!(result.unwrap_err().kind, ErrorKind::UnknownArgument);'E ```''''[ Occurs when the user provides an unrecognized [`SubCommand`] which meets the threshold for'^0 being similar enough to an existing subcommand.'3L If it doesn't meet the threshold, or the 'suggestions' feature is disabled,'O8 the more general [`UnknownArgument`] error is returned.';Ԗ' # Examplesܖ''ݗ'docݗ'' ```'ݗ' / # use clap::{App, Arg, ErrorKind, SubCommand};'2 let result = App::new("prog")'!0 .subcommand(SubCommand::with_name("config")͘'3) .about("Used for configuration")',+ .arg(Arg::with_name("config_file")'.3 .help("The configuration file to use")'6 .index(1)))'3 .get_matches_from_safe(vec!["prog", "confi"]);Ě'6 assert!(result.is_err());'D assert_eq!(result.unwrap_err().kind, ErrorKind::InvalidSubcommand);'G ```') [`SubCommand`]: ./struct.SubCommand.html',C [`UnknownArgument`]: ./enum.ErrorKind.html#variant.UnknownArgument'F'''J Occurs when the user provides an unrecognized [`SubCommand`] which either'MO doesn't meet the threshold for being similar enough to an existing subcommand,ߝ'R* or the 'suggestions' feature is disabled.'-E Otherwise the more detailed [`InvalidSubcommand`] error is returned.'H'T This error typically happens when passing additional subcommand names to the `help`'WK subcommand. Otherwise, the more general [`UnknownArgument`] error is used.'N' # Examples'' ```rust' / # use clap::{App, Arg, ErrorKind, SubCommand};'2 let result = App::new("prog")֡'!0 .subcommand(SubCommand::with_name("config")'3) .about("Used for configuration")',+ .arg(Arg::with_name("config_file")'.3 .help("The configuration file to use")'6 .index(1)))ӣ'= .get_matches_from_safe(vec!["prog", "help", "nothing"]);'@ assert!(result.is_err());'I assert_eq!(result.unwrap_err().kind, ErrorKind::UnrecognizedSubcommand);ڤ'L ```') [`SubCommand`]: ./struct.SubCommand.html',G [`InvalidSubcommand`]: ./enum.ErrorKind.html#variant.InvalidSubcommand'JC [`UnknownArgument`]: ./enum.ErrorKind.html#variant.UnknownArgument'F''' U Occurs when the user provides an empty value for an option that does not allow empty'X values.' ' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let res = App::new("prog")'! .arg(Arg::with_name("color")'$ .long("color")' .empty_values(false))֩'"6 .get_matches_from_safe(vec!["prog", "--color="]);'9 assert!(res.is_err());': assert_eq!(res.unwrap_err().kind, ErrorKind::EmptyValue);ڪ'= ```'' ' 'W Occurs when the user provides a value for an argument with a custom validation and the'Z value fails that validation.' ' # ExamplesŬ'ج' ```rust' # # use clap::{App, Arg, ErrorKind};'&3 fn is_numeric(val: String) -> Result<(), String> {'6 match val.parse::() {֭'" Ok(..) => Ok(()),'@ Err(..) => Err(String::from("Value wasn't a number!")),'C }'  }'' let result = App::new("prog")'! .arg(Arg::with_name("num")'"! .validator(is_numeric))ԯ'$8 .get_matches_from_safe(vec!["prog", "NotANumber"]);'; assert!(result.is_err());'B assert_eq!(result.unwrap_err().kind, ErrorKind::ValueValidation);߰'E ```'''' U Occurs when a user provides more values for an argument than were defined by setting˱'X [`Arg::max_values`].'Ų' # ExamplesͲ'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'! .arg(Arg::with_name("arg")ɳ'" .multiple(true)' .max_values(2))'C .get_matches_from_safe(vec!["prog", "too", "many", "values"]);'F assert!(result.is_err());'@ assert_eq!(result.unwrap_err().kind, ErrorKind::TooManyValues);'C ```'9 [`Arg::max_values`]: ./struct.Arg.html#method.max_values'<' ' ' X Occurs when the user provides fewer values for an argument than were defined by settingƶ'[ [`Arg::min_values`].'÷' # Examples˷'޷' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!$ .arg(Arg::with_name("some_opt")Ǹ'' .long("opt")' .min_values(3))'A .get_matches_from_safe(vec!["prog", "--opt", "too", "few"]);'D assert!(result.is_err());'? assert_eq!(result.unwrap_err().kind, ErrorKind::TooFewValues);'B ```'9 [`Arg::min_values`]: ./struct.Arg.html#method.min_values'<' ' 'W Occurs when the user provides a different number of values for an argument than what's»'ZP been defined by setting [`Arg::number_of_values`] or than was implicitly set by'S [`Arg::value_names`].'' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};ʽ'& let result = App::new("prog")'!$ .arg(Arg::with_name("some_opt")'' .long("opt")Ǿ' .takes_value(true)' .number_of_values(2))'!< .get_matches_from_safe(vec!["prog", "--opt", "wrong"]);'? assert!(result.is_err());'F assert_eq!(result.unwrap_err().kind, ErrorKind::WrongNumberOfValues);'I ```''E [`Arg::number_of_values`]: ./struct.Arg.html#method.number_of_values'H; [`Arg::value_names`]: ./struct.Arg.html#method.value_names'>'' 'Z Occurs when the user provides two values which conflict with each other and can't be used'] together.' ' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!! .arg(Arg::with_name("debug")'$ .long("debug")'" .conflicts_with("color"))'%! .arg(Arg::with_name("color")'$ .long("color"))'@ .get_matches_from_safe(vec!["prog", "--debug", "--color"]);'C assert!(result.is_err());'C assert_eq!(result.unwrap_err().kind, ErrorKind::ArgumentConflict);'F ```'' ' 'F Occurs when the user does not provide one or more required arguments.'I' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!! .arg(Arg::with_name("debug")'$ .required(true))'* .get_matches_from_safe(vec!["prog"]);'- assert!(result.is_err());'J assert_eq!(result.unwrap_err().kind, ErrorKind::MissingRequiredArgument);'M ```'' ' 'Z Occurs when a subcommand is required (as defined by [`AppSettings::SubcommandRequired`]),']# but the user does not provide one.'&' # Examples'' ```rust' 7 # use clap::{App, AppSettings, SubCommand, ErrorKind};': let err = App::new("prog")'. .setting(AppSettings::SubcommandRequired)'1/ .subcommand(SubCommand::with_name("test"))'2! .get_matches_from_safe(vec!['$ "myprog",' ]);'  assert!(err.is_err());'A assert_eq!(err.unwrap_err().kind, ErrorKind::MissingSubcommand);'D # ;' ```'X [`AppSettings::SubcommandRequired`]: ./enum.AppSettings.html#variant.SubcommandRequired'[' ' 'L Occurs when either an argument or [`SubCommand`] is required, as defined by'OH [`AppSettings::ArgRequiredElseHelp`], but the user did not provide one.'K' # Examples'' ```rust' < # use clap::{App, Arg, AppSettings, ErrorKind, SubCommand};'? let result = App::new("prog")'!/ .setting(AppSettings::ArgRequiredElseHelp)'20 .subcommand(SubCommand::with_name("config")'3) .about("Used for configuration")',+ .arg(Arg::with_name("config_file")'.5 .help("The configuration file to use")))'8* .get_matches_from_safe(vec!["prog"]);'- assert!(result.is_err());'N assert_eq!(result.unwrap_err().kind, ErrorKind::MissingArgumentOrSubcommand);'Q ```') [`SubCommand`]: ./struct.SubCommand.html',Z [`AppSettings::ArgRequiredElseHelp`]: ./enum.AppSettings.html#variant.ArgRequiredElseHelp']' ' 'W Occurs when the user provides multiple values to an argument which doesn't allow that.'Z' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!! .arg(Arg::with_name("debug")'$ .long("debug")' .multiple(false))'@ .get_matches_from_safe(vec!["prog", "--debug", "--debug"]);'C assert!(result.is_err());'J assert_eq!(result.unwrap_err().kind, ErrorKind::UnexpectedMultipleUsage);'M ```'' '' S Occurs when the user provides a value containing invalid UTF-8 for an argument and'V$ [`AppSettings::StrictUtf8`] is set.''' # Platform Specific''> Non-Windows platforms only (such as Linux, Unix, macOS, etc.)'A' # Examples'''doc'' ```'' 0 # use clap::{App, Arg, ErrorKind, AppSettings};'3' # use std::os::unix::ffi::OsStringExt;'* # use std::ffi::OsString;' let result = App::new("prog")'!& .setting(AppSettings::StrictUtf8)') .arg(Arg::with_name("utf8")'# .short("u")' .takes_value(true))': .get_matches_from_safe(vec![OsString::from("myprog"),'=6 OsString::from("-u"),'9B OsString::from_vec(vec![0xE9])]);'E assert!(result.is_err());'> assert_eq!(result.unwrap_err().kind, ErrorKind::InvalidUtf8);'A ```'H [`AppSettings::StrictUtf8`]: ./enum.AppSettings.html#variant.StrictUtf8'K' ' ' = Not a true "error" as it means `--help` or similar was used.'@+ The help message will be sent to `stdout`.'.'Y **Note**: If the help is displayed due to an error (such as missing subcommands) it will'\) be sent to `stderr` instead of `stdout`.',' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!4 .get_matches_from_safe(vec!["prog", "--help"]);'7 assert!(result.is_err());'@ assert_eq!(result.unwrap_err().kind, ErrorKind::HelpDisplayed);'C ```'' ' '@ Not a true "error" as it means `--version` or similar was used.'C& The message will be sent to `stdout`.')' # Examples'' ```rust' # # use clap::{App, Arg, ErrorKind};'& let result = App::new("prog")'!7 .get_matches_from_safe(vec!["prog", "--version"]);': assert!(result.is_err());'C assert_eq!(result.unwrap_err().kind, ErrorKind::VersionDisplayed);'F ```''''Y Occurs when using the [`value_t!`] and [`values_t!`] macros to convert an argument value'\Z into type `T`, but the argument you requested wasn't used. I.e. you asked for an argument']J with name `config` to be converted, but `config` wasn't used by the user.'M$ [`value_t!`]: ./macro.value_t!.html''& [`values_t!`]: ./macro.values_t!.html')''' Represents an [I/O error].'P Can occur when writing to `stderr` or `stdout` or reading a configuration file.'S@ [I/O error]: https://doc.rust-lang.org/std/io/struct.Error.html'C'''> Represents a [Format error] (which is a part of [`Display`]).'A5 Typically caused by writing to `stderr` or `stdout`.'8'B [`Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.html'ED [Format error]: https://doc.rust-lang.org/std/fmt/struct.Error.html'G'' '  ' ' automatically_derived' ' ' allow' ' '  unused_qualifications' '  self' other'  ' ' inline' ' '    ' ' ' ' ' ' ' '   ' ''' ' ' ' ' ' ' J'  '''  '  '  '  '  '  '     ' ' '  '  ' ' '  ' ' ' '  ' ' ' ' ' ' ''' ‹'' ' ' ' '  '  ' J' ' ' J' ' J' ' ' J' ' J' ' ' ' ' ' ' ' ' self' other'  __self_vi'  __arg_1_vi' '  ''automatically_derived'''allow''' unused_qualifications'' self'  ''inline''' J'''''J'self'' ''automatically_derived'''allow''' unused_qualifications'' ''automatically_derived'''allow''' unused_qualifications''3self'f' '' J '''# Command Line Argument Parser Error'& ' Formatted error message''' The type of error'''Y Any additional information passed along, such as the argument name that caused the error'\' ''automatically_derived'''allow''' unused_qualifications''3self'f' '' 0 '( (7(doc((( hidden(( (( ( (( ( (( (  (    ( ( automatically_derived( ( ( allow( ( (  unused_qualifications( (     self( other(  ( ( inline( ( (      ( ( ( ( ( ( ( (    ( ((( ( ( ( ( ( ( J(  (((  (  (  (  (  (  (     ( ( (  (  ( ( (  ( ( ( (  ( ( ( ( ( ( ((( (( ( ( ( (  (   ( ԂK( ( ( ԂK( ( ԂK( ( ( ԂK( ( ԂK( ( ( ( ( ( ( ( ( self( other(  __self_vi(  __arg_1_vi( (  ((automatically_derived(((allow((( unused_qualifications((   self(  ((inline((( J (((( (ԂK(self(( ((automatically_derived(((allow((( unused_qualifications((   ((automatically_derived(((allow((( unused_qualifications(( 3 self(f( (( J ( )) )] Defines styles for different types of error messages. Defaults to Error=Red, Warning=Yellow,)` and Good=Green))doc))) hidden))6 T/) ))֜/ څ)څ)֜/ ))֜/ چ)چ)֜/)3 Defines the style used for errors, defaults to RedɄ)6) ֜/֜/6) ֜/֜/6)Error֜/)))6)֜/))҅) 8 Defines the style used for warnings, defaults to Yellow);҅) ֜/֜/6҅) ֜/֜/6҅) Warning֜/҅) ҅) ҅) 6҅) ֜/҅) ҅) ): Defines the style used for good values, defaults to Green)=) ֜/֜/6) ֜/֜/6)Good֜/)))6)֜/))Ն) Defines no formatting style)Ն) ֜/֜/6Ն) ֜/֜/6Ն)None֜/Ն)Ն)Ն)6Ն)֜/Ն)Ն) ) ))automatically_derived)))allow))) unused_qualifications))636T/)3֜/)self)f) )) ֜/6 )))))6)) 6)  چ)*چ)*6None֜/) +) ,) ,) -) .) .)None) -.) ) 3,-+)) ))6Error֜/)))) ) ) )Error) ))K )) )) ) ) ) ) )))))))  3))) 1   )) ) ))) )))) 1))))) څ)څ)6Warning֜/)))))))Warning)))K)))))))څ)څ)څ)څ)څ)څ)څ)څ)̟Kڅ)))K ))))))))))K ))))) ))6Good֜/)) ) )!)")")Good)!"))K ! ))!) )")#)$)$)%)&)')()()'()&')%&̟K)&))K$%# ))%)$)()')#) )) )) )K))) ))))) -) ,) .) /) 0) 0+چ) 1چ) 2چ) 3چ) 4چ) 4*چ) 34چ) 23چ) 12̟Kچ) 2) )K01/)) 1) 0) 4) 3) /) 5) 5+) )K5)) 5) +)*))) )))))))))))) ) 6 )6)ó6))6))6))/)1)ó6))) K)K)̟K) /)K)/))K)/څ)K)ó6)))K)K)̟Kڅ)Kڅ)Kڅ)/څ))K)/)K)ó6)))K)K)̟K)K)K)/))K)/چ)K) ó6)))K)K)̟Kچ)Kچ)Kچ)/چ))K) self)f)__self_0)debug_trait_builder)__self_0څ)debug_trait_builder)__self_0)debug_trait_builder)__self_0چ) *debug_trait_builder) +)))J)doc))) hidden))'a'a))) ) 'a) )))automatically_derived)))allow))) unused_qualifications))'a3ƻK'aself)f))) 'a ƻK )))automatically_derived)))allow))) unused_qualifications))'a K'aself) ))inline))) 'a KK) ))) ) ) ) )))))))  ))) )  )  )  )  )  ) )     ) )  ) )  )  ) ) )  ) ) 8  ) ) ))) )) ) ) )))))))))) )6) ) ) )))6))6))) )) )K) )K) )) )) )) self) __self_0_0) __self_0_1)  __self_0_2) )ǂ* ‚*d؂*؂*K؂*K**K*K**K*K**K*K**K*K**K*K**K*K**automatically_derived***allow*** unused_qualifications**K3Kself*f***  K ** KK* * automatically_derived* * * allow* * *  unused_qualifications* * K KKself* other* * * inline* * *  K K* * * * * * * *   K* *** * * * * * * K*  ***  *  *  *  *  *  *     * * *  *  * * *  * * * *  * * * * * * *** ** * * * *  *  K* K* * * K* * K* * * K* * K* * * * * * * * * self* other*  __self_vi*  __arg_1_vi* * Ӄ* ȃ**doc*** hidden**'a'a** 'a* ** ***K****automatically_derived***allow*** unused_qualifications**'a3K'aself*f*** 'a K * 'a  K w %'a'b'c'dۇ% %arguse_longۇ% 'a'b'c'dKKKۇ arguse_longۇ 'aKKK                ,       K     argކ K  'aKKK   K           K       K    argކ K  'aKKK                           val  ¤ %'aKKK I(}Τ Τ Τ Τ Τ KKKΤ Τ Τ  Ѥ I(}I(}I(} I(} I(} Ԥ  Ԥ  Ԥ Ԥ   §  Ԥ ߤ    ߤ   Ԥ   I(}    J} Ԥ }Ԥ } KI(}Ԥ }Ԥ }Ԥ }Ԥ }Ԥ } 3K  K I(}I(} 3KI(} J}J}I(} ӕ J}J}I(}  I(} I(} J}I(}I(} I(}J}J}I=|I|ķ I=|J|J| J| J| J| J| ¤ %IZ|I(}I| 0K¤ % ä  I(} Τ Τ Τ  I(} I(} I(} I(}KI(}KԤ KԤ 1Ԥ KԤ }ӕ I(}KԤ }KԤ }Τ vä self KresI|arg0Ԥ }¤ %Τ  Τ Τ Τ ¤ %IZ|I(}Τ Τ Τ  %'aKKK I(     KKK    I(I(I( I( I(    Kѩ ѩ  ̩ K ̩  ҩ ҩ    I( K J   KI(     KKI(I(KI( JJI( ӕ JJI(  I( I( JI(I( I(JJI=Iķ I=JJ J J J Jԩ  %IZI(I 0K %  I(    I( I( I( I(KI(K K 1 ѩ K ӕ I(K K  v self KresIarg0  %      %IZI(   ز &'aKKK ߲ ߲ ߲   ߲     ޲   ز &޲  ز &ٲ ߲ ߲  argٲ ز & $'aKKK                $   $6    s  $ 'a'b!     -    !   c   'a'bLLL!     -    !   c   'a'bLLLΨ        ڑ            Ѩ ڑ  ڑ f arg ڑ  'a'bLLL        ڑ             ڑ  ڑ o arg ڑ  'a'bLLL        ڑ             ڑ  ڑ p arg ڑ  'a'bLLL       ڑ             ڑ  ڑ g arg ڑ  'a'bLLL   m +      ؄              *      ؄                   3    ؄    ά      m m m  m m m  *      ؄ ߩ                       ڑ    +  * L     m     Ϊ        ڑ   *  * ßL       m        ڑ   3  * L               ! " " !ڑ " " *  * L!  !     #       m  +           L  ڑ   * ɔ          ßL  ڑ   3       L  ڑ   *           L  ڑ arg self ؄  'a'bLLL                       ؄ ؄      * ɷL           ޞ          ɷL  ؄ g self ؄  'a'bLLLΨ        ڑ            Ѩ ڑ  ڑ f arg ڑ  'a'bLLL        ڑ             ڑ  ڑ o arg ڑ  'a'bLLL        ڑ             ڑ  ڑ p arg ڑ  'a'bLLL       ڑ             ڑ  ڑ g arg ڑ  'a'bLLL    m +      ؄              *     ! !؄     !                 3    ؄    ά      m m m  m m m  *      ؄ ߩ                       ڑ    +  * L     m     Ϊ        ڑ   *  * L      m       ڑ   3  * L       !       " # # "ڑ # # *  * L"  "     $         m  +           L  ڑ   * ɔ          L  ڑ   3       L  ڑ   *           L  ڑ arg self ؄  'a'bLLL                       ؄ ؄      * L           ޞ          L  ؄ g self ؄  'a'bLLLΨ                      Ѩ  ڑ   f arg   'a'bLLL                        ڑ   o arg   'a'bLLL                        ڑ   p arg   'a'bLLL                       ڑ   g arg   'a'bLLL    o ,      ؄              +     ! !؄     !                 4    ؄    ά      o o o  o o o  +      ؄ ߩ                          ,  * L     o     Ϊ          +  * L      o         4  * L       !       " # # "# # +  * L"  "     $  ڑ    o ,     L   +ɔ     L   4   L   +     L  arg self ؄ 'a'bLLLΨ     Ѩ f'a'bLLL      o'a'bLLL      p 'a'bLLL                Ȱ    name a   !'a'bLLL              !  !   p  ! 'a'bLLL       ڑ              ڑ  ڑ grp g ڑ  'a'bLLL                     val   'a'bLLL         name   'a'bLLL                    g groupՐ   'a'bLLL                 M   g groupՐ   !'a'bLLL     ˰MǨ Ǩ  Ǩ  ר ٨ ٨ ڨ  !Ǩ Ǩ  M ! ŰM  ˰M Ǩ o  !ɪ !'a'bLLL   Ϫ Ϫ Mת ת  ת      ɪ !ת ת  Mɪ ! Mʪ  MϪ ת fϪ ɪ ! ('a'bLLL               (   M ( M   sc  ( "'a'bLLL                "  "    o  "Ŷ "'a'bLLLΨ ʶ ʶ ʶ Ӷ Ӷ ʶ ̶   ̶   ɶ    Ŷ "ɶ  Ŷ "Ѩ ƶ ʶ Ѩ ʶ  Ӷ fƶ Ŷ " "'a'bLLL ĸ ĸ ĸ ͸ ͸ ĸ Ƹ Ƹ   ø     "ø  " ĸ  ĸ  ͸ p  " 'a'bLLL     ú ú ú  LLLú      Ⱥ Ⱥ ɺ    6   ú  ú sc  ú ú helpú ú   ú ú ú  'a'bLLL                       sc   m'a'bLLL  !     !    Q Q Q Q Q Q ,         ؄              Q  ,    Q m   m  Q ! Q  Q  Q , Q  Q  Q  Q a self ؄ m H'a'bLLL  *      *   D D D D D D               D  D H   H  *   p  H F'a'bLLL            B B B B B B !     !         B   B F   F     !  p  F 'a'bLLL        arg_os n 'a'bLLL              ,            dBB   d ,        ,    >      *۷M      6   8 ۷۷ MMMMd8BM  sarg_os  'a'bLLL0                   0 ٫0     arg_os a   'a'bLLL  $                           M                    $   $                      | R R    | M              M     M      M          )۷M &     )۷M         6   $         ڧ          8    N  ۷  M  M  M  M  M | 8 R M   s arg_os   'a'bLLL           sc     'a'b                c  ֆ 'a'b  ׉NNN چ چ ۆ ܆ ܆   ۆ ۆ  ۆ  چ چ    چ چ    چ      ֆ چ  ֆ 6׆  چ چ ۆ ܆ s׆ cmd  ֆ  'a'b  ׉NNN       sc   &'a'b  ׉NNN                      &                                  Š  &    M &           cmd  a  & 'a'b  ׉NNN Ή     Ή   lj Ӊ Ӊ    Some         M       M    & & &  &     6  *۷јN  +Š  Š ܊ ܊ ܊ lj    n  6 Ή MӉ  6M  6۷  6M  6M  6M  6јN & 6 &s cmd  alsӉ  ы 'a'b  ׉NNN ֋  ۋ ы  ֋ ы  ҋ scҋ ы  'a'bLLL                     o name   'a'bLLL    Ğ Ğ      Ǟ Ǟ Ȟ        Ğ p name     m'a'b  ׉NNN  !     !    Q Q Q Q Q Q ,            Ѭ    Ѭ ֬ ֬     Qլ  ,  ֬  ֬  Q m  m  Q ! Q  Q  Q , Q  Q  Q  Q a self  mɭ 'a'b  ׉NNN έ έ έ ׭ ׭  έ Э Э   ͭ    ɭ ͭ ɭ  ʭ έ  έ  ׭ pʭ ɭ  'a'b  ׉NNN               K                oself    'a'b  ׉NNN               K                oself    'a'b  ׉NNN               K                oself    'a'b  ׉NNN                    o name  'a'b  ׉NNN         s'a'b  ׉NNN    M  ζ68s 'a'b  ׉NNN   n >'a'b  ׉NNN Է)")""     M  "M"))M)")M  : )۷  > Է > ۷)M"M)M"M"M8 s>'a'b  ׉NNN         s'a'b  ׉NNN    M  68s 'a'b  ׉NNN   n >'a'b  ׉NNN )")""     M  "M"))M)")M  : )۷  >  > ۷)M"M)M"M"M8 s> 'a'b  ׉NNN        8          name p   'a'b  ׉NNN               K               oself    'a'b  ׉NNN               K               oself    'a'b  ׉NNN               K        ͢       oself   ˀ -'a'b  ׉NNNݳր !ր ր          ˀ -   ր !ހ  ހ    р 'Someр 'р '     ˀ - р Ƴˀ - ̀ ր !ր     vec̀ matcher ˀ -'a'b  ׉NNN         s'a'b  ׉NNN    M  68s 'a'b  ׉NNN   n >'a'b  ׉NNN )")""     M  "M"))M)")M  : )۷  >  > ۷)M"M)M"M"M8 s> 'a'b  ׉NNN        MҠ    pos_sc_name n 'a'b  ׉NNN             M      O      dBB   dM       M MM      *۷O     6   8M۷MMMMMd8BO  s pos_sc_name  'a'b  ׉NNN               K               oself    'a'b  ׉NNN               K               oself    'a'b  ׉NNN               K               oself    н  ӽ  'a'b  ׉NNN       n   'a'b  ׉NNN         +      ΐ   s sc_name   'a'bLLL                    g group   'a'bLLL        ڑ             ڑ  ڑ f n ڑ  'a'bLLL        ڑ             ڑ  ڑ o n ڑ  'a'bLLL        ڑ             ڑ  ڑ p n ڑ  'a'bLLL   ؄                g self ؄  'a'bLLL                    g group   'a'bLLL     ڑ              g n ڑ  'a'bLLL       s  'a'bLLL  ҁNҁҁ ҁ  ҁށ ށ ҁҁҁҁҁҁ&     &    $ق قҁNҁNҁNҁNҁNҁN%%  #ҁҁNҁNق ق ҁ  ā  O ҁҁNҁҁҁ ҁ ҁ%ҁ ҁ ҁ&ҁ ҁ v'a'bLLLΨ   OÃÃà à  O ǃǃǃǃȃ  OѨ O O à Ãf should_long O'a'bLLL   O   O  O O O  o should_long O'a'bLLL   O„„„ „  OƄƄƄƄDŽ  O O O „ „p should_long O!'a'bLLL     Džȅ!  !  s!  'a'b  ׉NNN      a'a'b  ׉NNN   M  argalias'a'b  ׉NNN    ,      M        tttN(( NM      tM tMtM    *۷O  !      8 M۷MtMMtMtMN8(Oaarg'a'b  ׉NNN    8Ԅ   nameoptГ'a'b  ׉NNN      a'a'b  ׉NNNؗؗ   M  ؗargalias'a'b  ׉NNN   O      M   ؗؗ     tttN(( NM      tM tMtM    *۷P  !      ؗ8 M۷MtMMtMtMN8(Paarg'a'b  ׉NNN    8җ   nameflag'a'b  ׉NNN   Ÿ Ÿǟǟǟȟ     x#'a'b  ׉NNN            ǠǠǠǠȠ#  #       x# С'a'b  ׉NNN٩ ԡС ԡ©СѡС'a'bLLL!    !²  cselfƢ  'a'bLLL      ,   Ґ  a'a'bLLL      ,ίί       ίac θ'a'bLLL ոոݸ ݸ  ոո8ոθոհ θϸ ո ݸ nameϸoptθ'a'bLLL     P   Ґ  a'a'bLLL     P       ac 'a'bLLL    8հ    nameflag-'a'bLLLݳ! -!N'Some''- ۳- !    vecmatcher-  -'a'bLLLݳ! -!N'Some''- ۳- !    vecmatcher-'a'bLLL          f'a'bLLLΨ      ,   Ѩ    f'a'bLLL          o'a'bLLL     P       o'a'bLLL       a'a'bLLL   M    name alias'a'bLLL   O      M          tttN(( NM      tM tMtM      *۷P  !         8 M۷MtMMtMtMN8(P aname /'a'bLLLݳ" /"N(Some((/ ۳/ "    grpsmatcher/'a'bLLL       a'a'bLLL   M    name alias'a'bLLL   O      M          tttN(( NM      tM tMtM      *۷P  !         8 M۷MtMMtMtMN8(P aname /'a'bLLLݳ" /"N(Some((/ ۳/ "    grpsmatcher/  "'a'b 666؄    K "" self؄ "''a'b 666؄   $ K '$' self؄ '   'a'bLLL        Ρ  valuev'a'bLLL       8հ      nameo'a'bLLL+    + maĈ'a'bLLLʈʈʈ шш҈Ĉʈ ǢQĈňʈlenňĈ͊'a'bLLL ԊԊ܊ ܊ ܊܊܊ ߊӜQߊ܊ ԊԊ8Ԋ͊Ԋհ ͊Ί Ԋ ܊ ܊  ܊nameΊo͊֎'a'bLLL ݎݎ   ӜQ ݎݎ8ݎ֎ݎհ ֎׎ ݎ    name׎o֎'a'bLLL  Q  Ρ  valuev'a'bLLL       8հ      namep'a'bLLL+   ǡQ maĈ'a'bLLLǢQʈʈʈ шш҈ĈʈQĈňʈlenňĈ͊'a'bLLL ԊԊ܊ ܊ ܊܊܊ ߊQߊ܊ ԊԊ8Ԋ͊Ԋհ ͊Ί Ԋ ܊ ܊  ܊nameΊp͊֎'a'bLLL ݎݎ   Q ݎݎ8ݎ֎ݎհ ֎׎ ݎ    name׎p֎'a'bLLL+   ǡQ ma'a'bLLLǢQ Qlen'a'bLLL    äӜQä Ȥ8ȤȤȤɤհ      nameo'a'bLLL    ӜQ 8հ      nameo'a'bLLL+   ǡQ ma'a'bLLLǢQ Qlen'a'bLLL    äQä Ȥ8ȤȤȤɤհ      namepҩ'a'bLLL    Q 8հ      namepҩ 'a'bLLL           oname   'a'bLLL           oname   'a'bLLL           oname  'a'bLLL0  öö  O ƶƶSomeǶȶ 0  önamevalueõ 'a'bLLLM ո ո ո ո ո (Mո ۸ ո ո ȸո ո ո ո  ո  ո  ո ո )۷ո ۸ ̸ ̸ ۸  ۸ ڹڹ۸  Some  ո ̸ ̸ Some̸ ̸ ̸ и и ۸  ۸ ̸ ո      V ڹڹ ڹȸ Some ڹڹ ڹڹ۸  ȸո̸ո Q M۷ո Mո ۷ո ո ո Mո Mո ̸̸̸̸V V V aliasesvalue· iterո __nextո val̸ alias̸ 'a'bLLL         f'a'bLLLΨ     P   Ѩ    f'a'bLLL         o'a'bLLL     P       o 'a'bLLL      ڑ ڑ  all  'a'bLLL     P  ĊҐ  f'a'bLLLΨ      , ,   Ѩ  Ґ  f'a'bLLL     P  Ґ  o'a'bLLL     RR   RҐ  o'a'bLLL            R arg_ss 'a'b'z666           oa  ''a'b'z׉NNN       " E' '    pvval_str 'Ƿ'a'b'z666  ǷǷ ǷǷ ǷǷ   Ƿ  Ƿok Ƿչ'a'b'z666  չչ չչ չչ   չ  չok չ'a'b'z666         ok 'a'b'z666     R  aa'a'b'z666    ڑ argmatcher0'a'b'z6660      + * R!0  0 0 ޞ   Rblmatcher0'a'b'z666      R  anselfR'a'b'z666R IdII(666 I( I( I( I( I( I(   J RI( 3     I(I( 3 I( JJI( ӕ JJI(  I( I(  J I(I(  I(J JI=Iķ I= JJ J J JJJSomeIZI(  R  IdI I(  I( I( I( I(RI(RRӕ I(RRaaresIarg0 IZI( 'a'b'z666           oname   'a'b'z666           oname   'a'b'z666           oname  'a'b'z666 ڑ    ڑ  ڑ ggrpڑ  'a'b'z666           oname   'a'b'z666           oname   'a'b'z666           oname   'a'b'z666  ڑ         oargڑ   'a'b'z666  ڑ         oargڑ   'a'b'z666  ڑ         oargڑ  'a'b'z666 ڑ     ڑ  ڑ gnameڑ  'a'b'z666  چچڑ         چonameڑ   'a'b'z666  ڑ         onameڑ   'a'b'z666  ڑ         onameڑ  'a'b'z666 ŽŽڑ ŎŎŎƎ   ڑ  ڑ Žgnameڑ ۏ'a'b'z666 ݏݏ   ۏ Sۏ ܏ݏmatcherSnݏۏ   'a'b'z׉NNN      ܦM   valDzB'a'b'z׉NNN ˲#˲˲вввв ۲۲ ۲ ۲۲ вԲ Բ˲>˲>˲>˲>˲>˲>            в˲#˲#   ˲#˲>     ˲> DzB˲ DzB Ȳ˲# ˲ вв в۲۲vȲvalб matchernameձ DzB۲ڴ'a'b'z׉NNN ޴޴    ڴ  ڴܦM۴  ޴ val޴ڴ 'a'b'z666  ڑ         oname˸ڑ   'a'b'z666  ڑ         oname˸ڑ   'a'b'z666  ڑ         oname˸ڑ  'a'b'z666        ܦM   valͽ'a'b'z666 ӽ޽ͽڽӽ  ͽ ν nameӽͽ'a'b'z666 S Ρ    valv 'a'b'z666 ڑ    ڑ  ڑ gconfڑ 'a'b'z666    argmatcher2'a'b'z666               . * ЫS 2  2 ޞ     ЫSgmatcher2'a'b'z666  __ ? _ ? ? R  __   _?  _   _    ڑ  * S  2222 , S A   R   _ _ ? _ ?Sڑ S22confmatcherselfR'a'b'z6660      RR * S  0S ޞ     SRblmatcherselfR'a'b'z666 ڑ       ڑ  ڑ gnڑ 'a'b'z666    argmatcher'a'b'z666  +        R               ڑ + * S      Some      + * S   k S  +       Sڑ   +ޞ + + + + +S+nmatcherselfRgrp'a'b'z6660      RR * S SS ޞ     SRrumatcherselfR'a'b'z666 ڑ       ڑ  ڑ gnڑ 'a'b'z666    argmatcher'a'b'z666  +        R               ڑ + * S      Some      + * S   k S  +       Sڑ   +ޞ + + + + +S+nmatcherselfRgrp'a'b'z6660      RR * S SS ޞ     SRrumatcherselfR'a'b'z666   r'a'b'z666     ɂT nmatcher['a'b'z666 $$#IdId I I(        666     I(I(I(I(I(  1    I( J  TI(      3T  T I(I( 3TI([ JJI( ӕ JJI(I(I( JI(I(   I(JJ I=Iķ   I= J JJJJJJ  J Id ## #$$****  *    [IZI( 1[**$*$*#*Id*IdI I(    I( I( I( I(TI(T T 1T ӕ I(T T *ڧ accsc1resI arg0 [      [IZI(    'a'bLLL0  0s     ϭ              'a'bLLL       n 'a'bLLL    T n         É  'a'b  ׉NNN":;:; 0! Ʀ: 45:5     54! Ц&1٦ ٦ ަ ަަ  !ަ٦  ٦ !    9   ׉NNN 9    !!!!!  !˽  !       !! !! ˽˽! ӕ ˽˽!!! ˽!!   !!˽˽ 1   !,̽ ̽Ц& . !   '   '  !  Ц&1٦ ٦ ަަަT !ަ٦ ٦ ! ͧ+!ͧ+"ͧ+#ͧ+8ͧ+  ׉NNNͧ+#8ͧ+"#ͧ+!" "!$!%!&!7! ӕ   ׉NNN!&7!%&!$% ˽%!! !$ !!˽$˽!1 T !,̽ ̽Ц&߭T!&#'  '! ¨(ƨ ƨ (ƨ #)*+,--( -,'!+,-.//'./ +.*.+# /*),*/,,)('!' 01:1  ڦT10! 10ʩ2ϩ3ϩ;ϩϩ3ʩʩ  32!ʩЩ3ѩ2 #!546606!: ;; !_<0Ц&1 T٦ T٦ Tަ !    ! ! ! !0!  ӕ !   '  Ц&1T٦ T٦ Tަ ! ͧ+ͧ+ͧ+ !ŲT!ŲT!¨#ˡ  TT T ʩϩ 0ŲT!ͧ+ eself arg0 s'i¨(! ӕ !!!_ŲT!DzT!!ͧ+ ͧ+) Press [ENTER] / [RETURN] to continue... ?)))ͧ+ͧ+!_ͧ+ͧ+ͧ+  !_      'a'b  ׉NNN    ga('n'eLLL Some(    (nv(  'a'b666! -  ! c Œ 'a'bLLL!ƌƌƌ ˌ-͌ΌŒ ƌ !Œ ÌƌcÌŒ 'a'bLLL   Ğɞʞ T n 'a'bLLL    T n'a'bLLL   s'a'bLLL   s'a'bLLL   s'a'bLLL   s'a'bLLL   s'a'bLLL   s   'n'eLLL Ч       ڧo  'n'eLLL   ڧ   T    ڧo  'n'eLLL Ч  T   ڧo  'n'eLLL Ч  T   ڧo ܼ('n'eLLL ߼߼Someܼ(  Tܼ(ݼ߼n߼vܼ(   'n 'eLLL      Ч   T   ڧo    'n 'eLLLT      T   T   ڧo    'n 'eLLL      Ч   T   ڧo    'n 'eLLL      Ч   T   ڧo    'n 'eLLL      Ч   T   ڧo   'n 'eLLL C׻        >߻ ׻   ͇U׻ ЇUЇUvm)  'n 'eLLL CѾ          C ,  )Ѿ   UѾ )U  C Ukeyvalue )(  'n 'eLLL      Some(   T(nv(  'n 'eLLL         K   ԓU  namesƚ  'n 'eLLL      I(ҚҚҚҚҚ  LLLҚҚҚ ךI(I(I( I( I( ښ ښ I( ڑ  J ښ ښ ڑ I(ښښ ښښښ֔  I(I( I( JJI( ӕ JJ I(  I( I( JI(I( I(JJI=Iķ I=JJ J J JܚƚIZI(I  0ƚ ǚ I( Қ Қ Қ I( I( I( I( I(ڑ ښڑ ښӕ I(ڑ ښ ښ ҚnǚresIarg0ښ ƚҚ Қ<Қ>ҚҚƚIZI( Қ ҚҚ 'n 'eLLL  I( LLL I(I(I( I( I( á á I( ڑ  J á á ڑ I(áá ááá֔  I(I( I( JJI( ӕ JJ I(  I( I( JI(I( I(JJI=Iķ I=JJ J J JšIZI(I 0  I(    I( I( I( I( I(ڑ áڑ áӕ I(ڑ á á nresIarg0á  <>IZI(     'n 'eLLL      Ч   T   ڧo    'n 'eLLLT      T   T   ڧo    'n 'eLLL      Ч   T   ڧo    'n 'eLLL      Ч   T   ڧo    'n 'eLLL      Ч   T   ڧo ô  'n 'eLLL͇U׻      ȴȴȴ ˴ڈU˴ҴӴô׻ ȴ UôЇUĴЇUȴvmĴô)  'n 'eLLLUѾ        Ķ Ķ CѶѶֶֶֶֶܶUܶж ж)жѾ ж ЍU)U UĶ ѶֶUֶkeyvalueĶ ) ˓       'a*LLL                *     v   ,  'a*LLL+                   *     &  ,  U      , ї+ ,     U arg  ,   $  'a*LLL                            $ + $     v  $  ! !!   'a*LLL+     !!! !+! !a!!  ۷! ! !!  'aKKK+     !!!! ! ! !!!!!   U!+!!ڧ!sc!!ފ"&  'aKKKU,     " " " """" " " """ " ""  "  " " "Some* "" "!"!," """""ފ"& U"  UUފ"&+ߊ"" " " "ڧ","*" *" scߊ"ފ"&"   'aKKK0     """"""""""""" " T" """ڧ"u"" $% 'a 'bLLL  %%%%%   %%%% 'a 'bLLL %%%%%% %%%%%%  U%%%%%%acc%n%%  'a 'bLLL ژ%ژ%    M    ژ%scΗ% n  'a 'bLLL              M    ژ%ژ%        dBB   dM       M MM        *۷U       6   ژ%8M۷MMMMMd8BU   sscΗ%   'a 'bLLL %%    M    %sc% n  'a 'bLLL              M    %%        dBB   dM       M MM        *۷U       6   %8M۷MMMMMd8BU   ssc%  'a 'bLLL      P   Ґ  f 'a 'bLLLΨ      RR  ʋѨ RҐ  f 'a 'bLLL      P   Ґ  o 'a 'bLLL      RR   RҐ  o%"  'a 'bLLL      I(ʤ%ʤ%ʤ%ʤ%ʤ%  LLLʤ%ʤ%ʤ% Ѥ%I(I( I( I( I( Ԥ% Ԥ% ٤%٤%I(  I( RJJ Ԥ%Ԥ% ٤%٤% RI(Ԥ%Ԥ%Ԥ%Ԥ%Ԥ%  I(I( I(%"JJI(٤%٤%٤%٤%٤% 3     I(I( 3 I(J JJI( ӕ JJJJI(  I( I( J I(I( I(JJI=Iķ I=JJ J J JJۤ%%"IZI(I   V%"% % I( ʤ% ʤ% ʤ% I(ʜ I(ʜ I(̜ I(RI(Ԥ%R٤%Ԥ%R٤%ӕ I(Ԥ% Ԥ%ӕ I(R٤%V٤% ʤ%acc%s%resIarg0Ԥ%arg1٤%%"ʤ% ʤ%ʤ% -ʤ%ʤ%%"IZI( ʤ% ʤ%ʤ% 'a 'bLLL           f 'a 'bLLLΨ      P   Ѩ    f 'a 'bLLL           o 'a 'bLLL      P       oǥ%# 'a 'bLLL  I(إ% إ% إ% إ% إ% LLLإ% إ% إ%  %I(I( I( I( I( % % %%I(  I( ڑ JJ %% %% ڑ I(%%%%%  I(I( I(ǥ%#JJI(%%%%%֔  I(I( I(J JJI( ӕ JJJJI(  I( I( J I(I( I(JJI=Iķ I=JJ J J JJ%ǥ%#IZI(I  Vǥ%#ȥ% ͥ% I( إ% إ%  إ% I(ʜ I(ʜ I(̜ I(ڑ I(%ڑ %%ڑ %ӕ I(% %ӕ I(ڑ % % إ% accȥ%lͥ%resIarg0%arg1%ǥ%#إ%  إ% إ%  --إ% إ% ǥ%#IZI( إ% إ% إ% %! 'a 'bLLL  I(%%%%% LLL%%% %I(I( I( I( I( % % %%I(  I( JJ %% %% I(%%%%%  I(I( I(%!JJI(%%%%% 3   I(I( 3 I(J JJI( ӕ JJJJI(  I( I( J I(I( I(JJI=Iķ I=JJ J J JJ%%!IZI(I  V%!% % I( % % % I(ʜ I(ʜ I(̜ I(I(%%%%ӕ I(% %ӕ I(%V% %acc%p%resIarg0%arg1%%!% %% %%%!IZI( % %%Ө%- 'a 'bLLL  I(%%%%% LLL%%% %I(I( I( I( I( % % % %   I(  I( JJ %% % %  I(%%%%%  I(I( I(Ө%-JJI(% % % % %   I(I( I(J JJI( ӕ JJJJI(  I( I( J I(I( I(JJI=Iķ I=JJ J J JJ%Ө%-IZI(I  VӨ%-Ԩ% ٨% I( % % % I(ʜ I(ʜ I(̜ I(ɜ I(%% %% ӕ I(% %ӕ I(%  %  %accԨ%s٨%resIarg0%arg1% Ө%-% %% %%Ө%-IZI( % %%%  'a 'bLLL %%% %% % %n%% ի%! 'a 'bLLL I(%%%%% LLL%%% %I(I( I( I( I( % % %%I(  I(  JJ %% %%  I(%%%%%  I(I( I(ի%!JJI(%%%%%  I(I(ϓ I(J JJI( ӕ JJJJI(  I( I( J I(I( I(JJI=Iķ I=JJ J J JJ%ի%!IZI(I  Vի%!֫%۫% I( % % % I(ʜ I(ʜ I(̜ I(ݖ I(% %% %ӕ I(% %ӕ I( % % %acc֫%a۫%resIarg0%arg1%ի%!% %% %%ի%!IZI( % %% % % %5Ï&Ï&Ï&Ï&Ï&Ï&Ï& & $ ' ' ' ( ( ( ( і( Ԗ( ז( ږ( ͟( П( ( ( ( ( ( ( ( ۼ( ( ( ( ( ( ( ( ( ( Ȁ) *Ȝ* 'a7LLL7ʜ*ʜ*͜*͜*7͜*Ϝ*Ϝ*͜*͜*͜* 77͜*М*М*М*М*ќ*Ȝ* ͜*͜* 7Ȝ* 6ɜ*ʜ*7͜*7͜*Ϝ*f*7bʜ*Ȝ*  Y   Y   m ident v expr t ty value_t  m value_of v t  m ident value_of v expr t ty if let Some v m value_of v match v parse t Ok val Ok val Err _ Err clap Error value_validation_auto format %The argument '{}' isn't a valid value' v else Err clap Error argument_not_found_auto v _ Convenience macro getting a typed value `T` where `T` implements [`std::str::FromStr`] from anb] argument value. This macro returns a `Result` which allows you as the developer to`^ decide what you'd like to do on a failed parse. There are two types of errors, parse failuresa[ and those where the argument wasn't present (such as a non-required argument). You can use^N it to get a single value, or a iterator as with the [`ArgMatches::values_of`]Q # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let matches = App::new("myapp")#^ .arg_from_usage("[length] 'Set the length to use as a pos whole num, i.e. 20'")a .get_matches();!W let len = value_t!(matches.value_of("length"), u32).unwrap_or_else(|e| e.exit());ZN let also_len = value_t!(matches, "length", u32).unwrap_or_else(|e| e.exit());Q& println!("{} + 2: {}", len, len + 2);) # } ```L [`std::str::FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlOE [`ArgMatches::values_of`]: ./struct.ArgMatches.html#method.values_ofHL [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.htmlO  macro_export ] m ident v expr t ty value_t_or_exit  m value_of v t  m ident value_of v expr t ty if let Some v m value_of v match v parse t Ok val val Err _ clap Error value_validation_auto format %The argument '{}' isn't a valid value' v exit else  clap Error argument_not_found_auto v exit Z Convenience macro getting a typed value `T` where `T` implements [`std::str::FromStr`] or]< exiting upon error, instead of returning a [`Result`] type.?A **NOTE:** This macro is for backwards compatibility sake. PreferD5 [`value_t!(/* ... */).unwrap_or_else(|e| e.exit())`]8 # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let matches = App::new("myapp")#^ .arg_from_usage("[length] 'Set the length to use as a pos whole num, i.e. 20'")a .get_matches();!B let len = value_t_or_exit!(matches.value_of("length"), u32);E9 let also_len = value_t_or_exit!(matches, "length", u32);<& println!("{} + 2: {}", len, len + 2);) # } ```L [`std::str::FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlOB [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.htmlEL [`value_t!(/* ... */).unwrap_or_else(|e| e.exit())`]: ./macro.value_t!.htmlO  macro_export _ m ident v expr t ty values_t  m values_of  v t  m ident values_of  v expr t ty if let Some vals m values_of  v let mut tmp vec  let mut err None for pv in vals match pv parse t Ok rv tmp push rv Err err Some clap Error value_validation_auto format %The argument '{}' isn't a valid value' pv break match err Some e Err e None Ok tmp else Err clap Error argument_not_found_auto v^ Convenience macro getting a typed value [`Vec`] where `T` implements [`std::str::FromStr`]aZ This macro returns a [`clap::Result>`] which allows you as the developer to decide]) what you'd like to do on a failed parse., # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let matches = App::new("myapp")#U .arg_from_usage("[seq]... 'A sequence of pos whole nums, i.e. 20 45'")X .get_matches();!R let vals = values_t!(matches.values_of("seq"), u32).unwrap_or_else(|e| e.exit());U for v in &vals {& println!("{} + 2: {}", v, v + 2);) }H let vals = values_t!(matches, "seq", u32).unwrap_or_else(|e| e.exit());K for v in &vals {& println!("{} + 2: {}", v, v + 2);) } # } ```L [`std::str::FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlO> [`Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.htmlA- [`clap::Result>`]: ./type.Result.html0  macro_export a m ident v expr t ty values_t_or_exit  m values_of  v t  m ident values_of  v expr t ty if let Some vals m values_of  v vals map  v  v parse t unwrap_or_else  _   clap Error value_validation_auto format )One or more arguments aren't valid values+ exit collect Vec t  else  clap Error argument_not_found_auto v exit ^ Convenience macro getting a typed value [`Vec`] where `T` implements [`std::str::FromStr`]a or exiting upon error.A **NOTE:** This macro is for backwards compatibility sake. PreferD6 [`values_t!(/* ... */).unwrap_or_else(|e| e.exit())`]9 # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let matches = App::new("myapp")#U .arg_from_usage("[seq]... 'A sequence of pos whole nums, i.e. 20 45'")X .get_matches();!= let vals = values_t_or_exit!(matches.values_of("seq"), u32);@ for v in &vals {& println!("{} + 2: {}", v, v + 2);) } // type for example only= let vals: Vec = values_t_or_exit!(matches, "seq", u32);@ for v in &vals {& println!("{} + 2: {}", v, v + 2);) } # } ```N [`values_t!(/* ... */).unwrap_or_else(|e| e.exit())`]: ./macro.values_t!.htmlQL [`std::str::FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlO> [`Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.htmlA  macro_export c 0 e exprą1…Ņ˅ ̅ eͅ΅ exprυӅՅօ߅ׅ es؅څ exprۅ 1  crate _clap_count_exprs  es ] Counts the number of comma-delimited expressions passed to it. The result is a compile-time݁`Z evaluable expression, suitable for use as a static array size, or the value of a `const`.] # Examples ```" # #[macro_use] extern crate clap;% # fn main() {L const COUNT: usize = _clap_count_exprs!(a, 5+1, "hi there!".into_string());O assert_eq!(COUNT, 3);Ä # }݄ ```  macro_export eƭ(  as_item i item •ŕ̕ƕǕʕȕ iɕ ˕͕ӕ ԕ implsՕەݕޕߕ tts tt   e ident v ident  arg_enum   as_item tts  implÖȖ stdʖ͖ strϖҖ FromStrԖ forܖ e type Err String fn from_str s  str std result Result Self× Selfėȗ Errʗ͗ϗ  allow deprecated  unused_imports use std ascii AsciiExt match˜ sȘʘۛ  stringify  v  _ if s eq_ignore_ascii_case stringify  v Ok e v ™Ù _ٙۙ ErrޙțǛ let v vec Қ stringify  v Ӛ format valid values: {} v join, ɛ impl std fmt Display for e fn fmt֜  self f  mut stdÜƜ fmtȜ˜ Formatter͜ ؜ۜ stdݜ fmt Result match  self۝ȝ  e v write Ɲ f stringify ŝÝ vĝǝ ɝ impl e  allow dead_code pub fn variantsžÞŞȞ ɞ!'staticʞ strҞ՞מ crate؞ݞ _clap_count_exprsߞ  stringify  v ԟ stringify  v Ÿà  m meta   pub enum e ident v ident val expr  ŠȠ arg_enumҠ ڠ۠ ܠ implsݠǡ m   pub enum eơ v val  ɡ̡ء͡ eΡϡѡҡաӡ vԡ֡ ס  m meta   pub enum e ident v ident val expr  ޣ arg_enumǢ ϢТף Ѣ implsҢ m   pub enum e v val  ͣ£ eãģƣǣʣȣ vɣˣ ̣أߣ  m meta   enum e ident v ident val expr  Υ arg_enum ǥ ¤ implsäդ֤פؤ٤ڤۤޤܤ mݤߤ   enum e v val   e v ȥϥե ֥ץإ٥ڥۥܥ mݥޥ metaߥ   enum e ident v ident val expr   arg_enum   implsŦƦǦҦȦɦѦʦ˦Φ̦ mͦϦ Ц Ӧ enum e v val   e v § pubç enumģ̌ eͧΧ identϧէקا٧ vڧۧ identܧ val expr   arg_enum   implsߨ pub enum eި¨Ψè vĨŨƨ̨ǨȨ valɨ ͨϨ Ш e v  pub enum e ident v ident val expr  Ǫ arg_enum˩ өԩ թ impls֩ pub enum e v val   e v ȪΪ enumϪԪ eժ֪ identתݪߪ v ident val expr   arg_enum   impls enum eūƫҫǫ vȫɫʫЫ˫̫ valͫ ѫӫ ԫ e v  enum e ident v ident val expr  í arg_enumˬ ӬԬ լ impls֬ enum e v val   e v ĭQZ Convenience macro to generate more complete enums with variants to be used as a type when]X parsing arguments. This enum also provides a `variants()` function which can be used to[] retrieve a `Vec<&'static str>` of the variant names, as well as implementing [`FromStr`] and҇` [`Display`] automatically.҈` **NOTE:** Case insensitivity is supported for ASCII characters only. It's highly recommended toֈcP use [`Arg::case_insensitive(true)`] for args that will be used with these enumsS^ **NOTE:** This macro automatically implements [`std::str::FromStr`] and [`std::fmt::Display`]aP **NOTE:** These enums support pub (or not) and uses of the `#[derive()]` traitsS̋ # ExamplesЋߋ ```rust  # #[macro_use] # extern crate clap; # use clap::{App, Arg}; arg_enum!{ #[derive(PartialEq, Debug)]ƌ# pub enum Foo { Bar, Baz, Qux }  }; // Foo enum can now be used via Foo::Bar, or Foo::Baz, etcÍ>D // and implements std::str::FromStr to use with the value_t! macrosG fn main() {ʎ let m = App::new("app")ڎ8 .arg(Arg::from_usage(" 'the foo'");7 .possible_values(&Foo::variants()):- .case_insensitive(true))0( .get_matches_from(vec![+! "app", "baz"ΐ$ ]);B let f = value_t!(m, "foo", Foo).unwrap_or_else(|e| e.exit());Eё assert_eq!(f, Foo::Baz);Ց  } ```B [`FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlEL [`std::str::FromStr`]: https://doc.rust-lang.org/std/str/trait.FromStr.htmlʒOB [`Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.htmlEL [`std::fmt::Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.htmlOK [`Arg::case_insensitive(true)`]: ./struct.Arg.html#method.case_insensitiveN  macro_export g env CARGO_PKG_VERSIONܰSG Allows you to pull the version from your Cargo.toml at compile time asɭJ# `MAJOR.MINOR.PATCH_PKGVERSION_PRE`& # Examplesή ```no_runҮ  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let m = App::new("app")' .version(crate_version!())ϯ* .get_matches(); # } ```cfgiɰ notȰ featureno_cargo !ΰ  macro_exportΰ j̰ ȷηطϷ sepзӷ exprԷڷݷ޷! use std ops Deref allow deprecated use std sync Once ONCE_INIT ¸͸θ allowϸԸ missing_copy_implementationsո allow dead_code struct CargoAuthors ׹ __private_fieldɹ˹̹͹ع impl Deref for CargoAuthors  type Target str allow unsafe_code fnϺ derefҺ׺ݺ غ selfٺߺ !'static str allow deprecated static ONCE Once ONCE_INIT û staticջ mutܻ VALUE  const String0 as  const String unsafe ONCE call_once Ǽȼ˼ let s env CARGO_PKG_AUTHORS replace: sep VALUE Box into_rawȽԽ Boxɽ̽ newνѽӽ sҽս   VALUE ž ƾ CargoAuthorsǾ Ծ __private_field env CARGO_PKG_AUTHORSC Allows you to pull the authors for the app from your Cargo.toml atF compile time in the form:R `"author1 lastname :author2 lastname "`UB You can replace the colons with a custom separator by supplying aE% replacement string, so, for example,(% `crate_authors!(",\n")` would become߳(} `"author1 lastname ,\nauthor2 lastname ,\nauthor3 lastname "` # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App;ڵ # fn main() { let m = App::new("app")* .author(crate_authors!("\n"))- .get_matches();˶ # } ```cfgl not featureno_cargo !  macro_export m  env CARGO_PKG_DESCRIPTION[I Allows you to pull the description from your Cargo.toml at compile time.L # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let m = App::new("app")) .about(crate_description!()), .get_matches(); # } ```cfgo not featureno_cargo !  macro_export p env CARGO_PKG_NAMEMB Allows you to pull the name from your Cargo.toml at compile time.E # Examples ```no_run  # #[macro_use] # extern crate clap; # use clap::App; # fn main() { let m = App::new(crate_name!())# .get_matches(); # } ```cfgr not featureno_cargo !  macro_export s  crate App new crate_name  version crate_version  author crate_authors  about crate_description  sep expr crate App new crate_name  version crate_version  author crate_authors  sep about crate_description M Allows you to build the `App` instance from your Cargo.toml at compile time.PH Equivalent to using the `crate_*!` macros with their respective fields.KR Provided separator is for the [`crate_authors!`](macro.crate_authors.html) macro,U% refer to the documentation therefor.(^ **NOTE:** Changing the values in your `Cargo.toml` does not trigger a re-build automatically,aE and therefore won't change the generated output until you recompile.H\ **Pro Tip:** In some cases you can "trick" the compiler into triggering a rebuild when your_E `Cargo.toml` is changed by including this in your `src/main.rs` fileH! `include_str!("../Cargo.toml");`$ # Examples ```no_run  # #[macro_use] # extern crate clap; # fn main() {) let m = app_from_crate!().get_matches();, # } ```cfgu not featureno_cargo !  macro_export v  app builder expr builder  app builder expr  arg name expr tail tt  tt tt  clap_app   app builder arg clap_app   arg crate Arg with_name  name  tail  tt   app builder expr  arg name ident tail tt  tt tt  clap_app   app builder arg clap_app   arg crate Arg with_name  stringify  name  tail  tt   app builder expr  setting setting ident tt tt  clap_app   app builder setting crate AppSettings  setting tt   app builder expr  attributes  attr tt  tt tt  clap_app   app clap_app   arg builder attr  tt   app builder expr  group name ident tail tt  tt tt  clap_app   app clap_app   group  builder crate ArgGroup with_name  stringify  name tail  tt   app builder expr  group name ident  ident ident tail tt  tt tt  clap_app   app clap_app   group builder crate ArgGroup with_name  stringify  name ident false tail  tt   app builder expr  group name ident  ident ident tail tt  tt tt  clap_app   app clap_app   group builder crate ArgGroup with_name  stringify  name ident true tail  tt   app builder expr  subcommand  name ident tail tt  tt tt  clap_app   app builder subcommand  clap_app   app crate SubCommand  with_name  stringify  name tail  tt ـ  app builder expr̀  ident ident€ʀÀ vĀŀ exprƀˀ ̀πЀ׀р ttҀԀ ttՀ ؀ۀހ clap_app   appՁ builderŁƁ identǁ́ԁ́΁сρ vЁҁ Ӂ tt Ђ т group҂؂ ق builderڂ expr group expr builder group group݃ ރ group߃  builder expr group expr  attributes  attr tt  tt tt  clap_app   group„ȄɄ builderʄф clap_appӄ ۄ܄ ބ arg߄ group  attr  tt   group  builder expr group exprօ  arg name… identÅȅʅ˅ԅ̅ tailͅх tt҅ Յ؅مڅ ttۅ݅ ttޅ  clap_app   group clap_app Æ  app builder  arg name tail Ćӆ groupԆن argچ݆ stringifyކ  name tt ҇  argLJ arg‡ exprÇɇ modesʇχ ttЇԇׇއه argڇ߇ψ  arg arg expr modes tt   long exprÈĈ͈ň tailƈʈ ttˈ ΈшԈ clap_appވ   arg arg long long modes tail Չ  arg arg expr modes tt   long‰ identÉɉʉӉˉ tail̉Љ ttщ ԉ׉ډ clap_app   arg arg long stringify  long modes tail   arg arg exprÊ modesĊɊ ttʊ ͊Ί shortϊԊ identՊۊ܊݊ tailފ tt  clap_app   arg arg short stringify  short modes tail ŋ Ƌ argNjˋՋ̋ arg͋Ћ exprы׋ً ؋ۋ܋ var݋ ident tail tt  clap_app ܌  arg arg value_name  stringify  var   takes_value Ȍ requiredɌҌӌٌԌ tailՌ ڌ  arg arg expr  var ident tail tt  clap_app   argٍ arg value_name Ǎ؍ stringifyȍ эҍ׍Ӎ varԍۍݍ ܍ߍ tail   arg arg expr  var ident tail tt  clap_app   argĎŎ argƎɎ value_nameʎ Ԏ stringifyՎ ގߎ var   takes_value  tail   arg arg expr  var ident tail tt ď clap_appΏ ֏׏ ُ argڏޏߏ arg value_name  stringify  var  tail ɐ  arg arg expr modes ttǐ tailĐ ttŐ Ȑːΐ clap_appؐ   arg arg modes  multiple tail   arg arg expr modes‘ ttÑƑǑؑ ȑ nɑʑ exprˑϑё mґӑ exprԑڑۑܑ tailݑ tt  clap_app   arg arg modes min_values  n max_values  m tail ’Ȓ ɒ argʒΒؒϒ argВӒ exprԒڒ modesے tt  tail tt  clap_app   arg arg modes  required tail ד ؓ argٓݓޓ argߓ expr modes tt  ident ident tail tt ؔ clap_app Ҕ  arg arg ident false modes”Ȕɔϔʔ tail˔ Дٔ  arg arg expr modes tt  ident ident tail tt  clap_app •Õ ŕ argƕʕܕ˕ arg̕ϕЕ identѕ֕ە trueוޕ modesߕ tail   arg arg expr modes tt fn_ expr tail tt – clap_app̖ ԖՖ ז argؖܖݖ argޖ validator  fn_ modes tail   as_expr expr expr expr — arg×Ǘїȗ argɗ̗ expr͗ӗ modesԗٗ ttڗݗ descޗ tt arg help clap_app   as_expr desc  arg arg expr modes tt ident ident target ident  tail tt  clap_app řƙ ș argə͙Ι argϙәԙ֙י identؙݙ stringifyޙ  target  modes tail   arg arg expr modes tt ident ident expr expr  tail tt  clap_app  › argÛǛߛț argɛ̛͛ identΛӛޛԛ՛֛ۛ exprכܛ ݛ modes tail   arg arg expr modes tt ident ident expr expr  tail tt  clap_app   argÝǝߝȝ argɝ̝͝ identΝӝޝԝ՝۝֝ exprםܝ ݝ modes tail ў  subcommand  name identžŞƞϞǞ tailȞ̞ tt͞ ОӞ֞ clap_app   app crate SubCommand  with_name  stringify  name tail ͟Οٟϟ nameПԟ expr՟۟ޟߟ tail tt  clap_app   app crate App new name tail ؠ name  identàɠ̠֠͠Π tailϠӠ ttԠ נڠݠޠ clap_app   app crate App new stringify  name tail 2M Build `App`, `Arg`s, `SubCommand`s and `Group`s with Usage-string like inputP1 but without the associated parsing runtime cost.46 `clap_app!` also supports several shorthand syntaxes.9 # Examples ```no_run  # #[macro_use] # extern crate clap; # fn main() {! let matches = clap_app!(myapp =>$ (version: "1.0")- (author: "Kevin K. ")0# (about: "Does awesome things")&H (@arg CONFIG: -c --config +takes_value "Sets a custom config file")K9 (@arg INPUT: +required "Sets the input file to use")<C (@arg debug: -d ... "Sets the level of debugging information")F (@group difficulty =>0 (@arg hard: -h --hard "Sets hard mode")36 (@arg normal: -n --normal "Sets normal mode")90 (@arg easy: -e --easy "Sets easy mode")3 )  (@subcommand test =>- (about: "controls testing features")0 (version: "1.3")8 (author: "Someone E. ");H (@arg verbose: -v --verbose "Print test information verbosely")K )  ) .get_matches(); # } ``` # Shorthand Syntax for ArgsQ * A single hyphen followed by a character (such as `-c`) sets the [`Arg::short`]TZ * A double hyphen followed by a character or word (such as `--config`) sets [`Arg::long`]]Z * If one wishes to use a [`Arg::long`] with a hyphen inside (i.e. `--config-file`), you]N must use `--("config-file")` due to limitations of the Rust macro system.Q2 * Three dots (`...`) sets [`Arg::multiple(true)`]5P * Angled brackets after either a short or long will set [`Arg::value_name`] andSP `Arg::required(true)` such as `--config ` = `Arg::value_name("FILE")` andS `Arg::required(true)`P * Square brackets after either a short or long will set [`Arg::value_name`] andSQ `Arg::required(false)` such as `--config [FILE]` = `Arg::value_name("FILE")` andT `Arg::required(false)`E * There are short hand syntaxes for Arg methods that accept booleansH[ * A plus sign will set that method to `true` such as `+required` = `Arg::required(true)`^` * An exclamation will set that method to `false` such as `!required` = `Arg::required(false)`cQ * A `#{min, max}` will set [`Arg::min_values(min)`] and [`Arg::max_values(max)`]T3 * An asterisk (`*`) will set `Arg::required(true)`6_ * Curly brackets around a `fn` will set [`Arg::validator`] as in `{fn}` = `Arg::validator(fn)`b_ * An Arg method that accepts a string followed by square brackets will set that method such asb\ `conflicts_with[FOO]` will set `Arg::conflicts_with("FOO")` (note the lack of quotes around_ `FOO` in the macro)K * An Arg method that takes a string and can be set multiple times (such asN^ [`Arg::conflicts_with`]) followed by square brackets and a list of values separated by spacesaD will set that method such as `conflicts_with[FOO BAR BAZ]` will setG] `Arg::conflicts_with("FOO")`, `Arg::conflicts_with("BAR")`, and `Arg::conflicts_with("BAZ")``9 (note the lack of quotes around the values in the macro)< # Shorthand Syntax for Groups!L * There are short hand syntaxes for `ArgGroup` methods that accept booleansO` * A plus sign will set that method to `true` such as `+required` = `ArgGroup::required(true)`ce * An exclamation will set that method to `false` such as `!required` = `ArgGroup::required(false)`h/ [`Arg::short`]: ./struct.Arg.html#method.short2- [`Arg::long`]: ./struct.Arg.html#method.long0; [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple>9 [`Arg::value_name`]: ./struct.Arg.html#method.value_name<> [`Arg::min_values(min)`]: ./struct.Arg.html#method.min_valuesA> [`Arg::max_values(max)`]: ./struct.Arg.html#method.max_valuesA7 [`Arg::validator`]: ./struct.Arg.html#method.validator:A [`Arg::conflicts_with`]: ./struct.Arg.html#method.conflicts_withD  macro_export x {---ZZZZ͌~{*/E2C8?$/0C6r({a *He2YJL6778N99z::?;; <:==>?&@\@?@4A?AB%B\B?B3C? DCCRzRRdhhomoo-pnpuvw]w_ w 9x ~=}}  24(!j#F%"'"OQ$SA0TUW>YZ5[) \s 8^ _acYsehknJzxM'/Ɍ SY.TBw"v~vvWwrzSϳ3n6#sZ dl{ qT$"," 4" 6D vGH~GGKI600Ky2KX4 K3666Y77188@99 u:v#;;KC|KKLNLLLLIMwMNNNPPd`LT:_`m{acdlopqs=xy{|uÆi0F|9իqF" :C ' SzD%%&J&:''m()rzX;d֛/YY߼þ,Z afb9Lѝu|R-*a c ܮJ  R Z b j br z    P  c &  - {  B@ Y "e'o+ 03[6Y: C 3HFPN.TH[n_bkux| BV$$t$$$"uf:K~aluU:%oW2i1CWk!G-nS,    ?i;e*e6\ " ##d'<''F2)mLs*U{*Z+Cc+fNnx;-G.VS/`L_0~$ y . $ ) , Z5 V _ f l q k1Sy _ w2! 0 37 3z x m E G   I # % % , 6 \; C {L oM MN -O O _P P +Q Q R %S LS S T sT T &U U V uV X Y ]Y Y 8Z Z [ J[ [ \ \ ] 3] 5^ 6Z^ 8^ _ o_ _ 1` ` ` Qa a b _b b c mc c !d {d d @e e Ff f 9f Zg g h j j 0k ~k l ^l l m m m n n ;]o A=o >-p 1@p p Vq q r rr r &s As s 4t t t Bu u u Nv v w !Cw Dx sx Fx /y y y V| | } q} } @~ (I~ J~ \  [ À U3 "W X Z] т 4 H [V d  r ʇ $ ~ ] a W^ I  W ȋ A ^ ٌ \ ώ K ; Ȑ _ f ) g  ? – +  D L M  \ œ  B ` f  G ׬ e `T ` `!b` qd I D ydd f_I  f{ ff ga gI ) g2 g> 1iF lI J BJ J J :K K K 3L L lL IM wM M M PN N N @O |O O P P P Q ZQ Q Q -R xR R R bS T S vT U AU U WW Z ^ d l q x ]} N H   E w  e އ  3 d N B 4 W ݍ " mB  i  G ] s i  1 T Ƕ ( " ϶o K 2 Q ٶ  e  B ?I   p  + m   J   l& & &' k' ' L( GO3 (0 1 5 s3 B5 7 h5 8 9 9 9 : : 2; OA W_Xa ghs ow ݸ :  ǷϷc ׷ ߷ ' P( ) wB WT n Eo w| j} } } ~ N~ ~ ~ ~ M & L ā I p ' /# 7 ?  J = e ٓ ̓   i  p ɝ  m  G @  [ M Ģ T \  d ӹ  t C K  A 2 GO , I 1 J :D1Po8W " A e  d !)***+;*++e*,,,-&-M-n---.z/B00h1l:HC'D}DEEEFIFFFF#G\GGGGH1HZHyHHHJHSTo?D7P9\;h=LIJKZNcpgn[l>l8Vݧ¦/% En(nƶt\J5/pphtL?M%s&=()p+.,s9<:(KL*OPQ*TaVXYZ[]J_ab;drfhjckmoqMs|0~Cڇ9r)rQrsJku6vyzʈ]Ք !8&nM6ΡfL2ʪ|bH.Ƴx^D*ܻ¼tZ@&FBBBCDCCCDBD5EEiFGG:HHpI JJEKKLMMWNNO1PPmQ RRISST&UUdVWWDXXY$ZZe[\\H]]^_`vdei>lVortwFz{}e2e٘!g`oBlȥVmͪ+wSO] ! $'*-#0+336;9C<K?G2ʷk:ԺvKzGuE|D|U/k<uslnjf`[^\]YWLJD@;42/-.+(# !"&',/052488=B6Ej;q!MNaN)9Rs)*00W4x47799p<<> ?^AA C*CcFFK4KHNiNp̬h'Ut޹TL $}bfeo` [x Zt9P =[~]#BhYfO8m ,M""#%v&&*^*4+K-*..^??(@@@GAArBE4FFFRGHL`MMMMNgPQTU+V|ZR_(dhmynPouo3pYq~qOrtvFwwwxeyKz1{||}~{aG-߆ŇjCAa2h;uL&bzBZJi6i   %"kdsFp Zq/"{"p6(u(z    .++|,--9..e/00/11c223*44d556377`8V9N:B;6<-=$> ?@AB CDEEFGHIJKeL\\\]X^_-__hd/eue igiijnnmnrp|zOɘcғD}@oo"pCpppDqeqqq:rYrsst_us 3 x 6 uvxxz{_΄=^̊zKlܖ -:[BcܢYz(:ڭ ^}qr"/}G3Z{*f-vhup0KNA?9Zk8b"Lp2=bAό ~*/H2F8C&15E7t*b +If4[LN6 778P99|::A;; <<==>?(@^@?A6A?AB'B^B?B5C?DCCR{RRfhhomoo/pppuvw_w` w ;x ~?~~  34(!k#G%#'$OQ%SC1TUW?YZ7]+\u 9^ _ac[tehkpJzxO (0ʌSZ0TCx#vvvYws{Uѳ4o8$t\  em|  rU%"-" 5" 6D wGJGGLI800K{2KZ4!K5666[77388B99 u:v%;;MC~KKLPLLLLKMyMNNNPPf`MT;_`o{acdlopqs>xy{|vĆj1G}¥:֫rH" ;D ( T{F%%&K&<''o()s{X<eכ1YYľ.Z a!gc:Nӝv}T3+c e ޮK  S [ c k ds {    R  e (  / }  DB[ "g'q+ 03]6[: C 5HGQO0TJ[p_bkux| DX¼$$v$$$$wh<M cnwW<%qY4k3EYm#I/pU.    Ak=g,g8^ " ##f'<''F3)oLt*U|*Z+Ec+fPnxÆ<-H.XT/bN`0!& { 0 $ ) , \5 V _ f l q l1Uy a x2# 2 39 3| z o G I   K # % % , 6 ^; C }L qM ON /O O aP P -Q Q R 'S NS S T uT T (U U V wV X Y _Y Y :Z Z [ L[ [ \ \ ] 3] 5^ 6\^ 8^ _ q_ _ 3` ` ` Sa a b ab b c oc c #d }d d Be e Hf f 9f \g g h j j 2k k l `l l m m m n n ;_o B=o >/p 2@p p Xq q r tr r (s As s 6t t t Du u u Pv v w "Cw Dx ux Fx 1y y y X| | } s} } B~ )I~ J~ ^  ] ŀ U5 #W X Z_ ӂ 6 J [X f  t ̇ & ] c X^ K  Y ʋ C ` ی ^ ю M = ʐ a g + i A Ė -  F N O  ^ Ĝ  D ` h I ٬ g `V ` `"b` rd"I F zdd faI  f} ff gc gI ) g2 g> 2iF lI J DJ J J g ۓ ͓   k  r ˝  o  I B ! ] O Ƣ U ] e Թ  v D L  C 4  HP . K 3 L <J2Qp9X # B g  f !)***+<*++f*,,,-(-O-p---.|/D00j1n:JC)DDEEEFJFFFF$G]GGGGH2H[HzHHHJJSTp?E7Q9];i=LIJK[Ndphn]l?l9Wާæ0& Gn)nǶu]K61ppiuM@N%t&>()q+.,t9<:)KL+OPQ+TbVXZZ[]K_ab>CH<Gl=s#MNcN.;Tu)*00Y4z47799r<<>?`AA C,CeFFK6KJNkN>S_S[U|UXXZZ[[a b/ePeffm/nu vzzւƆ͉?`ΐUvܑc q'jAQPRnйt;^H@w"{Y];: ɐkt=pR{Z<D ֳLD&j4D)jcJ/pi ?rάj(Vu߹VN"& dhkpb ]~ \v:P >\_$CiZ gP:s 2N""#%x&&*`*6+M-,.._??)@@@HAAtBE5FFFTGHLbMMMMNhPQVU-V~ZT_*dim{nRowo5p[qqQrtvHwwwxgyMz3{||}~}cI/LJlECg8n A{R,h|D\Lk8k   '$mfuHr \s1"}"q8(w({    0++,--?..k/00511i233044j566977f8\9T:H;<<3=*>&?!@ABCD EEFGHIJKkL=LLM`N7OOІ ( z BPQ0RQRRRKSlS#TDTTT2USUUUQVrVVWbWWWWRXsXY0YYYZ/ZZZ[0[[[\@\\\]Z^ _/__jd1e{e ihiijnnmnrp|zPʘdӓE~Eoo$pEpppFqgqqqdCЌ +/I2G8D)48H8w -e .Li5\OQ6 778S99:;D;; <?==>?+@a@?A9A?AB*BaB?C8C@DCCR|RRihhomoo0pqpuvw`wa w Z Z [ P[ [ \ \ ] 3] 5^ 6`^ 8^ _ u_ _ 7` ` ` Wa a b eb b c sc c 'd d d Fe e Lf f 9g `g g $h j j 3k k l dl l #m m m n n ;co C=o >3p 3@p q \q q r xr r ,s As s :t t t Hu u u Tv v w #Cw D!x yx Fx 5y y y \| | } t} } C~ *I~ J~ b  a ɀ U9 $W X Zc ׂ : N  [\  j Ć  x Ї * ] g Y^ O ] ΋ G d ߌ b Վ Q A ΐ e h / m B Ŗ .  G  O P  _ Ŝ E ` l  M ڬ h `W ` `#b` sd&I G {dd feI  f~ ff gd gI ) g2 g> 3iF lI J HJ J J @K K K 9L L rL OM }M M M VN N N FO O O P P P "Q `Q Q Q 3R ~R R S hS T S |T U GU U ZW Z ^ e l q x `}  T  N  $ K }  k  9 j  Q G : ^ ( mH o  ȷ L ` y o  8  W ɶ .  % Ѷu Q  8 T ߶  k & E AO   r  1 s   P   r& & +' q' ' O( IR3 *0 1 5 u3 E5 7 j5 8 9 9 9 ": : 5; QA Ya[a iks qy  =  ɷѷf ٷ  ' S( ) zB ZT n Ho !z| p} } } ~ T~ ~ ~ ~ R ) S Ɓ N v ) 1& 9 A  P ? k ߓ Γ  n  s ̝  p  M F % a P ʢ V ^ f չ  w E M  G 5  IQ 2 O 7 P @K3Rq:Y $ C k  j !)***+@*++j*,,,-)-P-q---./H00n1r:NC-DDEEEFKFFFF%G^GGGGH6H\H{HHHJNSTq?F7R9^;j=LIJK\Nepinal@l:XߧĦ1' Kn*nȶv^L75ppjvNAO%u&?()r+.,u9<:*KL,OPQ,TcVX[Z[]L_ab=dtfhjekmoqOs|2~E܇;r.rWr"sLqu,tS<"ԡlR8ЪhN4̳~dJ0ȼz`F,LBBB CJCCCDHD<97852-)*)+,0169:?<>BBGL=KpAw'MNdN/<Uv)*00Z4{47799s<<>?aAA C-CfFFK7KKNlN?S`S\U}UXXZZ[[b!b0eQeffm0nuvzzׂdžΉ@aϐVwݑd r(nEUPRoѹuξ_IAx#|Z^<; ʐlu>tS|^=E׳MH'k5E*kdK0qj!@vҬn)WvZR&*hllq fa`z;P?]c%Dj[ hQ>t3R""#%|&&*d*:+Q-0..`??*@@@IAAxBE6FFFXGHLfMMMMNiPQZU1VZX_.dimnVo{o9p_qqUrtvLwwwxkyQz7{|}}~gM3ˇp I Gh9o B|S-i}E]Ml9l   +(q"jyLv`w5""r<({(|        4++,--C..o/ 00911m233444n566=77j8`9X:L;@<7=.>*?%@ABCDEFGHHIJKoLALLMdN;OPц ) { CPQ1RRRRRLSmS$TETTT3UTUUURVsVVWcWWWWSXtXY1YYYZ0ZZZ[1[[[ \A\\\]^^_3_`nd5e|e iiiijnnmnrp|zQ˘eԓFFoo%pFpppGqhqqq=r_rssteuu 5 z 8 uvxxz{bф@aϊ}No"ߖ0=^Efߢ\} +=ݭawx(6M6]~Ǽ0l3|jxu3NTCE>_t>h(Rv9 BhGF7".1O4<&#>} 3pk4RodI2N6T788Z9::::;0<<=0>> ?3@? A?A2B? C@CR_hamooo6pxppu wgwwCx~l*-QK#>T8 "xJZS9T!vvvdw]ٳ@gõ+"%  ( R@002a4=667b77:88J9%::-;;yCKKLZLLLLRMMNNO=OP8``K{zc4A"#%U&5''w(()X@ABEFJ*NS;UXZ[aefmukzs5CʒQؓ_m:J#ZD.`Ҫ0k/]|ǹ$OWx]ZwmoxEcyj +Jp#a!3$b!X""#%&&*Y*g+F-7.u.? @o@@0AAABE{FF6GMGCHLmMMMMNPQOU^VZ_[d1imnKopopTqyqrtvAwwwxy~zd{J|0}~~Ȁz`F,ވĉeQO}p AwJ![5qO>etp;XhN,t   *nA~3uU lA *""1(("++,$--J..v/00@11t233;44u566D7789:;<=>?z@rAnBjCgDdEWFWGWHTIRJOKKGLLMN0O P؆ 0 7PRR+STTUU1VVBWW2XXnYYeZZx[[\\]S^_(_/`cdN}&3k4Ro<cVX6778Z99:;K;;<F==>"?1@? A?A0B?C@DRphhomop6pxpuv wgwg w Cx~J  ;4)!r#N%*' /OQ,SK8TU#WFYZ>d2\} @^ _acb"{eikxJzxZ7 ҌSa9TJ*!vvvdw]ٳ;v@+{gõ+ 'y"\% <" 6D( RGSI@002a4=667b77:88J99u:w-;;WCKKLZLLLLRMMNNOPPn`UTB_`v{a#cdl&opqsExy{|}ˆq 9NʥAݫyR" BK! / [O%%U&H''w(Č()XClޛ8 &$ ) , /d5 V -_ +f "&l +r /s1]y 5i -  2+ $: $A  8 9 . H w ; . ?O  `Q  T R i# % % -, 76 f; EC EL xM VN 6O O lP P 7Q Q R 1S YS S T |T T 2U U V V X Y gY Y EZ Z [ W[ [ \ \ &] 3] 5 ^ 6f^ 8^ #_ {_ _ =` ` a ]a a b kb b c yc c -d d d Le e Rf f 9g fg g *h j j :k k l kl l *m m m n n ;io I=o >9p 9@p q bq q $r ~r r 2s As s @t t t Nu u v Zv v w )Cw D'x x Fx ;y y y b| | } {} } J~ 0I~ J i  g π U? *W X Zi ݂ @ T  [b  p ʆ $ ~ և 0 ] n _^ U  d ԋ M k h  ێ  X H Ր k n 5 s  I ˖ 5 % M  U V  e ̜ ' L  r  T o ^  )b` ,I N d kI  'f k II ) 2 :g> /9iF lI J NJ J J FK K K @L L UM M M M \N N N LO O O P P )Q fQ Q Q :R R R S oS T T &U NU U aW Z ^ (e "l q #x g}  [ U + R r ć  ? q  W M @ d /  O  v  η R g  v  > ] 4 + { X  ? Z  & r , K U   x  7 y   V   x& & 1' x' ' V( X3 00 1 5 {3 K5 7 p5 8 9 9 ): : ;; A ba rs   D  m   ' Z( ) B aT n Oo | v} } } ~ [~ ~ ~ ~ X / Y  ́ T } -  W r  t " y ҝ $ v ƞ  T M , g  V Ѣ    l ۹ ~  N < W 9 V = V FR9Xw!@_ * I r  q !)**F*+p*,,/-w--./O00u1y:UC4DDEEEFQFFFF+GdGGGGH;6232459:?BCHEGKKPUCRwH~.MNlN7'B|i*"0479<?A 3CF=KrNfS UX Z['bWe f%6n+vzg} .uL!\#QRvع|վfPH*a eCBҐt|E{eL޳TOr<M2rkS8xq(F!}٬%u/]|ǹ$aY-1osswmhgAPEcj +Jp#a/nWE$z9X""#%&&*k*A+X-7..Hf??0@@@OAABE{$| }}~nT: ҇xQOp AwJ![5qM e&U t A t    31y*rU~"i>""E((" ;++,$--J..v/00@11t233;44u566D77s8i9a:U;I<@=7>3?.@&A"BCDE F G HIJKKGLLMkNBO P؆ 0 JPQXRRsSKTTZUUyV WWWzX7YY6ZZ7[[G\\]e^_:_ `ud u%vx {gՊu( 6dl1 C~/=ƹT<μ½7s:{9T[LDezD.|@&HoN'*1N  K;?1@ AA0BCphopu9vKK.KL/MNPO%%H'ɨ6z! dw"#FlP 7Q R 1S YS 2U V X Y Y Z W[ \ g g j j k kl *m m x y b| |    d M k   ێ   H k > 5    $  I J K L M N LO O )Q :R R 0S &U NU   U  +   *r ć    M  @ d /  η   >      ?  r  ,  & x' 8 9 v} } [~ ~ X  : }  &   t ؜  ,      N U T! ***+,,/-w-L.0O01C"EI8TrrvjzЛ˜*\*TBBRCCD=-~Q̣e|:^**Rt `* 4)094e79R<>@ABEFJ*NS;UXZ[aefmukzs5CʒQؓ_mBחը` 6d d t:J'"B#/&)*-,?@B!FG1MMNQUSn]o pfqr.wTw)xNJ`' 1Ui>"E(+8-LM8NOQRR+STTUU1VVBWW2XXnYYeZZx[[\[]^__ehmjnopp&qqrrt0uuxzA\-$;ͮ@:~ jӻ<μ~NBE_}zDszD.|T*mm>N&9"q:XujO8T   6Z788`9 ::;U;6<<=6>>?9@g@?A?A?A B8BgB?C>C@DxTrhgmomp\ @^ _ac"({eik~Jzx`7 ҌSa?TJ*'vvvjwc߳;vF+{mɵ1 'y(\+ <" 6D. XGSIF002g4C667h77@88P9+:u:w3;;CK"L`LLL9MXMMNN OPn`UTB_`v{a#cdl&opqsExy{|}ˆq 9NʥAݫyR" BK! / [%&[&d''}(Č.)XClޛBY Y˾?Za20nkA%_}˨w Il>-lFc"c "'#+.2 6 :x=G JSVZ_bet=x{('Ÿ-Tm g$3,w)K\r$}-fL%fAx@R fz0V<',%e >   ' Q{#Mw<xHn #';A(L:)OY*M]0f+n~xvgY_C-O. [/g09-   $ ( , 5 =V ^ f k q x s1 E W ̐ 2 2 = q -  k f  } 9  u# $ E% i, `6 ; C 0L M N N {O !P nP P 9Q Q aS S T T T 4U U V V Y mY Y KZ Z [ Y[ [ N\ \ ,] 3] 5^ 6l^ 8^ )_ _ _ C` ` a ca a b qb b %c c c 3d d d Re e Xf f 9g lg g 0h j @k k l ml l ,m m !n n n ;oo I=o >?p 9@p q hq q *r r r 8s As s Ft t t Tu u v `v v &w )Cw D-x x Fx Ay y z | } } } P~ 0I~ J o  m Հ UE *W X Zo F Z  [h …  v І * ܇ 6 ] t _^ [  f ڋ m n  ^ J ې @ t 7 y ߔ  O і ; + S [  \ ě  k Ҝ - R  x  Z %  )b` ,I d kI f &$ I . = gF 9iH lI J TJ J J LK K L FL L xL UM M M N bN N N LO O O P %P P /Q lQ Q Q >FAgABCKFlFJK0NQN$SESAUbUXXZZ[[abe6effmnuuqzzy݂͆ԉ%FՐ;\‘IjВWxޓe sDח*QRvع|վfPH*a eCBҐt|E{eL޳TOr<M2rkS8xqߨfت6b 5c͹ *^:f}"f APKiq11Pv)gv@'L+)"^"D##1&&)**n+->.8??@u@@6AABBB'FFF?@xAtBpCmDjE]F]G]HZIXJUK/LuLMLM:NNOP߆ 7 QR7RRR1SRS T*TTTU9UUU7VXVVVHWiWWW8XYXXYtYYYZkZZZ[~[[\&\\\]]]^__6`eCehViiojjnomnrp|z%XјlۓLo p+ppp,qMqqq"rCrrQst2usu{ ;  > vxxzzGhׄ%Fb3TĖ"C*KĢAb"­ӮFg<޶ pj[ٻBcμ"NAJM~gSJkFu Jn 4XV ,NU>Mx]Fb8M!6h7&88n9:: ;D<-<=D>>>@l@ADA=BlBCCCDTumomJpp*ww w ex= ^4%)!#q%M'GJnOQOS+h[T V@WiY[[ qU\ c^# `ac9?e#ikKzx%څ8@֐S֑^TJƘuU>vvwwz^]N+H= R?F _" 6DI sGzI]0024Z66777W89g9B:6u:'wJ;;"CeLL]MMOPq`fTS_`{{(a4c*d,l7oprsVxy{|܆J'Ô_(ۥRWȵ"#S,\2 @* l &'(S)Xo ԝbY9ҵYcZ@aV1PԜmQ1, dYHa3~=z "0':+.2!6 :=G  KSy[&_betTx{CB88Lk6$JC@bs%0;D} c%%\0[m%9KqWBI0b  ! K uGq 6`l 4';A,(,L])PY*h]Gf ,nx~pvf-ؽr.!~/0PD( +  $ ( , !5 TV ^ f k q y 1( \ n 2  I T D - }   P  # $ \% , w6 %; C GL /M N N O 8P Q Q S 2T T T U V Y kZ +[ [ \ C] 3] >5)^ 6^ C8^ @_ _ _ Z` ` a za a .b b b l l m n o ;o l=o >Vp \@p $q q q Ar r r Os As t ]t t u ku u v wv v =w LCw DDx x GXy z 5} } ~ g~ SI~ J U\ MWҁ X, =Z ]  q ˄ % [ م 3 A M -]0 ^ r -  u  $ ] ߖ I Ǘ 9  a ™  i  j қ , y ;  m h 3 &  Gb` /I d nI f/ 8$ I . = gF SiH *lbJ J ZK TL ZM N pN O P P Q R R S T W Z ] d k q w '} Ԃ o ) ] |  ( l ǵ -  > y z 7 H [ 1 h X     : ~   [   }& ' w( [3 A0 1 5 3 P5 7 5 o: : ; A a s :  ( ( l) B T o o D} } (~ ~   4  < Ȋ (  1 3 ՞ _  X e A 3 ڸ -  P % u M  j e ~ n( !*+++ ,.1:ID`JT?o7{9;=LIJKNpnllȟcҬY>mnL!iWpJky0%&i()+/ -9=;TKMVOPRVTVDXZ[?]v_acgdfh>jkmoqys|\~oAe e d!\. 0]0)1CIQTrvwz ӛYBBWCCŘ2Xѣj?cIU y Gڗy!.} }&ZR#?&+-PBG6MNQUXn`opiqr1wYw 6\nC"J(<8M=NO`]^__e}jnrt5u? ѼQTY .%N }  W % E & ? ]Er¸Q'9HNF?*FM2LhosMe\6fo&Z67T8 99L::,;W<==Q>>?G@u@AMAGBvBCMCETmoQpp4www|xdpz7t`py] +EGKSTWvv wwj)SVz YJ  W g0024g66277 8x899M::r;;CrLLdMM)OP`a{_"%&(()XoYYZSaic;<qfUn@)J ) "<'F+.2.6-:=HKS[:_betdx{POEE^+Z[?\t$}W:EN.zE/ : cw/CgL&i:m  + U 'Q{@{>t F';AALPYu]Tf%nx}).]TC F  $ ( , -5 _V ^ f k q !y 5 g {     U `  O :       o  # $ g% , 6 0; C RL @M $N O O DP Q Q S DT T  U U V Y uZ 5[ [ \ c] ] 3^ ^ ^ H_ _  ` d` ` *a a a 8b b b Fc c c Td d e e f wf f g ^h ik Hl m m n 6o o p `p p /q q q Kr r r Ys s  t gt t u uu u 'v v v dw w Lx x gy 3z I} } ~ w~ ~     ܁ 6   o ǃ ! { Մ /   =   K   W  : ʉ "  <  Ō  * |   P   +    \  S   t Ι & q ̚ #   6   G   x  o : 9 1   ?I  xI  < W$ I / = F H yJ J yK [L dM *N N &O P  Q Q R R S T /W Z ] d k q w 4}   3 Ą d -  Ҏ : v ѵ :    2    Y    a ' p    L G   b   D   % e  % & & ( ( e3 "5 Z5 $7 }: ; ; -B a s  J    %  ,( ( ) B T !o o Q} } 5~ ~   9 A ‚   I Պ / , B   ?   j  d  ѡ o      n  1  Y   v  l u !%**5++,.1:\D_EgJUlnp!rTsvzK4db;kMfL2ʤ|bH.ƭx^D*ܵ¶tZ@& ؾpB*CC(D_}`e~fjnorOulxz}|c~BՉ*'ڛ.I"Tigeca_][[[[[[[[]_acegimq u y}!$'*-0369<?M1NN3<-ĸSF);1JAPL8 7"#&)+_.H?B,FYHMMN RwVZ_rdHinprtwxyz{{a|G}-~߀Łw]C)ۉjhcRSpgF.+ 2M&X "(4LLN"P H Q]L`Uehk$oo`su vDZumܻ 1SO`zi#  vBih^7<Yvgp' @_)67U8!99M: :,;b;X<5==R>>?G@u@?AMA?ABGBvB?CMC@ EThmompRppv6ww w xE !f4-)!#y%U'fr|P QYS9vcTVbWY-[r{_\ k^-`acGIe+ikKzx/BHSޑTRΘ}_Yvv wwflVô+!3UZ \#|\L i" 6DZ GIi0024i66477 8z899O:@u:4wt;;*C L%LrLLLc;d4l?oprs^xy{|&‹R/˔g;Z_е"% +c4f: H2 t%&|&'(()X|ޝrYAڵYZWam9fu Y1>># tiXqC ,M + ">'H+.206/:=HKS[<_betfx{SRHHb-@$\]A^v&Y<GP0|%G2 = fz2Fj"OyS*m>q  / Y +UDBx #H';A4(CLe)PY*x]Vf,'nxp-|.+0/!0_VE H  $ ( , /5 aV ^ f k q #y 17 i } 2  W b Q <    q  # $ i% , 6 2; C TL BM &N O O FP P Q \Q Q xS S FT T U uU U 6V V *Y Y Y xZ Z 7[ x[ [ \ \ e] 3] K55^ 6^ M8^ J_ _ ` f` ` ,a a a :b b b Hc c c Vd d e e !f yf f 9'g g g `h j kk k Kl l m Km m Rn n 8o ;o v=p >bp f@p 1q q q Mr r s [s As t it t u wu u )v v v fw \Cw DNx x $Gx iy y 5z | K} } !~ y~ ^I~ J!  (  U WWށ X8 GZ  q Ƀ # } ׄ 1 [ ? M Y 7]< ̉ ^$ ъ > ƌ  Ӎ + $ ~ "  Q M ,  ] T  u ϙ ' r ͚ $ 7 H  { @ - p ; ; 3  Qb` ?I d xI  f> Y$ I / = gF diH 4lI #J zJ J K zK K L \L L zL dM M M +N N N 'O bO O P P 'P Q EQ nQ Q R RR R R HS S T S T nU 0W Z ] d k q w 5} σ 5 m ń 8 d } ч + H ( /  T Ԏ = x ӵ <  O y 4 [ $ a ) r D  L  I  b     D   % e  % & & X' ' ( ( e3 X0 1 "5 3 Z5 $7 5 9 : }: ; ; /B a s $ L  '  ,( ( ) B T !o o Q} } } } 5~ l~ ~ ~   9 Ձ A ] ‚  J ֊  / + ” - C @ & j  d  F z ҡ  p J  6  p  o 3 } Z  w l u2Ba *Iz 3 R m  l!!&****6+W*+,y*,,,-8-Y---d..(0e0511:C]DaEEEF;FtFFFGNG{GGGH#HLHkHHHIiJYTU?w79;=LIJKNpnlt"П%mڬcHnT+!qpRs8%&q()+ /-9=;\KM_OP'R^TVLXZ[G]~_acodfhFjkmpqs}f~yKo!r>rrUsvvzzK4d b˖;kۛMgM3ˤ}cI/ǭy_E+ݵöu[A' پqaBBB*C_CCC(DEMEEFGGRHHI$JJ]KKL4MMoN OOIPPQ#RRaSTT>UU|VWW\XXYڛ1.dIݣv"TKoigeca_][[[[[[[[]_acegimq u y}!$'*-0369<?KS+ʼd/ǿ`)^.]3n HU-Q]M1NN$=^)*00B4c4n7799[<|<>>IAjABCNFoFJK3NTN'SHSDUeUXXZZ[[a be9effmnuutzz|І׉(Iؐ>_őLmӒZ{hvO3<QRѻiaC|%~^[4-גyÞ%IRp:fl }۪]/)µƸGfйA 6UH+=3nP/Mk.L4Z KqCQAbM9 8""Z##G&&)K*++-`.I??@v@@9AAXBB,FFF?GGYH>MMMMNNQ RVwVZ_rdHi`nnhoppqq)rrt9wawwQxxyz|{b|H}.~Ɓx^D*܉ jhyJS*d>zcRSpgF.+   B52hMz&X O""V((+,,,--R..~/00H11|233C44}566L7D889:;<=>?@zAvBrCoDlE_F_G_H\IZJWK4LLPLMENNO"P H QR:RRR4SUS T-TTTU??P@~@?(AVA?ABPBB?'CVC@4EThmo&p[ppv?ww xx'uH#q#n <VX.KTThvvww{Ҵ:d϶,z[  x x0024x66C778899^:;;<CL.L{LLLBMmMMNN8OP` a{k#%&&'$(() YYYZuau &ȞQVMɮp[#De4 "G'Q+.2968:=H2K T%[K_bftux{qpff%6ĹklPm"5hKV_?$VALu-AU y1^9|#M  > h :d)SQ #Q';ALL.PY]ef0nxŖƠ4?*h_T W  $ ( , 85 jV ^ f k q 2y @ r   Ԟ , ` k Z K %    ( # $ r% , 6 ;; C ]L QM /N O O UP P !Q |Q Q S S UT T U U U VV V JY Y (Z Z Z @[ [ \ \ ] t] ] D^ ^ _ Y_ _ ` u` ` ;a a a Ib b b Wc c d ed d *e e 0f f f Gg g g oh k tk k Tl l m km m rn n Go o p qp p @q q r \r r s js s t xt t ,u u u 8v v v uw x ]x x y xy y Dz | T} } *~ ~ ~ A  H  G  ؃ 2 @ N  \  h K ۉ 3 M  ό L : D ׏ 1  d Ɠ ` 5 ! l c ʘ # ޙ 6 ܚ - F W $ S @ y Ь D Y K  KI I  \ q$ I #/ = F I J ,J J J 'K K K ,L eL L L pM M M :N N N 6O uO O P P -P Q XQ wQ Q #R eR R R [S S "T S T U 9W Z ] d k q w >} 3 > Ԅ > m ׇ  1 Q ; K  t ݎ [ K ö , Ը =  { D + m I  { J   [ i 2  n   P   1 q  1 & & a' ' ( ( q3 .5 f5 07 9 : : ; ; \B a 't i s - T / ;( ( ) B T 0o o `} } } } D~ r~ ~ ~   ? ށ G f ˂ < ؅ h 8 @ ה < R O , y ˟  s Ġ  Y ,   H  x Q i ) r {/Kj3R < [   !!9***+?+`*+,*,,,-A-b---w..;0x0H11: DmDEEE FDF}FFFGWGGGG H,HUHtHHHIrJyTUlnp'rGrrvsvvz {[D$t”rіK{ ]7w]C)ۤsY?% ׭oU;!ӶkQ7ϿgBBB:CeCCC8D$EVEEF%GG[HHI-JJfKLL=MMxNOORPPQ,RRjS TTGUUV%WWeXYYEZZ['\\i] ^^_`efjnor`u}xz|t~Sމ30טD:?jRƥ|3]Qĭuѳywusqomkkkkkkkkmoqsuwy}  !$'*-0369<?T(ù\4Ӽm 8пi2g7f<wQ$^6WcMANN -Fg) *00K4l4w7799d<<>?RAsABCWFxFK(K~$ ցnT: &z$xS$\3m Gl[dxW74   H>CnV7a U""\((+ ,,5--[../"00Q112 33L445 66U7J889:;<=>?@AB{CxDuEhFhGhHeIcJ`K:LLYLMKNNO2P X Q"RCRRR=S^ST6TTT$UEUUUCVdVVVTWuWWWDXeXY"YYYZ!ZwZZ["[[[\2\\\n]]_&__\`eeeibiijkn5oop7ppp8qYqqq.rOrspstCuuvxxzzSt„1Rn?`Ж!.O6WТMn .έ߮RsQױ͸{v+}'No߼A_ceiz7Uo,Vz@dg8X%J&  % c ' E4ew"M . 9kx+J78}Wt0@[AB[CzETGn P x uQ-4)"#%'zZP$RSMTgV*XY[(s] ^Ai` bRd[ei%lL{:y;6Y42U"Ѣxd?TAcu·8 w(.v"+7.E HI124uw <~CtT_acdlopkrtx&z |}8ވzY9J$+yb'^3#-8o<(  (f&L)Ж@h2.oSZalWH`'͞w زƾ:o|/=kIKGf}}n 6%=&>(R  C m ?i.XV A()QP+]h,-./013" o 45)78:R<=B?@2BCExGIQK3VW#YZ\]^˓ מ b 7 bJa3 e  7 %gs $ :/ 3hilL L P /P $T S r ҹ ' B   0   ( 0 32 3 5 ; B b t y F ) C 3U o n  A  > $  8 Y 3 ` Ѹ t }To !D+$,.1:wJU?79;=CMJ(K7LNpnmȚv$yoT.oVuZpTskKC:D%&(6*+`/g-9c=j;KqMO$Q{RTVXZJ\]_ brcdf2ijk"nYprsY}~ĺ>bÉsv{`I)ywP|bH.ƥx^D*ܭ®tZ@& ضpV<"Կ[EEF*GG`HHI2JJkKLLBMM}NOOWPPQ1RRoSTTLUUV*WWjX YYJZZ[,\\n]^^_`efjnoreuxz|y~X85 DW8b~|zxvtrpppppppprtvxz|~  !$'*-0369<?Y-ȹa9ؼr=տn7l <kA|V)c;̖HnQSE%B", y[sZ+;ͧ)yB ԰fܹDе,HPXN#+BnH%O"RVZ_d]inprtxyz{w|]}C~)ہsY?% "X)a8rLq`i}\<9  H[<f "(,,:--`../'00V112%33Q445%66Z789:;<=>?@ABC}DzEmFmGmHjIhJeKLN]a`k4nIosq}%{5hىY\ԧ&us    ܱ F"06^ @ABCyR^ho  ~א!| |C714i#E%!'(Q#S/TUW=YZ\I~a 7^ _a?Pcrephkfnz1P ȌXp742m"r~cVKp>LS#" %r9uG-JIK_2>46v|1CJ9_7`cdkopqs0@A CDF'IJO!WXZ[]V^`#  7 pd b' f ^ gD ) 2 0ilmO   '0 1 <3 4 6 @ ^ q -  Z & @ R Tl f{ w  ˓ U ; S ҹ   I 7 's8d~^ )+,t/M:BCBS=lIO9[;g=n?YNJKLOxbp'nAU.ܧ v$pŶs![4gIqqz r&<()o+,6.:D<L)OPQ)T`VXXZ[]I_ab:dqfhjbkmoqLs u/~Bه8euy~S3 ߑ2# ՠmS9ѩiO5ͲeK1ɻ{aG-ETFFG%HH[IIJ/KKiLMMANN}OPPWQQR3SSqTUUNVVW.XXnYZZO[[\2]]t^__bdei*lBortw$z{}qCC؏i<Pg%I:  #&*-03 6(90<8?@BEO,ƽb)Z%^'\1l F}QTMOKGA<@>?;9.,'#   #(?|k9IRKTιr˾\F}>u yW[98i:r;:yB$ ԳJ޼2nBa'tHg-wYlnwU2%E-ELPNU]Z^cgh=mJoSq`tvRy8z{||}~hN4̆~dLS&_6rLf.F(uGG  m@Tk)"0(!+b,,-!..J//{011D22y344B55y677A97:/;#<=>?@@ABCDEFGHIJKL/OR^bd nnpz~r|߇NTѓȘحs 5 % w l$ (C@d&1Oh#7K_s';Oj/Qs5Vr / T z , G a  2 F Z n  " 6 J ^ r  & : N b &:Qh~+A]~!;Tk0TqGo,CXx #;VnF`x)Mb-Nr6Kj/Tk  9Nf "7Lav 3H]r/DYn+@Uj;Px  / D Y n !9!]!r!!!!!!"="R"g"""""##:#X#v####$$A$V$$$$$$ %$%?%g%|%%%%% &'&<&Q&f&&&&&&&'('=']'r''''''((/(D(j((((()$)9)N)r)))))))&*;*P*e****+3+H+]+r++++++,',<,Q,f,{,,,,,,-7-N-y-----..:.Q.t...... /1/H/l//////010R0s0000011>1a1v111111 2 2<2W2l2222223393N3c3x3333333 4 4M4u444444!565K5`5u5555555606E6Z6|66666667$797N7c7x777777838K8c888888899-9B9W9l99999999:):>:S:h:}::::::;;.;C;X;m;;;;;;;<<*<?<T<i<~<<<<<< =$=;=P=h====== >$>9>X>m>>>>>>>?>?S?h?????@0@E@Z@o@@@@@AA+A@AUAjAAAAA BBJB^BrBBBBBBBBC&C:CNCbCvCCCCCCCDD*D>DRDfDzDDDDDDEE1EJEaEEEEEE F#FAFXFsFFFFFFG)GJGaG~GGGGGHH1HQHhHHHHHII5ILIiIIIIIJ;J_JxJJJJJ K$KAKVKyKKKKKL!LBLYL|LLLLLM4MWMnMMMMMN(N?NVNwNNNNNO1OHO_OOOOOOPP3PGP_PwPPPPPQ1QMQqQQQQQ R(RJRhRRRRRRS7S]SvSSSSSST(TATZToTTTTTTTUU,UAUVUkUUUUUUUUV(VDVaVvVVVVVVV WW3WOWgWWWWWWX7XSXlXXXXX Y(YJYeYYYYYYZ8Z^ZwZZZZZ[)[A[Y[q[[[[[[\@\\\u\\\\\]1]S]n]]]]]^ ^A^g^^^^^^_#_8_M_b_w_______ ``7`O`n``````aa6aSahaaaaaab/bMbqbbbbb&c;c_ccccccdt]twttttuu2uVusuuuuuuvv0vHvdvyvvvvvvv w!w6wKw`wuwwwwwwwxx2xGx_xwxxxxxxyy4yLyfy{yyyyyy z#zBzWzuzzzzzz{3{S{l{{{{{|#|E|c|~|||||}2}X}m}}}}}} ~~6~N~l~~~~~~~(=Rg|$9Ncx̀7Uwǁ܁ %:Rjւ DYx̓-PeĄ߄9Sr΅8Uj͆3H]uׇ 6Qmֈ0Mbzĉ܉ &G\qŊڊ.CXxы3LwҌDazҍ)HcŽ1Sxԏ$9Ncx̐+@Xqʑ.Cbyג%Gg~Γ#:Xє!6Kc}˕/D\y˖,K`xėٗ)>`u ,AYnә !6K`uŚߚ9[ԛ2Layʜߜ*H]rҝ>Sh}̞Jdy՟1Iazנ,J_ϡ0H_tޢ9Pt֣5Mdy¤Aavåۥ 7Ohæ7Og֧ 7Ujƨۨ/DYuѩ;RzϪ +C[|0EZoìج&=RjЭ$I^Ů 4I^sǯܯ7NcҰ'H_DZ4Kxղ+BY{γ Fq˴7Neǵ#8QfǶܶ0EZoԷ-Gbw޸'AXmҹ/DYn׺9`ԻA_zۼ:Ovս&=kƾ۾/Dsڿ.C[t5Oj@av )Fh7Us%=Z{ 5Lr%:Rm $9Qj)Cd:]x !>Sk1F[p-BWl $<Sh}2Jby !6K`u2G\q.CXm*?Ti~1Kdy(=Xm "7Pp'Il,Hm7[-Qx:_?g|4Im"Ep!Fg4[}*Qv8a@[t8Xv @j ">Zo,Hav(=\s*Lo /Kp:^ 0T{=bBjAc!Fb .Qu!Gk-Ty1Y)Mo -Rn:] -Sw9`=e1Fav;Py 6Ky -Bav#RgCX{*?av1av !I^3Hq*?_t(=Rj+@Uj'<Qf{ # 8 M b        , D \ s        + C Z o         , A V k         6 M h       (E_w=\x %=Xm5Jbz 8Uu/J_w*EZr:Rm)E]u0Rq6Qq &;Sl/Hf~ &C[u!9Sm0Pl6Ke~*BWr ' < Q j     !!=!\!!!!!"+"O"i"""""#4#I#b#w######$$=$]$y$$$$$%8%[%~%%%%&,&O&s&&&&&'+'T'r'''''( (9([(v(((((),)A)c)x))))))*5*J*m******++6+K+g+~+++++,%,A,],|,,,,-#-F-j-----.;.^.~...../1/P/t/////0C0]000001(1F1d1111112@2_222223-3S3v333334414L4a4z44444 55<5Q5r555555 66E6Z6|66666 717F7i7~77777 8"8E8Z888888 939H9]9x9999999:5:O:l:::::::;$;9;N;c;x;;;;;;; < <5<J<_<t<<<<<<==0=P=e======= >>3>H>]>|>>>>>?)?U?j??????@3@H@q@@@@@A*A?ApAAAAAA B5B[BpBBBBBB CC3CKC`C{CCCCCCD*D?DXDmDDDDDDEE1EFE[EpEEEEEEEF.FIF^FuFFFFFFGG3GJG_GvGGGGGGH$HaSaha}aaaaaaab%b:bObdbybbbbbbb c!c6cKc`cucccccccdd2dGd\dqdddddddee.eCeXemeeeeeeeff*f?fTfif~fffffffg&g;gPgegzggggggg h"h7hLhahvhhhhhhh ii3iHi]iriiiiiiijj/jDjYjnjjjjjjjkk+k@kUkjkkkkkkkkl'lvSvhv}vvvvvvvw%w:wOwdwywwwwwww x!x6xKx`xuxxxxxxxyy2yGy\yqyyyyyyyzz.zCzXzmzzzzzzz{{*{?{T{i{~{{{{{{{|&|;|P|e|z||||||| }"}7}L}a}v}}}}}}} ~~3~H~]~r~~~~~~~/DYn+@UjӀ'<Qf{ρ#8Mbw˂ !?Xu';Ocw+?ZvAc %Fb D j  7 Q s  " 6 J ^ r  & : N b v   * > R p *AXn1Mn+D[v Dau7_3Hh+F^v 6Ph=Ry>b&;ZoD[r)>Vo'<Qf{#8Mbw 4I^s0EZo+@h  4 I ^ s )!M!b!!!!!!"-"B"W"{""""" #*#H#f##### $1$F$s$$$$$$%/%W%l%%%%%%&,&A&V&&&&&&&''-'M'b'w'''''' ((4(Z(((((()))>)b)))))))*+*@*U****+#+8+M+b+w+++++,,,,A,V,k,,,,,,-'->-i------.*.A.d.{......!/8/\/s/////0!0B0c0~00000 1.1Q1f11111112,2G2\2y2222223)3>3S3h3}33333334=4e4}444445&5;5P5e5z555555 6 656J6l666666667)7>7S7h7}777777#8;8S8u88888889929G9\9q9999999::.:C:X:m::::::: ;;3;H;];r;;;;;;;<</<D<Y<n<<<<<<<=+=@=X=p======>)>H>]>r>>>>>>?.?C?X????? @ @5@J@_@@@@@@AA0AEAZAAAAAAB:BNBbBvBBBBBBBCC*C>CRCfCzCCCCCCCDD.DBDVDjD~DDDDDD E!E:EQEoEEEEEEF1FHFcFzFFFFFGG:GQGnGGGGGG H!HAHXH{HHHHHI%IpSpkpppppppq)qAqYqrqqqqqqr#r8rWrlrrrrrss:sYswssssst.tMtgttttt u"uFucuxuuuuuuv v8vTviv~vvvvvvvw&w;wPwewzwwwwwww x"x7xOxgxxxxxxx y$y~\~q~~~~~~-BWl)>Sh}Ԁ'Eg|́*BZtƂۂ4Ihۃ@Utτ)Cbׅ(EZrՆ#8MeLJ߇&A]rƈۈ =Rj̉7Lavʊߊ 3Hh}ً #<gŒ 4Qj8Ssَ!Chďޏ)>Sh}ѐ0Haё 3Riǒܒ7Wnܓ*Hp&;Smӕ4LiЖ;Phɗ.Pe}И1I^vÙ&;Pe}Ϛ )Koěݛ "<QiϜ8Mbwם.CXmܞ:Ti~şݟ !9QjǠ:Oyԡ 8Od|΢)@d|ƣۣ %=TiӤ 1Qf{˥'?XyԦ'?WrƧ'EZs˨ 4Ie}٩ +BjԪ3Klҫ 5J_tȬ-BZr9NrЮ$9Ncx̯ '>Ss°8Or߱ $;hŲܲ2Ikճ6a'>Usݵ(AVp̶ 5J_}ķ7Rgθ1H]z¹׹4I^~Ǻ )PsĻ 1Oj˼*?fŽ-[s˾ 4c{ʿ߿ 3Kd%?Zx 0Qf{6Xs 'Ec-Jk%<bw*B]r)AZv3Tu *Mh.C[s !6K`u2G\q,CXm":Ri~&;Pez "7Lav 3H]r/DYn !;Ti-H]r'@`9\8]~'KrAh*Ox/Wl $9]~5`6Wy$KmAf(Qq0Kd~ (Hf0Zz.J_8Qf-Lc<_;`*Nu Dk-R{ 2Zz 1Sv6RwAe7[Di!Iq=_B^*MqCg)Pu -U} !6Qf{+@i~&;i~2QfBW} 3Hk/Qf !Qf9Nz#8av/Od-BZo0EZo,AVk ( = R t        4 L c x        3 J _ t         1 F [ p        & = X s      5Og-Lh-H]u%:Rj(Ee}:Og5Jbz *B]w5Me Ba&Aay+C\x8Vn3Kez)C]{ @\y &;Un2Gbw , A Z z     !-!L!p!!!!!"?"Y"""""#$#9#R#g#######$-$M$i$$$$$ %(%K%n%%%%%&?&c&&&&&&'D'b'~'''''()(K(f((((())1)S)h)))))) *%*:*]*r****** +&+;+W+n++++++,1,M,l,,,,,-6-Z-~----.+.N.n...../!/@/d/////030M0s00001161T1t11111202O2r222223C3f333333 4!4<4Q4j4444445,5A5b5w555555656J6l666666!767Y7n777777858J8o888888#989M9h9}999999 :%:?:\:q:::::::;);>;S;h;};;;;;;;<%<:<O<d<y<<<<<< = =@=U=q=======>#>8>M>l>>>>>??E?Z?z?????@#@8@a@v@@@@@A/A`AuAAAAAB%BKB`BBBBBBBC#C;CPCkCCCCCCDD/DHD]DrDDDDDDE!E6EKE`ExEEEEEEFF9FNFeFFFFFFFG#G:GOGfGGGGGGGH,HEHZHrHHHHHHI)I>IXImIIIIIIJJ/JDJYJqJJJJJJK:KOKgKKKKKKKK L L4LHL\LpLLLLLLLLM$M8MLM`MtMMMMMMMNN(N]S]h]}]]]]]]]^%^:^O^d^y^^^^^^^ _!_6_K_`_u_______``2`G`\`q```````aa.aCaXamaaaaaaabb*b?bTbib~bbbbbbbc&c;cPceczccccccc d"d7dLdadvddddddd ee3eHe]ereeeeeeeff/fDfYfnfffffffgg+g@gUgjggggggggh'hrSrhr}rrrrrrrs%s:sOsdsysssssss t!t6tKt`tutttttttuu2uGu\uquuuuuuuvv.vCvXvmvvvvvvvww*w?wTwiw~wwwwwwwx&x;xPxexzxxxxxxx y"y7yLyayvyyyyyyy zz3zHz]zrzzzzzzz{{/{D{Y{n{{{{{{{||+|@|U|j||||||||}'}<}Q}f}{}}}}}}}~#~8~M~b~w~~~~~~~ 4I^s0EZoÀ؀,AVkԁ(=Rg|Ђ!   Ӈ)  lӇ    l  lӇ! ÌV Ѩ  VV Ѩ VV! V   VV  VV! !   )  lllllllll!l! lll! ! !  ! lll  lll! !  ! lllll! V Ѩ  VVlVV!ll!ll! V   VVlVV!   !۷0! L! N!   !     ! P!  !  s l! l  ! ج!M!7 M! ! S!   !   !  s ll! !  s l! ! ę! P! !7 вM! l  ! !   !   !ll!ll! L!۷M! M! M! L!M!M M! M  M! LlL! !   ę!  l*  llmlm™ll! * Ψ   Ψm!lęll!    *   Ёm mЁmmRЁm! l  *Ѩ l   Ѩ Ѩ ܂mm! *Ѩ mm!  Ѩ  Ёm *  lЁm mЁmmRЁm!l*  l m!l* mm! ̑*    m!l!  mmmmm! P* PmPm!lج* mm! l  * l  mهmm!    ЁmmmmRЁm! !  mجmm֬mm! Û*Ѩ mm!  *    Ёm Ёm! * mm! ٭P* PmPm! P*Ѩ PmPm! * mm! !  mքmmքmm! Ċ Ѩ  Ёm mmmRЁm! * ۅmm!lll! * mm! P*Ѩ QmQm!l!l!l!lج! ! ! ! N!l ll   ۷l   ll   ۷l  ll   ۷l m7ґmT! ll!6  PP PP7Õ76 6mm*6ܒm7 7m˓m*m *6 mmmm m6mmm!l*   m! ll! ܒm6! ܒm6!l!۷T!۷T!6 Вm!۷U! l!  mmmmm!۷T!۷U!۷T! l#ґm     )6#777 7 )#787 8Øm#777 7Øm#ґmmm#777 7Øm#6m#Øm#Øm Øm#6m 6mm#7֘m#Ømmmm#7mmm#7mmm#mm#6mښmmm#7Ιmmm#ґmmmm#m֘mm#mmm#mΙmm#mmm#6mmm# m֘mm mm ֘mm # mΙmm؝m Ιmmm# 6mmm ܚmݝm mmm# mmm؝m mmm# mmm؝m mmm ؆     ll l ÌVV VVV VV VVVґmґm m ڕmmm l mmm l mmm l mmmĀmЁm  *Ȱ  ЁmȰ ЁmݏmЁm  mЁm666066766606   mmmmm  %%0%77         4770777m77m707  ґmґmґmґm    Ԩ+   + ,,mmmmmmmmmm m   % %% % %߻ %%  mmmmmmmm         *  l  l  lll  lll  l  l&0& &&&  ,1  ,1mm************  ; 6 m 7m  mmmm  m    mmmmm          !   m m m11111mm1mm  E  * +, 9   ,  +K+,+    6        4 44444 4.mTLL سm      سm  سm       سm    سm   سmܒmmmmmmmmm  mml l l zmm  l           l l سm  l                                                                                                   l       b   mm        m   m mm       m mm m m )              m   m   m m   m mm        0                m mm m   m    mm   C      m m  m m 0     memmmmmmm           mm00 m9m m3K3T33 3 33 33 3Ɵ1334363 313 33 33 3 3333 3Ѩ 3ݴ82 2m2m2m2m22m2 2,2  2  2  272۷26ґm m ˂  m m           m      m m  m m        m  m        m m  m  m m m    0   m  m     m m m m m   m   m          m m *  m  *  m    m m *mmm        m m m m        m m m m     m   ґmґm ۶mm  MM ŰMѨ   6mܦMlml 6lT ВmPҹMMmS٫00Pmllm VV mmmm VVMMmmUml6Nlmml ڕm6LT6lMвMTmlmlΨ mmlmlml6l T T 0 L ŝUmΨ P T 0 l  ģml  T Uŭ0 ֡T7m ΁T ġS 0 Ƣm mmm m l  m  O T m+ шN m K  0 ǢQRm ǢQm Pm m 0ǢQR ǢQm T   O T00m   TǢQR ǢQ  0mm m  ,  ml Ԩ+ T  ǢQR߻  ǢQmǢQR  ǢQ 0' )% T   $ mm  L)% L ӂ m mlmLm) % Ѳ   m  m) %   m m  m       ) %    m  m mmm)%700mmmԀn)% ΁Tmmmn% Tmm  T)% TmmmnlnT&  )% mmmnln  T)% Tmmm݃nlӃnTm)% 0mmmn.mn% T  ml U )m   m) %  m   m  n nm)% ֡Tnn n   ΁Tnln΁T %     mC)% Tnnnn m mmUm1 ) %  m   m  nn mU   &0% OmmmnmU7 0mm mnU  mU҉n6  0)%0mmmČnln0  m &ˡ m&0łU Čnˠ2 mC% mmmmm 6 % 7 nn  ֡Tnln֡T) %     m  n Ѩ     n mnnm% Tmm& % mmmm Ԁn)́nḿnn%m m m mmm&% Tnn%mmߩ  )% TmmmnmOm mm)mˑn mˑnnnm1 #m  m)%mmmmmߔn Քnm6nGmmUmm#m m  m)%Ѳmmmmn  nm& mmm )% mmmn 0      m  mnCn+)% KmmmϘn  KŘnlŘnKn  TnlnTm* mnnmTn݃n  mm# mmB #  ߓ mU m 0 m mm  nm      mnmn  T)nmnlnTՔn  T)nnnlnT%m m m mm  nln)nmn  mnlnm  0nln0 mm  m)nmnnnm0ߔn#mmn mnmm&4mmC  O)nmnlnOm  TֈnlֈnT * mm       ) ˎnnˎn nnn lm˂nm mm)mn mnnnm0)nnn n mmӛn m Ɵ1& nnnӃn Cm)nmnϘn)m%m m m mm mnnnmnU  m n̠n n  TnlnTn%     m   TmlmTn#m 00ʀn 0ʀn0mm&n  TnlnT lm  n@      ) n  n mҩnȩnCmnmU  m   mmnnnm+      ) n  n ݅mnn  mnnnmسmm nnm(0Um#  ҩnm     m m   m m   m       m m  0 m      m  m m       m         m        m        m   0    m      m m m 0           m   m m  m m m   m   m m    m             m m   0      m   m m   m   m m m  m m   m m m  m m        m 0 m  m  m   m m   l m     m m   m  m m m m 0   0 m   m  m     m   m    m   m     m    m m     m m  m m m    m m  m m       m m      m    m m     0 m           m      m m  2  m      n m n 0   m m  m         1 n ҉n    n       m n n   m   0 m m     n m   n   0    n ҉n m 2 1     m   n     m   0     n  n   m    n ҉n n 0 m n n   m 1 n n 2 m              0 m                   m  m m   m m m    m   0                 m m   m       m m   m     m ˘ m m m     m   m   n m n   n   n m   ߻   n m   m   m     0         m n m n m  m   n m            0   n  m n    ߻    m m n      m  m n m m  m 0 m m n n m    n n     n   m 0  n  n m    n   m m ߻  n         m m  0  m        m   m   m n n n 0   m     m m m m m nm      m       nm         nm m m  l m  m 0        n  m m   ߻   m m      m m n m   n     n m   m m   m m 0  m     m   m  0 m n m n n        m n m ߻    n   m  n m m       m     n       n n n n     m n   m   n ߻  m m 0       m m n m  m m           m              0      m m        m n m    ߻     m n  m n 0 m  n n n nEETELELELELETEEDEDD@@@@AA K  @AڧCCCCBB͉TB͉LB͉Lmm/m545n4n&&&( (n(n((n((ґm# 6mmmҞmޞmݝm))݈!))۷T) m)l) 6Вm) ڕm)l )l )l )۷U)۷T* Вmmm*lm*n˓m*6˓m*6˓mmm*6)mm)ґmm)7֘m)7Ιm)7m)7m*ґmґm5 66*nn*nn nЁmn* * Ȱ * L* L** * * *  ** l  ² * M* M* O* *  *݈!P* * L* * L* M*  * * *P*  * * * * * O* * L* L* M* *Ȱ * * n*P ЁmP* M lЁmM* LnL* mm* LnL*Ȱ mm* n* OnO* n* n* nnn*  n * n* n* mm* n* LnL* MnM*  mm* n)l) )mm) ΁T) l)m V) 00)mmm) m m)nU)nmm)۷m)7mm) ) T)۷m) ֡T)n0)  ȩn) O)U)mmm)  ) mm) ! Mll)  n)mmm) ) mm) 0)nmm)n )m P)۷m)ڡm V)l) T)  m)  m) )l) l) ģm) )۷V)܎n n) K)  ) m) T)Ѳ n) T)  m) ) SġS)m 0)  )m) L),,)  n) T) ! Lll) Ԩ+)  n) m)m P)Ѳm)  ) NшN)m )  +)n m) T)   ) T) mm)۷0ŭ0)nŝU) T) 0) 0) 0)۷!Mll)m V) T) ) O)m V)lӇ) m) Ƣm) l*n)n)݈!)n*ґm*l* * **۷o* ߀o*nn* n*nn)ґm*lm* l  ² *l l* R* *l* * R* Û* O*lβM*l m* * * ը* mهm* * ٭PP* *l*l*l l* l  ² * R*lM* m܂m* R* * * R* ǛS* PP* Q*l l*l l* Ψ* ̑* N* PQ* *l* PP* l  ² *lM* *m*Ѩ P* * * Ψ* R* * o* P*Ѩ * * O*o* Q* *ŰMβM* R* o* N* ը*MM* R* * ǛS* R* *Ҍo* هm*o* R* *o* *Ѩ Q* * * o*o*MM*Ѩ ܂m*Ѩ * P* *Ѩ Qmm* RmR* mm*Ѩ ܂mmm* omo*o o* mm* omo* OmO*ҌooҌo* Pm׊m* m* Ψmm* RmR*ŰMβM ŰMŰMβM*ooo* mm* m* ۅmm* Pmm* omo*Ѩ Pmm*MM MMM* RmR* mm* RmR* ըmը*Ѩ mɃm* RmR*ooo* mm* NmN* m*Ѩ mm* mm* ǛSmǛS*MM MMM* هmmm* ۅmm*ooo* m* QmQ*mom* mm*m* !Ѩ VllVl* n*mT* V* ¦n* n*ɒnn* n*n mn  mon* n* m* n*m*l!m m*܎nn* ϓn*  ) * ڨn* n* n* ! VllVl* !Ѩ ÌVllÌVl* n*۷ VV VV* n*n UU UU*mn*   ߀oo o߀o* V* n* m* n* n*   nooon* ! lll* ! lll* n* n*n mnooon* ! VllVl*۷ oo oo* m! 6mВmm m mВmm*Ѳn* n* n* n* n* ڂn*nn* n* n* n* n* n* n*Ѳn)m)m)m)m) ) )n)n)  )mm)ݏ)mm)  )mm)mӡm)ll)mm)Ā)mm)ґmґm)mm)mm)7m)7֘m)ґmm)7m)7Ιm))6*܎n *  *  *Ѳ *  *  *  *ґm)  )l) Ċ) S) l)l) l) ̑)l) ) V) ) P)  )ll) N)ll) l) )۷M) )ll)l) l) ) ) ) ÌV) ) Û)l)ll) P)l) l) M)lج) ) ) l)lM)l) V) P)l) l)lвM) ) L)lę) ) ) ) ) l)۷0) ) V) ٭P)l) L) P) P) l)l)l) m) m) )ll)l)lM)l*nm*m*mmm*nm*mm*mmmm)nm )n)nm )n )٘n)n)n)n )n )ހn)n)oшNn)nm )0)n )ցn )n )n )n )n)m) )n )m )ll)۷U )n )Ȑn )n )ńn)n)n)o )۷T )ll)ȗn )۷T )nU)n )nŝU)o *l** )m )mmm)mmm)mmm)nn)nn)٘nϘn)nn)nn)mm)nn)mm)nn)nn)nn)nn)ɒnn)ńnn)ցńn)nn)nn)nn)mm)nn)nn)nߔn)nn)nn)ll)0Čn)ll)ހnԀn)mm)n݃n)nn)Ȑnn)mm)ȗnn)Վnˎn)Ցnˑn)nn)nn) n)n)n)n)n) m)́n)n)n)n)l)n)Ԁn)m)n)݃n)mn)mn)mˑn) m)Čn)n)n)l)n)ߔn)m)n) n) n)Ϙn)n)n)n) n) n) m) ˎn)nnn)nmn) nƫn׫n) nnn)lll) mmm)nmn)nmޖn)nnn)nmn)lll)mˑnnn)nm̟n)mnۥnn)nmn)݃nmn) mnn)nmn)nmn) nӆnn)́nmn)nmn)nm̜n) mmm) nnn) ˎnnn)mmm)ߔnmn) nnn)nnn)Čnmn)nmn)mnnƣn)Ϙnmn)nmān)nṅn)mmm)Ԁnmn))l)) ! Ѩ mPۍmmPۍmm) * LnnЁm)7# m֘mm؝mmݝm) * OnnЁm)l"Mo*MMoǛo Moo o) !  mՋmmՋmm) !  mmχmm mχmm) !  mmmmm)  Ѩ Ёm  mmoMЁm) ! Ѩ mÛmmmm) * Rmom)n*nnnnЁm) * nnЁm) * Rmom)   Ёm mnmMЁm) * RmҘom)   ւo  mo ւo) ! Ѩ mPmmPmm) * MnnЁm)l!  mm ommm) !  mmۅmmm) ! Ѩ mm҂mm m҂mm) * nnnЁm) * nnЁm)l*ooo)l"˰Mo*ŰMβMoʖo ˰Moooo)   ol*ooo moo lo) !  Ёm ҉mmM҉mЁm) !  m߈mm߈mm) * Rmom) * LnnЁm) * nnЁm) * ǛSmom) !  mۀmmۀmm)ґmnݝm) * mom)   ol*ooo loo lo) * nnЁm)7# mmm؝mmݝm)  Ѩ ol*ooo moo lo)   ol*Ҍooooooo) !  ЁmmmRmЁm)7# mΙmm؝mmݝm) !  mmm߇mm) * mom) * omom) * nnЁm)݈!*PnnЁm)7# mmm؝mğmݝm) * MnnЁm) !  llmll) *  nnЁm) * omom) * nnЁm) * Rmؙom) ! Ѩ ЁmmmQmЁm)m no o n)   ol*moooooo) * LnnЁm) * mŚom) ! Ѩ mmmmm) * Nmom)"o*MMoo oooo)  Ѩ ol*ooooooo) !  m٭PŠmm׭PŠmm) * nnЁm)   Ёm omoMЁm) !  ЁmmmRmЁm) ! Ѩ ЁmĊmmʌRmЁm) * omom) * Qm͜om) * ըmom) * Omom) * mom) !  mmmmm) !  m̑ʅmۅmʑʅmm) !  mPՆmmPՆmm)ґm) ) )l))l)o)o)݆! l! l! l! l!Ѩ ÌVl! Vl!Ѩ Vl! Vl! l! l! l! llo! lll!Ѩ ÌVllo! lll! Vllo! lll! Vllo!Ѩ VllƝo! lll! lll! llo lґm o   Ёmm  olo Ѩ  Ёmm Ѩ Ёm o  Ёm m   Ёmm Ѩ olo  olo  olo Ѩ olo  olo  Ёm o  ւoo no Ѩ  Ёmm Ѩ Ёm omo  ւoooo  olooo  Ёm mno  olooo  Ёm omo Ѩ  Ёmmmm  olooo   Ёmmmm  olooo Ѩ olooo nooo Ѩ  Ёmmmm Ѩ olooo   Ёmmmm$n$n Ѳ   ܎n ґm!  l!m! 6mВmm!  l!  lll!moo!  lll! 6mВmmoo!Ѩ ЁmĊm! Ёm ҉m!Ѩ mPm! mجm! m̑ʅm! mm! mmχm! mm! m߈m! lęl!Ѩ mÛm! ll! mۀm! m٭PŠm! mPՆm! mm! mm! mm! Ёmm! mՋm! Ёmm! ll!Ѩ Ёmm!Ѩ mm! mm!Ѩ mm҂m! mքm!Ѩ mPۍm!  mmmm!  mՋmmo!  mքmmm!  mPՆmmo!  lęlmm!  m̑ʅmۅmo!  mmχmmo! Ѩ mm҂mmo!  Ёmmmo! Ѩ mPۍmmo!  m٭PŠmmo!  m߈mmo!  mmmm! Ѩ mmmo!  mmmo!  llmo! Ѩ mPmmo!  mmmo!  mmۅmo! Ѩ Ёmmmo! Ѩ ЁmĊmmo! Ѩ mÛmmo!  llmm!  Ёm ҉mmo!  mۀmmo!  Ёmmmo!  mجmmm!  mmmo    oшN ,,  T n mV ܎nn  l mP  n   Ѳn o  0 oŭ0  Ԩ+  m nU  m m  m  0 nm mn mm   m nU mP nŝU ۷m  T  n ۷o l nġS  n  ֡T  m n   ģm nn  T     m ڡmV mV  O Ѳm   m     K ۷V nm  L   ߀o mV mm n mm  ΁T  T ۷m  ւo  m  0 lӇ    l nm  m  T nm  n  T   O mm nn n0  T  l  Ƣm  T  T     0  ȩn ۷m  +  0"o"l"o#o#l#o#l C  l#o m  o#o    o"ґm" "l"" "l!l! ! ! P!۷M! l! l!ll! ! ! !l! P! l! V!ll! m! ! ! S!  !l! M!l!lвM!ll!lج!l! ̑! Ċ! ! ÌV!ll! l! N!l! m!  ! ! ! l!l! V! l!l! ٭P! ! l!l!l! L! ! ! l! !lM! P!ll!lM!۷0! ! L!l! Û! ! V!lę! l! !l! P! P!l! mm!  mmoo! ڕm!۷T!۷U! Вm!l! m!l!l!l!۷T#7m#7m#mm#7Ιm#ґmm#7֘mґmґmґmmmmmmmmmmm    Āmmґmґmmӡmmmllmmݏmmmmmmmmmm mmmmmmm mno UU  Tm   ȩnҩn  ߀oo  Tn  mn   VV  Lm  no Ѩ  VV oo   nm  ֡Tn VV   nm n nn  Tn  Ӈl  n  0n  0n  KŘn   VV mmn   mm  Tn  mn  On  ΁Tn mno  Tn mՔn Ѩ  VV mmn mmn  mn   nn  mn  mn  Tֈn  TӃn  l  Tn Ѩ  nn 6mmmm  n 00ʀn  Tn n nnǢnآn mՔnnn UUoo  mnnn  mnnn Ѩ  nnnn  Tnlәn  nln Ѩ  VVll  Lmlm  mnl՞n   nmnn oooo   nnnn   VVll  0nln  nooo  Tnln  nln Ѩ  VVll mnooo  Ӈlll  Tnlɂn  Tnlڜn  0nln  Tnln  lll   VVll  ΁Tnln  Tnln 00ʀnnn  mnnn   mmnn   nmnn mmnnn  TӃnln  mnnڟn  Onln  KŘnln  ֡Tnln mnooo   ȩnҩnnn mmnnn mmnnԣn  Tmlߧn  ߀oooo 6mmmmmŔm VVoǢo  Tֈnlաn00H HH H0HHmH H HHnHmH HHmH H H HmH HnH HmHHnHmHmHmHmHnH H HmHHH HH H HHnHmHH H H HmHmHmH HmH HmHnH0H HH HmHmHmHHHH H0H H HmH H H H HH HmHmHm   >> > >0>>m>m>m>> >m>m>m>> >> >0>>>>n>>n>>>7>n>n>m>0>p>m>7>m>n>n?>m>n>m>n>0> >m> >n>>m>n>m>m>>n> >>n>?$   ?0$0  0 0?$   >>>>>0>> > > >m> >m>>m> > >>n>>m> > > >m>m>>߻ >0>> > > >>m>m> > >>m>0> > >>> >߻ >>m> > > >n>m>m> > > >> > >߻ >m>m> >m>m> >>> >>m>m>0>m>> >m>>m>>m> > > > > > >n>>0>???>>m>> > > > >>>66= =m= = = =m=m= = = =0==m= = = ==== = = =m== =m==m==m=m=0= = ==m= =m==7߻ 77 7707 7 7 7 7 77m7 7 7m77 7 7m7n7m7 7 7m7 77 7 77 77 7 7 7 7 7 7 7m7 7n7 7߻ 7775n6 ڧ6ڧ66m66 6m6m6 6ڧ6 ڧ60 6m76 676 6m6 676m6 6m6076mэڍ,,  m mp p,,K,  m mp p, mp p,,ˠ2ܒmǫ7,mm m,  m pmp p,mm m, mp p,,m ,  mmpp p,  mpmp p, mp p,m ,K,  m mpp p,mm m,m   , #opp,m#opp,m  ,m   ,C#lpp,, ,,Ѩ  P,Ѩ    ,6,  U, T,    ,  m,Q,  T,  m  ,  ,  U, , O,Ѩ  ,  Ψ ,m m, ÝU, , ߻ p߻  pp,m m, mpm pp,  np m m pp m  m,  U, ¡S,ЇU׻ U,  - ,  ,  m,  U,T,  n  mpm mm pp p  m, m m,  ҿ,Q,n ,  n , S, T, S,m  m ,Ѩ  ,  ,   ,  ,   ,  m,   m,m m,Q, , m m,  m,  T, ,  n  m pm m m pp m  m,6, 6,    ,  U,pp m m pp mp,Q,Ѩ    , ,  ێ, T, 0,p  m pm m m pp pp, T,  ģm, 0,  P, 00,ЇU׻ U,6m m,   +,6ˠ2ܒm7, p,p  m pm m m pp mp,00,nAnn,  m,  ǃU,  , ,    ,  Ƣm,Ѩ    , K,Q,  , ,, ́T,  m,  T,    ,  T,Ѩ  ,   m, ,  ̘,  ,   , m, T, m, U, 0, O,  T, ψN,  m  ,Q,p  m pm m m pp pp,Q,pp mm pp mp,m m,Q,Ѩ  ,  ,mm,  ,   , ԡT,  , M,Ѩ  ڛ,+U,  ,   , m,  ,  m,UѾ U,  p, L, T,í0,  Ԩ+,֨m Ѩm, S,  T,    ,   ,m  m,  U,   ,UѾ ÍU, m,  ,Ѩ , T, 0,  πU,p  mpm mm pq mp,    , m m, T,    , T,Ѩ   ,,m,C, ,m,m,,m,pm,, m,pp,,Јq,pm,pp,pp,Јq,qm,pm, Јq, mЈq,pm,mЈq, Јq, mЈq,pm,,m,m,m,,m,m,m,m,m,m,m,m,m,m,m,,߻ ,,ł,,m,,m,,+, , ,,m, ,,6, ,,p, ,C,m,C,p,,p,,, ,,, , , ,,, m,6, , , , ,ھP,Q,Q, S,  R,l հ ,Q,Q,0,U,l հ ,K,+UU, R,Q, ɖ- ),  K, 0,l հ ,Q,Q,ԴP,  R,0,Q,ĬQ, l  , ݕU, үR,Q, , ,, m, m, , m, , , , , m, ,6, m,, m, m, m,,M,,, , m,,,, ,,߻ ,6,,m, , ,,,p,,, ,,m,,߻ , m,6,, , ,m,4,,, ,,, , ,, ǢQ7, l ۳, P, P,Q, P,MQ, Q,q 0,,9,,,,, , , , , , , , p, p, q, p, p, p, q,,p/mm/mm/n/n.pm..pm.pp.pp.pm..pp.̠n/ l ש...Ƌ//“n/ ./// )m qq /m ٩  m2m2m2m22m22m2m2m2m22m  Ѩ ŰM M  M   n     m m m m m mr r r     CLCLCT666 6 0Ҡ      6mooooˆo  %mpppppppmpppmppppppppppp                                         m mpmmpm mp        q  q                m mmm pm pm mmpmmm mmpm pm mmmm pm mmmm mmmmpm mmmmmm mm pm mm pm mm mm mm mmmm mmmm mm mm mm mm pmpm mm pmpm pm mm mm mm mm pmpmmmmm pmmm mmmm pm mmmm mm mm mmmm mmmm mm pm mmmmpm pm mm mm pm mmpmmm pm m m p pm mp mm mm m mp p pm m mm m mm m m mm mmm m                          m m mm mm mm m m m m mmm                                          mmmmmmpmmmmmpmpmpmpmmmpm      m p m m m p mp mm mp m m mm m p m p m m m m mm mp m m m p m m mm m m m m m p m m m m m p m m mm m m mp m p m m m m mp m m m p mm m m m m mm mm m m mm m p mm m m m m m p mp mm mm m m m m m m mm m m m m m m m p m m m m m m m m m m mm m m mm mm mmpp m mpp m mpp mmqɆq m mpp m mpp mmpp m mpp m mpp m m mm m p mm m m m m m p m m mp mp m p m m m m m p mm m m m p m m m m mm m m mp mm m m mm m m m p m m m m mm mm m m m m p  p  p  p  m p m  m  p  p  m  p p m m  m  m  m  p m  m  m  p p mp  mm  mm  mp  mp mm  p  p p  m  p m  p p  m  m m  p  m p  p  m m  p  p  m p  p  m p  m  m  m m  p m  m m  m  p m  m p  m  p  p p  p  m  m  m  m m mm m m mmm m m mm mmm m mm m m  m  m m  m  m  m m  m  m m  m  m  m m  m  m m  mmlmlmmm mm mm m mmmm mm m m  m  m  m  m m m  m  m  m m m            m  m m  m  m  m m  m m ( ((         mmm  mmm   mm֨m        mmm  mmm   mm mm  q mm q m  q m֨m  q mm q mm  q02mmmmmmmmmm˂˂qqqqon# # #m## # ## # ## # #m#m## ##0# #m###0### # ## # ## # # # # #m#0### # ## # ##### #0# #m# ## % m%n%mՑn%n%n%m%o%o%n%ɒn%n%o%ùo%o% Վn% n% m%٘n%n%o%ٻo%o%n%n%mn%n%ހn%n% o%ńn% n% ˸o% m% n%o%n%o%n%ցn% n%o%0%n%n%n%o%Ȑn% n%o%mn%ȗn%m$ $ $$ $ $ $ $ $m$ $ $ $ $#0# #m# #m#m##m# # # # # # ### ## ## # ## #m##m# # # ## # # # #m##m# #0# # ## #0# # #m### # ## #$$$0$p$0p$p#m# # # #m# # #m# ### # ##0## #m# # #m#T# # # ## # ## ### # #m##m#m# #0#m# ## # ## # ##m##m# # #m## # #m# # ## # # ### #m###m# #m# #p#p#0p## # # # # ##0#&&0&& &&&&0$% %҉n%n%2%% %1%n%0%m%n%n%m%n%n%mqmqmqmrnrmr҉nrmrnr rnrmrnr r0p pnp0p p҉n   00  0 0   rr0r0r0rƙr        m       m           00rr0r       0    m  0 mmm m m mm m mm m m m mmm mm0m mm mmm m mmm m m mmmmm mmmmm0m m m mmmm m mmm m m mmmmmm m m mm mmm0m mmm mm m m m m m m mmmmmmmm mmmmmm0m mmm mmm m0mm m mmm mmm mm m mmm m mm mmm m m mm0m m mm mm m m mm mmm mm m mm0mmm mm mmm mmmmm m m m m0mmm m mm mmmm mmm mmmmm m m m mm m0mmmm m mmmm mm mm mmm m m m m0m m mm m m mmmmmĠqӠq m mm mmmmmmm m m mm0mmm mm m mmm m0mm mm mmm m mmmmm m mm m mm mm mmm˂%%% %% %((ٻo(7m( (l(lвM( l(m(ӡm(o(m(˸o(m(ll((n(ùo( (m(l(7m( l(m((n(n( l(ȗn(ցn( O( (n(l(o(m(o( (n(n(n(m(nġS(o(٘n((n(m( (o(( (Ā(n(l( L(׻ (ґm(n(m(m(m(oŭ0(0(Ȑn(n( 0( l( (n(l(ll(m( (o(m((۷( ( l(o(o(ll(ܒm(,(l(ll(m(n(n( 0( m(m(o( l(o(Ցn( ( ( (ll(n(n( lM(n(m(lM( (o( (q(n(n(m(m(ńn( (m( 0(n(ހn(n( (o(n( m( $ $$ $ $$ $ $ $$ $ $ $ $ $m k߻ k k˂        %% %%m% % % %% %% %% %0%%m% %m% %m%  +   % % %% % % % % . m0 $$$$ $ $m$m$ $ $ $0$m$ $ $ $m$ $$ , ,, , ,,,, ,,C,C,ł, , ,, ,--6-m- -m--ܚm-Ɉq-q-q- ---m- -77   & &0&&&$ $ $ $0$$ $$m$$m$ $m$ $mm+l+r+m+m+l, , ,,,m,,C,, ,m,m,,, ,mmm mqmmmmmmqqmm 00000m 000 00000mr0 0000m    + ,,  Ԩ+ m6n606n6n66n6m6m6n6n6m66 6n66m6m66m6n66 6n6066n6m6m6m6n6n6 6m66m66m6 6m6m6 6m6m  m m0mm m mm m m mmmmm mm m mmmmmmm$m$ $ $m$m$ڧ$ ڧ$$    m)ެnZZmO OOmN NmNK߻ KK 7 7m77߻ 7@ @m@߻ @@TmTQQmQQ߻ Q RmmR mRmR߻ mRm>>> >߻ >mPPmL `m`fmf%o%n%n%ցn%o% o%n% n%o%Ȑn% n% n%mn%ٻo%n% m%o%n%o%n%o%ȗn% m%n%o%ހn%n%n% Վn%n%m%ńn%n% n%m%ùo% ˸o%mՑn% m%n%n%0%n% n%o%ɒn%mn%o%o%o%n%٘n%nnn%mmm%mՑnnn%nnn%nmm%nnn%nmm%٘nmm% mmm%nmm%ցnmm% mmm%mn˝nٝn%mnn˥n%nnn% mmn%ɒnmm% nnЏn% nnn%ȗnmm%nmm% nnn% Վnnn%nmm%Ȑnmm%nmm%nmm% nnÈn%mmm%nmm%ހnmm%0mm%ńnmm% nnÆn%nmm%nmm$ $ $m$m$m$m mm 0m߻   %o%ȗn%n%o%n%o%n%ցn%o%n%n% ˸o% o%o%n%n%٘n%n%ٻo%o%Ȑn%o%o%o%n%o%ùo%0%n%n%n%n%o%ހn%ńn%n%n%m%m   mm((n(n(n(  ߻ mpp߻ pmp p %  %  %  % ܎n%  %  % Ѳ m$$$0$  --&&&&&0&&& %n%m%n%n% o%o%Ȑn%m%ހn%o%n%ùo%ńn%n%o%n%n% ˸o%0%o%٘n%n%ٻo%n%o%n%o%n%n%o%ȗn%o%ցn%n%n%n%o%o%o   n›n nn mm mm% n%mn% % %00%mՑn%mn% n% MѨ ŰM  M  MMŰM Ѩ    M ŰMѨ M  ' $ $ $ $0$ $ $ $$$$$ $   -- n›n mm mm nn*0                             ,  SɷLl M U  Ρء Qm M Ll M SS O Q   ΡءPSM l MҠP M   L L L R L L S O L L OUSЫSāS O L  Ρء   ßL6 6ƦqҠ l  ²  l  ²   M m    ʦM R  l    l  ²  R ۅV LR R R S N  l R R R  l O P O N  Q  l R m    S R P l  Ҡ  l R R l    l  ²  S U  l  ² 0 S O Q l  ²  R O  l R  S  l  l  l Sރ ڃ ڃnڃmڃ ڃڃڃ ڃ ڃڃڃ ڃ ڃ ڃmڃ ڃڃ0ڃ߻ ڃmڃ ڃ ڃ ڃ ڃm 6 Вm  ڕmTT  mU߃mmrqܒm6ۃۃ ۃ ۃ ۃ0ۃ ۃ ۃۃۃۃ ۃ ۃ m m1111    % ol  ґmnݝm mm mm n›n nn $n$n M   l          $n$o$n$ ˸o$o$ùo$n$o$ńn$Ȑn$o$o$n$ȗn$o$n$n$n$o$m$o$n$o$o$n$ o$ցn$0$o$n$n$n$n$٘n$ٻo$n$ހn$n$me                            m m mCLCLCT  m  m  ҩn  m܎n n  nѲ m  n  Ѳ         ܎n   ܎n         Ѳ ґm m*.m   ߀oo Ѳmn m mn  ֡Tn  Tn  mVV   mn  no lӇl  mVV mmՔn  Lm   nm  Tn   mm  KŘn  Tn mnmmm  n  Tn  mn  Tn  On  Tm  Tn   ȩnҩn m mn  mn n0ʀn  ڡmVV  Tֈn nno ۷oo m mn  Ѳnm  TӃn   nn  ܎nnn ۷VV nUU   mn  mVV ll  0n   nn nno  ΁Tn  0n  n Ѳm nU   m m  Ƣm ۷m  0   m   +  0  ΁T  T mmm  mP oŭ0 mmm  m o  m mnm  T  L oшN n  K  m  T  O ,,    mmm  O  Ԩ+  0 n0  T  mP ۷m ۷m  ģm  T nm 0 0  T    m  nm  T m m nġS  T nŝU  ֡T   m mm n  m m  T  nm  0 n   oЁm  loo  loo mno  loo  mЁm  loo  mЁm  mЁm   oЁm  ւoo  mЁm  loo  loo   mЁm  m  Ԩ+  ΁T Ѳm  K  T nU n    O  T  nm   +  T nm   m m m mm  T  ֡T  T   m m m  0 o n   0  nm    T m m ,,  m n  L  T  T  T n0  m nŝU oшN o777 7 ·CLCTCL$  "o"o"l"l  l m.m  p"ґm" " "oo"loo"loo"˰Moo"Moo"oo"Moooo"oooo"˰Moooo=LLTy~ mm nn mm n›n   * * m  * * * *s  * * *s  *s  * * * * * *mm *s  * * *s  * *mm * * * * 5m Wm Vm am Zm [m \m _m Xm ]m Ym Jm rm om um m m mm mm mm mm mmm mmm mm ǢQ m4 mms m4 zm lm m mm m km sm m *s  m *s  m *s  m *s  m *s  m *s  m tm mm wm mm mm mmӛn mmӛn m mm mm pm ym m xm m mcratebitflagscratealloc $cratecratebitflags std $crate$crate$cratebitflags core core corecratealloc$cratestd$crate corecrate bitflags core $crate$cratebitflags$crate $crate$crate $cratebitflagscrate core|alloccore$cratecore$crate bitflagscratecore$cratecrate bitflags$cratecratecoreallocbitflagscrate std core $cratecratebitflagscrate $crate$crate$cratebitflags core corecorestd$cratealloc$cratecrate bitflags corecrate $crate$cratebitflags$crate $crate $cratebitflags cratealloccrate$cratebitflags$crate bitflagscore$cratealloc$cratecrate bitflagscorecratecrate alloc $cratecratebitflags$crate $crate$crate$cratecorebitflags core$crateallocstd$crate corecratealloc bitflagsbitflags$crate $cratebitflagscratealloccratebitflags bitflags$cratestd$cratecore$crate$cratecratealloc $cratecore corealloccrate $cratestd$crate$crate $crate$crate$cratealloccoreallocbitflagsbitflags$cratecore$crate corestd alloccratecore$crate bitflagscratebitflags core$crate $cratebitflags$cratealloccratecratebitflags bitflags$crate$cratebitflags std$crate core $cratecore$crate$cratestdcore core $cratebitflagscrate core $cratecore$crate$crate $crate$crate$cratecorebitflagsallocbitflagscore$cratecore$cratecore $cratestd bitflagscore core$cratecore$crate bitflags core$cratebitflags corebitflagscorecratealloc $cratecratebitflags$crate bitflags$cratebitflagsallocalloccratealloc$cratestdcore corecratecrate core $cratecore$crate$crate $crate$crate$cratebitflagsbitflags core corealloc$cratecore$crate bitflagsalloc core$cratecrate bitflagscorecratebitflagscratealloc $cratecratebitflags core $crate$crate$cratebitflags corealloc alloccrate$cratecrate$cratealloccrate bitflags core $crate$cratebitflags$crate $crate$crate $cratebitflags corealloc core$cratebitflags$crate bitflagscratecore$cratecrate bitflags$crateallocbitflagscrate corealloc $cratecratebitflags$crate $crate core$cratebitflags corealloc$cratealloccrate$crate core$cratecrate bitflags corecrate $cratebitflags core$crate $crate $cratebitflagscorealloccratebitflags bitflags$cratestd$crate core$cratecrate $cratecore core corecrate $cratecratebitflags$crate $crate$crate$cratecorebitflagsbitflags$crate$cratecratecrate$cratecore$cratecrate bitflagscratebitflags$crate$crate $cratebitflags$cratealloccoreallocbitflags bitflags$cratecrate$cratebitflagscore$crate$cratecrate $cratecore core corecrate $cratecore$crate$crate $crate$crate$cratealloccore core$cratebitflags$cratebitflags$cratecore $cratecrate bitflags stdcratecore$crate bitflags corecratebitflags$crate$crate $crateallocbitflagsalloc $cratecratebitflags$crate bitflags$cratebitflagscrate$crate alloc $cratecorecrate$cratecratealloc core $cratecratecratecrate $cratecore$crate$crate $crate$crate$cratestdcore corebitflagsalloc$cratecratebitflags bitflags $cratecratealloc alloc corecore$crate bitflags$crate corecrate $cratebitflagsalloc core $cratecratebitflags$crate bitflags$cratebitflagsallocalloccratecore$cratecrate$cratealloccratecrate core $cratealloc$crate$crate $crate$crate$cratebitflagsbitflagsalloc corecore$cratecore$crate bitflagsstd}}core$crate$cratecrate bitflags$cratecore corebitflagscratealloc $cratecratebitflags alloc $crate$crate$cratebitflags corealloc$cratecore$crate core$cratecrate bitflags corecrate $crate$cratebitflags$crate $crate$crate $cratebitflagsalloc core$cratebitflags$crate bitflagscrate$cratecrate bitflagscratecorecrate alloc core $cratecratebitflags$crate $crate core$cratebitflags alloc$cratecorecore$crate core$cratecrate bitflagscorebitflags core$crate $cratebitflagscore corecratecratebitflags bitflags$cratecrate$cratealloc$cratecratecore $cratecore corealloccrate $cratecrate$crate$crate $crate$crate$cratecorebitflagsbitflags core core$cratecratecore core$cratecrate bitflagscratebitflags core$crate $cratebitflags$crate corecorecratebitflags bitflags$crate$cratebitflagscore$cratealloc $cratecrate$cratecratecore $cratecore corecorecrate $crate$crate$crate$crate $crate$crate$cratecorebitflagsallocbitflagscore$cratecore$crate bitflags $cratecorecratecratecore$crate bitflags alloc$cratebitflags $crateallocbitflags core $cratecratebitflags$crate bitflags$cratebitflags core$crate corecorecore$cratecorecore corecratecrate core $cratealloc$crate$crate $crate$crate$cratebitflagsbitflagsalloc corecore$cratecore$crate bitflagscore crate corecore$crate bitflags$cratecore stdo!(֫  OrdY89core_intrinsics   panic ӥlibstd_sys_internals __impl_bitflags`dэClone$6;core_intrinsicsderive_clone_copy  o!  try_trait__impl_bitflagsmdэDebug#xCcore_intrinsics3  get_requires( $crate::__export::format_argsI(̌ fmt_internals  find_by_name%1$crate::__export::format_argsI(̌ fmt_internals__impl_bitflags mdэ  find_by_name'1$crate::__export::format_argsI(̌ fmt_internals  find_by_name%1  $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэ__impl_bitflags `dэ  try_traito! try_trait __impl_bitflagsmdэDebugxCcore_intrinsics3  try_trait__impl_bitflags`dэo!format(I__impl_bitflags mdэ $crate::__export::format_argsI(̌ fmt_internals o! find_by_name%1( EqY78core_intrinsics derive_eqstructural_match formatI  panic ӥlibstd_sys_internals __impl_bitflags`dэo! Debug$xCcore_intrinsics3  wlnerrڦ)__impl_bitflagsmdэ get_requiresԓ. format ΃(I  find_by_name$1$crate::__export::format_argsI(̌ fmt_internalspanic$-ӥlibstd_sys_internals  'vec()8 box_syntax + try_trait__impl_bitflags mdэ Debug)xCcore_intrinsics3 Clone‹&6;core_intrinsicsderive_clone_copy    ) try_trait__impl_bitflags`dэo! try_trait Μ - __impl_bitflags `dэ $crate::__export::format_argsI(̌ fmt_internals__impl_bitflagsmdэ__impl_bitflags`dэo! _shorts_longs; write'g __impl_bitflagsmdэHash Y~Bcore_intrinsics4 format *Io! _find_by_long$4 find_by_name$1find_any_by_name0 find_by_name!1w$ $   $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэo! try_trait Debug#xCcore_intrinsics3  4__impl_bitflagsmdэassert !Clone"6;core_intrinsicsderive_clone_copy   get_requires( _names>Copy=:core_intrinsicsderive_clone_copyformat ޫ%I formatϭ(I '__impl_bitflags mdэ Debug)xCcore_intrinsics3 $crate::format_args_nl!͐ fmt_internalsformat)|I  o! __impl_bitflags `dэ  ' try_trait __impl_bitflags`dэ$crate::__export::format_argsI(̌ fmt_internals__impl_bitflagsmdэ find_subcmd٣%8__impl_bitflags`dэo!כ __impl_bitflagsmdэClone Y6;core_intrinsicsderive_clone_copy  $crate::__export::format_argsI(̌ fmt_internals vec%8 box_syntaxo! find_by_name!1format(Ifind_any_by_name 10find_any_by_name0 _shorts_longs;Clone¢6;core_intrinsicsderive_clone_copy  impl_settings( impl_settings#(  panic ӥlibstd_sys_internals __impl_bitflags`dэo!Ŵ0 try_trait  H$crate::__export::format_argsI(̌ fmt_internalsClone"6;core_intrinsicsderive_clone_copy  Debug'xCcore_intrinsics3 assert !__impl_bitflags `dэ  try_trait PartialEq 7?core_intrinsicsstructural_match  find_by_name%1format ܨ%$I format(I  get_requires. __impl_bitflags mdэ Copy(=:core_intrinsicsderive_clone_copy __impl_bitflagsmdэ find_by_name-1add_valwrite)g Defaultx ˸<=core_intrinsicswrite !g o!__impl_bitflags `dэ   __impl_bitflagsmdэ__impl_bitflags`dэo!$crate::__export::format_args I(̌ fmt_internals  #__impl_bitflagsmdэCopy Y=:core_intrinsicsderive_clone_copy $crate::__export::format_argsI(̌ fmt_internals o!$crate::__export::format_argsI(̌ fmt_internalspanic$-ӥlibstd_sys_internals  format(I find_subcmd֜ 8  Clone6;core_intrinsicsderive_clone_copy $crate::__export::format_args I(̌ fmt_internals shorts ^9  )Y__impl_bitflags`dэo! ޱ0 '__impl_bitflagsmdэcheckClone"6;core_intrinsicsderive_clone_copy  $crate::__export::format_argsI(|̌ fmt_internalsCopy'=:core_intrinsicsderive_clone_copy assert ! format %I vecԕ(88 box_syntax__impl_bitflags `dэ DebugxCcore_intrinsics3__impl_bitflags mdэ $crate::__export::format_argsI(̌ fmt_internalso!$crate::format_argsկ̌ fmt_internals find_by_name-1color)( Copyw̽ =:core_intrinsicsderive_clone_copy find_by_nameĆ(1   try_trait __impl_bitflagsmdэո__impl_bitflags`dэo!Clone$6;core_intrinsicsderive_clone_copy    try_trait__impl_bitflagsmdэ($crate::__export::format_argsI(̌ fmt_internals    find_by_name-1o!vec(8 box_syntax find_by_name01Debug*xCcore_intrinsics3 ڄ ! Defaultޥ˸<=core_intrinsics  Ǖ1 try_trait__impl_bitflags`dэo! 7 __impl_bitflagsmdэpanic ӥlibstd_sys_internals find_any_by_name 0formatʰ%IP__impl_bitflags`dэƠ__impl_bitflags `dэ   vec(8 box_syntaxformat 'I __impl_bitflags mdэ $crate::__export::format_args I(̌ fmt_internals  _shorts_longs ; o! _find_by_long#4 find_by_name-1write,g Debug٭ xCcore_intrinsics3( Clonev 6;core_intrinsicsderive_clone_copy  PartialOrdY 8@core_intrinsics  $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэo!Copy$=:core_intrinsicsderive_clone_copy  ) try_trait__impl_bitflagsmdэ$crate::__export::format_argsI(̌ fmt_internals  get_requiresɔ6 _names>$crate::__export::format_argsI(̌ fmt_internals'vec(8 box_syntaxsc_names V=$crate::__export::format_argsI(̌ fmt_internals __impl_bitflags mdэ  find_by_name&1   try_trait__impl_bitflags`dэo! ߚ   try_trait__impl_bitflagsmdэpanic ӥlibstd_sys_internals __impl_bitflags `dэ . try_trait__impl_bitflags`dэo!format(I__impl_bitflags mdэ $crate::__export::format_argsI(̌ fmt_internals o!_find_by_short&7$crate::__export::format_argsI(̌ fmt_internals PartialEqY 7?core_intrinsicsstructural_match Clone6;core_intrinsicsderive_clone_copy   $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэo!  vec8 box_syntax ?__impl_bitflagsmdэDefault"˸<=core_intrinsics $crate::__export::format_argsI(̌ fmt_internals Copy#=:core_intrinsicsderive_clone_copy  find_by_name%1$crate::__export::format_argsI(̌ fmt_internals$crate::__export::format_argsI(̌ fmt_internals format(I sc_names V=formatIw&$ Clone)6;core_intrinsicsderive_clone_copy  __impl_bitflags mdэ $crate::format_args_nl!͐ fmt_internalsCopy&=:core_intrinsicsderive_clone_copy  # #__impl_bitflags`dэo!   __impl_bitflagsmdэformatIformat>Iformat):Iformat¤%I try_trait__impl_bitflags`dэfind_opt_by_longד 2o!__impl_bitflags `dэ __impl_bitflagsmdэOrd Y89core_intrinsics  w%$ o! _find_by_long#4 find_by_name%1G__impl_bitflagsZdэ  panic ӥlibstd_sys_internals __impl_bitflags`dэ__impl_bitflags `dэ o! Dž __impl_bitflagsmdэDebugݰ"xCcore_intrinsics3 assert ! get_requires6  PartialEq 7?core_intrinsicsstructural_match  find_by_name-1format(I __impl_bitflags mdэ  PartialEq( 7?core_intrinsicsstructural_match  find_any_by_name 10add_val!writelnЦ!format_args_nl add_val  __impl_all_bitflagsׄ\__impl_bitflags `dэ o!2   try_trait __impl_bitflagsmdэDefault˸<=core_intrinsicsformat I__impl_bitflags`dэo!  try_trait__impl_bitflagsmdэEq Y78core_intrinsics derive_eqstructural_match  $crate::__export::format_argsI(̌ fmt_internals o!vec 8 box_syntax &  _shorts_longs;Default˸<=core_intrinsics  * __impl_bitflags`dэ__impl_bitflags `dэ o!  __impl_bitflagsmdэ  PartialEq' 7?core_intrinsicsstructural_match  assert !format !Ipanictӥlibstd_sys_internals   try_traitClone6;core_intrinsicsderive_clone_copy Debug"xCcore_intrinsics3 vec(8 box_syntax $crate::format_argsʧ$̌ fmt_internals__impl_bitflags mdэ Debug(xCcore_intrinsics3 o!$crate::format_argsկ̌ fmt_internals find_by_name$1Clonex 6;core_intrinsicsderive_clone_copy __impl_all_bitflags ׄ\  find_by_name11o!!__impl_bitflagsmdэ 9 ո__impl_bitflags`dэpanic$-ӥlibstd_sys_internals  vec8 box_syntaxo! +__impl_bitflagsmdэy$crate::__export::format_argsI(̌ fmt_internals o!$crate::format_argsկ̌ fmt_internalsvec(8 box_syntaxsc_namesܓ V=܇  DebugٗxCcore_intrinsics3panic$-ӥlibstd_sys_internals  longs \:  format CI__impl_bitflags`dэ__impl_bitflags `dэ 2)formatƤ !I__impl_bitflagsmdэDebug"xCcore_intrinsics3 Debug'xCcore_intrinsics3   __impl_bitflags`dэo!formatȑ(I  __impl_bitflags mdэ $crate::__export::format_argsI(̌ fmt_internals $crate::__export::format_argsI(̌ fmt_internalso!assert ! find_by_name$1panic$-ӥlibstd_sys_internals   PartialEqw 7?core_intrinsicsstructural_match ( prelude_import   HashY~Bcore_intrinsics4formatI find_subcmdʘ%8  $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэDebug$xCcore_intrinsics3 o!panicӥlibstd_sys_internals  +__impl_bitflagsmdэClone#6;core_intrinsicsderive_clone_copy  7$crate::__export::format_argsI(̌ fmt_internals    find_by_name$1)format(I PartialEq* 7?core_intrinsicsstructural_match    add_val! find_by_name.1   arg_names Y<__impl_bitflags`dэ__impl_bitflags `dэ ʛ3o! try_trait __impl_bitflagsmdэ( vec%8 box_syntaxClone6;core_intrinsicsderive_clone_copy __impl_bitflags`dэformat Х%I   vec(8 box_syntax__impl_bitflags mdэ format (I o! _shorts_longs; find_by_name$1write-g color(( Defaultv ˸<=core_intrinsics( t CloneY6;core_intrinsicsderive_clone_copy   panic ӥlibstd_sys_internals __impl_bitflags`dэ PartialEq$ 7?core_intrinsicsstructural_match  wlnerrŧ5)o! 0__impl_bitflagsmdэ get_requires- $crate::__export::format_args I(̌ fmt_internals  find_by_name-1format(I  try_trait__impl_bitflags mdэ  find_by_name(1$crate::__export::format_argsI(̌ fmt_internals   panic #ӥlibstd_sys_internals __impl_bitflags`dэ__impl_bitflags `dэ ՚ try_traito! try_trait __impl_bitflagsmdэvformat>I * try_traitj__impl_bitflags`dэ$crate::__export::format_argsI(̌ fmt_internals find_flag_by_long!3vec'8 box_syntaxo!__impl_bitflagsmdэ__impl_bitflags mdэ $crate::__export::format_argsI(̌ fmt_internals o!_find_by_short%7 find_by_nameϻ-1format (I' CopyY=:core_intrinsicsderive_clone_copyDefault˸<=core_intrinsics find_by_name*1  panic ӥlibstd_sys_internals __impl_bitflags`dэClone#6;core_intrinsicsderive_clone_copy   try_trait o!΃ )__impl_bitflagsmdэassert !$crate::format_argsկ̌ fmt_internals w%$ vec8 box_syntax_names>Clone6;core_intrinsicsderive_clone_copy $crate::__export::format_args I(̌ fmt_internals format(I __impl_bitflags mdэ $crate::format_argsկ̌ fmt_internals  find_from-/$ writelnЦ!format_args_nl Debug&xCcore_intrinsics3 format)I  __impl_bitflags`dэ__impl_bitflags `dэ !o!2 __impl_bitflagsmdэ1  try_trait , try_trait__impl_bitflags`dэo!__impl_bitflagsmdэ find_subcmd 8 find_by_name 1format%I PartialOrd Y 8@core_intrinsics o!vec(8 box_syntaxDebugɢxCcore_intrinsics3  $crate::format_argsʧ$̌ fmt_internals__impl_bitflags`dэ__impl_bitflags `dэ formatIo! try_trait __impl_bitflagsmdэassert ! get_requiresŐ- Ž  find_by_name$1DebugxCcore_intrinsics3$crate::__export::format_args I(̌ fmt_internals vec(8 box_syntax __impl_bitflags mdэ Clone(6;core_intrinsicsderive_clone_copy  Ơ$crate::__export::format_argsI(̌ fmt_internalsadd_valformat I__impl_bitflags `dэ o! + try_trait __impl_bitflagsmdэClone6;core_intrinsicsderive_clone_copy __impl_bitflags`dэo!Ş . try_trait__impl_bitflagsmdэ PartialEq Y 7?core_intrinsicsstructural_match  $crate::__export::format_argsI(̌ fmt_internals o!$crate::__export::format_argsI(̌ fmt_internalsvec(8 box_syntax  Default˸<=core_intrinsicsbitflagsVbitflags#V  panic ӥlibstd_sys_internals __impl_bitflags`dэ__impl_bitflags `dэ check)o!__impl_bitflagsmdэassert !Clone'6;core_intrinsicsderive_clone_copy   Ŵ0$crate::assertt!Copy=:core_intrinsicsderive_clone_copy $crate::__export::format_args I(̌ fmt_internals format(I debug_assert (tu__impl_bitflags mdэ o!$crate::format_argsկ̌ fmt_internals find_by_name%1add_valClonewҽ 6;core_intrinsicsderive_clone_copy  find_by_name)1!  try_trait __impl_bitflagsmdэ__impl_bitflags`dэformat$ I vec8 box_syntaxo!  try_trait__impl_bitflagsmdэ__impl_bitflagsZdэ $crate::__export::format_argsI(̌ fmt_internals   o!formatʚIformat(Ifind_any_by_name 10Debug*xCcore_intrinsics3   Clone6;core_intrinsicsderive_clone_copy formatٜ&I   _names>__impl_bitflags`dэ__impl_bitflags `dэ  try_trait)o!__impl_bitflagsmdэClone 6;core_intrinsicsderive_clone_copy assert #!$crate::__export::format_args I(̌ fmt_internals w%$ $crate::__export::format_argsI(̌ fmt_internals__impl_bitflags`dэ$crate::__export::format_args I(̌ fmt_internals  format(Iޱ0 __impl_bitflags mdэ    _find_by_long$4 find_by_name%1write,g $crate::__export::format_argsI(̌ fmt_internals color(( Debugw xCcore_intrinsics3crate cratecratecratecratecratecrate$crate::__export::format_argsI(̌ fmt_internals longs \:$crate::__export::format_argsI(̌ fmt_internals derive#derive"derive"Yfind_opt_by_long2derive(7derive{find_opt_by_short~5$crate::__export::format_argsI(̌ fmt_internals deriveŋ'ideriveʋ&$crate::__export::format_argsSI(~̌ fmt_internalsfind_flag_by_long3derive vderivelongs % \: derivederive#derive'derivederiveǤ"]deriveY7 derive$crate::__export::format_argsI(̌ fmt_internals derive wshorts% ^9$crate::__export::format_argsI(̌ fmt_internals $crate::format_argsկ̌ fmt_internalsderive)derivederive˿ xderiveY7derivederivederive$ derive"derive‚*d$crate::__export::format_argsQI(ž fmt_internalsfind_flag_by_short6derivefderive$zderiveȃ*derive derive)JallocQzallocS~alloccoreallocallocallocallocformat%Iwriteg format%Iformat IQformaţ%Iformat'Iformat%Iformat IS 3r ?Q Gi q D *%04Fp'S Y V# ( [AFY-A  #+Mc# =_ GX9+"{ qOh\r_  #BtL n 6e0Ey ~_!w $k qBy]b(h  p ;O + 19"[q?k_  8bm 8 3I  ?*=l ]  ?Gv}sK&0h RN 9y'&2j~) 5L R#Z.3l` % 6=F A/ mz *m   1%!PkACf_ X@t%/Q| Sn3N>v `\  ~;~ /^%w  1UO5d  7 !C o:m UAZNTAo t O T5ldp?\p 6 "W  M3*8Kz3  4f (W"7k pQ[x ] c4kOT,}3a f  1 6iN8T1]Q *T#G  ? D%w\Ts/L` < BJ?D}P|p az)] bCzr~ME K{ c H( # ~]ujb O} W @ FbeChdY^.c8Y%0{R'ty{%r.ToLEc_5WV-2^~$VOqƏlb#kA,jo28~TE g_6eK&.O&ss{dNGpp1|R=( [m>DK-ywLn=-!&;օ\a?7gm{hu#J leφ] BG+fR.ϓy&di+t(Oٕ"lAi?Hu,yuP\LG@$JqG53jh@b!9SZ61}yS(bv6L"nD-gf=>^51-RzFk:&2 )wOҔ"`8xY]/jk>Bc:\2oFJh%?]_9ɁZ.z]Q&sI&lBd5b}Y0\|MSh(u]K;!miDf=^05P%brcHjyAӌE:[sTgW-yQrH-kB`dz;3\k3~U8+xN9$pFBh>-`7X2{8R'tcJ *mCfl</^B4V,YyP%q U*wN/#MoF>hq>`6[X. {Q&sIblC99e;xA]3`IV+ykO$pfGi?a~9/Z0|S(uKg!DP%rHjATc:>[C2}T)KwQM>ڈP_6.W-~zha@7SX*/{R7'ftJ7 jT@G_62X~.zHQ&soIlBdf<g=ƈ<_6WkKd[;]W3~U*xuN#kpF-i>Mak7,YI/G|$R'tOJ mCeM<].4V+Z[1I}S)v[L."7n.*RxM#oEhR>`+xLOj$pGGi?a8xZ|0 }R;d,]\3~sUB*fx7N`#oMFh>a+7X/{Q"'tI" mGCe;]3zV+DyO$vqG  @%b8Q &yf<݇3^5xaN#3pvFi>8|aV7hX/Mv!L!mDOgR=?9r7dG;\==^5yW,=zP%MrNHjdAwc0:[}\T)6wrk*Bd`6FXQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/lib.rsOs9~\Nӽ"`W]J ee^afaedaaccZY.eceNdg*&3.F<%QE& .;3\ e_J @ 01?RN)%DI5 X 1*]_L<,XCZbP]W]a`cZ;V ',a_8 ]U $  IeO5 "# dX "5H`_d^0hGbi*gIe4_dc9 $eJ!d^b?e,]*G`H7 #"I7/ 610@3>5;;  !V,   _]J= :!B !-'' K !6L !F'' U !4&!G!` ƹ́ԇ۲T/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/macros.rsG-ܯZDW!ԽԽaN [_M`%#Cecab_R$b"[R*PIP$&-+$$L=< ^@E9$b"F=*PFP$.-+$ H=> b^-$Y"V*L*PB1$(./" ),!QE#!< bE:$Y"A*A*RPB $0./5BD"> Q4,IFFJ3a^&P!N^\adTbT $ ?H <;1,%F!FPFPO(?*L5,'R&04* *Q=  c( S! S! O"! O! ?! ?! ;! ;! K'+ " "GVF)). "*/! &".%/F(N<" !  "M- "! &F$ " QLV)bI`I%-" ('&)('*)Q5:%1'L=G4:4 1 FFKPg ^u ^t U"_ UH8' OIDUY[C, .3B>AJAL:c:L:Y:L7<GP5<A@A? ?B(YLSUMQEcQE)3W)=(I.'1 )1 .3 M&0*5AW)@?U'>/(((Y !1# 3 %<-H8 D(E1/3D103O3/;  F*G310F320Q512   O .5#V84- ),%,!)-%-2,+.%&&$@!&."&/3-4"-#/!"" 2 &%&-25;7%I B8[ 캆ѕCU/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/mod.rs:.Q?/[3w^B  !0& %H"\QV["Xd ##:/ KI)?( `c5 * 0,  %#1:cb 4 889:]:, @+ ddb]`Oac4acQd)'G #bdD6P<`g'' * 8MC2 ^_7`K $ 1B2 daO] A AA0 daP] MQ/ 7F5 ZYa$)&"G ?1>( bcF_ E3 bd N F2 \\]`e'  8MEA0 \&\[`e'  8M;F5 Pb#cRURT 1 EA4 b:J`b[2 !*(6< \ 2B* CZb a D. F]c g G1 J.+.2HM]A\bM.0>4<> 5 a27AC`@/ EK-6/ 11= DK-94 11B \K^-= 11D( aK^-@4 11I& EK(3 11C FK(6> 11H b:e`8RQ_] <* c*e`GRQ_! 8% ? b(4d)_ &?" E KQ ':% aF[P U &#A>0 QK_5 G:1 'AI#?$!0 Zbb,,#>,C7 1@9,D Zbb,,#>F5=.6C7 1:9&_ \N,#>4C7 17H9+C `U,#>BC7 1;B9%^ bbaB_d"d8b cI%<779/?" -:! <%<77712,B%-' -#?) ^ad,8:R 1#?' Z,,]VV 1U8 - + db`\):'%\^bdT.6[\ab.$% >'58'' 19$ ^B_I* JN6>5d:$%'* 4$^F_I* JN6>: 4)d_IdP6*$F I6>F;d:'(*--d_I*$K I6>Od:$%'*,bbL*$I I9DI;IbL*$N I9DN:K`bbd+bZ *6,,.:+0&+4 WY4) K 9 8 ('Z_Y VODJ@6;a^aiG:A^)  ^ :63cdb+ )+ L13g_aHd= )+ - LRX9S--&B8mbXN. F)+( C-CTF ##D3 *=J/)9" T"aeZ3N. F)+,H MMRX9S-9&TW ##/e^N. F*+@H #WT_ ##d:5()+1 -&UR'W@7,),1A& 4V6F  5/^A( "HB/$73!YH/J [4 2B1 H 8B 3I  %". 0 B 0 6 6 /2 (P#( ( 4 N S ( & ( * $ (-1 a H ' 09.F(" ,;*ʶűBV/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/help.rsoʲsEda  * ,+/$#4 !"E:RA2++3 S)" +=, 8N. [&E ,#!$#"E"6($ (2[+5*2d.=*\"^.9.Q! *+0/B--',, A[,G;1476-;%C0720=-;C0)9700 -*9P'$$:,,Q46L?/0!D$8]7*4A3"30I G4(7> 4>+GA"=CG *6b!7HH 4&5474 T3)= +B5H=2DG 2. +(-?)@?. C( 8.$)MEQV& 60O(&$>; 1H$"  D-$' I2M/2"H1(E A);D1!JC>EJ+(<&8K-$#92*4D56C 1/O 16- NI.?': RWK< $%#3% AE*GEF+"92D :"]: GN/0.- # 9@S &&%'3! =M'?H'6F 8A ,6 (,&0-* 111. 1DS4.`)C&)E< 2 %J@=)OT(&!"##NE44!6'EH(:V5:=<%.*DTKeK,S0*> 1S.-04O_CD02@6MN\.\106R["Y"b'<1M-5 %.6J2 %I%G%E#%J[!2 ,!+A2H G$N$5#%N$%N/2/2 9J("  0:ʮҭ×ܻ՟V/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/meta.rshjtVP - # ("!"' %$#B$##*! ƭب¢ƥX/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/parser.rs-@1:@/gU  S!' <" &! \" ) ( )'1'#' 1,!'* *),#! ,-#/-&T*+$&'& 5H)C*550;6 EZ 6*,6&=BKC .&>BKC QKCLE /0-535+% @< 1*1 '+E *W  Z8LB2V1JAE53' ;-1?;J;J%B( *) +;%X%&,%,%-" A.# B4) 5474* #%F/b= \`G2P<' U/^ :+57I8:C3ZXZeS9b 3:D$XJ 5a(#%7L;XZ$" `]K=<,/(""#a'#7;XT" `]K=<,/" Y&7 ZV  **Z8-)& XLC$H*C0(4) V" 0;697#&)**(H)&+&.-+ U 4B# ((67%&$!6%-+! BS!"%-?%[:?PJ&N@F@:EH 0.2PM7!40G9$\'a*]&cVZ:\6AU84J&4b;FJY7%10'1C5.N6WA&6B06.:820&N8N*-0#*'=:-640F"a%[:?PJ&??P&40F" 9 44!@ M+%$ (J?D0M+K&:X26 +5(*+ $.*E.!(""=6%R$5=S$ & #/,5R+^N "'0 4\,G2!!/G2!BT9,., G;$C I"! 9*  >1 '( J*P*Y0  @ 5D '( :9 * *06AOJH-$(Q),()" PMK0H$+W)/+)" (74 H#!Z \5N=^" =* C"- M>^ +<#/ .?&2 &LNVL'"9: '<;D83<5BE0 2( 49(3 &% #,-$2B4Q)- >@ 2ID/GA!2V37-4E0*8661 CH+6],4&'F7,`U1>Y:6ZSH1 -<I6])=Q69<M%$39_9-/>EH3 FR65:7C:I4-4F" "&'JJ $?>?: 80H2/F"<?(3?<+B /0(FE6: !&% %4IS2b104 +>0>. *5 $$&')0?0)F&)eE'?2P.G2P. -%> =U*'Y DI 8"]>=9 1 4$F0K/J3U+=:[hgIQ<<*5BE7J))"%&%UYD"-'@E2 ?( -?( P42(1-*7MU@7MU@ ( -( 75C"- Z'$3) 1! HB A J H12<."'*+BFL8A1 %% *>N$ 9" /(0/ևݯަć릓̼Z/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/settings.rsF3MKIZD{5 % (---------................................)(!&)'#% !"<9:9.57<,,(*>>87920:!@175,@*82D23/9-28)16-B^>)Z0VcdUG!/$( 8#4;$.6G QSWY1N`WSbPa^g-Q!61$4 SFE<-%8() 7 S_ad0)c`VcHebe[B*)%%-A#:)(!$ .7 c-A#:(-(!$ ;7 %-A#:((7$=44` Q-A#:((7$5--` 6:LX1WVT(A#<$Jc )S1P V11d<]cJ,%(9 0&UW5]5(7 1G&BY9/ S:CZ9- cCZ9/ \BY9. c9; abb9= XNXB3%4)G ?%47)'E 1#'?%9[$7)!G 1[F3%2)G ?%27)'H 1#cB96 1[`d%917: 1O96+ 1 VVbUcda[cb'9!47$7 2D2gbdQ-#0@7E. Q90 cec9#;6=4:8 e9#;6648 US^I]V[TD%977)O _"D'977)! C1[W`UcY6-> 1`b \1`G!/$3 -#.;$.6A 1NK#U?%67)I 1^+]c-#2@EF3 CR,ZW96c >DP?%:7)'G 1d`^cc-/ 1 C)EKOEIUM7;9;ISWOA?1UEY==9OIYAIQ;E?9AP   @* E/ C- H2 @* B, D. ;% 9# ;% :$ E/ >( G1 I3 B, =' 6 H2 J4 <& <& E/ B, J4 :$ >( B, F0 ;% @* =' :$ >( @* =ضܽW/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/usage.rs1S߸T^6LҰ, &!,e\F1/$6 Z#!#AWQVH 'ZD/( # $MB/N$H=D $4$&)Y&%PG">7T!/J.N=(' #9-T9!?)+*6!0% H\X6*?1*(1a-- ; N=%/B FEV *) .A&:86><"UNO% H =O(386)E $ `LB@>[% ` ']5+0"B@>[% ?)) B$/B :"PMU% + C> P(&A+* 5 2)7*"] $ F 4/9+*"[ $ 76?1-E ;:C5 JRL5/M '@'34*I-QHA)F MQHA)F?I" LC7Y@4$!1,0 )<5A$  ǺӸϗߠ@[/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/app/validator.rsS14*B!BӰӰ% (&!," '9 )4'%&*("'4C-0.#O]/H$ 36 ".F> +e. .D" %JIW0H$8X5GO05! L(5"2U/H$2QK(W'5T,(8#<(' N/H  /L8:K)DD6LJ9LEDT4 O4/+F>#U)12."5<4A4%92P<#P])=6 !S(?T;^-"e";9U,7 V7+HJ?=?AS@BZ?A=?/19FK # %I?@9D  ! %C*RB4.a:97&*dH$ *R.[3 4"/H$ >Q:Z2#H$ BDE+D  ! %D-S"X5GQ-M N< $%'E('G=+7&$@4, D28&? 4*/TJ YJ!#' 3[ [L@0),]L%& 6,, dJ1" Q! /IZ0?A .A QGAJּͯV/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/mod.rsto'+O7L,Z';'1&   ̼ӱެҒZ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/any_arg.rs71mA(k̡g! !-//A/5+$"'''3JO%')#5',0`G&1!5 00B06"/(##(((4 KP&(*$6(-1a#H'!2!፳־V/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg.rs`͔m ; !@"1!\@cdM N'5J_( 0c[-^aU ! I#+! C)' #8A13.H,,64<4>=BCC69=9IE6L@@@GS5OJJHFLM2E;@BCLLMMR+A<J   aUa0bI4C ]b_?Ebd"+)_'/ G")881 H")@% $bbc")ad(=(; \-(; bb]Y iiK #A,1J`c['R@b( ! [ !*$) 2:R J[bb:>cc?  _ !'!$#& 0? Q``, !0"$('.'6 #@4,? Q`b, !0*I5.,-' #:4&Z UN !0<&,'<'8 #7H4+> YU !0&M'(' #;B4%Y da dNb]d !8 a' !' E$! #D14 ?0 c` dJd]d !C@D$ a' !' C@D%$! #JHL*(+ 55$ a[ebe3`*c>b`^`$ cF #*+5)-81 a<+#*+5).G ;0jff?K)(* a^=cbb! W #' #!)0 W+#' #!)O C-,. c/]&!" c% #'&#!)- a3+#'&#!)0B OKL7313 >d`Z`caf`e"'  !'+#"$-6 a+#'#")-G YCP868 _0c!& ]]T #'(#!' )" c+#'(#!' )O K=Q>50 d0_1!2 b_b #'9#!' *$)0 a+#'9#!' *$)O SZF5R 3_E_1!2 bba #'9#!' *$)" b!+#'9#!' *$)O 6ZSF5R L@c_da-!% `+#'#)!) );H =61 `c_da-!5 `*+#'#9!) ))<H IE6S []```a !;*>=)$,H(b_( aYF2_9 "XJ'1 `e "[Y'1 ` "]N&06 e "I0d&0i bX` "F//V&0S =61 c^!`` !;*>=9$,Qbb6)( E6S UG_! ]a #'##!))M W+#'##!))0O C?<75$"$) eI !' ae2 #'#0!*)/Y b+#'#0!*)-O C?JR #(.)'I LGMJ[@3 90 bbRZbTe)  D #(#)/D/ E+#(#)8E C4,% ^O_XbTe)  D #(#)8D8 E+#(#)&D C4%*\db`b: &* %$$3.8g _ (* &$$30:L K6,.07:%9: _ad_*Lb*_T &'# *$0+d W+#'# *)6$: a\Yd &'#!$6+d M:-<74.96 b?= !* '$2a MI88,3!C cd`P^d4\_acG=G ,  !&"6$! @&58< OMIC>,<<7 7$#(5") Za^d4=   !* %$! @&58/ 75I9,7 "( ) Mfdfbecde[bY.CbMO !')$6&0 D !')$.<&0 WKIOM7AT'GG@,( bc9`deee^Cd" R !()<$!: C !()<$/ U !'#)F$+: a !'#)F$*/ IGb";3 c'MG  ,</(/0 bXeeI"% R !('$)&/6$+7 C !()&/6$/ b. !('$)&/6$5: IG^*-?7 QBOGAe*@ abfdfgd>CecLK (!(!$5 P (!(!$(5 X (!( +$5 ^ 4!(& &$\ WKOICM.&a^7,6 -713 `bdH& !'*#4<;4'$! > "58521+ T924 `^`^8c ![aa%#-%&#T\Zb-$! >'5899 ?09 MNT-< ^\!c/CY;X*>:RX- % a !' )E$ #14 ' !' )E$! .D14 935 9RX- $ _ !' (E$! #14 # !' (E$ .D14 824 O13C13 E15 -/9*$ )0ǙƱɮ̤gb/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/mod.rsB a*9h!` !"&" ꒎ɖc/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/base.rsZT/J0(! $)()&;(! ,. 3 :**1 ̎ཁγc/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/flag.rsyDަh.!c!,& < ! #( ! A*" 9*8< /1'#6 6 02B10261/"# $(( 6 ( 4 N S ( &(* (-2 1 a H '04.F(" 1"18 % -1!2. / ,-!12 0-!* .ԙϲJe/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/option.rsJIE]Ip X!,& I( "( ! @*" 8*8<: .15A ,'*= D8 4203))-!@#4.,1)-@#8 5 02B102616"/"# ((2(46N"S%(&(*$ (-1a?H<' 04.F(" 0"07 % ,#1= )##- (= )##- (2= +,#1: /,#!( :i/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/positional.rsjq[(K>L\Pm!,& : ( "2 ! ="  "&E 6 <"&E 5 8: )4= 13'C8 4M!"5-(P@' .1'C8 41)#- 9]  5 02B102616"/"(#(2(46N"S%(& ( *$ (-a?1H<' 0 0"07 % /14 022 0$#< !02$#<ٱg/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/switched.rsegg oo7E5(ɂ( B$ :*"+%+ рe/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_builder/valued.rs +Ѱs$4C! ( -,AF!(S4%*! $  08 <*!/5 ^/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_matcher.rsL?2 Eo / !0(/&*&$1%7/ '8+S-*77"a",=7*e*#9'<<)/ N7/ Fba8'W'#?# 3 FB +C$5+5\1b[ZT@*#8 6W@3 :; F!:*!2% .50&%-$17J704!38@- C=E) >8,) &?8, 8 A/.M<825M8/J4 3&禦^/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/arg_matches.rsW$1:J.6jz " ! `d $# %# =a@/)``_J1#c^a`1A/ ?,1&" ! dQ_`U "*$;= 75MDE:/> _`8_b/$ 8!6=4^H RV:/2 c_``5__/$ 8!6=4^` LSJ Dab"W #* $$7H4 )MO:40\!9 ^`>/$ -!9=,J1LE4;& V:?  ab_ed/$ (8!9=0N5PB8H& -MMLT2 `:#9 Q #)$( ?0* .b^` #)!$+2 X #)!($"21 B=_:]ad>cc +a_a0 "(*$A<<13 B "(*$>6913 bL "())*$?89FD1223 H "())*#!:06FD1223 ` "*#!C0=HE3 1>F:2! X:]ad>Y! "*#%!C0=HEU J "*#!(!VRRRP cdb "*#!C03JQ:.R"8 ba2,')6+$)$:d,4@*< 1#1Z/)) bbd2aZdb^E'89I9I*I `a _$,%98:(435S 1#148d>,%98:#=<>\ cc(A'<$Jc #)S1P _YBHX,'7' 1#"3=/4Aa  & @5--%I@#,4.1-"*?0 6 d`+ 4290Z\O%B%.403/$*?2 6 c  & @7))&KP8$*4//.#'?* 2   4) 5)D) !8) 7)G) 7* 6)F*ŭ͎X/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/group.rskK%4$"#" *^_b*aS\bb._baaSa[cSc9`B ,!8335+<C;#7A !!8335+;8#S)PI#85()bb%& + F++ 4-1*#()45B,8' &/35)"H?Q1 : AO<F7*2b 56-@?C)551;19G=GEMII?-EC?CAP   B, ;% 6 B, 6 8" <& A+ @* 8" :$ A+ D. =' O@* ?) =' ?) >( =ġǢ]/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/args/subcommand.rsQBc4jX;])$$H$ >cY- (,13; #!\K,1 6K 91 +腦ڒ猤]/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/mod.rsA+ vcٯƪ$$$   %  0FBB@NF YK^ 9'0&K g\^ >"1F ce0^ =0*2<4%K/L&2/B 91 A7%K/L&2/F $:  J+&U.8)5 %%$7%5 8 ӳӎᴹݧڇ`/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/macros.rs|Z6昅Jo$$$!&F %,3 'B//.0 ޮ۬¹ܿ^/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/bash.rsYrtòJ$%$  07  &)   DF $!B 5?_$Z2; */)=#0 -2-K#JF !B0;MB >E-J1 &( #%) #% 370K6 ;B-G1 [O H T #;  *P ׀Ɯ`/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/elvish.rs!zOj63%%%  !07? H7!^% #'!2 $&+E+!,=D >)8-<-O ,<-P +:-O *:-P ',B)J)  #'`Cͦ詒ǰւ^/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/fish.rsFs)&5$aKf%%g%  07>(=$&+5c*&&+U]J$> e&3-A ,A ,R 9U ,%3+A *A *R ,03"T6Q ,'08V¢٨רAd/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/powershell.rsbQOH%FNq%1q%Љ&% ! %07? H-6M93=,BS3 =I+!2 $&+E+!0=D >)K-<-".Q ,<-"/Q +:-".Q *:-"/Q ',B))N )  #'`Cۏʭӆګ_/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/shell.rs*@5H;3RF}]щ&&8щ&%<:L T : 3/  ;-86JMM_S#G ;..,:2 ‘ʁь]/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/completions/zsh.rsDUҎe{2]&'&% ! 0"7*  "& #8?4:@ )9'>.d3-55!*5(J:.- 6%@T61K?1L6%@?!J / (55(*):%$#))   P/1N- 5J!!  .[YZH7.%6311E)% H%! $$  /P K*(N&B8b2!X_'8G '='%> 0'!C5AB%&P 32# >&ȣ&ɣ&&&&&&֩&ܩ&&&ض&ٶ&&&&&&&&&&ڕT/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/errors.rsWVLM7ٛګ'('#& 2#F*/)=?+&)();"G #`+&8="J c8T@B77&813; ;"L 1KRW2M\S7&813; E"Q 1OK]+#) '>B _%+;'"H &')@"J ]+&' K"H A`+&, I"G A_X+&,#&D"N MCb+&)*) H"K N+&)!2"R b+?#67)I `TPD&7813=2"V 1b!_+&)"H"R [,F/$8/"&.($B>J"F PE3a1+&<"H H.+&?"K abR,.#XHF=JL ' a# 9'M D) _D&$ 11 B/#.$-+6_!/ L 1 N/#,!)5 # !1 a!0 .;*/#-,!+R + !1 ?)J1/# /!0! W 1 ?//# %!5! \ 1 O/#!6 Q !1 N/#!!0 ? 1 M/#!* [ +1 S&/#,!,C  1 U/#,12:!+5 [1 *#'C#. 8'9) 1 G/#,12!25 Z 1 P-/#,!65 b 1 S#/# -$2!.! ;1 K! 6 1# 5#/! 3P%J1# G $C(!$@&)DڮϏЖۯQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/fmt.rs4x͘bw(Ζ)(;;- ) (/ #  8+/12 74+&Q5 / && 2 &)#0 &'!/ &&)# a;@B $ ; %B@<!.4:@ /$34 :89 Y/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/osstringext.rs݆^ZxL]&j<٧))٧)@";;&!-862,'LIOK/E)B /6 :56B&, &,.K&!HKIGPN8HP<M4&T ,OBD;'%"A.& IAJFOPIKO7 '0# <;>B I 6;A F 7 66 ("  $.4( & P 4ۆᄉ˙T/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/strext.rs` pd$on)))78! +- ÀͥY/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/suggestions.rsQ *iQ)*)  O7V7 :V#3 ?e 9 1%H# Q:+#8& $ *#"*K<.%[&%"M$)45 )+2Q^#&U& ',  !5F #5F 55@#  53=# ʿþZ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.33.3/src/usage_parser.rsѱbV:L)}*, * !  %9'& 0. ,)&D!D:52. $G 1A F 0((' -  6.D?E/.H7#%+#+3- # +-#91(  0( 6%D @!&1)-EC##N3E ',,!5+"E19>C352 0("#)4. >V&  C P   ?&-%93*)C&/&93*)<&/&93*)F&-/93*)B&-%92*)I&/-92*)B&/-92*),'0*)/'02*)/'-*)2'-2*)8#-%93*)'#-*)*#-2*) G(-%9343A ) >#-%9343A ) G(-%9342A ) >#-%9342A ) J(-%9243A ) J(-%9243A ) A#-%9243A ) J(-%9242A ) J(-%9242A ) A#-%9242A ) %J(.&9343A ) %D%.&9343A ) %J(.&9342A ) %D%.&9342A ) %M(.&9243A ) %M(.&9243A ) %G%.&9243A ) %M(.&9242A ) %M(.&9242A ) &G%.&9242A ) ,J(.&9343A ) ,D%.&9343A ) ,J(.&9342A ) ,D%.&9342A ) ,M(.&9243A ) ,M(.&9243A ) ,G%.&9243A ) ,M(.&9242A ) ,M(.&9242A ) -G%.&9242A ) %P(.-9343A ) %G%.-9343A ) %M(.-9342A ) %G%.-9342A ) %S(.-9243A ) %J%.-9243A ) %P(.-9242A ) %J%.-9242A ) ,P(.-9343A ) ,G%.-9343A ) ,M(.-9342A ) ,G%.-9342A ) ,S(.-9243A ) ,J%.-9243A ) ,P(.-9242A ) ,J%.-9242A ) $F#%-9342A . $I#%-9242A . $L%&.9242A . $Q'&.9343A . $I%&.9342. #;%933*) $;%932*) >%923*) %@%:23*) ,B%;23*) !% %;23*) #!- %B23*) >%922*) *%32*) -%23*) >'7>1-H17-$+*E174O),A! -n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,֬͏Mclapx86_64-unknown-linux-gnu-a097ef7e83284276󟄸k}-$}y,TaaaaKaaaaaQXaavv5O Z(