123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551 |
- \NeedsTeXFormat{LaTeX2e}
- \RequirePackage{xparse}
- \RequirePackage{booktabs}
- \RequirePackage{DSAproben,DSAwurf,DSAutil}
-
- \def\DSAchar@version{0.1}
- \def\DSAchar@date{2018-10-15}
-
- \ProvidesExplPackage
- {DSAchar} {\DSAchar@date}
- {\DSAchar@version} {DSA Charakterwerte}
-
- % Personenbezogen >>>
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \newcommand*\NeuerName[3]%>>>
- {
- \cs_new_protected:Npn #1
- {
- #2~#3
- \@ifstar {}
- {
- \cs_gset_protected:Npn #1 { #2 \@ifstar { ~#3 } {} }
- }
- }
- }%<<<
- \newcommand*\DSAcharEigStandard{8}
- \newcommand*\DSAcharGSStandard{8}
- \newcommand*\DSAcharRSStandard{0}
- \newcommand*\DSAcharBEStandard{0}
- \cs_generate_variant:Nn \tl_if_eq:nnTF { VnTF }
- \cs_generate_variant:Nn \tl_lower_case:n { V }
- \msg_new:nnn { DSAchar } { only~bool }%>>>
- { The~`#1`~key~accepts~only~the~boolean~values~`true`~and~`false`. }%<<<
- \msg_new:nnn { DSAchar } { unknown~key }%>>>
- { The~`#1`~key~is~unknown. }%<<<
- \tl_new:N \l_DSAchar_key_tl
- \tl_new:N \l_DSAchar_additional_defaults_tl
- \prop_const_from_keyval:Nn \c_DSAchar_key_type_prop%>>>
- {
- ,mu = int
- ,kl = int
- ,in = int
- ,ch = int
- ,ff = int
- ,ge = int
- ,ko = int
- ,kk = int
- ,le = int
- ,au = int
- ,mr = int
- ,ae = int
- ,ke = int
- ,ini = int
- ,gs = int
- ,rs = int
- ,be = int
- ,ws = int
- ,at = int
- ,pa = int
- ,fk = int
- ,waffe = tl
- ,links = tl
- ,rasse = tl
- ,kultur = tl
- ,profession = tl
- ,magier = bool
- ,geweihter = bool
- ,manoever = clist
- ,zauber = clist
- ,liturgien = clist
- ,sonderfertigkeiten = clist
- ,vorteile = clist % TODO: Ausgabe implementieren
- ,nachteile = clist % TODO: Ausgabe implementieren
- ,beschreibung = tl % TODO: Ausgabe implementieren
- }%<<<
- \prg_new_protected_conditional:Npnn \DSAchar_if_key_defined:n #1%>>>
- { T , F , TF }
- {
- \prop_get:NnNF \c_DSAchar_key_type_prop { #1 } \l_DSAchar_key_type_tl
- {
- \msg_error:nnn { DSAchar } { unknown~key } { #1 }
- }
- \DSAchar_if_key_defined:nnTF { \l_DSAchar_key_type_tl } { #1 }
- { \prg_return_true: }
- { \prg_return_false: }
- }%<<<
- \prg_new_conditional:Npnn \DSAchar_if_key_defined:nn #1 #2%>>>
- { T , F , TF }
- {
- \DSAchar_if_key_defined:nnnTF { \l_DSAchar_key_tl } { #1 } { #2 }
- { \prg_return_true: }
- { \prg_return_false: }
- }%<<<
- \prg_new_conditional:Npnn \DSAchar_if_key_defined:nnn #1 #2 #3%>>>
- { T , F , TF }
- {
- \cs_if_exist:cTF { l_DSAchar_ #1 _ #3 _ #2 }
- { \prg_return_true: }
- { \prg_return_false: }
- }%<<<
- \cs_new_protected:Npn \DSAchar_set_key:nn #1 #2%>>>
- {
- \prop_get:NnNF \c_DSAchar_key_type_prop { #1 } \l_DSAchar_key_type_tl
- {
- \msg_error:nnn { DSAchar } { unknown~key } { #1 }
- }
- \DSAchar_set_key:nnn \l_DSAchar_key_type_tl { #1 } { #2 }
- }%<<<
- \cs_generate_variant:Nn \DSAchar_set_key:nn { on }
- \cs_new_protected:Npn \DSAchar_set_key:nnn #1 #2 #3%>>>
- {
- \DSAchar_if_key_defined:nnF { #1 } { #2 }
- {
- \use:c { #1_new:c }
- { l_DSAchar_ \l_DSAchar_key_tl _#2_#1 }
- }
- \tl_if_eq:VnTF \l_DSAchar_key_type_tl { bool }
- {
- \str_case:nnTF { #3 }
- {
- { true } { \bool_set_true:c }
- { false } { \bool_set_false:c }
- }
- {
- { l_DSAchar_ \l_DSAchar_key_tl _#2_bool }
- }
- {
- \msg_error:nnn { DSAchar } { only~bool } { #2 }
- }
- }
- {
- \use:c { #1_set:cn }
- { l_DSAchar_ \l_DSAchar_key_tl _#2_#1 }
- { #3 }
- }
- }%<<<
- \cs_new:Npn \DSAchar_use_key:n #1%>>>
- {
- \prop_get:NnNF \c_DSAchar_key_type_prop { #1 } \l_DSAchar_key_type_tl
- {
- \msg_error:nnn { DSAchar } { unknown~key } { #1 }
- }
- \DSAchar_use_key:nn { \l_DSAchar_key_type_tl } { #1 }
- }%<<<
- \cs_generate_variant:Nn \DSAchar_use_key:n { x }
- \cs_new:Npn \DSAchar_use_key:nn #1 #2%>>>
- {
- \use:c { #1_use:c } { l_DSAchar_ \l_DSAchar_key_tl _#2_#1 }
- }%<<<
- \cs_new:Npn \DSAchar_use_int:n #1%>>>
- {
- \DSAchar_use_key:nn { int } { #1 }
- }%<<<
- \prg_new_conditional:Npnn \DSAchar_bool_if:n #1%>>>
- { T , F , TF }
- {
- \DSAchar_bool_if:nnTF { \l_DSAchar_key_tl } { #1 }
- { \prg_return_true: }
- { \prg_return_false: }
- }%<<<
- \prg_new_conditional:Npnn \DSAchar_bool_if:nn #1 #2%>>>
- { T , F , TF }
- {
- \bool_if:cTF { l_DSAchar_ #1 _ #2 _bool }
- { \prg_return_true: }
- { \prg_return_false: }
- }%<<<
- \cs_new_protected:Npn \DSAchar_def_undefined_key:nnn #1 #2 #3%>>>
- {
- \DSAchar_if_key_defined:nnF { #1 } { #2 }
- { \DSAchar_set_key:nnn { #1 } { #2 } { #3 } }
- }%<<<
- \cs_new_protected:Npn \DSAchar_def_undefined_key:nn #1 #2%>>>
- {
- \prop_get:NnNF \c_DSAchar_key_type_prop { #1 } \l_DSAchar_key_type_tl
- {
- \msg_error:nnn { DSAchar } { unknown~key } { #1 }
- }
- \DSAchar_def_undefined_key:nnn { \l_DSAchar_key_type_tl } { #1 } { #2 }
- }%<<<
- \cs_new_protected:Npn \DSAchar_typeset_basis_value:n #1%>>>
- {
- \makebox [ 0pt ] [ l ] { \MakeUppercase { #1 } : }
- \phantom { MU : } ~
- \phantom { 88 }
- \llap { \DSAchar_use_int:n { #1 } }
- }%<<<
- \cs_new_protected:Npn \DSAchar_set_default_values:%>>>
- {
- \DSAchar_set_key:nn { mu } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { kl } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { in } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { ch } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { ff } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { ge } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { ko } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { kk } { \DSAcharEigStandard }
- \DSAchar_set_key:nn { gs } { \DSAcharGSStandard }
- \DSAchar_set_key:nn { rs } { \DSAcharRSStandard }
- \DSAchar_set_key:nn { be } { \DSAcharBEStandard }
- \DSAchar_set_key:nn { magier } { false }
- \DSAchar_set_key:nn { geweihter } { false }
- \DSAchar_set_key:nn { waffe } { \textit{keine} }
- }%<<<
- \cs_new:Npn \DSAchar_get_key_expandable:nn #1 #2%>>>
- {
- \DSAchar_get_key_expandable_inner_a:nf { #1 } { \tl_lower_case:n { #2 } }
- }%<<<
- \cs_new:Npn \DSAchar_get_key_expandable_inner_a:nn #1 #2%>>>
- {
- \DSAchar_get_key_expandable_inner_b:nnf { #1 } { #2 }
- { \prop_item:Nn \c_DSAchar_key_type_prop { #2 } }
- }%<<<
- \cs_new:Npn \DSAchar_get_key_expandable_inner_b:nnn #1 #2 #3%>>>
- {
- \use:c { #3_use:c } { l_DSAchar_#1_#2_#3 }
- }%<<<
- \cs_new:Npn \DSAchar_print_clist:nnn #1 #2 #3%>>>
- {
- \clist_use:cn { l_DSAchar_ #1 _ #2 _clist } { #3 }
- }%<<<
- \cs_new_protected:Npn \DSAchar_print_clist_labelled:nnnn #1 #2 #3 #4%>>>
- {
- \tl_set:Nn \l_DSAchar_key_tl { #1 }
- #3:~
- \DSAchar_if_key_defined:nTF { #2 }
- {
- \DSAchar_print_clist:nnn { #1 } { #2 } { #4 }
- }
- {
- \textit{keine}
- }
- }%<<<
- \cs_generate_variant:Nn \DSAchar_get_key_expandable_inner_a:nn { nf }
- \cs_generate_variant:Nn \DSAchar_get_key_expandable_inner_b:nnn { nnf }
- \keys_define:nn { DSAchar }%>>>
- {
- %,mu .code:n = \DSAchar_set_key:nn { mu } { #1 }
- %,kl .code:n = \DSAchar_set_key:nn { kl } { #1 }
- %,in .code:n = \DSAchar_set_key:nn { in } { #1 }
- %,ch .code:n = \DSAchar_set_key:nn { ch } { #1 }
- %,ff .code:n = \DSAchar_set_key:nn { ff } { #1 }
- %,ge .code:n = \DSAchar_set_key:nn { ge } { #1 }
- %,ko .code:n = \DSAchar_set_key:nn { ko } { #1 }
- %,kk .code:n = \DSAchar_set_key:nn { kk } { #1 }
- %,le .code:n = \DSAchar_set_key:nn { le } { #1 }
- %,au .code:n = \DSAchar_set_key:nn { au } { #1 }
- %,ws .code:n = \DSAchar_set_key:nn { ws } { #1 }
- %,ae .code:n = \DSAchar_set_key:nn { ae } { #1 }
- %,ke .code:n = \DSAchar_set_key:nn { ke } { #1 }
- %,mr .code:n = \DSAchar_set_key:nn { mr } { #1 }
- %,ini .code:n = \DSAchar_set_key:nn { ini } { #1 }
- %,gs .code:n = \DSAchar_set_key:nn { gs } { #1 }
- %,rs .code:n = \DSAchar_set_key:nn { rs } { #1 }
- %,be .code:n = \DSAchar_set_key:nn { be } { #1 }
- %,waffe .code:n = \DSAchar_set_key:nn { waffe } { #1 }
- %,links .code:n = \DSAchar_set_key:nn { links } { #1 }
- %,rasse .code:n = \DSAchar_set_key:nn { rasse } { #1 }
- %,kultur .code:n = \DSAchar_set_key:nn { kultur } { #1 }
- %,profession .code:n = \DSAchar_set_key:nn { profession } { #1 }
- %,magier .code:n = \DSAchar_set_key:nn { magier } { #1 }
- %,geweihter .code:n = \DSAchar_set_key:nn { geweihter } { #1 }
- %
- ,unknown .code:n =
- \tl_set:Nx \l_tmpa_tl { \str_lower_case:f { \l_keys_key_tl } }
- \DSAchar_set_key:on
- {
- \l_tmpa_tl
- } { #1 }
- ,klasse .meta:n = { profession = { #1 } }
- ,Klasse .meta:n = { profession = { #1 } }
- ,manöver .meta:n = { manoever = { #1 } }
- ,Manöver .meta:n = { manoever = { #1 } }
- }%<<<
- \NewDocumentCommand \NeueStandards { s +m }%>>>
- {
- \IfBooleanTF { #1 }
- { \tl_set:Nn }
- { \tl_put_right:Nn }
- \l_DSAchar_additional_defaults_tl { #2 }
- }%<<<
- \NewDocumentCommand \NeuerChar { m m m +m }%>>>
- {
- \tl_set:Nn \l_DSAchar_key_tl { #1 }
- \DSAchar_set_default_values:
- \DSAchar_set_key:nnn { tl } { fullname } { #2~#3 }
- \keys_set:nV { DSAchar } \l_DSAchar_additional_defaults_tl
- \keys_set:nn { DSAchar } { #4 }
- \exp_args:Nc \NeuerName { #1 } { #2 } { #3 }
- \DSAchar_def_undefined_key:nn { le }%>>>
- {
- \DSAchar_use_int:n { ko } +
- \DSAchar_use_int:n { kk } / 2
- }%<<<
- \DSAchar_def_undefined_key:nn { au }%>>>
- {
- (
- \DSAchar_use_int:n { mu } +
- \DSAchar_use_int:n { ko } +
- \DSAchar_use_int:n { ge }
- ) / 2
- }%<<<
- \DSAchar_def_undefined_key:nn { ws }%>>> Wundschwelle
- {
- \DSAchar_use_int:n { ko } / 2
- }%<<<
- \DSAchar_def_undefined_key:nn { ae }%>>>
- {
- (
- \DSAchar_use_int:n { mu } +
- \DSAchar_use_int:n { in } +
- \DSAchar_use_int:n { ch }
- ) / 2
- }%<<<
- \DSAchar_def_undefined_key:nn { at }%>>>
- {
- (
- \DSAchar_use_int:n { mu } +
- \DSAchar_use_int:n { ge } +
- \DSAchar_use_int:n { kk }
- ) / 5
- }%<<<
- \DSAchar_def_undefined_key:nn { pa }%>>>
- {
- (
- \DSAchar_use_int:n { in } +
- \DSAchar_use_int:n { ge } +
- \DSAchar_use_int:n { kk }
- ) / 5
- }%<<<
- \DSAchar_def_undefined_key:nn { fk }%>>> Fernkampf
- {
- (
- \DSAchar_use_int:n { in } +
- \DSAchar_use_int:n { ff } +
- \DSAchar_use_int:n { kk }
- ) / 5
- }%<<<
- \DSAchar_def_undefined_key:nn { ini }%>>>
- {
- (
- 2 * \DSAchar_use_int:n { mu } +
- \DSAchar_use_int:n { in } +
- \DSAchar_use_int:n { ge }
- ) / 5
- - \DSAchar_use_int:n { be }
- }%<<<
- \DSAchar_def_undefined_key:nn { mr }%>>>
- {
- (
- \DSAchar_use_int:n { mu } +
- \DSAchar_use_int:n { kl } +
- \DSAchar_use_int:n { ko }
- ) / 5
- }%<<<
- }%<<<
- \NewDocumentCommand \CharParse { m +m }%>>>
- {
- }%<<<
- \NewExpandableDocumentCommand \CharName { m }%>>>
- {
- \DSAchar_get_key_expandable_inner_b:nnn { #1 } { fullname } { tl }
- }%<<<
- \NewDocumentCommand \CharBasis { m }%>>>
- {
- \tl_set:Nn \l_DSAchar_key_tl { #1 }
- \begin{tabular}[t]{@{}l@{}}
- \textbf { \DSAchar_use_key:nn { tl } { fullname } } \\
- \begin{tabular}{@{}*4l@{}}
- \DSAchar_typeset_basis_value:n { mu }
- & \DSAchar_typeset_basis_value:n { kl }
- & \DSAchar_typeset_basis_value:n { in }
- & \DSAchar_typeset_basis_value:n { ch }
- \\
- \DSAchar_typeset_basis_value:n { ff }
- & \DSAchar_typeset_basis_value:n { ge }
- & \DSAchar_typeset_basis_value:n { ko }
- & \DSAchar_typeset_basis_value:n { kk }
- \\
- \DSAchar_typeset_basis_value:n { le }
- & \DSAchar_typeset_basis_value:n { au }
- & \DSAchar_typeset_basis_value:n { mr }
- \DSAchar_bool_if:nTF { magier }
- { & \DSAchar_typeset_basis_value:n { ae } }
- {}
- \DSAchar_bool_if:nTF { geweihter }
- { & \DSAchar_typeset_basis_value:n { ke } }
- {}
- \end{tabular}
- \end{tabular}
- }%<<<
- \NewDocumentCommand \CharEig { m m }%>>>
- {
- \tl_set:Nn \l_DSAchar_key_tl { #1 }
- \DSAchar_use_key:x { \tl_lower_case:n { #2 } }
- }%<<<
- \NewExpandableDocumentCommand \CharEigE { m m }%>>>
- {
- \DSAchar_get_key_expandable:nn { #1 } { #2 }
- }%<<<
- \NewDocumentCommand \CharKampf { O{\wd0} m }%>>>
- {
- \group_begin:
- \tl_set:Nn \l_DSAchar_key_tl { #2 }
- \setbox0\hbox
- {
- \begin{tabular}[t]{@{}l@{}}
- \CharBasis { #2 }\\
- \end{tabular}
- }
- \cs_set:Npn \width { \wd0 }
- \begin{tabular}[t]{@{}p{#1}@{}}
- \toprule
- \usebox0\\
- \DSAindentedThingy Waffe:~\DSAchar_use_key:n { waffe }\\
- \DSAchar_if_key_defined:nT { links }
- {
- \DSAindentedThingy Linke~Hand:~\DSAchar_use_key:n { links }
- \\
- }
- \DSAchar_typeset_basis_value:n { at }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { pa }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { fk }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { ini }
- \\
- \DSAchar_typeset_basis_value:n { rs }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { be }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { ws }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { gs }
- \\
- \DSAindentedThingy\CharSonderfertigkeiten { #2 }
- \\
- \DSAindentedThingy\CharManoever { #2 }
- \\
- \DSAchar_bool_if:nnT { #2 } { magier }
- { \DSAindentedThingy\CharZauber { #2 } \\ }%
- \DSAchar_bool_if:nnT { #2 } { geweihter }
- { \DSAindentedThingy\CharLiturgien { #2 } \\ }%
- \bottomrule
- \end{tabular}
- \group_end:
- }%<<<
- \NewDocumentCommand \CharKampfKurz { O{\wd0} m }%>>>
- {
- \group_begin:
- \tl_set:Nn \l_DSAchar_key_tl { #2 }
- \setbox0\hbox
- {
- \begin{tabular}[t]{@{}*4l@{}}
- \DSAchar_typeset_basis_value:n { le }
- & \DSAchar_typeset_basis_value:n { au }
- & \DSAchar_typeset_basis_value:n { mr }
- \DSAchar_bool_if:nTF { magier }
- { & \DSAchar_typeset_basis_value:n { ae } }
- {}
- \DSAchar_bool_if:nTF { geweihter }
- { & \DSAchar_typeset_basis_value:n { ke } }
- {}
- \\
- \DSAchar_typeset_basis_value:n { at }
- & \DSAchar_typeset_basis_value:n { pa }
- & \DSAchar_typeset_basis_value:n { fk }
- & \DSAchar_typeset_basis_value:n { ini }
- \end{tabular}
- }
- \cs_set:Npn \width { \wd0 }
- \begin{tabular}[t]{@{}p{#1}@{}}
- \toprule
- \textbf { \DSAchar_use_key:nn { tl } { fullname } }
- \\
- \DSAindentedThingy Waffe:~\DSAchar_use_key:n { waffe }
- \\
- \DSAchar_if_key_defined:nT { links }
- {
- \DSAindentedThingy Linke~Hand:~\DSAchar_use_key:n { links }
- \\
- }
- \usebox0
- \\
- \DSAchar_typeset_basis_value:n { rs }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { be }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { ws }
- \hskip2\tabcolsep
- \DSAchar_typeset_basis_value:n { gs }
- \\
- \DSAchar_if_key_defined:nnT { clist } { sonderfertigkeiten }
- {
- \DSAindentedThingy\CharSonderfertigkeiten { #2 }
- \\
- }
- \DSAchar_if_key_defined:nnT { clist } { manoever }
- {
- \DSAindentedThingy\CharManoever { #2 }
- \\
- }
- \DSAchar_bool_if:nnT { #2 } { magier }
- {
- \DSAchar_if_key_defined:nnT { clist } { zauber }
- {
- \DSAindentedThingy\CharZauber { #2 }
- \\
- }
- }
- \DSAchar_bool_if:nnT { #2 } { geweihter }
- {
- \DSAchar_if_key_defined:nnT { clist } { liturgien }
- {
- \DSAindentedThingy\CharLiturgien { #2 }
- \\
- }
- }
- \bottomrule
- \end{tabular}
- \group_end:
- }%<<<
- \NewDocumentCommand \CharManoever { O{,~} m }%>>>
- {
- \DSAchar_print_clist_labelled:nnnn { #2 } { manoever } { Manöver } { #1 }
- }%<<<
- \NewDocumentCommand \CharZauber { O{,~} m }%>>>
- {
- \DSAchar_print_clist_labelled:nnnn { #2 } { zauber } { Zauber } { #1 }
- }%<<<
- \NewDocumentCommand \CharLiturgien { O{,~} m }%>>>
- {
- \DSAchar_print_clist_labelled:nnnn { #2 } { liturgien } { Liturgien } { #1 }
- }%<<<
- \NewDocumentCommand \CharSonderfertigkeiten { O{,~} m }%>>>
- {
- \DSAchar_print_clist_labelled:nnnn
- { #2 } { sonderfertigkeiten } { Sonderfertigkeiten } { #1 }
- }%<<<
- \NewExpandableDocumentCommand \CharListe { O{,~} m m }%>>>
- {
- \DSAchar_print_clist:nnn { #2 } { #3 } { #1 }
- }%<<<
- \NewExpandableDocumentCommand \CharBoolTF { m m }%>>>
- {
- \DSAchar_bool_if:nnTF { #1 } { #2 }
- }%<<<
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<<<
-
- \endinput
|