Content-Type: multipart/related; start=; boundary=----------wYRGTIrqdzzPStUpnQpOr3 Content-Location: http://umm.j2me.cz/index.php5?title=POT Subject: =?utf-8?Q?POT=20-=20FAV?= MIME-Version: 1.0 ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=index.htm Content-Type: text/html; charset=UTF-8; name=index.htm Content-ID: Content-Location: http://umm.j2me.cz/index.php5?title=POT Content-Transfer-Encoding: Quoted-Printable POT - FAV = =

POT

From FAV

Str=C3=A1nka by m=C4=9Bla obsahovat =C5=99e=C5=A1en=C3=AD vzorov=C3= =A9ho testu z POT (pop=C5=99=C3=ADpad=C4=9B pokud se poda=C5=99=C3=AD se= hnat i zad=C3=A1n=C3=AD jin=C3=A9)


http://home.zcu.cz/~struharv/pot_demo.pdf


Dal=C5=A1=C3=AD zad=C3=A1n=C3=AD p=C3=ADsemek:

http://fav.q-e-e.net/POT/zkouska_vyplnena/ =

Contents

[edit] Spr=C3=A1= vn=C3=A9 odpov=C4=9Bdi k http://fav.q-e-e.net/POT/zkouska_vyplnena/=

.. kdy=C5=BEtak opravte (georgus)

1: R1=3DCAB4, OV=3D1, C=3D0, signed=3D-13644

2: ER0=3D00003AC8

3: OK

4: R0=3D10h, R1=3D10h

5: 8

6: .. je to prost=C4=9B blb=C4=9B .. je tam jenom =C4=8Dten=C3=AD= , nejd=C5=99=C3=ADve 6x instrukce po 1B a pak 1x =C4=8Dten=C3=AD do regi= stru 1B

7: 1,4 mikrosekundy (7 =C4=8Dten=C3=AD z pam=C4=9Bti, 1 WAIT =3D = 7*4 (3 norm=C3=A1ln=C4=9B + 1 WAIT))

8: OK

9: Y5 k prvni pam=C4=9Bti, Y6 k druh=C3=A9 pam=C4=9Bti

10: OK .. v=C5=BEdy se testuje WAIT na sp=C3=A1dov=C3=A9 hran=C4=9B= CLK

11: OK

12: OK

13: OK

14: =C5=A1patn=C4=9B .. write neprob=C4=9Bhne v=C5=AFbec, nedo=C5= =A1lo k aktivaci HWR, read skon=C4=8D=C3=AD po odpojen=C3=AD sign=C3=A1l= u CE tak=C5=BEe pouze prvn=C3=AD bu=C5=88ka je OK, druh=C3=A1 je rovn=C3= =A1 =C4=8D=C3=A1ra

15: c)

16: OK

17: a) c)

18: OK

19: =C4=8D=C3=ADta=C4=8De, hodiny re=C3=A1ln=C3=A9ho =C4=8Dasu, d= iskov=C3=A9 =C5=99adi=C4=8De, V/V =C5=99adi=C4=8De, DMA =C5=99adi=C4=8De= , IRQ =C5=99adi=C4=8De

20: a) (opraveno - protoze Intel 8052 ma 256 bajtu a Intel 8051 1= 28 bajtu (pamet dat))

21: BREQ s BREQ, BUSACK s BUSACK, DRQ s DRQ, DACK s DACK .. v=C3=AD= c nen=C3=AD pro =C5=99=C3=ADzen=C3=AD pot=C5=99eba

22: b)

23: e)

24: datov=C3=BD vstupn=C3=AD R, datov=C3=BD v=C3=BDstupn=C3=AD W,= =C5=99=C3=ADd=C3=ADc=C3=AD R/W, stavov=C3=BD R/W

25: =

lab1: MOV.L  ER6,ER1
      MOV.B  @ER1,R0L
      INC.L  ER1
      CMP.B  #'S',R0L
      BNE    lab1
lab2: MOV.B  @ER5,R0L
      INC.L  ER5
      CMP.B  #'S',R0L
      BEQ    lab3
      MOV.B  R0L,@ER1
      INC.L  ER1
      BRA    lab2
lab3: MOV.B  #'S',R0L
      MOV.B  R0L,@ER1
kon:  BRA kon




http://sikus.rajce.idnes.cz/POT-zkouska/#album

Ot=C3=A1zka =C4=8D. 4 je stejn=C3=A1 jako ot=C3=A1zka =C4=8D. 6 v= e vzorov=C3=A9 p=C3=ADsemce. Spr=C3=A1vn=C3=A1 odpov=C4=9B=C4=8F je dle = m=C3=A9ho n=C3=A1zoru ta, kter=C3=BD je uvedena n=C3=AD=C5=BEe zde na st= r=C3=A1nce. =

Ot=C3=A1zka =C4=8D. 15 je vy=C5=99e=C5=A1ena tak=C3=A9 n=C3=AD=C5= =BEe. Odpov=C4=9B=C4=8F je tedy: 10ms

Odpov=C4=9B=C4=8F na ot=C3=A1zku =C4=8D. 20, kter=C3=A1 nen=C3=AD= vypln=C4=9Bn=C3=A1: Vnit=C5=99n=C3=AD pam=C4=9B=C5=A5 dat mikrokontrol=C3=A9ru z=C3=A1kladn=C3= =AD =C5=99ady I8052 m=C3=A1 celkovou kapacitu: 256 Byt=C5=AF

Ot=C3=A1zka =C4=8D. 23 je stejn=C3=A1 jako ot=C3=A1zka =C4=8D. 22= ve vzorov=C3=A9 p=C3=ADsemce. Odpov=C4=9B=C4=8F je "DMA =C5=99adi=C4=8D= em".

Ot=C3=A1zka =C4=8D. 5 se mi zd=C3=A1 blb=C4=9B. M=C3=ADsto 6 p=C5= =99=C3=ADstup=C5=AF tam m=C3=A1 bejt: 4x p=C5=99=C3=ADstupy =C4=8Dten=C3= =AD instrukce (po 8 bitech) + z=C3=A1pis 4 bajtoveho operandu =3D 8 p=C5= =99=C3=ADstup=C5=AF do pam=C4=9Bti.

Naraz=C3=ADte-li na n=C4=9Bjakou chybnou odpov=C4=9B=C4=8F ,napi=C5= =A1te sem pros=C3=ADm odpov=C4=9B=C4=8F spr=C3=A1vnou.



[edit] Odpov=C4=9Bdi k http://home.zcu.cz/~struharv= /pot_demo.pdf

[edit] 1

Jak=C3=BD v=C3=BDsledek bude v registru R1 a v p=C5=99=C3=ADznakov=C3= =BDch bitech C (Carry) a V (Overflow) po se=C4=8Dten=C3=AD obsahu regist= r=C5=AF R0 a R1 instrukc=C3=AD ADD.W R0,R1. P=C5=99eve=C4=8Fte v=C3=BDsl= edek se=C4=8D=C3=ADt=C3=A1n=C3=AD (tj. obsah R1) do des=C3=ADtkov=C3=A9 = soustavy, je-li obsah R1 interpretov=C3=A1n jako =C4=8D=C3=ADslo se znam= =C3=A9nkem (signed int).

2C11+E110 =3D (1) 0D21
C =3D 1 //kvuli pretekle (1)
V =3D 0 //scitani kladne + zaporne =3D> nevime, jestli ma vyjit kladn=
e ci zaporne
desitkove =3D 3361


[edit] 2

R0H =3D 3A
R0L =3D C8


[edit] 3

Pokud uva=C5=BEujeme 8bitov=C3=BD p=C5=99=C3=ADstup, tak instrukce =
se =C4=8Dte 8x, a 4x zapisuje do pam=C4=9Bti .. 12 p=C5=99=C3=ADstup=C5=AF=
. (OK)

// uva=C5=BEujeme 8byt=C5=AF ??? =3D jist=C4=9B, nejd=C5=99=C3=AD= ve p=C5=99e=C4=8Dte=C5=A1 8 byt=C5=AF instrukce (64 bit=C5=AF po 8 bitov= =C3=A9 sb=C4=9Brnici =3D 8x) a pak zap=C3=AD=C5=A1e=C5=A1 32bit=C5=AF (4= byty po 8 bitov=C3=A9 sb=C4=9Brnici =3D 4x) dat .. p=C5=99esouv=C3=A1=C5= =A1 32 bitov=C3=BD operand z ERn do pam=C4=9Bti .. tak=C5=BEe celkem 12 = p=C5=99=C3=ADstup=C5=AF.


[edit] 4

Registr PC v procesoru obsahuje:

a) adresu n=C3=A1sleduj=C3=ADc=C3=AD instrukce =


[edit] 5

Je-li v programu (omylem) instrukce skoku do oblasti pam=C4=9Bti kde = jsou ulo=C5=BEena data, reaguje procesor (typu H8S) n=C3=A1sleduj=C3=ADc=C3=ADm zp=C5=AFso= bem:

HEW norm=C3=A1ln=C4=9B sko=C4=8D=C3=AD a pak =C5=BEa=C4=8Dne nad=C3=
=A1vat, =C5=BEe to co =C4=8Dte nen=C3=AD =C5=BE=C3=A1dn=C3=A1 instrukce =
a otev=C3=ADr=C3=A1 debugger. N=C4=9Bkdo v=C3=AD v=C3=ADce? =

(jestlipak to nen=C3=AD sp=C3=AD=C5=A1 ot=C3=A1zka, kdopak mi chodil na =
p=C5=99edn=C3=A1=C5=A1ky :-))
Bill.jr
Mam pocit ze by to mohl bej tohle, ale jistej si nejsem : proc=
esor provede skokovou instrukci a nastav=C3=AD p=C5=99=C3=ADznak =E2=80=9E=
nespr=C3=A1vn=C3=A1 adresa=E2=80=9C
v p=C5=99=C3=ADznakov=C3=A9m registru,
Podle m=C4=9B norm=C3=A1ln=C4=9B sko=C4=8D=C3=AD a nic se nepozn=C3=
=A1, akor=C3=A1t pak spadne. Jak m=C5=AF=C5=BEe poznat, =C5=BEe sko=C4=8D=
il n=C4=9Bkam, kam nem=C4=9Bl ?? Max. tak, =C5=BEe dal=C5=A1=C3=AD =
instrukce je n=C4=9Bjak=C3=A1
kravina, ale n=C3=A1hdn=C4=9B se ti m=C5=AF=C5=BEe st=C3=A1t, =C5=BEe da=
ta budou odpov=C3=ADdat n=C4=9Bjak=C3=BD instrukci.. pak j=C3=AD tim p=C3=
=A1dem vykon=C3=A1.

Tak logicky: =C5=BE=C3=A1dn=C3=BD p=C5=99=C3=ADznak "nespr=C3=A1vn=C3= =A1 adresa" rozhodn=C4=9B procesor H8S neobsahuje, p=C5=99eru=C5=A1en=C3= =AD IRQ0 je venkovn=C3=AD.. nem=C5=AF=C5=BEe ho vyvolat, procesor nepozn= =C3=A1 zda je adresa do dat nebo ne.. tak=C5=BEe i vynulov=C3=A1n=C3=AD = nebo STOP stav nejde.. prost=C4=9B sko=C4=8D=C3=AD a sna=C5=BE=C3=AD se = to vykonat.. pak a=C5=BE za=C4=8Dne =C5=99v=C3=A1t. Tak=C5=BEe B) proces= or skokovou instrukci norm=C3=A1ln=C4=9B provede. (georgus)

[edit] 6

R0=3D0x10
R1=3D0x10

// nebude zde R0 =3D 0x09 dec od=C4=8D=C3=ADt=C3=A1 1 (nejsem si jist= =C3=BD)

Uplne posledni instrukce vyjme ze zasobniku tu ulozenou 0x10 a da j=
i do R0. (a jen na okraj: 0x10 - 1 =3D 0x0F) =


[edit] 7

3D"Image:signal.jpg"
malda: no.. V adrese mus=C3=AD bejt adresa, ne obsah pam=C4=9Bti na adrese ne? Myslim si =C5=BEe to bude v po=C5=99ad=C3=AD podle cykl=C5=AF:

// prvn=C3=AD dva =C4=8Dten=C3=AD instrukce z pam=C4=9Bti

RD
A: 0x002031AB
D: 0x69
RD
A: 0x002031AC
D: 0x10

// druh=C3=BD dva =C4=8Dten=C3=AD z pam=C4=9Bti na adrese 0x00254412

RD
A: 0x00254412
D: 0xC0
RD
A: 0x00254413
D: 0xD1

HWR rovn=C3=A1 =C4=8D=C3=A1ra, nebo=C5=A5 z pam=C4=9Bti jen =C4=8Dte,= ale nezapisuje..

Souhlas s maldou (struharv), tak=C3=A9 souhlas (dandy)

Mal=C3=A1 chyba: HWR mus=C3=AD b=C3=BDt ve vysok=C3=BD =C3=BAr= ovni (georgus)

=C4=8D=C3=A1ra: dole =3D zapnuto, naho=C5=99e =3D vypnuto, jinak = ok ;)

[edit] 8

=C4=8Dty=C5=99i =C4=8Dtec=C3=AD cykly (ka=C5=BEd=C3=BD po t=C5=99ec=
h taktech). Tzn: 4 * 3 * (1/25 000 000) =3D 0,48mikrosekund.
To se mi nejak nezda. Je si tim nekdo jistej? Stejne s tim obrazkem=
? Rozhodne chyba o ktere vim je ze sbernive je 8mi bitova na to
To znamena ze nasobitel je 6tka jestli se nepletu... Tudiz 4MC =3D 4 * 6=
(8bitova sbernice) * 1/25 000 000 =3D 0.96 mikrosekundy

To prvn=C3=AD je spr=C3=A1vn=C4=9B, ano m=C3=A1=C5=A1 4MC ale po 3= hodinov=C3=BDch taktech (=C4=8Dt=C4=9Bn=C3=AD B je 3), ty ne=C4=8Dte=C5= =A1 W za 6. Tak=C5=BEe 4*3 ... vysledek 0,48 mikrosekund (georgus) Je=C5=A1t=C4=9B m=C4=9B tak napadlo, to co je na obr=C3=A1zku je pouze =C4= =8Dten=C3=AD a pota=C5=BEmo dek=C3=B3dov=C3=A1n=C3=AD instrukce. Tak jes= tli se nem=C3=A1 je=C5=A1t=C4=9B zvl=C3=A1=C5=A1=C5=A5 zapo=C4=8D=C3=ADt= at ten EA a WB (p=C5=99edn=C3=A1=C5=A1ka Syst=C3=A9mov=C3=A1 sb=C4=9Brni= ce, strana 20), tam se vlast=C4=9Bn EA a WB p=C5=99ekr=C3=BDv=C3=A1 se =C4= =8Dten=C3=ADm dal=C5=A1=C3=AD instrukce, ale cel=C3=BD instruk=C4=8Dn=C3= =AD cyklus to obsahuje.

Tak=C5=BEe si mysl=C3=ADm =C5=BEe podle p=C5=99edn=C3=A1=C5=A1ek by=
 to m=C4=9Blo b=C3=BDt celkem 3MC po 6 hodinov=C3=BDch cyklech =3D 3 * 6=
 =3D 18 =

(musime zapocitat cteni dalsi instrukce a zpracovani) tak=C5=BEe by to b=
ylo 0.72 mikrosekund, =

ale fakt netu=C5=A1=C3=ADm, proto=C5=BEe podle manu=C3=A1lu jsou v t=C3=A9=
to instrukci celkem 3MC .. =C4=8Dten=C3=AD instrukce, =

=C4=8Dten=C3=AD dal=C5=A1=C3=AD instrukce (NEXT) a pak =C4=8Dten=C3=AD d=
at tud=C3=AD=C5=BE E a WB. V tom p=C5=99=C3=ADpad=C4=9B by byl ten prvn=C3=
=AD obr=C3=A1zek taky blb=C4=9B, =

proto=C5=BEe by tam muselo b=C3=BDt to =C4=8Dten=C3=AD dal=C5=A1=C3=AD i=
nstrukce m=C3=ADsto dat, nev=C3=ADte to n=C4=9Bkdo? Kdo to u=C5=BE d=C4=9B=
lal? M=C4=9Bli jste to dob=C5=99e?


[edit] = 9 Na n=C3=A1sleduj=C3=ADc=C3=ADm obr=C3=A1zku je zapojen=C3=AD perif= ern=C3=ADho =C5=99adi=C4=8De 82C55A. Jak=C3=A9 jsou adresy jeho jednotli= v=C3=BDch registr=C5=AF? Pro ka=C5=BEd=C3=BD registr uve=C4=8Fte (v =C5=A1= estn=C3=A1ctkov=C3=A9 soustav=C4=9B) dv=C4=9B r=C5=AFzn=C3=A9 adresy, kt= er=C3=BDmi lze s dan=C3=BDm registrem pracovat.

