abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    12.9. 12:00 | Zajímavý článek

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    |🇵🇸 | Komentářů: 20
    12.9. 05:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    11.9. 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 16
    11.9. 17:33 | Nová verze

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 2
    11.9. 15:33 | IT novinky

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

    Ladislav Hagara | Komentářů: 0
    11.9. 15:00 | IT novinky

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 12
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Dotaz: odstraneni duplicit

    16.12.2009 10:02 Leoš Literák | skóre: 74 | blog: LL | Praha
    odstraneni duplicit
    Přečteno: 796×
    Zase mam nejaky zapeklity dotaz z redakcaku abicka. Uz dela, co by mel, akorat druhy vnitrni select vraci vice vysledku, proto i celkovy dotaz vraci vice radku, nez bych chtel. Potreboval bych upravit vnitrni subselect, aby vracel jediny radek a to s nejvyssi hodnotou sloupecku cislo u tabuky CT.
    select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
            coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
            relace R, spolecne S, polozka P 
              left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
                        from polozka P1, relace R1, vlastnost V1, spolecne S1
                        where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
                        and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
                        and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
              left join (select SCS.pridal as uid, CT.numeric1 as contract from polozka SC, polozka CT, spolecne SCS
                        where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0
                        ) B on B.uid = P.numeric1
      where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
    Trochu vysvetleni:
    • hlavni select pres tabulky P, R, S vybira polozky typu autor
    • prvni vnoreny subselect hleda pocet clanku a datum posledniho clanku autora
    • druhy hleda polozku SC spojenou s polozkou CT, kterou vytvoril (SCS.pridal) stejny autor, potrebuji jen radek s nejvetsi hodnotou CT.cislo. Aktualne subselect vraci zadny, jeden nebo vice radku.
    Dekuji za radu. Ja nejsem sql guru, jen se snazim rozsirit existujici dotaz o dalsi funcknost.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow

    Odpovědi

    16.12.2009 11:35 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Nieco take?
     SELECT ... ORDER BY CT.cislo DESC LIMIT 1
    Ale to sa mi vidi prilis trivialne, asi som nepochopil otazku.
    16.12.2009 11:42 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    LIMIT u MySQL nelze použít v subquery (nepletu-li se) :(
    Tímto zpusobem jedině bláznovství:
    do WHERE subquery dát podmínku CT.cislo = (SELECT MAX(CT.cislo) ...) a zopakovat tam dotaz.
    ... ale to je dost ujeté
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    16.12.2009 11:58 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    To jsem zkousel vcetne group by, nicmnéně to dávalo nesmyslné výsledky.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    16.12.2009 12:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Když to Béčko bude takto (to u MySQL lze), tak by to mohlo vrátit jeden záznam, ne ?:
    (SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
      ,(SELECT  MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
    	                    where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
       WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
         GROUP BY tfuj.cfuj) AS B
    
    Ale o kvalitě bych nehovořil (nebijte mě…)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.12.2009 15:46 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Díky, ale syntax error. Asi bude řešením změnit datové schéma a předpočítat si tu hodnotu do sloupečku.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 16:06 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Hm, mně ta část B normálně projde (samozřejmě bez závorek a AS):
    SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
      ,(SELECT  MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
    	                    where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
       WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
         GROUP BY tfuj.cfuj
    
    a kompletní dotaz:
    select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
            coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
            relace R, spolecne S, polozka P
              left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
                        from polozka P1, relace R1, vlastnost V1, spolecne S1
                        where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
                        and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
                        and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
              left join (SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
                            ,(SELECT  MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
                          	                    where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
                             WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
                               GROUP BY tfuj.cfuj) AS B
     on B.uid = P.numeric1
      where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
    
    taky.

    Samozřejmně nad prázdnou db na verzi 5.0.67.

    No ono asi je něco ne úplně OK v datovém modelu, pokud to nutí dělat takovéto dotazy :), ale neznám, pozadí jak to vznikalo a ani jsem to nijak nestudoval, takže si netroufám hodnotit - jen pocit na základě, již druhého podobného dotazu.

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.12.2009 19:37 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit

    Tak castecny uspech, pro jednoho uzivatele to ale vraci NULL. Trochu jsem to rozkouskoval / zkratil:

    SELECT SCS.pridal as uid, CT.numeric1 as contract, CT.cislo FROM polozka SC, polozka CT, spolecne SCS 
    WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0;

    1;-1;147251
    99;-1;147251
    99;1;147269

    SELECT  MAX(CT.cislo) AS cfuj from polozka CT where CT.typ=30 and CT.numeric1<>0;

    147269

    Cely subselect vraci:

    99;1

    Jdu si hrat dal

    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 20:03 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Ten select MAX vrati jediny radek, proto to nemuze fungovat. Asi by to chtelo prepsat na subselect ..
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 22:39 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Toš to jsem se fčul ztratil… :),
    A o to jde, ne ? dle "potrebuji jen radek s nejvetsi hodnotou CT.cislo"

    Do zjednodušení dotazu jsem nešel, bo jsem úplně přesně dle db a požadavku nepronikl do app. vrstvy a db struktury.

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.12.2009 22:56 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    .. potrebuji jen radek s nejvetsi hodnotou CT.cislo daneho uzivatele.

    Polozka CT je navrh smlouvy, muze jich existovat vice. Autori podepisi navrh smlouvy, cimz vznikne polozka SC. V systemu muze byt vice CT, ke kterym bude n SC. CS.numeric1 obsahuje primarni klic CT. Dotaz vypisuje vsechny autory, doplnuju hodnotu CT.numeric1 z posledniho CT, na ktere existuje SC pro daneho autora, pokud zadne SC neexistuje, ma tam byt NULL.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 23:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    To je asi víc informací než bych fčul na klidné spaní chtěl :)
    A nastačí jen odstranit toto GROUP BY tfuj.cfuj - jen tak vařím…
    tj. (bez optimalizace):
    select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
            coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
            relace R, spolecne S, polozka P
              left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
                        from polozka P1, relace R1, vlastnost V1, spolecne S1
                        where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
                        and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
                        and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
              left join (SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
                            ,(SELECT  MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
                          	                    where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
                             WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj) AS B
     on B.uid = P.numeric1
      where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.12.2009 18:07 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Zadna zmena. Furt je tam null.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 16:27 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    nie do stĺpčeku, ale do extra tabuľky s typom. To ti umožní zmeniť v budúcnosti variabilitu, napr "zmena výpočtu bez výpadku", "rôzne podmienky pre rôzne situácie".
    17.12.2009 16:40 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Ve schématu je už pro podobné účely tabulka vlastnost, ale je to jen dvojice klíč: hodnota, string.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    17.12.2009 16:52 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Môže byť. No pre kľúč aj hodnotu by som navrhoval extra tabuľku. Predsa len, typ int4 resp int8 je na porovnanie jednoduchší ako typ string.
    19.12.2009 00:32 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Tak jsem vytvoril nove sloupecky a za chvilku to bylo hotovo, subquery byla primitivni. Do nejakych vetsich uprav schematu se mi nechce, delam nad vetvi a tak nemam chut psat migracni skripty nad spoustou objektu v databazi. Tohle branne cviceni si necham na jindy.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    19.12.2009 08:43 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    existuje jednoduchšie riešenie :-) vytvoriť novú tabuľku "vlastnosti_background", miesto "vlastnosti" vytvoriť view a pridať k nemu správne triggre / rules / ... čo ktorá databáza potrebuje. Triviálne, ak človek SQL generuje (napr XML + XSLT) :-)
    19.12.2009 22:18 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit

    Prepis jsem odladil, uz zase vse funguje, dokonce tento dotaz vraci vysledky, jak ma. Jen jsem chtel podle noveho sloupecku filtrovat a z nejakeho divneho duvodu si mysql stezuje, ze to nejde, ze sloupecek status nezna.

    select P.cislo, P.numeric1, P.boolean1, P.string1, P.string2, P.data, coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, 
    (select CT.boolean2 from polozka CT where CT.cislo=P.numeric2) as status 
    from relace R join spolecne S on R.typ_potomka=S.typ and R.potomek=S.cislo join polozka P on S.typ='P' and S.cislo=P.cislo left join 
    (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy from polozka P1, relace R1, vlastnost V1, spolecne S1 
    where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author' and R1.typ_potomka='P' and V1.hodnota=R1.cislo and 
    S1.typ='P' and P1.cislo=S1.cislo and S1.vytvoreno < now() group by autor) A 
    on A.autor=P.cislo where P.typ=19 AND status=1 ORDER BY string2 ASC;

    Chyba zni:

    Unknown column 'status' in 'where clause'

    Nedava i to smysl, nastudoval jsem mysql dokumentaci k subselectum a nepisou, ze by to nemelo jit. Dokazu filtrovat podle vsech sloupecku mimo tento ze subselectu. Proc?

    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    19.12.2009 22:34 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Update: prepsal jsem ten subselect na left join a stejne to nefungovalo. Musel jsem prestat pouzivat alias a v podmince natvrdo napsat jmeno sloupecku. Je zakazano pouzivat aliasy v podmince, skoda.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    20.12.2009 14:43 kulik
    Rozbalit Rozbalit vše Re: odstraneni duplicit
    Mozna je to skoda, ale je to velmi logicke. Nejprve se urci mnozina vysledku a pak se pro ni teprve dohleda ta hodnota subselectem.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.