From eb2b861d48ca60546652fdf032af20207fd93b43 Mon Sep 17 00:00:00 2001 From: ticvac Date: Sun, 1 Dec 2024 15:47:49 +0100 Subject: [PATCH 1/7] try except na sort --- mamweb/admin.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index a58df505..9b4391db 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -56,8 +56,11 @@ def get_app_list(self, request, app_label=None): # Sort the models alphabetically within each app. - for app in app_list: - app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) + try: + for app in app_list: + app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) + except OSError: + pass # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení return app_list From ddd12b684dc5c62d3eff2136ea67ab4e5cb1485f Mon Sep 17 00:00:00 2001 From: ticvac Date: Mon, 2 Dec 2024 11:51:19 +0100 Subject: [PATCH 2/7] komentar --- mamweb/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index 9b4391db..8a5f16af 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -56,7 +56,7 @@ def get_app_list(self, request, app_label=None): # Sort the models alphabetically within each app. - try: + try: # na macu nefunguje locale.strxfrm :-/ proto je tu try except block for app in app_list: app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) except OSError: From d67d2f372b6f71aa50fdb813241be10fed83fd57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 3 Jan 2025 18:00:47 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Oprava=20zobrazov=C3=A1n=C3=AD=20deadlin?= =?UTF-8?q?=C5=AF=20v=20aktu=C3=A1ln=C3=ADm=20zad=C3=A1n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tvorba/templates/tvorba/zadani/AktualniZadani.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tvorba/templates/tvorba/zadani/AktualniZadani.html b/tvorba/templates/tvorba/zadani/AktualniZadani.html index c463129d..d20a666b 100644 --- a/tvorba/templates/tvorba/zadani/AktualniZadani.html +++ b/tvorba/templates/tvorba/zadani/AktualniZadani.html @@ -18,7 +18,7 @@ Termíny pro odeslání řešení {{ac.poradi}}. série:
{% for deadline in ac.deadline_v_cisle.all %} - {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} + {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS or deadline.typ == deadline.TYP_CISLA_A_SOUS %} {{deadline.deadline.date}} pro účast na soustředění
{% endif %} @@ -26,7 +26,7 @@ {{deadline.deadline.date}} pro otištění v dalším čísle
{% endif %} - {% if deadline.typ == deadline.TYP_CISLA %} + {% if deadline.typ == deadline.TYP_CISLA or deadline.typ == deadline.TYP_CISLA_A_SOUS %} {{deadline.deadline.date}} definitivní deadline
{% endif %} {% endfor %} From 9c4c60765e00d6014a96eca889abfc9fb394dcc6 Mon Sep 17 00:00:00 2001 From: ticvac Date: Tue, 7 Jan 2025 17:44:22 +0100 Subject: [PATCH 4/7] logger done --- mamweb/admin.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index 8a5f16af..5e7bb820 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -7,6 +7,7 @@ import locale from django.contrib import admin from django.contrib.admin import AdminSite from django.contrib.flatpages.models import FlatPage +import logging # Note: we are renaming the original Admin and Form as we import them! from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld @@ -60,7 +61,9 @@ def get_app_list(self, request, app_label=None): for app in app_list: app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) except OSError: - pass # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení + # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení + logger = logging.getLogger(__name__) + logger.error('locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení') return app_list From a97071cd0377edd2cc2a94edb477f878f46d408c Mon Sep 17 00:00:00 2001 From: ticvac Date: Tue, 7 Jan 2025 17:49:16 +0100 Subject: [PATCH 5/7] not dumb error log message --- mamweb/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index 5e7bb820..a0ccf69e 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -60,10 +60,10 @@ def get_app_list(self, request, app_label=None): try: # na macu nefunguje locale.strxfrm :-/ proto je tu try except block for app in app_list: app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) - except OSError: + except OSError as e: # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení logger = logging.getLogger(__name__) - logger.error('locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení') + logger.error(e) return app_list From aa364b3f497a2d774bccf2d6670a62cc9f96dc6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 9 Jan 2025 20:28:38 +0100 Subject: [PATCH 6/7] =?UTF-8?q?V=C3=BDsledkovky=20do=20TeXu=20(a=20tituly)?= =?UTF-8?q?=20si=20odte=C4=8F=20v=C3=ADce=20hl=C3=ADdaj=C3=AD,=20=C5=BEe?= =?UTF-8?q?=20jsou=20spr=C3=A1vn=C4=9B=20sta=C5=BEen=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/tvorba/archiv/cislo_vysledkovka.tex | 13 +++++++++++++ .../tvorba/archiv/rocnik_vysledkovka.tex | 15 ++++++++++++++- tvorba/templates/tvorba/archiv/tituly.tex | 7 +++++++ tvorba/views/__init__.py | 2 +- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex b/tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex index de271652..6858c9cc 100644 --- a/tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex +++ b/tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex @@ -1,5 +1,17 @@ +\ifnum\mmrocnik=0{{vysledkovka.cislo.rocnik.rocnik}} \else\TODO[Ročník výsledkovky se neshoduje s ročníkem čísla! Pokud je to tak správně, smaž tento řádek.]\par\fi +\ifnum\mmcislo=0{{vysledkovka.cislo.poradi|add:1}} \else\TODO[Číslo výsledkovky se neshoduje s pořadovým číslem čísla! Nestáhnul jsi špatnou výsledkovku? Pokud je to tak správně, smaž tento řádek.]\par\fi +{% if rocnik %}\ifmmposledni\else\TODO[Importoval jsi výsledkovku posledního čísla do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek.]\par\fi{% endif %} +% +\VysledkyCisla{Výsledky {% if vysledkovka.od_deadlinu %}2.~deadlinu {{vysledkovka.od_deadlinu.cislo.poradi}}.~čísla a~{% endif %}{% if rocnik %}celého{% else %}1.~deadlinu{% endif %} {{vysledkovka.cislo.poradi}}.~čísla} +\vspace{-1em}\nobreak +\begin{center} +% \setlength{\tabcolsep}{3pt} +\renewcommand{\arraystretch}{1.2} +\noindent\small +% {% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} +{% if vysledkovka.od_deadlinu %}\global\VysledkovkaJedenDeadlinefalse{% else %}\global\VysledkovkaJedenDeadlinetrue{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline & & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead @@ -8,3 +20,4 @@ {% for rv in vysledkovka.radky_vysledkovky %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.osoba.jmeno|slice:":1"}}. {{rv.resitel.osoba.prijmeni}}&{{rv.rocnik_resitele|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_za_temata_seznam %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_rocnik|default:0}}\\ {% endfor %} \end{longtable} +\end{center} diff --git a/tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex b/tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex index a74d5e28..ea57aeb6 100644 --- a/tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex +++ b/tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex @@ -1,14 +1,27 @@ {% with lb="{" %} {% with rb="}" %} {% with vysledkovka=vysledkovka_neverejna %} +% +\ifnum\mmrocnik=0{{rocnik.rocnik}} \else\TODO[Ročník výsledkovky se neshoduje s ročníkem čísla! Pokud je to tak správně, smaž tento řádek.]\par\fi +\ifmmposledni\else\TODO[Importoval jsi výsledkovku ročníku do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek.]\par\fi +% +\VysledkyRocniku{Výsledková listina {{rocnik.rocnik}}.~ročníku} +\vspace{-1em}\nobreak +\begin{center} +% \setlength{\tabcolsep}{3pt} +\renewcommand{\arraystretch}{1.2} +\noindent +% \begin{longtable}{|r|l|c|r|{% for cislo in vysledkovka.cisla_rocniku %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|}\hline & & & & \multicolumn{{ lb }}{{ vysledkovka.cisla_rocniku|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in vysledkovka.cisla_rocniku %}\textbf{{ lb }}{{ cislo.poradi }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline \endhead \hline \endfoot {% for rv in vysledkovka.radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.rocnik_resitele %}{{ rv.rocnik_resitele }}{% endif %} & {{ rv.body_celkem_odjakziva }} {% for b in rv.body_cisla_seznam %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\ -{% endfor %}\end{longtable} +{% endfor %} +\end{longtable} +\end{center} {% endwith %} {% endwith %} {% endwith %} diff --git a/tvorba/templates/tvorba/archiv/tituly.tex b/tvorba/templates/tvorba/archiv/tituly.tex index aca444df..41e69eba 100644 --- a/tvorba/templates/tvorba/archiv/tituly.tex +++ b/tvorba/templates/tvorba/archiv/tituly.tex @@ -1,3 +1,10 @@ +{% if cislo is None %} +\ifmmposledni\else\AtBeginDocument{\TODO[Importoval jsi tituly posledního čísla do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi +{% else %} +\ifmmposledni\AtBeginDocument{\TODO[Importoval jsi průběžné tituly do posledního čísla (v headru bylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi +\ifnum\mmcislo=0{{cislo|add:1}} \else\AtBeginDocument{\TODO[Číslo titulů se neshoduje s pořadovým číslem čísla! Nestáhnul jsi špatné tituly? Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi +{% endif %} + {% if broken %} POZOR! Kolize jmen! Dva řešitelé mají stejné makro! {% endif %} diff --git a/tvorba/views/__init__.py b/tvorba/views/__init__.py index 6647d89e..006a4e50 100644 --- a/tvorba/views/__init__.py +++ b/tvorba/views/__init__.py @@ -523,7 +523,7 @@ def TitulyView(request, rocnik, cislo): jmenovci = True return render(request, 'tvorba/archiv/tituly.tex', - {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") + {'resitele': resitele,'jmenovci':jmenovci,'cislo':cislo},content_type="text/plain") ### Články From 0d67b5ff830a88c928d9913ed7de7749b53f665a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 21 Jan 2025 00:07:14 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Prozat=C3=ADm=20takhle=20(proh=C3=A1zel=20j?= =?UTF-8?q?sem=20kan=C3=A1ly)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/static/korektury/imgs/check.png | Bin 697 -> 1108 bytes korektury/static/korektury/imgs/cross.png | Bin 717 -> 1388 bytes korektury/static/korektury/imgs/tex.png | Bin 702 -> 1129 bytes korektury/static/korektury/imgs/undo.png | Bin 617 -> 1108 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/korektury/static/korektury/imgs/check.png b/korektury/static/korektury/imgs/check.png index c4d5504e9e56d95b9bcad7fc93d595472d6f7db3..36197800a9c18427e40aa26b50aa96688ac24169 100644 GIT binary patch literal 1108 zcma)5O-NKx6#njg_x-Em`F)!y!y^ z?n1i75r9A10qeO6!{$&+7__lpSg(`deg7p8>}jh4rQAYr6ws;x^=kozatBV>h8y1y zk+FCksY|YmN_m+M{xQaSgH-x>1f|_NEGn7nF6_h#ezdx9I`T61nKSmdi!u!95a&7M z8v=Ft1RVT<0qdiVz!HNV;4r7wuzZmAhdr=&jsbBQLP@6zHD`m%G%{yx*q;P2Kr_=< zhMG}gT&FDaLz5tSlS~X4Hy)NH4>yuff|lrcaILE#)UF$Au=dnY8-~Q zpI^gbl!4v$!5)DEG=@lws0nj~h%Cxvnuv@L@oX4X6AVT~fiauHbbSH2*E!kt$^-iL zSH#{v721I?b`8>9OF48)Kp$f;g96slDiT!s%;BtTYx9AA+-ReeS7HwA@fD<+=|b}~ zBtKnTYixJ>JwXbgaGeH?t7s_y7O^ delta 674 zcmV;T0$u&o2)PB2BYy&bNklM-r|pzhPtVbK%A z3ZMijkcdIR0e`a?zZJG9?147~?!bRDy$~$L zz)ui(Fz^Vyll@gPiml!du57xIQ3%(M5vUk7T;2)Pe1E77wEpf$$IJ?#6#m=$ZedJt zf|63;BIEIJpblN*-MEyNhs_ENe3*xVRHC%&9%hAE!`s8Q)o&8Gi{jmJJM+&bpM-mH z478NSrU(xGQy-BUmx75U7qnqI)PH`C)=}HF*V%2BKTQspC@Gil8Jaz&bNW-5`sv03 z@g4f8?SGhq2MQ(@uDJB|mLR^8|Q7{?;BQpg4|Np({PcxqRv3h4bgmo;iK$# zu35cm<%;FYmM&SmXyJnS^XAT(J!|HS>C>i8nLKIYg#NzXp6;&Bj`p_Jmgc6$hWfhN zn(C^`it@73lH#Jmg8aPPob0U3jP$hBl;otug!s7FnCPg;i14t`kl>)e0DnJUA8#*D z4|g|L7iT9&2YWkP8*3{|3v)A56JsMo1ARSR9c?X54RtkD6=fww1$jAH8EGj=32`w| z5n&-g0e(JS9&Rp94t6$H7G@?!hN!fM&A_mb_H=O!k&t8*V0{0N;s5_#i#`Lx2?)L{ zSoi-w!~d=8E6Tor`F)d;rv7KxwZ1$vy%;F+rEg+FT-+V4F!sTd>0-V7+4523MlaZOHs6+v$Ly5 z7RWNNKu3wAvzw<+E>z%4N3|1>?;8-357zRfy~@$i#lt5sG$I=49tI%a-rmVAD>o!E zHZi5_3&YGxTU!U`%r9RGVv^Exa(fw;SzFsVW&kyRDNfBTDp|_#zunp{9c29fFXj2= l3qaORsRi?aB7MvL|1XT6dvik3UN2C7@pScbS?83{1OR&SHbejb delta 704 zcmV;x0zdui3e5$O8Gi-<001BJ|6u?C0+dNaK~#9!ZIjPW+b|Tz?WXzFrVuCtiU2`{ zrU`+_1&Xv&BzEsqwlftcZtO3C|DasA1F%gLB#-e_#Y&jSOh+}DTV$)py-EQpK^%fj80lc4uG90cs%_l|=b zj-#_2Y!42qvZ|tZPmdPDkO~p+ou3Eh@iBvGFeCydgmVX5zWIYmz0FL88o#!zT&=)T* z+7|}NV1|W*cL@h zfqstDcz>Q}Le%NnFW1EvB$=?Zu&@L`8;UG4zTwn=DD-+_pDfo;jT4+g145-MvP(AM+$BpQ}_lKIf04 mqw1KV6k77Yb~R7=njO-(I5&S*; z;}vHK)4Q6TU&nq3#^!MTMkzCvvnJ-o`i+SB`C~Ya!(8W|uk)?dom~qk<)}M2hG#g1 zYe>k|bjW4l39cXpC0G-IOSccKXCz@8Qu=1kCtrj&FyX-6hZAiP2$S=Bn{-P)0l#np zQ!-b71p}A1q&UVSehPm9D%Do07xG2%nJZzE5G99L?XD=wNNTYhbp(P?(DHl4GHl7U z^9mNL3sjWqeVA{!g)N|msG#Pnsiw6`a)NVs&~h8Z@&Xpf$e6B*QhDqd$i44tIWfBs z7l-QOm{BOhAjtZadJnuRo<-g5fyDTSUcS|OCqS(6Q7ujM4$Jso*n!4uvsZt{=5+f} cJFoDsTGs->awYs4Jd)2?- ze;~~0e`pbiAz9)YQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASoCrD99W=T#e zLrH3da*p7w<|XH379a03RsJNRccYbzM-Ch{;|hFMGaV$pl|qN4ZVKoQmt^NSM|G6ZS(buEp-p@H~ z*YgJ43 z<|_|m$~m_^|IM`a!g@cpi^r_R{=}q;TUQ+84%^Uae#U+B(!#6m)(w;AteAChcEwRM hJ40)|m;L9(vk&RLTlstIIiRN*JYD@<);T3K0RTqY{~7=Q diff --git a/korektury/static/korektury/imgs/undo.png b/korektury/static/korektury/imgs/undo.png index 973b5939f6e9a319931ca3335c51d18650dca340..504ff43b44e0227dd5ce92f8db4fa3a17e37dddd 100644 GIT binary patch literal 1108 zcmbVLOKTKC5dOM*W@nu2>;qxdBoIOLAPRy97ew8}U3Eo+Nc1KsUW9n|BnTb^Fa8Aa zl7kNfPeNkMVo)Oy^rYk@9zsAO?t6B2cBZTzk`QysT0>8Fbya;;^>z2dOXFug&$p0}9Wp@NTYe&We1=gqpNr@Mn?$1^|&zfC>>2wUh#&;gPLpBnt7A)#P z4DJAa`v{U91Rf_^5fE+y#)u26r8BRfZu^KzhE^10HU(!%LZ*AbFbA(T;oBYb9*@!c zC)!8Lv^a6hNBC$LTt5RR`h`|eY6BCLiy-%M<{=BJ%E7rdy0!cIF# zOuZKQ)K&nkbFx`tUx|bha}XdL2AE?OKI>Sxm3;(zij|9NTN{%J^Lq!RnAp0Jr@4b0 zmTfLLRgF(hS5jZ&V4IO^Zd}2E5KK8#C2pa=aDEI>xe(NmFyH=H1$@bmgb>e;)2l|` z0E^=4ZoYa0Z8V{1=2@Z`xU0lG6GJiqh zUFOLc7l$WLW(N~vVzMpqq8I!V^kn9R@)wN6I5hrP51N@wXH|4ee)LsJOABqSHF!Wh zz&Ck^_s#o$zVG|;u)|lliOq+JCJaPuZhgVy#?L#Q4n{Xj=zn%~&@{DZn(%-xrcwVK zW&tl%v3+ivJ!vQRUnpmTW~fadsOhP8n+GhQ&m zw^mc!;N!+Gt!HV!zd$iGR6l?DJwhnpg0`vyK@dQDNq_jrf9GXIOIFy^2>ucA%g;B$ z(MY2DsZz3mNXQFH*8l@B>){CKX(pg%gEK(S@T;?bA@TWV%X^}crP@xFvjO-|Xj+H+ z@aRNxFn{Fgi)?T*P(XE|guw_gbL~}{VVE`46xfk~W7oMw%I(XemY5p}IDX?z9tV6u zQRLW2z)I|`%?(pGisgIL%R>WaSGK0~uD)iiWclti8X7ot`(55DDn7Y$sPt<;G?2Ra fHeq%C^Fx0EdJPAFT}%l500000NkvXXu0mjfry(5%