Slo=C5=BEen=C3=AD adresy

(ZM=C4=9ANA)
A23,A22,A21 A20,A19,A18- H8S vol=C3=AD 74HCT138 pomoc=C3=AD <=
b>Chip Select, dle obr=C3=A1zku: CS1 =3D 001
A20-A8 - voln=C3=A9 tzn. cokoliv
A7 - jak=C3=A9si vnit=C5=99n=C3=AD povolen=C3=AD v 74HCT138, v=C5=BEdy 0=
 (ve skriptech ani slovo, datasheet sou=C4=8D=C3=A1stky =C5=99=C3=ADk=C3=
=A1 tohle)
A6,A5,A4 - 74HCT138 vol=C3=AD 8255 pomoc=C3=AD Chip Select=
, dle obr=C3=A1zku: Y6 =3D 110
A3,A2 - voln=C3=A9 tzn. m=C5=AF=C5=BEe tu b=C3=BDt cokoliv (n=C4=9Bjak=C3=
=A1 konvence, piny nezapojeny)
A1,A0 - v=C3=BDb=C4=9Br portu na 8255 (A=3D00, B=3D01, C=3D10, =C5=99=C3=
=ADd=C3=ADc=C3=AD reg=3D11)

V=C3=BDsledek

Port A =3D 001 0000000000000 0 110 00 00 =3D =

Port B =3D 001 0000000000000 0 110 00 01 =3D =

Port C =3D 001 0000000000000 0 110 00 10 =3D =

=C5=98=C3=ADd=C3=ADc=C3=AD =3D 001 0000000000000 0 110 00 11 =3D =

Druh=C3=A1 mo=C5=BEnost m=C5=AF=C5=BEe b=C3=BDt cokoliv, sta=C4=8D=C3= =AD zm=C4=9Bnit n=C4=9Bjakou jedni=C4=8Dku v A20-A8 t=C5=99eba.


[edit] 10 Ka=C5=BEd=C3= =A1 bu=C5=88ka dynamick=C3=A9 pam=C4=9Bti RAM se mus=C3=AD zotavovat p=C5= =99ibli=C5=BEn=C4=9B po

10 ms


[edit] 11 Jak=C3=BDmi z=C3=A1kladn=C3=ADmi typy perifern=C3=AD= ch obvod=C5=AF jsou obvykle vybaveny mikrokontrol=C3=A9ry? (Uve=C4=8Fte = aspo=C5=88 3 typy obvod=C5=AF.)

a) paraleln=C3=AD IO porty - to m=C3=A1 ka=C5=BEd=C3=A9 =
CPU
b) USART - s=C3=A9riov=C3=A9 rozhran=C3=AD
c) obvody =C4=8D=C3=ADta=C4=8D=C5=AF a =C4=8Dasova=C4=8D=C5=AF
d) krystalov=C3=BD oscil=C3=A1tor
e) I2C, SPI - s=C3=A9riov=C3=A1 rozhran=C3=AD
f) watchdog
g) gener=C3=A1tor PWM
h) ROM/PROM/EPROM/EEPROM/Flash
i) RAM
j) A/D a D/A p=C5=99evodn=C3=ADky

[edit] 12

Na n=C3=A1sleduj=C3=ADc=C3=ADm obr=C3=A1zku je mapa adresn=C3=ADho pr= ostoru jist=C3=A9ho procesoru (nejedn=C3=A1 se o H8S).

  • a) Jak=C3=A1 je celkov=C3=A1 velikost tohoto adresn=C3=ADh= o prostoru v kB resp. v MB?
  • b) Zakreslete do mapy adresn=C3=ADho prostoru pam=C4=9B=C5= =A5 o kapacit=C4=9B 512 MB, kter=C3=A1 za=C4=8D=C3=ADn=C3=A1 na adrese 0= x4000 0000.
0000 0000 - FFFF FFFF =3D> adresn=C3=AD prostor je 4GB (=3D 2^32=
B)
(oprava) zv=C3=BDrazn=C4=9Bn=C3=A1 =C4=8D=C3=A1st je 5. =C5=A1estn=C3=A1=
ctina odspoda.

(nemela by to byt 5. a 6. sestnactina od spodu? prece jen, pamet je 4= GB a my mame zakreslit 512 MB, coz jsou dve sesnactiny (osmina) - kdyz t= ak me oprave (drow))

??? Kde jsme p=C5=99i=C5=A1li na d=C3=A9lku slova, kdy=C5=BE t= am nen=C3=AD napsan=C3=A1 a je=C5=A1t=C4=9B je tam zd=C5=AFrazn=C4=9Bno,= =C5=BEe nejde o H8S. ??? =3D=3D=3D tak implicitn=C4=9B m=C5=AF=C5=BEe=C5=A1 uva=C5=BEovat 8b jedn= o slovo, to ti asi takovej chyt=C3=A1k ned=C3=A1, to =C5=BEe se nejedn=C3= =A1 o H8S je tam proto, =C5=BEe adresn=C3=AD prostor H8S je jenom 16MB, = tady je to 4GB.

ty voe, ho=C5=A1i, to bude v=C3=A1=C5=BEn=C4=9B 5. a 6. '=C5=99=C3= =A1dka' odspodu. Kdy=C5=BE to vezmu poselsku: cel=C3=A1 pam=C4=9B=C5=A5 = m=C3=A1 4 GB, na tom se shodneme. Mno, a te=C4=8F, m=C3=A1m-li v n=C3=AD= naj=C3=ADt 512 MB blok, tak bude ve fin=C3=A1le muset b=C3=BDt vy=C5=A1= rafovan=C3=A1 "1/8 plochy obr=C3=A1zku", tj. pr=C3=A1v=C4=9B 2 ko= lonky (4096 / 512 =3D=3D 8) M=C3=A1 k tomu n=C4=9Bkdo jednozna=C4=8Dn=C3= =BD a p=C5=99esv=C4=9Bd=C4=8Den=C3=BD stanovisko?

[edit] 13
Dle p=C5=99edn=C3=A1=C5=A1ek p. Dud=C3=A1=C4=8Dka to ch=C3=A1pu tak=
, =C5=BEe lze bu=C4=8F prodlou=C5=BEit d=C3=A9lku slova, nebo kapacitu p=
am=C4=9Bti, ale ne oboj=C3=AD najednou, tak=C5=BEe asi "po=C5=BEadovanou=
 kapacitu nelze z t=C4=9Bchto obvod=C5=AF sestavit".
Ale kdyby to tak nebylo, tak to opravte a mn=C4=9B kopn=C4=9Bte :)
malda

To se mi n=C4=9Bjak nezd=C3=A1. D=C3=A1m-li vedle sebe dv=C4=9B pam=C4=9B=
ti a spoj=C3=ADm-li jejich CS, tak prodlou=C5=BE=C3=ADm d=C3=A9lku slova=
. A tyhle bloky jsou celkem samostatn=C3=BD tak=C5=BEe,
kdy=C5=BE p=C5=99id=C3=A1m dal=C5=A1=C3=AD tak ho budu volat  jin=C3=BDm=
 CS a na ten druh=C3=BD dvoupam=C4=9B=C5=A5ov=C3=BD blok by to nem=C4=9B=
lo m=C3=ADt vliv.
Vypl=C3=BDvalo by z toho tedy, =C5=BEe lze takovou pam=C4=9B=C5=A5 sesta=
vit z 8 pam=C4=9Bt=C3=AD 16Mx8bit=C5=AF, v rozm=C3=ADst=C4=9Bn=C3=AD 4x2=
, tj. =C4=8Dty=C5=99i 16b bloky, blok sestaven=C3=BD z dvou pam=C4=9Bt=C3=
=AD se spole=C4=8Dn=C3=BDm CS
bill.jr

Jop malda to ma blbe. Je na to jednoduchy vypocet - 64MBx16bit =3D (4= *16MB)x(2*8bit) =3D 4*2 =3D 8. Pozor pokud by to mela byt treba kombinac= e 140M x 24 bitu sestavit z 64M * 16 bitu tak to taky jde ale cast pamet= i bude nevyuzita. Treti moznost je bullshit.

[edit] 14

Jak dlouh=C3=A1 adresa (po=C4=8Det bit=C5=AF) je zapot=C5=99eb=C3=AD = k adresov=C3=A1n=C3=AD pam=C4=9Bti o kapacit=C4=9B 32kB (pam=C4=9Bt je o= rganizovan=C3=A1 po bytech)?

32kB po B je 32768 adres =3D 2^15 adres tzn. pot=C5=99ebujeme 15bit=
=C5=AF.
Odpov=C4=9B=C4=8F: 15 bit=C5=AF

[edit] 15

Na n=C3=A1sleduj=C3=ADc=C3=ADm obr=C3=A1zku je pr=C5=AFb=C4=9Bh n=C4=9B= kter=C3=BDch sign=C3=A1l=C5=AF na v=C3=BDvodech statick=C3=A9 pam=C4=9Bt= i. Dokreslete sign=C3=A1ly na datov=C3=A9 sb=C4=9Brnici. V p=C5=99=C3=ADpad= =C4=9B z=C3=A1pisu do pam=C4=9Bti vyzna=C4=8Dte okam=C5=BEik, kdy mus=C3=AD b=C3=BDt vstupn=C3=AD data stabiln=C3=AD.

Pokud se WR=3DWE, tak WE neklesne =3D> nedojde k z=C3=A1pisu =3D=
> nemus=C3=AD b=C3=BDt stabiln=C3=AD
Pak tam asi bude chyt=C3=A1k v tom, =C5=BEe OE je sepnut=C3=A9 p=C5=99es=
 dv=C4=9B adresy, ale CS je sepnut=C3=A9 pouze p=C5=99es jednu. =

Bez CS sepnut=C3=A9ho se asi nezapisuje.

Podle p=C5=99edn=C3=A1=C5=A1ek to tak vypad=C3=A1. Kdy=C5=BEtak oprav= te.

mo=C5=BEn=C3=A1 jen drobn=C3=BD p=C5=99eklep - pokud se ne= pletu, tak jeliko=C5=BE je /WR aktivn=C3=AD na n=C3=ADzk=C3=A9 =C3=BArov= ni a tady jede celou dobu ve vysok=C3=A9, potom spr=C3=A1vn=C3=BD z=C3=A1= v=C4=9Br zn=C3=AD: ke =C4=8Dten=C3=AD dat nedojde

IMO dojde ke =C4=8Dten=C3=AD dat po dobu, kdy je CS aktivn=C3=AD.= Z=C3=A1pis neprob=C3=ADh=C3=A1 v=C5=AFbec, proto=C5=BEe WR je celou dob= u neaktivn=C3=AD. Stativ

[edit] 16
programov=C4=9B


[edit] 17
nejvy=C5=A1=C5=A1=C3=AD priorita


[edit] 18
po dokon=C4=8Den=C3=AD instrukce


[edit] 19

P=C5=99ipojen=C3=AD vn=C4=9Bj=C5=A1=C3=AD pam=C4=9Bti programu k mikr= okontrol=C3=A9ru z=C3=A1kladn=C3=AD =C5=99ady I8051:

Je mo=C5=BEn=C3=A9 s vyu=C5=BEit=C3=ADm paraleln=C3=ADch port=C5=AF=
 pro p=C5=99enos adresy a dat.

[edit] 20

Dynamick=C3=A9 pam=C4=9Bti RAM maj=C3=AD krom=C4=9B jin=C3=BDch vlast= nost=C3=AD i n=C4=9Bkter=C3=A9 z n=C3=A1sleduj=C3=ADc=C3=ADch (vyberte v=C5=A1echny spr=C3=A1vn=C3=A9 odpov=C4=9Bdi):

velmi vysokou rychlost =E2=80=93 nejvy=C5=A1=C5=A1=C3=AD z dostupn=C3=
=BDch typ=C5=AF pam=C4=9Bt=C3=AD
NE - velmi malou spot=C5=99ebu v klidov=C3=A9m stavu
NE - mo=C5=BEnost trval=C3=A9ho ulo=C5=BEen=C3=AD dat i bez p=C5=99ipoje=
n=C3=A9ho nap=C3=A1jen=C3=AD
ANO - mo=C5=BEnost automatick=C3=A9ho zotaven=C3=AD dat cyklem =E2=80=9E=
CAS before RAS=E2=80=9C s vyu=C5=BEit=C3=ADm vnit=C5=99n=C3=ADho =C4=8D=C3=
=ADta=C4=8De adres zotaven=C3=AD
ANO - mo=C5=BEnost rychl=C3=A9ho str=C3=A1nkov=C3=A9ho =C4=8Dten=C3=AD d=
at


[edit] 21

P=C5=99i prob=C3=ADhaj=C3=ADc=C3=ADm DMA p=C5=99enosu mus=C3=AD b=C3=BD= t procesor (nap=C5=99. typu H8S):

odpojen od sb=C4=9Brnice


[edit] 22
DMA =C5=99adi=C4=8Dem


[edit] 23

Jak=C3=A9 registry (obecn=C4=9B) obvykle obsahuj=C3=AD programovateln= =C3=A9 perifern=C3=AD obvody? U ka=C5=BEd=C3=A9ho registru uve=C4=8Fte, je-li typicky pou=C5=BE=C3=ADv=C3= =A1n pro =C4=8Dten=C3=AD ( R) nebo pro z=C3=A1pis(W), resp. =C4=8Dten=C3=AD i z=C3=A1pis (R/W)

Datov=C3=A9 registry - R/W
=C5=98=C3=ADd=C3=ADc=C3=AD registry - W
Stavov=C3=A9 registry - R


[edit] 24
Dle obr=C3=A1zku v p=C5=99edn=C3=A1=C5=A1k=C3=A1ch.
(=C5=98adi=C4=8D DMA) BREQ -> (CPU) BREQ
(=C5=98adi=C4=8D DMA) DACK -> (IO =C5=99adi=C4=8D) DACK
(CPU) BUSACK -> (=C5=98adi=C4=8D DMA) BUSACK
(IO =C5=99adi=C4=8D) DRQ -> (=C5=98adi=C4=8D DMA) DRQ


[edit] 25

V=C3=ADte to n=C4=9Bkdo? Aspo=C5=88 n=C3=A1znak? Kdyby se mohl m=C4=9B= nit je=C5=A1t=C4=9B n=C4=9Bjakej registr t=C5=99eba R0H tak by to u=C5=BE= =C5=A1lo. S tou zmenou je to ok, kdyz na konci vratis jejich puvodni obsah.

      BILD #7,R0L
      BCC  CLR1
      BILD #0,R0L
      BST  #7,R0L
      BCLR #0,R0L
      BRA  NXT1
CLR1: BILD #0,R0L
      BST  #7,R0L
      BSET #0,R0L
NXT1: BILD #6,R0L
 .. a takhle pro bity 6,1 5,2 a 4,3 opakovat

tohle m=C4=9B napadlo ud=C4=9Blat no.. mo=C5=BEn=C3=A1 pude n=C4=9Bco= lep=C5=A1=C3=ADho s rotac=C3=AD.. georgus

Takhle ti to ale nikdy fungovat nebude, proto=C5=BEe si t=C3=ADm = druh=C3=BDm BILD neguje=C5=A1 tu hodnotu z bitu 0 a tu pak jenom kop=C3=AD= ruje=C5=A1 do bitu 7. Nam=C3=ADsto BILD #0,R0L by m=C4=9Blo spr=C3=A1vn=C4= =9B b=C3=BDt BLD #0,R0L a pak to bude fungovat tak jak m=C3=A1 (odzkou=C5= =A1eno a je to nejsp=C3=AD=C5=A1 lep=C5=A1=C3=AD =C5=99e=C5=A1en=C3=AD n= e=C5=BE to n=C3=A1sleduj=C3=ADc=C3=AD).

Dal=C5=A1=C3=AD mo=C5=BEn=C3=A9 =C5=99e=C5=A1en=C3=AD (odzkou=C5=A1= eno a funguje)

       .h8300s
       .data
       .align	1			; zarovnani adresy
par1:	.long	txt1		; parametricky blok 1
       .space	100			; stack
stck:	=

       .text
       .global	_start
_start:
       mov.l	#stck,ER7		=

       push.l	ER1
       mov.b	#44, R0L
smycka:	=

       shar.b	R0L
       inc.b   R1H				=

       bcs	ukladej	=

       add.b   #0, R1L
       shal.b	R1L			=

       cmp.b	#0x7, R1H
       beq     hotovo	=

       bra	smycka
ukladej:		=

       add.b   #1, R1L
       shal.b	R1L
       bra     smycka     	=

hotovo:
       xor.b	R1H, R1H
       mov.l	ER1, ER0
       pop.l	ER1	=

konec:	jmp	@konec			; konec vypoctu		=

       .end

