Files
proxmox/venv/lib/python3.12/site-packages/jinja2/__pycache__/lexer.cpython-312.pyc

195 lines
31 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<0E>HiZt<00> <00><00>UdZddlZddlZddlmZddlmZddlm Z ddl
m Z ddl mZdd lmZej"r
ddlZdd
lmZed <0B>Zej.ej0d fed <ej4d<0E>Zej4d<0F>Zej4dej:<00>Zej4dej>ej@z<00>Z!ej4dej>ej@z<00>Z"e d<13>Z#e d<14>Z$e d<15>Z%e d<16>Z&e d<17>Z'e d<18>Z(e d<19>Z)e d<1A>Z*e d<1B>Z+e d<1C>Z,e d<1D>Z-e d<1E>Z.e d<1F>Z/e d <20>Z0e d!<21>Z1e d"<22>Z2e d#<23>Z3e d$<24>Z4e d%<25>Z5e d&<26>Z6e d'<27>Z7e d(<28>Z8e d)<29>Z9e d*<2A>Z:e d+<2B>Z;e d,<2C>Z<e d-<2D>Z=e d.<2E>Z>e d/<2F>Z?e d0<64>Z@e d1<64>ZAe d2<64>ZBe d3<64>ZCe d4<64>ZDe d5<64>ZEe d6<64>ZFe d7<64>ZGe d8<64>ZHe d9<64>ZIe d:<3A>ZJe d;<3B>ZKe d<<3C>ZLe d=<3D>ZMe d><3E>ZNe d?<3F>ZOe d@<40>ZPe dA<64>ZQe dB<64>ZRe dC<64>ZSidDe#<23>dEe;<3B>dFe'<27>dGe*<2A>dHe3<65>dIe2<65>dJe6<65>dKe<<3C>dLe.<2E>dMe8<65>dNe/<2F>dOe9<65>dPe-<2D>dQe7<65>dRe)<29>dSe4<65>dTe+<2B>e,e0e1e$e(e%e5e&e:dU<64> <09>ZTeTj<54><00>D<00><00>cic]\}}||<00><02>
c}}ZVeWeT<65>eWeV<65>k(sJdV<64><00>ej4dNdWj<57>dX<64>eYeTdY<64><00>Z<EFBFBD>D<00><00><00>dO<64><03>ZZe[eIeKeJe=eNeOePg<07>Z\e[e=eQeKePg<04>Z]d[e^d\e^fd]<5D>Z_d^d_d\e^fd`<60>Z`dae^d\e^fdb<64>Zadce^d\ebfdd<64>Zcdedfd\ej<>ej0e^e^ffdg<64>ZeGdh<64>di<64>ZfGdj<64>d_ej<><00>ZhGdk<64>dl<64>ZiGdm<64>dn<64>Zjdudo<64>ZkGdp<64>dqel<65>ZmGdr<64>dsej<><00>ZnGdt<64>d <0C>Zoycc}}w)vz<76>Implements a Jinja / Python combination lexer. The ``Lexer`` class
is used to do some preprocessing. It filters out invalid operators like
the bitshift operators we don't allow in templates. It separates
template code and python code in expressions.
<EFBFBD>N)<01> literal_eval)<01>deque)<01>intern<72>)<01>pattern)<01>TemplateSyntaxError)<01>LRUCache)<01> Environment<6E>2<00>Lexer<65> _lexer_cachez\s+z (\r\n|\r|\n)z7('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")z<>
(
0b(_?[0-1])+ # binary
|
0o(_?[0-7])+ # octal
|
0x(_?[\da-f])+ # hex
|
[1-9](_?\d)* # decimal
|
0(_?0)* # decimal zero
)
z<>
(?<!\.) # doesn't start with a .
(\d+_)*\d+ # digits, possibly _ separated
(
(\.(\d+_)*\d+)? # optional fractional part
e[+\-]?(\d+_)*\d+ # exponent part
|
\.(\d+_)*\d+ # required fractional part
)
<20>add<64>assign<67>colon<6F>comma<6D>div<69>dot<6F>eq<65>floordiv<69>gt<67>gteq<65>lbrace<63>lbracket<65>lparen<65>lt<6C>lteq<65>mod<6F>mul<75>ne<6E>pipe<70>pow<6F>rbrace<63>rbracket<65>rparen<65> semicolon<6F>sub<75>tilde<64>
whitespace<EFBFBD>float<61>integer<65>name<6D>string<6E>operator<6F> block_begin<69> block_end<6E>variable_begin<69> variable_end<6E> raw_begin<69>raw_end<6E> comment_begin<69> comment_end<6E>comment<6E>linestatement_begin<69>linestatement_end<6E>linecomment_begin<69>linecomment_end<6E> linecomment<6E>data<74>initial<61>eof<6F>+<2B>-<2D>/z//<2F>*<2A>%z**<2A>~<7E>[<5B>]<5D>(<28>)<29>{<7B>}z==z!=<3D>>) z>=<3D><z<=<3D>=<3D>.<2E>:<3A>|<7C>,<2C>;zoperators droppedrPc#<00>FK<00>|]}tj|<01><00><01><00>y<00>w<01>N)<02>re<72>escape)<02>.0<EFBFBD>xs <20>N/home/intlc/projects/proxmox/venv/lib/python3.12/site-packages/jinja2/lexer.py<70> <genexpr>rZ<00>s<00><00><><00>P<>!<21><12><19><19>1<EFBFBD><1C>P<>s<00>!c<00><00>t|<00> SrT)<01>len<65>rXs rY<00><lambda>r^<00>s <00><00><03>A<EFBFBD><06>w<EFBFBD><00>)<01>key<65>
token_type<EFBFBD>returnc<00><><00>|tvr t|Stdtdtdtdt
dt dtdtdtdtd td
td i j||<00>S) Nzbegin of commentzend of commentr6zbegin of statement blockzend of statement blockzbegin of print statementzend of print statementzbegin of line statementzend of line statementztemplate data / textzend of template)<0E>reverse_operators<72>TOKEN_COMMENT_BEGIN<49>TOKEN_COMMENT_END<4E> TOKEN_COMMENT<4E>TOKEN_LINECOMMENT<4E>TOKEN_BLOCK_BEGIN<49>TOKEN_BLOCK_END<4E>TOKEN_VARIABLE_BEGIN<49>TOKEN_VARIABLE_END<4E>TOKEN_LINESTATEMENT_BEGIN<49>TOKEN_LINESTATEMENT_END<4E>
TOKEN_DATA<EFBFBD> TOKEN_EOF<4F>get)ras rY<00>_describe_token_typerr<00>sv<00><00><11>&<26>&<26> <20><1A>,<2C>,<2C> <1C>/<2F><19>+<2B><15>y<EFBFBD><19>9<EFBFBD><19>5<><17>1<><1C>8<><1A>4<>!<21>#<<3C><1F>!8<><12>*<2A><11>$<24> <06>
<EFBFBD>c<EFBFBD>*<2A>j<EFBFBD>!<21> "r_<00>token<65>Tokenc<00>j<00>|jtk(r |jSt|j<00>S)z#Returns a description of the token.)<04>type<70>
TOKEN_NAME<EFBFBD>valuerr)rss rY<00>describe_tokenry<00>s'<00><00> <0C>z<EFBFBD>z<EFBFBD>Z<EFBFBD><1F><14>{<7B>{<7B><1A> <1F><05>
<EFBFBD>
<EFBFBD> +<2B>+r_<00>exprc<00>d<00>d|vr |jdd<02>\}}|tk(r|S|}t|<01>S)z0Like `describe_token` but for token expressions.rOr)<03>splitrwrr)rzrvrxs rY<00>describe_token_exprr}<00>s:<00><00>
<EFBFBD>d<EFBFBD>{<7B><1A>j<EFBFBD>j<EFBFBD><13>a<EFBFBD>(<28> <0B><04>e<EFBFBD> <0F>:<3A> <1D><18>L<EFBFBD><13><04> <1F><04> %<25>%r_rxc<00>><00>ttj|<00><00>S)zsCount the number of newline characters in the string. This is
useful for extensions that filter a stream.
)r\<00>
newline_re<EFBFBD>findall)rxs rY<00>count_newlinesr<73><00>s<00><00> <0F>z<EFBFBD>!<21>!<21>%<25>(<28> )<29>)r_<00> environmentr
c<00><><00>tj}t|j<00>t||j<00>ft|j
<00>t ||j
<00>ft|j<00>t||j<00>fg}|j<00>>|jt|j<00>td||j<00>zf<03>|j<00>>|jt|j<00>td||j<00>zf<03>t|d<04><05>D<00>cgc]}|dd<00><02> c}Scc}w)zACompiles all the rules from the environment into a list of rules.Nz ^[ \t\v]*z(?:^|(?<=\S))[^\S\r\n]*T)<01>reverser)rUrVr\<00>comment_start_stringre<00>block_start_stringri<00>variable_start_stringrk<00>line_statement_prefix<69>appendrm<00>line_comment_prefix<69>TOKEN_LINECOMMENT_BEGIN<49>sorted)r<><00>e<>rulesrXs rY<00> compile_rulesr<73><00>s-<00><00>
<EFBFBD> <09> <09>A<EFBFBD> <10> <0B>0<>0<> 1<> <1F> <0A>k<EFBFBD>.<2E>.<2E> /<2F>
<EFBFBD> <10> <0B>.<2E>.<2E> /<2F> <1D> <0A>k<EFBFBD>,<2C>,<2C> -<2D>
<EFBFBD> <10> <0B>1<>1<> 2<> <20> <0A>k<EFBFBD>/<2F>/<2F> 0<>
<EFBFBD> <06>E<EFBFBD>$<13>(<28>(<28>4<> <0A> <0C> <0C><13>K<EFBFBD>5<>5<>6<>)<29><1C>q<EFBFBD><1B>!B<>!B<>C<>C<> <0E>
<EFBFBD><13>&<26>&<26>2<> <0A> <0C> <0C><13>K<EFBFBD>3<>3<>4<>'<27>*<2A>Q<EFBFBD>{<7B>/N<>/N<>-O<>O<> <0E>
<EFBFBD>"<22>%<25><14>6<> 7<>a<EFBFBD>A<EFBFBD>a<EFBFBD>b<EFBFBD>E<EFBFBD> 7<>7<><37> 7s<00>7 Ec<00>p<00>eZdZdZefdedejeddfd<06>Zde dejedd fd
<EFBFBD>Z y) <0B>FailurezjClass that raises a `TemplateSyntaxError` if called.
Used by the `Lexer` to specify known errors.
<20>message<67>clsrbNc<00> <00>||_||_yrT)r<><00> error_class)<03>selfr<66>r<>s rY<00>__init__zFailure.__init__s<00><00><1F><04> <0C><1E><04>r_<00>lineno<6E>filenamez te.NoReturnc<00><<00>|j|j||<02><00>rT)r<>r<>)r<>r<>r<>s rY<00>__call__zFailure.__call__ s<00><00><12><1E><1E>t<EFBFBD>|<7C>|<7C>V<EFBFBD>X<EFBFBD>><3E>>r_) <0C>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r<00>str<74>t<>Typer<65><00>int<6E>Optionalr<6C><00>r_rYr<>r<><00>sW<00><00><08>
@S<01><1F><1A><1F>!"<22><16><16>(;<3B>!<<3C><1F> <0A><1F> ?<3F>s<EFBFBD>?<3F>a<EFBFBD>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>?<3F>-<2D>?r_r<>c<00>X<00>eZdZUeed<eed<eed<defd<05>Zdedefd<07>Zdedefd <09>Z y
) rtr<>rvrxrbc<00><00>t|<00>SrT)ry<00>r<>s rY<00>__str__z Token.__str__s <00><00><1D>d<EFBFBD>#<23>#r_rzc<00><><00>|j|k(ryd|vr+|jdd<03>|j|jgk(Sy)z<>Test a token against a token expression. This can either be a
token type or ``'token_type:token_value'``. This can only test
against string values and types.
TrOrF)rvr|rx<00>r<>rzs rY<00>testz
Token.tests@<00><00> <10>9<EFBFBD>9<EFBFBD><04> <1C><17> <0E>$<24>;<3B><17>:<3A>:<3A>c<EFBFBD>1<EFBFBD>%<25>$<24>)<29>)<29>T<EFBFBD>Z<EFBFBD>Z<EFBFBD>)@<40>@<40> @<40>r_<00>iterablec<00>,<00><00>t<00>fd<01>|D<00><00>S)z(Test against multiple token expressions.c3<00>@<00>K<00>|]}<01>j|<01><00><01><00>y<00>wrT)r<>)rWrzr<>s <20>rYrZz!Token.test_any.<locals>.<genexpr>&s<00><><00><><00>8<>t<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>T<EFBFBD>?<3F>8<>s<00>)<01>any)r<>r<>s` rY<00>test_anyzToken.test_any$s<00><><00><12>8<>x<EFBFBD>8<>8<>8r_N)
r<EFBFBD>r<>r<>r<><00>__annotations__r<5F>r<><00>boolr<6C>r<>r<>r_rYrtrt sC<00><00> <0F>K<EFBFBD>
<0A>I<EFBFBD> <0E>J<EFBFBD>$<24><13>$<24> <15><13> <15><14> <15>9<>#<23>9<>$<24>9r_c<00>,<00>eZdZdZdd<04>Zdd<05>Zdefd<06>Zy) <09>TokenStreamIteratorz`The iterator for tokenstreams. Iterate over the stream
until the eof token is reached.
rbNc<00><00>||_yrT)<01>stream)r<>r<>s rYr<>zTokenStreamIterator.__init__.s <00><00><1C><04> r_c<00><00>|SrTr<>r<>s rY<00>__iter__zTokenStreamIterator.__iter__1s<00><00><13> r_c<00><><00>|jj}|jtur |jj <00>t
<00>t |j<00>|SrT)r<><00>currentrvrp<00>close<73> StopIteration<6F>next<78>r<>rss rY<00>__next__zTokenStreamIterator.__next__4sD<00><00><14> <0B> <0B>#<23>#<23><05> <10>:<3A>:<3A><19> "<22> <10>K<EFBFBD>K<EFBFBD> <1D> <1D> <1F><1F> <1F> <0C>T<EFBFBD>[<5B>[<5B><19><14> r_)r<><00> TokenStreamrbN)rbr<>)r<>r<>r<>r<>r<>r<>rtr<>r<>r_rYr<>r<>)s<00><00><08><1D><14><15>%<25>r_r<>c<00>,<00>eZdZdZdej
edejedejefd<05>Z de
fd<07>Z de fd<08>Z ede fd <09><04>Zd
edd fd <0C>Zdefd <0A>Zddedd fd<0F>Zdedejefd<11>Zdede fd<12>Zdefd<13>Zdd<14>Zdedefd<15>Zy )r<>z<>A token stream is an iterable that yields :class:`Token`\s. The
parser however does not iterate over it but calls :meth:`next` to go
one token ahead. The current active token is stored as :attr:`current`.
<20> generatorr+r<>c<00><><00>t|<01>|_t<00>|_||_||_d|_tdtd<03>|_ t|<00>y)NFr<00>) <0B>iter<65>_iterr<00>_pushedr+r<><00>closedrt<00> TOKEN_INITIALr<4C>r<>)r<>r<>r+r<>s rYr<>zTokenStream.__init__EsD<00><00> <1A>)<29>_<EFBFBD><04>
<EFBFBD>(-<2D><07><04> <0C><18><04> <09> <20><04> <0A><1B><04> <0B><1C>Q<EFBFBD> <0A>r<EFBFBD>2<><04> <0C> <0C>T<EFBFBD>
r_rbc<00><00>t|<00>SrT)r<>r<>s rYr<>zTokenStream.__iter__Ss <00><00>"<22>4<EFBFBD>(<28>(r_c<00>h<00>t|j<00>xs|jjtuSrT)r<>r<>r<>rvrpr<>s rY<00>__bool__zTokenStream.__bool__Vs%<00><00><13>D<EFBFBD>L<EFBFBD>L<EFBFBD>!<21>G<>T<EFBFBD>\<5C>\<5C>%6<>%6<>i<EFBFBD>%G<>Gr_c<00><00>| S)z Are we at the end of the stream?r<>r<>s rY<00>eoszTokenStream.eosYs <00><00><18>x<EFBFBD>r_rsNc<00>:<00>|jj|<01>y)z Push a token back to the stream.N)r<>r<>r<>s rY<00>pushzTokenStream.push^s<00><00> <0C> <0C> <0C><1B><1B>E<EFBFBD>"r_c<00>d<00>t|<00>}|j}|j|<02>||_|S)zLook at the next token.)r<>r<>r<>)r<><00> old_token<65>results rY<00>lookzTokenStream.lookbs,<00><00><18><14>J<EFBFBD> <09><15><1C><1C><06> <0C> <09> <09>&<26><19> <20><04> <0C><15> r_<00>nc<00>:<00>t|<01>D] }t|<00><00>y)zGot n tokens ahead.N)<02>ranger<65>)r<>r<><00>_s rY<00>skipzTokenStream.skipjs<00><00><16>q<EFBFBD><18> <17>A<EFBFBD> <10><14>J<EFBFBD> r_rzc<00>P<00>|jj|<01>r t|<00>Sy)zqPerform the token test and return the token if it matched.
Otherwise the return value is `None`.
N)r<>r<>r<>r<>s rY<00>next_ifzTokenStream.next_ifos#<00><00> <10><<3C><<3C> <1C> <1C>T<EFBFBD> "<22><17><04>:<3A> <1D>r_c<00>(<00>|j|<01>duS)z8Like :meth:`next_if` but only returns `True` or `False`.N)r<>r<>s rY<00>skip_ifzTokenStream.skip_ifxs<00><00><13>|<7C>|<7C>D<EFBFBD>!<21><14>-<2D>-r_c<00>*<00>|j}|jr!|jj<00>|_|S|jjtur t |j <00>|_|S|S#t$r|j<00>Y|SwxYw)z|Go one token ahead and return the old one.
Use the built-in :func:`next` instead of calling this directly.
) r<>r<><00>popleftrvrpr<>r<>r<>r<>)r<><00>rvs rYr<>zTokenStream.__next__|s<><00><00>
<12>\<5C>\<5C><02> <0F><<3C><<3C><1F><<3C><<3C>/<2F>/<2F>1<>D<EFBFBD>L<EFBFBD><12> <09> <12>\<5C>\<5C> <1E> <1E>i<EFBFBD> /<2F> <1D>#<23>D<EFBFBD>J<EFBFBD>J<EFBFBD>/<2F><04> <0C><12> <09>r<EFBFBD> <09><>!<21> <1D><14>
<EFBFBD>
<EFBFBD> <0C><11> <09> <1D>s<00>A5<00>5B<03>Bc<00><><00>t|jjtd<01>|_t d<02>|_d|_y)zClose the stream.r<>r<>TN)rtr<>r<>rpr<>r<>r<>r<>s rYr<>zTokenStream.close<73>s.<00><00><1C>T<EFBFBD>\<5C>\<5C>0<>0<>)<29>R<EFBFBD>@<40><04> <0C><19>"<22>X<EFBFBD><04>
<EFBFBD><1A><04> r_c<00><><00>|jj|<01>s<>t|<01>}|jjtur:t d|<01>d<02>|jj |j|j<00><00>t d|<01>dt|j<00><00><02>|jj |j|j<00><00>t|<00>S)z}Expect a given token type and return it. This accepts the same
argument as :meth:`jinja2.lexer.Token.test`.
z%unexpected end of template, expected rNzexpected token z, got ) r<>r<>r}rvrprr<>r+r<>ryr<>r<>s rY<00>expectzTokenStream.expect<63>s<><00><00><14>|<7C>|<7C> <20> <20><14>&<26>&<26>t<EFBFBD>,<2C>D<EFBFBD><13>|<7C>|<7C> <20> <20>I<EFBFBD>-<2D>)<29>;<3B>D<EFBFBD>8<EFBFBD>1<EFBFBD>E<><18>L<EFBFBD>L<EFBFBD>'<27>'<27><18>I<EFBFBD>I<EFBFBD><18>M<EFBFBD>M<EFBFBD> <12><12>&<26>!<21>$<24><18><16><0E>t<EFBFBD>|<7C>|<7C>0L<30>/O<>P<><14> <0C> <0C>#<23>#<23><14> <09> <09><14> <0A> <0A> <0E> <0E><14>D<EFBFBD>z<EFBFBD>r_)r)rbN)r<>r<>r<>r<>r<><00>Iterablertr<>r<>r<>r<>r<>r<>r<><00>propertyr<79>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r_rYr<>r<>?s<><00><00><08>
<13><14>:<3A>:<3A>e<EFBFBD>$<24> <13><10>j<EFBFBD>j<EFBFBD><13>o<EFBFBD> <13><14>*<2A>*<2A>S<EFBFBD>/<2F> <13>)<29>-<2D>)<29>H<01>$<24>H<01><0E><18>T<EFBFBD><18><0E><18>#<23>%<25>#<23>D<EFBFBD>#<23><16>e<EFBFBD><16><17>c<EFBFBD><17>$<24><17>
<14>C<EFBFBD><14>A<EFBFBD>J<EFBFBD>J<EFBFBD>u<EFBFBD>$5<><14>.<2E>C<EFBFBD>.<2E>D<EFBFBD>.<2E><12>%<25><12>"<1B> <1A>3<EFBFBD><1A>5<EFBFBD>r_r<>c <00>h<00>|j|j|j|j|j|j
|j |j|j|j|j|jf }tj|<01>}|<02>t|<00>xt|<}|S)z(Return a lexer which is probably cached.)r<><00>block_end_stringr<67><00>variable_end_stringr<67><00>comment_end_stringr<67>r<><00> trim_blocks<6B> lstrip_blocks<6B>newline_sequence<63>keep_trailing_newliner rqr )r<>r`<00>lexers rY<00> get_lexerr<72><00>s<><00><00> <14>&<26>&<26><13>$<24>$<24><13>)<29>)<29><13>'<27>'<27><13>(<28>(<28><13>&<26>&<26><13>)<29>)<29><13>'<27>'<27><13><1F><1F><13>!<21>!<21><13>$<24>$<24><13>)<29>)<29> <06>C<EFBFBD> <19> <1C> <1C>S<EFBFBD> !<21>E<EFBFBD> <0C>}<7D>$)<29>+<2B>$6<>6<> <0C>S<EFBFBD><19>E<EFBFBD> <10>Lr_c<00>&<00><00>eZdZdZdZ<04>fd<03>Z<05>xZS)<04>OptionalLStripzWA special tuple for marking a point in the state that can have
lstrip applied.
r<>c<00>$<00><01>t<00>|<00>||<01>SrT)<02>super<65>__new__)r<><00>members<72>kwargs<67> __class__s <20>rYr<>zOptionalLStrip.__new__<5F>s<00><><00><14>w<EFBFBD><EFBFBD>s<EFBFBD>G<EFBFBD>,<2C>,r_)r<>r<>r<>r<><00> __slots__r<5F><00> __classcell__)r<>s@rYr<>r<><00>s<00><><00><08><13>I<EFBFBD>-<2D>-r_r<>c<00><><00>eZdZUejeed<ejeejedfeje fed<ejeed<y)<06>_Ruler.<2E>tokens<6E>commandN) r<>r<>r<>r<><00>Patternr<6E>r<><00>Union<6F>Tupler<65>r<>r<>r_rYr<>r<><00>sJ<00><00> <0E>Y<EFBFBD>Y<EFBFBD>s<EFBFBD>^<5E><1B> <0A>G<EFBFBD>G<EFBFBD>C<EFBFBD><11><17><17><13>c<EFBFBD><18>*<2A>A<EFBFBD>G<EFBFBD>G<EFBFBD>G<EFBFBD>,<<3C><<3C> =<3D>=<3D> <0E>Z<EFBFBD>Z<EFBFBD><03>_<EFBFBD>r_r<>c<00><><00>eZdZdZdd<04>Zdedefd<06>Z ddedejed ejed
ejede f
d <0B>Z
dd ejeje eefdejed ejedejefd <0A>Z ddedejed ejed
ejedejeje eeff
d<0E>Zy)r a Class that implements a lexer for a given environment. Automatically
created by the environment class, usually you don't have to do that.
Note that the lexer is not automatically bound to an environment.
Multiple environments can share the same lexer.
rbNc<00><><00>tj}dtdtjtfd<03>}t t td<00>t ttd<00>t ttd<00>t ttd<00>t ttd<00>t t t"d<00>g}t%|<01>}||j&<00>}||j(<00>}||j*<00>}||j,<00>} |j.rdnd}
|j0|_|j2|_|j4|_d|<06>d|<07>d|<07>d <09>} d
j7| g|D<00> <0C> cgc]\} } d | <0C>d | <0A>d <0A><05><02>c} } z<00>}dt |d|<0E>d<10><03>t9t:d<11>d<11>t |d<12>t:d<00>gt<t |d|<08>d|<08>d|<08>|
<EFBFBD>d <09><08>t>t@fd<15>t |d<16>tCd<17>fd<00>gtDt |d|<07>d|<07>d|<07>|
<EFBFBD>d<10><08>tFd<15>g|ztHt |d| <09>d| <09><00><04>tJd<15>g|ztLt |d|<06>d|<07>d|<07>d|<07>|
<EFBFBD>d <09>
<EFBFBD>t9t:tN<00>d<15>t |d<16>tCd<1C>fd<00>gtPt |d<1D>tRd<15>g|ztTt |d<1E>tVtXfd<15>gi|_-ycc} } w)NrXrbc<00>l<00>tj|tjtjz<00>SrT)rU<00>compile<6C>M<>Sr]s rY<00>czLexer.__init__.<locals>.c<>s<00><00><15>:<3A>:<3A>a<EFBFBD><12><14><14><02><04><04><1B>-<2D> -r_z\n?r<>z(?P<raw_begin>z(\-|\+|)\s*raw\s*(?:\-z\s*|z))rPz(?P<rKz (\-|\+|))<29>rootz(.*?)(?:rH<00>#bygroupz.+z (.*?)((?:\+z|\-<2D>#popz(.)zMissing end of comment tagz(?:\+z\-z (.*?)((?:z(\-|\+|))\s*endraw\s*(?:\+zMissing end of raw directivez \s*(\n|$)z(.*?)()(?=\n|$)).rUrVr<>r<>r<>r<><00> whitespace_re<72>TOKEN_WHITESPACE<43>float_re<72> TOKEN_FLOAT<41>
integer_re<EFBFBD> TOKEN_INTEGER<45>name_rerw<00> string_re<72> TOKEN_STRING<4E> operator_re<72>TOKEN_OPERATORr<52>r<>r<>r<>r<>r<>r<>r<>r<><00>joinr<6E>rorergrfr<>rirjrkrl<00>TOKEN_RAW_BEGIN<49> TOKEN_RAW_ENDrmrnr<>rh<00>TOKEN_LINECOMMENT_ENDr<44>)r<>r<>r<>r<00> tag_rules<65>root_tag_rules<65>block_start_re<72> block_end_re<72>comment_end_re<72>variable_end_re<72>block_suffix_re<72> root_raw_rer<65><00>r<> root_parts_res rYr<>zLexer.__init__<5F>sc<00><00> <0E>I<EFBFBD>I<EFBFBD><01> .<2E><13> .<2E><11><19><19>3<EFBFBD><1E> .<2E>
<12>-<2D>!1<>4<EFBFBD> 8<> <11>(<28>K<EFBFBD><14> .<2E> <11>*<2A>m<EFBFBD>T<EFBFBD> 2<> <11>'<27>:<3A>t<EFBFBD> ,<2C> <11>)<29>\<5C>4<EFBFBD> 0<> <11>+<2B>~<7E>t<EFBFBD> 4<> $
<EFBFBD> <09>'<27>{<7B>3<><0E><1A>;<3B>9<>9<>:<3A><0E><18><1B>5<>5<>6<> <0C><1A>;<3B>9<>9<>:<3A><0E><1B>K<EFBFBD>;<3B>;<3B><<3C><0F>%0<>$;<3B>$;<3B>&<26><12><0F>(<28>6<>6<><04><1A> +<2B> <<3C> <<3C><04><1D>%0<>%F<>%F<><04>"<22><1E>n<EFBFBD>-<2D>.<15>!<21>N<EFBFBD>$<24>|<7C>n<EFBFBD>B<EFBFBD> 8<> <14><1C><08><08> <18>M<EFBFBD>.<2E>Q<>$<24>!<21>Q<EFBFBD><04>Q<EFBFBD>C<EFBFBD>q<EFBFBD><11><03>9<EFBFBD>5<>Q<> Q<>
<EFBFBD> <0A> <13><15><15><18>-<2D><1F><01>2<>3<>"<22>:<3A>z<EFBFBD>:<3A><1E><12> <16>a<EFBFBD><04>g<EFBFBD>z<EFBFBD>4<EFBFBD>0<> <0E> <20><15><15>&<26>~<7E>&6<>c<EFBFBD>.<2E>9I<39>J<1D>+<2B>,<2C>_<EFBFBD>,=<3D>R<EFBFBD>A<01><16>#<23>$5<>6<><1A> <12><16>a<EFBFBD><06>i<EFBFBD>'<27>*F<>"G<>!I<>4<EFBFBD>P<>
"<0E> <1E><15><15> <20><1C><0E>c<EFBFBD>,<2C><1E>@<1D>)<29>N<EFBFBD>?<3F>*;<3B>1<EFBFBD>><3E><16>$<24><1A> <12> <0E><18>
<18> !<21><15><15><12>O<EFBFBD>,<2C>D<EFBFBD><1F>0A<30>B<>C<>&<26><1A><12>#<0E><18>#<18> <1C><15><15>$<24>^<5E>$4<>5!<21>!-<2D><0E>c<EFBFBD>,<2C><1E>@<1D>)<29>N<EFBFBD>?<3F>*;<3B>2<EFBFBD>?<3F><16>
#<23>:<3A>}<7D>=<3D><1A><12><16>a<EFBFBD><06>i<EFBFBD>'<27>*H<>"I<>!K<>T<EFBFBD>R<> <0E> &<26><15>a<EFBFBD> <0C>o<EFBFBD>'><3E><06>G<>(<0E><18>(<18>
$<24><15><15>(<28>)<29>&<26>(=<3D>><3E><1A><12>&<0E>F2
<EFBFBD><04>
<EFBFBD><EFBFBD> Rs<00> K1 rxc<00>B<00>tj|j|<01>S)z`Replace all newlines with the configured sequence in strings
and template data.
)rr&r<>)r<>rxs rY<00>_normalize_newlineszLexer._normalize_newlinesVs<00><00><1A>~<7E>~<7E>d<EFBFBD>3<>3<>U<EFBFBD>;<3B>;r_<00>sourcer+r<><00>statec<00>f<00>|j||||<04>}t|j|||<03>||<03>S)z:Calls tokeniter + tokenize and wraps it in a token stream.)<03> tokeniterr<72><00>wrap)r<>r'r+r<>r(r<>s rY<00>tokenizezLexer.tokenize\s4<00><00><16><1E><1E><06><04>h<EFBFBD><05>><3E><06><1A>4<EFBFBD>9<EFBFBD>9<EFBFBD>V<EFBFBD>T<EFBFBD>8<EFBFBD><<3C>d<EFBFBD>H<EFBFBD>M<>Mr_r<>c#<00>K<00>|D<00>]8\}}}|tvr<01>|}|tk(rt}<05>n|tk(rt}n<>|t
t fvr<01>C|tk(r|j|<06>}n<>|dk(r|}n<>|tk(r |}|j<00>s<>td|||<03><00>|tk(r5 |j|dd<00>jdd<06>jd<07>}n]|t&k(rt)|j+d
d <0B>d <0C>}n7|t,k(rt/|j+d
d <0B><00>}n|t0k(r t2|}t5|||<07><00><01><00><01>;y #t$r?}t!|<08>j#d<08>dj%<00>} t| |||<03>|<08>d }~wwxYw<01>w) z<>This is called with the stream as returned by `tokenize` and wraps
every token in a :class:`Token` and converts the value.
<20>keywordzInvalid character in identifierr<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ascii<69>backslashreplacezunicode-escaperONr<4E>r<>r)<1B>ignored_tokensrmrirnrjrrror&rw<00> isidentifierrr<00>encode<64>decode<64> Exceptionr<6E>r|<00>striprr<><00>replacerrr<00> operatorsrt)
r<EFBFBD>r<>r+r<>r<>rs<00> value_strrxr<><00>msgs
rYr+z
Lexer.wrapgs<><00><00><><00>)/<2F>+ .<2E> $<24>F<EFBFBD>E<EFBFBD>9<EFBFBD><14><0E>&<26><18>$<24>E<EFBFBD><14>1<>1<>)<29><05><16>1<>1<>'<27><05><16>?<3F>M<EFBFBD>:<3A>:<3A><18><16>*<2A>$<24><1C>0<>0<><19>;<3B><05><16>)<29>#<23>!<21><05><16>*<2A>$<24>!<21><05><1C>)<29>)<29>+<2B>-<2D>9<>6<EFBFBD>4<EFBFBD><18><16><16><17>,<2C>&<26>R<01><1C>0<>0<><19>1<EFBFBD>R<EFBFBD><1F>A<><1F><16><07>);<3B><<3C><1F><16> 0<>1<><1A><17>-<2D>'<27><1B>I<EFBFBD>-<2D>-<2D>c<EFBFBD>2<EFBFBD>6<><01>:<3A><05><16>+<2B>%<25>$<24>Y<EFBFBD>%6<>%6<>s<EFBFBD>B<EFBFBD>%?<3F>@<40><05><16>.<2E>(<28>!<21>)<29>,<2C><05><17><06><05>u<EFBFBD>-<2D> -<2D>W+ .<2E><>@!<21>R<01><1D>a<EFBFBD>&<26>,<2C>,<2C>s<EFBFBD>+<2B>B<EFBFBD>/<2F>5<>5<>7<>C<EFBFBD>-<2D>c<EFBFBD>6<EFBFBD>4<EFBFBD><18>J<>PQ<50>Q<><51>R<01>s+<00>BF <01>3E<02>A1F <01> F
<05> :F<05>F
<05>
F c#<00>NK<00>tj|<01>ddd<02>}|js |ddk(r|d=dj|<05>}d}d}dg}|<04>$|dk7r|d vsJd
<EFBFBD><00>|j |d z<00>|j
|d} t |<01>}
g} d} d } | D<00>]i\}}}|j||<06>}|<11><01>| r|tttfvr<01>3t|t<00><00>r<>|j<00>}t|t<00>r<>|d}td <0A>|ddd<02>D<00><00>}|dk(r6|j!<00>}|t |<15>dj#d<05>} |g|dd<00>}np|dk7rk|j$r_|j'<00>j)t*<00>s<|j-d<05>dz}|dkDs| r!t.j1||<16>r |d|g|dd<00>}t3|<0F>D]<5D>\}}t|t4<00>r |||<03><00>|dk(rS|j'<00>j7<00>D]$\}}|<1A><01> |||f<03><01>||j#d<05>z }<00>ht9|<0E>d<11><02><00>||}|s|t:vr|||f<03><01>||j#d<05>| zz }d} <0C><>n<>|j=<00>}|t>k(r<>|dk(r| j d<13>np|dk(r| j d<15>nY|dk(r| j d<17>nB|dvr>| stAd|<1B>d<1A>|||<03><00>| jC<00>}||k7rtAd|<1B>d|<1C>d<1A>|||<03><00>|s|t:vr|||f<03><01>||j#d<05>z }|j=<00>dddk(} |jE<00>}|<10><>|dk(r|jC<00>n_|dk(rI|j'<00>j7<00>D]\}}|<1A><01> |j |<19>n t9|<0E>d<1D><02><00>|j |<10>|j
|d} n||k(rt9|<0E>d<1E><02><00>|}n||
k\rytAd||<00>d |<06><00>|||<03><00><01><03><><EFBFBD>w)!aThis method tokenizes the text and returns the tokens in a
generator. Use this method if you just want to tokenize a template.
.. versionchanged:: 3.0
Only ``\n``, ``\r\n`` and ``\r`` are treated as line
breaks.
N<>r/r<><00>
rrr )<02>variable<6C>blockz invalid state<74>_beginTc3<00>&K<00>|] }|<01><01>|<01><01><00> y<00>wrTr<>)rW<00>gs rYrZz"Lexer.tokeniter.<locals>.<genexpr><3E>s<00><00><><00>)S<><01>Q<EFBFBD>]<5D>!<21>)S<>s<00><01>r@r?r
z= wanted to resolve the token dynamically but no group matchedrIrJrGrHrErF)rJrHrFz unexpected '<27>'z ', expected 'r zA wanted to resolve the new state dynamically but no group matchedz* yielded empty string without stack changezunexpected char z at )#rr|r<>rr<>r<>r\<00>matchrlrjrn<00>
isinstance<EFBFBD>tuple<6C>groupsr<73>r<><00>rstrip<69>countr<74><00> groupdictrqrk<00>rfindr <00> fullmatch<63> enumerater<65><00>items<6D> RuntimeError<6F>ignore_if_empty<74>grouprr<00>pop<6F>end)r<>r'r+r<>r(<00>lines<65>posr<73><00>stack<63> statetokens<6E> source_length<74>balancing_stack<63>newlines_stripped<65> line_starting<6E>regexr<78><00> new_state<74>mrH<00>text<78>
strip_sign<EFBFBD>stripped<65>l_pos<6F>idxrsr`rxr<<00> expected_op<6F>pos2s rYr*zLexer.tokeniter<65>s<><00><00><><00><1B> <20> <20><16>(<28><13>1<EFBFBD><13>-<2D><05><13>)<29>)<29>e<EFBFBD>B<EFBFBD>i<EFBFBD>2<EFBFBD>o<EFBFBD><15>b<EFBFBD> <09><15><19><19>5<EFBFBD>!<21><06><0F><03><12><06><17><08><05> <10> <1C><15>&<26><1F><18>1<>1<> B<>?<3F> B<>1<> <11>L<EFBFBD>L<EFBFBD><15><18>)<29> *<2A><1A>j<EFBFBD>j<EFBFBD><15>r<EFBFBD><19>+<2B> <0B><1B>F<EFBFBD> <0B> <0A>')<29><0F><1D><19><1C> <0A><12>,7<>c <12>(<28><05>v<EFBFBD>y<EFBFBD><19>K<EFBFBD>K<EFBFBD><06><03>,<2C><01><15>9<EFBFBD><1C> #<23>v<EFBFBD>&<26>#<23>+<2B>2<12>(<12>
<1D><1E>f<EFBFBD>e<EFBFBD>,<2C>./<2F>h<EFBFBD>h<EFBFBD>j<EFBFBD>F<EFBFBD>!<21>&<26>.<2E>9<> &<26>a<EFBFBD>y<EFBFBD><04>&*<2A>)S<>V<EFBFBD>A<EFBFBD>D<EFBFBD>q<EFBFBD>D<EFBFBD>\<5C>)S<>%S<>
<EFBFBD>%<25><13>,<2C>'+<2B>{<7B>{<7B>}<7D>H<EFBFBD>04<30>S<EFBFBD><18>]<5D>_<EFBFBD>0E<30>0K<30>0K<30>D<EFBFBD>0Q<30>-<2D>&.<2E>%<<3C><16><01><02><1A>%<<3C>F<EFBFBD>'<27>#<23>-<2D> $<24> 2<> 2<>$%<25>K<EFBFBD>K<EFBFBD>M<EFBFBD>$5<>$5<>6J<36>$K<>%)<29>J<EFBFBD>J<EFBFBD>t<EFBFBD>$4<>q<EFBFBD>$8<>E<EFBFBD>$<24>q<EFBFBD>y<EFBFBD>M<EFBFBD>$1<>#:<3A>#:<3A>4<EFBFBD><15>#G<>.2<EFBFBD>6<EFBFBD>E<EFBFBD>l<EFBFBD>-H<>V<EFBFBD>A<EFBFBD>B<EFBFBD>Z<EFBFBD>-H<>F<EFBFBD>&/<2F><06>&7<>2<>
<EFBFBD><03>U<EFBFBD>%<25>e<EFBFBD>W<EFBFBD>5<>"'<27><06><08>"9<>9<>#<23>j<EFBFBD>0<>./<2F>k<EFBFBD>k<EFBFBD>m<EFBFBD>.A<>.A<>.C<> "<22>
<EFBFBD><03>U<EFBFBD>#(<28>#4<>*0<>#<23>u<EFBFBD>*<<3C>$<<3C>$*<2A>e<EFBFBD>k<EFBFBD>k<EFBFBD>$<24>.?<3F>$?<3F>F<EFBFBD>$)<29> "<22> '3<>',<2C>i<EFBFBD>0<<3C>%<<3C>'"<22>!"<22> $*<2A>#<23>;<3B>D<EFBFBD>#<23>u<EFBFBD>O<EFBFBD>'C<>&,<2C>e<EFBFBD>T<EFBFBD>&9<> 9<>"<22>d<EFBFBD>j<EFBFBD>j<EFBFBD><14>&6<>9J<39>&J<>J<>F<EFBFBD>01<30>-<2D>52<><<1D>7<EFBFBD>7<EFBFBD>9<EFBFBD>D<EFBFBD><1E><1E>/<2F><1F>3<EFBFBD>;<3B>+<2B>2<>2<>3<EFBFBD>7<>!<21>S<EFBFBD>[<5B>+<2B>2<>2<>3<EFBFBD>7<>!<21>S<EFBFBD>[<5B>+<2B>2<>2<>3<EFBFBD>7<>!<21>_<EFBFBD>4<>#2<>&9<>&2<>4<EFBFBD>&<26><01>$:<3A>F<EFBFBD>D<EFBFBD>(<28>'"<22>!"<22>+:<3A>*=<3D>*=<3D>*?<3F>K<EFBFBD>*<2A>d<EFBFBD>2<>&9<>&2<>4<EFBFBD>&<26> <0A>k<EFBFBD>]<5D>RS<52>$T<>$*<2A>$(<28>$,<2C> '"<22>!"<22><1C>v<EFBFBD>_<EFBFBD><<3C>$<24>f<EFBFBD>d<EFBFBD>2<>2<><1A>d<EFBFBD>j<EFBFBD>j<EFBFBD><14>.<2E>.<2E>F<EFBFBD> !<21><07><07> <09>"<22>#<23><0E>$<24> 6<> <0A><19>u<EFBFBD>u<EFBFBD>w<EFBFBD><04><1D>(<28> <20>F<EFBFBD>*<2A><1D> <09> <09> <0B>"<22>j<EFBFBD>0<>*+<2B>+<2B>+<2B>-<2D>*=<3D>*=<3D>*?<3F><1E>J<EFBFBD>C<EFBFBD><15>$<24>0<> %<25> <0C> <0C>S<EFBFBD> 1<> %<25><1E>
#/<2F>#(<28>)<29>,8<>!9<>#<1E><1E> <1E> <0C> <0C>Y<EFBFBD>/<2F>"&<26>*<2A>*<2A>U<EFBFBD>2<EFBFBD>Y<EFBFBD>"7<>K<EFBFBD><1A>S<EFBFBD>[<5B>&<26> <20>)<29>#M<>N<><16><16>
<1B><03><15>qc <12>z<17>-<2D>'<27><1A>*<2A>&<26>v<EFBFBD>c<EFBFBD>{<7B>o<EFBFBD>T<EFBFBD>#<23><15>?<3F><16><14>x<EFBFBD><12><12>G<13>s<00>HP%<01>F P%<01>(A=P%)r<>r
rbN)NNN)NN)r<>r<>r<>r<>r<>r<>r&r<>r<>r<>r,r<>rr<><00>Iteratorrtr+r*r<>r_rYr r <00>sW<00><00><08>u
<EFBFBD>n<<3C><13><<3C><13><<3C>!%<25>$(<28>!%<25> N<01><13> N<01><10>j<EFBFBD>j<EFBFBD><13>o<EFBFBD> N<01><14>*<2A>*<2A>S<EFBFBD>/<2F> N<01>
<11>z<EFBFBD>z<EFBFBD>#<23><EFBFBD> N<01>
<15> N<01>!%<25>$(<28> 4.<2E><11>
<EFBFBD>
<EFBFBD>1<EFBFBD>7<EFBFBD>7<EFBFBD>3<EFBFBD><03>S<EFBFBD>=<3D>1<>2<>4.<2E><10>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>4.<2E><14>*<2A>*<2A>S<EFBFBD>/<2F> 4.<2E>
<0B><1A><1A>E<EFBFBD> <1A> 4.<2E>t%)<29>!%<25> G<12><13>G<12><10>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>G<12><14>*<2A>*<2A>S<EFBFBD>/<2F> G<12>
<11>z<EFBFBD>z<EFBFBD>#<23><EFBFBD> G<12>
<0B><1A><1A>A<EFBFBD>G<EFBFBD>G<EFBFBD>C<EFBFBD><13>c<EFBFBD>M<EFBFBD>*<2A> +<2B> Gr_)r<>r
rbr )pr<70>rU<00>typingr<67><00>astr<00> collectionsr<00>sysr<00> _identifierrr<00>
exceptionsr<00>utilsr <00> TYPE_CHECKING<4E>typing_extensions<6E>ter<65>r
r <00>MutableMappingrr<>rr rrr<00>
IGNORECASE<EFBFBD>VERBOSErr<00> TOKEN_ADD<44> TOKEN_ASSIGN<47> TOKEN_COLON<4F> TOKEN_COMMA<4D> TOKEN_DIV<49> TOKEN_DOT<4F>TOKEN_EQ<45>TOKEN_FLOORDIV<49>TOKEN_GT<47>
TOKEN_GTEQ<EFBFBD> TOKEN_LBRACE<43>TOKEN_LBRACKET<45> TOKEN_LPAREN<45>TOKEN_LT<4C>
TOKEN_LTEQ<EFBFBD> TOKEN_MOD<4F> TOKEN_MUL<55>TOKEN_NE<4E>
TOKEN_PIPE<EFBFBD> TOKEN_POW<4F> TOKEN_RBRACE<43>TOKEN_RBRACKET<45> TOKEN_RPAREN<45>TOKEN_SEMICOLON<4F> TOKEN_SUB<55> TOKEN_TILDEr rrrwrrrirjrkrlrrrerfrgrmrnr<>rrhror<>rpr9rOrdr\rr<>r<00> frozensetr2rQr<>rrryr}r<>r<><00>Listr<74>r<><00>
NamedTuplertr<>r<>r<>rGr<>r<>r )<02>k<>vs00rY<00><module>r<>sH<00><01><04> 
<EFBFBD><12><1C><1D><16>+<2B>+<2B><1B><04>?<3F>?<3F>"<22>(<28>4<<3C>B<EFBFBD><<3C> <0C>a<EFBFBD><1E><1E>q<EFBFBD>w<EFBFBD>w<EFBFBD><07>/<2F>0<>?<3F><1B><02>
<EFBFBD>
<EFBFBD>6<EFBFBD>"<22> <0A> <17>R<EFBFBD>Z<EFBFBD>Z<EFBFBD><0F> (<28>
<EFBFBD> <16>B<EFBFBD>J<EFBFBD>J<EFBFBD>B<>B<EFBFBD>D<EFBFBD>D<EFBFBD> <02> <09><18>R<EFBFBD>Z<EFBFBD>Z<EFBFBD> <08><07>M<EFBFBD>M<EFBFBD>B<EFBFBD>J<EFBFBD>J<EFBFBD><1E><02>
<EFBFBD> <16>2<EFBFBD>:<3A>:<3A> <08><07>M<EFBFBD>M<EFBFBD>B<EFBFBD>J<EFBFBD>J<EFBFBD><1E> <02><08> <13>5<EFBFBD>M<EFBFBD> <09><15>h<EFBFBD><1F> <0C><14>W<EFBFBD>o<EFBFBD> <0B><14>W<EFBFBD>o<EFBFBD> <0B> <12>5<EFBFBD>M<EFBFBD> <09> <12>5<EFBFBD>M<EFBFBD> <09> <11>$<24><<3C><08><17>
<EFBFBD>#<23><0E> <11>$<24><<3C><08> <13>F<EFBFBD>^<5E>
<EFBFBD><15>h<EFBFBD><1F> <0C><17>
<EFBFBD>#<23><0E><15>h<EFBFBD><1F> <0C> <11>$<24><<3C><08> <13>F<EFBFBD>^<5E>
<EFBFBD> <12>5<EFBFBD>M<EFBFBD> <09> <12>5<EFBFBD>M<EFBFBD> <09> <11>$<24><<3C><08> <13>F<EFBFBD>^<5E>
<EFBFBD> <12>5<EFBFBD>M<EFBFBD> <09><15>h<EFBFBD><1F> <0C><17>
<EFBFBD>#<23><0E><15>h<EFBFBD><1F> <0C><18><1B>%<25><0F> <12>5<EFBFBD>M<EFBFBD> <09><14>W<EFBFBD>o<EFBFBD> <0B><19>,<2C>'<27><10><14>W<EFBFBD>o<EFBFBD> <0B><16>y<EFBFBD>!<21> <0A> <13>F<EFBFBD>^<5E>
<EFBFBD><15>h<EFBFBD><1F> <0C><17>
<EFBFBD>#<23><0E><1A>=<3D>)<29><11><18><1B>%<25><0F><1D>.<2E>/<2F><14><1B>N<EFBFBD>+<2B><12><18><1B>%<25><0F><16>y<EFBFBD>!<21> <0A><1C>_<EFBFBD>-<2D><13><1A>=<3D>)<29><11><16>y<EFBFBD>!<21> <0A>"<22>#8<>9<><19> <20>!4<>5<><17> <20>!4<>5<><17><1E>0<>1<><15><1A>=<3D>)<29><11> <13>F<EFBFBD>^<5E>
<EFBFBD><16>y<EFBFBD>!<21> <0A> <12>5<EFBFBD>M<EFBFBD> <09> <02><07><19> <02><07><19> <02><08><19> <02> <09>.<2E>  <02>
<08><19>  <02> <08><19>  <02> <09>)<29> <02><08><1B> <02><08><1E> <02><08><1E> <02><08><1C> <02><08><1C> <02><08><1C> <02><08><1C> <02> <09>(<28> <02>  <09>(<28>! <02>"<08><18># <02>$ <15> <11>
<14> <15> <12> <14> <13> <14> <18>5 <02> <09>:'0<>o<EFBFBD>o<EFBFBD>&7<>8<>d<EFBFBD>a<EFBFBD><11>Q<EFBFBD><01>T<EFBFBD>8<><11>
<EFBFBD>9<EFBFBD>~<7E><13>.<2E>/<2F>/<2F>D<>1D<31>D<>/<2F><18>b<EFBFBD>j<EFBFBD>j<EFBFBD><07><03><08><08>P<>v<EFBFBD>i<EFBFBD>=N<>'O<>P<>P<>Q<>QR<51>S<><02> <0B><1B><1B><15><19><18><1F><1D><19><06>
<02><0E><1C><15>z<EFBFBD>=<3D>2C<32>D<><02><0F>
"<22>S<EFBFBD>"<22>S<EFBFBD>"<22>(,<2C>'<27>,<2C>c<EFBFBD>,<2C>
&<26>c<EFBFBD>
&<26>c<EFBFBD>
&<26>*<2A>#<23>*<2A>#<23>*<2A>&8<>}<7D>&8<><11><16><16><01><07><07><03>S<EFBFBD><08>8I<38>1J<31>&8<>R ?<3F> ?<3F>9<>A<EFBFBD>L<EFBFBD>L<EFBFBD>9<>8<15><15>,j<1A>j<1A>Z<11>0
-<2D>U<EFBFBD>
-<2D><1D>A<EFBFBD>L<EFBFBD>L<EFBFBD><1D> M<12>M<12><>Q
9s<00> O<