Files
ServerSync/lib/rich/__pycache__/prompt.cpython-314.pyc

175 lines
19 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
<00> <0C>i<EFBFBD>0<00><00> <00>^RIHtHtHtHtHtHtHtHt^RI H
t
^RI H t ^RI HtHt]!R4t]!R4t!RR]4t!R R
]4t!R R ]],4t!R R]],4t!RR]],4t!RR]],4t!RR]],4t]R8Xd<>^RIH t ]PCRRR7'd<>]PCR^R7t"]"^8<>d ]"^
8:dM
] !R4K-] !R]" 24]PCRRR7t#]$!]#4^8<>dM
] !R4K,] !R ]#: 24]PCR!.R*OR"7t%] !R#]%: 24]PCR$.R+OR%R&7t&] !R']&: 24R)#] !R(4R)#R)#),<2C>)<08>Any<6E>Generic<69>List<73>Optional<61>TextIO<49>TypeVar<61>Union<6F>overload)<01> get_console)<01>Console)<02>Text<78>TextType<70>
PromptType<EFBFBD> DefaultTypec<00><00>]tRt^ tRtRtR#)<04> PromptErrorz/Exception base class for prompt related errors.<2E>N)<06>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__<5F>__static_attributes__r<00><00>2/tmp/pip-target-qd_sq_1j/lib/python/rich/prompt.pyrr s<00><00>9rrc<00>Ha<00>]tRt^toRtV3RlRltV3RlRltRtVtR#)<08>InvalidResponsez<65>Exception to indicate a response was invalid. Raise this within process_response() to indicate an error
and provide an error message.
Args:
message (Union[str, Text]): Error message.
c<00>$<<01>V^8<>dQhRS[RR/#)<04><00>message<67>returnN<6E>r)<02>format<61> __classdict__s"<22>r<00> __annotate__<5F>InvalidResponse.__annotate__s<00><><00><1F><1F><08><1F>T<EFBFBD>rc<08><00>WnR#<00>N<>r )<02>selfr s&&r<00>__init__<5F>InvalidResponse.__init__s<00><00><1E> rc<00> <<01>V^8<>dQhRS[/#)rr!r")r#r$s"<22>rr%r&s<00><><00><1C><1C>(<28>rc<08><00>VP#r(r)<00>r*s&r<00>__rich__<5F>InvalidResponse.__rich__s <00><00><13>|<7C>|<7C>rr)N) rrrrrr+r0r<00>__classdictcell__<5F>r$s@rrrs<00><><00><00><08><1F><1F><1C>rrc<00>@a<00>]tRt^toRt]tRtRtRt Rt
R/RRRRR RR
R R R R R /V3RlRlllt ] ] R/RRRRR RR
R R R R R RR/V3RlRlll44t] ] R/RRRRR RR
R R R R R RR/V3RlRlll44t] R/RRRRR RR
R R R R R RRRR/V3RlRlll4tV3RlRltV3RlRlt] R0V3RlRll4tV3RlR ltV3R!lR"ltV3R#lR$ltV3R%lR&lt] RR/V3R'lR(ll4t] RR/V3R)lR*ll4tRRRR/V3R+lR,lltV3R-ltR.tVtR#)1<>
PromptBasea<EFBFBD>Ask the user for input until a valid response is received. This is the base class, see one of
the concrete classes for examples.
Args:
prompt (TextType, optional): Prompt text. Defaults to "".
console (Console, optional): A Console instance or None to use global console. Defaults to None.
password (bool, optional): Enable password input. Defaults to False.
choices (List[str], optional): A list of valid choices. Defaults to None.
case_sensitive (bool, optional): Matching of choices should be case-sensitive. Defaults to True.
show_default (bool, optional): Show default in prompt. Defaults to True.
show_choices (bool, optional): Show choices in prompt. Defaults to True.
z*[prompt.invalid]Please enter a valid valuezA[prompt.invalid.choice]Please select one of the available optionsz: N<>console<6C>passwordF<64>choices<65>case_sensitiveT<65> show_default<6C> show_choicesc<00>x<<01>V^8<>dQhRS[RS[S[,RS[RS[S[S[,,RS[RS[RS[RR /#)
r<00>promptr6r7r8r9r:r;r!N)rrr <00>boolr<00>str)r#r$s"<22>rr%<00>PromptBase.__annotate__6si<00><><00>)<29>)<29><18>)<29><1A>'<27>"<22> )<29>
<17> )<29> <1A>$<24>s<EFBFBD>)<29>$<24> )<29><1D>)<29><1B>)<29><1B>)<29>
<0E>)rc<08><><00>T;'g \4Vn\V\4'd\P
!VRR7MTVnW0nVeW@nWPn W`n
Wpn R#)r=<00><01>styleN) r r6<00>
isinstancer?r <00> from_markupr=r7r8r9r:r;)r*r=r6r7r8r9r:r;s&&$$$$$$rr+<00>PromptBase.__init__6sd<00><00><1F>/<2F>/<2F>+<2B>-<2D><04> <0C><1A>&<26>#<23>&<26>&<26> <11> <1C> <1C>V<EFBFBD>8<EFBFBD> 4<><17> <0A> <0B>
!<21> <0A> <12> <1E>"<22>L<EFBFBD>,<2C><1B>(<28><19>(<28>r<00>streamc<00><><<01>V^8<>dQhRS[RS[S[,RS[RS[S[S[,,RS[RS[RS[RS[R S[S[,R
S[S[S[ 3,/
#<00> rr=r6r7r8r9r:r;<00>defaultrGr!)
rrr r>rr?rrr r)r#r$s"<22>rr%r@Ps<><00><><00>  <0C>  <0C><18>  <0C><1A>'<27>"<22>  <0C>
<17>  <0C> <1A>$<24>s<EFBFBD>)<29>$<24>  <0C><1D>  <0C><1B>  <0C><1B>  <0C><1D>  <0C><19><16> <20>  <0C>
<0F>{<7B>J<EFBFBD>&<26> '<27>  rc<08><00>R#r(r)
<EFBFBD>clsr=r6r7r8r9r:r;rJrGs
&&$$$$$$$$r<00>ask<73>PromptBase.askNs<00><00> rc<00><><<01>V^8<>dQhRS[RS[S[,RS[RS[S[S[,,RS[RS[RS[RS[S[,R S[/ #)
rr=r6r7r8r9r:r;rGr!)rrr r>rr?rr)r#r$s"<22>rr%r@asx<00><><00>  <0C>  <0C><18>  <0C><1A>'<27>"<22>  <0C>
<17>  <0C> <1A>$<24>s<EFBFBD>)<29>$<24>  <0C><1D>  <0C><1B>  <0C><1B>  <0C><19><16> <20>  <0C>
<14>  rc<08><00>R#r(r) rLr=r6r7r8r9r:r;rGs &&$$$$$$$rrMrN_s<00><00> rrJ.c<00><><<01>V^8<>dQhRS[RS[S[,RS[RS[S[S[,,RS[RS[RS[RS[R S[S[,R
S[/
#rI)rrr r>rr?rr)r#r$s"<22>rr%r@ps<><00><><00>%7<>%7<><18>%7<><1A>'<27>"<22> %7<>
<17> %7<> <1A>$<24>s<EFBFBD>)<29>$<24> %7<><1D>%7<><1B>%7<><1B>%7<><15>%7<><19><16> <20>%7<>
<0A>%7rc
 <0C>2<00>V!VVVVVVVR7p
V
!W<>R7#)a"Shortcut to construct and run a prompt loop and return the result.
Example:
>>> filename = Prompt.ask("Enter a filename")
Args:
prompt (TextType, optional): Prompt text. Defaults to "".
console (Console, optional): A Console instance or None to use global console. Defaults to None.
password (bool, optional): Enable password input. Defaults to False.
choices (List[str], optional): A list of valid choices. Defaults to None.
case_sensitive (bool, optional): Matching of choices should be case-sensitive. Defaults to True.
show_default (bool, optional): Show default in prompt. Defaults to True.
show_choices (bool, optional): Show choices in prompt. Defaults to True.
stream (TextIO, optional): Optional text file open for reading to get input. Defaults to None.
)r6r7r8r9r:r;)rJrGr) rLr=r6r7r8r9r:r;rJrG<00>_prompts &&$$$$$$$$ rrMrNos0<00><00>:<16> <12><1B><1D><1B>)<29>%<25>%<25>
<EFBFBD><07><17>w<EFBFBD>6<>6rc<00>&<<01>V^8<>dQhRS[RS[/#<00>rrJr!<00>rr )r#r$s"<22>rr%r@<00>s<00><><00> 6<> 6<>k<EFBFBD> 6<>d<EFBFBD> 6rc <0C>"<00>\RV R2R4#)z<>Turn the supplied default in to a Text instance.
Args:
default (DefaultType): Default value.
Returns:
Text: Text containing rendering of default value.
<EFBFBD>(<28>)<29>prompt.default)r )r*rJs&&r<00>render_default<6C>PromptBase.render_default<6C>s<00><00><14>a<EFBFBD><07>y<EFBFBD><01>N<EFBFBD>$4<>5<>5rc<00>&<<01>V^8<>dQhRS[RS[/#rUrV)r#r$s"<22>rr%r@<00>s<00><><00><16><16>;<3B><16>4<EFBFBD>rc <0C>*<00>VPP4pRVnVP'dWVP'dERP VP4pRV R2pVP R4VP VR4VR8wdhVP'dV\V\VP34'd4VP R4VPV4pVP V4VP VP4V#)zrMake prompt text.
Args:
default (DefaultType): Default value.
Returns:
Text: Text to display in prompt.
<EFBFBD><00>/<2F>[<5B>]<5D> zprompt.choices.) r=<00>copy<70>endr;r8<00>join<69>appendr:rDr?<00> response_typer[<00> prompt_suffix)r*rJr=<00>_choicesr8<00>_defaults&& r<00> make_prompt<70>PromptBase.make_prompt<70>s<><00><00><16><1B><1B>!<21>!<21>#<23><06><17><06>
<EFBFBD> <0F> <1C> <1C> <1C><14><1C><1C><1C><1A>x<EFBFBD>x<EFBFBD><04> <0C> <0C>-<2D>H<EFBFBD><19>(<28><1A>1<EFBFBD>o<EFBFBD>G<EFBFBD> <12>M<EFBFBD>M<EFBFBD>#<23> <1E> <12>M<EFBFBD>M<EFBFBD>'<27>#3<> 4<> <14>s<EFBFBD>N<EFBFBD><14>!<21>!<21>!<21><1A>7<EFBFBD>S<EFBFBD>$<24>*<<3C>*<<3C>$=<3D>><3E>><3E> <12>M<EFBFBD>M<EFBFBD>#<23> <1E><1B>*<2A>*<2A>7<EFBFBD>3<>H<EFBFBD> <12>M<EFBFBD>M<EFBFBD>(<28> #<23><0E> <0A> <0A>d<EFBFBD>(<28>(<28>)<29><15> rc
<00>H<<01>V^8<>dQhRS[RS[RS[RS[S[,RS[/#)rr6r=r7rGr!)r rr>rrr?)r#r$s"<22>rr%r@<00>sI<00><><00>G<01>G<01><18>G<01><19>G<01><17> G<01>
<19><16> <20> G<01>
<0A> Grc <0C>(<00>VPW#VR7#)z<>Get input from user.
Args:
console (Console): Console instance.
prompt (TextType): Prompt text.
password (bool): Enable password entry.
Returns:
str: String from user.
)r7rG)<01>input)rLr6r=r7rGs&&&&&r<00> get_input<75>PromptBase.get_input<75>s<00><00>$<17>}<7D>}<7D>V<EFBFBD>v<EFBFBD>}<7D>F<>Frc<00>&<<01>V^8<>dQhRS[RS[/#<00>r<00>valuer!<00>r?r>)r#r$s"<22>rr%r@<00>s<00><><00> T<01> T<01>#<23> T<01>$<24> Trc <0C><00>VPfQhVP'dVP4VP9#VP4P4VPUu.uFq"P4NK up9#uupi)z<>Check value is in the list of valid choices.
Args:
value (str): Value entered by user.
Returns:
bool: True if choice was valid, otherwise False.
)r8r9<00>strip<69>lower)r*ru<00>choices&& r<00> check_choice<63>PromptBase.check_choice<63>si<00><00><14>|<7C>|<7C>'<27>'<27>'<27> <0F> <1E> <1E> <1E><18>;<3B>;<3B>=<3D>D<EFBFBD>L<EFBFBD>L<EFBFBD>0<> 0<><14>{<7B>{<7B>}<7D>"<22>"<22>$<24>d<EFBFBD>l<EFBFBD>l<EFBFBD>(S<>l<EFBFBD>F<EFBFBD><1C><1C><1E>l<EFBFBD>(S<>S<>S<><53>(Ss<00>+Bc<00>&<<01>V^8<>dQhRS[RS[/#rt)r?r)r#r$s"<22>rr%r@<00>s<00><><00><1C><1C>c<EFBFBD><1C>j<EFBFBD>rc <0C><00>VP4pVPV4pTP
e<>TP T4'g\TP4hTP'ggTPTP
TP
Uu.uFq3P4NK upPTP44,4pT# \d\TP4hi;iuupi)z<>Process response from user, convert to prompt type.
Args:
value (str): String typed by user.
Raises:
InvalidResponse: If ``value`` is invalid.
Returns:
PromptType: The value to be returned from ask method.
) rxrh<00>
ValueErrorr<00>validate_error_messager8r{<00>illegal_choice_messager9ry<00>index)r*ru<00> return_valuerzs&& r<00>process_response<73>PromptBase.process_response<73>s<><00><00><16> <0B> <0B> <0A><05> ?<3F>'+<2B>'9<>'9<>%<25>'@<40>L<EFBFBD> <10><<3C><<3C> #<23><17>$<24>$<24>U<EFBFBD>+<2B>+<2B>%<25>d<EFBFBD>&A<>&A<>B<>B<><17>&<26>&<26>&<26>#<23>1<>1<><18>L<EFBFBD>L<EFBFBD>6:<3A>l<EFBFBD>l<EFBFBD>C<>l<EFBFBD>F<EFBFBD><1C><1C><1E>l<EFBFBD>C<>I<>I<>%<25>+<2B>+<2B>-<2D>X<><16> <12> <0C>
<1C><1B><><1A> ?<3F>!<21>$<24>"=<3D>"=<3D>><3E> ><3E> ?<3F><>Ds<00>C<00>C;
<EFBFBD>!C8c<00>*<<01>V^8<>dQhRS[RS[RR/#)rru<00>errorr!N)r?r)r#r$s"<22>rr%r@s"<00><><00>/<2F>/<2F>s<EFBFBD>/<2F>?<3F>/<2F>t<EFBFBD>/rc <0C>@<00>VPPVRR7R#)z<>Called to handle validation error.
Args:
value (str): String entered by user.
error (InvalidResponse): Exception instance the initiated the error.
T)<01>markupN)r6<00>print)r*rur<>s&&&r<00>on_validate_error<6F>PromptBase.on_validate_errors<00><00> <0A> <0C> <0C><1A><1A>5<EFBFBD><14><1A>.rc<00><<01>V^8<>dQhRR/#)rr!Nr)r#r$s"<22>rr%r@ s<00><><00>;<3B>;<3B>D<EFBFBD>;rc <0C><00>R#)z,Hook to display something before the prompt.Nrr/s&r<00>
pre_prompt<EFBFBD>PromptBase.pre_prompt s<00>rc<00>6<<01>V^8<>dQhRS[S[,RS[/#)rrGr!)rrr)r#r$s"<22>rr%r@s <00><><00> <0C> <0C>(<28>6<EFBFBD>"2<> <0C>j<EFBFBD> rc<08><00>R#r(r)r*rGs&$r<00>__call__<5F>PromptBase.__call__s<00><00> rc<00>R<<01>V^8<>dQhRS[RS[S[,RS[S[S[3,/#<00>rrJrGr!)rrrr r)r#r$s"<22>rr%r@s4<00><><00> <0C> <0C>%<25> <0C>/7<><06>/?<3F> <0C> <0E>z<EFBFBD>;<3B>&<26> '<27> rc<08><00>R#r(r)r*rJrGs&$$rr<>r<>s<00><00> rc<00><<<01>V^8<>dQhRS[RS[S[,RS[/#r<>)rrr)r#r$s"<22>rr%r@s(<00><><00>$<24>$<24>3<EFBFBD>$<24>h<EFBFBD>v<EFBFBD>6F<36>$<24>RU<52>$rc <0C>2<00>VP4VPV4pVPVPW0PVR7pVR8Xd
VR8wdV#VP V4pV# \ dpTPYF4Rp?K<>Rp?ii;i)z|Run the prompt loop.
Args:
default (Any, optional): Optional default value.
Returns:
PromptType: Processed value.
)rGr_.N)r<>rlrqr6r7r<>rr<>)r*rJrGr=rur<>r<>s&$$ rr<>r<>s<><00><00><13> <10>O<EFBFBD>O<EFBFBD> <1D><19>%<25>%<25>g<EFBFBD>.<2E>F<EFBFBD><18>N<EFBFBD>N<EFBFBD>4<EFBFBD><<3C><<3C><16><1D><1D>v<EFBFBD>N<EFBFBD>V<>E<EFBFBD><14><02>{<7B>w<EFBFBD>#<23>~<7E><1E><0E> $<24>#<23>4<>4<>U<EFBFBD>;<3B> <0C>
$<24>#<23><> #<23> <19><14>&<26>&<26>u<EFBFBD>4<><18><> <19>s<00>A/<00>/ B<03>:B<03>Bc<00>R<<01>V^8<>dQh/S[;R&S[S[S[,,;R&#)rrhr8)<04>typerrr?)r#r$s"<22>rr%r@s(<00><><00><00><18><1D><01>,<16>d<EFBFBD>3<EFBFBD>i<EFBFBD> <20>'<27>-r)r9r8r6r7r=r;r:)r_r()rrrrrr?rhr<>r<>rir8r+<00> classmethodr
rMr[rlrqr{r<>r<>r<>r<><00>__annotate_func__rr2r3s@rr5r5sd<00><><00><00> <08><1E>M<EFBFBD>I<><1A>K<><1B><19>M<EFBFBD>#'<27>G<EFBFBD>)<29>&*<2A> )<29>
<1F> )<29> (,<2C> )<29> $<24>)<29>"<22>)<29>"<22>)<29>)<29>0<11> <0A>  <0C>&*<2A>  <0C>
<1F>  <0C> (,<2C>  <0C> $<24>  <0C>"<22>  <0C>"<22>  <0C>$(<28>  <0C>  <0C><0E><11>  <0C><11> <0A>  <0C>&*<2A>  <0C>
<1F>  <0C> (,<2C>  <0C> $<24>  <0C>"<22>  <0C>"<22>  <0C>$(<28>  <0C>  <0C><0E><11>  <0C><11>%7<>&*<2A> %7<>
<1F> %7<> (,<2C> %7<> $<24>%7<>"<22>%7<>"<22>%7<><1B>%7<>$(<28>%7<>%7<><11>%7<>N 6<> 6<><16><16>><11>G<01>G<01><11>G<01>& T<01> T<01><1C><1C>>/<2F>/<2F>;<3B>;<3B><0E> <0C>T<EFBFBD> <0C> <0C><0E> <0C><0E> <0C>BF<42> <0C> <0C><0E> <0C>
$<24><13>$<24><14>$<24>$<24>u<01>rr5c<00><00>]tRtRtRt]tRtR#)<05>Prompti0zVA prompt that returns a str.
Example:
>>> name = Prompt.ask("Enter your name")
rN)rrrrrr?rhrrrrr<>r<>0s<00><00><08><18>Mrr<>c<00>"<00>]tRtRtRt]tRtRtR#)<06> IntPrompti<z}A prompt that returns an integer.
Example:
>>> burrito_count = IntPrompt.ask("How many burritos do you want to order")
z3[prompt.invalid]Please enter a valid integer numberrN) rrrrr<00>intrhr<>rrrrr<>r<><s<00><00><08><18>M<EFBFBD>R<>rr<>c<00>"<00>]tRtRtRt]tRtRtR#)<06> FloatPromptiHzmA prompt that returns a float.
Example:
>>> temperature = FloatPrompt.ask("Enter desired temperature")
z%[prompt.invalid]Please enter a numberrN) rrrrr<00>floatrhr<>rrrrr<>r<>Hs<00><00><08><1A>M<EFBFBD>D<>rr<>c<00>da<00>]tRtRtoRt]tRtRR.tV3RlRlt V3RlR lt
V3R
lt R t Vt R #) <0A>ConfirmiTzeA yes / no confirmation prompt.
Example:
>>> if Confirm.ask("Continue"):
run_job()
z#[prompt.invalid]Please enter Y or N<>y<>nc<00>&<<01>V^8<>dQhRS[RS[/#rUrV)r#r$s"<22>rr%<00>Confirm.__annotate__as<00><><00>R<01>R<01>k<EFBFBD>R<01>d<EFBFBD>Rrc <0C>h<00>VPwr#\V'd RV R2RR7#RV R2RR7#)z8Render the default as (y) or (n) rather than True/False.rXrYrZrB)r8r )r*rJ<00>yes<65>nos&& rr[<00>Confirm.render_defaultas8<00><00><16>,<2C>,<2C><07><03><13>'<27>a<EFBFBD><03>u<EFBFBD>A<EFBFBD>J<EFBFBD>@P<>Q<>Q<><11>2<EFBFBD>$<24>a<EFBFBD>y<EFBFBD>@P<>Q<>Qrc<00>&<<01>V^8<>dQhRS[RS[/#rtrv)r#r$s"<22>rr%r<>fs<00><><00>(<28>(<28>c<EFBFBD>(<28>d<EFBFBD>(rc <0C><><00>VP4P4pWP9d\VP4hWP^,8H#)zConvert choices to a bool.)rxryr8rr<>)r*rus&&rr<><00>Confirm.process_responsefsB<00><00><15> <0B> <0B> <0A>#<23>#<23>%<25><05> <10> <0C> <0C> $<24>!<21>$<24>"=<3D>"=<3D>><3E> ><3E><14> <0C> <0C>Q<EFBFBD><0F>'<27>'rc<00>6<<01>V^8<>dQh/S[S[,;R&#)rr8)rr?)r#r$s"<22>rr%r<>Ts<00><><00><00><12>#<23>Y<EFBFBD>#<23>rrN)rrrrrr>rhr<>r8r[r<>r<>rr2r3s@rr<>r<>Ts=<00><><00><00><08><19>M<EFBFBD>B<><1A><1D>s<EFBFBD><1A>G<EFBFBD>R<01>R<01>
(<28>(<28>%<01>rr<><00>__main__)r<>zRun [i]prompt[/i] tests?T)rJz6:rocket: Enter a number between [b]1[/b] and [b]10[/b]z=:pile_of_poo: [prompt.invalid]Number must be between 1 and 10znumber=z=Please enter a password [cyan](must be at least 5 characters))r7z"[prompt.invalid]password too shortz password=z Enter a fruit)r8zfruit=z'What's the best Dog? (Case INSENSITIVE)F)r8r9zdoggie=z[b]OK :loudly_crying_face:N)<03>apple<6C>orange<67>pear)zBorder Terrier<65>Collie<69> Labradoodle)'<27>typingrrrrrrr r
r_r r6r <00>textr rrr<00> Exceptionrrr5r?r<>r<>r<>r<>r<>r>r<>r<00>richr<68>rM<00>resultr7<00>len<65>fruit<69>doggierrr<00><module>r<>s<><00><01>Q<>Q<>Q<><19><1C> <20> <14>\<5C> "<22>
<EFBFBD><15>m<EFBFBD>$<24> <0B>:<3A>)<29>:<3A> <1C>k<EFBFBD> <1C>O$<24><17><1A>$<24>O$<24>d <18>Z<EFBFBD><03>_<EFBFBD> <18> S<01>
<EFBFBD>3<EFBFBD><0F> S<01> E<01>*<2A>U<EFBFBD>#<23> E<01>(<28>j<EFBFBD><14><1E>(<28>4 <0C>z<EFBFBD><19><1A><0E>{<7B>{<7B>-<2D>t<EFBFBD>{<7B><<3C><<3C><12><1E>]<5D>]<5D>H<>RS<52>#<23><0E>F<EFBFBD><16><11>{<7B>v<EFBFBD><12>|<7C><15> <11>Q<> R<> <0A><07><06>x<EFBFBD> <20>!<21><12><1D>z<EFBFBD>z<EFBFBD>O<><1D>"<22><0E>H<EFBFBD><13>8<EFBFBD>}<7D><01>!<21><15> <11>6<> 7<> <0A> <09>(<28><1C>&<26>'<27><16>
<EFBFBD>
<EFBFBD>?<3F>4O<34>
<EFBFBD>P<><05> <0A><06>u<EFBFBD>i<EFBFBD> <20>!<21><17><1A><1A> 5<>?<3F> <20><1C>
<EFBFBD><06>
<0E><07><06>z<EFBFBD>"<22>#<23> <0E>*<2A>+<2B>Er