Personal tools
------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://umm.j2me.cz/skins/common/shared.css?164 Content-Transfer-Encoding: 8bit /** * CSS in this file is used by *all* skins (that have any CSS at all). Be * careful what you put in here, since what looks good in one skin may not in * another, but don't ignore the poor non-Monobook users either. */ .mw-plusminus-null { color: #aaa; } .texvc { direction: ltr; unicode-bidi: embed; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* Stop floats from intruding into edit area in previews */ #toolbar, #wpTextbox1 { clear: both; } div#mw-js-message { margin: 1em 5%; padding: 0.5em 2.5%; border: solid 1px #ddd; background-color: #fcfcfc; } /* Edit section links */ .editsection { float: right; margin-left: 5px; } /** * File histories */ table.filehistory { border:1px solid #ccc; border-collapse:collapse; } table.filehistory th, table.filehistory td { padding: 0 0.2em 0 0.2em; vertical-align:top; border:1px solid #ccc; } table.filehistory th { text-align: left; } table.filehistory td.mw-imagepage-filesize, table.filehistory th.mw-imagepage-filesize { white-space:nowrap; } table.filehistory td.filehistory-selected { font-weight: bold; } /* * rev_deleted stuff */ li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } /** * Forms */ body.ltr td.mw-label { text-align: right; } body.ltr td.mw-input { text-align: left; } body.ltr td.mw-submit { text-align: left; } body.rtl td.mw-label { text-align: left; } body.rtl td.mw-input { text-align: right; } body.rtl td.mw-submit { text-align: right; } td.mw-label { vertical-align: top; } td.mw-submit { white-space: nowrap; } /** * Image captions */ body.rtl .thumbcaption { text-align:right; } body.rtl .magnify { float:left; } body.ltr .thumbcaption { text-align:left; } body.ltr .magnify { float:right; } /** * Hidden categories */ .mw-hidden-cats-hidden { display: none; } .catlinks-allhidden { display: none; } /* Convenience links to edit block and delete reasons */ p.mw-ipb-conveniencelinks, p.mw-filedelete-editreasons, p.mw-delete-editreasons { font-size: 90%; float: right; } /* Search results */ div.searchresult { font-size: 95%; width:38em; } .mw-search-results li { padding-bottom: 1em; } .mw-search-result-data { color: green; font-size: 97%; } div#mw-search-interwiki { float: right; width: 18em; border-style: solid; border-color: #AAAAAA; border-width: 1px; margin-top: 2ex; } div#mw-search-interwiki li { font-size: 95%; } .mw-search-interwiki-more { float: right; font-size: 90%; } span.searchalttitle { font-size: 95%; } div.searchdidyoumean { font-size: 127%; padding-bottom:1ex; padding-top:1ex; } /* * UserRights stuff */ .mw-userrights-disabled { color: #888; } table.mw-userrights-groups * td,table.mw-userrights-groups * th { padding-right: 1.5em; } /* * OpenSearch ajax suggestions */ .os-suggest { overflow: auto; overflow-x: hidden; position: absolute; top: 0px; left: 0px; width: 0px; background-color: white; border-style: solid; border-color: #AAAAAA; border-width: 1px; z-index:99; visibility:hidden; font-size:95%; } table.os-suggest-results { font-size: 95%; cursor: pointer; border: 0; border-collapse: collapse; width: 100%; } td.os-suggest-result, td.os-suggest-result-hl { white-space: nowrap; background-color: white; background-color: Window; color: black; color: WindowText; padding: 2px; } td.os-suggest-result-hl, td.os-suggest-result-hl-webkit { background-color: #4C59A6; color: white; } td.os-suggest-result-hl { /* System colors are misimplemented in Safari 3.0 and earlier, making highlighted text illegible... */ background-color: Highlight; color: HighlightText; } .os-suggest-toggle { position: relative; left: 1ex; font-size: 65%; } .os-suggest-toggle-def { position: absolute; top: 0px; left: 0px; font-size: 65%; visibility: hidden; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory .history-user { margin-left: 0.4em; margin-right: 0.2em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } table.mw-listgrouprights-table { border: 1px solid #ccc; border-collapse: collapse; } table.mw-listgrouprights-table tr { vertical-align: top; } table.mw-listgrouprights-table td, table.mw-listgrouprights-table th { padding: 0.5em 0.2em 0.5em 0.2em; border: 1px solid #ccc; } /* Special:SpecialPages styling */ h4.mw-specialpagesgroup { background-color: #dcdcdc; padding: 2px; margin: .3em 0em 0em 0em; } .mw-specialpagerestricted { font-weight: bold; } #shared-image-dup, #shared-image-conflict { font-style: italic; } ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://umm.j2me.cz/skins/monobook/main.css?164 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ #column-content { width: 100%; float: right; margin: 0 0 .6em -12.2em; padding: 0; } #content { margin: 2.8em 0 0 12.2em; padding: 0 1em 1em 1em; position: relative; z-index: 2; } #column-one { padding-top: 160px; } #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } .visualClear { clear: both; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } fieldset table { /* but keep table layouts in forms clean... */ background: none; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } p { margin: .4em 0 .5em 0; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } fieldset.nested { margin: 0 0 0.5em 0; padding: 0 0.5em 0.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ #siteSub { display: none; } #jump-to-nav { display: none; } #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } .firstHeading { margin-bottom: .1em; /* These two rules hack around bug 2013 (fix for more limited bug 11325). When bug 2013 is fixed properly, they should be removed. */ line-height: 1.2em; padding-bottom: 0; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 .9em; } #siteNotice p { margin: 0; padding: 0; } .success { color: green; font-size: larger; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } .catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding-right: 13px; } #bodyContent a[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding-right: 16px; } #bodyContent a[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="irc://"], #bodyContent a.extiw[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding-right: 12px; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; background: none; padding: 0; } #bodyContent a.external { color: #36b; } /* this can be used in the content area to switch off special external link styling */ #bodyContent .plainlinks a { background: none !important; padding: 0 !important; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ #p-logo { top: 0; left: 0; position: absolute; /*needed to use z-index */ z-index: 3; height: 155px; width: 12em; overflow: visible; } #p-logo h5 { display: none; } #p-logo a, #p-logo a:hover { display: block; height: 155px; width: 12.2em; background-repeat: no-repeat; background-position: 35% 50% !important; text-decoration: none; } /* ** Search portlet */ #p-search { position: relative; z-index: 3; } input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } /* ** the personal toolbar */ #p-personal { position: absolute; left: 0; top: 0; z-index: 0; } #p-personal { width: 100%; white-space: nowrap; padding: 0; margin: 0; border: none; background: none; overflow: visible; line-height: 1.2em; } #p-personal h5 { display: none; } #p-personal .portlet, #p-personal .pBody { z-index: 0; padding: 0; margin: 0; border: none; overflow: visible; background: none; } /* this is the ul contained in the portlet */ #p-personal ul { border: none; line-height: 1.4em; color: #2f6fab; padding: 0 2em 0 3em; margin: 0; text-align: right; list-style: none; z-index: 0; background: none; cursor: default; } #p-personal li { z-index: 0; border: none; padding: 0; display: inline; color: #2f6fab; margin-left: 1em; line-height: 1.2em; background: none; } #p-personal li a { text-decoration: none; color: #005896; padding-bottom: .2em; background: none; } #p-personal li a:hover { background-color: white; padding-bottom: .2em; text-decoration: none; } #p-personal li.active a:hover { background-color: transparent; } /* the icon in front of the user name, single quotes in bg url to hide it from iemac */ li#pt-userpage, li#pt-anonuserpage, li#pt-login { background: url(user.gif) top left no-repeat; padding-left: 20px; text-transform: none; } #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ #p-cactions { position: absolute; top: 1.3em; left: 11.5em; margin: 0; white-space: nowrap; width: 76%; line-height: 1.1em; overflow: visible; background: none; border-collapse: collapse; padding-left: 1em; list-style: none; font-size: 95%; } #p-cactions ul { list-style: none; } #p-cactions li { display: inline; border: 1px solid #aaa; border-bottom: none; padding: 0 0 .1em 0; margin: 0 .3em 0 0; overflow: visible; background: white; } #p-cactions li.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; } #p-cactions li a { background-color: #fbfbfb; color: #002bb8; border: none; padding: 0 .8em .3em; position: relative; z-index: 0; margin: 0; text-decoration: none; } #p-cactions li.selected a { z-index: 3; padding: 0 1em .2em!important; background-color: white; } #p-cactions .new a { color: #ba0000; } #p-cactions li a:hover { z-index: 3; text-decoration: none; background-color: white; } #p-cactions h5 { display: none; } #p-cactions li.istalk { margin-right: 0; } #p-cactions li.istalk a { padding-right: .5em; } #p-cactions #ca-addsection a { padding-left: .4em; padding-right: .4em; } /* offsets to distinguish the tab groups */ li#ca-talk { margin-right: 1.6em; } li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } #p-cactions .pBody { font-size: 1em; background-color: transparent; color: inherit; border-collapse: inherit; border: 0; padding: 0; } #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } /* ** the remaining portlets */ #p-tbx, #p-lang { position: relative; z-index: 3; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } #preftoc li { margin: 1px -2px 1px 2px; float: left; padding: 2px 0 3px 0; border: 1px solid #fff; border-right-color: #716f64; border-bottom: 0; position: relative; white-space: nowrap; list-style-type: none; list-style-image: none; z-index: 3; } #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #prefcontrol { padding-top: 2em; clear: both; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection fieldset { border: 1px solid #aaa; float: left; margin-right: 2em; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } .mainLegend { display: none; } div.prefsectiontip { font-size: x-small; padding: .2em 2em; color: #666; } .btnSavePrefs { font-weight: bold; padding-left: .3em; padding-right: .3em; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } .rtl div#userloginForm form, .rtl div#userlogin form#userlogin2 { float: right; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha, div#userloginForm .captcha { border: 1px solid #bbb; padding: 1.5em 2em; background-color: white; } #loginend, #signupend { clear: both; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* ** IE/Mac fixes, hope to find a validating way to move this ** to a separate stylesheet. This would work but doesn't validate: ** @import("IEMacFixes.css"); */ /* tabs: border on the a, not the div */ * > html #p-cactions li { border: none; } * > html #p-cactions li a { border: 1px solid #aaa; border-bottom: none; } * > html #p-cactions li.selected a { border-color: #fabd23; } /* footer icons need a fixed width */ * > html #f-poweredbyico, * > html #f-copyrightico { width: 88px; } * > html #bodyContent, * > html #bodyContent pre { overflow-x: auto; width: 100%; padding-bottom: 25px; } /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } .not-patrolled { background-color: #ffa; } div.patrollink { clear: both; font-size: 75%; text-align: right; } span.newpage, span.minor, span.bot { font-weight: bold; } span.unpatrolled { font-weight: bold; color: red; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } /* Keep this temporarily so that cached pages will display right */ table.gallery td.galleryheader { text-align: center; font-weight: bold; } table.gallery caption { font-weight: bold; } div.gallerybox { margin: 2px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } span.comment { font-style: italic; } span.changedby { font-size: 95%; } .previewnote { text-indent: 3em; color: #c00; border-bottom: 1px solid #aaa; padding-bottom: 1em; margin-bottom: 1em; } .previewnote p { margin: 0; padding: 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } .toggle { margin-left: 2em; text-indent: -2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } table.collapsed tr.collapsable { display: none; } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Allmessages table */ #allmessagestable th { background-color: #b2b2ff; } #allmessagestable tr.orig { background-color: #ffe2e2; } #allmessagestable tr.new { background-color: #e2ffe2; } #allmessagestable tr.def { background-color: #f0f0ff; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div#searchTargetHide { float:right; border:solid 1px black; background:#DCDCDC; padding:2px; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } /** Special:Version */ table#sv-ext, table#sv-hooks, table#sv-software { margin: 1em; padding:0em; } #sv-ext td, #sv-hooks td, #sv-software td, #sv-ext th, #sv-hooks th, #sv-software th { border: 1px solid #A0A0A0; padding: 0 0.15em 0 0.15em; } #sv-ext th, #sv-hooks th, #sv-software th { background-color: #F0F0F0; color: black; padding: 0 0.15em 0 0.15em; } tr.sv-space{ height: 0.8em; border:none; } tr.sv-space td { display: none; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 1px solid #aaaaaa; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } /* Friendlier slave lag warnings */ div.mw-lag-warn-normal, div.mw-lag-warn-high { padding: 3px; text-align: center; margin: 3px auto; } div.mw-lag-warn-normal { border: 1px solid #FFCC66; background-color: #FFFFCC; } div.mw-lag-warn-high { font-weight: bold; border: 2px solid #FF0033; background-color: #FFCCCC; } /* Recreating-deleted-page/reupload file warning and log entries */ div#mw-upload-deleted-warn, div#mw-recreate-deleted-warn { padding: 3px; margin-bottom: 3px; border: 2px solid #2F6FAB; } div#mw-upload-deleted-warn ul li, div#mw-recreate-deleted-warn ul li { font-size: 90%; } .MediaTransformError { background-color: #ccc; padding: 0.1em; } .MediaTransformError td { text-align: center; vertical-align: middle; font-size: 90%; } /** Special:Search stuff */ div#mw-search-interwiki-caption { text-align: center; font-weight: bold; font-size: 95%; } .mw-search-interwiki-project { font-size: 97%; text-align: left; padding-left: 0.2em; padding-right: 0.15em; padding-bottom: 0.2em; padding-top: 0.15em; background: #cae8ff; } span.searchmatch { font-weight: bold; color: red; } /* God-damned hack for the crappy layout */ .os-suggest { font-size: 127%; } ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://umm.j2me.cz/skins/monobook/headbg.jpg Content-Transfer-Encoding: Base64 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 pqmqalFqtJUGrOhqk4mqUtJqampqa/RqapquqRhbcdOIbqoSWMoZnG01aiZjs3Gf tdoO6lFFFFFFFFJRRRRRytyX9LwVBqmpqUclytrcHACgBSUqKJRRQALZYAFFABQB SUUUlFFHK2XClAAAFABCoUAAAABQAFACoFAqKAhl2c6KXHu6AiZdkpKWkprGFopR FSlAEUAARQAAABFEVAAAKKKKKKAKKTU1TU1KkAoqDWDWE1NTU0NTQ1NV1gqFSWZT WzU1NTU1KWpOVv6WxSiiiiiikoooooooXkDgoopKWjkF4ABRAoACgABQBAUAEKKK KSiilLAoAFBBQAAAAAARQAQUAAAEyZoopfLVgkpRQUsKAAAAAAAAAAAAAFAUUUUU UUUUUUUAAAUUUmpRRRQFFFFFAJRRqUUUUUUUUUUampRSgBRRRRRRRRRRRRRQKBRS UUUoAABRQAUAFAAAFFABRRRRQFFFAFFFAUUAUACoUUFAABQAUAAUAoIqSlFFFLEK gUUUUAAoAioqCoKICiCgAAAAAAAAAAAAAAAIogKAAAAIoAigAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAD//Z ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/gif Content-Location: http://umm.j2me.cz/skins/monobook/bullet.gif Content-Transfer-Encoding: Base64 R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4Sp ADs= ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/png Content-Location: http://umm.j2me.cz/skins/monobook/external.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4 AVnsAZubxDVmAAAAAElFTkSuQmCC ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/png Content-Location: http://umm.j2me.cz/skins/monobook/document.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAMAAAC+Ge+yAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkUExURTOF 1i2B1ubw/x130n+y5eHt/6XJ/8zg/2aj/////wBmzP///zvG3SgAAAAMdFJOU/// ////////////ABLfzs4AAABYSURBVHjaYuACAmYWbm6AAGLg4uTk5GJg4QYIIAYu VnZ2LiZGFoAAYuBi4+AAyQIEEFiEnZ2VCyCAwCIcHGxcAAEEFwEIILgIQACBtYNM AAggBi4oAAgwAGydAoHBcnzyAAAAAElFTkSuQmCC ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/gif Content-Location: http://umm.j2me.cz/skins/monobook/user.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAPcAAFtJMlpJNFxIMU5OTm2XH3aIVJNkK5FmMJZnPbt6NIZzXId0 XpVwQZRzR5p7VI1+baZ3Tdl+Kt1/LIO2JYe5K4q8M4idYZKBbJK/QLqddZfDR5rF TZ/HVqfMZanNacKVWuKVQ+ejVuelVu21bPC/e5+XjKOjo7rXhr3aiM+1kNi4icff m8rio83jqNHmrtXotOPEl/HDg/LKjvfaq/ngut3Z1Nvrwd/tx/vqz+Hh4erq6v// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAADsALAAAAAAQABAAAAh4AHcIHEiwoMEdFxRcOFhQ QQMGBwQwFLjAQQoYHwwAmPggA40ZMRIEmFhChQwSISIMmLjDhAgQEhCwFAih5kwT JkbgIDFg5UETL1gUIGFBQwWfBE3ccLHihAUOGChMQCrQhI0WE1B02OCBwNSCPcOK 7TmzrNmzOwICADs= ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=commonPrint.css Content-Type: text/css; charset=UTF-8; name=commonPrint.css Content-Location: http://umm.j2me.cz/skins/common/commonPrint.css?164 Content-Transfer-Encoding: 8bit /* ** MediaWiki Print style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke, http://www.aulinx.de/ ** ** Derived from the plone (http://plone.org/) styles ** Copyright Alexander Limi */ /* Thanks to A List Apart (http://alistapart.com/) for useful extras */ a.stub, a.new{ color:#ba0000; text-decoration:none; } #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; } .tocindent { margin-left: 2em; } .tocline { margin-bottom: 0px; } /* images */ div.floatright { float: right; clear: right; margin: 0; position:relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic;} div.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position:relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; overflow: hidden; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; padding: 0.3em 0 0.1em 0; } div.magnify { display: none; } div.tright { float: right; clear: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } /* table standards */ table.rimage { float:right; width:1pt; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } body { background: White; /*font-size: 11pt !important;*/ color: Black; margin: 0; padding: 0; } .noprint, div#jump-to-nav, div.top, div#column-one, #colophon, .editsection, .toctoggle, .tochidden, div#f-poweredbyico, div#f-copyrightico, li#viewcount, li#about, li#disclaimer, li#privacy { /* Hides all the elements irrelevant for printing */ display: none; } ul { list-style-type: square; } #content { background: none; border: none ! important; padding: 0 ! important; margin: 0 ! important; } #footer { background : white; color : black; border-top: 1px solid black; } h1, h2, h3, h4, h5, h6 { font-weight: bold; } p, .documentDescription { margin: 1em 0 ! important; line-height: 1.2em; } .tocindent p { margin: 0 0 0 0 ! important; } pre { border: 1pt dashed black; white-space: pre; font-size: 8pt; overflow: auto; padding: 1em 0; background : white; color : black; } table.listing, table.listing td { border: 1pt solid black; border-collapse: collapse; } a { color: Black !important; background: none !important; padding: 0 !important; } a:link, a:visited { color: #520; background: transparent; text-decoration: underline; } #content a.external.text:after, #content a.external.autonumber:after { /* Expand URLs for printing */ content: " (" attr(href) ") "; } #globalWrapper { width: 100% !important; min-width: 0 !important; } #content { background : white; color : black; } #column-content { margin: 0 !important; } #column-content #content { padding: 1em; margin: 0 !important; } /* MSIE/Win doesn't understand 'inherit' */ a, a.external, a.new, a.stub { color: black ! important; text-decoration: none ! important; } /* Continue ... */ a, a.external, a.new, a.stub { color: inherit ! important; text-decoration: inherit ! important; } img { border: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } #siteNotice { display: none; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } div.gallerybox { border: 1px solid #cccccc; margin: 2px; background-color:#f9f9f9; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } /* ** Diff rendering */ table.diff { background:white; } td.diff-otitle { background:#ffffff; } td.diff-ntitle { background:#ffffff; } td.diff-addedline { background:#ccffcc; font-size: smaller; border: solid 2px black; } td.diff-deletedline { background:#ffffaa; font-size: smaller; border: dotted 2px black; } td.diff-context { background:#eeeeee; font-size: smaller; } .diffchange { color: silver; font-weight: bold; text-decoration: underline; } ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=wikibits.js Content-Type: application/x-javascript; charset=UTF-8; name=wikibits.js Content-Location: http://umm.j2me.cz/skins/common/wikibits.js?164 Content-Transfer-Encoding: Base64 Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0 KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr aXRfbWF0Y2hbMV0pOwp9CnZhciBpc19raHRtbCA9IG5hdmlnYXRvci52ZW5kb3Ig PT0gJ0tERScgfHwKCSggZG9jdW1lbnQuY2hpbGROb2RlcyAmJiAhZG9jdW1lbnQu YWxsICYmICFuYXZpZ2F0b3IudGFpbnRFbmFibGVkICk7Ci8vIEZvciBhY2Nlc3Nr ZXlzOyBub3RlIHRoYXQgRkYzKyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYy ID0gL2ZpcmVmb3hcL1syLTldfG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMg KTsKLy8gVGhlc2UgYXJlbid0IHVzZWQgaGVyZSwgYnV0IHNvbWUgY3VzdG9tIHNj cmlwdHMgcmVseSBvbiB0aGVtCnZhciBpc19mZjJfd2luID0gaXNfZmYyICYmIGNs aWVudFBDLmluZGV4T2YoJ3dpbmRvd3MnKSAhPSAtMTsKdmFyIGlzX2ZmMl94MTEg PSBpc19mZjIgJiYgY2xpZW50UEMuaW5kZXhPZigneDExJykgIT0gLTE7CmlmIChj bGllbnRQQy5pbmRleE9mKCdvcGVyYScpICE9IC0xKSB7Cgl2YXIgaXNfb3BlcmEg PSB0cnVlOwoJdmFyIGlzX29wZXJhX3ByZXNldmVuID0gd2luZG93Lm9wZXJhICYm ICFkb2N1bWVudC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhX3NldmVuID0gd2lu ZG93Lm9wZXJhICYmIGRvY3VtZW50LmNoaWxkTm9kZXM7Cgl2YXIgaXNfb3BlcmFf OTUgPSAvb3BlcmFcLyg5Lls1LTldfFsxLTldWzAtOV0pLy50ZXN0KCBjbGllbnRQ QyApOwp9CgovLyBHbG9iYWwgZXh0ZXJuYWwgb2JqZWN0cyB1c2VkIGJ5IHRoaXMg c2NyaXB0LgovKmV4dGVybiB0YSwgc3R5bGVwYXRoLCBza2luICovCgovLyBhZGQg YW55IG9ubG9hZCBmdW5jdGlvbnMgaW4gdGhpcyBob29rIChwbGVhc2UgZG9uJ3Qg aGFyZC1jb2RlIGFueSBldmVudHMgaW4gdGhlIHhodG1sIHNvdXJjZSkKdmFyIGRv bmVPbmxvYWRIb29rOwoKaWYgKCF3aW5kb3cub25sb2FkRnVuY3RzKSB7Cgl2YXIg b25sb2FkRnVuY3RzID0gW107Cn0KCmZ1bmN0aW9uIGFkZE9ubG9hZEhvb2soaG9v a0Z1bmN0KSB7CgkvLyBBbGxvd3MgYWRkLW9uIHNjcmlwdHMgdG8gYWRkIG9ubG9h ZCBmdW5jdGlvbnMKCWlmKCFkb25lT25sb2FkSG9vaykgewoJCW9ubG9hZEZ1bmN0 c1tvbmxvYWRGdW5jdHMubGVuZ3RoXSA9IGhvb2tGdW5jdDsKCX0gZWxzZSB7CgkJ aG9va0Z1bmN0KCk7ICAvLyBidWcgaW4gTVNJRSBzY3JpcHQgbG9hZGluZwoJfQp9 CgpmdW5jdGlvbiBob29rRXZlbnQoaG9va05hbWUsIGhvb2tGdW5jdCkgewoJaWYg KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CgkJd2luZG93LmFkZEV2ZW50TGlz dGVuZXIoaG9va05hbWUsIGhvb2tGdW5jdCwgZmFsc2UpOwoJfSBlbHNlIGlmICh3 aW5kb3cuYXR0YWNoRXZlbnQpIHsKCQl3aW5kb3cuYXR0YWNoRXZlbnQoIm9uIiAr IGhvb2tOYW1lLCBob29rRnVuY3QpOwoJfQp9CgpmdW5jdGlvbiBpbXBvcnRTY3Jp cHQocGFnZSkgewoJcmV0dXJuIGltcG9ydFNjcmlwdFVSSSh3Z1NjcmlwdCArICc/ YWN0aW9uPXJhdyZjdHlwZT10ZXh0L2phdmFzY3JpcHQmdGl0bGU9JyArIGVuY29k ZVVSSUNvbXBvbmVudChwYWdlLnJlcGxhY2UoLyAvZywnXycpKSk7Cn0KIAp2YXIg bG9hZGVkU2NyaXB0cyA9IHt9OyAvLyBpbmNsdWRlZC1zY3JpcHRzIHRyYWNrZXIK ZnVuY3Rpb24gaW1wb3J0U2NyaXB0VVJJKHVybCkgewoJaWYgKGxvYWRlZFNjcmlw dHNbdXJsXSkgewoJCXJldHVybiBudWxsOwoJfQoJbG9hZGVkU2NyaXB0c1t1cmxd ID0gdHJ1ZTsKCXZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0 Jyk7CglzLnNldEF0dHJpYnV0ZSgnc3JjJyx1cmwpOwoJcy5zZXRBdHRyaWJ1dGUo J3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTsKCWRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQocyk7CglyZXR1cm4gczsK fQogCmZ1bmN0aW9uIGltcG9ydFN0eWxlc2hlZXQocGFnZSkgewoJcmV0dXJuIGlt cG9ydFN0eWxlc2hlZXRVUkkod2dTY3JpcHQgKyAnP2FjdGlvbj1yYXcmY3R5cGU9 dGV4dC9jc3MmdGl0bGU9JyArIGVuY29kZVVSSUNvbXBvbmVudChwYWdlLnJlcGxh Y2UoLyAvZywnXycpKSk7Cn0KIApmdW5jdGlvbiBpbXBvcnRTdHlsZXNoZWV0VVJJ KHVybCkgewoJcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVN0eWxlU2hlZXQgPyBkb2N1 bWVudC5jcmVhdGVTdHlsZVNoZWV0KHVybCkgOiBhcHBlbmRDU1MoJ0BpbXBvcnQg IicgKyB1cmwgKyAnIjsnKTsKfQogCmZ1bmN0aW9uIGFwcGVuZENTUyh0ZXh0KSB7 Cgl2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CglzLnR5 cGUgPSAndGV4dC9jc3MnOwoJcy5yZWwgPSAnc3R5bGVzaGVldCc7CglpZiAocy5z dHlsZVNoZWV0KSBzLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHRleHQgLy9JRQoJZWxz ZSBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQgKyAn JykpIC8vU2FmYXJpIHNvbWV0aW1lcyBib3JrcyBvbiBudWxsCglkb2N1bWVudC5n ZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHMpOwoJ cmV0dXJuIHM7Cn0KCi8vIHNwZWNpYWwgc3R5bGVzaGVldCBsaW5rcwppZiAodHlw ZW9mIHN0eWxlcGF0aCAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygc2tpbiAhPSAn dW5kZWZpbmVkJykgewoJaWYgKGlzX29wZXJhX3ByZXNldmVuKSB7CgkJaW1wb3J0 U3R5bGVzaGVldFVSSShzdHlsZXBhdGgrJy8nK3NraW4rJy9PcGVyYTZGaXhlcy5j c3MnKTsKCX0gZWxzZSBpZiAoaXNfb3BlcmFfc2V2ZW4gJiYgIWlzX29wZXJhXzk1 KSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBhdGgrJy8nK3NraW4rJy9P cGVyYTdGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoaXNfa2h0bWwpIHsKCQlpbXBv cnRTdHlsZXNoZWV0VVJJKHN0eWxlcGF0aCsnLycrc2tpbisnL0tIVE1MRml4ZXMu Y3NzJyk7Cgl9Cn0KCmlmICh3Z0JyZWFrRnJhbWVzKSB7CgkvLyBVbi10cmFwIHVz IGZyb20gZnJhbWVzZXRzCglpZiAod2luZG93LnRvcCAhPSB3aW5kb3cpIHsKCQl3 aW5kb3cudG9wLmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uOwoJfQp9CgovLyBm b3IgZW5oYW5jZWQgUmVjZW50Q2hhbmdlcwpmdW5jdGlvbiB0b2dnbGVWaXNpYmls aXR5KF9sZXZlbElkLCBfb3RoZXJJZCwgX2xpbmtJZCkgewoJdmFyIHRoaXNMZXZl bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9sZXZlbElkKTsKCXZhciBvdGhl ckxldmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoX290aGVySWQpOwoJdmFy IGxpbmtMZXZlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9saW5rSWQpOwoJ aWYgKHRoaXNMZXZlbC5zdHlsZS5kaXNwbGF5ID09ICdub25lJykgewoJCXRoaXNM ZXZlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQlvdGhlckxldmVsLnN0eWxl LmRpc3BsYXkgPSAnbm9uZSc7CgkJbGlua0xldmVsLnN0eWxlLmRpc3BsYXkgPSAn aW5saW5lJzsKCX0gZWxzZSB7CgkJdGhpc0xldmVsLnN0eWxlLmRpc3BsYXkgPSAn bm9uZSc7CgkJb3RoZXJMZXZlbC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7CgkJ bGlua0xldmVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cgl9Cn0KCmZ1bmN0aW9u IHNob3dUb2NUb2dnbGUoKSB7CglpZiAoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUp IHsKCQkvLyBVc2VzIERPTSBjYWxscyB0byBhdm9pZCBkb2N1bWVudC53cml0ZSAr IFhIVE1MIGlzc3VlcwoKCQl2YXIgbGlua0hvbGRlciA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCd0b2N0aXRsZScpOwoJCWlmICghbGlua0hvbGRlcikgewoJCQly ZXR1cm47CgkJfQoKCQl2YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl bWVudCgnc3BhbicpOwoJCW91dGVyU3Bhbi5jbGFzc05hbWUgPSAndG9jdG9nZ2xl JzsKCgkJdmFyIHRvZ2dsZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdh Jyk7CgkJdG9nZ2xlTGluay5pZCA9ICd0b2dnbGVsaW5rJzsKCQl0b2dnbGVMaW5r LmNsYXNzTmFtZSA9ICdpbnRlcm5hbCc7CgkJdG9nZ2xlTGluay5ocmVmID0gJ2ph dmFzY3JpcHQ6dG9nZ2xlVG9jKCknOwoJCXRvZ2dsZUxpbmsuYXBwZW5kQ2hpbGQo ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodG9jSGlkZVRleHQpKTsKCgkJb3V0ZXJT cGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbJykpOwoJ CW91dGVyU3Bhbi5hcHBlbmRDaGlsZCh0b2dnbGVMaW5rKTsKCQlvdXRlclNwYW4u YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ10nKSk7CgoJCWxp bmtIb2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAn KSk7CgkJbGlua0hvbGRlci5hcHBlbmRDaGlsZChvdXRlclNwYW4pOwoKCQl2YXIg Y29va2llUG9zID0gZG9jdW1lbnQuY29va2llLmluZGV4T2YoImhpZGV0b2M9Iik7 CgkJaWYgKGNvb2tpZVBvcyA+IC0xICYmIGRvY3VtZW50LmNvb2tpZS5jaGFyQXQo Y29va2llUG9zICsgOCkgPT0gMSkgewoJCQl0b2dnbGVUb2MoKTsKCQl9Cgl9Cn0K CmZ1bmN0aW9uIGNoYW5nZVRleHQoZWwsIG5ld1RleHQpIHsKCS8vIFNhZmFyaSB3 b3JrIGFyb3VuZAoJaWYgKGVsLmlubmVyVGV4dCkgewoJCWVsLmlubmVyVGV4dCA9 IG5ld1RleHQ7Cgl9IGVsc2UgaWYgKGVsLmZpcnN0Q2hpbGQgJiYgZWwuZmlyc3RD aGlsZC5ub2RlVmFsdWUpIHsKCQllbC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IG5l d1RleHQ7Cgl9Cn0KCmZ1bmN0aW9uIHRvZ2dsZVRvYygpIHsKCXZhciB0b2MgPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9jJykuZ2V0RWxlbWVudHNCeVRhZ05h bWUoJ3VsJylbMF07Cgl2YXIgdG9nZ2xlTGluayA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCd0b2dnbGVsaW5rJyk7CgoJaWYgKHRvYyAmJiB0b2dnbGVMaW5rICYm IHRvYy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykgewoJCWNoYW5nZVRleHQodG9n Z2xlTGluaywgdG9jSGlkZVRleHQpOwoJCXRvYy5zdHlsZS5kaXNwbGF5ID0gJ2Js b2NrJzsKCQlkb2N1bWVudC5jb29raWUgPSAiaGlkZXRvYz0wIjsKCX0gZWxzZSB7 CgkJY2hhbmdlVGV4dCh0b2dnbGVMaW5rLCB0b2NTaG93VGV4dCk7CgkJdG9jLnN0 eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgkJZG9jdW1lbnQuY29va2llID0gImhpZGV0 b2M9MSI7Cgl9Cn0KCnZhciBtd0VkaXRCdXR0b25zID0gW107CnZhciBtd0N1c3Rv bUVkaXRCdXR0b25zID0gW107IC8vIGVnIHRvIGFkZCBpbiBNZWRpYVdpa2k6Q29t bW9uLmpzCgpmdW5jdGlvbiBlc2NhcGVRdW90ZXModGV4dCkgewoJdmFyIHJlID0g bmV3IFJlZ0V4cCgiJyIsImciKTsKCXRleHQgPSB0ZXh0LnJlcGxhY2UocmUsIlxc JyIpOwoJcmUgPSBuZXcgUmVnRXhwKCJcXG4iLCJnIik7Cgl0ZXh0ID0gdGV4dC5y ZXBsYWNlKHJlLCJcXG4iKTsKCXJldHVybiBlc2NhcGVRdW90ZXNIVE1MKHRleHQp Owp9CgpmdW5jdGlvbiBlc2NhcGVRdW90ZXNIVE1MKHRleHQpIHsKCXZhciByZSA9 IG5ldyBSZWdFeHAoJyYnLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCIm YW1wOyIpOwoJcmUgPSBuZXcgUmVnRXhwKCciJywiZyIpOwoJdGV4dCA9IHRleHQu cmVwbGFjZShyZSwiJnF1b3Q7Iik7CglyZSA9IG5ldyBSZWdFeHAoJzwnLCJnIik7 Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImbHQ7Iik7CglyZSA9IG5ldyBSZWdF eHAoJz4nLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImZ3Q7Iik7Cgly ZXR1cm4gdGV4dDsKfQoKCi8qKgogKiBTZXQgdGhlIGFjY2Vzc2tleSBwcmVmaXgg YmFzZWQgb24gYnJvd3NlciBkZXRlY3Rpb24uCiAqLwp2YXIgdG9vbHRpcEFjY2Vz c0tleVByZWZpeCA9ICdhbHQtJzsKaWYgKGlzX29wZXJhKSB7Cgl0b29sdGlwQWNj ZXNzS2V5UHJlZml4ID0gJ3NoaWZ0LWVzYy0nOwp9IGVsc2UgaWYgKCFpc19zYWZh cmlfd2luICYmIGlzX3NhZmFyaSAmJiB3ZWJraXRfdmVyc2lvbiA+IDUyNikgewoJ dG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9ICdjdHJsLWFsdC0nOwp9IGVsc2UgaWYg KCFpc19zYWZhcmlfd2luICYmIChpc19zYWZhcmkKCQl8fCBjbGllbnRQQy5pbmRl eE9mKCdtYWMnKSAhPSAtMQoJCXx8IGNsaWVudFBDLmluZGV4T2YoJ2tvbnF1ZXJv cicpICE9IC0xICkpIHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAnY3RybC0n Owp9IGVsc2UgaWYgKGlzX2ZmMikgewoJdG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9 ICdhbHQtc2hpZnQtJzsKfQp2YXIgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cCA9IC9c WyhjdHJsLSk/KGFsdC0pPyhzaGlmdC0pPyhlc2MtKT8oLilcXSQvOwoKLyoqCiAq IEFkZCB0aGUgYXBwcm9wcmlhdGUgcHJlZml4IHRvIHRoZSBhY2Nlc3NrZXkgc2hv d24gaW4gdGhlIHRvb2x0aXAuCiAqIElmIHRoZSBub2RlTGlzdCBwYXJhbWV0ZXIg aXMgZ2l2ZW4sIG9ubHkgdGhvc2Ugbm9kZXMgYXJlIHVwZGF0ZWQ7CiAqIG90aGVy d2lzZSwgYWxsIHRoZSBub2RlcyB0aGF0IHdpbGwgcHJvYmFibHkgaGF2ZSBhY2Nl c3NrZXlzIGJ5CiAqIGRlZmF1bHQgYXJlIHVwZGF0ZWQuCiAqCiAqIEBwYXJhbSBB cnJheSBub2RlTGlzdCAtLSBsaXN0IG9mIGVsZW1lbnRzIHRvIHVwZGF0ZQogKi8K ZnVuY3Rpb24gdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMoIG5vZGVMaXN0ICkgewoJ aWYgKCAhbm9kZUxpc3QgKSB7CgkJLy8gc2tpbnMgd2l0aG91dCBhICJjb2x1bW4t b25lIiBlbGVtZW50IGRvbid0IHNlZW0gdG8gaGF2ZSBsaW5rcyB3aXRoIGFjY2Vz c2tleXMgZWl0aGVyCgkJdmFyIGNvbHVtbk9uZSA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJjb2x1bW4tb25lIik7CgkJaWYgKCBjb2x1bW5PbmUgKQoJCQl1cGRh dGVUb29sdGlwQWNjZXNzS2V5cyggY29sdW1uT25lLmdldEVsZW1lbnRzQnlUYWdO YW1lKCJhIikgKTsKCQkvLyB0aGVzZSBhcmUgcmFyZSBlbm91Z2ggdGhhdCBubyBz dWNoIG9wdGltaXphdGlvbiBpcyBuZWVkZWQKCQl1cGRhdGVUb29sdGlwQWNjZXNz S2V5cyggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IikgKTsK CQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggZG9jdW1lbnQuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImxhYmVsIikgKTsKCQlyZXR1cm47Cgl9CgoJZm9yICggdmFyIGkg PSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKysgKSB7CgkJdmFyIGVsZW1lbnQg PSBub2RlTGlzdFtpXTsKCQl2YXIgdGlwID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUo InRpdGxlIik7CgkJaWYgKCB0aXAgJiYgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cC5l eGVjKHRpcCkgKSB7CgkJCXRpcCA9IHRpcC5yZXBsYWNlKHRvb2x0aXBBY2Nlc3NL ZXlSZWdleHAsCgkJCQkJICAiWyIrdG9vbHRpcEFjY2Vzc0tleVByZWZpeCsiJDVd Iik7CgkJCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRpcCApOwoJCX0K CX0KfQoKLyoqCiAqIEFkZCBhIGxpbmsgdG8gb25lIG9mIHRoZSBwb3J0bGV0IG1l bnVzIG9uIHRoZSBwYWdlLCBpbmNsdWRpbmc6CiAqCiAqIHAtY2FjdGlvbnM6IENv bnRlbnQgYWN0aW9ucyAoc2hvd24gYXMgdGFicyBhYm92ZSB0aGUgbWFpbiBjb250 ZW50IGluIE1vbm9ib29rKQogKiBwLXBlcnNvbmFsOiBQZXJzb25hbCB0b29scyAo c2hvd24gYXQgdGhlIHRvcCByaWdodCBvZiB0aGUgcGFnZSBpbiBNb25vYm9vaykK ICogcC1uYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uCiAqIHAtdGI6IFRvb2xib3gKICoK ICogVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRoZSBjb252ZW5pZW5jZSBvZiBj dXN0b20gSlMgYXV0aG9ycy4gIEFsbAogKiBidXQgdGhlIGZpcnN0IHRocmVlIHBh cmFtZXRlcnMgYXJlIG9wdGlvbmFsLCB0aG91Z2ggcHJvdmlkaW5nIGF0CiAqIGxl YXN0IGFuIGlkIGFuZCBhIHRvb2x0aXAgaXMgcmVjb21tZW5kZWQuCiAqCiAqIEJ5 IGRlZmF1bHQgdGhlIG5ldyBsaW5rIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGVuZCBv ZiB0aGUgbGlzdC4gIFRvCiAqIGFkZCB0aGUgbGluayBiZWZvcmUgYSBnaXZlbiBl eGlzdGluZyBpdGVtLCBwYXNzIHRoZSBET00gbm9kZSBvZgogKiB0aGF0IGl0ZW0g KGVhc2lseSBvYnRhaW5lZCB3aXRoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCkp IGFzIHRoZQogKiBuZXh0bm9kZSBwYXJhbWV0ZXI7IHRvIGFkZCB0aGUgbGluayBf YWZ0ZXJfIGFuIGV4aXN0aW5nIGl0ZW0sIHBhc3MKICogdGhlIG5vZGUncyBuZXh0 U2libGluZyBpbnN0ZWFkLgogKgogKiBAcGFyYW0gU3RyaW5nIHBvcnRsZXQgLS0g aWQgb2YgdGhlIHRhcmdldCBwb3J0bGV0ICgicC1jYWN0aW9ucyIsICJwLXBlcnNv bmFsIiwgInAtbmF2aWdhdGlvbiIgb3IgInAtdGIiKQogKiBAcGFyYW0gU3RyaW5n IGhyZWYgLS0gbGluayBVUkwKICogQHBhcmFtIFN0cmluZyB0ZXh0IC0tIGxpbmsg dGV4dCAod2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxvd2VyY2FzZWQgYnkgQ1NTIGZv ciBwLWNhY3Rpb25zIGluIE1vbm9ib29rKQogKiBAcGFyYW0gU3RyaW5nIGlkIC0t IGlkIG9mIHRoZSBuZXcgaXRlbSwgc2hvdWxkIGJlIHVuaXF1ZSBhbmQgcHJlZmVy YWJseSBoYXZlIHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggKCJjYS0iLCAicHQtIiwg Im4tIiBvciAidC0iKQogKiBAcGFyYW0gU3RyaW5nIHRvb2x0aXAgLS0gdGV4dCB0 byBzaG93IHdoZW4gaG92ZXJpbmcgb3ZlciB0aGUgbGluaywgd2l0aG91dCBhY2Nl c3NrZXkgc3VmZml4CiAqIEBwYXJhbSBTdHJpbmcgYWNjZXNza2V5IC0tIGFjY2Vz c2tleSB0byBhY3RpdmF0ZSB0aGlzIGxpbmsgKG9uZSBjaGFyYWN0ZXIsIHRyeSB0 byBhdm9pZCBjb25mbGljdHMpCiAqIEBwYXJhbSBOb2RlIG5leHRub2RlIC0tIHRo ZSBET00gbm9kZSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIHNob3VsZCBiZSBh ZGRlZCwgc2hvdWxkIGJlIGFub3RoZXIgaXRlbSBpbiB0aGUgc2FtZSBsaXN0CiAq CiAqIEByZXR1cm4gTm9kZSAtLSB0aGUgRE9NIG5vZGUgb2YgdGhlIG5ldyBpdGVt IChhbiBMSSBlbGVtZW50KSBvciBudWxsCiAqLwpmdW5jdGlvbiBhZGRQb3J0bGV0 TGluayhwb3J0bGV0LCBocmVmLCB0ZXh0LCBpZCwgdG9vbHRpcCwgYWNjZXNza2V5 LCBuZXh0bm9kZSkgewoJdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChwb3J0bGV0KTsKCWlmICggIW5vZGUgKSByZXR1cm4gbnVsbDsKCW5vZGUgPSBu b2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAidWwiIClbMF07CglpZiAoICFub2Rl ICkgcmV0dXJuIG51bGw7CgoJdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt ZW50KCAiYSIgKTsKCWxpbmsuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRl eHROb2RlKCB0ZXh0ICkgKTsKCWxpbmsuaHJlZiA9IGhyZWY7CgoJdmFyIGl0ZW0g PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAibGkiICk7CglpdGVtLmFwcGVuZENo aWxkKCBsaW5rICk7CglpZiAoIGlkICkgaXRlbS5pZCA9IGlkOwoKCWlmICggYWNj ZXNza2V5ICkgewoJCWxpbmsuc2V0QXR0cmlidXRlKCAiYWNjZXNza2V5IiwgYWNj ZXNza2V5ICk7CgkJdG9vbHRpcCArPSAiIFsiK2FjY2Vzc2tleSsiXSI7Cgl9Cglp ZiAoIHRvb2x0aXAgKSB7CgkJbGluay5zZXRBdHRyaWJ1dGUoICJ0aXRsZSIsIHRv b2x0aXAgKTsKCX0KCWlmICggYWNjZXNza2V5ICYmIHRvb2x0aXAgKSB7CgkJdXBk YXRlVG9vbHRpcEFjY2Vzc0tleXMoIG5ldyBBcnJheSggbGluayApICk7Cgl9CgoJ aWYgKCBuZXh0bm9kZSAmJiBuZXh0bm9kZS5wYXJlbnROb2RlID09IG5vZGUgKQoJ CW5vZGUuaW5zZXJ0QmVmb3JlKCBpdGVtLCBuZXh0bm9kZSApOwoJZWxzZQoJCW5v ZGUuYXBwZW5kQ2hpbGQoIGl0ZW0gKTsgIC8vIElFIGNvbXBhdGliaWxpdHkgKD8p CgoJcmV0dXJuIGl0ZW07Cn0KCgovKioKICogU2V0IHVwIGFjY2Vzc2tleXMvdG9v bHRpcHMgZnJvbSB0aGUgZGVwcmVjYXRlZCB0YSBhcnJheS4gIElmIGRvSWQKICog aXMgc3BlY2lmaWVkLCBvbmx5IHNldCB1cCBmb3IgdGhhdCBpZC4gIE5vdGUgdGhh dCB0aGlzIGZ1bmN0aW9uIGlzCiAqIGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IGJl IHN1cHBvcnRlZCBpbmRlZmluaXRlbHkgLS0gdXNlCiAqIHVwZGF0ZVRvb2x0aXBB Y2Nlc3NLZXkoKSBpbnN0ZWFkLgogKgogKiBAcGFyYW0gbWl4ZWQgZG9JZCBzdHJp bmcgb3IgbnVsbAogKi8KZnVuY3Rpb24gYWtleXR0KCBkb0lkICkgewoJLy8gQSBs b3Qgb2YgdXNlciBzY3JpcHRzIChhbmQgc29tZSBvZiB0aGUgY29kZSBiZWxvdykg YnJlYWsgaWYKCS8vIHRhIGlzbid0IGRlZmluZWQsIHNvIHdlIG1ha2Ugc3VyZSBp dCBpcy4gIEV4cGxpY3RseSB1c2luZwoJLy8gd2luZG93LnRhIGF2b2lkcyBhICJ0 YSBpcyBub3QgZGVmaW5lZCIgZXJyb3IuCglpZiAoIXdpbmRvdy50YSkgd2luZG93 LnRhID0gbmV3IEFycmF5OwoKCS8vIE1ha2UgYSBsb2NhbCwgcG9zc2libHkgcmVz dHJpY3RlZCwgY29weSB0byBhdm9pZCBjbG9iYmVyaW5nCgkvLyB0aGUgb3JpZ2lu YWwuCgl2YXIgdGE7CglpZiAoIGRvSWQgKSB7CgkJdGEgPSBbZG9JZF07Cgl9IGVs c2UgewoJCXRhID0gd2luZG93LnRhOwoJfQoKCS8vIE5vdyBkZWFsIHdpdGggZXZp bCBkZXByZWNhdGVkIHRhCgl2YXIgd2F0Y2hDaGVja2JveEV4aXN0cyA9IGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCAnd3BXYXRjaHRoaXMnICkgPyB0cnVlIDogZmFs c2U7Cglmb3IgKHZhciBpZCBpbiB0YSkgewoJCXZhciBuID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoaWQpOwoJCWlmIChuKSB7CgkJCXZhciBhID0gbnVsbDsKCQkJ dmFyIGFrID0gJyc7CgkJCS8vIEFyZSB3ZSBwdXR0aW5nIGFjY2Vzc2tleSBpbiBp dAoJCQlpZiAodGFbaWRdWzBdLmxlbmd0aCA+IDApIHsKCQkJCS8vIElzIHRoaXMg b2JqZWN0IGEgb2JqZWN0PyBJZiBub3QgYXNzdW1lIGl0J3MgdGhlIG5leHQgY2hp bGQuCgoJCQkJaWYgKG4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PSAiYSIpIHsK CQkJCQlhID0gbjsKCQkJCX0gZWxzZSB7CgkJCQkJYSA9IG4uY2hpbGROb2Rlc1sw XTsKCQkJCX0KCQkJIAkvLyBEb24ndCBhZGQgYW4gYWNjZXNza2V5IGZvciB0aGUg d2F0Y2ggdGFiIGlmIHRoZSB3YXRjaAoJCQkgCS8vIGNoZWNrYm94IGlzIGFsc28g YXZhaWxhYmxlLgoJCQkJaWYgKGEgJiYgKChpZCAhPSAnY2Etd2F0Y2gnICYmIGlk ICE9ICdjYS11bndhdGNoJykgfHwgIXdhdGNoQ2hlY2tib3hFeGlzdHMpKSB7CgkJ CQkJYS5hY2Nlc3NLZXkgPSB0YVtpZF1bMF07CgkJCQkJYWsgPSAnIFsnK3Rvb2x0 aXBBY2Nlc3NLZXlQcmVmaXgrdGFbaWRdWzBdKyddJzsKCQkJCX0KCQkJfSBlbHNl IHsKCQkJCS8vIFdlIGRvbid0IGNhcmUgd2hhdCB0eXBlIHRoZSBvYmplY3QgaXMg d2hlbiBhc3NpZ25pbmcgdG9vbHRpcAoJCQkJYSA9IG47CgkJCQlhayA9ICcnOwoJ CQl9CgoJCQlpZiAoYSkgewoJCQkJYS50aXRsZSA9IHRhW2lkXVsxXSthazsKCQkJ fQoJCX0KCX0KfQoKdmFyIGNoZWNrYm94ZXM7CnZhciBsYXN0Q2hlY2tib3g7Cgpm dW5jdGlvbiBzZXR1cENoZWNrYm94U2hpZnRDbGljaygpIHsKCWNoZWNrYm94ZXMg PSBbXTsKCWxhc3RDaGVja2JveCA9IG51bGw7Cgl2YXIgaW5wdXRzID0gZG9jdW1l bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7CglhZGRDaGVja2JveENs aWNrSGFuZGxlcnMoaW5wdXRzKTsKfQoKZnVuY3Rpb24gYWRkQ2hlY2tib3hDbGlj a0hhbmRsZXJzKGlucHV0cywgc3RhcnQpIHsKCWlmICggIXN0YXJ0KSBzdGFydCA9 IDA7CgoJdmFyIGZpbmlzaCA9IHN0YXJ0ICsgMjUwOwoJaWYgKCBmaW5pc2ggPiBp bnB1dHMubGVuZ3RoICkKCQlmaW5pc2ggPSBpbnB1dHMubGVuZ3RoOwoKCWZvciAo IHZhciBpID0gc3RhcnQ7IGkgPCBmaW5pc2g7IGkrKyApIHsKCQl2YXIgY2IgPSBp bnB1dHNbaV07CgkJaWYgKCAhY2IudHlwZSB8fCBjYi50eXBlLnRvTG93ZXJDYXNl KCkgIT0gJ2NoZWNrYm94JyApCgkJCWNvbnRpbnVlOwoJCXZhciBlbmQgPSBjaGVj a2JveGVzLmxlbmd0aDsKCQljaGVja2JveGVzW2VuZF0gPSBjYjsKCQljYi5pbmRl eCA9IGVuZDsKCQljYi5vbmNsaWNrID0gY2hlY2tib3hDbGlja0hhbmRsZXI7Cgl9 CgoJaWYgKCBmaW5pc2ggPCBpbnB1dHMubGVuZ3RoICkgewoJCXNldFRpbWVvdXQo IGZ1bmN0aW9uICgpIHsKCQkJYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKGlucHV0 cywgZmluaXNoKTsKCQl9LCAyMDAgKTsKCX0KfQoKZnVuY3Rpb24gY2hlY2tib3hD bGlja0hhbmRsZXIoZSkgewoJaWYgKHR5cGVvZiBlID09ICd1bmRlZmluZWQnKSB7 CgkJZSA9IHdpbmRvdy5ldmVudDsKCX0KCWlmICggIWUuc2hpZnRLZXkgfHwgbGFz dENoZWNrYm94ID09PSBudWxsICkgewoJCWxhc3RDaGVja2JveCA9IHRoaXMuaW5k ZXg7CgkJcmV0dXJuIHRydWU7Cgl9Cgl2YXIgZW5kU3RhdGUgPSB0aGlzLmNoZWNr ZWQ7Cgl2YXIgc3RhcnQsIGZpbmlzaDsKCWlmICggdGhpcy5pbmRleCA8IGxhc3RD aGVja2JveCApIHsKCQlzdGFydCA9IHRoaXMuaW5kZXggKyAxOwoJCWZpbmlzaCA9 IGxhc3RDaGVja2JveDsKCX0gZWxzZSB7CgkJc3RhcnQgPSBsYXN0Q2hlY2tib3g7 CgkJZmluaXNoID0gdGhpcy5pbmRleCAtIDE7Cgl9Cglmb3IgKHZhciBpID0gc3Rh cnQ7IGkgPD0gZmluaXNoOyArK2kgKSB7CgkJY2hlY2tib3hlc1tpXS5jaGVja2Vk ID0gZW5kU3RhdGU7Cgl9CglsYXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4OwoJcmV0 dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHRvZ2dsZV9lbGVtZW50X2FjdGl2YXRpb24o aWRhLGlkYikgewoJaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkgewoJCXJl dHVybjsKCX0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkYSkuZGlzYWJsZWQ9 dHJ1ZTsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkYikuZGlzYWJsZWQ9ZmFs c2U7Cn0KCmZ1bmN0aW9uIHRvZ2dsZV9lbGVtZW50X2NoZWNrKGlkYSxpZGIpIHsK CWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpIHsKCQlyZXR1cm47Cgl9Cglk b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGEpLmNoZWNrZWQ9dHJ1ZTsKCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGlkYikuY2hlY2tlZD1mYWxzZTsKfQoKLyoKCVdy aXR0ZW4gYnkgSm9uYXRoYW4gU25vb2ssIGh0dHA6Ly93d3cuc25vb2suY2Evam9u YXRoYW4KCUFkZC1vbnMgYnkgUm9iZXJ0IE55bWFuLCBodHRwOi8vd3d3LnJvYmVy dG55bWFuLmNvbQoJQXV0aG9yIHNheXMgIlRoZSBjcmVkaXQgY29tbWVudCBpcyBh bGwgaXQgdGFrZXMsIG5vIGxpY2Vuc2UuIEdvIGNyYXp5IHdpdGggaXQhOi0pIgoJ RnJvbSBodHRwOi8vd3d3LnJvYmVydG55bWFuLmNvbS8yMDA1LzExLzA3L3RoZS11 bHRpbWF0ZS1nZXRlbGVtZW50c2J5Y2xhc3NuYW1lLwoqLwpmdW5jdGlvbiBnZXRF bGVtZW50c0J5Q2xhc3NOYW1lKG9FbG0sIHN0clRhZ05hbWUsIG9DbGFzc05hbWVz KXsKCXZhciBhcnJFbGVtZW50cyA9IChzdHJUYWdOYW1lID09ICIqIiAmJiBvRWxt LmFsbCk/IG9FbG0uYWxsIDogb0VsbS5nZXRFbGVtZW50c0J5VGFnTmFtZShzdHJU YWdOYW1lKTsKCXZhciBhcnJSZXR1cm5FbGVtZW50cyA9IG5ldyBBcnJheSgpOwoJ dmFyIGFyclJlZ0V4cENsYXNzTmFtZXMgPSBuZXcgQXJyYXkoKTsKCWlmKHR5cGVv ZiBvQ2xhc3NOYW1lcyA9PSAib2JqZWN0Iil7CgkJZm9yKHZhciBpPTA7IGk8b0Ns YXNzTmFtZXMubGVuZ3RoOyBpKyspewoJCQlhcnJSZWdFeHBDbGFzc05hbWVzW2Fy clJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCQluZXcgUmVnRXhwKCIoXnxc XHMpIiArIG9DbGFzc05hbWVzW2ldLnJlcGxhY2UoL1wtL2csICJcXC0iKSArICIo XFxzfCQpIik7CgkJfQoJfQoJZWxzZXsKCQlhcnJSZWdFeHBDbGFzc05hbWVzW2Fy clJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCW5ldyBSZWdFeHAoIihefFxc cykiICsgb0NsYXNzTmFtZXMucmVwbGFjZSgvXC0vZywgIlxcLSIpICsgIihcXHN8 JCkiKTsKCX0KCXZhciBvRWxlbWVudDsKCXZhciBiTWF0Y2hlc0FsbDsKCWZvcih2 YXIgaj0wOyBqPGFyckVsZW1lbnRzLmxlbmd0aDsgaisrKXsKCQlvRWxlbWVudCA9 IGFyckVsZW1lbnRzW2pdOwoJCWJNYXRjaGVzQWxsID0gdHJ1ZTsKCQlmb3IodmFy IGs9MDsgazxhcnJSZWdFeHBDbGFzc05hbWVzLmxlbmd0aDsgaysrKXsKCQkJaWYo IWFyclJlZ0V4cENsYXNzTmFtZXNba10udGVzdChvRWxlbWVudC5jbGFzc05hbWUp KXsKCQkJCWJNYXRjaGVzQWxsID0gZmFsc2U7CgkJCQlicmVhazsKCQkJfQoJCX0K CQlpZihiTWF0Y2hlc0FsbCl7CgkJCWFyclJldHVybkVsZW1lbnRzW2FyclJldHVy bkVsZW1lbnRzLmxlbmd0aF0gPSBvRWxlbWVudDsKCQl9Cgl9CglyZXR1cm4gKGFy clJldHVybkVsZW1lbnRzKQp9CgpmdW5jdGlvbiByZWRpcmVjdFRvRnJhZ21lbnQo ZnJhZ21lbnQpIHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0 Y2goL0FwcGxlV2ViS2l0XC8oXGQrKS8pOwoJaWYgKG1hdGNoKSB7CgkJdmFyIHdl YktpdFZlcnNpb24gPSBwYXJzZUludChtYXRjaFsxXSk7CgkJaWYgKHdlYktpdFZl cnNpb24gPCA0MjApIHsKCQkJLy8gUmVsZWFzZWQgU2FmYXJpIHcvIFdlYktpdCA0 MTguOS4xIG1lc3NlcyB1cCBob3JyaWJseQoJCQkvLyBOaWdodGxpZXMgb2YgNDIw KyBhcmUgb2sKCQkJcmV0dXJuOwoJCX0KCX0KCWlmIChpc19nZWNrbykgewoJCS8v IE1vemlsbGEgbmVlZHMgdG8gd2FpdCB1bnRpbCBhZnRlciBsb2FkLCBvdGhlcndp c2UgdGhlIHdpbmRvdyBkb2Vzbid0IHNjcm9sbAoJCWFkZE9ubG9hZEhvb2soZnVu Y3Rpb24gKCkgewoJCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0gIiIpCgkJ CQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGZyYWdtZW50OwoJCX0pOwoJfSBlbHNl IHsKCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0gIiIpCgkJCXdpbmRvdy5s b2NhdGlvbi5oYXNoID0gZnJhZ21lbnQ7Cgl9Cn0KCi8qCiAqIFRhYmxlIHNvcnRp bmcgc2NyaXB0IGJhc2VkIG9uIG9uZSAoYykgMTk5Ny0yMDA2IFN0dWFydCBMYW5n cmlkZ2UgYW5kIEpvb3N0CiAqIGRlIFZhbGs6CiAqIGh0dHA6Ly93d3cuam9vc3Rk ZXZhbGsubmwvY29kZS9zb3J0YWJsZS10YWJsZS8KICogaHR0cDovL3d3dy5rcnlv Z2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFibGUvCiAqCiAqIEB0b2RvIGRv bid0IGJyZWFrIG9uIGNvbHNwYW5zL3Jvd3NwYW5zIChidWcgODAyOCkKICogQHRv ZG8gbGFuZ3VhZ2Utc3BlY2lmaWMgZGlnaXQgZ3JvdXBpbmcvZGVjaW1hbHMgKGJ1 ZyA4MDYzKQogKiBAdG9kbyBzdXBwb3J0IGFsbCBhY2NlcHRlZCBkYXRlIGZvcm1h dHMgKGJ1ZyA4MjI2KQogKi8KCnZhciB0c19pbWFnZV9wYXRoID0gc3R5bGVwYXRo KyIvY29tbW9uL2ltYWdlcy8iOwp2YXIgdHNfaW1hZ2VfdXAgPSAic29ydF91cC5n aWYiOwp2YXIgdHNfaW1hZ2VfZG93biA9ICJzb3J0X2Rvd24uZ2lmIjsKdmFyIHRz X2ltYWdlX25vbmUgPSAic29ydF9ub25lLmdpZiI7CnZhciB0c19ldXJvcGVhbmRh dGUgPSB3Z0NvbnRlbnRMYW5ndWFnZSAhPSAiZW4iOyAvLyBUaGUgbm9uLUFtZXJp Y2FuLWluY2xpbmVkIGNhbiBjaGFuZ2UgdG8gInRydWUiCnZhciB0c19hbHRlcm5h dGVfcm93X2NvbG9ycyA9IHRydWU7CnZhciBTT1JUX0NPTFVNTl9JTkRFWDsKCmZ1 bmN0aW9uIHNvcnRhYmxlc19pbml0KCkgewoJdmFyIGlkbnVtID0gMDsKCS8vIEZp bmQgYWxsIHRhYmxlcyB3aXRoIGNsYXNzIHNvcnRhYmxlIGFuZCBtYWtlIHRoZW0g c29ydGFibGUKCXZhciB0YWJsZXMgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGRv Y3VtZW50LCAidGFibGUiLCAic29ydGFibGUiKTsKCWZvciAodmFyIHRpID0gMDsg dGkgPCB0YWJsZXMubGVuZ3RoIDsgdGkrKykgewoJCWlmICghdGFibGVzW3RpXS5p ZCkgewoJCQl0YWJsZXNbdGldLnNldEF0dHJpYnV0ZSgnaWQnLCdzb3J0YWJsZV90 YWJsZV9pZF8nK2lkbnVtKTsKCQkJKytpZG51bTsKCQl9CgkJdHNfbWFrZVNvcnRh YmxlKHRhYmxlc1t0aV0pOwoJfQp9CgpmdW5jdGlvbiB0c19tYWtlU29ydGFibGUo dGFibGUpIHsKCXZhciBmaXJzdFJvdzsKCWlmICh0YWJsZS5yb3dzICYmIHRhYmxl LnJvd3MubGVuZ3RoID4gMCkgewoJCWlmICh0YWJsZS50SGVhZCAmJiB0YWJsZS50 SGVhZC5yb3dzLmxlbmd0aCA+IDApIHsKCQkJZmlyc3RSb3cgPSB0YWJsZS50SGVh ZC5yb3dzW3RhYmxlLnRIZWFkLnJvd3MubGVuZ3RoLTFdOwoJCX0gZWxzZSB7CgkJ CWZpcnN0Um93ID0gdGFibGUucm93c1swXTsKCQl9Cgl9CglpZiAoIWZpcnN0Um93 KSByZXR1cm47CgoJLy8gV2UgaGF2ZSBhIGZpcnN0IHJvdzogYXNzdW1lIGl0J3Mg dGhlIGhlYWRlciwgYW5kIG1ha2UgaXRzIGNvbnRlbnRzIGNsaWNrYWJsZSBsaW5r cwoJZm9yICh2YXIgaSA9IDA7IGkgPCBmaXJzdFJvdy5jZWxscy5sZW5ndGg7IGkr KykgewoJCXZhciBjZWxsID0gZmlyc3RSb3cuY2VsbHNbaV07CgkJaWYgKCgiICIr Y2VsbC5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgdW5zb3J0YWJsZSAiKSA9PSAt MSkgewoJCQljZWxsLmlubmVySFRNTCArPSAnJm5ic3A7Jm5ic3A7PGEgaHJlZj0i IyIgY2xhc3M9InNvcnRoZWFkZXIiIG9uY2xpY2s9InRzX3Jlc29ydFRhYmxlKHRo aXMpO3JldHVybiBmYWxzZTsiPjxzcGFuIGNsYXNzPSJzb3J0YXJyb3ciPjxpbWcg c3JjPSInKyB0c19pbWFnZV9wYXRoICsgdHNfaW1hZ2Vfbm9uZSArICciIGFsdD0i JmRhcnI7Ii8+PC9zcGFuPjwvYT4nOwoJCX0KCX0KCWlmICh0c19hbHRlcm5hdGVf cm93X2NvbG9ycykgewoJCXRzX2FsdGVybmF0ZSh0YWJsZSk7Cgl9Cn0KCmZ1bmN0 aW9uIHRzX2dldElubmVyVGV4dChlbCkgewoJaWYgKHR5cGVvZiBlbCA9PSAic3Ry aW5nIikgcmV0dXJuIGVsOwoJaWYgKHR5cGVvZiBlbCA9PSAidW5kZWZpbmVkIikg eyByZXR1cm4gZWwgfTsKCWlmIChlbC50ZXh0Q29udGVudCkgcmV0dXJuIGVsLnRl eHRDb250ZW50OyAvLyBub3QgbmVlZGVkIGJ1dCBpdCBpcyBmYXN0ZXIKCWlmIChl bC5pbm5lclRleHQpIHJldHVybiBlbC5pbm5lclRleHQ7ICAgICAvLyBJRSBkb2Vz bid0IGhhdmUgdGV4dENvbnRlbnQKCXZhciBzdHIgPSAiIjsKCgl2YXIgY3MgPSBl bC5jaGlsZE5vZGVzOwoJdmFyIGwgPSBjcy5sZW5ndGg7Cglmb3IgKHZhciBpID0g MDsgaSA8IGw7IGkrKykgewoJCXN3aXRjaCAoY3NbaV0ubm9kZVR5cGUpIHsKCQkJ Y2FzZSAxOiAvL0VMRU1FTlRfTk9ERQoJCQkJc3RyICs9IHRzX2dldElubmVyVGV4 dChjc1tpXSk7CgkJCQlicmVhazsKCQkJY2FzZSAzOgkvL1RFWFRfTk9ERQoJCQkJ c3RyICs9IGNzW2ldLm5vZGVWYWx1ZTsKCQkJCWJyZWFrOwoJCX0KCX0KCXJldHVy biBzdHI7Cn0KCmZ1bmN0aW9uIHRzX3Jlc29ydFRhYmxlKGxuaykgewoJLy8gZ2V0 IHRoZSBzcGFuCgl2YXIgc3BhbiA9IGxuay5nZXRFbGVtZW50c0J5VGFnTmFtZSgn c3BhbicpWzBdOwoKCXZhciB0ZCA9IGxuay5wYXJlbnROb2RlOwoJdmFyIHRyID0g dGQucGFyZW50Tm9kZTsKCXZhciBjb2x1bW4gPSB0ZC5jZWxsSW5kZXg7CgoJdmFy IHRhYmxlID0gdHIucGFyZW50Tm9kZTsKCXdoaWxlICh0YWJsZSAmJiAhKHRhYmxl LnRhZ05hbWUgJiYgdGFibGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICd0YWJs ZScpKQoJCXRhYmxlID0gdGFibGUucGFyZW50Tm9kZTsKCWlmICghdGFibGUpIHJl dHVybjsKCgkvLyBXb3JrIG91dCBhIHR5cGUgZm9yIHRoZSBjb2x1bW4KCWlmICh0 YWJsZS5yb3dzLmxlbmd0aCA8PSAxKSByZXR1cm47CgoJLy8gU2tpcCB0aGUgZmly c3Qgcm93IGlmIHRoYXQncyB3aGVyZSB0aGUgaGVhZGluZ3MgYXJlCgl2YXIgcm93 U3RhcnQgPSAodGFibGUudEhlYWQgJiYgdGFibGUudEhlYWQucm93cy5sZW5ndGgg PiAwID8gMCA6IDEpOwoKCXZhciBpdG0gPSAiIjsKCWZvciAodmFyIGkgPSByb3dT dGFydDsgaSA8IHRhYmxlLnJvd3MubGVuZ3RoOyBpKyspIHsKCQlpZiAodGFibGUu cm93c1tpXS5jZWxscy5sZW5ndGggPiBjb2x1bW4pIHsKCQkJaXRtID0gdHNfZ2V0 SW5uZXJUZXh0KHRhYmxlLnJvd3NbaV0uY2VsbHNbY29sdW1uXSk7CgkJCWl0bSA9 IGl0bS5yZXBsYWNlKC9eW1xzXHhhMF0rLywgIiIpLnJlcGxhY2UoL1tcc1x4YTBd KyQvLCAiIik7CgkJCWlmIChpdG0gIT0gIiIpIGJyZWFrOwoJCX0KCX0KCglzb3J0 Zm4gPSB0c19zb3J0X2Nhc2VpbnNlbnNpdGl2ZTsKCWlmIChpdG0ubWF0Y2goL15c ZFxkW1wvLiAtXVthLXpBLVpdezN9W1wvLiAtXVxkXGRcZFxkJC8pKQoJCXNvcnRm biA9IHRzX3NvcnRfZGF0ZTsKCWlmIChpdG0ubWF0Y2goL15cZFxkW1wvLi1dXGRc ZFtcLy4tXVxkXGRcZFxkJC8pKQoJCXNvcnRmbiA9IHRzX3NvcnRfZGF0ZTsKCWlm IChpdG0ubWF0Y2goL15cZFxkW1wvLi1dXGRcZFtcLy4tXVxkXGQkLykpCgkJc29y dGZuID0gdHNfc29ydF9kYXRlOwoJaWYgKGl0bS5tYXRjaCgvXltcdTAwYTMkXHUy MGFjXS8pKSAvLyBwb3VuZCBkb2xsYXIgZXVybwoJCXNvcnRmbiA9IHRzX3NvcnRf Y3VycmVuY3k7CglpZiAoaXRtLm1hdGNoKC9eW1xkLixdK1wlPyQvKSkKCQlzb3J0 Zm4gPSB0c19zb3J0X251bWVyaWM7CgoJdmFyIHJldmVyc2UgPSAoc3Bhbi5nZXRB dHRyaWJ1dGUoInNvcnRkaXIiKSA9PSAnZG93bicpOwoKCXZhciBuZXdSb3dzID0g bmV3IEFycmF5KCk7Cglmb3IgKHZhciBqID0gcm93U3RhcnQ7IGogPCB0YWJsZS5y b3dzLmxlbmd0aDsgaisrKSB7CgkJdmFyIHJvdyA9IHRhYmxlLnJvd3Nbal07CgkJ dmFyIGtleVRleHQgPSB0c19nZXRJbm5lclRleHQocm93LmNlbGxzW2NvbHVtbl0p OwoJCXZhciBvbGRJbmRleCA9IChyZXZlcnNlID8gLWogOiBqKTsKCgkJbmV3Um93 c1tuZXdSb3dzLmxlbmd0aF0gPSBuZXcgQXJyYXkocm93LCBrZXlUZXh0LCBvbGRJ bmRleCk7Cgl9CgoJbmV3Um93cy5zb3J0KHNvcnRmbik7CgoJdmFyIGFycm93SFRN TDsKCWlmIChyZXZlcnNlKSB7CgkJCWFycm93SFRNTCA9ICc8aW1nIHNyYz0iJysg dHNfaW1hZ2VfcGF0aCArIHRzX2ltYWdlX2Rvd24gKyAnIiBhbHQ9IiZkYXJyOyIv Pic7CgkJCW5ld1Jvd3MucmV2ZXJzZSgpOwoJCQlzcGFuLnNldEF0dHJpYnV0ZSgn c29ydGRpcicsJ3VwJyk7Cgl9IGVsc2UgewoJCQlhcnJvd0hUTUwgPSAnPGltZyBz cmM9IicrIHRzX2ltYWdlX3BhdGggKyB0c19pbWFnZV91cCArICciIGFsdD0iJnVh cnI7Ii8+JzsKCQkJc3Bhbi5zZXRBdHRyaWJ1dGUoJ3NvcnRkaXInLCdkb3duJyk7 Cgl9CgoJLy8gV2UgYXBwZW5kQ2hpbGQgcm93cyB0aGF0IGFscmVhZHkgZXhpc3Qg dG8gdGhlIHRib2R5LCBzbyBpdCBtb3ZlcyB0aGVtIHJhdGhlciB0aGFuIGNyZWF0 aW5nIG5ldyBvbmVzCgkvLyBkb24ndCBkbyBzb3J0Ym90dG9tIHJvd3MKCWZvciAo dmFyIGkgPSAwOyBpIDwgbmV3Um93cy5sZW5ndGg7IGkrKykgewoJCWlmICgoIiAi K25ld1Jvd3NbaV1bMF0uY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiIHNvcnRib3R0 b20gIikgPT0gLTEpCgkJCXRhYmxlLnRCb2RpZXNbMF0uYXBwZW5kQ2hpbGQobmV3 Um93c1tpXVswXSk7Cgl9CgkvLyBkbyBzb3J0Ym90dG9tIHJvd3Mgb25seQoJZm9y ICh2YXIgaSA9IDA7IGkgPCBuZXdSb3dzLmxlbmd0aDsgaSsrKSB7CgkJaWYgKCgi ICIrbmV3Um93c1tpXVswXS5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgc29ydGJv dHRvbSAiKSAhPSAtMSkKCQkJdGFibGUudEJvZGllc1swXS5hcHBlbmRDaGlsZChu ZXdSb3dzW2ldWzBdKTsKCX0KCgkvLyBEZWxldGUgYW55IG90aGVyIGFycm93cyB0 aGVyZSBtYXkgYmUgc2hvd2luZwoJdmFyIHNwYW5zID0gZ2V0RWxlbWVudHNCeUNs YXNzTmFtZSh0ciwgInNwYW4iLCAic29ydGFycm93Iik7Cglmb3IgKHZhciBpID0g MDsgaSA8IHNwYW5zLmxlbmd0aDsgaSsrKSB7CgkJc3BhbnNbaV0uaW5uZXJIVE1M ID0gJzxpbWcgc3JjPSInKyB0c19pbWFnZV9wYXRoICsgdHNfaW1hZ2Vfbm9uZSAr ICciIGFsdD0iJmRhcnI7Ii8+JzsKCX0KCXNwYW4uaW5uZXJIVE1MID0gYXJyb3dI VE1MOwoKCXRzX2FsdGVybmF0ZSh0YWJsZSk7CQkKfQoKZnVuY3Rpb24gdHNfZGF0 ZVRvU29ydEtleShkYXRlKSB7CQoJLy8geTJrIG5vdGVzOiB0d28gZGlnaXQgeWVh cnMgbGVzcyB0aGFuIDUwIGFyZSB0cmVhdGVkIGFzIDIwWFgsIGdyZWF0ZXIgdGhh biA1MCBhcmUgdHJlYXRlZCBhcyAxOVhYCglpZiAoZGF0ZS5sZW5ndGggPT0gMTEp IHsKCQlzd2l0Y2ggKGRhdGUuc3Vic3RyKDMsMykudG9Mb3dlckNhc2UoKSkgewoJ CQljYXNlICJqYW4iOiB2YXIgbW9udGggPSAiMDEiOyBicmVhazsKCQkJY2FzZSAi ZmViIjogdmFyIG1vbnRoID0gIjAyIjsgYnJlYWs7CgkJCWNhc2UgIm1hciI6IHZh ciBtb250aCA9ICIwMyI7IGJyZWFrOwoJCQljYXNlICJhcHIiOiB2YXIgbW9udGgg PSAiMDQiOyBicmVhazsKCQkJY2FzZSAibWF5IjogdmFyIG1vbnRoID0gIjA1Ijsg YnJlYWs7CgkJCWNhc2UgImp1biI6IHZhciBtb250aCA9ICIwNiI7IGJyZWFrOwoJ CQljYXNlICJqdWwiOiB2YXIgbW9udGggPSAiMDciOyBicmVhazsKCQkJY2FzZSAi YXVnIjogdmFyIG1vbnRoID0gIjA4IjsgYnJlYWs7CgkJCWNhc2UgInNlcCI6IHZh ciBtb250aCA9ICIwOSI7IGJyZWFrOwoJCQljYXNlICJvY3QiOiB2YXIgbW9udGgg PSAiMTAiOyBicmVhazsKCQkJY2FzZSAibm92IjogdmFyIG1vbnRoID0gIjExIjsg YnJlYWs7CgkJCWNhc2UgImRlYyI6IHZhciBtb250aCA9ICIxMiI7IGJyZWFrOwoJ CQkvLyBkZWZhdWx0OiB2YXIgbW9udGggPSAiMDAiOwoJCX0KCQlyZXR1cm4gZGF0 ZS5zdWJzdHIoNyw0KSttb250aCtkYXRlLnN1YnN0cigwLDIpOwoJfSBlbHNlIGlm IChkYXRlLmxlbmd0aCA9PSAxMCkgewoJCWlmICh0c19ldXJvcGVhbmRhdGUgPT0g ZmFsc2UpIHsKCQkJcmV0dXJuIGRhdGUuc3Vic3RyKDYsNCkrZGF0ZS5zdWJzdHIo MCwyKStkYXRlLnN1YnN0cigzLDIpOwoJCX0gZWxzZSB7CgkJCXJldHVybiBkYXRl LnN1YnN0cig2LDQpK2RhdGUuc3Vic3RyKDMsMikrZGF0ZS5zdWJzdHIoMCwyKTsK CQl9Cgl9IGVsc2UgaWYgKGRhdGUubGVuZ3RoID09IDgpIHsKCQl5ciA9IGRhdGUu c3Vic3RyKDYsMik7CgkJaWYgKHBhcnNlSW50KHlyKSA8IDUwKSB7IAoJCQl5ciA9 ICcyMCcreXI7IAoJCX0gZWxzZSB7IAoJCQl5ciA9ICcxOScreXI7IAoJCX0KCQlp ZiAodHNfZXVyb3BlYW5kYXRlID09IHRydWUpIHsKCQkJcmV0dXJuIHlyK2RhdGUu c3Vic3RyKDMsMikrZGF0ZS5zdWJzdHIoMCwyKTsKCQl9IGVsc2UgewoJCQlyZXR1 cm4geXIrZGF0ZS5zdWJzdHIoMCwyKStkYXRlLnN1YnN0cigzLDIpOwoJCX0KCX0K CXJldHVybiAiMDAwMDAwMDAiOwp9CgpmdW5jdGlvbiB0c19wYXJzZUZsb2F0KG51 bSkgewoJaWYgKCFudW0pIHJldHVybiAwOwoJbnVtID0gcGFyc2VGbG9hdChudW0u cmVwbGFjZSgvLC9nLCAiIikpOwoJcmV0dXJuIChpc05hTihudW0pID8gMCA6IG51 bSk7Cn0KCmZ1bmN0aW9uIHRzX3NvcnRfZGF0ZShhLGIpIHsKCXZhciBhYSA9IHRz X2RhdGVUb1NvcnRLZXkoYVsxXSk7Cgl2YXIgYmIgPSB0c19kYXRlVG9Tb3J0S2V5 KGJbMV0pOwoJcmV0dXJuIChhYSA8IGJiID8gLTEgOiBhYSA+IGJiID8gMSA6IGFb Ml0gLSBiWzJdKTsKfQoKZnVuY3Rpb24gdHNfc29ydF9jdXJyZW5jeShhLGIpIHsK CXZhciBhYSA9IHRzX3BhcnNlRmxvYXQoYVsxXS5yZXBsYWNlKC9bXjAtOS5dL2cs JycpKTsKCXZhciBiYiA9IHRzX3BhcnNlRmxvYXQoYlsxXS5yZXBsYWNlKC9bXjAt OS5dL2csJycpKTsKCXJldHVybiAoYWEgIT0gYmIgPyBhYSAtIGJiIDogYVsyXSAt IGJbMl0pOwp9CgpmdW5jdGlvbiB0c19zb3J0X251bWVyaWMoYSxiKSB7Cgl2YXIg YWEgPSB0c19wYXJzZUZsb2F0KGFbMV0pOwoJdmFyIGJiID0gdHNfcGFyc2VGbG9h dChiWzFdKTsKCXJldHVybiAoYWEgIT0gYmIgPyBhYSAtIGJiIDogYVsyXSAtIGJb Ml0pOwp9CgpmdW5jdGlvbiB0c19zb3J0X2Nhc2VpbnNlbnNpdGl2ZShhLGIpIHsK CXZhciBhYSA9IGFbMV0udG9Mb3dlckNhc2UoKTsKCXZhciBiYiA9IGJbMV0udG9M b3dlckNhc2UoKTsKCXJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEg OiBhWzJdIC0gYlsyXSk7Cn0KCmZ1bmN0aW9uIHRzX3NvcnRfZGVmYXVsdChhLGIp IHsKCXJldHVybiAoYVsxXSA8IGJbMV0gPyAtMSA6IGFbMV0gPiBiWzFdID8gMSA6 IGFbMl0gLSBiWzJdKTsKfQoKZnVuY3Rpb24gdHNfYWx0ZXJuYXRlKHRhYmxlKSB7 CgkvLyBUYWtlIG9iamVjdCB0YWJsZSBhbmQgZ2V0IGFsbCBpdCdzIHRib2RpZXMu Cgl2YXIgdGFibGVCb2RpZXMgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgi dGJvZHkiKTsKCS8vIExvb3AgdGhyb3VnaCB0aGVzZSB0Ym9kaWVzCglmb3IgKHZh ciBpID0gMDsgaSA8IHRhYmxlQm9kaWVzLmxlbmd0aDsgaSsrKSB7CgkJLy8gVGFr ZSB0aGUgdGJvZHksIGFuZCBnZXQgYWxsIGl0J3Mgcm93cwoJCXZhciB0YWJsZVJv d3MgPSB0YWJsZUJvZGllc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKTsK CQkvLyBMb29wIHRocm91Z2ggdGhlc2Ugcm93cwoJCS8vIFN0YXJ0IGF0IDEgYmVj YXVzZSB3ZSB3YW50IHRvIGxlYXZlIHRoZSBoZWFkaW5nIHJvdyB1bnRvdWNoZWQK CQlmb3IgKHZhciBqID0gMDsgaiA8IHRhYmxlUm93cy5sZW5ndGg7IGorKykgewoJ CQkvLyBDaGVjayBpZiBqIGlzIGV2ZW4sIGFuZCBhcHBseSBjbGFzc2VzIGZvciBi b3RoIHBvc3NpYmxlIHJlc3VsdHMKCQkJdmFyIG9sZENsYXNzZXMgPSB0YWJsZVJv d3Nbal0uY2xhc3NOYW1lLnNwbGl0KCIgIik7CgkJCXZhciBuZXdDbGFzc05hbWUg PSAiIjsKCQkJZm9yICh2YXIgayA9IDA7IGsgPCBvbGRDbGFzc2VzLmxlbmd0aDsg aysrKSB7CgkJCQlpZiAob2xkQ2xhc3Nlc1trXSAhPSAiIiAmJiBvbGRDbGFzc2Vz W2tdICE9ICJldmVuIiAmJiBvbGRDbGFzc2VzW2tdICE9ICJvZGQiKQoJCQkJCW5l d0NsYXNzTmFtZSArPSBvbGRDbGFzc2VzW2tdICsgIiAiOwoJCQl9CgkJCXRhYmxl Um93c1tqXS5jbGFzc05hbWUgPSBuZXdDbGFzc05hbWUgKyAoaiAlIDIgPT0gMCA/ ICJldmVuIiA6ICJvZGQiKTsKCQl9Cgl9Cn0KCi8qCiAqIEVuZCBvZiB0YWJsZSBz b3J0aW5nIGNvZGUKICovCiAKIAovKioKICogQWRkIGEgY3V0ZSBsaXR0bGUgYm94 IGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiB0byBpbmZvcm0gdGhlIHVzZXIgb2YK ICogc29tZXRoaW5nLCByZXBsYWNpbmcgYW55IHByZWV4aXN0aW5nIG1lc3NhZ2Uu CiAqCiAqIEBwYXJhbSBTdHJpbmcgLW9yLSBEb20gT2JqZWN0IG1lc3NhZ2UgSFRN TCB0byBiZSBwdXQgaW5zaWRlIHRoZSByaWdodCBkaXYKICogQHBhcmFtIFN0cmlu ZyBjbGFzc05hbWUgICBVc2VkIGluIGFkZGluZyBhIGNsYXNzOyBzaG91bGQgYmUg ZGlmZmVyZW50IGZvciBlYWNoCiAqICAgY2FsbCB0byBhbGxvdyBDU1MvSlMgdG8g aGlkZSBkaWZmZXJlbnQgYm94ZXMuICBudWxsID0gbm8gY2xhc3MgdXNlZC4KICog QHJldHVybiBCb29sZWFuICAgICAgIFRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24g ZmFpbHVyZQogKi8KZnVuY3Rpb24ganNNc2coIG1lc3NhZ2UsIGNsYXNzTmFtZSAp IHsKCWlmICggIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkICkgewoJCXJldHVybiBm YWxzZTsKCX0KCS8vIFdlIHNwZWNpYWwtY2FzZSBza2luIHN0cnVjdHVyZXMgcHJv dmlkZWQgYnkgdGhlIHNvZnR3YXJlLiAgU2tpbnMgdGhhdAoJLy8gY2hvb3NlIHRv IGFiYW5kb24gb3Igc2lnbmlmaWNhbnRseSBtb2RpZnkgb3VyIGZvcm1hdHRpbmcg Y2FuIGp1c3QgZGVmaW5lCgkvLyBhbiBtdy1qcy1tZXNzYWdlIGRpdiB0byBzdGFy dCB3aXRoLgoJdmFyIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCggJ213LWpzLW1lc3NhZ2UnICk7CglpZiAoICFtZXNzYWdlRGl2ICkgewoJCW1l c3NhZ2VEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCWlm ICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjb2x1bW4tY29udGVudCcgKQoJ CSYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY29udGVudCcgKSApIHsKCQkJ Ly8gTW9ub0Jvb2ssIHByZXN1bWFibHkKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoICdjb250ZW50JyApLmluc2VydEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJ CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2NvbnRlbnQnICkuZmlyc3RDaGls ZAoJCQkpOwoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj b250ZW50JykKCQkmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2FydGljbGUn ICkgKSB7CgkJCS8vIE5vbi1Nb25vYm9vayBidXQgc3RpbGwgcmVjb2duaXphYmxl IChvbGQtc3R5bGUpCgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnYXJ0aWNs ZScpLmluc2VydEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJCQlkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCggJ2FydGljbGUnICkuZmlyc3RDaGlsZAoJCQkpOwoJCX0g ZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJbWVzc2FnZURpdi5zZXRB dHRyaWJ1dGUoICdpZCcsICdtdy1qcy1tZXNzYWdlJyApOwoJaWYoIGNsYXNzTmFt ZSApIHsKCQltZXNzYWdlRGl2LnNldEF0dHJpYnV0ZSggJ2NsYXNzJywgJ213LWpz LW1lc3NhZ2UtJytjbGFzc05hbWUgKTsKCX0KCQoJaWYgKHR5cGVvZiBtZXNzYWdl ID09PSAnb2JqZWN0JykgewoJCXdoaWxlIChtZXNzYWdlRGl2Lmhhc0NoaWxkTm9k ZXMoKSkgLy8gUmVtb3ZlIG9sZCBjb250ZW50CgkJCW1lc3NhZ2VEaXYucmVtb3Zl Q2hpbGQobWVzc2FnZURpdi5maXJzdENoaWxkKTsKCQltZXNzYWdlRGl2LmFwcGVu ZENoaWxkIChtZXNzYWdlKTsgLy8gQXBwZW5kIG5ldyBjb250ZW50Cgl9CgllbHNl IHsKCQltZXNzYWdlRGl2LmlubmVySFRNTCA9IG1lc3NhZ2U7Cgl9CglyZXR1cm4g dHJ1ZTsKfQoKLyoqCiAqIEluamVjdCBhIGN1dGUgbGl0dGxlIHByb2dyZXNzIHNw aW5uZXIgYWZ0ZXIgdGhlIHNwZWNpZmllZCBlbGVtZW50CiAqCiAqIEBwYXJhbSBl bGVtZW50IEVsZW1lbnQgdG8gaW5qZWN0IGFmdGVyCiAqIEBwYXJhbSBpZCBJZGVu dGlmaWVyIHN0cmluZyAoZm9yIHVzZSB3aXRoIHJlbW92ZVNwaW5uZXIoKSwgYmVs b3cpCiAqLwpmdW5jdGlvbiBpbmplY3RTcGlubmVyKCBlbGVtZW50LCBpZCApIHsK CXZhciBzcGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImltZyIgKTsK CXNwaW5uZXIuaWQgPSAibXctc3Bpbm5lci0iICsgaWQ7CglzcGlubmVyLnNyYyA9 IHN0eWxlcGF0aCArICIvY29tbW9uL2ltYWdlcy9zcGlubmVyLmdpZiI7CglzcGlu bmVyLmFsdCA9IHNwaW5uZXIudGl0bGUgPSAiLi4uIjsKCWlmKCBlbGVtZW50Lm5l eHRTaWJsaW5nICkgewoJCWVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo IHNwaW5uZXIsIGVsZW1lbnQubmV4dFNpYmxpbmcgKTsKCX0gZWxzZSB7CgkJZWxl bWVudC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKCBzcGlubmVyICk7Cgl9Cn0KCi8q KgogKiBSZW1vdmUgYSBwcm9ncmVzcyBzcGlubmVyIGFkZGVkIHdpdGggaW5qZWN0 U3Bpbm5lcigpCiAqCiAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIHN0cmluZwogKi8K ZnVuY3Rpb24gcmVtb3ZlU3Bpbm5lciggaWQgKSB7Cgl2YXIgc3Bpbm5lciA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCAibXctc3Bpbm5lci0iICsgaWQgKTsKCWlm KCBzcGlubmVyICkgewoJCXNwaW5uZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCgg c3Bpbm5lciApOwoJfQp9CgpmdW5jdGlvbiBydW5PbmxvYWRIb29rKCkgewoJLy8g ZG9uJ3QgcnVuIGFueXRoaW5nIGJlbG93IHRoaXMgZm9yIG5vbi1kb20gYnJvd3Nl cnMKCWlmIChkb25lT25sb2FkSG9vayB8fCAhKGRvY3VtZW50LmdldEVsZW1lbnRC eUlkICYmIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKSkgewoJCXJldHVy bjsKCX0KCgkvLyBzZXQgdGhpcyBiZWZvcmUgcnVubmluZyBhbnkgaG9va3MsIHNp bmNlIGFueSBlcnJvcnMgYmVsb3cKCS8vIG1pZ2h0IGNhdXNlIHRoZSBmdW5jdGlv biB0byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkKCWRvbmVPbmxvYWRIb29rID0gdHJ1 ZTsKCgl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbnVsbCApOwoJYWtleXR0KCBu dWxsICk7CglzZXR1cENoZWNrYm94U2hpZnRDbGljaygpOwoJc29ydGFibGVzX2lu aXQoKTsKCgkvLyBSdW4gYW55IGFkZGVkLW9uIGZ1bmN0aW9ucwoJZm9yICh2YXIg aSA9IDA7IGkgPCBvbmxvYWRGdW5jdHMubGVuZ3RoOyBpKyspIHsKCQlvbmxvYWRG dW5jdHNbaV0oKTsKCX0KfQoKLyoqCiAqIEFkZCBhbiBldmVudCBoYW5kbGVyIHRv IGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQgZWxlbWVudCBFbGVtZW50 IHRvIGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBTdHJpbmcgYXR0YWNoIEV2ZW50 IHRvIGF0dGFjaCB0bwogKiBAcGFyYW0gY2FsbGFibGUgaGFuZGxlciBFdmVudCBo YW5kbGVyIGNhbGxiYWNrCiAqLwpmdW5jdGlvbiBhZGRIYW5kbGVyKCBlbGVtZW50 LCBhdHRhY2gsIGhhbmRsZXIgKSB7CglpZiggd2luZG93LmFkZEV2ZW50TGlzdGVu ZXIgKSB7CgkJZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBhdHRhY2gsIGhhbmRs ZXIsIGZhbHNlICk7Cgl9IGVsc2UgaWYoIHdpbmRvdy5hdHRhY2hFdmVudCApIHsK CQllbGVtZW50LmF0dGFjaEV2ZW50KCAnb24nICsgYXR0YWNoLCBoYW5kbGVyICk7 Cgl9Cn0KCi8qKgogKiBBZGQgYSBjbGljayBldmVudCBoYW5kbGVyIHRvIGFuIGVs ZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQgZWxlbWVudCBFbGVtZW50IHRvIGFk ZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBjYWxsYWJsZSBoYW5kbGVyIEV2ZW50IGhh bmRsZXIgY2FsbGJhY2sKICovCmZ1bmN0aW9uIGFkZENsaWNrSGFuZGxlciggZWxl bWVudCwgaGFuZGxlciApIHsKCWFkZEhhbmRsZXIoIGVsZW1lbnQsICdjbGljaycs IGhhbmRsZXIgKTsKfQovL25vdGU6IGFsbCBza2lucyBzaG91bGQgY2FsbCBydW5P bmxvYWRIb29rKCkgYXQgdGhlIGVuZCBvZiBodG1sIG91dHB1dCwKLy8gICAgICBz byB0aGUgYmVsb3cgc2hvdWxkIGJlIHJlZHVuZGFudC4gSXQncyB0aGVyZSBqdXN0 IGluIGNhc2UuCmhvb2tFdmVudCgibG9hZCIsIHJ1bk9ubG9hZEhvb2spOwo= ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=ajax.js Content-Type: application/x-javascript; charset=UTF-8; name=ajax.js Content-Location: http://umm.j2me.cz/skins/common/ajax.js?164 Content-Transfer-Encoding: Base64 Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0 ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2 YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7 CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9 bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0 LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3 Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3 aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1 dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0 aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0 aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4 X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9 PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50 KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7 CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93 LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0 aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15 ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10 cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7 CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0 ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7 CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9Cg== ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=index.js Content-Type: text/javascript; charset=UTF-8; name=index.js Content-Location: http://umm.j2me.cz/index.php5?title=-&action=raw&gen=js&useskin=monobook Content-Transfer-Encoding: 8bit /* generated javascript */ var skin = 'monobook'; var stylepath = '/skins'; /* MediaWiki:Common.js */ /* Any JavaScript here will be loaded for all users on every page load. */ /* MediaWiki:Monobook.js */ /* Any JavaScript here will be loaded for users using the MonoBook skin */ ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://umm.j2me.cz/index.php5?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000 Content-Transfer-Encoding: 8bit /* CSS placed here will be applied to all skins */ ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://umm.j2me.cz/index.php5?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000 Content-Transfer-Encoding: 8bit /* CSS placed here will affect users of the Monobook skin */ ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://umm.j2me.cz/index.php5?title=-&action=raw&gen=css&maxage=18000&useskin=monobook Content-Transfer-Encoding: 8bit /* generated user stylesheet */ a.new, #quickbar a.new { color: #CC2200; } ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=Signal.jpg Content-Type: image/jpeg; name=Signal.jpg Content-Location: http://umm.j2me.cz/images/3/32/Signal.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjL/wAARCAEJApwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3 +iiigAooooAKKKKACiiigAooooAKKKqanqVjpNhLeajdR2tqg+eWRtoGeB+NAFui uN0TWtRgzc6/dFbJ2WGxYWkiGbc2EeXKja5yq44Gc+oA64zxLcJAZFEzqzqmeSoI BOPQFl/MUASUUUUAFFZ9nrVnfLevCZPKspXhlldCqbk+9tPfBBBI4zkdqt2twl3a Q3MYYJKiyKHGDgjIyOxoAloqnqmp22j6dJfXbMIYyoOxSzMWIUAAckkkAAetWo38 yNX2su4A7W6j60AOoqpqmp2ujaXc6jeuyW1uhkkZVLEAewqW0uor6zgu4GLQzxrL GxBGVYZHB6cGgCaiiigAooqlpuqW+qxSy2yy+VHK0W90KhypIJXPUZHXoaALtFFF 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 /wDZV3FFAHmviD4lXA8O6ibXwt4ssrgW7+XczabsSFsHDMdxwB1JrF8A/GS61a7g 0jWtOmnuX+VbqyiLE+7oOnuRx7CvWNW02HWNIvNNuGdYbqFoXKHDBWGDj3rKs9I0 HwF4dvLiw08Q29rA88xjG6WQIpY5YnJPBxk4+lAHQ0UUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFVZNQij1a304q/nTwSzqwA2hY2jUg85zmVccdj+IBaooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKq6ZqEWraTZ6jArrDdwJPGsgAYK6hgD gkZwfWgC1RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUVVu9Qis7mwgkVy17O YIyoGAwjeTJ56Yjb15Iq1QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAUYra1TXbu6SfN5JbQRyw7x8satKUbHUZLyDJ4O3joavVRi07ytdu 9T83P2i2gt/L2/d8tpWznPOfN6Y42+/F6gAooooAKKKKACiiigAooooAKKKKACii igAqjrVta3uhaha30/kWc1tJHPNvC+XGVIZsngYBJyeKvVR1rTv7X0LUNM83yvtl tJb+Zt3bN6lc4yM4z0zQBeooooAKKKKACiiigAooooAKKKKACiiigAooooAKoy21 q+u2l08+LyO2njih3j5o2aIu2OpwUjGRwN3PUVeqjLp3m67aan5uPs9tPb+Xt+95 jRNnOeMeV0xzu9uQC9RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR0W2tbLQ tPtbGfz7OG2jjgm3hvMjCgK2RwcgA5HFXqo6Lp39kaFp+meb5v2O2jt/M27d+xQu cZOM46ZoAvUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAUb+2tZ7zTJLify5be 5aS3XeB5khhkUrg9fkZ2wOflz0Bq9VG/077beaZcebs+w3LXG3bnfmGSPHXj/WZz z0x3zV6gAooooAKKKKACiiigAorP1HWbHSriwgu5hG99cfZ4M932k/0x9SPWrF/f QabYzXlyxWGJdzbVLE+gAHJJOAAOSTQBYorkfDnxD0rxHrc+jJa39jfxKXEN7D5b OoxyBk46g4OOKXxJ8QdO8MToLyw1OS18wRS3kNtmGJvQsSM9e2ehHXigDraKbFIk 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 ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline Content-Type: image/png Content-Location: http://umm.j2me.cz/skins/common/images/wiki.png Content-Transfer-Encoding: Base64 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 AAAA/3X/AgVy1lPeu0dlAAAAAElFTkSuQmCC ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png Content-Type: image/png; name=poweredby_mediawiki_88x31.png Content-Location: http://umm.j2me.cz/skins/common/images/poweredby_mediawiki_88x31.png Content-Transfer-Encoding: Base64 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 NgAAAABJRU5ErkJggg== ------------wYRGTIrqdzzPStUpnQpOr3 Content-Disposition: inline; filename=favicon.htm Content-Type: text/html; charset=utf-8; name=favicon.htm Content-Location: http://umm.j2me.cz/favicon.ico Content-Transfer-Encoding: 8bit 404 Stránka nenalezena / Page not found

404

Chyba: Litujeme, tato stránka nebyla nalezena

404: Page not found

------------wYRGTIrqdzzPStUpnQpOr3--