Content-Type: multipart/related; start=; boundary=----------N21hvRffqU9uqIM5dbzCJx Content-Location: http://martanek.net/clanek-111-db2_zkouska.htm Subject: =?utf-8?Q?Kiv/DB2=20-=20zkou=C5=A1ka?= MIME-Version: 1.0 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=clanek-111-db2_zkouska.htm Content-Type: text/html; charset=windows-1250; name=clanek-111-db2_zkouska.htm Content-Id: Content-Location: http://martanek.net/clanek-111-db2_zkouska.htm Content-Transfer-Encoding: Quoted-Printable = = = = = = = = = Kiv/DB2 - zkou=9Aka = = = = =
=
=
= = = = = = =
= = = = = =
=
= 3D"email" 3D"tisk"

2008-05-20 13:17:00 | zobrazeno: 779x
Ot=E1zky ze zkou=9Aky z DB2 z 19.5. 2008.

DB2 - zkou=9Aka z 19. 5. 2008

Z=E1kladn=ED informace

- Nebyl v=FDb=ECr z mo=9En=FDch odpov=ECd=ED ! Bylo 19 ot=E1zek - dop= lnit p=EDsemnou odpov=EC=EF. Nejl=E9pe celou v=ECtou. Heslovit=EC nesta=E8= =ED. Pouze
jedna ot=E1zka z cel=E9 p=EDsemky byla za=9Akrt=E1vac=ED + dopln=ECn=ED = n=ECkolika slov=ED=E8ek.

Ot=E1zky 1-19 byly p=F8ibli=9En=EC takov=E9to:

- datov=E9 sklady - metody uskladn=ECn=ED - asi =9Alo o hv=ECzdicovou= strukturu atd
- data mining - metody dolov=E1n=ED dat - pravd=ECpodobn=EC shlukov=E1n=ED= , tvorba asoc. pravidel
- vysv=ECtlit co d=ECl=E1 n=ECjak=FD trigger - byl to jen BEFORE insert = trigger, kter=FD vkl=E1dal syst=E9mov=FD =E8as
- napi=9Ate kdy a pro jak=E9 operace m=F9=9Ee b=FDt definov=E1n trigger = - before/after + S,I,U,D
- nad kter=FDmi pohledy lze prov=E1d=ECt DML dotazy - dotazy update, del= ete, insert lze prov=E1d=ECt pouze nad materializovan=FDmi pohledy
= - R, OO, O-R DB - porovnejte je a napi=9Ate charakteristiku
- indexy - kdy je vhodn=E9 je vytv=E1=F8et a kdy ne - nesm=ED se d=EClat= nad PK a nad v=9Aemi sloupci. Ud=EClaj=ED se jen nad kombinacemi sloupc= =F9, kter=E9 budeme pot=F8ebovat.
- RBO - co to je. Kdy se to nechov=E1 optim=E1ln=EC. - Je to star=9A=ED = p=F8=EDstup. Optimalizace dle zapsan=E9ho sch=E9matu. Dnes Oracle pou=9E= =EDv=E1 CBO.
- tempor=E1ln=ED datab=E1ze - lze realizovat ide=E1ln=ED model? Pro=E8? = - Pravd=ECpodobn=EC ne. Bylo by nutn=E9 uchov=E1vat celou historii dat. = Ale t=EC=9Eko =F8=EDct, co by se zde m=EClo p=F8esn=EC napsat.
- kter=E9 datov=E9 struktury lze pou=9E=EDt pro ulo=9Een=ED objemn=FDch = dat - LOBy: Blob, Clob, NClob,
- data warehouse - hyperkostka, hv=ECzdice - jen metody ulo=9Een=ED dat<= br /> - OLTP a OLAP rozd=EDly

Ot=E1zka 20:

Vyberte, kter=E9 charakteristiky NEPLAT=CD pro distribuovan=E9 datab=E1= ze:

- je to drah=E9
- neexistuje jednoduch=FD p=F8evodn=ED mechanizmus z "norm=E1ln=ED DB" - vytvo=F8en=ED je slo=9Eit=E9

a asi dal=9A=ED 3 mo=9Enosti. Nejsem si =FApln=EC jistej, co bylo a c= o nebylo spr=E1vn=EC, proto=9Ee odpov=ECdi byly dost nejasn=E9.

To je v=9Aechno, co si ze ZK pamatuju.

Srandovn=ED hra=E8ky

= = =
=  
  
= = =

Srandovn=ED hra=E8ky

= = = = = = =
= = = =
= = = = = ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=martanek.ico Content-Type: image/x-icon; name=martanek.ico Content-Location: http://martanek.net/css/icon/martanek.ico Content-Transfer-Encoding: Base64 AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDA wAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8ARERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERES7u7dEe0REu7u7dERERERERLtERHu0REe7tERERERERE R7RER7uEREe7RERERERERES3REu3t0REu3REREREREREt0RLt0t0RLt0RERERERE RHtES7dEtER7tERERERERERLREu0RHtES7RERERERERES3R7tERHtEu3RERERERE REe0e7RERIdHu0REREREREREtHt0RERLdLtERERERERERLe7dERERLe7dERERERE RER7u3RERER7e7REREREREREe7tERERER7u0REREREREREu7RERERER7t0RERERE RERHu0RERERES7tERERERERHu7tERERERES7RERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE REREREREREREREREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=3_col_cestovani.css Content-Type: text/css; charset=windows-1250; name=3_col_cestovani.css Content-Location: http://martanek.net/css/3_col_cestovani.css Content-Transfer-Encoding: 8bit /* >>>>> Page Styles <<<<< */ html, body {margin: 0; padding: 0; font-size: 100%; } body { /*font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;*/ font-family:Arial, Helvetica, "Helvetica CE", "Arial CE", sans-serif; font-size: 80%; color: #000; background: #F3F3F8 url("img/top_body_bg.png") 100% 0 repeat-x; } a img {border: 0px; } #pagetitle { margin: 0; padding: 10px 0 0 0; text-align: center; font-size: 210%; color: #771464; } /* pre { margin: 0 0 0 10px; padding-top: 8px; font-family: Verdana, sans-serif; font-size: 95%; font-weight: normal; } p {margin: 0; padding: 8px 7px 0 10px; } #contents p {font-weight: bold; } .altcolor {color: #eef7e2; font-weight: bold; } .altcolor2 {color: #cde7a8; } .altcolor3 { color: #771464; font-weight: bold; } #demotext { border: 3px solid #233622; background: #cde7a8; color: #233622; margin: 8px 149px 5px 10px; padding: 0 5px 5px 0; position: relative; } /*** for IE6 ***/ */ /* a:link {color: #eef7e2; text-decoration: underline; padding: 1px; } a:visited {color: #eef7e2; text-decoration: underline; padding: 1px; } a:hover {color: #000; text-decoration: underline; padding: 1px; } */ /* #left_column a:link, #left_column a:visited {color: #233622; text-decoration: underline; } .right a:link strong, .right a:visited strong, .right a:link, .right a:visited { color: #000; text-decoration: underline; background: #eef7e2; padding: 1px; } */ /*** Redundancy in this selector and the one below allows Op6 to display links properly ***/ /* .right a:hover strong, .right a:hover {color: #771464; background: #f4e6ef; padding: 1px; } */ /* #contents a:link, #contents a:visited { color: #000; text-decoration: underline; background: #f4e6ef; padding-top: 0; } #contents a:hover {color: #f9f; background: #233622; padding-top: 0; } #contents strong {color: #f9f; } #contents pre.altcolor2 strong {color: #cde7a8; } */ /* #footer a:link, #footer a:visited {color: #771464; } strong {font-weight: bold; color: #233622; } pre strong {color: #000; } */ .alignright {margin: 0; padding: 1em 10px 2em 0; text-align: right; } .small {font-size: .9em; color: #771464; } .alignright strong {color: #771464; font-weight: bold; } .decoration {float: right; margin: 0.5em 1em; position: relative; } /*** for IE6 ***/ html[xmlns] .decoration {margin: 0 1em 0 0; } /*** Moz put the image too low ***/ .kudos { margin-top: 3em; border-top: 3px double #233622; border-bottom: 3px double #233622; padding-bottom: 5px; } .dash {border-top: 1px dashed #233622; margin-top: 1em; } #bottom {font-size: 1px; line-height:0; margin:0; padding:0;} /* >>>>> Sidepage extras <<<<< */ hr {width: 100%;} h1{font-size: 18px; padding-top: 0px; } h2{font-size: 16px; padding-top: 10px;} h3{font-size: 14px; padding-top: 10px;} /*h2 pro content menu:*/ .h2_content_menu{font-size: 1.2em; padding-top: 0px;} a {text-decoration: none;} a:hover {text-decoration: underline;} /* h3 { font-family: Verdana, sans-serif; font-size: 1.2em; color: #eef7e2; font-weight: bold; margin: 10px 0; text-align: center;} #right_column h3, .left h3, .right h3 {color: #233622;} #demotext h3 {color: #771464; font-size: 1.4em; } ul { color: #000; list-style: none; list-style-position: outside; margin: 0; padding: 0 10px 1.5em 10px; } /*** bottom padding instead of margin to avoid Op6 "Bottomgap Bug." Please see Big John's explanation of this bug - http://www.positioniseverything.net/op-omnibus/bottomgap.html ***/ /* #contents ul {color: #cde7a8; font-weight: bold; } .right ul {padding-right: 5px; } li {padding: 1px;} .description li {margin: 10px 0 0 0; padding: 0; } */ /* *****>>>>> Demo Styles <<<<<***** */ /*** The #header div has a static position and a background image ***/ #header { margin: 0; margin-left: 196px; padding: 0; background: url("../templates/images/martanek_logo.png") 0 0 no-repeat; /*** this is a shorthand property for the various background properties ***/ height: 109px; } /*** must be set so the following absolutely positioned divs are placed correctly on initial load of the page***/ #logo_left_corner { position: absolute; left: 0px; top: 0px; width: 192px; height: 144px; margin: 0; padding: 0; /*background: url("img/left_logo_prazdne.png") 0 0 no-repeat; */ } #left_column { position: absolute; background: url("img/bg-content-left.png") right top no-repeat; left: 0px; width: 215px; color: #000; padding-top: 42px; } #left_column #inside { background: #F3F3F8; width: 197px; } #container { margin-top: 0px; padding-top: 11px; margin-left: 207px; /*kuli menu vlevo - puvodne 215*/ margin-right: 207px; /*kuli menu vpravo*/ background: #ffffff url("img/bg-content-middle.png") 100% 0 repeat-x; /*border-left: 0px solid #000; */ } /*verze pro TISK:*/ #container_print { margin-top: 0px; padding-top: 11px; margin-left: 0px; /*kuli menu vlevo - puvodne 215*/ margin-right: 0px; /*kuli menu vpravo*/ background: #ffffff; /*border-left: 0px solid #000; */ } /* main_menu misto #navmenu */ #main_menu { padding: 2px 0; /*width: 100%; toto tady musi byt, jinak se cpe content vedle toho _width: 400px;*/ position: relative; } /*** IE6 needs this to display the div ***/ /* Hide from IE5-Mac \*/ * html #main_menu {height: 1%;} /* end hide *//*** This hack will make IE5-win display the background color for the nav ***/ #main_menu ul { display: block; list-style: none; padding: 0; margin: 0; text-align: center; /*font-family: Verdana, sans-serif; line-height: 1.2em;*/ } #main_menu ul li { font-weight: normal; display: block; float: left; position: relative; /*** IE6 needs this to display the links ***/ padding: 1px 0; margin: 3px 0; padding-left: 10px; /*border-right: 1px solid #000;*/ } #main_menu ul li.first { margin-left: 0; list-style: none; } #main_menu ul li.last { border-right: none; } #main_menu a {padding: 3px 0; color: #718AE6; text-decoration: none;} #main_menu a:hover {color: #718AE6; text-decoration: underline;} #navclear { display: block; clear: both; } /*** IE5/Mac has trouble with right positioned boxes due to a secret margin. See - http://www.l-c-n.com/IE5tests/right_pos/index.shtml - Philippe Wittenbergh's page for an explanation of this problem and Sam Foster's page for an explanation of the hack used - http://www.sam-i-am.com/testsuite/css/mac_ie5_hack.html - ***/ #right_column { position: absolute; background: url("img/bg-content-right.png") left top no-repeat; right: 16px; top: 109px; margin-right: 0px; width: 215px; padding-top: 10px; } #rightbox_inside { background: #F3F3F8; margin-top: 32px; _margin-top: 42px; margin-left: 18px; /*position: absolute; right: 16px; width: 196px; padding-top: 10px; margin-top: 2px;*/ } /* hide the following from IE5-Mac \*/ #right_column { right: 0; margin-right: 0; } /* IE5-Mac can see the rest */ #wrapper { margin-right: 138px; padding-top: 5px; } /*** Tan hack for IE. Only IE browsers see this selector. This replaces the old Tantek hack. Please see Edwardson Tan's page. http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html ***/ * html #wrapper { width: 100%; /*** IE5.5 needs this value to eliminate a horizontal scrollbar ***/ w\idth: auto; } /*** resets the value for IE6 and IE5-Mac ***/ /* .left { float: left; margin-left: 6px; width: 47%; padding: 5px 5px 5px 0; background: #c3c8c3; } html>body .left {margin-left: 12px; } */ /*** IE doubles the margin on the float. This sets the margin to the correct width for others ***/ /* .right { float: right; margin-right: 6px; width: 47%; padding: 5px 5px 5px 0; background: #c3c8c3; } html>body .right {margin-right: 12px; } */ /*** IE doubles the margin on the float. This sets the margin to the correct width for others ***/ .clear { clear: both; margin: 0; padding: 0; } #contents { /* posledni je vlevo*/ margin: 6px -8px 0px -8px; _margin: 6px -7px 0px -8px; /*margin: 8px 149px 5px 10px; /*margin-right: 149px; margin-left: 10px; color: #eef7e2;*/ padding: 3px; padding-bottom: 20px; position: relative; /*background: #FFFFFF; Martinovo - nove*/ } /*** IE6 needs this to display the div ***/ #footer { background: #f0f1f0; margin-top: 1.5em; margin-right: 139px; border-top: 1px dashed #888; } /************************************************************************/ /**************** MARTINOVO STYLY *********************************/ /************************************************************************/ /*vypln prazdneho sloupce*/ .empty_column {height: 300px;} #copyright {background: #F3F3F8; text-align:center; font-size:90%; position:relative; margin-top: 0em; padding-top: 5px; margin-left: -8px; margin-right: -8px; vertical-align: bottom; display: block; } /*HLAVNI NAVIGACE NA STRANCE*/ #main_menu_none {width: 100%;} /* #main_menu_none {clear: both; width: 100%; height: 30px; border: 0; padding: 0; padding: 0px 0px 0px 0px; background: url(img/menu_blue_bg.gif) #ffffff;} #main_menu_light_none {clear: both; width: 100%; height: 30px; _heght: 20px; border: 0; padding: 0; padding: 0px 0px 0px 0px; background: url(img/menu_bg.gif) #ffffff;} #main_menu {width: 100%; padding: 0px; font-size: 100%; color:#C2FDFF;} #main_menu ul{list-style: none; margin: 0px; padding-top: 6px; padding-left: 15px;} #main_menu li{float: left; margin: 0px; padding: 0px; padding-left: 10px; } */ /* #main_menu li {background: url("obr/left-nav-item-blue-on.gif") top left no-repeat; width: 110px; height: 30px; } #main_menu ul li { display:inline; list-style-type:none; }*/ /* #main_menu a {padding: 2px; color:#ffffff; text-decoration:none;} #main_menu a:hover {padding: 2px; _padding-bottom: 5px; color:#ffffff; text-decoration:underline; } */ #user_menu_none {clear: both; width: 100%; height: 25px; border: 0; padding: 0; padding: 0px 0px 0px 0px; background: url(img/menu_bg_user.gif) #ffffff;} #user_menu {width: 100%; padding: 8px 5px 5px 8px; font-size: 100%; color:#00447B;} #user_menu a {color:#00447B; text-decoration:none; } #user_menu a:hover {color:#00447B; text-decoration:underline; } /*toto je navigace, kde se nachazi user*/ #map_navigaion {padding: 5px; padding-left: 19px; _padding-left: 20px;} #map_navigaion a {color: #000000; text-decoration:none;} #map_navigaion a:hover {text-decoration:underline;} /*MENU PRO zábavu - vedle obsahu*/ #content_menu-none{/*float: left;*/ width: 180px; font-size: 1em; _font-size: 12px; padding: 0px; margin-left: 5px; /*border: 1px solid #92AC9D;*/} #content_menu { padding-top: 0px;} ul.content_menu {margin:0px; padding:0px;} ul.content_menu li {margin:0px; padding:0px; _margin-top: 2px; border: #F3F3F8 1px solid; list-style:none !important; background: #1F3069 /*4564A3*/ ; width:180px; height: 26px; } ul.content_menu li.space, ol li.space {/*margin-top:10px;*/ } ul.content_menu li a {display: block; /*tohle to natahne na vetsi sirku*/ color: #ffffff; /*background: url("obr/left-nav-item-off.gif") top left no-repeat;*/ padding: 5px 0px 0px 25px; height: 20px; text-decoration:none;} ul.content_menu li a:hover {color: #ffffff; background: #3FA8D4 /*696C99*/ /*url("img/left-nav-item-blue-on.gif") top left no-repeat*/; height: 20px; text-decoration:none;} ul.content_menu li.active a, ul.content_menu li a:active {color: #ffffff; background: #545F9E /*url("img/content_menu_active.png") top left no-repeat*/; text-decoration:none; } ul.content_submenu {margin:0px; padding:0px; padding-left: 5px; padding-top:2px; background: #F3F3F8; /*tohle je pozadi submenu mimo li*/} ul.content_submenu li {width:175px; background: #6C79A4 /*696C99*/;} ul.content_submenu li a {display: block; /*tohle to natahne na vetsi sirku*/ color: #ffffff;} ul.content_submenu li a:hover {background: #3FA8D4;} ul.content_submenu li.active a, ul.content_menu li a:active {background: #7C97BB;} /*reklama pod menu vlevo*/ .left_menu_adds{padding: 20px; } .left_menu_adds .header{padding: 5px; margin-top: 20px; margin-bottom: 10px; /*background: #eeefff;*/ height: 15px;} /*KONEC MENU*/ /*mensi pro zajezdy - toto je pro sekci dovolena - uvodni prehled*/ .vlevo_panel_mensi_blue{float: left; padding: 20px 20px 0px 10px;} .vlevo_panel_mensi_blue .head{width: 330px; text-align: center; padding-top: 3px; height: 20px; color: #434AD7; background: #ffffff url("img/panel_top_blue2.gif") no-repeat left top; border: 1px solid #D3D7FD;} .vlevo_panel_mensi_blue .head a {text-decoration:none; color: #072F79;} .vlevo_panel_mensi_blue .head a:hover {text-decoration:underline;} .vlevo_panel_mensi_blue .content{padding: 10px; background: #ffffff url("img/panel_content_blue2.gif") repeat-y left; border-left: 1px solid #D3D7FD; border-right: 1px solid #D3D7FD; border-bottom: 1px solid #D3D7FD;} /*konec mensi pro zajezdy*/ /*CESTOVANI - seznam zajezdu - vola se z objektu cestovani.class.php - metoda ShowZajezdyList*/ .cestovani_zajezd_panel {padding: 20px 20px 0px 10px; text-align: center;} .cestovani_zajezd_panel .head{text-align: center; padding-top: 3px; height: 20px; color: #434AD7; background: #DEF5FD; border: 1px solid #D3D7FD;} .cestovani_zajezd_panel .head a {text-decoration:none; color: #072F79;} .cestovani_zajezd_panel .head a:hover {text-decoration:underline;} .cestovani_zajezd_panel .content{padding: 10px 10px 0px 10px; color: black; text-align: left; background: #ffffff url("img/panel_content_blue2.gif") repeat-y left; /*border-left: 1px solid #D3D7FD; border-right: 1px solid #D3D7FD; border-bottom: 1px solid #D3D7FD;*/} /*pro p*/ .cestovani_zajezd_panel .content .small {font-size: 0.9em; _font-size: 11px;} /*konec CESTOVANI - seznam zajezdu*/ /*2 panely vedle sebe*/ .vlevo_panel_blue{float: left; padding: 30px 30px 0px 40px;} .vlevo_panel_blue .head{width: 300px; text-align: center; padding-top: 3px; height: 20px; color: #434AD7; background: #ffffff url(img/panel_top_blue2.gif) no-repeat left top; border: 1px solid #D3D7FD;} .vlevo_panel_blue .content{padding-left: 20px; background: #ffffff url("img/panel_content_blue2.gif") repeat-y left; border-left: 1px solid #D3D7FD; border-right: 1px solid #D3D7FD; border-bottom: 1px solid #D3D7FD;} .vlevo_panel_orange{float: left; padding: 30px 30px 0px 40px;} .vlevo_panel_orange .head{width: 300px; text-align: center; padding-top: 3px; height: 20px; color: #F29131; background: #FEDFA1 url("img/panel_top_oranz.gif") no-repeat left top; border: 1px solid #FFECC4;} .vlevo_panel_orange .content{padding-left: 20px; background: #ffffff url("img/panel_bg_content_orange.gif") repeat-y left; border-left: 1px solid #FFECC4; border-right: 1px solid #FFECC4; border-bottom: 1px solid #FFECC4;} .vlevo_panel_green {float: left; padding: 30px 30px 0px 40px;} .vlevo_panel_green .head{width: 300px; text-align: center; padding-top: 3px; height: 20px; color: #28BC01; background: #84F66A url(obr/panel_top_green.gif) no-repeat left top; border: 1px solid #C5FBB9;} .vlevo_panel_green .content{padding-left: 20px; background: #ffffff url(obr/panel_content_green.gif) repeat-y left; border-left: 1px solid #C5FBB9; border-right: 1px solid #C5FBB9; border-bottom: 1px solid #C5FBB9;} p {line-height: 140%;margin-top: 10px;margin-bottom: 10px;} .content_odsadit_40 {padding-left: 40px; padding-right: 40px; padding-top: 20px; } .content_odsadit_20 {padding-left: 20px; padding-right: 20px; padding-top: 20px; } .content_odsadit_10_left {padding-left: 10px; padding-top: 10px; } .text_blue{color: #072F79;} .text_blue a{color: #3984FF;} /*musim upravit barvu, aby to nesplynulo*/ .msg_good {width: 50%; text-align: center; padding: 10px; color: black; background-color: #6CB012; border: 1px dashed #003399;} .msg_bad {width: 50%; text-align: center; padding: 10px; color: black; background-color: #F0B081; border: 1px dashed #003399;} /*pozor TOTO ASI ZLOBI*/ .break {display: block; _display: normal; clear: both; font-size: 1px; height: 0px;} .clear{clear: both;} .clear_left{clear: left;} .clear_left{clear: right;} #login {width:743px; position:absolute; top: 30px; text-align:right; color:#D7E1E8; z-index:2;} #login a {color:#D7E1E8;padding: 0 3px 0 3px;font-size: 80%;text-decoration: none;} #login a:hover {text-decoration:underline;} .form_default input {font-size: 100%;} .form_default label{padding-right: 10px; } .vedle_sebe{padding: 20px; float:left;} .vedle_sebe2{padding: 5px; float:left;} /*jen vice nahustene*/ .zelene {background: #13750E; color: white; padding: 10px;} .none {padding: 0px; } .vlevo {float: left;} .vlevo p {padding-top: 0px;} .vlevo_okraj {float: left; padding: 5px; } .vpravo {padding-right: 10px; _padding-right: 0px; float: right;} /*pro dovolenou a cestovani*/ .table_prehled {font-size: 11px;} .table_prehled td{border: 1px solid; border-color: #D2F1FD; padding: 2px; } .table_prehled .head {background: #ffffff; font-weight: bold; color: black;} .table_prehled .blue {background: #BEEFFF;} .table_find_tour td {padding: 2px;} .table_find_tour .blue {background: #BEEFFF;} .dovolena_content_image_obal{float: left; padding: 10px; margin: 0px; } .dovolena_content_image{padding: 20px; width: 150px; _width: 190px; height: 150px; _height: 190px; text-align: center; vertical-align:middle; background: #ffffff url(obr/dovolena_img_bg.jpg) left top no-repeat;} .dovolena_content_image img {border: 0px; } .dovolena_image_comment{padding: 15px; padding-left: 10px; width: 160px; _width: 190px; height: 20px; _height: 40px; font-size: 12px; _font-size: 12px; background: #ffffff url(obr/dovolena_img_koment_bg.jpg) left top no-repeat;} /*VYPIS TERMINU V PRAVEM SLOUPCI*/ .cestovani_terminy_vpravo {font-size: 11px;} .cestovani_terminy_vpravo .blue {background: #BEEFFF;} .cestovani_terminy_vpravo .white {background: #FFFFFF;} .cestovani_terminy_vpravo .important {background: #ffac00; color: #ffffff;} .cestovani_terminy_vpravo .important a {color: #ffffff;} /*konec dovolena*/ /* obrazky se stinem */ .obr_left-none {float: left; padding: 10px; width: 150px; height: 150px; background: #eeefff;} .obr_left { float: right; /*width: 146px; height:146px;*/ padding: 0px 0px 2px 0px; background: url("obr/obr_stin.gif") no-repeat bottom right; line-height: 0px; } .obr_left img {position: relative; margin: -6px 6px 6px -6px; padding: 4px; display: block; background-color: #ffffff; border: 1px solid #000000; line-height: 0px; } .obr_right { float: right; margin: 15px 0px 10px 20px; background: url("obr/stin.gif") no-repeat bottom right; line-height: 0px; } .obr_right img {position: relative; margin: -6px 6px 6px -6px; padding: 4px; display: block; background-color: #ffffff; border: 1px solid #000000; line-height: 0px; } .pejsci_vypis {background: #ffffff; border: 1px solid #003399; color: black; font-size: 12px;} .pejsci_vypis .blue{background: #C3DDF2; } /*pro administraci*/ .super_akce-none {padding: 5px;/*vzdalenost mezi obema divy - sirka ramu*/ width: 95%; background: #EDEE15;} .super_akce{padding: 10px;/*vzdalenost textu od kraje ve vnitrnim divu*/ background: #EBEEB7; } .admin_akce-none{padding: 5px;/*vzdalenost mezi obema divy - sirka ramu*/ width: 95%; background: #B07639;} .admin_akce{padding: 10px;/*vzdalenost textu od kraje ve vnitrnim divu*/ background: #FCE0AA; } .spravce_akce-none{padding: 5px;/*vzdalenost mezi obema divy - sirka ramu*/ width: 95%; background: #9488E8;} .spravce_akce{padding: 10px;/*vzdalenost textu od kraje ve vnitrnim divu*/ background: #A4E8FC; } .brigadnik_akce-none{padding: 5px;/*vzdalenost mezi obema divy - sirka ramu*/ width: 95%; background: #3AB011;} .brigadnik_akce{padding: 10px;/*vzdalenost textu od kraje ve vnitrnim divu*/ background: #B2F9B5; } /* DOVOLENA - MAPA */ #map{ margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; height: 380px; /*border: 1px solid #FC5700;*/ border: 1px solid #eeefff; background-color: White; } #map IMG{ float: left; } #map-over{ margin: -350px 0px 0px 0px; _margin: -350px 0px 0px 0px; padding: 0px 0px 0px 0px; height: 350px; float: left; } /* KONEC DOVOLENA - MAPA */ /* STYLY pro DEFAULT */ /* seznam clanku */ .articles_list {padding: 0px; margin: 0px; width: 100%; _width: 95%; background: #ffffff; } .articles_list .article {margin-bottom: 10px; border: #9FC4DE 1px solid; } .articles_list .article .head {padding: 7px; color: #ffffff; background: blue; height: 15px;} .articles_list .article .head .title {text-align: left; font-weight: bold; } /* NADPIS CLANKU */ .articles_list .article .head .title a {color: #FFFFFF;} .articles_list .article .head .info {text-align: right; } /* TOTO SE NEPOUZIVA, problemy s FLOAT DATUM A CAS VLOZENI, PRIPADNE TAM MUZU DAT EXPORTY APOD */ .articles_list .article .short_desc {padding: 10px; background: #eeefff; color: #000000;} .articles_list .article .navi_info {padding-top: 10px; } .articles_list .article .category_info {float: left;} .articles_list .article .read {float: right;} /* konec seznam clanku */ /* detail clanku */ .article_detail .title {margin: 0px; padding: 0px; } .article_detail .title h1 {margin: 0px; padding: 0px; font-size: 1.4em; color: #C6410C /*0D006D*/;} /*margin a padding musi byt nastaven u H1*/ .article_detail .title a {color: #C6410C;} .article_detail .title a h1 {margin: 0px; padding: 0px; text-decoration: none;} .article_detail .title a:hover h1{text-decoration: underline;} .article_detail .created_date {padding: 0px; font-size: 11px; color: #FCBF3B; } .article_detail .short_desc {margin-top: 10px; margin-bottom: 10px; padding: 10px; background: #BCE5FF; border: 1px solid #8BDBCF; } .article_detail .content {padding: 10px; font-size: 13px; /*font-family: Arial, Helvetica, "Helvetica CE", "Arial CE", sans-serif; */ } /*pro vlozeni jednoho obrazku do clanku - zarovnani*/ .article_detail .content .left { float: left; margin: 5px 15px 5px 0px; padding: 3px; border: 1px solid #8BDBCF; line-height: 1px; } .article_detail .content .right { float: right; margin: 5px 0px 5px 15px; padding: 3px; border: 1px solid #8BDBCF; line-height: 1px; } .article_detail .content .center_full {width: 100%; text-align: center; margin-top: 10px; margin-bottom: 10px; padding: 0;border: 1px solid #8BDBCF; line-height: 1px; } /*zobrazeni vice obrazku*/ .article_detail .content .img_list {clear: both; margin-top: 10px; padding: 0px;} .article_detail .content .img_list .item {float: left; width: 160px; height: auto; margin-right: 3px; margin-bottom: 3px; padding: 0px; border: 1px solid #8BDBCF; line-height: 1px; } .article_detail .content .img_list .item .image {width: 150px; height: 150px; text-align: center; display: table; padding: 5px; /*background: #ffeeff; margin: 0px; padding: 0px;*/ } .article_detail .content .img_list .item .image a {width: 100%; height: 100%; display: table-cell; vertical-align: middle; background: #DFDFDF; border: 1px solid #C1C1C1;} .article_detail .content .img_list .item .image img {border: 0px; } .article_detail .content .img_list .item .comment {width: 150px; height: 20px; font-size: 11px; background: #ffffff; margin: 0px; padding: 5px; padding-top: 15px;} /* ul.imglist {list-style: none; margin: 0; padding: 0; } ul.imglist li {list-style: none; float: left; margin: 0; margin-right: 5px; padding: 0; background: none; height: 85px; } ul.imglist li img {padding: 1px; border: 1px solid #D1D1D1; } ul.imglist li a {text-decoration: none; } ul.imglist.sample-shots li {width: 110px; height: auto; margin-right: 15px; margin-bottom: 15px;} ul.imglist.sample-shots li .dia {width: 110px; height: 110px; text-align: center; display: table; margin-bottom: 3px;} ul.imglist.sample-shots li .dia a {width: 100%; height: 100%; display: table-cell; vertical-align: middle; background: #DFDFDF; border: 1px solid #C1C1C1; border-right-color: #959595; border-bottom-color: #959595 } */ /* externi link v detailu clanku - pro otevirani do noveho okna */ .article_detail .content .external{padding:0 13px 0 0; background: url('img/link_external.png') no-repeat; background-position: right; } /* musim zrusit float left na obsah clanku */ .article_detail .permanent_link {clear: both; padding-top: 20px; } .article_detail .permanent_link a {padding: 0px; color: #61C624;} /* konec detail clanku*/ /* FOTOGALERIE */ .fotogallery_img_list {clear: both; margin-top: 10px; padding: 0px;} .fotogallery_img_list .item {float: left; width: 360px; height: auto; margin-right: 3px; margin-bottom: 3px; padding: 0px; border: 1px solid #8BDBCF; line-height: 1px; } .fotogallery_img_list .item .image {float: left; width: 150px; height: 150px; text-align: center; display: table; padding: 5px; background: #F3F3F8; /*F3F3F8 DFDFDF*/ } .fotogallery_img_list .item .image a {width: 100%; height: 100%; display: table-cell; vertical-align: middle; border: 1px solid #C1C1C1;} .fotogallery_img_list .item .image img {border: 0px; } .fotogallery_img_list .item .description {float: left; width: 180px; height: 140px; font-size: 11px; background: #ffffff; margin: 0px; margin-top: 5px; padding: 5px; padding-top: 10px;} .fotogallery_img_list .clear{clear: left;} /* KONEC FOTOGALERIE */ /* kod programu .article_detail pre{font: 90%/1.3 monospace; margin: 2em 0; padding: 1em 1.5em 1em 3em; border: 1px solid #6291CA; background: #EDEFF2; color: black; } */ /* ********** code ********** http://myego.cz/styles/mootools/slimbox.js */ .article_detail code {} .article_detail pre { color: #404040; padding: 4px 5px 4px 5px; margin: 10px 0 10px 0; overflow: auto; _overflow-y: visible; background: #f4f4f4; font-size:90%; width:100%; _width: 95%; clear:both;} .article_detail pre.none { overflow: hidden; } * html .article_detail pre { overflow: auto; /*musi byt auto, jinak v IE se neobjevi rolovnitka*/ } /* KONEC STYLY pro DEFAULT */ /* DEFAULT - strankovani */ .pagination_div {margin-top: 15px; margin-left: 30px; height: 20px; } .pagination_div .page a{float: left; margin-left: 5px; padding: 5px; border: 1px solid #3CBCFF; background: #ffffff; text-decoration: none;} .pagination_div .page a:hover{border: 1px solid #3CBCFF; background: #1059FF; color: #ffffff;} .pagination_div .page_active a{float: left; margin-left: 5px; padding: 5px; border: 1px solid #FF4115; background: #FFC58C; color: #000000; text-decoration: none;} .pagination_div .none {float: left; margin-left: 5px;} /* KONEC DEFAULT - strankovani */ /* SPECIALNE PRO CESTOVANI */ .cestovani_search_form table { width:590px; margin:5px; border:1px solid #BFA38F; background-color:#EFE8E3; } .cestovani_search_form td { padding:4px 8px; vertical-align:middle; text-align: left;} .cestovani_search_form .header { background-color:#FF9212; font-weight:bold; text-align:center; } .cestovani_search_form .header td { border-bottom:2px solid #BF5F00; border-top:1px solid #FFD293; } .cestovani_search_form input { font-family:"Segoe UI", Tahoma, Helvetica, sans-serif; font-size:11px; color:#3F1700; } .cestovani_search_form .edit { border:1px solid #DFD1C7; padding:2px; } .cestovani_search_form .browse { padding:2px; } .cestovani_search_form textarea { width:262px; border:1px solid #DFD1C7; padding:2px; } .cestovani_search_form .submit { padding:4px 38px; margin-top: 10px; font-size:12px;} /* KONEC SPECIALNE PRO CESTOVANI */ /* SPECIALNE PRO TESTY */ .test_detail input {font-family:"Segoe UI", Tahoma, Helvetica, sans-serif; font-size:12px; color:#3F1700; } .test_detail .edit {border:1px solid #DFD1C7; padding:2px; } .test_detail .submit {padding:4px 38px; margin-top: 10px; font-size:12px; } /* KONEC SPECIALNE PRO TESTY */ /************************************************************************/ /************************************************************************/ /************************************************************************/ ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=top_body_bg.png Content-Type: image/png; name=top_body_bg.png Content-Location: http://martanek.net/css/img/top_body_bg.png Content-Transfer-Encoding: Base64 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 SUVORK5CYII= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=martanek_logo.png Content-Type: image/png; name=martanek_logo.png Content-Location: http://martanek.net/templates/images/martanek_logo.png Content-Transfer-Encoding: Base64 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 Tpky5ck/7XtrV6XSsyl/33fA209ykbF84LWKp0c+XzbiWuyzalPZDy4wnxfB1J1n fKZE95OMxN45v9h7Pro/njY/4FqDDTbY4P8WrAKOnKTdMWAkWEPPp0ziolJepmVk gNiur6+37fDQUPCtnWWxsbGgJW/evBkUbpC7kyYkybho1Llt4iSTjWjfdkKn8Jwl 8wqgkX379m3bfhD+OS0tbcaMGUVFRaAbMsYcfVt5ZJXgUJh4VHFv+8hbLvRU0QcZ oiUswxhnR6hDpEpG9Y06/OrifC4PyQYTluOCy4dHYxVYJyPsOAbhU6RSl5Zwze4u +4NReNCvsJwr/G9466vvfef7v2xra+vv709KSnp7x64/vnAgEAjgOYKozjlftBYe NRYdkiZV7RuWz+jp7oB91fOv7HvxtTKiZoC7Y7zAc9djd/qpc/NwazLyXhe8FpPO w0rciuc7ch4oR8pcmakvwh75RebzgpgjQR63dd/4Be6FWM2SojAYOV6u2AVEf2zu 9Icqbn35/nAdQjD2347BBhts8OVinxR3XKtk5JKxTOkVahKsj0ysbCJmG0SoZTFf SUkJiJbE9OkgOCtON1w1PQ/uAiod6Md+v7+4KHP3gYZAGFdnLmjMmLQDizg16t7L 5hqTKBq+ZlHpwMDAN777s4A/FBkZmZycDAr3woULy8vLQWxbliUUIDTbCy0bw8gp WgPcNHXVfxv5wbjCRN/LVsqquFBqqzaTuxN+/rW2upbgtURLGltTvTrG3RHXytm3 FYGKSK9CLJpg+pwwti8vFHKL2riTGBbX2Pa//ufzP/yPZ7nSF7FJC85Bd4dw6du4 XRFsNlRh+Yd7LyklKXn2pQPPbN0HbRIZZKD6KRwLtngxOFUZ7+5zUWOX99b9RDp6 Itt4/3lTz1TVeKE4V8QZO1fnKDka5thZuaNCR8GI+RyFhbPGJvp91uPF9m2nDzoO Us45c95nVLz1+yavhQbDtjyf6p2E7I9sn+prKfaBjuW3Y7DBBht8+diHrCeut3IM WFJ8CLFgS6826DlCjIdCw4mJiaBVy3Le1skzzQODQZC4oHPfeeedv/jFL0BRnjo5 9fipTqLMuVrD87ZP3ARl+JyQRWfOnPmzn/2s/FQTIb7IqMioqCgQjjk5OYcPH46J iVE2cfkpBZX61B5u7vLMwDJsU03qacdGRxRMSAoGgiDlM9IyGlu6amrb0TKKgod4 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 wQpLAeyTIiMjz549OxwaRiVSVQBTFnKLOulzBLEqjaq4zEa9M1wyqiYnJ6MjQJlG xJPy4ZOiajZ8ja39ew43vP7663D3pKSk4mlF//iFTcIiYcuKHZJLnLjvs+tdh21c hPDWh1WHCfUPhr/3/WcTYhMXlSy68daJ+FxyUidU1Jf3D/U5jH4D/v6kuJTKE61v vFy5/eVT218589a2s2+9WvXWtqrt26pef+XMqy+f3vFWlXYNOL8gJ6LezXnUpnjn WahzPvRv3GCDDR4vmKmYKIY8W2PFUgFBOg5ZZonQMCYFgRhbsmCGdIjaoFlLlYe7 4WWCCMvyB4b3HhIxzKDSOYxXJ043YYi1qqatwtEc8S3MgwP9/VVVVefOnevp6QEl UljIdZVJeRcs2iE0eiLZwaYWJoPA3r17N6zCh4+dU0U3QD5ZEaLApahx6WM+iX0S 4zeW1dgWsHyxkyZN+uxnP9vW2pSaKKsdq7Eoik6H8hspwakqJimNupZPVJH0iUqa 0D40GAzTdw80QU9qa2vT09NB+bt51XTZpiy8iG5wqmqGOfNMvHM+0kjOqOsVUOdw nGdZpoLw7HRr4cKFr7zySkJCwskzzWMaO7NiYOwPPvigGHuS7Rk7wbGj0i3dz7r0 hjKOMKyqiZbtAE87W938k5/8BJ71Qw89dMftm7dv356WlhYXFwevChJ6o0tBjVdy 1DQ1NS1btqyltUUxAzleAep5D7V3YcQ7qd8TZOqhmusnEAgIA7XYYw0z9XbJ6p+e sVsyB7ysvLmpPfjaa691dnZmZWUtWTTrzo0L5DMK4zOS75Xzvin2V5uHYbCgcztt QwdqzvR9+19/uah46crr5l29LBlr0b1b/nZ7X5vsudhoJsYm2zaWnMeNqsOtgt5p +v6/R+cHrd8ZXatdh3J+uN+4wQYbPL4w00m+Olz5UrHK0bYJ90aGRUXQ4ilZopi0 3z916tTCCQmgnYjqjbpAoTSeOqsvO3qiIScnByQKUkx39QweKa/DiqKoW3AdO6uc r9Kj19PTXV1d3d/fD0sTrP6wRcCCSLoUI5besoVzldtxMbSoQARbwY36+vr2l1Uh nweqVkSUUo5AVZjKT2ahfuyTX/oOHatG4yqs4JmpMukH7yX/i4+PHxgY0EWg1W5D VqaWxbiYMpgzVXlTyIaGloEde07v378fRcKE3JSSaSlYLBkVWYwnw73A6Pn3RYCI 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 TkSuQmCC ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=bg-content-left.png Content-Type: image/png; name=bg-content-left.png Content-Location: http://martanek.net/css/img/bg-content-left.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABIAAAFgCAIAAAA5Mb5+AAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAVXSURBVHja 7FtZjttGEO0qEQgQ5yc+QD6DOUIA+8cH8glyolwqPkGcIItHIsWuVO9NspubSIrS kBAkitOPtS9d1MDnX38T048CAJaHEck0DFOw7urWlQKwASOp/swsEJFdr0/cu8ww 2QToQ8YnCRiTMl/dUillrT9q0UQ2ZCNLSjPGKxgja4WUFu9vx9QwIoVENTPqWdTr +aikPuNzD4OWVPqW6vXpw8vHX35+9/13+qIwCy2TMczo0CD53oz5+5/XP//6z/0d UuZW1Fi/RjYWTL7/8Yc/vv4b6ThlbtaHQmrJNEV5vcrIgCJtbtII9VVqgkIpLed5 gUnQh2LS3p3qa62ppZhswSxWgUkRb1CDtGweFNhWQBrDpDAf/jo1b2MWdJj0n5Hj J6mhN5t+oX91RUrKphagfVkmNPE2Qb6Y1KTlNJsqIDI3GDcJPIJxgJQik3YT7l0E l28Rb/uklkppQwONwWEctcjsytOgrQ++1gMDp30SHQ8b0GROm23ZwCmSvxgPackG Q7JZe3coQsu50DlXgEFWtqS5Na+ZYkLKuRqycU7QhjKyuXtDyrkGNJkM05wr61jn i5z3KIJZFoi6MOEwnCkpDmp9F0rYTQoyGhFaboiKVSt/FdeqNN9VXbhWV/eqqjOz x5+6gHiCNhqKsrpYBuqrXl2W5WtVnqvyQrra8FUXPpYmEyzKy6urFQy0sPP52+Xy jSXhrwwzlTngWCW8yFGrNbVLeTmbd1JlgIEV69MoRpr0zu9xSvPn5gQRdRlIhenv X75aaooTkrbeKo5fXn6qqrqqEq0Jdl1OOFl72hzsVj2jHknjYPY7unqTSeMNmF9U 216A+ls1bEkW3E/jxzIZ44vixOV7LEy5oG6D+MATTqFm5ZQTmcwXxFRjyNqvG1VC tRswhtqQ6i21wRXJ+6CYdcyEFWMWuU4yuDuml6QuNFS+qWz3hSEI6HSID2Juuw/x nONITHv7gLZJEtTsOCFsQmgrleRSw0LUfAdqe6eM0VeQrSfnjTO3KUOSfCOGIzHx SdThcZ7gHZugrkM8SXSrnvV0ipz4MaJbt9q9e1O1d5HU78F7CFOn+tCEbxhvt8Ja rJpdfrwnBPTzAegmzIcNnDD1QLsVm08Ncdk8iXb0o7px1QYi9JS1FTTp9+c9reVC BohHUPdoMJKmC6XDtB1qi4+Q6iunMLm3pICRARDXaQyLGSloWod3R002OiwMefIm apO9BBHXtJsb7rbDdLIB5ORd/iCTIU+agQ2EUQbmzYDJLeVNdlteNkw0t8NpMk/N JDDMDDeLQYdMIhuTVnSzUzecnKUSWlOTELYJO9sJz40AO/umULbHPEldoVOYCAOR n7Q/lgGiRyHcp4HUjxd1w7DjWRA8TwT4GmC80TymWass3ncDHT+o3VMENO4hST0V 43JBcrpzbbzL19lzzYqzGAwmtTNzqqkhgCMbjKm/11laJf11B3tUR5J6qql/gGYm T6qrl1Sbh8PjNQkzZQtIWlWTNpH49g3Xdq6bXNn2kzOev40qHSI8Ekj/VmOD6J5h gAkR0LabpAlegv7nLPO8ZA6TqnbPi4D9JHM/HHDzgUYFf+i+JBummwXOiAxbtAu9 nhBIoCdoelfoFHYr2/xqeluD8axe0r8vGkyvU8YsM5mkewXOtp35FtOZW2ZBT54n t4LRE8u2yXZ9zIjxDfvktnOu3D9L7E2TW+1Nd97hjYydI5m/dVj4v59HiO4D9iC1 +4Dl4s0l5jmPyY/OfEHYKd8/vVWVSHnUgGVgiPCcdqPD3AfsgB2w8VvNQ5PHBOOA HbADNv+nGwfsgN0E+1+AAQD5csB6FmSPGgAAAABJRU5ErkJggg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=bg-content-middle.png Content-Type: image/png; name=bg-content-middle.png Content-Location: http://martanek.net/css/img/bg-content-middle.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAQAAAFgCAIAAAATgU/RAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEDSURBVHja 7JTRDoIwDEXXZb/rF/hFfpjx0Qc0ho1ttmx2A8HwABiS7oHksPb2cmuE0/miPscA QAGlYgUxFIh0MhvvHVKG4Du8SWx8ZxPg0zjXBu8TwOP5woJcdr3di3QIZahW1RmA qXySUZgpY2P4YcObuqeogarL4IeDKcBujMxw97fr/iVkB1DqpnrIe6yNAgkUczry fmLE/VDSvJLQf3OGLm0SM6AtpCq8NNbaHBAKONuiAPXgk3MjgaZpl2ewBQy2PV7w IgFOg25m1VZ2nSLnobDbUM1D9T5D9Q6J0q93uxDXlTZaq0MY/f+ccW7w378aAQEB AQEBAQEBgUPDW4ABAPK0dJi4u66OAAAAAElFTkSuQmCC ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=bg-content-right.png Content-Type: image/png; name=bg-content-right.png Content-Location: http://martanek.net/css/img/bg-content-right.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABIAAAFgCAIAAAA5Mb5+AAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAVVSURBVHja 7FpLkqQ2EFUmqp0340PMGbzwlXwCn8iXmJhFh8MnmBh76YXDS0f0TEdTBUrrjwRC IBqoT1NdQVBdPPL38iNR8Muvv7HyFweAJTDGKPkFAGZhJJJXg7tdEs+FaOOvhT4H BbQnCg8YgXnbNg4mX6iP8lJ5kQjBPRfwtjmHGCUUKwAhjxIMQPb/RKFA3lxenRB1 lFcLUhhSikkFQSGtvE4gP9cWhlUlr0Zsq+qkxSMRWe8Yy6mzEJ6/vTjTpSLM3PH7 S/30x1+ff/+zqri+V6U1Bw/j//z7nxftbs+k4J9/+vjp6Quq6yoIXj4ANITJqPz4 4QeS36moknlb3ziWJCkCTSMkE0wEQPsUQ2nx1d0JKdFalPQkgkGrE0dlFigJXlrb tJau6kB924x/PbATC9qzCsASLomUDE6JIlPBEaKDEY3ljpYKECJznrQ3ImcSSysJ Y5k6fDtPKr/2lQTLQxMuFry9NBgrCwx6Tpy0TZUExfeEmmmYTxbDChhITMOsVeZP ewBieb5yGZ9QGHLzMWVa6BI29EoU4rkugUlPwpCP1jcmUbryFNtmAL2IA5tSMmUb 9G0bkEt7bSQDevpF4VbkgqRPjG3qaN4924CNUTnDSZejoaqCfN+hNEwI0Stb5pOu n+SQg+zWBdSLtIQiXcNAJ4IziSLbZH8LW4R8IUpRiqWXy2vFedNcdNPShjjV+Plc G5SvNOq/nMsrLudatg5TamV556JtK0tGXr++Rgjdb0mX/7p+0RroyEpM28hOYiLO L5eaKWNcnVAGoE5XIVufanr6OvlRSpMffRmlZMGTso2Tvfeibvr8XA9hpxOeTtXX r3+jsg11W0StvuVkbmZR0rQuQ42yMOkY2xn7fMjBdIsjE8kCaRZJJH3f69KYAQh3 NQvpl4HJxs15Nbx6AiYdbgwjzau5MPlqW5GxecKTmaE3dTOI25UrR57wOGs0Hojl 44qwhbatD+tc4ofJOWpjck4bNv+r2nY7sKApXj3cEJbUfL4kw52ovpnV4shIGOPt 0OYIs6pLJs1bVZqzzb+3zoC8edwTjgSZcxJF4Xb4BHNnhjtFHT0TQFF5ve3sNkc5 xfQivnN2J4Pkt0neFDc7xGFpW9w2Ta1uLNDwmgHAnvSZm2x8eGmYLNbdfrHvxv7H aIt+2opcMDJP4lJpU3VyPFBdJNAWQdiqcnULwdTezTZxC9ej0wGYUYIWAXlWQ7vC 9ap6xmA+YneRAYhdAHCFAAytL5vwiorXzv1tTqNCN2abEWwbluA4zdeL23iadu0c x/chaMcAoOZx0LGY71gzS1CJkpvYNqlk1AkmG5XePxhnCUeEBbTkeZf48ogAsxoV 7e3J3jp4hY5zUyWoG2rAP5DYVMniSQGhPN/uJQCAfq8ZfBKwG1tk+gzA+9we45Nt EeIH7A+zyk/sXN1cBph5En2mBwP0zN2ZfTasRn4uciPhzjfhbbopBrFablu3lNgg AxiUuyTebuz/5Ga8ktsZAd3PSiBcJhV5YoZtlIv76uTC6GnA3A2rheRaSGXRivWL Ap8TruHT9Q0CcL0MKGIJ86Py1tuatGhJS1dYiBWTK+zapu34FSp7mGeLOyuZEsgn F0XuqU/0OOK+A7CwvN4LuRZ107dQ+ZE9OVZhp58HvFXJsm0W2idx9p3Mr8KS4nny wTNgXxg9sG37t/zUAPxeybX+45/ciH37RWHftendTXjDZeNRzA9YlDi77DwdsPfc uw9Y8MuB4uemx2S+CqzK/j7sfXJS0OGSVWCI8MhxoyPcB+yAHbDJ5eXhyWMH44Ad sAM2WSQPTx6wLWH/CzAAMTGp3yToU9AAAAAASUVORK5CYII= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=link_external.png Content-Type: image/png; name=link_external.png Content-Location: http://martanek.net/css/img/link_external.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4 AVnsAZubxDVmAAAAAElFTkSuQmCC ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=jak_calendar.css Content-Type: text/css; charset=windows-1250; name=jak_calendar.css Content-Location: http://martanek.net/admin/admin_templates/jak/jak_calendar.css Content-Transfer-Encoding: 8bit .cal-content { position: relative; z-index:999; border: 1px solid; border-color: #fff #000 #000 #fff; font-size: 11px; cursor: default; background: Window; color: WindowText; font-family: tahoma,verdana,sans-serif;} .cal-content table { border: 1px solid; border-color: #fff #000 #000 #fff; font-size: 11px; cursor: default; background: Window; color: WindowText; font-family: tahoma,verdana,sans-serif;} .cal-button { text-align: center; padding: 1px; border: 1px solid; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; background: ButtonFace; cursor: pointer;} .cal-nav { background: ButtonFace url(/img/widgets/calendar/menuarrow.gif) no-repeat 100% 100%;} .cal-title { font-weight: bold; cursor: move; padding: 1px; border: 1px solid #000; background: ActiveCaption; color: CaptionText; text-align: center;} body:first-of-type .cal-title { color: white; } .cal-dayname { border-bottom: 1px solid ButtonShadow; padding: 2px; text-align: center; background: ButtonFace; color: ButtonText;} .cal-weekend { color: #f00;} .cal-content thead td.mouseover { border: 2px solid; padding: 0px; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;} .cal-content thead td.mousedown { border-width: 1px; padding: 2px 0px 0px 2px; border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;} body:first-of-type .cal-content tr.mouseover td { background-color: blue; } .cal-day { width: 2em; text-align: right; padding: 2px 4px 2px 2px; cursor: pointer;} .cal-wn { padding: 2px 3px 2px 2px; border-right: 1px solid ButtonShadow; background: ButtonFace; color: ButtonText;} .cal-content tr.mouseover td { background: Highlight; color: HighlightText;} .cal-content .cal-day.mouseover { padding: 1px 3px 1px 1px; border-top: 1px solid #fff; border-right: 1px solid #000; border-bottom: 1px solid #000; border-left: 1px solid #fff;} .cal-content .cal-day.mousedown { padding: 2px 2px 0px 2px; border: 1px solid; border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;} .cal-selected { font-weight: bold; border: 1px solid; border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; padding: 2px 2px 0px 2px; background: ButtonFace; color: ButtonText;} .cal-obsolete { color: #aaa; } .cal-today { font-weight: bold; color: #00f;} .cal-status { background: ButtonFace; padding: 1px; border: 1px solid; border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; color: ButtonText; text-align: center; cursor: move;} .cal-roller { position: absolute; width: 4em; top: 0px; left: 0px; border: 1px solid; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; background: Menu; color: MenuText; font-size: 90%; padding: 1px;} body:first-of-type .cal-roller { background-color: gray; cursor: pointer; } .cal-roller .label { text-align: center; padding: 1px;} .cal-roller .selected { padding: 0px; border: 1px solid #000;} .cal-roller .mouseover { border: none; background: Highlight; color: HighlightText;} body:first-of-type .cal-roller .mouseover { background-color: blue; } .cal-launcher { margin-left: 3px; } ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=AJS.js Content-Type: application/x-javascript; charset=windows-1250; name=AJS.js Content-Location: http://martanek.net/java_script/greybox/AJS.js Content-Transfer-Encoding: Base64 QUpTPXtCQVNFX1VSTDoiIixkcmFnX29iajpudWxsLGRyYWdfZWxtOm51bGwsX2Ry b3Bfem9uZXM6W10sX2N1cl9wb3M6bnVsbCxnZXRTY3JvbGxUb3A6ZnVuY3Rpb24o KXsKdmFyIHQ7CmlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQu ZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCl7CnQ9ZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LnNjcm9sbFRvcDsKfWVsc2V7CmlmKGRvY3VtZW50LmJvZHkpewp0PWRv Y3VtZW50LmJvZHkuc2Nyb2xsVG9wOwp9Cn0KcmV0dXJuIHQ7Cn0sYWRkQ2xhc3M6 ZnVuY3Rpb24oKXsKdmFyIF8yPUFKUy5mb3JjZUFycmF5KGFyZ3VtZW50cyk7CnZh ciBfMz1fMi5wb3AoKTsKdmFyIF80PWZ1bmN0aW9uKG8pewppZighbmV3IFJlZ0V4 cCgiKF58XFxzKSIrXzMrIihcXHN8JCkiKS50ZXN0KG8uY2xhc3NOYW1lKSl7Cm8u Y2xhc3NOYW1lKz0oby5jbGFzc05hbWU/IiAiOiIiKStfMzsKfQp9OwpBSlMubWFw KF8yLGZ1bmN0aW9uKF82KXsKXzQoXzYpOwp9KTsKfSxzZXRTdHlsZTpmdW5jdGlv bigpewp2YXIgXzc9QUpTLmZvcmNlQXJyYXkoYXJndW1lbnRzKTsKdmFyIF84PV83 LnBvcCgpOwp2YXIgXzk9XzcucG9wKCk7CkFKUy5tYXAoXzcsZnVuY3Rpb24oX2Ep ewpfYS5zdHlsZVtfOV09QUpTLmdldENzc0RpbShfOCk7Cn0pOwp9LGV4dGVuZDpm dW5jdGlvbihfYil7CnZhciBfYz1uZXcgdGhpcygibm9faW5pdCIpOwpmb3IoayBp biBfYil7CnZhciBfZD1fY1trXTsKdmFyIF9lPV9iW2tdOwppZihfZCYmX2QhPV9l JiZ0eXBlb2YgX2U9PSJmdW5jdGlvbiIpewpfZT10aGlzLl9wYXJlbnRpemUoX2Us X2QpOwp9Cl9jW2tdPV9lOwp9CnJldHVybiBuZXcgQUpTLkNsYXNzKF9jKTsKfSxs b2c6ZnVuY3Rpb24obyl7CmlmKHdpbmRvdy5jb25zb2xlKXsKY29uc29sZS5sb2co byk7Cn1lbHNlewp2YXIgZGl2PUFKUy4kKCJhanNfbG9nZ2VyIik7CmlmKCFkaXYp ewpkaXY9QUpTLkRJVih7aWQ6ImFqc19sb2dnZXIiLCJzdHlsZSI6ImNvbG9yOiBn cmVlbjsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwIn0pOwpkaXYuc3R5bGUu dG9wPUFKUy5nZXRTY3JvbGxUb3AoKSsicHgiOwpBSlMuQUNOKEFKUy5nZXRCb2R5 KCksZGl2KTsKfQpBSlMuc2V0SFRNTChkaXYsIiIrbyk7Cn0KfSxzZXRIZWlnaHQ6 ZnVuY3Rpb24oKXsKdmFyIF8xMT1BSlMuZm9yY2VBcnJheShhcmd1bWVudHMpOwpf MTEuc3BsaWNlKF8xMS5sZW5ndGgtMSwwLCJoZWlnaHQiKTsKQUpTLnNldFN0eWxl LmFwcGx5KG51bGwsXzExKTsKfSxfZ2V0UmVhbFNjb3BlOmZ1bmN0aW9uKGZuLF8x Myl7Cl8xMz1BSlMuJEEoXzEzKTsKdmFyIF8xND1mbi5fY3Njb3BlfHx3aW5kb3c7 CnJldHVybiBmdW5jdGlvbigpewp2YXIgXzE1PUFKUy4kRkEoYXJndW1lbnRzKS5j b25jYXQoXzEzKTsKcmV0dXJuIGZuLmFwcGx5KF8xNCxfMTUpOwp9Owp9LGRvY3Vt ZW50SW5zZXJ0OmZ1bmN0aW9uKGVsbSl7CmlmKHR5cGVvZiAoZWxtKT09InN0cmlu ZyIpewplbG09QUpTLkhUTUwyRE9NKGVsbSk7Cn0KZG9jdW1lbnQud3JpdGUoIjxz cGFuIGlkPVwiZHVtbXlfaG9sZGVyXCI+PC9zcGFuPiIpOwpBSlMuc3dhcERPTShB SlMuJCgiZHVtbXlfaG9sZGVyIiksZWxtKTsKfSxnZXRXaW5kb3dTaXplOmZ1bmN0 aW9uKGRvYyl7CmRvYz1kb2N8fGRvY3VtZW50Owp2YXIgXzE4LF8xOTsKaWYoc2Vs Zi5pbm5lckhlaWdodCl7Cl8xOD1zZWxmLmlubmVyV2lkdGg7Cl8xOT1zZWxmLmlu bmVySGVpZ2h0Owp9ZWxzZXsKaWYoZG9jLmRvY3VtZW50RWxlbWVudCYmZG9jLmRv Y3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpewpfMTg9ZG9jLmRvY3VtZW50RWxl bWVudC5jbGllbnRXaWR0aDsKXzE5PWRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50 SGVpZ2h0Owp9ZWxzZXsKaWYoZG9jLmJvZHkpewpfMTg9ZG9jLmJvZHkuY2xpZW50 V2lkdGg7Cl8xOT1kb2MuYm9keS5jbGllbnRIZWlnaHQ7Cn0KfQp9CnJldHVybiB7 InciOl8xOCwiaCI6XzE5fTsKfSxmbGF0dGVuTGlzdDpmdW5jdGlvbihfMWEpewp2 YXIgcj1bXTsKdmFyIF8xYz1mdW5jdGlvbihyLGwpewpBSlMubWFwKGwsZnVuY3Rp b24obyl7CmlmKG89PW51bGwpewp9ZWxzZXsKaWYoQUpTLmlzQXJyYXkobykpewpf MWMocixvKTsKfWVsc2V7CnIucHVzaChvKTsKfQp9Cn0pOwp9OwpfMWMocixfMWEp OwpyZXR1cm4gcjsKfSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKG9iail7CnJldHVybiAo dHlwZW9mIG9iaj09ImZ1bmN0aW9uIik7Cn0sc2V0RXZlbnRLZXk6ZnVuY3Rpb24o ZSl7CmUua2V5PWUua2V5Q29kZT9lLmtleUNvZGU6ZS5jaGFyQ29kZTsKaWYod2lu ZG93LmV2ZW50KXsKZS5jdHJsPXdpbmRvdy5ldmVudC5jdHJsS2V5OwplLnNoaWZ0 PXdpbmRvdy5ldmVudC5zaGlmdEtleTsKfWVsc2V7CmUuY3RybD1lLmN0cmxLZXk7 CmUuc2hpZnQ9ZS5zaGlmdEtleTsKfQpzd2l0Y2goZS5rZXkpewpjYXNlIDYzMjMy OgplLmtleT0zODsKYnJlYWs7CmNhc2UgNjMyMzM6CmUua2V5PTQwOwpicmVhazsK Y2FzZSA2MzIzNToKZS5rZXk9Mzk7CmJyZWFrOwpjYXNlIDYzMjM0OgplLmtleT0z NzsKYnJlYWs7Cn0KfSxyZW1vdmVFbGVtZW50OmZ1bmN0aW9uKCl7CnZhciBfMjI9 QUpTLmZvcmNlQXJyYXkoYXJndW1lbnRzKTsKQUpTLm1hcChfMjIsZnVuY3Rpb24o ZWxtKXsKQUpTLnN3YXBET00oZWxtLG51bGwpOwp9KTsKfSxfdW5sb2FkTGlzdGVu ZXJzOmZ1bmN0aW9uKCl7CmlmKEFKUy5saXN0ZW5lcnMpewpBSlMubWFwKEFKUy5s aXN0ZW5lcnMsZnVuY3Rpb24oZWxtLF8yNSxmbil7CkFKUy5SRVYoZWxtLF8yNSxm bik7Cn0pOwp9CkFKUy5saXN0ZW5lcnM9W107Cn0sam9pbjpmdW5jdGlvbihfMjcs XzI4KXsKdHJ5ewpyZXR1cm4gXzI4LmpvaW4oXzI3KTsKfQpjYXRjaChlKXsKdmFy IHI9XzI4WzBdfHwiIjsKQUpTLm1hcChfMjgsZnVuY3Rpb24oZWxtKXsKcis9XzI3 K2VsbTsKfSwxKTsKcmV0dXJuIHIrIiI7Cn0KfSxnZXRJbmRleDpmdW5jdGlvbihl bG0sXzJjLF8yZCl7CmZvcih2YXIgaT0wO2k8XzJjLmxlbmd0aDtpKyspewppZihf MmQmJl8yZChfMmNbaV0pfHxlbG09PV8yY1tpXSl7CnJldHVybiBpOwp9Cn0KcmV0 dXJuIC0xOwp9LGlzSW46ZnVuY3Rpb24oZWxtLF8zMCl7CnZhciBpPUFKUy5nZXRJ bmRleChlbG0sXzMwKTsKaWYoaSE9LTEpewpyZXR1cm4gdHJ1ZTsKfWVsc2V7CnJl dHVybiBmYWxzZTsKfQp9LGlzQXJyYXk6ZnVuY3Rpb24ob2JqKXsKcmV0dXJuIG9i aiBpbnN0YW5jZW9mIEFycmF5Owp9LHNldExlZnQ6ZnVuY3Rpb24oKXsKdmFyIF8z Mz1BSlMuZm9yY2VBcnJheShhcmd1bWVudHMpOwpfMzMuc3BsaWNlKF8zMy5sZW5n dGgtMSwwLCJsZWZ0Iik7CkFKUy5zZXRTdHlsZS5hcHBseShudWxsLF8zMyk7Cn0s YXBwZW5kQ2hpbGROb2RlczpmdW5jdGlvbihlbG0pewppZihhcmd1bWVudHMubGVu Z3RoPj0yKXsKQUpTLm1hcChhcmd1bWVudHMsZnVuY3Rpb24obil7CmlmKEFKUy5p c1N0cmluZyhuKSl7Cm49QUpTLlROKG4pOwp9CmlmKEFKUy5pc0RlZmluZWQobikp ewplbG0uYXBwZW5kQ2hpbGQobik7Cn0KfSwxKTsKfQpyZXR1cm4gZWxtOwp9LGdl dEVsZW1lbnRzQnlUYWdBbmRDbGFzc05hbWU6ZnVuY3Rpb24oXzM2LF8zNyxfMzgs XzM5KXsKdmFyIF8zYT1bXTsKaWYoIUFKUy5pc0RlZmluZWQoXzM4KSl7Cl8zOD1k b2N1bWVudDsKfQppZighQUpTLmlzRGVmaW5lZChfMzYpKXsKXzM2PSIqIjsKfQp2 YXIgZWxzPV8zOC5nZXRFbGVtZW50c0J5VGFnTmFtZShfMzYpOwp2YXIgXzNjPWVs cy5sZW5ndGg7CnZhciBfM2Q9bmV3IFJlZ0V4cCgiKF58XFxzKSIrXzM3KyIoXFxz fCQpIik7CmZvcihpPTAsaj0wO2k8XzNjO2krKyl7CmlmKF8zZC50ZXN0KGVsc1tp XS5jbGFzc05hbWUpfHxfMzc9PW51bGwpewpfM2Fbal09ZWxzW2ldOwpqKys7Cn0K fQppZihfMzkpewpyZXR1cm4gXzNhWzBdOwp9ZWxzZXsKcmV0dXJuIF8zYTsKfQp9 LGlzT3BlcmE6ZnVuY3Rpb24oKXsKcmV0dXJuIChuYXZpZ2F0b3IudXNlckFnZW50 LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigib3BlcmEiKSE9LTEpOwp9LGlzU3RyaW5n OmZ1bmN0aW9uKG9iail7CnJldHVybiAodHlwZW9mIG9iaj09InN0cmluZyIpOwp9 LGhpZGVFbGVtZW50OmZ1bmN0aW9uKGVsbSl7CnZhciBfNDA9QUpTLmZvcmNlQXJy YXkoYXJndW1lbnRzKTsKQUpTLm1hcChfNDAsZnVuY3Rpb24oZWxtKXsKZWxtLnN0 eWxlLmRpc3BsYXk9Im5vbmUiOwp9KTsKfSxzZXRPcGFjaXR5OmZ1bmN0aW9uKGVs bSxwKXsKZWxtLnN0eWxlLm9wYWNpdHk9cDsKZWxtLnN0eWxlLmZpbHRlcj0iYWxw aGEob3BhY2l0eT0iK3AqMTAwKyIpIjsKfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24o ZWxtLF80NSl7Cl80NS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbG0sXzQ1KTsK cmV0dXJuIGVsbTsKfSxzZXRXaWR0aDpmdW5jdGlvbigpewp2YXIgXzQ2PUFKUy5m b3JjZUFycmF5KGFyZ3VtZW50cyk7Cl80Ni5zcGxpY2UoXzQ2Lmxlbmd0aC0xLDAs IndpZHRoIik7CkFKUy5zZXRTdHlsZS5hcHBseShudWxsLF80Nik7Cn0sY3JlYXRl QXJyYXk6ZnVuY3Rpb24odil7CmlmKEFKUy5pc0FycmF5KHYpJiYhQUpTLmlzU3Ry aW5nKHYpKXsKcmV0dXJuIHY7Cn1lbHNlewppZighdil7CnJldHVybiBbXTsKfWVs c2V7CnJldHVybiBbdl07Cn0KfQp9LGlzRGljdDpmdW5jdGlvbihvKXsKdmFyIF80 OT1TdHJpbmcobyk7CnJldHVybiBfNDkuaW5kZXhPZigiIE9iamVjdCIpIT0tMTsK fSxpc01vemlsbGE6ZnVuY3Rpb24oKXsKcmV0dXJuIChuYXZpZ2F0b3IudXNlckFn ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiZ2Vja28iKSE9LTEmJm5hdmlnYXRv ci5wcm9kdWN0U3ViPj0yMDAzMDIxMCk7Cn0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpm dW5jdGlvbihlbG0sXzRiLGZuLF80ZCl7CnZhciBfNGU9ImFqc2xfIitfNGIrZm47 CmlmKCFfNGQpewpfNGQ9ZmFsc2U7Cn0KZm49ZWxtW180ZV18fGZuOwppZihlbG1b Im9uIitfNGJdPT1mbil7CmVsbVsib24iK180Yl09ZWxtW180ZSsib2xkIl07Cn0K aWYoZWxtLnJlbW92ZUV2ZW50TGlzdGVuZXIpewplbG0ucmVtb3ZlRXZlbnRMaXN0 ZW5lcihfNGIsZm4sXzRkKTsKaWYoQUpTLmlzT3BlcmEoKSl7CmVsbS5yZW1vdmVF dmVudExpc3RlbmVyKF80YixmbiwhXzRkKTsKfQp9ZWxzZXsKaWYoZWxtLmRldGFj aEV2ZW50KXsKZWxtLmRldGFjaEV2ZW50KCJvbiIrXzRiLGZuKTsKfQp9Cn0sY2Fs bExhdGVyOmZ1bmN0aW9uKGZuLF81MCl7CnZhciBfNTE9ZnVuY3Rpb24oKXsKZm4o KTsKfTsKd2luZG93LnNldFRpbWVvdXQoXzUxLF81MCk7Cn0sc2V0VG9wOmZ1bmN0 aW9uKCl7CnZhciBfNTI9QUpTLmZvcmNlQXJyYXkoYXJndW1lbnRzKTsKXzUyLnNw bGljZShfNTIubGVuZ3RoLTEsMCwidG9wIik7CkFKUy5zZXRTdHlsZS5hcHBseShu dWxsLF81Mik7Cn0sX2NyZWF0ZURvbVNob3J0Y3V0czpmdW5jdGlvbigpewp2YXIg XzUzPVsidWwiLCJsaSIsInRkIiwidHIiLCJ0aCIsInRib2R5IiwidGFibGUiLCJp bnB1dCIsInNwYW4iLCJiIiwiYSIsImRpdiIsImltZyIsImJ1dHRvbiIsImgxIiwi aDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImJyIiwidGV4dGFyZWEiLCJmb3JtIiwi cCIsInNlbGVjdCIsIm9wdGlvbiIsIm9wdGdyb3VwIiwiaWZyYW1lIiwic2NyaXB0 IiwiY2VudGVyIiwiZGwiLCJkdCIsImRkIiwic21hbGwiLCJwcmUiLCJpIl07CnZh ciBfNTQ9ZnVuY3Rpb24oZWxtKXsKQUpTW2VsbS50b1VwcGVyQ2FzZSgpXT1mdW5j dGlvbigpewpyZXR1cm4gQUpTLmNyZWF0ZURPTS5hcHBseShudWxsLFtlbG0sYXJn dW1lbnRzXSk7Cn07Cn07CkFKUy5tYXAoXzUzLF81NCk7CkFKUy5UTj1mdW5jdGlv bihfNTYpewpyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXzU2KTsKfTsK fSxhZGRDYWxsYmFjazpmdW5jdGlvbihmbil7CnRoaXMuY2FsbGJhY2tzLnVuc2hp ZnQoZm4pOwp9LGJpbmRNZXRob2RzOmZ1bmN0aW9uKF81OCl7CmZvcih2YXIgayBp biBfNTgpewp2YXIgXzVhPV81OFtrXTsKaWYodHlwZW9mIChfNWEpPT0iZnVuY3Rp b24iKXsKXzU4W2tdPUFKUy4kYihfNWEsXzU4KTsKfQp9Cn0scGFydGlhbDpmdW5j dGlvbihmbil7CnZhciBfNWM9QUpTLiRGQShhcmd1bWVudHMpOwpfNWMuc2hpZnQo KTsKcmV0dXJuIGZ1bmN0aW9uKCl7Cl81Yz1fNWMuY29uY2F0KEFKUy4kRkEoYXJn dW1lbnRzKSk7CnJldHVybiBmbi5hcHBseSh3aW5kb3csXzVjKTsKfTsKfSxpc051 bWJlcjpmdW5jdGlvbihvYmopewpyZXR1cm4gKHR5cGVvZiBvYmo9PSJudW1iZXIi KTsKfSxnZXRDc3NEaW06ZnVuY3Rpb24oZGltKXsKaWYoQUpTLmlzU3RyaW5nKGRp bSkpewpyZXR1cm4gZGltOwp9ZWxzZXsKcmV0dXJuIGRpbSsicHgiOwp9Cn0saXNJ ZTpmdW5jdGlvbigpewpyZXR1cm4gKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dl ckNhc2UoKS5pbmRleE9mKCJtc2llIikhPS0xJiZuYXZpZ2F0b3IudXNlckFnZW50 LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigib3BlcmEiKT09LTEpOwp9LHJlbW92ZUNs YXNzOmZ1bmN0aW9uKCl7CnZhciBfNWY9QUpTLmZvcmNlQXJyYXkoYXJndW1lbnRz KTsKdmFyIGNscz1fNWYucG9wKCk7CnZhciBfNjE9ZnVuY3Rpb24obyl7Cm8uY2xh c3NOYW1lPW8uY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxzPyIrY2xz LCJnIiksIiIpOwp9OwpBSlMubWFwKF81ZixmdW5jdGlvbihlbG0pewpfNjEoZWxt KTsKfSk7Cn0sc2V0SFRNTDpmdW5jdGlvbihlbG0sXzY1KXsKZWxtLmlubmVySFRN TD1fNjU7CnJldHVybiBlbG07Cn0sbWFwOmZ1bmN0aW9uKF82NixmbixfNjgsXzY5 KXsKdmFyIGk9MCxsPV82Ni5sZW5ndGg7CmlmKF82OCl7Cmk9XzY4Owp9CmlmKF82 OSl7Cmw9XzY5Owp9CmZvcihpO2k8bDtpKyspewp2YXIgdmFsPWZuKF82NltpXSxp KTsKaWYodmFsIT11bmRlZmluZWQpewpyZXR1cm4gdmFsOwp9Cn0KfSxhZGRFdmVu dExpc3RlbmVyOmZ1bmN0aW9uKGVsbSxfNmUsZm4sXzcwLF83MSl7CnZhciBfNzI9 ImFqc2xfIitfNmUrZm47CmlmKCFfNzEpewpfNzE9ZmFsc2U7Cn0KQUpTLmxpc3Rl bmVycz1BSlMuJEEoQUpTLmxpc3RlbmVycyk7CmlmKEFKUy5pc0luKF82ZSxbImtl eXByZXNzIiwia2V5ZG93biIsImtleXVwIiwiY2xpY2siXSkpewp2YXIgXzczPWZu Owpmbj1mdW5jdGlvbihlKXsKQUpTLnNldEV2ZW50S2V5KGUpOwpyZXR1cm4gXzcz LmFwcGx5KHdpbmRvdyxhcmd1bWVudHMpOwp9Owp9CnZhciBfNzU9QUpTLmlzSW4o XzZlLFsic3VibWl0IiwibG9hZCIsInNjcm9sbCIsInJlc2l6ZSJdKTsKdmFyIF83 Nj1BSlMuJEEoZWxtKTsKQUpTLm1hcChfNzYsZnVuY3Rpb24oXzc3KXsKaWYoXzcw KXsKdmFyIF83OD1mbjsKZm49ZnVuY3Rpb24oZSl7CkFKUy5SRVYoXzc3LF82ZSxm bik7CnJldHVybiBfNzguYXBwbHkod2luZG93LGFyZ3VtZW50cyk7Cn07Cn0KaWYo Xzc1KXsKdmFyIF83YT1fNzdbIm9uIitfNmVdOwp2YXIgXzdiPWZ1bmN0aW9uKCl7 CmlmKF83YSl7CmZuKGFyZ3VtZW50cyk7CnJldHVybiBfN2EoYXJndW1lbnRzKTsK fWVsc2V7CnJldHVybiBmbihhcmd1bWVudHMpOwp9Cn07Cl83N1tfNzJdPV83YjsK Xzc3W183Misib2xkIl09XzdhOwplbG1bIm9uIitfNmVdPV83YjsKfWVsc2V7Cl83 N1tfNzJdPWZuOwppZihfNzcuYXR0YWNoRXZlbnQpewpfNzcuYXR0YWNoRXZlbnQo Im9uIitfNmUsZm4pOwp9ZWxzZXsKaWYoXzc3LmFkZEV2ZW50TGlzdGVuZXIpewpf NzcuYWRkRXZlbnRMaXN0ZW5lcihfNmUsZm4sXzcxKTsKfQp9CkFKUy5saXN0ZW5l cnMucHVzaChbXzc3LF82ZSxmbl0pOwp9Cn0pOwp9LHByZWxvYWRJbWFnZXM6ZnVu Y3Rpb24oKXsKQUpTLkFFVih3aW5kb3csImxvYWQiLEFKUy4kcChmdW5jdGlvbihf N2MpewpBSlMubWFwKF83YyxmdW5jdGlvbihzcmMpewp2YXIgcGljPW5ldyBJbWFn ZSgpOwpwaWMuc3JjPXNyYzsKfSk7Cn0sYXJndW1lbnRzKSk7Cn0sZm9yY2VBcnJh eTpmdW5jdGlvbihfN2Ypewp2YXIgcj1bXTsKQUpTLm1hcChfN2YsZnVuY3Rpb24o ZWxtKXsKci5wdXNoKGVsbSk7Cn0pOwpyZXR1cm4gcjsKfSx1cGRhdGU6ZnVuY3Rp b24obDEsbDIpewpmb3IodmFyIGkgaW4gbDIpewpsMVtpXT1sMltpXTsKfQpyZXR1 cm4gbDE7Cn0sZ2V0Qm9keTpmdW5jdGlvbigpewpyZXR1cm4gQUpTLiRieXRjKCJi b2R5IilbMF07Cn0sSFRNTDJET006ZnVuY3Rpb24oXzg1LF84Nil7CnZhciBkPUFK Uy5ESVYoKTsKZC5pbm5lckhUTUw9Xzg1OwppZihfODYpewpyZXR1cm4gZC5jaGls ZE5vZGVzWzBdOwp9ZWxzZXsKcmV0dXJuIGQ7Cn0KfSxnZXRFbGVtZW50OmZ1bmN0 aW9uKGlkKXsKaWYoQUpTLmlzU3RyaW5nKGlkKXx8QUpTLmlzTnVtYmVyKGlkKSl7 CnJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Cn1lbHNlewpyZXR1 cm4gaWQ7Cn0KfSxzaG93RWxlbWVudDpmdW5jdGlvbigpewp2YXIgXzg5PUFKUy5m b3JjZUFycmF5KGFyZ3VtZW50cyk7CkFKUy5tYXAoXzg5LGZ1bmN0aW9uKGVsbSl7 CmVsbS5zdHlsZS5kaXNwbGF5PSIiOwp9KTsKfSxiaW5kOmZ1bmN0aW9uKGZuLF84 YyxfOGQpewpmbi5fY3Njb3BlPV84YzsKcmV0dXJuIEFKUy5fZ2V0UmVhbFNjb3Bl KGZuLF84ZCk7Cn0sY3JlYXRlRE9NOmZ1bmN0aW9uKF84ZSxfOGYpewp2YXIgaT0w LF85MTsKdmFyIGVsbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KF84ZSk7CnZhciBf OTM9XzhmWzBdOwppZihBSlMuaXNEaWN0KF84ZltpXSkpewpmb3IoayBpbiBfOTMp ewpfOTE9XzkzW2tdOwppZihrPT0ic3R5bGUifHxrPT0icyIpewplbG0uc3R5bGUu Y3NzVGV4dD1fOTE7Cn1lbHNlewppZihrPT0iYyJ8fGs9PSJjbGFzcyJ8fGs9PSJj bGFzc05hbWUiKXsKZWxtLmNsYXNzTmFtZT1fOTE7Cn1lbHNlewplbG0uc2V0QXR0 cmlidXRlKGssXzkxKTsKfQp9Cn0KaSsrOwp9CmlmKF85Mz09bnVsbCl7Cmk9MTsK fQpmb3IodmFyIGo9aTtqPF84Zi5sZW5ndGg7aisrKXsKdmFyIF85MT1fOGZbal07 CmlmKF85MSl7CnZhciBfOTU9dHlwZW9mIChfOTEpOwppZihfOTU9PSJzdHJpbmci fHxfOTU9PSJudW1iZXIiKXsKXzkxPUFKUy5UTihfOTEpOwp9CmVsbS5hcHBlbmRD aGlsZChfOTEpOwp9Cn0KcmV0dXJuIGVsbTsKfSxzd2FwRE9NOmZ1bmN0aW9uKF85 NixzcmMpewpfOTY9QUpTLmdldEVsZW1lbnQoXzk2KTsKdmFyIF85OD1fOTYucGFy ZW50Tm9kZTsKaWYoc3JjKXsKc3JjPUFKUy5nZXRFbGVtZW50KHNyYyk7Cl85OC5y ZXBsYWNlQ2hpbGQoc3JjLF85Nik7Cn1lbHNlewpfOTgucmVtb3ZlQ2hpbGQoXzk2 KTsKfQpyZXR1cm4gc3JjOwp9LGlzRGVmaW5lZDpmdW5jdGlvbihvKXsKcmV0dXJu IChvIT0idW5kZWZpbmVkIiYmbyE9bnVsbCk7Cn19OwpBSlMuJD1BSlMuZ2V0RWxl bWVudDsKQUpTLiQkPUFKUy5nZXRFbGVtZW50czsKQUpTLiRmPUFKUy5nZXRGb3Jt RWxlbWVudDsKQUpTLiRwPUFKUy5wYXJ0aWFsOwpBSlMuJGI9QUpTLmJpbmQ7CkFK Uy4kQT1BSlMuY3JlYXRlQXJyYXk7CkFKUy5EST1BSlMuZG9jdW1lbnRJbnNlcnQ7 CkFKUy5BQ049QUpTLmFwcGVuZENoaWxkTm9kZXM7CkFKUy5SQ049QUpTLnJlcGxh Y2VDaGlsZE5vZGVzOwpBSlMuQUVWPUFKUy5hZGRFdmVudExpc3RlbmVyOwpBSlMu UkVWPUFKUy5yZW1vdmVFdmVudExpc3RlbmVyOwpBSlMuJGJ5dGM9QUpTLmdldEVs ZW1lbnRzQnlUYWdBbmRDbGFzc05hbWU7CkFKUy4kQVA9QUpTLmFic29sdXRlUG9z aXRpb247CkFKUy4kRkE9QUpTLmZvcmNlQXJyYXk7CkFKUy5hZGRFdmVudExpc3Rl bmVyKHdpbmRvdywidW5sb2FkIixBSlMuX3VubG9hZExpc3RlbmVycyk7CkFKUy5f Y3JlYXRlRG9tU2hvcnRjdXRzKCk7CkFKUy5DbGFzcz1mdW5jdGlvbihfOWEpewp2 YXIgZm49ZnVuY3Rpb24oKXsKaWYoYXJndW1lbnRzWzBdIT0ibm9faW5pdCIpewpy ZXR1cm4gdGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTsKfQp9Owpmbi5w cm90b3R5cGU9XzlhOwpBSlMudXBkYXRlKGZuLEFKUy5DbGFzcy5wcm90b3R5cGUp OwpyZXR1cm4gZm47Cn07CkFKUy5DbGFzcy5wcm90b3R5cGU9e2V4dGVuZDpmdW5j dGlvbihfOWMpewp2YXIgXzlkPW5ldyB0aGlzKCJub19pbml0Iik7CmZvcihrIGlu IF85Yyl7CnZhciBfOWU9XzlkW2tdOwp2YXIgY3VyPV85Y1trXTsKaWYoXzllJiZf OWUhPWN1ciYmdHlwZW9mIGN1cj09ImZ1bmN0aW9uIil7CmN1cj10aGlzLl9wYXJl bnRpemUoY3VyLF85ZSk7Cn0KXzlkW2tdPWN1cjsKfQpyZXR1cm4gbmV3IEFKUy5D bGFzcyhfOWQpOwp9LGltcGxlbWVudDpmdW5jdGlvbihfYTApewpBSlMudXBkYXRl KHRoaXMucHJvdG90eXBlLF9hMCk7Cn0sX3BhcmVudGl6ZTpmdW5jdGlvbihjdXIs X2EyKXsKcmV0dXJuIGZ1bmN0aW9uKCl7CnRoaXMucGFyZW50PV9hMjsKcmV0dXJu IGN1ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Cn07Cn19OwpzY3JpcHRfbG9hZGVk PXRydWU7CgoKc2NyaXB0X2xvYWRlZD10cnVlOw== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=AJS_fx.js Content-Type: application/x-javascript; charset=windows-1250; name=AJS_fx.js Content-Location: http://martanek.net/java_script/greybox/AJS_fx.js Content-Transfer-Encoding: Base64 QUpTLmZ4PXtfc2hhZGVzOnswOiJmZmZmZmYiLDE6ImZmZmZlZSIsMjoiZmZmZmRk IiwzOiJmZmZmY2MiLDQ6ImZmZmZiYiIsNToiZmZmZmFhIiw2OiJmZmZmOTkifSxo aWdobGlnaHQ6ZnVuY3Rpb24oXzEsXzIpewp2YXIgXzM9bmV3IEFKUy5meC5CYXNl KCk7Cl8zLmVsbT1BSlMuJChfMSk7Cl8zLm9wdGlvbnMuZHVyYXRpb249NjAwOwpf My5zZXRPcHRpb25zKF8yKTsKQUpTLnVwZGF0ZShfMyx7aW5jcmVhc2U6ZnVuY3Rp b24oKXsKaWYodGhpcy5ub3c9PTcpewpfMS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9 IiNmZmYiOwp9ZWxzZXsKXzEuc3R5bGUuYmFja2dyb3VuZENvbG9yPSIjIitBSlMu ZnguX3NoYWRlc1tNYXRoLmZsb29yKHRoaXMubm93KV07Cn0KfX0pOwpyZXR1cm4g XzMuY3VzdG9tKDYsMCk7Cn0sZmFkZUluOmZ1bmN0aW9uKF80LF81KXsKXzU9XzV8 fHt9OwppZighXzUuZnJvbSl7Cl81LmZyb209MDsKQUpTLnNldE9wYWNpdHkoXzQs MCk7Cn0KaWYoIV81LnRvKXsKXzUudG89MTsKfQp2YXIgcz1uZXcgQUpTLmZ4LlN0 eWxlKF80LCJvcGFjaXR5IixfNSk7CnJldHVybiBzLmN1c3RvbShfNS5mcm9tLF81 LnRvKTsKfSxmYWRlT3V0OmZ1bmN0aW9uKF83LF84KXsKXzg9Xzh8fHt9OwppZigh XzguZnJvbSl7Cl84LmZyb209MTsKfQppZighXzgudG8pewpfOC50bz0wOwp9Cl84 LmR1cmF0aW9uPTMwMDsKdmFyIHM9bmV3IEFKUy5meC5TdHlsZShfNywib3BhY2l0 eSIsXzgpOwpyZXR1cm4gcy5jdXN0b20oXzguZnJvbSxfOC50byk7Cn0sc2V0V2lk dGg6ZnVuY3Rpb24oX2EsX2Ipewp2YXIgcz1uZXcgQUpTLmZ4LlN0eWxlKF9hLCJ3 aWR0aCIsX2IpOwpyZXR1cm4gcy5jdXN0b20oX2IuZnJvbSxfYi50byk7Cn0sc2V0 SGVpZ2h0OmZ1bmN0aW9uKF9kLF9lKXsKdmFyIHM9bmV3IEFKUy5meC5TdHlsZShf ZCwiaGVpZ2h0IixfZSk7CnJldHVybiBzLmN1c3RvbShfZS5mcm9tLF9lLnRvKTsK fX07CkFKUy5meC5CYXNlPW5ldyBBSlMuQ2xhc3Moe2luaXQ6ZnVuY3Rpb24oXzEw KXsKdGhpcy5vcHRpb25zPXtvblN0YXJ0OmZ1bmN0aW9uKCl7Cn0sb25Db21wbGV0 ZTpmdW5jdGlvbigpewp9LHRyYW5zaXRpb246QUpTLmZ4LlRyYW5zaXRpb25zLnNp bmVJbk91dCxkdXJhdGlvbjo1MDAsd2FpdDp0cnVlLGZwczo1MH07CkFKUy51cGRh dGUodGhpcy5vcHRpb25zLF8xMCk7CkFKUy5iaW5kTWV0aG9kcyh0aGlzKTsKfSxz ZXRPcHRpb25zOmZ1bmN0aW9uKF8xMSl7CkFKUy51cGRhdGUodGhpcy5vcHRpb25z LF8xMSk7Cn0sc3RlcDpmdW5jdGlvbigpewp2YXIgXzEyPW5ldyBEYXRlKCkuZ2V0 VGltZSgpOwppZihfMTI8dGhpcy50aW1lK3RoaXMub3B0aW9ucy5kdXJhdGlvbil7 CnRoaXMuY1RpbWU9XzEyLXRoaXMudGltZTsKdGhpcy5zZXROb3coKTsKfWVsc2V7 CnNldFRpbWVvdXQoQUpTLiRiKHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlLHRoaXMs W3RoaXMuZWxtXSksMTApOwp0aGlzLmNsZWFyVGltZXIoKTsKdGhpcy5ub3c9dGhp cy50bzsKfQp0aGlzLmluY3JlYXNlKCk7Cn0sc2V0Tm93OmZ1bmN0aW9uKCl7CnRo aXMubm93PXRoaXMuY29tcHV0ZSh0aGlzLmZyb20sdGhpcy50byk7Cn0sY29tcHV0 ZTpmdW5jdGlvbihfMTMsdG8pewp2YXIgXzE1PXRvLV8xMzsKcmV0dXJuIHRoaXMu b3B0aW9ucy50cmFuc2l0aW9uKHRoaXMuY1RpbWUsXzEzLF8xNSx0aGlzLm9wdGlv bnMuZHVyYXRpb24pOwp9LGNsZWFyVGltZXI6ZnVuY3Rpb24oKXsKY2xlYXJJbnRl cnZhbCh0aGlzLnRpbWVyKTsKdGhpcy50aW1lcj1udWxsOwpyZXR1cm4gdGhpczsK fSxfc3RhcnQ6ZnVuY3Rpb24oXzE2LHRvKXsKaWYoIXRoaXMub3B0aW9ucy53YWl0 KXsKdGhpcy5jbGVhclRpbWVyKCk7Cn0KaWYodGhpcy50aW1lcil7CnJldHVybjsK fQpzZXRUaW1lb3V0KEFKUy4kcCh0aGlzLm9wdGlvbnMub25TdGFydCx0aGlzLmVs bSksMTApOwp0aGlzLmZyb209XzE2Owp0aGlzLnRvPXRvOwp0aGlzLnRpbWU9bmV3 IERhdGUoKS5nZXRUaW1lKCk7CnRoaXMudGltZXI9c2V0SW50ZXJ2YWwodGhpcy5z dGVwLE1hdGgucm91bmQoMTAwMC90aGlzLm9wdGlvbnMuZnBzKSk7CnJldHVybiB0 aGlzOwp9LGN1c3RvbTpmdW5jdGlvbihfMTgsdG8pewpyZXR1cm4gdGhpcy5fc3Rh cnQoXzE4LHRvKTsKfSxzZXQ6ZnVuY3Rpb24odG8pewp0aGlzLm5vdz10bzsKdGhp cy5pbmNyZWFzZSgpOwpyZXR1cm4gdGhpczsKfSxzZXRTdHlsZTpmdW5jdGlvbihl bG0sXzFjLHZhbCl7CmlmKHRoaXMucHJvcGVydHk9PSJvcGFjaXR5Iil7CkFKUy5z ZXRPcGFjaXR5KGVsbSx2YWwpOwp9ZWxzZXsKQUpTLnNldFN0eWxlKGVsbSxfMWMs dmFsKTsKfQp9fSk7CkFKUy5meC5TdHlsZT1BSlMuZnguQmFzZS5leHRlbmQoe2lu aXQ6ZnVuY3Rpb24oZWxtLF8xZixfMjApewp0aGlzLnBhcmVudCgpOwp0aGlzLmVs bT1lbG07CnRoaXMuc2V0T3B0aW9ucyhfMjApOwp0aGlzLnByb3BlcnR5PV8xZjsK fSxpbmNyZWFzZTpmdW5jdGlvbigpewp0aGlzLnNldFN0eWxlKHRoaXMuZWxtLHRo aXMucHJvcGVydHksdGhpcy5ub3cpOwp9fSk7CkFKUy5meC5TdHlsZXM9QUpTLmZ4 LkJhc2UuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGVsbSxfMjIpewp0aGlzLnBhcmVu dCgpOwp0aGlzLmVsbT1BSlMuJChlbG0pOwp0aGlzLnNldE9wdGlvbnMoXzIyKTsK dGhpcy5ub3c9e307Cn0sc2V0Tm93OmZ1bmN0aW9uKCl7CmZvcihwIGluIHRoaXMu ZnJvbSl7CnRoaXMubm93W3BdPXRoaXMuY29tcHV0ZSh0aGlzLmZyb21bcF0sdGhp cy50b1twXSk7Cn0KfSxjdXN0b206ZnVuY3Rpb24ob2JqKXsKaWYodGhpcy50aW1l ciYmdGhpcy5vcHRpb25zLndhaXQpewpyZXR1cm47Cn0KdmFyIF8yND17fTsKdmFy IHRvPXt9Owpmb3IocCBpbiBvYmopewpfMjRbcF09b2JqW3BdWzBdOwp0b1twXT1v YmpbcF1bMV07Cn0KcmV0dXJuIHRoaXMuX3N0YXJ0KF8yNCx0byk7Cn0saW5jcmVh c2U6ZnVuY3Rpb24oKXsKZm9yKHZhciBwIGluIHRoaXMubm93KXsKdGhpcy5zZXRT dHlsZSh0aGlzLmVsbSxwLHRoaXMubm93W3BdKTsKfQp9fSk7CkFKUy5meC5UcmFu c2l0aW9ucz17bGluZWFyOmZ1bmN0aW9uKHQsYixjLGQpewpyZXR1cm4gYyp0L2Qr YjsKfSxzaW5lSW5PdXQ6ZnVuY3Rpb24odCxiLGMsZCl7CnJldHVybiAtYy8yKihN YXRoLmNvcyhNYXRoLlBJKnQvZCktMSkrYjsKfX07CnNjcmlwdF9sb2FkZWQ9dHJ1 ZTsKCgpzY3JpcHRfbG9hZGVkPXRydWU7 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=gb_scripts.js Content-Type: application/x-javascript; charset=windows-1250; name=gb_scripts.js Content-Location: http://martanek.net/java_script/greybox/gb_scripts.js Content-Transfer-Encoding: Base64 dmFyIEdCX0NVUlJFTlQ9bnVsbDsKR0JfaGlkZT1mdW5jdGlvbihjYil7CkdCX0NV UlJFTlQuaGlkZShjYik7Cn07CkdyZXlCb3g9bmV3IEFKUy5DbGFzcyh7aW5pdDpm dW5jdGlvbihfMil7CnRoaXMudXNlX2Z4PUFKUy5meDsKdGhpcy50eXBlPSJwYWdl IjsKdGhpcy5vdmVybGF5X2NsaWNrX2Nsb3NlPWZhbHNlOwp0aGlzLnNhbHQ9MDsK dGhpcy5yb290X2Rpcj1HQl9ST09UX0RJUjsKdGhpcy5jYWxsYmFja19mbnM9W107 CnRoaXMucmVsb2FkX29uX2Nsb3NlPWZhbHNlOwp0aGlzLnNyY19sb2FkZXI9dGhp cy5yb290X2RpcisibG9hZGVyX2ZyYW1lLmh0bWwiOwp2YXIgXzM9d2luZG93Lmxv Y2F0aW9uLmhvc3RuYW1lLmluZGV4T2YoInd3dyIpOwp2YXIgXzQ9dGhpcy5zcmNf bG9hZGVyLmluZGV4T2YoInd3dyIpOwppZihfMyE9LTEmJl80PT0tMSl7CnRoaXMu c3JjX2xvYWRlcj10aGlzLnNyY19sb2FkZXIucmVwbGFjZSgiOi8vIiwiOi8vd3d3 LiIpOwp9CmlmKF8zPT0tMSYmXzQhPS0xKXsKdGhpcy5zcmNfbG9hZGVyPXRoaXMu c3JjX2xvYWRlci5yZXBsYWNlKCI6Ly93d3cuIiwiOi8vIik7Cn0KdGhpcy5zaG93 X2xvYWRpbmc9dHJ1ZTsKQUpTLnVwZGF0ZSh0aGlzLF8yKTsKfSxhZGRDYWxsYmFj azpmdW5jdGlvbihmbil7CmlmKGZuKXsKdGhpcy5jYWxsYmFja19mbnMucHVzaChm bik7Cn0KfSxzaG93OmZ1bmN0aW9uKF82KXsKR0JfQ1VSUkVOVD10aGlzOwp0aGlz LnVybD1fNjsKdmFyIF83PVtBSlMuJGJ5dGMoIm9iamVjdCIpLEFKUy4kYnl0Yygi c2VsZWN0IildOwpBSlMubWFwKEFKUy5mbGF0dGVuTGlzdChfNyksZnVuY3Rpb24o XzgpewpfOC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iOwp9KTsKdGhpcy5jcmVh dGVFbGVtZW50cygpOwpyZXR1cm4gZmFsc2U7Cn0saGlkZTpmdW5jdGlvbihjYil7 CnZhciBtZT10aGlzOwpBSlMuY2FsbExhdGVyKGZ1bmN0aW9uKCl7CnZhciBfYj1t ZS5jYWxsYmFja19mbnM7CmlmKF9iIT1bXSl7CkFKUy5tYXAoX2IsZnVuY3Rpb24o Zm4pewpmbigpOwp9KTsKfQptZS5vbkhpZGUoKTsKaWYobWUudXNlX2Z4KXsKdmFy IF9kPW1lLm92ZXJsYXk7CkFKUy5meC5mYWRlT3V0KG1lLm92ZXJsYXkse29uQ29t cGxldGU6ZnVuY3Rpb24oKXsKQUpTLnJlbW92ZUVsZW1lbnQoX2QpOwpfZD1udWxs Owp9LGR1cmF0aW9uOjMwMH0pOwpBSlMucmVtb3ZlRWxlbWVudChtZS5nX3dpbmRv dyk7Cn1lbHNlewpBSlMucmVtb3ZlRWxlbWVudChtZS5nX3dpbmRvdyxtZS5vdmVy bGF5KTsKfQptZS5yZW1vdmVGcmFtZSgpOwpBSlMuUkVWKHdpbmRvdywic2Nyb2xs IixfR0Jfc2V0T3ZlcmxheURpbWVuc2lvbik7CkFKUy5SRVYod2luZG93LCJyZXNp emUiLF9HQl91cGRhdGUpOwp2YXIgX2U9W0FKUy4kYnl0Yygib2JqZWN0IiksQUpT LiRieXRjKCJzZWxlY3QiKV07CkFKUy5tYXAoQUpTLmZsYXR0ZW5MaXN0KF9lKSxm dW5jdGlvbihfZil7Cl9mLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiOwp9KTsK R0JfQ1VSUkVOVD1udWxsOwppZihtZS5yZWxvYWRfb25fY2xvc2Upewp3aW5kb3cu bG9jYXRpb24ucmVsb2FkKCk7Cn0KaWYoQUpTLmlzRnVuY3Rpb24oY2IpKXsKY2Io KTsKfQp9LDEwKTsKfSx1cGRhdGU6ZnVuY3Rpb24oKXsKdGhpcy5zZXRPdmVybGF5 RGltZW5zaW9uKCk7CnRoaXMuc2V0RnJhbWVTaXplKCk7CnRoaXMuc2V0V2luZG93 UG9zaXRpb24oKTsKfSxjcmVhdGVFbGVtZW50czpmdW5jdGlvbigpewp0aGlzLmlu aXRPdmVybGF5KCk7CnRoaXMuZ193aW5kb3c9QUpTLkRJVih7ImlkIjoiR0Jfd2lu ZG93In0pOwpBSlMuaGlkZUVsZW1lbnQodGhpcy5nX3dpbmRvdyk7CkFKUy5nZXRC b2R5KCkuaW5zZXJ0QmVmb3JlKHRoaXMuZ193aW5kb3csdGhpcy5vdmVybGF5Lm5l eHRTaWJsaW5nKTsKdGhpcy5pbml0RnJhbWUoKTsKdGhpcy5pbml0SG9vaygpOwp0 aGlzLnVwZGF0ZSgpOwp2YXIgbWU9dGhpczsKaWYodGhpcy51c2VfZngpewpBSlMu ZnguZmFkZUluKHRoaXMub3ZlcmxheSx7ZHVyYXRpb246MzAwLHRvOjAuNyxvbkNv bXBsZXRlOmZ1bmN0aW9uKCl7Cm1lLm9uU2hvdygpOwpBSlMuc2hvd0VsZW1lbnQo bWUuZ193aW5kb3cpOwptZS5zdGFydExvYWRpbmcoKTsKfX0pOwp9ZWxzZXsKQUpT LnNldE9wYWNpdHkodGhpcy5vdmVybGF5LDAuNyk7CkFKUy5zaG93RWxlbWVudCh0 aGlzLmdfd2luZG93KTsKdGhpcy5vblNob3coKTsKdGhpcy5zdGFydExvYWRpbmco KTsKfQpBSlMuQUVWKHdpbmRvdywic2Nyb2xsIixfR0Jfc2V0T3ZlcmxheURpbWVu c2lvbik7CkFKUy5BRVYod2luZG93LCJyZXNpemUiLF9HQl91cGRhdGUpOwp9LHJl bW92ZUZyYW1lOmZ1bmN0aW9uKCl7CnRyeXsKQUpTLnJlbW92ZUVsZW1lbnQodGhp cy5pZnJhbWUpOwp9CmNhdGNoKGUpewp9CnRoaXMuaWZyYW1lPW51bGw7Cn0sc3Rh cnRMb2FkaW5nOmZ1bmN0aW9uKCl7CnRoaXMuaWZyYW1lLnNyYz10aGlzLnNyY19s b2FkZXIrIj9zPSIrdGhpcy5zYWx0Kys7CkFKUy5zaG93RWxlbWVudCh0aGlzLmlm cmFtZSk7Cn0sc2V0T3ZlcmxheURpbWVuc2lvbjpmdW5jdGlvbigpewp2YXIgXzEx PUFKUy5nZXRXaW5kb3dTaXplKCk7CmlmKEFKUy5pc01vemlsbGEoKXx8QUpTLmlz T3BlcmEoKSl7CkFKUy5zZXRXaWR0aCh0aGlzLm92ZXJsYXksIjEwMCUiKTsKfWVs c2V7CkFKUy5zZXRXaWR0aCh0aGlzLm92ZXJsYXksXzExLncpOwp9CnZhciBfMTI9 TWF0aC5tYXgoQUpTLmdldFNjcm9sbFRvcCgpK18xMS5oLEFKUy5nZXRTY3JvbGxU b3AoKSt0aGlzLmhlaWdodCk7CmlmKF8xMjxBSlMuZ2V0U2Nyb2xsVG9wKCkpewpB SlMuc2V0SGVpZ2h0KHRoaXMub3ZlcmxheSxfMTIpOwp9ZWxzZXsKQUpTLnNldEhl aWdodCh0aGlzLm92ZXJsYXksQUpTLmdldFNjcm9sbFRvcCgpK18xMS5oKTsKfQp9 LGluaXRPdmVybGF5OmZ1bmN0aW9uKCl7CnRoaXMub3ZlcmxheT1BSlMuRElWKHsi aWQiOiJHQl9vdmVybGF5In0pOwppZih0aGlzLm92ZXJsYXlfY2xpY2tfY2xvc2Up ewpBSlMuQUVWKHRoaXMub3ZlcmxheSwiY2xpY2siLEdCX2hpZGUpOwp9CkFKUy5z ZXRPcGFjaXR5KHRoaXMub3ZlcmxheSwwKTsKQUpTLmdldEJvZHkoKS5pbnNlcnRC ZWZvcmUodGhpcy5vdmVybGF5LEFKUy5nZXRCb2R5KCkuZmlyc3RDaGlsZCk7Cn0s aW5pdEZyYW1lOmZ1bmN0aW9uKCl7CmlmKCF0aGlzLmlmcmFtZSl7CnZhciBkPXsi bmFtZSI6IkdCX2ZyYW1lIiwiY2xhc3MiOiJHQl9mcmFtZSIsImZyYW1lQm9yZGVy IjowfTsKaWYoQUpTLmlzSWUoKSl7CmQuc3JjPSJqYXZhc2NyaXB0OmZhbHNlO2Rv Y3VtZW50LndyaXRlKFwiXCIpOyI7Cn0KdGhpcy5pZnJhbWU9QUpTLklGUkFNRShk KTsKdGhpcy5taWRkbGVfY250PUFKUy5ESVYoeyJjbGFzcyI6ImNvbnRlbnQifSx0 aGlzLmlmcmFtZSk7CnRoaXMudG9wX2NudD1BSlMuRElWKCk7CnRoaXMuYm90dG9t X2NudD1BSlMuRElWKCk7CkFKUy5BQ04odGhpcy5nX3dpbmRvdyx0aGlzLnRvcF9j bnQsdGhpcy5taWRkbGVfY250LHRoaXMuYm90dG9tX2NudCk7Cn0KfSxvbkhpZGU6 ZnVuY3Rpb24oKXsKfSxvblNob3c6ZnVuY3Rpb24oKXsKfSxzZXRGcmFtZVNpemU6 ZnVuY3Rpb24oKXsKfSxzZXRXaW5kb3dQb3NpdGlvbjpmdW5jdGlvbigpewp9LGlu aXRIb29rOmZ1bmN0aW9uKCl7Cn19KTsKX0dCX3VwZGF0ZT1mdW5jdGlvbigpewpp ZihHQl9DVVJSRU5UKXsKR0JfQ1VSUkVOVC51cGRhdGUoKTsKfQp9OwpfR0Jfc2V0 T3ZlcmxheURpbWVuc2lvbj1mdW5jdGlvbigpewppZihHQl9DVVJSRU5UKXsKR0Jf Q1VSUkVOVC5zZXRPdmVybGF5RGltZW5zaW9uKCk7Cn0KfTsKQUpTLnByZWxvYWRJ bWFnZXMoR0JfUk9PVF9ESVIrImluZGljYXRvci5naWYiKTsKc2NyaXB0X2xvYWRl ZD10cnVlOwp2YXIgR0JfU0VUUz17fTsKZnVuY3Rpb24gZGVjb0dyZXlib3hMaW5r cygpewp2YXIgYXM9QUpTLiRieXRjKCJhIik7CkFKUy5tYXAoYXMsZnVuY3Rpb24o YSl7CmlmKGEuZ2V0QXR0cmlidXRlKCJocmVmIikmJmEuZ2V0QXR0cmlidXRlKCJy ZWwiKSl7CnZhciByZWw9YS5nZXRBdHRyaWJ1dGUoInJlbCIpOwppZihyZWwuaW5k ZXhPZigiZ2JfIik9PTApewp2YXIgXzE3PXJlbC5tYXRjaCgvXHcrLylbMF07CnZh ciBfMTg9cmVsLm1hdGNoKC9cWyguKilcXS8pWzFdOwp2YXIgXzE5PTA7CnZhciBf MWE9eyJjYXB0aW9uIjphLnRpdGxlfHwiIiwidXJsIjphLmhyZWZ9OwppZihfMTc9 PSJnYl9wYWdlc2V0Inx8XzE3PT0iZ2JfaW1hZ2VzZXQiKXsKaWYoIUdCX1NFVFNb XzE4XSl7CkdCX1NFVFNbXzE4XT1bXTsKfQpHQl9TRVRTW18xOF0ucHVzaChfMWEp OwpfMTk9R0JfU0VUU1tfMThdLmxlbmd0aDsKfQppZihfMTc9PSJnYl9wYWdlc2V0 Iil7CmEub25jbGljaz1mdW5jdGlvbigpewpHQl9zaG93RnVsbFNjcmVlblNldChH Ql9TRVRTW18xOF0sXzE5KTsKcmV0dXJuIGZhbHNlOwp9Owp9CmlmKF8xNz09Imdi X2ltYWdlc2V0Iil7CmEub25jbGljaz1mdW5jdGlvbigpewpHQl9zaG93SW1hZ2VT ZXQoR0JfU0VUU1tfMThdLF8xOSk7CnJldHVybiBmYWxzZTsKfTsKfQppZihfMTc9 PSJnYl9pbWFnZSIpewphLm9uY2xpY2s9ZnVuY3Rpb24oKXsKR0Jfc2hvd0ltYWdl KF8xYS5jYXB0aW9uLF8xYS51cmwpOwpyZXR1cm4gZmFsc2U7Cn07Cn0KaWYoXzE3 PT0iZ2JfcGFnZSIpewphLm9uY2xpY2s9ZnVuY3Rpb24oKXsKdmFyIHNwPV8xOC5z cGxpdCgvLCA/Lyk7CkdCX3Nob3coXzFhLmNhcHRpb24sXzFhLnVybCxwYXJzZUlu dChzcFsxXSkscGFyc2VJbnQoc3BbMF0pKTsKcmV0dXJuIGZhbHNlOwp9Owp9Cmlm KF8xNz09ImdiX3BhZ2VfZnMiKXsKYS5vbmNsaWNrPWZ1bmN0aW9uKCl7CkdCX3No b3dGdWxsU2NyZWVuKF8xYS5jYXB0aW9uLF8xYS51cmwpOwpyZXR1cm4gZmFsc2U7 Cn07Cn0KaWYoXzE3PT0iZ2JfcGFnZV9jZW50ZXIiKXsKYS5vbmNsaWNrPWZ1bmN0 aW9uKCl7CnZhciBzcD1fMTguc3BsaXQoLywgPy8pOwpHQl9zaG93Q2VudGVyKF8x YS5jYXB0aW9uLF8xYS51cmwscGFyc2VJbnQoc3BbMV0pLHBhcnNlSW50KHNwWzBd KSk7CnJldHVybiBmYWxzZTsKfTsKfQp9Cn0KfSk7Cn0KQUpTLkFFVih3aW5kb3cs ImxvYWQiLGRlY29HcmV5Ym94TGlua3MpOwpHQl9zaG93SW1hZ2U9ZnVuY3Rpb24o XzFkLHVybCxfMWYpewp2YXIgXzIwPXt3aWR0aDozMDAsaGVpZ2h0OjMwMCx0eXBl OiJpbWFnZSIsZnVsbHNjcmVlbjpmYWxzZSxjZW50ZXJfd2luOnRydWUsY2FwdGlv bjpfMWQsY2FsbGJhY2tfZm46XzFmfTsKdmFyIHdpbj1uZXcgR0JfR2FsbGVyeShf MjApOwpyZXR1cm4gd2luLnNob3codXJsKTsKfTsKR0Jfc2hvd1BhZ2U9ZnVuY3Rp b24oXzIyLHVybCxfMjQpewp2YXIgXzI1PXt0eXBlOiJwYWdlIixjYXB0aW9uOl8y MixjYWxsYmFja19mbjpfMjQsZnVsbHNjcmVlbjp0cnVlLGNlbnRlcl93aW46ZmFs c2V9Owp2YXIgd2luPW5ldyBHQl9HYWxsZXJ5KF8yNSk7CnJldHVybiB3aW4uc2hv dyh1cmwpOwp9OwpHQl9HYWxsZXJ5PUdyZXlCb3guZXh0ZW5kKHtpbml0OmZ1bmN0 aW9uKF8yNyl7CnRoaXMucGFyZW50KHt9KTsKdGhpcy5pbWdfY2xvc2U9dGhpcy5y b290X2RpcisiZ19jbG9zZS5naWYiOwpBSlMudXBkYXRlKHRoaXMsXzI3KTsKdGhp cy5hZGRDYWxsYmFjayh0aGlzLmNhbGxiYWNrX2ZuKTsKfSxpbml0SG9vazpmdW5j dGlvbigpewpBSlMuYWRkQ2xhc3ModGhpcy5nX3dpbmRvdywiR0JfR2FsbGVyeSIp Owp2YXIgXzI4PUFKUy5ESVYoeyJjbGFzcyI6ImlubmVyIn0pOwp0aGlzLmhlYWRl cj1BSlMuRElWKHsiY2xhc3MiOiJHQl9oZWFkZXIifSxfMjgpOwpBSlMuc2V0T3Bh Y2l0eSh0aGlzLmhlYWRlciwwKTsKQUpTLmdldEJvZHkoKS5pbnNlcnRCZWZvcmUo dGhpcy5oZWFkZXIsdGhpcy5vdmVybGF5Lm5leHRTaWJsaW5nKTsKdmFyIF8yOT1B SlMuVEQoeyJpZCI6IkdCX2NhcHRpb24iLCJjbGFzcyI6ImNhcHRpb24iLCJ3aWR0 aCI6IjQwJSJ9LHRoaXMuY2FwdGlvbik7CnZhciBfMmE9QUpTLlREKHsiaWQiOiJH Ql9taWRkbGUiLCJjbGFzcyI6Im1pZGRsZSIsIndpZHRoIjoiMjAlIn0pOwp2YXIg XzJiPUFKUy5JTUcoeyJzcmMiOnRoaXMuaW1nX2Nsb3NlfSk7CkFKUy5BRVYoXzJi LCJjbGljayIsR0JfaGlkZSk7CnZhciBfMmM9QUpTLlREKHsiY2xhc3MiOiJjbG9z ZSIsIndpZHRoIjoiNDAlIn0sXzJiKTsKdmFyIF8yZD1BSlMuVEJPRFkoQUpTLlRS KF8yOSxfMmEsXzJjKSk7CnZhciBfMmU9QUpTLlRBQkxFKHsiY2VsbHNwYWNpbmci OiIwIiwiY2VsbHBhZGRpbmciOjAsImJvcmRlciI6MH0sXzJkKTsKQUpTLkFDTihf MjgsXzJlKTsKaWYodGhpcy5mdWxsc2NyZWVuKXsKQUpTLkFFVih3aW5kb3csInNj cm9sbCIsQUpTLiRiKHRoaXMuc2V0V2luZG93UG9zaXRpb24sdGhpcykpOwp9ZWxz ZXsKQUpTLkFFVih3aW5kb3csInNjcm9sbCIsQUpTLiRiKHRoaXMuX3NldEhlYWRl clBvcyx0aGlzKSk7Cn0KfSxzZXRGcmFtZVNpemU6ZnVuY3Rpb24oKXsKdmFyIF8y Zj10aGlzLm92ZXJsYXkub2Zmc2V0V2lkdGg7CnZhciBfMzA9QUpTLmdldFdpbmRv d1NpemUoKTsKaWYodGhpcy5mdWxsc2NyZWVuKXsKdGhpcy53aWR0aD1fMmYtNDA7 CnRoaXMuaGVpZ2h0PV8zMC5oLTgwOwp9CkFKUy5zZXRXaWR0aCh0aGlzLmlmcmFt ZSx0aGlzLndpZHRoKTsKQUpTLnNldEhlaWdodCh0aGlzLmlmcmFtZSx0aGlzLmhl aWdodCk7CkFKUy5zZXRXaWR0aCh0aGlzLmhlYWRlcixfMmYpOwp9LF9zZXRIZWFk ZXJQb3M6ZnVuY3Rpb24oKXsKQUpTLnNldFRvcCh0aGlzLmhlYWRlcixBSlMuZ2V0 U2Nyb2xsVG9wKCkrMTApOwp9LHNldFdpbmRvd1Bvc2l0aW9uOmZ1bmN0aW9uKCl7 CnZhciBfMzE9dGhpcy5vdmVybGF5Lm9mZnNldFdpZHRoOwp2YXIgXzMyPUFKUy5n ZXRXaW5kb3dTaXplKCk7CkFKUy5zZXRMZWZ0KHRoaXMuZ193aW5kb3csKChfMzEt NTAtdGhpcy53aWR0aCkvMikpOwp2YXIgXzMzPUFKUy5nZXRTY3JvbGxUb3AoKSs1 NTsKaWYoIXRoaXMuY2VudGVyX3dpbil7CkFKUy5zZXRUb3AodGhpcy5nX3dpbmRv dyxfMzMpOwp9ZWxzZXsKdmFyIGZsPSgoXzMyLmgtdGhpcy5oZWlnaHQpLzIpKzIw K0FKUy5nZXRTY3JvbGxUb3AoKTsKaWYoZmw8MCl7CmZsPTA7Cn0KaWYoXzMzPmZs KXsKZmw9XzMzOwp9CkFKUy5zZXRUb3AodGhpcy5nX3dpbmRvdyxmbCk7Cn0KdGhp cy5fc2V0SGVhZGVyUG9zKCk7Cn0sb25IaWRlOmZ1bmN0aW9uKCl7CkFKUy5yZW1v dmVFbGVtZW50KHRoaXMuaGVhZGVyKTsKQUpTLnJlbW92ZUNsYXNzKHRoaXMuZ193 aW5kb3csIkdCX0dhbGxlcnkiKTsKfSxvblNob3c6ZnVuY3Rpb24oKXsKaWYodGhp cy51c2VfZngpewpBSlMuZnguZmFkZUluKHRoaXMuaGVhZGVyLHt0bzoxfSk7Cn1l bHNlewpBSlMuc2V0T3BhY2l0eSh0aGlzLmhlYWRlciwxKTsKfQp9fSk7CkFKUy5w cmVsb2FkSW1hZ2VzKEdCX1JPT1RfRElSKyJnX2Nsb3NlLmdpZiIpOwpHQl9zaG93 RnVsbFNjcmVlblNldD1mdW5jdGlvbihzZXQsXzM2LF8zNyl7CnZhciBfMzg9e3R5 cGU6InBhZ2UiLGZ1bGxzY3JlZW46dHJ1ZSxjZW50ZXJfd2luOmZhbHNlfTsKdmFy IF8zOT1uZXcgR0JfU2V0cyhfMzgsc2V0KTsKXzM5LmFkZENhbGxiYWNrKF8zNyk7 Cl8zOS5zaG93U2V0KF8zNi0xKTsKcmV0dXJuIGZhbHNlOwp9OwpHQl9zaG93SW1h Z2VTZXQ9ZnVuY3Rpb24oc2V0LF8zYixfM2Mpewp2YXIgXzNkPXt0eXBlOiJpbWFn ZSIsZnVsbHNjcmVlbjpmYWxzZSxjZW50ZXJfd2luOnRydWUsd2lkdGg6MzAwLGhl aWdodDozMDB9Owp2YXIgXzNlPW5ldyBHQl9TZXRzKF8zZCxzZXQpOwpfM2UuYWRk Q2FsbGJhY2soXzNjKTsKXzNlLnNob3dTZXQoXzNiLTEpOwpyZXR1cm4gZmFsc2U7 Cn07CkdCX1NldHM9R0JfR2FsbGVyeS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oXzNm LHNldCl7CnRoaXMucGFyZW50KF8zZik7CmlmKCF0aGlzLmltZ19uZXh0KXsKdGhp cy5pbWdfbmV4dD10aGlzLnJvb3RfZGlyKyJuZXh0LmdpZiI7Cn0KaWYoIXRoaXMu aW1nX3ByZXYpewp0aGlzLmltZ19wcmV2PXRoaXMucm9vdF9kaXIrInByZXYuZ2lm IjsKfQp0aGlzLmN1cnJlbnRfc2V0PXNldDsKfSxzaG93U2V0OmZ1bmN0aW9uKF80 MSl7CnRoaXMuY3VycmVudF9pbmRleD1fNDE7CnZhciBfNDI9dGhpcy5jdXJyZW50 X3NldFt0aGlzLmN1cnJlbnRfaW5kZXhdOwp0aGlzLnNob3coXzQyLnVybCk7CnRo aXMuX3NldENhcHRpb24oXzQyLmNhcHRpb24pOwp0aGlzLmJ0bl9wcmV2PUFKUy5J TUcoeyJjbGFzcyI6ImxlZnQiLHNyYzp0aGlzLmltZ19wcmV2fSk7CnRoaXMuYnRu X25leHQ9QUpTLklNRyh7ImNsYXNzIjoicmlnaHQiLHNyYzp0aGlzLmltZ19uZXh0 fSk7CkFKUy5BRVYodGhpcy5idG5fcHJldiwiY2xpY2siLEFKUy4kYih0aGlzLnN3 aXRjaFByZXYsdGhpcykpOwpBSlMuQUVWKHRoaXMuYnRuX25leHQsImNsaWNrIixB SlMuJGIodGhpcy5zd2l0Y2hOZXh0LHRoaXMpKTsKR0JfU1RBVFVTPUFKUy5TUEFO KHsiY2xhc3MiOiJHQl9uYXZTdGF0dXMifSk7CkFKUy5BQ04oQUpTLiQoIkdCX21p ZGRsZSIpLHRoaXMuYnRuX3ByZXYsR0JfU1RBVFVTLHRoaXMuYnRuX25leHQpOwp0 aGlzLnVwZGF0ZVN0YXR1cygpOwp9LHVwZGF0ZVN0YXR1czpmdW5jdGlvbigpewpB SlMuc2V0SFRNTChHQl9TVEFUVVMsKHRoaXMuY3VycmVudF9pbmRleCsxKSsiIC8g Iit0aGlzLmN1cnJlbnRfc2V0Lmxlbmd0aCk7CmlmKHRoaXMuY3VycmVudF9pbmRl eD09MCl7CkFKUy5hZGRDbGFzcyh0aGlzLmJ0bl9wcmV2LCJkaXNhYmxlZCIpOwp9 ZWxzZXsKQUpTLnJlbW92ZUNsYXNzKHRoaXMuYnRuX3ByZXYsImRpc2FibGVkIik7 Cn0KaWYodGhpcy5jdXJyZW50X2luZGV4PT10aGlzLmN1cnJlbnRfc2V0Lmxlbmd0 aC0xKXsKQUpTLmFkZENsYXNzKHRoaXMuYnRuX25leHQsImRpc2FibGVkIik7Cn1l bHNlewpBSlMucmVtb3ZlQ2xhc3ModGhpcy5idG5fbmV4dCwiZGlzYWJsZWQiKTsK fQp9LF9zZXRDYXB0aW9uOmZ1bmN0aW9uKF80Myl7CkFKUy5zZXRIVE1MKEFKUy4k KCJHQl9jYXB0aW9uIiksXzQzKTsKfSx1cGRhdGVGcmFtZTpmdW5jdGlvbigpewp2 YXIgXzQ0PXRoaXMuY3VycmVudF9zZXRbdGhpcy5jdXJyZW50X2luZGV4XTsKdGhp cy5fc2V0Q2FwdGlvbihfNDQuY2FwdGlvbik7CnRoaXMudXJsPV80NC51cmw7CnRo aXMuc3RhcnRMb2FkaW5nKCk7Cn0sc3dpdGNoUHJldjpmdW5jdGlvbigpewppZih0 aGlzLmN1cnJlbnRfaW5kZXghPTApewp0aGlzLmN1cnJlbnRfaW5kZXgtLTsKdGhp cy51cGRhdGVGcmFtZSgpOwp0aGlzLnVwZGF0ZVN0YXR1cygpOwp9Cn0sc3dpdGNo TmV4dDpmdW5jdGlvbigpewppZih0aGlzLmN1cnJlbnRfaW5kZXghPXRoaXMuY3Vy cmVudF9zZXQubGVuZ3RoLTEpewp0aGlzLmN1cnJlbnRfaW5kZXgrKzsKdGhpcy51 cGRhdGVGcmFtZSgpOwp0aGlzLnVwZGF0ZVN0YXR1cygpOwp9Cn19KTsKQUpTLkFF Vih3aW5kb3csImxvYWQiLGZ1bmN0aW9uKCl7CkFKUy5wcmVsb2FkSW1hZ2VzKEdC X1JPT1RfRElSKyJuZXh0LmdpZiIsR0JfUk9PVF9ESVIrInByZXYuZ2lmIik7Cn0p OwpHQl9zaG93PWZ1bmN0aW9uKF80NSx1cmwsXzQ3LF80OCxfNDkpewp2YXIgXzRh PXtjYXB0aW9uOl80NSxoZWlnaHQ6XzQ3fHw1MDAsd2lkdGg6XzQ4fHw1MDAsZnVs bHNjcmVlbjpmYWxzZSxjYWxsYmFja19mbjpfNDl9Owp2YXIgd2luPW5ldyBHQl9X aW5kb3coXzRhKTsKcmV0dXJuIHdpbi5zaG93KHVybCk7Cn07CkdCX3Nob3dDZW50 ZXI9ZnVuY3Rpb24oXzRjLHVybCxfNGUsXzRmLF81MCl7CnZhciBfNTE9e2NhcHRp b246XzRjLGNlbnRlcl93aW46dHJ1ZSxoZWlnaHQ6XzRlfHw1MDAsd2lkdGg6XzRm fHw1MDAsZnVsbHNjcmVlbjpmYWxzZSxjYWxsYmFja19mbjpfNTB9Owp2YXIgd2lu PW5ldyBHQl9XaW5kb3coXzUxKTsKcmV0dXJuIHdpbi5zaG93KHVybCk7Cn07CkdC X3Nob3dGdWxsU2NyZWVuPWZ1bmN0aW9uKF81Myx1cmwsXzU1KXsKdmFyIF81Nj17 Y2FwdGlvbjpfNTMsZnVsbHNjcmVlbjp0cnVlLGNhbGxiYWNrX2ZuOl81NX07CnZh ciB3aW49bmV3IEdCX1dpbmRvdyhfNTYpOwpyZXR1cm4gd2luLnNob3codXJsKTsK fTsKR0JfV2luZG93PUdyZXlCb3guZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKF81OCl7 CnRoaXMucGFyZW50KHt9KTsKdGhpcy5pbWdfaGVhZGVyPXRoaXMucm9vdF9kaXIr ImhlYWRlcl9iZy5naWYiOwp0aGlzLmltZ19jbG9zZT10aGlzLnJvb3RfZGlyKyJ3 X2Nsb3NlLmdpZiI7CnRoaXMuc2hvd19jbG9zZV9pbWc9dHJ1ZTsKQUpTLnVwZGF0 ZSh0aGlzLF81OCk7CnRoaXMuYWRkQ2FsbGJhY2sodGhpcy5jYWxsYmFja19mbik7 Cn0saW5pdEhvb2s6ZnVuY3Rpb24oKXsKQUpTLmFkZENsYXNzKHRoaXMuZ193aW5k b3csIkdCX1dpbmRvdyIpOwp0aGlzLmhlYWRlcj1BSlMuVEFCTEUoeyJjbGFzcyI6 ImhlYWRlciJ9KTsKdGhpcy5oZWFkZXIuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJ1 cmwoIit0aGlzLmltZ19oZWFkZXIrIikiOwp2YXIgXzU5PUFKUy5URCh7ImNsYXNz IjoiY2FwdGlvbiJ9LHRoaXMuY2FwdGlvbik7CnZhciBfNWE9QUpTLlREKHsiY2xh c3MiOiJjbG9zZSJ9KTsKaWYodGhpcy5zaG93X2Nsb3NlX2ltZyl7CnZhciBfNWI9 QUpTLklNRyh7InNyYyI6dGhpcy5pbWdfY2xvc2V9KTsKdmFyIF81Yz1BSlMuU1BB TigiQ2xvc2UiKTsKdmFyIGJ0bj1BSlMuRElWKF81YixfNWMpOwpBSlMuQUVWKFtf NWIsXzVjXSwibW91c2VvdmVyIixmdW5jdGlvbigpewpBSlMuYWRkQ2xhc3MoXzVj LCJvbiIpOwp9KTsKQUpTLkFFVihbXzViLF81Y10sIm1vdXNlb3V0IixmdW5jdGlv bigpewpBSlMucmVtb3ZlQ2xhc3MoXzVjLCJvbiIpOwp9KTsKQUpTLkFFVihbXzVi LF81Y10sIm1vdXNlZG93biIsZnVuY3Rpb24oKXsKQUpTLmFkZENsYXNzKF81Yywi Y2xpY2siKTsKfSk7CkFKUy5BRVYoW181YixfNWNdLCJtb3VzZXVwIixmdW5jdGlv bigpewpBSlMucmVtb3ZlQ2xhc3MoXzVjLCJjbGljayIpOwp9KTsKQUpTLkFFVihb XzViLF81Y10sImNsaWNrIixHQl9oaWRlKTsKQUpTLkFDTihfNWEsYnRuKTsKfQp0 Ym9keV9oZWFkZXI9QUpTLlRCT0RZKCk7CkFKUy5BQ04odGJvZHlfaGVhZGVyLEFK Uy5UUihfNTksXzVhKSk7CkFKUy5BQ04odGhpcy5oZWFkZXIsdGJvZHlfaGVhZGVy KTsKQUpTLkFDTih0aGlzLnRvcF9jbnQsdGhpcy5oZWFkZXIpOwppZih0aGlzLmZ1 bGxzY3JlZW4pewpBSlMuQUVWKHdpbmRvdywic2Nyb2xsIixBSlMuJGIodGhpcy5z ZXRXaW5kb3dQb3NpdGlvbix0aGlzKSk7Cn0KfSxzZXRGcmFtZVNpemU6ZnVuY3Rp b24oKXsKaWYodGhpcy5mdWxsc2NyZWVuKXsKdmFyIF81ZT1BSlMuZ2V0V2luZG93 U2l6ZSgpOwpvdmVybGF5X2g9XzVlLmg7CnRoaXMud2lkdGg9TWF0aC5yb3VuZCh0 aGlzLm92ZXJsYXkub2Zmc2V0V2lkdGgtKHRoaXMub3ZlcmxheS5vZmZzZXRXaWR0 aC8xMDApKjEwKTsKdGhpcy5oZWlnaHQ9TWF0aC5yb3VuZChvdmVybGF5X2gtKG92 ZXJsYXlfaC8xMDApKjEwKTsKfQpBSlMuc2V0V2lkdGgodGhpcy5oZWFkZXIsdGhp cy53aWR0aCs2KTsKQUpTLnNldFdpZHRoKHRoaXMuaWZyYW1lLHRoaXMud2lkdGgp OwpBSlMuc2V0SGVpZ2h0KHRoaXMuaWZyYW1lLHRoaXMuaGVpZ2h0KTsKfSxzZXRX aW5kb3dQb3NpdGlvbjpmdW5jdGlvbigpewp2YXIgXzVmPUFKUy5nZXRXaW5kb3dT aXplKCk7CkFKUy5zZXRMZWZ0KHRoaXMuZ193aW5kb3csKChfNWYudy10aGlzLndp ZHRoKS8yKS0xMyk7CmlmKCF0aGlzLmNlbnRlcl93aW4pewpBSlMuc2V0VG9wKHRo aXMuZ193aW5kb3csQUpTLmdldFNjcm9sbFRvcCgpKTsKfWVsc2V7CnZhciBmbD0o KF81Zi5oLXRoaXMuaGVpZ2h0KS8yKS0yMCtBSlMuZ2V0U2Nyb2xsVG9wKCk7Cmlm KGZsPDApewpmbD0wOwp9CkFKUy5zZXRUb3AodGhpcy5nX3dpbmRvdyxmbCk7Cn0K fX0pOwpBSlMucHJlbG9hZEltYWdlcyhHQl9ST09UX0RJUisid19jbG9zZS5naWYi LEdCX1JPT1RfRElSKyJoZWFkZXJfYmcuZ2lmIik7CgoKc2NyaXB0X2xvYWRlZD10 cnVlOw== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=gb_styles.css Content-Type: text/css; charset=windows-1250; name=gb_styles.css Content-Location: http://martanek.net/java_script/greybox/gb_styles.css Content-Transfer-Encoding: 8bit /* Last-Modified: 28/06/06 00:08:22 */ #GB_overlay { background-color: #000; position: absolute; margin: auto; top: 0; left: 0; z-index: 100; } #GB_window { left: 0; top: 0; font-size: 1px; position: absolute; overflow: visible; z-index: 150; } #GB_window .content { width: auto; margin: 0; padding: 0; } #GB_frame { border: 0; margin: 0; padding: 0; overflow: auto; white-space: nowrap; } .GB_Gallery { margin: 0 22px 0 22px; } .GB_Gallery .content { background-color: #fff; border: 3px solid #ddd; } .GB_header { top: 10px; left: 0; margin: 0; z-index: 500; position: absolute; border-bottom: 2px solid #555; border-top: 2px solid #555; } .GB_header .inner { background-color: #333; font-family: Arial, Verdana, sans-serif; padding: 2px 20px 2px 20px; } .GB_header table { margin: 0; width: 100%; border-collapse: collapse; } .GB_header .caption { text-align: left; color: #eee; white-space: nowrap; font-size: 20px; } .GB_header .close { text-align: right; } .GB_header .close img { z-index: 500; cursor: pointer; } .GB_header .middle { white-space: nowrap; text-align: center; } #GB_middle { color: #eee; } #GB_middle img { cursor: pointer; vertical-align: middle; } #GB_middle .disabled { cursor: default; } #GB_middle .left { padding-right: 10px; } #GB_middle .right { padding-left: 10px; } .GB_Window .content { background-color: #fff; border: 3px solid #ccc; border-top: none; } .GB_Window .header { border-bottom: 1px solid #aaa; border-top: 1px solid #999; border-left: 3px solid #ccc; border-right: 3px solid #ccc; margin: 0; height: 22px; font-size: 12px; padding: 3px 0; color: #333; } .GB_Window .caption { font-size: 12px; text-align: left; font-weight: bold; white-space: nowrap; padding-right: 20px; } .GB_Window .close { text-align: right; } .GB_Window .close span { font-size: 12px; cursor: pointer; } .GB_Window .close img { cursor: pointer; padding: 0 3px 0 0; } .GB_Window .on { border-bottom: 1px solid #333; } .GB_Window .click { border-bottom: 1px solid red; } ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=main.js Content-Type: application/x-javascript; name=main.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/main.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IERla2xhcmFjZSAiam1lbm7DqWhvIHBy b3N0b3J1IiBrbmlob3ZlbiBKQUsuIETDoWxlIG9ic2FodWplIHJvesWhw63FmWVu w60KICogcHLDoWNlIHMgcG9saSBkbGUgZGVmaW5pY2UgSmF2YVNjcmlwdHUgdmVy emUgMS42LiBQxZlpIHBvdcW+aXTDrSB0w6l0byBrbmlob3ZueSBqZQogKiBudXRu w6kgcG9sZSB2xb5keSBwcm9jaMOhemV0IHBvbW9jw60gZm9yICh2YXIgaT0wOyBh cnIubGVuZ3RoID4gaTsgaSsrKS4gIAogKiBAdmVyc2lvbiAxLjAKICogQGF1dGhv ciBqZWxjIAogKi8gCgovKioKICogU1pOIHN0YXRpY2vDvSBvYmpla3QsIGt0ZXLD vSBzZSBwb3XFvsOtdsOhIHBybyAiemFwb3V6ZMWZZW7DrSIKICogdsWhZWNoIGRl ZmluaWMgYSBkZWtsYXJhY8OtLiBWIHBvZG3DrW5jZSBzZSBuYWxlesOhIHBybwog KiBqaXN0b3R1LCBwcm90b8W+ZSBtxa/FvmUgYsO9dCBkZWZpbm92w6FuIGplxaF0 xJsgcMWZZWQgc3ZvdQogKiBkZWtsYXJhY8OtIHDFmWkgcG91xb5pdMOtIHNsb3Zu w61rxa8sIG5lYm8ga29uZmlndXJhY8OtLiAKICogQG5hbWVzcGFjZQogKiBAbmFt ZSBTWk4KICogQHN0YXRpYyB7T2JqZWN0fSAKICogICAKKi8KaWYodHlwZW9mIFNa TiAhPSAnb2JqZWN0Jyl7Cgl2YXIgU1pOID0ge05BTUU6IlNaTiJ9Owp9OwoKLyoq CiAqIHZ5dHZvxZllbsOtIGZ1bmtjZSwga3RlcsOhIHZyYWPDrSB2b2zDoW7DrSBm dW5rY2UgdmUgc3bDqW0gYXJndW1lbnR1ICJmbmMiIGpha28gbWV0b2R5IAogKiBv Ympla3R1IHogYXJndW1lbnR1ICJvYmoiIHMgcMWZZWRhbsO9bWkgYXJndW1lbnR5 LiBNZXRvZHUgcG91xb7DrXZhasOtIGRhbMWhw60gdMWZw61keSB2IFNaTiAobmFw xZkuIFNaTi5Db21wb25lbnRzKQogKiBAc3RhdGljCiAqIEBtZXRob2QgCiAqIEBw YXJhbSB7b2JqZWN0fSBvYmogb2JqZWt0IHYgamVob8W+IG9ib3J1IHBsYXRub3N0 aSBidWRlIHZvbMOhbiBkcnVow70gYXJndW1lbnQKICogQHBhcmFtIHtmdW5jdGlv bn0gZm5jIGZ1bmtjZSBrdGVyw6EgYnVkZSBwcm92ZWRlbmEgdiBvYm9ydSBwbGF0 bm9zdGkgcHJ2bsOtaG8gYXJndW1lbnR1CiAqIEBleGFtcGxlIHZhciB0ZXN0ID0g ZnVuY3Rpb24oKXsKICoJCWFsZXJ0KHRoaXMudmFsdWUpOwogKiAgfSAKICogIHdp bmRvdy52YWx1ZSA9IDE7CiAqICB2YXIgb2JqID0ge3ZhbHVlOjJ9OwogKiAgdmFy IHBva3VzID0gU1pOLmJpbmQob2JqLHRlc3QpCiAqICB0ZXN0KCk7IC8vIGFsZXJ0 KDEpOwogKiAgcG9rdXMoKTsgLy8gYWxlcnQoMik7ICAgCiAqIEByZXR1cm4ge2Z1 bmN0aW9ufSB2b2zDoW7DrSB0YWt0byB2eXR2b8WZZW7DqSBmdW5rY2UKKi8KU1pO LmJpbmQgPSBmdW5jdGlvbihvYmosZm5jKXsKCXJldHVybiBmdW5jdGlvbigpIHsK CQlyZXR1cm4gZm5jLmFwcGx5KG9iaixhcmd1bWVudHMpOwoJfQp9OwoKLyoqCiAq IGdlbmVyw6F0b3IgdW5pa2F0bsOtY2ggSUQKICogQHN0YXRpYwogKiBAbWV0aG9k IAogKiBAcmV0dXJuIHtzdHJpbmd9IHVuaWvDoXRuw60gSUQKICovClNaTi5pZEdl bmVyYXRvciA9IGZ1bmN0aW9uKCl7Cgl0aGlzLmlkQ250ID0gdGhpcy5pZENudCA8 IDEwMDAwMDAwID8gdGhpcy5pZENudCA6IDA7Cgl2YXIgaWRzID0gJ20nICsgIG5l dyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKDE2KSArICAnbScgKyB0aGlzLmlk Q250LnRvU3RyaW5nKDE2KTsKCXRoaXMuaWRDbnQrKzsKCXJldHVybiBpZHM7CQp9 OwoKLyoqIAogKiByb3rFocOtxZllbsOtIHBvbMOtIHYgSlMgMS42IGRsZSBkZWZp bmljZSBuYSBodHRwOi8vZGV2Lm1vemlsbGEub3JnCiAqCiAqLwppZiAoIUFycmF5 LnByb3RvdHlwZS5pbmRleE9mKSB7IAoJQXJyYXkucHJvdG90eXBlLmluZGV4T2Yg PSBmdW5jdGlvbihpdGVtLCBmcm9tKSB7CgkgICAgdmFyIGxlbiA9IHRoaXMubGVu Z3RoOwoJICAgIHZhciBpID0gZnJvbSB8fCAwOwoJICAgIGlmIChpIDwgMCkgeyBp ICs9IGxlbjsgfQoJICAgIGZvciAoO2k8bGVuO2krKykgewoJCQlpZiAoaSBpbiB0 aGlzICYmIHRoaXNbaV0gPT09IGl0ZW0pIHsgcmV0dXJuIGk7IH0KCSAgICB9Cgkg ICAgcmV0dXJuIC0xOwoJfQp9CmlmICghQXJyYXkuaW5kZXhPZikgewoJQXJyYXku aW5kZXhPZiA9IGZ1bmN0aW9uKG9iaiwgaXRlbSwgZnJvbSkgeyByZXR1cm4gQXJy YXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIGl0ZW0sIGZyb20pOyB9Cn0K CmlmICghQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSB7IAoJQXJyYXkucHJv dG90eXBlLmxhc3RJbmRleE9mID0gZnVuY3Rpb24oaXRlbSwgZnJvbSkgewoJICAg IHZhciBsZW4gPSB0aGlzLmxlbmd0aDsKCQl2YXIgaSA9IGZyb20gfHwgbGVuLTE7 CgkJaWYgKGkgPCAwKSB7IGkgKz0gbGVuOyB9CgkgICAgZm9yICg7aT4tMTtpLS0p IHsKCQkJaWYgKGkgaW4gdGhpcyAmJiB0aGlzW2ldID09PSBpdGVtKSB7IHJldHVy biBpOyB9CgkgICAgfQoJICAgIHJldHVybiAtMTsKCX0KfQppZiAoIUFycmF5Lmxh c3RJbmRleE9mKSB7IAoJQXJyYXkubGFzdEluZGV4T2YgPSBmdW5jdGlvbihvYmos IGl0ZW0sIGZyb20pIHsgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhP Zi5jYWxsKG9iaiwgaXRlbSwgZnJvbSk7IH0KfQoKaWYgKCFBcnJheS5wcm90b3R5 cGUuZm9yRWFjaCkgeyAKCUFycmF5LnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rp b24oY2IsIF90aGlzKSB7CgkgICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoOwoJICAg IGZvciAodmFyIGk9MDtpPGxlbjtpKyspIHsgCgkJCWlmIChpIGluIHRoaXMpIHsg Y2IuY2FsbChfdGhpcywgdGhpc1tpXSwgaSwgdGhpcyk7IH0KCQl9Cgl9Cn0KaWYg KCFBcnJheS5mb3JFYWNoKSB7IAoJQXJyYXkuZm9yRWFjaCA9IGZ1bmN0aW9uKG9i aiwgY2IsIF90aGlzKSB7IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2Jq LCBjYiwgX3RoaXMpOyB9Cn0KCmlmICghQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSB7 IAoJQXJyYXkucHJvdG90eXBlLmV2ZXJ5ID0gZnVuY3Rpb24oY2IsIF90aGlzKSB7 CgkgICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoOwoJICAgIGZvciAodmFyIGk9MDtp PGxlbjtpKyspIHsKCQkJaWYgKGkgaW4gdGhpcyAmJiAhY2IuY2FsbChfdGhpcywg dGhpc1tpXSwgaSwgdGhpcykpIHsgcmV0dXJuIGZhbHNlOyB9CgkgICAgfQoJICAg IHJldHVybiB0cnVlOwoJfQp9CmlmICghQXJyYXkuZXZlcnkpIHsgCglBcnJheS5l dmVyeSA9IGZ1bmN0aW9uKG9iaiwgY2IsIF90aGlzKSB7IHJldHVybiBBcnJheS5w cm90b3R5cGUuZXZlcnkuY2FsbChvYmosIGNiLCBfdGhpcyk7IH0KfQoKaWYgKCFB cnJheS5wcm90b3R5cGUuc29tZSkgeyAKCUFycmF5LnByb3RvdHlwZS5zb21lID0g ZnVuY3Rpb24oY2IsIF90aGlzKSB7CgkJdmFyIGxlbiA9IHRoaXMubGVuZ3RoOwoJ CWZvciAodmFyIGk9MDtpPGxlbjtpKyspIHsKCQkJaWYgKGkgaW4gdGhpcyAmJiBj Yi5jYWxsKF90aGlzLCB0aGlzW2ldLCBpLCB0aGlzKSkgeyByZXR1cm4gdHJ1ZTsg fQoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KaWYgKCFBcnJheS5zb21lKSB7IAoJ QXJyYXkuc29tZSA9IGZ1bmN0aW9uKG9iaiwgY2IsIF90aGlzKSB7IHJldHVybiBB cnJheS5wcm90b3R5cGUuc29tZS5jYWxsKG9iaiwgY2IsIF90aGlzKTsgfQp9Cgpp ZiAoIUFycmF5LnByb3RvdHlwZS5tYXApIHsgCglBcnJheS5wcm90b3R5cGUubWFw ID0gZnVuY3Rpb24oY2IsIF90aGlzKSB7CgkJdmFyIGxlbiA9IHRoaXMubGVuZ3Ro OwoJCXZhciByZXMgPSBuZXcgQXJyYXkobGVuKTsKCQlmb3IgKHZhciBpPTA7aTxs ZW47aSsrKSB7CgkJCWlmIChpIGluIHRoaXMpIHsgcmVzW2ldID0gY2IuY2FsbChf dGhpcywgdGhpc1tpXSwgaSwgdGhpcyk7IH0KCQl9CgkJcmV0dXJuIHJlczsKCX0K fQppZiAoIUFycmF5Lm1hcCkgeyAKCUFycmF5Lm1hcCA9IGZ1bmN0aW9uKG9iaiwg Y2IsIF90aGlzKSB7IHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2Jq LCBjYiwgX3RoaXMpOyB9Cn0KCmlmICghQXJyYXkucHJvdG90eXBlLmZpbHRlcikg eyAKCUFycmF5LnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbihjYiwgX3RoaXMp IHsKCQl2YXIgbGVuID0gdGhpcy5sZW5ndGg7CgkgICAgdmFyIHJlcyA9IFtdOwoJ CQlmb3IgKHZhciBpPTA7aTxsZW47aSsrKSB7CgkJCQlpZiAoaSBpbiB0aGlzKSB7 CgkJCQkJdmFyIHZhbCA9IHRoaXNbaV07IC8vIGluIGNhc2UgZnVuIG11dGF0ZXMg dGhpcwoJCQkJCWlmIChjYi5jYWxsKF90aGlzLCB2YWwsIGksIHRoaXMpKSB7IHJl cy5wdXNoKHZhbCk7IH0KCQkJCX0KCQkJfQoJICAgIHJldHVybiByZXM7Cgl9Cn0K aWYgKCFBcnJheS5maWx0ZXIpIHsgCglBcnJheS5maWx0ZXIgPSBmdW5jdGlvbihv YmosIGNiLCBfdGhpcykgeyByZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5j YWxsKG9iaiwgY2IsIF90aGlzKTsgfQp9Cg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=classmaker.js Content-Type: application/x-javascript; name=classmaker.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/classmaker.js Content-Transfer-Encoding: Base64 LyoNCkxpY2VuY292w6FubyBwb2QgTUlUIExpY2VuY8OtDQoNCsKpIDIwMDggU2V6 bmFtLmN6LCBhLnMuDQoNClTDrW10byBzZSB1ZMSbbHVqZSBiZXrDunBsYXRuw6Eg bmV2w71ocmFkbsOtIGxpY2VuY2Uga8Kgb3Byw6F2bsSbbsOtIHXFvsOtdmF0IFNv ZnR3YXJlLA0KxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3Vs YWR1IHPCoHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhv IHrDoWtvbmEuDQoNCk5hYnl2YXRlbC91xb5pdmF0ZWwsIGt0ZXLDvSBvYmRyxb5l bCBrb3BpaSB0b2hvdG8gc29mdHdhcnUgYSBkYWzFocOtIHDFmWlkcnXFvmVuw6kg DQpzb3Vib3J5IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7E m24ga8KgbmFrbMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogDQpqYWvDvWNoa29s aSBvbWV6ZW7DrSwgdsSNZXRuxJsgYmV6IG9tZXplbsOtIHByw6F2YSBzb2Z0d2Fy ZSB1xb7DrXZhdCwgcG/FmWl6b3ZhdCBzaSANCnrCoG7Em2oga29waWUsIG3Em25p dCwgc2xvdcSNaXQsIMWhw63FmWl0LCBwb3NreXRvdmF0IHpjZWxhIG5lYm8gesSN w6FzdGkgdMWZZXTDrSBvc29ixJsgDQoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZh dCBqZWhvIGtvcGllLCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoNCg0K LSB2w73FoWUgdXZlZGVuw6kgbGljZW7EjW7DrSB1amVkbsOhbsOtIG11c8OtIGLD vXQgdXZlZGVubyBuYSB2xaFlY2gga29wacOtY2ggbmVibyANCnBvZHN0YXRuw71j aCBzb3XEjcOhc3RlY2ggU29mdHdhcnUuDQoNCi0gc29mdHdhcmUgamUgcG9za3l0 b3bDoW4gdGFrIGphayBzdG9qw60gYSBsZcW+w60sIHR6bi4gYXV0b3IgbmVvZHBv dsOtZMOhIA0KemEgamVobyB2YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRr eSwgbGVkYcW+ZSB2xJtjIG5lbcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAN CnByb2hsw6Fzw60sIMW+ZSBqaSBtw6EsIG5lYm8ga3Rlcm91IHNpIG5hYnl2YXRl bC91xb5pdmF0ZWwgdsO9c2xvdm7EmyB2eW3DrW5pbC4NCg0KDQoNCkxpY2VuY2Vk IHVuZGVyIHRoZSBNSVQgTGljZW5zZQ0KDQpDb3B5cmlnaHQgKGMpIDIwMDggU2V6 bmFtLmN6LCBhLnMuDQoNClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkNCm9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsDQppbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUgcmlnaHRzDQp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsDQpjb3BpZXMgb2Yg dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg U29mdHdhcmUgaXMNCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6DQoNClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk IGluDQphbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT b2Z0d2FyZS4NCg0KVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1INCklNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLA0KRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFDQpB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSDQpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG Uk9NLA0KT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTg0KVEhFIFNPRlRXQVJFLg0K Ki8NCg0KLyoqDQogKiBAb3ZlcnZpZXcgU3RhdGlja8OhIHTFmcOtZGEgc2VzdGF2 dWrDrWPDrSBkxJtkacSNbm9zdCByb3rFoWnFmW92w6Fuw61tIHByb3RvdHlwb3bD qWhvIG9iamVrdHUNCiAqIGRvcGzFiG92w6Fuw61tIHrDoWtsYWRuw61jaCBtZXRv ZCBhIHRlc3RvdsOhbsOtbSB6w6F2aXNsb3N0w60uIA0KICogQHZlcnNpb24gMy4x DQogKiBAYXV0aG9yIGplbGMsIHphcmENCiAqLyAgIA0KDQovKioNCiAqIEBzdGF0 aWMNCiAqIEBuYW1lIFNaTi5DbGFzc01ha2VyDQogKiBAY2xhc3MgS29uc3RydWt0 b3Igc2UgbmV2eXXFvsOtdsOhLiBWxb5keSByb3Zub3Ugdm9sw6FtZSBtZXRvZHks IHRlZHkgbmFwxZkuOiBTWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3MoLi4uKS4NCiAq LyAgICANClNaTi5DbGFzc01ha2VyID0ge307DQoNCi8qKiANCiAqIEBmaWVsZCB7 c3RyaW5nfSB2ZXJ6ZSB0xZnDrWR5IA0KICovDQpTWk4uQ2xhc3NNYWtlci5WRVJT SU9OID0gIjMuMSI7DQovKiogDQogKiBAZmllbGQge3N0cmluZ30gbsOhemV2IHTF mcOtZHkgDQogKi8NClNaTi5DbGFzc01ha2VyLk5BTUUgPSAiQ2xhc3NNYWtlciI7 DQovKiogDQogKiBAZmllbGQge3N0cmluZ30gdHlwIHTFmcOtZHkgKHN0YXRpY3xj bGFzcykNCiAqLw0KU1pOLkNsYXNzTWFrZXIuQ0xBU1MgPSAic3RhdGljIjsNCi8q KiANCiAqIEBmaWVsZCB7b2JqZWN0fSBpbnN0YW5jZSB0xZnDrWR5IE9iakNvcHks IGplLWxpIGsgZGlzcG96aWNpIChwb3XFvsOtdsOhIHNlIGtlIGtvcMOtcm92w6Fu w60gcHJvdG90eXBvdsO9Y2ggdmxhc3Rub3N0w60sIGt0ZXLDqSBqc291IG9iamVr dHkpDQogKi8NClNaTi5DbGFzc01ha2VyLmNvcHlPYmogPSBudWxsOw0KCQ0KLyoq DQogKiB2bGFzdG7DrSBtZXRvZGEgcHJvIHZ5dHZvxZllbsOtIHTFmcOtZHksIHYg amVkaW7DqW0gcGFyYW1ldHJ1IHNlIGRvenbDrSBpbmZvcm1hY2UgbyB0xZnDrWTE mywga3Rlcm91IG3DoSB2eXR2b8WZaXQNCiAqIEBtZXRob2QgDQogKiBAcGFyYW0g e29iamVjdH0gcGFyYW1zIHBhcmFtZXRyeSBwcm8gdHZvcmJ1IG5vdsOpIHTFmcOt ZHk6DQogKiA8dWw+DQogKiA8bGk+TkFNRSAtIHBvdmlubsO9IG7DoXpldiB0xZnD rWR5PC9saT4NCiAqIDxsaT5WRVJTSU9OIChzdHJpbmcpIC0gdmVyemUgdMWZw61k eTwvbGk+DQogKiA8bGk+VFlQRSAtICJjbGFzcyIvInN0YXRpYyIsIHN0YXRpY2vD oSB0xZnDrWRhIG9kcG92w61kw6EgbGl0ZXLDoWxvdsOpbXUgb2JqZWt0dSBhIG5l bcWvxb5lIG5pYyBkxJtkaXQ8L2xpPg0KICogPGxpPkVYVEVORCAtIHJlZmVyZW5j ZSBuYSByb2RpxI1vdnNrb3UgdMWZw61kdTwvbGk+DQogKiA8bGk+SU1QTEVNRU5U IC0gcG9sZSByZWZlcmVuY8OtIG5hIHJvemhyYW7DrSwgamXFviB0YXRvIHTFmcOt ZGEgaW1wbGVtZW50dWplPC9saT4NCiAqIDxsaT5ERVBFTkQgLSBwb2xlIHrDoXZp c2xvc3TDrTwvbGk+DQogKiA8L3VsPg0KICovDQpTWk4uQ2xhc3NNYWtlci5tYWtl Q2xhc3MgPSBmdW5jdGlvbihwYXJhbXMpIHsNCglpZiAoIXBhcmFtcy5OQU1FKSB7 IHRocm93IG5ldyBFcnJvcigiTm8gTkFNRSBwYXNzZWQgdG8gU1pOLkNsYXNzTWFr ZXIubWFrZUNsYXNzKCkiKTsgfQ0KCQ0KCS8qIG11enUga29waXJvdmF0IG9iamVr dHkgPyAqLw0KCWlmKHRoaXMuY29weU9iaiA9PSBudWxsKXsNCgkJaWYoIk9iakNv cHkiIGluIFNaTil7DQoJCQl0aGlzLmNvcHlPYmogPSBuZXcgU1pOLk9iakNvcHko KTsNCgkJfQ0KCX0gDQoJDQoJdmFyIHZlcnNpb24gPSBwYXJhbXMuVkVSU0lPTiB8 fCAiMS4wIjsNCgl2YXIgZXh0ZW5kID0gcGFyYW1zLkVYVEVORCB8fCBmYWxzZTsN Cgl2YXIgaW1wbGVtZW50ID0gcGFyYW1zLklNUExFTUVOVCB8fCBbXTsNCgl2YXIg ZGVwZW5kID0gcGFyYW1zLkRFUEVORCB8fCBbXTsNCgl2YXIgdHlwZSA9IHBhcmFt cy5DTEFTUzsNCgkNCgkvKiBpbXBsZW1lbnQgbXV6ZSBieXQgdGV6IGplZGVuIHBy dmVrICovDQoJaWYgKCEoaW1wbGVtZW50IGluc3RhbmNlb2YgQXJyYXkpKSB7IGlt cGxlbWVudCA9IFtpbXBsZW1lbnRdOyB9DQoJDQoJLyogdGVzdCB6YXZpc2xvc3Rp ICovDQoJdmFyIHJlc3VsdCA9IGZhbHNlOw0KCWlmIChyZXN1bHQgPSB0aGlzLl90 ZXN0RGVwZW5kKGRlcGVuZCkpIHsgdGhyb3cgbmV3IEVycm9yKCJEZXBlbmRlbmN5 IGVycm9yIGluIGNsYXNzICIgKyBwYXJhbXMuTkFNRSArICIgKCIrcmVzdWx0KyIp Iik7IH0NCgkNCglpZiAodHlwZSA9PSAic3RhdGljIikgeyAvKiBzdGF0aWNrYSB0 cmlkYSAqLw0KCQl2YXIgb2JqID0ge307DQoJCW9iai5WRVJTSU9OID0gdmVyc2lv bjsNCgkJb2JqLk5BTUUgPSBwYXJhbXMuTkFNRTsNCgkJb2JqLkNMQVNTID0gInN0 YXRpYyI7DQoJCXJldHVybiBvYmo7DQoJDQoJfSANCgkNCgl2YXIgY29uc3RydWN0 b3IgPSBmdW5jdGlvbigpIHsgLyogbm9ybWFsbmkgdHJpZGEgKi8NCglpZih0aGlz LnNDb25zdHJ1Y3Rvci5tYWtlTm90aGluZykgcmV0dXJuOw0KCQl2YXIgaW5pY2lh bGl6YXRvciA9IGZhbHNlOw0KCQlpZiAoIiRjb25zdHJ1Y3RvciIgaW4gYXJndW1l bnRzLmNhbGxlZS5wcm90b3R5cGUpIHsNCgkJCWluaWNpYWxpemF0b3IgPSBhcmd1 bWVudHMuY2FsbGVlLnByb3RvdHlwZS4kY29uc3RydWN0b3I7DQoJCX0gZWxzZSBp ZiAocGFyYW1zLk5BTUUgaW4gYXJndW1lbnRzLmNhbGxlZS5wcm90b3R5cGUpIHsN CgkJCWluaWNpYWxpemF0b3IgPSBhcmd1bWVudHMuY2FsbGVlLnByb3RvdHlwZVtw YXJhbXMuTkFNRV07DQoJCX0NCgkJaWYgKGluaWNpYWxpemF0b3IpIHsgaW5pY2lh bGl6YXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IH0NCgl9DQoJDQoJLyogYmFz aWMgcHJvcGVydGllcyAqLw0KCWNvbnN0cnVjdG9yLk5BTUUgPSBwYXJhbXMuTkFN RTsNCgljb25zdHJ1Y3Rvci5WRVJTSU9OID0gdmVyc2lvbjsNCgljb25zdHJ1Y3Rv ci5FWFRFTkQgPSBleHRlbmQ7DQoJY29uc3RydWN0b3IuSU1QTEVNRU5UID0gaW1w bGVtZW50Ow0KCWNvbnN0cnVjdG9yLkRFUEVORCA9IGRlcGVuZDsNCgljb25zdHJ1 Y3Rvci5DTEFTUyA9ICJjbGFzcyI7DQoJDQoJLyogY29tbW9uIGZ1bmN0aW9uYWxp dHkgKi8NCgljb25zdHJ1Y3Rvci5kZXN0cm95ID0gdGhpcy5fZGVzdHJveTsNCgl0 aGlzLl9zZXRJbmhlcml0YW5jZShjb25zdHJ1Y3Rvcik7DQoJDQoJLyogdGhlc2Ug d2lsbCBnZXQgaW5oZXJpdGVkICovDQoJY29uc3RydWN0b3IucHJvdG90eXBlLkNM QVNTID0gImNsYXNzIjsNCgljb25zdHJ1Y3Rvci5wcm90b3R5cGUuc0NvbnN0cnVj dG9yID0gY29uc3RydWN0b3I7DQoJY29uc3RydWN0b3IucHJvdG90eXBlLmNhbGxT dXBlciA9IHRoaXMuX2NhbGxTdXBlcjsNCgkNCglyZXR1cm4gY29uc3RydWN0b3I7 DQp9DQoNCi8qKg0KICogdnl0dsOhxZnDrSB0xZnDrWR1IHBybyBkYWzFocOtIHBv dcW+aXTDrSB6IGxpdGVyw6Fsb3bDqWhvIHrDoXBpc3UgcyBwxZllc27EmyBkZWZp bm92YW7DvW0gdHZhcmVtDQogKiB2bGFzdG5vc3QgPGVtPmNvbnN0cnVjdG9yPC9l bT4gb2JzYWh1amUgZGVmaW5pY2kga29uc3RydWt0b3J1IHTFmcOtZHkJPGJyIC8+ DQogKiB2bGFzdG5vc3QgPGVtPnN0YXRpY0RhdGE8L2VtPiBvYnNhaHVqZSBwb3XF vsOtdmFuw6kgc3RhdGlja8OpIHZsYXN0bm9zdGkgdMWZw61keTxiciAvPg0KICog dmxhc3Rub3N0IDxlbT50cmc8L2VtPiwga3RlcsOhIHVyxI11amUgdiBqYWvDqW0g b2JvcnUgcGxhdG5vc3RpIHNlIHTFmcOtZGEgdnl0dm/FmcOtPGJyIC8+DQogKiB2 bGFzdG5vc3QgPGVtPnByb3RvPC9lbT4gb2JzYWh1amUgdsO9xI1ldCB2bGFzdG5v c3TDrSwga3RlcsOpIHNlIHN0YW5vdSBwcm90b3R5cG92w71taQ0KICogdmxhc3Ru b3N0bWkgbm92w6kgdMWZw61keQ0KICogdmFsc3Rub3N0IDxlbT5hY2Nlc3M8L2Vt PiBvYnNhaHVqZSBkZWZpbmljZSBtb2RpZmlrw6F0b3J1IHDFmWlzdHVwdSBwcm8g cHJvdG90eXBvdsOpDQogKiBtZXRvZHkgdMWZw61keQkgIAkgCSAJIAkgCSANCiAq IDxwcmU+DQogKiBjbGFzc19uYW1lIHsNCiAqCSAJc3RhdGljRGF0YSA6IHsNCiAq CSAJCU5BTUUgOiAnY2xhc3NfbmFtZScsDQogKgkgCQlFWFRFTkQgOidjbGFzc19l eHRlbmQnLA0KICoJIAkJdHJnIDogJ2NsYXNzX293bmVyJwkgCSANCiAqIAkJfSwN CiAqIAkJcHJvdG8gOiB7DQogKiAJCQljbGFzc19uYW1lIDogZnVuY3Rpb24oKXsN CiAqIAkJCQlhbnlfbWV0aG9kX2JvZHkNCiAqCQkJfQ0KICoJCQltZXRob2RfbmFt ZSA6IGZ1bmN0aW9uKCl7DQogKgkJCQlhbnlfbWV0aG9kX2JvZHkNCiAqCSAJCX0J IA0KICoJCX0sDQogKgkJYWNjZXNzIDogew0KICoJCQltZXRob2RfbmFtZSA6ICdw dWJsaWMgbmFtZScNCiAqCSAJfQkgCSANCiAqIH0NCiAqICANCiAqIDwvcHJlPg0K ICogQG1ldGhvZCANCiAqIEBwcml2YXRlIA0KICogQHBhcmFtIHtvYmplY3R9IGNs YXNzRGVmIGxpdGVyYWxvdsOhIGRlZmluaWNlIG5vdsOpIHTFmcOtZHkgdmUgdsO9 xaFlIHV2ZWRlbsOpIHBvZG9ixJsJIAkgCSANCiAqLwkgCSAJIAkNClNaTi5DbGFz c01ha2VyLmpzb25Ub0NsYXNzID0gZnVuY3Rpb24oY2xhc3NEZWYpIHsNCglldmFs KCd2YXIgdHJnID0gJyArIGNsYXNzRGVmLnN0YXRpY0RhdGEudHJnKTsNCgl2YXIg bmFtZSA9IGNsYXNzRGVmLnN0YXRpY0RhdGEuTkFNRTsNCgkNCgl2YXIgcGFyYW1z ID0gew0KCQlOQU1FOm5hbWUsDQoJCVZFUlNJT046Y2xhc3NEZWYuc3RhdGljRGF0 YS5WRVJTSU9OLA0KCQlDTEFTUzoiY2xhc3MiDQoJfQ0KCQ0KCWlmKGNsYXNzRGVm LnN0YXRpY0RhdGEuRVhURU5EKXsNCgkJcGFyYW1zLkVYVEVORCA9IGNsYXNzRGVm LnN0YXRpY0RhdGEuRVhURU5EOw0KCX0NCg0KCWlmKGNsYXNzRGVmLnN0YXRpY0Rh dGEuREVQRU5EKXsNCgkJcGFyYW1zLkRFUEVORCA9IGNsYXNzRGVmLnN0YXRpY0Rh dGEuREVQRU5EOw0KCX0NCg0KCWlmKGNsYXNzRGVmLnN0YXRpY0RhdGEuSU1QTEVN RU5UKXsNCgkJcGFyYW1zLklNUExFTUVOVCA9IGNsYXNzRGVmLnN0YXRpY0RhdGEu SU1QTEVNRU5UOw0KCX0NCgkNCgl0cmdbbmFtZV0gPSBTWk4uQ2xhc3NNYWtlci5t YWtlQ2xhc3MocGFyYW1zKTsNCgkNCglmb3IgKHZhciBwIGluIGNsYXNzRGVmLnBy b3RvKSB7DQoJCXRyZ1tuYW1lXS5wcm90b3R5cGVbcF0gPSBjbGFzc0RlZi5wcm90 b1twXTsNCgkJLy8gbmFzdGF2aW0gcHJvIG1ldG9kdSBtb2RpZmlrYXRvciBwcmlz dHVwdQ0KCQlpZiAoKHR5cGVvZiBjbGFzc0RlZi5hY2Nlc3MgPT0gJ29iamVjdCcp ICYmICh0eXBlb2YgY2xhc3NEZWYuYWNjZXNzW3BdICE9ICd1bmRlZmluZWQnKSkg ew0KCQkJdHJnW25hbWVdLnByb3RvdHlwZVtwXS5hY2Nlc3MgPSBjbGFzc0RlZi5h Y2Nlc3NbcF07DQoJCX0NCgl9CQkNCn0NCgkNCi8qKg0KICogbWV0b2RhIHNsb3XF vsOtY8OtIGtlIHpkxJtkxJtuw60gamFrbyBzdGF0aWNrw6EgbWV0b2RhIHZ5dHbD ocWZZW7DqSB0xZnDrWR5DQogKiBAcHJpdmF0ZQ0KICogQG1ldGhvZCANCiAqIG5h c3RhdnVqZSB2xaFlY2hueSB2bGFzdG5vc3RpIHN2w6lobyBhcmd1bWVudHUgbmEg bnVsbAkgDQogKiBAcGFyYW0ge29iamVjdH0gb2JqIGNpc3Rlbnkgb2JqZWt0DQog Ki8JIAkgCSAJCQ0KU1pOLkNsYXNzTWFrZXIuX2Rlc3Ryb3kgPSBmdW5jdGlvbihv YmopIHsNCglmb3IodmFyIHAgaW4gb2JqKSB7DQoJCW9ialtwXSA9IG51bGw7DQoJ fTsNCn0NCgkNCi8qKg0KICogbWV0b2RhIHNsb3XFvsOtY8OtIGtlIHpkxJtkxJtu w60gamFrbyBwcm90b3R5cG92w6EgbWV0b2RhIHZ5dHbDocWZZW7DqSB0xZnDrWR5 DQogKiBAcHJpdmF0ZQ0KICogQG1ldGhvZCANCiAqIHZyw6F0w60gZnVrY2kga3Rl csOhIHphdm9sw6EgbWV0b2R1IHDFmWVka2EgdMWZw61keSBqYWtvIHZsYXN0bsOt ICANCiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIG7DoXpldiBtZXRvZHkg cMWZZWRrYQ0KICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGluZ0Z1bmN0aW9uIG9k a2F6IG5hIG1ldG9kdSB2IGplasOtbcW+IGtvbnRleHR1IGplIG1ldG9kYSB2b2zD oW5hDQogKiBtxJtsbyBieiB0byBiw710IHbFvmR5IDxzdHJvbmc+YXJndW1lbnRz LmNhbGxlZTwvc3Ryb25nPg0KICogQGV4YW1wbGUgDQogKiAgLy90cmlkYSBDYXIg ZGVkaSB6IHRyaWR5IFZlaGljbGUsIFZlaGljbGUgbWEgbWV0b2R1IGdldFBhc3Nh bmdlcnMsIGt0ZXJvdSB0cmlkYSBDYXIgZGVkaQ0KICogIC8vcGFrIG1vaHUgcHJl ZGVmaW5vdmF0IG1ldG9kdSB0YWt0bzoNCiAqICBDYXIucHJvdG90eXBlLmdldFBh c3NhbmdlcnMoKSB7DQogKiAgCXZhciBjb3VudCA9IHRoaXMuY2FsbFN1cGVyKCdn ZXRQYXNzYW5nZXJzJywgYXJndW1lbnRzLmNhbGxlZSApKCk7IC8vdHkgemF2b3Jr eSBqc291IGR1bGV6aXRlIQ0KICogIAlyZXR1cm4gY291bnQgKyAxOyAgDQogKiAg fSANCiAqLwkgCSAJIAkJDQpTWk4uQ2xhc3NNYWtlci5fY2FsbFN1cGVyID0gZnVu Y3Rpb24obWV0aG9kTmFtZSxjYWxsaW5nRnVuY3Rpb24pew0KCWlmKGNhbGxpbmdG dW5jdGlvbi5sb2NfbGV2ZWwpew0KCQl2YXIgbGV2ZWwgPSBjYWxsaW5nRnVuY3Rp b24ubG9jX2xldmVsOw0KCX0gZWxzZSB7DQoJCXZhciBsZXZlbCA9IHRoaXMuc0Nv bnN0cnVjdG9yOw0KCX0NCgkJDQoJdmFyIHN1cCA9IGxldmVsLkVYVEVORDsNCglp Zighc3VwKXsNCgkJdGhyb3cgbmV3IEVycm9yKCciTm8gc3VwZXItY2xhc3MgYXZh aWxhYmxlIicpOw0KCX0NCgkNCgl2YXIgbWV0aG9kID0gc3VwLnByb3RvdHlwZVtt ZXRob2ROYW1lXTsNCglpZighbWV0aG9kIHx8ICh0eXBlb2YgbWV0aG9kICE9ICdm dW5jdGlvbicpKXsNCgkJdGhyb3cgbmV3IEVycm9yKCciU3VwZXItY2xhc3MgZG9l c25cJ3QgaGF2ZSBtZXRob2QgIicrbWV0aG9kTmFtZSsnIicpOw0KCX0NCgkNCgl2 YXIgbXlTZWxmID0gdGhpczsNCglldmFsKCJ2YXIgZnVuYz0iICsgbWV0aG9kLnRv U3RyaW5nKCkpOw0KCWZ1bmMubG9jX2xldmVsID0gc3VwOyANCglyZXR1cm4gZnVu Y3Rpb24oKXsgcmV0dXJuIGZ1bmMuYXBwbHkobXlTZWxmLGFyZ3VtZW50cyk7fQ0K CQ0KfQ0KDQovKioNCiAqIHZvbMOhIHZsYXN0bsOtIGtvcMOtcm92w6Fuw60gcHJv dG90eXBvdsO9Y2ggdmxhc3Rub3N0w60gamVkbm90bGl2w71jaCByb2RpxI3Frw0K ICogQHByaXZhdGUNCiAqIEBtZXRob2QgDQogKiBAcGFyYW0ge2FycmF5fSBleHRl bmQgcG9sZSByb2RpY292c2t5Y2ggdHJpZA0KKi8NClNaTi5DbGFzc01ha2VyLl9z ZXRJbmhlcml0YW5jZSA9IGZ1bmN0aW9uKGNvbnN0cnVjdG9yKSB7DQoJaWYgKGNv bnN0cnVjdG9yLkVYVEVORCkgeyB0aGlzLl9tYWtlSW5oZXJpdGFuY2UoY29uc3Ry dWN0b3IsIGNvbnN0cnVjdG9yLkVYVEVORCk7IH0NCglmb3IgKHZhciBpPTA7IGk8 Y29uc3RydWN0b3IuSU1QTEVNRU5ULmxlbmd0aDsgaSsrKSB7DQoJCXRoaXMuX21h a2VJbmhlcml0YW5jZShjb25zdHJ1Y3Rvcixjb25zdHJ1Y3Rvci5JTVBMRU1FTlRb aV0sdHJ1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIHByb3ZhZMOtIHZsYXN0bsOtIGtv cMOtcm92YW7DrSBwcm90b3R5cG92w71jaCB2bGFzdG5vc3TDrSB6IHJvZGnEjWUg ZG8gcG90b21rYSANCiAqIHBva3VkIGplIHByb3RvdHlwb3bDoSB2bGFzdG5vc3Qg dHlwdSBvYmplY3QgemF2b2zDoSBtZXRvZHUsIGt0ZXLDoSBzZSBwb2t1c8OtDQog KiB2eXR2b8WZaXQgaGx1Ym9rb3Uga29waWkgdGV0byB2bGFzdG5vc3RpDQogKiBA cHJpdmF0ZQ0KICogQG1ldGhvZCANCiAqIEBwYXJhbSB7b2JqZWN0fSBjb25zdHJ1 Y3RvciBQb3RvbWVrLCBqZWhvxb4gbm92w6kgcHJvdG90eXBvdsOpIHZsYXN0bm9z dGkgbmFzdGF2dWplbWUNCiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJlbnQgUm9kacSN LCB6IGplaG/FviB2bGFzdG5vc3RpICdwcm90eXBlJyBidWRlbWUga29ww61yb3Zh dAkgIAkgDQoqLw0KU1pOLkNsYXNzTWFrZXIuX21ha2VJbmhlcml0YW5jZSA9IGZ1 bmN0aW9uKGNvbnN0cnVjdG9yLCBwYXJlbnQsIG5vU3VwZXIpew0KCQ0KCWlmKCFu b1N1cGVyKSB7DQoJCXBhcmVudC5tYWtlTm90aGluZyA9IHRydWU7DQoJCWNvbnN0 cnVjdG9yLnByb3RvdHlwZSA9IG5ldyBwYXJlbnQoKTsNCgkJaWYodGhpcy5jb3B5 T2JqICE9IG51bGwpew0KCQkJZm9yKHZhciBpIGluIHBhcmVudC5wcm90b3R5cGUp ew0KCQkJCWlmKHR5cGVvZiBwYXJlbnQucHJvdG90eXBlW2ldID09ICdvYmplY3Qn KXsNCgkJCQkJY29uc3RydWN0b3IucHJvdG90eXBlW2ldID0gdGhpcy5jb3B5T2Jq LmNvcHkocGFyZW50LnByb3RvdHlwZVtpXSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJ CXBhcmVudC5tYWtlTm90aGluZyA9IGZhbHNlOw0KCQlyZXR1cm47DQoJfQ0KDQoJ Zm9yKHZhciBwIGluIHBhcmVudC5wcm90b3R5cGUpew0KCQlpZiAodHlwZW9mIHBh cmVudC5wcm90b3R5cGVbcF0gPT0gJ29iamVjdCcpIHsNCgkJCWlmKHRoaXMuY29w eU9iaiAhPSBudWxsKXsNCgkJCQljb25zdHJ1Y3Rvci5wcm90b3R5cGVbcF0gPSB0 aGlzLmNvcHlPYmouY29weShwYXJlbnQucHJvdG90eXBlW3BdKTsNCgkJCX0NCgkJ fSBlbHNlIHsNCgkJCS8vIHBybyByb3pocmFuaSBuZWRlZGltZSBtZXRvZHkgJGNv bnN0cnVjdG9yIGEgJGRlc3RydWN0b3Igcm96aHJhbmkNCgkJCWlmKG5vU3VwZXIg JiYgKChwID09ICckY29uc3RydWN0b3InKSB8fCAocCA9PSAnJGRlc3RydWN0b3In KSkpew0KCQkJCWNvbnRpbnVlOw0KCQkJfQkJDQoJCQljb25zdHJ1Y3Rvci5wcm90 b3R5cGVbcF0gPSBwYXJlbnQucHJvdG90eXBlW3BdOw0KCQl9DQoJfQ0KfQ0KCQ0K LyoqDQogKiB0ZXN0dWplIHrDoXZpc2xvc3RpIHZ5dHbDocWZZW7DqSB0xZnDrWR5 LCBwb2t1ZCBqc291IG5hc3RhdmVuw6kNCiAqIEBwcml2YXRlDQogKiBAbWV0aG9k IA0KICogQHBhcmFtIHthcnJheX0gZGVwZW5kIFBvbGUgesOhdmlzbG9zdMOtLCBr dGVyZSBjaGNlbWUgb3Rlc3RvdmF0DQogKiBAcmV0dXJucyB7Ym9vbGVhbn0gb3V0 IHRydWUgPSBvazsgZmFsc2UgPSBrbwkgDQoqLw0KU1pOLkNsYXNzTWFrZXIuX3Rl c3REZXBlbmQgPSBmdW5jdGlvbihkZXBlbmQpew0KCXZhciBvdXQgPSB0cnVlOw0K CWZvcih2YXIgaSA9IDA7IGkgPCBkZXBlbmQubGVuZ3RoOyBpKyspIHsNCgkJdmFy IGl0ZW0gPSBkZXBlbmRbaV07DQoJCWlmICghaXRlbS5zQ2xhc3MgfHwgIWl0ZW0u dmVyKSB7IHJldHVybiAiTWFsZm9ybWVkIGRlcGVuZGVuY3kiOyB9DQoJCXZhciBk ZXBNYWpvciA9IGl0ZW0uc0NsYXNzLlZFUlNJT04uc3BsaXQoJy4nKVswXTsNCgkJ dmFyIGNsYU1ham9yID0gaXRlbS52ZXIuc3BsaXQoJy4nKVswXTsNCgkJaWYgKGRl cE1ham9yICE9IGNsYU1ham9yKSB7IHJldHVybiAiVmVyc2lvbiBjb25mbGljdCBp biAiK2l0ZW0uc0NsYXNzLk5BTUU7IH0NCgl9DQoJcmV0dXJuIGZhbHNlOw0KfQ0K ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=browser.js Content-Type: application/x-javascript; name=browser.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/browser.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IERldGVrY2Uga2xpZW50c2vDqWhvIHBy b3N0xZllZMOtIHYgesOhdmlzbG9zdGkgbmEgdmxhc3Rub3N0ZWNoIEphdmFTY3Jp cHR1CiAqIChwb2t1ZCBqZSB0byBtb8W+bsOpLCBqaW5hayBkbGUgdmxhc3Rub3N0 aSBuYXZpZ2F0b3IudXNlckFnZW50KS4KICogQHZlcnNpb24gMi4xCiAqIEBhdXRo b3IgamVsYywgemFyYQogKi8gICAKCgovKioKICogQHN0YXRpYwogKiBAbmFtZSBT Wk4uQnJvd3NlcgogKiBAY2xhc3MgU3RhdGlja8OhIHTFmcOtZGEgb2JzYWh1asOt Y8OtIHZsYXN0bm9zdGkgPGVtPnBsYXRmb3JtPC9lbT4sIDxlbT5jbGllbnQ8L2Vt PiwgIAogKiA8ZW0+dmVyc2lvbjwvZW0+IGEgPGVtPmFnZW50PC9lbT4sIGt0ZXLD qSB1csSNdWrDrSB1xb5pdmF0ZWxvdm8gcHJvc3TFmWVkw60KICoKICovClNaTi5C cm93c2VyID0gU1pOLkNsYXNzTWFrZXIubWFrZUNsYXNzKHsKCU5BTUU6ICJCcm93 c2VyIiwKCVZFUlNJT046ICIyLjEiLAoJQ0xBU1M6ICJzdGF0aWMiCn0pOwoKLyoq IEBmaWVsZCB7c3RyaW5nfSBwbGF0Zm9ybSBzeXN0ZW0gdXppdmF0ZWxlICovClNa Ti5Ccm93c2VyLnBsYXRmb3JtID0gJyc7Ci8qKiBAZmllbGQge3N0cmluZ30gY2xp ZW50IHByb2hsaXplYyB1eml2YXRlbGUgKi8KU1pOLkJyb3dzZXIuY2xpZW50ID0g Jyc7Ci8qKiBAaWdub3JlICovClNaTi5Ccm93c2VyLmtsaWVudCA9ICcnOwovKiog QGZpZWxkIHtzdHJpbmd9IHZlcnNpb24gdmVyemUgcHJvaGxpemVjZSAqLwpTWk4u QnJvd3Nlci52ZXJzaW9uID0gMDsKLyoqIEBmaWVsZCB7c3RyaW5nfSBhZ2VudCBo b2Rub3RhIHN5c3RlbW92ZSBwcm9tZW5lICJuYXZpZ2F0b3IudXNlckFnZW50IiAq LwpTWk4uQnJvd3Nlci5hZ2VudCA9ICcnOwovKiogQGZpZWxkIHtvYmplY3R9IG1v dXNlIG9iamVrdCBzIHZsYXN0bm9zdG1pIGxlZnQsIHJpZ2h0LCBtaWRkbGUga3Rl csOpIGx6ZSBwb3XFvsOtdCBrIGlkZW50aWZpa2FjaSBzdGlza251dMOpaG8gdGxh xI3DrXRrYSBtecWhaSAqLwpTWk4uQnJvd3Nlci5tb3VzZSA9IHt9OwoKLyoqCiAq IHpqaXN0dWplIHN5c3RlbSB1eml2YXRlbGUKICogQHByaXZhdGUKICogQG1ldGhv ZCAKICogQHJldHVybnMge3N0cmluZ30ga3RlcnkgcG9waXN1amUgcG91eml2YW55 IHN5c3RlbToKICogPHVsPgogKiA8bGk+bml4IC0gTGludXgsIEJTRCBhcG9kLjwv bGk+CiAqIDxsaT5tYWMgLSBBcHBsZTwvbGk+CiAqIDxsaT53aW4gLSBXaW5kb3dz IHBybyBQQzwvbGk+CiAqIDxsaT5vdGggLSB2c2VjaG5vIG9zdGF0bmk8L2xpPiAg CiAqIDwvdWw+ICAgIAogKgogKi8gICAKU1pOLkJyb3dzZXIuX2dldFBsYXRmb3Jt ID0gZnVuY3Rpb24oKXsKCWlmKCh0aGlzLl9hZ2VudC5pbmRleE9mKCdYMTEnKSAh PSAtMSkgCgl8fCAodGhpcy5fYWdlbnQuaW5kZXhPZignTGludXgnKSAhPSAtMSkp ewoJCXJldHVybiAnbml4JzsKCX0gZWxzZSBpZih0aGlzLl9hZ2VudC5pbmRleE9m KCdNYWMnKSAhPSAtMSl7CgkJcmV0dXJuICdtYWMnOwoJfSBlbHNlIGlmKHRoaXMu X2FnZW50LmluZGV4T2YoJ1dpbicpICE9IC0xKXsKCQlyZXR1cm4gJ3dpbic7Cgl9 IGVsc2UgewoJCXJldHVybiAnb3RoJzsKCX0KfTsKCi8qKgogKiB6amlzdHVqZSB0 eXAgcHJvaGxpemVjZQogKiBAcHJpdmF0ZQogKiBAbWV0aG9kIAogKiBAcmV0dXJu cyB7c3RyaW5nfSBrdGVyeSBwb3Bpc3VqZSBwb3V6aXZhbnkgcHJvaGxpemVjCiAq IDx1bD4KICogPGxpPm9wZXJhIC0gT3BlcmE8L2xpPgogKiA8bGk+aWUgLSBJbnRl cm5ldCBFeHBsb3JlcjwvbGk+CiAqIDxsaT5nZWNrbyAtIE1vemlsbGEgbGlrZTwv bGk+CiAqIDxsaT5rb25xdWVyb3IgLSBLb25xdWVyb3I8L2xpPiAgCiAqIDxsaT5z YWZhcmkgLSBTYWZhcmk8L2xpPiAgCiAqIDxsaT5vdGggLSB2c2VjaG5vIG9zdGF0 bmkvbmV6bmFteTwvbGk+ICAKICogPC91bD4gIAogKi8gICAKU1pOLkJyb3dzZXIu X2dldEtsaWVudCA9IGZ1bmN0aW9uKCl7CglpZih3aW5kb3cub3BlcmEpewoJCXJl dHVybiAnb3BlcmEnOwoJfSBlbHNlIGlmKGRvY3VtZW50LmF0dGFjaEV2ZW50IAoJ JiYgKHR5cGVvZiBuYXZpZ2F0b3Iuc3lzdGVtTGFuZ3VhZ2UgIT0gJ3VuZGVmaW5l ZCcpKXsKCQlyZXR1cm4gJ2llJzsKCX0gZWxzZSBpZiAoZG9jdW1lbnQuZ2V0QW5v bnltb3VzRWxlbWVudEJ5QXR0cmlidXRlKXsKCQlyZXR1cm4gJ2dlY2tvJzsKCX0g ZWxzZSBpZih0aGlzLl9hZ2VudC5pbmRleE9mKCdLSFRNTCcpKXsKCQlpZih0aGlz Ll92ZW5kb3IgPT0gJ0tERScpewoJCQlyZXR1cm4gJ2tvbnF1ZXJvcic7CgkJfSBl bHNlIHsKCQkJcmV0dXJuICdzYWZhcmknOwoJCX0KCX0gZWxzZSB7CgkJcmV0dXJu ICdvdGgnOwoJfQp9OwoKLyoqCiAqIE5hc3RhdnVqZSBpZGVudGlmaWthY2kgbGV2 ZWhvIGEgcHJhdmVobyB0bGFjaXRrYSBteXNpCiAqIEBwcml2YXRlIAogKiBAbWV0 aG9kIAogKiBAcmV0dXJucyB7b2JqZWN0fSBqYWtvIGFzb2NpYXRpdm5pIHBvbGUg cyB2bGFzdG5vc3RtaQogKiA8ZW0+bGVmdDwvZW0+IGEgPGVtPnJpZ2h0PC9lbT4s IGt0ZXJlIG9ic2FodWppIGNpc2VsbnkgaWRlbnRpZmlrYXRvcgogKiBzdGlza251 dGVobyB0bGFjaXRrYSBteXNpIGphayBobyBrbGllbnQgdnJhY2kgdmUgdmxhc3Ru b3N0aSB1ZGFsb3N0aQogKiA8ZW0+ZS5idXR0b248L2VtPgogKi8KU1pOLkJyb3dz ZXIuX2dldE1vdXNlID0gZnVuY3Rpb24oKXsKCXZhciBsZWZ0OwoJdmFyIHJpZ2h0 OwoJdmFyIG1pZGRsZTsKCWlmICgoU1pOLkJyb3dzZXIuY2xpZW50ID09ICdpZScp IHx8IChTWk4uQnJvd3Nlci5jbGllbnQgPT0gJ2tvbnF1ZXJvcicpKXsKCQlsZWZ0 ID0gMTsKCQltaWRkbGUgPSA0OwoJCXJpZ2h0ID0gMjsKCX0gZWxzZSBpZigoU1pO LkJyb3dzZXIuY2xpZW50ID09ICdvcGVyYScpICYmIChTWk4uQnJvd3Nlci52ZXJz aW9uID4gNykgJiYgKFNaTi5Ccm93c2VyLnZlcnNpb24gPCA5KSkgewoJCWxlZnQg PSAxOwoJCW1pZGRsZSA9IDQ7CgkJcmlnaHQgPSAyOwoJfSBlbHNlIGlmIChTWk4u QnJvd3Nlci5jbGllbnQgPT0gJ3NhZmFyaScpewoJCWlmKHBhcnNlSW50KFNaTi5C cm93c2VyLnZlcnNpb24pID4gMil7CgkJCWxlZnQgPSAwOwoJCQltaWRkbGUgPSAw OwoJCQlyaWdodCA9IDI7CgkJfSBlbHNlIHsKCQkJbGVmdCA9IDE7CgkJCW1pZGRs ZSA9IDE7CgkJCXJpZ2h0ID0gMjsKCQl9Cgl9IGVsc2UgewoJCWxlZnQgPSAwOwoJ CW1pZGRsZSA9IDE7CgkJcmlnaHQgPSAyOwoJfQoJCglyZXR1cm4ge2xlZnQ6bGVm dCxyaWdodDpyaWdodCwgbWlkZGxlOm1pZGRsZX07CQp9CgovKioKICogemppc3R1 amUgdmVyemkgZGFuZWhvIHByb2hsaXplY2UsIGRldGVrb3ZhbmVobyBtZXRvZG91 ICJfZ2V0S2xpZW50IgogKiBAcHJpdmF0ZQogKiBAbWV0aG9kIAogKiBAcmV0dXJu cyB7c3RyaW5nfSBuYXZyYXRvdmEgaG9kbm90YSBtZXRvZCBqZWppY2ggbmF6ZXYg amUgc2xvemVueSB6IHJldGV6Y3UKICogJ19nZXRfJyArIHZsYXN0bm9zdCA8ZW0+ a2xpZW50PC9lbT4gICsgJ192ZXInCiAqIEBleGFtcGxlICA8cHJlPgogKiBwcm8g SW50ZXJuZXQgRXhscG9yZXIgamUgdm9sYW5hIG1ldG9kYSA8ZW0+dGhpcy5fZ2V0 X2llX3ZlcigpPC9lbT4KICo8L3ByZT4gICAgCiAqLyAgIApTWk4uQnJvd3Nlci5f Z2V0VmVyc2lvbiA9IGZ1bmN0aW9uKCl7Cgl2YXIgb3V0ID0gMDsKCXZhciBmbmNO YW1lID0gJ19nZXRfJyArIHRoaXMuY2xpZW50ICsgJ192ZXInOwoJCglpZih0eXBl b2YgdGhpc1tmbmNOYW1lXSA9PSAnZnVuY3Rpb24nKXsKCQlyZXR1cm4gdGhpc1tm bmNOYW1lXSgpOwoJfSBlbHNlIHsKCQlyZXR1cm4gMDsKCX0KfTsKCi8qKgogKiBk ZXRla2NlIHZlcnplIEludGVybmV0IEV4cGxvcmVydQogKiBAcHJpdmF0ZQogKiBA bWV0aG9kIAogKiBAcmV0dXJucyB7c3RyaW5nfSB2ZXJ6ZSBwcm9obGl6ZWNlIG9k IDUuMCBkbyA3IChJRSA4IGJ1ZGUgZGV0ZWtvdmFubyBqYWtvIDcpCiAqLyAgIApT Wk4uQnJvd3Nlci5fZ2V0X2llX3ZlciA9IGZ1bmN0aW9uKCl7CglpZih0eXBlb2Yg RnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgIT0gJ3VuZGVmaW5lZCcpewoJCWlmKHdp bmRvdy5YTUxIdHRwUmVxdWVzdCl7CgkJCXJldHVybiAnNyc7CgkJfSBlbHNlIGlm ICh0eXBlb2YgZG9jdW1lbnQuZG9jdHlwZSA9PSAnb2JqZWN0Jyl7CgkJCXJldHVy biAnNic7CgkJfSBlbHNlIHsKCQkJcmV0dXJuICc1LjUnOwoJCX0KCX0gZWxzZSB7 CgkJcmV0dXJuICc1LjAnOwoJfQp9OwoKLyoqCiAqIGRldGVrY2UgdmVyemUgT3Bl cnkKICogQHByaXZhdGUKICogQG1ldGhvZCAKICogQHJldHVybnMge3N0cmluZ30g dmVyemUgcHJvaGxpemVjZSBvZCA2IGRvIDkgKD4gOSBidWRlIGRldGVrb3Zhbm8g amFrbyA5KQogKi8gIApTWk4uQnJvd3Nlci5fZ2V0X29wZXJhX3ZlciA9IGZ1bmN0 aW9uKCl7CglpZihkb2N1bWVudC5kZXNpZ25Nb2RlICYmIGRvY3VtZW50LmV4ZWND b21tYW5kKXsKCQlpZih0eXBlb2YgT2JqZWN0Ll9fZGVmaW5lR2V0dGVyX18gPT0g J2Z1bmN0aW9uJyl7CgkJCXJldHVybiAnOS41JzsKCQl9IGVsc2UgewoJCQlyZXR1 cm4gJzknOwoJCX0KCX0gZWxzZSBpZigoZG9jdW1lbnQuc2VsZWN0aW9uKSAmJiAo ZG9jdW1lbnQuY3JlYXRlUmFuZ2UpKXsKCQlyZXR1cm4gJzgnOwoJfSBlbHNlIGlm KGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQpewoJCXJldHVybiAnNyc7Cgl9IGVsc2Ug ewoJCXJldHVybiAnNic7Cgl9Cn07CgovKioKICogZGV0ZWtjZSB2ZXJ6ZSBHZWNr byBwcm9obGl6ZWN1CiAqIEBwcml2YXRlCiAqIEBtZXRob2QgCiAqIEByZXR1cm5z IHtzdHJpbmd9IHZlcnplIHByb2hsaXplY2Ugb2QgMS41ZG8gMiAoPiAyIGJ1ZGUg ZGV0ZWtvdmFubyBqYWtvIDIpCiAqLyAKU1pOLkJyb3dzZXIuX2dldF9nZWNrb192 ZXIgPSBmdW5jdGlvbigpewoJaWYod2luZG93LmV4dGVybmFsKXsKCQlyZXR1cm4g JzInOwoJfSBlbHNlIHsKCQlyZXR1cm4gJzEuNSc7Cgl9Cn07CgovKioKICogZGV0 ZWtjZSB2ZXJ6ZSBLb25xdWVyb3J1CiAqIEBwcml2YXRlCiAqIEBtZXRob2QgCiAq IEByZXR1cm5zIHtzdHJpbmd9IHZlcnplIHByb2hsaXplY2UgbmEgemFrbGFkZSBo b2Rub3QgdXZlZGVueWNoIHYgbmF2aWdhdG9yLnVzZXJBZ2VudAogKiBkZXRla3Vq aSBzZSBwcnZuaSBkdmUgY2lzbGEgKDMuNCwzLjUsMy42IGF0ZC4uLikgCiAqLyAK U1pOLkJyb3dzZXIuX2dldF9rb25xdWVyb3JfdmVyID0gZnVuY3Rpb24oKXsKCXZh ciBudW0gPSB0aGlzLl9hZ2VudC5pbmRleE9mKCdLSFRNTCcpICsgNjsKCXZhciBw YXJ0ID0gIHRoaXMuX2FnZW50LnN1YnN0cmluZyhudW0pOwoJdmFyIGVuZCA9IHBh cnQuaW5kZXhPZignICcpCgl2YXIgeCA9IHBhcnQuc3Vic3RyaW5nKDAsZW5kIC0g Mik7CglyZXR1cm4geDsKCQp9OwoKLyoqCiAqIGRldGVrY2UgdmVyemUgU2FmYXJp CiAqIEBwcml2YXRlCiAqIEBtZXRob2QgCiAqIEByZXR1cm5zIHtzdHJpbmd9IHZl cnplIHZlcnplIHNlIG5lZGV0ZWt1amUgdnJhY2kgMQogKi8gClNaTi5Ccm93c2Vy Ll9nZXRfc2FmYXJpX3ZlciA9IGZ1bmN0aW9uKCl7Cgl2YXIgdmVyID0gdGhpcy5f YWdlbnQubWF0Y2goL3ZlcnNpb25cLyhbMC05XSspL2kpOwoJcmV0dXJuICh2ZXIg PyB2ZXJbMV0gOiAiMSIpOwp9OwoKLyoqCiAqIGltcGxpY2l0bsOtIGtvbmtzdHJ1 a3RvciwgamUgdm9sw6FuIHDFmWkgbmHEjXRlbsOtIHNrcmlwdHUgCiAqIEBtZXRo b2QgCiAqLyAgIApTWk4uQnJvd3Nlci5nZXRCcm93c2VyID0gZnVuY3Rpb24oKXsK CXRoaXMuX2FnZW50ID0gdGhpcy5hZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7 Cgl0aGlzLl9wbGF0Zm9ybSA9IG5hdmlnYXRvci5wbGF0Zm9ybTsKCXRoaXMuX3Zl bmRvciA9IG5hdmlnYXRvci52ZW5kb3I7Cgl0aGlzLnBsYXRmb3JtID0gdGhpcy5f Z2V0UGxhdGZvcm0oKTsKCXRoaXMuY2xpZW50ID0gdGhpcy5fZ2V0S2xpZW50KCk7 Cgl0aGlzLmtsaWVudCA9IHRoaXMuY2xpZW50OwoJdGhpcy52ZXJzaW9uID0gdGhp cy5fZ2V0VmVyc2lvbigpOwoJdGhpcy5tb3VzZSA9IHRoaXMuX2dldE1vdXNlKCk7 Cn07ClNaTi5Ccm93c2VyLmdldEJyb3dzZXIoKTsK ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=events.js Content-Type: application/x-javascript; name=events.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/events.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IFTFmcOtZGEgc2xvdcW+w61jw60ga2Ug enByYWNvdmF2YW7DrSB1ZGFsb3N0w60gYSDEjWFzb3ZhxI3FryBwb3NreXRvdmFu w71jaCBET00gbW9kZWxlbS4KICogQHZlcnNpb24gMi4wCiAqIEBhdXRob3IgamVs YywgemFyYQogKi8gICAKCi8qKgogKiBAY2xhc3MgU3RhdGlja8O9IGtvbnN0cnVr dG9yLCBuZW3DoSBzbXlzbCB2eXR2w6HFmWV0IGplaG8gaW5zdGFuY2UuCiAqIEBu YW1lIFNaTi5FdmVudHMKICogQHN0YXRpYwogKi8gICAKU1pOLkV2ZW50cyA9IFNa Ti5DbGFzc01ha2VyLm1ha2VDbGFzcyh7CglOQU1FOiAiRXZlbnRzIiwKCVZFUlNJ T046ICIyLjAiLAoJQ0xBU1M6ICJzdGF0aWMiCn0pOwoKLyoqCiAqIGRvIHTDqXRv IHZsYXN0bm9zdGkgdWtsw6Fkw6FtZSB2xaFlY2hueSB1ZMOhbG9zdGkgcHJvIG9k dsSbxaFlbsOtCiAqIEBwcml2YXRlIAogKi8gClNaTi5FdmVudHMuZXZlbnRGb2xk ZXIgPSBuZXcgT2JqZWN0KCk7CgovKioKICogdm5pdMWZbsOtIHByb23Em25uw6kg cHJvIG9uRG9tUmFkeSgpCiAqIEBwcml2YXRlIAogKi8gClNaTi5FdmVudHMuX2Rv bVJlYWR5VGltZXIgPSBudWxsOwpTWk4uRXZlbnRzLl9kb21SZWFkeUNhbGxiYWNr ID0gW107ICAgLy96YXNvYm5payBzIG9iamVrdHkgYSBqZWppY2ggbWV0b2RhbWks IGt0ZXJlIGNoY2kgemF2b2xhdCBwbyBuYXN0b2xlbmkgdWRhbG9zdGkKU1pOLkV2 ZW50cy5fZG9tUmVhZHlBbHJlYWR5UnVuID0gZmFsc2U7LypvbmRvbXJlYWR5IGpl IG9kY2h5dGF2YW5vIHNwZWNpZmlja3kgcHJvIHJ1em5lIGJyb3dzZXJ5IGEgbmEg a29uY2kgamUgd2luZG93Lm9ubG9hZCwgdGFrIGFieSBzZSBuZXNwdXN0aWxvIDJ4 Ki8KU1pOLkV2ZW50cy5fd2luZG93TG9hZExpc3RlbmVySWQgPSAnJzsgLyp2IG5l a3RlcnljaCBwcm9obGl6ZWNpY2ggcG91eml2YW1lIGxpc3RlbmVyLCBwcm8gamVo byBvZHZlc2VuaSBzZW0gc2Nob3ZhdmFtIGplaG8gaWQqLwoKLyoqCiAqIG1ldG9k YSBrdGVyb3UgcG91xb5pamVtZSwgcG9rdWQgY2hjZW1lIG5hdsSbc2l0IHZsYXN0 bsOtIGvDs2QgbmEgdWTDoWxvc3QsIGtkeSBqZSBET00gc3Ryb20gcMWZaXByYXZl biBrIHBvdcW+aXTDrS4KICogSmUgbW/Fvm7DqSBuYXbEm3NpdCBsaWJvdm9sbsO9 IHBvxI1ldCB2b2xhbsO9Y2ggZnVua2PDrS4gICAKICogQG1ldGhvZCAKICogQHBh cmFtIHtvYmplY3R9IG9iaiBvYmpla3QgdmUga3RlcsOpbSBzZSBidWRlIHVkw6Fs b3N0IHphY2h5dMOhdmF0LCBwb2t1ZCBqZSB2b2zDoW5hCiAqIGdsb2JhbG7DrSBm dW5rY2UgbXVzw60gYnl0ICd3aW5kb3cnIHDFmcOtcGFkbsSbICdkb2N1bWVudCcg CiAqIEBwYXJhbSB7ZnVuY3Rpb24gfCBzdHJpbmd9IGZ1bmMgZnVua2NlLCBrdGVy w6Egc2UgYnVkZSBwcm92w6FkxJt0IGpha28gcG9zbHVjaGHEjSAgCiAqLyAKU1pO LkV2ZW50cy5vbkRvbVJlYWR5ID0gZnVuY3Rpb24ob2JqLCBmdW5jKSB7CglTWk4u RXZlbnRzLl9kb21SZWFkeUNhbGxiYWNrW1NaTi5FdmVudHMuX2RvbVJlYWR5Q2Fs bGJhY2subGVuZ3RoXSA9IHtvYmo6IG9iaiwgZnVuYzogZnVuY30KCVNaTi5FdmVu dHMuX29uRG9tUmVhZHkoKTsKfQoKLyoqCiAqIHZuaXRybmkgbWV0b2RhIHZvbGFu YSB6IG9uRG9tUmVhZHksIGR1bGV6aXRlIGt2dWxpIHZvbGFuaSBiZXogcGFyYW1l dHJ1IHBybyBJRSwgYWJ5Y2hvbSB2IHRvbSB0aW1lb3V0dSBtb2hsaSB2b2xhdCBz YW1hIHNlYmUKICogQHByaXZhdGUKICogQG1ldGhvZCAKICovIApTWk4uRXZlbnRz Ll9vbkRvbVJlYWR5ID0gZnVuY3Rpb24oKSB7CglpZigoL1NhZmFyaS9pLnRlc3Qo bmF2aWdhdG9yLnVzZXJBZ2VudCkpIHx8ICgvV2ViS2l0fEtodG1sL2kudGVzdChu YXZpZ2F0b3IudXNlckFnZW50KSkpeyAvL3NhZmFyaSwga29ucXVlcm9yCgkJU1pO LkV2ZW50cy5fZG9tUmVhZHlUaW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpewoJ CQlpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUp KXsKCQkJICAgIGNsZWFySW50ZXJ2YWwoU1pOLkV2ZW50cy5fZG9tUmVhZHlUaW1l cik7CgkJCSAgICBTWk4uRXZlbnRzLl9kb21SZWFkeSgpOyAvLyB6YXZvbGFuaSBj aWxvdmUgbWV0b2R5CgkJCX19LCAxMCk7Ly9hbGVydCgnc2FmYXJpL2tvbnEnKTsK CX0gZWxzZSBpZiAoZG9jdW1lbnQuYWxsICYmICF3aW5kb3cub3BlcmEpeyAvL0lF CgkJdHJ5IHsKCQkJLy8gRGllZ28gUGVyaW5pIHRyaWsgYmV6IGRvY3VtZW50Lndy aXRlLCB2aWNlIHZpeiBodHRwOi8vamF2YXNjcmlwdC5ud2JveC5jb20vSUVDb250 ZW50TG9hZGVkLwoJCQlkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwo ImxlZnQiKTsgLy90ZXN0IG1vem5vc3RpIHNjcm9sb3ZhdCwgc2Nyb2xvdmFuaSBq ZGUgZGxlIG1zZG4gYXogcG8gY29udGVudCBsb2FkCgkJfSBjYXRjaCggZXJyb3Ig KSB7CgkJCXNldFRpbWVvdXQoIGFyZ3VtZW50cy5jYWxsZWUsIDEgKTsgLy9uZWpk ZSwgdGFrIHZvbGFtIHNhbWEgc2ViZQoJCQlyZXR1cm47CgkJfQoJCS8vIHV6IHRv IHByb3NsbwoJCVNaTi5FdmVudHMuX2RvbVJlYWR5KCk7IC8vIHphdm9sYW5pIGNp bG92ZSBtZXRvZHkKCQkvL2FsZXJ0KCdpZScpOwoJfSBlbHNlIAlpZiAoZG9jdW1l bnQuYWRkRXZlbnRMaXN0ZW5lcikgeyAvL0ZGLCBvcGVyYQoJCS8vU1pOLkV2ZW50 cy5fZG9tUmVhZHlBbHJlYWR5UnVuID0gdHJ1ZTsKICAJCWRvY3VtZW50LmFkZEV2 ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBTWk4uRXZlbnRzLl9kb21S ZWFkeSwgZmFsc2UpOyAvL0ZGLCBPcGVyYSBtYSBzcGVjaWZpY2tvdSB1ZGFsb3N0 IAoJCS8vYWxlcnQoJ2ZmL29wJyk7CiAgCX0KICAJCiAgCS8vcG9rdWQgbmljIHog dG9obyB0YWsgZGFtZSBqZXN0ZSBvbmxvYWQgYWxlc3BvbiA6LSkKICAJU1pOLkV2 ZW50cy5fd2luZG93TG9hZExpc3RlbmVySWQgPSBTWk4uRXZlbnRzLmFkZExpc3Rl bmVyKHdpbmRvdywgJ2xvYWQnLCB3aW5kb3csIGZ1bmN0aW9uKCl7LyphbGVydCgn b25sb2FkJyk7Ki8gU1pOLkV2ZW50cy5fZG9tUmVhZHkoKTt9LCBmYWxzZSwgdHJ1 ZSk7Cn0KCi8qKgogKiBtZXRvZGEsIGt0ZXLDoSBqZSB2b2zDoW5hIHogU1pOLkV2 ZW50cy5vbkRvbVJlYWR5IGtkecW+IGplIGRvbSBSRUFEWSwgdGF0byBtZXRvZGEg dm9sw6EgCiAqIG5hIHDFmWVkYW7DqW0gb2JqZWt0dSBmdW5rY2kga3RlcsOhIGJ5 bGEgemFkYW7DoSAKICogQHByaXZhdGUKICogQG1ldGhvZCAKICovIApTWk4uRXZl bnRzLl9kb21SZWFkeSA9IGZ1bmN0aW9uICgpIHsKCS8vemFydWNlbmkgemUgc2Ug dG8gc3B1c3RpIGplbiBqZWRub3UsIHRlZHkgdGVoZHkga2R5eiBqZSBfZG9tUmVh ZHlBbHJlYWR5UnVuPWZhbHNlCglpZiAoIVNaTi5FdmVudHMuX2RvbVJlYWR5QWxy ZWFkeVJ1bikgewoJCS8vbWV0b2RhIGJ5bGEgb3ByYXZkdSB6YXZvbGFuYQoJCVNa Ti5FdmVudHMuX2RvbVJlYWR5QWxyZWFkeVJ1biA9IHRydWU7CgkKCQkvL3BybyBG Riwgb3BlcnUgb2R2ZXNpbSB1ZGFsb3N0CgkJaWYgKGRvY3VtZW50LmFkZEV2ZW50 TGlzdGVuZXIpIHsKCQkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9N Q29udGVudExvYWRlZCIsIFNaTi5FdmVudHMuX2RvbVJlYWR5LCB0cnVlKTsKCQl9 CgkJLy9vZHZlc2VuaSB1ZGFsb3N0aSB3aW5kb3cub25sb2FkCgkJU1pOLkV2ZW50 cy5yZW1vdmVMaXN0ZW5lcihTWk4uRXZlbnRzLl93aW5kb3dMb2FkTGlzdGVuZXJJ ZCk7CgkJCgkJLy92bGFzdG5pIHZvbGFuaSBtZXRvZHkgb2JqZWt0dQoJCWZvcih2 YXIgaT0wOyBpIDwgU1pOLkV2ZW50cy5fZG9tUmVhZHlDYWxsYmFjay5sZW5ndGg7 IGkrKykgewoJCQl2YXIgY2FsbGJhY2sgPSAgU1pOLkV2ZW50cy5fZG9tUmVhZHlD YWxsYmFja1tpXTsKCQkJaWYgKHR5cGVvZiBjYWxsYmFjay5mdW5jID09ICdzdHJp bmcnKSB7CgkJCQljYWxsYmFjay5vYmpbY2FsbGJhY2suZnVuY10oKTsKCQkJfSBl bHNlIHsKCQkJCWNhbGxiYWNrLmZ1bmMuYXBwbHkoY2FsbGJhY2sub2JqLCBbXSk7 CgkJCX0KCQl9CgkJLy9jaXN0ZW5pLCB1eiBuZWNoY2VtZSB6YWRueSBvZGthenkg bmEgb2JqZWt0eSBhIGZ1bmtjZQoJCVNaTi5FdmVudHMuX2RvbVJlYWR5Q2FsbGJh Y2sgPSBbXTsKCX0KCQp9CgoKLyoqCiAqIGRlc3RydWt0b3IsIG9kdsSbc8OtIHbF oWVjaG55IGhhbmRsb3ZhbsOpIHVkw6Fsb3N0aSBhIGplamljaCBwb3NsdWNoYcSN ZSBhIHpydcWhw60gc2UuCiAqIEBtZXRob2QgIAogKi8gICAKU1pOLkV2ZW50cy5k ZXN0cnVjdG9yID0gZnVuY3Rpb24oKSB7Cgl0aGlzLnJlbW92ZUFsbExpc3RlbmVy cygpOwoJdGhpcy5zQ29uc3RydWN0b3IuZGVzdHJveSh0aGlzKTsKfQoKLyoqCiAq IHZyYWNpIHVkw6Fsb3N0LCBrdGVyw6EgamUgcHLDoXbEmyB6cHJhY292w6F2w6Fu YS4KICogQG1ldGhvZCAKICogQGRlcHJlY2F0ZWQKICogQHBhcmFtIHtvYmplY3R9 IGUgdWTDoWxvc3QgIAogKi8gIApTWk4uRXZlbnRzLmdldEV2ZW50ID0gZnVuY3Rp b24oZSl7CglyZXR1cm4gZSB8fCB3aW5kb3cuZXZlbnQ7Cn0KCi8qKgogKiB2cmFj w60gY8OtbCB1ZMOhbG9zdGksIHRlZHkgbmEga3RlcsOpbSBET00gZWxlbWVudHUg YnlsYSB2eXZvbMOhbmEuCiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7b2JqZWN0fSBl IHVkw6Fsb3N0IAogKi8gIApTWk4uRXZlbnRzLmdldFRhcmdldCA9IGZ1bmN0aW9u KGUpewoJdmFyIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsKCXJldHVybiBlLnRhcmdl dCB8fCBlLnNyY0VsZW1lbnQ7IAp9CgovKioKICogemF2xJvFoXVqZSBwb3NsdWNo YcSNZSBuYSBkYW5vdSB1ZMOhbG9zdCwgdnl0dsOhxZnDrSBhIHVrbMOhZMOhIHNp IGFub255bW7DrSBmdW5rY2kKICoga3RlcsOhIHByb3ZlZGUgdmxhc3Ruw60gdm9s w6Fuw60gcmVnaXN0cm92ZW7DqWhvIHBvc2x1Y2hhxI1lIHRhayBhYnkgc2UgcHJv dmVkbCB2ZSBzcHLDoXZuw6ltCiAqIG9ib3J1IHBsYXRub3N0LiAodGhpcyB1dm5p dMWZIHBvc2x1Y2hhxI1lIHNlIGJ1ZGUgdnp0YWhvdmF0IGsgb2JqZWt0dSBqZWhv xb4gamUgbmFzbG91Y2hhasOtY8OtIGZ1bmtjZSBtZXRvZG91ICAKICogYSBqYWtv IHBhcmFtZXRyeSBzZSBqw60gcMWZZWTDoSBvZGtheiBuYSB1ZMOhbG9zdCwga3Rl csOhIGJ5bGEgemFjaHljZW5hIGEgZWxlbWVudCwgbmEga3RlcsOpbSBzZSBuYXNs b3VjaGFsby4KICogQG1ldGhvZCAKICogQHBhcmFtIHtvYmplY3R9IGVsbSBlbGVt ZW50LCBrdGVyw70gdWTDoWxvc3QgemFjaHl0w6F2w6EKICogQHBhcmFtIHtzdHJp bmd9IGVUeXBlIHR5cCB1ZMOhbG9zdGkgYmV6IHDFmWVkcG9ueSAib24iCiAqIEBw YXJhbSB7b2JqZWN0fSBvYmogb2JqZWt0IHZlIGt0ZXLDqW0gc2UgYnVkZSB1ZMOh bG9zdCB6YWNoeXTDoXZhdCwgcG9rdWQgamUgdm9sw6FuYQogKiBnbG9iYWxuw60g ZnVua2NlIG11c8OtIGJ5dCAnd2luZG93JyBwxZnDrXBhZG7EmyAnZG9jdW1lbnQn IAogKiBAcGFyYW0ge2Z1bmN0aW9uIHwgc3RyaW5nfSBmdW5jIGZ1bmtjZSwga3Rl csOhIHNlIGJ1ZGUgcHJvdsOhZMSbdCBqYWtvIHBvc2x1Y2hhxI0KICogPGVtPnN0 cmluZzwvZW0+IHBva3VkIGpkZSBvIG1ldG9kdSA8ZW0+b2JqPC9lbT4gbmVibyBy ZWZlcmVuY2UgbmEgZnVua2NpLCBrdGVyw6Egc2UgemF2b2zDoQogKiBqYWtvIG1l dG9kYSA8ZW0+b2JqPC9lbT4gIAogKiBAcGFyYW0ge2Jvb2xlYW59IGNhcHR1cmUg aG9kbmF0YSBwb3XFvml0w6EgamFrbyBhcmd1bWVudCBjYXB0dXJlIHBybyBET00g emFjaHl0w6F2w6Fuw60KICogcHJvIElFIGplIGlnbm9yb3bDoW5hIAogKiBAcGFy YW0ge2Jvb2xlYW59IGNhY2hlZCB1csSNdWplLCB6ZGEgc2UgbcOhIHVkw6Fsb3N0 IHVrbMOhZGF0IGRvIDxlbT5ldmVudEZvbGRlcjwvZW0+IAogKiBwcm8gcG96ZMSb asWhw60gb2R2xJvFoWVuw60uIFBva3VkIGFubywgcGFrIGFkZEV2ZW50TGlzdGVu ZXIgdnJhY8OtIGplZG5vem5hxI1uw6kgSUQsIHBvZCBrdGVyw71tIGplIG1vxb5u byB1ZMOhbG9zdCBvZHbEm3NpdC4KICogQHJldHVybnMge3N0cmluZ30gaWRlbnRp Zmlrw6F0b3IgaGFuZGxlcnUgdiAgPGVtPmV2ZW50Rm9sZGVyPC9lbT4gcHJvc3TF mWVkbmljdHbDrW0sIGt0ZXLDqWhvIHNlCiAqIHVkw6Fsb3N0IG9kdsSbxaF1amUs IHBva3VkIGplIDxlbT5jYWNoZWQ8L2VtPiB2eWhvZG5vY2VubyBqYWtvIHRydWUK ICogQHRocm93cyB7ZXJyb3J9ICBFdmVudHMuYWRkTGlzdGVuZXI6IGFyZ3VtZW50 c1szXSBtdXN0IGJlIG1ldGhvZCBvZiBhcmd1bWVudHNbMl0KICogQHRocm93cyB7 ZXJyb3J9IEV2ZW50cy5hZGRMaXN0ZW5lcjogYXJndW1lbnRzWzJdIG11c3QgYmUg b2JqZWN0IG9yIGZ1bmN0aW9uCiAqLyAgICAKU1pOLkV2ZW50cy5hZGRMaXN0ZW5l ciA9IGZ1bmN0aW9uKGVsbSxlVHlwZSxvYmosZnVuYyxjYXB0dXJlLGNhY2hlZCl7 Cgl2YXIgY2FwdHVyZSA9IGFyZ3VtZW50c1s0XSA/IGFyZ3VtZW50c1s0XSA6IGZh bHNlOwoJdmFyIGNhY2hlZCA9IGFyZ3VtZW50c1s1XSA/IGFyZ3VtZW50c1s1XSA6 IGZhbHNlOwoJdmFyIG1ldGhvZCA9IG51bGw7Cgl2YXIgdG9Gb2xkID0gbnVsbDsK CWlmKHR5cGVvZiBvYmogPT0gJ2Z1bmN0aW9uJyl7CgkJdG9Gb2xkID0gdGhpcy5f YWRkTGlzdGVuZXIoZWxtLGVUeXBlLG9iaixjYXB0dXJlKTsKCX0gZWxzZSBpZih0 eXBlb2Ygb2JqID09ICdvYmplY3QnKXsKCQl2YXIgY2FjaGVkID0gdHJ1ZTsKCQlp Zih0eXBlb2YgZnVuYyA9PSAnc3RyaW5nJyl7CgkJCWlmKHR5cGVvZiBvYmpbZnVu Y10gPT0gJ2Z1bmN0aW9uJyl7CgkJCQltZXRob2QgPSB0aGlzLl9nZXRNZXRob2Qo b2JqLGZ1bmMsZWxtKTsKCQkJCXRvRm9sZCA9IHRoaXMuX2FkZExpc3RlbmVyKGVs bSxlVHlwZSxtZXRob2QsY2FwdHVyZSk7CQkJCgkJCX0gZWxzZSB7CgkJCQl0aHJv dyBuZXcgRXJyb3IoJ0V2ZW50cy5hZGRMaXN0ZW5lcjogYXJndW1lbnRzWzNdIG11 c3QgYmUgbWV0aG9kIG9mIGFyZ3VtZW50c1syXScpOwoJCQl9CgkJfSBlbHNlIGlm KHR5cGVvZiBmdW5jID09ICdmdW5jdGlvbicpewoJCQltZXRob2QgPSB0aGlzLl9n ZXRNZXRob2Qob2JqLGZ1bmMsZWxtKTsKCQkJdG9Gb2xkID0gdGhpcy5fYWRkTGlz dGVuZXIoZWxtLGVUeXBlLG1ldGhvZCxjYXB0dXJlKTsJCQoJCX0KCX0gZWxzZSB7 CgkJdGhyb3cgbmV3IEVycm9yKCdFdmVudHMuYWRkTGlzdGVuZXI6IGFyZ3VtZW50 c1syXSBtdXN0IGJlIG9iamVjdCBvciBmdW5jdGlvbicpOwoJfQoJaWYoY2FjaGVk KXsKCQlyZXR1cm4gdGhpcy5fc3RvcmVUb0ZvbGRlcih0b0ZvbGQpOwoJfSBlbHNl IHsKCQlyZXR1cm4gMDsKCX0KfQoKLyoqCiAqIHZsYXN0bsOtIHphdsSbxaFlbsOt IHBvc2x1Y2hhxI1lIGJ1ZCBET00ga29tcGF0aWJpbG7EmywgbmVibyBwxZllcyBh dHRhY2hFdmVudAogKiBwcm8gSUUgCiAqIEBwcml2YXRlCiAqIEBtZXRob2QgCiAq IEBwYXJhbSB7b2JqZWN0fSBlbG0gZWxlbWVudCwga3RlcsO9IHVkw6Fsb3N0IHph Y2h5dMOhdsOhCiAqIEBwYXJhbSB7c3RyaW5nfSBlVHlwZSB0eXAgdWTDoWxvc3Rp IGJleiBwxZllZHBvbnkgIm9uIgogKiBAcGFyYW0ge2Z1bmN9IGZ1bmMgZnVua2Nl L21ldG9kYSBrdGVyw6Egc2UgYnVkZSBwcm92w6FkxJt0CiAqIEBwYXJhbSB7Ym9v bGVhbn0gY2FwdHVyZSBob2Rub3RhIHBvdcW+aXTDoSBqYWtvIGFyZ3VtZW50IGNh cHR1cmUgcHJvIERPTSB6YWNoeXTDoXbDoW7DrQogKiBAcmV0dXJucyB7YXJyYXl9 IG9ic2FodWrDrWPDrSBhcmd1bWVudHkgZnVua2NlIHZlIHNob2Ruw6ltIHBvxZlh ZMOtIAogKi8gICAgClNaTi5FdmVudHMuX2FkZExpc3RlbmVyID0gZnVuY3Rpb24o ZWxtLGVUeXBlLGZ1bmMsY2FwdHVyZSl7CglpZiAoZG9jdW1lbnQuYWRkRXZlbnRM aXN0ZW5lcikgewoJCWlmICh3aW5kb3cub3BlcmEgJiYgKGVsbSA9PSB3aW5kb3cp KXsKCQkJZWxtID0gZG9jdW1lbnQ7CgkJfQoJCWVsbS5hZGRFdmVudExpc3RlbmVy KGVUeXBlLGZ1bmMsY2FwdHVyZSk7Cgl9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFj aEV2ZW50KSB7CgkJZWxtLmF0dGFjaEV2ZW50KCdvbicrZVR5cGUsZnVuYyk7Cgl9 CglyZXR1cm4gW2VsbSxlVHlwZSxmdW5jLGNhcHR1cmVdOwp9CgovKioKICogVnl0 dsOhxZnDrSBmdW5rY2kvbWV0b2R1LCBrdGVyw6EgYnVkZSBmdW5nb3ZhdCBqYWtv IHBvc2x1Y2hhxI0gdWTDoWxvc3RpIHRhawogKiBhYnkgcMWZZWRhbsOhIG1ldG9k YSBieWxhIHpwcmFjb3bDoXbDoW5hIHZlIHNwcsOhdm5lbSBvYm9ydSBwbGF0bm9z dGksIHRoaXMgYnVkZQogKiBvYmpla3Qga3RlcsO9IG1hIG5hc2xvdWNoYXQsIHBv xb5hZG92YW7DqSBtZXRvZMSbIHDFmWVkw6F2w6Egb2JqZWt0IHVkw6Fsb3N0aSBh IGVsZW1lbnQgbmEKICoga3RlcsOpbSBzZSBuYXNsb3VjaGFsbwogKiBAcHJpdmF0 ZQogKiBAbWV0aG9kIAogKiBAcGFyYW0ge29iamVjdH0gb2JqIG9iamVrdCB2IGpl aG/FviBvYm9ydSBwbGF0bm9zdGkgc2Ugdnlrb27DoSA8ZW0+ZnVuYzwvZW0+IHBv IHphY2h5Y2Vuw60gdWTDoWxvc3RpCiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMg ZnVua2NlL21ldG9kYSwgdSBrdGVyw6kgY2hjZW1lIGFieSB1c2UgZMOhbG9zdCB6 cHJhY292w6F2YWxhCiAqIEBwYXJhbSB7b2JqZWN0fSBlbG0gRWxlbWVudCBuYSBr dGVyw6ltIHNlIHBvc2xvdWNow6EKICogQHJldHVybnMge2Z1bmN0aW9ufSBhbm9u eW1uw60gZnVua2NlLCBrdGVyw6EgenByb3N0xZllZGt1amUgenByYWNvdsOhbsOt IHVkw6Fsb3N0aQogKiBwb8W+YWRvdmFuw6kgbWV0b2TEmyAKICovICAgIApTWk4u RXZlbnRzLl9nZXRNZXRob2QgPSBmdW5jdGlvbihvYmosZnVuYyxlbG0pewoJaWYo dHlwZW9mIGZ1bmMgPT0gJ3N0cmluZycpewoJCWlmKHR5cGVvZiBvYmpbZnVuY10u Y2FuVHJhbnNmb3JtID09ICd1bmRlZmluZWQnKXsKCQkJcmV0dXJuIGZ1bmN0aW9u KGUpe3JldHVybiBvYmpbZnVuY10uYXBwbHkob2JqLFtlLGVsbV0pfTsKCQl9IGVs c2UgewoJCQlyZXR1cm4gb2JqW2Z1bmNdOwoJCX0KCX0gZWxzZSB7CgkJaWYodHlw ZW9mIGZ1bmMuY2FuVHJhbnNmb3JtID09ICd1bmRlZmluZWQnKXsKCQkJCXJldHVy biBmdW5jdGlvbihlKXtyZXR1cm4gZnVuYy5hcHBseShvYmosW2UsZWxtXSl9OwoJ CX0gZWxzZSB7CgkJCXJldHVybiBmdW5jOwoJCX0JCgl9Cn0KCi8qKgogKiB1a2xh ZMOhIMO6ZGFqZSBvIHphdsSbxaFlbsOpbSBwb3NsdWNoYcSNaSBkbyA8ZW0+ZXZl bnRGb2xkZXI8L2VtPiBwcm8gcG91xb5pdMOtCiAqIHDFmWkgb2R2xJvFoW92w6Fu w60gYSB2cmFjw60gaWRlbnRpZmlrYXRvciB1bG/FvmVuw71jaCDDumRhasWvCiAq IEBwcml2YXRlCiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7YXJyYXl9IGRhdGEgdnLD oWNlbsOhIG1ldG9kb3UgPGVtPl9hZGRMaXN0ZW5lcjwvZW0+CiAqIEByZXR1cm5z IHtzdHJpbmd9IGlkIGlkZW50aWZpa8OhdG9yIGRhdCB2IDxlbT5ldmVudEZvbGRl cjwvZW0+CiAqLyAgIApTWk4uRXZlbnRzLl9zdG9yZVRvRm9sZGVyID0gZnVuY3Rp b24oZGF0YSl7Cgl2YXIgaWQgPSBTWk4uaWRHZW5lcmF0b3IoKTsKCXRoaXMuZXZl bnRGb2xkZXJbaWRdID0gbmV3IE9iamVjdCgpOwoJdGhpcy5ldmVudEZvbGRlcltp ZF0udHJnID0gZGF0YVswXTsKCXRoaXMuZXZlbnRGb2xkZXJbaWRdLnR5cCA9IGRh dGFbMV07Cgl0aGlzLmV2ZW50Rm9sZGVyW2lkXS5hY3Rpb24gPSBkYXRhWzJdOwoJ dGhpcy5ldmVudEZvbGRlcltpZF0uYm9vbCA9IGRhdGFbM107CglyZXR1cm4gaWQ7 CQp9CgovKioKICogb2RlYsOtcsOhbsOtIHBvc2x1Y2hhxI3FryB1ZMOhbG9zdGks IGJ1xI8gemFkw6Fuw61tIHN0ZWpuw71jaCDDumRhasWvIGpha28gcMWZaSBoYW5k bG92w6Fuw60KICogKG5lZG9wb3J1xI1lbm8pIG5lYm8gemFkw6Fuw61tIDxlbT5p ZCAoY2FjaGVkKTwvZW0+LCBrdGVyw6kgdnJhY8OtIG1lZG9kYSA8ZW0+YWRkTGlz dGVuZXI8L2VtPiA8YnIgLz4KICogYSkgcG9rdWQgamUgemFkw6FuIGplbiBqZWRl biBhcmd1bWVudCwgamUgcG92YcW+b3bDoW4gemEgaG9kbm90dSA8ZW0+aWQgKGNo YWNoZWQpPC9lbT48YnIgLz4KICogYikgcG9rdWQgamUgemFkw6FubyB2xaFlY2gg xaFlc3QgYXJndW1lbnTFryBwb3XFvmlqZSBzZSBqZW4gaG9kbm90YSBjaGFjaGVk IGplLWxpIHN0cmluZzxiciAvPgogKiBjKSBqaW5hayBzZSB6a3VzaSBzdGFuZGFy ZG7DrSBvZHbEm8WhZW7DrSwga3RlcsOpIG5lYnVkZSBmdW5nb3ZhdCBwb2t1ZCB6 YXbEm8WhZW7DrSBwcm9ixJtobG8gcyA8ZW0+Y2hhY2hlZDwvZW0+IG5hc3RhdmVu w71tIG5hIHRydWUgIAogKiAgCiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7b2JqZWN0 fSBlbG0gZWxlbW5ldCBuYSBrdGVyw6ltIHNlIHBvc2xvdWNoYWxvCiAqIEBwYXJh bSB7c3RyaW5nfSBlVHlwZSB1ZMOhbG9zdCBrdGVyw6Egc2UgemFjaHl0w6F2YWxh CiAqIEBwYXJhbSB7b2JqZWN0fSBvYmogb2JqZWt0IHYgamVob8W+IG9ib3J1IHBs YXRub3N0aSBzZSB6YWNoeWNlbsOhIHVkw6Fsb3N0IHpwcmFjb3ZhbGEKICogQHBh cmFtIHtmdW5jdGlvbiB8IHN0cmluZ30gZnVuYyBmdW5rY2UvbWV0b2RhIGt0ZXLD oSB1ZMOhbG9zdCB6cHJhY292w6F2YWxhCiAqIEBwYXJhbSB7Ym9vbGVhbn0gY2Fw dHVyZSBob2Rub3RhIGNhcHR1cmUgcHJvIERPTSBvZHbEm8Whb3bDoW7DrQogKiBA cGFyYW0ge3N0cmluZ30gY2FjaGVkIGlkIHBvZCBrdGVyw71tIGpzb3UgdWxvxb5l bmEgZGF0YSBrIG9kdsSbxaFlbsOtIHYgPGVtPmV2ZW50Rm9sZGVyPC9lbT4KICog QHRob3Jvd3Mge2Vycm9yfSBFdmVudHMucmVtb3ZlTGlzdGVuZXI6IHdyb25nIGFy Z3VtZW50cwogKi8gICAgClNaTi5FdmVudHMucmVtb3ZlTGlzdGVuZXIgPSBmdW5j dGlvbihlbG0sZVR5cGUsb2JqLGZ1bmMsY2FwdHVyZSxjYWNoZWQpewoJdmFyIGNh cHR1cmUgPSBhcmd1bWVudHNbNF0gPyBhcmd1bWVudHNbNF0gOiBmYWxzZTsKCXZh ciBjYWNoZWQgPSBhcmd1bWVudHNbNV0gPyBhcmd1bWVudHNbNV0gOiBmYWxzZTsK CWNhY2hlZCA9IChhcmd1bWVudHMubGVuZ3RoID09IDEpID8gYXJndW1lbnRzWzBd IDogY2FjaGVkOwoJaWYodHlwZW9mIGNhY2hlZCA9PSAnc3RyaW5nJyl7CgkJcmV0 dXJuIHRoaXMuX3JlbW92ZUJ5SWQoY2FjaGVkKTsKCX0KCQoJaWYodHlwZW9mIG9i aiA9PSAnZnVuY3Rpb24nKXsKCQlyZXR1cm4gdGhpcy5fcmVtb3ZlTGlzdGVuZXIo ZWxtLGVUeXBlLG9iaixjYXB0dXJlKTsKCX0KCQoJdGhyb3cgbmV3IEVycm9yKCdF dmVudHMucmVtb3ZlTGlzdGVuZXI6IHdyb25nIGFyZ3VtZW50cycpOwp9CgovKioK ICogcHJvdsOhZMOtIHNrdXRlxI1uw6kgb2R2xJvFoWVuw60gcG9zbHVjaGHEjcWv IERPTSBrb21wYXRpYmlsbsSbIMSNaSBwcm8gSUUKICogQHByaXZhdGUKICogQG1l dGhvZCAKICogQHBhcmFtIHtvYmplY3R9IGVsbSBlbGVtZW50IG5hIGt0ZXLDqW0g c2UgbmFzbG91Y2hhbG8KICogQHBhcmFtIHtzdHJpbmd9IGVUeXBlIHVkw6Fsb3N0 LCBrdGVyw6Egc2UgemFjaHl0w6F2YWxhCiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1 bmMgc2t1dGXEjW7DoSBmdW5rY2UsIGt0ZXLDoSB6cHJhY292w6F2YWxhIHVkw6Fs b3N0CiAqIEBwYXJhbSAge2Jvb2xlYW59IGNhcHR1cmUgcHJvIERPTSB6cHJhY292 w6F2w6Fuw60gc3Rlam5hIGhvZG90YSBqYWtvIHDFmWkgemF2xJvFoW92w6Fuw60K ICoKICovICAgIApTWk4uRXZlbnRzLl9yZW1vdmVMaXN0ZW5lciA9IGZ1bmN0aW9u KGVsbSxlVHlwZSxmdW5jLGNhcHR1cmUpewoJaWYgKGRvY3VtZW50LnJlbW92ZUV2 ZW50TGlzdGVuZXIpIHsKCQlpZiAod2luZG93Lm9wZXJhICYmIChlbG0gPT0gd2lu ZG93KSl7CgkJCWVsbSA9IGRvY3VtZW50OwoJCX0KCQllbG0ucmVtb3ZlRXZlbnRM aXN0ZW5lcihlVHlwZSxmdW5jLGNhcHR1cmUpOwoJfSBlbHNlIGlmIChkb2N1bWVu dC5kZXRhY2hFdmVudCkgewoJCWVsbS5kZXRhY2hFdmVudCgnb24nK2VUeXBlLGZ1 bmMpOwoJfQoJcmV0dXJuIDA7Cn0KCi8qKgogKiB2b2zDoSBvZHbEm8WhZW7DrSBu YSB6w6FrbGFkxJsgdmxhc3Rub3N0w60gdWxvxb5lbsO9Y2ggdiA8ZW0+ZXZlbnRG b2xkZXI8L2VtPgogKiBAcHJpdmF0ZQogKiBAbWV0aG9kIAogKiBAcGFyYW0ge3N0 cmluZ30gY2FjaGVkIGlkIHBvZCBrdGVyw71tIGpzb3UgZGF0YSBvIHBvc2x1Y2hh xI1pIHVsb8W+ZW5hCiAqIEByZXR1cm5zIHtudW1iZXJ9IDAgdiBwxZnDrXBhZMSb IMO6c3DEm2NodSwgMSB2IHDFmcOtcGFkxJsgbmXFr3NwxJtjaHUKICovICAgICAK U1pOLkV2ZW50cy5fcmVtb3ZlQnlJZCA9IGZ1bmN0aW9uKGNhY2hlZCl7Cgl0cnl7 CgkJdmFyIG9iaiA9IHRoaXMuZXZlbnRGb2xkZXJbY2FjaGVkXTsKCQl0aGlzLl9y ZW1vdmVMaXN0ZW5lcihvYmoudHJnLG9iai50eXAsb2JqLmFjdGlvbixvYmouYm9v bCk7CgkJdGhpcy5ldmVudEZvbGRlcltjYWNoZWRdID0gbnVsbDsKCQlkZWxldGUo dGhpcy5ldmVudEZvbGRlcltjYWNoZWRdKTsKCX0gY2F0Y2goZSl7CgkJLy9kZWJ1 Zyhjb25TZXJpYWxpemUoZSkpCgkJLy9kZWJ1ZyhvYmoudHJnLm5vZGVOYW1lKQoJ CXJldHVybiAxOwoJfQoJcmV0dXJuIDA7Cn0KCi8qKgogKiBwcm92ZWRlIG9kdsSb xaFlbsOtIHbFoWVjaCBwb3NsdWNoYcSNxa8sIGt0ZcWZw60ganNvdSB1bG/FvmVu aSB2IDxlbT5ldmVudEZvbGRlcjwvZW0+CiAqIEBtZXRob2QgCiAqLyAgIApTWk4u RXZlbnRzLnJlbW92ZUFsbExpc3RlbmVycyA9IGZ1bmN0aW9uKCl7Cglmb3IodmFy IHAgaW4gdGhpcy5ldmVudEZvbGRlcil7CgkJdGhpcy5fcmVtb3ZlQnlJZChwKTsK CX0KfQoKLyoqCiAqIHphc3RhdsOtIHByb2J1YmzDoXZhbsOtIHVkw6Fsb3N0aSBz dHJvbWVtIGRva3VtZW50dQogKiBAbWV0aG9kIAogKiBAcGFyYW0ge29iamVjdH0g ZSB6cHJhY292w6F2YW7DoSB1ZMOhbG9zdCAKICovICAKU1pOLkV2ZW50cy5zdG9w RXZlbnQgPSBmdW5jdGlvbihlKXsKCXZhciBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7 CglpZiAoZS5zdG9wUHJvcGFnYXRpb24pewoJCWUuc3RvcFByb3BhZ2F0aW9uKCk7 Cgl9IGVsc2UgeyAKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9Cn0KCi8qKgog KiB6cnXFocOtIHbDvWNob3rDrSBha2NlIChkZWZpbm92YW7DqSBrbGllbnRlbSkg cHJvIGRhbm91IHVkw6Fsb3N0IChuYXDFmS4gcHJva2xpa251dMOtIG9ka2F6dSkK ICogQG1ldGhvZCAKICogQHBhcmFtIHtvYmplY3R9IGUgenByYWNvdsOhdmFuw6Eg dWTDoWxvc3QgCiAqLyAgIApTWk4uRXZlbnRzLmNhbmNlbERlZiA9IGZ1bmN0aW9u KGUpewoJdmFyIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsKCWlmKGUucHJldmVudERl ZmF1bHQpIHsKCQllLnByZXZlbnREZWZhdWx0KCk7Cgl9IGVsc2UgewoJCWUucmV0 dXJuVmFsdWUgPSBmYWxzZTsKCX0KfQoKCi8qKgogKiBwcm92w6Fkw60gdHJhbnNm b3JtYWNpIHDFmWVkYW7DqSBtZXRvZHkgdGFrIGFieSBzZSB6YXZvbGFsYSB2IGtv bnRleHR1IG9iamVrdHUgPGVtPm93bmVyPC9lbT4KICogcMWZaSBwb3XFvml0w60g diBpbnRlcnZhbHUgbmVibyB0aW1lb3V0dSwgdiBvYm9ydSBwbGF0bm9zdGkgPGVt Pm93bmVyPC9lbT4gdnl0dm/FmcOtIGZ1bmtjaSwga3RlcsOhIHByb3ZlZGUKICog dm9sw6Fuw60gPGVtPmV4ZUZ1bmM8L2VtPiB2IG9ib3J1IHBsYXRub3N0aSA8ZW0+ b3duZXI8L2VtPi4gVmxhc3RuxJsgdG8gc2Ftw6kgamFrbyBTWk4uYmluZCgpLgog KiBAbWV0aG9kICAKICogQHBhcmFtIHtvYmplY3R9IG93bmVyIG9iamVrdCB2IGpl aG/FviBvYm9ydSBwbGF0bm9zdGkgc2UgYnVkZSB2eWtvbsOhdmF0IGZ1bmtjZS9t ZXRvZGEgZXhlRnVuYyB2IMSNYXNvdmHEjWkKICogQHBhcmFtIHtzdHJpbmd9IGhh bmRsZUZ1bmNOYW1lIG7DoXpldiB2bGFzdG5vc3RpIG9iamVrdHUgPGVtPm93bmVy PC9lbT4sIGt0ZXLDoSBzZSBidWRlIHNwb3XFoXTEm3QgdiDEjWFzb3ZhxI1pCiAq IEBwYXJhbSB7ZnVuY3Rpb259IGV4ZUZ1bmMgZnVua2NlL21ldG9kYSwga3Rlcm91 IGNoY2VtZSBwcm92w6FkxJt0CiAqIEBwYXJhbSB7ZnVuY3Rpb259IGV4ZU9iaiBv Ympla3QsIG5hZCBrdGVyeW0gY2hjZW1lIHByb3bDoWTEm3QgbWV0b2R1IDxlbT5l eGVjRnVuYzwvZW0+LCBuZW7DrS1saSB6YWTDoW4gamUgcHJvdsOhZMSbbmEgdiBr b250ZXh0dSA8ZW0+b3duZXI8L2VtPiAKICovICAgICAKU1pOLkV2ZW50cy5hZGRU aW1lRnVuY3Rpb24gPSBmdW5jdGlvbihvd25lcixoYW5kbGVGdW5jTmFtZSxleGVG dW5jLGV4ZU9iail7CglpZighIWV4ZU9iail7CgkJb3duZXJbaGFuZGxlRnVuY05h bWVdID0gZnVuY3Rpb24oKXtyZXR1cm4gZXhlRnVuYy5hcHBseShleGVPYmosW10p fTsKCX0gZWxzZSB7CgkJb3duZXJbaGFuZGxlRnVuY05hbWVdID0gZnVuY3Rpb24o KXtyZXR1cm4gZXhlRnVuYy5hcHBseShvd25lcixbXSl9OwoJfQp9Cg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=dom.js Content-Type: application/x-javascript; name=dom.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/dom.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IFN0YXRpY2vDoSB0xZnDrWRhIHBvc3l0 dWrDrWPDrSBuxJtrdGVyw6kgcHJha3RpY2vDqSBtZXRvZHkgbmEgw7pwcmF2eSBh IHByw6FjaSBzIERPTSBzdHJvbWVtLCBuYXDFmS4gdnl0dsOhxZllbsOtIGEgesOt c2vDoXbDoW7DrSBlbGVtZW50xa8uCiAqIEB2ZXJzaW9uIDMuMAogKiBAYXV0aG9y IHphcmEsIGtva28sIGplbGMKICovCgovKioKICogQHN0YXRpYwogKiBAbmFtZSBT Wk4uRG9tCiAqIEBjbGFzcyBTdGF0aWNrw70ga29uc3RydWt0b3IsIG5lbcOhIHNt eXNsIHZ5dHbDocWZZXQgamVobyBpbnN0YW5jZS4KICovClNaTi5Eb20gPSBTWk4u Q2xhc3NNYWtlci5tYWtlQ2xhc3MoewoJTkFNRTogIkRvbSIsCglWRVJTSU9OOiAi My4xIiwKCUNMQVNTOiAic3RhdGljIgp9KTsKCi8qKgogKiBWeXR2b8WZw60gRE9N IG5vZGUsIGplIG1vxb5uw6kgcm92bm91IHphZGF0IGlkLCBDU1MgdMWZw61kdSBh IHN0eWx5CiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdOYW1lIGptw6lubyB0YWd1IChs b3dlcmNhc2UpCiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBpZCB1emx1CiAqIEBwYXJh bSB7U3RyaW5nfSBjbGFzc05hbWUgbsOhemV2IENTUyB0cmlkKHkpCiAqIEBwYXJh bSB7T2JqZWN0fSBzdHlsZU9iaiBhc29jaWF0aXZuw60gcG9sZSBDU1Mgdmxhc3Ru b3N0w60gYSBqZWppY2ggaG9kbm90CiAqIEBwYXJhbSB7T2JqZWN0fSBkb2MgZG9r dW1lbnQsIHYgamVob8W+IGtvbnRleHR1IHNlIG5vZGUgdnlyb2LDrSAoZGVmYXVs dDogZG9jdW1lbnQpCiAqLwpTWk4uY0VsID0gZnVuY3Rpb24odGFnTmFtZSxpZCxj bGFzc05hbWUsc3R5bGVPYmosZG9jKSB7Cgl2YXIgZCA9IGRvYyB8fCBkb2N1bWVu dDsKCXZhciBub2RlID0gZC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwoJaWYgKGFy Z3VtZW50cy5sZW5ndGggPT0gMSkgeyByZXR1cm4gbm9kZTsgfQoJaWYgKGlkKSB7 IG5vZGUuaWQgPSBpZDsgfQoJaWYgKGNsYXNzTmFtZSkgeyBub2RlLmNsYXNzTmFt ZSA9IGNsYXNzTmFtZTsgfQoJaWYgKHN0eWxlT2JqKSBmb3IgKHAgaW4gc3R5bGVP YmopIHsKCQlub2RlLnN0eWxlW3BdID0gc3R5bGVPYmpbcF07Cgl9CglyZXR1cm4g bm9kZTsKfQoJCi8qKgogKiBBbGlhcyBwcm8gZG9jdW1lbnQuY3JlYXRlVGV4dE5v ZGUKICogQHBhcmFtIHtTdHJpbmd9IHN0ciDFmWV0xJt6ZWMgcyB0ZXh0ZW0KICog QHBhcmFtIHtPYmplY3R9IGRvYyBkb2t1bWVudCwgdiBqZWhvxb4ga29udGV4dHUg c2Ugbm9kZSB2eXJvYsOtIChkZWZhdWx0OiBkb2N1bWVudCkKICovClNaTi5jVHh0 ID0gZnVuY3Rpb24oc3RyLCBkb2MpIHsKCXZhciBkID0gZG9jIHx8IGRvY3VtZW50 OwoJcmV0dXJuIGQuY3JlYXRlVGV4dE5vZGUoc3RyKTsKfQoJCi8qKgogKiB6amVk bm9kdcWhZW7DvSBwxZnDrXN0dXAgayBtZXRvZMSbIERPTSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZAogKiBAc3RhdGljCiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7c3Ry aW5nfSBpZHMgaWQgSFRNTCBlbGVtZW50dSwga3RlcsO9IGNoY2VtZSB6w61za2F0 LAogKiBORUJPIHDFmcOtbW8gZWxlbWVudAogKiBAcmV0dXJucyB7b2JqZWN0fSBI VE1MIGVsZW1lbnQgcyBpZCA9IGlkcywgcG9rdWQgZXhpc3R1amUsIE5FQk8gZWxl bWVudCBzcGVjaWZpa292YW7DvSBqYWtvIHBhcmFtZXRyCiAqLwogU1pOLmdFbCA9 IGZ1bmN0aW9uKGlkcyl7CglpZiAodHlwZW9mKGlkcykgPT0gInN0cmluZyIpIHsK CQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzKTsKCX0gZWxzZSB7 IHJldHVybiBpZHM7IH0KfQoKLyoqCiAqIFByb3BvamkgemFkYW7DqSBET00gdXps eQogKiBAcGFyYW0ge0FycmF5fSBwb2xlMS4uLnBvbGVOIGxpYm92b2xuw70gcG/E jWV0IHBvbMOtOyBwcm8ga2HFvmTDqSBwb2xlIHNlIHZlem1lIGplaG8gcHJ2bsOt IHBydmVrIGEgb3N0YXRuw60gCiAqICAgc2UgbXUgbmF2xJtzw60gamFrbyBwb3Rv bWNpCiAqLwpTWk4uRG9tLmFwcGVuZCA9IGZ1bmN0aW9uKCkgeyAvKiB0YWtlcyB2 YXJpYWJsZSBhbW91bnQgb2YgYXJyYXlzICovCglmb3IgKHZhciBpPTA7aTxhcmd1 bWVudHMubGVuZ3RoO2krKykgewoJCXZhciBhcnIgPSBhcmd1bWVudHNbaV07CgkJ dmFyIGhlYWQgPSBhcnJbMF07CgkJZm9yICh2YXIgaj0xO2o8YXJyLmxlbmd0aDtq KyspIHsKCQkJaGVhZC5hcHBlbmRDaGlsZChhcnJbal0pOwoJCX0KCX0KfQoJCi8q KgogKiBPdGVzdHVqZSwgbcOhLWxpIHphZGFueSBET00gdXplbCBkYW5vdSBDU1Mg dMWZw61kdQogKiBAcGFyYW0ge09iamVjdH0gZWxlbWVudCBET00gdXplbAogKiBA cGFyYW0ge1N0cmluZ30gY2xhc3NOYW1lIENTUyB0xZnDrWRhCiAqIEByZXR1cm4g e2Jvb2xlYW59IHRydWV8ZmFsc2UKICovClNaTi5Eb20uaGFzQ2xhc3MgPSBmdW5j dGlvbihlbGVtZW50LGNsYXNzTmFtZSkgewoJdmFyIGFyciA9IGVsZW1lbnQuY2xh c3NOYW1lLnNwbGl0KCIgIik7Cglmb3IgKHZhciBpPTA7aTxhcnIubGVuZ3RoO2kr KykgeyAKCQlpZiAoYXJyW2ldID09IGNsYXNzTmFtZSkgeyByZXR1cm4gdHJ1ZTsg fSAKCX0KCXJldHVybiBmYWxzZTsKfQoKLyoqCiAqIFDFmWlkw6EgRE9NIHV6bHUg Q1NTIHTFmcOtZHUuIFBva3VkIGppIGppxb4gbcOhLCBwYWsgbmV1ZMSbbMOhIG5p Yy4KICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnQgRE9NIHV6ZWwKICogQHBhcmFt IHtTdHJpbmd9IGNsYXNzTmFtZSBDU1MgdMWZw61kYQogKi8KU1pOLkRvbS5hZGRD bGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQsY2xhc3NOYW1lKSB7CglpZiAoU1pOLkRv bS5oYXNDbGFzcyhlbGVtZW50LGNsYXNzTmFtZSkpIHsgcmV0dXJuOyB9CgllbGVt ZW50LmNsYXNzTmFtZSArPSAiICIrY2xhc3NOYW1lOwp9CgovKioKICogT2RlYmVy ZSBET00gdXpsdSBDU1MgdMWZw61kdS4gUG9rdWQgamkgbmVtw6EsIG5ldWTEm2zD oSBuaWMuCiAqIEBwYXJhbSB7T2JqZWN0fSBlbGVtZW50IERPTSB1emVsCiAqIEBw YXJhbSB7U3RyaW5nfSBjbGFzc05hbWUgQ1NTIHTFmcOtZGEKICovClNaTi5Eb20u cmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbihlbGVtZW50LGNsYXNzTmFtZSkgewoJdmFy IG5hbWVzID0gZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoIiAiKTsKCXZhciBuZXdD bGFzc0FyciA9IFtdOwoJZm9yICh2YXIgaT0wO2k8bmFtZXMubGVuZ3RoO2krKykg ewoJCWlmIChuYW1lc1tpXSAhPSBjbGFzc05hbWUpIHsgbmV3Q2xhc3NBcnIucHVz aChuYW1lc1tpXSk7IH0KCX0KCWVsZW1lbnQuY2xhc3NOYW1lID0gbmV3Q2xhc3NB cnIuam9pbigiICIpOwp9CgovKioKICogVnltYcW+ZSAocmVtb3ZlQ2hpbGQpIHbF oWVjaG55IHBvdG9ta3kgZGFuw6lobyBET00gdXpsdQogKiBAcGFyYW0ge09iamVj dH0gZWxlbWVudCBET00gdXplbAogKi8KU1pOLkRvbS5jbGVhciA9IGZ1bmN0aW9u KGVsZW1lbnQpIHsKCXdoaWxlIChlbGVtZW50LmZpcnN0Q2hpbGQpIHsgZWxlbWVu dC5yZW1vdmVDaGlsZChlbGVtZW50LmZpcnN0Q2hpbGQpOyB9Cn0KCi8qKgogKiB2 cmFjw60gdmVsaWtvc3QgZG9rdW1lbnR1LCBwcm8gc3Byw6F2bm91IGZ1bmtjaW9u YWxpdHUgamUgdMWZZWJhIGFieSAKICogYnJvd3NlciByZW5kcm92YWwgSFRNTCB2 ZSBzdGFuZGFyZG7DrW0gbcOzZHUgCiAqIEBtZXRob2QgIAogKiBAcmV0dXJucyB7 b2JqZWN0fSBzIHZsYXN0bm9zdG1pOgogKiA8dWw+PGxpPjxlbT53aWR0aDwvZW0+ IC0gxaHDrcWZa2EgZG9rdW1lbnR1PC9saT48bGk+PGVtPmhlaWdodDwvZW0+IC0g dsO9xaFrYSBkb2t1bWVudHU8L2xpPjwvdWw+IAogKi8gICAgClNaTi5Eb20uZ2V0 RG9jU2l6ZSA9IGZ1bmN0aW9uKCl7Cgl2YXIgeCA9IDA7Cgl2YXIgeSA9IDA7CQkK CQoJaWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoICYmIFNa Ti5Ccm93c2VyLmtsaWVudCAhPSAnb3BlcmEnKXsKCQl4ID0gZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOwoJCXkgPSBkb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQuY2xpZW50SGVpZ2h0OwoJfSBlbHNlIGlmKFNaTi5Ccm93c2VyLmts aWVudCA9PSAnb3BlcmEnKSB7CgkJaWYocGFyc2VGbG9hdChTWk4uQnJvd3Nlci52 ZXJzaW9uKSA8IDkuNSl7CgkJCXggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRo OwoJCQl5ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7CgkJfSBlbHNlIHsK CQkJeCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsKCQkJ eSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7CgkJfQoJ fSAKCQoJaWYgKChTWk4uQnJvd3Nlci5rbGllbnQgPT0gJ3NhZmFyaScpIHx8IChT Wk4uQnJvd3Nlci5rbGllbnQgPT0gJ2tvbnF1ZXJvcicpKXsKCQl5ID0gd2luZG93 LmlubmVySGVpZ2h0OyAKCX0KCQoJcmV0dXJuIHt3aWR0aDp4LGhlaWdodDp5fTsK fTsKCi8qKgogKiB2cmFjw60gcG9sb2h1ICJvYmoiIHZlIHN0csOhbmNlIG5lYm8g dXZuaXTFmSBvYmpla3R1IGt0ZXLDvSBwxZllZMOhbSBqYWtvIGRydWjDvSAKICog YXJndW1lbnQKICogQG1ldGhvZCAKICogQHBhcmFtIHtvYmplY3R9IG9iaiBIVE1M IGVsbWVuZXQsIGplaG/FviBwb3ppY2kgY2hjaSB6amlzdGl0CiAqIEBwYXJhbSB7 b2JqZWN0fSBbcmVmXSA8c3Ryb25nPnZvbGl0ZWxuw708L3N0cm9uZz4gSFRNTCBl bGVtZW50LCB2xa/EjWkga3RlcsOpbXUgY2hjaSB6amlzdGl0IHBvemljaSA8ZW0+ b2JqPC9lbT4sIGVsZW1lbnQgbXVzw60gYsO9dCBqZWhvIHJvZGnEjQogKiBAcmV0 dXJucyB7b2JqZWN0fSBzIHZsYXN0bm9zdG1pIDoKICogPHVsPjxsaT48ZW0+bGVm dDwvZW0+KHB4KSAtIGhvcml6b250w6FsbsOtIHBvemljZSBwcnZrdTwvbGk+PGxp PjxlbT50b3A8L2VtPihweCkgLSB2ZXJ0aWvDoWxuw60gcG96aWNlIHBydmt1PC9s aT48L3VsPiAKICovClNaTi5Eb20uZ2V0Qm94UG9zaXRpb24gPSBmdW5jdGlvbihv YmosIHJlZil7Cgl2YXIgdG9wID0gMDsKCXZhciBsZWZ0ID0gMDsKCXZhciByZWZC b3ggPSByZWYgfHwgZG9jdW1lbnQuYm9keTsKCXdoaWxlIChvYmogJiYgb2JqICE9 IHJlZkJveCkgewoJCXRvcCArPSBvYmoub2Zmc2V0VG9wOwoJCWxlZnQgKz0gb2Jq Lm9mZnNldExlZnQ7CgkJb2JqID0gb2JqLm9mZnNldFBhcmVudDsKCX0KCXJldHVy biB7dG9wOnRvcCxsZWZ0OmxlZnR9Owp9CgovKgoJUGFyIG5vdGljZWsgayB2w71w b8SNdMWvbSBvZHNjcm9sbG92YW7DrToKCS0gcm9kacSNIGJvZHkgamUgaHRtbCAo ZG9jdW1lbnRFbGVtZW50KSwgcm9kacSNIGh0bWwgamUgZG9jdW1lbnQKCS0gdiBz dHJpY3QgbW9kZSBtw6Egc2Nyb2xsIG9rbmEgbmFzdGF2ZW7DqSBodG1sCgktIHYg cXVpcmtzIG1vZGUgbcOhIHNjcm9sbCBva25hIG5hc3RhdmVuw6kgYm9keQoJLSBv cGVyYSBkw6F2w6EgdsW+ZHkgZG8gb2JvdSBkdm91CgktIHNhZmFyaSBkw6F2w6Eg dsW+ZHkgamVuIGRvIGJvZHkKKi8KCi8qKgogKiB2cmFjw60gcG9sb2h1ICJvYmoi IHYgb2tuxJsgbmVibyB1dm5pdMWZIG9iamVrdHUga3RlcsO9IHDFmWVkw6FtZSBq YWtvIGRydWjDvSAKICogYXJndW1lbnQsIHphaHJudWplIGkgcG90ZW5jaWFsbmkg b2Rza3JvbG92YW5pIGtkZWtvbGl2IG5hZCBvYmpla3RlbSAKICoJUGFyIG5vdGlj ZWsgayB2w71wb8SNdMWvbSBvZHNjcm9sbG92YW7DrTo8dWw+CiAqCTxsaT5yb2Rp xI0gYm9keSBqZSBodG1sIChkb2N1bWVudEVsZW1lbnQpLCByb2RpxI0gaHRtbCBq ZSBkb2N1bWVudDwvbGk+CiAqCTxsaT52IHN0cmljdCBtb2RlIG3DoSBzY3JvbGwg b2tuYSBuYXN0YXZlbsOpIGh0bWw8L2xpPgogKgk8bGk+diBxdWlya3MgbW9kZSBt w6Egc2Nyb2xsIG9rbmEgbmFzdGF2ZW7DqSBib2R5PC9saT4KICoJPGxpPm9wZXJh IGTDoXbDoSB2xb5keSBkbyBvYm91IGR2b3U8L2xpPgogKgk8bGk+c2FmYXJpIGTD oXbDoSB2xb5keSBqZW4gZG8gYm9keSA8L2xpPjwvdWw+CiAqIEBtZXRob2QgCiAq IEBwYXJhbSB7b2JqZWN0fSBvYmogSFRNTCBlbG1lbmV0LCBqZWhvxb4gcG96aWNp IGNoY2kgemppc3RpdAogKiBAcGFyYW0ge29iamVjdH0gcGFyZW50IDxzdHJvbmc+ dm9saXRlbG7DvTwvc3Ryb25nPiBIVE1MIGVsZW1lbnQsIHbFr8SNaSBrdGVyw6lt dSBjaGNpIHpqaXN0aXQgcG96aWNpIDxlbT5vYmo8L2VtPiwgZWxlbWVudCBtdXPD rSBiw710IGplaG8gcm9kacSNCiAqIEByZXR1cm5zIHtvYmplY3R9IHMgdmxhc3Ru b3N0bWkgOgogKiA8dWw+PGxpPjxlbT5sZWZ0PC9lbT4ocHgpIC0gaG9yaXpvbnRh bG7DrSBwb3ppY2UgcHJ2a3U8L2xpPjxsaT48ZW0+dG9wPC9lbT4ocHgpIC0gdmVy dGlrw6FsbsOtIHBvemljZSBwcnZrdTwvbGk+PC91bD4gCiAqLwogU1pOLkRvbS5n ZXRGdWxsQm94UG9zaXRpb24gPSBmdW5jdGlvbihvYmosIHBhcmVudCkgewoJdmFy IHBvcyA9IFNaTi5Eb20uZ2V0Qm94UG9zaXRpb24ob2JqLCBwYXJlbnQpOwoJdmFy IHNjcm9sbCA9IFNaTi5Eb20uZ2V0Qm94U2Nyb2xsKG9iaiwgcGFyZW50KTsKCXJl dHVybiB7bGVmdDpwb3MubGVmdC1zY3JvbGwueCx0b3A6cG9zLnRvcC1zY3JvbGwu eX07Cn0KCi8qKgogKiB2cmFjw60gZHZvamljaSDEjcOtc2VsLCBvIGtvbGlrIGpl ICJvYmoiIG9kc2Nyb2xsb3ZhbsO9IHbFr8SNaSBva251IG5lYm8gdsWvxI1pIHph ZGFuw6ltdSByb2RpxI1vdnNrw6ltdSBvYmpla3R1CiAqIEBtZXRob2QgCiAqIEBw YXJhbSB7b2JqZWN0fSBvYmogSFRNTCBlbG1lbmV0LCBqZWhvxb4gb2Rza3JvbG92 YW7DrSBjaGNpIHpqaXN0aXQKICogQHBhcmFtIHtvYmplY3R9IHJlZiA8c3Ryb25n PnZvbGl0ZWxuw708L3N0cm9uZz4gSFRNTCBlbGVtZW50LCB2xa/EjWkga3RlcsOp bXUgY2hjaSB6amlzdGl0IG9kc2tyb2xvdsOhbsOtIDxlbT5vYmo8L2VtPiwgZWxl bWVudCBtdXPDrSBiw710IGplaG8gcm9kacSNCiAqIEByZXR1cm5zIHtvYmplY3R9 IHMgdmxhc3Rub3N0bWkgOgogKiA8dWw+PGxpPjxlbT5sZWZ0PC9lbT4ocHgpIC0g aG9yaXpvbnTDoWxuw60gc2Nyb2xsIHBydmt1PC9saT48bGk+PGVtPnRvcDwvZW0+ KHB4KSAtIHZlcnRpa8OhbG7DrSBzY3JvbGwgcHJ2a3U8L2xpPjwvdWw+IAogKi8K U1pOLkRvbS5nZXRCb3hTY3JvbGwgPSBmdW5jdGlvbihvYmosIHJlZil7Cgl2YXIg eCA9IDA7Cgl2YXIgeSA9IDA7Cgl2YXIgY3VyID0gb2JqLnBhcmVudE5vZGU7Cgl2 YXIgbGltaXQgPSByZWYgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoJd2hp bGUgKDEpIHsKCQkvKiBvcGVyYSBkZWJpbCBvYmNhcyBuYXN0YXZpIHNjcm9sbFRv cCA9IG9mZnNldFRvcCwgYW5peiBieSBieWxvIG9kc2Nyb2xsb3Zhbm8gKi8KCQlp ZiAoU1pOLkJyb3dzZXIuY2xpZW50ID09ICJvcGVyYSIgJiYgU1pOLkRvbS5nZXRT dHlsZShjdXIsImRpc3BsYXkiKSAhPSAiYmxvY2siKSB7IAoJCQljdXIgPSBjdXIu cGFyZW50Tm9kZTsKCQkJY29udGludWU7IAoJCX0KCQkKCQkvKiBhIHRha3kgb3Bl cmEgcG9jaXRhIHNjcm9sbFRvcCBqYWsgcHJvIDxib2R5PiwgdGFrIHBybyA8aHRt bD4gKi8KCQlpZiAoU1pOLkJyb3dzZXIuY2xpZW50ID09ICJvcGVyYSIgJiYgY3Vy ID09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkgeyBicmVhazsgfQoKCQl4ICs9 IGN1ci5zY3JvbGxMZWZ0OwoJCXkgKz0gY3VyLnNjcm9sbFRvcDsKCQlpZiAoY3Vy ID09IGxpbWl0KSB7IGJyZWFrOyB9CgkJY3VyID0gY3VyLnBhcmVudE5vZGU7CgkJ aWYgKCFjdXIpIHsgYnJlYWs7IH0KCX0KCXJldHVybiB7eDp4LHk6eX07Cn0KCi8q KgogKiB2cmFjw60gYWt0dcOhbG7DrSBvZHNrcm9sb3bDoW7DrSBzdHLDoW5reQog KiBAbWV0aG9kICAKICogQHJldHVybnMge29iamVjdH0gcyB2bGFzdG5vc3RtaToK ICogPHVsPjxsaT48ZW0+eDwvZW0+KHB4KSAtIGhvcml6b250w6FsbsOtIG9kc2ty b2xvdsOhbsOtPC9saT48bGk+PGVtPnk8L2VtPihweCkgLSB2ZXJ0aWvDoWxuw60g b2Rza3JvbG92w6Fuw608L2xpPjwvdWw+IAogKgogKi8KU1pOLkRvbS5nZXRTY3Jv bGxQb3MgPSBmdW5jdGlvbigpewoJaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExl ZnQpIHsKCQl2YXIgb3ggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs TGVmdDsKCQl2YXIgb3kgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs VG9wOwoJfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fCBkb2N1 bWVudC5ib2R5LnNjcm9sbExlZnQpIHsgCgkJdmFyIG94ID0gZG9jdW1lbnQuYm9k eS5zY3JvbGxMZWZ0OwoJCXZhciBveSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w OwoJfSBlbHNlIHsKCQl2YXIgb3ggPSAwOwoJCXZhciBveSA9IDA7Cgl9CglyZXR1 cm4ge3g6b3gseTpveX07Cn0KCi8qKgogKiB2cmFjaSBzb3XEjWFzbm91IGhvZG5v dHUgbsSbamFrw6kgY3NzIHZsYXN0bm9zdGkKICogQG1ldGhvZCAKICogQHBhcmFt IHtvYmplY3R9IGVsbSBIVE1MIGVsbWVuZXQsIGplaG/FviB2bGFzbm9zdCBuw6Fz IHphasOtbcOhCiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eSDFmWV0xJt6ZWMg cyBuw6F6dmVtIHZsYXN0bm9zdGkgKCJib3JkZXIiLCJiYWNrZ3JvdW5kQ29sb3Ii LC4uLikKICovClNaTi5Eb20uZ2V0U3R5bGUgPSBmdW5jdGlvbihlbG0sIHByb3Bl cnR5KSB7CglpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcgJiYgZG9jdW1lbnQuZGVm YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSkgewoJCXZhciBjcyA9IGVsbS5vd25l ckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxtLCcnKTsK CQlpZiAoIWNzKSB7IHJldHVybiBmYWxzZTsgfQoJCXJldHVybiBjc1twcm9wZXJ0 eV07Cgl9IGVsc2UgewoJCXJldHVybiBlbG0uY3VycmVudFN0eWxlW3Byb3BlcnR5 XTsKCX0KfQoKLyoKICogbmFzdGF2dWplIG9iamVrdHUga29ua3JldG55IHN0eWx5 LCBrdGVyZSBqc291IHphZGFueSB2IG9iamVrdHUgcG9qbWVub3ZhbnljaCB2bGFz dG5vc3RpIChuYXpldl9DU1MgOiBob2Rub3RhKQogKiBAbWV0aG9kIAogKiBAcGFy YW0ge29iamVjdH0gZWxtIEhUTUwgZWxlbWVudCwgamVob8W+IHZsYXN0bm9zdGkg bcSbbsOtbQogKiBAcGFyYW0ge29iamVjdH0gc3R5bGUgb2JqZWt0IG5hc3Rhdm92 YW7DvWNoIHZsYXN0bm9zdMOtLCBuYXDFmS46IHtjb2xvcjogJ3JlZCcsIGJhY2tn cm91bmRDb2xvcjogJ3doaXRlJ30KICovClNaTi5Eb20uc2V0U3R5bGUgPSBmdW5j dGlvbihlbG0sIHN0eWxlKSB7Cglmb3IgKG5hbWUgaW4gc3R5bGUpIHsKCQllbG0u c3R5bGVbbmFtZV0gPSBzdHlsZVtuYW1lXTsKCX0KfQoKLyoqCiAqIHNrcsO9dsOh IGVsZW1lbnR5IGt0ZXLDqSBzZSBtb2hvdSBvYmpldml0IHYgbmVqdnnFocWhw60g dnJzdHbEmyBhIHDFmWVrcsO9dCBvYnNhaCwKICogcmVzcC4gbmVsemUgamUgcMWZ ZWtyw710IGRhbMWhw61tIG9ic2FoZW0gKHR5cGlja3kgJmx0O1NFTEVDVCZndDsg diBpbnRlcm5ldCBleHBsb3JlcnUpCiAqIEBtZXRob2QgIAogKiBAcGFyYW0ge29i amVjdCB8IHN0cmluZ30gSFRNTCBlbGVtZW50IG5lYm8gamVobyBJRCBwb2Qga3Rl csO9bSBjaGNlbWUgc2tyw712YXQgcHJvYmxlbWF0aWNrw6kgcHJ2a3kKICogQHBh cmFtIHthcnJheX0gZWxlbWVudHMgcG9sZSBvYnNhaHVqw61jw60gbsOhenZ5IHBy b2JsZW1hdGlja8O9Y2ggZWxlbWVudMWvCiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rp b24gYWtjZSBrdGVyb3UgY2hjZW1lIHByb3bDqXN0ICdoaWRlJyBwcm8gc2tyeXTD rSAnc2hvdycgbmVibyBjb2tvbGkgamluw6lobyBuZcW+IGhpZGUgcHJvIHpvYnJh emVuw60KICogQGV4YW1wbGVzIAogKiAgPHByZT4KICogU1pOLkRvbS5lbGVtZW50 c0hpZGVyKFNaTi5nRWwoJ3Rlc3QnKSxbJ3NlbGVjdCddLCdoaWRlJykKICogU1pO LkRvbS5lbGVtZW50c0hpZGVyKFNaTi5nRWwoJ3Rlc3QnKSxbJ3NlbGVjdCddLCdz aG93JykKICo8L3ByZT4gICAJCQkJCQkJCQkKICoKICovICAgICAKU1pOLkRvbS5l bGVtZW50c0hpZGVyID0gZnVuY3Rpb24gKG9iaiwgZWxlbWVudHMsIGFjdGlvbikg ewoJdmFyIGVsZW1zID0gZWxlbWVudHM7CglpZiAoIWVsZW1zKSB7IGVsZW1zID0g WyJzZWxlY3QiLCJvYmplY3QiLCJlbWJlZCIsImlmcmFtZSJdOyB9CgkKCWZ1bmN0 aW9uIHRlc3RQYXJlbnQobm9kZSkgewoJCXZhciBvayA9IGZhbHNlOwoJCXZhciBj dXIgPSBub2RlOwoJCXdoaWxlIChjdXIucGFyZW50Tm9kZSAmJiBjdXIgIT0gZG9j dW1lbnQpIHsKCQkJaWYgKGN1ciA9PSBvYmopIHsgb2sgPSB0cnVlOyB9CgkJCWN1 ciA9IGN1ci5wYXJlbnROb2RlOwoJCX0KCQlyZXR1cm4gb2s7Cgl9CglpZiAoYWN0 aW9uID09ICdoaWRlJykgewoJCWlmKHR5cGVvZiBvYmogPT0gJ3N0cmluZycpewoJ CQl2YXIgb2JqID0gU1pOLmdFbChvYmopOwoJCX0gZWxzZSB7CgkJCXZhciBvYmog PSBvYmo7CgkJfQoJCQoJCXZhciBib3ggPSB0aGlzLmdldEJveFBvc2l0aW9uKG9i aik7CgkJCgkJYm94LndpZHRoID0gIG9iai5vZmZzZXRXaWR0aCArIGJveC5sZWZ0 OwoJCWJveC5oZWlnaHQgPSBvYmoub2Zmc2V0SGVpZ2h0ICtib3gudG9wOwkKCQlm b3IgKHZhciBlID0gMDsgZSA8IGVsZW1zLmxlbmd0aDsgKytlKSB7CgkJCXZhciBl bG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShlbGVtc1tlXSk7CgkJ CQoJCQlmb3IgKHZhciBmID0gMDsgZiA8IGVsbS5sZW5ndGg7ICsrZikgewoJCQkJ dmFyIG5vZGUgPSB0aGlzLmdldEJveFBvc2l0aW9uKGVsbVtmXSk7CgkJCQlpZiAo dGVzdFBhcmVudChlbG1bZl0pKSB7IGNvbnRpbnVlOyB9CgkJCQlub2RlLndpZHRo ID0gZWxtW2ZdLm9mZnNldFdpZHRoICsgbm9kZS5sZWZ0OwoJCQkJbm9kZS5oZWln aHQgPSBlbG1bZl0ub2Zmc2V0SGVpZ2h0ICsgbm9kZS50b3A7CgkJCQkKCQkJCWlm ICghKChib3gubGVmdD4gbm9kZS53aWR0aCkgfHwgKGJveC53aWR0aCA8IG5vZGUu bGVmdCkgCgkJCQl8fCAoYm94LnRvcCA+IG5vZGUuaGVpZ2h0KSB8fCAoYm94Lmhl aWdodCA8IG5vZGUudG9wKSkpIHsKCQkJCQllbG1bZl0uc3R5bGUudmlzaWJpbGl0 eSA9ICdoaWRkZW4nOwoJCQkJCWVsbVtmXS5teVByb3BlcnR5SGlkZSA9IHRydWU7 CgkJCQl9IGVsc2UgewoJCQkJCWVsbVtmXS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zp c2libGUnOwoJCQkJCWVsbVtmXS5teVByb3BlcnR5SGlkZSA9IGZhbHNlOwoJCQkJ fQoJCQl9CgkJfQoJfSBlbHNlIHsKCQlmb3IgKHZhciBlID0gMDsgZSA8IGVsZW1z Lmxlbmd0aDsgKytlKSB7CgkJCXZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50 c0J5VGFnTmFtZShlbGVtc1tlXSk7CgkJCQoJCQlmb3IgKHZhciBmID0gMDsgZiA8 IGVsbS5sZW5ndGg7ICsrZikgewoJCQkJaWYgKHRlc3RQYXJlbnQoZWxtW2ZdKSkg eyBjb250aW51ZTsgfQoJCQkJaWYgKGVsbVtmXS5teVByb3BlcnR5SGlkZSkgewoJ CQkJCWVsbVtmXS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOwoJCQkJCWVs bVtmXS5teVByb3BlcnR5SGlkZSA9IGZhbHNlOwoJCQkJfQoJCQl9CgkJfQoJfQp9 CgovKioKICogdnJhdGkga29sZWtjaSBlbGVtZW50xa8ga3RlcsOpIG1hasOtIG5h ZGVmaW5vdmFub3UgdMWZw61kdSA8ZW0+c2VhcmNoQ2xhc3M8L2VtPgogKiBAbWV0 aG9kIAogKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoQ2xhc3MgdnlobGVkw6F2YW7D oSB0xZnDrWRhCiAqIEBwYXJhbSB7b2JqZWN0fSBub2RlIGVsZW1lbnQgZG9rdW1l bnR1LCB2ZSBrdGVyw6ltIHNlIG3DoSBobGVkYXQsIGplLWxpIG51bGwgcHJvaGxl ZMOhdsOhCiAqIHNlIGNlbMO9IGRva3VtZW50IAogKiBAcGFyYW0ge3N0cmluZ30g dGFnIG7DoXpldiB0YWd1IG5hIGt0ZXLDvSBzZSBtw6EgaGxlZMOhbsOtIG9tZXpp dCwgamUtbGkgbnVsbCBwcm9obGVkw6F2YWrDrSBzZSB2xaFlY2hueSBlbGVtZW50 eQogKiBAcmV0dXJucyB7YXJyYXl9IHBvbGUga3RlcsOpIG9ic2FodWplIHbFoWVj aG55IG5hbGV6ZW7DqSBlbGVtZW50eSwga3RlcsOpIG1hasOtIGRlZmlub3Zhbm91 IHTFmcOtZHUgPGVtPnNlYXJjaENsYXNzPC9lbT4KICovICAgICAgClNaTi5Eb20u Z2V0RWxlbWVudHNCeUNsYXNzID0gZnVuY3Rpb24gKHNlYXJjaENsYXNzLG5vZGUs dGFnKSB7Cgl2YXIgY2xhc3NFbGVtZW50cyA9IFtdOwoJdmFyIG5vZGUgPSBub2Rl IHx8IGRvY3VtZW50OwoJdmFyIHRhZyA9IHRhZyB8fCAiKiI7CgoJdmFyIGVscyA9 IG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnKTsKCXZhciBlbHNMZW4gPSBl bHMubGVuZ3RoOwoJCgl2YXIgcGF0dGVybiA9IG5ldyBSZWdFeHAoIihefFxccyki K3NlYXJjaENsYXNzKyIoXFxzfCQpIik7Cglmb3IgKHZhciBpID0gMCwgaiA9IDA7 IGkgPCBlbHNMZW47IGkrKykgewoJCWlmIChwYXR0ZXJuLnRlc3QoZWxzW2ldLmNs YXNzTmFtZSkpIHsKCQkJY2xhc3NFbGVtZW50c1tqXSA9IGVsc1tpXTsKCQkJaisr OwoJCX0KCX0KCXJldHVybiBjbGFzc0VsZW1lbnRzOwp9Cg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=siginterface.js Content-Type: application/x-javascript; name=siginterface.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/siginterface.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IFJvemhyYW7DrSB1csSNZW7DqSBrIHBy w6FjaSBzIHXFvml2YXRlbHNrw71taSB1ZMOhbG9zdG1pIGEgImdsb2LDoWxuw61t aSIgCiAqIHpwcsOhdmFtaSwga3RlcsOpIHpqZWRub2R1xaF1amUgcHLDoWNpIHMg b2JqZWt0ZW0sIGt0ZXLDvSBzZSBvIHXFvml2YXRlbHNreSAKICogZGVmaW5vdmFu w6kgdWTDoWxvc3RpIHN0YXLDoQogKiBAbmFtZSBTWk4uU2lnSW50ZXJmYWNlCiAq IEB2ZXJzaW9uIDEuMgogKiBAYXV0aG9yIGplbGMsIHphcmEKICovICAgCgovKioK ICogQGNsYXNzIHTFmcOtZGEgcHJvIGTEm2TEm27DrSByb3pocmFuw60gIlNpZ0lu dGVyZmFjZSIsIAogKiBqZWRuw6Egc2UgdiBwb2RzdGF0xJsgbyAiYWJzdHJha3Ru w60gdMWZw61kdSIsIHUga3RlcsOpIG5lbcOhIHNteXNsIHZ5dHbDocWZZXQgamVq w60gaW5zdGFuY2UKICogYSBzbG91xb7DrSBwb3V6ZSBrIGRlZmlub3bDoW7DrSBk xJtkxJtuw71jaCB2bGFzdG5vc3TDrS4KICogUm96aHJhbsOtIHBybyBwcsOhY2kg cyB1xb5pdmF0ZWxza3kgZGVmaW5vdmFuw71taSB1ZMOhbG9zdG1pIGEgenByw6F2 YW1pCiAqIHZ5xb5hZHVqZSByZWZlcmVuY2kgbmEgaW5zdGFuY2kgdMWZw61keSBT Wk4uc2lnbmFscywgdsWhZWNobnkgbsOhc2xlZHVqw61jw60gbWV0b2R5CiAqIGpz b3UgdXLEjWVueSBrIHBvdcW+aXTDrSBwb3V6ZSBqYWtvIHpkxJtkxJtuw6kgdmxh c3Rub3N0aSByb3pocmFuw60sCiAqIEBzZWUgPHN0cm9uZz5TWk4uc2lnbmFsczwv c3Ryb25nPiAKICovICAKU1pOLlNpZ0ludGVyZmFjZSA9IFNaTi5DbGFzc01ha2Vy Lm1ha2VDbGFzcyh7CglOQU1FOiAiU2lnSW50ZXJmYWNlIiwKCVZFUlNJT046ICIx LjIiLAoJQ0xBU1M6ICJjbGFzcyIKfSk7CgovKioKICogc2xvdcW+w60gayBuYWxl emVuw60gcm96aHJhbsOtIHUgcm9kacSNb3Zza8O9Y2ggdMWZw61kLCBobGVkw6Eg diBuYWTFmWF6ZW7DvWNoIHTFmcOtZMOhY2ggdMWZw61kdSwKICoga3RlcmEgbWEg bmFzdGF2ZW5vdSB2bGFzdG5vc3QgVE9QX0xFVkVMIGEgdiBuaSBvxI1la8OhdsOh IGluc3RhbmNpIHTFmcOtZHkgU1pOLlNpZ25hbHMgcwogKiBuYXp2ZW0gImludGVy ZmFjZU5hbWUiCiAqIEBtZXRob2QgICAKICogQHBhcmFtIHtzdHJpbmd9CWludGVy ZmFjZU5hbWUgIG7DoXpldiBpbnN0YW5jZSB0xZnDrWR5IFNaTi5TaWduYWxzIHYg ZGFuw6ltIG9iamVrdHUgCiAqIEByZXR1cm5zIHtvYmplY3R9IHJlZmVyZW5jaSBu YSBpbnN0YW5jaSB0xZnDrWR5IFNaTi5TaWduYWxzCiAqIEB0aHJvd3Mge2Vycm9y fSAJU2V0SW50ZXJmYWNlOkludGVyZmFjZSBub3QgZm91bmQgIAogKi8KU1pOLlNp Z0ludGVyZmFjZS5wcm90b3R5cGUuc2V0SW50ZXJmYWNlID0gZnVuY3Rpb24oaW50 ZXJmYWNlTmFtZSl7CglpZih0eXBlb2YodGhpc1tpbnRlcmZhY2VOYW1lXSkgIT0g J29iamVjdCcpewoJCXZhciBvd25lciA9IHRoaXMuX293bmVyOwoJCXdoaWxlKHR5 cGVvZihvd25lcltpbnRlcmZhY2VOYW1lXSk9PSAndW5kZWZpbmVkJyl7CgkJCWlm KHR5cGVvZiBvd25lci5UT1BfTEVWRUwgIT0gJ3VuZGVmaW5lZCcpewoJCQkJdGhy b3cgbmV3IEVycm9yKCdTZXRJbnRlcmZhY2U6SW50ZXJmYWNlIG5vdCBmb3VuZCcp OwoJCQl9IGVsc2UgewoJCQkJb3duZXIgPSBvd25lci5fb3duZXI7CgkJCX0KCQl9 CgkJcmV0dXJuIG93bmVyW2ludGVyZmFjZU5hbWVdOwoJfSAKfTsKCi8qKgogKiBz bG91xb7DrSBrIHJlZ2lzdHJhY2kgemFjaHl0w6F2YW7DrSB1ZMOhbG9zdGkgbmFk IG9iamVrdGVtLCBrdGVyw70gaW1wbGVtZW50dWplIHRvdG8gcm96aHJhbsOtCiAq IEBtZXRob2QKICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgbsOhemV2IHVkw6Fsb3N0 aSwga3Rlcm91IGNoY2VtZSB6YWNoeXRpdAogKiBAcGFyYW0ge3N0cmluZ30gaGFu ZGxlRnVuY3Rpb24gbsOhemV2IG1ldG9keSBvYmpla3R1ICdteUxpc3RlbmVyJywg a3RlcsOhIGJ1ZGUgenByYWNvdsOhdmF0IHVkw6Fsb3N0CiAqIEBwYXJhbSB7b2Jq ZWN0fSBzZW5kZXIgb2JqZWt0LCBqZWhvxb4gdWTDoWxvc3QgY2hjZW1lIHBvc2xv dWNoYXQuIFBva3VkIG5lbsOtIHphZMOhbm8gKG5lYm8gZmFsc2UpLCBvZGVzaWxh dGVsZSBuZXJvemxpxaF1amVtZQogKiBAcmV0dXJucyB7bnVtYmVyfSAxIHYgcMWZ w61wYWTEmyBuZcO6c3DEm2NodSwgMCB2IHByaXBhZGUgw7pzcMSbY2h1ICAKICov ClNaTi5TaWdJbnRlcmZhY2UucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rp b24odHlwZSxoYW5kbGVGdW5jdGlvbixzZW5kZXIpewoJcmV0dXJuIHRoaXMuZ2V0 SW50ZXJmYWNlKCkuYWRkTGlzdGVuZXIodGhpcyx0eXBlLGhhbmRsZUZ1bmN0aW9u LHNlbmRlcik7Cn07CgovKioKICogc2xvdcW+w60gayB6cnXFoWVuw60gemFjaHl0 w6F2w6FuaSB1ZMOhbG9zdGkgb2JqZWt0ZW0sIGt0ZXLDvSBpbXBsZW1lbnR1amUg dG90byByb3pocmFuw60KICogQG1ldGhvZAogKiBAcGFyYW0ge3N0cmluZ30gdHlw ZSBuw6F6ZXYgdWTDoWxvc3RpLCBrdGVyb3UganNtZSB6YWNoeXTDoXZhbGkKICog QHBhcmFtIHtzdHJpbmd9IGhhbmRsZUZ1bmN0aW9uIG7DoXpldiBtZXRvZHkgb2Jq ZWt0dSAnbXlMaXN0ZW5lcicsIGt0ZXLDoSB1ZGFsb3N0IHpwcmFjb3bDoXZhbGEK ICogQHBhcmFtIHtvYmplY3R9IHNlbmRlciBvYmpla3QsIGplaG/FviB1ZMOhbG9z dCBqc21lIHBvc2xvdWNoYWxpCiAqIEB0aHJvd3Mge2Vycm9yfSBwb2t1ZCBuZWV4 aXN0dWplIG9ka2F6IG5hIGluc3RhbmNpIFNaTi5TaWduYWxzIHZ5dm9sw6EgY2h5 YnUgJ0ludGVyZmFjZSBub3QgZGVmaW5lZCcKICovClNaTi5TaWdJbnRlcmZhY2Uu cHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24odHlwZSxoYW5kbGVG dW5jdGlvbixzZW5kZXIpewoJdGhpcy5nZXRJbnRlcmZhY2UoKS5yZW1vdmVMaXN0 ZW5lcih0aGlzLHR5cGUsaGFuZGxlRnVuY3Rpb24sc2VuZGVyKTsKLyoKCWlmKHR5 cGVvZih0aGlzLnNpZ25hbHMpID09ICdvYmplY3QnKXsKCQl0aGlzLnNpZ25hbHMu cmVtb3ZlTGlzdGVuZXIodGhpcyx0eXBlLGhhbmRsZUZ1bmN0aW9uKTsKCX0gZWxz ZSB7CgkJdGhyb3cgbmV3IEVycm9yKCdJbnRlcmZhY2Ugbm90IGRlZmluZWQnKTsK CX0KKi8KfTsKCi8qKgogKiB2eXR2w6HFmcOtIG5vdm91IHVkw6Fsb3N0LCBrdGVy b3UgemFjaHl0w6F2YSBpbnN0YW5jZSB0xZnDrWR5IFNaTi5TaWduYWxzCiAqIEBt ZXRob2QgCiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIG7DoXpldiB2eXZvbGFuw6kg dWTDoWxvc3RpCiAqIEBwYXJhbSB7c3RyaW5nfSBhY2Nlc3NUeXBlIHVyxI11amUg emRhIGJ1ZGUgdWTDoWxvc3QgdmlkaXRlbG7DoSBpIHZlIHZlxZllam7DqW0gcm96 aHJhbsOtCiAqCQkJCQkgIG5lYm8gcG91emUgdm5pdHJuaW0gb2JqZWt0dW0gW3By aXZhdGUgfCBwdWJsaWNdCiAqIEB0aHJvd3Mge2Vycm9yfSBwb2t1ZCBuZWV4aXN0 dWplIG9ka2F6IG5hIGluc3RhbmNpIFNaTi5TaWduYWxzIHZ5dm9sw6EgY2h5YnUg J0ludGVyZmFjZSBub3QgZGVmaW5lZCcgIAogKi8KU1pOLlNpZ0ludGVyZmFjZS5w cm90b3R5cGUubWFrZUV2ZW50ID0gZnVuY3Rpb24odHlwZSxhY2Nlc3NUeXBlKXsK CXZhciB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Cgl0aGlzLmdldEludGVy ZmFjZSgpLm1ha2VFdmVudCh0eXBlLHRoaXMsYWNjZXNzVHlwZSx0aW1lKTsKLyoK CWlmKHR5cGVvZih0aGlzLnNpZ25hbHMpID09ICdvYmplY3QnKXsKCQl2YXIgdGlt ZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJCXRoaXMuc2lnbmFscy5tYWtlRXZl bnQodHlwZSx0aGlzLGFjY2Vzc1R5cGUsdGltZSk7Cgl9IGVsc2UgewoJCXRocm93 IG5ldyBFcnJvcignSW50ZXJmYWNlIG5vdCBkZWZpbmVkJyk7Cgl9CiovCn07Ci8q KgogKiBuYXN0YXZ1amUgenByw6F2dSBzZSBqbcOpbmVtIDxlbT5tc2dOYW1lPC9l bT4gbmEgaG9kbm90dSA8ZW0+bXNnVmFsdWU8L2VtPgogKiBAbWV0aG9kIAogKiBA cGFyYW0ge3N0cmluZ30gbXNnTmFtZSBuw6F6ZXYgenByw6F2eQogKiBAcGFyYW0g e2FueX0gbXNnVmFsdWUgb2JzYWggenByw6F2eQogKi8gICAKU1pOLlNpZ0ludGVy ZmFjZS5wcm90b3R5cGUuc2V0U3lzTWVzc2FnZSA9IGZ1bmN0aW9uKG1zZ05hbWUs bXNnVmFsdWUpewoJdGhpcy5nZXRJbnRlcmZhY2UoKS5zZXRNZXNzYWdlKG1zZ05h bWUsbXNnVmFsdWUpOwovKgoJdGhpcy5zaWduYWxzLnNldE1lc3NhZ2UobXNnTmFt ZSxtc2dWYWx1ZSk7CiovCn07Ci8qKgogKiDEjXRlIHpwcsOhdnUgc2Ugam3DqW5l bSA8ZW0+bXNnTmFtZTwvZW0+CiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7c3RyaW5n fSBtc2dOYW1lIG7DoXpldiB6cHLDoXZ5CiAqIEByZXR1cm4ge2FueX0gb2JzYWgg enByw6F2eQogKi8gClNaTi5TaWdJbnRlcmZhY2UucHJvdG90eXBlLmdldFN5c01l c3NhZ2UgPSBmdW5jdGlvbihtc2dOYW1lKXsKCXJldHVybiB0aGlzLmdldEludGVy ZmFjZSgpLmdldE1lc3NhZ2UobXNnTmFtZSk7Cn07CgpTWk4uU2lnSW50ZXJmYWNl LnByb3RvdHlwZS5nZXRJbnRlcmZhY2UgPSBmdW5jdGlvbigpIHsKCXJldHVybiAo dHlwZW9mKHRoaXMuc2lnbmFscykgPT0gIm9iamVjdCIgPyB0aGlzLnNpZ25hbHMg OiBTWk4uc2lnbmFscyk7Cn0= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=signals.js Content-Type: application/x-javascript; name=signals.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_source/signals.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCgovKioKICogQG92ZXJ2aWV3IFZ5dHbDocWZZW7DrSBhIHphY2h5dMOh dsOhbsOtIHZsYXN0bsOtY2ggdcW+aXZhdGVsc2vDvWNoIHVkw6Fsb3N0w60sIHNw csOhdmEKICogZ2xvYsOhbG7DrWNoIHpwcsOhdgogKiBAdmVyc2lvbiAxLjIKICog QGF1dGhvciBqZWxjLCB6YXJhCiAqLwogU1pOLlNpZ25hbHMgPSBTWk4uQ2xhc3NN YWtlci5tYWtlQ2xhc3MoewoJTkFNRTogIlNpZ25hbHMiLAoJVkVSU0lPTjogIjEu MiIsCglDTEFTUzogImNsYXNzIgp9KTsKIAogCi8qKgogKiBAY2xhc3MgdMWZw61k YSBwcm8gcHLDoWNpIHMgdcW+aXZhdGVsc2t5IGRlZmlub3ZhbsO9bWkgdWTDoWxv c3RtaSBhIHNwcsOhdm91IAogKiBnbG9iw6FsbsOtY2ggenByw6F2LgogKiBAbmFt ZSBTWk4uU2lnbmFscwogKiBAcGFyYW0ge29iamVjdH0gb3duZXIgb2JqZWt0IHZs YXN0bsOtY8OtIGluc3RhbmNpIHTFmcOtZHkKICogQHBhcmFtIHtzdHJpbmd9IG5h bWUgbsOhemV2IGluc3RhbmNlCiAqLwpTWk4uU2lnbmFscy5wcm90b3R5cGUuJGNv bnN0cnVjdG9yID0gZnVuY3Rpb24ob3duZXIsbmFtZSl7CgkvKiogCgkgKiBAcHJp dmF0ZQoJICogQGZpZWxkIHtvYmplY3R9ICB2bGFzdG7DrWsgaW5zdGFuY2UKCSAq LwoJdGhpcy5fb3duZXIgPSBvd25lcjsKCS8qKiAKCSAqIEBwcml2YXRlCgkgKiBA ZmllbGQge3N0cmluZ30gbsOhemV2IGluc3RhbmNlCgkgKi8JCgl0aGlzLl9uYW1l ID0gbmFtZTsKCgkvKiogCgkgKiBAZmllbGQge29iamVjdH0gesOhc29ibsOtayB6 cHLDoXYgcHJvIGFzeW5jcm9uw60gcHJvY2Vzc3kgYXBvZC4uLgogCSAqLwoJdGhp cy5tZXNzYWdlRm9sZGVyID0ge307CgkvKioKCSAqIEBmaWVsZCB7b2JqZWN0fSBh c29jaWF0aXZuw60gcG9sZSwgZG8ga3RlcsOpaG8gc2Ugdmtsw6FkYWrDrSB2em5p a2zDqSB1ZMOhbG9zdGkgYQoJICogb2RrdWQgc2UgenByYWNvdsOhdmFqw60JIAoJ ICovCgl0aGlzLm15RXZlbnRGb2xkZXIgPSB7fTsKCS8qKgoJICogQGZpZWxkIHtv YmplY3R9IHrDoXNvYm7DrWsgcG9zbHVjaGHEjcWvIHVkw6Fsb3N0w60KCSAqLwoJ dGhpcy5teUhhbmRsZUZvbGRlciA9IHt9OwoJLyoqCgkgKiBAZmllbGQge29iamVj dH0gcHJvbcSbbsOhLCBrdGVyw6EgdXLEjXVqZSwgemRhIGplIGRlZmlub3bDoW5v IG7Em2pha8OpIHZlxZllam7DqSBBUEkKCSAqIHBybyB1ZMOhbG9zdGkJIAoJICov CQoJdGhpcy5hcGlIYW5kbGVyID0gbnVsbDsKfTsKClNaTi5TaWduYWxzLnByb3Rv dHlwZS4kZGVzdHJ1Y3RvciA9IGZ1bmN0aW9uKCl7CgkvLyBub3RoaW5nIG5vdwp9 OwoKU1pOLlNpZ25hbHMucHJvdG90eXBlLnNldEFwaUhhbmRsZXIgPSBmdW5jdGlv bihoYW5kbGVyKSB7Cgl0aGlzLmFwaUhhbmRsZXIgPSBoYW5kbGVyOwp9CgovKioK ICogdmtsw6Fkw6Fuw60gImdsb2LDoWxuw61jaCIgenByw6F2CiAqIEBtZXRob2Qg CiAqIEBwYXJhbSB7c3RyaW5nfSBtc2dOYW1lIG7DoXpldiB6cHLDoXZ5IAogKiBA cGFyYW0ge2FueX0gbXNnVmFsdWUgaG9kbm90YSB6cHLDoXZ5IAogKi8KU1pOLlNp Z25hbHMucHJvdG90eXBlLnNldE1lc3NhZ2UgPSBmdW5jdGlvbihtc2dOYW1lLG1z Z1ZhbHVlKXsKCXRoaXMubWVzc2FnZUZvbGRlclttc2dOYW1lXSA9IG1zZ1ZhbHVl Owp9OwoKLyoqCiAqIG1ldG9kYSBwcm8gesOtc2vDoW7DrSBob2Rub3R5IGtvbmty w6l0bsOtICJnbG9iw6FsbsOtIiB6cHLDoXZ5CiAqIEBwYXJhbSB7c3RyaW5nfSBt c2dOYW1lIG7DoXpldiB6cHLDoXZ5CiAqIEByZXR1cm5zIHthbnl9IGhvZG5vdHUg dWxvxb5lbsOhIHpwcsOhdnkKICovClNaTi5TaWduYWxzLnByb3RvdHlwZS5nZXRN ZXNzYWdlID0gZnVuY3Rpb24obXNnTmFtZSl7CglyZXR1cm4gdGhpcy5tZXNzYWdl Rm9sZGVyW21zZ05hbWVdOwp9OwoKLyoqCiAqIHJlZ2lzdHJhY2UgcG9zbHVjaGHE jWUgdcW+aXZhdGVsc2vDqSB1ZMOhbG9zdGksIHBva3VkIGplIGppxb4gbmEgc3Rl am7DvSBkcnVoIAogKiB1ZMOhbG9zdGkgemFyZWdpc3Ryb3bDoW5hIHNob2Ruw6Eg bWV0b2RhIHNob2Ruw6lobyBvYmpla3R1IG5pYyBzZSBuZXByb3ZlZGUsCiAqIEBt ZXRob2QgIAogKiBAcGFyYW0ge29iamVjdH0gb3duZXIJb2JqZWt0L3TFmcOtZGEs ICBrdGVyw6EgbmFzbG91Y2jDoSwgYSB2IGplaG/FviBvYm9ydSBwbGF0bm9zdGkg c2UgenByYWNvdmFuw60gdWTDoWxvc3RpIHByb3ZlZGUKICogQHBhcmFtIHtzdHJp bmd9IHR5cGUJdHlwIHVkw6Fsb3N0aSwga3Rlcm91IGNoY2VtZSB6YWNoeXRpdCAK ICogQHBhcmFtIHtzdHJpbmd9IGZ1bmN0aW9uTmFtZSBmdW5rY2UvbWV0b2RhIHBv c2x1Y2hhxI1lLCBrdGVyw6EgbcOhIGRhbm91IHVkw6Fsb3N0IHpwcmFjb3ZhdAog KiBAcGFyYW0ge29iamVjdH0gc2VuZGVyIG9iamVrdCwgamVob8W+IHVkw6Fsb3N0 IGNoY2VtZSBwb3Nsb3VjaGF0LiBQb2t1ZCBuZW7DrSB6YWTDoW5vIChuZWJvIGZh bHNlKSwgb2Rlc2lsYXRlbGUgbmVyb3psacWhdWplbWUKICogQHJldHVybnMge251 bWJlcn0gMSB2IHDFmcOtcGFkxJsgbmXDunNwxJtjaHUsIDAgdiBwcmlwYWRlIMO6 c3DEm2NodSAKICovClNaTi5TaWduYWxzLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9 IGZ1bmN0aW9uKG93bmVyLHR5cGUsZnVuY09yU3RyaW5nLHNlbmRlcil7CgkvKiB6 YXNvYm5payBwcm8gZGFueSB0eXAgdWRhbG9zdGkgbmVleGlzdHVqZSBtdXNpbSBo byB2eXR2b3JpdCAqLwoJaWYoISh0eXBlIGluIHRoaXMubXlIYW5kbGVGb2xkZXIp KSB7CgkJdGhpcy5teUhhbmRsZUZvbGRlclt0eXBlXSA9IHt9OwoJfSAKCgkvKiBu YSB0dXRvIHVkYWxvc3QgamUgaml6IHByZWRhbmEgZnVua2NlIHphdmVzZW5hIHRh ayBuaWMgbmVkZWxhbSAqLwoJZm9yKHZhciBwIGluIHRoaXMubXlIYW5kbGVGb2xk ZXJbdHlwZV0pewoJCXZhciBpdGVtID0gdGhpcy5teUhhbmRsZUZvbGRlclt0eXBl XVtwXTsKCQlpZiAoCgkJCShpdGVtLmVGdW5jdGlvbiA9PSBmdW5jT3JTdHJpbmcp ICYmIAoJCQkoaXRlbS5lT3duZXIgPT0gb3duZXIpICYmCgkJCShpdGVtLmVTZW5k ZXIgPT0gc2VuZGVyKQoJCSkgewoJCQlyZXR1cm4gMTsKCQl9Cgl9CgkvKiBpZGVu dGlmaWvDoXRvciBoYW5kbG92YW7DqSB1ZMOhbG9zdGkgKi8KCXZhciBpZHMgPSBT Wk4uaWRHZW5lcmF0b3IoKTsKCS8vdGhpcy5pZHNGbGFnKys7CgkKCS8qIGtvbmVj bmUgc2kgdG8gbcWvxb51IHphcmVnaXN0cm92YXQgKi8KCXRoaXMubXlIYW5kbGVG b2xkZXJbdHlwZV1baWRzXSA9IHsKCQllT3duZXIJCTogb3duZXIsCgkJZUZ1bmN0 aW9uCTogZnVuY09yU3RyaW5nLAoJCWVTZW5kZXIJCTogc2VuZGVyCgl9OwoJcmV0 dXJuIDA7Cn07CgovKioKICogb2RzdHJhbsSbbsOtIG5hc2xvdWNow6Fuw60gdWTD oWxvc3RpCiAqIEBtZXRob2QgCiAqIEBwYXJhbSB7b2JqZWN0fSBvd25lcglvYmpl a3QvdMWZw61kYSAga3RlcmEgbmFzbG91Y2hhbGEsIGEgdiBqZWhvxb4gb2JvcnUg cGxhdG5vc3RpIHNlIHpwcmFjb3bDoW7DrSB1ZMOhbG9zdGkgcHJvdsOhZMSbbG8K ICogQHBhcmFtIHtzdHJpbmd9IHR5cGUJdHlwIHVkw6Fsb3N0aSwga3Rlcm91IGpz bWUgemFjaHl0w6F2YWxpCiAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUg ZnVua2NlL21ldG9kYSBwb3NsdWNoYcSNZSwga3RlcsOhIGRhbm91IHVkw6Fsb3N0 IHpwcmFjb3bDoXZhbGEKICogQHBhcmFtIHtvYmplY3R9IHNlbmRlciBvYmpla3Qs IGplaG/FviB1ZMOhbG9zdCBqc21lIHBvc2xvdWNoYWxpCiAqIEByZXR1cm5zIHtu dW1iZXJ9IDAgdiBwxZnDrXBhZMSbIMO6c3DEm2NodSwgMSB2IHDFmcOtcGFkxJsg bmXDunNwxJtjaHUKICovClNaTi5TaWduYWxzLnByb3RvdHlwZS5yZW1vdmVMaXN0 ZW5lciA9IGZ1bmN0aW9uKG93bmVyLHR5cGUsZnVuY09yU3RyaW5nLHNlbmRlcil7 Cgl2YXIgcmVtb3ZlZCA9IDE7Cglmb3IgKHZhciBwIGluIHRoaXMubXlIYW5kbGVG b2xkZXJbdHlwZV0pIHsKCQl2YXIgaXRlbSA9IHRoaXMubXlIYW5kbGVGb2xkZXJb dHlwZV1bcF07CgkJaWYgKAoJCQkoaXRlbS5lRnVuY3Rpb24gPT0gZnVuY09yU3Ry aW5nKSAmJiAKCQkJKGl0ZW0uZU93bmVyID09IG93bmVyKSAmJgoJCQkoaXRlbS5l U2VuZGVyID09IHNlbmRlcikKCQkpIHsKCQkJaXRlbSA9IG51bGw7CgkJCWRlbGV0 ZSh0aGlzLm15SGFuZGxlRm9sZGVyW3R5cGVdW3BdKTsKCQkJcmVtb3ZlZCA9IDA7 CgkJfQkJCgl9CglyZXR1cm4gcmVtb3ZlZDsKfTsKCi8qKgogKiB2eXR2w6HFmcOt IHVkw6Fsb3N0LCB1a2zDoWTDoSBqaSBkbyB6w6Fzb2Juw61rdSB1ZMOhbG9zdGkg YSBwxZllZMOhdsOhIGppIGtlIHpwcmFjb3bDoW7DrQogKiBAbWV0aG9kIAogKiBA cGFyYW0ge3N0cmluZ30gdHlwZSBuw6F6ZXYgbm92w6kgdWTDoWxvc3RpCiAqIEBw YXJhbSB7b2JqZWN0fSB0cmcgcmVmZXJlbmNlIG5hIG9iamVrdCwga3RlcsO9IHVk w6Fsb3N0IHZ5dm9sYWwKICogQHBhcmFtIHtzdHJpbmd9IGFjY2Vzc1R5cGUgdXLE jXVqZSB6ZGEgYnVkZSB1ZMOhbG9zdCB2aWRpdGVsw6FhIGkgdmUgdmXFmWVqbsOp bSByb3pocmFuw60gKGplLWxpIGRlZmlub3bDoW5vKSBuZWJvIHBvdXplIHZuaXTF mW7DrW0gb2JqZWt0xa9tIFtwdWJsaWMgfCBwcml2YXRlXQogKiBAcGFyYW0ge251 bWJlcn0gdGltZXN0YW1wIMSNYXMgdnpuaWt1IHVkw6Fsb3N0aSAKICovICAgClNa Ti5TaWduYWxzLnByb3RvdHlwZS5tYWtlRXZlbnQgPSBmdW5jdGlvbih0eXBlLHRy ZyxhY2Nlc3NUeXBlLHRpbWVzdGFtcCl7Cgl2YXIgaWRzID0gU1pOLmlkR2VuZXJh dG9yKCk7Cgl0aGlzLm15RXZlbnRGb2xkZXJbJ2UtJyArIGlkc10gPSBuZXcgdGhp cy5OZXdFdmVudCh0eXBlLHRyZyxhY2Nlc3NUeXBlLHRpbWVzdGFtcCxpZHMpOwoJ dGhpcy5teUV2ZW50SGFuZGxlcih0aGlzLm15RXZlbnRGb2xkZXJbJ2UtJyArIGlk c10pOwp9OwoKCi8qKgogKiBAY2xhc3Mga29uc3RydWt0b3Igdm5pdMWZbsOtIHVk w6Fsb3N0aQogKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBuw6F6ZXYgbm92w6kgdWTD oWxvc3RpCiAqIEBwYXJhbSB7b2JqZWN0fSB0cmcgcmVmZXJlbmNlIG5hIG9iamVr dCwga3RlcsO9IHVkw6Fsb3N0IHZ5dm9sYWwKICogQHBhcmFtIHtzdHJpbmd9IGFj Y2Vzc1R5cGUgdXLEjXVqZSB6ZGEgYnVkZSB1ZMOhbG9zdCB2aWRpdGVsw6FhIGkg dmUgdmXFmWVqbsOpbSByb3pocmFuw60gKGplLWxpIGRlZmlub3bDoW5vKSBuZWJv IHBvdXplIHZuaXTFmW7DrW0gb2JqZWt0xa9tIFtwdWJsaWMgfCBwcml2YXRlXQog KiBAcGFyYW0ge251bWJlcn0gdGltZXN0YW1wIMSNYXMgdnpuaWt1IHVkw6Fsb3N0 aSAKICogQHBhcmFtIHtzdHJpbmd9IGlkcyB1bmlrYXRuw60gSUQgCiAqLyAgIApT Wk4uU2lnbmFscy5wcm90b3R5cGUuTmV3RXZlbnQgPSBmdW5jdGlvbih0eXBlLHRy ZyxhY2Nlc3MsdGltZSxpZHMpewoJLyoqIEBmaWVsZCB7c3RyaW5nfSB0eXAgdWTD oWxvc3RpKi8KCXRoaXMudHlwZSA9IHR5cGU7CgkvKiogQGZpZWxkIHtvYmplY3R9 ICBvYmpla3QsIGt0ZXLDvSB1ZMOhbG9zdCB2eXZvbGFsKi8KCXRoaXMudGFyZ2V0 ID0gdHJnOwoJLyoqIEBmaWVsZCB7c3RyaW5nfSAgc3BlY2lmaWthY2UgcMWZw61z dHVwb3bDvWNoIHByYXYgW3B1YmxpY3xwcml2YXRlXSovCgl0aGlzLmFjY2Vzc1R5 cGUgPSBhY2Nlc3M7CgkvKiogQGZpZWxkIHtudW1iZXJ9IHRpbWVzdGFtcCAqLwoJ dGhpcy50aW1lU3RhbXAgPSB0aW1lOwoJLyoqIAoJICogQHByaXZhdGUJCgkgKiBA ZmllbGQge3N0cmluZ30gdW5pa2F0bsOtIElECgkgKi8KCXRoaXMuX2lkID0gaWRz Owp9OwoKCi8qKgogKiB6cHJhY3VqZSB1ZMOhbG9zdCAtIHNwdXN0w60gbWV0b2R1 LCBrdGVyw6EgYnlsYSB6YXJhZ2lzdHJvdsOhbmEgamFrbyBwb3NsdWNoYcSNICAK ICogYSBqZS1saSBkZWZpbm92YW7DqSBBUEkgYSB1ZMOhbG9zdCBqZSB2ZcWZZWpu w6EgcMWZZWTDoSBqaSBBUEkgaGFuZGxlcnUKICogZGVmaW5vdmFuw6lobyBBUEkg bmFrb25lYyB6YXZvbMOhIHpydcWhZW7DrSB1ZMOhbG9zdGkKICogQG1ldGhvZCAK ICogQHBhcmFtIHtvYmplY3R9IG15RXZlbnQgenByYWNvdsOhdmFuw6EgdWTDoWxv c3QKICovICAgIApTWk4uU2lnbmFscy5wcm90b3R5cGUubXlFdmVudEhhbmRsZXIg PSBmdW5jdGlvbihteUV2ZW50KXsKCXZhciBmdW5jdGlvbkNhY2hlID0gW107CgoJ Zm9yICh2YXIgdHlwZSBpbiB0aGlzLm15SGFuZGxlRm9sZGVyKXsKCQlpZiAodHlw ZSA9PSBteUV2ZW50LnR5cGUpIHsgLyogc2hvZGEgbmF6dnUgdWRhbG9zdGkgKi8K CQkJZm9yICh2YXIgcCBpbiB0aGlzLm15SGFuZGxlRm9sZGVyW3R5cGVdKSB7CgkJ CQl2YXIgaXRlbSA9IHRoaXMubXlIYW5kbGVGb2xkZXJbdHlwZV1bcF07CgkJCQlp ZiAoIWl0ZW0uZVNlbmRlciB8fCBpdGVtLmVTZW5kZXIgPT0gbXlFdmVudC50YXJn ZXQpIHsKCQkJCQlmdW5jdGlvbkNhY2hlLnB1c2goaXRlbSk7CgkJCQl9CgkJCX0K CQl9Cgl9CgkKCWZvciAodmFyIGk9MDtpPGZ1bmN0aW9uQ2FjaGUubGVuZ3RoO2kr KykgewoJCXZhciBpdGVtID0gZnVuY3Rpb25DYWNoZVtpXTsKCQl2YXIgb3duZXIg PSBpdGVtLmVPd25lcjsKCQl2YXIgZm5jID0gaXRlbS5lRnVuY3Rpb247CgkJaWYo dHlwZW9mIGZuYyA9PSAnc3RyaW5nJyl7CgkJCW93bmVyW2ZuY10obXlFdmVudCk7 CgkJfSBlbHNlIGlmKHR5cGVvZiBmbmMgPT0gJ2Z1bmN0aW9uJyl7CgkJCWZuYyht eUV2ZW50KTsKCQl9Cgl9CgkKCS8qIGplLWxpIGRlZmlub3Zhbm8gYXBpICBhIGpl LWxpIHVkYWxvc3QgYXBpIHByaXN0dXBuYSAKCSAqIHByZWRhbSBtdSB1ZGFsb3N0 CgkgKi8KCWlmKChteUV2ZW50LmFjY2Vzc1R5cGUgPT0gJ3B1YmxpYycpIAoJJiYg KHRoaXMuYXBpSGFuZGxlciAhPSBudWxsKSAKCSYmIChteUV2ZW50Ll9vd25lciAh PSAnYXBpJykpewoJCXRoaXMuYXBpSGFuZGxlci5fYXBpRXZlbnRIYW5kbGVyKG15 RXZlbnQpOwoJfQkKCQoJLyogenJ1c2ltIHVkYWxvc3QgKi8KCXRoaXMuZGVzdHJv eUV2ZW50KG15RXZlbnQuX2lkKTsKfTsKCi8qKgogKiBkZXN0cnVrdG9yIHVkw6Fs b3N0aSwgb2RzdHJhbsOtIHVkw6Fsb3N0IGRlZmlub3Zhbm91IAogKiB2IHrDoXNv Ym5pa3UgYSBzbWHFvmUgamkKICogQG1ldGhvZCAKICogQHBhcmFtIHtzdHJpbmd9 IGlkcyBpZGVudGlmaWvDoXRvciB1ZMOhbG9zdGkgdiB6w6Fzb2Juw61rdQogKi8g ICAgIApTWk4uU2lnbmFscy5wcm90b3R5cGUuZGVzdHJveUV2ZW50ID0gZnVuY3Rp b24oaWRzKXsKCXRoaXMubXlFdmVudEZvbGRlclsnZS0nICsgaWRzXSA9IG51bGw7 CglkZWxldGUodGhpcy5teUV2ZW50Rm9sZGVyWydlLScgKyBpZHNdKTsKfTsKU1pO LnNpZ25hbHMgPSBuZXcgU1pOLlNpZ25hbHMoKTsK ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=jak_compressed.js Content-Type: application/x-javascript; name=jak_compressed.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_compressed.js Content-Transfer-Encoding: Base64 LyoKTGljZW5jb3bDoW5vIHBvZCBNSVQgTGljZW5jw60KCsKpIDIwMDggU2V6bmFt LmN6LCBhLnMuCgpUw61tdG8gc2UgdWTEm2x1amUgYmV6w7pwbGF0bsOhIG5ldsO9 aHJhZG7DrSBsaWNlbmNlIGvCoG9wcsOhdm7Em27DrSB1xb7DrXZhdCBTb2Z0d2Fy ZSwKxI1hc292xJsgaSBtw61zdG7EmyBuZW9tZXplbsOhLCB2wqBzb3VsYWR1IHPC oHDFmcOtc2x1xaFuw71taSB1c3Rhbm92ZW7DrW1pIGF1dG9yc2vDqWhvIHrDoWtv bmEuCgpOYWJ5dmF0ZWwvdcW+aXZhdGVsLCBrdGVyw70gb2JkcsW+ZWwga29waWkg dG9ob3RvIHNvZnR3YXJ1IGEgZGFsxaHDrSBwxZlpZHJ1xb5lbsOpIApzb3Vib3J5 IChkw6FsZSBqZW4g4oCec29mdHdhcmXigJwpIGplIG9wcsOhdm7Em24ga8KgbmFr bMOhZMOhbsOtIHNlIHNvZnR3YXJlbSBiZXogCmpha8O9Y2hrb2xpIG9tZXplbsOt LCB2xI1ldG7EmyBiZXogb21lemVuw60gcHLDoXZhIHNvZnR3YXJlIHXFvsOtdmF0 LCBwb8WZaXpvdmF0IHNpIAp6wqBuxJtqIGtvcGllLCBtxJtuaXQsIHNsb3XEjWl0 LCDFocOtxZlpdCwgcG9za3l0b3ZhdCB6Y2VsYSBuZWJvIHrEjcOhc3RpIHTFmWV0 w60gb3NvYsSbIAoocG9kbGljZW5jZSkgxI1pIHByb2TDoXZhdCBqZWhvIGtvcGll LCB6YSBuw6FzbGVkdWrDrWPDrWNoIHBvZG3DrW5lazoKCi0gdsO9xaFlIHV2ZWRl bsOpIGxpY2VuxI1uw60gdWplZG7DoW7DrSBtdXPDrSBiw710IHV2ZWRlbm8gbmEg dsWhZWNoIGtvcGnDrWNoIG5lYm8gCnBvZHN0YXRuw71jaCBzb3XEjcOhc3RlY2gg U29mdHdhcnUuCgotIHNvZnR3YXJlIGplIHBvc2t5dG92w6FuIHRhayBqYWsgc3Rv asOtIGEgbGXFvsOtLCB0em4uIGF1dG9yIG5lb2Rwb3bDrWTDoSAKemEgamVobyB2 YWR5LCBqYWtvxb4gaSBtb8W+bsOpIG7DoXNsZWRreSwgbGVkYcW+ZSB2xJtjIG5l bcOhIHZsYXN0bm9zdCwgbyBuw63FviBhdXRvciAKcHJvaGzDoXPDrSwgxb5lIGpp IG3DoSwgbmVibyBrdGVyb3Ugc2kgbmFieXZhdGVsL3XFvml2YXRlbCB2w71zbG92 bsSbIHZ5bcOtbmlsLgoKCgpMaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UK CkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4KClBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdB UkUuCiovCntpZih0eXBlb2YgU1pOIT0ib2JqZWN0Iil7dmFyIFNaTj17Ik5BTUUi OiJTWk4ifTt9O1NaTi5iaW5kPWZ1bmN0aW9uKG9iaixmbmMpe3JldHVybiBmdW5j dGlvbigpe3JldHVybiBmbmMuYXBwbHkob2JqLGFyZ3VtZW50cyk7fTt9O1NaTi5p ZEdlbmVyYXRvcj1mdW5jdGlvbigpe3RoaXMuaWRDbnQ9dGhpcy5pZENudDwxMDAw MDAwMD90aGlzLmlkQ250OjA7dmFyIGlkcz0ibSIrbmV3IERhdGUoKS5nZXRUaW1l KCkudG9TdHJpbmcoMTYpKyJtIit0aGlzLmlkQ250LnRvU3RyaW5nKDE2KTt0aGlz LmlkQ250Kys7cmV0dXJuIGlkczt9O2lmKCFBcnJheS5wcm90b3R5cGUuaW5kZXhP Zil7QXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oaXRlbSxmcm9tKXt2 YXIgbGVuPXRoaXMubGVuZ3RoO3ZhciBpPWZyb218fDA7aWYoaTwwKXtpKz1sZW47 fWZvcig7aTxsZW47aSsrKXtpZihpIGluIHRoaXMmJnRoaXNbaV09PT1pdGVtKXty ZXR1cm4gaTt9fXJldHVybiAtMTt9O31pZighQXJyYXkuaW5kZXhPZil7QXJyYXku aW5kZXhPZj1mdW5jdGlvbihvYmosaXRlbSxmcm9tKXtyZXR1cm4gQXJyYXkucHJv dG90eXBlLmluZGV4T2YuY2FsbChvYmosaXRlbSxmcm9tKTt9O31pZighQXJyYXku cHJvdG90eXBlLmxhc3RJbmRleE9mKXtBcnJheS5wcm90b3R5cGUubGFzdEluZGV4 T2Y9ZnVuY3Rpb24oaXRlbSxmcm9tKXt2YXIgbGVuPXRoaXMubGVuZ3RoO3ZhciBp PWZyb218fGxlbi0xO2lmKGk8MCl7aSs9bGVuO31mb3IoO2k+LTE7aS0tKXtpZihp IGluIHRoaXMmJnRoaXNbaV09PT1pdGVtKXtyZXR1cm4gaTt9fXJldHVybiAtMTt9 O31pZighQXJyYXkubGFzdEluZGV4T2Ype0FycmF5Lmxhc3RJbmRleE9mPWZ1bmN0 aW9uKG9iaixpdGVtLGZyb20pe3JldHVybiBBcnJheS5wcm90b3R5cGUubGFzdElu ZGV4T2YuY2FsbChvYmosaXRlbSxmcm9tKTt9O31pZighQXJyYXkucHJvdG90eXBl LmZvckVhY2gpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGNiLF90 aGlzKXt2YXIgbGVuPXRoaXMubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7 aWYoaSBpbiB0aGlzKXtjYi5jYWxsKF90aGlzLHRoaXNbaV0saSx0aGlzKTt9fX07 fWlmKCFBcnJheS5mb3JFYWNoKXtBcnJheS5mb3JFYWNoPWZ1bmN0aW9uKG9iaixj YixfdGhpcyl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmosY2IsX3Ro aXMpO307fWlmKCFBcnJheS5wcm90b3R5cGUuZXZlcnkpe0FycmF5LnByb3RvdHlw ZS5ldmVyeT1mdW5jdGlvbihjYixfdGhpcyl7dmFyIGxlbj10aGlzLmxlbmd0aDtm b3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKGkgaW4gdGhpcyYmIWNiLmNhbGwoX3Ro aXMsdGhpc1tpXSxpLHRoaXMpKXtyZXR1cm4gZmFsc2U7fX1yZXR1cm4gdHJ1ZTt9 O31pZighQXJyYXkuZXZlcnkpe0FycmF5LmV2ZXJ5PWZ1bmN0aW9uKG9iaixjYixf dGhpcyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaixjYixf dGhpcyk7fTt9aWYoIUFycmF5LnByb3RvdHlwZS5zb21lKXtBcnJheS5wcm90b3R5 cGUuc29tZT1mdW5jdGlvbihjYixfdGhpcyl7dmFyIGxlbj10aGlzLmxlbmd0aDtm b3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKGkgaW4gdGhpcyYmY2IuY2FsbChfdGhp cyx0aGlzW2ldLGksdGhpcykpe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO307 fWlmKCFBcnJheS5zb21lKXtBcnJheS5zb21lPWZ1bmN0aW9uKG9iaixjYixfdGhp cyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLGNiLF90aGlz KTt9O31pZighQXJyYXkucHJvdG90eXBlLm1hcCl7QXJyYXkucHJvdG90eXBlLm1h cD1mdW5jdGlvbihjYixfdGhpcyl7dmFyIGxlbj10aGlzLmxlbmd0aDt2YXIgcmVz PW5ldyBBcnJheShsZW4pO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7aWYoaSBpbiB0 aGlzKXtyZXNbaV09Y2IuY2FsbChfdGhpcyx0aGlzW2ldLGksdGhpcyk7fX1yZXR1 cm4gcmVzO307fWlmKCFBcnJheS5tYXApe0FycmF5Lm1hcD1mdW5jdGlvbihvYmos Y2IsX3RoaXMpe3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLGNi LF90aGlzKTt9O31pZighQXJyYXkucHJvdG90eXBlLmZpbHRlcil7QXJyYXkucHJv dG90eXBlLmZpbHRlcj1mdW5jdGlvbihjYixfdGhpcyl7dmFyIGxlbj10aGlzLmxl bmd0aDt2YXIgcmVzPVtdO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7aWYoaSBpbiB0 aGlzKXt2YXIgdmFsPXRoaXNbaV07aWYoY2IuY2FsbChfdGhpcyx2YWwsaSx0aGlz KSl7cmVzLnB1c2godmFsKTt9fX1yZXR1cm4gcmVzO307fWlmKCFBcnJheS5maWx0 ZXIpe0FycmF5LmZpbHRlcj1mdW5jdGlvbihvYmosY2IsX3RoaXMpe3JldHVybiBB cnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLGNiLF90aGlzKTt9O31TWk4u Q2xhc3NNYWtlcj17fTtTWk4uQ2xhc3NNYWtlci5WRVJTSU9OPSIzLjEiO1NaTi5D bGFzc01ha2VyLk5BTUU9IkNsYXNzTWFrZXIiO1NaTi5DbGFzc01ha2VyLkNMQVNT PSJzdGF0aWMiO1NaTi5DbGFzc01ha2VyLmNvcHlPYmo9bnVsbDtTWk4uQ2xhc3NN YWtlci5tYWtlQ2xhc3M9ZnVuY3Rpb24ocGFyYW1zKXtpZighcGFyYW1zLk5BTUUp e3Rocm93IG5ldyBFcnJvcigiTm8gTkFNRSBwYXNzZWQgdG8gU1pOLkNsYXNzTWFr ZXIubWFrZUNsYXNzKCkiKTt9aWYodGhpcy5jb3B5T2JqPT1udWxsKXtpZigiT2Jq Q29weSIgaW4gU1pOKXt0aGlzLmNvcHlPYmo9bmV3IFNaTi5PYmpDb3B5KCk7fX12 YXIgdmVyc2lvbj1wYXJhbXMuVkVSU0lPTnx8IjEuMCI7dmFyIGV4dGVuZD1wYXJh bXMuRVhURU5EfHxmYWxzZTt2YXIgaW1wbGVtZW50PXBhcmFtcy5JTVBMRU1FTlR8 fFtdO3ZhciBkZXBlbmQ9cGFyYW1zLkRFUEVORHx8W107dmFyIHR5cGU9cGFyYW1z LkNMQVNTO2lmKCEoaW1wbGVtZW50IGluc3RhbmNlb2YgQXJyYXkpKXtpbXBsZW1l bnQ9W2ltcGxlbWVudF07fXZhciByZXN1bHQ9ZmFsc2U7aWYocmVzdWx0PXRoaXMu X3Rlc3REZXBlbmQoZGVwZW5kKSl7dGhyb3cgbmV3IEVycm9yKCJEZXBlbmRlbmN5 IGVycm9yIGluIGNsYXNzICIrcGFyYW1zLk5BTUUrIiAoIityZXN1bHQrIikiKTt9 aWYodHlwZT09InN0YXRpYyIpe3ZhciBvYmo9e307b2JqLlZFUlNJT049dmVyc2lv bjtvYmouTkFNRT1wYXJhbXMuTkFNRTtvYmouQ0xBU1M9InN0YXRpYyI7cmV0dXJu IG9iajt9dmFyIGNvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7aWYodGhpcy5zQ29uc3Ry dWN0b3IubWFrZU5vdGhpbmcpcmV0dXJuO3ZhciBpbmljaWFsaXphdG9yPWZhbHNl O2lmKCIkY29uc3RydWN0b3IiIGluIGFyZ3VtZW50cy5jYWxsZWUucHJvdG90eXBl KXtpbmljaWFsaXphdG9yPWFyZ3VtZW50cy5jYWxsZWUucHJvdG90eXBlLiRjb25z dHJ1Y3Rvcjt9ZWxzZXtpZihwYXJhbXMuTkFNRSBpbiBhcmd1bWVudHMuY2FsbGVl LnByb3RvdHlwZSl7aW5pY2lhbGl6YXRvcj1hcmd1bWVudHMuY2FsbGVlLnByb3Rv dHlwZVtwYXJhbXMuTkFNRV07fX1pZihpbmljaWFsaXphdG9yKXtpbmljaWFsaXph dG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9fTtjb25zdHJ1Y3Rvci5OQU1FPXBh cmFtcy5OQU1FO2NvbnN0cnVjdG9yLlZFUlNJT049dmVyc2lvbjtjb25zdHJ1Y3Rv ci5FWFRFTkQ9ZXh0ZW5kO2NvbnN0cnVjdG9yLklNUExFTUVOVD1pbXBsZW1lbnQ7 Y29uc3RydWN0b3IuREVQRU5EPWRlcGVuZDtjb25zdHJ1Y3Rvci5DTEFTUz0iY2xh c3MiO2NvbnN0cnVjdG9yLmRlc3Ryb3k9dGhpcy5fZGVzdHJveTt0aGlzLl9zZXRJ bmhlcml0YW5jZShjb25zdHJ1Y3Rvcik7Y29uc3RydWN0b3IucHJvdG90eXBlLkNM QVNTPSJjbGFzcyI7Y29uc3RydWN0b3IucHJvdG90eXBlLnNDb25zdHJ1Y3Rvcj1j b25zdHJ1Y3Rvcjtjb25zdHJ1Y3Rvci5wcm90b3R5cGUuY2FsbFN1cGVyPXRoaXMu X2NhbGxTdXBlcjtyZXR1cm4gY29uc3RydWN0b3I7fTtTWk4uQ2xhc3NNYWtlci5q c29uVG9DbGFzcz1mdW5jdGlvbihjbGFzc0RlZil7ZXZhbCgidmFyIHRyZyA9ICIr Y2xhc3NEZWYuc3RhdGljRGF0YS50cmcpO3ZhciBuYW1lPWNsYXNzRGVmLnN0YXRp Y0RhdGEuTkFNRTt2YXIgcGFyYW1zPXsiTkFNRSI6bmFtZSwiVkVSU0lPTiI6Y2xh c3NEZWYuc3RhdGljRGF0YS5WRVJTSU9OLCJDTEFTUyI6ImNsYXNzIn07aWYoY2xh c3NEZWYuc3RhdGljRGF0YS5FWFRFTkQpe3BhcmFtcy5FWFRFTkQ9Y2xhc3NEZWYu c3RhdGljRGF0YS5FWFRFTkQ7fWlmKGNsYXNzRGVmLnN0YXRpY0RhdGEuREVQRU5E KXtwYXJhbXMuREVQRU5EPWNsYXNzRGVmLnN0YXRpY0RhdGEuREVQRU5EO31pZihj bGFzc0RlZi5zdGF0aWNEYXRhLklNUExFTUVOVCl7cGFyYW1zLklNUExFTUVOVD1j bGFzc0RlZi5zdGF0aWNEYXRhLklNUExFTUVOVDt9dHJnW25hbWVdPVNaTi5DbGFz c01ha2VyLm1ha2VDbGFzcyhwYXJhbXMpO2Zvcih2YXIgcCBpbiBjbGFzc0RlZi5w cm90byl7dHJnW25hbWVdLnByb3RvdHlwZVtwXT1jbGFzc0RlZi5wcm90b1twXTtp ZigodHlwZW9mIGNsYXNzRGVmLmFjY2Vzcz09Im9iamVjdCIpJiYodHlwZW9mIGNs YXNzRGVmLmFjY2Vzc1twXSE9InVuZGVmaW5lZCIpKXt0cmdbbmFtZV0ucHJvdG90 eXBlW3BdLmFjY2Vzcz1jbGFzc0RlZi5hY2Nlc3NbcF07fX19O1NaTi5DbGFzc01h a2VyLl9kZXN0cm95PWZ1bmN0aW9uKG9iail7Zm9yKHZhciBwIGluIG9iail7b2Jq W3BdPW51bGw7fTt9O1NaTi5DbGFzc01ha2VyLl9jYWxsU3VwZXI9ZnVuY3Rpb24o bWV0aG9kTmFtZSxjYWxsaW5nRnVuY3Rpb24pe2lmKGNhbGxpbmdGdW5jdGlvbi5s b2NfbGV2ZWwpe3ZhciBsZXZlbD1jYWxsaW5nRnVuY3Rpb24ubG9jX2xldmVsO31l bHNle3ZhciBsZXZlbD10aGlzLnNDb25zdHJ1Y3Rvcjt9dmFyIHN1cD1sZXZlbC5F WFRFTkQ7aWYoIXN1cCl7dGhyb3cgbmV3IEVycm9yKCJcIk5vIHN1cGVyLWNsYXNz IGF2YWlsYWJsZVwiIik7fXZhciBtZXRob2Q9c3VwLnByb3RvdHlwZVttZXRob2RO YW1lXTtpZighbWV0aG9kfHwodHlwZW9mIG1ldGhvZCE9ImZ1bmN0aW9uIikpe3Ro cm93IG5ldyBFcnJvcigiXCJTdXBlci1jbGFzcyBkb2Vzbid0IGhhdmUgbWV0aG9k IFwiIittZXRob2ROYW1lKyJcIiIpO312YXIgbXlTZWxmPXRoaXM7ZXZhbCgidmFy IGZ1bmM9IittZXRob2QudG9TdHJpbmcoKSk7ZnVuYy5sb2NfbGV2ZWw9c3VwO3Jl dHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jLmFwcGx5KG15U2VsZixhcmd1bWVu dHMpO307fTtTWk4uQ2xhc3NNYWtlci5fc2V0SW5oZXJpdGFuY2U9ZnVuY3Rpb24o Y29uc3RydWN0b3Ipe2lmKGNvbnN0cnVjdG9yLkVYVEVORCl7dGhpcy5fbWFrZUlu aGVyaXRhbmNlKGNvbnN0cnVjdG9yLGNvbnN0cnVjdG9yLkVYVEVORCk7fWZvcih2 YXIgaT0wO2k8Y29uc3RydWN0b3IuSU1QTEVNRU5ULmxlbmd0aDtpKyspe3RoaXMu X21ha2VJbmhlcml0YW5jZShjb25zdHJ1Y3Rvcixjb25zdHJ1Y3Rvci5JTVBMRU1F TlRbaV0sdHJ1ZSk7fX07U1pOLkNsYXNzTWFrZXIuX21ha2VJbmhlcml0YW5jZT1m dW5jdGlvbihjb25zdHJ1Y3RvcixwYXJlbnQsbm9TdXBlcil7aWYoIW5vU3VwZXIp e3BhcmVudC5tYWtlTm90aGluZz10cnVlO2NvbnN0cnVjdG9yLnByb3RvdHlwZT1u ZXcgcGFyZW50KCk7aWYodGhpcy5jb3B5T2JqIT1udWxsKXtmb3IodmFyIGkgaW4g cGFyZW50LnByb3RvdHlwZSl7aWYodHlwZW9mIHBhcmVudC5wcm90b3R5cGVbaV09 PSJvYmplY3QiKXtjb25zdHJ1Y3Rvci5wcm90b3R5cGVbaV09dGhpcy5jb3B5T2Jq LmNvcHkocGFyZW50LnByb3RvdHlwZVtpXSk7fX19cGFyZW50Lm1ha2VOb3RoaW5n PWZhbHNlO3JldHVybjt9Zm9yKHZhciBwIGluIHBhcmVudC5wcm90b3R5cGUpe2lm KHR5cGVvZiBwYXJlbnQucHJvdG90eXBlW3BdPT0ib2JqZWN0Iil7aWYodGhpcy5j b3B5T2JqIT1udWxsKXtjb25zdHJ1Y3Rvci5wcm90b3R5cGVbcF09dGhpcy5jb3B5 T2JqLmNvcHkocGFyZW50LnByb3RvdHlwZVtwXSk7fX1lbHNle2lmKG5vU3VwZXIm JigocD09IiRjb25zdHJ1Y3RvciIpfHwocD09IiRkZXN0cnVjdG9yIikpKXtjb250 aW51ZTt9Y29uc3RydWN0b3IucHJvdG90eXBlW3BdPXBhcmVudC5wcm90b3R5cGVb cF07fX19O1NaTi5DbGFzc01ha2VyLl90ZXN0RGVwZW5kPWZ1bmN0aW9uKGRlcGVu ZCl7dmFyIG91dD10cnVlO2Zvcih2YXIgaT0wO2k8ZGVwZW5kLmxlbmd0aDtpKysp e3ZhciBpdGVtPWRlcGVuZFtpXTtpZighaXRlbS5zQ2xhc3N8fCFpdGVtLnZlcil7 cmV0dXJuICJNYWxmb3JtZWQgZGVwZW5kZW5jeSI7fXZhciBkZXBNYWpvcj1pdGVt LnNDbGFzcy5WRVJTSU9OLnNwbGl0KCIuIilbMF07dmFyIGNsYU1ham9yPWl0ZW0u dmVyLnNwbGl0KCIuIilbMF07aWYoZGVwTWFqb3IhPWNsYU1ham9yKXtyZXR1cm4g IlZlcnNpb24gY29uZmxpY3QgaW4gIitpdGVtLnNDbGFzcy5OQU1FO319cmV0dXJu IGZhbHNlO307U1pOLkV2ZW50cz1TWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3MoeyJO QU1FIjoiRXZlbnRzIiwiVkVSU0lPTiI6IjIuMCIsIkNMQVNTIjoic3RhdGljIn0p O1NaTi5FdmVudHMuZXZlbnRGb2xkZXI9bmV3IE9iamVjdCgpO1NaTi5FdmVudHMu X2RvbVJlYWR5VGltZXI9bnVsbDtTWk4uRXZlbnRzLl9kb21SZWFkeUNhbGxiYWNr PVtdO1NaTi5FdmVudHMuX2RvbVJlYWR5QWxyZWFkeVJ1bj1mYWxzZTtTWk4uRXZl bnRzLl93aW5kb3dMb2FkTGlzdGVuZXJJZD0iIjtTWk4uRXZlbnRzLm9uRG9tUmVh ZHk9ZnVuY3Rpb24ob2JqLGZ1bmMpe1NaTi5FdmVudHMuX2RvbVJlYWR5Q2FsbGJh Y2tbU1pOLkV2ZW50cy5fZG9tUmVhZHlDYWxsYmFjay5sZW5ndGhdPXsib2JqIjpv YmosImZ1bmMiOmZ1bmN9O1NaTi5FdmVudHMuX29uRG9tUmVhZHkoKTt9O1NaTi5F dmVudHMuX29uRG9tUmVhZHk9ZnVuY3Rpb24oKXtpZigoL1NhZmFyaS9pLnRlc3Qo bmF2aWdhdG9yLnVzZXJBZ2VudCkpfHwoL1dlYktpdHxLaHRtbC9pLnRlc3QobmF2 aWdhdG9yLnVzZXJBZ2VudCkpKXtTWk4uRXZlbnRzLl9kb21SZWFkeVRpbWVyPXNl dEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChk b2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChTWk4uRXZlbnRzLl9k b21SZWFkeVRpbWVyKTtTWk4uRXZlbnRzLl9kb21SZWFkeSgpO319LDEwKTt9ZWxz ZXtpZihkb2N1bWVudC5hbGwmJiF3aW5kb3cub3BlcmEpe3RyeXtkb2N1bWVudC5k b2N1bWVudEVsZW1lbnQuZG9TY3JvbGwoImxlZnQiKTt9Y2F0Y2goZXJyb3Ipe3Nl dFRpbWVvdXQoYXJndW1lbnRzLmNhbGxlZSwxKTtyZXR1cm47fVNaTi5FdmVudHMu X2RvbVJlYWR5KCk7fWVsc2V7aWYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcil7 ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsU1pO LkV2ZW50cy5fZG9tUmVhZHksZmFsc2UpO319fVNaTi5FdmVudHMuX3dpbmRvd0xv YWRMaXN0ZW5lcklkPVNaTi5FdmVudHMuYWRkTGlzdGVuZXIod2luZG93LCJsb2Fk Iix3aW5kb3csZnVuY3Rpb24oKXtTWk4uRXZlbnRzLl9kb21SZWFkeSgpO30sZmFs c2UsdHJ1ZSk7fTtTWk4uRXZlbnRzLl9kb21SZWFkeT1mdW5jdGlvbigpe2lmKCFT Wk4uRXZlbnRzLl9kb21SZWFkeUFscmVhZHlSdW4pe1NaTi5FdmVudHMuX2RvbVJl YWR5QWxyZWFkeVJ1bj10cnVlO2lmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIp e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQi LFNaTi5FdmVudHMuX2RvbVJlYWR5LHRydWUpO31TWk4uRXZlbnRzLnJlbW92ZUxp c3RlbmVyKFNaTi5FdmVudHMuX3dpbmRvd0xvYWRMaXN0ZW5lcklkKTtmb3IodmFy IGk9MDtpPFNaTi5FdmVudHMuX2RvbVJlYWR5Q2FsbGJhY2subGVuZ3RoO2krKyl7 dmFyIGNhbGxiYWNrPVNaTi5FdmVudHMuX2RvbVJlYWR5Q2FsbGJhY2tbaV07aWYo dHlwZW9mIGNhbGxiYWNrLmZ1bmM9PSJzdHJpbmciKXtjYWxsYmFjay5vYmpbY2Fs bGJhY2suZnVuY10oKTt9ZWxzZXtjYWxsYmFjay5mdW5jLmFwcGx5KGNhbGxiYWNr Lm9iaixbXSk7fX1TWk4uRXZlbnRzLl9kb21SZWFkeUNhbGxiYWNrPVtdO319O1Na Ti5FdmVudHMuZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3RoaXMucmVtb3ZlQWxsTGlz dGVuZXJzKCk7dGhpcy5zQ29uc3RydWN0b3IuZGVzdHJveSh0aGlzKTt9O1NaTi5F dmVudHMuZ2V0RXZlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fHdpbmRvdy5ldmVu dDt9O1NaTi5FdmVudHMuZ2V0VGFyZ2V0PWZ1bmN0aW9uKGUpe3ZhciBlPWV8fHdp bmRvdy5ldmVudDtyZXR1cm4gZS50YXJnZXR8fGUuc3JjRWxlbWVudDt9O1NaTi5F dmVudHMuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oZWxtLGVUeXBlLG9iaixmdW5jLGNh cHR1cmUsY2FjaGVkKXt2YXIgY2FwdHVyZT1hcmd1bWVudHNbNF0/YXJndW1lbnRz WzRdOmZhbHNlO3ZhciBjYWNoZWQ9YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTpm YWxzZTt2YXIgbWV0aG9kPW51bGw7dmFyIHRvRm9sZD1udWxsO2lmKHR5cGVvZiBv Ymo9PSJmdW5jdGlvbiIpe3RvRm9sZD10aGlzLl9hZGRMaXN0ZW5lcihlbG0sZVR5 cGUsb2JqLGNhcHR1cmUpO31lbHNle2lmKHR5cGVvZiBvYmo9PSJvYmplY3QiKXt2 YXIgY2FjaGVkPXRydWU7aWYodHlwZW9mIGZ1bmM9PSJzdHJpbmciKXtpZih0eXBl b2Ygb2JqW2Z1bmNdPT0iZnVuY3Rpb24iKXttZXRob2Q9dGhpcy5fZ2V0TWV0aG9k KG9iaixmdW5jLGVsbSk7dG9Gb2xkPXRoaXMuX2FkZExpc3RlbmVyKGVsbSxlVHlw ZSxtZXRob2QsY2FwdHVyZSk7fWVsc2V7dGhyb3cgbmV3IEVycm9yKCJFdmVudHMu YWRkTGlzdGVuZXI6IGFyZ3VtZW50c1szXSBtdXN0IGJlIG1ldGhvZCBvZiBhcmd1 bWVudHNbMl0iKTt9fWVsc2V7aWYodHlwZW9mIGZ1bmM9PSJmdW5jdGlvbiIpe21l dGhvZD10aGlzLl9nZXRNZXRob2Qob2JqLGZ1bmMsZWxtKTt0b0ZvbGQ9dGhpcy5f YWRkTGlzdGVuZXIoZWxtLGVUeXBlLG1ldGhvZCxjYXB0dXJlKTt9fX1lbHNle3Ro cm93IG5ldyBFcnJvcigiRXZlbnRzLmFkZExpc3RlbmVyOiBhcmd1bWVudHNbMl0g bXVzdCBiZSBvYmplY3Qgb3IgZnVuY3Rpb24iKTt9fWlmKGNhY2hlZCl7cmV0dXJu IHRoaXMuX3N0b3JlVG9Gb2xkZXIodG9Gb2xkKTt9ZWxzZXtyZXR1cm4gMDt9fTtT Wk4uRXZlbnRzLl9hZGRMaXN0ZW5lcj1mdW5jdGlvbihlbG0sZVR5cGUsZnVuYyxj YXB0dXJlKXtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtpZih3aW5kb3cu b3BlcmEmJihlbG09PXdpbmRvdykpe2VsbT1kb2N1bWVudDt9ZWxtLmFkZEV2ZW50 TGlzdGVuZXIoZVR5cGUsZnVuYyxjYXB0dXJlKTt9ZWxzZXtpZihkb2N1bWVudC5h dHRhY2hFdmVudCl7ZWxtLmF0dGFjaEV2ZW50KCJvbiIrZVR5cGUsZnVuYyk7fX1y ZXR1cm4gW2VsbSxlVHlwZSxmdW5jLGNhcHR1cmVdO307U1pOLkV2ZW50cy5fZ2V0 TWV0aG9kPWZ1bmN0aW9uKG9iaixmdW5jLGVsbSl7aWYodHlwZW9mIGZ1bmM9PSJz dHJpbmciKXtpZih0eXBlb2Ygb2JqW2Z1bmNdLmNhblRyYW5zZm9ybT09InVuZGVm aW5lZCIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gb2JqW2Z1bmNdLmFwcGx5 KG9iaixbZSxlbG1dKTt9O31lbHNle3JldHVybiBvYmpbZnVuY107fX1lbHNle2lm KHR5cGVvZiBmdW5jLmNhblRyYW5zZm9ybT09InVuZGVmaW5lZCIpe3JldHVybiBm dW5jdGlvbihlKXtyZXR1cm4gZnVuYy5hcHBseShvYmosW2UsZWxtXSk7fTt9ZWxz ZXtyZXR1cm4gZnVuYzt9fX07U1pOLkV2ZW50cy5fc3RvcmVUb0ZvbGRlcj1mdW5j dGlvbihkYXRhKXt2YXIgaWQ9U1pOLmlkR2VuZXJhdG9yKCk7dGhpcy5ldmVudEZv bGRlcltpZF09bmV3IE9iamVjdCgpO3RoaXMuZXZlbnRGb2xkZXJbaWRdLnRyZz1k YXRhWzBdO3RoaXMuZXZlbnRGb2xkZXJbaWRdLnR5cD1kYXRhWzFdO3RoaXMuZXZl bnRGb2xkZXJbaWRdLmFjdGlvbj1kYXRhWzJdO3RoaXMuZXZlbnRGb2xkZXJbaWRd LmJvb2w9ZGF0YVszXTtyZXR1cm4gaWQ7fTtTWk4uRXZlbnRzLnJlbW92ZUxpc3Rl bmVyPWZ1bmN0aW9uKGVsbSxlVHlwZSxvYmosZnVuYyxjYXB0dXJlLGNhY2hlZCl7 dmFyIGNhcHR1cmU9YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTpmYWxzZTt2YXIg Y2FjaGVkPWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06ZmFsc2U7Y2FjaGVkPShh cmd1bWVudHMubGVuZ3RoPT0xKT9hcmd1bWVudHNbMF06Y2FjaGVkO2lmKHR5cGVv ZiBjYWNoZWQ9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQnlJZChjYWNo ZWQpO31pZih0eXBlb2Ygb2JqPT0iZnVuY3Rpb24iKXtyZXR1cm4gdGhpcy5fcmVt b3ZlTGlzdGVuZXIoZWxtLGVUeXBlLG9iaixjYXB0dXJlKTt9dGhyb3cgbmV3IEVy cm9yKCJFdmVudHMucmVtb3ZlTGlzdGVuZXI6IHdyb25nIGFyZ3VtZW50cyIpO307 U1pOLkV2ZW50cy5fcmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZWxtLGVUeXBlLGZ1 bmMsY2FwdHVyZSl7aWYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcil7aWYo d2luZG93Lm9wZXJhJiYoZWxtPT13aW5kb3cpKXtlbG09ZG9jdW1lbnQ7fWVsbS5y ZW1vdmVFdmVudExpc3RlbmVyKGVUeXBlLGZ1bmMsY2FwdHVyZSk7fWVsc2V7aWYo ZG9jdW1lbnQuZGV0YWNoRXZlbnQpe2VsbS5kZXRhY2hFdmVudCgib24iK2VUeXBl LGZ1bmMpO319cmV0dXJuIDA7fTtTWk4uRXZlbnRzLl9yZW1vdmVCeUlkPWZ1bmN0 aW9uKGNhY2hlZCl7dHJ5e3ZhciBvYmo9dGhpcy5ldmVudEZvbGRlcltjYWNoZWRd O3RoaXMuX3JlbW92ZUxpc3RlbmVyKG9iai50cmcsb2JqLnR5cCxvYmouYWN0aW9u LG9iai5ib29sKTt0aGlzLmV2ZW50Rm9sZGVyW2NhY2hlZF09bnVsbDtkZWxldGUg KHRoaXMuZXZlbnRGb2xkZXJbY2FjaGVkXSk7fWNhdGNoKGUpe3JldHVybiAxO31y ZXR1cm4gMDt9O1NaTi5FdmVudHMucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9u KCl7Zm9yKHZhciBwIGluIHRoaXMuZXZlbnRGb2xkZXIpe3RoaXMuX3JlbW92ZUJ5 SWQocCk7fX07U1pOLkV2ZW50cy5zdG9wRXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIGU9 ZXx8d2luZG93LmV2ZW50O2lmKGUuc3RvcFByb3BhZ2F0aW9uKXtlLnN0b3BQcm9w YWdhdGlvbigpO31lbHNle2UuY2FuY2VsQnViYmxlPXRydWU7fX07U1pOLkV2ZW50 cy5jYW5jZWxEZWY9ZnVuY3Rpb24oZSl7dmFyIGU9ZXx8d2luZG93LmV2ZW50O2lm KGUucHJldmVudERlZmF1bHQpe2UucHJldmVudERlZmF1bHQoKTt9ZWxzZXtlLnJl dHVyblZhbHVlPWZhbHNlO319O1NaTi5FdmVudHMuYWRkVGltZUZ1bmN0aW9uPWZ1 bmN0aW9uKG93bmVyLGhhbmRsZUZ1bmNOYW1lLGV4ZUZ1bmMsZXhlT2JqKXtpZigh IWV4ZU9iail7b3duZXJbaGFuZGxlRnVuY05hbWVdPWZ1bmN0aW9uKCl7cmV0dXJu IGV4ZUZ1bmMuYXBwbHkoZXhlT2JqLFtdKTt9O31lbHNle293bmVyW2hhbmRsZUZ1 bmNOYW1lXT1mdW5jdGlvbigpe3JldHVybiBleGVGdW5jLmFwcGx5KG93bmVyLFtd KTt9O319O1NaTi5Ccm93c2VyPVNaTi5DbGFzc01ha2VyLm1ha2VDbGFzcyh7Ik5B TUUiOiJCcm93c2VyIiwiVkVSU0lPTiI6IjIuMSIsIkNMQVNTIjoic3RhdGljIn0p O1NaTi5Ccm93c2VyLnBsYXRmb3JtPSIiO1NaTi5Ccm93c2VyLmNsaWVudD0iIjtT Wk4uQnJvd3Nlci5rbGllbnQ9IiI7U1pOLkJyb3dzZXIudmVyc2lvbj0wO1NaTi5C cm93c2VyLmFnZW50PSIiO1NaTi5Ccm93c2VyLm1vdXNlPXt9O1NaTi5Ccm93c2Vy Ll9nZXRQbGF0Zm9ybT1mdW5jdGlvbigpe2lmKCh0aGlzLl9hZ2VudC5pbmRleE9m KCJYMTEiKSE9LTEpfHwodGhpcy5fYWdlbnQuaW5kZXhPZigiTGludXgiKSE9LTEp KXtyZXR1cm4gIm5peCI7fWVsc2V7aWYodGhpcy5fYWdlbnQuaW5kZXhPZigiTWFj IikhPS0xKXtyZXR1cm4gIm1hYyI7fWVsc2V7aWYodGhpcy5fYWdlbnQuaW5kZXhP ZigiV2luIikhPS0xKXtyZXR1cm4gIndpbiI7fWVsc2V7cmV0dXJuICJvdGgiO319 fX07U1pOLkJyb3dzZXIuX2dldEtsaWVudD1mdW5jdGlvbigpe2lmKHdpbmRvdy5v cGVyYSl7cmV0dXJuICJvcGVyYSI7fWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZl bnQmJih0eXBlb2YgbmF2aWdhdG9yLnN5c3RlbUxhbmd1YWdlIT0idW5kZWZpbmVk Iikpe3JldHVybiAiaWUiO31lbHNle2lmKGRvY3VtZW50LmdldEFub255bW91c0Vs ZW1lbnRCeUF0dHJpYnV0ZSl7cmV0dXJuICJnZWNrbyI7fWVsc2V7aWYodGhpcy5f YWdlbnQuaW5kZXhPZigiS0hUTUwiKSl7aWYodGhpcy5fdmVuZG9yPT0iS0RFIil7 cmV0dXJuICJrb25xdWVyb3IiO31lbHNle3JldHVybiAic2FmYXJpIjt9fWVsc2V7 cmV0dXJuICJvdGgiO319fX19O1NaTi5Ccm93c2VyLl9nZXRNb3VzZT1mdW5jdGlv bigpe3ZhciBsZWZ0O3ZhciByaWdodDt2YXIgbWlkZGxlO2lmKChTWk4uQnJvd3Nl ci5jbGllbnQ9PSJpZSIpfHwoU1pOLkJyb3dzZXIuY2xpZW50PT0ia29ucXVlcm9y Iikpe2xlZnQ9MTttaWRkbGU9NDtyaWdodD0yO31lbHNle2lmKChTWk4uQnJvd3Nl ci5jbGllbnQ9PSJvcGVyYSIpJiYoU1pOLkJyb3dzZXIudmVyc2lvbj43KSYmKFNa Ti5Ccm93c2VyLnZlcnNpb248OSkpe2xlZnQ9MTttaWRkbGU9NDtyaWdodD0yO31l bHNle2lmKFNaTi5Ccm93c2VyLmNsaWVudD09InNhZmFyaSIpe2lmKHBhcnNlSW50 KFNaTi5Ccm93c2VyLnZlcnNpb24pPjIpe2xlZnQ9MDttaWRkbGU9MDtyaWdodD0y O31lbHNle2xlZnQ9MTttaWRkbGU9MTtyaWdodD0yO319ZWxzZXtsZWZ0PTA7bWlk ZGxlPTE7cmlnaHQ9Mjt9fX1yZXR1cm4geyJsZWZ0IjpsZWZ0LCJyaWdodCI6cmln aHQsIm1pZGRsZSI6bWlkZGxlfTt9O1NaTi5Ccm93c2VyLl9nZXRWZXJzaW9uPWZ1 bmN0aW9uKCl7dmFyIG91dD0wO3ZhciBmbmNOYW1lPSJfZ2V0XyIrdGhpcy5jbGll bnQrIl92ZXIiO2lmKHR5cGVvZiB0aGlzW2ZuY05hbWVdPT0iZnVuY3Rpb24iKXty ZXR1cm4gdGhpc1tmbmNOYW1lXSgpO31lbHNle3JldHVybiAwO319O1NaTi5Ccm93 c2VyLl9nZXRfaWVfdmVyPWZ1bmN0aW9uKCl7aWYodHlwZW9mIEZ1bmN0aW9uLnBy b3RvdHlwZS5jYWxsIT0idW5kZWZpbmVkIil7aWYod2luZG93LlhNTEh0dHBSZXF1 ZXN0KXtyZXR1cm4gIjciO31lbHNle2lmKHR5cGVvZiBkb2N1bWVudC5kb2N0eXBl PT0ib2JqZWN0Iil7cmV0dXJuICI2Ijt9ZWxzZXtyZXR1cm4gIjUuNSI7fX19ZWxz ZXtyZXR1cm4gIjUuMCI7fX07U1pOLkJyb3dzZXIuX2dldF9vcGVyYV92ZXI9ZnVu Y3Rpb24oKXtpZihkb2N1bWVudC5kZXNpZ25Nb2RlJiZkb2N1bWVudC5leGVjQ29t bWFuZCl7aWYodHlwZW9mIE9iamVjdC5fX2RlZmluZUdldHRlcl9fPT0iZnVuY3Rp b24iKXtyZXR1cm4gIjkuNSI7fWVsc2V7cmV0dXJuICI5Ijt9fWVsc2V7aWYoKGRv Y3VtZW50LnNlbGVjdGlvbikmJihkb2N1bWVudC5jcmVhdGVSYW5nZSkpe3JldHVy biAiOCI7fWVsc2V7aWYoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCl7cmV0dXJuICI3 Ijt9ZWxzZXtyZXR1cm4gIjYiO319fX07U1pOLkJyb3dzZXIuX2dldF9nZWNrb192 ZXI9ZnVuY3Rpb24oKXtpZih3aW5kb3cuZXh0ZXJuYWwpe3JldHVybiAiMiI7fWVs c2V7cmV0dXJuICIxLjUiO319O1NaTi5Ccm93c2VyLl9nZXRfa29ucXVlcm9yX3Zl cj1mdW5jdGlvbigpe3ZhciBudW09dGhpcy5fYWdlbnQuaW5kZXhPZigiS0hUTUwi KSs2O3ZhciBwYXJ0PXRoaXMuX2FnZW50LnN1YnN0cmluZyhudW0pO3ZhciBlbmQ9 cGFydC5pbmRleE9mKCIgIik7dmFyIHg9cGFydC5zdWJzdHJpbmcoMCxlbmQtMik7 cmV0dXJuIHg7fTtTWk4uQnJvd3Nlci5fZ2V0X3NhZmFyaV92ZXI9ZnVuY3Rpb24o KXt2YXIgdmVyPXRoaXMuX2FnZW50Lm1hdGNoKC92ZXJzaW9uXC8oWzAtOV0rKS9p KTtyZXR1cm4gKHZlcj92ZXJbMV06IjEiKTt9O1NaTi5Ccm93c2VyLmdldEJyb3dz ZXI9ZnVuY3Rpb24oKXt0aGlzLl9hZ2VudD10aGlzLmFnZW50PW5hdmlnYXRvci51 c2VyQWdlbnQ7dGhpcy5fcGxhdGZvcm09bmF2aWdhdG9yLnBsYXRmb3JtO3RoaXMu X3ZlbmRvcj1uYXZpZ2F0b3IudmVuZG9yO3RoaXMucGxhdGZvcm09dGhpcy5fZ2V0 UGxhdGZvcm0oKTt0aGlzLmNsaWVudD10aGlzLl9nZXRLbGllbnQoKTt0aGlzLmts aWVudD10aGlzLmNsaWVudDt0aGlzLnZlcnNpb249dGhpcy5fZ2V0VmVyc2lvbigp O3RoaXMubW91c2U9dGhpcy5fZ2V0TW91c2UoKTt9O1NaTi5Ccm93c2VyLmdldEJy b3dzZXIoKTtTWk4uQ29tcG9uZW50cz1mdW5jdGlvbigpe307U1pOLkNvbXBvbmVu dHMuTmFtZT0iQ29tcG9uZW50cyI7U1pOLkNvbXBvbmVudHMudmVyc2lvbj0iMS4x IjtTWk4uQ29tcG9uZW50cy5wcm90b3R5cGUuQ0xBU1M9ImNsYXNzIjtTWk4uQ29t cG9uZW50cy5wcm90b3R5cGUuaGFzQ29tcG9uZW50cz1mdW5jdGlvbigpe2lmKCh0 aGlzLmNvbXBvbmVudHMgaW5zdGFuY2VvZiBBcnJheSkmJnRoaXMuY29tcG9uZW50 cy5sZW5ndGgpe3JldHVybiB0cnVlO31lbHNle3JldHVybiBmYWxzZTt9fTtTWk4u Q29tcG9uZW50cy5wcm90b3R5cGUuYWRkQWxsQ29tcG9uZW50cz1mdW5jdGlvbigp e2lmKCF0aGlzLmhhc0NvbXBvbmVudHMoKSl7cmV0dXJuIGZhbHNlO31mb3IodmFy IGk9MDtpPHRoaXMuY29tcG9uZW50cy5sZW5ndGg7aSsrKXt0aGlzLl9hZGRDb21w b25lbnQodGhpcy5jb21wb25lbnRzW2ldKTt9cmV0dXJuIHRydWU7fTtTWk4uQ29t cG9uZW50cy5wcm90b3R5cGUuYWRkTmV3Q29tcG9uZW50PWZ1bmN0aW9uKGNvbXBv bmVudCl7aWYoIXRoaXMuaGFzQ29tcG9uZW50cygpKXt0aGlzLmNvbXBvbmVudHM9 bmV3IEFycmF5KCk7fXRoaXMuY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7dGhp cy5fYWRkQ29tcG9uZW50KGNvbXBvbmVudCk7fTtTWk4uQ29tcG9uZW50cy5wcm90 b3R5cGUuX2FkZENvbXBvbmVudD1mdW5jdGlvbihjb21wb25lbnQpe2lmKHR5cGVv ZiBjb21wb25lbnQucGFydCE9InVuZGVmaW5lZCIpe2lmKHR5cGVvZiBjb21wb25l bnQubmFtZT09InVuZGVmaW5lZCIpe2NvbXBvbmVudC5uYW1lPWNvbXBvbmVudC5w YXJ0Lk5BTUUuc3Vic3RyaW5nKDAsMSkudG9Mb3dlckNhc2UoKTtjb21wb25lbnQu bmFtZSs9Y29tcG9uZW50LnBhcnQuTkFNRS5zdWJzdHJpbmcoMSk7fWlmKHR5cGVv ZiBjb21wb25lbnQuc2V0dGluZyE9InVuZGVmaW5lZCIpe3RoaXNbY29tcG9uZW50 Lm5hbWVdPW5ldyBjb21wb25lbnQucGFydCh0aGlzLGNvbXBvbmVudC5uYW1lLGNv bXBvbmVudC5zZXR0aW5nKTt9ZWxzZXt0aGlzW2NvbXBvbmVudC5uYW1lXT1uZXcg Y29tcG9uZW50LnBhcnQodGhpcyxjb21wb25lbnQubmFtZSk7fX19O1NaTi5Db21w b25lbnRzLnByb3RvdHlwZS5yZWdpc3RyZWRNZXRob2Q9ZnVuY3Rpb24ob3duZXIp e3ZhciBmaWVsZD1bdGhpcyx0aGlzLnNDb25zdHJ1Y3Rvcl07Zm9yKHZhciBpPTA7 aTxmaWVsZC5sZW5ndGg7aSsrKXt2YXIgb2JqPWZpZWxkW2ldO2Zvcih2YXIgaiBp biBvYmope2lmKG9ialtqXT09PW51bGwpY29udGludWU7aWYodHlwZW9mIG9ialtq XT09InVuZGVmaW5lZCIpY29udGludWU7aWYoKHR5cGVvZiBvYmpbal0uYWNjZXNz IT0idW5kZWZpbmVkIikmJihvYmpbal0uYWNjZXNzLmluZGV4T2YoInB1YmxpYyIp PT0wKSl7dmFyIG5hbWU9dGhpcy5fY3JlYXRlTWV0aG9kTmFtZShvYmosaik7aWYo dHlwZW9mIG93bmVyW25hbWVdPT0idW5kZWZpbmVkIil7b3duZXJbbmFtZV09KG9i aj09dGhpcy5zQ29uc3RydWN0b3IpP3RoaXMuc0NvbnN0cnVjdG9yW2pdOlNaTi5i aW5kKHRoaXMsdGhpc1tqXSk7fWVsc2V7dGhyb3cgbmV3IEVycm9yKCJyZWdpc3Ry ZWRNZXRob2Q6IG1ldGhvZCBcIiIrbmFtZSsiXCIgYWxyZWFkeSBleGlzdCEiKTt9 fX19fTtTWk4uQ29tcG9uZW50cy5wcm90b3R5cGUudW5yZWdpc3RyZWRNZXRob2Q9 ZnVuY3Rpb24ob3duZXIpe3ZhciBmaWVsZD1bdGhpcyx0aGlzLnNDb25zdHJ1Y3Rv cl07Zm9yKHZhciBpPTA7aTxmaWVsZC5sZW5ndGg7aSsrKXt2YXIgb2JqPWZpZWxk W2ldO2Zvcih2YXIgaiBpbiBvYmope2lmKG9ialtqXT09PW51bGwpY29udGludWU7 aWYodHlwZW9mIG9ialtqXT09InVuZGVmaW5lZCIpY29udGludWU7aWYoKHR5cGVv ZiBvYmpbal0uYWNjZXNzIT0idW5kZWZpbmVkIikmJihvYmpbal0uYWNjZXNzLmlu ZGV4T2YoInB1YmxpYyIpPT0wKSl7dmFyIG5hbWU9dGhpcy5fY3JlYXRlTWV0aG9k TmFtZShvYmosaik7aWYodHlwZW9mIG93bmVyW25hbWVdIT0idW5kZWZpbmVkIil7 ZGVsZXRlIChvd25lcltuYW1lXSk7fX19fX07U1pOLkNvbXBvbmVudHMucHJvdG90 eXBlLl9jcmVhdGVNZXRob2ROYW1lPWZ1bmN0aW9uKG9iaixtZXRob2ROYW1lKXt2 YXIgbmFtZUZpcnN0Q2hhcj1tZXRob2ROYW1lLnN1YnN0cmluZygwLDEpLnRvVXBw ZXJDYXNlKCk7dmFyIG5hbWVOZXh0PW1ldGhvZE5hbWUuc3Vic3RyaW5nKDEpO3Zh ciBtb2RzPW9ialttZXRob2ROYW1lXS5hY2Nlc3MucmVwbGFjZSgvWyBdezIsfS9n aSwiICIpLnNwbGl0KCIgIik7aWYobW9kcy5sZW5ndGg+MSl7dmFyIG5hbWU9bW9k c1sxXTt9ZWxzZXt2YXIgbmFtZVByZWZpeD0ob2JqPT10aGlzLnNDb25zdHJ1Y3Rv cik/b2JqLk5BTUU6dGhpcy5fbmFtZTt2YXIgbmFtZT1uYW1lUHJlZml4K25hbWVG aXJzdENoYXIrbmFtZU5leHQ7fXJldHVybiBuYW1lO307U1pOLkNvbXBvbmVudHMu cHJvdG90eXBlLmdldE1haW49ZnVuY3Rpb24oKXt2YXIgb2JqPXRoaXM7d2hpbGUo dHlwZW9mIG9iai5UT1BfTEVWRUw9PSJ1bmRlZmluZWQiKXtpZih0eXBlb2Ygb2Jq Ll9vd25lcj09InVuZGVmaW5lZCIpe3Rocm93IG5ldyBFcnJvcigiY2FuJ3QgZmlu ZCBUT1AgTEVWRUwgQ2xhc3MiKTt9ZWxzZXtvYmo9b2JqLl9vd25lcjt9fXJldHVy biBvYmo7fTtTWk4uQ29tcG9uZW50cy5wcm90b3R5cGUuY2FsbENoaWxkRGVzdHJ1 Y3Rvcj1mdW5jdGlvbigpe3RoaXMuaW5EZXN0cnVjdGlvbj10cnVlO2lmKCF0aGlz Lmhhc0NvbXBvbmVudHMoKSl7cmV0dXJuIGZhbHNlO31mb3IodmFyIGk9MDtpPHRo aXMuY29tcG9uZW50cy5sZW5ndGg7aSsrKXt2YXIgY05hbWU9dGhpcy5jb21wb25l bnRzW2ldLm5hbWU7aWYodGhpc1tjTmFtZV09PW51bGwpe2NvbnRpbnVlO31pZigo dHlwZW9mIHRoaXNbY05hbWVdLkNMQVNTIT0idW5kZWZpbmVkIikmJih0eXBlb2Yg dGhpc1tjTmFtZV0uaW5EZXN0cnVjdGlvbiE9ImJvb2xlYW4iKSl7dmFyIG5hbWU9 IiRkZXN0cnVjdG9yIjtpZigodHlwZW9mIHRoaXNbY05hbWVdW25hbWVdIT0idW5k ZWZpbmVkIikmJih0eXBlb2YgdGhpc1tjTmFtZV1bbmFtZV09PSJmdW5jdGlvbiIp KXt0aGlzW2NOYW1lXVtuYW1lXSgpO310aGlzW2NOYW1lXT1udWxsO319fTtTWk4u Q29tcG9uZW50cy5wcm90b3R5cGUucmVtb3ZlQ29tcG9uZW50PWZ1bmN0aW9uKGNv bXBvbmVudCx3aXRoRGVzdHJ1Y3Rpb24pe2Zvcih2YXIgaT0wO2k8dGhpcy5jb21w b25lbnRzLmxlbmd0aDtpKyspe3ZhciBjPXRoaXMuY29tcG9uZW50c1tpXTtpZihj b21wb25lbnQ9PWMubmFtZXx8Y29tcG9uZW50PT10aGlzW2MubmFtZV0pe2lmKHdp dGhEZXN0cnVjdGlvbiYmKHR5cGVvZiB0aGlzW2MubmFtZV0uJGRlc3RydWN0b3I9 PSJmdW5jdGlvbiIpKXt0aGlzW2MubmFtZV0uJGRlc3RydWN0b3IoKTt9dGhpc1tj Lm5hbWVdPW51bGw7Yz1udWxsO3RoaXMuY29tcG9uZW50cy5zcGxpY2UoaSwxKTti cmVhazt9fX07U1pOLkRvbT1TWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3MoeyJOQU1F IjoiRG9tIiwiVkVSU0lPTiI6IjMuMSIsIkNMQVNTIjoic3RhdGljIn0pO1NaTi5j RWw9ZnVuY3Rpb24odGFnTmFtZSxpZCxjbGFzc05hbWUsc3R5bGVPYmosZG9jKXt2 YXIgZD1kb2N8fGRvY3VtZW50O3ZhciBub2RlPWQuY3JlYXRlRWxlbWVudCh0YWdO YW1lKTtpZihhcmd1bWVudHMubGVuZ3RoPT0xKXtyZXR1cm4gbm9kZTt9aWYoaWQp e25vZGUuaWQ9aWQ7fWlmKGNsYXNzTmFtZSl7bm9kZS5jbGFzc05hbWU9Y2xhc3NO YW1lO31pZihzdHlsZU9iailmb3IocCBpbiBzdHlsZU9iail7bm9kZS5zdHlsZVtw XT1zdHlsZU9ialtwXTt9cmV0dXJuIG5vZGU7fTtTWk4uY1R4dD1mdW5jdGlvbihz dHIsZG9jKXt2YXIgZD1kb2N8fGRvY3VtZW50O3JldHVybiBkLmNyZWF0ZVRleHRO b2RlKHN0cik7fTtTWk4uZ0VsPWZ1bmN0aW9uKGlkcyl7aWYodHlwZW9mIChpZHMp PT0ic3RyaW5nIil7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkcyk7 fWVsc2V7cmV0dXJuIGlkczt9fTtTWk4uRG9tLmFwcGVuZD1mdW5jdGlvbigpe2Zv cih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBhcnI9YXJndW1l bnRzW2ldO3ZhciBoZWFkPWFyclswXTtmb3IodmFyIGo9MTtqPGFyci5sZW5ndGg7 aisrKXtoZWFkLmFwcGVuZENoaWxkKGFycltqXSk7fX19O1NaTi5Eb20uaGFzQ2xh c3M9ZnVuY3Rpb24oZWxlbWVudCxjbGFzc05hbWUpe3ZhciBhcnI9ZWxlbWVudC5j bGFzc05hbWUuc3BsaXQoIiAiKTtmb3IodmFyIGk9MDtpPGFyci5sZW5ndGg7aSsr KXtpZihhcnJbaV09PWNsYXNzTmFtZSl7cmV0dXJuIHRydWU7fX1yZXR1cm4gZmFs c2U7fTtTWk4uRG9tLmFkZENsYXNzPWZ1bmN0aW9uKGVsZW1lbnQsY2xhc3NOYW1l KXtpZihTWk4uRG9tLmhhc0NsYXNzKGVsZW1lbnQsY2xhc3NOYW1lKSl7cmV0dXJu O31lbGVtZW50LmNsYXNzTmFtZSs9IiAiK2NsYXNzTmFtZTt9O1NaTi5Eb20ucmVt b3ZlQ2xhc3M9ZnVuY3Rpb24oZWxlbWVudCxjbGFzc05hbWUpe3ZhciBuYW1lcz1l bGVtZW50LmNsYXNzTmFtZS5zcGxpdCgiICIpO3ZhciBuZXdDbGFzc0Fycj1bXTtm b3IodmFyIGk9MDtpPG5hbWVzLmxlbmd0aDtpKyspe2lmKG5hbWVzW2ldIT1jbGFz c05hbWUpe25ld0NsYXNzQXJyLnB1c2gobmFtZXNbaV0pO319ZWxlbWVudC5jbGFz c05hbWU9bmV3Q2xhc3NBcnIuam9pbigiICIpO307U1pOLkRvbS5jbGVhcj1mdW5j dGlvbihlbGVtZW50KXt3aGlsZShlbGVtZW50LmZpcnN0Q2hpbGQpe2VsZW1lbnQu cmVtb3ZlQ2hpbGQoZWxlbWVudC5maXJzdENoaWxkKTt9fTtTWk4uRG9tLmdldERv Y1NpemU9ZnVuY3Rpb24oKXt2YXIgeD0wO3ZhciB5PTA7aWYoZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50LmNsaWVudFdpZHRoJiZTWk4uQnJvd3Nlci5rbGllbnQhPSJv cGVyYSIpe3g9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO3k9 ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDt9ZWxzZXtpZihT Wk4uQnJvd3Nlci5rbGllbnQ9PSJvcGVyYSIpe2lmKHBhcnNlRmxvYXQoU1pOLkJy b3dzZXIudmVyc2lvbik8OS41KXt4PWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7 eT1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt9ZWxzZXt4PWRvY3VtZW50LmRv Y3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDt5PWRvY3VtZW50LmRvY3VtZW50RWxl bWVudC5jbGllbnRIZWlnaHQ7fX19aWYoKFNaTi5Ccm93c2VyLmtsaWVudD09InNh ZmFyaSIpfHwoU1pOLkJyb3dzZXIua2xpZW50PT0ia29ucXVlcm9yIikpe3k9d2lu ZG93LmlubmVySGVpZ2h0O31yZXR1cm4geyJ3aWR0aCI6eCwiaGVpZ2h0Ijp5fTt9 O1NaTi5Eb20uZ2V0Qm94UG9zaXRpb249ZnVuY3Rpb24ob2JqLHJlZil7dmFyIHRv cD0wO3ZhciBsZWZ0PTA7dmFyIHJlZkJveD1yZWZ8fGRvY3VtZW50LmJvZHk7d2hp bGUob2JqJiZvYmohPXJlZkJveCl7dG9wKz1vYmoub2Zmc2V0VG9wO2xlZnQrPW9i ai5vZmZzZXRMZWZ0O29iaj1vYmoub2Zmc2V0UGFyZW50O31yZXR1cm4geyJ0b3Ai OnRvcCwibGVmdCI6bGVmdH07fTtTWk4uRG9tLmdldEZ1bGxCb3hQb3NpdGlvbj1m dW5jdGlvbihvYmoscGFyZW50KXt2YXIgcG9zPVNaTi5Eb20uZ2V0Qm94UG9zaXRp b24ob2JqLHBhcmVudCk7dmFyIHNjcm9sbD1TWk4uRG9tLmdldEJveFNjcm9sbChv YmoscGFyZW50KTtyZXR1cm4geyJsZWZ0Ijpwb3MubGVmdC1zY3JvbGwueCwidG9w Ijpwb3MudG9wLXNjcm9sbC55fTt9O1NaTi5Eb20uZ2V0Qm94U2Nyb2xsPWZ1bmN0 aW9uKG9iaixyZWYpe3ZhciB4PTA7dmFyIHk9MDt2YXIgY3VyPW9iai5wYXJlbnRO b2RlO3ZhciBsaW1pdD1yZWZ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt3aGls ZSgxKXtpZihTWk4uQnJvd3Nlci5jbGllbnQ9PSJvcGVyYSImJlNaTi5Eb20uZ2V0 U3R5bGUoY3VyLCJkaXNwbGF5IikhPSJibG9jayIpe2N1cj1jdXIucGFyZW50Tm9k ZTtjb250aW51ZTt9aWYoU1pOLkJyb3dzZXIuY2xpZW50PT0ib3BlcmEiJiZjdXI9 PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7YnJlYWs7fXgrPWN1ci5zY3JvbGxM ZWZ0O3krPWN1ci5zY3JvbGxUb3A7aWYoY3VyPT1saW1pdCl7YnJlYWs7fWN1cj1j dXIucGFyZW50Tm9kZTtpZighY3VyKXticmVhazt9fXJldHVybiB7IngiOngsInki Onl9O307U1pOLkRvbS5nZXRTY3JvbGxQb3M9ZnVuY3Rpb24oKXtpZihkb2N1bWVu dC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQuc2Nyb2xsTGVmdCl7dmFyIG94PWRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5zY3JvbGxMZWZ0O3ZhciBveT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Ny b2xsVG9wO31lbHNle2lmKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfHxkb2N1bWVu dC5ib2R5LnNjcm9sbExlZnQpe3ZhciBveD1kb2N1bWVudC5ib2R5LnNjcm9sbExl ZnQ7dmFyIG95PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO31lbHNle3ZhciBveD0w O3ZhciBveT0wO319cmV0dXJuIHsieCI6b3gsInkiOm95fTt9O1NaTi5Eb20uZ2V0 U3R5bGU9ZnVuY3Rpb24oZWxtLHByb3BlcnR5KXtpZihkb2N1bWVudC5kZWZhdWx0 VmlldyYmZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSl7dmFy IGNzPWVsbS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5 bGUoZWxtLCIiKTtpZighY3Mpe3JldHVybiBmYWxzZTt9cmV0dXJuIGNzW3Byb3Bl cnR5XTt9ZWxzZXtyZXR1cm4gZWxtLmN1cnJlbnRTdHlsZVtwcm9wZXJ0eV07fX07 U1pOLkRvbS5zZXRTdHlsZT1mdW5jdGlvbihlbG0sc3R5bGUpe2ZvcihuYW1lIGlu IHN0eWxlKXtlbG0uc3R5bGVbbmFtZV09c3R5bGVbbmFtZV07fX07U1pOLkRvbS5l bGVtZW50c0hpZGVyPWZ1bmN0aW9uKG9iaixlbGVtZW50cyxhY3Rpb24pe3ZhciBl bGVtcz1lbGVtZW50cztpZighZWxlbXMpe2VsZW1zPVsic2VsZWN0Iiwib2JqZWN0 IiwiZW1iZWQiLCJpZnJhbWUiXTt9ZnVuY3Rpb24gdGVzdFBhcmVudChub2RlKXt2 YXIgb2s9ZmFsc2U7dmFyIGN1cj1ub2RlO3doaWxlKGN1ci5wYXJlbnROb2RlJiZj dXIhPWRvY3VtZW50KXtpZihjdXI9PW9iail7b2s9dHJ1ZTt9Y3VyPWN1ci5wYXJl bnROb2RlO31yZXR1cm4gb2s7fWlmKGFjdGlvbj09ImhpZGUiKXtpZih0eXBlb2Yg b2JqPT0ic3RyaW5nIil7dmFyIG9iaj1TWk4uZ0VsKG9iaik7fWVsc2V7dmFyIG9i aj1vYmo7fXZhciBib3g9dGhpcy5nZXRCb3hQb3NpdGlvbihvYmopO2JveC53aWR0 aD1vYmoub2Zmc2V0V2lkdGgrYm94LmxlZnQ7Ym94LmhlaWdodD1vYmoub2Zmc2V0 SGVpZ2h0K2JveC50b3A7Zm9yKHZhciBlPTA7ZTxlbGVtcy5sZW5ndGg7KytlKXt2 YXIgZWxtPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGVsZW1zW2VdKTtm b3IodmFyIGY9MDtmPGVsbS5sZW5ndGg7KytmKXt2YXIgbm9kZT10aGlzLmdldEJv eFBvc2l0aW9uKGVsbVtmXSk7aWYodGVzdFBhcmVudChlbG1bZl0pKXtjb250aW51 ZTt9bm9kZS53aWR0aD1lbG1bZl0ub2Zmc2V0V2lkdGgrbm9kZS5sZWZ0O25vZGUu aGVpZ2h0PWVsbVtmXS5vZmZzZXRIZWlnaHQrbm9kZS50b3A7aWYoISgoYm94Lmxl ZnQ+bm9kZS53aWR0aCl8fChib3gud2lkdGg8bm9kZS5sZWZ0KXx8KGJveC50b3A+ bm9kZS5oZWlnaHQpfHwoYm94LmhlaWdodDxub2RlLnRvcCkpKXtlbG1bZl0uc3R5 bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtlbG1bZl0ubXlQcm9wZXJ0eUhpZGU9dHJ1 ZTt9ZWxzZXtlbG1bZl0uc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSI7ZWxtW2Zd Lm15UHJvcGVydHlIaWRlPWZhbHNlO319fX1lbHNle2Zvcih2YXIgZT0wO2U8ZWxl bXMubGVuZ3RoOysrZSl7dmFyIGVsbT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn TmFtZShlbGVtc1tlXSk7Zm9yKHZhciBmPTA7ZjxlbG0ubGVuZ3RoOysrZil7aWYo dGVzdFBhcmVudChlbG1bZl0pKXtjb250aW51ZTt9aWYoZWxtW2ZdLm15UHJvcGVy dHlIaWRlKXtlbG1bZl0uc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSI7ZWxtW2Zd Lm15UHJvcGVydHlIaWRlPWZhbHNlO319fX19O1NaTi5Eb20uZ2V0RWxlbWVudHNC eUNsYXNzPWZ1bmN0aW9uKHNlYXJjaENsYXNzLG5vZGUsdGFnKXt2YXIgY2xhc3NF bGVtZW50cz1bXTt2YXIgbm9kZT1ub2RlfHxkb2N1bWVudDt2YXIgdGFnPXRhZ3x8 IioiO3ZhciBlbHM9bm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO3ZhciBl bHNMZW49ZWxzLmxlbmd0aDt2YXIgcGF0dGVybj1uZXcgUmVnRXhwKCIoXnxcXHMp IitzZWFyY2hDbGFzcysiKFxcc3wkKSIpO2Zvcih2YXIgaT0wLGo9MDtpPGVsc0xl bjtpKyspe2lmKHBhdHRlcm4udGVzdChlbHNbaV0uY2xhc3NOYW1lKSl7Y2xhc3NF bGVtZW50c1tqXT1lbHNbaV07aisrO319cmV0dXJuIGNsYXNzRWxlbWVudHM7fTtT Wk4uT2JqTGliPVNaTi5DbGFzc01ha2VyLm1ha2VDbGFzcyh7Ik5BTUUiOiJPYmpM aWIiLCJWRVJTSU9OIjoiMS4yIiwiQ0xBU1MiOiJjbGFzcyJ9KTtTWk4uT2JqTGli LnByb3RvdHlwZS5ERUVQPTIwMDtTWk4uT2JqTGliLnByb3RvdHlwZS4kY29uc3Ry dWN0b3I9ZnVuY3Rpb24oKXt0aGlzLmRlZXA9dGhpcy5ERUVQO3RoaXMuc2V0VW5k ZWZpbmVkSGFuZGxlcigpO307U1pOLk9iakxpYi5wcm90b3R5cGUuJGRlc3RydWN0 b3I9ZnVuY3Rpb24oKXt9O1NaTi5PYmpMaWIucHJvdG90eXBlLnNldERlZXA9ZnVu Y3Rpb24obnVtKXt0aGlzLmRlZXA9bnVtO307U1pOLk9iakxpYi5wcm90b3R5cGUu Z2V0RGVlcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZXA7fTtTWk4uT2JqTGli LnByb3RvdHlwZS5zZXRVbmRlZmluZWRIYW5kbGVyPWZ1bmN0aW9uKGhhbmRsZVR5 cGUpe3ZhciB0eXBlcz17InRocm93IjoxLCJub3RoaW5nIjoxLCJkZWYiOiJ0aHJv dyJ9O3RoaXMudW5kZWZIYW5kbGVyPXR5cGVzW2hhbmRsZVR5cGVdP2hhbmRsZVR5 cGU6dHlwZXNbImRlZiJdO307U1pOLk9iakxpYi5wcm90b3R5cGUuZ2V0VW5kZWZp bmVkSGFuZGxlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVuZGVmSGFuZGxlcjt9 O1NaTi5PYmpMaWIucHJvdG90eXBlLnByZXR0eT1mdW5jdGlvbihzdHIsc2VwKXt2 YXIgYXJyPXN0ci50b1N0cmluZygpLnNwbGl0KCIiKTt2YXIgbmV3bGluZT10aGlz Ll9pc0lFKCk/IlxuXHIiOiJcbiI7dmFyIHRhYj1zZXA/c2VwOiJcdCI7dmFyIHB0 cj0wO3ZhciBkZXB0aD0wO3ZhciBpblNwZWNpYWw9IiI7ZnVuY3Rpb24gY291bnRC YWNrc2xhc2hlcygpe3ZhciBjbnQ9MDt2YXIgcHRyMj1wdHItMTt3aGlsZShwdHIy Pj0wJiZhcnJbcHRyMl09PSJcXCIpe2NudCsrO3B0cjItLTt9cmV0dXJuIGNudDt9 d2hpbGUocHRyPGFyci5sZW5ndGgpe3ZhciBjaD1hcnJbcHRyXTtzd2l0Y2goY2gp e2Nhc2UgIlwiIjppZihpblNwZWNpYWw9PSJyZSIpe2JyZWFrO312YXIgbnVtPWNv dW50QmFja3NsYXNoZXMoKTtpZighKG51bSYxKSl7aW5TcGVjaWFsPShpblNwZWNp YWw/IiI6InN0ciIpO31icmVhaztjYXNlICIvIjppZihpblNwZWNpYWw9PSJzdHIi KXticmVhazt9dmFyIG51bT1jb3VudEJhY2tzbGFzaGVzKCk7aWYoIShudW0mMSkp e2luU3BlY2lhbD0oaW5TcGVjaWFsPyIiOiJyZSIpO31icmVhaztjYXNlICIsIjpp ZighaW5TcGVjaWFsKXthcnIuc3BsaWNlKCsrcHRyLDAsbmV3bGluZSk7Zm9yKHZh ciBpPTA7aTxkZXB0aDtpKyspe2Fyci5zcGxpY2UoKytwdHIsMCx0YWIpO319YnJl YWs7Y2FzZSAieyI6Y2FzZSAiWyI6aWYoIWluU3BlY2lhbCl7ZGVwdGgrKzthcnIu c3BsaWNlKCsrcHRyLDAsbmV3bGluZSk7Zm9yKHZhciBpPTA7aTxkZXB0aDtpKysp e2Fyci5zcGxpY2UoKytwdHIsMCx0YWIpO319YnJlYWs7Y2FzZSAifSI6Y2FzZSAi XSI6aWYoIWluU3BlY2lhbCl7YXJyLnNwbGljZShwdHIrKywwLG5ld2xpbmUpO2Rl cHRoLS07Zm9yKHZhciBpPTA7aTxkZXB0aDtpKyspe2Fyci5zcGxpY2UocHRyKyss MCx0YWIpO319YnJlYWs7fXB0cisrO31yZXR1cm4gYXJyLmpvaW4oIiIpO307U1pO Lk9iakxpYi5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKG9ialRvU291cmNl LHNob3dGbGFnKXt2YXIgZGVlcEZsYWc9MDt2YXIgc3RhcnRTdHJpbmc9InsiO3Zh ciBlbmRTdHJpbmc9In0iO3ZhciBwcm9wZXJ0eVNlcD0iOiI7dmFyIHByb3BlcnR5 RW5kPSIsIjt2YXIgbXlTZWxmPXRoaXM7dmFyIG91dHB1dD0iIjt2YXIgZmlyc3RT dGVwPXRydWU7dmFyIGNhY2hlPVtdO3ZhciBteVNvdXJjZT1mdW5jdGlvbihvYmop e2lmKG15U2VsZi5kZWVwJiYobXlTZWxmLmRlZXA8ZGVlcEZsYWcpKXt0aHJvdyBu ZXcgRXJyb3IoIlNlcmlhbGl6ZTogc3RydWN0dXJlIGlzIHNvIGRlZXAuIik7fWlm KGNhY2hlLmluZGV4T2Yob2JqKSE9LTEpe3Rocm93IG5ldyBFcnJvcigic2VyaWFs aXplOiBDaXJjdWxhciByZWZlcmVuY2UgZW5jb3VudGVyZWQiKTtyZXR1cm4gbnVs bDt9aWYodHlwZW9mIGFyZ3VtZW50c1sxXSE9InVuZGVmaW5lZCIpe3ZhciBwcm9w TmFtZT1hcmd1bWVudHNbMV07fWVsc2V7dmFyIHByb3BOYW1lPWZhbHNlO31pZigh KG9iaiBpbnN0YW5jZW9mIE9iamVjdCkpe3N3aXRjaCh0eXBlb2Ygb2JqKXtjYXNl ICJzdHJpbmciOnJldHVybiAiJyIrbXlTZWxmLl9mb3JtYXRTdHJpbmcob2JqKSsi JyI7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIjpzd2l0Y2gobXlTZWxmLnVuZGVmSGFu ZGxlcil7Y2FzZSAibm90aGluZyI6cmV0dXJuIG9iajticmVhaztkZWZhdWx0OnRo cm93IG5ldyBFcnJvcigic2VyaWFsaXplOiBwcm9wZXJ0eSAiKyhwcm9wTmFtZT9w cm9wTmFtZToib2JqIikrIiBpcyBub3QgZGVmaW5lZCEhIik7YnJlYWs7fWJyZWFr O2RlZmF1bHQ6cmV0dXJuIG9iajticmVhazt9fWVsc2V7Y2FjaGUucHVzaChvYmop O3ZhciBidWlsZEluPW15U2VsZi5fYnVpbGRJbk9iamVjdFNlcmlhbGl6ZShvYmop O2lmKGJ1aWxkSW4uaXNTZXQpe3JldHVybiBidWlsZEluLm91dHB1dDt9ZWxzZXtp Zih0eXBlb2Ygb2JqPT0iZnVuY3Rpb24oKSIpe3Rocm93IG5ldyBFcnJvcigiU2Vy aWFsaXplOiBjYW4ndCBzZXJpYWxpemUgb2JqZWN0IHdpdGggc29tZSBtZXRob2Qg LSAqKiAiKyhwcm9wTmFtZT8ib2JqIjpwcm9wTmFtZSkrIiAqKiIpO312YXIgb3V0 cHV0PXN0YXJ0U3RyaW5nO2RlZXBGbGFnKys7Zm9yKHZhciBpIGluIG9iail7Zm9y KHZhciBqIGluIG9ialtpXSl7aWYoail7dmFyIGlzRW1wdHk9ZmFsc2U7YnJlYWs7 fX12YXIgcHJvcE5hbWU9bXlTZWxmLl9mb3JtYXRTdHJpbmcoaSk7b3V0cHV0Kz0i JyIrcHJvcE5hbWUrIiciK3Byb3BlcnR5U2VwKyhpc0VtcHR5PyJ7fSI6bXlTb3Vy Y2Uob2JqW2ldLGkpKStwcm9wZXJ0eUVuZDt9dmFyIGNoYXJOdW09KG91dHB1dC5s YXN0SW5kZXhPZigiLCIpPj0wKT9vdXRwdXQubGFzdEluZGV4T2YoIiwiKTpvdXRw dXQubGVuZ3RoO291dHB1dD1vdXRwdXQuc3Vic3RyaW5nKDAsY2hhck51bSk7ZGVl cEZsYWctLTtyZXR1cm4gb3V0cHV0K2VuZFN0cmluZzt9fX07dmFyIHNvdXJjZT1t eVNvdXJjZShvYmpUb1NvdXJjZSk7aWYoc2hvd0ZsYWcpe3JldHVybiB0aGlzLnBy ZXR0eShzb3VyY2Usc2hvd0ZsYWcpO31lbHNle3JldHVybiBzb3VyY2U7fX07U1pO Lk9iakxpYi5wcm90b3R5cGUuYXJyYXlTZXJpYWxpemU9ZnVuY3Rpb24oZmllbGRU b1NlcmlhbGl6ZSl7dmFyIGZpZWxkU3RyPSIiO3ZhciBteVNlbGY9dGhpczt2YXIg bXlTb3VyY2U9ZnVuY3Rpb24oZmllbGQpe2lmKGZpZWxkIGluc3RhbmNlb2YgQXJy YXkpe2Zvcih2YXIgaT0wO2k8ZmllbGQubGVuZ3RoO2krKyl7aWYodHlwZW9mIGZp ZWxkW2ldPT0iZnVuY3Rpb24iJiYhKGZpZWxkW2ldIGluc3RhbmNlb2YgUmVnRXhw KSl7dGhyb3cgbmV3IEVycm9yKCJTZXJpYWxpemU6IGNhbid0IHNlcmlhbGl6ZSBG dW5jdGlvbiIpO31pZigodHlwZW9mIGZpZWxkW2ldIT0ib2JqZWN0IikmJigodHlw ZW9mIGZpZWxkW2ldIT0iZnVuY3Rpb24iKSkpe2lmKHR5cGVvZiBmaWVsZFtpXT09 InN0cmluZyIpe3ZhciBzdHI9bXlTZWxmLl9mb3JtYXRTdHJpbmcoZmllbGRbaV0p O2ZpZWxkU3RyKz0iJyIrc3RyKyInLCI7fWVsc2V7ZmllbGRTdHIrPWZpZWxkW2ld KyIsIjt9fWVsc2V7ZmllbGRTdHIrPW15U2VsZi5zZXJpYWxpemUoZmllbGRbaV0s MCkrIiwiO319cmV0dXJuICJbIitmaWVsZFN0ci5zdWJzdHJpbmcoMCxmaWVsZFN0 ci5sZW5ndGgtMSkrIl0iO31lbHNle3Rocm93IG5ldyBFcnJvcigiYXJyYXlTZXJp YWxpemU6IEF0dHJpYnV0ZSBpcyBub3QgQXJyYXkiKTt9fTt2YXIgbXlTdHJpbmc9 bXlTb3VyY2UoZmllbGRUb1NlcmlhbGl6ZSk7cmV0dXJuIG15U3RyaW5nO307U1pO Lk9iakxpYi5wcm90b3R5cGUudW5zZXJpYWxpemU9ZnVuY3Rpb24oc2VyaWFsaXpl ZFN0cmluZyl7ZXZhbCgidmFyIG5ld1Zhcj0iK3NlcmlhbGl6ZWRTdHJpbmcpO3Jl dHVybiBuZXdWYXI7fTtTWk4uT2JqTGliLnByb3RvdHlwZS5tYXRjaD1mdW5jdGlv bihyZWZPYmosbWF0Y2hPYmope2lmKHRoaXMuc2VyaWFsaXplKHJlZk9iaiwwKS5s ZW5ndGg9PXRoaXMuc2VyaWFsaXplKG1hdGNoT2JqLDApLmxlbmd0aCl7dmFyIHN0 ZXAxPXRoaXMuX21hdGNoUHJvY2VzcyhyZWZPYmosbWF0Y2hPYmopO3ZhciBzdGVw Mj10aGlzLl9tYXRjaFByb2Nlc3MobWF0Y2hPYmoscmVmT2JqKTtyZXR1cm4gKHN0 ZXAxJiZzdGVwMik7fWVsc2V7cmV0dXJuIGZhbHNlO319O1NaTi5PYmpMaWIucHJv dG90eXBlLl9tYXRjaFByb2Nlc3M9ZnVuY3Rpb24ocmVmT2JqLG1hdGNoT2JqKXt2 YXIgc3VjY2Vzcz10cnVlO3ZhciBteVNlbGY9dGhpczt2YXIgZmlyc3RTdGVwPXRy dWU7dmFyIG15TWF0Y2g9ZnVuY3Rpb24ob2JqMSxvYmoyKXtpZihmaXJzdFN0ZXAp e3ZhciBidWlsZEluPW15U2VsZi5fbWF0Y2hCdWlsZEluT2JqKG9iajEsb2JqMik7 aWYoKGJ1aWxkSW4uaXNTZXQpJiYoIWJ1aWxkSW4uc3VjY2Vzcykpe3N1Y2Nlc3M9 ZmFsc2U7cmV0dXJuIGZhbHNlO31maXJzdFN0ZXA9ZmFsc2U7fWZvcih2YXIgaSBp biBvYmoxKXtpZigoKHR5cGVvZiBvYmoxW2ldIT11bmRlZmluZWQpJiYodHlwZW9m IG9iajJbaV0hPXVuZGVmaW5lZCkpfHwoKHR5cGVvZiBvYmoxW2ldPT11bmRlZmlu ZWQpJiYodHlwZW9mIG9iajJbaV09PXVuZGVmaW5lZCkpKXtpZigodHlwZW9mIG9i ajFbaV0hPSJvYmplY3QiKSYmKHR5cGVvZiBvYmoxW2ldIT0iZnVuY3Rpb24iKSl7 aWYob2JqMVtpXSE9b2JqMltpXSl7c3VjY2Vzcz1mYWxzZTtyZXR1cm4gc3VjY2Vz czt9ZWxzZXtzdWNjZXM9c3VjY2Vzczt9fWVsc2V7dmFyIGJ1aWxkSW49bXlTZWxm Ll9tYXRjaEJ1aWxkSW5PYmoob2JqMSxvYmoyKTtpZihidWlsZEluLmlzU2V0KXtp ZighYnVpbGRJbi5zdWNjZXNzKXtzdWNjZXNzPWZhbHNlO3JldHVybiBmYWxzZTt9 fWVsc2V7c3VjY2Vzcz1teU1hdGNoKG9iajFbaV0sb2JqMltpXSk7fX19ZWxzZXtz dWNjZXNzPWZhbHNlO3JldHVybiBzdWNjZXNzO319cmV0dXJuIHN1Y2Nlc3M7fTtz dWNjZXNzPW15TWF0Y2gocmVmT2JqLG1hdGNoT2JqKTtyZXR1cm4gc3VjY2Vzczt9 O1NaTi5PYmpMaWIucHJvdG90eXBlLl9tYXRjaEJ1aWxkSW5PYmo9ZnVuY3Rpb24o cmVmT2JqLG1hdGNoT2JqKXt2YXIgb2JqRmllbGQ9WyJTdHJpbmciLCJOdW1iZXIi LCJSZWdFeHAiLCJEYXRlIiwiQm9vbGVhbiJdO3ZhciBzdWNjZXNzPWZhbHNlO3Zh ciBpc1NldD1mYWxzZTtmb3IodmFyIGk9MDtpPG9iakZpZWxkLmxlbmd0aDtpKysp e2lmKChyZWZPYmogaW5zdGFuY2VvZiB3aW5kb3dbb2JqRmllbGRbaV1dKSYmKG1h dGNoT2JqIGluc3RhbmNlb2Ygd2luZG93W29iakZpZWxkW2ldXSkpe2lzU2V0PXRy dWU7aWYoKHRoaXMuc2VyaWFsaXplKHJlZk9iaiwwKSk9PSh0aGlzLnNlcmlhbGl6 ZShtYXRjaE9iaiwwKSkpe3N1Y2Nlc3M9dHJ1ZTt9fX1yZXR1cm4geyJpc1NldCI6 aXNTZXQsInN1Y2Nlc3MiOnN1Y2Nlc3N9O307U1pOLk9iakxpYi5wcm90b3R5cGUu X2J1aWxkSW5PYmplY3RTZXJpYWxpemU9ZnVuY3Rpb24odGVzdGVkT2JqKXt2YXIg b3V0cHV0PW51bGw7dmFyIGlzU2V0PWZhbHNlO2lmKHRlc3RlZE9iaiBpbnN0YW5j ZW9mIFN0cmluZyl7b3V0cHV0PSJuZXcgU3RyaW5nKFwiIit0aGlzLl9mb3JtYXRT dHJpbmcodGVzdGVkT2JqKSsiXCIpIjtpc1NldD10cnVlO31lbHNle2lmKHRlc3Rl ZE9iaiBpbnN0YW5jZW9mIE51bWJlcil7b3V0cHV0PSJuZXcgTnVtYmVyKCIrdGVz dGVkT2JqKyIpIjtpc1NldD10cnVlO31lbHNle2lmKHRlc3RlZE9iaiBpbnN0YW5j ZW9mIFJlZ0V4cCl7b3V0cHV0PSJuZXcgUmVnRXhwKCIrdGVzdGVkT2JqKyIpIjtp c1NldD10cnVlO31lbHNle2lmKHRlc3RlZE9iaiBpbnN0YW5jZW9mIEFycmF5KXtv dXRwdXQ9dGhpcy5hcnJheVNlcmlhbGl6ZSh0ZXN0ZWRPYmopO2lzU2V0PXRydWU7 fWVsc2V7aWYodGVzdGVkT2JqIGluc3RhbmNlb2YgRGF0ZSl7dmFyIHRtPXRlc3Rl ZE9iai5nZXRUaW1lKCk7b3V0cHV0PSJuZXcgRGF0ZSgiK3RtKyIpIjtpc1NldD10 cnVlO31lbHNle2lmKHRlc3RlZE9iaiBpbnN0YW5jZW9mIEJvb2xlYW4pe291dHB1 dD0ibmV3IEJvb2xlYW4oIit0ZXN0ZWRPYmorIikiO2lzU2V0PXRydWU7fWVsc2V7 aWYodGVzdGVkT2JqPT1udWxsKXtpc1NldD10cnVlO319fX19fX1yZXR1cm4geyJp c1NldCI6aXNTZXQsIm91dHB1dCI6b3V0cHV0fTt9O1NaTi5PYmpMaWIucHJvdG90 eXBlLl9pc0lFPWZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuYWxsJiZkb2N1bWVudC5h dHRhY2hFdmVudCYmIXdpbmRvdy5vcGVyYSl7cmV0dXJuIHRydWU7fXJldHVybiBm YWxzZTt9O1NaTi5PYmpMaWIucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24ob2JqVG9D b3B5KXt2YXIgc3RyPXRoaXMuc2VyaWFsaXplKG9ialRvQ29weSk7cmV0dXJuIHRo aXMudW5zZXJpYWxpemUoc3RyKTt9O1NaTi5PYmpMaWIucHJvdG90eXBlLl9mb3Jt YXRTdHJpbmc9ZnVuY3Rpb24ocyl7dmFyIHJlPS9bIlxcJ10vZzt2YXIgcmUyPS9b XG5cclx0XS9nO3ZhciByZXBsYWNlPXsiXG4iOiJcXG4iLCJcdCI6IlxcdCIsIlxy IjoiXFxyIn07cmV0dXJuIHMucmVwbGFjZShyZSx0aGlzLl9hZGRTbGFzaGVzKS5y ZXBsYWNlKHJlMixmdW5jdGlvbihjaCl7cmV0dXJuIHJlcGxhY2VbY2hdO30pO30s U1pOLk9iakxpYi5wcm90b3R5cGUuX2FkZFNsYXNoZXM9ZnVuY3Rpb24oY2gpe3Jl dHVybiAiXFwiK2NoO307U1pOLk9iakxpYi5wcm90b3R5cGUuYXJyYXlDb3B5PWZ1 bmN0aW9uKGFycmF5VG9Db3B5KXtpZihmaWVsZCBpbnN0YW5jZW9mIEFycmF5KXt2 YXIgb3V0PXRoaXMuYXJyYXlTZXJpYWxpemUoYXJyYXlUb0NvcHkpO3JldHVybiB0 aGlzLnVuc2VyaWFsaXplKG91dCk7fWVsc2V7dGhyb3cgbmV3IEVycm9yKCJPYmpD b3B5LmFycmF5Q29weTogQXR0cmlidXRlIGlzIG5vdCBBcnJheSIpO319O1NaTi5P YmpDb3B5PVNaTi5DbGFzc01ha2VyLm1ha2VDbGFzcyh7Ik5BTUUiOiJPYmpDb3B5 IiwiVkVSU0lPTiI6IjEuMSIsIkNMQVNTIjoiY2xhc3MiLCJFWFRFTkQiOlNaTi5P YmpMaWJ9KTtTWk4uT2JqQ29weS5wcm90b3R5cGUuJGNvbnN0cnVjdG9yPWZ1bmN0 aW9uKCl7dGhpcy5jYWxsU3VwZXIoIiRjb25zdHJ1Y3RvciIsYXJndW1lbnRzLmNh bGxlZSkoKTt9O1NaTi5IVFRQUmVxdWVzdD1TWk4uQ2xhc3NNYWtlci5tYWtlQ2xh c3MoeyJOQU1FIjoiSFRUUFJlcXVlc3QiLCJWRVJTSU9OIjoiMS4wIiwiQ0xBU1Mi OiJjbGFzcyJ9KTtTWk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLiRjb25zdHJ1Y3Rv cj1mdW5jdGlvbih1cmwsY2FsbEJhY2tPYmosY2FsbEJhY2tGdW5jKXt0aGlzLmRh dGE9bmV3IE9iamVjdCgpO3RoaXMudXJsPXVybD91cmw6IiI7dGhpcy5jYWxsQmFj a09iaj1jYWxsQmFja09iajt0aGlzLmNhbGxCYWNrRnVuYz1jYWxsQmFja0Z1bmM7 dGhpcy5zZXRGb3JtYXQoKTt0aGlzLnNldE1vZGUoKTt0aGlzLnNldE1ldGhvZCgp O3RoaXMuc2V0UG9zdERhdGEoKTt0aGlzLnNldEhlYWRlcnMoKTt9O1NaTi5IVFRQ UmVxdWVzdC5TZXR0aW5nPWZ1bmN0aW9uKHVybCxtZXRob2QscG9zdERhdGEsaGVh ZGVycyxtb2RlLGZvcm1hdCl7dGhpcy51cmw9dXJsP3VybDoiIjt0aGlzLm1ldGhv ZD1tZXRob2Q/bWV0aG9kOiIiO3RoaXMubW9kZT1tb2RlP21vZGU6IiI7dGhpcy5m b3JtYXQ9Zm9ybWF0P2Zvcm1hdDoiIjt0aGlzLmhlYWRlcnM9aGVhZGVycz9oZWFk ZXJzOiIiO3RoaXMucG9zdERhdGE9cG9zdERhdGE/cG9zdERhdGE6IiI7fTtTWk4u SFRUUFJlcXVlc3QucHJvdG90eXBlLk1FVEhPRD17InBvc3QiOiJwb3N0IiwiZ2V0 IjoiZ2V0IiwiZGVmIjoiZ2V0In07U1pOLkhUVFBSZXF1ZXN0LnByb3RvdHlwZS5G T1JNQVQ9eyJ4bWwiOiJ4bWwiLCJ0eHQiOiJ0eHQiLCJkZWYiOiJ0eHQifTtTWk4u SFRUUFJlcXVlc3QucHJvdG90eXBlLk1PREU9eyJhc3luYyI6dHJ1ZSwic3luYyI6 ZmFsc2UsImRlZiI6dHJ1ZX07U1pOLkhUVFBSZXF1ZXN0LnByb3RvdHlwZS5IRUFE RVI9W3sidHlwIjoiQ29udGVudC1UeXBlIiwiY29udGVudCI6ImFwcGxpY2F0aW9u L3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9XTtTWk4uSFRUUFJlcXVlc3QucHJvdG90 eXBlLmRlc3RydWN0b3I9ZnVuY3Rpb24oKXtmb3IodmFyIGkgaW4gdGhpcyl7dGhp c1tpXT1udWxsO319O1NaTi5IVFRQUmVxdWVzdC5wcm90b3R5cGUuaW5pdD1mdW5j dGlvbigpe307U1pOLkhUVFBSZXF1ZXN0LnByb3RvdHlwZS5zZXRNZXRob2Q9ZnVu Y3Rpb24obWV0aG9kKXt0aGlzLmRhdGEubWV0aG9kPXRoaXMuX2dldE1ldGhvZCht ZXRob2QpO307U1pOLkhUVFBSZXF1ZXN0LnByb3RvdHlwZS5zZXRNb2RlPWZ1bmN0 aW9uKG1vZGUpe3RoaXMuZGF0YS5tb2RlPXRoaXMuX2dldE1vZGUobW9kZSk7fTtT Wk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLnNldEZvcm1hdD1mdW5jdGlvbihmb3Jt YXQpe3RoaXMuZGF0YS5mb3JtYXQ9dGhpcy5fZ2V0Rm9ybWF0KGZvcm1hdCk7fTtT Wk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLnNldEhlYWRlcnM9ZnVuY3Rpb24oaGVh ZGVycyl7dGhpcy5kYXRhLmhlYWRlcnM9dGhpcy5fc2V0SGVhZGVycyhoZWFkZXJz KTt9O1NaTi5IVFRQUmVxdWVzdC5wcm90b3R5cGUuc2V0UG9zdERhdGE9ZnVuY3Rp b24oZGF0YSl7dGhpcy5kYXRhLnBvc3REYXRhPWRhdGE/ZGF0YToiIjt9O1NaTi5I VFRQUmVxdWVzdC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih1cmwsb2JqLG1ldGhv ZCxyZXF1ZXN0RGF0YSxyZXR1cm5Pbmx5KXt2YXIgbXlTZWxmPXRoaXM7dmFyIHBh cmFtPXJlcXVlc3REYXRhP3JlcXVlc3REYXRhOnt9O3ZhciBkYXRhPXRoaXMuX3Nl dEZyb21EYXRhKHVybCxvYmosbWV0aG9kLHBhcmFtKTt2YXIgWEhSPXRoaXMuX2dl dFJlcXVlc3QoKTt0cnl7WEhSLm9wZW4oZGF0YS5tZXRob2QsZGF0YS51cmwsZGF0 YS5tb2RlKTt9Y2F0Y2goZSl7cmV0dXJuIDA7fWZvcih2YXIgaT0wO2k8ZGF0YS5o ZWFkZXJzLmxlbmd0aDtpKyspe1hIUi5zZXRSZXF1ZXN0SGVhZGVyKGRhdGEuaGVh ZGVyc1tpXS50eXAsZGF0YS5oZWFkZXJzW2ldLmNvbnRlbnQpO31pZihkYXRhLm1v ZGUpe2Z1bmN0aW9uIHN0YXRlQ2hhbmdlRnVuY3Rpb24oKXtpZihYSFIucmVhZHlT dGF0ZT09NCl7aWYoZGF0YS5mb3JtYXQ9PSJ4bWwiKXt2YXIgb3V0PVhIUi5yZXNw b25zZVhNTDt9ZWxzZXtpZihkYXRhLmZvcm1hdD09InR4dCIpe3ZhciBvdXQ9WEhS LnJlc3BvbnNlVGV4dDt9fWRhdGEuY2FsbEJhY2tPYmpbZGF0YS5jYWxsQmFja0Z1 bmNdKG91dCxYSFIuc3RhdHVzKTtYSFI9bnVsbDt9fVhIUi5vbnJlYWR5c3RhdGVj aGFuZ2U9c3RhdGVDaGFuZ2VGdW5jdGlvbjt9aWYoZGF0YS5tZXRob2Q9PXRoaXMu TUVUSE9EWyJwb3N0Il0pe2lmKHR5cGVvZiBkYXRhLnBvc3REYXRhIT0idW5kZWZp bmVkIil7WEhSLnNlbmQoZGF0YS5wb3N0RGF0YSk7fWVsc2V7cmV0dXJuIDA7fX1l bHNle1hIUi5zZW5kKG51bGwpO31pZighZGF0YS5tb2RlKXtpZihkYXRhLmZvcm1h dD09InhtbCIpe3ZhciBvdXQ9WEhSLnJlc3BvbnNlWE1MO31lbHNle3ZhciBvdXQ9 WEhSLnJlc3BvbnNlVGV4dDt9aWYocmV0dXJuT25seSl7cmV0dXJuIHsic3RhdHVz IjpYSFIuc3RhdHVzLCJkYXRhIjpvdXR9O31lbHNle2RhdGEuY2FsbEJhY2tPYmpb ZGF0YS5jYWxsQmFja0Z1bmNdKG91dCxYSFIuc3RhdHVzKTt9fWVsc2V7cmV0dXJu IFhIUjt9fTtTWk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLmFib3J0PWZ1bmN0aW9u KFhIUil7aWYodHlwZW9mIFhIUj09Im9iamVjdCIpe1hIUi5hYm9ydCgpO31lbHNl e3JldHVybiAwO319O1NaTi5IVFRQUmVxdWVzdC5wcm90b3R5cGUuX2dldE1ldGhv ZD1mdW5jdGlvbihtZXRob2Qpe3JldHVybiAodHlwZW9mIHRoaXMuTUVUSE9EW21l dGhvZF0hPSJ1bmRlZmluZWQiKT90aGlzLk1FVEhPRFttZXRob2RdOnRoaXMuTUVU SE9EWyJkZWYiXTt9O1NaTi5IVFRQUmVxdWVzdC5wcm90b3R5cGUuX2dldE1vZGU9 ZnVuY3Rpb24obW9kZSl7cmV0dXJuICh0eXBlb2YgdGhpcy5NT0RFW21vZGVdIT0i dW5kZWZpbmVkIik/dGhpcy5NT0RFW21vZGVdOnRoaXMuTU9ERVsiZGVmIl07fTtT Wk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLl9nZXRGb3JtYXQ9ZnVuY3Rpb24oZm9y bWF0KXtyZXR1cm4gKHR5cGVvZiB0aGlzLkZPUk1BVFtmb3JtYXRdIT0idW5kZWZp bmVkIik/dGhpcy5GT1JNQVRbZm9ybWF0XTp0aGlzLkZPUk1BVFsiZGVmIl07fTtT Wk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLl9zZXRIZWFkZXJzPWZ1bmN0aW9uKGhl YWRlcnMpe3ZhciBoZWFkZXJzPShoZWFkZXJzIGluc3RhbmNlb2YgQXJyYXkpP2hl YWRlcnM6bmV3IEFycmF5KCk7dmFyIG91dD1uZXcgQXJyYXkoKTt2YXIgc2V0Q29u dGVudD1mYWxzZTtmb3IodmFyIGk9MDtpPGhlYWRlcnMubGVuZ3RoO2krKyl7aWYo aGVhZGVyc1tpXS50eXA9PSJDb250ZW50LVR5cGUiKXtzZXRDb250ZW50PXRydWU7 fW91dFtpXT17InR5cCI6aGVhZGVyc1tpXS50eXAsImNvbnRlbnQiOmhlYWRlcnNb aV0uY29udGVudH07fWlmKCFzZXRDb250ZW50KXtvdXQucHVzaCh7InR5cCI6dGhp cy5IRUFERVJbMF0udHlwLCJjb250ZW50Ijp0aGlzLkhFQURFUlswXS5jb250ZW50 fSk7fXJldHVybiBvdXQ7fTtTWk4uSFRUUFJlcXVlc3QucHJvdG90eXBlLl9zZXRG cm9tRGF0YT1mdW5jdGlvbih1cmwsb2JqLGZ1bmMsc2V0dGluZyl7dmFyIGRhdGE9 bmV3IE9iamVjdCgpO2Zvcih2YXIgaSBpbiB0aGlzLmRhdGEpe3N3aXRjaChpKXtj YXNlICJtZXRob2QiOmlmKHNldHRpbmdbaV0pe2RhdGFbaV09dGhpcy5fZ2V0TWV0 aG9kKHNldHRpbmdbaV0pO31lbHNle2RhdGFbaV09dGhpcy5kYXRhW2ldO31icmVh aztjYXNlICJmb3JtYXQiOmlmKHNldHRpbmdbaV0pe2RhdGFbaV09dGhpcy5fZ2V0 Rm9ybWF0KHNldHRpbmdbaV0pO31lbHNle2RhdGFbaV09dGhpcy5kYXRhW2ldO31i cmVhaztjYXNlICJtb2RlIjppZihzZXR0aW5nW2ldKXtkYXRhW2ldPXRoaXMuX2dl dE1vZGUoc2V0dGluZ1tpXSk7fWVsc2V7ZGF0YVtpXT10aGlzLmRhdGFbaV07fWJy ZWFrO2Nhc2UgImhlYWRlcnMiOmlmKHNldHRpbmdbaV0pe2RhdGEuaGVhZGVycz10 aGlzLl9zZXRIZWFkZXJzKHNldHRpbmdbaV0pO31lbHNle2RhdGEuaGVhZGVycz10 aGlzLl9zZXRIZWFkZXJzKHRoaXMuZGF0YVtpXSk7fWJyZWFrO2RlZmF1bHQ6aWYo c2V0dGluZ1tpXSl7ZGF0YVtpXT1zZXR0aW5nW2ldO31lbHNle2RhdGFbaV09dGhp cy5kYXRhW2ldO31icmVhazt9fWRhdGEudXJsPXVybD91cmw6dGhpcy51cmw7ZGF0 YS5jYWxsQmFja09iaj1vYmo/b2JqOnRoaXMuY2FsbEJhY2tPYmo7ZGF0YS5jYWxs QmFja0Z1bmM9ZnVuYz9mdW5jOnRoaXMuY2FsbEJhY2tGdW5jO3JldHVybiBkYXRh O307U1pOLkhUVFBSZXF1ZXN0LnByb3RvdHlwZS5fZ2V0UmVxdWVzdD1mdW5jdGlv bigpe2lmKHR5cGVvZiAoWE1MSHR0cFJlcXVlc3QpIT0idW5kZWZpbmVkIil7cmV0 dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO31lbHNle3RyeXtyZXR1cm4gbmV3IEFj dGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7fWNhdGNoKGUpe3RyeXtyZXR1 cm4gbmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik7fWNhdGNo KGUpe3JldHVybiAwO319fX07U1pOLlNpZ25hbHM9U1pOLkNsYXNzTWFrZXIubWFr ZUNsYXNzKHsiTkFNRSI6IlNpZ25hbHMiLCJWRVJTSU9OIjoiMS4yIiwiQ0xBU1Mi OiJjbGFzcyJ9KTtTWk4uU2lnbmFscy5wcm90b3R5cGUuJGNvbnN0cnVjdG9yPWZ1 bmN0aW9uKG93bmVyLG5hbWUpe3RoaXMuX293bmVyPW93bmVyO3RoaXMuX25hbWU9 bmFtZTt0aGlzLm1lc3NhZ2VGb2xkZXI9e307dGhpcy5teUV2ZW50Rm9sZGVyPXt9 O3RoaXMubXlIYW5kbGVGb2xkZXI9e307dGhpcy5hcGlIYW5kbGVyPW51bGw7fTtT Wk4uU2lnbmFscy5wcm90b3R5cGUuJGRlc3RydWN0b3I9ZnVuY3Rpb24oKXt9O1Na Ti5TaWduYWxzLnByb3RvdHlwZS5zZXRBcGlIYW5kbGVyPWZ1bmN0aW9uKGhhbmRs ZXIpe3RoaXMuYXBpSGFuZGxlcj1oYW5kbGVyO307U1pOLlNpZ25hbHMucHJvdG90 eXBlLnNldE1lc3NhZ2U9ZnVuY3Rpb24obXNnTmFtZSxtc2dWYWx1ZSl7dGhpcy5t ZXNzYWdlRm9sZGVyW21zZ05hbWVdPW1zZ1ZhbHVlO307U1pOLlNpZ25hbHMucHJv dG90eXBlLmdldE1lc3NhZ2U9ZnVuY3Rpb24obXNnTmFtZSl7cmV0dXJuIHRoaXMu bWVzc2FnZUZvbGRlclttc2dOYW1lXTt9O1NaTi5TaWduYWxzLnByb3RvdHlwZS5h ZGRMaXN0ZW5lcj1mdW5jdGlvbihvd25lcix0eXBlLGZ1bmNPclN0cmluZyxzZW5k ZXIpe2lmKCEodHlwZSBpbiB0aGlzLm15SGFuZGxlRm9sZGVyKSl7dGhpcy5teUhh bmRsZUZvbGRlclt0eXBlXT17fTt9Zm9yKHZhciBwIGluIHRoaXMubXlIYW5kbGVG b2xkZXJbdHlwZV0pe3ZhciBpdGVtPXRoaXMubXlIYW5kbGVGb2xkZXJbdHlwZV1b cF07aWYoKGl0ZW0uZUZ1bmN0aW9uPT1mdW5jT3JTdHJpbmcpJiYoaXRlbS5lT3du ZXI9PW93bmVyKSYmKGl0ZW0uZVNlbmRlcj09c2VuZGVyKSl7cmV0dXJuIDE7fX12 YXIgaWRzPVNaTi5pZEdlbmVyYXRvcigpO3RoaXMubXlIYW5kbGVGb2xkZXJbdHlw ZV1baWRzXT17ImVPd25lciI6b3duZXIsImVGdW5jdGlvbiI6ZnVuY09yU3RyaW5n LCJlU2VuZGVyIjpzZW5kZXJ9O3JldHVybiAwO307U1pOLlNpZ25hbHMucHJvdG90 eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKG93bmVyLHR5cGUsZnVuY09yU3Ry aW5nLHNlbmRlcil7dmFyIHJlbW92ZWQ9MTtmb3IodmFyIHAgaW4gdGhpcy5teUhh bmRsZUZvbGRlclt0eXBlXSl7dmFyIGl0ZW09dGhpcy5teUhhbmRsZUZvbGRlclt0 eXBlXVtwXTtpZigoaXRlbS5lRnVuY3Rpb249PWZ1bmNPclN0cmluZykmJihpdGVt LmVPd25lcj09b3duZXIpJiYoaXRlbS5lU2VuZGVyPT1zZW5kZXIpKXtpdGVtPW51 bGw7ZGVsZXRlICh0aGlzLm15SGFuZGxlRm9sZGVyW3R5cGVdW3BdKTtyZW1vdmVk PTA7fX1yZXR1cm4gcmVtb3ZlZDt9O1NaTi5TaWduYWxzLnByb3RvdHlwZS5tYWtl RXZlbnQ9ZnVuY3Rpb24odHlwZSx0cmcsYWNjZXNzVHlwZSx0aW1lc3RhbXApe3Zh ciBpZHM9U1pOLmlkR2VuZXJhdG9yKCk7dGhpcy5teUV2ZW50Rm9sZGVyWyJlLSIr aWRzXT1uZXcgdGhpcy5OZXdFdmVudCh0eXBlLHRyZyxhY2Nlc3NUeXBlLHRpbWVz dGFtcCxpZHMpO3RoaXMubXlFdmVudEhhbmRsZXIodGhpcy5teUV2ZW50Rm9sZGVy WyJlLSIraWRzXSk7fTtTWk4uU2lnbmFscy5wcm90b3R5cGUuTmV3RXZlbnQ9ZnVu Y3Rpb24odHlwZSx0cmcsYWNjZXNzLHRpbWUsaWRzKXt0aGlzLnR5cGU9dHlwZTt0 aGlzLnRhcmdldD10cmc7dGhpcy5hY2Nlc3NUeXBlPWFjY2Vzczt0aGlzLnRpbWVT dGFtcD10aW1lO3RoaXMuX2lkPWlkczt9O1NaTi5TaWduYWxzLnByb3RvdHlwZS5t eUV2ZW50SGFuZGxlcj1mdW5jdGlvbihteUV2ZW50KXt2YXIgZnVuY3Rpb25DYWNo ZT1bXTtmb3IodmFyIHR5cGUgaW4gdGhpcy5teUhhbmRsZUZvbGRlcil7aWYodHlw ZT09bXlFdmVudC50eXBlKXtmb3IodmFyIHAgaW4gdGhpcy5teUhhbmRsZUZvbGRl clt0eXBlXSl7dmFyIGl0ZW09dGhpcy5teUhhbmRsZUZvbGRlclt0eXBlXVtwXTtp ZighaXRlbS5lU2VuZGVyfHxpdGVtLmVTZW5kZXI9PW15RXZlbnQudGFyZ2V0KXtm dW5jdGlvbkNhY2hlLnB1c2goaXRlbSk7fX19fWZvcih2YXIgaT0wO2k8ZnVuY3Rp b25DYWNoZS5sZW5ndGg7aSsrKXt2YXIgaXRlbT1mdW5jdGlvbkNhY2hlW2ldO3Zh ciBvd25lcj1pdGVtLmVPd25lcjt2YXIgZm5jPWl0ZW0uZUZ1bmN0aW9uO2lmKHR5 cGVvZiBmbmM9PSJzdHJpbmciKXtvd25lcltmbmNdKG15RXZlbnQpO31lbHNle2lm KHR5cGVvZiBmbmM9PSJmdW5jdGlvbiIpe2ZuYyhteUV2ZW50KTt9fX1pZigobXlF dmVudC5hY2Nlc3NUeXBlPT0icHVibGljIikmJih0aGlzLmFwaUhhbmRsZXIhPW51 bGwpJiYobXlFdmVudC5fb3duZXIhPSJhcGkiKSl7dGhpcy5hcGlIYW5kbGVyLl9h cGlFdmVudEhhbmRsZXIobXlFdmVudCk7fXRoaXMuZGVzdHJveUV2ZW50KG15RXZl bnQuX2lkKTt9O1NaTi5TaWduYWxzLnByb3RvdHlwZS5kZXN0cm95RXZlbnQ9ZnVu Y3Rpb24oaWRzKXt0aGlzLm15RXZlbnRGb2xkZXJbImUtIitpZHNdPW51bGw7ZGVs ZXRlICh0aGlzLm15RXZlbnRGb2xkZXJbImUtIitpZHNdKTt9O1NaTi5zaWduYWxz PW5ldyBTWk4uU2lnbmFscygpO1NaTi5TaWdJbnRlcmZhY2U9U1pOLkNsYXNzTWFr ZXIubWFrZUNsYXNzKHsiTkFNRSI6IlNpZ0ludGVyZmFjZSIsIlZFUlNJT04iOiIx LjIiLCJDTEFTUyI6ImNsYXNzIn0pO1NaTi5TaWdJbnRlcmZhY2UucHJvdG90eXBl LnNldEludGVyZmFjZT1mdW5jdGlvbihpbnRlcmZhY2VOYW1lKXtpZih0eXBlb2Yg KHRoaXNbaW50ZXJmYWNlTmFtZV0pIT0ib2JqZWN0Iil7dmFyIG93bmVyPXRoaXMu X293bmVyO3doaWxlKHR5cGVvZiAob3duZXJbaW50ZXJmYWNlTmFtZV0pPT0idW5k ZWZpbmVkIil7aWYodHlwZW9mIG93bmVyLlRPUF9MRVZFTCE9InVuZGVmaW5lZCIp e3Rocm93IG5ldyBFcnJvcigiU2V0SW50ZXJmYWNlOkludGVyZmFjZSBub3QgZm91 bmQiKTt9ZWxzZXtvd25lcj1vd25lci5fb3duZXI7fX1yZXR1cm4gb3duZXJbaW50 ZXJmYWNlTmFtZV07fX07U1pOLlNpZ0ludGVyZmFjZS5wcm90b3R5cGUuYWRkTGlz dGVuZXI9ZnVuY3Rpb24odHlwZSxoYW5kbGVGdW5jdGlvbixzZW5kZXIpe3JldHVy biB0aGlzLmdldEludGVyZmFjZSgpLmFkZExpc3RlbmVyKHRoaXMsdHlwZSxoYW5k bGVGdW5jdGlvbixzZW5kZXIpO307U1pOLlNpZ0ludGVyZmFjZS5wcm90b3R5cGUu cmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odHlwZSxoYW5kbGVGdW5jdGlvbixzZW5k ZXIpe3RoaXMuZ2V0SW50ZXJmYWNlKCkucmVtb3ZlTGlzdGVuZXIodGhpcyx0eXBl LGhhbmRsZUZ1bmN0aW9uLHNlbmRlcik7fTtTWk4uU2lnSW50ZXJmYWNlLnByb3Rv dHlwZS5tYWtlRXZlbnQ9ZnVuY3Rpb24odHlwZSxhY2Nlc3NUeXBlKXt2YXIgdGlt ZT1uZXcgRGF0ZSgpLmdldFRpbWUoKTt0aGlzLmdldEludGVyZmFjZSgpLm1ha2VF dmVudCh0eXBlLHRoaXMsYWNjZXNzVHlwZSx0aW1lKTt9O1NaTi5TaWdJbnRlcmZh Y2UucHJvdG90eXBlLnNldFN5c01lc3NhZ2U9ZnVuY3Rpb24obXNnTmFtZSxtc2dW YWx1ZSl7dGhpcy5nZXRJbnRlcmZhY2UoKS5zZXRNZXNzYWdlKG1zZ05hbWUsbXNn VmFsdWUpO307U1pOLlNpZ0ludGVyZmFjZS5wcm90b3R5cGUuZ2V0U3lzTWVzc2Fn ZT1mdW5jdGlvbihtc2dOYW1lKXtyZXR1cm4gdGhpcy5nZXRJbnRlcmZhY2UoKS5n ZXRNZXNzYWdlKG1zZ05hbWUpO307U1pOLlNpZ0ludGVyZmFjZS5wcm90b3R5cGUu Z2V0SW50ZXJmYWNlPWZ1bmN0aW9uKCl7cmV0dXJuICh0eXBlb2YgKHRoaXMuc2ln bmFscyk9PSJvYmplY3QiP3RoaXMuc2lnbmFsczpTWk4uc2lnbmFscyk7fTt9Cg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=jak_calendar_cp1250.js Content-Type: application/x-javascript; charset=windows-1250; name=jak_calendar_cp1250.js Content-Location: http://martanek.net/admin/admin_templates/jak/jak_calendar_cp1250.js Content-Transfer-Encoding: Base64 LyoNCkxpY2VuY2924W5vIHBvZCBNSVQgTGljZW5j7Q0KDQqpIDIwMDggU2V6bmFt LmN6LCBhLnMuDQoNClTtbXRvIHNlIHVk7Gx1amUgYmV6+nBsYXRu4SBuZXb9aHJh ZG7tIGxpY2VuY2Uga6BvcHLhdm7sbu0gdZ7tdmF0IFNvZnR3YXJlLA0K6GFzb3bs IGkgbe1zdG7sIG5lb21lemVu4SwgdqBzb3VsYWR1IHOgcPjtc2x1mm79bWkgdXN0 YW5vdmVu7W1pIGF1dG9yc2vpaG8geuFrb25hLg0KDQpOYWJ5dmF0ZWwvdZ5pdmF0 ZWwsIGt0ZXL9IG9iZHKeZWwga29waWkgdG9ob3RvIHNvZnR3YXJ1IGEgZGFsmu0g cPhpZHJ1nmVu6SANCnNvdWJvcnkgKGThbGUgamVuIIRzb2Z0d2FyZZMpIGplIG9w cuF2buxuIGugbmFrbOFk4W7tIHNlIHNvZnR3YXJlbSBiZXogDQpqYWv9Y2hrb2xp IG9tZXplbu0sIHboZXRu7CBiZXogb21lemVu7SBwcuF2YSBzb2Z0d2FyZSB1nu12 YXQsIHBv+Gl6b3ZhdCBzaSANCnqgbuxqIGtvcGllLCBt7G5pdCwgc2xvdehpdCwg mu34aXQsIHBvc2t5dG92YXQgemNlbGEgbmVibyB66OFzdGkgdPhldO0gb3NvYuwg DQoocG9kbGljZW5jZSkg6GkgcHJvZOF2YXQgamVobyBrb3BpZSwgemEgbuFzbGVk dWrtY+1jaCBwb2Rt7W5lazoNCg0KLSB2/ZplIHV2ZWRlbukgbGljZW7obu0gdWpl ZG7hbu0gbXVz7SBi/XQgdXZlZGVubyBuYSB2mmVjaCBrb3Bp7WNoIG5lYm8gDQpw b2RzdGF0bv1jaCBzb3Xo4XN0ZWNoIFNvZnR3YXJ1Lg0KDQotIHNvZnR3YXJlIGpl IHBvc2t5dG924W4gdGFrIGphayBzdG9q7SBhIGxlnu0sIHR6bi4gYXV0b3IgbmVv ZHBvdu1k4SANCnphIGplaG8gdmFkeSwgamFrb54gaSBtb55u6SBu4XNsZWRreSwg bGVkYZ5lIHbsYyBuZW3hIHZsYXN0bm9zdCwgbyBu7Z4gYXV0b3IgDQpwcm9obOFz 7SwgnmUgamkgbeEsIG5lYm8ga3Rlcm91IHNpIG5hYnl2YXRlbC91nml2YXRlbCB2 /XNsb3Zu7CB2eW3tbmlsLg0KDQoNCg0KTGljZW5jZWQgdW5kZXIgdGhlIE1JVCBM aWNlbnNlDQoNCkNvcHlyaWdodCAoYykgMjAwOCBTZXpuYW0uY3osIGEucy4NCg0K UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQ0Kb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksIHRvIGRlYWwNCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMNCnRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwgYW5kL29yIHNlbGwNCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcw0KZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoNCg0KVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4NCmFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLg0KDQpUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks DQpGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUNCkFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVINCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sDQpPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTIElODQpUSEUgU09GVFdBUkUuDQoqLw0KDQovKioNCiAqIEBv dmVydmlldyBrYWxlbmRhcg0KICogQHZlcnNpb24gMi4wDQogKiBAYXV0aG9yIHph cmENCiovICAgDQoNCi8qKg0KICogQGNsYXNzIEthbGVuZGFyLCB6cHJhdmlkbGEg bmVuaSB0cmViYSBydWNuZSBpbnN0YW50aWFsaXpvdmF0DQogKiBAcGFyYW0ge09i amVjdH0gb3B0T2JqIGFzb2NpYXRpdm5pIHBvbGUgcGFyYW1ldHJ1LCBtdXplIG9i c2Fob3ZhdCB0eXRvIGhvZG5vdHk6DQogKiAJPHVsPg0KICoJCTxsaT48ZW0+ZGVm YXVsdEZvcm1hdDwvZW0+IC0gZm9ybWF0b3ZhY2kgcmV0ZXplYyBwcm8gZGF0dW0s IGRlZmF1bHQgImoubi5ZIjwvbGk+DQogKiAJCTxsaT48ZW0+dG9kYXk8L2VtPiAt IHJldGV6ZWMgb3puYWN1amljaSBkbmVzZWssIGRlZmF1bHQgIkRuZXMiPC9saT4N CiAqIAkJPGxpPjxlbT5yb2xsZXJEZWxheTwvZW0+IC0gY2FzIChtc2VjKSwgcG8g a3RlcmVtIHNlIHpvYnJhemkgcm9sZXRreSBuYSB2eWJlciBtZXNpY2Uvcm9rdSwg ZGVmYXVsdCAyMDA8L2xpPg0KICogCQk8bGk+PGVtPmxvY2tXaW5kb3c8L2VtPiAt IG1hLWxpIHNlIG9rbm8ga2FsZW5kYXJlIGJyYW5pdCB2eXRhemVuaSBtaW1vIG9r bm8gcHJvaGxpemVjZSAobmFob3JlLCB2bGV2byksIGRlZmF1bHQgZmFsc2U8L2xp Pg0KICogCQk8bGk+PGVtPm1vbnRoTmFtZXM8L2VtPiAtIHBvbGUgbmF6dnUgbWVz aWN1PC9saT4NCiAqIAkJPGxpPjxlbT5tb250aE5hbWVzU2hvcnQ8L2VtPiAtIHBv bGUgemtyYWNlbnljaCAodHJpcGlzbWVubnljaCkgbmF6dnUgbWVzaWN1PC9saT4N CiAqIAkJPGxpPjxlbT5kYXlOYW1lczwvZW0+IC0gcG9sZSBuYXp2dSBkbnUgdiB0 eWRudTwvbGk+DQogKiAJPC91bD4NCiAqIEBjb25zdHJ1Y3Rvcg0KICovDQpTWk4u Q2FsZW5kYXIgPSBTWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3Moew0KCU5BTUU6ICJD YWxlbmRhciIsDQoJVkVSU0lPTjogIjIuMSIsDQoJQ0xBU1M6ICJjbGFzcyIsDQoJ SU1QTEVNRU5UOiBTWk4uU2lnSW50ZXJmYWNlDQp9KTsNClNaTi5DYWxlbmRhci5w cm90b3R5cGUuJGNvbnN0cnVjdG9yID0gZnVuY3Rpb24ob3B0T2JqKSB7DQoJdGhp cy5vcHRpb25zID0gew0KCQlkZWZhdWx0Rm9ybWF0OiJqLm4uWSIsDQoJCXRvZGF5 OiJEbmVzIiwNCgkJbW9udGhOYW1lczpbIkxlZGVuIiwi2m5vciIsIkL4ZXplbiIs IkR1YmVuIiwiS3bsdGVuIiwiyGVydmVuIiwiyGVydmVuZWMiLCJTcnBlbiIsIlrh +O0iLCLY7WplbiIsIkxpc3RvcGFkIiwiUHJvc2luZWMiXSwNCgkJbW9udGhOYW1l c1Nob3J0OlsiTGVkIiwi2m4iLCJC+GUiLCJEdWIiLCJLduwiLCLIZXIiLCLIcmMi LCJTcnAiLCJa4fgiLCLY7WoiLCJMaXMiLCJQcm9zIl0sDQoJCWRheU5hbWVzOlsi UG8iLCLadCIsIlN0IiwiyHQiLCJQ4SIsIlNvIiwiTmUiXSwNCgkJcm9sbGVyRGVs YXk6MjAwLA0KCQlsb2NrV2luZG93OmZhbHNlDQoJfQ0KCWZvciAodmFyIHAgaW4g b3B0T2JqKSB7IHRoaXMub3B0aW9uc1twXSA9IG9wdE9ialtwXTsgfQ0KCXRoaXMu X2RvbSA9IHt9Ow0KCXRoaXMuX2RheXMgPSBbXTsNCgl0aGlzLl9yb2xsZXJzID0g W107DQoJdGhpcy5lYyA9IFtdOw0KCXRoaXMuX3Zpc2libGUgPSBmYWxzZTsNCg0K CXRoaXMuZWMucHVzaChTWk4uRXZlbnRzLmFkZExpc3RlbmVyKGRvY3VtZW50LCJr ZXlkb3duIix0aGlzLCJfaGFuZGxlS2V5IixmYWxzZSx0cnVlKSk7DQoJdGhpcy5l Yy5wdXNoKFNaTi5FdmVudHMuYWRkTGlzdGVuZXIoZG9jdW1lbnQsIm1vdXNlZG93 biIsdGhpcywiX2hhbmRsZURvd24iLGZhbHNlLHRydWUpKTsNCgl0aGlzLmVjLnB1 c2goU1pOLkV2ZW50cy5hZGRMaXN0ZW5lcih3aW5kb3csInVubG9hZCIsdGhpcywi JGRlc3RydWN0b3IiLGZhbHNlLHRydWUpKTsNCgl0aGlzLmVjLnB1c2goU1pOLkV2 ZW50cy5hZGRMaXN0ZW5lcihkb2N1bWVudCwibW91c2V1cCIsdGhpcywiX2hhbmRs ZVVwIixmYWxzZSx0cnVlKSk7DQp9DQoNCi8qKg0KICogQG1ldGhvZCBFeHBsaWNp dG5pIGRlc2t0cnVrdG9yLiBPZHZlc2kgdnNlY2hueSBldmVudHkgYSBzbWF6ZSB2 c2VjaG55IHZsYXN0bm9zdGkuDQogKi8NClNaTi5DYWxlbmRhci5wcm90b3R5cGUu JGRlc3RydWN0b3IgPSBmdW5jdGlvbigpIHsNCglmb3IgKHZhciBpPTA7aTx0aGlz LmVjLmxlbmd0aDtpKyspIHsNCgkJU1pOLkV2ZW50cy5yZW1vdmVMaXN0ZW5lcih0 aGlzLmVjW2ldKTsNCgl9DQoJZm9yICh2YXIgcCBpbiB0aGlzKSB7IHRoaXNbcF0g PSBudWxsOyB9DQp9DQoNCi8qKg0KICogU3RhdGlja2EgZnVua2NlLCBrdGVyYSBw cm92YXplIG92bGFkYWNpIHBydmVrIHMga2FsZW5kYXJlbSBhIGlucHV0ZW0NCiAq IEBwYXJhbSB7T2JqZWN0fSBjYWxlbmRhciBpbnN0YW5jZSBrYWxlbmRhcmUNCiAq IEBwYXJhbSB7T2JqZWN0fSBjbGlja0VsbSBkb20gbm9kZSwgcG8gamVob3oga2xp a251dGkgc2Uga2FsZW5kYXIgb2JqZXZpDQogKiBAcGFyYW0ge09iamVjdH0gdGFy Z2V0RWxtIGRvbSBub2RlICh0eXBpY2t5IGlucHV0W3R5cGU9InRleHQiXSksIGpl aG96IHZsYXN0bm9zdCAudmFsdWUga2FsZW5kYXIgb3ZsYWRhDQogKi8NClNaTi5D YWxlbmRhci5tYW5hZ2UgPSBmdW5jdGlvbihjYWxlbmRhciwgY2xpY2tFbG0sIHRh cmdldEVsbSkgeyAvKiBzZXR1cCBjYWxlbmRhciBmb3IgdHdvIGVsZW1lbnRzICov DQoJdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24oc3RyKSB7IHRhcmdldEVsbS52YWx1 ZSA9IHN0cjsgfQ0KCXZhciBjbGljayA9IGZ1bmN0aW9uKGUsZWxtKSB7IA0KCQl2 YXIgcG9zID0gU1pOLkRvbS5nZXRCb3hQb3NpdGlvbihjbGlja0VsbSk7DQoJCXZh ciB4ID0gcG9zLmxlZnQ7DQoJCXZhciB5ID0gcG9zLnRvcCArIGNsaWNrRWxtLm9m ZnNldEhlaWdodCArIDE7DQoJCWNhbGVuZGFyLnBpY2soeCx5LHRhcmdldEVsbS52 YWx1ZSxjYWxsYmFjayk7DQoJfQ0KCWNhbGVuZGFyLmVjLnB1c2goU1pOLkV2ZW50 cy5hZGRMaXN0ZW5lcihjbGlja0VsbSwiY2xpY2siLHdpbmRvdyxjbGljayxmYWxz ZSx0cnVlKSk7DQp9DQoNCi8qKg0KICogRG9wb3J1Y2VuYSBqZWRpbmEgZnVua2Nl IG5hIHR2b3JidSBrYWxlbmRhcmU7DQogKiB2eXR2b3JpIG92bGFkYWNpIHBydmVr IChvYnJhemVrIHwgYnV0dG9uKSwga3RlcnkgcG8ga2xpa251dGkgem9icmF6aSBr YWxlbmRhciwgamV6IG92bGFkYSB6YWRhbnkgaW5wdXQNCiAqIEBwYXJhbSB7U3Ry aW5nfSBpbWFnZVVybCBVUkwgb2JyYXprdSwga3Rlcnkgc2UgcG91emlqZS4gUG9r dWQgamUgZmFsc2UsIG5hbWlzdG8gb2JyYXprdSB2em5pa25lIGJ1dHRvbg0KICog QHBhcmFtIHtTdHJpbmd9IGxhYmVsIHBva3VkIGplIHZ5dHZhcmVuIG9icmF6ZWss IHRvdG8gamUgamVobyBhbHQgdGV4dC4gUG9rdWQgamUgdnl0dmFyZW4gYnV0dG9u LCANCiAqICAgdG90byBqZSBqZWhvIHBvcGlzZWsNCiAqIEBwYXJhbSB7T2JqZWN0 fSBvcHRPYmogYXNvY2lhdGl2bmkgcG9sZSBwYXJhbWV0cnUgcHJvIGthbGVuZGFy DQogKiBAcGFyYW0ge1N0cmluZ30gaWQxLi4uaWROIGxpYm92b2xuZSBtbm96c3R2 aSBpZGVjZWsgcHJvIGlucHV0eSwgbmEga3RlcmUgY2hjZW1lIGFwbGlrb3ZhdCBr YWxlbmRhcg0KICovDQpTWk4uQ2FsZW5kYXIuc2V0dXAgPSBmdW5jdGlvbihpbWFn ZVVybCwgbGFiZWwsIG9wdE9iaikgeyAvKiBzZXR1cCBjYWxlbmRhciBmb3IgYSB2 YXJpYWJsZSBhbW91bnQgb2YgdGV4dCBmaWVsZHMgKi8NCgl2YXIgYyA9IG5ldyBT Wk4uQ2FsZW5kYXIob3B0T2JqKTsNCglmb3IgKHZhciBpPTM7aTxhcmd1bWVudHMu bGVuZ3RoO2krKykgew0KCQl2YXIgY2xpY2sgPSBmYWxzZTsNCgkJdmFyIGlucHV0 ID0gU1pOLmdFbChhcmd1bWVudHNbaV0pOw0KCQlpZiAoaW1hZ2VVcmwpIHsNCgkJ CWNsaWNrID0gU1pOLmNFbCgiaW1nIixmYWxzZSwiY2FsLWxhdW5jaGVyIix7Y3Vy c29yOiJwb2ludGVyIn0pOw0KCQkJY2xpY2suc3JjID0gaW1hZ2VVcmw7DQoJCQlj bGljay5hbHQgPSBsYWJlbDsNCgkJCWNsaWNrLnRpdGxlID0gbGFiZWw7DQoJCX0g ZWxzZSB7DQoJCQljbGljayA9IFNaTi5jRWwoImlucHV0IixmYWxzZSwiY2FsLWxh dW5jaGVyIik7DQoJCQljbGljay50eXBlID0gImJ1dHRvbiI7DQoJCQljbGljay52 YWx1ZSA9IGxhYmVsOw0KCQl9DQoJCWlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVm b3JlKGNsaWNrLGlucHV0Lm5leHRTaWJsaW5nKTsNCgkJU1pOLkNhbGVuZGFyLm1h bmFnZShjLGNsaWNrLGlucHV0KTsNCgl9DQoJcmV0dXJuIGM7DQp9DQoNCi8qKg0K ICogUG9yb3ZuYSBkdmEgZGF0dW15LCBzaG9kdWppLWxpIHNlIHYgcm9jZSAmJiBt ZXNpY2kgJiYgZG51DQogKiBAcGFyYW0ge0RhdGV9IGQxIHBydm5pIGRhdHVtIGsg cG9yb3ZuYW5pDQogKiBAcGFyYW0ge0RhdGV9IGQyIGRydWhlIGRhdHVtIGsgcG9y b3ZuYW5pDQogKiBAcmV0dXJuIHRydWV8ZmFsc2UNCiAqLw0KU1pOLkNhbGVuZGFy LnByb3RvdHlwZS5lcXVhbERhdGVzID0gZnVuY3Rpb24oZDEsZDIpIHsgLyogYXJl IHR3byBkYXRlcyB0aGUgc2FtZSAodHJ1bmNhdGVkIHRvIGRheXMpID8gKi8NCgly ZXR1cm4gZDEuZ2V0RnVsbFllYXIoKSA9PSBkMi5nZXRGdWxsWWVhcigpICYmIGQx LmdldE1vbnRoKCkgPT0gZDIuZ2V0TW9udGgoKSAmJiBkMS5nZXREYXRlKCkgPT0g ZDIuZ2V0RGF0ZSgpOw0KfQ0KDQpTWk4uQ2FsZW5kYXIucHJvdG90eXBlLl9oYW5k bGVEb3duID0gZnVuY3Rpb24oZSxlbG0pIHsNCglpZiAoIXRoaXMuX3Zpc2libGUp IHsgcmV0dXJuOyB9DQoJdGhpcy5faGlkZSgpOw0KfQ0KDQpTWk4uQ2FsZW5kYXIu cHJvdG90eXBlLl9jYW5jZWxEb3duID0gZnVuY3Rpb24oZSxlbG0pIHsNCglTWk4u RXZlbnRzLnN0b3BFdmVudChlKTsNCn0NCg0KU1pOLkNhbGVuZGFyLnByb3RvdHlw ZS5faGFuZGxlVXAgPSBmdW5jdGlvbihlLGVsbSkgew0KCWlmICh0aGlzLmV2ZW50 TW92ZSkJew0KCQlTWk4uRXZlbnRzLnJlbW92ZUxpc3RlbmVyKHRoaXMuZXZlbnRN b3ZlKTsNCgkJdGhpcy5ldmVudE1vdmUgPSBmYWxzZTsNCgl9DQoJDQoJaWYgKFNa Ti5DYWxlbmRhci5CdXR0b24uX2FjdGl2ZUVsZW1lbnQpIHsNCgkJU1pOLkRvbS5y ZW1vdmVDbGFzcyhTWk4uQ2FsZW5kYXIuQnV0dG9uLl9hY3RpdmVFbGVtZW50LCJt b3VzZWRvd24iKTsNCgkJU1pOLkNhbGVuZGFyLkJ1dHRvbi5fYWN0aXZlRWxlbWVu dCA9IGZhbHNlOw0KCX0NCgl0aGlzLl90aW1lciA9IGZhbHNlOw0KCWZvciAodmFy IGk9MDtpPHRoaXMuX3JvbGxlcnMubGVuZ3RoO2krKykgew0KCQl0aGlzLl9yb2xs ZXJzW2ldLl9oaWRlKCk7DQoJfQ0KfQ0KDQpTWk4uQ2FsZW5kYXIucHJvdG90eXBl Ll9oYW5kbGVNb3ZlID0gZnVuY3Rpb24oZSxlbG0pIHsNCglpZiAoIXRoaXMuX3Zp c2libGUpIHsgcmV0dXJuOyB9DQoJdmFyIHNlbE9iaiA9IGZhbHNlOw0KCWlmIChk b2N1bWVudC5nZXRTZWxlY3Rpb24gJiYgIVNaTi5Ccm93c2VyLmtsaWVudCAhPSAi Z2Vja28iKSB7IHNlbE9iaiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpOyB9DQoJ aWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIHsgc2VsT2JqID0gd2luZG93LmdldFNl bGVjdGlvbigpOyB9DQoJaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgeyBzZWxPYmog PSBkb2N1bWVudC5zZWxlY3Rpb247IH0NCglpZiAoc2VsT2JqKSB7DQoJCWlmIChz ZWxPYmouZW1wdHkpIHsgc2VsT2JqLmVtcHR5KCk7IH0NCgkJaWYgKHNlbE9iai5y ZW1vdmVBbGxSYW5nZXMpIHsgc2VsT2JqLnJlbW92ZUFsbFJhbmdlcygpOyB9DQoJ fQ0KDQoJU1pOLkV2ZW50cy5jYW5jZWxEZWYoZSk7DQoJdmFyIGR4ID0gZS5jbGll bnRYIC0gdGhpcy5fY2xpZW50WDsNCgl2YXIgZHkgPSBlLmNsaWVudFkgLSB0aGlz Ll9jbGllbnRZOw0KCQ0KCXZhciBwb3MgPSBTWk4uRG9tLmdldEJveFBvc2l0aW9u KHRoaXMuX2RvbS5jb250YWluZXIpOw0KCXZhciBuZXd4ID0gcG9zLmxlZnQrZHg7 DQoJdmFyIG5ld3kgPSBwb3MudG9wK2R5Ow0KCWlmICh0aGlzLm9wdGlvbnMubG9j a1dpbmRvdyAmJiAobmV3eCA8IDAgfHwgbmV3eSA8IDApKSB7IHJldHVybjsgfQ0K CQ0KCXRoaXMuX2RvbS5jb250YWluZXIuc3R5bGUubGVmdCA9IG5ld3grInB4IjsN Cgl0aGlzLl9kb20uY29udGFpbmVyLnN0eWxlLnRvcCA9IG5ld3krInB4IjsNCgl0 aGlzLl9jbGllbnRYID0gZS5jbGllbnRYOw0KCXRoaXMuX2NsaWVudFkgPSBlLmNs aWVudFk7DQp9DQoNClNaTi5DYWxlbmRhci5wcm90b3R5cGUuX2RyYWdEb3duID0g ZnVuY3Rpb24oZSxlbG0pIHsNCglTWk4uRXZlbnRzLmNhbmNlbERlZihlKTsNCgl0 aGlzLmV2ZW50TW92ZSA9IFNaTi5FdmVudHMuYWRkTGlzdGVuZXIoZG9jdW1lbnQs Im1vdXNlbW92ZSIsdGhpcywiX2hhbmRsZU1vdmUiLGZhbHNlLHRydWUpOw0KCQ0K CXRoaXMuX2NsaWVudFggPSBlLmNsaWVudFg7DQoJdGhpcy5fY2xpZW50WSA9IGUu Y2xpZW50WTsNCn0NCg0KLyoqDQogKiBPdGV2cmUga2FsZW5kYXIgbmEgZGFueWNo IHNvdXJhZG5pY2ljaCBhIG5hc3RhdmkgaG8gbmEgbmVqYWtlIGRhdHVtDQogKiBA cGFyYW0ge0ludGVnZXJ9IHggeC1vdmEgc291cmFkbmljZSBsZXZlaG8gaG9ybmlo byByb2h1IGthbGVuZGFyZQ0KICogQHBhcmFtIHtJbnRlZ2VyfSB5IHktb3ZhIHNv dXJhZG5pY2UgbGV2ZWhvIGhvcm5paG8gcm9odSBrYWxlbmRhcmUNCiAqIEBwYXJh bSB7U3RyaW5nfSBkYXRlIGRhdHVtIHYgdGFrcmthIGxpYm92b2xuZW0gZm9ybWF0 dQ0KICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgZnVua2NlLCBqZXogYnVk ZSB6YXZvbGFuYSBwbyB2eWJyYW5pIGRhdGEgDQogICAgIChzIGplZGlueW0gcGFy YW1ldHJlbSwgc3RyaW5nZW0gLSB2eWJyYW55bSBkYXR1bWVtKQ0KICovDQpTWk4u Q2FsZW5kYXIucHJvdG90eXBlLnBpY2sgPSBmdW5jdGlvbih4LHksZGF0ZSxjYWxs YmFjaykgeyANCgl0aGlzLl9kcmF3KCk7DQoJdGhpcy5fZG9tLmNvbnRhaW5lci5z dHlsZS5sZWZ0ID0geCsicHgiOw0KCXRoaXMuX2RvbS5jb250YWluZXIuc3R5bGUu dG9wID0geSsicHgiOw0KCS8qIGFuYWx5emUgZGF0ZSAqLw0KCQ0KCXRoaXMuc2Vs ZWN0ZWREYXRlID0gbmV3IERhdGUoKTsNCglpZiAoZGF0ZSkgew0KCQl0aGlzLnNl bGVjdGVkRGF0ZSA9IFNaTi5DYWxlbmRhci5wYXJzZURhdGUoZGF0ZSk7DQoJfSAv KiBkYXRlIHBhcnNpbmcgKi8NCgl0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUo dGhpcy5zZWxlY3RlZERhdGUpOw0KCXRoaXMuY3VycmVudERhdGUuc2V0RGF0ZSgx KTsNCgl0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7DQoJdGhpcy5fc3dpdGNoVG8o KTsNCn0NCg0KLyoqDQogKiBaZm9ybWF0dWplIGRhdHVtIGRsZSBmb3JtYXRvdmFj aWhvIHJldGV6Y2UsIHphZGFuZWhvIGpha28gcGFyYW1ldHIga2FsZW5kYXJlLiBG b3JtYXRvdmFjaSByZXRlemVjIG9kcG92aWRhIA0KICAgcGhwIGZ1bmtjaSBkYXRl KCksIGltcGxlbWVudG92YW5lIGhvZG5vdHkganNvdSAiZGdHaEhpam1uc1V3WXgi Lg0KICogQHBhcmFtIHtEYXRlfSBkYXRlIGRhdHVtLCBqZXogbWEgYnl0IHpmb3Jt YXRvdmFubw0KICovDQpTWk4uQ2FsZW5kYXIucHJvdG90eXBlLmZvcm1hdCA9IGZ1 bmN0aW9uKGRhdGUpIHsgDQoJZnVuY3Rpb24gbHooc3RyLGxlbmd0aCkgew0KCQl2 YXIgcyA9IHN0ci50b1N0cmluZygpOw0KCQl2YXIgbCA9IChsZW5ndGggPyBsZW5n dGggOiAyKTsNCgkJd2hpbGUgKHMubGVuZ3RoIDwgbCkgeyBzID0gIjAiK3M7IH0N CgkJcmV0dXJuIHM7CQ0KCX0NCg0KCXZhciByZXN1bHQgPSB0aGlzLm9wdGlvbnMu ZGVmYXVsdEZvcm1hdDsNCglyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvZC9nLGx6 KGRhdGUuZ2V0RGF0ZSgpLDIpKTsNCglyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgv Zy9nLHBhcnNlSW50KGRhdGUuZ2V0SG91cnMoKSkgJSAxMik7DQoJcmVzdWx0ID0g cmVzdWx0LnJlcGxhY2UoL0cvZyxkYXRlLmdldEhvdXJzKCkpOw0KCXJlc3VsdCA9 IHJlc3VsdC5yZXBsYWNlKC9oL2csbHoocGFyc2VJbnQoZGF0ZS5nZXRIb3Vycygp KSAlIDEyLDIpKTsNCglyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvSC9nLGx6KGRh dGUuZ2V0SG91cnMoKSwyKSk7DQoJcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL2kv ZyxseihkYXRlLmdldE1pbnV0ZXMoKSwyKSk7DQoJcmVzdWx0ID0gcmVzdWx0LnJl cGxhY2UoL2ovZyxkYXRlLmdldERhdGUoKSk7DQoJcmVzdWx0ID0gcmVzdWx0LnJl cGxhY2UoL20vZyxseihkYXRlLmdldE1vbnRoKCkrMSwyKSk7DQoJcmVzdWx0ID0g cmVzdWx0LnJlcGxhY2UoL24vZyxkYXRlLmdldE1vbnRoKCkrMSk7DQoJcmVzdWx0 ID0gcmVzdWx0LnJlcGxhY2UoL3MvZyxseihkYXRlLmdldFNlY29uZHMoKSwyKSk7 DQoJcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL1UvZyxkYXRlLmdldFRpbWUoKSk7 DQoJcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL3cvZyxkYXRlLmdldERheSgpKTsN CglyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvWS9nLGRhdGUuZ2V0RnVsbFllYXIo KSk7DQoJcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL3gvZyxseihkYXRlLmdldE1p bGxpc2Vjb25kcygpLDMpKTsNCglyZXR1cm4gcmVzdWx0Ow0KfQ0KDQpTWk4uQ2Fs ZW5kYXIucHJvdG90eXBlLl9kcmF3ID0gZnVuY3Rpb24oKSB7IC8qIG1ha2UgY2Fs ZW5kYXIgYXBwZWFyICovDQoJaWYgKCEoImNvbnRhaW5lciIgaW4gdGhpcy5fZG9t KSkgew0KCQl0aGlzLl9idWlsZERvbSgpOw0KCQlkb2N1bWVudC5ib2R5LmFwcGVu ZENoaWxkKHRoaXMuX2RvbS5jb250YWluZXIpOw0KCX0NCgl0aGlzLl9zaG93KCk7 DQp9DQoNClNaTi5DYWxlbmRhci5wcm90b3R5cGUuX2hlbHAgPSBmdW5jdGlvbigp IHsNCglhbGVydCgiVv1i7HIgZGF0YTpcbiAtIFBvdZ5panRlIKssILsgdGxh6O10 a2EgcHJvIHZ5YnLhbu0gcm9rdVxuIC0gUG91nmlqdGUgiywgmyB0bGHo7XRrYSBw cm8gdnlicuFu7SBt7HPtY2VcbiAtIE1lbnUgcHJvIHJ5Y2hsZWqa7SB2/WLsciBz ZSB6b2JyYXrtIHBvIGRlbJrtbSBzdGlza3Ugdv2aZSB1dmVkZW79Y2ggdGxh6O10 ZWtcbiAtIFN0aXNrbnV07W0gbWV6ZXJu7Wt1IHp2b2ztdGUgZG5lmm7tIGRhdHVt Iik7DQp9DQoNClNaTi5DYWxlbmRhci5wcm90b3R5cGUuX2J1aWxkRG9tID0gZnVu Y3Rpb24oKSB7IC8qIGNyZWF0ZSBkb20gZWxlbWVudHMsIGxpbmsgdGhlbSB0b2dl dGhlciAqLw0KCXRoaXMuX2RvbS5jb250YWluZXIgPSBTWk4uY0VsKCJkaXYiLGZh bHNlLGZhbHNlLHtwb3NpdGlvbjoiYWJzb2x1dGUifSk7DQoJdGhpcy5fZG9tLmNv bnRlbnQgPSBTWk4uY0VsKCJkaXYiLGZhbHNlLCJjYWwtY29udGVudCIpOw0KCXRo aXMuX2RvbS50YWJsZSA9IFNaTi5jRWwoInRhYmxlIik7DQoJdGhpcy5fZG9tLnRo ZWFkID0gU1pOLmNFbCgidGhlYWQiKTsNCgl0aGlzLl9kb20udGJvZHkgPSBTWk4u Y0VsKCJ0Ym9keSIpOw0KCXRoaXMuX2RvbS50Zm9vdCA9IFNaTi5jRWwoInRmb290 Iik7DQoJdGhpcy5fZG9tLnRhYmxlLmNlbGxTcGFjaW5nID0gMDsNCgl0aGlzLl9k b20udGFibGUuY2VsbFBhZGRpbmcgPSAwOw0KCQ0KCWlmIChTWk4uQnJvd3Nlci5r bGllbnQgPT0gImllIikgew0KCQl0aGlzLl9kb20uaWZyYW1lID0gU1pOLmNFbCgi aWZyYW1lIixmYWxzZSxmYWxzZSx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiIw cHgiLHRvcDoiMHB4Iix6SW5kZXg6MX0pOw0KCQl0aGlzLl9kb20uY29udGVudC5z dHlsZS56SW5kZXggPSAyOw0KCQlTWk4uRG9tLmFwcGVuZChbdGhpcy5fZG9tLmNv bnRhaW5lcix0aGlzLl9kb20uaWZyYW1lLHRoaXMuX2RvbS5jb250ZW50XSxbdGhp cy5fZG9tLmNvbnRlbnQsdGhpcy5fZG9tLnRhYmxlXSk7DQoJfSBlbHNlIHsNCgkJ U1pOLkRvbS5hcHBlbmQoW3RoaXMuX2RvbS5jb250YWluZXIsdGhpcy5fZG9tLmNv bnRlbnRdLFt0aGlzLl9kb20uY29udGVudCx0aGlzLl9kb20udGFibGVdKTsNCgl9 IA0KCVNaTi5Eb20uYXBwZW5kKFt0aGlzLl9kb20udGFibGUsdGhpcy5fZG9tLnRo ZWFkLHRoaXMuX2RvbS50Ym9keSx0aGlzLl9kb20udGZvb3RdKTsNCgkNCgkvKiB0 b3AgcGFydCAqLw0KCXZhciByMSA9IFNaTi5jRWwoInRyIik7DQoJdmFyIHIyID0g U1pOLmNFbCgidHIiLGZhbHNlKTsNCgl2YXIgcjMgPSBTWk4uY0VsKCJ0ciIsZmFs c2UpOw0KCVNaTi5Eb20uYXBwZW5kKFt0aGlzLl9kb20udGhlYWQscjEscjIscjNd KTsNCgkNCgl2YXIgaGVscCA9IG5ldyBTWk4uQ2FsZW5kYXIuTmF2KHRoaXMsIj8i LCJO4XBvduxkYSIsdGhpcy5faGVscCk7DQoJdGhpcy5fZG9tLm1vdmUgPSBTWk4u Y0VsKCJ0ZCIsZmFsc2UsImNhbC10aXRsZSIpOw0KCXZhciBjbG9zZSA9IG5ldyBT Wk4uQ2FsZW5kYXIuTmF2KHRoaXMsIiZ0aW1lczsiLCJaYXb47XQga2FsZW5k4fgi LHRoaXMuX2hpZGUpOw0KCXRoaXMuX2RvbS5tb3ZlLmNvbFNwYW4gPSA2Ow0KCVNa Ti5Eb20uYXBwZW5kKFtyMSxoZWxwLnRkLHRoaXMuX2RvbS5tb3ZlLGNsb3NlLnRk XSk7DQoJDQoJdmFyIHggPSAiIChwb2RyniBwcm8gbWVudSkiOw0KCXZhciBidXR0 b25MYWJlbHMgPSBbIiZsYXF1bzsiLCImbHNhcXVvOyIsdGhpcy5vcHRpb25zLnRv ZGF5LCImcnNhcXVvOyIsIiZyYXF1bzsiXTsNCgl2YXIgYnV0dG9uU3RhdHVzZXMg PSBbIlD4ZWRjaG967SByb2siK3gsIlD4ZWRjaG967SBt7HPtYyIreCx0aGlzLm9w dGlvbnMudG9kYXksIk7hc2xlZHVq7WPtIG3sc+1jIit4LCJO4XNsZWR1au1j7SBy b2siK3hdOw0KCXZhciBidXR0b25NZXRob2RzID0gW3RoaXMuX3llYXJCLHRoaXMu X21vbnRoQix0aGlzLl9tb250aEMsdGhpcy5fbW9udGhGLHRoaXMuX3llYXJGXTsN Cgl0aGlzLl9kb20uYnV0dG9ucyA9IFtdOw0KCWZvciAodmFyIGk9MDtpPGJ1dHRv bkxhYmVscy5sZW5ndGg7aSsrKSB7DQoJCXZhciBidXR0b24gPSBuZXcgU1pOLkNh bGVuZGFyLk5hdih0aGlzLGJ1dHRvbkxhYmVsc1tpXSxidXR0b25TdGF0dXNlc1tp XSxidXR0b25NZXRob2RzW2ldKTsNCgkJU1pOLkRvbS5hZGRDbGFzcyhidXR0b24u dGQsImNhbC1idXR0b24gY2FsLW5hdiIpOw0KCQl0aGlzLl9kb20uYnV0dG9ucy5w dXNoKGJ1dHRvbi50ZCk7DQoJCXIyLmFwcGVuZENoaWxkKGJ1dHRvbi50ZCk7DQoJ fQ0KCXRoaXMuX2RvbS5idXR0b25zWzJdLmNvbFNwYW4gPSA0Ow0KCQ0KCXZhciB3 ayA9IFNaTi5jRWwoInRkIixmYWxzZSwiY2FsLWRheW5hbWUgY2FsLXduIik7DQoJ d2suaW5uZXJIVE1MID0gIndrIjsNCglyMy5hcHBlbmRDaGlsZCh3ayk7DQoJDQoJ Zm9yICh2YXIgaT0wO2k8dGhpcy5vcHRpb25zLmRheU5hbWVzLmxlbmd0aDtpKysp IHsNCgkJdmFyIGRheSA9IFNaTi5jRWwoInRkIixmYWxzZSwiY2FsLWRheW5hbWUi KTsNCgkJZGF5LmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5kYXlOYW1lc1tpXTsN CgkJcjMuYXBwZW5kQ2hpbGQoZGF5KTsNCgkJaWYgKGkgPiA0KSB7IFNaTi5Eb20u YWRkQ2xhc3MoZGF5LCJjYWwtd2Vla2VuZCIpOyB9DQoJfQ0KCQ0KCS8qIG1pZGRs ZSBwYXJ0ICovDQoJdGhpcy5fZG9tLnJvd3MgPSBbXTsNCglmb3IgKHZhciBpPTA7 aTw0MjtpKyspIHsgLyogbWFnaWMgbnVtYmVyIG9mIGRheXMuICovDQoJCXZhciBk YXkgPSBuZXcgU1pOLkNhbGVuZGFyLkRheSh0aGlzKTsNCgkJdGhpcy5fZGF5cy5w dXNoKGRheSk7DQoJCWlmICghKGkgJSA3KSkgew0KCQkJdmFyIHRyID0gU1pOLmNF bCgidHIiKTsNCgkJCXRoaXMuX2RvbS5yb3dzLnB1c2godHIpOw0KCQkJdGhpcy5f ZG9tLnRib2R5LmFwcGVuZENoaWxkKHRyKTsNCgkJCXRoaXMuZWMucHVzaChTWk4u RXZlbnRzLmFkZExpc3RlbmVyKHRyLCJtb3VzZW92ZXIiLHRoaXMsIl9vdmVyUmVm IixmYWxzZSx0cnVlKSk7DQoJCQl0aGlzLmVjLnB1c2goU1pOLkV2ZW50cy5hZGRM aXN0ZW5lcih0ciwibW91c2VvdXQiLHRoaXMsIl9vdXRSZWYiLGZhbHNlLHRydWUp KTsNCgkJCXZhciB3ayA9IFNaTi5jRWwoInRkIixmYWxzZSwiY2FsLXduIGNhbC1k YXkiKTsNCgkJCXRyLmFwcGVuZENoaWxkKHdrKTsNCgkJfQ0KCQlTWk4uRG9tLmFk ZENsYXNzKGRheS50ZCwiY2FsLWRheSIpOw0KCQl0ci5hcHBlbmRDaGlsZChkYXku dGQpOw0KCQlpZiAoaSAlIDcgPiA0KSB7IFNaTi5Eb20uYWRkQ2xhc3MoZGF5LnRk LCJjYWwtd2Vla2VuZCIpOyB9DQoJfQ0KCQ0KCS8qIGJvdHRvbSBwYXJ0ICovDQoJ dmFyIHRyID0gU1pOLmNFbCgidHIiKTsNCgl0aGlzLl9kb20uc3RhdHVzID0gU1pO LmNFbCgidGQiLGZhbHNlLCJjYWwtc3RhdHVzIik7DQoJdGhpcy5fZG9tLnN0YXR1 cy5jb2xTcGFuID0gODsNCglTWk4uRG9tLmFwcGVuZChbdGhpcy5fZG9tLnRmb290 LHRyXSxbdHIsdGhpcy5fZG9tLnN0YXR1c10pOw0KCXRoaXMuX2RvbS5zdGF0dXMu aW5uZXJIVE1MID0gIlZ5YmVydGUgZGF0dW0iOw0KCQ0KCS8qIHJvbGxlcnMgKi8N Cglmb3IgKHZhciBpPTA7aTx0aGlzLl9kb20uYnV0dG9ucy5sZW5ndGg7aSsrKSB7 DQoJCWlmIChpID09IDIpIHsgY29udGludWU7IH0NCgkJdmFyIHR5cGUgPSAoaSA9 PSAxIHx8IGkgPT0gMyA/IDAgOiAoaSA8IDIgPyAtMSA6IDEpKTsNCgkJdmFyIHJv bGxlciA9IG5ldyBTWk4uQ2FsZW5kYXIuUm9sbGVyKHRoaXMsdGhpcy5fZG9tLmJ1 dHRvbnNbaV0sdHlwZSxpID4gMik7DQoJCXRoaXMuX3JvbGxlcnMucHVzaChyb2xs ZXIpOw0KCX0NCgkNCgkvKiBtaXNjICovDQoJdGhpcy5lYy5wdXNoKFNaTi5FdmVu dHMuYWRkTGlzdGVuZXIodGhpcy5fZG9tLm1vdmUsIm1vdXNlZG93biIsdGhpcywi X2RyYWdEb3duIixmYWxzZSx0cnVlKSk7DQoJdGhpcy5lYy5wdXNoKFNaTi5FdmVu dHMuYWRkTGlzdGVuZXIodGhpcy5fZG9tLnN0YXR1cywibW91c2Vkb3duIix0aGlz LCJfZHJhZ0Rvd24iLGZhbHNlLHRydWUpKTsNCgl0aGlzLmVjLnB1c2goU1pOLkV2 ZW50cy5hZGRMaXN0ZW5lcih0aGlzLl9kb20uY29udGFpbmVyLCJtb3VzZWRvd24i LHRoaXMsIl9jYW5jZWxEb3duIixmYWxzZSx0cnVlKSk7DQp9DQoNClNaTi5DYWxl bmRhci5wcm90b3R5cGUuX2hhbmRsZUtleSA9IGZ1bmN0aW9uKGUsZWxtKSB7DQoJ aWYgKCF0aGlzLl92aXNpYmxlKSB7IHJldHVybjsgfQ0KCWlmIChlLmtleUNvZGUg PT0gMzIpIHsgdGhpcy5fbW9udGhDKCk7IH0NCglpZiAoZS5rZXlDb2RlID09IDI3 KSB7IHRoaXMuX2hpZGUoKTsgfQ0KfQ0KDQpTWk4uQ2FsZW5kYXIucHJvdG90eXBl Ll9vdmVyUmVmID0gZnVuY3Rpb24oZSxlbG0pIHsNCglTWk4uRG9tLmFkZENsYXNz KGVsbSwibW91c2VvdmVyIik7CQ0KfQ0KCQ0KU1pOLkNhbGVuZGFyLnByb3RvdHlw ZS5fb3V0UmVmID0gZnVuY3Rpb24oZSxlbG0pIHsNCglTWk4uRG9tLnJlbW92ZUNs YXNzKGVsbSwibW91c2VvdmVyIik7DQp9DQoJDQpTWk4uQ2FsZW5kYXIucHJvdG90 eXBlLl9oaWRlID0gZnVuY3Rpb24oKSB7DQoJdGhpcy5fZG9tLmNvbnRhaW5lci5z dHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCXRoaXMuX3Zpc2libGUgPSBmYWxzZTsN Cn0NCg0KU1pOLkNhbGVuZGFyLnByb3RvdHlwZS5fc2hvdyA9IGZ1bmN0aW9uKCkg ew0KCXRoaXMuX2RvbS5jb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7 DQoJdGhpcy5fdmlzaWJsZSA9IHRydWU7DQp9DQoNClNaTi5DYWxlbmRhci5wcm90 b3R5cGUuX2dldFdlZWtOdW1iZXIgPSBmdW5jdGlvbihkYXRlKSB7IC8qIHd0ZiBj b2RlIHRvIGdldCB3ZWVrIG51bWJlciAqLw0KCXZhciBkPW5ldyBEYXRlKGRhdGUu Z2V0RnVsbFllYXIoKSxkYXRlLmdldE1vbnRoKCksZGF0ZS5nZXREYXRlKCksMCww LDApOw0KCXZhciBEb1c9ZC5nZXREYXkoKTsNCglkLnNldERhdGUoZC5nZXREYXRl KCktKERvVys2KSU3KzMpOw0KCXZhciBtcz1kLnZhbHVlT2YoKTsNCglkLnNldE1v bnRoKDApOw0KCWQuc2V0RGF0ZSg0KTsNCglyZXR1cm4gTWF0aC5yb3VuZCgobXMt ZC52YWx1ZU9mKCkpLyg3Kjg2NDAwMDAwKSkrMTsNCn0NCg0KU1pOLkNhbGVuZGFy LnByb3RvdHlwZS5fc3dpdGNoVG8gPSBmdW5jdGlvbigpIHsgLyogc3dpdGNoIHRv IGEgZ2l2ZW4gZGF0ZSAqLw0KCWZvciAodmFyIGk9MDtpPHRoaXMuX2RvbS5yb3dz Lmxlbmd0aDtpKyspIHsgLyogc2hvdyBhbGwgcm93cyAqLw0KCQl0aGlzLl9kb20u cm93c1tpXS5zdHlsZS5kaXNwbGF5ID0gIiI7IA0KCX0NCgl2YXIgdG1wRGF0ZSA9 IG5ldyBEYXRlKHRoaXMuY3VycmVudERhdGUpOw0KCXRtcERhdGUuc2V0RGF0ZSgx KTsNCgkvKiBzdWJ0cmFjdCBuZWNlc3NhcnkgYW1vdW50IG9mIGRheXMgKi8NCgl2 YXIgb25lRGF5ID0gMTAwMCo2MCo2MCoyNDsNCgl2YXIgd2Vla0luZGV4ID0gKHRt cERhdGUuZ2V0RGF5KCkgKyA2KSAlIDc7IC8qIGluZGV4IG9mIGRheSBpbiB3ZWVr ICovDQoJaWYgKHdlZWtJbmRleCkgeyB0bXBEYXRlLnNldFRpbWUodG1wRGF0ZS5n ZXRUaW1lKCktd2Vla0luZGV4Km9uZURheSk7IH0NCgkNCgl2YXIgaW5kZXggPSAw Ow0KCXZhciB0b2RheSA9IG5ldyBEYXRlKCk7DQoJdmFyIGxhc3RWaXNpYmxlID0g LTE7DQoJZm9yICh2YXIgcm93PTA7cm93PDY7cm93KyspIHsNCgkJdmFyIHduID0g dGhpcy5fZG9tLnJvd3Nbcm93XS5maXJzdENoaWxkOw0KCQl3bi5pbm5lckhUTUwg PSB0aGlzLl9nZXRXZWVrTnVtYmVyKHRtcERhdGUpOw0KCQlmb3IgKHZhciBjb2w9 MDtjb2w8Nztjb2wrKykgew0KCQkJdmFyIGRheSA9IHRoaXMuX2RheXNbaW5kZXhd Ow0KCQkJZGF5LmRhdGUgPSBuZXcgRGF0ZSh0bXBEYXRlKTsNCgkJCWRheS5yZWRy YXcodG9kYXkpOw0KCQkJdG1wRGF0ZS5zZXRUaW1lKHRtcERhdGUuZ2V0VGltZSgp K29uZURheSk7DQoJCQlpZiAodG1wRGF0ZS5nZXRNb250aCgpID09IHRoaXMuY3Vy cmVudERhdGUuZ2V0TW9udGgoKSAmJiBsYXN0VmlzaWJsZSA9PSAtMSkgeyBsYXN0 VmlzaWJsZSA9IDA7IH0NCgkJCWlmICh0bXBEYXRlLmdldE1vbnRoKCkgIT0gdGhp cy5jdXJyZW50RGF0ZS5nZXRNb250aCgpICYmIGxhc3RWaXNpYmxlID09IDApIHsg bGFzdFZpc2libGUgPSByb3crMTsgfQ0KCQkJaW5kZXgrKzsNCgkJfQ0KCX0NCglm b3IgKHZhciBpPWxhc3RWaXNpYmxlO2k8NjtpKyspIHsgdGhpcy5fZG9tLnJvd3Nb aV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsgfQ0KCQ0KCXRoaXMuX2RvbS5tb3Zl LmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5tb250aE5hbWVzW3RoaXMuY3VycmVu dERhdGUuZ2V0TW9udGgoKV0gKyAiICIrdGhpcy5jdXJyZW50RGF0ZS5nZXRGdWxs WWVhcigpOw0KCWlmIChTWk4uQnJvd3Nlci5rbGllbnQgPT0gImllIikgeyAvKiBh ZGp1c3QgaWZyYW1lIHNpemUgKi8NCgkJdGhpcy5fZG9tLmlmcmFtZS5zdHlsZS53 aWR0aCA9IHRoaXMuX2RvbS5jb250ZW50Lm9mZnNldFdpZHRoICsgInB4IjsNCgkJ dGhpcy5fZG9tLmlmcmFtZS5zdHlsZS5oZWlnaHQgPSB0aGlzLl9kb20uY29udGVu dC5vZmZzZXRIZWlnaHQgKyAicHgiOw0KCX0NCn0NCg0KU1pOLkNhbGVuZGFyLnBy b3RvdHlwZS5feWVhckYgPSBmdW5jdGlvbihlLGVsbSkgeyAvKiB5ZWFyIGZvcndh cmQgKi8NCgl0aGlzLmN1cnJlbnREYXRlLnNldEZ1bGxZZWFyKHRoaXMuY3VycmVu dERhdGUuZ2V0RnVsbFllYXIoKSsxKTsNCgl0aGlzLl9zd2l0Y2hUbygpOw0KfQ0K DQpTWk4uQ2FsZW5kYXIucHJvdG90eXBlLl95ZWFyQiA9IGZ1bmN0aW9uKGUsZWxt KSB7IC8qIHllYXIgYmFjayAqLw0KCXRoaXMuY3VycmVudERhdGUuc2V0RnVsbFll YXIodGhpcy5jdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpLTEpOw0KCXRoaXMuX3N3 aXRjaFRvKCk7DQp9DQoNClNaTi5DYWxlbmRhci5wcm90b3R5cGUuX21vbnRoQiA9 IGZ1bmN0aW9uKGUsZWxtKSB7IC8qIG1vbnRoIGJhY2sgKi8NCgl0aGlzLmN1cnJl bnREYXRlLnNldE1vbnRoKCh0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCkrMTEp JTEyKTsNCglpZiAodGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpID09IDExKSB7 IHRoaXMuY3VycmVudERhdGUuc2V0RnVsbFllYXIodGhpcy5jdXJyZW50RGF0ZS5n ZXRGdWxsWWVhcigpLTEpOyB9DQoJdGhpcy5fc3dpdGNoVG8oKTsNCn0NCg0KU1pO LkNhbGVuZGFyLnByb3RvdHlwZS5fbW9udGhGID0gZnVuY3Rpb24oZSxlbG0pIHsg LyogbW9udGggZm9yd2FyZCAqLw0KCXRoaXMuY3VycmVudERhdGUuc2V0TW9udGgo KHRoaXMuY3VycmVudERhdGUuZ2V0TW9udGgoKSsxKSUxMik7DQoJaWYgKHRoaXMu Y3VycmVudERhdGUuZ2V0TW9udGgoKSA9PSAwKSB7IHRoaXMuY3VycmVudERhdGUu c2V0RnVsbFllYXIodGhpcy5jdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpKzEpOyB9 DQoJdGhpcy5fc3dpdGNoVG8oKTsNCn0NCg0KU1pOLkNhbGVuZGFyLnByb3RvdHlw ZS5fbW9udGhDID0gZnVuY3Rpb24oZSkgeyAvKiB5ZWFyIGZvcndhcmQgKi8NCgl0 aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsNCgl0aGlzLmN1cnJlbnREYXRl LnNldERhdGUoMSk7DQoJdGhpcy5fc3dpdGNoVG8oKTsNCn0NCg0KLyoqDQogKiBz dGF0aWNrYSBtZXRvZGEgcGFyc3VqaWNpIGRhdHVteSB6IHByZWRhbmVobyByZXRl emNlIA0KICogQHN0YXRpYw0KICogQHBhcmFtIHtzdHJpbmd9IGRhdGUNCiAqIEBy ZXR1cm4gRGF0ZQ0KICovDQpTWk4uQ2FsZW5kYXIucGFyc2VEYXRlID0gZnVuY3Rp b24oZGF0ZSkgew0KCXZhciBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSgpOw0KDQoJ dmFyIHNlcGFyYXRvcnMgPSAiW1wtL1xcXFw6Ll0iDQoJdmFyIGNoYXJzID0gIlsw LTldIg0KCXZhciBwYXR0ZXJucyA9IFsNCgkJIl4gKigiK2NoYXJzKyJ7MSwyfSkg KiIrc2VwYXJhdG9ycysiICooIitjaGFycysiezEsMn0pICoiK3NlcGFyYXRvcnMr IiAqKCIrY2hhcnMrInsxLDJ9KSIsDQoJCSJeICooIitjaGFycysiezR9KSAqIitz ZXBhcmF0b3JzKyIgKigiK2NoYXJzKyJ7MSwyfSkgKiIrc2VwYXJhdG9ycysiICoo IitjaGFycysiezEsMn0pIiwNCgkJIl4gKigiK2NoYXJzKyJ7MSwyfSkgKiIrc2Vw YXJhdG9ycysiICooIitjaGFycysiezEsMn0pICoiK3NlcGFyYXRvcnMrIiAqKCIr Y2hhcnMrIns0fSkiDQoJXTsNCgl2YXIgZGF0ZVBhdHRlcm4gPSAiKCArIitjaGFy cysiezEsMn0pPygiK3NlcGFyYXRvcnMrY2hhcnMrInsxLDJ9KT8oIitzZXBhcmF0 b3JzK2NoYXJzKyJ7MSwyfSk/ICokIjsNCgl2YXIgciA9IGZhbHNlOw0KCXZhciBp bmRleCA9IDA7DQoJd2hpbGUgKCFyZXN1bHQgJiYgaW5kZXggPCBwYXR0ZXJucy5s ZW5ndGgpIHsNCgkJdmFyIHJlID0gbmV3IFJlZ0V4cChwYXR0ZXJuc1tpbmRleF0g KyBkYXRlUGF0dGVybik7DQoJCS8vY29uc29sZS5sb2cocmUudG9TdHJpbmcoKSk7 DQoJCXZhciByZXN1bHQgPSByZS5leGVjKGRhdGUpOw0KCQlpbmRleCsrOw0KCX0N CglpZiAocmVzdWx0KSB7IC8qIHNvbWV0aGluZyBmb3VuZCAqLw0KCQlzZWxlY3Rl ZERhdGUgPSBuZXcgRGF0ZSgwKTsNCgkJdmFyIGEgPSBNYXRoLnJvdW5kKHBhcnNl RmxvYXQocmVzdWx0WzFdKSk7DQoJCXZhciBiID0gTWF0aC5yb3VuZChwYXJzZUZs b2F0KHJlc3VsdFsyXSkpOw0KCQl2YXIgYyA9IE1hdGgucm91bmQocGFyc2VGbG9h dChyZXN1bHRbM10pKTsNCgkJdmFyIHllYXJJbmRleCA9IC0xOw0KCQlpZiAocmVz dWx0WzFdLmxlbmd0aCA9PSA0KSB7DQoJCQl5ZWFySW5kZXggPSAwOw0KCQl9IGVs c2UgaWYgKHJlc3VsdFszXS5sZW5ndGggPT0gNCkgew0KCQkJeWVhckluZGV4ID0g MjsNCgkJfSBlbHNlIHsNCgkJCWlmIChhID4gMzEpIHsNCgkJCQlhID0gYSArIChh ID4gc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCktMjAwMCA/IDE5MDAgOiAyMDAw KTsNCgkJCQl5ZWFySW5kZXggPSAwOw0KCQkJfSBlbHNlIHsNCgkJCQljID0gYyAr IChjID4gc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCktMjAwMCA/IDE5MDAgOiAy MDAwKTsNCgkJCQl5ZWFySW5kZXggPSAyOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKHll YXJJbmRleCA9PSAwKSB7IC8qIHllYXIgYXQgdGhlIGJlZ2lubmluZyAqLw0KCQkJ c2VsZWN0ZWREYXRlLnNldEZ1bGxZZWFyKGEpOw0KCQkJc2VsZWN0ZWREYXRlLnNl dERhdGUoMSk7DQoJCQl2YXIgbWF4ID0gTWF0aC5tYXgoYixjKTsNCgkJCXZhciBt aW4gPSBNYXRoLm1pbihiLGMpOw0KCQkJaWYgKG1heCA+IDEzKSB7DQoJCQkJc2Vs ZWN0ZWREYXRlLnNldE1vbnRoKG1pbi0xKTsNCgkJCQlzZWxlY3RlZERhdGUuc2V0 RGF0ZShtYXgpOw0KCQkJfSBlbHNlIHsNCgkJCQlzZWxlY3RlZERhdGUuc2V0TW9u dGgoYi0xKTsNCgkJCQlzZWxlY3RlZERhdGUuc2V0RGF0ZShjKTsNCgkJCX0NCgkJ fSBlbHNlIGlmICh5ZWFySW5kZXggPT0gMikgeyAvKiB5ZWFyIGF0IHRoZSBlbmQg Ki8NCgkJCXNlbGVjdGVkRGF0ZS5zZXRGdWxsWWVhcihjKTsNCgkJCXZhciBtYXgg PSBNYXRoLm1heChhLGIpOw0KCQkJdmFyIG1pbiA9IE1hdGgubWluKGEsYik7DQoJ CQlpZiAobWF4ID4gMTMpIHsNCgkJCQlzZWxlY3RlZERhdGUuc2V0TW9udGgobWlu LTEpOw0KCQkJCXNlbGVjdGVkRGF0ZS5zZXREYXRlKG1heCk7DQoJCQl9IGVsc2Ug ew0KCQkJCXNlbGVjdGVkRGF0ZS5zZXRNb250aChiLTEpOw0KCQkJCXNlbGVjdGVk RGF0ZS5zZXREYXRlKGEpOw0KCQkJfQ0KCQl9IC8qIHllYXIgYXQgdGhlIGVuZCAq Lw0KCQkNCgkJLyogdGltZSAqLw0KCQlpZiAocmVzdWx0WzRdKSB7DQoJCQl2YXIg aCA9IHBhcnNlSW50KHJlc3VsdFs0XS5tYXRjaCgvWzAtOV0rLylbMF0sMTApOw0K CQkJdmFyIG0gPSAocmVzdWx0WzVdID8gcGFyc2VJbnQocmVzdWx0WzVdLm1hdGNo KC9bMC05XSsvKVswXSwxMCkgOiAwKTsNCgkJCXZhciBzID0gKHJlc3VsdFs2XSA/ IHBhcnNlSW50KHJlc3VsdFs2XS5tYXRjaCgvWzAtOV0rLylbMF0sMTApIDogMCk7 DQoJCQlzZWxlY3RlZERhdGUuc2V0SG91cnMoaCk7DQoJCQlzZWxlY3RlZERhdGUu c2V0TWludXRlcyhtKTsNCgkJCXNlbGVjdGVkRGF0ZS5zZXRTZWNvbmRzKHMpOw0K CQl9DQoJfSAvKiBmb3VuZCBwYXJzYWJsZSBkYXRhICovDQoNCglyZXR1cm4gc2Vs ZWN0ZWREYXRlOw0KfQ0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FsZW5k YXIuQnV0dG9uLCBvYmVjbnkgYnV0dG9uZWsgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLw0KLyoqDQogKiBAbmFtZSBTWk4uQ2FsZW5kYXIuQnV0dG9uDQogKiBAY29u c3RydWN0b3INCiAqLw0KU1pOLkNhbGVuZGFyLkJ1dHRvbiA9IFNaTi5DbGFzc01h a2VyLm1ha2VDbGFzcyh7DQoJTkFNRTogIkNhbGVuZGFyLkJ1dHRvbiIsDQoJVkVS U0lPTjogIjEuMCIsDQoJQ0xBU1M6ICJjbGFzcyINCn0pOw0KU1pOLkNhbGVuZGFy LkJ1dHRvbi5fYWN0aXZlRWxlbWVudCA9IGZhbHNlOw0KDQpTWk4uQ2FsZW5kYXIu QnV0dG9uLnByb3RvdHlwZS5fb3ZlciA9IGZ1bmN0aW9uKGUsZWxtKSB7DQoJaWYg KCFTWk4uQ2FsZW5kYXIuQnV0dG9uLl9hY3RpdmVFbGVtZW50KSB7DQoJCVNaTi5E b20uYWRkQ2xhc3MoZWxtLCJtb3VzZW92ZXIiKTsJDQoJfQ0KfQ0KDQpTWk4uQ2Fs ZW5kYXIuQnV0dG9uLnByb3RvdHlwZS5fb3V0ID0gZnVuY3Rpb24oZSxlbG0pIHsN CglTWk4uRG9tLnJlbW92ZUNsYXNzKGVsbSwibW91c2VvdmVyIik7DQp9DQoNClNa Ti5DYWxlbmRhci5CdXR0b24ucHJvdG90eXBlLl9vdmVySWdub3JlID0gZnVuY3Rp b24oZSxlbG0pIHsNCglpZiAoIVNaTi5Eb20uaGFzQ2xhc3MoZWxtLCJzZWxlY3Rl ZCIpKSB7IFNaTi5Eb20uYWRkQ2xhc3MoZWxtLCJtb3VzZW92ZXIiKTsgfQ0KfQ0K DQpTWk4uQ2FsZW5kYXIuQnV0dG9uLnByb3RvdHlwZS5fb3V0SWdub3JlID0gZnVu Y3Rpb24oZSxlbG0pIHsNCglTWk4uRG9tLnJlbW92ZUNsYXNzKGVsbSwibW91c2Vv dmVyIik7DQp9DQoNClNaTi5DYWxlbmRhci5CdXR0b24ucHJvdG90eXBlLl9kb3du ID0gZnVuY3Rpb24oZSxlbG0pIHsNCglTWk4uRXZlbnRzLmNhbmNlbERlZihlKTsN CglTWk4uQ2FsZW5kYXIuQnV0dG9uLl9hY3RpdmVFbGVtZW50ID0gZWxtOw0KCVNa Ti5Eb20uYWRkQ2xhc3MoZWxtLCJtb3VzZWRvd24iKTsJDQp9DQoNClNaTi5DYWxl bmRhci5CdXR0b24ucHJvdG90eXBlLl91cCA9IGZ1bmN0aW9uKGUsZWxtKSB7DQoJ U1pOLkNhbGVuZGFyLkJ1dHRvbi5fYWN0aXZlRWxlbWVudCA9IGZhbHNlOw0KCVNa Ti5Eb20ucmVtb3ZlQ2xhc3MoZWxtLCJtb3VzZWRvd24iKTsNCn0NCg0KU1pOLkNh bGVuZGFyLkJ1dHRvbi5wcm90b3R5cGUuYWRkT3ZlckV2ZW50cyA9IGZ1bmN0aW9u KGVsbSxpZ25vcmVPdGhlcnMpIHsNCglpZiAoaWdub3JlT3RoZXJzKSB7DQoJCXRo aXMuY2FsZW5kYXIuZWMucHVzaChTWk4uRXZlbnRzLmFkZExpc3RlbmVyKGVsbSwi bW91c2VvdmVyIix0aGlzLCJfb3Zlcklnbm9yZSIsZmFsc2UsdHJ1ZSkpOw0KCQl0 aGlzLmNhbGVuZGFyLmVjLnB1c2goU1pOLkV2ZW50cy5hZGRMaXN0ZW5lcihlbG0s Im1vdXNlb3V0Iix0aGlzLCJfb3V0SWdub3JlIixmYWxzZSx0cnVlKSk7DQoJfSBl bHNlIHsNCgkJdGhpcy5jYWxlbmRhci5lYy5wdXNoKFNaTi5FdmVudHMuYWRkTGlz dGVuZXIoZWxtLCJtb3VzZW92ZXIiLHRoaXMsIl9vdmVyIixmYWxzZSx0cnVlKSk7 DQoJCXRoaXMuY2FsZW5kYXIuZWMucHVzaChTWk4uRXZlbnRzLmFkZExpc3RlbmVy KGVsbSwibW91c2VvdXQiLHRoaXMsIl9vdXQiLGZhbHNlLHRydWUpKTsNCgl9DQp9 DQoNClNaTi5DYWxlbmRhci5CdXR0b24ucHJvdG90eXBlLmFkZERvd25FdmVudHMg PSBmdW5jdGlvbihlbG0pIHsNCgl0aGlzLmNhbGVuZGFyLmVjLnB1c2goU1pOLkV2 ZW50cy5hZGRMaXN0ZW5lcihlbG0sIm1vdXNlZG93biIsdGhpcywiX2Rvd24iLGZh bHNlLHRydWUpKTsNCgl0aGlzLmNhbGVuZGFyLmVjLnB1c2goU1pOLkV2ZW50cy5h ZGRMaXN0ZW5lcihlbG0sIm1vdXNldXAiLHRoaXMsIl91cCIsZmFsc2UsdHJ1ZSkp Ow0KfQ0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhbGVuZGFyLk5hdiwg bmF2aWdhY25pIGJ1dHRvbmVrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov DQovKioNCiAqIEBuYW1lIFNaTi5DYWxlbmRhci5OYXYNCiAqIEBjb25zdHJ1Y3Rv cg0KICovDQpTWk4uQ2FsZW5kYXIuTmF2ID0gU1pOLkNsYXNzTWFrZXIubWFrZUNs YXNzKHsNCglOQU1FOiAiQ2FsZW5kYXIuTmF2IiwNCglWRVJTSU9OOiAiMS4wIiwN CglFWFRFTkQ6IFNaTi5DYWxlbmRhci5CdXR0b24sDQoJQ0xBU1M6ICJjbGFzcyIN Cn0pOw0KDQpTWk4uQ2FsZW5kYXIuTmF2LnByb3RvdHlwZS4kY29uc3RydWN0b3Ig PSBmdW5jdGlvbihjYWxlbmRhciwgbGFiZWwsIHN0YXR1cywgbWV0aG9kKSB7DQoJ dGhpcy50ZCA9IFNaTi5jRWwoInRkIixmYWxzZSwiY2FsLWJ1dHRvbiIpOw0KCXRo aXMudGQuaW5uZXJIVE1MID0gbGFiZWw7DQoJdGhpcy5zdGF0dXMgPSBzdGF0dXM7 DQoJdGhpcy5jYWxlbmRhciA9IGNhbGVuZGFyOw0KCXRoaXMubWV0aG9kID0gbWV0 aG9kOw0KDQoJdGhpcy5hZGRPdmVyRXZlbnRzKHRoaXMudGQpOw0KCXRoaXMuYWRk RG93bkV2ZW50cyh0aGlzLnRkKTsNCgl0aGlzLmNhbGVuZGFyLmVjLnB1c2goU1pO LkV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLnRkLCJtb3VzZW92ZXIiLHRoaXMsIl9j aGFuZ2VTdGF0dXMiLGZhbHNlLHRydWUpKTsNCgl0aGlzLmNhbGVuZGFyLmVjLnB1 c2goU1pOLkV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLnRkLCJtb3VzZW91dCIsdGhp cywiX2NoYW5nZVN0YXR1cyIsZmFsc2UsdHJ1ZSkpOw0KCXRoaXMuY2FsZW5kYXIu ZWMucHVzaChTWk4uRXZlbnRzLmFkZExpc3RlbmVyKHRoaXMudGQsImNsaWNrIix0 aGlzLmNhbGVuZGFyLHRoaXMubWV0aG9kLGZhbHNlLHRydWUpKTsNCn0NCg0KU1pO LkNhbGVuZGFyLk5hdi5wcm90b3R5cGUuX2NoYW5nZVN0YXR1cyA9IGZ1bmN0aW9u KCkgew0KCWlmICh0aGlzLm9sZFN0YXR1cykgew0KCQl0aGlzLmNhbGVuZGFyLl9k b20uc3RhdHVzLmlubmVySFRNTCA9IHRoaXMub2xkU3RhdHVzOw0KCQl0aGlzLm9s ZFN0YXR1cyA9IGZhbHNlOw0KCX0gZWxzZSB7DQoJCXRoaXMub2xkU3RhdHVzID0g dGhpcy5jYWxlbmRhci5fZG9tLnN0YXR1cy5pbm5lckhUTUw7DQoJCXRoaXMuY2Fs ZW5kYXIuX2RvbS5zdGF0dXMuaW5uZXJIVE1MID0gdGhpcy5zdGF0dXM7DQoJfQ0K fQ0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhbGVuZGFyLkRheSwgamVk bmEgZGVubmkgYnVua2EgdiBrYWxlbmRhcmkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLw0KLyoqDQogKiBAbmFtZSBTWk4uQ2FsZW5kYXIuRGF5DQogKiBAY29uc3Ry dWN0b3INCiAqLw0KU1pOLkNhbGVuZGFyLkRheSA9IFNaTi5DbGFzc01ha2VyLm1h a2VDbGFzcyh7DQoJTkFNRTogIkNhbGVuZGFyLkRheSIsDQoJVkVSU0lPTjogIjEu MCIsDQoJRVhURU5EOiBTWk4uQ2FsZW5kYXIuQnV0dG9uLA0KCUNMQVNTOiAiY2xh c3MiDQp9KTsNCg0KU1pOLkNhbGVuZGFyLkRheS5wcm90b3R5cGUuJGNvbnN0cnVj dG9yID0gZnVuY3Rpb24oY2FsZW5kYXIpIHsNCgl0aGlzLnRkID0gU1pOLmNFbCgi dGQiLGZhbHNlLCJjYWwtZGF5Iik7DQoJdGhpcy5jYWxlbmRhciA9IGNhbGVuZGFy Ow0KCXRoaXMuZGF0ZSA9IGZhbHNlOw0KDQoJdGhpcy5hZGRPdmVyRXZlbnRzKHRo aXMudGQpOw0KCXRoaXMuYWRkRG93bkV2ZW50cyh0aGlzLnRkKTsNCgl0aGlzLmNh bGVuZGFyLmVjLnB1c2goU1pOLkV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLnRkLCJj bGljayIsdGhpcywiX2NsaWNrIixmYWxzZSx0cnVlKSk7DQoJdGhpcy5jYWxlbmRh ci5lYy5wdXNoKFNaTi5FdmVudHMuYWRkTGlzdGVuZXIodGhpcy50ZCwibW91c2Vv dmVyIix0aGlzLCJfY2hhbmdlU3RhdHVzIixmYWxzZSx0cnVlKSk7DQoJdGhpcy5j YWxlbmRhci5lYy5wdXNoKFNaTi5FdmVudHMuYWRkTGlzdGVuZXIodGhpcy50ZCwi bW91c2VvdXQiLHRoaXMsIl9jaGFuZ2VTdGF0dXMiLGZhbHNlLHRydWUpKTsNCn0N Cg0KU1pOLkNhbGVuZGFyLkRheS5wcm90b3R5cGUucmVkcmF3ID0gZnVuY3Rpb24o dG9kYXkpIHsNCgl0aGlzLnRkLmlubmVySFRNTCA9IHRoaXMuZGF0ZS5nZXREYXRl KCk7DQoJU1pOLkRvbS5yZW1vdmVDbGFzcyh0aGlzLnRkLCJjYWwtdG9kYXkiKTsN CglTWk4uRG9tLnJlbW92ZUNsYXNzKHRoaXMudGQsImNhbC1zZWxlY3RlZCIpOw0K CVNaTi5Eb20ucmVtb3ZlQ2xhc3ModGhpcy50ZCwiY2FsLW9ic29sZXRlIik7DQoJ aWYgKHRoaXMuY2FsZW5kYXIuZXF1YWxEYXRlcyh0aGlzLmRhdGUsdG9kYXkpKSB7 IFNaTi5Eb20uYWRkQ2xhc3ModGhpcy50ZCwiY2FsLXRvZGF5Iik7IH0NCglpZiAo dGhpcy5jYWxlbmRhci5lcXVhbERhdGVzKHRoaXMuZGF0ZSx0aGlzLmNhbGVuZGFy LnNlbGVjdGVkRGF0ZSkpIHsgU1pOLkRvbS5hZGRDbGFzcyh0aGlzLnRkLCJjYWwt c2VsZWN0ZWQiKTsgfQ0KCWlmICh0aGlzLmRhdGUuZ2V0TW9udGgoKSAhPSB0aGlz LmNhbGVuZGFyLmN1cnJlbnREYXRlLmdldE1vbnRoKCkpIHsgU1pOLkRvbS5hZGRD bGFzcyh0aGlzLnRkLCJjYWwtb2Jzb2xldGUiKTsgfSANCn0NCg0KU1pOLkNhbGVu ZGFyLkRheS5wcm90b3R5cGUuX2NsaWNrID0gZnVuY3Rpb24oKSB7DQoJaWYgKHRo aXMuY2FsZW5kYXIuY2FsbGJhY2spIHsNCgkJdGhpcy5jYWxlbmRhci5jYWxsYmFj ayh0aGlzLmNhbGVuZGFyLmZvcm1hdCh0aGlzLmRhdGUpKTsNCgl9DQoJdGhpcy5j YWxlbmRhci5tYWtlRXZlbnQoImRhdGVwaWNrIik7DQoJdGhpcy5jYWxlbmRhci5f aGlkZSgpOw0KfQ0KDQpTWk4uQ2FsZW5kYXIuRGF5LnByb3RvdHlwZS5fY2hhbmdl U3RhdHVzID0gZnVuY3Rpb24oKSB7DQoJaWYgKHRoaXMub2xkU3RhdHVzKSB7DQoJ CXRoaXMuY2FsZW5kYXIuX2RvbS5zdGF0dXMuaW5uZXJIVE1MID0gdGhpcy5vbGRT dGF0dXM7DQoJCXRoaXMub2xkU3RhdHVzID0gZmFsc2U7DQoJfSBlbHNlIHsNCgkJ dGhpcy5vbGRTdGF0dXMgPSB0aGlzLmNhbGVuZGFyLl9kb20uc3RhdHVzLmlubmVy SFRNTDsNCgkJdmFyIHN0ciA9IHRoaXMuY2FsZW5kYXIub3B0aW9ucy5kYXlOYW1l c1sodGhpcy5kYXRlLmdldERheSgpKzYpICUgN10rIiwgIjsNCgkJc3RyICs9IHRo aXMuZGF0ZS5nZXREYXRlKCkrIi4gIjsNCgkJc3RyICs9IHRoaXMuY2FsZW5kYXIu b3B0aW9ucy5tb250aE5hbWVzW3RoaXMuZGF0ZS5nZXRNb250aCgpXSsiICI7DQoJ CXN0ciArPSB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKTsNCgkJdGhpcy5jYWxlbmRh ci5fZG9tLnN0YXR1cy5pbm5lckhUTUwgPSBzdHI7DQoJfQ0KfQ0KDQovKiAtLS0t LS0tLS0tLS0tLS0tLS0gQ2FsZW5kYXIuUm9sbGVyLCByb2xvdmFjaSBtcnNrYSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8qKg0KICogQG5hbWUgU1pOLkNhbGVu ZGFyLlJvbGxlcg0KICogQGNvbnN0cnVjdG9yDQogKi8NClNaTi5DYWxlbmRhci5S b2xsZXIgPSBTWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3Moew0KCU5BTUU6ICJDYWxl bmRhci5Sb2xsZXIiLA0KCVZFUlNJT046ICIxLjAiLA0KCUNMQVNTOiAiY2xhc3Mi DQp9KTsNClNaTi5DYWxlbmRhci5Sb2xsZXIucHJvdG90eXBlLiRjb25zdHJ1Y3Rv ciA9IGZ1bmN0aW9uKGNhbGVuZGFyLCBwYXJlbnQsIHR5cGUsIHJpZ2h0QWxpZ24p IHsgLyogdHlwZTogMCB+IG1vbnRocywgLTEgfiBtaW51cyB5ZWFycywgMSB+IHBs dXMgeWVhcnMgKi8NCgl0aGlzLmNhbGVuZGFyID0gY2FsZW5kYXI7DQoJdGhpcy5w YXJlbnQgPSBwYXJlbnQ7DQoJdGhpcy50eXBlID0gdHlwZTsNCgl0aGlzLnJpZ2h0 QWxpZ24gPSByaWdodEFsaWduOw0KCXRoaXMuYnV0dG9ucyA9IFtdOw0KDQoJdGhp cy5kaXYgPSBTWk4uY0VsKCJkaXYiLGZhbHNlLCJjYWwtcm9sbGVyIik7DQoJdGhp cy5faGlkZSgpOw0KCXRoaXMuY2FsZW5kYXIuX2RvbS5jb250ZW50LmFwcGVuZENo aWxkKHRoaXMuZGl2KTsNCglmb3IgKHZhciBpPTA7aTwxMjtpKyspIHsNCgkJdmFy IGJ0biA9IG5ldyBTWk4uQ2FsZW5kYXIuUm9sbGVyQnV0dG9uKHRoaXMsdGhpcy5j YWxlbmRhcik7DQoJCXRoaXMuYnV0dG9ucy5wdXNoKGJ0bik7DQoJCXRoaXMuZGl2 LmFwcGVuZENoaWxkKGJ0bi5kaXYpOw0KCX0NCgl0aGlzLl9zaG93KCk7DQoJU1pO LkV2ZW50cy5hZGRUaW1lRnVuY3Rpb24odGhpcywgJ19zaG93VGltZW91dCcsIHRo aXMuX3Nob3cpOw0KCXRoaXMuY2FsZW5kYXIuZWMucHVzaChTWk4uRXZlbnRzLmFk ZExpc3RlbmVyKHRoaXMucGFyZW50LCJtb3VzZWRvd24iLHRoaXMsIl9oYW5kbGVE b3duIixmYWxzZSx0cnVlKSk7DQp9DQoNClNaTi5DYWxlbmRhci5Sb2xsZXIucHJv dG90eXBlLl9oYW5kbGVEb3duID0gZnVuY3Rpb24oKSB7DQoJdGhpcy5jYWxlbmRh ci5fdGltZXIgPSB0cnVlOw0KCXNldFRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXQs dGhpcy5jYWxlbmRhci5vcHRpb25zLnJvbGxlckRlbGF5KTsNCn0NCg0KU1pOLkNh bGVuZGFyLlJvbGxlci5wcm90b3R5cGUuX3Nob3cgPSBmdW5jdGlvbigpIHsNCglp ZiAoIXRoaXMuY2FsZW5kYXIuX3RpbWVyKSB7IHJldHVybjsgfQ0KCXZhciBwb3Mx ID0gU1pOLkRvbS5nZXRCb3hQb3NpdGlvbih0aGlzLnBhcmVudCk7DQoJdmFyIHBv czIgPSBTWk4uRG9tLmdldEJveFBvc2l0aW9uKHRoaXMuY2FsZW5kYXIuX2RvbS5j b250ZW50KTsNCgl0aGlzLmRpdi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsNCgl2 YXIgdyA9IHRoaXMuZGl2Lm9mZnNldFdpZHRoOw0KCWZvciAodmFyIGk9MDtpPDEy O2krKykgeyAvKiByZWZyZXNoIHJvbGxvdmVyIGxhYmVscyAqLw0KCQl2YXIgYnRu ID0gdGhpcy5idXR0b25zW2ldLmRpdjsNCgkJaWYgKFNaTi5Ccm93c2VyLmtsaWVu dCA9PSAiaWUiKSB7IGJ0bi5zdHlsZS53aWR0aCA9IHcrInB4IjsgfQ0KCQlzd2l0 Y2ggKHRoaXMudHlwZSkgew0KCQkJY2FzZSAtMToNCgkJCWNhc2UgMToNCgkJCQl2 YXIgeSA9IHRoaXMuY2FsZW5kYXIuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTsN CgkJCQlidG4uaW5uZXJIVE1MID0geSArIHRoaXMudHlwZSAqIChpKjIrMSk7DQoJ CQlicmVhazsNCgkJCQ0KCQkJY2FzZSAwOg0KCQkJCXRoaXMuYnV0dG9uc1tpXS52 YWx1ZSA9IGk7DQoJCQkJU1pOLkRvbS5yZW1vdmVDbGFzcyhidG4sInNlbGVjdGVk Iik7DQoJCQkJYnRuLmlubmVySFRNTCA9IHRoaXMuY2FsZW5kYXIub3B0aW9ucy5t b250aE5hbWVzU2hvcnRbaV07DQoJCQkJaWYgKGkgPT0gdGhpcy5jYWxlbmRhci5j dXJyZW50RGF0ZS5nZXRNb250aCgpKSB7IFNaTi5Eb20uYWRkQ2xhc3MoYnRuLCJz ZWxlY3RlZCIpOyB9DQoJCQlicmVhazsNCgkJfQ0KCX0NCg0KCXZhciBsID0gcG9z MS5sZWZ0LXBvczIubGVmdDsNCglpZiAodGhpcy5yaWdodEFsaWduKSB7IGwgKz0g dGhpcy5wYXJlbnQub2Zmc2V0V2lkdGgtdGhpcy5kaXYub2Zmc2V0V2lkdGggIH07 DQoJdGhpcy5kaXYuc3R5bGUubGVmdCA9IGwrInB4IjsNCgl0aGlzLmRpdi5zdHls ZS50b3AgPSAocG9zMS50b3AtcG9zMi50b3ArdGhpcy5wYXJlbnQub2Zmc2V0SGVp Z2h0KSsicHgiOw0KfQ0KDQpTWk4uQ2FsZW5kYXIuUm9sbGVyLnByb3RvdHlwZS5f aGlkZSA9IGZ1bmN0aW9uKCkgew0KCXRoaXMuZGl2LnN0eWxlLmRpc3BsYXkgPSAi bm9uZSI7DQp9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLSBDYWxlbmRhci5Sb2xs ZXJCdXR0b24sIHBydmVrIG5hIHJvbG92YWNjZSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8NCi8qKg0KICogQG5hbWUgU1pOLkNhbGVuZGFyLlJvbGxlckJ1dHRvbg0K ICogQGNvbnN0cnVjdG9yDQogKi8NClNaTi5DYWxlbmRhci5Sb2xsZXJCdXR0b24g PSBTWk4uQ2xhc3NNYWtlci5tYWtlQ2xhc3Moew0KCU5BTUU6ICJDYWxlbmRhci5S b2xsZXJCdXR0b24iLA0KCVZFUlNJT046ICIxLjAiLA0KCUVYVEVORDogU1pOLkNh bGVuZGFyLkJ1dHRvbiwNCglDTEFTUzogImNsYXNzIg0KfSk7DQpTWk4uQ2FsZW5k YXIuUm9sbGVyQnV0dG9uLnByb3RvdHlwZS4kY29uc3RydWN0b3IgPSBmdW5jdGlv bihyb2xsZXIsIGNhbGVuZGFyKSB7DQoJdGhpcy5yb2xsZXIgPSByb2xsZXI7DQoJ dGhpcy5jYWxlbmRhciA9IGNhbGVuZGFyOw0KDQoJdGhpcy5kaXYgPSBTWk4uY0Vs KCJkaXYiLGZhbHNlLCJsYWJlbCIpOw0KCXRoaXMuYWRkT3ZlckV2ZW50cyh0aGlz LmRpdix0cnVlKTsNCgl0aGlzLmNhbGVuZGFyLmVjLnB1c2goU1pOLkV2ZW50cy5h ZGRMaXN0ZW5lcih0aGlzLmRpdiwibW91c2V1cCIsdGhpcywiX3VwIixmYWxzZSx0 cnVlKSk7DQp9DQoNClNaTi5DYWxlbmRhci5Sb2xsZXJCdXR0b24ucHJvdG90eXBl Ll91cCA9IGZ1bmN0aW9uKGUsZWxtKSB7DQoJdmFyIGNhbCA9IHRoaXMuY2FsZW5k YXI7DQoJc3dpdGNoICh0aGlzLnJvbGxlci50eXBlKSB7DQoJCWNhc2UgLTE6DQoJ CWNhc2UgMToNCgkJCWNhbC5jdXJyZW50RGF0ZS5zZXRGdWxsWWVhcih0aGlzLmRp di5pbm5lckhUTUwpOw0KCQkJY2FsLl9zd2l0Y2hUbygpOw0KCQlicmVhazsNCgkJ DQoJCWNhc2UgMDoNCgkJCWNhbC5jdXJyZW50RGF0ZS5zZXRNb250aCh0aGlzLnZh bHVlKTsNCgkJCWNhbC5fc3dpdGNoVG8oKTsNCgkJYnJlYWs7DQoJfQ0KfQ0K ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=email.png Content-Type: image/png; name=email.png Content-Location: http://martanek.net/templates/special_templates/images/email.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAMAAADqmnyMAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURTMz M3x8fJWVlf///3zf0REAAAAEdFJOU////wBAKqn0AAAASUlEQVR42qTQwQoAIAgD 0M3+/5/DUKZRh2ineIirMA7BC2JLYJsKrDswEqVNoFqhLYU1pCuMFRm1fkik2pnI ek/i/qKfX5oCDAA05wMpxvOapgAAAABJRU5ErkJggg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=tisk.png Content-Type: image/png; name=tisk.png Content-Location: http://martanek.net/templates/special_templates/images/tisk.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAMAAACuAq9NAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASUExURTMz M9fX1+vr68zMzHx8fP///24Ke/IAAAAGdFJOU///////ALO/pL8AAABCSURBVHja hI5BDgAhDAKnq/z/y0ZUPHhY0gMEaItUbJSEZ4FfmabbxLP/ypu17DSDvsJ8xmTe nGKhHD608rKGAAMA0AICD+TS7XcAAAAASUVORK5CYII= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=badge.png Content-Type: image/png; name=badge.png Content-Location: http://linkuj.cz/img/badge.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAACA0lEQVRIieVXPW8T QRB9s7d3J8W2EoxAgAJy6JAoQRQpQAoVLamIlPJc8Qf4CfyDayOgCgUFJR1KAUUi UkQiBSBAxnw4Dig6Z327Q7EXczrbC3EiDMmrZmZn38zbPe3uURRFOE6QAOI4Hncb fwn1el1a69ajNsCVwLt7dWL2gnz1Jb3/fKfd4QAsQCnjycLU4nJrvO0eEEvzVQBi z2XJOBnS+UkBcLOt0y4DAMgATONq8vCR7TCBNKE2Jc6UxY7itaZRmsGkMqk8vg4P GSLvXDotQ4lPP8zGVwWQ3VgGA4O32H4k/W4+3h90GMOYe8ECcyHinm6RCZaAAE9X fG342Ru1lTDtqaRhcp0YVnJpvjraWWAnLi63eszW3S9PJpiAauhNT1Jj26x+VB6E HRMA8yiC850Vmt4/WZH5IISZYA1MhF7gY6Nlvu0C0GfLtHA5vHYuLPvkj9pZQfPA VcjDPVrIcah1rEJ2aAWATrVKcaos5mYCITBzQt68KJMUL97Llw3tLu8oPFCzze+N 9qb3RxzJjuqOtaAoiuI4vv2wzYKjK6XrNd8wAPgepMBWgpV3ar2Z3rtROgL38K+H B4iJ6cFqsvKhW/LBwFwt2N7F0031+nPXk06m/woyZ+gk5fWGfXCIt61Op2u+d0wo yfOOzj2cCX58p/Lb1D85Uf590HH7W/oJHZnxCbNdN2QAAAAASUVORK5CYII= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=icon.png Content-Type: image/png; name=icon.png Content-Location: http://www.jagg.cz/icon.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhk iAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKVSURBVDiN jZLNS1RRGMafc+/cj3Hm6owzaU5oSmpOmRBWRBsxCKJ29h+EQdgm3NTajQMVtYw2 pVCQtSiCghYFfVBamKLN5EdmDY0yTjpM83Hnfpy3xR1Fc4IOvJz3HJ7nd95zzgsi QrmIDkL7NtQ5Ebvm7fuXhoggoMyIRZigBFqeBg+da/d1nL0xPeg6Xk4HoDxAkD39 la2nj3iquBhobpe0pu4nsQjz/xcgFmHNSnDfgG+nKjNrFZKYgX9vl2IrtXdjESb+ rWdEhFiEtTGX3Oty+3oExR/a0dbh0mqDIgQ3wBRwpiC1sGzoyVniheTHwkr0FoiP hC+Tzmauig+JSSf9DSFZqw1KaqUPTHQDgrotbC7B0AXk07liLj7Oc99fdrsMi6zq OlWu2a1IQB6wOMC3myGoEAUVbrcKSZGVzELBuPcOVaJXptFwnee81npGdlUfBtQm x2CsADwLkAWQsTETN5GcmTPH378Z6Rviz8W3s5R5cPPScsOullOe0H5RkDRADgJK vWPSF7dAfi0m7J/TY4s914sDuokJAQAuDGP4w4v7t9PxBRO8CPCi88TqHsB/ApDr AHMNxfQSktFP+sU7uf50Hp+JqCgAABHZAbfxyC6scXDdAVDRORXkVOPrBrwHwCUt /XoWMSJKAoBr/T+DGhQmMIB0gJsAmQA3SqU7OWMmRIG5AaTWfRsAAIws3TFxA0Yu h9+plCUrTKzwSUwUbIDrABEAiOUAGTO7ytbisDOJeSu/8rUQnVt6HKrxhAPV/oMV gRpb9ciqZRmFzR28GTCV+PJq8kciHR2dp7ErzzAFwACy2c7GbGNvV/xouF46lsrw OQDWllbeWDDWCqCydMcUEWVL+yKAYCm8ACaJSAeAP16IUAynOqOJAAAAAElFTkSu QmCC ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=delicious.gif Content-Type: image/gif; name=delicious.gif Content-Location: http://martanek.net/templates/images/social_groups/delicious.gif Content-Transfer-Encoding: Base64 R0lGODlhEgASAJEAAAAAAN3d3QAA/////yH5BAUUAAEALAAAAAASABIAAAIxnH+i u+gMHYJMJqqswVlzoQ1fOHocgKZpwLatCrsyrMouvdosjuo77wvwAMFhEegrAAA7 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=digg.gif Content-Type: image/gif; name=digg.gif Content-Location: http://martanek.net/templates/images/social_groups/digg.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAOAMQZANvb2/n5+dfX1/Dw8O3t7dLS0tXV1c/Pz+np6dDQ0Pj4+Pb2 9szMzO7u7vX19dbW1vLy8vv7++Xl5eLi4tjY2N7e3qioqP///5mZmf///wAAAAAA AAAAAAAAAAAAAAAAACH5BAEAABkALAAAAAAQAA4AAAVyYCaOomWaGImto3W9Vypi byC7DiHJ9BUME4zpoqsILbTfRICJuCSVB4ayugAFB4xtxaXSlgcGZlEpU87UDHc1 JCAkE6NM3bq844A5vXSBVwBpMywZLnEWFAY8MCkufxYGBTwKEA2MF4AWBQk8a2pr XBkhADs= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=technorati.gif Content-Type: image/gif; name=technorati.gif Content-Location: http://martanek.net/templates/images/social_groups/technorati.gif Content-Transfer-Encoding: Base64 R0lGODlhDgARALMNAIG8PInASN/uztDmtufy2sDdnff786nRecjiqbDVhaHNbZnJ Ye/35////wAAAAAAACH5BAEAAA0ALAAAAAAOABEAAARPsMlxAgDhDCnNuiCoGI13 KYggIMq1GMWFcBxyFVZC0wl2CTuOILQJNgaXA4YQJFgOTkyBIWHglseQNlBsaEEJ qoQgVamCggTJyG6733B2BAA7 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=blinklist.gif Content-Type: image/gif; name=blinklist.gif Content-Location: http://martanek.net/templates/images/social_groups/blinklist.gif Content-Transfer-Encoding: Base64 R0lGODlhEgASAMQAAP////9mAECfz8/n83u93v+zgN7v95/P5+j0+YfD4f9wEP/P r0ul0m+32/b6/f/t4P+DMFir1bfb7f/272Ox2P+MQP/Fn//jz/+8j/95IP+yf5TJ 5P+WUO32+v+pcAAAACH5BAAAAAAALAAAAAASABIAAAWBICCOUiMIBDKuI3G+78CK J6OOyZmwpzHTgkNL4ANkAkjFBDhyUAATpBR5ATgEEUDAIpp6mdIHoOBFLgAurVQh 4ng9gINAHWADKuUCYDNHijVlSExnPmRlEDRZaHNjXogADIxMIhgVeiIUQTyaKwg6 Py4wMT8kJig3pAAGA6ytHSwhADs= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=furl.gif Content-Type: image/gif; name=furl.gif Content-Location: http://martanek.net/templates/images/social_groups/furl.gif Content-Transfer-Encoding: Base64 R0lGODdhEAARAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8EAgAGAg AIAgAKAgAMAgAOAgAABAACBAAEBAAGBAAIBAAKBAAMBAAOBAAABgACBgAEBgAGBg AIBgAKBgAMBgAOBgAACAACCAAECAAGCAAICAAKCAAMCAAOCAAACgACCgAECgAGCg AICgAKCgAMCgAOCgAADAACDAAEDAAGDAAIDAAKDAAMDAAODAAADgACDgAEDgAGDg AIDgAKDgAMDgAODgAAAAQCAAQEAAQGAAQIAAQKAAQMAAQOAAQAAgQCAgQEAgQGAg QIAgQKAgQMAgQOAgQABAQCBAQEBAQGBAQIBAQKBAQMBAQOBAQABgQCBgQEBgQGBg QIBgQKBgQMBgQOBgQACAQCCAQECAQGCAQICAQKCAQMCAQOCAQACgQCCgQECgQGCg QICgQKCgQMCgQOCgQADAQCDAQEDAQGDAQIDAQKDAQMDAQODAQADgQCDgQEDgQGDg QIDgQKDgQMDgQODgQAAAgCAAgEAAgGAAgIAAgKAAgMAAgOAAgAAggCAggEAggGAg gIAggKAggMAggOAggABAgCBAgEBAgGBAgIBAgKBAgMBAgOBAgABggCBggEBggGBg gIBggKBggMBggOBggACAgCCAgECAgGCAgICAgKCAgMCAgOCAgACggCCggECggGCg gICggKCggMCggOCggADAgCDAgEDAgGDAgIDAgKDAgMDAgODAgADggCDggEDggGDg gIDggKDggMDggODggAAAwCAAwEAAwGAAwIAAwKAAwMAAwOAAwAAgwCAgwEAgwGAg wIAgwKAgwMAgwOAgwABAwCBAwEBAwGBAwIBAwKBAwMBAwOBAwABgwCBgwEBgwGBg wIBgwKBgwMBgwOBgwACAwCCAwECAwGCAwICAwKCAwMCAwOCAwACgwCCgwECgwGCg wICgwKCgwMCgwOCgwADAwCDAwEDAwGDAwIDAwKDAwP/78KCgpICAgP8AAAD/AP// AAAA//8A/wD//////yH5BAAAAAAALAAAAAAQABEAAAiXAP8JHEiw4EAACBMqRHhw n8OHPyL+cAjgH4AXGDGeOPEKAYIDbzAi3EjyxAGCZzaOLPlBoD0vb0iu3PjhjMBX H0rOPHPq3c1TKVUCoGnP4CuZQ098OGXKpalTOYWS/OBF4LsLH6KeQBh1qUCoLLlm /fBK4JexY8V+uFD0H1a0H9S2/GfvLdqKAC7ofcBXr98LFQUuHBw4IAA7 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=reddit.gif Content-Type: image/gif; name=reddit.gif Content-Location: http://martanek.net/templates/images/social_groups/reddit.gif Content-Transfer-Encoding: Base64 R0lGODlhEgASAPcAAP///+jo6MrKyoODg6SkpKWlpYKCgszMzIqKinZ2dn19fXR0 dPf394WFhZSUlJycnH9/f4aGhv39/VhYWG9vb8fHx6ampqurq5CQkIuLi4eHh66u ru3t7cnJyXx8fIiIiPr6+ldXV8jIyGZmZv7+/v+CU729vfn5+ZGRkbGxsf+NZP+/ p83NzS8vL+fn5//l3Ht7e9PT0/Hx8fz8/JOTk35+fsDAwJmZmf+JYmFhYdvb3P+J ZM/Pz+/v73Nzc/9nL+Dg4P+JXcXFxWlpaf+piJqampeXl5ubm6Ghoerq6uHh4by8 vLu7u+vr6zc3N21tbXh4eP8dAGRkZKCgoP+CWUdHR//m3bOzszg4OFZWVlRUVOnp 6aenp56enl9fX1NTU1paWv/Swf/6+f/OvYSEhO7u7piYmEBAQNbW1jMzM46Ojnd3 d8bGxnBwcFtbW/++p//+/l1dXU9PT2JiYsPDw93d3Xl5edzc3HV1dZ+fn5aWlmpq av8hAKqqqtLS0uPj4+Tk5P/Uw//RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAASABIAAAj5AAEIHDgQUAMLdVKEgCGD oEMACKAcSYCFg4INDweCoBBAYAI9XipkFBhjwcAeSAQ8PGGCxoA4choU4eGwSQ0K Hp4kuOAnQIAOXXy0GbAHxQwyDxaA0THSxpk+Hwh4MLCABIAVOF4IDEQlDIAAcww4 YNICCAAxP/gQEVgiShCBBJwoASBFIJw3KqwIFLRjjEABGQSuOTCSoJE8AoVMKAOA gRkRW1xcKSAQzYQkAx+EYANAAAQ7eAbcAcDlC2GCLEa4KdDhgIAKN6oo+JMxh5Yp HxBowGAhDYKMBLI4cChBwZAlxA0UwOCQQYQLgQmCiLBBjUMOEOhoGBgQADs= ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=lupa_martanek_transparent.png Content-Type: image/png; name=lupa_martanek_transparent.png Content-Location: http://martanek.net/templates/images/lupa_martanek_transparent.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAA8AAAAZCAYAAADuWXTMAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA05JREFUeNrsVM9vG0UU/mZnvLu21+u1 iZvY4Jr8Eink0LTlABKUC7f+AwhVgkv/Av4EJC6VeusFUCOVQw9wAEEloiITUbBo Q0uwUtQeEqlK3TTBSZz1r53dneWNkVJRuJRemcuMnuab773vffNYkiT4r8vAM6z/ wU+5xMqNOhgDolDRnrxTrZ280Ot366ZlN5VSX7q5wgm6t/Lb6ve/M/y9razdDlKD Qee1RKlFv7tXUIbyVMyhXxwOenAz2Z5XKDdSKet8c7X+7ZNpu2SUpdbWRpWlbc/O l+CUxmB5HgqVCljGzq5vNKeTRJ3+R9o/NpZ8bjDr2MKrkLFCFMdAHCFWCZEzGNxE +YXqZHN1+agmo5A6ZA4izEGkwTilSjWpRKFLwYOBxG53iA7tITNhmta7lsmVYbAR UNHj4vnK5Hud/j50UEYKB8MAPQKbgiOdEiP2QRDA9bxdpvxTKmErGkhiQsgwPMkM Y5SLZtNAJ52CZ1uwTaETBVcxxY1ivy8/nJp54x5d/aC1eUMa+Vx6JpQB2vs+Aqo3 bREwY8PLWig4NqpFF1EgIYMh4gRXCXhLZ+33hhBHXLn99bVmpTQ+AdvKwOQMjp1C Lm0iY6bAhYVfmncx5kQXyqV8Y3vr1k1ds5vLQnT8zsKZ0/PJ1foyai9OY3ayikBQ /aQLTxiWr1/HWnMVx+cm7tic3dQa6AYLLiAMYur0BlYsh2fHs+En3fYDDDoWvlt/ IFsPt8y1tbs4cWwKOcf9WAj+E4l1JyaxgljCECRWe78v827m8kQx/b7gatHNiOZU xbtipoy3X5mtUJ9rKE/UdHt+SJCYI2tqD+gW/bHXxZiXlf0gWpx/+c1LtdrCr6cW 3towOerzL1W/0iwZJ0cdsYrkhU8Pvb1+r4HPl25jfqYMJ2tjGITIk8o/Nx8CYReV ce+oH8S3hekVXz8+h83NDXAenyHoN4aMYvSpvwU3gzCMRz9Mz8TeUJL6nNiM+55j nXu03cKjvQM4uecIxy9xbsyO/rP+aLp2lfzl54g8LmUIK2VAGyiM1BeTleJn15Yb KB0pYWfbL+3s+L3DYfBvA5ixx+cwis9OVfP3P7p4mbIaYPeg1xJPMzlI7VocqzQp Pq2I7k8BBgAnsHMa1t6W5gAAAABJRU5ErkJggg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=valid-xhtml10.png Content-Type: image/png; name=valid-xhtml10.png Content-Location: http://www.w3.org/Icons/valid-xhtml10 Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAADAFBMVEUBAAAIBgMM CQQLCwsSDgYXEgkaFQoUFBQcHBwlHQ4rIhEwJhM2KxU7Lxc9MBgjIyMoKCg0MzI7 OztBNBpOPh5OSz9TQiFeSyVkUChqVCpuWCx1Rzl0XC5+ZDFOTk5ST0tWUk1VVVVc XFxqXUplZWVra2twcHB7e3sAWpwIX58JYJ8OY6ERZaIVaKQaa6Yebaghb6klcqop dawxea82fbE4frI+grRFhrZMi7pVkb1alL9dlsBkm8NoncRtocZ0pcl8qsyWBAOZ AACcCASIIBmdNiegDge3PB6mPiqBZzODaDSKbjaOcTiUdjuXeDyaez26QiG/TCaA eWihclPATifBUCjIXy/QbzfWej3Yfj+KgWWjgkGui0WxjUa0gVi3kkm6lEq+mEyj kmuzn2e7pnLFnU7eikXOpFHRp1PVqlXarlfesVjjlUrmm03poFDtqVTitFrmuFzq u13ywWD7xWL+y2WDg4OXl5eYmJippZ61rZisrKy0tLS/v7+Crs6FsNCLtNKQt9SW u9aYvNebvtifwdqjw9uox92ryd6yzeG20OPCwsLMzMzU1NTA1ufG2ujN3+zT4+7d 6fL/7Mbn5+fs7Ozl7vXp8fbu9Pj09PTy9/r1+Pv+/v7MzMwAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADn4rtgAAAA nnRSTlP///////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// ////////////////////////AD6H4/gAAAABYktHRP+lB/LFAAAACXBIWXMAAABI AAAASABGyWs+AAADSUlEQVRIx+2WaU8TURSGzyCLQEUxiFYtCEo8Da3sYglQbDUa luISV6pYFdsyop1Or8ElSgg2RSjgArSZ63/13JkOXRBZgn7yTXpmyzwz857lFhb3 XW9/CsEi317f2c71/OnZ/+C9gSdDKmNySI2GorQNxiaDpFA4FgrS+WgoxFhwck/g MTjBwmCJ+WCYMQso5SBUoQCcZKwGgClg2QSOt7jp7pnWGQFJ2e0tpFYX5+k3TUn+ QTOsqAV/hRRmJngiYAVrYILAkipT+C34GzqJ+AW7BDiBhga4VgdwIFmdNMBKMcAQ I3Ctz1cOCmPD4hEKVBX5TpdYfg/m7bhC0YHrFHvQtbY2h840fw9Hzh8tO7CaSZ6V 3k2AdWXBNdaKosGtwG78SLED4xSd+I1rbWK37ii5cO58pirCUglYBXhIjVlywWGQ oluBl7CT83VE8nUZ28lu3ZUycUlLZ8CVUrgGnpgeR7JgZrUxHVzh9/tjAuzxbFRF M7nwGbGZ8wF083UHLlPqDuZWxSAZrBSXqmbyGBuBEQNM0sFCUQJf8QiyAXbRp7uw A5fI7iXei9ifotzlgiMy3R+NqKpMRiv6gUwVzfTAlAiLyUJkxVWPUAYcR5fWfCGB 7jV00GOciJ0an95T5133GDLAKXTMY1/K3j6HPeJ42YEJvrAX8M0M1+y8LvJhnnej URmc92HvH2aFGtuWa4I/Ido1qgbElH48j235YNkiwbhxc6QKpJN56NiN18bOnQ2u CV5BvCRaEC8aqAS2rBp76bSRPFutCT4No8chkMu95vG+ynIve3KHUAvO6i04w2d7 dCu6Fwxy00LGCpsJrixlQbAVfL/35Qb3VN5068M1vQW/UrG5U3EHxrXGH4IrJTfA xluqUMWicCjLva/zvC8Mf72388fmfIeIS61UIU60o2jFxbKGxsMwzQvfuKScyTRE cxz2ZOV9XDCPtY/6ZoB+X/udzl6Rw2RDWfV7ngceonFxXIqMgj83eXey3Fe7HfRh 0bAlondZQJKgXM2rsrsmd2rXK4j6ZHx8PMAmhM/y2CO1oH7vmdx9X0wfZLj7v0q/ 8Orcv7D8T039s/8VH7bVu2c718NbJrhuBzq2leo3nTlTX62DfwGZkKiGotSUXQAA AABJRU5ErkJggg== ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=urchin.js Content-Type: text/javascript; name=urchin.js Content-Location: http://www.google-analytics.com/urchin.js Content-Transfer-Encoding: 8bit //-- Google Analytics Urchin Module //-- Copyright 2007 Google, All Rights Reserved. //-- Urchin On Demand Settings ONLY var _uacct=""; // set up the Urchin Account var _userv=1; // service mode (0=local,1=remote,2=both) //-- UTM User Settings var _ufsc=1; // set client info flag (1=on|0=off) var _udn="auto"; // (auto|none|domain) set the domain name for cookies var _uhash="on"; // (on|off) unique domain hash for cookies var _utimeout="1800"; // set the inactive session timeout in seconds var _ugifpath="/__utm.gif"; // set the web path to the __utm.gif file var _utsp="|"; // transaction field separator var _uflash=1; // set flash version detect option (1=on|0=off) var _utitle=1; // set the document title detect option (1=on|0=off) var _ulink=0; // enable linker functionality (1=on|0=off) var _uanchor=0; // enable use of anchors for campaign (1=on|0=off) var _utcp="/"; // the cookie path for tracking var _usample=100; // The sampling % of visitors to track (1-100). //-- UTM Campaign Tracking Settings var _uctm=1; // set campaign tracking module (1=on|0=off) var _ucto="15768000"; // set timeout in seconds (6 month default) var _uccn="utm_campaign"; // name var _ucmd="utm_medium"; // medium (cpc|cpm|link|email|organic) var _ucsr="utm_source"; // source var _uctr="utm_term"; // term/keyword var _ucct="utm_content"; // content var _ucid="utm_id"; // id number var _ucno="utm_nooverride"; // don't override //-- Auto/Organic Sources and Keywords var _uOsr=new Array(); var _uOkw=new Array(); _uOsr[0]="google"; _uOkw[0]="q"; _uOsr[1]="yahoo"; _uOkw[1]="p"; _uOsr[2]="msn"; _uOkw[2]="q"; _uOsr[3]="aol"; _uOkw[3]="query"; _uOsr[4]="aol"; _uOkw[4]="encquery"; _uOsr[5]="lycos"; _uOkw[5]="query"; _uOsr[6]="ask"; _uOkw[6]="q"; _uOsr[7]="altavista"; _uOkw[7]="q"; _uOsr[8]="netscape"; _uOkw[8]="query"; _uOsr[9]="cnn"; _uOkw[9]="query"; _uOsr[10]="looksmart"; _uOkw[10]="qt"; _uOsr[11]="about"; _uOkw[11]="terms"; _uOsr[12]="mamma"; _uOkw[12]="query"; _uOsr[13]="alltheweb"; _uOkw[13]="q"; _uOsr[14]="gigablast"; _uOkw[14]="q"; _uOsr[15]="voila"; _uOkw[15]="rdata"; _uOsr[16]="virgilio"; _uOkw[16]="qs"; _uOsr[17]="live"; _uOkw[17]="q"; _uOsr[18]="baidu"; _uOkw[18]="wd"; _uOsr[19]="alice"; _uOkw[19]="qs"; _uOsr[20]="yandex"; _uOkw[20]="text"; _uOsr[21]="najdi"; _uOkw[21]="q"; _uOsr[22]="aol"; _uOkw[22]="q"; _uOsr[23]="club-internet"; _uOkw[23]="query"; _uOsr[24]="mama"; _uOkw[24]="query"; _uOsr[25]="seznam"; _uOkw[25]="q"; _uOsr[26]="search"; _uOkw[26]="q"; _uOsr[27]="wp"; _uOkw[27]="szukaj"; _uOsr[28]="onet"; _uOkw[28]="qt"; _uOsr[29]="netsprint"; _uOkw[29]="q"; _uOsr[30]="google.interia"; _uOkw[30]="q"; _uOsr[31]="szukacz"; _uOkw[31]="q"; _uOsr[32]="yam"; _uOkw[32]="k"; _uOsr[33]="pchome"; _uOkw[33]="q"; _uOsr[34]="kvasir"; _uOkw[34]="searchExpr"; _uOsr[35]="sesam"; _uOkw[35]="q"; _uOsr[36]="ozu"; _uOkw[36]="q"; _uOsr[37]="terra"; _uOkw[37]="query"; _uOsr[38]="nostrum"; _uOkw[38]="query"; _uOsr[39]="mynet"; _uOkw[39]="q"; _uOsr[40]="ekolay"; _uOkw[40]="q"; _uOsr[41]="search.ilse"; _uOkw[41]="search_for"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Referral domains to Ignore var _uRno=new Array(); //_uRno[0]=".urchin.com"; //-- **** Don't modify below this point *** var _uff,_udh,_udt,_ubl=0,_udo="",_uu,_ufns=0,_uns=0,_ur="-",_ufno=0,_ust=0,_ubd=document,_udl=_ubd.location,_udlh="",_uwv="1.3"; var _ugifpath2="http://www.google-analytics.com/__utm.gif"; if (_udl.hash) _udlh=_udl.href.substring(_udl.href.indexOf('#')); if (_udl.protocol=="https:") _ugifpath2="https://ssl.google-analytics.com/__utm.gif"; if (!_utcp || _utcp=="") _utcp="/"; function urchinTracker(page) { if (_udl.protocol=="file:") return; if (_uff && (!page || page=="")) return; var a,b,c,xx,v,z,k,x="",s="",f=0,nv=0; var nx=" expires="+_uNx()+";"; var dc=_ubd.cookie; _udh=_uDomain(); if (!_uVG()) return; _uu=Math.round(Math.random()*2147483647); _udt=new Date(); _ust=Math.round(_udt.getTime()/1000); a=dc.indexOf("__utma="+_udh+"."); b=dc.indexOf("__utmb="+_udh); c=dc.indexOf("__utmc="+_udh); if (_udn && _udn!="") { _udo=" domain="+_udn+";"; } if (_utimeout && _utimeout!="") { x=new Date(_udt.getTime()+(_utimeout*1000)); x=" expires="+x.toGMTString()+";"; } if (_ulink) { if (_uanchor && _udlh && _udlh!="") s=_udlh+"&"; s+=_udl.search; if(s && s!="" && s.indexOf("__utma=")>=0) { if (!(_uIN(a=_uGC(s,"__utma=","&")))) a="-"; if (!(_uIN(b=_uGC(s,"__utmb=","&")))) b="-"; if (!(_uIN(c=_uGC(s,"__utmc=","&")))) c="-"; v=_uGC(s,"__utmv=","&"); z=_uGC(s,"__utmz=","&"); k=_uGC(s,"__utmk=","&"); xx=_uGC(s,"__utmx=","&"); if ((k*1) != ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) {_ubl=1;a="-";b="-";c="-";xx="-";z="-";v="-";} if (a!="-" && b!="-" && c!="-") f=1; else if(a!="-") f=2; } } if(f==1) { _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+c+"; path="+_utcp+";"+_udo; } else if (f==2) { a=_uFixA(s,"&",_ust); _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } else if (a>=0 && b>=0 && c>=0) { b = _uGC(dc,"__utmb="+_udh,";"); b = ("-" == b) ? _udh : b; _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo; } else { if (a>=0) a=_uFixA(_ubd.cookie,";",_ust); else { a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1"; nv=1; } _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } if (_ulink && xx && xx!="" && xx!="-") { xx=_uUES(xx); if (xx.indexOf(";")==-1) _ubd.cookie="__utmx="+xx+"; path="+_utcp+";"+nx+_udo; } if (_ulink && v && v!="" && v!="-") { v=_uUES(v); if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo; } var wc=window; var c=_ubd.cookie; if(wc && wc.gaGlobal && wc.gaGlobal.dh==_udh){ var g=wc.gaGlobal; var ua=c.split("__utma="+_udh+".")[1].split(";")[0].split("."); if(g.sid)ua[3]=g.sid; if(nv>0){ ua[2]=ua[3]; if(g.vid){ var v=g.vid.split("."); ua[0]=v[0]; ua[1]=v[1]; } } _ubd.cookie="__utma="+_udh+"."+ua.join(".")+"; path="+_utcp+";"+nx+_udo; } _uInfo(page); _ufns=0; _ufno=0; if (!page || page=="") _uff=1; } function _uGH() { var hid; var wc=window; if (wc && wc.gaGlobal && wc.gaGlobal.hid) { hid=wc.gaGlobal.hid; } else { hid=Math.round(Math.random()*0x7fffffff); if (!wc.gaGlobal) wc.gaGlobal={}; wc.gaGlobal.hid=hid; } return hid; } function _uInfo(page) { var p,s="",dm="",pg=_udl.pathname+_udl.search; if (page && page!="") pg=_uES(page,1); _ur=_ubd.referrer; if (!_ur || _ur=="") { _ur="-"; } else { dm=_ubd.domain; if(_utcp && _utcp!="/") dm+=_utcp; p=_ur.indexOf(dm); if ((p>=0) && (p<=8)) { _ur="0"; } if (_ur.indexOf("[")==0 && _ur.lastIndexOf("]")==(_ur.length-1)) { _ur="-"; } } s+="&utmn="+_uu; if (_ufsc) s+=_uBInfo(); if (_uctm) s+=_uCInfo(); if (_utitle && _ubd.title && _ubd.title!="") s+="&utmdt="+_uES(_ubd.title); if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname); if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample); s+="&utmhid="+_uGH(); s+="&utmr="+_ur; s+="&utmp="+pg; if ((_userv==0 || _userv==2) && _uSP()) { var i=new Image(1,1); i.src=_ugifpath+"?"+"utmwv="+_uwv+s; i.onload=function() { _uVoid(); } } if ((_userv==1 || _userv==2) && _uSP()) { var i2=new Image(1,1); i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS(); i2.onload=function() { _uVoid(); } } return; } function _uVoid() { return; } function _uCInfo() { if (!_ucto || _ucto=="") { _ucto="15768000"; } if (!_uVG()) return; var c="",t="-",t2="-",t3="-",o=0,cs=0,cn=0,i=0,z="-",s=""; if (_uanchor && _udlh && _udlh!="") s=_udlh+"&"; s+=_udl.search; var x=new Date(_udt.getTime()+(_ucto*1000)); var dc=_ubd.cookie; x=" expires="+x.toGMTString()+";"; if (_ulink && !_ubl) { z=_uUES(_uGC(s,"__utmz=","&")); if (z!="-" && z.indexOf(";")==-1) { _ubd.cookie="__utmz="+z+"; path="+_utcp+";"+x+_udo; return ""; } } z=dc.indexOf("__utmz="+_udh+"."); if (z>-1) { z=_uGC(dc,"__utmz="+_udh+".",";"); } else { z="-"; } t=_uGC(s,_ucid+"=","&"); t2=_uGC(s,_ucsr+"=","&"); t3=_uGC(s,"gclid=","&"); if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) { if (t!="-" && t!="") c+="utmcid="+_uEC(t); if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); } if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); } t=_uGC(s,_uccn+"=","&"); if (t!="-" && t!="") c+="|utmccn="+_uEC(t); else c+="|utmccn=(not+set)"; t=_uGC(s,_ucmd+"=","&"); if (t!="-" && t!="") c+="|utmcmd="+_uEC(t); else c+="|utmcmd=(not+set)"; t=_uGC(s,_uctr+"=","&"); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); } t=_uGC(s,_ucct+"=","&"); if (t!="-" && t!="") c+="|utmcct="+_uEC(t); t=_uGC(s,_ucno+"=","&"); if (t=="1") o=1; if (z!="-" && o==1) return ""; } if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (_ufns==1) c=_uRef(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; } if (c=="-" || c=="") return ""; } if (z!="-") { i=z.indexOf("."); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); t=z.substring(i+1,z.length); if (t.toLowerCase()==c.toLowerCase()) cs=1; t=z.substring(0,i); if ((i=t.lastIndexOf(".")) > -1) { t=t.substring(i+1,t.length); cn=(t*1); } } if (cs==0 || _ufns==1) { t=_uGC(dc,"__utma="+_udh+".",";"); if ((i=t.lastIndexOf(".")) > 9) { _uns=t.substring(i+1,t.length); _uns=(_uns*1); } cn++; if (_uns==0) _uns=1; _ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo; } if (cs==0 || _ufns==1) return "&utmcn=1"; else return "&utmcr=1"; } function _uRef() { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k,n; if ((i=_ur.indexOf("://"))<0 || _uGCse()) return ""; h=_ur.substring(i+3,_ur.length); if (h.indexOf("/") > -1) { k=h.substring(h.indexOf("/"),h.length); if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?")); h=h.substring(0,h.indexOf("/")); } h=h.toLowerCase(); n=h; if ((i=n.indexOf(":")) > -1) n=n.substring(0,i); for (var ii=0;ii<_uRno.length;ii++) { if ((i=n.indexOf(_uRno[ii].toLowerCase())) > -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; } } if (h.indexOf("www.")==0) h=h.substring(4,h.length); return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral"; } function _uOrg(t) { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k; if ((i=_ur.indexOf("://"))<0 || _uGCse()) return ""; h=_ur.substring(i+3,_ur.length); if (h.indexOf("/") > -1) { h=h.substring(0,h.indexOf("/")); } for (var ii=0;ii<_uOsr.length;ii++) { if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) { if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) { k=_ur.substring(i+_uOkw[ii].length+2,_ur.length); if ((i=k.indexOf("&")) > -1) k=k.substring(0,i); for (var yy=0;yy<_uOno.length;yy++) { if (_uOno[yy].toLowerCase()==k.toLowerCase()) { _ufno=1; break; } } if (t) return _uEC(k); else return "utmccn=(organic)|utmcsr="+_uEC(_uOsr[ii])+"|"+"utmctr="+_uEC(k)+"|utmcmd=organic"; } } } return ""; } function _uGCse() { var h,p; h=p=_ur.split("://")[1]; if(h.indexOf("/")>-1) { h=h.split("/")[0]; p=p.substring(p.indexOf("/")+1,p.length); } if(p.indexOf("?")>-1) { p=p.split("?")[0]; } if(h.toLowerCase().indexOf("google")>-1) { if(_ur.indexOf("?q=")>-1 || _ur.indexOf("&q=")>-1) { if (p.toLowerCase().indexOf("cse")>-1) { return true; } } } } function _uBInfo() { var sr="-",sc="-",ul="-",fl="-",cs="-",je=1; var n=navigator; if (self.screen) { sr=screen.width+"x"+screen.height; sc=screen.colorDepth+"-bit"; } else if (self.java) { var j=java.awt.Toolkit.getDefaultToolkit(); var s=j.getScreenSize(); sr=s.width+"x"+s.height; } if (n.language) { ul=n.language.toLowerCase(); } else if (n.browserLanguage) { ul=n.browserLanguage.toLowerCase(); } je=n.javaEnabled()?1:0; if (_uflash) fl=_uFlash(); if (_ubd.characterSet) cs=_uES(_ubd.characterSet); else if (_ubd.charset) cs=_uES(_ubd.charset); return "&utmcs="+cs+"&utmsr="+sr+"&utmsc="+sc+"&utmul="+ul+"&utmje="+je+"&utmfl="+fl; } function __utmSetTrans() { var e; if (_ubd.getElementById) e=_ubd.getElementById("utmtrans"); else if (_ubd.utmform && _ubd.utmform.utmtrans) e=_ubd.utmform.utmtrans; if (!e) return; var l=e.value.split("UTM:"); var i,i2,c; if (_userv==0 || _userv==2) i=new Array(); if (_userv==1 || _userv==2) { i2=new Array(); c=_uGCS(); } for (var ii=0;ii -1) { i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; } c=l.substring((i+i3),i2); } return c; } function _uDomain() { if (!_udn || _udn=="" || _udn=="none") { _udn=""; return 1; } if (_udn=="auto") { var d=_ubd.domain; if (d.substring(0,4)=="www.") { d=d.substring(4,d.length); } _udn=d; } _udn = _udn.toLowerCase(); if (_uhash=="off") return 1; return _uHash(_udn); } function _uHash(d) { if (!d || d=="") return 1; var h=0,g=0; for (var i=d.length-1;i>=0;i--) { var c=parseInt(d.charCodeAt(i)); h=((h << 6) & 0xfffffff) + c + (c << 14); if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21)); } return h; } function _uFixA(c,s,t) { if (!c || c=="" || !s || s=="" || !t || t=="") return "-"; var a=_uGC(c,"__utma="+_udh+".",s); var lt=0,i=0; if ((i=a.lastIndexOf(".")) > 9) { _uns=a.substring(i+1,a.length); _uns=(_uns*1)+1; a=a.substring(0,i); if ((i=a.lastIndexOf(".")) > 7) { lt=a.substring(i+1,a.length); a=a.substring(0,i); } if ((i=a.lastIndexOf(".")) > 5) { a=a.substring(0,i); } a+="."+lt+"."+t+"."+_uns; } return a; } function _uTrim(s) { if (!s || s=="") return ""; while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length); while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.substring(0,s.length-1); return s; } function _uEC(s) { var n=""; if (!s || s=="") return ""; for (var i=0;i0) r=a.substring(i+1,i2); else return ""; if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return ""; if (f) { return r; } else { var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9'); return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m]; } } function _uIN(n) { if (!n) return false; for (var i=0;i"9") && (c!=".")) return false; } return true; } function _uES(s,u) { if (typeof(encodeURIComponent) == 'function') { if (u) return encodeURI(s); else return encodeURIComponent(s); } else { return escape(s); } } function _uUES(s) { if (typeof(decodeURIComponent) == 'function') { return decodeURIComponent(s); } else { return unescape(s); } } function _uVG() { if((_udn.indexOf("www.google.") == 0 || _udn.indexOf(".google.") == 0 || _udn.indexOf("google.") == 0) && _utcp=='/' && _udn.indexOf("google.org")==-1) { return false; } return true; } function _uSP() { var s=100; if (_usample) s=_usample; if(s>=100 || s<=0) return true; return ((__utmVisitorCode(1)%10000)<(s*100)); } function urchinPathCopy(p){ var d=document,nx,tx,sx,i,c,cs,t,h,o; cs=new Array("a","b","c","v","x","z"); h=_uDomain(); if (_udn && _udn!="") o=" domain="+_udn+";"; nx=_uNx()+";"; tx=new Date(); tx.setTime(tx.getTime()+(_utimeout*1000)); tx=tx.toGMTString()+";"; sx=new Date(); sx.setTime(sx.getTime()+(_ucto*1000)); sx=sx.toGMTString()+";"; for (i=0;i<6;i++){ t=" expires="; if (i==1) t+=tx; else if (i==2) t=""; else if (i==5) t+=sx; else t+=nx; c=_uGC(d.cookie,"__utm"+cs[i]+"="+h,";"); if (c!="-") d.cookie="__utm"+cs[i]+"="+c+"; path="+p+";"+t+o; } } function _uCO() { if (!_utk || _utk=="" || _utk.length<10) return; var d='www.google.com'; if (_utk.charAt(0)=='!') d='analytics.corp.google.com'; _ubd.cookie="GASO="+_utk+"; path="+_utcp+";"+_udo; var sc=document.createElement('script'); sc.type='text/javascript'; sc.id="_gasojs"; sc.src='https://'+d+'/analytics/reporting/overlay_js?gaso='+_utk+'&'+Math.random(); document.getElementsByTagName('head')[0].appendChild(sc); } function _uGT() { var h=location.hash, a; if (h && h!="" && h.indexOf("#gaso=")==0) { a=_uGC(h,"gaso=","&"); } else { a=_uGC(_ubd.cookie,"GASO=",";"); } return a; } var _utk=_uGT(); if (_utk && _utk!="" && _utk.length>10 && _utk.indexOf("=")==-1) { if (window.addEventListener) { window.addEventListener('load', _uCO, false); } else if (window.attachEvent) { window.attachEvent('onload', _uCO); } } function _uNx() { return (new Date((new Date()).getTime()+63072000000)).toGMTString(); } ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=banner.htm Content-Type: text/html; charset=windows-1250; name=banner.htm Content-Location: http://www.sexyhracky.cz/export/banner.php?id=95 Content-Transfer-Encoding: 8bit
www.sexyhracky.cz
Boty SEDUCE-126 MULTI ANKLE STRAP WHITE vel.36
------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=0000003315.jpg Content-Type: image/jpeg; name=0000003315.jpg Content-Location: http://www.sexyhracky.cz/images_items/small/0000003315.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEASABIAAD/4RLHRXhpZgAASUkqAAgAAAAKAA8BAgAGAAAA hgAAABABAgAOAAAAjAAAABIBAwABAAAAAQAAABoBBQABAAAAmgAAABsBBQABAAAA ogAAACgBAwABAAAAAgAAADEBAgAbAAAAqgAAADIBAgAUAAAAxQAAABMCAwABAAAA AgAAAGmHBAABAAAA3AAAALgDAABDYW5vbgBDYW5vbiBFT1MgMjBEAEgAAAABAAAA SAAAAAEAAABBZG9iZSBQaG90b3Nob3AgQ1MgV2luZG93cwAyMDA1OjA2OjA3IDEy OjA1OjAxAAAAABsAmoIFAAEAAAAmAgAAnYIFAAEAAAAuAgAAIogDAAEAAAABAAAA J4gDAAEAAABkAAAAAJAHAAQAAAAwMjIxA5ACABQAAAA2AgAABJACABQAAABKAgAA AZEHAAQAAAABAgMAAZIKAAEAAABeAgAAApIFAAEAAABmAgAABJIKAAEAAABuAgAA B5IDAAEAAAAFAAAACZIDAAEAAAAQAAAACpIFAAEAAAB2AgAAhpIHAAgBAAB+AgAA AKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqAEAAEAAAAgAwAAA6AEAAEAAAAgAwAA BaAEAAEAAACYAwAADqIFAAEAAACGAwAAD6IFAAEAAACOAwAAEKIDAAEAAAACAAAA AaQDAAEAAAAAAAAAAqQDAAEAAAABAAAAA6QDAAEAAAABAAAABqQDAAEAAAAAAAAA AAAAAAEAAAAyAAAAUAAAAAoAAAAyMDA1OjA2OjAyIDE2OjQxOjMyADIwMDU6MDY6 MDIgMTY6NDE6MzIA1KQFAAAAAQAAAAYAAAABAAAAAAACAAAAJgAAAAEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAACAdzUAdQMAAAClIwBOAgAAAAACAAEAAgAEAAAA Ujk4AAIABwAEAAAAMDEwMAAAAAAAAAYAAwEDAAEAAAAGAAAAGgEFAAEAAAAGBAAA GwEFAAEAAAAOBAAAKAEDAAEAAAACAAAAAQIEAAEAAAAWBAAAAgIEAAEAAACpDgAA AAAAAEgAAAABAAAASAAAAAEAAAD/2P/gABBKRklGAAECAQBIAEgAAP/tAAxBZG9i ZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8V GBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwM/8AAEQgAoACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEB AQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcI CQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVS wWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieU pIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAME BQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M0 8SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1 VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkk klKSSSSUpJByLjXW9zGmwsa5+xkFzto+gwH896zGdQ6zkdFfl04Qp6gSG149j3vY JLfe+WYlj9jXfpGbWf8AGf4RJVOyksrJv67+xa8jFxq29UcKzZQ8l7GyW/aNv6Sn 1Nte/wBNnrMRj1WurMpxcpox3ZFbXt3PBixzhX9nP9pzWV2btltn6JJTfSSSSUpJ JJJSkkkklKSSSSU//9D1VJJJJSkkkklKWF1zJuyujWPxbPQs9XbUfVNLpru9HcHt +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 GzIxNtF7v+FfXvXUZDvUyHHsz2j5fS/6ShCSg8wPrN9Zag4ZP1ZvMA7XY2QywEx7 dHVhzWqTf8YdNLR9v6F1LGf+cBS2xo+Dw6nd/mLpdgPZOGeBI+BSS8+z/GX9VD/P Oycc9xZjWaf9t+oiD/GV9R416gR5GjIn/wA8LbNTXc6/EA/lCgcLGdzVWfixp/76 khyT/jG+pAbubnGzwa2m8n7vSQx/jG6VbLem9Oz86w/QDKNjSf5Vl72bf81bTcTG bq1lbT5MaPyNVhmK5zfafb27JKaf1ey+tZrr8rqjK8Nrw0Y3T6yXuraJ325OSWs9 a6135lTfSprZ/pLFtINGO2qTy4oySFJJJJKf/9n/4gxYSUNDX1BST0ZJTEUAAQEA AAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJ RUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRn WFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2 dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0 ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0 ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFu eQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdC IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAA AAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpY WVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3Lmll Yy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5J RUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAt IHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNl IFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJl ZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsA A1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAA AAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8A FAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYA iwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEB BwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEB qQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnEC egKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3ID fgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgE tgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYG JwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H 0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJ ugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL 4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4O SQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ 9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT 5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGnca nhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAe ah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUi giKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm 6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2kr nSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGww pDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1 /TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7 qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpB rEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BI BUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5O t08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVV wlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZd J114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk 6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9t CG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1 hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuH n4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaR P5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWb QpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTil qaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACw dbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67 p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPH Qce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHT RNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynf r+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vs hu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5 x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7RSwUGhvdG9zaG9wIDMuMAA4QklNBAQA AAAAAAccAgAAAgACADhCSU0EJQAAAAAAEEYM8okmuFbasJwBobCnkHc4QklNA+0A AAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4 QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAA AAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UA AAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEA WgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////// //////////////////////8D6AAAAAD/////////////////////////////A+gA AAAA/////////////////////////////wPoAAAAAP////////////////////// //////8D6AAAOEJJTQQAAAAAAAACAAA4QklNBAIAAAAAAAIAADhCSU0ECAAAAAAA EAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANNAAAA BgAAAAAAAAAAAAADIAAAAyAAAAAMAFMAZQBkAHUAYwBlAF8AMQAyADYAIABXAAAA AQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAMgAAADIAAAAAAAAAAAAAAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAG Ym91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAA TGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAADIAAAAABSZ2h0bG9uZwAAAyAAAAAG c2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlE bG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNs aWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNl VHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAA VG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAyAAAAAA UmdodGxvbmcAAAMgAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAA AAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4 dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25l bnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVu dW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVl bnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9u ZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcA AAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAA AAAAOEJJTQQUAAAAAAAEAAAABjhCSU0EDAAAAAAOxQAAAAEAAACgAAAAoAAAAeAA ASwAAAAOqQAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/tAAxBZG9iZV9DTQAB/+4A DkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEM DAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4O DhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAoACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAED AgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMH JZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSl tcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEA AhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcm NcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW 5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkkklKSSSSUpJBy LjXW9zGmwsa5+xkFzto+gwH896zGdQ6zkdFfl04Qp6gSG149j3vYJLfe+WYlj9jX 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 tEDSTPGkoDdRbCSix+7kQVJOWqSSSSU//9D1VJJJJSkkkklKSSSSU0epsa9jQR4/ laj4OmJUP3W7fu9qF1H6Lfgf++qfT3TjAfuuI/Hd/FJPRF1fD6dm4ZxuoM9SpxDm AEh4e33MsoezbZVbW76FrHexcrZ/z06e8swzT1bDb/N/b/0WUGx9GzIxNtF7v+Ff XvXUZDvUyHHsz2j5fS/6ShCSg8wPrN9Zag4ZP1ZvMA7XY2QywEx7dHVhzWqTf8Yd NLR9v6F1LGf+cBS2xo+Dw6nd/mLpdgPZOGeBI+BSS8+z/GX9VD/POycc9xZjWaf9 t+oiD/GV9R416gR5GjIn/wA8LbNTXc6/EA/lCgcLGdzVWfixp/76khyT/jG+pAbu bnGzwa2m8n7vSQx/jG6VbLem9Oz86w/QDKNjSf5Vl72bf81bTcTGbq1lbT5MaPyN VhmK5zfafb27JKaf1ey+tZrr8rqjK8Nrw0Y3T6yXuraJ325OSWs9a6135lTfSprZ /pLFtINGO2qTy4oySFJJJJKf/9kAOEJJTQQhAAAAAABTAAAAAQEAAAAPAEEAZABv AGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEgBBAGQAbwBiAGUAIABQAGgAbwB0 AG8AcwBoAG8AcAAgAEMAUwAAAAEAOEJJTQQGAAAAAAAHAAQAAAABAQD/4R3RaHR0 cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J++7vycg aWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5z Ong9J2Fkb2JlOm5zOm1ldGEvJyB4OnhtcHRrPSdYTVAgdG9vbGtpdCAzLjAtMjgs IGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cu dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRw Oi8vbnMuYWRvYmUuY29tL2lYLzEuMC8nPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRm OmFib3V0PSd1dWlkOmZhODg1MzU2LWQ3ODYtMTFkOS1iY2NkLWVlOWExZGExZTJl YScKICB4bWxuczpleGlmPSdodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+ CiAgPGV4aWY6RXhwb3N1cmVUaW1lPjEvNTA8L2V4aWY6RXhwb3N1cmVUaW1lPgog IDxleGlmOkZOdW1iZXI+ODAvMTA8L2V4aWY6Rk51bWJlcj4KICA8ZXhpZjpFeHBv c3VyZVByb2dyYW0+MTwvZXhpZjpFeHBvc3VyZVByb2dyYW0+CiAgPGV4aWY6RXhp ZlZlcnNpb24+MDIyMTwvZXhpZjpFeGlmVmVyc2lvbj4KICA8ZXhpZjpEYXRlVGlt ZU9yaWdpbmFsPjIwMDUtMDYtMDJUMTY6NDE6MzItMDg6MDA8L2V4aWY6RGF0ZVRp bWVPcmlnaW5hbD4KICA8ZXhpZjpEYXRlVGltZURpZ2l0aXplZD4yMDA1LTA2LTAy VDE2OjQxOjMyLTA4OjAwPC9leGlmOkRhdGVUaW1lRGlnaXRpemVkPgogIDxleGlm OlNodXR0ZXJTcGVlZFZhbHVlPjM2OTg3Ni82NTUzNjwvZXhpZjpTaHV0dGVyU3Bl ZWRWYWx1ZT4KICA8ZXhpZjpBcGVydHVyZVZhbHVlPjM5MzIxNi82NTUzNjwvZXhp ZjpBcGVydHVyZVZhbHVlPgogIDxleGlmOkV4cG9zdXJlQmlhc1ZhbHVlPjAvMjwv ZXhpZjpFeHBvc3VyZUJpYXNWYWx1ZT4KICA8ZXhpZjpNZXRlcmluZ01vZGU+NTwv ZXhpZjpNZXRlcmluZ01vZGU+CiAgPGV4aWY6Rm9jYWxMZW5ndGg+MzgvMTwvZXhp ZjpGb2NhbExlbmd0aD4KICA8ZXhpZjpGbGFzaHBpeFZlcnNpb24+MDEwMDwvZXhp ZjpGbGFzaHBpeFZlcnNpb24+CiAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNv bG9yU3BhY2U+CiAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjgwMDwvZXhpZjpQaXhl bFhEaW1lbnNpb24+CiAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjgwMDwvZXhpZjpQ aXhlbFlEaW1lbnNpb24+CiAgPGV4aWY6Rm9jYWxQbGFuZVhSZXNvbHV0aW9uPjM1 MDQwMDAvODg1PC9leGlmOkZvY2FsUGxhbmVYUmVzb2x1dGlvbj4KICA8ZXhpZjpG b2NhbFBsYW5lWVJlc29sdXRpb24+MjMzNjAwMC81OTA8L2V4aWY6Rm9jYWxQbGFu ZVlSZXNvbHV0aW9uPgogIDxleGlmOkZvY2FsUGxhbmVSZXNvbHV0aW9uVW5pdD4y PC9leGlmOkZvY2FsUGxhbmVSZXNvbHV0aW9uVW5pdD4KICA8ZXhpZjpDdXN0b21S ZW5kZXJlZD4wPC9leGlmOkN1c3RvbVJlbmRlcmVkPgogIDxleGlmOkV4cG9zdXJl TW9kZT4xPC9leGlmOkV4cG9zdXJlTW9kZT4KICA8ZXhpZjpXaGl0ZUJhbGFuY2U+ MTwvZXhpZjpXaGl0ZUJhbGFuY2U+CiAgPGV4aWY6U2NlbmVDYXB0dXJlVHlwZT4w PC9leGlmOlNjZW5lQ2FwdHVyZVR5cGU+CiAgPGV4aWY6SVNPU3BlZWRSYXRpbmdz PgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGk+MTAwPC9yZGY6bGk+CiAgIDwvcmRm OlNlcT4KICA8L2V4aWY6SVNPU3BlZWRSYXRpbmdzPgogIDxleGlmOkZsYXNoIHJk ZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgPGV4aWY6RmlyZWQ+RmFsc2U8L2V4 aWY6RmlyZWQ+CiAgIDxleGlmOlJldHVybj4wPC9leGlmOlJldHVybj4KICAgPGV4 aWY6TW9kZT4yPC9leGlmOk1vZGU+CiAgIDxleGlmOkZ1bmN0aW9uPkZhbHNlPC9l eGlmOkZ1bmN0aW9uPgogICA8ZXhpZjpSZWRFeWVNb2RlPkZhbHNlPC9leGlmOlJl ZEV5ZU1vZGU+CiAgPC9leGlmOkZsYXNoPgogPC9yZGY6RGVzY3JpcHRpb24+Cgog PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ZmE4ODUzNTYtZDc4Ni0x MWQ5LWJjY2QtZWU5YTFkYTFlMmVhJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFk b2JlLmNvbS9wZGYvMS4zLyc+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRl c2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpmYTg4NTM1Ni1kNzg2LTExZDktYmNj ZC1lZTlhMWRhMWUyZWEnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRv YmUuY29tL3Bob3Rvc2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9w aG90b3Nob3A6SGlzdG9yeT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmZhODg1MzU2LWQ3ODYtMTFkOS1iY2Nk LWVlOWExZGExZTJlYScKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29t L3RpZmYvMS4wLyc+CiAgPHRpZmY6TWFrZT5DYW5vbjwvdGlmZjpNYWtlPgogIDx0 aWZmOk1vZGVsPkNhbm9uIEVPUyAyMEQ8L3RpZmY6TW9kZWw+CiAgPHRpZmY6T3Jp ZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICA8dGlmZjpYUmVzb2x1dGlv bj43Mi8xPC90aWZmOlhSZXNvbHV0aW9uPgogIDx0aWZmOllSZXNvbHV0aW9uPjcy LzE8L3RpZmY6WVJlc29sdXRpb24+CiAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+Mjwv dGlmZjpSZXNvbHV0aW9uVW5pdD4KICA8dGlmZjpZQ2JDclBvc2l0aW9uaW5nPjI8 L3RpZmY6WUNiQ3JQb3NpdGlvbmluZz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxy ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmZhODg1MzU2LWQ3ODYtMTFk OS1iY2NkLWVlOWExZGExZTJlYScKICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9i ZS5jb20veGFwLzEuMC8nPgogIDx4YXA6Q3JlYXRlRGF0ZT4yMDA1LTA2LTA3VDEy OjA0OjE0LTA4OjAwPC94YXA6Q3JlYXRlRGF0ZT4KICA8eGFwOk1vZGlmeURhdGU+ MjAwNS0wNi0wN1QxMjowNTowMS0wODowMDwveGFwOk1vZGlmeURhdGU+CiAgPHhh cDpNZXRhZGF0YURhdGU+MjAwNS0wNi0wN1QxMjowNTowMS0wODowMDwveGFwOk1l dGFkYXRhRGF0ZT4KICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBD UyBXaW5kb3dzPC94YXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4K CiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpmYTg4NTM1Ni1kNzg2 LTExZDktYmNjZC1lZTlhMWRhMWUyZWEnCiAgeG1sbnM6eGFwTU09J2h0dHA6Ly9u cy5hZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4YXBNTTpEb2N1bWVudElEPmFk b2JlOmRvY2lkOnBob3Rvc2hvcDowNGRlNzQzZC1kNzg1LTExZDktYmNjZC1lZTlh MWRhMWUyZWE8L3hhcE1NOkRvY3VtZW50SUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4K CiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpmYTg4NTM1Ni1kNzg2 LTExZDktYmNjZC1lZTlhMWRhMWUyZWEnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJs Lm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6Zm9ybWF0PmltYWdlL2pwZWc8 L2RjOmZvcm1hdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6 eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz7/2wBD AAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDREN 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 ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=brand.htm Content-Type: text/html; charset=UTF-8; name=brand.htm Content-Location: http://www.google.com/coop/cse/brand?form=cse-search-box&lang=cs Content-Transfer-Encoding: 8bit (function() { var f = document.getElementById('cse-search-box'); if (!f) { f = document.getElementById('searchbox_demo'); } if (f && f.q) { var q = f.q; var n = navigator; var l = location; if (n.platform == 'Win32') { q.style.cssText = 'border: 1px solid #7e9db9; padding: 2px;'; } var b = function() { if (q.value == '') { q.style.background = '#FFFFFF url(http:\x2F\x2Fwww.google.com\x2Fcoop\x2Fintl\x2Fcs\x2Fimages\x2Fgoogle_custom_search_watermark.gif) left no-repeat'; } }; var f = function() { q.style.background = '#ffffff'; }; q.onfocus = f; q.onblur = b; if (!/[&?]q=[^&]/.test(l.search)) { b(); } } })(); ------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=banner.htm Content-Type: text/html; charset=windows-1250; name=banner.htm Content-Location: http://www.sexyhracky.cz/export/banner.php?id=26 Content-Transfer-Encoding: 8bit
www.sexyhracky.cz
------------N21hvRffqU9uqIM5dbzCJx Content-Disposition: inline; filename=0000000620.jpg Content-Type: image/jpeg; name=0000000620.jpg Content-Location: http://www.sexyhracky.cz/images_items/small/0000000620.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjL/wAARCACBAIIDASIAAhEBAxEB/8QAHAAAAgMBAQEBAAAA AAAAAAAAAAYEBQcDAQII/8QARhAAAQMDAgQDBAcECAMJAAAAAQIDBAAFERIhBhMx QVFhcQcUIpEVIzKBobHBM0LR4RYkQ1Jyc6LwFyWSNERUYmNkgrLS/8QAGQEAAwEB AQAAAAAAAAAAAAAAAAECAwQF/8QALxEAAgICAQMCBAMJAAAAAAAAAAECEQMhEgQT MUFRInGR8DJCoQUjYWKBsdHh8f/aAAwDAQACEQMRAD8A3+vKO1Vl7vUOwW5cyYvS 2nYJHVR7AU0m3SE2krZZbV4VgAnPSsFc4yvV+4llKhXF23x1J2ZSoq8N/X0xVhHd ubDmtV6uK1eb5x8qUnGNpvZzT6qMHVGqWbiOBfkue6F0KQopUlxspIIODVwBisZs XFDfDN8DU1oqiycqS/klSCT8WfEZ38a1yLLblspcaWCCM7HPXofShJ8VI3hkjPaP uVITEiuyFglLaSogdTWbD2oypcyyqgWnTEmh4uqfVlQDfhg/n41pchrnx1t/3hiv zo+l3hXjSUwEJdaYB5LLucBKiFDofDA+dS3VWaaUW36H6MZWXGULIwVJBx4V0rGh 7Wr0E4EKAMf+VX/6qFP9pnEcxvQ04xEHcsI3P3qJpc4mDzwGT2o364WG6WZ6LJfQ ytL6VNNnZxWkaQR33NWnsxVe1cOE3p9b7pcKkqcOSMnJGe9ZI3KkXLiK2uXCQ9KP N6vLKsE9MZ86/QtnQ23aYqW0hKOWCAKcXabNlJSin9+SxoqMZkYSDH57XOA1FvWN QHjipHWqA9ooooAKKKKAPjqKxb2mXCRcuJVQWslmE1nTnbJGSflitjfkBjSNOc1k PFsUM8WXBx9OGpDLTuonGwwkj8DVLKsMZZPVLRPZ7044/RszG33AQ5sSSrUjmKIG pJGr+9WkhQIyKW77akfQK48Mtj3UhxAcOxBzsCe9TOHJpmWZlS88xsaVD0rz8ebu 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 KKBI9ooooGf/2Q== ------------N21hvRffqU9uqIM5dbzCJx--