Content-Type: multipart/related; start=; boundary=----------v0R7J6g1aaWINvTDUDfdRA Content-Location: http://www.vojenskaskola.cz/skola/uo/verejnost_media/Stranky/20091008.aspx Subject: =?utf-8?Q?Kosmonauti=20na=20Univerzit=C4=9B=20obrany?= MIME-Version: 1.0 ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=20091008.htm Content-Type: text/html; charset=utf-8; name=20091008.htm Content-ID: Content-Location: http://www.vojenskaskola.cz/skola/uo/verejnost_media/Stranky/20091008.aspx Content-Transfer-Encoding: Base64 DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx IFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9s b29zZS5kdGQiPg0KPGh0bWw+DQoNCjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAv PjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9ImNz IiAvPjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJVTk9CIiAvPjxz Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlw dCIgc3JjPSIvX2xheW91dHMvMTAyOS9pbml0LmpzP3Jldj16S2ZDRW5DJTJGWnlM VW9QeXF0OG9IdkElM0QlM0QiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iL19sYXlvdXRz LzEwMjkvbm9uX2llLmpzP3Jldj15Zk5yeTRoWTBHd2ElMkZQRE5HcnFYVmclM0Ql M0QiPjwvc2NyaXB0Pgo8TUVUQSBOQU1FPSJST0JPVFMiIENPTlRFTlQ9Ik5PSFRN TElOREVYIi8+DQogICAgICAgIDx0aXRsZT4NCglLb3Ntb25hdXRpIG5hIFVuaXZl cnppdMSbIG9icmFueQ0KIDwvdGl0bGU+DQoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0 IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL19sYXlvdXRzLzEwMjkvc3R5bGVzL0h0 bWxFZGl0b3JDdXN0b21TdHlsZXMuY3NzP3Jldj0lMkZ3RWtQNGZhcFFvcjdWMG14 REh0dnclM0QlM0QiLz4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0 L2NzcyIgaHJlZj0iL19sYXlvdXRzLzEwMjkvc3R5bGVzL0h0bWxFZGl0b3JUYWJs ZUZvcm1hdHMuY3NzP3Jldj1PZTU0eW9UaiUyRk53ZWZ5SHI4NDVwbGclM0QlM0Qi Lz4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0i L3Nrb2xhL3VvL1N0eWxlJTIwTGlicmFyeS91bm9iLXNjcmVlbi5jc3MiLz4KPGxp bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL19sYXlv dXRzLzEwMjkvc3R5bGVzL2NvcmUuY3NzP3Jldj1wa1MlMkZGOVRINnZPUGVOSE80 NjZ5UXclM0QlM0QiLz4KDQoJPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9 IlVOSVZFUlpJVEEgT0JSQU5ZIiAvPjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBj b250ZW50PSJVTklWRVJaSVRBIE9CUkFOWSIgLz48bGluayByZWw9InNob3J0Y3V0 IGljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iL3Nrb2xhL3VvL1NpdGVD b2xsZWN0aW9uSW1hZ2VzL2Zhdmljb24uaWNvIiAvPg0KDQoJPHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL19jYXRhbG9ncy9tYXN0ZXJwYWdlL2N1 c3RvbV9hY3RpdmV4X292ZXJyaWRlLmpzIj48L3NjcmlwdD4NCg0KCTxzY3JpcHQg bGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJ PCEtLS8vDQoJZnVuY3Rpb24gSGlkZUF1dGhvcmluZ0RpdihvYmplY3Qpew0KCQlp ZiAobG9jYXRpb24uaG9zdG5hbWUgIT0gInd3dy52b2plbnNrYXNrb2xhLmN6Iil7 DQoJCQl2YXIgb2JqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9iamVjdCk7DQoJ CQlvYmouc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KCQl9DQoJfQ0KCS8vLS0+DQoJ PC9zY3JpcHQ+DQo8dGl0bGU+DQoNCjwvdGl0bGU+PC9oZWFkPg0KDQo8Ym9keSBv bmxvYWQ9ImphdmFzY3JpcHQ6X3NwQm9keU9uTG9hZFdyYXBwZXIoKTsgSGlkZUF1 dGhvcmluZ0RpdignYXV0aG9yaW5nX2RpdicpOyIgc3R5bGU9ImJhY2tncm91bmQt Y29sb3I6I2RiZTFlOTsgdGV4dC1hbGlnbjpsZWZ0OyI+DQoJPGZvcm0gbmFtZT0i YXNwbmV0Rm9ybSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249IjIwMDkxMDA4LmFzcHgi IG9uc3VibWl0PSJqYXZhc2NyaXB0OnJldHVybiBXZWJGb3JtX09uU3VibWl0KCk7 IiBpZD0iYXNwbmV0Rm9ybSI+DQo8ZGl2Pg0KPGlucHV0IHR5cGU9ImhpZGRlbiIg bmFtZT0iX19TUFNDRWRpdE1lbnUiIGlkPSJfX1NQU0NFZGl0TWVudSIgdmFsdWU9 InRydWUiIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNU09XZWJQYXJ0 UGFnZV9Qb3N0YmFja1NvdXJjZSIgaWQ9Ik1TT1dlYlBhcnRQYWdlX1Bvc3RiYWNr U291cmNlIiB2YWx1ZT0iIiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i TVNPVGxQbl9TZWxlY3RlZFdwSWQiIGlkPSJNU09UbFBuX1NlbGVjdGVkV3BJZCIg dmFsdWU9IiIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1TT1RsUG5f VmlldyIgaWQ9Ik1TT1RsUG5fVmlldyIgdmFsdWU9IjAiIC8+DQo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJNU09UbFBuX1Nob3dTZXR0aW5ncyIgaWQ9Ik1TT1Rs UG5fU2hvd1NldHRpbmdzIiB2YWx1ZT0iRmFsc2UiIC8+DQo8aW5wdXQgdHlwZT0i aGlkZGVuIiBuYW1lPSJNU09HYWxsZXJ5X1NlbGVjdGVkTGlicmFyeSIgaWQ9Ik1T T0dhbGxlcnlfU2VsZWN0ZWRMaWJyYXJ5IiB2YWx1ZT0iIiAvPg0KPGlucHV0IHR5 cGU9ImhpZGRlbiIgbmFtZT0iTVNPR2FsbGVyeV9GaWx0ZXJTdHJpbmciIGlkPSJN U09HYWxsZXJ5X0ZpbHRlclN0cmluZyIgdmFsdWU9IiIgLz4NCjxpbnB1dCB0eXBl PSJoaWRkZW4iIG5hbWU9Ik1TT1RsUG5fQnV0dG9uIiBpZD0iTVNPVGxQbl9CdXR0 b24iIHZhbHVlPSJub25lIiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i X19FVkVOVFRBUkdFVCIgaWQ9Il9fRVZFTlRUQVJHRVQiIHZhbHVlPSIiIC8+DQo8 aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfX0VWRU5UQVJHVU1FTlQiIGlkPSJf X0VWRU5UQVJHVU1FTlQiIHZhbHVlPSIiIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVu IiBuYW1lPSJfX1JFUVVFU1RESUdFU1QiIGlkPSJfX1JFUVVFU1RESUdFU1QiIHZh bHVlPSIweDFEOTVDM0IzQ0FDMUU3Q0YwNkQwQUM0RUQ1MjUzODQ1M0ZBNDBGNjI3 OEUwNTM4ODVCMDcxMTkyMDY1NUI2MDI0QjNCMjYwNDNGRDhCRkM0MjE3MDYxNjRB RUM5MzcwOEYxRTUyQUM0NkFFMEEzMDkzMDczNEM2Q0FENTkzMUU3LDE1IE9jdCAy MDA5IDIwOjEzOjU1IC0wMDAwIiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt ZT0iTVNPQXV0aG9yaW5nQ29uc29sZV9Gb3JtQ29udGV4dCIgaWQ9Ik1TT0F1dGhv cmluZ0NvbnNvbGVfRm9ybUNvbnRleHQiIHZhbHVlPSIiIC8+DQo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJNU09BQ19FZGl0RHVyaW5nV29ya2Zsb3ciIGlkPSJN U09BQ19FZGl0RHVyaW5nV29ya2Zsb3ciIHZhbHVlPSIiIC8+DQo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJNU09TUFdlYlBhcnRNYW5hZ2VyX0Rpc3BsYXlNb2Rl TmFtZSIgaWQ9Ik1TT1NQV2ViUGFydE1hbmFnZXJfRGlzcGxheU1vZGVOYW1lIiB2 YWx1ZT0iQnJvd3NlIiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTVNP V2ViUGFydFBhZ2VfU2hhcmVkIiBpZD0iTVNPV2ViUGFydFBhZ2VfU2hhcmVkIiB2 YWx1ZT0iIiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTVNPTGF5b3V0 X0xheW91dENoYW5nZXMiIGlkPSJNU09MYXlvdXRfTGF5b3V0Q2hhbmdlcyIgdmFs dWU9IiIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1TT0xheW91dF9J bkRlc2lnbk1vZGUiIGlkPSJNU09MYXlvdXRfSW5EZXNpZ25Nb2RlIiB2YWx1ZT0i IiAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTVNPU1BXZWJQYXJ0TWFu YWdlcl9PbGREaXNwbGF5TW9kZU5hbWUiIGlkPSJNU09TUFdlYlBhcnRNYW5hZ2Vy X09sZERpc3BsYXlNb2RlTmFtZSIgdmFsdWU9IkJyb3dzZSIgLz4NCjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9Ik1TT1NQV2ViUGFydE1hbmFnZXJfU3RhcnRXZWJQ YXJ0RWRpdGluZ05hbWUiIGlkPSJNU09TUFdlYlBhcnRNYW5hZ2VyX1N0YXJ0V2Vi UGFydEVkaXRpbmdOYW1lIiB2YWx1ZT0iZmFsc2UiIC8+DQo8aW5wdXQgdHlwZT0i aGlkZGVuIiBuYW1lPSJfX1ZJRVdTVEFURSIgaWQ9Il9fVklFV1NUQVRFIiB2YWx1 ZT0iL3dFUER3VUtNVE0wTkRBeU9Ua3lOUTlrRmdKbUQyUVdBZ0lCRDJRV0JBSUJE MlFXQWdJRkQyUVdBZ0lCRDJRV0FnSUJEeFlDSGhOUWNtVjJhVzkxYzBOdmJuUnli MnhOYjJSbEN5bUlBVTFwWTNKdmMyOW1kQzVUYUdGeVpWQnZhVzUwTGxkbFlrTnZi blJ5YjJ4ekxsTlFRMjl1ZEhKdmJFMXZaR1VzSUUxcFkzSnZjMjltZEM1VGFHRnla VkJ2YVc1MExDQldaWEp6YVc5dVBURXlMakF1TUM0d0xDQkRkV3gwZFhKbFBXNWxk WFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFRjeFpUbGlZMlV4TVRGbE9UUXlP V01CWkFJREQyUVdDZ0lERDJRV0FnSUNEdzhXQWg0SFZtbHphV0pzWldjV0FoNEZj M1I1YkdVRkRtUnBjM0JzWVhrNllteHZZMnM3WkFJTEQyUVdBZ0lCRHhZQ0h3Rm9G Z0ptRDJRV0JBSUNEMlFXQmdJQkR4WUNId0ZvWkFJRER4WUNId0ZvWkFJRkR4WUNI d0ZvWkFJRER3OFdBaDRKUVdOalpYTnpTMlY1QlFFdlpHUUNEUTlrRmdJQ0FROFBG Z0lmQVdoa0ZnUUNBUThQRmdJZkFXaGtaQUlERHc4V0FoOEJhR1FXQWdJQkR3OFdB aDhCWjJRV0JBSUJEdzhXQWg4QmFHUVdIQUlCRHc4V0FoOEJhR1JrQWdNUEZnSWZB V2hrQWdVUER4WUNId0ZvWkdRQ0J3OFdBaDhCYUdRQ0NROFBGZ0lmQVdoa1pBSUxE dzhXQWg4QmFHUmtBZzBQRHhZQ0h3Rm9aR1FDRHc4UEZnUWVCMFZ1WVdKc1pXUm9I d0ZvWkdRQ0VROFBGZ0lmQVdoa1pBSVREdzhXQkI4RWFCOEJhR1JrQWhVUER4WUNI d0ZvWkdRQ0Z3OFdBaDhCYUdRQ0dROFdBaDhCYUdRQ0d3OFBGZ0lmQVdka1pBSURE dzhXQWg4QloyUVdCZ0lCRHc4V0FoOEJaMlJrQWdNUER4WUNId0ZuWkdRQ0JROFBG Z0lmQVdka1pBSVREdzhXQkI0TFRtRjJhV2RoZEdWVmNtd0ZDbjR2YzJ0dmJHRXZk VzhlQ0VsdFlXZGxWWEpzQlRkK0wzTnJiMnhoTDNWdkwxTjBlV3hsSUV4cFluSmhj bmt2U1cxaFoyVnpMMVZPVDBKZlNXMWhaMlZ6TDJ4dloyOWZkVzh1WjJsbVpHUUNG dzlrRmd3Q0FROFdBaDhBQ3lzRUFXUUNCUThXQWg4QUN5c0VBV1FDQnc4V0FoOEFD eXNFQVdRQ0NROFdBaDhBQ3lzRUFXUUNDdzhXQWg4QUN5c0VBV1FDRFE4V0FoOEFD eXNFQVdSa1pQYjFYVVJ4TzEvcldOaVVuYWhhSUIzUEM3bz0iIC8+DQo8L2Rpdj4N Cg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KLy88IVtDREFUQVsN CnZhciB0aGVGb3JtID0gZG9jdW1lbnQuZm9ybXNbJ2FzcG5ldEZvcm0nXTsNCmlm ICghdGhlRm9ybSkgew0KICAgIHRoZUZvcm0gPSBkb2N1bWVudC5hc3BuZXRGb3Jt Ow0KfQ0KZnVuY3Rpb24gX19kb1Bvc3RCYWNrKGV2ZW50VGFyZ2V0LCBldmVudEFy Z3VtZW50KSB7DQogICAgaWYgKCF0aGVGb3JtLm9uc3VibWl0IHx8ICh0aGVGb3Jt Lm9uc3VibWl0KCkgIT0gZmFsc2UpKSB7DQogICAgICAgIHRoZUZvcm0uX19FVkVO VFRBUkdFVC52YWx1ZSA9IGV2ZW50VGFyZ2V0Ow0KICAgICAgICB0aGVGb3JtLl9f RVZFTlRBUkdVTUVOVC52YWx1ZSA9IGV2ZW50QXJndW1lbnQ7DQogICAgICAgIHRo ZUZvcm0uc3VibWl0KCk7DQogICAgfQ0KfQ0KLy9dXT4NCjwvc2NyaXB0Pg0KDQoN CjxzY3JpcHQ+IHZhciBNU09XZWJQYXJ0UGFnZUZvcm1OYW1lID0gJ2FzcG5ldEZv cm0nOzwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0K Ly88IVtDREFUQVsNCmZ1bmN0aW9uIFdlYkZvcm1fT25TdWJtaXQoKSB7DQpVcGRh dGVGb3JtRGlnZXN0KCdcdTAwMmZza29sYVx1MDAyZnVvXHUwMDJmdmVyZWpub3N0 X21lZGlhJywgMTQ0MDAwMCk7cmV0dXJuIF9zcEZvcm1PblN1Ym1pdFdyYXBwZXIo KTsNCnJldHVybiB0cnVlOw0KfQ0KLy9dXT4NCjwvc2NyaXB0Pg0KDQoJDQoNCjxk aXYgaWQ9ImNvbnRhaW5lciI+DQoJPGRpdj4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6 bGVmdDsgbWFyZ2luLWJvdHRvbToycHg7IGRpc3BsYXk6bm9uZTsiIGlkPSJhdXRo b3JpbmdfZGl2Ij4NCgkJCTx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNp bmc9IjAiPg0KCQkJCTx0cj4NCgkJCQkJPHRkIGNsYXNzPSJtcy1nbG9iYWxsaW5r cyI+DQoJCQkJCQkNCjxhIGlkPSJjdGwwMF9leHBsaXRMb2dvdXRfRXhwbGljaXRM b2dpbiIgaHJlZj0iaHR0cDovL3d3dy52b2plbnNrYXNrb2xhLmN6L3Nrb2xhL3Vv L3ZlcmVqbm9zdF9tZWRpYS9fbGF5b3V0cy9BdXRoZW50aWNhdGUuYXNweD9Tb3Vy Y2U9JTJGc2tvbGElMkZ1byUyRnZlcmVqbm9zdCU1Rm1lZGlhJTJGU3RyYW5reSUy RjIwMDkxMDA4JTJFYXNweCIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij5QxZlpaGzD oXNpdDwvYT4NCg0KCQkJCQk8L3RkPg0KCQkJCQk8dGQgY2xhc3M9Im1zLWdsb2Jh bGxpbmtzIj4NCgkJCQkJCQ0KCQkJCQk8L3RkPg0KCQkJCQk8dGQgY2xhc3M9Im1z LWdsb2JhbGxpbmtzIj4NCgkJCQkJCQ0KCQkJCQk8L3RkPg0KCQkJCQk8dGQgY2xh c3M9Im1zLWdsb2JhbGxpbmtzIj4NCgkJCQkJCQ0KPHRhYmxlPjx0cj4NCjx0ZCBj bGFzcz0ibXMtZ2xvYmFsbGlua3MiPjwvdGQ+DQo8dGQgY2xhc3M9Im1zLWdsb2Jh bGxpbmtzIj48L3RkPg0KPC90cj48L3RhYmxlPg0KDQoJCQkJCTwvdGQ+DQoJCQkJ CTx0ZD4NCgkJCQkJCQ0KPCEtLSBCZWdpbiBBY3Rpb24gTWVudSBNYXJrdXAgLS0+ DQo8dGFibGUgaGVpZ2h0PTEwMCUgY2xhc3M9Im1zLXNpdGVhY3Rpb24iIGNlbGxw YWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4NCgk8dHI+DQoJCQkJCSAgIDx0ZCBjbGFz cz0ibXMtc2l0ZWFjdGlvbnNtZW51IiBpZD0ic2l0ZWFjdGlvbnRkIj4NCgkJCQkJ ICAgDQoJCQkJCTwvdGQ+DQoJPC90cj4NCjwvdGFibGU+DQo8IS0tIEVuZCBBY3Rp b24gTWVudSBNYXJrdXAgLS0+DQoNCgkJCQkJPC90ZD4NCgkJCQk8L3RyPg0KCQkJ PC90YWJsZT4NCgkJCQ0KCQkJPGRpdiBjbGFzcz0iQXV0aG9yaW5nQ29udGFpbmVy Ij4NCgkJCQkNCgkJCQkNCg0KCQkJCQ0KDQoJCQk8L2Rpdj4NCgkJDQoJCQk8IS0t IG5lY2hhdCBhbGUgamUgdG8gbmVza29kbnkga29kLS0+DQoJCQk8ZGl2IGNsYXNz PSJQYWdlSGVhZGVyIj4NCgkJCTwvZGl2Pg0KCQkNCgkJPC9kaXY+DQoJCQ0KCQk8 ZGl2IGlkPSJ0b3BfbWVudSI+DQoJCQk8YSBocmVmPSIvIiA+Q1o8L2E+IHwgDQoJ CQk8YSBocmVmPSIvZW4vaXNtcyIgPkVOPC9hPiB8IA0KCQkJPGEgaHJlZj0iLyIg PkRvbW92c2vDoSBzdHLDoW5rYTwvYT4gfCANCgkJCTxhIGhyZWY9Ii9za29sYS91 by9obGVkYW5pIiA+SGxlZMOhbsOtIG9ic2FodTwvYT4gfCANCgkJCTxhIGhyZWY9 Imh0dHA6Ly9hcHBsLnZvamVuc2thc2tvbGEuY3ovc2VhcmNoX3Blb3BsZS9kZWZh dWx0LmFzcHgiPkhsZWTDoW7DrSBvc29iPC9hPiAgDQoJCTwvZGl2Pg0KCTwvZGl2 Pg0KCQ0KCTxkaXYgaWQ9ImhlYWRlcl8xIj4NCgkJPGEgaWQ9ImN0bDAwX0h5cGVy TGluazEiIGhyZWY9Ii4uLy4uLy4uL3VvIiBzdHlsZT0iZGlzcGxheTpibG9jazsg d2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7Ij48aW1nIHNyYz0iLi4vLi4vU3R5bGUl MjBMaWJyYXJ5L0ltYWdlcy9VTk9CX0ltYWdlcy9sb2dvX3VvLmdpZiIgc3R5bGU9 ImJvcmRlci13aWR0aDowcHg7IiAvPjwvYT4NCgk8L2Rpdj4NCgkNCgk8ZGl2IGlk PSJoZWFkZXJfMiI+DQoJCTxkaXYgaWQ9ImZpbGxlcl8yIj48L2Rpdj4NCgk8L2Rp dj4JDQoJDQoJPGRpdiBpZD0iY29udGVudF8zIj4NCgkJPCEtLSBwbGFjZSB0byBt YWluIHBsYWNlaG9sZGVyIC0tPg0KCQkNCgkJDQogICAgPGRpdiBpZD0iRGVzaWdu Q29sdW1uTGVmdCI+DQoJCTxkaXYgaWQ9IkxlZnRUb3AiPg0KCQkJPGg0PkluZm9y bWFjZSBwcm88L2g0Pg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxhIGhyZWY9Ii4uLy4u L3VjaGF6ZWMiPnVjaGF6ZcSNZTwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0i Li4vLi4vc3R1ZGVudCI+c3R1ZGVudHk8L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhy ZWY9Ii4uLy4uL3ZlcmVqbm9zdF9tZWRpYSI+dmXFmWVqbm9zdCBhIG3DqWRpYTwv YT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iLi4vLi4vYWJzb2x2ZW50Ij5hYnNv bHZlbnR5PC9hPjwvbGk+DQoJCQkJPC91bD4NCgkJPC9kaXY+DQoJCQ0KCQk8ZGl2 IGlkPSJMZWZ0RG93biI+DQoJCQk8ZGl2IGlkPSJjdGwwMF9QbGFjZUhvbGRlck1h aW5fY3RsMDBfX0NvbnRyb2xXcmFwcGVyX1JpY2hIdG1sRmllbGQiIHN0eWxlPSJk aXNwbGF5OmlubGluZSI+PC9kaXY+DQoJCTwvZGl2Pg0KDQoJPC9kaXY+DQoJPGRp diBpZD0iRGVzaWduQ29sdW1uTWlkZGxlTWluSGVpZ2h0Ij48L2Rpdj4NCgk8ZGl2 IGlkPSJEZXNpZ25Db2x1bW5NaWRkbGUiPg0KCQk8ZGl2Pg0KCQk8c3BhbiBpZD0i Y3RsMDBfUGxhY2VIb2xkZXJNYWluX3NpdGVNYXBQYXRoIiBjbGFzcz0iYnJlYWRj cnVtcCIgc3R5bGU9ImZvbnQtc2l6ZTpTbWFsbDsiPjxhIGhyZWY9IiNjdGwwMF9Q bGFjZUhvbGRlck1haW5fc2l0ZU1hcFBhdGhfU2tpcExpbmsiPjxpbWcgYWx0PSJQ xZllc2tvxI1pdCBuYXZpZ2HEjW7DrSBvZGthenkiIGhlaWdodD0iMCIgd2lkdGg9 IjAiIHNyYz0iL1dlYlJlc291cmNlLmF4ZD9kPVlkckwtMDhXTVdwYnp2LVkyRC02 b1EyJmFtcDt0PTYzMzczOTkxOTk3MTIyMjUwNiIgc3R5bGU9ImJvcmRlci13aWR0 aDowcHg7IiAvPjwvYT48c3Bhbj48YSBjbGFzcz0iQkNOb2RlIiBocmVmPSIvU0tP TEEvVU8vU3RyYW5reS9kZWZhdWx0LmFzcHgiPlVuaXZlcnppdGEgb2JyYW55PC9h Pjwvc3Bhbj48c3BhbiBjbGFzcz0iQkNTZXBhcmF0b3IiPiYjMTg3OyA8L3NwYW4+ PHNwYW4+PGEgdGl0bGU9IlZlxZllam5vc3QgYSBtw6lkaWEiIGNsYXNzPSJCQ05v ZGUiIGhyZWY9Ii9za29sYS91by92ZXJlam5vc3RfbWVkaWEvU3RyYW5reS9kZWZh dWx0LmFzcHgiPkluZm9ybWFjZSBwcm8gdmXFmWVqbm9zdCBhIG0mIzIzMztkaWE8 L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJCQ1NlcGFyYXRvciI+JiMxODc7IDwvc3Bh bj48c3BhbiBjbGFzcz0iQkNOb2RlIj5Lb3Ntb25hdXRpIG5hIFVuaXZlcnppdMSb IG9icmFueTwvc3Bhbj48YSBpZD0iY3RsMDBfUGxhY2VIb2xkZXJNYWluX3NpdGVN YXBQYXRoX1NraXBMaW5rIj48L2E+PC9zcGFuPg0KCQk8L2Rpdj4NCgkJDQoJCTxo Mz4NCgkJS29zbW9uYXV0aSBuYSBVbml2ZXJ6aXTEmyBvYnJhbnk8L2gzPg0KCQ0K CTwhLS0gdGV4dCAtLT4NCgk8ZGl2IGlkPSJjdGwwMF9QbGFjZUhvbGRlck1haW5f Y3RsMDFfX0NvbnRyb2xXcmFwcGVyX1JpY2hIdG1sRmllbGQiIHN0eWxlPSJkaXNw bGF5OmlubGluZSI+PHAgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeSI+PHNwYW4+ VsKgcsOhbWNpIFhYSUkuIE1lemluw6Fyb2Ruw61obyBrb25ncmVzdSDDusSNYXN0 bsOta8WvIGtvc21pY2vDvWNoIGxldMWvLCBBU0UgUHJhZ3VlIDIwMDksIHphdsOt dGFsaSBkbyBCcm5hIHZlIHN0xZllZHUgNy4gxZnDrWpuYSB0w6ltxJvFmSBkdsSb IGRlc8OtdGt5IGtvc21vbmF1dMWvIHogY2Vsw6lobyBzdsSbdGEuIEplZG7DrW0g eiBobGF2bsOtY2ggY8OtbMWvIG7DoXbFoXTEm3Z5IGJ5bGEgaW5zcGlyYWNlIG1s YWTDvWNoIGxpZMOtIGtlIHN0dWRpdSB2xJtkeSwgdGVjaG5pa3kgYSBwxZnDrXJv ZG7DrWNoIHbEm2QsIGFsZSB0YWvDqSBwb3B1bGFyaXphY2Uga29zbW9uYXV0aWt5 IHUgbmVqxaFpcsWhw60gxI1lc2vDqSB2ZcWZZWpub3N0aS4gU2V0a8OhbsOtIGtv c21vbmF1dMWvIG3Em2xvIHrDoXJvdmXFiCB1cG96b3JuaXQgbmEgZmFrdCwgxb5l IGtvc21vbmF1dGlrYSB1xb4gZMOhdm5vIG5lbsOtIGRvbcOpbm91IGR2b3Ugc3bE m3RvdsO9Y2ggc3VwZXJ2ZWxtb2PDrSwgYWxlIHDFmWVkZXbFocOtbSBtb3RpdmFj w60gcHJvIHbFoWVjaG55IHNwb2xlxI1ub3N0aSBhIGVrb25vbWlreS48L3NwYW4+ PC9wPg0KPHAgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeSI+PHNwYW4+RG8gQnJu YSBwxZlpamVsaSBrb3Ntb25hdXRpIG5hIHBvenbDoW7DrSBwcmltw6F0b3JhIEJy bmEgUm9tYW5hIE9uZGVya3kgYSDFmWVkaXRlbGUgSHbEm3pkw6FybnkgYSBwbGFu ZXTDoXJpYSBNaWt1bMOhxaFlIEtvcGVybsOta2EgdiBCcm7EmyBKacWZw61obyBE dcWha2EuIFYgZG9wb2xlZG7DrWNoIGhvZGluw6FjaCBieWxpIHNsYXZub3N0bsSb IHDFmWlqYXRpIG5hIE5vdsOpIHJhZG5pY2kuIFBvdMOpIGtvc21vbmF1dGkgcG9s b8W+aWxpIG5hIEtyYXbDrSBob8WZZSB6w6FrbGFkbsOtIGvDoW1lbiDigJ5QxZnD rXJvZG92xJtkbsOpaG8gZXhwbG9yYXRvcmlh4oCcLiBTeW1ib2xpY2t5IHRhayBi eWxhIHphaMOhamVuYSBwxZllc3RhdmJhIEh2xJt6ZMOhcm55IGEgcGxhbmV0w6Fy aWEgTWlrdWzDocWhZSBLb3Blcm7DrWthIHYgQnJuxJsgdiBtb2Rlcm7DrSBwxZnD rXJvZG92xJtkbsOpIHZ6ZMSbbMOhdmFjw60gY2VudHJ1bS4gPC9zcGFuPjwvcD4N CjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmp1c3RpZnkiPjwvcD4NCjx0YWJsZSBzdHls ZT0id2lkdGg6MTAwJSIgc3VtbWFyeT0iIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZD7C oDxhIHRpdGxlPSIiIGhyZWY9Ii9za29sYS91by92ZXJlam5vc3RfbWVkaWEvUHVi bGlzaGluZ0ltYWdlcy8yMDA5MTAwOC8wMS5KUEciIHRhcmdldD0iX2JsYW5rIj48 aW1nIHN0eWxlPSJib3JkZXItcmlnaHQ6MHB4IHNvbGlkO2JvcmRlci10b3A6MHB4 IHNvbGlkO2JvcmRlci1sZWZ0OjBweCBzb2xpZDtib3JkZXItYm90dG9tOjBweCBz b2xpZCIgc3JjPSIvc2tvbGEvdW8vdmVyZWpub3N0X21lZGlhL1B1Ymxpc2hpbmdJ bWFnZXMvMjAwOTEwMDgvMDFNLkpQRyIgYm9yZGVyPTA+PC9hPjwvdGQ+DQo8dGQ+ wqA8YSB0aXRsZT0iIiBocmVmPSIvc2tvbGEvdW8vdmVyZWpub3N0X21lZGlhL1B1 Ymxpc2hpbmdJbWFnZXMvMjAwOTEwMDgvMDIuSlBHIiB0YXJnZXQ9Il9ibGFuayI+ PGltZyBzdHlsZT0iYm9yZGVyLXJpZ2h0OjBweCBzb2xpZDtib3JkZXItdG9wOjBw eCBzb2xpZDtib3JkZXItbGVmdDowcHggc29saWQ7Ym9yZGVyLWJvdHRvbTowcHgg c29saWQiIHNyYz0iL3Nrb2xhL3VvL3ZlcmVqbm9zdF9tZWRpYS9QdWJsaXNoaW5n SW1hZ2VzLzIwMDkxMDA4LzAyTS5KUEciIGJvcmRlcj0wPjwvYT48L3RkPg0KPHRk PsKgPGEgdGl0bGU9IiIgaHJlZj0iL3Nrb2xhL3VvL3ZlcmVqbm9zdF9tZWRpYS9Q dWJsaXNoaW5nSW1hZ2VzLzIwMDkxMDA4LzAzLkpQRyIgdGFyZ2V0PSJfYmxhbmsi PjxpbWcgc3R5bGU9ImJvcmRlci1yaWdodDowcHggc29saWQ7Ym9yZGVyLXRvcDow cHggc29saWQ7Ym9yZGVyLWxlZnQ6MHB4IHNvbGlkO2JvcmRlci1ib3R0b206MHB4 IHNvbGlkIiBzcmM9Ii9za29sYS91by92ZXJlam5vc3RfbWVkaWEvUHVibGlzaGlu Z0ltYWdlcy8yMDA5MTAwOC8wM00uSlBHIiBib3JkZXI9MD48L2E+PC90ZD48L3Ry PjwvdGJvZHk+PC90YWJsZT4NCjxwPjwvcD4NCjxwIHN0eWxlPSJ0ZXh0LWFsaWdu Omp1c3RpZnkiPlYgb2Rwb2xlZG7DrWNoIGhvZGluw6FjaCBzZcKgcyBrb3Ntb25h dXR5IE9sZWdlbSBLb3RvdmVtIGEgSXZhbmVtIEJlbGxlbSBzZXRrYWxpIHN0dWRl bnRpIGEgYWthZGVtacSNdMOtIHByYWNvdm7DrWNpIFVuaXZlcnppdHkgb2JyYW55 LiBTZXRrw6Fuw60gYnlsIHDFmcOtdG9tZW4gdGFrw6kgcmVrdG9yIFVuaXZlcnpp dHkgb2JyYW55IFJ1ZG9sZiBVcmJhbiwga3RlcsO9IGhvc3R5IHNyZGXEjW7EmyBw xZlpdsOtdGFsIGEgb2LEm21hIHDFmWVkYWwgZHJvYm7DqSB1cG9tw61ua292w6kg cMWZZWRtxJt0eS4gPC9zcGFuPjwvcD4NCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmp1 c3RpZnkiPjxzcGFuPk9sZWcgS290b3YgamUgdsKgcG/FmWFkw60gNDUyLiDEjWxv dsSba2VtIHZlIHZlc23DrXJ1IGEgYnlsIHRhbSBwb3V6ZSBqZWRub3UsIGF2xaFh ayB2wqByb2NlIDIwMDcgbmEgcGFsdWLEmyBNZXppbsOhcm9kbsOtIGtvc21pY2vD qSBzdGFuaWNlIHN0csOhdmlsIGpha28gcGFsdWJuw60gc3BlY2lhbGlzdGEgY2Vs a2VtIDE5NyBkbsOtLiBEYWzFocOtIGxldCBieSBtxJtsIGFic29sdm92YXQgbmEg cMWZZWxvbXUgbGV0IDIwMDkgYSAyMDEwLjwvc3Bhbj48L3A+DQo8cCBzdHlsZT0i dGV4dC1hbGlnbjpqdXN0aWZ5Ij48c3Bhbj5EcnVow71tIGhvc3RlbSBieWwgcHJ2 bsOtIHNsb3ZlbnNrw70ga29zbW9uYXV0IEl2YW4gQmVsbGEsIGt0ZXLDvSBzZSBz dGFsIMSNbGVuZW0gcnVza28tZnJhbmNvdXpza28tc2xvdmVuc2vDqSBleHBlZGlj ZSBrb3NtaWNrw6kgc3RhbmljZSBNaXIgdsKgcm9jZSAxOTk5LCBrZGUgc3Ryw6F2 aWwgbmVjZWzDvWNoIDggZG7DrS4gUG9zw6Fka3UgdGVua3LDoXQgdHZvxZlpbGkg dGFrw6kgVmlrdG9yIEFmYW5hc3lldiBhIEplbmEtUGllcnJlIEhhaWduZXLDqS4g SXZhbiBCZWxsIGplIHbCoHBvxZlhZMOtIDM4NS4gxI1sb3bEm2tlbSB2ZSB2ZXNt w61ydS48L3NwYW4+PC9wPg0KPHAgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeSI+ PHNwYW4+T2JhIGtvc21vbmF1dGkgbmEgc2V0a8OhbsOtIGhvdm/FmWlsaSBvIG7D oXJvxI1uw6kgcMWZw61wcmF2xJsga29zbW9uYXV0YSBhIG8gc3bDqW0gcG9ieXR1 IHZlIHZlc23DrXJ1LiBWwqBuw6FzbGVkdWrDrWPDrSBiZXNlZMSbIHNlIHN0dWRl bnRpIHphasOtbWFsaSBvIHJ5emUgb2Rib3Juw6kga29zbW9uYXV0aWNrw6kgb3TD oXpreSBpIG8gcHJha3RpY2vDqSB6w6FsZcW+aXRvc3RpIHTDvWthasOtY8OtIHNl IMW+aXZvdGEga29zbW9uYXV0xa8uIFphasOtbWFsaSBzZSB0YWvDqSBvIHBvY2l0 eSBrb3Ntb25hdXTFryB2IGtvc211LCBvIHpwxa9zb2IgamVqaWNoIHN0cmF2b3bD oW7DrSBhIG9kcG/EjWlua3UsIG8gdG8gamFrw70gamUgcG9obGVkIHrCoGtvc211 IG5hIHplbSwgemRhIGtvc21vbmF1dGkgbW9ob3UgcMWZaXNwxJt0IGvCoHrDoWNo cmFuxJsgbmHFocOtIHBsYW5ldHkgYXRkLiBQb3V0YXbDqSB2eXByw6F2xJtuw60g a29zbW9uYXV0xa8gdGFrIHbFoWVtIHDFmcOtdG9tbsO9bSB1bW/Fvm5pbG8gbmFo bMOpZG5vdXQgcG9kIHBva2xpxI1rdSBqZWppY2ggemFqw61tYXbDqWhvIMW+aXZv dGEgYSBuZXbFoWVkbsOtIHByw6FjZS4gPC9zcGFuPjwvcD4NCjxwPjxzcGFuPkF1 dG9yOiBNZ3IuIFpkZcWIa2EgRHVib3bDoSwgZm90bzogRHIuIFBhdmVsIFBhemRl cmE8L3NwYW4+PC9wPjwvZGl2Pg0KCTwvZGl2Pg0KCQ0KCTxkaXYgaWQ9IkRlc2ln bkNvbHVtblJpZ2h0Ij4NCgkJPGRpdiBpZD0iTGVmdFRvcCI+DQoJCQk8aDQ+Unlj aGzDqSBvZGthenk8L2g0Pg0KCQkJPGRpdiBpZD0iY3RsMDBfUGxhY2VIb2xkZXJN YWluX2N0bDAyX19Db250cm9sV3JhcHBlcl9SaWNoSHRtbEZpZWxkIiBzdHlsZT0i ZGlzcGxheTppbmxpbmUiPjwvZGl2Pg0KCQkJPGhyPg0KCQkJPGg0PkFrdHVhbGl0 eTwvaDQ+DQoJCQk8ZGl2IGlkPSJjdGwwMF9QbGFjZUhvbGRlck1haW5fY3RsMDNf X0NvbnRyb2xXcmFwcGVyX1JpY2hIdG1sRmllbGQiIHN0eWxlPSJkaXNwbGF5Omlu bGluZSI+PC9kaXY+DQoJCTwvZGl2Pg0KCQkNCgkJPGRpdiBpZD0iUmlnaHREb3du Ij4NCgkJCTxkaXYgaWQ9ImN0bDAwX1BsYWNlSG9sZGVyTWFpbl9jdGwwNF9fQ29u dHJvbFdyYXBwZXJfUmljaEh0bWxGaWVsZCIgc3R5bGU9ImRpc3BsYXk6aW5saW5l Ij48L2Rpdj4NCgkJPC9kaXY+DQoNCgk8L2Rpdj48aHRtbCB4bWxuczptc289InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6bXNk dD0idXVpZDpDMkY0MTAxMC02NUIzLTExZDEtQTI5Ri0wMEFBMDBDMTQ4ODIiPjxo ZWFkPg0KPCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bXNvOkN1c3RvbURvY3Vt ZW50UHJvcGVydGllcz4NCjxtc286UHVibGlzaGluZ1ByZXZpZXdJbWFnZSBtc2R0 OmR0PSJzdHJpbmciPmh0dHA6Ly9tb3NzMS9za29sYS91by9fY2F0YWxvZ3MvbWFz dGVycGFnZS9MYXlvdXRfcHJldmlldy9pbmZvcm1hY2VfcHJvX3VvLnBuZywgL3Nr b2xhL3VvL19jYXRhbG9ncy9tYXN0ZXJwYWdlL0xheW91dF9wcmV2aWV3L2luZm9y bWFjZV9wcm9fdW8ucG5nPC9tc286UHVibGlzaGluZ1ByZXZpZXdJbWFnZT4NCjxt c286TWFzdGVyUGFnZURlc2NyaXB0aW9uIG1zZHQ6ZHQ9InN0cmluZyI+U3Ryw6Fu a2Egb2JzYWh1amUgbGV2w70gc2xvdXBlYyBzIGZpeG7DrW0gb2JzYWhlbSAob3LD oW1vdmFuw70pLiBQb2QgbsOtbSBzbG91cGVjIChiZXogb3LDoW1vdsOhbsOtKSBw cm8gbmVwb3Zpbm7DvSBvYnNhaC4gUHJvc3TFmWVkbsOtIHNsb3VwZWMgamUgbcSb bml0ZWxuw70gb2JzYWguIFByYXbDvSBob3Juw60gc2xvdXBlYyAob3LDoW1vdsOh bsOtbSkgYSBzbG91cGVjIHBvZCBuw61tIChiZXogb3LDoW1vdsOhbsOtKSBtxa/F vmV0ZSBtxJtuaXQuPC9tc286TWFzdGVyUGFnZURlc2NyaXB0aW9uPg0KPC9tc286 Q3VzdG9tRG9jdW1lbnRQcm9wZXJ0aWVzPg0KPC94bWw+PCFbZW5kaWZdLS0+DQo8 dGl0bGU+SW5mb3JtYWNlX3Byb19mYWt1bHRhPC90aXRsZT48L2hlYWQ+DQoNCgk8 L2Rpdj4NCgkNCgk8ZGl2IGlkPSJmb290ZXJfNCI+DQoJCTxkaXYgaWQ9ImZvb3Rl cl9ib3hfNCI+DQoJCQk8ZGl2IGlkPSJGb290ZXJMZWZ0Ij4mY29weTsgMjAwOCBV bml2ZXJ6aXRhIG9icmFueSB8IEtvdW5pY292YSA2NSwgNjYyIDEwIEJybm8sIEN6 ZWNoIHJlcHVibGljIHwgQWxsIHJpZ2h0cyByZXNlcnZlZDwvZGl2Pg0KCQkJPGRp diBpZD0iRm9vdGVyUmlnaHQiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL1BhZ2VzL3dl Ym1hc3Rlci5hc3B4IiB0YXJnZXQ9Il9ibGFuayI+V2VibWFzdGVyczwvYT48L2Rp dj4NCgkJPC9kaXY+DQoJCTxkaXYgaWQ9ImZpbGxlcl80Ij4NCgkJCQ0KCQk8L2Rp dj4NCgk8L2Rpdj4NCgkNCjwvZGl2Pg0KDQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiPg0KLy88IVtDREFUQVsNCnZhciBfX3dwbUV4cG9ydFdhcm5p bmc9J1BybyB0dXRvIHN0csOhbmt1IHdlYm92w71jaCDEjcOhc3TDrSBieWxvIHBv dcW+aXRvIGluZGl2aWR1w6FsbsOtIG5hc3RhdmVuw60uIE7DoXNsZWRrZW0gdG9o byB2bGFzdG5vc3RpIG7Em2t0ZXLDvWNoIHdlYm92w71jaCDEjcOhc3TDrSBwcmF2 ZMSbcG9kb2JuxJsgb2JzYWh1asOtIGTFr3bEm3Juw6kgaW5mb3JtYWNlLiBQxZll c3bEm2TEjXRlIHNlLCB6ZGEgdsWhZWNobnkgdmxhc3Rub3N0aSBvYnNhaHVqw60g aW5mb3JtYWNlLCBrdGVyw6kgbHplIGJleiBvYmF2IHpwxZnDrXN0dXBuaXQgb3N0 YXRuw61tIHXFvml2YXRlbMWvbS4gUG8gZXhwb3J0dSB0w6l0byB3ZWJvdsOpIMSN w6FzdGkgbcWvxb5ldGUgem9icmF6aXQgdmxhc3Rub3N0aSB2IHNvdWJvcnUgcG9w aXN1IHdlYm92w6kgxI3DoXN0aSAoLldlYlBhcnQpIHBvbW9jw60gdGV4dG92w6lo byBlZGl0b3J1LCBuYXDFmcOta2xhZCBwcm9ncmFtdSBaw6FwaXNuw61rLic7dmFy IF9fd3BtQ2xvc2VQcm92aWRlcldhcm5pbmc9J0NoeXN0w6F0ZSBzZSB6YXbFmcOt dCB0dXRvIHdlYm92b3UgxI3DoXN0LiBUYXRvIMSNw6FzdCBha3R1w6FsbsSbIHBv c2t5dHVqZSBkYXRhIGppbsOpIHdlYm92w6kgxI3DoXN0aS4gVGF0byBwxZlpcG9q ZW7DrSBidWRvdSB2IHDFmcOtcGFkxJsgamVqw61obyB6YXbFmWVuw60gdWtvbsSN ZW5hLiBDaGNldGUtbGkgd2Vib3ZvdSDEjcOhc3QgemF2xZnDrXQsIGtsZXBuxJt0 ZSBuYSB0bGHEjcOtdGtvIE9LLiBDaGNldGUtbGkgd2Vib3ZvdSDEjcOhc3QgcG9u ZWNoYXQsIGtsZXBuxJt0ZSBuYSB0bGHEjcOtdGtvIFN0b3Juby4nO3ZhciBfX3dw bURlbGV0ZVdhcm5pbmc9J0NoeXN0w6F0ZSBzZSBuYXbFvmR5IG9kc3RyYW5pdCB0 dXRvIHdlYm92b3UgxI3DoXN0LiBPcHJhdmR1IGNoY2V0ZSBwcm92w6lzdCB0dXRv IGFrY2k/IENoY2V0ZS1saSB3ZWJvdm91IMSNw6FzdCBvZHN0cmFuaXQsIGtsZXBu xJt0ZSBuYSB0bGHEjcOtdGtvIE9LLiBDaGNldGUtbGkgd2Vib3ZvdSDEjcOhc3Qg cG9uZWNoYXQsIGtsZXBuxJt0ZSBuYSB0bGHEjcOtdGtvIFN0b3Juby4nOy8vXV0+ DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5n dWFnZT0iamF2YXNjcmlwdCIgc3JjPSIvX2xheW91dHMvMTAyOS9jb3JlLmpzP3Jl dj1uVXZmWjBDRkQ5VmdJM2pjVnJKaGpBJTNEJTNEIj48L3NjcmlwdD4KPC9mb3Jt Pg0KDQo8L2JvZHk+DQo8L2h0bWw+DQoNCg== ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=init.js Content-Type: application/x-javascript; charset=utf-8; name=init.js Content-Location: http://www.vojenskaskola.cz/_layouts/1029/init.js?rev=zKfCEnC%2FZyLUoPyqt8oHvA%3D%3D Content-Transfer-Encoding: Base64 77u/ZnVuY3Rpb24gQnJvd3NlcmlzICgpIHsNCgl2YXIgYWd0PW5hdmlnYXRvci51 c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsNCgl0aGlzLm9zdmVyPTEuMDsNCglpZiAo YWd0KQ0KCXsNCgkJdmFyIHN0T1NWZXI9YWd0LnN1YnN0cmluZyhhZ3QuaW5kZXhP Zigid2luZG93cyAiKSsxMSk7DQoJCXRoaXMub3N2ZXI9cGFyc2VGbG9hdChzdE9T VmVyKTsNCgl9DQoJdGhpcy5tYWpvcj1wYXJzZUludChuYXZpZ2F0b3IuYXBwVmVy c2lvbik7DQoJdGhpcy5uYXY9KChhZ3QuaW5kZXhPZignbW96aWxsYScpIT0tMSkm JigoYWd0LmluZGV4T2YoJ3Nwb29mZXInKT09LTEpICYmIChhZ3QuaW5kZXhPZign Y29tcGF0aWJsZScpPT0tMSkpKTsNCgl0aGlzLm5hdjY9dGhpcy5uYXYgJiYgKHRo aXMubWFqb3I9PTUpOw0KCXRoaXMubmF2NnVwPXRoaXMubmF2ICYmICh0aGlzLm1h am9yID49NSk7DQoJdGhpcy5uYXY3dXA9ZmFsc2U7DQoJaWYgKHRoaXMubmF2NnVw KQ0KCXsNCgkJdmFyIG5hdklkeD1hZ3QuaW5kZXhPZigibmV0c2NhcGUvIik7DQoJ CWlmIChuYXZJZHggPj0wICkNCgkJCXRoaXMubmF2N3VwPXBhcnNlSW50KGFndC5z dWJzdHJpbmcobmF2SWR4KzkpKSA+PTc7DQoJfQ0KCXRoaXMuaWU9KGFndC5pbmRl eE9mKCJtc2llIikhPS0xKTsNCgl0aGlzLmFvbD10aGlzLmllICYmIGFndC5pbmRl eE9mKCIgYW9sICIpIT0tMTsNCglpZiAodGhpcy5pZSkNCgkJew0KCQl2YXIgc3RJ RVZlcj1hZ3Quc3Vic3RyaW5nKGFndC5pbmRleE9mKCJtc2llICIpKzUpOw0KCQl0 aGlzLmlldmVyPXBhcnNlSW50KHN0SUVWZXIpOw0KCQl0aGlzLnZlcklFRnVsbD1w YXJzZUZsb2F0KHN0SUVWZXIpOw0KCQl9DQoJZWxzZQ0KCQl0aGlzLmlldmVyPTA7 DQoJdGhpcy5pZTR1cD10aGlzLmllICYmICh0aGlzLm1ham9yID49NCk7DQoJdGhp cy5pZTV1cD10aGlzLmllICYmICh0aGlzLmlldmVyID49NSk7DQoJdGhpcy5pZTU1 dXA9dGhpcy5pZSAmJiAodGhpcy52ZXJJRUZ1bGwgPj01LjUpOw0KCXRoaXMuaWU2 dXA9dGhpcy5pZSAmJiAodGhpcy5pZXZlciA+PTYpOw0KCXRoaXMud2lubnQ9KChh Z3QuaW5kZXhPZigid2lubnQiKSE9LTEpfHwoYWd0LmluZGV4T2YoIndpbmRvd3Mg bnQiKSE9LTEpKTsNCgl0aGlzLndpbjMyPSgodGhpcy5tYWpvciA+PTQpICYmIChu YXZpZ2F0b3IucGxhdGZvcm09PSJXaW4zMiIpKSB8fA0KCQkoYWd0LmluZGV4T2Yo IndpbjMyIikhPS0xKSB8fCAoYWd0LmluZGV4T2YoIjMyYml0IikhPS0xKTsNCgl0 aGlzLm1hYz0oYWd0LmluZGV4T2YoIm1hYyIpIT0tMSk7DQoJdGhpcy53M2M9dGhp cy5uYXY2dXA7DQoJdGhpcy5zYWZhcmk9KGFndC5pbmRleE9mKCJzYWZhcmkiKSE9 LTEpOw0KCXRoaXMuc2FmYXJpMTI1dXA9ZmFsc2U7DQoJaWYgKHRoaXMuc2FmYXJp ICYmIHRoaXMubWFqb3IgPj01KQ0KCXsNCgkJdmFyIG5hdklkeD1hZ3QuaW5kZXhP Zigic2FmYXJpLyIpOw0KCQlpZiAobmF2SWR4ID49MCkNCgkJCXRoaXMuc2FmYXJp MTI1dXA9cGFyc2VJbnQoYWd0LnN1YnN0cmluZyhuYXZJZHgrNykpID49MTI1Ow0K CX0NCn0NCnZhciBicm93c2VyaXM9bmV3IEJyb3dzZXJpcygpOw0KdmFyIGJpcz1i cm93c2VyaXM7DQpmdW5jdGlvbiBieWlkKGlkKSB7IHJldHVybiBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChpZCk7IH0NCmZ1bmN0aW9uIG5ld0UodGFnKSB7IHJldHVy biBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7IH0NCmZ1bmN0aW9uIHdwZigp IHsgcmV0dXJuIGRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVd OyB9DQpmdW5jdGlvbiBzdGFydFJlcGxhY2VtZW50KCkge30NCmZ1bmN0aW9uIEdl dEV2ZW50U3JjRWxlbWVudChlKQ0Kew0KCWlmIChicm93c2VyaXMubmF2KQ0KCQly ZXR1cm4gZS50YXJnZXQ7DQoJZWxzZQ0KCQlyZXR1cm4gZS5zcmNFbGVtZW50Ow0K fQ0KZnVuY3Rpb24gR2V0RXZlbnRLZXlDb2RlKGUpDQp7DQoJaWYgKGJyb3dzZXJp cy5uYXYpDQoJCXJldHVybiBlLndoaWNoOw0KCWVsc2UNCgkJcmV0dXJuIGUua2V5 Q29kZTsNCn0NCmZ1bmN0aW9uIEdldElubmVyVGV4dChlKQ0Kew0KCWlmIChicm93 c2VyaXMuc2FmYXJpKQ0KCQlyZXR1cm4gZS5pbm5lckhUTUw7DQoJZWxzZSBpZiAo YnJvd3NlcmlzLm5hdikNCgkJcmV0dXJuIGUudGV4dENvbnRlbnQ7DQoJZWxzZQ0K CQlyZXR1cm4gZS5pbm5lclRleHQ7DQp9DQp2YXIgVVRGOF8xU1RfT0ZfMj0weGMw ICAgOw0KdmFyIFVURjhfMVNUX09GXzM9MHhlMCAgIDsNCnZhciBVVEY4XzFTVF9P Rl80PTB4ZjAgICA7DQp2YXIgVVRGOF9UUkFJTD0weDgwICAgOw0KdmFyIEhJR0hf U1VSUk9HQVRFX0JJVFM9MHhEODAwIDsNCnZhciBMT1dfU1VSUk9HQVRFX0JJVFM9 MHhEQzAwIDsNCnZhciBTVVJST0dBVEVfNl9CSVQ9MHhGQzAwIDsNCnZhciBTVVJS T0dBVEVfSURfQklUUz0weEY4MDAgOw0KdmFyIFNVUlJPR0FURV9PRkZTRVQ9MHgx MDAwMDsNCmZ1bmN0aW9uIGVzY2FwZVByb3Blcmx5Q29yZUNvcmUoc3RyLCBiQXNV cmwsIGJGb3JGaWx0ZXJRdWVyeSwgYkZvckNhbGxiYWNrKQ0Kew0KCXZhciBzdHJP dXQ9IiI7DQoJdmFyIHN0ckJ5dGU9IiI7DQoJdmFyIGl4PTA7DQoJdmFyIHN0ckVz Y2FwZWQ9IiBcIiU8PlwnJiI7DQoJaWYgKHR5cGVvZihzdHIpPT0idW5kZWZpbmVk IikNCgkJcmV0dXJuICIiOw0KCWZvciAoaXg9MDsgaXggPCBzdHIubGVuZ3RoOyBp eCsrKQ0KCXsNCgkJdmFyIGNoYXJDb2RlPXN0ci5jaGFyQ29kZUF0KGl4KTsNCgkJ dmFyIGN1ckNoYXI9c3RyLmNoYXJBdChpeCk7DQoJCWlmKGJBc1VybCAmJiAoY3Vy Q2hhcj09JyMnIHx8IGN1ckNoYXI9PSc/JykgKQ0KCQl7DQoJCQlzdHJPdXQrPXN0 ci5zdWJzdHIoaXgpOw0KCQkJYnJlYWs7DQoJCX0NCgkJaWYgKGJGb3JGaWx0ZXJR dWVyeSAmJiBjdXJDaGFyPT0nJicpDQoJCXsNCgkJCXN0ck91dCs9Y3VyQ2hhcjsN CgkJCWNvbnRpbnVlOw0KCQl9DQoJCWlmIChjaGFyQ29kZSA8PTB4N2YpDQoJCXsN CgkJCWlmIChiRm9yQ2FsbGJhY2spDQoJCQl7DQoJCQkJc3RyT3V0Kz1jdXJDaGFy Ow0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWlmICggKGNoYXJDb2RlID49OTcg JiYgY2hhckNvZGUgPD0xMjIpIHx8DQoJCQkJCSAoY2hhckNvZGUgPj02NSAmJiBj aGFyQ29kZSA8PTkwKSB8fA0KCQkJCQkgKGNoYXJDb2RlID49NDggJiYgY2hhckNv ZGUgPD01NykgfHwNCgkJCQkJIChiQXNVcmwgJiYgKGNoYXJDb2RlID49MzIgJiYg Y2hhckNvZGUgPD05NSkgJiYgc3RyRXNjYXBlZC5pbmRleE9mKGN1ckNoYXIpIDwg MCkpDQoJCQkJew0KCQkJCQlzdHJPdXQrPWN1ckNoYXI7DQoJCQkJfQ0KCQkJCWVs c2UgaWYgKGNoYXJDb2RlIDw9MHgwZikNCgkJCQl7DQoJCQkJCXN0ck91dCs9IiUw IitjaGFyQ29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsNCgkJCQl9DQoJ CQkJZWxzZSBpZiAoY2hhckNvZGUgPD0weDdmKQ0KCQkJCXsNCgkJCQkJc3RyT3V0 Kz0iJSIrY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7DQoJCQkJ fQ0KCQkJfQ0KCQl9DQoJCWVsc2UgaWYgKGNoYXJDb2RlIDw9MHgwN2ZmKQ0KCQl7 DQoJCQlzdHJCeXRlPVVURjhfMVNUX09GXzIgfCAoY2hhckNvZGUgPj4gNik7DQoJ CQlzdHJPdXQrPSIlIitzdHJCeXRlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgp IDsNCgkJCXN0ckJ5dGU9VVRGOF9UUkFJTCB8IChjaGFyQ29kZSAmIDB4MDAzZik7 DQoJCQlzdHJPdXQrPSIlIitzdHJCeXRlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2Fz ZSgpOw0KCQl9DQoJCWVsc2UgaWYgKChjaGFyQ29kZSAmIFNVUlJPR0FURV82X0JJ VCkgIT1ISUdIX1NVUlJPR0FURV9CSVRTKQ0KCQl7DQoJCQlzdHJCeXRlPVVURjhf MVNUX09GXzMgfCAoY2hhckNvZGUgPj4gMTIpOw0KCQkJc3RyT3V0Kz0iJSIrc3Ry Qnl0ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsNCgkJCXN0ckJ5dGU9VVRG OF9UUkFJTCB8ICgoY2hhckNvZGUgJiAweDBmYzApID4+IDYpOw0KCQkJc3RyT3V0 Kz0iJSIrc3RyQnl0ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsNCgkJCXN0 ckJ5dGU9VVRGOF9UUkFJTCB8IChjaGFyQ29kZSAmIDB4MDAzZik7DQoJCQlzdHJP dXQrPSIlIitzdHJCeXRlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOw0KCQl9 DQoJCWVsc2UgaWYgKGl4IDwgc3RyLmxlbmd0aCAtIDEpDQoJCXsNCgkJCXZhciBj aGFyQ29kZT0oY2hhckNvZGUgJiAweDAzRkYpIDw8IDEwOw0KCQkJaXgrKzsNCgkJ CXZhciBuZXh0Q2hhckNvZGU9c3RyLmNoYXJDb2RlQXQoaXgpOw0KCQkJY2hhckNv ZGUgfD1uZXh0Q2hhckNvZGUgJiAweDAzRkY7DQoJCQljaGFyQ29kZSs9U1VSUk9H QVRFX09GRlNFVDsNCgkJCXN0ckJ5dGU9VVRGOF8xU1RfT0ZfNCB8IChjaGFyQ29k ZSA+PiAxOCk7DQoJCQlzdHJPdXQrPSIlIitzdHJCeXRlLnRvU3RyaW5nKDE2KS50 b1VwcGVyQ2FzZSgpOw0KCQkJc3RyQnl0ZT1VVEY4X1RSQUlMIHwgKChjaGFyQ29k ZSAmIDB4M2YwMDApID4+IDEyKTsNCgkJCXN0ck91dCs9IiUiK3N0ckJ5dGUudG9T dHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7DQoJCQlzdHJCeXRlPVVURjhfVFJBSUwg fCAoKGNoYXJDb2RlICYgMHgwZmMwKSA+PiA2KTsNCgkJCXN0ck91dCs9IiUiK3N0 ckJ5dGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7DQoJCQlzdHJCeXRlPVVU RjhfVFJBSUwgfCAoY2hhckNvZGUgJiAweDAwM2YpOw0KCQkJc3RyT3V0Kz0iJSIr c3RyQnl0ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsNCgkJfQ0KCX0NCgly ZXR1cm4gc3RyT3V0Ow0KfQ0KZnVuY3Rpb24gZXNjYXBlUHJvcGVybHkoc3RyKQ0K ew0KCXJldHVybiBlc2NhcGVQcm9wZXJseUNvcmVDb3JlKHN0ciwgZmFsc2UsIGZh bHNlLCBmYWxzZSk7DQp9DQpmdW5jdGlvbiBlc2NhcGVQcm9wZXJseUNvcmUoc3Ry LCBiQXNVcmwpDQp7DQoJcmV0dXJuIGVzY2FwZVByb3Blcmx5Q29yZUNvcmUoc3Ry LCBiQXNVcmwsIGZhbHNlLCBmYWxzZSk7DQp9DQpmdW5jdGlvbiBlc2NhcGVVcmxG b3JDYWxsYmFjayhzdHIpDQp7DQoJdmFyIGlQb3VuZD1zdHIuaW5kZXhPZigiIyIp Ow0KCXZhciBpUXVlcz1zdHIuaW5kZXhPZigiPyIpOw0KCWlmICgoaVBvdW5kID4g MCkgJiYgKChpUXVlcz09LTEpIHx8IChpUG91bmQgPCBpUXVlcykpKQ0KCXsNCgkJ dmFyIHN0ck5ldz1zdHIuc3Vic3RyKDAsIGlQb3VuZCk7DQoJCWlmIChpUXVlcyA+ IDApDQoJCXsNCgkJCXN0ck5ldys9c3RyLnN1YnN0cihpUXVlcyk7DQoJCX0NCgkJ c3RyPXN0ck5ldzsNCgl9DQoJcmV0dXJuIGVzY2FwZVByb3Blcmx5Q29yZUNvcmUo c3RyLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7DQp9DQpmdW5jdGlvbiBQYWdlVXJsVmFs aWRhdGlvbih1cmwpDQp7DQoJaWYgKHVybC5zdWJzdHIoMCwgNCkgIT0iaHR0cCIg JiYgdXJsLnN1YnN0cigwLDEpICE9Ii8iKQ0KCXsNCgkJdmFyIExfSW52YWxpZFBh Z2VVcmxfVGV4dD0iTmVwbGF0bsOhIGFkcmVzYSBVUkwgc3Ryw6Fua3k6ICI7DQoJ CWFsZXJ0KExfSW52YWxpZFBhZ2VVcmxfVGV4dCk7DQoJCXJldHVybiAiIjsNCgl9 DQoJZWxzZQ0KCQlyZXR1cm4gdXJsOw0KfQ0KZnVuY3Rpb24gRGVmZXJDYWxsKCkN CnsNCglpZiAoYXJndW1lbnRzLmxlbmd0aD09MCkNCgkJcmV0dXJuIG51bGw7DQoJ dmFyIGFyZ3M9YXJndW1lbnRzOw0KCXZhciBmbj1udWxsOw0KCWlmIChicm93c2Vy aXMuaWU1dXAgfHwgYnJvd3NlcmlzLm5hdjZ1cCkNCgl7DQoJCWV2YWwoImlmICh0 eXBlb2YoIithcmdzWzBdKyIpPT0nZnVuY3Rpb24nKSB7IGZuPSIrYXJnc1swXSsi OyB9Iik7DQoJfQ0KCWlmIChmbj09bnVsbCkNCgkJcmV0dXJuIG51bGw7DQoJaWYg KGFyZ3MubGVuZ3RoPT0xKSByZXR1cm4gZm4oKTsNCgllbHNlIGlmIChhcmdzLmxl bmd0aD09MikgcmV0dXJuIGZuKGFyZ3NbMV0pOw0KCWVsc2UgaWYgKGFyZ3MubGVu Z3RoPT0zKSByZXR1cm4gZm4oYXJnc1sxXSwgYXJnc1syXSk7DQoJZWxzZSBpZiAo YXJncy5sZW5ndGg9PTQpIHJldHVybiBmbihhcmdzWzFdLCBhcmdzWzJdLCBhcmdz WzNdKTsNCgllbHNlIGlmIChhcmdzLmxlbmd0aD09NSkgcmV0dXJuIGZuKGFyZ3Nb MV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pOw0KCWVsc2UgaWYgKGFyZ3Mu bGVuZ3RoPT02KSByZXR1cm4gZm4oYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwg YXJnc1s0XSwgYXJnc1s1XSk7DQoJZWxzZSBpZiAoYXJncy5sZW5ndGg9PTcpIHJl dHVybiBmbihhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdz WzVdLCBhcmdzWzZdKTsNCgllbHNlIGlmIChhcmdzLmxlbmd0aD09OCkgcmV0dXJu IGZuKGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0sIGFyZ3NbNV0s IGFyZ3NbNl0sIGFyZ3NbN10pOw0KCWVsc2UgaWYgKGFyZ3MubGVuZ3RoPT05KSBy ZXR1cm4gZm4oYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJn c1s1XSwgYXJnc1s2XSwgYXJnc1s3XSwgYXJnc1s4XSk7DQoJZWxzZSBpZiAoYXJn cy5sZW5ndGg9PTEwKSByZXR1cm4gZm4oYXJnc1sxXSwgYXJnc1syXSwgYXJnc1sz XSwgYXJnc1s0XSwgYXJnc1s1XSwgYXJnc1s2XSwgYXJnc1s3XSwgYXJnc1s4XSwg YXJnc1s5XSk7DQoJZWxzZQ0KCXsNCgkJdmFyIExfVG9vTWFueURlZmVyc19UZXh0 PSJGdW5rY2kgRGVmZXJDYWxsIGJ5bG8gcMWZZWTDoW5vIHDFmcOtbGnFoSBtbm9o byBwYXJhbWV0csWvLiI7DQoJCWFsZXJ0KExfVG9vTWFueURlZmVyc19UZXh0KTsN Cgl9DQoJcmV0dXJuIG51bGw7DQp9DQp2YXIgTF9Db250YWluSWxsZWdhbENoYXJf VGV4dD0iXjEgb2JzYWh1amUgbmVwbGF0bsO9IHpuYWsgXjIuIjsNCnZhciBMX0Nv bnRhaW5JbGxlZ2FsU3RyaW5nX1RleHQ9Il4xIG9ic2FodWplIG5lcGxhdG7DqSB6 bmFreSBuZWJvIHBvZMWZZXTEm3plYy4iOw0KdmFyIExlZ2FsVXJsQ2hhcnM9bmV3 IEFycmF5DQooDQoJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLA0KCWZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgICAgIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwNCgl0cnVlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwg IGZhbHNlLCB0cnVlLCAgICAgIHRydWUsICB0cnVlLCBmYWxzZSwgdHJ1ZSwgIHRy dWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsDQoJdHJ1ZSwgIHRydWUsICB0cnVlLCAg dHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICAgICAgdHJ1ZSwgIHRy dWUsIGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICB0cnVlLCBmYWxzZSwgZmFsc2UsDQoJ dHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwg IHRydWUsICAgICAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0 cnVlLCAgdHJ1ZSwgIHRydWUsDQoJdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwg IHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICAgICAgdHJ1ZSwgIHRydWUsICB0 cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgIHRydWUsICB0cnVlLA0KCXRydWUsICB0 cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAg ICAgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRy dWUsICB0cnVlLA0KCXRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAg dHJ1ZSwgIHRydWUsICB0cnVlLCAgICAgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwNCglmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsICAgICBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsDQoJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlDQopOw0KZnVuY3Rpb24gQWRtQnVp bGRQYXJhbShzdFBhdHRlcm4pDQp7DQoJdmFyIHJlOw0KCXZhciBpOw0KCWZvciAo aT0xOyBpIDwgQWRtQnVpbGRQYXJhbS5hcmd1bWVudHMubGVuZ3RoOyBpKyspDQoJ CXsNCgkJcmU9bmV3IFJlZ0V4cCgiXFxeIitpKTsNCgkJc3RQYXR0ZXJuPXN0UGF0 dGVybi5yZXBsYWNlKHJlLCBBZG1CdWlsZFBhcmFtLmFyZ3VtZW50c1tpXSk7DQoJ CX0NCglyZXR1cm4gc3RQYXR0ZXJuOw0KfQ0KZnVuY3Rpb24gSW5kZXhPZklsbGVn YWxDaGFySW5VcmxMZWFmTmFtZShzdHJMZWFmTmFtZSkNCnsNCglmb3IodmFyIGk9 MDsgaTxzdHJMZWFmTmFtZS5sZW5ndGg7IGkrKykNCgl7DQoJCXZhciBjaD1zdHJM ZWFmTmFtZS5jaGFyQ29kZUF0KGkpOw0KCQlpZihzdHJMZWFmTmFtZS5jaGFyQXQo aSk9PScuJyAmJiAoaT09MCB8fCBpPT0oc3RyTGVhZk5hbWUubGVuZ3RoLTEpKSkN CgkJCXJldHVybiBpOw0KCQlpZihjaCA8IDE2MCAmJiAoIHN0ckxlYWZOYW1lLmNo YXJBdChpKT09Jy8nIHx8ICFMZWdhbFVybENoYXJzW2NoXSkgKQ0KCQkJcmV0dXJu IGk7DQoJfQ0KCXJldHVybiAtMTsNCn0NCmZ1bmN0aW9uIEluZGV4T2ZJbGxlZ2Fs Q2hhckluVXJsUGF0aChzdHJQYXRoKQ0Kew0KCWZvcih2YXIgaT0wOyBpPHN0clBh dGgubGVuZ3RoOyBpKyspDQoJew0KCQl2YXIgY2g9c3RyUGF0aC5jaGFyQ29kZUF0 KGkpOw0KCQlpZiggY2ggPCAxNjAgJiYgIUxlZ2FsVXJsQ2hhcnNbY2hdKQ0KCQkJ cmV0dXJuIGk7DQoJfQ0KCXJldHVybiAtMTsNCn0NCmZ1bmN0aW9uIFVybENvbnRh aW5zSWxsZWdhbFN0cmluZ3Moc3RyUGF0aCkNCnsNCglpZihzdHJQYXRoLmluZGV4 T2YoIi4uIikgPj0wDQoJCXx8IHN0clBhdGguaW5kZXhPZigiLy8iKSA+PTANCgkJ fHwgc3RyUGF0aC5pbmRleE9mKCIuLyIpID49MA0KCQl8fCBzdHJQYXRoLmluZGV4 T2YoIi8uIikgPj0wDQoJCXx8IHN0clBhdGguaW5kZXhPZigiLiIpPT0wDQoJCXx8 IHN0clBhdGgubGFzdEluZGV4T2YoIi4iKT09KHN0clBhdGgubGVuZ3RoLTEpDQoJ CSkNCgl7DQoJCXJldHVybiB0cnVlOw0KCX0NCglyZXR1cm4gZmFsc2U7DQp9DQpm dW5jdGlvbiBVcmxMZWFmTmFtZVZhbGlkYXRlKHNvdXJjZSwgYXJncykNCnsNCgl2 YXIgc3RyTWVzc2FnZVByZWZpeD0iIjsNCglpZiggdHlwZW9mKHNvdXJjZS5NZXNz YWdlUHJlZml4KT09InN0cmluZyIgKQ0KCXsNCgkJc3RyTWVzc2FnZVByZWZpeD1z b3VyY2UuTWVzc2FnZVByZWZpeDsNCgl9DQoJZWxzZQ0KCXsNCgkJc3RyTWVzc2Fn ZVByZWZpeD1zb3VyY2UuaWQ7DQoJfQ0KCXZhciBpPUluZGV4T2ZJbGxlZ2FsQ2hh ckluVXJsTGVhZk5hbWUoYXJncy5WYWx1ZSk7DQoJaWYoIGkgPj0wICkNCgl7DQoJ CWlmKHR5cGVvZihzb3VyY2UuZXJyb3JtZXNzYWdlKT09InN0cmluZyIpDQoJCXsN CgkJCXNvdXJjZS5lcnJvcm1lc3NhZ2U9QWRtQnVpbGRQYXJhbShMX0NvbnRhaW5J bGxlZ2FsQ2hhcl9UZXh0LCBzdHJNZXNzYWdlUHJlZml4LCBhcmdzLlZhbHVlLmNo YXJBdChpKSk7DQoJCX0NCgkJYXJncy5Jc1ZhbGlkPWZhbHNlOw0KCX0NCgllbHNl IGlmKCBVcmxDb250YWluc0lsbGVnYWxTdHJpbmdzKGFyZ3MuVmFsdWUpICkNCgl7 DQoJCWlmKHR5cGVvZihzb3VyY2UuZXJyb3JtZXNzYWdlKT09InN0cmluZyIgKQ0K CQl7DQoJCQlzb3VyY2UuZXJyb3JtZXNzYWdlPUFkbUJ1aWxkUGFyYW0oTF9Db250 YWluSWxsZWdhbFN0cmluZ19UZXh0LCBzdHJNZXNzYWdlUHJlZml4KTsNCgkJfQ0K CQlhcmdzLklzVmFsaWQ9ZmFsc2U7DQoJfQ0KCWVsc2UNCgl7DQoJCWFyZ3MuSXNW YWxpZD10cnVlOw0KCX0NCn0NCmZ1bmN0aW9uIFVybFBhdGhWYWxpZGF0ZShzb3Vy Y2UsIGFyZ3MpDQp7DQoJdmFyIHN0ck1lc3NhZ2VQcmVmaXg9IiI7DQoJaWYoIHR5 cGVvZihzb3VyY2UuTWVzc2FnZVByZWZpeCk9PSJzdHJpbmciICkNCgl7DQoJCXN0 ck1lc3NhZ2VQcmVmaXg9c291cmNlLk1lc3NhZ2VQcmVmaXg7DQoJfQ0KCWVsc2UN Cgl7DQoJCXN0ck1lc3NhZ2VQcmVmaXg9c291cmNlLmlkOw0KCX0NCgl2YXIgaT1J bmRleE9mSWxsZWdhbENoYXJJblVybFBhdGgoYXJncy5WYWx1ZSk7DQoJaWYoIGkg Pj0wKQ0KCXsNCgkJaWYodHlwZW9mKHNvdXJjZS5lcnJvcm1lc3NhZ2UpPT0ic3Ry aW5nIikNCgkJew0KCQkJc291cmNlLmVycm9ybWVzc2FnZT1BZG1CdWlsZFBhcmFt KExfQ29udGFpbklsbGVnYWxDaGFyX1RleHQsIHN0ck1lc3NhZ2VQcmVmaXgsIGFy Z3MuVmFsdWUuY2hhckF0KGkpKTsNCgkJfQ0KCQlhcmdzLklzVmFsaWQ9ZmFsc2U7 DQoJfQ0KCWVsc2UgaWYoIFVybENvbnRhaW5zSWxsZWdhbFN0cmluZ3MoYXJncy5W YWx1ZSkgKQ0KCXsNCgkJaWYodHlwZW9mKHNvdXJjZS5lcnJvcm1lc3NhZ2UpPT0i c3RyaW5nIiApDQoJCXsNCgkJCXNvdXJjZS5lcnJvcm1lc3NhZ2U9QWRtQnVpbGRQ YXJhbShMX0NvbnRhaW5JbGxlZ2FsU3RyaW5nX1RleHQsIHN0ck1lc3NhZ2VQcmVm aXgpOw0KCQl9DQoJCWFyZ3MuSXNWYWxpZD1mYWxzZTsNCgl9DQoJZWxzZQ0KCXsN CgkJYXJncy5Jc1ZhbGlkPXRydWU7DQoJfQ0KfQ0KZnVuY3Rpb24gSXNDaGVja0Jv eExpc3RTZWxlY3RlZChjaGVja2JveGxpc3QpDQp7DQoJaWYoY2hlY2tib3hsaXN0 PT1udWxsICkNCgkJcmV0dXJuIGZhbHNlOw0KCXZhciBsZW49Y2hlY2tib3hsaXN0 Lmxlbmd0aCA7DQoJaWYgKGxlbj09bnVsbCkNCgl7DQoJCXJldHVybiBjaGVja2Jv eGxpc3QuY2hlY2tlZDsNCgl9DQoJZWxzZQ0KCXsNCgkJZm9yICh2YXIgaT0wOyBp IDwgbGVuIDsgaSsrKQ0KCQl7DQoJCQlpZiAoY2hlY2tib3hsaXN0W2ldLmNoZWNr ZWQpDQoJCQl7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX0NCgl9DQoJcmV0 dXJuIGZhbHNlOw0KfQ0KZnVuY3Rpb24gU1RTVmFsaWRhdG9yRW5hYmxlKHZhbCwg YkVuYWJsZSwgYlNpbGVudCkNCnsNCgl2YXIgb2JqVmFsPWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKHZhbCk7DQoJaWYgKG9ialZhbD09bnVsbCkNCgkJcmV0dXJuOw0K CWlmIChiU2lsZW50PT10cnVlIHx8IChvYmpWYWwuZ2V0QXR0cmlidXRlKCJBbHdh eXNFbmFibGVTaWxlbnQiKT09dHJ1ZSkpDQoJew0KCQlvYmpWYWwuZW5hYmxlZD0o YkVuYWJsZT09dHJ1ZSk7DQoJfQ0KCWVsc2UNCgl7DQoJCVZhbGlkYXRvckVuYWJs ZShvYmpWYWwsIGJFbmFibGUpOw0KCX0NCn0NCmZ1bmN0aW9uIGVuY29kZVNjcmlw dFF1b3RlKHN0cikNCnsNCgl2YXIgc3RyT3V0PSIiOw0KCXZhciBpeD0wOw0KCWZv ciAoaXg9MDsgaXggPCBzdHIubGVuZ3RoOyBpeCsrKQ0KCXsNCgkJdmFyIGNoPXN0 ci5jaGFyQXQoaXgpOw0KCQlpZiAoY2g9PSdcJycpDQoJCQlzdHJPdXQrPSIlMjci Ow0KCQllbHNlDQoJCQlzdHJPdXQrPWNoOw0KCX0NCglyZXR1cm4gc3RyT3V0Ow0K fQ0KZnVuY3Rpb24gU1RTSHRtbEVuY29kZShzdHIpDQp7DQoJdmFyIHN0ck91dD0i IjsNCgl2YXIgaXg9MDsNCglmb3IgKGl4PTA7IGl4IDwgc3RyLmxlbmd0aDsgaXgr KykNCgl7DQoJCXZhciBjaD1zdHIuY2hhckF0KGl4KTsNCgkJc3dpdGNoIChjaCkN CgkJew0KCQkJY2FzZSAnPCc6DQoJCQkJc3RyT3V0Kz0iJmx0OyI7DQoJCQkJYnJl YWs7DQoJCQljYXNlICc+JzoNCgkJCQlzdHJPdXQrPSImZ3Q7IjsNCgkJCQlicmVh azsNCgkJCWNhc2UgJyYnOg0KCQkJCXN0ck91dCs9IiZhbXA7IjsNCgkJCQlicmVh azsNCgkJCWNhc2UgJ1wiJzoNCgkJCQlzdHJPdXQrPSImcXVvdDsiOw0KCQkJCWJy ZWFrOw0KCQkJY2FzZSAnXCcnOg0KCQkJCXN0ck91dCs9IiYjMzk7IjsNCgkJCQli cmVhazsNCgkJCWRlZmF1bHQ6DQoJCQkJc3RyT3V0Kz1jaDsNCgkJCQlicmVhazsN CgkJfQ0KICAgfQ0KICAgcmV0dXJuIHN0ck91dDsNCn0NCmZ1bmN0aW9uIFN0QXR0 clF1b3RlKHN0KQ0Kew0KCXN0PXN0LnRvU3RyaW5nKCk7DQoJc3Q9c3QucmVwbGFj ZSgvJi9nLCAnJmFtcDsnKTsNCglzdD1zdC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7 Jyk7IC8vICINCglzdD1zdC5yZXBsYWNlKC9cci9nLCAnJiMxMzsnKTsNCglyZXR1 cm4gJyInK3N0KyciJzsNCn0NCmZ1bmN0aW9uIFNUU1NjcmlwdEVuY29kZShzdHIp DQp7DQoJdmFyIHN0ck91dD0iIjsNCgl2YXIgaXg9MDsNCglmb3IgKGl4PTA7IGl4 IDwgc3RyLmxlbmd0aDsgaXgrKykNCgl7DQoJCXZhciBjaGFyQ29kZT1zdHIuY2hh ckNvZGVBdChpeCk7DQoJCWlmIChjaGFyQ29kZSA+IDB4MGZmZikNCgkJew0KCQkJ c3RyT3V0Kz0oIlxcdSIrY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNl KCkpOw0KCQl9DQoJCWVsc2UgaWYgKGNoYXJDb2RlID4gMHgwMGZmKQ0KCQl7DQoJ CQlzdHJPdXQrPSgiXFx1MCIrY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJD YXNlKCkpOw0KCQl9DQoJCWVsc2UgaWYgKGNoYXJDb2RlID4gMHgwMDdmKQ0KCQl7 DQoJCQlzdHJPdXQrPSgiXFx1MDAiK2NoYXJDb2RlLnRvU3RyaW5nKDE2KS50b1Vw cGVyQ2FzZSgpKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCXN3aXRjaCAoc3RyLmNo YXJBdChpeCkpDQoJCQl7DQoJCQljYXNlICdcbic6DQoJCQkJc3RyT3V0Kz0iXFxu IjsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ1xyJzoNCgkJCQlzdHJPdXQrPSJcXHIi Ow0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnXCInOg0KCQkJCXN0ck91dCs9IlxcdTAw MjIiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnJSc6DQoJCQkJc3RyT3V0Kz0iXFx1 MDAyNSI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICcmJzoNCgkJCQlzdHJPdXQrPSJc XHUwMDI2IjsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ1wnJzoNCgkJCQlzdHJPdXQr PSJcXHUwMDI3IjsNCgkJCQlicmVhazsNCgkJCWNhc2UgJygnOg0KCQkJCXN0ck91 dCs9IlxcdTAwMjgiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnKSc6DQoJCQkJc3Ry T3V0Kz0iXFx1MDAyOSI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICcrJzoNCgkJCQlz dHJPdXQrPSJcXHUwMDJiIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgJy8nOg0KCQkJ CXN0ck91dCs9IlxcdTAwMmYiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnPCc6DQoJ CQkJc3RyT3V0Kz0iXFx1MDAzYyI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICc+JzoN CgkJCQlzdHJPdXQrPSJcXHUwMDNlIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ1xc JzoNCgkJCQlzdHJPdXQrPSJcXFxcIjsNCgkJCQlicmVhazsNCgkJCWRlZmF1bHQ6 DQoJCQkJc3RyT3V0Kz1zdHIuY2hhckF0KGl4KTsNCgkJCX07DQoJCX0NCgl9DQoJ cmV0dXJuIHN0ck91dDsNCn0NCmZ1bmN0aW9uIFNUU1NjcmlwdEVuY29kZVdpdGhR dW90ZShzdHIpDQp7DQoJcmV0dXJuICciJytTVFNTY3JpcHRFbmNvZGUoc3RyKSsn Iic7DQp9DQp2YXIgU1BPbkVycm9yX2NhY2hlZE9yaWdpbmFsT25FcnJvcj13aW5k b3cub25lcnJvcjsNCnZhciBMX1BsZWFzZVdhaXRGb3JTY3JpcHRzX1RleHQ9IlBv xI1rZWp0ZSBwcm9zw61tIG5hIG5hxI10ZW7DrSBza3JpcHTFry4uLiI7DQp2YXIg Z19wYWdlTG9hZENvbXBsZXRlPWZhbHNlOw0KdmFyIHByZXZpb3VzUlNDaGFuZ2U9 Jyc7DQppZiAoZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlICE9bnVsbCkNCnsN CglwcmV2aW91c1JTQ2hhbmdlPWRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZTsN Cn0NCmRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZT1zZXRMb2FkQ29tcGxldGU7 DQpmdW5jdGlvbiBzZXRMb2FkQ29tcGxldGUoKQ0Kew0KCWlmKHByZXZpb3VzUlND aGFuZ2UgIT1udWxsICYmIHByZXZpb3VzUlNDaGFuZ2UgIT0nJykNCgl7DQoJCWV2 YWwocHJldmlvdXNSU0NoYW5nZSk7DQoJfQ0KCWlmKGRvY3VtZW50LnJlYWR5U3Rh dGU9PSdjb21wbGV0ZScpDQoJew0KCQlnX3BhZ2VMb2FkQ29tcGxldGU9dHJ1ZTsN CgkJd2luZG93LnN0YXR1cz0iIjsNCgkJd2luZG93Lm9uZXJyb3I9U1BPbkVycm9y X2NhY2hlZE9yaWdpbmFsT25FcnJvcjsNCgl9DQp9DQpmdW5jdGlvbiBTUE9uRXJy b3JfaGFuZGxlRXJyb3JzKG1zZyx1cmwsbGluZSkNCnsNCgl2YXIgdXNlRXJyb3JI YW5kbGVyPWZhbHNlOw0KCWlmKCFnX3BhZ2VMb2FkQ29tcGxldGUgJiYgZG9jdW1l bnQucmVhZHlTdGF0ZSAhPSJjb21wbGV0ZSIpDQoJew0KCQl1c2VFcnJvckhhbmRs ZXI9dHJ1ZTsNCgl9DQoJaWYodXNlRXJyb3JIYW5kbGVyKQ0KCXsNCgkJdHJ5DQoJ CXsNCgkJCXdpbmRvdy5zdGF0dXM9TF9QbGVhc2VXYWl0Rm9yU2NyaXB0c19UZXh0 Ow0KCQl9DQoJCWNhdGNoKGUpDQoJCXsNCgkJfQ0KCQlyZXR1cm4gdHJ1ZTsNCgl9 DQoJZWxzZQ0KCXsNCgkJaWYodHlwZW9mKFNQT25FcnJvcl9jYWNoZWRPcmlnaW5h bE9uRXJyb3IpPT0iZnVuY3Rpb24iKQ0KCQl7DQoJCQl3aW5kb3cub25lcnJvcj1T UE9uRXJyb3JfY2FjaGVkT3JpZ2luYWxPbkVycm9yOw0KCQkJcmV0dXJuIFNQT25F cnJvcl9jYWNoZWRPcmlnaW5hbE9uRXJyb3IobXNnLHVybCxsaW5lKTsNCgkJfQ0K CQllbHNlDQoJCXsNCgkJCXdpbmRvdy5vbmVycm9yPW51bGw7DQoJCQlyZXR1cm4g ZmFsc2U7DQoJCX0NCgl9DQp9DQp3aW5kb3cub25lcnJvcj1TUE9uRXJyb3JfaGFu ZGxlRXJyb3JzOw0KdmFyIExfTGFuZ3VhZ2VfVGV4dD0iMTAyOSI7DQp2YXIgTF9D bGlja09uY2UxX3RleHQ9Ikppxb4gc2UgcG9rb3XFocOtdGUgdHV0byBwb2xvxb5r dSB1bG/Fvml0LiBQb2t1ZCBzZSBqaSBwb2t1c8OtdGUgdWxvxb5pdCB6bm92dSwg YnVkb3UgcHJhdmTEm3BvZG9ibsSbIHZ5dHZvxZllbnkgZHVwbGljaXRuw60gaW5m b3JtYWNlLiBDaGNldGUgdHV0byBwb2xvxb5rdSB1bG/Fvml0IHpub3Z1PyI7DQp2 YXIgTF9TVFNSZWN5Y2xlQ29uZmlybV9UZXh0PSJPcHJhdmR1IGNoY2V0ZSBvZGVz bGF0IHR1dG8gcG9sb8W+a3UgZG8ga2/FoWUgd2VidT8iOw0KdmFyIExfU1RTUmVj eWNsZUNvbmZpcm0xX1RleHQ9Ik9wcmF2ZHUgY2hjZXRlIG9kZXNsYXQgdHV0byBz bG/Fvmt1IGEgdmXFoWtlcsO9IGplasOtIG9ic2FoIGRvIHdlYm92w6kgc2xvxb5r eSBLb8WhPyI7DQp2YXIgTF9TVFNEZWxDb25maXJtX1RleHQ9Ik9wcmF2ZHUgY2hj ZXRlIG9kc3RyYW5pdCB0dXRvIHBvbG/Fvmt1PyI7DQp2YXIgTF9TVFNEZWxDb25m aXJtMV9UZXh0PSJPcHJhdmR1IGNoY2V0ZSBvZHN0cmFuaXQgdHV0byBzbG/Fvmt1 IHbEjWV0bsSbIHZlxaFrZXLDqWhvIGplasOtaG8gb2JzYWh1PyI7DQp2YXIgTF9O ZXdEb2NMaWJUYjFfVGV4dD0iRG9rdW1lbnQgbmVsemUgdnl0dm/FmWl0LiBcblBv xb5hZG92YW7DoSBhcGxpa2FjZSBwcmF2ZMSbcG9kb2JuxJsgbmVuw60gc3Byw6F2 bsSbIG5haW5zdGFsb3bDoW5hIG5lYm8gbmVsemUgb3RldsWZw610IMWhYWJsb251 IHBybyB0dXRvIGtuaWhvdm51IGRva3VtZW50xa8uXG5cblZ5emtvdcWhZWp0ZSBu w6FzbGVkdWrDrWPDrSBtb8W+bm9zdGkgxZllxaFlbsOtOlxuMS4gTmEgc3Ryw6Fu Y2UgT2JlY27DqSBuYXN0YXZlbsOtIHTDqXRvIGtuaWhvdm55IGRva3VtZW50xa8g emtvbnRyb2x1anRlIG7DoXpldiDFoWFibG9ueSBhIG5haW5zdGFsdWp0ZSBhcGxp a2FjaSBuZXpieXRub3UgayBvdGV2xZllbsOtIMWhYWJsb255LiBQb2t1ZCBieWxh IGFwbGlrYWNlIG5hc3RhdmVuYSBrIGluc3RhbGFjaSBwxZlpIHBydm7DrW0gcG91 xb5pdMOtLCBzcHVzxaV0ZSBhcGxpa2FjaSBhIHBhayB6bm92dSB6a3VzdGUgdnl0 dm/FmWl0IG5vdsO9IGRva3VtZW50LlxuXG4yLiBQb2t1ZCBtw6F0ZSBvcHLDoXZu xJtuw60gem3Em25pdCB0dXRvIGtuaWhvdm51IGRva3VtZW50xa8sIHDFmWVqZMSb dGUgbmEgc3Ryw6Fua3UgT2JlY27DqSBuYXN0YXZlbsOtIHTDqXRvIGtuaWhvdm55 IGEgbmFrb25maWd1cnVqdGUgbm92b3UgxaFhYmxvbnUuIjsNCnZhciBMX05ld0Rv Y0xpYlRiMl9UZXh0PSJQxZnDrWtheiBOb3bDvSBkb2t1bWVudCB2ecW+YWR1amUg YXBsaWthY2kga29tcGF0aWJpbG7DrSBzZSBzbHXFvmJvdSBXaW5kb3dzIFNoYXJl UG9pbnQgU2VydmljZXMgYSBhcGxpa2FjaSBNaWNyb3NvZnQgSW50ZXJuZXQgRXhw bG9yZXIgNi4wIG5lYm8gdnnFocWhw60uIENoY2V0ZS1saSBwxZlpZGF0IGRva3Vt ZW50IGRvIHTDqXRvIGtuaWhvdm55IGRva3VtZW50xa8sIGtsZXBuxJt0ZSBuYSB0 bGHEjcOtdGtvIFVsb8W+aXQgZG9rdW1lbnQuIjsNCnZhciBMX05ld0Zvcm1MaWJU YjFfVGV4dD0iRG9rdW1lbnQgbmVsemUgdnl0dm/FmWl0LlxuUG/FvmFkb3ZhbsOh IGFwbGlrYWNlIHByYXZkxJtwb2RvYm7EmyBuZW7DrSBzcHLDoXZuxJsgbmFpbnN0 YWxvdsOhbmEgbmVibyBuZWx6ZSBvdGV2xZnDrXQgxaFhYmxvbnUgcHJvIHR1dG8g a25paG92bnUgZG9rdW1lbnTFry5cblxuUG9zdHVwdWp0ZSB0YWt0bzpcbjEuIFYg b2JlY27DqW0gbmFzdGF2ZW7DrSB0w6l0byBrbmlob3ZueSBkb2t1bWVudMWvIHpr b250cm9sdWp0ZSBuw6F6ZXYgxaFhYmxvbnkgYSBuYWluc3RhbHVqdGUgYXBsaWth Y2kgbnV0bm91IGsgamVqw61tdSBvdGV2xZllbsOtLiBQb2t1ZCBieWxhIGFwbGlr YWNlIG5hc3RhdmVuYSBuYSBpbnN0YWxhY2kgcMWZaSBwcnZuw61tIHBvdcW+aXTD rSwgc3B1c8WldGUgamkgYSBwb3RvbSB6a3VzdGUgbm92w70gZG9rdW1lbnQgdnl0 dm/FmWl0IHpub3Z1LlxuXG4yLiBQb2t1ZCBtw6F0ZSBvcHLDoXZuxJtuw60gem3E m25pdCB0dXRvIGtuaWhvdm51IGRva3VtZW50xa8sIHDFmWVqZMSbdGUgbmEgc3Ry w6Fua3UgT2JlY27DqSBuYXN0YXZlbsOtIHTDqXRvIGtuaWhvdm55IGEgbmFrb25m aWd1cnVqdGUgbm92b3UgxaFhYmxvbnUuIjsNCnZhciBMX05ld0Zvcm1MaWJUYjJf VGV4dD0iVGF0byBmdW5rY2UgdnnFvmFkdWplIGFwbGlrYWNpIE1pY3Jvc29mdCBJ bnRlcm5ldCBFeHBsb3JlciA2LjAgbmVibyB2ecWhxaHDrSBhIGVkaXRvciBYTUwg a29tcGF0aWJpbG7DrSBzZSBzbHXFvmJvdSBXaW5kb3dzIFNoYXJlUG9pbnQgU2Vy dmljZXMsIG5hcMWZw61rbGFkIGVkaXRvciBNaWNyb3NvZnQgT2ZmaWNlIEluZm9Q YXRoLiI7DQp2YXIgTF9Db25maXJtQ2hlY2tvdXRfVGV4dD0iVHV0byBwb2xvxb5r dSBtdXPDrXRlIHDFmWVkIHByb3ZlZGVuw61tIHptxJtuIHJlemVydm92YXQuIENo Y2V0ZSB0dXRvIHBvbG/Fvmt1IHJlemVydm92YXQgbnluw60/IjsNCnZhciBMX0No ZWNrT3V0UmV0cnlfVGV4dD0iUmV6ZXJ2YWNlIHNlIG5lemRhxZlpbGEuIENoY2V0 ZSBzZSBwb2t1c2l0IG8gcmV6ZXJ2YWNpIHplIHNlcnZlcnU/IjsNCnZhciBMX0Nh bm5vdEVkaXRQcm9wZXJ0eUZvckxvY2FsQ29weV9UZXh0PSJWbGFzdG5vc3RpIGRv a3VtZW50dSBuZWx6ZSB1cHJhdml0LCBqZS1saSBkb2t1bWVudCByZXplcnZvdsOh biBhIHVwcmF2b3bDoW4gdiByZcW+aW11IG9mZmxpbmUuIjsNCnZhciBMX0Nhbm5v dEVkaXRQcm9wZXJ0eUNoZWNrb3V0X1RleHQ9IlZsYXN0bm9zdGkgZG9rdW1lbnR1 IG5lbHplIHVwcmF2aXQsIGplLWxpIGRva3VtZW50IHJlemVydm92w6FuIG5lYm8g dXphbcSNZW4gcHJvIMO6cHJhdnkgamluw71tIHXFvml2YXRlbGVtLiI7DQp2YXIg TF9OZXdGb3JtQ2xpY2tPbmNlMV9UZXh0PSJOb3bDoSBzbG/FvmthIjsNCnZhciBM X0VudGVyVmFsaWRDb3B5RGVzdF9UZXh0PSJaYWRlanRlIHBsYXRub3UgYWRyZXN1 IFVSTCBzbG/Fvmt5IGEgbsOhemV2IHNvdWJvcnUuIEFkcmVzYSBVUkwgc2xvxb5r eSBtdXPDrSB6YcSNw61uYXQgxZlldMSbemNlbSBodHRwOiBuZWJvIGh0dHBzOi4i Ow0KdmFyIExfQ29uZmlybVVubGlua0NvcHlfVGV4dD0iVnpobGVkZW0gayB0b211 LCDFvmUgdGF0byBwb2xvxb5rYSBqZSBrb3Bpw60sIGplIG1vxb5uw6ksIMW+ZSBz dMOhbGUgesOtc2vDoXbDoSBha3R1YWxpemFjZSB6ZSBzdsOpaG8gemRyb2plLiBN xJtsaSBieXN0ZSBvdsSbxZlpdCwgemRhIGplIHRhdG8gcG9sb8W+a2Egb2RlYnLD oW5hIHplIHpkcm9qb3bDqWhvIHNlem5hbXUgcG9sb8W+ZWsgayBha3R1YWxpemFj aSwgamluYWsgc2UgbcWvxb5lIHN0w6F0LCDFvmUgYnVkZSBha3R1YWxpem92w6Fu YSBpIG5hZMOhbGUuIE9wcmF2ZHUgY2hjZXRlIHpydcWhaXQgcHJvcG9qZW7DrSB0 w6l0byBwb2xvxb5reT8iOw0KdmFyIExfQ29weWluZ09mZmxpbmVWZXJzaW9uV2Fy bmluZ19UZXh0PSJUZW50byBkb2t1bWVudCBqZSBueW7DrSByZXplcnZvdsOhbiBt w61zdG7Emy4gTHplIHprb3DDrXJvdmF0IHBvdXplIHZlcnplIHVsb8W+ZW7DqSBu YSBzZXJ2ZXJ1LiBDaGNldGUtbGkgemtvcMOtcm92YXQgbmVqbm92xJtqxaHDrSBk w61sxI3DrSB2ZXJ6aSwga2xlcG7Em3RlIG5hIHRsYcSNw610a28gT0suIENoY2V0 ZS1saSB6a29ww61yb3ZhdCBha3R1w6FsbsSbIHJlemVydm92YW5vdSB2ZXJ6aSwg a2xlcG7Em3RlIG5hIHRsYcSNw610a28gU3Rvcm5vLCB2cmHFpXRlIGRva3VtZW50 IHNlIHptxJtuYW1pIGEgcGFrIHpvcGFrdWp0ZSBvcGVyYWNpIGtvcMOtcm92w6Fu w60uIjsNCnZhciBMX0xvYWRpbmdfVGV4dD0iTmHEjcOtdMOhbsOtLi4uIjsNCnZh ciBMX0xvYWRpbmdfRXJyb3JfVGV4dD0iUMWZaSBuYcSNw610w6Fuw60gZGF0IGRv xaFsbyBrIGNoeWLEmy4gQWt0dWFsaXp1anRlIHN0csOhbmt1IGEgcGFrIGFrY2kg em9wYWt1anRlLiI7DQp2YXIgTF9XYXJua09uY2VfdGV4dD0iVGF0byBwb2xvxb5r YSBvYnNhaHVqZSB2bGFzdG7DrSB6cMWvc29iIG9wYWtvdsOhbsOtLiBQb2t1ZCB1 bG/FvsOtdGUgcHJvdmVkZW7DqSB6bcSbbnksIG5lYnVkZXRlIHNlIG1vY2kgdnLD oXRpdCBrIHDFmWVkY2hvesOtbXUgenDFr3NvYnUuIjsNCnZhciBMX1dlYkZvbGRl cnNSZXF1aXJlZF9UZXh0PSJQb8SNa2VqdGUgcHJvc8OtbSwgbmHEjcOtdMOhIHNl IHpvYnJhemVuw60gUHLFr3prdW1uw61rYS4gUG9rdWQgc2Ugem9icmF6ZW7DrSBQ csWvemt1bW7DrWthIG5lem9icmF6w60sIGplIG1vxb5uw6ksIMW+ZSBqZSBwcm9o bMOtxb5lxI0gbmVwb2Rwb3J1amUuIjsNCnZhciBMX1dlYkZvbGRlcnNFcnJvcl9U ZXh0PSJLbGllbnQgbmVwb2Rwb3J1amUgb3RldsWZZW7DrSB0b2hvdG8gc2V6bmFt dSB2IFByxa96a3VtbsOta3UgV2luZG93cy4iOw0KdmFyIExfQWNjZXNzaWJsZU1l bnVfVGV4dD0iTmFiw61ka2EiOw0KdmFyIExfTmV3QmxvZ1Bvc3RfVGV4dD0iVGF0 byBmdW5rY2UgdnnFvmFkdWplIGFwbGlrYWNpIE1pY3Jvc29mdCBJbnRlcm5ldCBF eHBsb3JlciA2LjAgbmVibyB2ecWhxaHDrSBhIGVkaXRvciBibG9ndSBrb21wYXRp YmlsbsOtIHNlIHNsdcW+Ym91IFdpbmRvd3MgU2hhcmVQb2ludCBTZXJ2aWNlcywg bmFwxZnDrWtsYWQgYXBsaWthY2kgTWljcm9zb2Z0IE9mZmljZSBXb3JkIDIwMDcg xI1pIHZ5xaHFocOtLiI7DQp2YXIgTF9OZXdCbG9nUG9zdEZhaWxlZF9UZXh0PSJO ZWx6ZSBzZSBwxZlpcG9qaXQgayBwcm9ncmFtdSBibG9ndSwgcHJvdG/FvmUgamUg cHJhdmTEm3BvZG9ibsSbIHphbmVwcsOhemRuxJtuIG5lYm8gbmVieWwgbmFsZXpl bi4gT3bEm8WZdGUgcHJvZ3JhbSBhIHpvcGFrdWp0ZSBha2NpLiI7DQp2YXIgcmVj eWNsZUJpbkVuYWJsZWQ9MDsNCnZhciBiSXNGaWxlRGlhbG9nVmlldz1mYWxzZTsN CnZhciBnX1ZpZXdJZFRvVmlld0NvdW50ZXJNYXA9bmV3IEFycmF5KCk7DQpmdW5j dGlvbiBVcGRhdGVBY2Nlc3NpYmlsaXR5VUkoKQ0Kew0KCXZhciB0MT1kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgiVHVybk9uQWNjZXNzaWJpbGl0eSIpOw0KCXZhciB0 Mj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVHVybk9mZkFjY2Vzc2liaWxpdHki KTsNCglpZiAoSXNBY2Nlc3NpYmlsaXR5RmVhdHVyZUVuYWJsZWQoKSkNCgl7DQoJ CWlmICh0MSAhPW51bGwpDQoJCQl0MS5zdHlsZS5kaXNwbGF5PSJub25lIjsNCgkJ aWYgKHQyICE9bnVsbCkNCgkJCXQyLnN0eWxlLmRpc3BsYXk9IiI7DQoJfQ0KCWVs c2UNCgl7DQoJCWlmICh0MSAhPW51bGwpDQoJCQl0MS5zdHlsZS5kaXNwbGF5PSIi Ow0KCQlpZiAodDIgIT1udWxsKQ0KCQkJdDIuc3R5bGUuZGlzcGxheT0ibm9uZSI7 DQoJfQ0KfQ0KZnVuY3Rpb24gU2V0SXNBY2Nlc3NpYmlsaXR5RmVhdHVyZUVuYWJs ZWQoZikNCnsNCglpZiAoZikNCgkJZG9jdW1lbnQuY29va2llPSJXU1NfQWNjZXNz aWJpbGl0eUZlYXR1cmU9dHJ1ZTtwYXRoPTsiOw0KCWVsc2UNCgkJZG9jdW1lbnQu Y29va2llPSJXU1NfQWNjZXNzaWJpbGl0eUZlYXR1cmU9ZmFsc2U7cGF0aD07IjsN Cn0NCmZ1bmN0aW9uIERlbGV0ZUNvb2tpZShzTmFtZSkNCnsNCglkb2N1bWVudC5j b29raWU9c05hbWUrIj07IGV4cGlyZXM9VGh1LCAwMS1KYW4tNzAgMDA6MDA6MDEg R01UIjsNCn0NCmZ1bmN0aW9uIEdldENvb2tpZShzTmFtZSkNCnsNCgl2YXIgYUNv b2tpZT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsgIik7DQoJZm9yICh2YXIgaT0w OyBpIDwgYUNvb2tpZS5sZW5ndGg7IGkrKykNCgl7DQoJCXZhciBhQ3J1bWI9YUNv b2tpZVtpXS5zcGxpdCgiPSIpOw0KCQlpZiAoc05hbWU9PWFDcnVtYlswXSkgew0K CQkJaWYoYUNydW1iLmxlbmd0aCA+IDEpDQoJCQkJcmV0dXJuIHVuZXNjYXBlUHJv cGVybHkoYUNydW1iWzFdKTsNCgkJCWVsc2UNCgkJCQlyZXR1cm4gbnVsbDsNCgkJ fQ0KCX0NCglyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIElzQWNjZXNzaWJpbGl0 eUZlYXR1cmVFbmFibGVkKCkNCnsNCglyZXR1cm4gR2V0Q29va2llKCJXU1NfQWNj ZXNzaWJpbGl0eUZlYXR1cmUiKT09InRydWUiOw0KfQ0KZnVuY3Rpb24gZXNjYXBl Rm9yU3luYyhzdHIpDQp7DQoJdmFyIHN0ck91dD0iIjsNCgl2YXIgaXg9MDsNCgl2 YXIgYkRvaW5nVW5pY29kZT0wOw0KCXZhciBzdHJTeW5jRXNjYXBlZD0iXFwmfFtd IjsNCglmb3IgKGl4PTA7IGl4IDwgc3RyLmxlbmd0aDsgaXgrKykNCgl7DQoJCXZh ciBjaGFyQ29kZT1zdHIuY2hhckNvZGVBdChpeCk7DQoJCXZhciBjdXJDaGFyPXN0 ci5jaGFyQXQoaXgpOw0KCQlpZiAoYkRvaW5nVW5pY29kZSAmJiBjaGFyQ29kZSA8 PTB4N2YpIHsNCgkJCXN0ck91dCs9Il0iOw0KCQkJYkRvaW5nVW5pY29kZT0wOw0K CQl9DQoJCWlmICghYkRvaW5nVW5pY29kZSAmJiBjaGFyQ29kZSA+IDB4N2YpIHsN CgkJCXN0ck91dCs9IlsiOw0KCQkJYkRvaW5nVW5pY29kZT0xOw0KCQl9DQoJCWlm KHN0clN5bmNFc2NhcGVkLmluZGV4T2YoY3VyQ2hhcikgPj0wKQ0KCQkJc3RyT3V0 Kz0ifCI7DQoJCWlmICggKGNoYXJDb2RlID49OTcgJiYgY2hhckNvZGUgPD0xMjIp IHx8DQoJCQkgKGNoYXJDb2RlID49NjUgJiYgY2hhckNvZGUgPD05MCkgfHwNCgkJ CSAoY2hhckNvZGUgPj00OCAmJiBjaGFyQ29kZSA8PTU3KSApDQoJCXsNCgkJCXN0 ck91dCs9Y3VyQ2hhcjsNCgkJfQ0KCQllbHNlIGlmIChjaGFyQ29kZSA8PTB4MGYp DQoJCXsNCgkJCXN0ck91dCs9IiUwIitjaGFyQ29kZS50b1N0cmluZygxNikudG9V cHBlckNhc2UoKTsNCgkJfQ0KCQllbHNlIGlmIChjaGFyQ29kZSA8PTB4N2YpDQoJ CXsNCgkJCXN0ck91dCs9IiUiK2NoYXJDb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVy Q2FzZSgpOw0KCQl9DQoJCWVsc2UgaWYgKGNoYXJDb2RlIDw9MHgwMGZmKQ0KCQl7 DQoJCQlzdHJPdXQrPSIwMCIrY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJD YXNlKCk7DQoJCX0NCgkJZWxzZSBpZiAoY2hhckNvZGUgPD0weDBmZmYpDQoJCXsN CgkJCXN0ck91dCs9IjAiK2NoYXJDb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2Fz ZSgpOw0KCQl9DQoJCWVsc2Ugew0KCQkJc3RyT3V0Kz1jaGFyQ29kZS50b1N0cmlu ZygxNikudG9VcHBlckNhc2UoKTsNCgkJfQ0KCX0NCglpZiAoYkRvaW5nVW5pY29k ZSkNCgkJc3RyT3V0Kz0iXSI7DQoJcmV0dXJuIHN0ck91dDsNCn0NCnZhciBnX3Jn ZHdjaE1pbkVuY29kZWQ9bmV3IEFycmF5KFsNCgkweDAwMDAwMDAwLA0KCTB4MDAw MDAwODAsDQoJMHgwMDAwMDgwMCwNCgkweDAwMDEwMDAwLA0KCTB4MDAyMDAwMDAs DQoJMHgwNDAwMDAwMCwNCgkweDgwMDAwMDAwDQoJXSk7DQpmdW5jdGlvbiBWdXRm OFRvVW5pY29kZShyZ0J5dGVzKQ0Kew0KCXZhciBpeD0wOw0KCXZhciBzdHJSZXN1 bHQ9IiI7DQoJdmFyIGR3Y2gsIHdjaCwgdWNoOw0KCXZhciBuVHJhaWxCeXRlcywg blRyYWlsQnl0ZXNPcmlnOw0KCXdoaWxlIChpeCA8IHJnQnl0ZXMubGVuZ3RoKQ0K CXsNCgkJaWYgKHJnQnl0ZXNbaXhdIDw9MHgwMDdmKQ0KCQl7DQoJCQlzdHJSZXN1 bHQrPVN0cmluZy5mcm9tQ2hhckNvZGUocmdCeXRlc1tpeCsrXSk7DQoJCX0NCgkJ ZWxzZQ0KCQl7DQoJCQl1Y2g9cmdCeXRlc1tpeCsrXTsNCgkJCW5UcmFpbEJ5dGVz PSgodWNoKSAmIDB4MjApID8gKCgodWNoKSAmIDB4MTApID8gMyA6IDIpIDogMTsN CgkJCWR3Y2g9dWNoICYgKDB4ZmYgPj4+ICgyK25UcmFpbEJ5dGVzKSk7DQoJCQl3 aGlsZSAoblRyYWlsQnl0ZXMgJiYgKGl4IDwgcmdCeXRlcy5sZW5ndGgpKQ0KCQkJ ew0KCQkJCS0tblRyYWlsQnl0ZXM7DQoJCQkJdWNoPXJnQnl0ZXNbaXgrK107DQoJ CQkJaWYgKHVjaD09MCkNCgkJCQl7DQoJCQkJCXJldHVybiBzdHJSZXN1bHQ7DQoJ CQkJfQ0KCQkJCWlmICgodWNoICYgMHhDMCkgIT0weDgwKQ0KCQkJCXsNCgkJCQkJ c3RyUmVzdWx0Kz0nPyc7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCQlkd2NoPShk d2NoIDw8IDYpIHwgKCh1Y2gpICYgMHgwMDNmKTsNCgkJCX0NCgkJCWlmIChuVHJh aWxCeXRlcykNCgkJCXsNCgkJCQlzdHJSZXN1bHQrPSc/JzsNCgkJCQlicmVhazsN CgkJCX0NCgkJCWlmIChkd2NoIDwgZ19yZ2R3Y2hNaW5FbmNvZGVkW25UcmFpbEJ5 dGVzT3JpZ10pDQoJCQl7DQoJCQkJc3RyUmVzdWx0Kz0nPyc7DQoJCQkJYnJlYWs7 DQoJCQl9DQoJCQllbHNlIGlmIChkd2NoIDw9MHhmZmZmKQ0KCQkJew0KCQkJCXN0 clJlc3VsdCs9U3RyaW5nLmZyb21DaGFyQ29kZShkd2NoKTsNCgkJCX0NCgkJCWVs c2UgaWYgKGR3Y2ggPD0weDEwZmZmZikNCgkJCXsNCgkJCQlkd2NoIC09U1VSUk9H QVRFX09GRlNFVDsNCgkJCQlzdHJSZXN1bHQrPVN0cmluZy5mcm9tQ2hhckNvZGUo DQoJCQkJCUhJR0hfU1VSUk9HQVRFX0JJVFMgfCBkd2NoID4+PiAxMCk7DQoJCQkJ c3RyUmVzdWx0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKA0KCQkJCQlMT1dfU1VSUk9H QVRFX0JJVFMgfCAoKGR3Y2gpICYgMHgwMDNGRikpOw0KCQkJfQ0KCQkJZWxzZQ0K CQkJew0KCQkJCXN0clJlc3VsdCs9Jz8nOw0KCQkJfQ0KCQl9DQoJfQ0KCXJldHVy biBzdHJSZXN1bHQ7DQp9DQpmdW5jdGlvbiB1bmVzY2FwZVByb3Blcmx5SW50ZXJu YWwoc3RyKQ0Kew0KCWlmIChzdHI9PW51bGwpDQoJCXJldHVybiAibnVsbCI7DQoJ dmFyIGl4PTAsIGl4RW50aXR5PTA7DQoJdmFyIHN0clJlc3VsdD0iIjsNCgl2YXIg cmdVVEY4Qnl0ZXM9bmV3IEFycmF5Ow0KCXZhciBpeFVURjhCeXRlcz0wOw0KCXZh ciBoZXhTdHJpbmcsIGhleENvZGU7DQoJd2hpbGUgKGl4IDwgc3RyLmxlbmd0aCkN Cgl7DQoJCWlmIChzdHIuY2hhckF0KGl4KT09JyUnKQ0KCQl7DQoJCQlpZiAoc3Ry LmNoYXJBdCgrK2l4KT09J3UnKQ0KCQkJew0KCQkJCWhleFN0cmluZz0iIjsNCgkJ CQlmb3IgKGl4RW50aXR5PTA7IGl4RW50aXR5IDwgNCAmJiBpeCA8IHN0ci5sZW5n dGg7KytpeEVudGl0eSkNCgkJCQl7DQoJCQkJCWhleFN0cmluZys9c3RyLmNoYXJB dCgrK2l4KTsNCgkJCQl9DQoJCQkJd2hpbGUgKGhleFN0cmluZy5sZW5ndGggPCA0 KQ0KCQkJCXsNCgkJCQkJaGV4U3RyaW5nKz0nMCc7DQoJCQkJfQ0KCQkJCWhleENv ZGU9cGFyc2VJbnQoaGV4U3RyaW5nLCAxNik7DQoJCQkJaWYgKGlzTmFOKGhleENv ZGUpKQ0KCQkJCXsNCgkJCQkJc3RyUmVzdWx0Kz0nPyc7DQoJCQkJfQ0KCQkJCWVs c2UNCgkJCQl7DQoJCQkJCXN0clJlc3VsdCs9U3RyaW5nLmZyb21DaGFyQ29kZSho ZXhDb2RlKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJaGV4U3Ry aW5nPSIiOw0KCQkJCWZvciAoaXhFbnRpdHk9MDsgaXhFbnRpdHkgPCAyICYmIGl4 IDwgc3RyLmxlbmd0aDsrK2l4RW50aXR5KQ0KCQkJCXsNCgkJCQkJaGV4U3RyaW5n Kz1zdHIuY2hhckF0KGl4KyspOw0KCQkJCX0NCgkJCQl3aGlsZSAoaGV4U3RyaW5n Lmxlbmd0aCA8IDIpDQoJCQkJew0KCQkJCQloZXhTdHJpbmcrPScwJzsNCgkJCQl9 DQoJCQkJaGV4Q29kZT1wYXJzZUludChoZXhTdHJpbmcsIDE2KTsNCgkJCQlpZiAo aXNOYU4oaGV4Q29kZSkpDQoJCQkJew0KCQkJCQlpZiAoaXhVVEY4Qnl0ZXMpDQoJ CQkJCXsNCgkJCQkJCXN0clJlc3VsdCs9VnV0ZjhUb1VuaWNvZGUocmdVVEY4Qnl0 ZXMpOw0KCQkJCQkJaXhVVEY4Qnl0ZXM9MDsNCgkJCQkJCXJnVVRGOEJ5dGVzLmxl bmd0aD1peFVURjhCeXRlczsNCgkJCQkJfQ0KCQkJCQlzdHJSZXN1bHQrPSc/JzsN CgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJcmdVVEY4Qnl0ZXNbaXhVVEY4 Qnl0ZXMrK109aGV4Q29kZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7 DQoJCQlpZiAoaXhVVEY4Qnl0ZXMpDQoJCQl7DQoJCQkJc3RyUmVzdWx0Kz1WdXRm OFRvVW5pY29kZShyZ1VURjhCeXRlcyk7DQoJCQkJaXhVVEY4Qnl0ZXM9MDsNCgkJ CQlyZ1VURjhCeXRlcy5sZW5ndGg9aXhVVEY4Qnl0ZXM7DQoJCQl9DQoJCQlzdHJS ZXN1bHQrPXN0ci5jaGFyQXQoaXgrKyk7DQoJCX0NCgl9DQoJaWYgKGl4VVRGOEJ5 dGVzKQ0KCXsNCgkJc3RyUmVzdWx0Kz1WdXRmOFRvVW5pY29kZShyZ1VURjhCeXRl cyk7DQoJCWl4VVRGOEJ5dGVzPTA7DQoJCXJnVVRGOEJ5dGVzLmxlbmd0aD1peFVU RjhCeXRlczsNCgl9DQoJcmV0dXJuIHN0clJlc3VsdDsNCn0NCmZ1bmN0aW9uIHVu ZXNjYXBlUHJvcGVybHkoc3RyKQ0Kew0KCXZhciBzdHJSZXN1bHQ9bnVsbDsNCglp ZiAoKGJyb3dzZXJpcy5pZTU1dXAgfHwgYnJvd3NlcmlzLm5hdjZ1cCkgJiYNCgkJ KHR5cGVvZihkZWNvZGVVUklDb21wb25lbnQpICE9InVuZGVmaW5lZCIpKQ0KCXsN CgkJc3RyUmVzdWx0PWRlY29kZVVSSUNvbXBvbmVudChzdHIpOw0KCX0NCgllbHNl DQoJew0KCQlzdHJSZXN1bHQ9dW5lc2NhcGVQcm9wZXJseUludGVybmFsKHN0cik7 DQoJfQ0KCXJldHVybiBzdHJSZXN1bHQ7DQp9DQpmdW5jdGlvbiBuYXZpZ2F0ZU1h aWxUb0xpbmsoc3RyVXJsLCBzdHJVcmxOZXcpDQp7DQoJaWYgKHN0clVybE5ldykN Cgl7DQoJCXJldHVybiBuYXZpZ2F0ZU1haWxUb0xpbmtOZXcoc3RyVXJsTmV3KTsN Cgl9DQoJdmFyIHN0ckVuY29kZWQ9IiI7DQoJZm9yIChpeD0wOyBpeCA8IHN0clVy bC5sZW5ndGg7IGl4KyspDQoJew0KCQl2YXIgY3VyQ2hhcj1zdHJVcmwuY2hhckF0 KGl4KTsNCgkJdmFyIHN0ckhleENvZGU7DQoJCXZhciBzdHJIZXhDb2RlTDsNCgkJ aWYgKGN1ckNoYXI9PSclJykNCgkJew0KCQkJc3RySGV4Q29kZT1zdHJVcmwuY2hh ckF0KGl4KzEpOw0KCQkJc3RySGV4Q29kZSs9c3RyVXJsLmNoYXJBdChpeCsyKTsN CgkJCXN0ckhleENvZGVMPXN0ckhleENvZGUudG9Mb3dlckNhc2UoKTsNCgkJCWlm IChzdHJIZXhDb2RlTD09IjNhIiB8fCBzdHJIZXhDb2RlTD09IjJmIiB8fA0KCQkJ CXN0ckhleENvZGVMPT0iMmUiIHx8IHN0ckhleENvZGVMPT0iMmQiIHx8DQoJCQkJ c3RySGV4Q29kZUw9PSIzZCIpDQoJCQl7DQoJCQkJc3RyRW5jb2RlZCs9Y3VyQ2hh cjsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlzdHJFbmNvZGVkKz1jdXJDaGFy Ow0KCQkJCXN0ckVuY29kZWQrPSIyNSI7DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7 DQoJCQlzdHJFbmNvZGVkKz1jdXJDaGFyOw0KCQl9DQoJfQ0KCXdpbmRvdy5sb2Nh dGlvbj1zdHJFbmNvZGVkOw0KfQ0KZnVuY3Rpb24gbmF2aWdhdGVNYWlsVG9MaW5r TmV3KHN0ckJvZHkpDQp7DQoJd2luZG93LmxvY2F0aW9uPSdtYWlsdG86P2JvZHk9 Jytlc2NhcGVQcm9wZXJseShzdHJCb2R5KTsNCn0NCmZ1bmN0aW9uIG5ld0Jsb2dQ b3N0T25DbGllbnQoc3RyUHJvdmlkZXJJZCwgc3RyQmxvZ1VybCwgc3RyQmxvZ05h bWUpDQp7DQoJdmFyIHN0c09wZW47DQoJdmFyIGZSZXQ7DQoJc3RzT3Blbj1TdHNP cGVuRW5zdXJlRXgoIlNoYXJlUG9pbnQuT3BlbkRvY3VtZW50cy4zIik7DQoJaWYg KHN0c09wZW49PW51bGwpDQoJew0KCQlhbGVydChMX05ld0Jsb2dQb3N0X1RleHQp Ow0KCQlyZXR1cm47DQoJfQ0KCXRyeQ0KCXsNCgkJZlJldD1zdHNPcGVuLk5ld0Js b2dQb3N0KHN0clByb3ZpZGVySWQsIHN0ckJsb2dVcmwsIHN0ckJsb2dOYW1lKTsN Cgl9DQoJY2F0Y2ggKGUpDQoJew0KCQlhbGVydChMX05ld0Jsb2dQb3N0RmFpbGVk X1RleHQpOw0KCX0NCn0NCmZ1bmN0aW9uIEdldFVybEZyb21XZWJVcmxBbmRXZWJS ZWxhdGl2ZVVybCh3ZWJVcmwsIHdlYlJlbGF0aXZlVXJsKQ0Kew0KCXZhciByZXRV cmw9KHdlYlVybD09bnVsbCB8fCB3ZWJVcmwubGVuZ3RoIDw9MCkgPyAiLyIgOiB3 ZWJVcmw7DQoJaWYgKHJldFVybC5jaGFyQXQocmV0VXJsLmxlbmd0aCAtIDEpICE9 Ii8iKQ0KCXsNCgkJcmV0VXJsKz0iLyI7DQoJfQ0KCXJldFVybCs9d2ViUmVsYXRp dmVVcmw7DQoJcmV0dXJuIHJldFVybDsNCn0NCnZhciBnX3VwZGF0ZUZvcm1EaWdl c3RQYWdlTG9hZGVkPW5ldyBEYXRlKCk7DQpmdW5jdGlvbiBVcGRhdGVGb3JtRGln ZXN0KHNlcnZlclJlbGF0aXZlV2ViVXJsLCB1cGRhdGVJbnRlcnZhbCkNCnsNCgl0 cnkNCgl7DQoJCWlmICgoZ191cGRhdGVGb3JtRGlnZXN0UGFnZUxvYWRlZD09bnVs bCkgfHwgKHR5cGVvZihnX3VwZGF0ZUZvcm1EaWdlc3RQYWdlTG9hZGVkKSAhPSJv YmplY3QiKSkNCgkJew0KCQkJcmV0dXJuOw0KCQl9DQoJCXZhciBub3c9bmV3IERh dGUoKTsNCgkJaWYgKG5vdy5nZXRUaW1lKCkgLSBnX3VwZGF0ZUZvcm1EaWdlc3RQ YWdlTG9hZGVkLmdldFRpbWUoKSA8IHVwZGF0ZUludGVydmFsKQ0KCQl7DQoJCQly ZXR1cm47DQoJCX0NCgkJaWYgKChzZXJ2ZXJSZWxhdGl2ZVdlYlVybD09bnVsbCkg fHwgKHNlcnZlclJlbGF0aXZlV2ViVXJsLmxlbmd0aCA8PTApKQ0KCQl7DQoJCQly ZXR1cm47DQoJCX0NCgkJdmFyIGZvcm1EaWdlc3RFbGVtZW50PWRvY3VtZW50Lmdl dEVsZW1lbnRzQnlOYW1lKCJfX1JFUVVFU1RESUdFU1QiKVswXTsNCgkJaWYgKChm b3JtRGlnZXN0RWxlbWVudD09bnVsbCkgfHwgKGZvcm1EaWdlc3RFbGVtZW50LnRh Z05hbWUudG9Mb3dlckNhc2UoKSAhPSJpbnB1dCIpIHx8IChmb3JtRGlnZXN0RWxl bWVudC50eXBlLnRvTG93ZXJDYXNlKCkgIT0iaGlkZGVuIikgfHwNCgkJCShmb3Jt RGlnZXN0RWxlbWVudC52YWx1ZT09bnVsbCkgfHwgKGZvcm1EaWdlc3RFbGVtZW50 LnZhbHVlLmxlbmd0aCA8PTApKQ0KCQl7DQoJCQlyZXR1cm47DQoJCX0NCgkJdmFy IHJlcXVlc3Q9bnVsbDsNCgkJdHJ5DQoJCXsNCgkJCXJlcXVlc3Q9bmV3IEFjdGl2 ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7DQoJCX0NCgkJY2F0Y2ggKGV4KQ0K CQl7DQoJCQlyZXF1ZXN0PW51bGw7DQoJCX0NCgkJaWYgKHJlcXVlc3Q9PW51bGwp DQoJCXsNCgkJCXRyeQ0KCQkJew0KCQkJCXJlcXVlc3Q9bmV3IFhNTEh0dHBSZXF1 ZXN0KCk7DQoJCQl9DQoJCQljYXRjaCAoZXgpDQoJCQl7DQoJCQkJcmVxdWVzdD1u dWxsOw0KCQkJfQ0KCQl9DQoJCWlmIChyZXF1ZXN0PT1udWxsKQ0KCQl7DQoJCQly ZXR1cm47DQoJCX0NCgkJcmVxdWVzdC5vcGVuKCJQT1NUIiwgR2V0VXJsRnJvbVdl YlVybEFuZFdlYlJlbGF0aXZlVXJsKHNlcnZlclJlbGF0aXZlV2ViVXJsLCAiX3Z0 aV9iaW4vc2l0ZXMuYXNteCIpLCBmYWxzZSk7DQoJCXJlcXVlc3Quc2V0UmVxdWVz dEhlYWRlcigiQ29udGVudC1UeXBlIiwgInRleHQveG1sIik7DQoJCXJlcXVlc3Qu c2V0UmVxdWVzdEhlYWRlcigiU09BUEFjdGlvbiIsICJodHRwOi8vc2NoZW1hcy5t aWNyb3NvZnQuY29tL3NoYXJlcG9pbnQvc29hcC9HZXRVcGRhdGVkRm9ybURpZ2Vz dCIpOw0KCQlyZXF1ZXN0LnNlbmQoIjw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNv ZGluZz1cInV0Zi04XCI/PiIrCQkJIjxzb2FwOkVudmVsb3BlIHhtbG5zOnhzaT1c Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1s bnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIiB4bWxu czpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9w ZS9cIj4iKwkJCSIgIDxzb2FwOkJvZHk+IisJCQkiICAgIDxHZXRVcGRhdGVkRm9y bURpZ2VzdCB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hh cmVwb2ludC9zb2FwL1wiIC8+IisJCQkiICA8L3NvYXA6Qm9keT4iKwkJCSI8L3Nv YXA6RW52ZWxvcGU+Iik7DQoJCXZhciByZXNwb25zZVRleHQ9cmVxdWVzdC5yZXNw b25zZVRleHQ7DQoJCWlmICgocmVzcG9uc2VUZXh0PT1udWxsKSB8fCAocmVzcG9u c2VUZXh0Lmxlbmd0aCA8PTApKQ0KCQl7DQoJCQlyZXR1cm47DQoJCX0NCgkJdmFy IHN0YXJ0VGFnPSc8R2V0VXBkYXRlZEZvcm1EaWdlc3RSZXN1bHQ+JzsNCgkJdmFy IGVuZFRhZz0nPC9HZXRVcGRhdGVkRm9ybURpZ2VzdFJlc3VsdD4nOw0KCQl2YXIg c3RhcnRUYWdJbmRleD1yZXNwb25zZVRleHQuaW5kZXhPZihzdGFydFRhZyk7DQoJ CXZhciBlbmRUYWdJbmRleD1yZXNwb25zZVRleHQuaW5kZXhPZihlbmRUYWcsIHN0 YXJ0VGFnSW5kZXgrc3RhcnRUYWcubGVuZ3RoKTsNCgkJdmFyIG5ld0Zvcm1EaWdl c3Q9bnVsbDsNCgkJaWYgKChzdGFydFRhZ0luZGV4ID49MCkgJiYgKGVuZFRhZ0lu ZGV4ID4gc3RhcnRUYWdJbmRleCkpDQoJCXsNCgkJCXZhciBuZXdGb3JtRGlnZXN0 PXJlc3BvbnNlVGV4dC5zdWJzdHJpbmcoc3RhcnRUYWdJbmRleCtzdGFydFRhZy5s ZW5ndGgsIGVuZFRhZ0luZGV4KTsNCgkJfQ0KCQlpZiAoKG5ld0Zvcm1EaWdlc3Q9 PW51bGwpIHx8IChuZXdGb3JtRGlnZXN0Lmxlbmd0aCA8PTApKQ0KCQl7DQoJCQly ZXR1cm47DQoJCX0NCgkJdmFyIG9sZFZhbHVlPWZvcm1EaWdlc3RFbGVtZW50LnZh bHVlOw0KCQlmb3JtRGlnZXN0RWxlbWVudC52YWx1ZT1uZXdGb3JtRGlnZXN0Ow0K CX0NCgljYXRjaCAoZXgpDQoJew0KCX0NCn0NCmZ1bmN0aW9uIEdldFN0c3N5bmNI YW5kbGVyKHN6VmVyc2lvbikNCnsNCgl2YXIgb2JqU3Rzc3luYzsNCgl0cnkNCgl7 DQoJCW9ialN0c3N5bmM9bmV3IEFjdGl2ZVhPYmplY3QoIlNoYXJlUG9pbnQuU3Rz c3luY0hhbmRsZXIiK3N6VmVyc2lvbik7DQoJfQ0KCWNhdGNoIChlKQ0KCXsNCgkJ b2JqU3Rzc3luYz1udWxsOw0KCX0NCglyZXR1cm4gb2JqU3Rzc3luYzsNCn0NCmZ1 bmN0aW9uIEdldFN0c3N5bmNBcHBOYW1lRm9yVHlwZShzdHJUeXBlLHN0ckRlZmF1 bHQpDQp7DQoJaWYgKGJyb3dzZXJpcy5pZTV1cCAmJiBicm93c2VyaXMud2luMzIp DQoJew0KCQl2YXIgc3RyQXBwTmFtZTsNCgkJdmFyIG9ialN0c3N5bmM9bnVsbDsN CgkJaWYgKHN0clR5cGUgIT0iIikNCgkJICAgb2JqU3Rzc3luYz1HZXRTdHNzeW5j SGFuZGxlcigiLjMiKTsNCgkJaWYgKCFvYmpTdHNzeW5jKQ0KCQl7DQoJCQlpZiAo c3RyVHlwZSAhPSIiICYmIHN0clR5cGUgIT0iY2FsZW5kYXIiICYmIHN0clR5cGUg IT0iY29udGFjdHMiKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJ CW9ialN0c3N5bmM9R2V0U3Rzc3luY0hhbmRsZXIoIi4yIik7DQoJCQlpZiAoIW9i alN0c3N5bmMgfHwgIShzdHJBcHBOYW1lPW9ialN0c3N5bmMuR2V0U3Rzc3luY0Fw cE5hbWUoKSkpDQoJCQl7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJ CWVsc2UgaWYgKCEoc3RyQXBwTmFtZT1vYmpTdHNzeW5jLkdldFN0c3N5bmNBcHBO YW1lRm9yVHlwZShzdHJUeXBlKSkpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJ fQ0KCQl2YXIgTF9MaW5rVG9CZWZvcmVfVGV4dD0iUMWZaXBvaml0IGsgIjsNCgkJ dmFyIExfTGlua1RvQWZ0ZXJfVGV4dD0iIjsNCgkJcmV0dXJuIExfTGlua1RvQmVm b3JlX1RleHQrc3RyQXBwTmFtZStMX0xpbmtUb0FmdGVyX1RleHQ7DQoJfQ0KCWVs c2UNCgl7DQoJCXJldHVybiBzdHJEZWZhdWx0Ow0KCX0NCn0NCmZ1bmN0aW9uIEdl dFN0c3N5bmNJY29uUGF0aChzdHJEZWZhdWx0LCBzdHJQcmVmaXgpDQp7DQoJaWYg KGJyb3dzZXJpcy5pZTV1cCAmJiBicm93c2VyaXMud2luMzIpDQoJew0KCQl2YXIg c3RySWNvbk5hbWU7DQoJCXZhciBvYmpTdHNzeW5jPW51bGw7DQoJCW9ialN0c3N5 bmM9R2V0U3Rzc3luY0hhbmRsZXIoIi4zIik7DQoJCWlmICghb2JqU3Rzc3luYykN CgkJCXJldHVybiBmYWxzZTsNCgkJdHJ5DQoJCXsNCgkJCXN0ckljb25OYW1lPW9i alN0c3N5bmMuR2V0U3Rzc3luY0ljb25OYW1lKCk7DQoJCQlyZXR1cm4gc3RyUHJl Zml4K3N0ckljb25OYW1lOw0KCQl9DQoJCWNhdGNoIChlKQ0KCQl7DQoJCQlyZXR1 cm4gc3RyRGVmYXVsdDsNCgkJfQ0KCX0NCgllbHNlDQoJew0KCQlyZXR1cm4gc3Ry RGVmYXVsdDsNCgl9DQp9DQpmdW5jdGlvbiBHZXRTdHNzeW5jQXBwTmFtZShzdHJE ZWZhdWx0KQ0Kew0KCXJldHVybiBHZXRTdHNzeW5jQXBwTmFtZUZvclR5cGUoIiIs c3RyRGVmYXVsdCk7DQp9DQpmdW5jdGlvbiBFeHBvcnRIYWlsU3Rvcm0odHlwZSx3 ZWJ1cmwsZ3VpZCx3ZWJuYW1lLGxpc3RuYW1lLHZpZXd1cmwscGFzc3BvcnQsbGlz dHJvb3R1cmwsZm9sZGVydXJsLGZvbGRlcmlkKQ0Kew0KCXZhciBtYXhMaW5rTGVu Z3RoPTUwMDsNCgl2YXIgbWF4TmFtZUxlbmd0aD0yMDsNCgl2YXIgbGluaz0ic3Rz c3luYzovL3N0cy8/dmVyPTEuMSINCisiJnR5cGU9Iitlc2NhcGVQcm9wZXJseSh0 eXBlKQ0KKyImY21kPWFkZC1mb2xkZXIiDQorIiZiYXNlLXVybD0iK2VzY2FwZUZv clN5bmMod2VidXJsKQ0KKyImbGlzdC11cmw9Iitlc2NhcGVGb3JTeW5jKCIvIitt YWtlQWJzVXJsKHZpZXd1cmwpLnN1YnN0cih3ZWJ1cmwubGVuZ3RoKzEpKyIvIikN CisiJmd1aWQ9Iitlc2NhcGVQcm9wZXJseShndWlkKTsNCgl2YXIgbmFtZXM9IiZz aXRlLW5hbWU9Iitlc2NhcGVGb3JTeW5jKHdlYm5hbWUpDQorIiZsaXN0LW5hbWU9 Iitlc2NhcGVGb3JTeW5jKGxpc3RuYW1lKTsNCgl2YXIgY29udGV4dD0iIjsNCglp ZiAoZm9sZGVydXJsKQ0KCQljb250ZXh0Kz0iJmZvbGRlci11cmw9Iitlc2NhcGVG b3JTeW5jKCIvIitmb2xkZXJ1cmwuc3Vic3RyKGxpc3Ryb290dXJsLmxlbmd0aCsx KSk7DQoJaWYgKGZvbGRlcmlkKQ0KCQljb250ZXh0Kz0iJmZvbGRlci1pZD0iK2Zv bGRlcmlkOw0KCWlmIChsaW5rLmxlbmd0aCtuYW1lcy5sZW5ndGgrY29udGV4dC5s ZW5ndGggPiBtYXhMaW5rTGVuZ3RoICYmDQoJCSh3ZWJuYW1lLmxlbmd0aCA+IG1h eE5hbWVMZW5ndGggfHwgbGlzdG5hbWUubGVuZ3RoID4gbWF4TmFtZUxlbmd0aCkp DQoJew0KCQlpZiAod2VibmFtZS5sZW5ndGggPiBtYXhOYW1lTGVuZ3RoKQ0KCQkJ d2VibmFtZT13ZWJuYW1lLnN1YnN0cmluZygwLCBtYXhOYW1lTGVuZ3RoLTEpKyIu Li4iOw0KCQlpZiAobGlzdG5hbWUubGVuZ3RoID4gbWF4TmFtZUxlbmd0aCkNCgkJ CWxpc3RuYW1lPWxpc3RuYW1lLnN1YnN0cmluZygwLCBtYXhOYW1lTGVuZ3RoLTEp KyIuLi4iOw0KCQluYW1lcz0iJnNpdGUtbmFtZT0iK2VzY2FwZUZvclN5bmMod2Vi bmFtZSkNCisiJmxpc3QtbmFtZT0iK2VzY2FwZUZvclN5bmMobGlzdG5hbWUpOw0K CX0NCglsaW5rPWxpbmsrbmFtZXMrY29udGV4dDsNCgl2YXIgTF9TdHNzeW5jVG9v TG9uZ19UZXh0PSJOw6F6ZXYgdG9ob3RvIHdlYnUgbmVibyBzZXpuYW11IGplIHDF mcOtbGnFoSBkbG91aMO9LiBaa3JhxaV0ZSBuw6F6ZXYgYSBha2NpIG9wYWt1anRl LiI7DQoJaWYgKGxpbmsubGVuZ3RoID4gbWF4TGlua0xlbmd0aCkNCgkJYWxlcnQo TF9TdHNzeW5jVG9vTG9uZ19UZXh0KTsNCgllbHNlDQoJew0KCQl0cnkNCgkJew0K CQkJd2luZG93LmxvY2F0aW9uLmhyZWY9bGluazsNCgkJfQ0KCQljYXRjaCAoZSkN CgkJew0KCQl9DQoJfQ0KfQ0KZnVuY3Rpb24gR2V0RGlhZ3JhbUxhdW5jaEluc3Rh bGxlZCgpDQp7DQoJdmFyIG9iakRpYWdyYW1MYXVuY2g7DQoJdmFyIGJGbGFnPWZh bHNlOw0KCXRyeQ0KCXsNCgkJb2JqRGlhZ3JhbUxhdW5jaD1uZXcgQWN0aXZlWE9i amVjdCgiRGlhZ3JhbUxhdW5jaC5EaWFncmFtTGF1bmNoZXIiKTsNCgkJdmFyIHN0 ckFwcE5hbWU7DQoJCXN0ckFwcE5hbWU9b2JqRGlhZ3JhbUxhdW5jaC5FbnN1cmVE aWFncmFtQXBwbGljYXRpb24oKTsNCgl9DQoJY2F0Y2ggKGUpDQoJew0KCQlvYmpE aWFncmFtTGF1bmNoPW51bGw7DQoJfQ0KCXJldHVybiBzdHJBcHBOYW1lOw0KfQ0K dmFyIGZTU0ltcG9ydGVyPWZhbHNlOw0KdmFyIFNTSW1wb3J0ZXJPYmo7DQpmdW5j dGlvbiBFbnN1cmVTU0ltcG9ydGVyKCkNCnsNCglpZiAoIWZTU0ltcG9ydGVyKQ0K CXsNCgkJaWYgKGJyb3dzZXJpcy5pZTV1cCAmJiBicm93c2VyaXMud2luMzIpDQoJ CXsNCgkJCXZhciBmdW5jdGlvbkJvZHk9CQkJCSJ0cnkiDQorInsiDQorIiAgICBT U0ltcG9ydGVyT2JqPW5ldyBBY3RpdmVYT2JqZWN0KFwiU2hhcmVQb2ludC5TcHJl YWRzaGVldExhdW5jaGVyLjJcIik7Ig0KKyIgICAgaWYgKFNTSW1wb3J0ZXJPYmop Ig0KKyIgICAgICAgIGZTU0ltcG9ydGVyPXRydWU7Ig0KKyJ9IGNhdGNoIChlKSIN CisieyINCisidHJ5Ig0KKyJ7Ig0KKyIgICAgU1NJbXBvcnRlck9iaj1uZXcgQWN0 aXZlWE9iamVjdChcIlNoYXJlUG9pbnQuU3ByZWFkc2hlZXRMYXVuY2hlci4xXCIp OyINCisiICAgIGlmIChTU0ltcG9ydGVyT2JqKSINCisiICAgICAgICBmU1NJbXBv cnRlcj10cnVlOyINCisifSBjYXRjaCAoZSkiDQorInsiDQorIiAgICBmU1NJbXBv cnRlcj1mYWxzZTsiDQorIn07Ig0KKyJ9OyI7DQoJCQl2YXIgRW5zdXJlU1NJbXBv cnRJbm5lcj1uZXcgRnVuY3Rpb24oZnVuY3Rpb25Cb2R5KTsNCgkJCUVuc3VyZVNT SW1wb3J0SW5uZXIoKTsNCgkJfQ0KCX0NCglyZXR1cm4gZlNTSW1wb3J0ZXI7DQp9 DQpmdW5jdGlvbiBTaG93SGlkZVNlY3Rpb24oc2VjdGlvbmlkLCBpbWdpZCkNCnsN Cgl2YXIgZ3JvdXA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbmlkKTsN Cgl2YXIgaW1nPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGltZ2lkKTsNCglpZiAo KGdyb3VwPT1udWxsKSkNCgkJcmV0dXJuOw0KCWlmIChncm91cC5zdHlsZS5kaXNw bGF5ICE9Im5vbmUiKQ0KCXsNCgkJZ3JvdXAuc3R5bGUuZGlzcGxheT0ibm9uZSI7 DQoJCWltZy5zcmM9Ii9fbGF5b3V0cy9pbWFnZXMvcGx1cy5naWYiOw0KCX0NCgll bHNlDQoJew0KCQlncm91cC5zdHlsZS5kaXNwbGF5PSIiOw0KCQlpbWcuc3JjPSIv X2xheW91dHMvaW1hZ2VzL21pbnVzLmdpZiI7DQoJfQ0KfQ0KZnVuY3Rpb24gU2hv d1NlY3Rpb24oc2VjdGlvbmlkLCBpbWdpZCkNCnsNCgl2YXIgZ3JvdXA9ZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbmlkKTsNCgl2YXIgaW1nPWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKGltZ2lkKTsNCglpZiAoKGdyb3VwPT1udWxsKSkNCgkJ cmV0dXJuOw0KCWlmIChncm91cC5zdHlsZS5kaXNwbGF5PT0ibm9uZSIpDQoJew0K CQlncm91cC5zdHlsZS5kaXNwbGF5PSIiOw0KCQlpbWcuc3JjPSIvX2xheW91dHMv aW1hZ2VzL21pbnVzLmdpZiI7DQoJfQ0KfQ0KZnVuY3Rpb24gU2hvd0hpZGVJbnB1 dEZvcm1TZWN0aW9uKHNlY3Rpb25pZCwgYlNob3cpDQp7DQoJdmFyIGU9ZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbmlkKTsNCglpZiAoZSAhPW51bGwpDQoJ CWUuc3R5bGUuZGlzcGxheT1iU2hvdyA/ICIiIDogIm5vbmUiOw0KCWZvciAodmFy IGk9MTsgaSA8IDM7IGkrKykNCgl7DQoJCWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoc2VjdGlvbmlkKyJfdGFibGVyb3ciK2kpOw0KCQlpZiAoZSAhPW51bGwpDQoJ CQllLnN0eWxlLmRpc3BsYXk9YlNob3cgPyAiIiA6ICJub25lIjsNCgl9DQp9DQpm dW5jdGlvbiBTaG93SGlkZUlucHV0Rm9ybUNvbnRyb2woaWQsIGJIaWRlLCBiRGlz YWJsZVZhbGlkYXRvcnMsIGJTaWxlbnQpDQp7DQoJdmFyIGRpc3BsYXlTZXR0aW5n PSIiOw0KCWlmIChiSGlkZT09dHJ1ZSkNCgl7DQoJCWRpc3BsYXlTZXR0aW5nPSJu b25lIjsNCgl9DQoJdmFyIHZhbGlkYXRvcnM9ZXZhbChpZCsnX3ZhbGlkYXRvcnMn KTsNCglpZiAodmFsaWRhdG9ycyAhPW51bGwpDQoJew0KCQlmb3IodmFyIGk9MDsg aSA8IHZhbGlkYXRvcnMubGVuZ3RoOyBpKyspDQoJCXsNCgkJCVNUU1ZhbGlkYXRv ckVuYWJsZSh2YWxpZGF0b3JzW2ldLCAhYkRpc2FibGVWYWxpZGF0b3JzLCBiU2ls ZW50KTsNCgkJfQ0KCX0NCglmb3IodmFyIGk9MTsgaTw9NTsgaSsrKQ0KCXsNCgkJ dmFyIHJvd0lkPWlkKyJfdGFibGVyb3ciK2k7DQoJCXZhciByb3c9ZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQocm93SWQpOw0KCQlpZiAoKHJvdyAhPW51bGwpICYmICFi cm93c2VyaXMubWFjKQ0KCQl7DQoJCQlyb3cuc3R5bGUuZGlzcGxheT1kaXNwbGF5 U2V0dGluZzsNCgkJfQ0KCX0NCn0NCmZ1bmN0aW9uIFNldENvbnRyb2xEaXNhYmxl ZFN0YXR1cyhvYmosIGRpc2FibGVkU3RhdHVzKQ0Kew0KCXRyeQ0KCXsNCgkJaWYg KG9iai5zZXRBdHRyaWJ1dGUpDQoJCQlvYmouc2V0QXR0cmlidXRlKCdkaXNhYmxl ZCcsIGRpc2FibGVkU3RhdHVzKTsNCgkJaWYgKCFkaXNhYmxlZFN0YXR1cyAmJiBv YmoucmVtb3ZlQXR0cmlidXRlKQ0KCQkJb2JqLnJlbW92ZUF0dHJpYnV0ZSgnZGlz YWJsZWQnKTsNCgl9DQoJY2F0Y2goZSkNCgl7DQoJfQ0KfQ0KZnVuY3Rpb24gU2V0 Q29udHJvbERpc2FibGVkU3RhdHVzUmVjdXJzaXZlbHkob2JqLCBkaXNhYmxlZFN0 YXR1cykNCnsNCglpZiAob2JqPT1udWxsKQ0KCQlyZXR1cm47DQoJU2V0Q29udHJv bERpc2FibGVkU3RhdHVzKG9iaiwgZGlzYWJsZWRTdGF0dXMpOw0KCXZhciBvYmpD aGlsZHJlbj1vYmouY2hpbGROb2RlczsNCglmb3IodmFyIGk9MDsgb2JqQ2hpbGRy ZW4ubGVuZ3RoID4gaTsgaSsrKQ0KCXsNCgkJU2V0Q29udHJvbERpc2FibGVkU3Rh dHVzUmVjdXJzaXZlbHkob2JqQ2hpbGRyZW4uaXRlbShpKSwgZGlzYWJsZWRTdGF0 dXMpOw0KCX0NCn0NCmZ1bmN0aW9uIFNldENoaWxkQ29udHJvbHNEaXNhYmxlZFN0 YXR1cyhvYmosIGRpc2FibGVkU3RhdHVzKQ0Kew0KCXZhciBvYmpDaGlsZHJlbj1v YmouY2hpbGROb2RlczsNCglmb3IodmFyIGk9MDsgaSA8IG9iakNoaWxkcmVuLmxl bmd0aDsgaSsrKQ0KCXsNCgkJU2V0Q29udHJvbERpc2FibGVkU3RhdHVzUmVjdXJz aXZlbHkob2JqQ2hpbGRyZW4uaXRlbShpKSwgZGlzYWJsZWRTdGF0dXMpOw0KCX0N Cn0NCnZhciBnX1BOR0ltYWdlSWRzOw0KdmFyIGdfUE5HSW1hZ2VTb3VyY2VzOw0K ZnVuY3Rpb24gZGlzcGxheVBOR0ltYWdlKGlkLHNyYyx3aWR0aCxoZWlnaHQsYWx0 KQ0Kew0KCWlmIChnX1BOR0ltYWdlSWRzPT1udWxsKQ0KCQlnX1BOR0ltYWdlSWRz PW5ldyBBcnJheSgpOw0KCWlmIChnX1BOR0ltYWdlU291cmNlcz09bnVsbCkNCgkJ Z19QTkdJbWFnZVNvdXJjZXM9bmV3IEFycmF5KCk7DQoJdmFyIHN0eWxlPW51bGw7 DQoJZG9jdW1lbnQud3JpdGUoIjxJTUcgaWQ9JyIraWQrIicgIik7DQoJaWYgKHdp ZHRoICYmIHdpZHRoID4gMCkNCgkJZG9jdW1lbnQud3JpdGUoIndpZHRoPSciK3dp ZHRoKyInICIpOw0KCWlmIChoZWlnaHQgJiYgaGVpZ2h0ID4gMCkNCgkJZG9jdW1l bnQud3JpdGUoImhlaWdodD0nIitoZWlnaHQrIicgIik7DQoJZG9jdW1lbnQud3Jp dGUoImFsdD0nIithbHQrIicgIik7DQoJaWYgKHN0eWxlKQ0KCQlkb2N1bWVudC53 cml0ZSgic3R5bGU9JyIrc3R5bGUrIicgIik7DQoJZG9jdW1lbnQud3JpdGUoIiBz cmM9JyIrc3JjKyInIC8+Iik7DQoJZ19QTkdJbWFnZUlkcy5wdXNoKGlkKTsNCgln X1BOR0ltYWdlU291cmNlcy5wdXNoKHNyYyk7DQp9DQpmdW5jdGlvbiBQcm9jZXNz UE5HSW1hZ2VzKCkNCnsNCgl2YXIgdXNlRmlsdGVyPWJyb3dzZXJpcy5pZSAmJg0K CQkJCWJyb3dzZXJpcy5pZTU1dXAgJiYNCgkJCQlicm93c2VyaXMudmVySUVGdWxs IDwgNy4wOw0KCWlmIChnX1BOR0ltYWdlSWRzICE9bnVsbCAmJiB1c2VGaWx0ZXIp DQoJew0KCQlmb3IgKHZhciBpPTA7IGkgPCBnX1BOR0ltYWdlSWRzLmxlbmd0aDsg aSsrKQ0KCQl7DQoJCQl2YXIgaW1nPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGdf UE5HSW1hZ2VJZHNbaV0pOw0KCQkJaWYgKGltZyAhPW51bGwgJiYgZ19QTkdJbWFn ZVNvdXJjZXNbaV0gIT1udWxsKQ0KCQkJew0KCQkJCWltZy5zdHlsZS5maWx0ZXI9 InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9h ZGVyKHNyYz0iK2dfUE5HSW1hZ2VTb3VyY2VzW2ldKyIpLHNpemluZ01ldGhvZD1z Y2FsZSk7IjsNCgkJCQlpbWcuc3JjPSIvX2xheW91dHMvaW1hZ2VzL2JsYW5rLmdp ZiI7DQoJCQl9DQoJCX0NCgl9DQp9DQp2YXIgQ1RYVFlQRV9FRElUTUVOVT0wOw0K dmFyIENUWFRZUEVfVklFV1NFTEVDVE9SPTE7DQpmdW5jdGlvbiBDb250ZXh0SW5m bygpDQp7DQoJdGhpcy5saXN0QmFzZVR5cGU9bnVsbDsNCgl0aGlzLmxpc3RUZW1w bGF0ZT1udWxsOw0KCXRoaXMubGlzdE5hbWU9bnVsbDsNCgl0aGlzLnZpZXc9bnVs bDsNCgl0aGlzLmxpc3RVcmxEaXI9bnVsbDsNCgl0aGlzLkh0dHBQYXRoPW51bGw7 DQoJdGhpcy5IdHRwUm9vdD1udWxsOw0KCXRoaXMuc2VydmVyVXJsPW51bGw7DQoJ dGhpcy5pbWFnZXNQYXRoPW51bGw7DQoJdGhpcy5Qb3J0YWxVcmw9bnVsbDsNCgl0 aGlzLlJlY3ljbGVCaW5FbmFibGVkPW51bGw7DQoJdGhpcy5pc1dlYkVkaXRvclBy ZXZpZXc9bnVsbDsNCgl0aGlzLnJvb3RGb2xkZXJGb3JEaXNwbGF5PW51bGw7DQoJ dGhpcy5pc1BvcnRhbFRlbXBsYXRlPW51bGw7DQoJdGhpcy5pc01vZGVyYXRlZD1m YWxzZTsNCgl0aGlzLnJlY3Vyc2l2ZVZpZXc9ZmFsc2U7DQoJdGhpcy5kaXNwbGF5 Rm9ybVVybD1udWxsOw0KCXRoaXMuZWRpdEZvcm1Vcmw9bnVsbDsNCgl0aGlzLm5l d0Zvcm1Vcmw9bnVsbDsNCgl0aGlzLmN0eElkPW51bGw7DQoJdGhpcy5DdXJyZW50 VXNlcklkPW51bGw7DQoJdGhpcy5pc0ZvcmNlQ2hlY2tvdXQ9ZmFsc2U7DQoJdGhp cy5FbmFibGVNaW5vclZlcnNpb25zPWZhbHNlOw0KCXRoaXMuTW9kZXJhdGlvblN0 YXR1cz0wOw0KCXRoaXMudmVyRW5hYmxlZD0wOw0KCXRoaXMuaXNWZXJzaW9ucz0w Ow0KCXRoaXMuV29ya2Zsb3dzQXNzb2NpYXRlZD1mYWxzZTsNCgl0aGlzLkNvbnRl bnRUeXBlc0VuYWJsZWQ9ZmFsc2U7DQoJdGhpcy5TZW5kVG9Mb2NhdGlvbk5hbWU9 IiI7DQoJdGhpcy5TZW5kVG9Mb2NhdGlvblVybD0iIjsNCn0NCmZ1bmN0aW9uIFNU U1BhZ2VVcmxWYWxpZGF0aW9uKHVybCkNCnsNCglyZXR1cm4gUGFnZVVybFZhbGlk YXRpb24odXJsKTsNCn0NCmZ1bmN0aW9uIEdldFNvdXJjZShkZWZhdWx0U291cmNl KQ0Kew0KCXZhciBzb3VyY2U9R2V0VXJsS2V5VmFsdWUoIlNvdXJjZSIpOw0KCWlm IChzb3VyY2U9PSIiKQ0KCXsNCgkJaWYgKGRlZmF1bHRTb3VyY2UgIT1udWxsICYm IGRlZmF1bHRTb3VyY2UgIT0iIikNCgkJCXNvdXJjZT1kZWZhdWx0U291cmNlOw0K CQllbHNlDQoJCQlzb3VyY2U9d2luZG93LmxvY2F0aW9uLmhyZWY7DQoJfQ0KCXJl dHVybiBlc2NhcGVQcm9wZXJseShTVFNQYWdlVXJsVmFsaWRhdGlvbihzb3VyY2Up KTsNCn0NCmZ1bmN0aW9uIEdldFVybEtleVZhbHVlKGtleU5hbWUsIGJOb0RlY29k ZSwgdXJsKQ0Kew0KCXZhciBrZXlWYWx1ZT0iIjsNCglpZiAodXJsPT1udWxsKQ0K CQl1cmw9d2luZG93LmxvY2F0aW9uLmhyZWYrIiI7DQoJdmFyIG5keD11cmwuaW5k ZXhPZigiJiIra2V5TmFtZSsiPSIpOw0KCWlmIChuZHg9PS0xKQ0KCQluZHg9dXJs LmluZGV4T2YoIj8iK2tleU5hbWUrIj0iKTsNCglpZiAobmR4ICE9LTEpDQoJew0K CQluZHgyPXVybC5pbmRleE9mKCImIiwgbmR4KzEpOw0KCQlpZiAobmR4Mj09LTEp DQoJCQluZHgyPXVybC5sZW5ndGg7DQoJCWtleVZhbHVlPXVybC5zdWJzdHJpbmco bmR4K2tleU5hbWUubGVuZ3RoKzIsIG5keDIpOw0KCX0NCglpZiAoYk5vRGVjb2Rl KQ0KCQlyZXR1cm4ga2V5VmFsdWU7DQoJZWxzZQ0KCQlyZXR1cm4gdW5lc2NhcGVQ cm9wZXJseUludGVybmFsKGtleVZhbHVlKTsNCn0NCmZ1bmN0aW9uIExvZ2luQXNB bm90aGVyKHVybCwgYlVzZVNvdXJjZSkNCnsNCglkb2N1bWVudC5jb29raWU9Imxv Z2luQXNEaWZmZXJlbnRBdHRlbXB0Q291bnQ9MCI7DQoJaWYgKGJVc2VTb3VyY2U9 PSIxIikNCgl7DQoJCUdvVG9QYWdlKHVybCk7DQoJfQ0KCWVsc2UNCgl7DQoJCXZh ciBjaD11cmwuaW5kZXhPZigiPyIpID49MCA/ICImIiA6ICI/IjsNCgkJdXJsKz1j aCsiU291cmNlPSIrZXNjYXBlUHJvcGVybHkod2luZG93LmxvY2F0aW9uLmhyZWYp Ow0KCQlTVFNOYXZpZ2F0ZSh1cmwpOw0KCX0NCn0NCmZ1bmN0aW9uIGlzUG9ydGFs VGVtcGxhdGVQYWdlKFVybCkNCnsNCglpZiAoR2V0VXJsS2V5VmFsdWUoIlBvcnRh bFRlbXBsYXRlIik9PSIxIiB8fA0KCQlHZXRVcmxLZXlWYWx1ZSgiUG9ydGFsVGVt cGxhdGUiLCBVcmwpPT0iMSIgfHwNCgkJKGN1cnJlbnRDdHggIT1udWxsICYmIGN1 cnJlbnRDdHguaXNQb3J0YWxUZW1wbGF0ZSkpDQoJCXJldHVybiB0cnVlOw0KCWVs c2UNCgkJcmV0dXJuIGZhbHNlOw0KfQ0KZnVuY3Rpb24gU1RTTmF2aWdhdGUoVXJs KQ0Kew0KCWlmIChpc1BvcnRhbFRlbXBsYXRlUGFnZShVcmwpKQ0KCQl3aW5kb3cu dG9wLmxvY2F0aW9uPVNUU1BhZ2VVcmxWYWxpZGF0aW9uKFVybCk7DQoJZWxzZQ0K CQl3aW5kb3cubG9jYXRpb249U1RTUGFnZVVybFZhbGlkYXRpb24oVXJsKTsNCn0N CmZ1bmN0aW9uIEdvVG9QYWdlKHVybCkNCnsNCgl2YXIgY2g9dXJsLmluZGV4T2Yo Ij8iKSA+PTAgPyAiJiIgOiAiPyI7DQoJdmFyIHNyY1VybD1HZXRTb3VyY2UoKTsN CglpZiAoc3JjVXJsICE9bnVsbCAmJiBzcmNVcmwgIT0iIikNCgkJdXJsKz1jaCsi U291cmNlPSIrc3JjVXJsOw0KCVNUU05hdmlnYXRlKHVybCk7DQp9DQpmdW5jdGlv biBUcmltU3BhY2VzKCBzdHIgKQ0Kew0KCXZhciBzdGFydDsNCgl2YXIgZW5kOw0K CXN0cj1zdHIudG9TdHJpbmcoKTsNCgl2YXIgbGVuPXN0ci5sZW5ndGg7DQoJZm9y IChzdGFydD0wOyBzdGFydCA8IGxlbjsgc3RhcnQrKykNCgl7DQoJCWlmIChzdHIu Y2hhckF0KHN0YXJ0KSAhPScgJykNCgkJCWJyZWFrOw0KCX0NCglpZiAoc3RhcnQ9 PWxlbikNCgkJcmV0dXJuICIiOw0KCWZvciAoZW5kPWxlbiAtIDE7IGVuZCA+IHN0 YXJ0OyBlbmQgLS0pDQoJew0KCQlpZiAoc3RyLmNoYXJBdChlbmQpICE9JyAnKQ0K CQkJYnJlYWs7DQoJfQ0KCWVuZCsrOw0KCXJldHVybiBzdHIuc3Vic3RyaW5nKHN0 YXJ0LCBlbmQpOw0KfQ0KZnVuY3Rpb24gVHJpbVdoaXRlU3BhY2VzKCBzdHIgKQ0K ew0KCXZhciBzdGFydDsNCgl2YXIgZW5kOw0KCXN0cj1zdHIudG9TdHJpbmcoKTsN Cgl2YXIgbGVuPXN0ci5sZW5ndGg7DQoJZm9yIChzdGFydD0wOyBzdGFydCA8IGxl bjsgc3RhcnQrKykNCgl7DQoJCWNoPXN0ci5jaGFyQXQoc3RhcnQpOw0KCQlpZiAo Y2ghPScgJyAmJiBjaCE9J1x0JyAmJiBjaCE9J1xuJyAmJiBjaCE9J1xyJyAmJiBj aCE9J1xmJykNCgkJCWJyZWFrOw0KCX0NCglpZiAoc3RhcnQ9PWxlbikNCgkJcmV0 dXJuICIiOw0KCWZvciAoZW5kPWxlbiAtIDE7IGVuZCA+IHN0YXJ0OyBlbmQgLS0p DQoJew0KCQljaD1zdHIuY2hhckF0KGVuZCk7DQoJCWlmIChjaCE9JyAnICYmIGNo IT0nXHQnICYmIGNoIT0nXG4nICYmIGNoIT0nXHInICYmIGNoIT0nXGYnKQ0KCQkJ YnJlYWs7DQoJfQ0KCWVuZCsrOw0KCXJldHVybiBzdHIuc3Vic3RyaW5nKHN0YXJ0 LCBlbmQpOw0KfQ0KZnVuY3Rpb24gR2V0QXR0cmlidXRlRnJvbUl0ZW1UYWJsZShp dGVtVGFibGUsIHN0ckF0dHJpYnV0ZU5hbWUsIHN0ckF0dHJpYnV0ZU9sZE5hbWUp DQp7DQoJdmFyIGF0dHJWYWx1ZT1pdGVtVGFibGUgIT1udWxsID8gaXRlbVRhYmxl LmdldEF0dHJpYnV0ZShzdHJBdHRyaWJ1dGVOYW1lKSA6IG51bGw7DQoJaWYgKGF0 dHJWYWx1ZT09bnVsbCAmJiBpdGVtVGFibGUgIT1udWxsICYmIHN0ckF0dHJpYnV0 ZU9sZE5hbWUhPW51bGwpDQoJCWF0dHJWYWx1ZT1pdGVtVGFibGUuZ2V0QXR0cmli dXRlKHN0ckF0dHJpYnV0ZU9sZE5hbWUpOw0KCXJldHVybiBhdHRyVmFsdWU7DQp9 DQpmdW5jdGlvbiBHZXREaWFncmFtTGF1bmNoSW5zdGFsbGVkKCkNCnsNCgl2YXIg b2JqRGlhZ3JhbUxhdW5jaDsNCgl2YXIgYkZsYWc9ZmFsc2U7DQoJdHJ5DQoJew0K CQlvYmpEaWFncmFtTGF1bmNoPW5ldyBBY3RpdmVYT2JqZWN0KCJEaWFncmFtTGF1 bmNoLkRpYWdyYW1MYXVuY2hlciIpOw0KCQl2YXIgc3RyQXBwTmFtZTsNCgkJc3Ry QXBwTmFtZT1vYmpEaWFncmFtTGF1bmNoLkVuc3VyZURpYWdyYW1BcHBsaWNhdGlv bigpOw0KCX0NCgljYXRjaCAoZSkNCgl7DQoJCW9iakRpYWdyYW1MYXVuY2g9bnVs bDsNCgl9DQoJcmV0dXJuIHN0ckFwcE5hbWU7DQp9DQpmdW5jdGlvbiBTaG93TXRn TmF2aWdhdG9yUGFuZSgpDQp7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIk1l ZXRpbmdOYXZpZ2F0b3JQYW5lIikuc3R5bGUuZGlzcGxheT0iYmxvY2siOw0KfQ0K ZnVuY3Rpb24gSGlkZU10Z05hdmlnYXRvclBhbmUoKQ0Kew0KCWRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJNZWV0aW5nTmF2aWdhdG9yUGFuZSIpLnN0eWxlLmRpc3Bs YXk9Im5vbmUiOw0KfQ0KZnVuY3Rpb24gR2V0TXVsdGlwbGVVcGxvYWRFbmFibGVk KCkNCnsNCgl0cnkNCgl7DQoJCWlmIChicm93c2VyaXMuaWU1dXAgJiYgIWJyb3dz ZXJpcy5tYWMgJiYgKG5ldyBBY3RpdmVYT2JqZWN0KCdTVFNVcGxkLlVwbG9hZEN0 bCcpKSkNCgkJCXJldHVybiB0cnVlOw0KCX0NCgljYXRjaChlKQ0KCXsNCgl9DQoJ cmV0dXJuIGZhbHNlOw0KfQ0KZnVuY3Rpb24gU2V0VXBsb2FkUGFnZVRpdGxlKCkN CnsNCglpZiAoR2V0VXJsS2V5VmFsdWUoIlR5cGUiKT09MSkNCgl7DQoJCWRvY3Vt ZW50LnRpdGxlPUxfTmV3Rm9ybUNsaWNrT25jZTFfVGV4dDsNCgkJaWYgKGJyb3dz ZXJpcy5pZSB8fCBicm93c2VyaXMubmF2NnVwKQ0KCQl7DQoJCQl2YXIgdGl0bGVF bHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZXRpZFRleHRUaXRsZSIpOw0K CQkJaWYgKHRpdGxlRWx0ICE9bnVsbCkNCgkJCQl0aXRsZUVsdC5pbm5lckhUTUw9 TF9OZXdGb3JtQ2xpY2tPbmNlMV9UZXh0Ow0KCQl9DQoJfQ0KfQ0KZnVuY3Rpb24g R2V0U2VsZWN0ZWRWYWx1ZSAoZnJtRWxlbSkgew0KCWlmIChmcm1FbGVtICYmIChm cm1FbGVtLnNlbGVjdGVkSW5kZXggPi0xKSkgew0KCQlyZXR1cm4gZnJtRWxlbS5v cHRpb25zW2ZybUVsZW0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCgl9DQoJZWxzZQ0K CQlyZXR1cm4gIiI7DQp9DQpmdW5jdGlvbiBHZXRTZWxlY3RlZFRleHQoZnJtRWxl bSkgew0KCWlmIChmcm1FbGVtICYmIChmcm1FbGVtLnNlbGVjdGVkSW5kZXggPi0x KSkgew0KCQlyZXR1cm4gZnJtRWxlbS5vcHRpb25zW2ZybUVsZW0uc2VsZWN0ZWRJ bmRleF0udGV4dA0KCX0NCgllbHNlDQoJCXJldHVybiAiIjsNCn0NCmZ1bmN0aW9u IE10Z1Nob3dUaW1lWm9uZSgpDQp7DQoJaWYgKEdldENvb2tpZSgiTXRnVGltZVpv bmUiKT09IjEiKQ0KCXsNCgkJTXRnVG9nZ2xlVGltZVpvbmUoKTsNCgl9DQp9DQpm dW5jdGlvbiBGb3JtYXREYXRlKHNEYXRlLCBzVGltZSwgZURhdGUsIGVUaW1lKQ0K ew0KCXZhciBMX0RhdGVfVGV4dD0iPGI+RGF0dW06PC9iPiI7DQoJdmFyIExfVGlt ZV9UZXh0PSI8Yj7EjGFzOjwvYj4iOw0KCXZhciBMX0RhdGVTZXBhcmF0b3I9IiAt ICI7DQoJaWYoYnJvd3NlcmlzLndpbjMyICYmIHNEYXRlPT1lRGF0ZSkNCgkJTF9E YXRlU2VwYXJhdG9yPSIgLVx1MjAwZSAiOw0KCWlmIChzRGF0ZT09ZURhdGUpDQoJ ew0KCQlkb2N1bWVudC53cml0ZShMX0RhdGVfVGV4dCsiICIrc0RhdGUpOw0KCQlp ZiAoc1RpbWUgIT1lVGltZSkNCgkJCWRvY3VtZW50LndyaXRlKCIgIitMX1RpbWVf VGV4dCsiICIrc1RpbWUrTF9EYXRlU2VwYXJhdG9yK2VUaW1lKTsNCgkJZWxzZQ0K CQkJZG9jdW1lbnQud3JpdGUoIiAiK0xfVGltZV9UZXh0KyIgIitzVGltZSk7DQoJ fQ0KCWVsc2UNCgl7DQoJCWRvY3VtZW50LndyaXRlKExfRGF0ZV9UZXh0KyIgIitz RGF0ZSsiICgiK3NUaW1lKyIpIitMX0RhdGVTZXBhcmF0b3IrZURhdGUrIiAoIitl VGltZSsiKSIpOw0KCX0NCn0NCmZ1bmN0aW9uIEdldEFsZXJ0VGV4dChpc0RldGFj aGVkKQ0Kew0KCXZhciBMX0RFVEFDSEVEU0lOR0xFRVhDRVBUX1RleHQ9IlRvdG8g ZGF0dW0gc2Noxa96a3kgamnFviBuZW7DrSBwxZlpZHJ1xb5lbm8ga2Ugc2Noxa96 Y2UgdiBrYWxlbmTDocWZaSBhIHYgcGzDoW5vdmFjw61tIHByb2dyYW11LiBCdcSP IGJ5bG8gdG90byBkYXR1bSBzY2jFr3preSB6cnXFoWVubywgbmVibyBieWwgeiBu YXBsw6Fub3ZhbsOpIHNjaMWvemt5IG9kZWJyw6FuIG9ka2F6IG5hIGNlbnRydW0u IjsNCgl2YXIgTF9ERVRBQ0hFRENBTkNFTExFREVYQ0VQVF9UZXh0PSJUb3RvIGRh dHVtIHNjaMWvemt5IGJ5bG8gdiBrYWxlbmTDocWZaSBhIHYgcGzDoW5vdmFjw61t IHByb2dyYW11IHpydcWhZW5vLiBDaGNldGUtbGkgemFkYXQsIGNvIG3DoSBiw710 IHByb3ZlZGVubyBzIHDFmWlkcnXFvmVuw71taSBpbmZvcm1hY2VtaSB2IGNlbnRy dSwgcG9zdHVwdWp0ZSB0YWt0bzogViBwb2Rva27EmyDFmGFkYSBzY2jFr3playB1 a2HFvnRlIG5hIGRhdHVtIHNjaMWvemt5IGEgdiByb3piYWxvdmFjw61tIHNlem5h bXUgdnliZXJ0ZSBtb8W+bm9zdCBaYWNob3ZhdCwgT2RzdHJhbml0IG5lYm8gUMWZ ZXN1bm91dC4iOw0KCXZhciBMX0RFVEFDSEVEVU5MSU5LRURTSU5HTEVfVGV4dD0i VG90byBkYXR1bSBzY2jFr3preSBqacW+IG5lbsOtIHDFmWlwb2plbm8gayBwxZlp ZHJ1xb5lbsOpIHNjaMWvemNlIHYga2FsZW5kw6HFmWkgYSB2IHBsw6Fub3ZhY8Ot bSBwcm9ncmFtdS4gQ2hjZXRlLWxpIHphZGF0LCBjbyBtw6EgYsO9dCBwcm92ZWRl bm8gcyBwxZlpZHJ1xb5lbsO9bWkgaW5mb3JtYWNlbWkgdiBjZW50cnUsIHBvc3R1 cHVqdGUgdGFrdG86IFYgcG9kb2tuxJsgxZhhZGEgc2Noxa96ZWsgdWthxb50ZSBu YSBkYXR1bSBzY2jFr3preSBhIHYgcm96YmFsb3ZhY8OtbSBzZXpuYW11IHZ5YmVy dGUgbW/Fvm5vc3QgWmFjaG92YXQsIE9kc3RyYW5pdCBuZWJvIFDFmWVzdW5vdXQu IjsNCgl2YXIgTF9ERVRBQ0hFRENBTkNFTExFRFNFUklFU19UZXh0PSJUYXRvIMWZ YWRhIHNjaMWvemVrIGJ5bGEgdiBrYWxlbmTDocWZaSBhIHYgcGzDoW5vdmFjw61t IHByb2dyYW11IHpydcWhZW5hLiI7DQoJdmFyIExfREVUQUNIRURVTkxJTktFRFNF UklFU19UZXh0PSJUYXRvIMWZYWRhIHNjaMWvemVrIGppxb4gbmVuw60gcMWZaXBv amVuYSBrIHDFmWlkcnXFvmVuw6kgxZlhZMSbIHNjaMWvemVrIHYga2FsZW5kw6HF mWkgYSB2IHBsw6Fub3ZhY8OtbSBwcm9ncmFtdS4gQ2VudHJ1bSBsemUgemFjaG92 YXQgbmVibyBvZHN0cmFuaXQuIFBva3VkIGNlbnRydW0gemFjaG92w6F0ZSwgbmVi dWRlIG1vxb5uw6kgamVqIHDFmWlwb2ppdCBrIGppbsOpIG5hcGzDoW5vdmFuw6kg c2Noxa96Y2UuIjsNCgl2YXIgTF9ERVRBQ0hFRFNFUklFU05PV1NJTkdMRV9UZXh0 PSJUYXRvIHNjaMWvemthIGJ5bGEgdiBrYWxlbmTDocWZaSBhIHYgcGzDoW5vdmFj w61tIHByb2dyYW11IHptxJtuxJtuYSB6IG9wYWtvdmFuw6kgc2Noxa96a3kgbmEg bmVvcGFrdWrDrWPDrSBzZS4gQ2VudHJ1bSBsemUgemFjaG92YXQgbmVibyBvZHN0 cmFuaXQuIFBva3VkIGNlbnRydW0gemFjaG92w6F0ZSwgbmVidWRlIG1vxb5uw6kg amVqIHDFmWlwb2ppdCBrIGppbsOpIG5hcGzDoW5vdmFuw6kgc2Noxa96Y2UuIjsN Cgl2YXIgTF9ERVRBQ0hFRFNJTkdMRU5PV1NFUklFU19UZXh0PSJUYXRvIHNjaMWv emthIGJ5bGEgdiBrYWxlbmTDocWZaSBhIHYgcGzDoW5vdmFjw61tIHByb2dyYW11 IHptxJtuxJtuYSB6IG5lb3Bha3Vqw61jw60gc2Ugc2Noxa96a3kgbmEgb3Bha292 YW5vdS4gQWt0dcOhbG7DrSBjZW50cnVtIG5lcG9kcG9ydWplIG9wYWtvdmFub3Ug c2Noxa96a3UuIFYgcGzDoW5vdmFjw61tIHByb2dyYW11IG9kcG9qdGUgc2Noxa96 a3Ugb2QgY2VudHJhIGEgcGFrIHNjaMWvemt1IHpub3Z1IHDFmWlwb2p0ZSBrIG5v dsOpbXUgY2VudHJ1LiBOb3bDqSBjZW50cnVtIGJ1ZGUgYXV0b21hdGlja3kgcG9k cG9yb3ZhdCBvcGFrb3Zhbm91IHNjaMWvemt1LiI7DQoJdmFyIExfREVUQUNIRURO T05HUkVHT1JJQU5DQUxfVGV4dD0iU2Noxa96a2EgYnlsYSB2eXR2b8WZZW5hIHBv bW9jw60ga2FsZW5kw6HFmWUgYSBwbMOhbm92YWPDrWhvIHByb2dyYW11LCBrdGVy w70gcG9kcG9ydWplIHBvdXplIGFrdHVhbGl6YWNlIMWZYWQgdiBDZW50cnUgc2No xa96ZWsuIFptxJtueSBwcm92ZWRlbsOpIHYgdG9tdG8gcHJvZ3JhbXUgdSBqZWRu b3RsaXbDvWNoIHbDvXNreXTFryBzY2jFr3playBzZSB2IGNlbnRydSBuZXpvYnJh esOtLiI7DQoJdmFyIExfREVUQUNIRURQQVNURVhDUE1PRElGSUVEX1RleHQ9IlRh dG8gdXBseW51bMOhIHNjaMWvemthIGJ5bGEgdiBrYWxlbmTDocWZaSBhIHYgcGzD oW5vdmFjw61tIHByb2dyYW11IHptxJtuxJtuYSBuZWJvIHpydcWhZW5hLiBDaGNl dGUtbGkgemFjaG92YXQsIG9kc3RyYW5pdCBuZWJvIHDFmWVzdW5vdXQgdHV0byBz Y2jFr3prdSB2IGNlbnRydSwgcG91xb5panRlIHJvemV2w61yYWPDrSBzZXpuYW0g dmVkbGUgamVqw61obyBkYXRhIHYgcG9kb2tuxJsgxZhhZGEgc2Noxa96ZWsuIFBv a3VkIGNoY2V0ZSB2IGNlbnRydSBha3R1YWxpem92YXQgaW5mb3JtYWNlIG8gcGzD oW5vdsOhbsOtIHTDqXRvIHNjaMWvemt5LCBha3R1YWxpenVqdGUgdHV0byBrb25r csOpdG7DrSBzY2jFr3prdSBwb21vY8OtIHBsw6Fub3ZhY8OtaG8gcHJvZ3JhbXUu IjsNCgl2YXIgaG93T3JwaGFuZWQ9aXNEZXRhY2hlZCAmICgweDEwIC0gMSk7DQoJ dmFyIGhvd0RldGFjaGVkPWlzRGV0YWNoZWQgLSBob3dPcnBoYW5lZDsNCglpZiAo aG93T3JwaGFuZWQpDQoJew0KCQlzd2l0Y2ggKGhvd09ycGhhbmVkKQ0KCQl7DQoJ CQljYXNlIDE6CXJldHVybiAoZ19tZWV0aW5nQ291bnQ9PTEpID8gTF9ERVRBQ0hF RFNJTkdMRUVYQ0VQVF9UZXh0IDogTF9ERVRBQ0hFRENBTkNFTExFREVYQ0VQVF9U ZXh0Ow0KCQkJY2FzZSAyOglyZXR1cm4gTF9ERVRBQ0hFRENBTkNFTExFRFNFUklF U19UZXh0Ow0KCQkJY2FzZSAzOiByZXR1cm4gTF9ERVRBQ0hFRENBTkNFTExFREVY Q0VQVF9UZXh0Ow0KCQkJY2FzZSA0OglyZXR1cm4gKGdfbWVldGluZ0NvdW50PT0x KSA/IExfREVUQUNIRURTSU5HTEVFWENFUFRfVGV4dCA6IExfREVUQUNIRURVTkxJ TktFRFNJTkdMRV9UZXh0Ow0KCQkJY2FzZSA1OglyZXR1cm4gTF9ERVRBQ0hFRFVO TElOS0VEU0VSSUVTX1RleHQ7DQoJCQljYXNlIDY6CXJldHVybiBMX0RFVEFDSEVE U0VSSUVTTk9XU0lOR0xFX1RleHQ7DQoJCQljYXNlIDc6CXJldHVybiBMX0RFVEFD SEVEU0lOR0xFTk9XU0VSSUVTX1RleHQ7DQoJCQljYXNlIDg6CXJldHVybiBMX0RF VEFDSEVEUEFTVEVYQ1BNT0RJRklFRF9UZXh0Ow0KCQl9DQoJfQ0KCWVsc2UgaWYg KGhvd0RldGFjaGVkKQ0KCXsNCgkJc3dpdGNoIChob3dEZXRhY2hlZCkNCgkJew0K CQkJY2FzZSAxNjogcmV0dXJuIExfREVUQUNIRUROT05HUkVHT1JJQU5DQUxfVGV4 dDsNCgkJfQ0KCX0NCglyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIHJldHJpZXZl Q3VycmVudFRoZW1lTGluaygpDQp7DQoJdmFyIGNzc0xpbms7DQoJdmFyIGxpbmtz PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIik7DQoJZm9yKHZh ciBpPTA7IGk8bGlua3MubGVuZ3RoOyBpKyspDQoJew0KCQlpZigobGlua3NbaV0u dHlwZT09InRleHQvY3NzIikgJiYgKGxpbmtzW2ldLmlkPT0ib25ldGlkVGhlbWVD U1MiKSkNCgkJCWNzc0xpbms9bGlua3NbaV07DQoJfQ0KCWlmKGNzc0xpbmspDQoJ ew0KCQl2YXIgcmU9LyhcLlwuXC8pKy87DQoJCXZhciByZWxhdGl2ZVVSTD1jc3NM aW5rLmhyZWY7DQoJCXZhciBuZXdVUkw9cmVsYXRpdmVVUkwucmVwbGFjZShyZSwg Ii8iKTsNCgkJcmV0dXJuIG5ld1VSTDsNCgl9DQp9DQpmdW5jdGlvbiBTdEJ1aWxk UGFyYW0oc3RQYXR0ZXJuKQ0Kew0KCXZhciByZTsNCgl2YXIgaTsNCglmb3IgKGk9 MTsgaSA8IFN0QnVpbGRQYXJhbS5hcmd1bWVudHMubGVuZ3RoOyBpKyspDQoJCXsN CgkJcmU9bmV3IFJlZ0V4cCgiXFxeIitpKTsNCgkJc3RQYXR0ZXJuPXN0UGF0dGVy bi5yZXBsYWNlKHJlLCBTdEJ1aWxkUGFyYW0uYXJndW1lbnRzW2ldKTsNCgkJfQ0K CXJldHVybiBzdFBhdHRlcm47DQp9DQpKU1JlcXVlc3Q9ew0KCVF1ZXJ5U3RyaW5n IDogbnVsbCwNCglGaWxlTmFtZSA6IG51bGwsDQoJUGF0aE5hbWUgOiBudWxsLA0K CUVuc3VyZVNldHVwIDogZnVuY3Rpb24oKQ0KCXsNCgkJaWYgKEpTUmVxdWVzdC5R dWVyeVN0cmluZyAhPW51bGwpIHJldHVybjsNCgkJSlNSZXF1ZXN0LlF1ZXJ5U3Ry aW5nPW5ldyBBcnJheSgpOw0KCQl2YXIgcXVlcnlTdHJpbmc9d2luZG93LmxvY2F0 aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7DQoJCXZhciBwYWlycz1xdWVyeVN0cmlu Zy5zcGxpdCgiJiIpOw0KCQlmb3IgKHZhciBpPTA7aTxwYWlycy5sZW5ndGg7aSsr KQ0KCQl7DQoJCQl2YXIgcD1wYWlyc1tpXS5pbmRleE9mKCI9Iik7DQoJCQlpZiAo cCA+IC0xKQ0KCQkJew0KCQkJCXZhciBrZXk9cGFpcnNbaV0uc3Vic3RyaW5nKDAs cCk7DQoJCQkJdmFyIHZhbHVlPXBhaXJzW2ldLnN1YnN0cmluZyhwKzEpOw0KCQkJ CUpTUmVxdWVzdC5RdWVyeVN0cmluZ1trZXldPXZhbHVlOw0KCQkJfQ0KCQl9DQoJ CXZhciBwYXRoPUpTUmVxdWVzdC5QYXRoTmFtZT13aW5kb3cubG9jYXRpb24ucGF0 aG5hbWU7DQoJCXZhciBwPXBhdGgubGFzdEluZGV4T2YoIi8iKTsNCgkJaWYgKHAg PiAtMSkNCgkJew0KCQkJSlNSZXF1ZXN0LkZpbGVOYW1lPXBhdGguc3Vic3RyaW5n KHArMSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlKU1JlcXVlc3QuUGFnZU5hbWU9 cGF0aDsNCgkJfQ0KCX0NCn07DQp2YXIgRXhwR3JvdXBXUExpc3ROYW1lPSJXU1Nf RXhwR3JvdXBXUExpc3QiOw0KdmFyIEV4cEdyb3VwQ29va2llUHJlZml4PSJXU1Nf RXhwR3JvdXBfIjsNCnZhciBFeHBHcm91cENvb2tpZURlbGltaXRlcj0iJiI7DQp2 YXIgRXhwR3JvdXBNYXhXUD0xMTsNCnZhciBFeHBHcm91cE1heENvb2tpZUxlbmd0 aD0zOTYwOw0KdmFyIGdfRXhwR3JvdXBRdWV1ZT1uZXcgQXJyYXkoKTsNCnZhciBn X0V4cEdyb3VwSW5Qcm9ncmVzcz1mYWxzZTsNCnZhciBnX0V4cEdyb3VwVGFibGU9 bmV3IEFycmF5KCk7DQp2YXIgZ19FeHBHcm91cE5lZWRzU3RhdGU9ZmFsc2U7DQp2 YXIgZ19FeHBHcm91cFBhcnNlU3RhZ2U9ZmFsc2U7DQpmdW5jdGlvbiBFeHBDb2xs R3JvdXAoZ3JvdXBOYW1lLCBpbWdOYW1lKQ0Kew0KCWlmIChkb2N1bWVudC5nZXRF bGVtZW50QnlJZCgidGl0bCIrZ3JvdXBOYW1lKT09bnVsbCkNCgkJcmV0dXJuOw0K CXZpZXdUYWJsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGl0bCIrZ3JvdXBO YW1lKS5wYXJlbnROb2RlOw0KCWlmICh2aWV3VGFibGU9PW51bGwpDQoJCXJldHVy bjsNCgl0Ym9keVRhZ3M9dmlld1RhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJU Qk9EWSIpOw0KCW51bUVsdHM9dGJvZHlUYWdzLmxlbmd0aDsNCglsZW49Z3JvdXBO YW1lLmxlbmd0aDsNCglpbWc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW1nTmFt ZSk7DQoJaWYgKGltZz09bnVsbCkNCgkJcmV0dXJuOw0KCXNyY1BhdGg9aW1nLnNy YzsNCglpbmRleD1zcmNQYXRoLmxhc3RJbmRleE9mKCIvIik7DQoJaW1nTmFtZT1z cmNQYXRoLnNsaWNlKGluZGV4KzEpOw0KCXZhciBmT3Blbj1mYWxzZTsNCglpZiAo aW1nTmFtZT09J3BsdXMuZ2lmJykNCgl7DQoJCWZPcGVuPXRydWU7DQoJCWRpc3Bs YXlTdHI9IiI7DQoJCWltZy5zcmM9Jy9fbGF5b3V0cy9pbWFnZXMvbWludXMuZ2lm JzsNCgl9DQoJZWxzZQ0KCXsNCgkJZk9wZW49ZmFsc2U7DQoJCWRpc3BsYXlTdHI9 Im5vbmUiOw0KCQlpbWcuc3JjPScvX2xheW91dHMvaW1hZ2VzL3BsdXMuZ2lmJzsN Cgl9DQoJZm9yICh2YXIgaT0wO2k8bnVtRWx0cztpKyspDQoJew0KCQl2YXIgY2hp bGRPYmo9dGJvZHlUYWdzW2ldOw0KCQlpZiAoIChjaGlsZE9iai5pZCAhPW51bGwp DQoJCQkJCSYmIChjaGlsZE9iai5pZC5sZW5ndGggPiBsZW4rNCkNCgkJCQkJJiYg KGdyb3VwTmFtZT09Y2hpbGRPYmouaWQuc2xpY2UoNCkuc3Vic3RyKDAsbGVuKSkg KQ0KCQl7DQoJCQlpZiAoZk9wZW4pDQoJCQl7DQoJCQkJaW5kZXg9Y2hpbGRPYmou aWQuaW5kZXhPZigiXyIsIGxlbis0KTsNCgkJCQlpZiAoaW5kZXghPS0xKQ0KCQkJ CXsNCgkJCQkJaW5kZXg9Y2hpbGRPYmouaWQuaW5kZXhPZigiXyIsIGluZGV4KzEp Ow0KCQkJCQlpZiAoaW5kZXghPS0xKQ0KCQkJCQkJY29udGludWU7DQoJCQkJfQ0K CQkJfQ0KCQkJY2hpbGRPYmouc3R5bGUuZGlzcGxheT1kaXNwbGF5U3RyOw0KCQkJ aWYgKGZPcGVuICYmIGNoaWxkT2JqLmlkLnN1YnN0cigwLDQpPT0idGl0bCIpDQoJ CQl7DQoJCQkJaW1nT2JqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWdfIitj aGlsZE9iai5pZC5zbGljZSg0KSk7DQoJCQkJaW1nT2JqLnNyYz0nL19sYXlvdXRz L2ltYWdlcy9wbHVzLmdpZic7DQoJCQl9DQoJCX0NCgl9DQoJaWYgKCFnX0V4cEdy b3VwUGFyc2VTdGFnZSkNCgl7DQoJCWlmIChnX0V4cEdyb3VwTmVlZHNTdGF0ZSAm JiBFeHBHcm91cEZldGNoV2ViUGFydElEKGdyb3VwTmFtZSkgIT1udWxsKQ0KCQl7 DQoJCQlpZiAoZk9wZW4pDQoJCQl7DQoJCQkJQWRkR3JvdXBUb0Nvb2tpZShncm91 cE5hbWUpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCVJlbW92ZUdyb3VwRnJv bUNvb2tpZShncm91cE5hbWUpOw0KCQkJfQ0KCQl9DQoJCWlmIChmT3BlbikNCgkJ ew0KCQkJdGJvZHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRib2QiK2dyb3Vw TmFtZSsiXyIpOw0KCQkJaWYgKHRib2R5ICE9bnVsbCkNCgkJCXsNCgkJCQlpc0xv YWRlZD10Ym9keS5nZXRBdHRyaWJ1dGUoImlzTG9hZGVkIik7DQoJCQkJaWYgKGlz TG9hZGVkPT0iZmFsc2UiKQ0KCQkJCXsNCgkJCQkJRXhwR3JvdXBGZXRjaERhdGEo Z3JvdXBOYW1lKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBF eHBHcm91cEZldGNoRGF0YShncm91cE5hbWUpDQp7DQoJdmFyIGxvYWRTdHJpbmc9 Ijx0cj48dGQ+PC90ZD48dGQgY2xhc3M9XCJtcy1nYmxvYWRcIj4iK0xfTG9hZGlu Z19UZXh0KyI8L3RkPjwvdHI+IjsNCglFeHBHcm91cFJlbmRlckRhdGEobG9hZFN0 cmluZywgZ3JvdXBOYW1lLCAiZmFsc2UiKTsNCglpZiAoIWdfRXhwR3JvdXBJblBy b2dyZXNzKQ0KCXsNCgkJdmFyIGdyb3VwU3RyaW5nPUV4cEdyb3VwRmV0Y2hHcm91 cFN0cmluZyhncm91cE5hbWUpOw0KCQlpZiAoZ3JvdXBTdHJpbmc9PW51bGwpDQoJ CXsNCgkJCXZhciBsb2FkU3RyaW5nPSI8dHI+PHRkPjwvdGQ+PHRkIGNsYXNzPVwi bXMtZ2Jsb2FkXCI+IitMX0xvYWRpbmdfRXJyb3JfVGV4dCsiPC90ZD48L3RyPiI7 DQoJCQlFeHBHcm91cFJlbmRlckRhdGEobG9hZFN0cmluZywgZ3JvdXBOYW1lLCAi ZmFsc2UiKTsNCgkJCWlmIChnX0V4cEdyb3VwUXVldWUubGVuZ3RoID4gMCkNCgkJ CXsNCgkJCQlFeHBHcm91cEZldGNoRGF0YShnX0V4cEdyb3VwUXVldWUuc2hpZnQo KSk7DQoJCQl9DQoJCQlyZXR1cm47DQoJCX0NCgkJZ19FeHBHcm91cEluUHJvZ3Jl c3M9dHJ1ZTsNCgkJaWYgKCFFeHBHcm91cENhbGxTZXJ2ZXIoZ3JvdXBTdHJpbmcs IGdyb3VwTmFtZSkpDQoJCXsNCgkJCWlmIChnX0V4cEdyb3VwUXVldWUubGVuZ3Ro ID4gMCkNCgkJCXsNCgkJCQlFeHBHcm91cEZldGNoRGF0YShnX0V4cEdyb3VwUXVl dWUuc2hpZnQoKSk7DQoJCQl9DQoJCX0NCgl9DQoJZWxzZQ0KCXsNCgkJZ19FeHBH cm91cFF1ZXVlLnB1c2goZ3JvdXBOYW1lKTsNCgl9DQp9DQpmdW5jdGlvbiBFeHBH cm91cENhbGxTZXJ2ZXIoZ3JvdXBTdHJpbmcsIGdyb3VwTmFtZSkNCnsNCgl2YXIg d2ViUGFydElEPUV4cEdyb3VwRmV0Y2hXZWJQYXJ0SUQoZ3JvdXBOYW1lKTsNCglp ZiAod2ViUGFydElEICE9bnVsbCkNCgl7DQoJCXZhciBmdW5jdGlvbk5hbWU9IkV4 cEdyb3VwQ2FsbFNlcnZlciIrd2ViUGFydElEOw0KCQl2YXIgZnVuY3Rpb25DYWxs PWZ1bmN0aW9uTmFtZSsiKCciK2dyb3VwU3RyaW5nKyInLCciK2dyb3VwTmFtZSsi JykiOw0KCQlldmFsKGZ1bmN0aW9uQ2FsbCk7DQoJfQ0KfQ0KZnVuY3Rpb24gRXhw R3JvdXBSZWNlaXZlRGF0YShodG1sVG9SZW5kZXIsIGdyb3VwTmFtZSkNCnsNCgl2 YXIgY3R4SWQ9ImN0eCIrZ3JvdXBOYW1lLnN1YnN0cmluZygwLCBncm91cE5hbWUu aW5kZXhPZigiLSIpKTsNCgl2YXIgaW5kZXhCZWdpbkNUWE5hbWU9aHRtbFRvUmVu ZGVyLmluZGV4T2YoIkNUWE5hbWU9XCIiKTsNCglpZiAoaW5kZXhCZWdpbkNUWE5h bWUgIT0tMSkNCgl7DQoJCWlmIChjdHhJZCAhPSJjdHgxIikNCgkJew0KCQkJaHRt bFRvUmVuZGVyPWh0bWxUb1JlbmRlci5yZXBsYWNlKC8gQ1RYTmFtZT1cImN0eDFc IiAvZywgIiBDVFhOYW1lPVwiIitjdHhJZCsiXCIgIik7DQoJCX0NCgl9DQoJdmFy IG5lZWRPdXRlcldyYXA9ZmFsc2U7DQoJaWYgKGh0bWxUb1JlbmRlci5sZW5ndGgg PCA0KQ0KCXsNCgkJbmVlZE91dGVyV3JhcD10cnVlOw0KCX0NCgllbHNlIGlmICho dG1sVG9SZW5kZXIuc3Vic3RyaW5nKDAsMykgIT0iPHRyIikNCgl7DQoJCW5lZWRP dXRlcldyYXA9dHJ1ZTsNCgl9DQoJaWYgKG5lZWRPdXRlcldyYXApDQoJew0KCQlo dG1sVG9SZW5kZXI9IjxUUj48VEQ+IitodG1sVG9SZW5kZXIrIjwvVEQ+PC9UUj4i Ow0KCX0NCglFeHBHcm91cFJlbmRlckRhdGEoaHRtbFRvUmVuZGVyLCBncm91cE5h bWUsICJ0cnVlIik7DQoJZ19FeHBHcm91cEluUHJvZ3Jlc3M9ZmFsc2U7DQoJaWYg KGdfRXhwR3JvdXBRdWV1ZS5sZW5ndGggPiAwKQ0KCXsNCgkJRXhwR3JvdXBGZXRj aERhdGEoZ19FeHBHcm91cFF1ZXVlLnNoaWZ0KCkpOw0KCX0NCn0NCmZ1bmN0aW9u IEV4cEdyb3VwUmVuZGVyRGF0YShodG1sVG9SZW5kZXIsIGdyb3VwTmFtZSwgaXNM b2FkZWQpDQp7DQoJdmFyIHRib2R5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0 Ym9kIitncm91cE5hbWUrIl8iKTsNCgl2YXIgd3JhcERpdj1kb2N1bWVudC5jcmVh dGVFbGVtZW50KCJESVYiKTsNCgl3cmFwRGl2LmlubmVySFRNTD0iPFRBQkxFPjxU Qk9EWSBpZD1cInRib2QiKwkJCWdyb3VwTmFtZSsiX1wiIGlzTG9hZGVkPVwiIitp c0xvYWRlZCsJCQkiXCI+IitodG1sVG9SZW5kZXIrIjwvVEJPRFk+PC9UQUJMRT4i Ow0KCXRib2R5LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHdyYXBEaXYuZmlyc3RD aGlsZC5maXJzdENoaWxkLHRib2R5KTsNCn0NCmZ1bmN0aW9uIEV4cEdyb3VwRmV0 Y2hHcm91cFN0cmluZyhncm91cE5hbWUpDQp7DQoJdGl0bFRib2R5PWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJ0aXRsIitncm91cE5hbWUpOw0KCWlmICh0aXRsVGJv ZHk9PW51bGwpDQoJew0KCQlyZXR1cm4gbnVsbDsNCgl9DQoJZWxzZQ0KCXsNCgkJ dmFyIGdyb3VwU3RyaW5nPXRpdGxUYm9keS5nZXRBdHRyaWJ1dGUoImdyb3VwU3Ry aW5nIik7DQoJCXJldHVybiBncm91cFN0cmluZzsNCgl9DQp9DQpmdW5jdGlvbiBF eHBHcm91cEZldGNoV2ViUGFydElEKGdyb3VwTmFtZSkNCnsNCgl2YXIgdmlld0Nv dW50ZXI9Z3JvdXBOYW1lLnN1YnN0cmluZygwLCBncm91cE5hbWUuaW5kZXhPZigi LSIpKTsNCgl2YXIgbG9va3VwRW50cnk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo Ikdyb3VwQnlXZWJQYXJ0SUQiK3ZpZXdDb3VudGVyKTsNCglpZiAobG9va3VwRW50 cnk9PW51bGwpDQoJCXJldHVybiBudWxsOw0KCXJldHVybiBsb29rdXBFbnRyeS5n ZXRBdHRyaWJ1dGUoIndlYlBhcnRJRCIpOw0KfQ0KZnVuY3Rpb24gUmVuZGVyQWN0 aXZlWChzdHIpDQp7DQoJZG9jdW1lbnQud3JpdGUoc3RyKTsNCn0NCmZ1bmN0aW9u IE9uSXRlbShlbG0pDQp7DQoJRGVmZXJDYWxsKCdPbkl0ZW1EZWZlckNhbGwnLCBl bG0pOw0KfQ0KZnVuY3Rpb24gT25MaW5rKGVsbSkNCnsNCglEZWZlckNhbGwoJ09u TGlua0RlZmVyQ2FsbCcsIGVsbSk7DQp9DQpmdW5jdGlvbiBNTVVfUG9wTWVudUlm U2hvd2luZyhtZW51RWxlbWVudCkNCnsNCglEZWZlckNhbGwoJ01NVV9Qb3BNZW51 SWZTaG93aW5nRGVmZXJDYWxsJywgbWVudUVsZW1lbnQpOw0KfQ0KZnVuY3Rpb24g T25Nb3VzZU92ZXJGaWx0ZXIoZWxtKQ0Kew0KCURlZmVyQ2FsbCgnT25Nb3VzZU92 ZXJGaWx0ZXJEZWZlckNhbGwnLCBlbG0pOw0KfQ0KZnVuY3Rpb24gTU1VX0VjYlRh YmxlTW91c2VPdmVyT3V0KGVjYlRhYmxlLCBmTW91c2VPdmVyKQ0Kew0KCURlZmVy Q2FsbCgnTU1VX0VjYlRhYmxlTW91c2VPdmVyT3V0RGVmZXJDYWxsJywgZWNiVGFi bGUsIGZNb3VzZU92ZXIpOw0KfQ0KZnVuY3Rpb24gT25Nb3VzZU92ZXJBZEhvY0Zp bHRlcihlbG0sIGZpZWxkU3RyKQ0Kew0KCURlZmVyQ2FsbCgnT25Nb3VzZU92ZXJB ZEhvY0ZpbHRlckRlZmVyQ2FsbCcsIGVsbSwgZmllbGRTdHIpOw0KfQ0KZnVuY3Rp b24gTU1VX0VjYkxpbmtPbkZvY3VzQmx1cihtZW51LCBlY2JMaW5rLCBmT25Gb2N1 cykNCnsNCglEZWZlckNhbGwoJ01NVV9FY2JMaW5rT25Gb2N1c0JsdXJEZWZlckNh bGwnLCBtZW51LCBlY2JMaW5rLCBmT25Gb2N1cyk7DQp9DQp2YXIgYkZpeFRleHRB bGlnbmZvckJpZGlDYWxsZWQ9ZmFsc2U7DQpmdW5jdGlvbiBGaXhUZXh0QWxpZ25G b3JCaWRpKHZhbHVlKQ0Kew0KCWlmICghYnJvd3NlcmlzLmllIHx8IGJGaXhUZXh0 QWxpZ25mb3JCaWRpQ2FsbGVkKQ0KCQlyZXR1cm47DQoJYkZpeFRleHRBbGlnbmZv ckJpZGlDYWxsZWQ9dHJ1ZTsNCgl2YXIgY1N0eWxlc2hlZXRzPWRvY3VtZW50LnN0 eWxlU2hlZXRzOw0KCWlmIChjU3R5bGVzaGVldHMgIT1udWxsKQ0KCXsNCgkJZm9y ICh2YXIgeD0wOyB4IDwgY1N0eWxlc2hlZXRzLmxlbmd0aDsgeCsrKSB7DQoJCQlp ZiAoKGNTdHlsZXNoZWV0c1t4XSAhPW51bGwpICYmIChjU3R5bGVzaGVldHNbeF0u cnVsZXMgIT1udWxsKSkNCgkJCXsNCgkJCQlmb3IgKHZhciB5PTA7IHkgPCBjU3R5 bGVzaGVldHNbeF0ucnVsZXMubGVuZ3RoOyB5KyspIHsNCgkJCQkJaWYgKGNTdHls ZXNoZWV0c1t4XS5ydWxlc1t5XS5zZWxlY3RvclRleHQ9PSIubXMtdmgiIHx8DQoJ CQkJCQljU3R5bGVzaGVldHNbeF0ucnVsZXNbeV0uc2VsZWN0b3JUZXh0PT0iLm1z LXZoMiIgfHwNCgkJCQkJCWNTdHlsZXNoZWV0c1t4XS5ydWxlc1t5XS5zZWxlY3Rv clRleHQ9PSIubXMtdmgtaWNvbiIgfHwNCgkJCQkJCWNTdHlsZXNoZWV0c1t4XS5y dWxlc1t5XS5zZWxlY3RvclRleHQ9PSIubXMtdmgtaWNvbi1lbXB0eSIgfHwNCgkJ CQkJCWNTdHlsZXNoZWV0c1t4XS5ydWxlc1t5XS5zZWxlY3RvclRleHQ9PSIubXMt dmgyLW5vZ3JhZCIgfHwNCgkJCQkJCWNTdHlsZXNoZWV0c1t4XS5ydWxlc1t5XS5z ZWxlY3RvclRleHQ9PSIubXMtdmgyLW5vZ3JhZC1pY29uIiB8fA0KCQkJCQkJY1N0 eWxlc2hlZXRzW3hdLnJ1bGVzW3ldLnNlbGVjdG9yVGV4dD09Ii5tcy12aDItbm9m aWx0ZXIiIHx8DQoJCQkJCQljU3R5bGVzaGVldHNbeF0ucnVsZXNbeV0uc2VsZWN0 b3JUZXh0PT0iLm1zLXZoMi1ub2ZpbHRlci1pY29uIiB8fA0KCQkJCQkJY1N0eWxl c2hlZXRzW3hdLnJ1bGVzW3ldLnNlbGVjdG9yVGV4dD09Ii5tcy12aEltYWdlIikg ew0KCQkJCQkJY1N0eWxlc2hlZXRzW3hdLnJ1bGVzW3ldLnN0eWxlLnRleHRBbGln bj12YWx1ZTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCn0NCnZhciBJ TU5Db250cm9sT2JqPW51bGw7DQp2YXIgYklNTkNvbnRyb2xJbml0ZWQ9ZmFsc2U7 DQp2YXIgSU1ORGljdGlvbmFyeU9iaj1udWxsOw0KdmFyIGJJTU5Tb3J0ZWQ9ZmFs c2U7DQp2YXIgYklNTk9ubG9hZEF0dGFjaGVkPWZhbHNlOw0KdmFyIElNTk9yaWdT Y3JvbGxGdW5jPW51bGw7DQp2YXIgYklNTkluU2Nyb2xsRnVuYz1mYWxzZTsNCnZh ciBJTU5Tb3J0YWJsZU9iaj1udWxsOw0KdmFyIElNTkhlYWRlck9iaj1udWxsOw0K dmFyIElNTk5hbWVEaWN0aW9uYXJ5T2JqPW51bGw7DQp2YXIgSU1OU2hvd09mZmxp bmVPYmo9bnVsbDsNCmZ1bmN0aW9uIEVuc3VyZUlNTkNvbnRyb2woKQ0Kew0KCWlm ICghYklNTkNvbnRyb2xJbml0ZWQpDQoJew0KCQlpZiAoYnJvd3NlcmlzLmllNXVw ICYmIGJyb3dzZXJpcy53aW4zMikNCgkJew0KLy9AY2Nfb24NCi8vQGlmIChAX2pz Y3JpcHRfdmVyc2lvbiA+PTUpDQovL0AgICAgICAgICAgICB0cnkNCi8vQCAgICAg ICAgICAgIHsNCi8vQCAgICAgICAgICAgICAgICBJTU5Db250cm9sT2JqPW5ldyBB Y3RpdmVYT2JqZWN0KCJOYW1lLk5hbWVDdHJsLjEiKTsNCi8vQCAgICAgICAgICAg IH0gY2F0Y2goZSkNCi8vQCAgICAgICAgICAgIHsNCi8vQA0KLy9AICAgICAgICAg ICAgfTsNCi8vQGVsc2UNCi8vQGVuZA0KCQl9DQoJCWJJTU5Db250cm9sSW5pdGVk PXRydWU7DQoJCWlmIChJTU5Db250cm9sT2JqKQ0KCQl7DQoJCQlJTU5Db250cm9s T2JqLk9uU3RhdHVzQ2hhbmdlPUlNTk9uU3RhdHVzQ2hhbmdlOw0KCQl9DQoJfQ0K CXJldHVybiBJTU5Db250cm9sT2JqOw0KfQ0KZnVuY3Rpb24gSU1OSW1hZ2VJbmZv KCkNCnsNCgl0aGlzLmltZz1udWxsOw0KCXRoaXMuYWx0PScnOw0KfQ0KdmFyIExf SU1OT25saW5lX1RleHQ9IksgZGlzcG96aWNpIjsNCnZhciBMX0lNTk9mZmxpbmVf VGV4dD0iT2ZmbGluZSI7DQp2YXIgTF9JTU5Bd2F5X1RleHQ9IlByecSNIjsNCnZh ciBMX0lNTkJ1c3lfVGV4dD0iWmFuZXByw6F6ZG7Em24iOw0KdmFyIExfSU1ORG9O b3REaXN0dXJiX1RleHQ9Ik5lcnXFoWl0IjsNCnZhciBMX0lNTklkbGVfVGV4dD0i UHJhdmTEm3BvZG9ibsSbIHByecSNIjsNCnZhciBMX0lNTkJsb2NrZWRfVGV4dD0i Qmxva292w6FubyI7DQp2YXIgTF9JTU5PbmxpbmVfT09GX1RleHQ9IksgZGlzcG96 aWNpIChtaW1vIGthbmNlbMOhxZkpIjsNCnZhciBMX0lNTk9mZmxpbmVfT09GX1Rl eHQ9Ik9mZmxpbmUgKG1pbW8ga2FuY2Vsw6HFmSkiOw0KdmFyIExfSU1OQXdheV9P T0ZfVGV4dD0iUHJ5xI0gKG1pbW8ga2FuY2Vsw6HFmSkiOw0KdmFyIExfSU1OQnVz eV9PT0ZfVGV4dD0iWmFuZXByw6F6ZG7Em24gKG1pbW8ga2FuY2Vsw6HFmSkiOw0K dmFyIExfSU1ORG9Ob3REaXN0dXJiX09PRl9UZXh0PSJOZXJ1xaFpdCAobWltbyBr YW5jZWzDocWZKSI7DQp2YXIgTF9JTU5JZGxlX09PRl9UZXh0PSJQcmF2ZMSbcG9k b2JuxJsgcHJ5xI0gKG1pbW8ga2FuY2Vsw6HFmSkiOw0KZnVuY3Rpb24gSU1OR2V0 U3RhdHVzSW1hZ2Uoc3RhdGUsIHNob3dvZmZsaW5lKQ0Kew0KCXZhciBpbWc9ImJs YW5rLmdpZiI7DQoJdmFyIGFsdD0iIjsNCglzd2l0Y2ggKHN0YXRlKQ0KCXsNCgkJ Y2FzZSAwOg0KCQkJaW1nPSJpbW5vbi5wbmciOw0KCQkJYWx0PUxfSU1OT25saW5l X1RleHQ7DQoJCWJyZWFrOw0KCQljYXNlIDExOg0KCQkJaW1nPSJpbW5vbm9vZi5w bmciOw0KCQkJYWx0PUxfSU1OT25saW5lX09PRl9UZXh0Ow0KCQlicmVhazsNCgkJ Y2FzZSAxOg0KCQkJaWYgKHNob3dvZmZsaW5lKQ0KCQkJew0KCQkJCWltZz0iaW1u b2ZmLnBuZyI7DQoJCQkJYWx0PUxfSU1OT2ZmbGluZV9UZXh0Ow0KCQkJfQ0KCQkJ ZWxzZQ0KCQkJew0KCQkJCWltZz0iYmxhbmsuZ2lmIjsNCgkJCQlhbHQ9IiI7DQoJ CQl9DQoJCWJyZWFrOw0KCQljYXNlIDEyOg0KCQkJaWYgKHNob3dvZmZsaW5lKQ0K CQkJew0KCQkJCWltZz0iaW1ub2Zmb29mLnBuZyI7DQoJCQkJYWx0PUxfSU1OT2Zm bGluZV9PT0ZfVGV4dDsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlpbWc9ImJs YW5rLmdpZiI7DQoJCQkJYWx0PSIiOw0KCQkJfQ0KCQlicmVhazsNCgkJY2FzZSAy Og0KCQkJaW1nPSJpbW5hd2F5LnBuZyI7DQoJCQlhbHQ9TF9JTU5Bd2F5X1RleHQ7 DQoJCWJyZWFrOw0KCQljYXNlIDEzOg0KCQkJaW1nPSJpbW5hd2F5b29mLnBuZyI7 DQoJCQlhbHQ9TF9JTU5Bd2F5X09PRl9UZXh0Ow0KCQlicmVhazsNCgkJY2FzZSAz Og0KCQkJaW1nPSJpbW5idXN5LnBuZyI7DQoJCQlhbHQ9TF9JTU5CdXN5X1RleHQ7 DQoJCWJyZWFrOw0KCQljYXNlIDE0Og0KCQkJaW1nPSJpbW5idXN5b29mLnBuZyI7 DQoJCQlhbHQ9TF9JTU5CdXN5X09PRl9UZXh0Ow0KCQlicmVhazsNCgkJY2FzZSA0 Og0KCQkJaW1nPSJpbW5hd2F5LnBuZyI7DQoJCQlhbHQ9TF9JTU5Bd2F5X1RleHQ7 DQoJCWJyZWFrOw0KCQljYXNlIDU6DQoJCQlpbWc9ImltbmJ1c3kucG5nIjsNCgkJ CWFsdD1MX0lNTkJ1c3lfVGV4dDsNCgkJYnJlYWs7DQoJCWNhc2UgNjoNCgkJCWlt Zz0iaW1uYXdheS5wbmciOw0KCQkJYWx0PUxfSU1OQXdheV9UZXh0Ow0KCQlicmVh azsNCgkJY2FzZSA3Og0KCQkJaW1nPSJpbW5idXN5LnBuZyI7DQoJCQlhbHQ9TF9J TU5CdXN5X1RleHQ7DQoJCWJyZWFrOw0KCQljYXNlIDg6DQoJCQlpbWc9ImltbmF3 YXkucG5nIjsNCgkJCWFsdD1MX0lNTkF3YXlfVGV4dDsNCgkJYnJlYWs7DQoJCWNh c2UgOToNCgkJCWltZz0iaW1uZG5kLnBuZyI7DQoJCQlhbHQ9TF9JTU5Eb05vdERp c3R1cmJfVGV4dDsNCgkJYnJlYWs7DQoJCWNhc2UgMTU6DQoJCQlpbWc9ImltbmRu ZG9vZi5wbmciOw0KCQkJYWx0PUxfSU1ORG9Ob3REaXN0dXJiX09PRl9UZXh0Ow0K CQlicmVhazsNCgkJY2FzZSAxMDoNCgkJCWltZz0iaW1uYnVzeS5wbmciOw0KCQkJ YWx0PUxfSU1OQnVzeV9UZXh0Ow0KCQlicmVhazsNCgkJY2FzZSAxNjoNCgkJCWlt Zz0iaW1uaWRsZS5wbmciOw0KCQkJYWx0PUxfSU1OSWRsZV9UZXh0Ow0KCQlicmVh azsNCgkJY2FzZSAxNzoNCgkJCWltZz0iaW1uaWRsZW9vZi5wbmciOw0KCQkJYWx0 PUxfSU1OSWRsZV9PT0ZfVGV4dDsNCgkJYnJlYWs7DQoJCWNhc2UgMTg6DQoJCQlp bWc9ImltbmJsb2NrZWQucG5nIjsNCgkJCWFsdD1MX0lNTkJsb2NrZWRfVGV4dDsN CgkJYnJlYWs7DQoJCWNhc2UgMTk6DQoJCQlpbWc9ImltbmlkbGVidXN5LnBuZyI7 DQoJCQlhbHQ9TF9JTU5CdXN5X1RleHQ7DQoJCWJyZWFrOw0KCQljYXNlIDIwOg0K CQkJaW1nPSJpbW5pZGxlYnVzeW9vZi5wbmciOw0KCQkJYWx0PUxfSU1OQnVzeV9P T0ZfVGV4dDsNCgkJYnJlYWs7DQoJfQ0KCXZhciBpbW5JbmZvPW5ldyBJTU5JbWFn ZUluZm8oKTsNCglpbW5JbmZvLmltZz1pbWc7DQoJaW1uSW5mby5hbHQ9YWx0Ow0K CXJldHVybiBpbW5JbmZvOw0KfQ0KZnVuY3Rpb24gSU1OR2V0SGVhZGVySW1hZ2Uo KQ0Kew0KCXZhciBpbW5JbmZvPW5ldyBJTU5JbWFnZUluZm8oKTsNCglpbW5JbmZv LmltZz0iaW1uaGRyLmdpZiI7Ow0KCWltbkluZm8uYWx0PSIiOw0KCXJldHVybiBp bW5JbmZvOw0KfQ0KZnVuY3Rpb24gSU1OSXNPbmxpbmVTdGF0ZShzdGF0ZSkNCnsN CglpZiAoc3RhdGU9PTEpDQoJew0KCQkJcmV0dXJuIGZhbHNlOw0KCX0NCglyZXR1 cm4gdHJ1ZTsNCn0NCmZ1bmN0aW9uIElNTlNvcnRMaXN0KGosIG9sZFN0YXRlLCBz dGF0ZSkNCnsNCgl2YXIgb2JqVGFibGU9bnVsbDsNCgl2YXIgb2JqUm93PW51bGw7 DQoJaWYgKElNTlNvcnRhYmxlT2JqICYmIElNTlNvcnRhYmxlT2JqW2pdKQ0KCXsN CgkJb2JqUm93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopOw0KCQl3aGlsZSAo b2JqUm93ICYmICEob2JqUm93LnRhZ05hbWU9PSJUUiIgJiYNCgkJCSAgIHR5cGVv ZihvYmpSb3cuU29ydGFibGUpICE9InVuZGVmaW5lZCIpKQ0KCQl7DQoJCQlvYmpS b3c9b2JqUm93LnBhcmVudE5vZGU7DQoJCX0NCgkJb2JqVGFibGU9b2JqUm93Ow0K CQl3aGlsZSAob2JqVGFibGUgJiYgb2JqVGFibGUudGFnTmFtZSAhPSJUQUJMRSIp DQoJCXsNCgkJCW9ialRhYmxlPW9ialRhYmxlLnBhcmVudE5vZGU7DQoJCX0NCgkJ aWYgKG9ialRhYmxlICE9bnVsbCAmJiBvYmpSb3cgIT1udWxsKQ0KCQl7DQoJCQlp ZiAob2JqVGFibGUucm93c1sxXS5zdHlsZS5kaXNwbGF5PT0ibm9uZSIpDQoJCQl7 DQoJCQkJZm9yIChpPTE7IGk8NDsgaSsrKQ0KCQkJCXsNCgkJCQkJb2JqVGFibGUu cm93c1tpXS5zdHlsZS5kaXNwbGF5PSJibG9jayI7DQoJCQkJfQ0KCQkJfQ0KCQkJ aWYgKCFJTU5Jc09ubGluZVN0YXRlKG9sZFN0YXRlKSAmJiBJTU5Jc09ubGluZVN0 YXRlKHN0YXRlKSkNCgkJCXsNCgkJCQlvYmpUYWJsZS5yb3dzWzJdLnN0eWxlLmRp c3BsYXk9Im5vbmUiOw0KCQkJCWk9MzsNCgkJCQl3aGlsZSAob2JqVGFibGUucm93 c1tpXS5pZCAhPSJPZmZsaW5lIiAmJiBvYmpUYWJsZS5yb3dzW2ldLmlubmVyVGV4 dCA8IG9ialJvdy5pbm5lclRleHQpDQoJCQkJCWkrKzsNCgkJCQlvYmpUYWJsZS5t b3ZlUm93KG9ialJvdy5yb3dJbmRleCwgaSk7DQoJCQkJaWYgKCAgICBvYmpUYWJs ZS5yb3dzW29ialRhYmxlLnJvd3MubGVuZ3RoIC0gM10uaWQ9PSJPZmZsaW5lIikN CgkJCQl7DQoJCQkJCW9ialRhYmxlLnJvd3Nbb2JqVGFibGUucm93cy5sZW5ndGgg LSAyXS5zdHlsZS5kaXNwbGF5PSJibG9jayI7DQoJCQkJfQ0KCQkJfQ0KCQkJZWxz ZSBpZiAoSU1OSXNPbmxpbmVTdGF0ZShvbGRTdGF0ZSkgJiYgIUlNTklzT25saW5l U3RhdGUoc3RhdGUpKQ0KCQkJew0KCQkJCWlmIChvYmpSb3cucm93SW5kZXg9PTMg JiYNCgkJCQkJb2JqVGFibGUucm93c1tvYmpSb3cucm93SW5kZXgrMV0uaWQ9PSJP ZmZsaW5lIikNCgkJCQl7DQoJCQkJCW9ialRhYmxlLnJvd3NbMl0uc3R5bGUuZGlz cGxheT0iYmxvY2siOw0KCQkJCX0NCgkJCQlpZiAob2JqVGFibGUucm93c1tvYmpU YWJsZS5yb3dzLmxlbmd0aCAtIDNdLmlkPT0iT2ZmbGluZSIpDQoJCQkJew0KCQkJ CQlvYmpUYWJsZS5yb3dzW29ialRhYmxlLnJvd3MubGVuZ3RoIC0gMl0uc3R5bGUu ZGlzcGxheT0ibm9uZSI7DQoJCQkJfQ0KCQkJCWk9b2JqVGFibGUucm93cy5sZW5n dGggLSAyOw0KCQkJCXdoaWxlIChvYmpUYWJsZS5yb3dzW2kgLSAxXS5pZCAhPSJP ZmZsaW5lIiAmJiBvYmpUYWJsZS5yb3dzW2ldLmlubmVyVGV4dCA+IG9ialJvdy5p bm5lclRleHQpDQoJCQkJCWktLTsNCgkJCQlvYmpUYWJsZS5tb3ZlUm93KG9ialJv dy5yb3dJbmRleCwgaSk7DQoJCQl9DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBJTU5P blN0YXR1c0NoYW5nZShuYW1lLCBzdGF0ZSwgaWQpDQp7DQoJaWYgKElNTkRpY3Rp b25hcnlPYmopDQoJew0KCQl2YXIgaW1nPUlNTkdldFN0YXR1c0ltYWdlKHN0YXRl LCBJTU5Tb3J0YWJsZU9ialtpZF0gfHwNCgkJCQkJCQkJCUlNTlNob3dPZmZsaW5l T2JqW2lkXSk7DQoJCWlmIChJTU5EaWN0aW9uYXJ5T2JqW2lkXSAhPXN0YXRlKQ0K CQl7DQoJCQlpZiAoYklNTlNvcnRlZCkNCgkJCQlJTU5Tb3J0TGlzdChpZCwgSU1O RGljdGlvbmFyeU9ialtpZF0sIHN0YXRlKTsNCgkJCUlNTlVwZGF0ZUltYWdlKGlk LCBpbWcpOw0KCQkJSU1ORGljdGlvbmFyeU9ialtpZF09c3RhdGU7DQoJCX0NCgl9 DQp9DQpmdW5jdGlvbiBJTU5VcGRhdGVJbWFnZShpZCwgaW1nSW5mbykNCnsNCgl2 YXIgb2JqPWRvY3VtZW50LmltYWdlcyhpZCk7DQoJaWYgKG9iaikNCgl7DQoJCXZh ciBpbWc9aW1nSW5mby5pbWc7DQoJCXZhciBhbHQ9aW1nSW5mby5hbHQ7DQoJCXZh ciBvbGRJbWc9b2JqLnNyYzsNCgkJdmFyIGluZGV4PW9sZEltZy5sYXN0SW5kZXhP ZigiLyIpOw0KCQl2YXIgbmV3SW1nPW9sZEltZy5zbGljZSgwLCBpbmRleCsxKTsN CgkJbmV3SW1nKz1pbWc7DQoJCWlmIChvbGRJbWc9PW5ld0ltZyAmJiBpbWcgIT0n YmxhbmsuZ2lmJykNCgkJCXJldHVybjsNCgkJaWYgKG9iai5hbHRiYXNlKQ0KCQl7 DQoJCQlvYmouYWx0PW9iai5hbHRiYXNlOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJ b2JqLmFsdD1hbHQ7DQoJCX0NCgkJdmFyIHVzZUZpbHRlcj1icm93c2VyaXMuaWUg JiYNCgkJCQkJYnJvd3NlcmlzLmllNTV1cCAmJg0KCQkJCQlicm93c2VyaXMudmVy SUVGdWxsIDwgNy4wOw0KCQl2YXIgaXNQbmc9KG5ld0ltZy50b0xvd2VyQ2FzZSgp LmluZGV4T2YoIi5wbmciKSA+IDApOw0KCQlpZiAodXNlRmlsdGVyKQ0KCQl7DQoJ CQlpZiAoaXNQbmcpDQoJCQl7DQoJCQkJb2JqLnN0eWxlLmZpbHRlcj0icHJvZ2lk OkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3Jj PSIrbmV3SW1nKyIpLHNpemluZ01ldGhvZD1zY2FsZSxlbmFibGVkPXRydWUpOyI7 DQoJCQkJb2JqLnNyYz0iL19sYXlvdXRzL2ltYWdlcy9ibGFuay5naWYiOw0KCQkJ fQ0KCQkJZWxzZQ0KCQkJew0KCQkJCW9iai5zdHlsZS5maWx0ZXI9IiI7DQoJCQkJ b2JqLnNyYz1uZXdJbWc7DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlvYmou c3JjPW5ld0ltZzsNCgkJfQ0KCX0NCn0NCmZ1bmN0aW9uIElNTkhhbmRsZUFjY2Vs ZXJhdG9yKCkNCnsNCglpZiAoSU1OQ29udHJvbE9iaikNCgl7DQoJICAgaWYgKGV2 ZW50LmFsdEtleSAmJiBldmVudC5zaGlmdEtleSAmJg0KCQkJZXZlbnQua2V5Q29k ZT09MTIxKQ0KCQl7DQoJCSAgIElNTkNvbnRyb2xPYmouRG9BY2NlbGVyYXRvcigp Ow0KCQl9DQoJfQ0KfQ0KZnVuY3Rpb24gSU1OSW1hZ2VPbkNsaWNrKCkNCnsNCglp ZiAoSU1OQ29udHJvbE9iaikNCgl7DQoJCUlNTlNob3dPT1VJS3liKCk7DQoJCUlN TkNvbnRyb2xPYmouRG9BY2NlbGVyYXRvcigpOw0KCX0NCn0NCmZ1bmN0aW9uIElN TkdldE9PVUlMb2NhdGlvbihvYmopDQp7DQoJdmFyIG9ialJldD1uZXcgT2JqZWN0 Ow0KCXZhciBvYmpTcGFuPW9iajsNCgl2YXIgb2JqT09VST1vYmo7DQoJdmFyIG9v dWlYPTAsIG9vdWlZPTAsIG9iakRYPTA7DQoJdmFyIGZSdGw9ZG9jdW1lbnQuZGly PT0icnRsIjsNCgl3aGlsZSAob2JqU3BhbiAmJiBvYmpTcGFuLnRhZ05hbWUgIT0i U1BBTiIgJiYgb2JqU3Bhbi50YWdOYW1lICE9IlRBQkxFIikNCgl7DQoJCW9ialNw YW49b2JqU3Bhbi5wYXJlbnROb2RlOw0KCX0NCglpZiAob2JqU3BhbikNCgl7DQoJ CXZhciBjb2xsTm9kZXM9b2JqU3Bhbi50YWdOYW1lPT0iVEFCTEUiID8NCgkJCW9i alNwYW4ucm93cygwKS5jZWxscygwKS5jaGlsZE5vZGVzIDoNCgkJCW9ialNwYW4u Y2hpbGROb2RlczsNCgkJdmFyIGk7DQoJCWZvciAoaT0wOyBpIDwgY29sbE5vZGVz Lmxlbmd0aDsrK2kpDQoJCXsNCgkJCWlmIChjb2xsTm9kZXMuaXRlbShpKS50YWdO YW1lPT0iSU1HIiAmJiBjb2xsTm9kZXMuaXRlbShpKS5pZCkNCgkJCXsNCgkJCQlv YmpPT1VJPWNvbGxOb2Rlcy5pdGVtKGkpOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJ aWYgKGNvbGxOb2Rlcy5pdGVtKGkpLnRhZ05hbWU9PSJBIiAmJg0KCQkJCWNvbGxO b2Rlcy5pdGVtKGkpLmNoaWxkTm9kZXMubGVuZ3RoID4gMCAmJg0KCQkJCWNvbGxO b2Rlcy5pdGVtKGkpLmNoaWxkTm9kZXMuaXRlbSgwKS50YWdOYW1lPT0iSU1HIiAm Jg0KCQkJCWNvbGxOb2Rlcy5pdGVtKGkpLmNoaWxkTm9kZXMuaXRlbSgwKS5pZCkN CgkJCXsNCgkJCQlvYmpPT1VJPWNvbGxOb2Rlcy5pdGVtKGkpLmNoaWxkTm9kZXMu aXRlbSgwKTsNCgkJCQlicmVhazsNCgkJCX0NCgkJfQ0KCX0NCglvYmo9b2JqT09V STsNCgl3aGlsZSAob2JqKQ0KCXsNCgkJaWYgKGZSdGwpDQoJCXsNCgkJCWlmIChv Ymouc2Nyb2xsV2lkdGggPj1vYmouY2xpZW50V2lkdGgrb2JqLnNjcm9sbExlZnQp DQoJCQkJb2JqRFg9b2JqLnNjcm9sbFdpZHRoIC0gb2JqLmNsaWVudFdpZHRoIC0g b2JqLnNjcm9sbExlZnQ7DQoJCQllbHNlDQoJCQkJb2JqRFg9b2JqLmNsaWVudFdp ZHRoK29iai5zY3JvbGxMZWZ0IC0gb2JqLnNjcm9sbFdpZHRoOw0KCQkJb291aVgr PW9iai5vZmZzZXRMZWZ0K29iakRYOw0KCQl9DQoJCWVsc2UNCgkJCW9vdWlYKz1v Ymoub2Zmc2V0TGVmdCAtIG9iai5zY3JvbGxMZWZ0Ow0KCQlvb3VpWSs9b2JqLm9m ZnNldFRvcCAtIG9iai5zY3JvbGxUb3A7DQoJCW9iaj1vYmoub2Zmc2V0UGFyZW50 Ow0KCX0NCgl0cnkNCgl7DQoJCW9iaj13aW5kb3cuZnJhbWVFbGVtZW50Ow0KCQl3 aGlsZSAob2JqKQ0KCQl7DQoJCQlpZiAoZlJ0bCkNCgkJCXsNCgkJCQlpZiAob2Jq LnNjcm9sbFdpZHRoID49b2JqLmNsaWVudFdpZHRoK29iai5zY3JvbGxMZWZ0KQ0K CQkJCQlvYmpEWD1vYmouc2Nyb2xsV2lkdGggLSBvYmouY2xpZW50V2lkdGggLSBv Ymouc2Nyb2xsTGVmdDsNCgkJCQllbHNlDQoJCQkJCW9iakRYPW9iai5jbGllbnRX aWR0aCtvYmouc2Nyb2xsTGVmdCAtIG9iai5zY3JvbGxXaWR0aDsNCgkJCQlvb3Vp WCs9b2JqLm9mZnNldExlZnQrb2JqRFg7DQoJCQl9DQoJCQllbHNlDQoJCQkJb291 aVgrPW9iai5vZmZzZXRMZWZ0IC0gb2JqLnNjcm9sbExlZnQ7DQoJCQlvb3VpWSs9 b2JqLm9mZnNldFRvcCAtIG9iai5zY3JvbGxUb3A7DQoJCQlvYmo9b2JqLm9mZnNl dFBhcmVudDsNCgkJfQ0KCX0gY2F0Y2goZSkNCgl7DQoJfTsNCglvYmpSZXQub2Jq U3Bhbj1vYmpTcGFuOw0KCW9ialJldC5vYmpPT1VJPW9iak9PVUk7DQoJb2JqUmV0 Lm9vdWlYPW9vdWlYOw0KCW9ialJldC5vb3VpWT1vb3VpWTsNCglpZiAoZlJ0bCkN CgkJb2JqUmV0Lm9vdWlYKz1vYmpPT1VJLm9mZnNldFdpZHRoOw0KCXJldHVybiBv YmpSZXQ7DQp9DQpmdW5jdGlvbiBJTU5TaG93T09VSU1vdXNlKCkNCnsNCglJTU5T aG93T09VSSgwKTsNCn0NCmZ1bmN0aW9uIElNTlNob3dPT1VJS3liKCkNCnsNCglJ TU5TaG93T09VSSgxKTsNCn0NCmZ1bmN0aW9uIElNTlNob3dPT1VJKGlucHV0VHlw ZSkNCnsNCglpZiAoYnJvd3NlcmlzLmllNXVwICYmIGJyb3dzZXJpcy53aW4zMikN Cgl7DQoJCXZhciBvYmo9d2luZG93LmV2ZW50LnNyY0VsZW1lbnQ7DQoJCXZhciBv YmpTcGFuPW9iajsNCgkJdmFyIG9iak9PVUk9b2JqOw0KCQl2YXIgb291aVg9MCwg b291aVk9MDsNCgkJaWYgKEVuc3VyZUlNTkNvbnRyb2woKSAmJiBJTU5OYW1lRGlj dGlvbmFyeU9iaikNCgkJew0KCQkJdmFyIG9ialJldD1JTU5HZXRPT1VJTG9jYXRp b24ob2JqKTsNCgkJCW9ialNwYW49b2JqUmV0Lm9ialNwYW47DQoJCQlvYmpPT1VJ PW9ialJldC5vYmpPT1VJOw0KCQkJb291aVg9b2JqUmV0Lm9vdWlYOw0KCQkJb291 aVk9b2JqUmV0Lm9vdWlZOw0KCQkJdmFyIG5hbWU9SU1OTmFtZURpY3Rpb25hcnlP Ympbb2JqT09VSS5pZF07DQoJCQlpZiAob2JqU3BhbikNCgkJCQlvYmpTcGFuLm9u a2V5ZG93bj1JTU5IYW5kbGVBY2NlbGVyYXRvcjsNCgkJCUlNTkNvbnRyb2xPYmou U2hvd09PVUkobmFtZSwgaW5wdXRUeXBlLCBvb3VpWCwgb291aVkpOw0KCQl9DQoJ fQ0KfQ0KZnVuY3Rpb24gSU1OSGlkZU9PVUkoKQ0Kew0KCWlmIChJTU5Db250cm9s T2JqKQ0KCXsNCgkJSU1OQ29udHJvbE9iai5IaWRlT09VSSgpOw0KCQlyZXR1cm4g ZmFsc2U7DQoJfQ0KCXJldHVybiB0cnVlOw0KfQ0KZnVuY3Rpb24gSU1OU2Nyb2xs KCkNCnsNCglpZiAoIWJJTU5JblNjcm9sbEZ1bmMpDQoJew0KCQliSU1OSW5TY3Jv bGxGdW5jPXRydWU7DQoJCUlNTkhpZGVPT1VJKCk7DQoJfQ0KCWJJTU5JblNjcm9s bEZ1bmM9ZmFsc2U7DQoJaWYoSU1OT3JpZ1Njcm9sbEZ1bmM9PUlNTlNjcm9sbCkN CgkJcmV0dXJuIHRydWU7DQoJcmV0dXJuIElNTk9yaWdTY3JvbGxGdW5jID8gSU1O T3JpZ1Njcm9sbEZ1bmMoKSA6IHRydWU7DQp9DQp2YXIgaW1uQ291bnQ9MDsNCnZh ciBpbW5FbGVtczsNCnZhciBpbW5FbGVtc0NvdW50PTA7DQp2YXIgaW1uTWFya2Vy QmF0Y2hTaXplPTQ7DQp2YXIgaW1uTWFya2VyQmF0Y2hEZWxheT00MDsNCmZ1bmN0 aW9uIFByb2Nlc3NJbW4oKQ0Kew0KCWlmIChFbnN1cmVJTU5Db250cm9sKCkgJiYg SU1OQ29udHJvbE9iai5QcmVzZW5jZUVuYWJsZWQpDQoJew0KCQlpbW5FbGVtcz1k b2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgiaW1ubWFyayIpOw0KCQlpbW5FbGVt c0NvdW50PWltbkVsZW1zLmxlbmd0aDsNCgkJUHJvY2Vzc0ltbk1hcmtlcnMoKTsN Cgl9DQp9DQpmdW5jdGlvbiBQcm9jZXNzSW1uTWFya2VycygpDQp7DQoJZm9yIChp PTA7aTxpbW5NYXJrZXJCYXRjaFNpemU7KytpKQ0KCXsNCgkJaWYgKGltbkNvdW50 PT1pbW5FbGVtc0NvdW50KQ0KCQkJcmV0dXJuOw0KCQlJTU5SQyhpbW5FbGVtc1tp bW5Db3VudF0uc2lwLGltbkVsZW1zW2ltbkNvdW50XSk7DQoJCWltbkNvdW50Kys7 DQoJfQ0KCXNldFRpbWVvdXQoIlByb2Nlc3NJbW5NYXJrZXJzKCkiLGltbk1hcmtl ckJhdGNoRGVsYXkpOw0KfQ0KZnVuY3Rpb24gSU1OUkMobmFtZSwgZWxlbSkNCnsN CglpZiAobmFtZT09bnVsbCB8fCBuYW1lPT0nJykNCgkJcmV0dXJuOw0KCWlmIChi cm93c2VyaXMuaWU1dXAgJiYgYnJvd3NlcmlzLndpbjMyKQ0KCXsNCgkJdmFyIG9i aj0oZWxlbSkgPyBlbGVtIDogd2luZG93LmV2ZW50LnNyY0VsZW1lbnQ7DQoJCXZh ciBvYmpTcGFuPW9iajsNCgkJdmFyIGlkPW9iai5pZDsNCgkJdmFyIGZGaXJzdD1m YWxzZTsNCgkJaWYgKCFJTU5EaWN0aW9uYXJ5T2JqKQ0KCQl7DQoJCQlJTU5EaWN0 aW9uYXJ5T2JqPW5ldyBPYmplY3QoKTsNCgkJCUlNTk5hbWVEaWN0aW9uYXJ5T2Jq PW5ldyBPYmplY3QoKTsNCgkJCUlNTlNvcnRhYmxlT2JqPW5ldyBPYmplY3QoKTsN CgkJCUlNTlNob3dPZmZsaW5lT2JqPW5ldyBPYmplY3QoKTsNCgkJCWlmICghSU1O T3JpZ1Njcm9sbEZ1bmMpDQoJCQl7DQoJCQkJSU1OT3JpZ1Njcm9sbEZ1bmM9d2lu ZG93Lm9uc2Nyb2xsOw0KCQkJCXdpbmRvdy5vbnNjcm9sbD1JTU5TY3JvbGw7DQoJ CQl9DQoJCX0NCgkJaWYgKElNTkRpY3Rpb25hcnlPYmopDQoJCXsNCgkJCWlmICgh SU1OTmFtZURpY3Rpb25hcnlPYmpbaWRdKQ0KCQkJew0KCQkJCUlNTk5hbWVEaWN0 aW9uYXJ5T2JqW2lkXT1uYW1lOw0KCQkJCWZGaXJzdD10cnVlOw0KCQkJfQ0KCQkJ aWYgKHR5cGVvZihJTU5EaWN0aW9uYXJ5T2JqW2lkXSk9PSJ1bmRlZmluZWQiKQ0K CQkJew0KCQkJCUlNTkRpY3Rpb25hcnlPYmpbaWRdPTE7DQoJCQl9DQoJCQlpZiAo IUlNTlNvcnRhYmxlT2JqW2lkXSAmJg0KCQkJCSh0eXBlb2Yob2JqLlNvcnRhYmxl KSAhPSJ1bmRlZmluZWQiKSkNCgkJCXsNCgkJCQlJTU5Tb3J0YWJsZU9ialtpZF09 b2JqLlNvcnRhYmxlOw0KCQkJCWlmICghYklNTk9ubG9hZEF0dGFjaGVkKQ0KCQkJ CXsNCgkJCQkJaWYgKEVuc3VyZUlNTkNvbnRyb2woKSAmJiBJTU5Db250cm9sT2Jq LlByZXNlbmNlRW5hYmxlZCkNCgkJCQkJCXdpbmRvdy5hdHRhY2hFdmVudCgib25s b2FkIiwgSU1OU29ydFRhYmxlKTsNCgkJCQkJYklNTk9ubG9hZEF0dGFjaGVkPXRy dWU7DQoJCQkJfQ0KCQkJfQ0KCQkJaWYgKCFJTU5TaG93T2ZmbGluZU9ialtpZF0g JiYNCgkJCQkodHlwZW9mKG9iai5TaG93T2ZmbGluZVBhd24pICE9InVuZGVmaW5l ZCIpKQ0KCQkJew0KCQkJCUlNTlNob3dPZmZsaW5lT2JqW2lkXT1vYmouU2hvd09m ZmxpbmVQYXduOw0KCQkJfQ0KCQkJaWYgKGZGaXJzdCAmJiBFbnN1cmVJTU5Db250 cm9sKCkgJiYgSU1OQ29udHJvbE9iai5QcmVzZW5jZUVuYWJsZWQpDQoJCQl7DQoJ CQkJdmFyIHN0YXRlPTEsIGltZzsNCgkJCQlzdGF0ZT1JTU5Db250cm9sT2JqLkdl dFN0YXR1cyhuYW1lLCBpZCk7DQoJCQkJaWYgKElNTklzT25saW5lU3RhdGUoc3Rh dGUpIHx8IElNTlNvcnRhYmxlT2JqW2lkXSB8fA0KCQkJCQlJTU5TaG93T2ZmbGlu ZU9ialtpZF0pDQoJCQkJew0KCQkJCQlpbWc9SU1OR2V0U3RhdHVzSW1hZ2Uoc3Rh dGUsIElNTlNvcnRhYmxlT2JqW2lkXSB8fA0KCQkJCQkJCQkJCQlJTU5TaG93T2Zm bGluZU9ialtpZF0pOw0KCQkJCQlJTU5VcGRhdGVJbWFnZShpZCwgaW1nKTsNCgkJ CQkJSU1ORGljdGlvbmFyeU9ialtpZF09c3RhdGU7DQoJCQkJfQ0KCQkJfQ0KCQl9 DQoJCWlmIChmRmlyc3QpDQoJCXsNCgkJCXZhciBvYmpSZXQ9SU1OR2V0T09VSUxv Y2F0aW9uKG9iaik7DQoJCQlvYmpTcGFuPW9ialJldC5vYmpTcGFuOw0KCQkJaWYg KG9ialNwYW4pDQoJCQl7DQoJCQkJb2JqU3Bhbi5vbm1vdXNlb3Zlcj1JTU5TaG93 T09VSU1vdXNlOw0KCQkJCW9ialNwYW4ub25mb2N1c2luPUlNTlNob3dPT1VJS3li Ow0KCQkJCW9ialNwYW4ub25tb3VzZW91dD1JTU5IaWRlT09VSTsNCgkJCQlvYmpT cGFuLm9uZm9jdXNvdXQ9SU1OSGlkZU9PVUk7DQoJCQl9DQoJCX0NCgl9DQp9DQpm dW5jdGlvbiBJTU5Tb3J0VGFibGUoKQ0Kew0KCXZhciBpZDsNCglmb3IgKGlkIGlu IElNTkRpY3Rpb25hcnlPYmopDQoJew0KCQlJTU5Tb3J0TGlzdChpZCwgMSwgSU1O RGljdGlvbmFyeU9ialtpZF0pOw0KCX0NCgliSU1OU29ydGVkPXRydWU7DQp9DQpm dW5jdGlvbiBJTU5SZWdpc3RlckhlYWRlcigpDQp7DQoJaWYgKGJyb3dzZXJpcy5p ZTV1cCAmJiBicm93c2VyaXMud2luMzIpDQoJew0KCQl2YXIgb2JqPXdpbmRvdy5l dmVudC5zcmNFbGVtZW50Ow0KCQlpZiAoIUlNTkhlYWRlck9iaikNCgkJew0KCQkJ SU1OSGVhZGVyT2JqPW5ldyBPYmplY3QoKTsNCgkJfQ0KCQlpZiAoSU1OSGVhZGVy T2JqKQ0KCQl7DQoJCQl2YXIgaWQ9b2JqLmlkOw0KCQkJaWYgKCFJTU5IZWFkZXJP YmpbaWRdKQ0KCQkJew0KCQkJCUlNTkhlYWRlck9ialtpZF09aWQ7DQoJCQkJdmFy IGltZzsNCgkJCQlpbWc9SU1OR2V0SGVhZGVySW1hZ2UoKTsNCgkJCQlJTU5VcGRh dGVJbWFnZShpZCwgaW1nKTsNCgkJCX0NCgkJfQ0KCX0NCn0NCnZhciBfc3BCb2R5 T25Mb2FkRnVuY3Rpb25OYW1lczsNCmlmIChfc3BCb2R5T25Mb2FkRnVuY3Rpb25O YW1lcz09bnVsbCkNCnsNCglfc3BCb2R5T25Mb2FkRnVuY3Rpb25OYW1lcz1uZXcg QXJyYXkoKTsNCglfc3BCb2R5T25Mb2FkRnVuY3Rpb25OYW1lcy5wdXNoKCJfc3BC b2R5T25Mb2FkIik7DQoJX3NwQm9keU9uTG9hZEZ1bmN0aW9uTmFtZXMucHVzaCgi X3NwUmVzdG9yZVNjcm9sbEZvckRpdl9yc2NyIik7DQp9DQp2YXIgX3NwT3JpZ2lu YWxGb3JtQWN0aW9uOw0KdmFyIF9zcEVzY2FwZWRGb3JtQWN0aW9uOw0KdmFyIF9z cEZvcm1PblN1Ym1pdENhbGxlZD1mYWxzZTsNCnZhciBfc3BCb2R5T25QYWdlU2hv d1JlZ2lzdGVyZWQ9ZmFsc2U7DQpmdW5jdGlvbiBfc3BCb2R5T25QYWdlU2hvdyhl dnQpDQp7DQoJX3NwRm9ybU9uU3VibWl0Q2FsbGVkPWZhbHNlOw0KfQ0KZnVuY3Rp b24gX3NwUmVzZXRGb3JtT25TdWJtaXRDYWxsZWRGbGFnKCBzZW5kZXIsICBlKQ0K ew0KCV9zcEZvcm1PblN1Ym1pdENhbGxlZD1mYWxzZTsNCn0NCmZ1bmN0aW9uIF9z cEJvZHlPbkxvYWRXcmFwcGVyKCkNCnsNCglpZiAoIV9zcEJvZHlPblBhZ2VTaG93 UmVnaXN0ZXJlZCAmJg0KCQl0eXBlb2YoYnJvd3NlcmlzKSAhPSJ1bmRlZmluZWQi ICYmDQoJCSFicm93c2VyaXMuaWUgJiYNCgkJdHlwZW9mKHdpbmRvdy5hZGRFdmVu dExpc3RlbmVyKT09J2Z1bmN0aW9uJykNCgl7DQoJCXdpbmRvdy5hZGRFdmVudExp c3RlbmVyKCdwYWdlc2hvdycsIF9zcEJvZHlPblBhZ2VTaG93LCBmYWxzZSk7DQoJ CV9zcEJvZHlPblBhZ2VTaG93UmVnaXN0ZXJlZD10cnVlOw0KCX0NCglpZiAoX3Nw T3JpZ2luYWxGb3JtQWN0aW9uPT1udWxsKQ0KCXsNCgkJaWYgKGRvY3VtZW50LmZv cm1zLmxlbmd0aCA+IDApDQoJCXsNCgkJCV9zcE9yaWdpbmFsRm9ybUFjdGlvbj1k b2N1bWVudC5mb3Jtc1swXS5hY3Rpb247DQoJCQl2YXIgdXJsPXdpbmRvdy5sb2Nh dGlvbi5ocmVmOw0KCQkJdmFyIGluZGV4PXVybC5pbmRleE9mKCI6Ly8iKTsNCgkJ CWlmIChpbmRleCA+PTApDQoJCQl7DQoJCQkJdmFyIHRlbXA9dXJsLnN1YnN0cmlu ZyhpbmRleCszKTsNCgkJCQlpbmRleD10ZW1wLmluZGV4T2YoIi8iKTsNCgkJCQlp ZiAoaW5kZXggPj0wKQ0KCQkJCQl1cmw9dGVtcC5zdWJzdHJpbmcoaW5kZXgpOw0K CQkJfQ0KCQkJX3NwRXNjYXBlZEZvcm1BY3Rpb249ZXNjYXBlVXJsRm9yQ2FsbGJh Y2sodXJsKTsNCgkJCWRvY3VtZW50LmZvcm1zWzBdLmFjdGlvbj1fc3BFc2NhcGVk Rm9ybUFjdGlvbjsNCgkJfQ0KCX0NCglfc3BGb3JtT25TdWJtaXRDYWxsZWQ9ZmFs c2U7DQoJaWYgKHR5cGVvZihTeXMpICE9InVuZGVmaW5lZCIgJiYNCgkJdHlwZW9m KFN5cy5OZXQpICE9InVuZGVmaW5lZCIgJiYNCgkJdHlwZW9mKFN5cy5OZXQuV2Vi UmVxdWVzdE1hbmFnZXIpICE9InVuZGVmaW5lZCIpDQoJew0KCQlTeXMuTmV0Lldl YlJlcXVlc3RNYW5hZ2VyLmFkZF9pbnZva2luZ1JlcXVlc3QoX3NwUmVzZXRGb3Jt T25TdWJtaXRDYWxsZWRGbGFnKTsNCgl9DQoJUHJvY2Vzc0RlZmF1bHRPbkxvYWQo X3NwQm9keU9uTG9hZEZ1bmN0aW9uTmFtZXMpOw0KfQ0KdmFyIF9zcFN1cHByZXNz Rm9ybU9uU3VibWl0V3JhcHBlcj1mYWxzZTsNCmZ1bmN0aW9uIF9zcEZvcm1PblN1 Ym1pdFdyYXBwZXIoKQ0Kew0KCWlmIChfc3BTdXBwcmVzc0Zvcm1PblN1Ym1pdFdy YXBwZXIpDQoJew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoJaWYgKF9zcEZvcm1PblN1 Ym1pdENhbGxlZCkNCgl7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJaWYgKHR5cGVv Zihfc3BGb3JtT25TdWJtaXQpPT0iZnVuY3Rpb24iKQ0KCXsNCgkJdmFyIHJldHZh bD1fc3BGb3JtT25TdWJtaXQoKTsNCgkJdmFyIHRlc3R2YWw9ZmFsc2U7DQoJCWlm ICh0eXBlb2YocmV0dmFsKT09dHlwZW9mKHRlc3R2YWwpICYmIHJldHZhbD09dGVz dHZhbCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfQ0KCVJlc3RvcmVU b09yaWdpbmFsRm9ybUFjdGlvbigpOw0KCV9zcEZvcm1PblN1Ym1pdENhbGxlZD10 cnVlOw0KCXJldHVybiB0cnVlOw0KfQ0KZnVuY3Rpb24gUmVzdG9yZVRvT3JpZ2lu YWxGb3JtQWN0aW9uKCkNCnsNCglpZiAoX3NwT3JpZ2luYWxGb3JtQWN0aW9uICE9 bnVsbCkNCgl7DQoJCWlmIChfc3BFc2NhcGVkRm9ybUFjdGlvbj09ZG9jdW1lbnQu Zm9ybXNbMF0uYWN0aW9uKQ0KCQl7DQoJCQlkb2N1bWVudC5mb3Jtc1swXS5hY3Rp b249X3NwT3JpZ2luYWxGb3JtQWN0aW9uOw0KCQl9DQoJCV9zcE9yaWdpbmFsRm9y bUFjdGlvbj1udWxsOw0KCQlfc3BFc2NhcGVkRm9ybUFjdGlvbj1udWxsOw0KCX0N Cn0NCmZ1bmN0aW9uIERlZmF1bHRGb2N1cygpDQp7DQoJaWYgKHR5cGVvZihfc3BV c2VEZWZhdWx0Rm9jdXMpIT0idW5kZWZpbmVkIikNCgl7DQoJCXZhciBlbGVtZW50 cz1kb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgiX3NwRm9jdXNIZXJlIik7DQoJ CXZhciBlbGVtPW51bGw7DQoJCWlmIChlbGVtZW50cz09bnVsbCB8fCBlbGVtZW50 cy5sZW5ndGggPD0wKQ0KCQl7DQoJCQllbGVtPWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJfc3BGb2N1c0hlcmUiKTsNCgkJfQ0KCQllbHNlIGlmIChlbGVtZW50cyAh PW51bGwgJiYgZWxlbWVudHMubGVuZ3RoID4gMCkNCgkJew0KCQkJZWxlbT1lbGVt ZW50c1swXTsNCgkJfQ0KCQlpZiAoZWxlbSAhPW51bGwpDQoJCXsNCgkJCXZhciBh TGlua3M9ZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpOw0KCQkJaWYgKGFM aW5rcyAhPW51bGwgJiYgYUxpbmtzLmxlbmd0aCA+IDApDQoJCQl7DQoJCQkJdHJ5 e2FMaW5rc1swXS5mb2N1cygpO31jYXRjaChlKXt9DQoJCQl9DQoJCX0NCgl9DQp9 DQpmdW5jdGlvbiBQcm9jZXNzRGVmYXVsdE9uTG9hZChvbkxvYWRGdW5jdGlvbk5h bWVzKQ0Kew0KCVByb2Nlc3NQTkdJbWFnZXMoKTsNCglVcGRhdGVBY2Nlc3NpYmls aXR5VUkoKTsNCglQcm9jZXNzSW1uKCk7DQoJZm9yICh2YXIgaT0wOyBpIDwgb25M b2FkRnVuY3Rpb25OYW1lcy5sZW5ndGg7IGkrKykNCgl7DQoJCXZhciBleHByPSJp Zih0eXBlb2YoIitvbkxvYWRGdW5jdGlvbk5hbWVzW2ldKyIpPT0nZnVuY3Rpb24n KXsiK29uTG9hZEZ1bmN0aW9uTmFtZXNbaV0rIigpO30iOw0KCQlldmFsKGV4cHIp Ow0KCX0NCglpZiAodHlwZW9mKF9zcFVzZURlZmF1bHRGb2N1cykhPSJ1bmRlZmlu ZWQiKQ0KCQlEZWZhdWx0Rm9jdXMoKTsNCn0NCg0K ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=non_ie.js Content-Type: application/x-javascript; charset=utf-8; name=non_ie.js Content-Location: http://www.vojenskaskola.cz/_layouts/1029/non_ie.js?rev=yfNry4hY0Gwa%2FPDNGrqXVg%3D%3D Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gTVNPTGF5b3V0X01pbmltaXplUmVzdG9yZURvd25MZXZlbCh3ZWJQ YXJ0R1VJRCxjaHJvbWVTdGF0ZSxzb3VyY2UpDQp7DQoJdmFyIG5ld0Nocm9tZVN0 YXRlPShjaHJvbWVTdGF0ZT09Ik1pbmltaXplZCIpID8gIjEiIDogIjAiOw0KCWRv Y3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT0xheW91dF9M YXlvdXRDaGFuZ2VzLnZhbHVlPXdlYlBhcnRHVUlEKyIsY2hyb21lU3RhdGUsIitu ZXdDaHJvbWVTdGF0ZTsNCglkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZv cm1OYW1lXS5NU09XZWJQYXJ0UGFnZV9Qb3N0YmFja1NvdXJjZS52YWx1ZT1zb3Vy Y2U7DQoJX19kb1Bvc3RCYWNrKE1TT1dlYlBhcnRQYWdlRm9ybU5hbWUsICcnKTsN Cn0NCmZ1bmN0aW9uIE1TT0xheW91dF9SZW1vdmVXZWJQYXJ0RG93bkxldmVsKHdl YlBhcnRHVUlELCBpc1NlbGVjdGVkKQ0Kew0KCWRvY3VtZW50LmZvcm1zW01TT1dl YlBhcnRQYWdlRm9ybU5hbWVdLk1TT0xheW91dF9MYXlvdXRDaGFuZ2VzLnZhbHVl PXdlYlBhcnRHVUlEKyIsaXNJbmNsdWRlZCxGYWxzZSI7DQoJZG9jdW1lbnQuZm9y bXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPV2ViUGFydFBhZ2VfUG9zdGJh Y2tTb3VyY2UudmFsdWU9MjI7DQoJaWYoaXNTZWxlY3RlZCkNCgl7DQoJCU1TT1Rs UG5fU2hvd1Rvb2xQYW5lMignQnJvd3NlJyk7DQoJfQ0KCWVsc2UNCgl7DQoJCV9f ZG9Qb3N0QmFjayhNU09XZWJQYXJ0UGFnZUZvcm1OYW1lLCAnJyk7DQoJfQ0KfQ0K dmFyIE1TT0xheW91dF9pbkRlc2lnbk1vZGU9ZmFsc2U7DQp2YXIgTVNPTGF5b3V0 X2N1cnJlbnREcmFnTW9kZT0wOw0KdmFyIE1TT0xheW91dF96b25lRHJhZ092ZXI9 MDsNCnZhciBNU09MYXlvdXRfcm93VG9Ecm9wPTA7DQp2YXIgTVNPTGF5b3V0X2Nl bGxUb0Ryb3A9MDsNCnZhciBNU09MYXlvdXRfb0Ryb3BMb2NhdGlvbj0wOw0KdmFy IE1TT0xheW91dF9pQmFyPShkb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9bnVsbCA/ IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogbnVsbCk7DQp2YXIgTVNP TGF5b3V0X2hvcnpab25lSUJhcj0wOw0KdmFyIE1TT0xheW91dF92ZXJ0Wm9uZUlC YXI9MDsNCnZhciBNU09MYXlvdXRfaG9yekJvZHlab25lSUJhcj0wOw0KdmFyIE1T T0xheW91dF92ZXJ0Qm9keVpvbmVJQmFyPTA7DQp2YXIgTVNPTGF5b3V0X21vdmVP YmplY3Q9MDsNCnZhciBNU09MYXlvdXRfbWFpbnRhaW5PcmlnaW5hbFpvbmU9MDsN CnZhciBNU09MYXlvdXRfdG9wT2JqZWN0PWRvY3VtZW50LmJvZHk7DQp2YXIgTVNP TGF5b3V0X2dhbGxlcnlWaWV3PTA7DQp2YXIgTVNPTGF5b3V0X3Vuc2F2ZWRDaGFu Z2VzPW5ldyBBcnJheSgpOw0KdmFyIE1TT0xheW91dF9Gb3JtU3VibWl0PW51bGw7 DQp2YXIgTWVudVdlYlBhcnRJRD1udWxsOw0KdmFyIE1lbnVXZWJQYXJ0PW51bGw7 DQp2YXIgTVNPQ29ubl9Tb3VyY2VXcE5vZGU9bnVsbDsNCnZhciBNU09Db25uX1Rh cmdldFdwTm9kZT1udWxsOw0KdmFyIE1TT0Nvbm5fWGZvcm1JbmZvMT1udWxsOw0K dmFyIE1TT0Nvbm5fWGZvcm1JbmZvMj1udWxsOw0KdmFyIE1TT0Nvbm5fQXNwWGZv cm1JbmZvPW51bGw7DQp2YXIgTVNPQ29ubl9Db25uQ2FuY2VsbGVkPWZhbHNlOw0K dmFyIE1TT0Nvbm5fTXVsdGlwbGVUYXJnZXRHcm91cHM9ZmFsc2U7DQp2YXIgTVNP Q29ubl9UYXJnZXRHcm91cE5vZGU9bnVsbDsNCnZhciBNU09Db25uX1NvdXJjZUdy b3VwTm9kZT1udWxsOw0KdmFyIE1TT0Nvbm5fQmFja0J1dHRvbkNsaWNrZWQ9ZmFs c2U7DQpmdW5jdGlvbiBNU09MYXlvdXRfUmVtb3ZlUXVlcnlQYXJhbWV0ZXJzRnJv bVVybCh1cmwpDQp7DQoJdXJsPVJlbW92ZVF1ZXJ5UGFyYW1ldGVyRnJvbVVybCh1 cmwsICJbcHxQXVthfEFdW2d8R11bZXxFXVt2fFZdW2l8SV1bZXxFXVt3fFddIik7 DQoJdXJsPVJlbW92ZVF1ZXJ5UGFyYW1ldGVyRnJvbVVybCh1cmwsICJbdFRdW29P XVtbb09dW2xMXVtwUF1bYUFdW25OXVtlRV1bdlZdW2lFXVtlRV1bd1ddIik7DQoJ dXJsPVJlbW92ZVF1ZXJ5UGFyYW1ldGVyRnJvbVVybCh1cmwsICJbZERdW2lJXVtz U11bcFBdW2xMXVthQV1beVldW21NXVtvT11bZERdW2VFXSIpOw0KCXJldHVybiB1 cmw7DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfQ2hhbmdlTGF5b3V0TW9kZShiUGVy c29uYWxWaWV3LCBiRXhpdERlc2lnbk1vZGUpDQp7DQoJaWYoYlBlcnNvbmFsVmll dyAhPW51bGwpDQoJew0KCQkJCU1TT0xheW91dF9TYXZlQ2hhbmdlcygpOw0KCQl2 YXIgdXJsPWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLmFj dGlvbjsNCgkJdXJsPVJlbW92ZVF1ZXJ5UGFyYW1ldGVyRnJvbVVybCh1cmwsICJb cHxQXVthfEFdW2d8R11bZXxFXVt2fFZdW2l8SV1bZXxFXVt3fFddIik7DQoJCXVy bD1SZW1vdmVRdWVyeVBhcmFtZXRlckZyb21VcmwodXJsLCAiW3RUXVtvT11bW29P XVtsTF1bcFBdW2FBXVtuTl1bZUVdW3ZWXVtpRV1bZUVdW3dXXSIpOw0KCQl1cmw9 UmVtb3ZlUXVlcnlQYXJhbWV0ZXJGcm9tVXJsKHVybCwgIltkRF1baUldW3NTXVtw UF1bbExdW2FBXVt5WV1bbU1dW29PXVtkRF1bZUVdIik7DQoJCWlmICh1cmwuaW5k ZXhPZigiPyIpIDwgMCkNCgkJCXVybCs9Ij8iOw0KCQllbHNlDQoJCQl1cmwrPSIm IjsNCgkJaWYoYlBlcnNvbmFsVmlldz09dHJ1ZSkNCgkJew0KCQkJZG9jdW1lbnQu Zm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0X0luRGVzaWdu TW9kZS52YWx1ZT0xOw0KCQkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VG b3JtTmFtZV0uTVNPU1BXZWJQYXJ0TWFuYWdlcl9EaXNwbGF5TW9kZU5hbWUudmFs dWU9J0Rlc2lnbic7DQoJCQl1cmwrPSJQYWdlVmlldz1QZXJzb25hbCI7DQoJCQlk b2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5hY3Rpb249dXJs Ow0KCQl9DQoJCWVsc2UNCgkJew0KCQkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFy dFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0X0luRGVzaWduTW9kZS52YWx1ZT0xOw0K CQkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPU1BX ZWJQYXJ0TWFuYWdlcl9EaXNwbGF5TW9kZU5hbWUudmFsdWU9J0Rlc2lnbic7DQoJ CQl1cmwrPSJQYWdlVmlldz1TaGFyZWQiOw0KCQkJZG9jdW1lbnQuZm9ybXNbTVNP V2ViUGFydFBhZ2VGb3JtTmFtZV0uYWN0aW9uPXVybDsNCgkJfQ0KCX0gZWxzZSBp ZiAoYkV4aXREZXNpZ25Nb2RlICE9bnVsbCAmJiBiRXhpdERlc2lnbk1vZGUpDQoJ ew0KCQl2YXIgdXJsPWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5h bWVdLmFjdGlvbjsNCgkJdXJsPVJlbW92ZVF1ZXJ5UGFyYW1ldGVyRnJvbVVybCh1 cmwsICJbdFRdW29PXVtbb09dW2xMXVtwUF1bYUFdW25OXVtlRV1bdlZdW2lFXVtl RV1bd1ddIik7DQoJCXVybD1SZW1vdmVRdWVyeVBhcmFtZXRlckZyb21VcmwodXJs LCAiW2REXVtpSV1bc1NdW3BQXVtsTF1bYUFdW3lZXVttTV1bb09dW2REXVtlRV0i KTsNCgkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNP V2ViUGFydFBhZ2VfU2hhcmVkLnZhbHVlPSIiOw0KCQlkb2N1bWVudC5mb3Jtc1tN U09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09MYXlvdXRfSW5EZXNpZ25Nb2RlLnZh bHVlPTA7DQoJCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVd Lk1TT1NQV2ViUGFydE1hbmFnZXJfRGlzcGxheU1vZGVOYW1lLnZhbHVlPSdCcm93 c2UnOw0KCQlkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5h Y3Rpb249dXJsOw0KCX0NCglfX2RvUG9zdEJhY2soTVNPV2ViUGFydFBhZ2VGb3Jt TmFtZSwgJycpOw0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X1RvZ2dsZUxheW91dE1v ZGUoKQ0Kew0KCXZhciBpbkRlc2lnbk1vZGU9ZG9jdW1lbnQuZm9ybXNbTVNPV2Vi UGFydFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0X0luRGVzaWduTW9kZS52YWx1ZTsN CglpZihpbkRlc2lnbk1vZGUgIT0xKQ0KCXsNCgkJZG9jdW1lbnQuZm9ybXNbTVNP V2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0X0luRGVzaWduTW9kZS52YWx1 ZT0xOw0KCQlkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5N U09TUFdlYlBhcnRNYW5hZ2VyX0Rpc3BsYXlNb2RlTmFtZS52YWx1ZT0nRGVzaWdu JzsNCgl9DQoJZWxzZQ0KCXsNCgkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBh Z2VGb3JtTmFtZV0uTVNPTGF5b3V0X0luRGVzaWduTW9kZS52YWx1ZT0wOw0KCQlk b2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09TUFdlYlBh cnRNYW5hZ2VyX0Rpc3BsYXlNb2RlTmFtZS52YWx1ZT0nQnJvd3NlJzsNCgl9DQoJ X19kb1Bvc3RCYWNrKE1TT1dlYlBhcnRQYWdlRm9ybU5hbWUsICcnKTsNCn0NCmZ1 bmN0aW9uIE1TT0xheW91dF9Ub2dnbGVWaWV3KGJQZXJzb25hbFZpZXcpDQp7DQoJ dmFyIHVybD1kb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5h Y3Rpb247DQoJdXJsPU1TT0xheW91dF9SZW1vdmVRdWVyeVBhcmFtZXRlcnNGcm9t VXJsKHVybCk7DQoJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFt ZV0uYWN0aW9uPXVybDsNCglpZihiUGVyc29uYWxWaWV3PT10cnVlKQ0KCXsNCgkJ ZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPV2ViUGFy dFBhZ2VfU2hhcmVkLnZhbHVlPSJmYWxzZSI7DQoJfQ0KCWVsc2UNCgl7DQoJCWRv Y3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT1dlYlBhcnRQ YWdlX1NoYXJlZC52YWx1ZT0idHJ1ZSI7DQoJfQ0KCWRvY3VtZW50LmZvcm1zW01T T1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT0xheW91dF9JbkRlc2lnbk1vZGUudmFs dWU9MDsNCglkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5N U09TUFdlYlBhcnRNYW5hZ2VyX0Rpc3BsYXlNb2RlTmFtZS52YWx1ZT0nQnJvd3Nl JzsNCglfX2RvUG9zdEJhY2soTVNPV2ViUGFydFBhZ2VGb3JtTmFtZSwgJycpOw0K fQ0KZnVuY3Rpb24gTVNPTGF5b3V0X1NldHVwTGF5b3V0RmxhZ3MoKQ0Kew0KCU1T T0xheW91dF9pbkRlc2lnbk1vZGU9dHJ1ZTsNCglNU09MYXlvdXRfdG9wT2JqZWN0 PShkb2N1bWVudC5ib2R5LmFsbC5pdGVtKCdNU09UbFBuX1dlYlBhcnRQYWdlRGl2 JykgIT1udWxsKSA/DQoJCQkJCQkJCWRvY3VtZW50LmJvZHkuYWxsLml0ZW0oJ01T T1RsUG5fV2ViUGFydFBhZ2VEaXYnKSA6DQoJCQkJCQkJCWRvY3VtZW50LmJvZHk7 DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfR2V0UmVhbE9mZnNldChTdGFydGluZ09i amVjdCxPZmZzZXRUeXBlLCBFbmRQYXJlbnQpDQp7DQoJdmFyIHJlYWxWYWx1ZT0w Ow0KCWlmKCFFbmRQYXJlbnQpIEVuZFBhcmVudD1kb2N1bWVudC5ib2R5Ow0KCWZv ciAodmFyIGN1cnJlbnRPYmplY3Q9U3RhcnRpbmdPYmplY3Q7IGN1cnJlbnRPYmpl Y3QgIT1FbmRQYXJlbnQgJiYgY3VycmVudE9iamVjdCAhPWRvY3VtZW50LmJvZHk7 IGN1cnJlbnRPYmplY3Q9Y3VycmVudE9iamVjdC5vZmZzZXRQYXJlbnQpDQoJew0K CQlyZWFsVmFsdWUrPWV2YWwoJ2N1cnJlbnRPYmplY3Qub2Zmc2V0JytPZmZzZXRU eXBlKQ0KCX0NCglyZXR1cm4gcmVhbFZhbHVlOw0KfQ0KZnVuY3Rpb24gTVNPTGF5 b3V0X01vdmVXZWJQYXJ0U3RhcnQoWm9uZVRhYmxlQ2VsbCwgV2ViUGFydENhcHRp b24sIEdhbGxlcnkpDQp7DQoJaWYgKGV2ZW50LmJ1dHRvbiAhPTEpIHJldHVybjsN CglNU09MYXlvdXRfY3VycmVudERyYWdNb2RlPSdtb3ZlJzsNCglkb2N1bWVudC5z ZWxlY3Rpb24uZW1wdHkoKTsNCglNU09MYXlvdXRfZ2FsbGVyeVZpZXc9KEdhbGxl cnk9PXRydWUpID8gdHJ1ZSA6IGZhbHNlOw0KCU1TT0xheW91dF9DcmVhdGVEcmFn T2JqZWN0KFdlYlBhcnRDYXB0aW9uKTsNCglNU09MYXlvdXRfQ3JlYXRlSUJhcigp Ow0KCU1TT0xheW91dF9vRHJvcExvY2F0aW9uPVpvbmVUYWJsZUNlbGw7DQoJTVNP TGF5b3V0X21haW50YWluT3JpZ2luYWxab25lPShab25lVGFibGVDZWxsLmFsbG93 Wm9uZUNoYW5nZT09JzAnKSA/IE1TT0xheW91dF9HZXRQYXJlbnRUYWJsZShab25l VGFibGVDZWxsKSA6ICcwJzsNCglpZiAoTVNPTGF5b3V0X2dhbGxlcnlWaWV3ICYm IFpvbmVUYWJsZUNlbGwuZHpjICE9bnVsbCkNCgl7DQoJCXZhciB6b25lcz1kb2N1 bWVudC5hbGxbJ01TT1pvbmUnXTsNCgkJaWYgKHpvbmVzICE9bnVsbCAmJiB6b25l cy5sZW5ndGggPiAxKQ0KCQl7DQoJCQlmb3IgKGk9MDsgaTx6b25lcy5sZW5ndGg7 IGkrKykNCgkJCQlpZiAoem9uZXNbaV0uem9uZUlEPT1ab25lVGFibGVDZWxsLnpv bmVpZCkNCgkJCQl7DQoJCQkJCU1TT0xheW91dF9tYWludGFpbk9yaWdpbmFsWm9u ZT16b25lc1tpXTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQl9DQoJfQ0KCU1TT0xh eW91dF9pQmFyLmdvb2REcm9wPSdmYWxzZSc7DQoJdmFyIHpvbmU9TVNPTGF5b3V0 X0dldFBhcmVudFRhYmxlKFpvbmVUYWJsZUNlbGwpOw0KCWlmKHpvbmUuaWQ9PSdN U09ab25lJykNCgl7DQoJCU1TT0xheW91dF96b25lRHJhZ092ZXI9em9uZTsNCgkJ TVNPTGF5b3V0X3pvbmVEcmFnT3Zlci5jbGFzc05hbWU9Im1zLVNQWm9uZVNlbGVj dGVkIjsNCgl9DQoJaWYoIU1TT0xheW91dF9nYWxsZXJ5VmlldykNCgl7DQoJCU1T T0xheW91dF9Nb3ZlSUJhcihab25lVGFibGVDZWxsKTsNCgl9DQoJZG9jdW1lbnQu Ym9keS5hdHRhY2hFdmVudCgnb25kcmFnb3ZlcicsIE1TT0xheW91dF9Nb3ZlV2Vi UGFydEJvZHlEcmFnT3Zlcik7DQoJdmFyIG9sZERyYWdFbmQ9ZG9jdW1lbnQuYm9k eS5vbmRyYWdlbmQ7DQoJdmFyIG9sZERyb3A9ZG9jdW1lbnQuYm9keS5vbmRyb3A7 DQoJZG9jdW1lbnQuYm9keS5vbmRyYWdlbmQ9bmV3IEZ1bmN0aW9uKCJ3aW5kb3cu ZXZlbnQucmV0dXJuVmFsdWU9ZmFsc2U7Iik7DQoJZG9jdW1lbnQuYm9keS5vbmRy b3A9bmV3IEZ1bmN0aW9uKCJNU09MYXlvdXRfaUJhci5nb29kRHJvcD0ndHJ1ZSc7 Iik7DQoJWm9uZVRhYmxlQ2VsbC5vbmRyYWdzdGFydD1uZXcgRnVuY3Rpb24oInRy eSB7ZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9J21vdmUnO30gY2F0 Y2ggKGV4Y2VwdGlvbikge30iKTsNCglab25lVGFibGVDZWxsLmF0dGFjaEV2ZW50 KCJvbmRyYWciLE1TT0xheW91dF9Nb3ZlRHJhZ09iamVjdCk7DQoJWm9uZVRhYmxl Q2VsbC5kcmFnRHJvcCgpOw0KCWRvY3VtZW50LmJvZHkuZGV0YWNoRXZlbnQoJ29u ZHJhZ292ZXInLCBNU09MYXlvdXRfTW92ZVdlYlBhcnRCb2R5RHJhZ092ZXIpOw0K CWRvY3VtZW50LmJvZHkub25kcmFnZW5kPW9sZERyYWdFbmQ7DQoJZG9jdW1lbnQu Ym9keS5vbmRyb3A9b2xkRHJvcDsNCglab25lVGFibGVDZWxsLmRldGFjaEV2ZW50 KCJvbmRyYWciLE1TT0xheW91dF9Nb3ZlRHJhZ09iamVjdCk7DQoJTVNPTGF5b3V0 X21vdmVPYmplY3Quc3R5bGUuZGlzcGxheT0nbm9uZSc7DQoJTVNPTGF5b3V0X2N1 cnJlbnREcmFnTW9kZT0wOw0KCWlmKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dl ckNhc2UoKS5pbmRleE9mKCJtc2llIDUuNSIpICE9LTEpDQoJew0KCQlab25lVGFi bGVDZWxsLnN3YXBOb2RlKFpvbmVUYWJsZUNlbGwpOw0KCX0NCglldmVudC5yZXR1 cm5WYWx1ZT1mYWxzZTsNCn0NCmZ1bmN0aW9uIE1TT0xheW91dF9Nb3ZlV2ViUGFy dERyYWdab25lRW50ZXIoWm9uZVRhYmxlKQ0Kew0KCWlmKE1TT0xheW91dF9jdXJy ZW50RHJhZ01vZGUgIT0nbW92ZScpIHJldHVybjsNCglpZihab25lVGFibGUgIT1N U09MYXlvdXRfem9uZURyYWdPdmVyKQ0KCXsNCgkJTVNPTGF5b3V0X3pvbmVEcmFn T3Zlci5jbGFzc05hbWU9J21zLVNQWm9uZSc7DQoJCU1TT0xheW91dF96b25lRHJh Z092ZXI9Wm9uZVRhYmxlOw0KCQlldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVj dD0nbW92ZSc7DQoJfQ0KCU1TT0xheW91dF9Nb3ZlV2ViUGFydFN0b3BFdmVudEJ1 YmJsZSgpDQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfTW92ZVdlYlBhcnREcmFnRW50 ZXIoWm9uZVRhYmxlQ2VsbCkNCnsNCglpZihNU09MYXlvdXRfY3VycmVudERyYWdN b2RlICE9J21vdmUnKSByZXR1cm47DQoJZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BF ZmZlY3Q9J21vdmUnOw0KCU1TT0xheW91dF9jZWxsVG9Ecm9wPVpvbmVUYWJsZUNl bGwuY2VsbEluZGV4Ow0KCU1TT0xheW91dF9yb3dUb0Ryb3A9TVNPTGF5b3V0X0dl dFBhcmVudFJvdyhab25lVGFibGVDZWxsKS5yb3dJbmRleDsNCn0NCmZ1bmN0aW9u IE1TT0xheW91dF9Nb3ZlV2ViUGFydERyYWdPdmVyKFpvbmVUYWJsZUNlbGwsTmVl ZHNTZXR1cCkNCnsNCglpZihNU09MYXlvdXRfY3VycmVudERyYWdNb2RlICE9J21v dmUnKSByZXR1cm47DQoJZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9J21v dmUnOw0KCXZhciBuZWVkU2V0dXA9KE5lZWRzU2V0dXA9PSJUcnVlIik/IHRydWU6 ZmFsc2U7DQoJTVNPTGF5b3V0X1NldHVwRHJvcExvY2F0aW9uKFpvbmVUYWJsZUNl bGwsIG5lZWRTZXR1cCk7DQoJTVNPTGF5b3V0X29Ecm9wTG9jYXRpb249TVNPTGF5 b3V0X3pvbmVEcmFnT3Zlci5yb3dzW01TT0xheW91dF9yb3dUb0Ryb3BdLmNlbGxz W01TT0xheW91dF9jZWxsVG9Ecm9wXTsNCglNU09MYXlvdXRfTW92ZUlCYXIoTVNP TGF5b3V0X29Ecm9wTG9jYXRpb24pOw0KCWlmKE1TT0xheW91dF9nYWxsZXJ5Vmll dyAmJiBNU09MYXlvdXRfbWFpbnRhaW5PcmlnaW5hbFpvbmU9PScwJykgTVNPTGF5 b3V0X1VwZGF0ZVpvbmVEcm9wRG93bigpOw0KCU1TT0xheW91dF9Nb3ZlV2ViUGFy dFN0b3BFdmVudEJ1YmJsZSgpDQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfTW92ZVdl YlBhcnRCb2R5RHJhZ092ZXIoKQ0Kew0KCWlmKE1TT0xheW91dF9jdXJyZW50RHJh Z01vZGUgIT0nbW92ZScpIHJldHVybjsNCglldmVudC5kYXRhVHJhbnNmZXIuZHJv cEVmZmVjdD0nbm9uZSc7DQoJTVNPTGF5b3V0X2lCYXIuc3R5bGUuZGlzcGxheT0n bm9uZSc7DQoJaWYoTVNPTGF5b3V0X3pvbmVEcmFnT3Zlci5jbGFzc05hbWUgIT0n bXMtU1Bab25lJykgTVNPTGF5b3V0X3pvbmVEcmFnT3Zlci5jbGFzc05hbWU9J21z LVNQWm9uZSc7DQoJd2luZG93LmV2ZW50LnJldHVyblZhbHVlPWZhbHNlOw0KfQ0K ZnVuY3Rpb24gTVNPTGF5b3V0X01vdmVXZWJQYXJ0U3RvcEV2ZW50QnViYmxlKCkN CnsNCglpZihNU09MYXlvdXRfY3VycmVudERyYWdNb2RlICE9J21vdmUnIHx8IE1T T0xheW91dF9pQmFyLnN0eWxlLmRpc3BsYXk9PSdub25lJykgIHJldHVybjsNCgl3 aW5kb3cuZXZlbnQucmV0dXJuVmFsdWU9ZmFsc2U7DQoJd2luZG93LmV2ZW50LmNh bmNlbEJ1YmJsZT10cnVlOw0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X01vdmVXZWJQ YXJ0KE9yaWdpbmFsVGFibGVDZWxsLERlc3RpbmF0aW9uVGFibGVDZWxsKQ0Kew0K CU1TT0xheW91dF9pQmFyLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KCU1TT0xheW91 dF96b25lRHJhZ092ZXIuY2xhc3NOYW1lPSdtcy1TUFpvbmUnOw0KCWlmKE1TT0xh eW91dF9jdXJyZW50RHJhZ01vZGUgIT0nbW92ZScNCgkJfHwgTVNPTGF5b3V0X2lC YXIuZ29vZERyb3AgIT0ndHJ1ZScNCgkJfHwgT3JpZ2luYWxUYWJsZUNlbGw9PURl c3RpbmF0aW9uVGFibGVDZWxsKSByZXR1cm47DQoJdmFyIG5ld1RhYmxlQ2VsbDsJ CQkJCQkJCQkNCgl2YXIgb3JpZ2luYWxab25lPU1TT0xheW91dF9HZXRQYXJlbnRU YWJsZShPcmlnaW5hbFRhYmxlQ2VsbCk7CQ0KCXZhciBvcmlnaW5hbEluZGV4PShP cmlnaW5hbFRhYmxlQ2VsbC5vcmllbnRhdGlvbj09J0hvcml6b250YWwnKSA/IE9y aWdpbmFsVGFibGVDZWxsLmNlbGxJbmRleCA6IE9yaWdpbmFsVGFibGVDZWxsLnBh cmVudEVsZW1lbnQucm93SW5kZXg7DQoJdmFyIGRlc3RpbmF0aW9uWm9uZTsJCQkJ CQkJCQkNCgl2YXIgZGVzdGluYXRpb25JbmRleDsJCQkJCQkJCQkNCglkZXN0aW5h dGlvblpvbmU9TVNPTGF5b3V0X0dldFBhcmVudFRhYmxlKERlc3RpbmF0aW9uVGFi bGVDZWxsKTsNCgl2YXIgem9uZXNDaGFuZ2VkPShkZXN0aW5hdGlvblpvbmUgIT1v cmlnaW5hbFpvbmUpOw0KCWlmKERlc3RpbmF0aW9uVGFibGVDZWxsLm9yaWVudGF0 aW9uPT0nSG9yaXpvbnRhbCcpDQoJew0KCQlkZXN0aW5hdGlvbkluZGV4PURlc3Rp bmF0aW9uVGFibGVDZWxsLmNlbGxJbmRleDsNCgkJbmV3VGFibGVDZWxsPU1TT0xh eW91dF9HZXRQYXJlbnRSb3coRGVzdGluYXRpb25UYWJsZUNlbGwpLmluc2VydENl bGwoZGVzdGluYXRpb25JbmRleCk7DQoJfQ0KCWVsc2UNCgl7DQoJCWRlc3RpbmF0 aW9uSW5kZXg9RGVzdGluYXRpb25UYWJsZUNlbGwucGFyZW50RWxlbWVudC5yb3dJ bmRleDsNCgkJbmV3VGFibGVDZWxsPWRlc3RpbmF0aW9uWm9uZS5pbnNlcnRSb3co TVNPTGF5b3V0X0dldFBhcmVudFJvdyhEZXN0aW5hdGlvblRhYmxlQ2VsbCkucm93 SW5kZXgpLmluc2VydENlbGwoKTsNCgl9DQoJbmV3VGFibGVDZWxsLnN3YXBOb2Rl KE9yaWdpbmFsVGFibGVDZWxsKTsNCglpZihPcmlnaW5hbFRhYmxlQ2VsbC5vcmll bnRhdGlvbj09J0hvcml6b250YWwnKSBuZXdUYWJsZUNlbGwucmVtb3ZlTm9kZSh0 cnVlKTsNCgllbHNlIE1TT0xheW91dF9HZXRQYXJlbnRSb3cobmV3VGFibGVDZWxs KS5yZW1vdmVOb2RlKHRydWUpOw0KCU9yaWdpbmFsVGFibGVDZWxsLm9yaWVudGF0 aW9uPURlc3RpbmF0aW9uVGFibGVDZWxsLm9yaWVudGF0aW9uOw0KCWlmKHpvbmVz Q2hhbmdlZCkNCgl7DQoJCXZhciBvcmlnaW5hbEVtcHR5Wm9uZVRleHQ9b3JpZ2lu YWxab25lLmFsbC5pdGVtKCdNU09ab25lQ2VsbF9lbXB0eVpvbmVUZXh0Jyk7DQoJ CXZhciBkZXN0aW5hdGlvbkVtcHR5Wm9uZVRleHQ9ZGVzdGluYXRpb25ab25lLmFs bC5pdGVtKCdNU09ab25lQ2VsbF9lbXB0eVpvbmVUZXh0JykNCgkJaWYob3JpZ2lu YWxFbXB0eVpvbmVUZXh0ICE9bnVsbCkNCgkJew0KCQkJb3JpZ2luYWxFbXB0eVpv bmVUZXh0LndlYlBhcnRzSW5ab25lLS07DQoJCQlpZihvcmlnaW5hbEVtcHR5Wm9u ZVRleHQud2ViUGFydHNJblpvbmU9PTApDQoJCQl7DQoJCQkJb3JpZ2luYWxFbXB0 eVpvbmVUZXh0LnN0eWxlLmRpc3BsYXk9Jyc7DQoJCQkJb3JpZ2luYWxFbXB0eVpv bmVUZXh0LnBhcmVudEVsZW1lbnQuc3R5bGUucGFkZGluZz0nJzsNCgkJCX0NCgkJ fQ0KCQlpZihkZXN0aW5hdGlvbkVtcHR5Wm9uZVRleHQgIT1udWxsKQ0KCQl7DQoJ CQlkZXN0aW5hdGlvbkVtcHR5Wm9uZVRleHQud2ViUGFydHNJblpvbmUrKzsNCgkJ CWRlc3RpbmF0aW9uRW1wdHlab25lVGV4dC5zdHlsZS5kaXNwbGF5PSdub25lJzsN CgkJCWRlc3RpbmF0aW9uRW1wdHlab25lVGV4dC5wYXJlbnRFbGVtZW50LnN0eWxl LnBhZGRpbmc9JzAnOw0KCQl9DQoJfQ0KCWlmKHpvbmVzQ2hhbmdlZCB8fCAoZGVz dGluYXRpb25JbmRleCAhPW9yaWdpbmFsSW5kZXggJiYgZGVzdGluYXRpb25JbmRl eCAhPW9yaWdpbmFsSW5kZXgrMSkpDQoJew0KCQlpZihvcmlnaW5hbFpvbmUgIT1k ZXN0aW5hdGlvblpvbmUpDQoJCXsNCgkJCU1TT0xheW91dF9BZGRDaGFuZ2UoZXZh bChPcmlnaW5hbFRhYmxlQ2VsbC5yZWxhdGVkV2ViUGFydCksICJab25lIiwgZGVz dGluYXRpb25ab25lLnpvbmVJRCk7DQoJCQlNU09MYXlvdXRfVXBkYXRlUGFydE9y ZGVyQWZ0ZXJNb3ZlKG9yaWdpbmFsWm9uZSwgMCk7DQoJCX0NCgkJTVNPTGF5b3V0 X1VwZGF0ZVBhcnRPcmRlckFmdGVyTW92ZShkZXN0aW5hdGlvblpvbmUsIDApOw0K CX0NCn0NCmZ1bmN0aW9uIE1TT0xheW91dF9VcGRhdGVQYXJ0T3JkZXJBZnRlck1v dmUoWm9uZSwgU3RhcnRpbmdJbmRleCkNCnsNCgl2YXIgaW5kZXg7DQoJaWYoWm9u ZS5vcmllbnRhdGlvbj09J0hvcml6b250YWwnKQ0KCXsNCgkJdmFyIHBhcmVudFJv dz1ab25lLnJvd3NbMF07DQoJCWZvcihpbmRleD1TdGFydGluZ0luZGV4OyBpbmRl eCA8IHBhcmVudFJvdy5jZWxscy5sZW5ndGg7IGluZGV4KyspDQoJCXsNCgkJCU1T T0xheW91dF9BZGRDaGFuZ2UoZXZhbChwYXJlbnRSb3cuY2VsbHNbaW5kZXhdLnJl bGF0ZWRXZWJQYXJ0KSwgIlpvbmVJbmRleCIsIGluZGV4KTsNCgkJfQ0KCX0NCgll bHNlDQoJew0KCQlmb3IoaW5kZXg9U3RhcnRpbmdJbmRleDsgaW5kZXggPCBab25l LnJvd3MubGVuZ3RoOyBpbmRleCsrKQ0KCQl7DQoJCQlNU09MYXlvdXRfQWRkQ2hh bmdlKGV2YWwoWm9uZS5yb3dzW2luZGV4XS5jZWxsc1swXS5yZWxhdGVkV2ViUGFy dCksICJab25lSW5kZXgiLCBpbmRleCk7DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBN U09MYXlvdXRfQ3JlYXRlRHJhZ09iamVjdChXZWJQYXJ0VGl0bGUpDQp7CQ0KCXZh ciB0aXRsZVRleHQ7DQoJaWYoIU1TT0xheW91dF9tb3ZlT2JqZWN0KQ0KCXsNCgkJ TVNPTGF5b3V0X21vdmVPYmplY3Q9ZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2Vu dEVsZW1lbnQoImFmdGVyQmVnaW4iLCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdE SVYnKSk7DQoJCU1TT0xheW91dF9tb3ZlT2JqZWN0LmNsYXNzTmFtZT0nVXNlckNl bGxTZWxlY3RlZCc7DQoJCU1TT0xheW91dF9tb3ZlT2JqZWN0LnN0eWxlLmNzc1Rl eHQ9ImZvbnQtc2l6ZTo4cHQ7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlk ZGVuO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjEwMCI7DQoJCU1TT0xheW91dF9tb3Zl T2JqZWN0LnN0eWxlLmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj cm9zb2Z0LkFscGhhKG9wYWNpdHk9NzUpIjsNCgkJdGl0bGVUZXh0PU1TT0xheW91 dF9tb3ZlT2JqZWN0Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50 KCdOT0JSJykpOw0KCQl0aXRsZVRleHQuc3R5bGUuY3NzVGV4dD0icGFkZGluZy10 b3A6MnB4O3dpZHRoOjE0N3B4O2hlaWdodDoxLjVlbTtvdmVyZmxvdzpoaWRkZW47 dGV4dC1vdmVyZmxvdzplbGxpcHNpcyI7DQoJfQ0KCWVsc2UgdGl0bGVUZXh0PU1T T0xheW91dF9tb3ZlT2JqZWN0LmNoaWxkcmVuKDApOw0KCXRpdGxlVGV4dC5pbm5l clRleHQ9V2ViUGFydFRpdGxlOw0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X01vdmVE cmFnT2JqZWN0KCkNCnsNCglpZihNU09MYXlvdXRfY3VycmVudERyYWdNb2RlICE9 J21vdmUnKSByZXR1cm47DQoJaWYoTVNPTGF5b3V0X21vdmVPYmplY3Quc3R5bGUu ZGlzcGxheT09J25vbmUnKSBNU09MYXlvdXRfbW92ZU9iamVjdC5zdHlsZS5kaXNw bGF5PScnOw0KCWlmKE1TT0xheW91dF9tb3ZlT2JqZWN0LnN0eWxlLndpZHRoPT0n JykNCgl7DQoJCU1TT0xheW91dF9tb3ZlT2JqZWN0LnJlYWxXaWR0aD1NU09MYXlv dXRfbW92ZU9iamVjdC5vZmZzZXRXaWR0aDsNCgkJTVNPTGF5b3V0X21vdmVPYmpl Y3QucmVhbEhlaWdodD1NU09MYXlvdXRfbW92ZU9iamVjdC5vZmZzZXRIZWlnaHQ7 DQoJfQ0KCXZhciBuZXdXaWR0aD1NU09MYXlvdXRfbW92ZU9iamVjdC5yZWFsV2lk dGg7DQoJdmFyIG5ld0hlaWdodD1NU09MYXlvdXRfbW92ZU9iamVjdC5yZWFsSGVp Z2h0Ow0KCXZhciBuZXdMZWZ0PWV2ZW50LmNsaWVudFgrZG9jdW1lbnQuYm9keS5z Y3JvbGxMZWZ0IC0gKG5ld1dpZHRoIC8gMik7DQoJdmFyIG5ld1RvcD1ldmVudC5j bGllbnRZK2RvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKzE7DQoJaWYobmV3TGVmdCtu ZXdXaWR0aCA+IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgpIG5ld1dpZHRoIC09 KG5ld0xlZnQrbmV3V2lkdGggLSBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKTsN CglpZihuZXdUb3ArbmV3SGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWln aHQpIG5ld0hlaWdodCAtPShuZXdUb3ArbmV3SGVpZ2h0IC0gZG9jdW1lbnQuYm9k eS5zY3JvbGxIZWlnaHQpOw0KCWlmKG5ld0hlaWdodCA8PTAgfHwgbmV3V2lkdGgg PD0wKQ0KCXsNCgkJTVNPTGF5b3V0X21vdmVPYmplY3Quc3R5bGUuZGlzcGxheT0n bm9uZSc7DQoJCW5ld1dpZHRoPW5ld0hlaWdodD0wOw0KCX0NCgllbHNlIE1TT0xh eW91dF9tb3ZlT2JqZWN0LnN0eWxlLmRpc3BsYXk9Jyc7DQoJTVNPTGF5b3V0X21v dmVPYmplY3Quc3R5bGUud2lkdGg9bmV3V2lkdGg7DQoJTVNPTGF5b3V0X21vdmVP YmplY3Quc3R5bGUuaGVpZ2h0PW5ld0hlaWdodDsNCglNU09MYXlvdXRfbW92ZU9i amVjdC5zdHlsZS5waXhlbExlZnQ9bmV3TGVmdDsNCglNU09MYXlvdXRfbW92ZU9i amVjdC5zdHlsZS5waXhlbFRvcD1uZXdUb3A7DQp9DQpmdW5jdGlvbiBNU09MYXlv dXRfQ3JlYXRlSUJhcigpDQp7DQoJaWYoIU1TT0xheW91dF92ZXJ0Wm9uZUlCYXIg fHwgIU1TT0xheW91dF9ob3J6Wm9uZUlCYXIpDQoJew0KCQl2YXIgaUJhckJ1aWxk ZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnVEFCTEUnKTsNCgkJaUJhckJ1aWxk ZXIuc3R5bGUuY3NzVGV4dD0iZm9udC1zaXplOjFwdDsgcG9zaXRpb246YWJzb2x1 dGU7IGRpc3BsYXk6bm9uZTsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIjsNCgkJ aUJhckJ1aWxkZXIuY2xhc3NOYW1lPSdtcy1TUFpvbmVJQmFyJzsNCgkJaUJhckJ1 aWxkZXIuY2VsbFNwYWNpbmc9JzAnOw0KCQlpQmFyQnVpbGRlci5jZWxsUGFkZGlu Zz0nMCc7DQoJCWlCYXJCdWlsZGVyLmF0dGFjaEV2ZW50KCdvbmRyYWdlbnRlcics IE1TT0xheW91dF9Nb3ZlV2ViUGFydFN0b3BFdmVudEJ1YmJsZSk7DQoJCWlCYXJC dWlsZGVyLmF0dGFjaEV2ZW50KCdvbmRyYWdvdmVyJywgTVNPTGF5b3V0X01vdmVX ZWJQYXJ0U3RvcEV2ZW50QnViYmxlKTsNCgkJdmFyIGluc2lkZUlCYXJDZWxsPWlC YXJCdWlsZGVyLmluc2VydFJvdygpLmluc2VydENlbGwoKTsNCgkJaW5zaWRlSUJh ckNlbGwuYWxpZ249J2NlbnRlcic7DQoJCXZhciBpbnNpZGVJQmFyPWluc2lkZUlC YXJDZWxsLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdESVYn KSk7DQoJCWluc2lkZUlCYXIuaWQ9Ik1TT0xheW91dF9pbnNpZGVJQmFyIjsNCgkJ aW5zaWRlSUJhci5jbGFzc05hbWU9J21zLVNQWm9uZUlCYXInOw0KCQlpbnNpZGVJ QmFyLnN0eWxlLmJhY2tncm91bmRDb2xvcj1pQmFyQnVpbGRlci5jdXJyZW50U3R5 bGUuYm9yZGVyQ29sb3I7DQoJCWluc2lkZUlCYXIuc3R5bGUuYmFja2dyb3VuZD0i dHJhbnNwYXJlbnQiOw0KCQlpbnNpZGVJQmFyLnN0eWxlLmJvcmRlcldpZHRoPSIy cHgiOw0KCQlpbnNpZGVJQmFyLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7CQkN CgkJTVNPTGF5b3V0X2hvcnpab25lSUJhcj1NU09MYXlvdXRfdG9wT2JqZWN0LmFw cGVuZENoaWxkKGlCYXJCdWlsZGVyLmNsb25lTm9kZSh0cnVlKSk7DQoJCU1TT0xh eW91dF92ZXJ0Wm9uZUlCYXI9TVNPTGF5b3V0X3RvcE9iamVjdC5hcHBlbmRDaGls ZChpQmFyQnVpbGRlci5jbG9uZU5vZGUodHJ1ZSkpOw0KCQl2YXIgaW5zaWRlSG9y eklCYXI9TVNPTGF5b3V0X2hvcnpab25lSUJhci5hbGxbIk1TT0xheW91dF9pbnNp ZGVJQmFyIl07DQoJCXZhciBpbnNpZGVWZXJ0SUJhcj1NU09MYXlvdXRfdmVydFpv bmVJQmFyLmFsbFsiTVNPTGF5b3V0X2luc2lkZUlCYXIiXTsNCgkJTVNPTGF5b3V0 X2hvcnpab25lSUJhci5zdHlsZS53aWR0aD02Ow0KCQlNU09MYXlvdXRfaG9yelpv bmVJQmFyLnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCBub25lIjsNCgkJaW5zaWRl SG9yeklCYXIuc3R5bGUuaGVpZ2h0PScxMDAlJzsNCgkJaW5zaWRlSG9yeklCYXIu c3R5bGUud2lkdGg9JzMzJSc7DQoJCWluc2lkZUhvcnpJQmFyLnN0eWxlLmJvcmRl clN0eWxlPSJub25lIHNvbGlkIG5vbmUgbm9uZSI7DQoJCWluc2lkZUhvcnpJQmFy LnN0eWxlLnBvc1RvcD0wOw0KCQlNU09MYXlvdXRfdmVydFpvbmVJQmFyLnN0eWxl LmhlaWdodD02Ow0KCQlNU09MYXlvdXRfdmVydFpvbmVJQmFyLnN0eWxlLmJvcmRl clN0eWxlPSJub25lIHNvbGlkIjsNCgkJaW5zaWRlVmVydElCYXIuc3R5bGUud2lk dGg9JzEwMCUnOw0KCQlpbnNpZGVWZXJ0SUJhci5zdHlsZS5oZWlnaHQ9JzInOw0K CQlpbnNpZGVWZXJ0SUJhci5zdHlsZS5ib3JkZXJTdHlsZT0ic29saWQgbm9uZSBu b25lIG5vbmUiOw0KCQlpbnNpZGVWZXJ0SUJhci5zdHlsZS5wb3NUb3A9MTsNCgkJ aWYoTVNPTGF5b3V0X3RvcE9iamVjdCAhPWRvY3VtZW50LmJvZHkpDQoJCXsNCgkJ CU1TT0xheW91dF9ob3J6Qm9keVpvbmVJQmFyPWRvY3VtZW50LmJvZHkuYXBwZW5k Q2hpbGQoTVNPTGF5b3V0X2hvcnpab25lSUJhci5jbG9uZU5vZGUodHJ1ZSkpOw0K CQkJTVNPTGF5b3V0X3ZlcnRCb2R5Wm9uZUlCYXI9ZG9jdW1lbnQuYm9keS5hcHBl bmRDaGlsZChNU09MYXlvdXRfdmVydFpvbmVJQmFyLmNsb25lTm9kZSh0cnVlKSk7 DQoJCX0NCgl9DQoJTVNPTGF5b3V0X2lCYXI9TVNPTGF5b3V0X3ZlcnRab25lSUJh cjsNCn0NCmZ1bmN0aW9uIE1TT0xheW91dF9Nb3ZlSUJhcihab25lVGFibGVDZWxs KQ0Kew0KCWlmKE1TT0xheW91dF9pQmFyKSBNU09MYXlvdXRfaUJhci5zdHlsZS5k aXNwbGF5PSdub25lJzsNCgl2YXIgaW5zaWRlTGF5b3V0RGl2PU1TT0xheW91dF90 b3BPYmplY3QuY29udGFpbnMoWm9uZVRhYmxlQ2VsbCk7DQoJaWYoTVNPTGF5b3V0 X21haW50YWluT3JpZ2luYWxab25lPT0nMCcgfHwgTVNPTGF5b3V0X0dldFBhcmVu dFRhYmxlKFpvbmVUYWJsZUNlbGwpPT1NU09MYXlvdXRfbWFpbnRhaW5PcmlnaW5h bFpvbmUpDQoJew0KCQl2YXIgaW5zaWRlSUJhcjsNCgkJaWYoWm9uZVRhYmxlQ2Vs bC5vcmllbnRhdGlvbj09J0hvcml6b250YWwnKQ0KCQl7DQoJCQl2YXIgcmlnaHRP ZmZzZXQ9KChkb2N1bWVudC5kaXI9PSJydGwiKSA/IFpvbmVUYWJsZUNlbGwub2Zm c2V0V2lkdGggLSAoKFpvbmVUYWJsZUNlbGwuY2VsbEluZGV4PT0wKSA/IDMgOiAw KSA6IDApOw0KCQkJTVNPTGF5b3V0X2lCYXI9KGluc2lkZUxheW91dERpdikgPyBN U09MYXlvdXRfaUJhcj1NU09MYXlvdXRfaG9yelpvbmVJQmFyIDogTVNPTGF5b3V0 X2hvcnpCb2R5Wm9uZUlCYXI7DQoJCQlpbnNpZGVJQmFyPU1TT0xheW91dF9pQmFy LmFsbFsiTVNPTGF5b3V0X2luc2lkZUlCYXIiXTsNCgkJCU1TT0xheW91dF9pQmFy LnN0eWxlLnBpeGVsTGVmdD1NU09MYXlvdXRfR2V0UmVhbE9mZnNldChab25lVGFi bGVDZWxsLCAnTGVmdCcsIE1TT0xheW91dF90b3BPYmplY3QpIC0gKChab25lVGFi bGVDZWxsLmNlbGxJbmRleD09MCkgPyAwIDogMyk7DQoJCQlNU09MYXlvdXRfaUJh ci5zdHlsZS5waXhlbExlZnQrPXJpZ2h0T2Zmc2V0Ow0KCQkJTVNPTGF5b3V0X2lC YXIuc3R5bGUucGl4ZWxUb3A9TVNPTGF5b3V0X0dldFJlYWxPZmZzZXQoTVNPTGF5 b3V0X3pvbmVEcmFnT3ZlciwgJ1RvcCcsIE1TT0xheW91dF90b3BPYmplY3QpKzE7 DQoJCQlNU09MYXlvdXRfaUJhci5zdHlsZS5oZWlnaHQ9TVNPTGF5b3V0X3pvbmVE cmFnT3Zlci5jbGllbnRIZWlnaHQ7DQoJCQlpZihab25lVGFibGVDZWxsLmlkPT0i TVNPWm9uZV9FbXB0eVpvbmVDZWxsIikNCgkJCXsNCgkJCQl2YXIgZW1wdHlab25l VGV4dD1ab25lVGFibGVDZWxsLmFsbC5pdGVtKCdNU09ab25lQ2VsbF9lbXB0eVpv bmVUZXh0Jyk7DQoJCQkJaWYoZW1wdHlab25lVGV4dCAhPW51bGwgJiYgZW1wdHla b25lVGV4dC53ZWJQYXJ0c0luWm9uZSA+IDApDQoJCQkJew0KCQkJCQlNU09MYXlv dXRfaUJhci5zdHlsZS5waXhlbExlZnQgLT0zOw0KCQkJCX0NCgkJCX0NCgkJfQ0K CQllbHNlDQoJCXsNCgkJCU1TT0xheW91dF9pQmFyPShpbnNpZGVMYXlvdXREaXYp ID8gTVNPTGF5b3V0X3ZlcnRab25lSUJhciA6IE1TT0xheW91dF92ZXJ0Qm9keVpv bmVJQmFyOw0KCQkJaW5zaWRlSUJhcj1NU09MYXlvdXRfaUJhci5hbGxbIk1TT0xh eW91dF9pbnNpZGVJQmFyIl07DQoJCQlNU09MYXlvdXRfaUJhci5zdHlsZS5waXhl bExlZnQ9TVNPTGF5b3V0X0dldFJlYWxPZmZzZXQoTVNPTGF5b3V0X3pvbmVEcmFn T3ZlciwgJ0xlZnQnLCBNU09MYXlvdXRfdG9wT2JqZWN0KSsxOw0KCQkJTVNPTGF5 b3V0X2lCYXIuc3R5bGUucGl4ZWxUb3A9TVNPTGF5b3V0X0dldFJlYWxPZmZzZXQo Wm9uZVRhYmxlQ2VsbCwgJ1RvcCcsIE1TT0xheW91dF90b3BPYmplY3QpIC0gKChN U09MYXlvdXRfR2V0UGFyZW50Um93KFpvbmVUYWJsZUNlbGwpLnJvd0luZGV4PT0w KSA/IDAgOiA0KTsNCgkJCU1TT0xheW91dF9pQmFyLnN0eWxlLndpZHRoPU1TT0xh eW91dF96b25lRHJhZ092ZXIuY2xpZW50V2lkdGg7DQoJCQlpZihab25lVGFibGVD ZWxsLmlkPT0iTVNPWm9uZV9FbXB0eVpvbmVDZWxsIikNCgkJCXsNCgkJCQlNU09M YXlvdXRfaUJhci5zdHlsZS5waXhlbFRvcCAtPTE7DQoJCQl9DQoJCX0NCgkJaWYo TVNPTGF5b3V0X3pvbmVEcmFnT3Zlci5jbGFzc05hbWUgIT0nbXMtU1Bab25lU2Vs ZWN0ZWQnKSBNU09MYXlvdXRfem9uZURyYWdPdmVyLmNsYXNzTmFtZT0nbXMtU1Ba b25lU2VsZWN0ZWQnOw0KCQlNU09MYXlvdXRfaUJhci5zdHlsZS5kaXNwbGF5PSdp bmxpbmUnOw0KCX0NCn0NCmZ1bmN0aW9uIE1TT0xheW91dF9VcGRhdGVab25lRHJv cERvd24oKQ0Kew0KCXZhciBkcm9wZD1kb2N1bWVudC5hbGxbem9uZUNob29zZXJJ RF07DQoJaWYoZHJvcGQgIT1udWxsKQ0KCXsNCgkJZm9yIChpPTA7IGk8ZHJvcGQu b3B0aW9ucy5sZW5ndGg7IGkrKykNCgkJew0KCQkJaWYgKGRyb3BkLm9wdGlvbnNb aV0udmFsdWU9PU1TT0xheW91dF96b25lRHJhZ092ZXIuem9uZUlEKQ0KCQkJCWRy b3BkLm9wdGlvbnNbaV0uc2VsZWN0ZWQ9dHJ1ZTsNCgkJfQ0KCX0NCn0NCmZ1bmN0 aW9uIE1TT0xheW91dF9TZXR1cERyb3BMb2NhdGlvbihab25lVGFibGVDZWxsLCBD aGVja1NpemUpDQp7DQoJaWYoWm9uZVRhYmxlQ2VsbC5vcmllbnRhdGlvbj09J1Zl cnRpY2FsJykNCgl7DQoJCXZhciBwYXJlbnRSb3c9TVNPTGF5b3V0X0dldFBhcmVu dFJvdyhab25lVGFibGVDZWxsKTsNCgkJaWYoIXBhcmVudFJvdykgcmV0dXJuOw0K CQlpZihab25lVGFibGVDZWxsLmlkICE9Ik1TT1pvbmVfRW1wdHlab25lQ2VsbCIg JiYgKCFDaGVja1NpemUgfHwgKGV2ZW50LmNsaWVudFkrTVNPTGF5b3V0X3RvcE9i amVjdC5zY3JvbGxUb3AgLSBNU09MYXlvdXRfR2V0UmVhbE9mZnNldChab25lVGFi bGVDZWxsLCAnVG9wJykpID4gKFpvbmVUYWJsZUNlbGwub2Zmc2V0SGVpZ2h0IC8g MikpKQ0KCQkJTVNPTGF5b3V0X3Jvd1RvRHJvcD1wYXJlbnRSb3cucm93SW5kZXgr MTsNCgkJZWxzZQ0KCQkJTVNPTGF5b3V0X3Jvd1RvRHJvcD1wYXJlbnRSb3cucm93 SW5kZXg7DQoJfQ0KCWVsc2UNCgl7DQoJCXZhciBydGxQYWdlPShkb2N1bWVudC5k aXI9PSJydGwiKSwJDQoJCQltYXhDZWxscz1ab25lVGFibGVDZWxsLnBhcmVudEVs ZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGgsDQoJCQluZXh0Q2VsbEluZGV4PVpvbmVU YWJsZUNlbGwuY2VsbEluZGV4KzE7DQoJCWlmKFpvbmVUYWJsZUNlbGwuaWQgIT0i TVNPWm9uZV9FbXB0eVpvbmVDZWxsIiAmJiAoIUNoZWNrU2l6ZSB8fCAoZXZlbnQu Y2xpZW50WCtNU09MYXlvdXRfdG9wT2JqZWN0LnNjcm9sbExlZnQgLSBNU09MYXlv dXRfR2V0UmVhbE9mZnNldChab25lVGFibGVDZWxsLCAnTGVmdCcpKSA+IChab25l VGFibGVDZWxsLm9mZnNldFdpZHRoIC8gMikpKQ0KCQkJTVNPTGF5b3V0X2NlbGxU b0Ryb3A9KHJ0bFBhZ2UpID8gWm9uZVRhYmxlQ2VsbC5jZWxsSW5kZXggOiBab25l VGFibGVDZWxsLmNlbGxJbmRleCsxOw0KCQllbHNlDQoJCXsNCgkJCWlmIChydGxQ YWdlKQkNCgkJCQlNU09MYXlvdXRfY2VsbFRvRHJvcD0obmV4dENlbGxJbmRleCA+ PW1heENlbGxzKSA/IFpvbmVUYWJsZUNlbGwuY2VsbEluZGV4IDogWm9uZVRhYmxl Q2VsbC5jZWxsSW5kZXgrMTsNCgkJCWVsc2UNCgkJCQlNU09MYXlvdXRfY2VsbFRv RHJvcD1ab25lVGFibGVDZWxsLmNlbGxJbmRleDsNCgkJfQ0KCX0NCn0NCmZ1bmN0 aW9uIE1TT0xheW91dF9VcGRhdGVQcm9wZXJ0eVNoZWV0KFdlYlBhcnQsUHJvcGVy dHlOYW1lLFByb3BlcnR5VmFsdWUpDQp7DQoJdmFyIHRvb2xQYW5lPWRvY3VtZW50 LmFsbC5pdGVtKCJNU09UbFBuX01haW5URCIpOw0KCWlmKFdlYlBhcnQuU2VsZWN0 ZWRXZWJQYXJ0ICYmIHRvb2xQYW5lKQ0KCXsNCgkJZm9yKEVsZW1lbnRzPXRvb2xQ YW5lLmFsbCwgRWxlbWVudEluZGV4PTA7IEVsZW1lbnRJbmRleCA8IEVsZW1lbnRz Lmxlbmd0aDsgRWxlbWVudEluZGV4KyspDQoJCXsNCgkJCWlmKEVsZW1lbnRzW0Vs ZW1lbnRJbmRleF0ubGF5b3V0SUQ9PVByb3BlcnR5TmFtZSkNCgkJCXsNCgkJCQlp ZihQcm9wZXJ0eU5hbWU9PSJDaHJvbWVTdGF0ZSIpDQoJCQkJew0KCQkJCQlmb3Io cmFkaW9FbGVtZW50cz1FbGVtZW50c1tFbGVtZW50SW5kZXhdLmFsbCwgcmFkaW9J bmRleD0wOyByYWRpb0luZGV4IDwgIHJhZGlvRWxlbWVudHMubGVuZ3RoOyByYWRp b0luZGV4KyspDQoJCQkJCXsNCgkJCQkJCWlmKHJhZGlvRWxlbWVudHNbcmFkaW9J bmRleF0udmFsdWU9PVByb3BlcnR5VmFsdWUpDQoJCQkJCQl7DQoJCQkJCQkJcmFk aW9FbGVtZW50c1tyYWRpb0luZGV4XS5jaGVja2VkPXRydWU7DQoJCQkJCQkJYnJl YWs7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQkJZWxzZSBpZiAoUHJvcGVy dHlOYW1lPT0iSGVpZ2h0IiB8fCBQcm9wZXJ0eU5hbWU9PSJXaWR0aCIpDQoJCQkJ ew0KCQkJCQlmb3IocmFkaW9FbGVtZW50cz1FbGVtZW50c1tFbGVtZW50SW5kZXhd LmFsbCwgcmFkaW9JbmRleD0wOyByYWRpb0luZGV4IDwgIHJhZGlvRWxlbWVudHMu bGVuZ3RoOyByYWRpb0luZGV4KyspDQoJCQkJCXsNCgkJCQkJCWlmKHJhZGlvRWxl bWVudHNbcmFkaW9JbmRleF0uaWQuaW5kZXhPZigiWWVzT3B0aW9uIikgIT0tMSkN CgkJCQkJCXsNCgkJCQkJCQlyYWRpb0VsZW1lbnRzW3JhZGlvSW5kZXhdLmNoZWNr ZWQ9dHJ1ZTsNCgkJCQkJCX0NCgkJCQkJCWVsc2UgaWYocmFkaW9FbGVtZW50c1ty YWRpb0luZGV4XS5pZC5pbmRleE9mKCJTaXplVGV4dEJveCIpICE9LTEpDQoJCQkJ CQl7DQoJCQkJCQkJcmFkaW9FbGVtZW50c1tyYWRpb0luZGV4XS52YWx1ZT1Qcm9w ZXJ0eVZhbHVlOw0KCQkJCQkJfQ0KCQkJCQkJZWxzZSBpZihyYWRpb0VsZW1lbnRz W3JhZGlvSW5kZXhdLmlkLmluZGV4T2YoIlVuaXRzRHJvcGRvd24iKSAhPS0xKQ0K CQkJCQkJew0KCQkJCQkJCXJhZGlvRWxlbWVudHNbcmFkaW9JbmRleF0udmFsdWU9 IlBpeGVsIjsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJ ew0KCQkJCQlFbGVtZW50c1tFbGVtZW50SW5kZXhdLnZhbHVlPVByb3BlcnR5VmFs dWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0 X01pbmltaXplUmVzdG9yZShXZWJQYXJ0KQ0Kew0KCXZhciBuZXdWYWx1ZTsNCgl2 YXIgbmV3VmFsdWVJbmRleDsNCglpZihXZWJQYXJ0LnN0eWxlLmRpc3BsYXkgIT0n bm9uZScpDQoJew0KCQluZXdWYWx1ZT0nTWluaW1pemVkJzsNCgkJbmV3VmFsdWVJ bmRleD0xOw0KCQlXZWJQYXJ0LnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KCX0NCgll bHNlDQoJew0KCQluZXdWYWx1ZT0nTm9ybWFsJzsNCgkJbmV3VmFsdWVJbmRleD0w Ow0KCQlXZWJQYXJ0LnN0eWxlLmRpc3BsYXk9Jyc7DQoJfQ0KCU1TT0xheW91dF9V cGRhdGVQcm9wZXJ0eVNoZWV0KFdlYlBhcnQsICJDaHJvbWVTdGF0ZSIsIG5ld1Zh bHVlKTsNCglNU09MYXlvdXRfQWRkQ2hhbmdlKFdlYlBhcnQsICJjaHJvbWVTdGF0 ZSIsIG5ld1ZhbHVlSW5kZXgpDQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfUGFnZVZp ZXdlck1pbmltaXplUmVzdG9yZShXZWJQYXJ0LCBQYWdlVmlld2VySUZyYW1lSUQp DQp7DQoJdmFyIFBhZ2VWaWV3ZXJJRnJhbWU9ZG9jdW1lbnQuYWxsLml0ZW0oUGFn ZVZpZXdlcklGcmFtZUlEKTsNCglpZiAoUGFnZVZpZXdlcklGcmFtZSAhPW51bGwp DQoJew0KCQlpZihXZWJQYXJ0LnN0eWxlLmRpc3BsYXkgIT0nbm9uZScpDQoJCXsN CgkJCWlmIChQYWdlVmlld2VySUZyYW1lLnNyYyAhPVBhZ2VWaWV3ZXJJRnJhbWUu ZGRmX3NyYykNCgkJCXsNCgkJCQlQYWdlVmlld2VySUZyYW1lLnNyYz1QYWdlVmll d2VySUZyYW1lLmRkZl9zcmM7DQoJCQl9DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBN U09MYXlvdXRfRmluZEFuY2VzdG9yQnlBdHRyaWJ1dGUoRWxlbWVudCwgQXR0cmli dXRlTmFtZSkNCnsNCgl3aGlsZSAoRWxlbWVudCAhPW51bGwpDQoJew0KCQlpZiAo RWxlbWVudC5nZXRBdHRyaWJ1dGUoQXR0cmlidXRlTmFtZSkgIT1udWxsKQ0KCQkJ YnJlYWs7DQoJCUVsZW1lbnQ9RWxlbWVudC5wYXJlbnRFbGVtZW50OwkNCgl9DQoJ cmV0dXJuIEVsZW1lbnQ7DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfTWluaW1pemVS ZXN0b3JlVG9vbFBhcnQoVG9vbFBhcnQsIHBhcnRUaXRsZSwgc3RySW1nTmFtZSwg c3RyQW5jaG9yTmFtZSwgc3RySW1hZ2VBbmNob3JOYW1lKQ0Kew0KCXZhciBmaWVs ZElEPVRvb2xQYXJ0KydDaHJvbWVTdGF0ZSc7DQoJdmFyIGNvbnRhaW5pbmdGcmFt ZT1Ub29sUGFydCsnQ2hyb21lJzsNCgl2YXIgc3RhdGVGaWVsZFZhbHVlOw0KCXZh ciB0b29sdGlwVGVtcGxhdGU7DQoJaWYoIGRvY3VtZW50LmFsbC5pdGVtKGNvbnRh aW5pbmdGcmFtZSkuc3R5bGUuZGlzcGxheT09J25vbmUnICkNCgl7DQoJCWRvY3Vt ZW50LmFsbC5pdGVtKGNvbnRhaW5pbmdGcmFtZSkuc3R5bGUuZGlzcGxheT0naW5s aW5lJzsNCgkJZG9jdW1lbnQuaW1hZ2VzW3N0ckltZ05hbWVdLnNyYz0nL19sYXlv dXRzL2ltYWdlcy9UUE1pbjEuZ2lmJzsNCgkJdG9vbHRpcFRlbXBsYXRlPU1TT1N0 cmluZ3MuVG9vbFBhcnRDb2xsYXBzZVRvb2xUaXA7DQoJCXN0YXRlRmllbGRWYWx1 ZT0iTm9ybWFsIjsNCgl9DQoJZWxzZQ0KCXsNCgkJZG9jdW1lbnQuYWxsLml0ZW0o Y29udGFpbmluZ0ZyYW1lKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCgkJZG9jdW1l bnQuaW1hZ2VzW3N0ckltZ05hbWVdLnNyYz0nL19sYXlvdXRzL2ltYWdlcy9UUE1h eDEuZ2lmJzsNCgkJdG9vbHRpcFRlbXBsYXRlPU1TT1N0cmluZ3MuVG9vbFBhcnRF eHBhbmRUb29sVGlwOw0KCQlzdGF0ZUZpZWxkVmFsdWU9Ik1pbmltaXplZCI7DQoJ fQ0KCSAgIHZhciB0b29sdGlwU3RyaW5nPXRvb2x0aXBUZW1wbGF0ZS5yZXBsYWNl KCIlMCIsIHBhcnRUaXRsZSk7DQoJICAgZG9jdW1lbnQuaW1hZ2VzW3N0ckltZ05h bWVdLmFsdD10b29sdGlwU3RyaW5nOw0KCSAgIGRvY3VtZW50LmFsbC5pdGVtKHN0 ckltYWdlQW5jaG9yTmFtZSkudGl0bGU9dG9vbHRpcFN0cmluZzsNCgkgICBkb2N1 bWVudC5hbGwuaXRlbShzdHJBbmNob3JOYW1lKS50aXRsZT10b29sdGlwU3RyaW5n Ow0KCWlmKGRvY3VtZW50LmFsbFtmaWVsZElEXSAhPW51bGwpDQoJew0KCQlkb2N1 bWVudC5hbGxbZmllbGRJRF0udmFsdWU9c3RhdGVGaWVsZFZhbHVlOw0KCX0NCn0N CmZ1bmN0aW9uIE1TT0xheW91dF9SZW1vdmVXZWJQYXJ0KHdlYlBhcnQpDQp7DQoJ TVNPTGF5b3V0X0FkZENoYW5nZSh3ZWJQYXJ0LCAiaXNJbmNsdWRlZCIsICJGYWxz ZSIpDQoJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNP V2ViUGFydFBhZ2VfUG9zdGJhY2tTb3VyY2UudmFsdWU9MTk7DQoJaWYod2ViUGFy dC5TZWxlY3RlZFdlYlBhcnQpIE1TT1RsUG5fb25Ub29sUGFuZUNsb3NlQ2xpY2so KTsNCgllbHNlIF9fZG9Qb3N0QmFjayhNU09XZWJQYXJ0UGFnZUZvcm1OYW1lLCAn Jyk7DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfUmVmcmVzaElGcmFtZShJRnJhbWUp DQp7DQoJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNP V2ViUGFydFBhZ2VfUG9zdGJhY2tTb3VyY2UudmFsdWU9MjM7DQoJSUZyYW1lLnNy Yz1JRnJhbWUuc3JjOw0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X0dldFN0eWxlRnJv bUNsYXNzKHNDbGFzcyxzUnVsZSkNCnsNCglkb2N1bWVudC5ib2R5Lmluc2VydEFk amFjZW50SFRNTCggJ2JlZm9yZUVuZCcsICI8ZGl2IHN0eWxlPSdkaXNwbGF5Om5v bmUnIGlkPSd0ZW1wJyBjbGFzcz0nIitzQ2xhc3MrIic+PC9kaXY+Iik7DQoJdmFy IHNSZXR1cm5WYWx1ZT1ldmFsKCd0ZW1wLmN1cnJlbnRTdHlsZS4nK3NSdWxlICk7 DQoJdGVtcC5yZW1vdmVOb2RlKCk7DQoJcmV0dXJuIHNSZXR1cm5WYWx1ZTsNCn0N CmZ1bmN0aW9uIE1TT0xheW91dF9BZGRDaGFuZ2UoV2ViUGFydCxQcm9wZXJ0eSxO ZXdWYWx1ZSkNCnsNCglpZighV2ViUGFydCkgcmV0dXJuOw0KCXZhciBXZWJQYXJ0 R1VJRD1XZWJQYXJ0LldlYlBhcnRJRDsNCglpZihXZWJQYXJ0LmxheW91dENoYW5n ZXMpDQoJew0KCQl2YXIgcHJvcGVydHlJbmRleD1NU09MYXlvdXRfU2VhcmNoQXJy YXkoV2ViUGFydC5sYXlvdXRDaGFuZ2VzLFByb3BlcnR5KTsNCgkJaWYocHJvcGVy dHlJbmRleCAhPS0xKSBXZWJQYXJ0LmxheW91dENoYW5nZXNbcHJvcGVydHlJbmRl eCsxXT1OZXdWYWx1ZTsNCgkJZWxzZQ0KCQl7DQoJCQlXZWJQYXJ0LmxheW91dENo YW5nZXMucHVzaChQcm9wZXJ0eSk7DQoJCQlXZWJQYXJ0LmxheW91dENoYW5nZXMu cHVzaChOZXdWYWx1ZSk7DQoJCX0NCgl9DQoJZWxzZQ0KCXsNCgkJV2ViUGFydC5s YXlvdXRDaGFuZ2VzPW5ldyBBcnJheSgpOw0KCQlXZWJQYXJ0LmxheW91dENoYW5n ZXMucHVzaChQcm9wZXJ0eSk7DQoJCVdlYlBhcnQubGF5b3V0Q2hhbmdlcy5wdXNo KE5ld1ZhbHVlKTsJDQoJfQ0KCWlmKE1TT0xheW91dF9TZWFyY2hBcnJheShNU09M YXlvdXRfdW5zYXZlZENoYW5nZXMsV2ViUGFydEdVSUQpPT0tMSkNCgl7DQoJCU1T T0xheW91dF91bnNhdmVkQ2hhbmdlcy5wdXNoKCgoTVNPTGF5b3V0X3Vuc2F2ZWRD aGFuZ2VzLmxlbmd0aCkgPyAifCIgOiAiIikrV2ViUGFydEdVSUQpOw0KCQlNU09M YXlvdXRfdW5zYXZlZENoYW5nZXMucHVzaChXZWJQYXJ0LmxheW91dENoYW5nZXMp Ow0KCX0NCglkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5N U09MYXlvdXRfTGF5b3V0Q2hhbmdlcy52YWx1ZT1NU09MYXlvdXRfdW5zYXZlZENo YW5nZXM7DQoJTVNPTGF5b3V0X1VwZGF0ZVByb3BlcnR5U2hlZXQoV2ViUGFydCxQ cm9wZXJ0eSxOZXdWYWx1ZSk7DQoJaWYoTVNPTGF5b3V0X0Zvcm1TdWJtaXQ9PW51 bGwpDQoJew0KCQlNU09MYXlvdXRfRm9ybVN1Ym1pdD1kb2N1bWVudC5mb3Jtc1tN U09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5zdWJtaXQ7DQoJCWRvY3VtZW50LmZvcm1z W01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLnN1Ym1pdD1uZXcgRnVuY3Rpb24oIk1T T0xheW91dF9PblN1Ym1pdCgpOyBNU09MYXlvdXRfRm9ybVN1Ym1pdCgpOyIpOw0K CQlkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5hdHRhY2hF dmVudCgib25zdWJtaXQiLCBNU09MYXlvdXRfT25TdWJtaXQpOw0KCQl3aW5kb3cu YXR0YWNoRXZlbnQoIm9udW5sb2FkIiwgTVNPTGF5b3V0X1NhdmVDaGFuZ2VzKTsN Cgl9DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfT25TdWJtaXQoKQ0Kew0KCXdpbmRv dy5kZXRhY2hFdmVudCgib251bmxvYWQiLCBNU09MYXlvdXRfU2F2ZUNoYW5nZXMp Ow0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X1NhdmVDaGFuZ2VzKCkNCnsNCglpZihk b2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09MYXlvdXRf TGF5b3V0Q2hhbmdlcyAhPW51bGwgJiYgZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFy dFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0X0xheW91dENoYW5nZXMudmFsdWUgIT0i IikNCgl7DQoJCXZhciBwYWdlVXJsPWRvY3VtZW50LlVSTFVuZW5jb2RlZDsNCgkJ dmFyIGhhc2hNYXJrRXhwcmVzc2lvbj0vXCMvOw0KCQl2YXIgaGFzaE1hcmtJbmRl eD1wYWdlVXJsLnNlYXJjaChoYXNoTWFya0V4cHJlc3Npb24pOw0KCQlpZihoYXNo TWFya0luZGV4ICE9LTEpDQoJCXsNCgkJCXBhZ2VVcmw9cGFnZVVybC5zdWJzdHJp bmcoMCwgaGFzaE1hcmtJbmRleCk7DQoJCX0NCgkJcGFnZVVybD1lbmNvZGVVUkko cGFnZVVybCkNCgkJdmFyIHhtbGh0dHA9bmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jv c29mdC5YTUxIVFRQJyk7DQoJCXhtbGh0dHAuT3BlbignUE9TVCcscGFnZVVybCxm YWxzZSk7DQoJCXZhciBmb3JtRGF0YT0nJl9fUkVRVUVTVERJR0VTVD0nK1VSTEVu Y29kZShkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5fX1JF UVVFU1RESUdFU1QudmFsdWUpKycmTVNPTGF5b3V0X0xheW91dENoYW5nZXM9JytV UkxFbmNvZGUoZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0u TVNPTGF5b3V0X0xheW91dENoYW5nZXMudmFsdWUpOw0KCQl4bWxodHRwLnNldFJl cXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1m b3JtLXVybGVuY29kZWQiKTsNCgkJeG1saHR0cC5TZW5kKGZvcm1EYXRhKTsNCgkJ ZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPTGF5b3V0 X0xheW91dENoYW5nZXMudmFsdWU9IiI7DQoJfQ0KfQ0KZnVuY3Rpb24gTVNPTGF5 b3V0X1NlYXJjaEFycmF5KFNlYXJjaEFycmF5LCBWYWx1ZSkNCnsNCglmb3IodmFy IGluZGV4PTA7IGluZGV4IDwgU2VhcmNoQXJyYXkubGVuZ3RoOyBpbmRleCsrKQ0K CXsNCgkJaWYoU2VhcmNoQXJyYXlbaW5kZXhdPT1WYWx1ZSB8fCBTZWFyY2hBcnJh eVtpbmRleF09PSIjIitWYWx1ZSkgcmV0dXJuIGluZGV4Ow0KCX0NCglyZXR1cm4g LTE7DQp9DQpmdW5jdGlvbiBNU09XZWJQYXJ0UGFnZV9PcGVuTWVudShNZW51VG9P cGVuLFNvdXJjZUVsZW1lbnQsV2ViUGFydCxJbkNvbm5lY3Rpb25zTW9kZSkNCnsN CglpZihXZWJQYXJ0KQ0KCXsNCgkJTWVudVdlYlBhcnQ9V2ViUGFydA0KCQlNZW51 V2ViUGFydElEPVdlYlBhcnQuV2ViUGFydElEOw0KCQl2YXIgbWluT3B0aW9uPU1l bnVUb09wZW4uYWxsLml0ZW0oJ01TT01lbnVfTWluaW1pemUnKTsNCgkJdmFyIHJl c3RvcmVPcHRpb249TWVudVRvT3Blbi5hbGwuaXRlbSgnTVNPTWVudV9SZXN0b3Jl Jyk7DQoJCXZhciBjbG9zZU9wdGlvbj1NZW51VG9PcGVuLmFsbC5pdGVtKCdNU09N ZW51X0Nsb3NlJyk7DQoJCXZhciBkZWxldGVPcHRpb249TWVudVRvT3Blbi5hbGwu aXRlbSgnTVNPTWVudV9EZWxldGUnKTsNCgkJdmFyIGV4cG9ydE9wdGlvbj1NZW51 VG9PcGVuLmFsbC5pdGVtKCdNU09NZW51X0V4cG9ydCcpOw0KCQl2YXIgcmVzZXRQ ZXJzT3B0aW9uPU1lbnVUb09wZW4uYWxsLml0ZW0oJ01TT01lbnVfUmVzdG9yZVBh cnREZWZhdWx0cycpOw0KCQl2YXIgaGVscE9wdGlvbj1NZW51VG9PcGVuLmFsbC5p dGVtKCdNU09NZW51X0hlbHAnKTsNCgkJdmFyIGNvbm5lY3Rpb25PcHRpb249TWVu dVRvT3Blbi5hbGwuaXRlbSgnTVNPTWVudV9Db25uZWN0aW9ucycpOw0KCQlpZiht aW5PcHRpb24pDQoJCXsNCgkJCW1pbk9wdGlvbi5zdHlsZS5kaXNwbGF5PShXZWJQ YXJ0LmFsbG93TWluaW1pemU9PSdmYWxzZScgfHwgV2ViUGFydC5zdHlsZS5kaXNw bGF5PT0nbm9uZScpID8gJ25vbmUnIDogJyc7DQoJCX0NCgkJaWYocmVzdG9yZU9w dGlvbikNCgkJew0KCQkJcmVzdG9yZU9wdGlvbi5zdHlsZS5kaXNwbGF5PShXZWJQ YXJ0LmFsbG93TWluaW1pemU9PSdmYWxzZScgfHwgV2ViUGFydC5zdHlsZS5kaXNw bGF5ICE9J25vbmUnKSA/ICdub25lJyA6ICcnOw0KCQl9DQoJCWlmKGNsb3NlT3B0 aW9uKQ0KCQl7DQoJCQljbG9zZU9wdGlvbi5zdHlsZS5kaXNwbGF5PShXZWJQYXJ0 LmFsbG93UmVtb3ZlPT0nZmFsc2UnKSA/ICdub25lJyA6ICcnOw0KCQl9DQoJCWlm KGRlbGV0ZU9wdGlvbikNCgkJew0KCQkJZGVsZXRlT3B0aW9uLnN0eWxlLmRpc3Bs YXk9KE1TT0xheW91dF9pbkRlc2lnbk1vZGUgJiYgV2ViUGFydC5hbGxvd0RlbGV0 ZSAhPSdmYWxzZScpID8gJycgOiAnbm9uZSc7DQoJCX0NCgkJaWYoZXhwb3J0T3B0 aW9uKQ0KCQl7DQoJCQlleHBvcnRPcHRpb24uc3R5bGUuZGlzcGxheT0oV2ViUGFy dC5hbGxvd0V4cG9ydD09J2ZhbHNlJykgPyAnbm9uZScgOiAnJzsNCgkJfQ0KCQlp ZihoZWxwT3B0aW9uKQ0KCQl7DQoJCQloZWxwT3B0aW9uLnN0eWxlLmRpc3BsYXk9 KFdlYlBhcnQuaGVscExpbms9PW51bGwpID8gJ25vbmUnIDogIiI7DQoJCX0NCgkJ aWYocmVzZXRQZXJzT3B0aW9uKQ0KCQl7DQoJCQlyZXNldFBlcnNPcHRpb24uc3R5 bGUuZGlzcGxheT0oTVNPTGF5b3V0X2luRGVzaWduTW9kZSAmJiBXZWJQYXJ0Lkhh c1BlcnM9PSd0cnVlJyAmJiBXZWJQYXJ0Lk9ubHlGb3JNZVBhcnQgIT0ndHJ1ZScp ID8gJycgOiAnbm9uZSc7DQoJCX0NCgkJaWYoY29ubmVjdGlvbk9wdGlvbikNCgkJ ew0KCQkJY29ubmVjdGlvbk9wdGlvbi5zdHlsZS5kaXNwbGF5PShNU09MYXlvdXRf aW5EZXNpZ25Nb2RlID8gJycgOiAnbm9uZScpOw0KCQl9DQoJCWlmKEluQ29ubmVj dGlvbnNNb2RlICE9J0ZhbHNlJykNCgkJewkNCgkJCXZhciBjb25uTWVudT1kb2N1 bWVudC5hbGwuaXRlbSgnTVNPTWVudV9Db25uZWN0aW9ucycrV2ViUGFydC5pZCk7 DQoJCQlpZihjb25uZWN0aW9uT3B0aW9uICE9bnVsbCAmJiBjb25uTWVudSAhPW51 bGwpDQoJCQl7CQ0KCQkJCWNvbm5lY3Rpb25PcHRpb24ub3V0ZXJIVE1MPWNvbm5N ZW51LmlubmVySFRNTDsNCgkJCX0NCgkJfQ0KCX0NCglNZW51SHRjX3Nob3coTWVu dVRvT3BlbiwgU291cmNlRWxlbWVudCwgdHJ1ZSwgbnVsbCwgbnVsbCk7DQoJcmV0 dXJuIHRydWU7DQp9DQpmdW5jdGlvbiAgTVNPQ29ubl9Jc1hGb3JtVUlOZWVkZWQo KQ0Kew0KCXZhciB0aW50ZXJmYWNlPU1TT0Nvbm5fVGFyZ2V0R3JvdXBOb2RlLnNl bGVjdFNpbmdsZU5vZGUoJ3RJbnRlcmZhY2UnKTsNCgl2YXIgaXNYRm9ybVVJTmVl ZGVkPWZhbHNlOw0KCXZhciB4Rm9ybU5vZGU9dGludGVyZmFjZS5zZWxlY3RTaW5n bGVOb2RlKCd4Rm9ybScpOw0KCWlmKHhGb3JtTm9kZSAhPW51bGwgJiYgdGludGVy ZmFjZS5zZWxlY3RTaW5nbGVOb2RlKCJtaSIpLmdldEF0dHJpYnV0ZSgiaXNYRm9y bVVJTmVlZGVkIik9PSJUcnVlIikNCgl7DQoJCWlzWEZvcm1VSU5lZWRlZD10cnVl Ow0KCQlpZihNU09Db25uX1RhcmdldEdyb3VwTm9kZS5nZXRBdHRyaWJ1dGUoImlz Q29ubiIpPT0iVHJ1ZSIpDQoJCXsNCgkJCWRvY3VtZW50LmFsbC5NU09Db25uX0J1 dHRvbi52YWx1ZT0iZWRpdCI7DQoJCX0NCgkJaWYoeEZvcm1Ob2RlLmdldEF0dHJp YnV0ZSgidHlwZSIpPT0iUm93Q2VsbFRyYW5zZm9ybSIpDQoJCXsNCgkJCU1TT0Nv bm5fU2hvd1Jvd0NlbGxYRm9ybSh0aW50ZXJmYWNlKTsNCgkJfQ0KCQllbHNlIGlm KHhGb3JtTm9kZS5nZXRBdHRyaWJ1dGUoInR5cGUiKT09IlJvd0ZpbHRlclRyYW5z Zm9ybSIpDQoJCXsNCgkJCU1TT0Nvbm5fU2hvd1Jvd0ZpbHRlclhGb3JtKHRpbnRl cmZhY2UpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJTVNPQ29ubl9TaG93QXNwWEZv cm0odGludGVyZmFjZSk7DQoJCX0NCgl9DQoJaWYoIWlzWEZvcm1VSU5lZWRlZCAm JiBNU09Db25uX1RhcmdldEdyb3VwTm9kZS5nZXRBdHRyaWJ1dGUoImlzQ29ubiIp PT0iVHJ1ZSIgJiYgTVNPQ29ubl9CYWNrQnV0dG9uQ2xpY2tlZD09ZmFsc2UpDQoJ ew0KCQlkb2N1bWVudC5hbGwuTVNPQ29ubl9CdXR0b24udmFsdWU9InJlbW92ZSI7 DQoJfQ0KfQ0KZnVuY3Rpb24gIE1TT0Nvbm5fU2hvd1Jvd0ZpbHRlclhGb3JtKHRh cmdldEludGVyZmFjZSkNCnsNCgl2YXIgcm93UHJvSW5pdEFyZ05vZGU7DQoJdmFy IGZpbENvbkluaXRBcmdOb2RlOw0KCXZhciBwcm92aWRlclBhcnQ7DQoJdmFyIGNv bnN1bWVyUGFydDsNCgl2YXIgc01hdGNoSW50ZXJmYWNlTmFtZT10YXJnZXRJbnRl cmZhY2Uuc2VsZWN0U2luZ2xlTm9kZSgibWkiKS5nZXRBdHRyaWJ1dGUoImlkIik7 DQoJdmFyIHhGb3JtSW5mbz10YXJnZXRJbnRlcmZhY2Uuc2VsZWN0U2luZ2xlTm9k ZSgibWkiKS5nZXRBdHRyaWJ1dGUoInhJbmZvIik7DQoJdmFyIHNJbnRlcmZhY2VO b2RlPU1TT0Nvbm5fU291cmNlR3JvdXBOb2RlLnNlbGVjdFNpbmdsZU5vZGUoInNJ bnRlcmZhY2VzL3NJbnRlcmZhY2VbQGlkPSciK3NNYXRjaEludGVyZmFjZU5hbWUr IiddIik7DQoJcm93UHJvSW5pdEFyZ05vZGU9dGFyZ2V0SW50ZXJmYWNlLnNlbGVj dFNpbmdsZU5vZGUoIkluaXRFdmVudEFyZ3MvUm93UHJvdmlkZXJJbml0RXZlbnRB cmdzIik7DQoJdmFyIGlzQ29ubmVjdGVkPU1TT0Nvbm5fVGFyZ2V0R3JvdXBOb2Rl LmdldEF0dHJpYnV0ZSgiaXNDb25uIik7DQoJaWYocm93UHJvSW5pdEFyZ05vZGU9 PW51bGwpDQoJew0KCQlyb3dQcm9Jbml0QXJnTm9kZT1zSW50ZXJmYWNlTm9kZS5z ZWxlY3RTaW5nbGVOb2RlKCJJbml0RXZlbnRBcmdzL1Jvd1Byb3ZpZGVySW5pdEV2 ZW50QXJncyIpOw0KCQlmaWxDb25Jbml0QXJnTm9kZT10YXJnZXRJbnRlcmZhY2Uu c2VsZWN0U2luZ2xlTm9kZSgiSW5pdEV2ZW50QXJncy9GaWx0ZXJDb25zdW1lcklu aXRFdmVudEFyZ3MiKTsNCgkJY29uc3VtZXJQYXJ0PU1TT0Nvbm5fVGFyZ2V0V3BO b2RlOw0KCQlwcm92aWRlclBhcnQ9TVNPQ29ubl9Tb3VyY2VXcE5vZGU7DQoJfQ0K CWVsc2UNCgl7DQoJCWZpbENvbkluaXRBcmdOb2RlPXNJbnRlcmZhY2VOb2RlLnNl bGVjdFNpbmdsZU5vZGUoIkluaXRFdmVudEFyZ3MvRmlsdGVyQ29uc3VtZXJJbml0 RXZlbnRBcmdzIik7DQoJCWNvbnN1bWVyUGFydD1NU09Db25uX1NvdXJjZVdwTm9k ZTsNCgkJcHJvdmlkZXJQYXJ0PU1TT0Nvbm5fVGFyZ2V0V3BOb2RlOw0KCX0NCglp Zihyb3dQcm9Jbml0QXJnTm9kZSAhPW51bGwgJiYgZmlsQ29uSW5pdEFyZ05vZGUg IT1udWxsKQ0KCXsNCgkJdmFyIHJvd0ZpZWxkTGlzdD1uZXcgQXJyYXkoKTsNCgkJ dmFyIHJvd0ZpZWxkRGlzcGxheUxpc3Q9bmV3IEFycmF5KCk7DQoJCXZhciByb3dG aWVsZExpc3ROb2Rlcz1yb3dQcm9Jbml0QXJnTm9kZS5zZWxlY3ROb2RlcygiRmll bGQiKTsNCgkJdmFyIGZpbHRlckZpZWxkTGlzdE5vZGVzPWZpbENvbkluaXRBcmdO b2RlLnNlbGVjdE5vZGVzKCJGaWVsZCIpOw0KCQl2YXIgZmlsdGVyRmllbGRMaXN0 PW5ldyBBcnJheSgpOw0KCQl2YXIgZmlsdGVyRmllbGREaXNwbGF5TGlzdD1uZXcg QXJyYXkoKTsNCgkJaWYocm93RmllbGRMaXN0Tm9kZXM9PW51bGwgfHwgcm93Rmll bGRMaXN0Tm9kZXMubGVuZ3RoPT0wKQ0KCQl7DQoJCQl2YXIgY3JlZj1yb3dQcm9J bml0QXJnTm9kZS5nZXRBdHRyaWJ1dGUoImNyZWYiKTsNCgkJCWlmKGNyZWYgIT1u dWxsKQ0KCQkJew0KCQkJCXZhciBzdHJWYWw9Y3JlZisiLkdldEluaXRFdmVudEFy Z3MoKSI7DQoJCQkJdmFyIGFyZ3M9bnVsbDsNCgkJCQl0cnkNCgkJCQl7DQoJCQkJ CWFyZ3M9ZXZhbChzdHJWYWwpOw0KCQkJCX0NCgkJCQljYXRjaChlKQ0KCQkJCXsN CgkJCQl9DQoJCQkJaWYoYXJncyAhPW51bGwpDQoJCQkJew0KCQkJCQlyb3dGaWVs ZExpc3Q9YXJncy5GaWVsZExpc3Q7DQoJCQkJCXJvd0ZpZWxkRGlzcGxheUxpc3Q9 YXJncy5GaWVsZERpc3BsYXlMaXN0Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCQllbHNl DQoJCXsNCgkJCWZvcih2YXIgaT0wIDsgaTwgcm93RmllbGRMaXN0Tm9kZXMubGVu Z3RoOyBpKyspDQoJCQl7DQoJCQkJdmFyIGRpc3BsYXlMaXN0U2V0PWZhbHNlOw0K CQkJCXJvd0ZpZWxkTGlzdFtpXT1yb3dGaWVsZExpc3ROb2Rlc1tpXS5nZXRBdHRy aWJ1dGUoIkZpZWxkTmFtZSIpOw0KCQkJCWlmKHJvd0ZpZWxkTGlzdE5vZGVzW2ld LmdldEF0dHJpYnV0ZSgiRmllbGREaXNwbGF5TmFtZSIpICE9bnVsbCkNCgkJCQl7 DQoJCQkJCXJvd0ZpZWxkRGlzcGxheUxpc3RbaV09cm93RmllbGRMaXN0Tm9kZXNb aV0uZ2V0QXR0cmlidXRlKCJGaWVsZERpc3BsYXlOYW1lIik7DQoJCQkJCWRpc3Bs YXlMaXN0U2V0PXRydWU7DQoJCQkJfQ0KCQkJCWVsc2UgaWYoZGlzcGxheUxpc3RT ZXQ9PXRydWUpDQoJCQkJew0KCQkJCQlyb3dGaWVsZERpc3BsYXlMaXN0PW51bGw7 DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWlmKGZpbHRlckZpZWxkTGlzdE5vZGVzPT1u dWxsIHx8IGZpbHRlckZpZWxkTGlzdE5vZGVzLmxlbmd0aD09MCkNCgkJew0KCQkJ dmFyIGNyZWY9ZmlsQ29uSW5pdEFyZ05vZGUuZ2V0QXR0cmlidXRlKCJjcmVmIik7 DQoJCQlpZihjcmVmICE9bnVsbCkNCgkJCXsNCgkJCQl2YXIgc3RyVmFsPWNyZWYr Ii5HZXRJbml0RXZlbnRBcmdzKCkiOw0KCQkJCXZhciBhcmdzPW51bGw7DQoJCQkJ dHJ5DQoJCQkJew0KCQkJCQlhcmdzPWV2YWwoc3RyVmFsKTsNCgkJCQl9DQoJCQkJ Y2F0Y2goZSkNCgkJCQl7DQoJCQkJfQ0KCQkJCWlmKGFyZ3MgIT1udWxsKQ0KCQkJ CXsNCgkJCQkJZmlsdGVyRmllbGRMaXN0PWFyZ3MuRmllbGRMaXN0Ow0KCQkJCQlm aWx0ZXJGaWVsZERpc3BsYXlMaXN0PWFyZ3MuRmllbGREaXNwbGF5TGlzdDsNCgkJ CQl9DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlmb3IodmFyIGk9MCA7IGk8 IGZpbHRlckZpZWxkTGlzdE5vZGVzLmxlbmd0aDsgaSsrKQ0KCQkJew0KCQkJCXZh ciBkaXNwbGF5TGlzdFNldD1mYWxzZTsNCgkJCQlmaWx0ZXJGaWVsZExpc3RbaV09 ZmlsdGVyRmllbGRMaXN0Tm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJGaWVsZE5hbWUi KTsNCgkJCQlpZihmaWx0ZXJGaWVsZExpc3ROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUo IkZpZWxkRGlzcGxheU5hbWUiKSAhPW51bGwpDQoJCQkJew0KCQkJCQlmaWx0ZXJG aWVsZERpc3BsYXlMaXN0W2ldPWZpbHRlckZpZWxkTGlzdE5vZGVzW2ldLmdldEF0 dHJpYnV0ZSgiRmllbGREaXNwbGF5TmFtZSIpOw0KCQkJCQlkaXNwbGF5TGlzdFNl dD10cnVlOw0KCQkJCX0NCgkJCQllbHNlIGlmKGRpc3BsYXlMaXN0U2V0PT10cnVl KQ0KCQkJCXsNCgkJCQkJZmlsdGVyRmllbGREaXNwbGF5TGlzdD1udWxsOw0KCQkJ CX0NCgkJCX0NCgkJfQ0KCQlpZigocm93RmllbGRMaXN0ICE9bnVsbCAmJiByb3dG aWVsZExpc3QubGVuZ3RoICE9MCAmJiBmaWx0ZXJGaWVsZExpc3QgIT1udWxsICYm IGZpbHRlckZpZWxkTGlzdC5sZW5ndGggIT0wKSB8fCBpc0Nvbm5lY3RlZD09J1Ry dWUnICkNCgkJew0KCQkJdmFyIHJmeEZvcm1JbmZvOw0KCQkJdmFyIHJvd0xpc3Q9 cm93RmllbGRMaXN0Ow0KCQkJaWYocm93RmllbGREaXNwbGF5TGlzdCAhPW51bGwg JiYgcm93RmllbGREaXNwbGF5TGlzdC5sZW5ndGg9PXJvd0ZpZWxkTGlzdC5sZW5n dGgpDQoJCQl7DQoJCQkJcm93TGlzdD1yb3dGaWVsZERpc3BsYXlMaXN0Ow0KCQkJ fQ0KCQkJdmFyIHNGZWF0dXJlcz0iZGlhbG9nSGVpZ2h0OjIxMHB4O2RpYWxvZ1dp ZHRoOjQ2MHB4O2NlbnRlcjp5ZXM7aGVscDpubztzdGF0dXM6bm87c2Nyb2xsOm5v O3Jlc2l6YWJsZTpubzsiOw0KCQkJdmFyIHVybD1kb2N1bWVudC5hbGwuTVNPQ29u bl9SRlByb1hmb3JtLnZhbHVlKyI/cGFydD1wcm92aWRlciI7DQoJCQl2YXIgYXJn dW1lbnRzPW5ldyBBcnJheShyb3dMaXN0LCBpc0Nvbm5lY3RlZCwgcHJvdmlkZXJQ YXJ0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSwgY29uc3VtZXJQYXJ0LmdldEF0dHJp YnV0ZSgidGl0bGUiKSxNU09Db25uX011bHRpcGxlVGFyZ2V0R3JvdXBzLCB4Rm9y bUluZm8sIHJvd0ZpZWxkTGlzdCk7DQoJCQkgdmFyIHJmeEZvcm1JbmZvUm93SW5k ZXg9c2hvd01vZGFsRGlhbG9nKHVybCwgYXJndW1lbnRzLCBzRmVhdHVyZXMpOwkN CgkJCWlmKHJmeEZvcm1JbmZvUm93SW5kZXg9PW51bGwgfHwgcmZ4Rm9ybUluZm9S b3dJbmRleD09InVuZGVmaW5lZCIpDQoJCQl7DQoJCQkgIAlNU09Db25uX0Nvbm5D YW5jZWxsZWQ9dHJ1ZTsNCgkJCX0NCgkJCWVsc2UgaWYocmZ4Rm9ybUluZm9Sb3dJ bmRleD09InJlbW92ZSIpDQoJCQl7DQoJCQkJZG9jdW1lbnQuYWxsLk1TT0Nvbm5f QnV0dG9uLnZhbHVlPSJyZW1vdmUiOw0KCQkJCXJmeEZvcm1JbmZvPSIiOw0KCQkJ fQ0KCQkJZWxzZSBpZihyZnhGb3JtSW5mb1Jvd0luZGV4PT0iY2hvb3NlIikNCgkJ CXsNCgkJCQlNU09Db25uX1Nob3dUYXJnZXRHcm91cHNEaWFsb2coKTsNCgkJCQlN U09Db25uX1Nob3dYRm9ybXNBbmRQZXJzaXN0KCk7DQoJCQkJTVNPQ29ubl9Db25u Q2FuY2VsbGVkPXRydWU7DQoJCQl9DQoJCQllbHNlDQoJCQkgew0KCQkJCXZhciBm aWx0ZXJMaXN0PWZpbHRlckZpZWxkTGlzdDsNCgkJCQlpZihmaWx0ZXJGaWVsZERp c3BsYXlMaXN0ICE9bnVsbCAmJiBmaWx0ZXJGaWVsZExpc3QubGVuZ3RoPT1maWx0 ZXJGaWVsZERpc3BsYXlMaXN0Lmxlbmd0aCkNCgkJCQl7DQoJCQkJCWZpbHRlckxp c3Q9ZmlsdGVyRmllbGREaXNwbGF5TGlzdDsNCgkJCQl9DQoJCQkJdmFyIHNlbGVj dGVkUm93RGlzcGxheUZpZWxkTmFtZT1yb3dMaXN0W3JmeEZvcm1JbmZvUm93SW5k ZXhdOw0KCQkJCWFyZ3VtZW50cz1uZXcgQXJyYXkoZmlsdGVyTGlzdCwgc2VsZWN0 ZWRSb3dEaXNwbGF5RmllbGROYW1lLCBpc0Nvbm5lY3RlZCxjb25zdW1lclBhcnQu Z2V0QXR0cmlidXRlKCJ0aXRsZSIpLHhGb3JtSW5mbywgZmlsdGVyRmllbGRMaXN0 KTsNCgkJCQl2YXIgcmZ4Rm9ybUluZm9GaWx0ZXJJbmRleD1zaG93TW9kYWxEaWFs b2coZG9jdW1lbnQuYWxsLk1TT0Nvbm5fUkZDb25YZm9ybS52YWx1ZSwgYXJndW1l bnRzICxzRmVhdHVyZXMpOw0KCQkJCWlmKHJmeEZvcm1JbmZvRmlsdGVySW5kZXg9 PW51bGwpDQoJCQkJew0KCQkJCQlNU09Db25uX0Nvbm5DYW5jZWxsZWQ9dHJ1ZTsN CgkJCQl9DQoJCQkJZWxzZSBpZihyZnhGb3JtSW5mb0ZpbHRlckluZGV4PT0icmVt b3ZlIikNCgkJCQl7DQoJCQkJCWRvY3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52 YWx1ZT0icmVtb3ZlIjsNCgkJCQkJcmZ4Rm9ybUluZm89IiI7DQoJCQkJfQ0KCQkJ CWVsc2UgaWYocmZ4Rm9ybUluZm9GaWx0ZXJJbmRleD09InByZXZpb3VzIikNCgkJ CQl7DQoJCQkJCU1TT0Nvbm5fU2hvd1Jvd0ZpbHRlclhGb3JtKHRhcmdldEludGVy ZmFjZSk7DQoJCQkJfQ0KCQkJCWVsc2UgaWYoTVNPQ29ubl9Db25uQ2FuY2VsbGVk ICE9dHJ1ZSkNCgkJCQl7DQoJCQkJCU1TT0Nvbm5fWGZvcm1JbmZvMT1maWx0ZXJG aWVsZExpc3RbcmZ4Rm9ybUluZm9GaWx0ZXJJbmRleF07DQoJCQkJCU1TT0Nvbm5f WGZvcm1JbmZvMj1yb3dGaWVsZExpc3RbcmZ4Rm9ybUluZm9Sb3dJbmRleF07CQ0K CQkJCX0NCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCU1TT0Nvbm5fSW5pdEFy Z3NFcnJvcigpOw0KCQkJTVNPQ29ubl9Db25uQ2FuY2VsbGVkPXRydWU7DQoJCX0N Cgl9DQoJZWxzZQ0KCXsNCgkJTVNPQ29ubl9Jbml0QXJnc0Vycm9yKCk7DQoJCU1T T0Nvbm5fQ29ubkNhbmNlbGxlZD10cnVlOw0KCX0NCn0NCmZ1bmN0aW9uICBNU09D b25uX1Nob3dSb3dDZWxsWEZvcm0odGFyZ2V0SW50ZXJmYWNlKQ0Kew0KCXZhciBy b3dQcm9Jbml0QXJnTm9kZT1udWxsOw0KCXZhciBjZWxsQ29uSW5pdEFyZ05vZGU9 bnVsbDsNCgl2YXIgcHJvdmlkZXJQYXJ0PW51bGw7DQoJdmFyIGNvbnN1bWVyUGFy dD1udWxsOw0KCXZhciByY3hGb3JtSW5mbz1udWxsOw0KCXZhciBzTWF0Y2hJbnRl cmZhY2VOYW1lPXRhcmdldEludGVyZmFjZS5zZWxlY3RTaW5nbGVOb2RlKCJtaSIp LmdldEF0dHJpYnV0ZSgiaWQiKTsNCgl2YXIgeEZvcm1JbmZvPXRhcmdldEludGVy ZmFjZS5zZWxlY3RTaW5nbGVOb2RlKCJtaSIpLmdldEF0dHJpYnV0ZSgieEluZm8i KTsNCgl2YXIgc0ludGVyZmFjZU5vZGU9TVNPQ29ubl9Tb3VyY2VHcm91cE5vZGUu c2VsZWN0U2luZ2xlTm9kZSgic0ludGVyZmFjZXMvc0ludGVyZmFjZVtAaWQ9JyIr c01hdGNoSW50ZXJmYWNlTmFtZSsiJ10iKTsNCglyb3dQcm9Jbml0QXJnTm9kZT10 YXJnZXRJbnRlcmZhY2Uuc2VsZWN0U2luZ2xlTm9kZSgiSW5pdEV2ZW50QXJncy9S b3dQcm92aWRlckluaXRFdmVudEFyZ3MiKTsNCgl2YXIgaXNDb25uZWN0ZWQ9TVNP Q29ubl9UYXJnZXRHcm91cE5vZGUuZ2V0QXR0cmlidXRlKCJpc0Nvbm4iKTsNCglp Ziggcm93UHJvSW5pdEFyZ05vZGU9PW51bGwpDQoJewkNCgkJcm93UHJvSW5pdEFy Z05vZGU9c0ludGVyZmFjZU5vZGUuc2VsZWN0U2luZ2xlTm9kZSgiSW5pdEV2ZW50 QXJncy9Sb3dQcm92aWRlckluaXRFdmVudEFyZ3MiKTsNCgkJY2VsbENvbkluaXRB cmdOb2RlPXRhcmdldEludGVyZmFjZS5zZWxlY3RTaW5nbGVOb2RlKCJJbml0RXZl bnRBcmdzL0NlbGxDb25zdW1lckluaXRFdmVudEFyZ3MiKTsNCgkJcHJvdmlkZXJQ YXJ0PU1TT0Nvbm5fU291cmNlV3BOb2RlOw0KCQljb25zdW1lclBhcnQ9TVNPQ29u bl9UYXJnZXRXcE5vZGU7DQoJfQ0KCWVsc2UNCgl7DQoJCWNlbGxDb25Jbml0QXJn Tm9kZT1zSW50ZXJmYWNlTm9kZS5zZWxlY3RTaW5nbGVOb2RlKCJJbml0RXZlbnRB cmdzL0NlbGxDb25zdW1lckluaXRFdmVudEFyZ3MiKTsNCgkJcHJvdmlkZXJQYXJ0 PU1TT0Nvbm5fVGFyZ2V0V3BOb2RlOw0KCQljb25zdW1lclBhcnQ9TVNPQ29ubl9T b3VyY2VXcE5vZGU7DQoJfQ0KCWlmKHJvd1Byb0luaXRBcmdOb2RlICE9bnVsbCAm JiBjZWxsQ29uSW5pdEFyZ05vZGUgIT1udWxsKQ0KCXsNCgkJdmFyIGZpZWxkTGlz dD1uZXcgQXJyYXkoKTsNCgkJdmFyIGZpZWxkRGlzcGxheUxpc3Q9bmV3IEFycmF5 KCk7DQoJCXZhciBmaWVsZExpc3ROb2Rlcz1yb3dQcm9Jbml0QXJnTm9kZS5zZWxl Y3ROb2RlcygiRmllbGQiKTsNCgkJaWYoZmllbGRMaXN0Tm9kZXM9PW51bGwgfHwg ZmllbGRMaXN0Tm9kZXMubGVuZ3RoPT0wKQ0KCQl7DQoJCQl2YXIgY3JlZj1yb3dQ cm9Jbml0QXJnTm9kZS5nZXRBdHRyaWJ1dGUoImNyZWYiKTsNCgkJCWlmKGNyZWYg IT1udWxsKQ0KCQkJew0KCQkJCXZhciBzdHJWYWw9Y3JlZisiLkdldEluaXRFdmVu dEFyZ3MoKSI7DQoJCQkJdmFyIGFyZ3M9bnVsbDsNCgkJCQl0cnkNCgkJCQl7DQoJ CQkJCWFyZ3M9ZXZhbChzdHJWYWwpOw0KCQkJCX0NCgkJCQljYXRjaChlKQ0KCQkJ CXsNCgkJCQl9DQoJCQkJaWYoYXJncyAhPW51bGwpDQoJCQkJew0KCQkJCQlmaWVs ZExpc3Q9YXJncy5GaWVsZExpc3Q7DQoJCQkJCWZpZWxkRGlzcGxheUxpc3Q9YXJn cy5GaWVsZERpc3BsYXlMaXN0Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCQllbHNlDQoJ CXsNCgkJCWZvcih2YXIgaT0wIDsgaTwgZmllbGRMaXN0Tm9kZXMubGVuZ3RoOyBp KyspDQoJCQl7DQoJCQkJdmFyIGRpc3BsYXlMaXN0U2V0PWZhbHNlOw0KCQkJCWZp ZWxkTGlzdFtpXT1maWVsZExpc3ROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoIkZpZWxk TmFtZSIpOw0KCQkJCWlmKGZpZWxkTGlzdE5vZGVzW2ldLmdldEF0dHJpYnV0ZSgi RmllbGREaXNwbGF5TmFtZSIpICE9bnVsbCkNCgkJCQl7DQoJCQkJCWZpZWxkRGlz cGxheUxpc3RbaV09ZmllbGRMaXN0Tm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJGaWVs ZERpc3BsYXlOYW1lIik7DQoJCQkJCWRpc3BsYXlMaXN0U2V0PXRydWU7DQoJCQkJ fQ0KCQkJCWVsc2UgaWYoZGlzcGxheUxpc3RTZXQ9PXRydWUpDQoJCQkJew0KCQkJ CQlmaWVsZERpc3BsYXlMaXN0PW51bGw7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXZh ciBjZWxsPWNlbGxDb25Jbml0QXJnTm9kZS5nZXRBdHRyaWJ1dGUoIkZpZWxkTmFt ZSIpOw0KCQl2YXIgY2VsbERpc3BsYXlOYW1lPWNlbGxDb25Jbml0QXJnTm9kZS5n ZXRBdHRyaWJ1dGUoIkZpZWxkRGlzcGxheU5hbWUiKTsNCgkJaWYoY2VsbD09bnVs bCkNCgkJew0KCQkJdmFyIGNyZWY9Y2VsbENvbkluaXRBcmdOb2RlLmdldEF0dHJp YnV0ZSgiY3JlZiIpOw0KCQkJaWYoY3JlZiAhPW51bGwpDQoJCQl7DQoJCQkJdmFy IHN0clZhbD1jcmVmKyIuR2V0SW5pdEV2ZW50QXJncygpIjsNCgkJCQl2YXIgYXJn cz1udWxsOw0KCQkJCXRyeQ0KCQkJCXsNCgkJCQkJYXJncz1ldmFsKHN0clZhbCk7 DQoJCQkJfQ0KCQkJCWNhdGNoKGUpDQoJCQkJew0KCQkJCX0NCgkJCQlpZihhcmdz ICE9bnVsbCkNCgkJCQl7DQoJCQkJCWNlbGw9YXJncy5GaWVsZE5hbWU7DQoJCQkJ CWNlbGxEaXNwbGF5TmFtZT1hcmdzLmNlbGxEaXNwbGF5TmFtZTsNCgkJCQl9DQoJ CQl9DQoJCX0NCgkJaWYoKGZpZWxkTGlzdCAhPW51bGwgICYmIGZpZWxkTGlzdC5s ZW5ndGggIT0wICYmIGNlbGwgIT1udWxsKSB8fCBpc0Nvbm5lY3RlZD09J1RydWUn KQ0KCQl7DQoJCQl2YXIgY2VsbE5hbWU9Y2VsbDsNCgkJCXZhciByb3dMaXN0PWZp ZWxkTGlzdDsNCgkJCWlmKGZpZWxkRGlzcGxheUxpc3QgIT1udWxsICYmIGZpZWxk RGlzcGxheUxpc3QubGVuZ3RoPT1maWVsZExpc3QubGVuZ3RoKQ0KCQkJew0KCQkJ CXJvd0xpc3Q9ZmllbGREaXNwbGF5TGlzdDsNCgkJCX0NCgkJCWlmKGNlbGxEaXNw bGF5TmFtZSAhPW51bGwpDQoJCQl7DQoJCQkJY2VsbE5hbWU9Y2VsbERpc3BsYXlO YW1lOw0KCQkJfQ0KCQkJdmFyIGFyZ3VtZW50cz1uZXcgQXJyYXkocm93TGlzdCwg Y2VsbE5hbWUsIGlzQ29ubmVjdGVkICwgcHJvdmlkZXJQYXJ0LmdldEF0dHJpYnV0 ZSgidGl0bGUiKSwgY29uc3VtZXJQYXJ0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSxN U09Db25uX011bHRpcGxlVGFyZ2V0R3JvdXBzLCB4Rm9ybUluZm8sIGZpZWxkTGlz dCk7DQoJCQl2YXIgc0ZlYXR1cmVzPSJkaWFsb2dIZWlnaHQ6MjEwcHg7ZGlhbG9n V2lkdGg6NDYwcHg7Y2VudGVyOnllcztoZWxwOm5vO3N0YXR1czpubztzY3JvbGw6 bm87cmVzaXphYmxlOm5vOyI7DQoJCQl2YXIgcmN4Rm9ybUluZm9JbmRleD1zaG93 TW9kYWxEaWFsb2coZG9jdW1lbnQuYWxsLk1TT0Nvbm5fUkNYZm9ybS52YWx1ZSxh cmd1bWVudHMsc0ZlYXR1cmVzKTsNCgkJCWlmKHJjeEZvcm1JbmZvSW5kZXg9PSJ1 bmRlZmluZWQiIHx8IHJjeEZvcm1JbmZvSW5kZXg9PW51bGwpDQoJCQl7DQoJCQkJ TVNPQ29ubl9Db25uQ2FuY2VsbGVkPXRydWU7DQoJCQl9DQoJCQllbHNlIGlmKHJj eEZvcm1JbmZvSW5kZXg9PSJyZW1vdmUiKQ0KCQkJew0KCQkJCWRvY3VtZW50LmFs bC5NU09Db25uX0J1dHRvbi52YWx1ZT0icmVtb3ZlIjsNCgkJCQlyY3hGb3JtSW5m bz0iIjsNCgkJCX0NCgkJCWVsc2UgaWYocmN4Rm9ybUluZm9JbmRleD09ImNob29z ZSIpDQoJCQl7DQoJCQkJTVNPQ29ubl9TaG93VGFyZ2V0R3JvdXBzRGlhbG9nKCk7 DQoJCQkJTVNPQ29ubl9TaG93WEZvcm1zQW5kUGVyc2lzdCgpOw0KCQkJCU1TT0Nv bm5fQ29ubkNhbmNlbGxlZD10cnVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJ CXJjeEZvcm1JbmZvPWZpZWxkTGlzdFtyY3hGb3JtSW5mb0luZGV4XTsNCgkJCX0N CgkJfQ0KCQllbHNlDQoJCXsJDQoJCQlNU09Db25uX0luaXRBcmdzRXJyb3IoKTsN CgkJCU1TT0Nvbm5fQ29ubkNhbmNlbGxlZD10cnVlOw0KCQl9DQoJfQ0KCWVsc2UN Cgl7DQoJCU1TT0Nvbm5fSW5pdEFyZ3NFcnJvcigpOw0KCQlNU09Db25uX0Nvbm5D YW5jZWxsZWQ9dHJ1ZTsNCgl9DQoJaWYocmN4Rm9ybUluZm8gIT1udWxsICYmIE1T T0Nvbm5fQ29ubkNhbmNlbGxlZCAhPXRydWUpDQoJew0KCQlNU09Db25uX1hmb3Jt SW5mbzE9cmN4Rm9ybUluZm87DQoJfQ0KfQ0KZnVuY3Rpb24gIE1TT0Nvbm5fU2hv d0FzcFhGb3JtKHRhcmdldEludGVyZmFjZSkNCnsNCgl2YXIgeEZvcm1Ob2RlPXRh cmdldEludGVyZmFjZS5zZWxlY3RTaW5nbGVOb2RlKCd4Rm9ybScpOw0KCXZhciB4 Rm9ybVR5cGU9eEZvcm1Ob2RlLmdldEF0dHJpYnV0ZSgidHlwZSIpOw0KCXZhciB4 Rm9ybUluZm89dGFyZ2V0SW50ZXJmYWNlLnNlbGVjdFNpbmdsZU5vZGUoIm1pIiku Z2V0QXR0cmlidXRlKCJ4SW5mbyIpOw0KCXZhciBpc0Nvbm5lY3RlZD1NU09Db25u X1RhcmdldEdyb3VwTm9kZS5nZXRBdHRyaWJ1dGUoImlzQ29ubiIpOw0KCXZhciB0 R3JvdXBJZD10YXJnZXRJbnRlcmZhY2UuZ2V0QXR0cmlidXRlKCJpZCIpOw0KCXZh ciBpc011bHRpR3JvdXA7DQoJaWYgKE1TT0Nvbm5fTXVsdGlwbGVUYXJnZXRHcm91 cHMpDQoJew0KCQlpc011bHRpR3JvdXA9IlRydWUiOw0KCX0NCgllbHNlDQoJew0K CQlpc011bHRpR3JvdXA9IkZhbHNlIjsNCgl9DQoJdmFyIHNGZWF0dXJlcz0iZGlh bG9nSGVpZ2h0OjIxMHB4O2RpYWxvZ1dpZHRoOjQ2MHB4O2NlbnRlcjp5ZXM7aGVs cDpubztzdGF0dXM6bm87c2Nyb2xsOm5vO3Jlc2l6YWJsZTpubzsiOw0KCXZhciB4 Rm9ybVVybD1kb2N1bWVudC5hbGwuTVNPQ29ubl9Bc3BYZm9ybVVybC52YWx1ZTsN Cgl4Rm9ybVVybCs9Ij9wYWdlVXJsPSI7DQoJeEZvcm1VcmwrPWVzY2FwZVByb3Bl cmx5KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOw0KCXhGb3JtVXJsKz0iJnNXcElk PSI7DQoJeEZvcm1VcmwrPWVzY2FwZVByb3Blcmx5KGRvY3VtZW50LmFsbC5NU09D b25uX1NXcElkLnZhbHVlKTsNCgl4Rm9ybVVybCs9IiZzR3JvdXBJZD0iOw0KCXhG b3JtVXJsKz1lc2NhcGVQcm9wZXJseShkb2N1bWVudC5hbGwuTVNPQ29ubl9TR3Jv dXBJZC52YWx1ZSk7DQoJeEZvcm1VcmwrPSImdFdwSWQ9IjsNCgl4Rm9ybVVybCs9 ZXNjYXBlUHJvcGVybHkoZG9jdW1lbnQuYWxsLk1TT0Nvbm5fVFdwSWQudmFsdWUp Ow0KCXhGb3JtVXJsKz0iJnRHcm91cElkPSI7DQoJeEZvcm1VcmwrPWVzY2FwZVBy b3Blcmx5KHRHcm91cElkKTsNCgl4Rm9ybVVybCs9IiZ4Rm9ybVR5cGU9IjsNCgl4 Rm9ybVVybCs9ZXNjYXBlUHJvcGVybHkoeEZvcm1UeXBlKTsNCgl4Rm9ybVVybCs9 IiZ4Rm9ybUluZm89IjsNCgl4Rm9ybVVybCs9ZXNjYXBlUHJvcGVybHkoeEZvcm1J bmZvKTsNCgl4Rm9ybVVybCs9IiZpc011bHRpR3JvdXA9IjsNCgl4Rm9ybVVybCs9 ZXNjYXBlUHJvcGVybHkoaXNNdWx0aUdyb3VwKTsNCgl4Rm9ybVVybCs9IiZpc0Nv bm5lY3RlZD0iOw0KCXhGb3JtVXJsKz1lc2NhcGVQcm9wZXJseShpc0Nvbm5lY3Rl ZCk7DQoJdmFyIHJldHVybkluZm89d2luZG93LnNob3dNb2RhbERpYWxvZyh4Rm9y bVVybCwgbnVsbCwgc0ZlYXR1cmVzKTsNCglpZiAocmV0dXJuSW5mbz09bnVsbCkN Cgl7DQoJCXJldHVybkluZm89bmV3IEFycmF5KG51bGwsIG51bGwpOw0KCX0NCgl2 YXIgYWN0aW9uPXJldHVybkluZm9bMF07DQoJdmFyIHNlcmlhbGl6ZWRDb25maWc9 cmV0dXJuSW5mb1sxXTsNCglpZihhY3Rpb249PSJ1bmRlZmluZWQiIHx8IGFjdGlv bj09bnVsbCkNCgl7DQoJCU1TT0Nvbm5fQ29ubkNhbmNlbGxlZD10cnVlOw0KCX0N CgllbHNlIGlmKGFjdGlvbj09InJlbW92ZSIpDQoJew0KCQlkb2N1bWVudC5hbGwu TVNPQ29ubl9CdXR0b24udmFsdWU9InJlbW92ZSI7DQoJCXNlcmlhbGl6ZWRDb25m aWc9IiI7DQoJfQ0KCWVsc2UgaWYoYWN0aW9uPT0iY2hvb3NlIikNCgl7DQoJCU1T T0Nvbm5fU2hvd1RhcmdldEdyb3Vwc0RpYWxvZygpOw0KCQlNU09Db25uX1Nob3dY Rm9ybXNBbmRQZXJzaXN0KCk7DQoJCU1TT0Nvbm5fQ29ubkNhbmNlbGxlZD10cnVl Ow0KCX0NCglpZihzZXJpYWxpemVkQ29uZmlnICE9bnVsbCAmJiBNU09Db25uX0Nv bm5DYW5jZWxsZWQgIT10cnVlKQ0KCXsNCgkJTVNPQ29ubl9Bc3BYZm9ybUluZm89 c2VyaWFsaXplZENvbmZpZzsNCgl9DQp9DQpmdW5jdGlvbiBNU09Db25uX0luaXRB cmdzRXJyb3IoKQ0Kew0KCWRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSdhdXRv JzsNCglhbGVydChNU09TdHJpbmdzLk5vSW5pdEFyZ3MpOw0KfQ0KZnVuY3Rpb24g TVNPQ29ubl9TaG93VGFyZ2V0R3JvdXBzRGlhbG9nKCkNCnsNCgl2YXIgY29ubmVj dGVkPWZhbHNlOw0KCWlmKE1TT0Nvbm5fVGFyZ2V0V3BOb2RlLnNlbGVjdE5vZGVz KCJ0ZyIpICE9bnVsbCAmJiBNU09Db25uX1RhcmdldFdwTm9kZS5zZWxlY3ROb2Rl cygidGciKS5sZW5ndGggIT0wKQ0KCXsNCgkJdmFyIHRhcmdldEdyb3VwTm9kZXM9 TVNPQ29ubl9UYXJnZXRXcE5vZGUuc2VsZWN0Tm9kZXMoInRnIik7DQoJCWlmKHRh cmdldEdyb3VwTm9kZXMgIT1udWxsKQ0KCQl7DQoJCQlmb3IoaT0wOyBpPCB0YXJn ZXRHcm91cE5vZGVzLmxlbmd0aDtpKyspDQoJCQl7DQoJCQkJdmFyIHRnPXRhcmdl dEdyb3VwTm9kZXMuaXRlbShpKTsNCgkJCQlpZih0Zy5nZXRBdHRyaWJ1dGUoJ2lz Q29ubicpPT0nVHJ1ZScpDQoJCQkJew0KCQkJCQljb25uZWN0ZWQ9dHJ1ZTsNCgkJ CQkJTVNPQ29ubl9UYXJnZXRHcm91cE5vZGU9dGc7DQoJCQkJCWJyZWFrOw0KCQkJ CX0NCgkJCX0NCgkJfQ0KCQlpZighY29ubmVjdGVkKQ0KCQl7DQoJCQl2YXIgc0Zl YXR1cmVzPSJkaWFsb2dIZWlnaHQ6MjEwcHg7ZGlhbG9nV2lkdGg6NDYwcHg7Y2Vu dGVyOnllcztoZWxwOm5vO3N0YXR1czpubztzY3JvbGw6bm87cmVzaXphYmxlOm5v OyI7DQoJCQl2YXIgclZhbHVlcz1zaG93TW9kYWxEaWFsb2coZG9jdW1lbnQuYWxs Lk1TT0Nvbm5fR3JvdXBVcmwudmFsdWUsIE1TT0Nvbm5fVGFyZ2V0V3BOb2RlLHNG ZWF0dXJlcyk7DQoJCQlpZihyVmFsdWVzICE9bnVsbCkNCgkJCXsNCgkJCQlkb2N1 bWVudC5hbGwuTVNPQ29ubl9CdXR0b24udmFsdWU9clZhbHVlc1swXTsNCgkJCQl2 YXIgdGFyZ2V0R3JvdXBOb2Rlcz1NU09Db25uX1RhcmdldFdwTm9kZS5zZWxlY3RO b2RlcygndGcnKTsNCgkJCQlmb3IgKHZhciBqPTA7IHRhcmdldEdyb3VwTm9kZXMu bGVuZ3RoOyBqKyspDQoJCQkJew0KCQkJCQlpZiAodGFyZ2V0R3JvdXBOb2Rlc1tq XS5nZXRBdHRyaWJ1dGUoJ2lkJyk9PXJWYWx1ZXNbMV0pDQoJCQkJCXsNCgkJCQkJ CU1TT0Nvbm5fVGFyZ2V0R3JvdXBOb2RlPXRhcmdldEdyb3VwTm9kZXNbal07DQoJ CQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCWVsc2UNCgkJCXsN CgkJCQlNU09Db25uX0Nvbm5DYW5jZWxsZWQ9dHJ1ZTsNCgkJCX0NCgkJfQ0KCX0N CgllbHNlDQoJew0KCQlNU09Db25uX0Nvbm5DYW5jZWxsZWQ9dHJ1ZTsNCgl9DQp9 DQpmdW5jdGlvbiBNU09Db25uX0NvbmZpcm1SZW1vdmVDb25uZWN0aW9uKHNvdXJj ZVRpdGxlLCB0YXJnZXRUaXRsZSkNCnsNCgl2YXIgZXJyTXNnPU1TT1N0cmluZ3Mu UmVtb3ZlQ29ubmVjdGlvbjsNCgl2YXIgdGl0bGVBcnJheT1uZXcgQXJyYXkoKTsN Cgl0aXRsZUFycmF5WzBdPXNvdXJjZVRpdGxlOw0KCXRpdGxlQXJyYXlbMV09dGFy Z2V0VGl0bGU7DQoJaWYodGl0bGVBcnJheSAhPW51bGwpDQoJew0KCQlmb3IodmFy IGluZGV4PTA7IGluZGV4IDwgdGl0bGVBcnJheS5sZW5ndGg7IGluZGV4KyspDQoJ CXsNCgkJCWVyck1zZz1lcnJNc2cucmVwbGFjZSgiJSIraW5kZXgsIHRpdGxlQXJy YXlbaW5kZXhdKTsNCgkJfQ0KCX0NCglyZXR1cm4gZXJyTXNnOw0KfQ0KZnVuY3Rp b24gTVNPQ29ubl9TaG93WEZvcm1zQW5kUGVyc2lzdCgpDQp7DQoJaWYoIU1TT0Nv bm5fQ29ubkNhbmNlbGxlZCAmJiBNU09Db25uX1RhcmdldEdyb3VwTm9kZSAhPW51 bGwpDQoJew0KCQlpZihkb2N1bWVudC5hbGwuTVNPQ29ubl9CdXR0b24udmFsdWUg IT0icmVtb3ZlIikNCgkJew0KCQkJTVNPQ29ubl9Jc1hGb3JtVUlOZWVkZWQoKTsN CgkJfQ0KCQlpZighTVNPQ29ubl9Db25uQ2FuY2VsbGVkKQ0KCQl7DQoJCQlpZihk b2N1bWVudC5hbGwuTVNPQ29ubl9CdXR0b24udmFsdWU9PSJyZW1vdmUiKQ0KCQkJ ew0KCQkJCXZhciBlcnJNc2c9TVNPQ29ubl9Db25maXJtUmVtb3ZlQ29ubmVjdGlv biggTVNPQ29ubl9Tb3VyY2VXcE5vZGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpLCBN U09Db25uX1RhcmdldFdwTm9kZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpOw0KCQkJ CWlmKGNvbmZpcm0oZXJyTXNnKSkNCgkJCQl7DQoJCQkJCU1TT0Nvbm5fUGVyc2lz dENvbm5lY3Rpb24oKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJ TVNPQ29ubl9QZXJzaXN0Q29ubmVjdGlvbigpOw0KCQkJfQ0KCQl9DQoJfQ0KCWRv Y3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52YWx1ZT0ibm9uZSI7DQoJTVNPQ29u bl9Db25uQ2FuY2VsbGVkPWZhbHNlOw0KCU1TT0Nvbm5fWGZvcm1JbmZvMT1udWxs Ow0KCU1TT0Nvbm5fWGZvcm1JbmZvMj1udWxsOw0KCU1TT0Nvbm5fQXNwWGZvcm1J bmZvPW51bGw7DQoJTVNPQ29ubl9Tb3VyY2VXcE5vZGU9bnVsbDsNCglNU09Db25u X1RhcmdldFdwTm9kZT1udWxsOw0KCU1TT0Nvbm5fTXVsdGlwbGVUYXJnZXRHcm91 cHM9ZmFsc2U7DQoJTVNPQ29ubl9UYXJnZXRHcm91cE5vZGU9bnVsbDsNCglNU09D b25uX1NvdXJjZUdyb3VwTm9kZT1udWxsOw0KfQ0KZnVuY3Rpb24gTVNPQ29ubl9D cmVhdGVDb25uZWN0aW9uU3RlcDEoc291cmNlR3VpZCwNCgkJCQkJCQkJCQkJCXRh cmdldEd1aWQsDQoJCQkJCQkJCQkJCQlzb3VyY2VUaXRsZSwNCgkJCQkJCQkJCQkJ CXRhcmdldFRpdGxlLA0KCQkJCQkJCQkJCQkJc0dyb3VwSUQsDQoJCQkJCQkJCQkJ CQljb25uZWN0ZWQsDQoJCQkJCQkJCQkJCQlpc1hGb3JtTmVlZGVkLA0KCQkJCQkJ CQkJCQkJdEdyb3VwSUQpDQp7DQoJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fU1dwSWQu dmFsdWU9c291cmNlR3VpZDsNCglkb2N1bWVudC5hbGwuTVNPQ29ubl9UV3BJZC52 YWx1ZT10YXJnZXRHdWlkOw0KCWRvY3VtZW50LmFsbC5NU09Db25uX1NHcm91cElk LnZhbHVlPXNHcm91cElEOw0KCWRvY3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52 YWx1ZT0ic2F2ZSI7DQoJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fVEdyb3VwSWQudmFs dWU9IiI7DQoJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fWEZvcm0xLnZhbHVlPSIiOw0K CWRvY3VtZW50LmFsbC5NU09Db25uX1hGb3JtMi52YWx1ZT0iIjsNCglkb2N1bWVu dC5hbGwuTVNPQ29ubl9Bc3BYRm9ybS52YWx1ZT0iIjsNCgl2YXIgc3VibWl0PXRy dWU7DQoJaWYodEdyb3VwSUQpDQoJew0KCQlkb2N1bWVudC5hbGwuTVNPQ29ubl9U R3JvdXBJZC52YWx1ZT10R3JvdXBJRDsNCgl9DQoJaWYoY29ubmVjdGVkPT0iVHJ1 ZSIgJiYgdEdyb3VwSUQgIT1udWxsICYmIGlzWEZvcm1OZWVkZWQgIT1udWxsICYm IGlzWEZvcm1OZWVkZWQ9PSJGYWxzZSIpDQoJew0KCQl2YXIgZXJyTXNnPU1TT0Nv bm5fQ29uZmlybVJlbW92ZUNvbm5lY3Rpb24oc291cmNlVGl0bGUsIHRhcmdldFRp dGxlKTsNCgkJaWYoY29uZmlybShlcnJNc2cpKQ0KCQl7DQoJCQlkb2N1bWVudC5h bGwuTVNPQ29ubl9CdXR0b24udmFsdWU9InJlbW92ZSI7DQoJCX0NCgkJZWxzZQ0K CQl7DQoJCQlzdWJtaXQ9ZmFsc2U7DQoJCX0NCgl9DQoJZWxzZSBpZihjb25uZWN0 ZWQ9PSJUcnVlIiAmJiB0R3JvdXBJRD09bnVsbCkNCgl7DQoJCWRvY3VtZW50LmFs bC5NU09Db25uX0J1dHRvbi52YWx1ZT0iZWRpdCI7DQoJfQ0KCWlmKHN1Ym1pdD09 dHJ1ZSkNCgl7DQoJCWRvY3VtZW50LmFsbC5NU09Db25uX0NyZWF0aW9uU3RlcC52 YWx1ZT0iMSI7DQoJCWRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJ3YWl0IjsN CgkJX19kb1Bvc3RCYWNrKE1TT1dlYlBhcnRQYWdlRm9ybU5hbWUsICcnKTsNCgl9 DQp9DQpmdW5jdGlvbiBNU09Db25uX0NyZWF0ZUNvbm5lY3Rpb25TdGVwMihzb3Vy Y2VHdWlkLCB0YXJnZXRHdWlkLCBzb3VyY2VJRCwgdGFyZ2V0SUQsIHNHcm91cElE LCB0R3JvdXBJRCkNCnsJDQoJdmFyIHRhcmdldEdyb3VwSUQ9bnVsbDsNCgl2YXIg dGFyZ2V0R3BOb2RlPW51bGw7DQoJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fU1dwSWQu dmFsdWU9c291cmNlR3VpZDsNCglkb2N1bWVudC5hbGwuTVNPQ29ubl9UV3BJZC52 YWx1ZT10YXJnZXRHdWlkOw0KCWRvY3VtZW50LmFsbC5NU09Db25uX1NHcm91cElk LnZhbHVlPXNHcm91cElEOw0KCWRvY3VtZW50LmFsbC5NU09Db25uX1RHcm91cElk LnZhbHVlPXRHcm91cElEOw0KCXZhciBzb3VyY2VXcE5vZGU9TVNPQ29ubl9Db21w YXRpYmlsaXR5LnNlbGVjdFNpbmdsZU5vZGUoIkNvbm5EZXNpZ24vc1dlYlBhcnRb QGlkPSdNU09Db25uXyIrc291cmNlSUQrIiddIik7DQoJaWYoc291cmNlV3BOb2Rl ICE9bnVsbCkNCgl7DQoJCU1TT0Nvbm5fU291cmNlV3BOb2RlPXNvdXJjZVdwTm9k ZTsNCgkJdmFyIHNvdXJjZUdwTm9kZT1udWxsOw0KCQl2YXIgc291cmNlR3BOb2Rl cz1zb3VyY2VXcE5vZGUuc2VsZWN0Tm9kZXMoJ3NnJyk7DQoJCWZvciAodmFyIGk9 MDsgc291cmNlR3BOb2Rlcy5sZW5ndGg7IGorKykNCgkJew0KCQkJaWYgKHNvdXJj ZUdwTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpPT1zR3JvdXBJRCkNCgkJCXsN CgkJCQlzb3VyY2VHcE5vZGU9c291cmNlR3BOb2Rlc1tpXTsNCgkJCQlicmVhazsN CgkJCX0NCgkJfQ0KCQlpZihzb3VyY2VHcE5vZGUgIT1udWxsKQ0KCQl7DQoJCQlN U09Db25uX1NvdXJjZUdyb3VwTm9kZT1zb3VyY2VHcE5vZGU7DQoJCQl2YXIgdGFy Z2V0V3BOb2RlPXNvdXJjZUdwTm9kZS5zZWxlY3RTaW5nbGVOb2RlKCJ0UGFydHMv dFdlYlBhcnRbQGlkPSdNU09Db25uXyIrdGFyZ2V0SUQrIiddIik7DQoJCQlpZih0 YXJnZXRXcE5vZGUgIT1udWxsKQ0KCQkJew0KCQkJCU1TT0Nvbm5fVGFyZ2V0V3BO b2RlPXRhcmdldFdwTm9kZTsNCgkJCQlpZighdEdyb3VwSUQpDQoJCQkJew0KCQkJ CQlNU09Db25uX011bHRpcGxlVGFyZ2V0R3JvdXBzPXRydWU7DQoJCQkJCU1TT0Nv bm5fU2hvd1RhcmdldEdyb3Vwc0RpYWxvZygpOw0KCQkJCX0NCgkJCQllbHNlDQoJ CQkJew0KCQkJCQl2YXIgdGFyZ2V0R3JvdXBOb2Rlcz10YXJnZXRXcE5vZGUuc2Vs ZWN0Tm9kZXMoJ3RnJyk7DQoJCQkJCWZvciAodmFyIGo9MDsgdGFyZ2V0R3JvdXBO b2Rlcy5sZW5ndGg7IGorKykNCgkJCQkJew0KCQkJCQkJaWYgKHRhcmdldEdyb3Vw Tm9kZXNbal0uZ2V0QXR0cmlidXRlKCdpZCcpPT10R3JvdXBJRCkNCgkJCQkJCXsN CgkJCQkJCQlNU09Db25uX1RhcmdldEdyb3VwTm9kZT10YXJnZXRHcm91cE5vZGVz W2pdOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJ CU1TT0Nvbm5fU2hvd1hGb3Jtc0FuZFBlcnNpc3QoKTsJCQkNCgkJCX0NCgkJfQ0K CX0NCglkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iYXV0byI7DQp9DQpmdW5j dGlvbiBNU09Db25uX1BlcnNpc3RDb25uZWN0aW9uKCkNCnsNCglkb2N1bWVudC5h bGwuTVNPQ29ubl9TR3JvdXBJZC52YWx1ZT1NU09Db25uX1NvdXJjZUdyb3VwTm9k ZS5nZXRBdHRyaWJ1dGUoJ2lkJyk7DQoJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fVEdy b3VwSWQudmFsdWU9TVNPQ29ubl9UYXJnZXRHcm91cE5vZGUuZ2V0QXR0cmlidXRl KCdpZCcpOw0KCWlmKGRvY3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52YWx1ZSAh PSJyZW1vdmUiICYmIGRvY3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52YWx1ZSAh PSJlZGl0IikNCgl7DQoJCWRvY3VtZW50LmFsbC5NU09Db25uX0J1dHRvbi52YWx1 ZT0ic2F2ZSI7DQoJfQ0KCWlmKE1TT0Nvbm5fWGZvcm1JbmZvMSAhPW51bGwpDQoJ ew0KCQlkb2N1bWVudC5hbGwuTVNPQ29ubl9YRm9ybTEudmFsdWU9TVNPQ29ubl9Y Zm9ybUluZm8xOw0KCX0NCglpZihNU09Db25uX1hmb3JtSW5mbzIgIT1udWxsKQ0K CXsNCgkJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fWEZvcm0yLnZhbHVlPU1TT0Nvbm5f WGZvcm1JbmZvMjsNCgl9DQoJaWYoTVNPQ29ubl9Bc3BYZm9ybUluZm8gIT1udWxs KQ0KCXsNCgkJZG9jdW1lbnQuYWxsLk1TT0Nvbm5fQXNwWEZvcm0udmFsdWU9TVNP Q29ubl9Bc3BYZm9ybUluZm87DQoJfQ0KCV9fZG9Qb3N0QmFjayhNU09XZWJQYXJ0 UGFnZUZvcm1OYW1lLCAnJyk7DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfU2hvd0Vy cm9yRGV0YWlscygpDQp7DQoJdmFyIHNyYz1ldmVudC5zcmNFbGVtZW50LnBhcmVu dEVsZW1lbnQ7DQoJIE1TT0xheW91dF9TaG93SGlkZUVycm9yRGV0YWlscyhzcmMu bmV4dFNpYmxpbmcsIHNyYyk7DQp9DQpmdW5jdGlvbiBNU09MYXlvdXRfSGlkZUVy cm9yRGV0YWlscygpDQp7DQoJdmFyIHNyYz1ldmVudC5zcmNFbGVtZW50LnBhcmVu dEVsZW1lbnQucGFyZW50RWxlbWVudDsNCgkgTVNPTGF5b3V0X1Nob3dIaWRlRXJy b3JEZXRhaWxzKHNyYy5wcmV2aW91c1NpYmxpbmcsIHNyYyk7DQp9DQpmdW5jdGlv biBNU09MYXlvdXRfU2hvd0hpZGVFcnJvckRldGFpbHMoc2hvdywgaGlkZSkNCnsN CgloaWRlLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KCXNob3cuc3R5bGUuZGlzcGxh eT0naW5saW5lJzsNCn0NCmZ1bmN0aW9uIE1TT0xheW91dF9TaG93UXVpY2tBZGRE aWFsb2coc2l0ZUlkLCB3ZWJJZCwgZW5jb2RlZFF1aWNrQWRkR3JvdXBzLCBzaG93 TGlzdHNBbmRMaWJyYXJpZXMsIG51bWJlck9mV2ViUGFydHNJblpvbmUsIG1heFdl YlBhcnRzSW5ab25lLGNhbGxiYWNrTWV0aG9kLCBlbkNvZGVkWm9uZURpc3BsYXlO YW1lLCBwb3BVcFBhZ2UsZmVhdHVyZSkNCnsNCgl2YXIgcXVlcnlTdHJpbmc9Jz9T aXRlSWQ9JytzaXRlSWQrJyZXZWJJZD0nK3dlYklkOw0KCWlmKGVuY29kZWRRdWlj a0FkZEdyb3VwcyAhPScnKQ0KCXsNCgkJcXVlcnlTdHJpbmcrPScmR3JvdXBzPScr ZW5jb2RlZFF1aWNrQWRkR3JvdXBzOw0KCX0NCglpZihzaG93TGlzdHNBbmRMaWJy YXJpZXM9PWZhbHNlKQ0KCXsNCgkJcXVlcnlTdHJpbmcrPScmU2hvd0xpc3RzQW5k TGlicmFyaWVzPWZhbHNlJzsNCgl9DQoJcXVlcnlTdHJpbmcrPScmTnVtYmVyT2ZX ZWJQYXJ0c0luWm9uZT0nK251bWJlck9mV2ViUGFydHNJblpvbmU7DQoJcXVlcnlT dHJpbmcrPScmTWF4V2ViUGFydHNJblpvbmU9JyttYXhXZWJQYXJ0c0luWm9uZTsN CglpZihlbkNvZGVkWm9uZURpc3BsYXlOYW1lICE9JycpDQoJew0KCQlxdWVyeVN0 cmluZys9JyZab25lRGlzcGxheU5hbWU9JytlbkNvZGVkWm9uZURpc3BsYXlOYW1l Ow0KCX0NCgljb21tb25TaG93TW9kYWxEaWFsb2cocG9wVXBQYWdlK3F1ZXJ5U3Ry aW5nLCBmZWF0dXJlLCBjYWxsYmFja01ldGhvZCk7ICAgICAgICAJDQp9DQp2YXIg TVNPVGxQbl9wcmV2QnVpbGRlcj1udWxsOw0KdmFyIE1TT1RsUG5fcHJldldpZHRo PTA7DQp2YXIgTVNPVGxQbl9wcmV2SGVpZ2h0PTA7DQp2YXIgTVNPVGxQbl9zaG93 blZpZXdDaGFuZ2VXYXJuaW5nPWZhbHNlOw0KdmFyIE1TT1dlYlBhcnRQYWdlX2hp ZGVOZXh0QmVmb3JlVW5sb2FkPWZhbHNlOw0KdmFyIE1TT1dlYlBhcnRQYWdlX3Bh cnREZWxldGVkPSIiOw0KdmFyIE1TT0NoYW5nZUluVG9vbFBhbmVXaWR0aD0xMjA7 DQpmdW5jdGlvbiBDb252ZXJ0VG9Bc3BQYXJ0RGlzcGxheU1vZGUodmlldykNCnsN Cgl2YXIgZGlzcGxheU1vZGU7DQoJc3dpdGNoKHZpZXcpDQoJew0KCQljYXNlICct MSc6IGRpc3BsYXlNb2RlPSdFeHRlbnNpYmxlVmlldyc7DQoJCQlicmVhazsNCgkJ Y2FzZSAnMCc6IGRpc3BsYXlNb2RlPSdCcm93c2UnOw0KCQkJYnJlYWs7DQoJCWNh c2UgJzEnOiBkaXNwbGF5TW9kZT0nRWRpdCc7DQoJCQlicmVhazsNCgkJY2FzZSAn Mic6IGRpc3BsYXlNb2RlPSdDYXRhbG9nJzsNCgkJCWJyZWFrOw0KCQljYXNlICcz JzogZGlzcGxheU1vZGU9J0dhbGxlcnlTZWFyY2gnOw0KCQkJYnJlYWs7DQoJCWNh c2UgJzQnOiBkaXNwbGF5TW9kZT0nTmF2aWdhdGlvbic7DQoJCQlicmVhazsNCgkJ Y2FzZSAnNSc6IGRpc3BsYXlNb2RlPSdJbXBvcnQnOw0KCQkJYnJlYWs7DQoJCWNh c2UgJzYnOiBkaXNwbGF5TW9kZT0nRG93bkxldmVsV2ViUGFydE1lbnUnOw0KCQkJ YnJlYWs7DQoJCWNhc2UgJzcnOiBkaXNwbGF5TW9kZT0nVG9vbFBhbmVFcnInOw0K CQkJYnJlYWs7DQoJCX0NCglyZXR1cm4gZGlzcGxheU1vZGU7DQp9DQpmdW5jdGlv biBNU09UbFBuX1Nob3dUb29sUGFuZTIoZGlzcGxheU1vZGVOYW1lKQ0Kew0KCWlm IChkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09HYWxs ZXJ5X0ZpbHRlclZpc2libGUpDQoJCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQ YWdlRm9ybU5hbWVdLk1TT0dhbGxlcnlfRmlsdGVyVmlzaWJsZS52YWx1ZT0nZmFs c2UnOw0KCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1T T1NQV2ViUGFydE1hbmFnZXJfRGlzcGxheU1vZGVOYW1lLnZhbHVlPWRpc3BsYXlN b2RlTmFtZTsNCglpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpDQoJew0KCQlkb2N1 bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09TUFdlYlBhcnRN YW5hZ2VyX1N0YXJ0V2ViUGFydEVkaXRpbmdOYW1lLnZhbHVlPSd0cnVlJzsNCgkJ ZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNPVGxQbl9T ZWxlY3RlZFdwSWQudmFsdWU9YXJndW1lbnRzWzFdOw0KCX0NCglfX2RvUG9zdEJh Y2soTVNPV2ViUGFydFBhZ2VGb3JtTmFtZSwnJyk7DQp9DQpmdW5jdGlvbiBNU09U bFBuX1Nob3dUb29sUGFuZTJXcmFwcGVyKGRpc3BsYXlNb2RlTmFtZSwgc291cmNl KQ0Kew0KCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1T T1dlYlBhcnRQYWdlX1Bvc3RiYWNrU291cmNlLnZhbHVlPXNvdXJjZTsNCglpZigg YXJndW1lbnRzWzJdPT1udWxsICkNCgkJTVNPVGxQbl9TaG93VG9vbFBhbmUyKGRp c3BsYXlNb2RlTmFtZSk7DQoJZWxzZQ0KCQlNU09UbFBuX1Nob3dUb29sUGFuZTIo ZGlzcGxheU1vZGVOYW1lLCBhcmd1bWVudHNbMl0pOw0KfQ0KZnVuY3Rpb24gTVNP VGxQbl9TaG93VG9vbFBhbmUodmlldykNCnsNCglpZiAoYXJndW1lbnRzLmxlbmd0 aCA+IDEpDQoJCU1TT1RsUG5fU2hvd1Rvb2xQYW5lMihDb252ZXJ0VG9Bc3BQYXJ0 RGlzcGxheU1vZGUodmlldyksIGFyZ3VtZW50c1sxXSk7DQoJZWxzZQ0KCQlNU09U bFBuX1Nob3dUb29sUGFuZTIoQ29udmVydFRvQXNwUGFydERpc3BsYXlNb2RlKHZp ZXcpKTsNCn0NCmZ1bmN0aW9uIE1TT1RsUG5fU2hvd1Rvb2xQYW5lV3JhcHBlcih2 aWV3LCBzb3VyY2UpDQp7DQoJaWYgKGFyZ3VtZW50c1syXT09bnVsbCkNCgkJTVNP VGxQbl9TaG93VG9vbFBhbmUyV3JhcHBlcihDb252ZXJ0VG9Bc3BQYXJ0RGlzcGxh eU1vZGUodmlldyksIHNvdXJjZSk7DQoJZWxzZQ0KCQlNU09UbFBuX1Nob3dUb29s UGFuZTJXcmFwcGVyKENvbnZlcnRUb0FzcFBhcnREaXNwbGF5TW9kZSh2aWV3KSwg c291cmNlLCBhcmd1bWVudHNbMl0pOw0KfQ0KZnVuY3Rpb24gTVNPTGF5b3V0X0No ZWNrQW5kU2F2ZUNoYW5nZXMoKQ0Kew0KCWlmKGRvY3VtZW50LmZvcm1zW01TT1dl YlBhcnRQYWdlRm9ybU5hbWVdLk1TT0xheW91dF9MYXlvdXRDaGFuZ2VzICE9bnVs bCAmJiBkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09M YXlvdXRfTGF5b3V0Q2hhbmdlcy52YWx1ZSAhPSIiKQ0KCXsNCgkJTVNPTGF5b3V0 X1NhdmVDaGFuZ2VzKCk7DQoJfQ0KfQ0KZnVuY3Rpb24gTVNPV2ViUGFydFBhZ2Vf RXhwb3J0Q2hlY2tXYXJuaW5nKGFkZHJlc3MsIGhhc1BlcnNvbmFsaXphdGlvbnMp DQp7DQoJdmFyIGRvZXhwb3J0PXRydWU7DQoJaWYgKGhhc1BlcnNvbmFsaXphdGlv bnMpDQoJew0KCQlpZiAoIWNvbmZpcm0oTVNPU3RyaW5ncy5FeHBvcnRQZXJzb25h bGl6YXRpb25EaWFsb2dUZXh0KSkNCgkJew0KCQkJZG9leHBvcnQ9ZmFsc2U7DQoJ CX0NCgl9DQoJaWYgKGRvZXhwb3J0KQ0KCXsNCgkJdmFyIG9sZFNhdmVQZXJmb3Jt ZWQ9ZmFsc2U7DQoJCWlmKHR5cGVvZihNU09XUFNDX1NhdmVQZXJmb3JtZWQpPT0i Ym9vbGVhbiIpDQoJCXsNCgkJCW9sZFNhdmVQZXJmb3JtZWQ9TVNPV1BTQ19TYXZl UGVyZm9ybWVkOw0KCQl9DQoJCU1TT1dlYlBhcnRQYWdlX1NldFdpbmRvd0xvY2F0 aW9uKGFkZHJlc3MpOw0KCQlpZih0eXBlb2YoTVNPV1BTQ19TYXZlUGVyZm9ybWVk KT09ImJvb2xlYW4iKQ0KCQl7DQoJCQlNU09XUFNDX1NhdmVQZXJmb3JtZWQ9b2xk U2F2ZVBlcmZvcm1lZDsNCgkJCU1TT1dlYlBhcnRQYWdlX2hpZGVOZXh0QmVmb3Jl VW5sb2FkPXRydWU7DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBNU09Nb2RlX1NldE1v ZGUoYkFsbFVzZXJzKQ0Kew0KCXZhciBuZXdVcmw9TVNPTW9kZV9HZXROZXdVcmwo YkFsbFVzZXJzKTsNCglNU09MYXlvdXRfQ2hlY2tBbmRTYXZlQ2hhbmdlcygpOw0K CWlmKGRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT1NQ V2ViUGFydE1hbmFnZXJfRGlzcGxheU1vZGVOYW1lLnZhbHVlICE9J05hdmlnYXRp b24nKQ0KCXsNCgkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFt ZV0uTVNPU1BXZWJQYXJ0TWFuYWdlcl9EaXNwbGF5TW9kZU5hbWUudmFsdWU9J0Jy b3dzZSc7DQoJCXZhciB0b29sUGFuZVZpZXdFeHByZXNzaW9uPS9bJiB8IFw/XVRv b2xQYW5lVmlldz1bLTAtOUEtWl0qL2lnOw0KCQl2YXIgZGlzcGxheU1vZGVFeHBy ZXNzaW9uPS9bJiB8IFw/XURpc3BsYXlNb2RlPVthLXpBLVpdKi9pZzsNCgkJbmV3 VXJsPU1TT01vZGVfUmVtb3ZlTW9kZShuZXdVcmwsIHRvb2xQYW5lVmlld0V4cHJl c3Npb24pOw0KCQluZXdVcmw9TVNPTW9kZV9SZW1vdmVNb2RlKG5ld1VybCwgZGlz cGxheU1vZGVFeHByZXNzaW9uKTsNCgl9DQoJZG9jdW1lbnQuZm9ybXNbTVNPV2Vi UGFydFBhZ2VGb3JtTmFtZV0uTVNPV2ViUGFydFBhZ2VfU2hhcmVkLnZhbHVlPWJB bGxVc2VycyA/ICJ0cnVlIiA6ICJmYWxzZSI7DQoJZG9jdW1lbnQuZm9ybXNbTVNP V2ViUGFydFBhZ2VGb3JtTmFtZV0uYWN0aW9uPW5ld1VybDsNCglfX2RvUG9zdEJh Y2soTVNPV2ViUGFydFBhZ2VGb3JtTmFtZSwnJyk7DQp9DQpmdW5jdGlvbiBNU09N b2RlX0dldE5ld1VybChiQWxsVXNlcnMsIG5ld1VybCkNCnsNCglpZiAobmV3VXJs PT1udWxsKQ0KCXsNCgkJbmV3VXJsPWRvY3VtZW50LmxvY2F0aW9uLmhyZWY7DQoJ fQ0KCXZhciBwZXJzb25hbFZpZXdFeHByZXNzaW9uPS9bJiB8IFw/XVBhZ2VWaWV3 PVBlcnNvbmFsL2lnOw0KCXZhciBhbGxVc2Vyc1ZpZXdFeHByZXNzaW9uPS9bJiB8 IFw/XVBhZ2VWaWV3PVNoYXJlZC9pZzsNCgl2YXIgbmV3TW9kZT0iUGFnZVZpZXc9 IisoYkFsbFVzZXJzID8gIlNoYXJlZCIgOiAiUGVyc29uYWwiKTsNCgluZXdVcmw9 TVNPTW9kZV9SZW1vdmVNb2RlKG5ld1VybCwgcGVyc29uYWxWaWV3RXhwcmVzc2lv bik7DQoJbmV3VXJsPU1TT01vZGVfUmVtb3ZlTW9kZShuZXdVcmwsIGFsbFVzZXJz Vmlld0V4cHJlc3Npb24pOw0KCW5ld1VybD1NU09Nb2RlX0FkZE1vZGUobmV3VXJs LCBhbGxVc2Vyc1ZpZXdFeHByZXNzaW9uLCBuZXdNb2RlKTsNCglyZXR1cm4gbmV3 VXJsOw0KfQ0KZnVuY3Rpb24gTVNPTW9kZV9SZW1vdmVNb2RlKG5ld1VybCwgcmVn RXhwcmVzc2lvbikNCnsNCgl2YXIgaGFzaE1hcmtFeHByZXNzaW9uPS9cIy87DQoJ dmFyIGhhc2hNYXJrSW5kZXg9bmV3VXJsLnNlYXJjaChoYXNoTWFya0V4cHJlc3Np b24pOw0KCWlmKGhhc2hNYXJrSW5kZXggIT0tMSkNCgl7DQoJCW5ld1VybD1uZXdV cmwuc3Vic3RyaW5nKDAsIGhhc2hNYXJrSW5kZXgpOw0KCX0NCgl2YXIgcXVlc3Rp b25NYXJrRXhwcmVzc2lvbj0vXD8vOw0KCXZhciBxdWVzdGlvbk1hcmtJbmRleD1u ZXdVcmwuc2VhcmNoKHF1ZXN0aW9uTWFya0V4cHJlc3Npb24pOw0KCWlmKHF1ZXN0 aW9uTWFya0luZGV4ICE9LTEpDQoJew0KCQl2YXIgcGF0aFN0cmluZz1uZXdVcmwu c3Vic3RyaW5nKDAsIHF1ZXN0aW9uTWFya0luZGV4KTsNCgkJdmFyIHF1ZXJ5U3Ry aW5nPW5ld1VybC5zdWJzdHJpbmcocXVlc3Rpb25NYXJrSW5kZXgsIG5ld1VybC5s ZW5ndGgpOw0KCQlxdWVyeVN0cmluZz1xdWVyeVN0cmluZy5yZXBsYWNlKHJlZ0V4 cHJlc3Npb24sJycpOw0KCQlpZihxdWVyeVN0cmluZy5sZW5ndGggIT0wICYmIHF1 ZXJ5U3RyaW5nLmNoYXJBdCgwKSAhPSc/JykNCgkJew0KCQkJcXVlcnlTdHJpbmc9 Ij8iK3F1ZXJ5U3RyaW5nOw0KCQl9DQoJCW5ld1VybD1wYXRoU3RyaW5nK3F1ZXJ5 U3RyaW5nOw0KCX0NCglyZXR1cm4gbmV3VXJsOw0KfQ0KZnVuY3Rpb24gTVNPTW9k ZV9BZGRNb2RlKG5ld1VybCwgcmVnRXhwcmVzc2lvbiwgc3RyaW5nVG9BZGQpDQp7 DQoJdmFyIGhhc2hNYXJrRXhwcmVzc2lvbj0vXCMvOw0KCXZhciBoYXNoTWFya0lu ZGV4PW5ld1VybC5zZWFyY2goaGFzaE1hcmtFeHByZXNzaW9uKTsNCglpZihoYXNo TWFya0luZGV4ICE9LTEpDQoJew0KCQluZXdVcmw9bmV3VXJsLnN1YnN0cmluZygw LCBoYXNoTWFya0luZGV4KTsNCgl9DQoJdmFyIHF1ZXN0aW9uTWFya0V4cHJlc3Np b249L1w/LzsNCgl2YXIgcXVlc3Rpb25NYXJrSW5kZXg9bmV3VXJsLnNlYXJjaChx dWVzdGlvbk1hcmtFeHByZXNzaW9uKTsNCglpZihxdWVzdGlvbk1hcmtJbmRleD09 LTEgKQ0KCXsNCgkJbmV3VXJsKz0nPycrc3RyaW5nVG9BZGQ7DQoJfQ0KCWVsc2UN Cgl7DQoJCXZhciBxdWVyeVN0cmluZz1uZXdVcmwuc3Vic3RyaW5nKHF1ZXN0aW9u TWFya0luZGV4LCBuZXdVcmwubGVuZ3RoKTsNCgkJaWYocXVlcnlTdHJpbmcuc2Vh cmNoKHJlZ0V4cHJlc3Npb24pPT0tMSkNCgkJew0KCQkJbmV3VXJsKz0nJicrc3Ry aW5nVG9BZGQ7DQoJCX0NCgl9DQoJcmV0dXJuIG5ld1VybDsNCn0NCmZ1bmN0aW9u IE1TT1BHcmlkX0J1aWxkZXJWaXNpYmxlKGJ1aWxkZXJJRCkNCnsNCglNU09QR3Jp ZF9IaWRlUHJldkJ1aWxkZXIoKTsNCglNU09UbFBuX3ByZXZCdWlsZGVyPW51bGw7 DQoJYnVpbGRlcklELnN0eWxlLmRpc3BsYXk9J2lubGluZSc7DQp9DQpmdW5jdGlv biBNU09QR3JpZF9IaWRlUHJldkJ1aWxkZXIoKQ0Kew0KCWlmKE1TT1RsUG5fcHJl dkJ1aWxkZXIgIT1udWxsKQ0KCXsNCgkJZXZhbChNU09UbFBuX3ByZXZCdWlsZGVy KS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCgl9DQp9DQpmdW5jdGlvbiBNU09QR3Jp ZF9kb0J1aWxkZXIoYnVpbGRlclVybCwgZWRpdG9ySWQsIGRpYWxvZ0ZlYXR1cmVz KQ0Kew0KCXZhciBwUmV0dXJuVmFsdWU9c2hvd01vZGFsRGlhbG9nKGJ1aWxkZXJV cmwsZWRpdG9ySWQsZGlhbG9nRmVhdHVyZXMpOw0KCWVkaXRvcklkLnZhbHVlPXBS ZXR1cm5WYWx1ZTsNCi8vQGNjX29uDQovL0BpZiAoQF9qc2NyaXB0X3ZlcnNpb24g Pj01KQ0KLy9AICAgICB0cnkgeyBlZGl0b3JJZC5mb2N1cygpOyB9IGNhdGNoIChl eGNlcHRpb24pIHt9DQovL0BlbHNlDQovL0BlbmQNCn0NCmZ1bmN0aW9uIE1TT1dl YlBhcnRQYWdlX1Jlc3RvcmVQYWdlRGVmYXVsdCgpDQp7DQoJaWYoY29uZmlybShN U09TdHJpbmdzLlJlc2V0UGFnZVBlcnNvbmFsaXphdGlvbkRpYWxvZ1RleHQpKQ0K CXsNCgkJdmFyIG5ld0lucHV0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0lOUFVU Jyk7DQoJCS8vQGNjX29uDQoJCS8vQGlmIChAX2pzY3JpcHRfdmVyc2lvbiA+PTUp DQoJCS8vQCAgICAgdHJ5DQoJCS8vQGVsc2UNCgkJLy9AZW5kDQoJCXsNCgkJCW5l d0lucHV0LnR5cGU9J2hpZGRlbic7DQoJCX0NCgkJLy9AY2Nfb24NCgkJLy9AaWYg KEBfanNjcmlwdF92ZXJzaW9uID49NSkNCgkJLy9AICAgICBjYXRjaChlKXtuZXdJ bnB1dC5zdHlsZS5kaXNwbGF5PSdub25lJzt9DQoJCS8vQGVsc2UNCgkJLy9AZW5k DQoJCW5ld0lucHV0Lm5hbWU9J01TT1dlYlBhcnRQYWdlX1Jlc3RvcmVQYWdlRGVm YXVsdCc7DQoJCW5ld0lucHV0LnZhbHVlPSd0cnVlJzsNCgkJZG9jdW1lbnQuZm9y bXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uYXBwZW5kQ2hpbGQobmV3SW5wdXQp Ow0KCQlpZihkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5N U09MYXlvdXRfTGF5b3V0Q2hhbmdlcyAhPW51bGwpDQoJCXsNCgkJCWRvY3VtZW50 LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT0xheW91dF9MYXlvdXRD aGFuZ2VzLnZhbHVlPSIiOw0KCQl9DQoJCU1TT01vZGVfU2V0TW9kZShmYWxzZSk7 DQoJfQ0KfQ0KZnVuY3Rpb24gTVNPV2ViUGFydFBhZ2VfUmVzdG9yZVBhcnREZWZh dWx0cyh3ZWJQYXJ0SUQpDQp7DQoJaWYoY29uZmlybShNU09TdHJpbmdzLlJlc2V0 UGFydFBlcnNvbmFsaXphdGlvbkRpYWxvZ1RleHQpKQ0KCXsNCgkJdmFyIG5ld0lu cHV0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0lOUFVUJyk7DQoJCS8vQGNjX29u DQoJCS8vQGlmIChAX2pzY3JpcHRfdmVyc2lvbiA+PTUpDQoJCS8vQCAgICAgdHJ5 DQoJCS8vQGVsc2UNCgkJLy9AZW5kDQoJCXsNCgkJCW5ld0lucHV0LnR5cGU9J2hp ZGRlbic7DQoJCX0NCgkJLy9AY2Nfb24NCgkJLy9AaWYgKEBfanNjcmlwdF92ZXJz aW9uID49NSkNCgkJLy9AICAgICBjYXRjaChlKXtuZXdJbnB1dC5zdHlsZS5kaXNw bGF5PSdub25lJzt9DQoJCS8vQGVsc2UNCgkJLy9AZW5kDQoJCW5ld0lucHV0Lm5h bWU9J01TT19SZXN0b3JlU2V0dGluZ3MnOw0KCQluZXdJbnB1dC52YWx1ZT13ZWJQ YXJ0SUQ7DQoJCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVd LmFwcGVuZENoaWxkKG5ld0lucHV0KTsNCgkJTVNPTW9kZV9TZXRNb2RlKGZhbHNl KTsNCgl9DQp9DQpmdW5jdGlvbiBNU09XZWJQYXJ0UGFnZV9NZW51RG9Qb3N0QmFj ayhldmVudFRhcmdldCwgZXZlbnRBcmd1bWVudCkNCnsNCgl2YXIgdGhlZm9ybT1k b2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXTsNCgl2YXIgZXZl bnRUYXJnZXRGaWVsZD10aGVmb3JtLl9fRVZFTlRUQVJHRVQ7DQoJdmFyIGV2ZW50 QXJndW1lbnRGaWVsZD10aGVmb3JtLl9fRVZFTlRBUkdVTUVOVDsNCglpZihldmVu dFRhcmdldEZpZWxkPT1udWxsKQ0KCXsNCgkJZXZlbnRUYXJnZXRGaWVsZD1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCdJTlBVVCcpOw0KCQlldmVudFRhcmdldEZpZWxk LnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KCQlldmVudFRhcmdldEZpZWxkLm5hbWU9 J19fRVZFTlRUQVJHRVQnOw0KCQlkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFn ZUZvcm1OYW1lXS5hcHBlbmRDaGlsZChldmVudFRhcmdldEZpZWxkKTsNCgl9DQoJ aWYoZXZlbnRBcmd1bWVudEZpZWxkPT1udWxsKQ0KCXsNCgkJZXZlbnRBcmd1bWVu dEZpZWxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0lOUFVUJyk7DQoJCWV2ZW50 QXJndW1lbnRGaWVsZC5zdHlsZS5kaXNwbGF5PSdub25lJzsNCgkJZXZlbnRBcmd1 bWVudEZpZWxkLm5hbWU9J19fRVZFTlRBUkdVTUVOVCc7DQoJCWRvY3VtZW50LmZv cm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLmFwcGVuZENoaWxkKGV2ZW50QXJn dW1lbnRGaWVsZCk7DQoJfQ0KCV9fZG9Qb3N0QmFjayhldmVudFRhcmdldCwgZXZl bnRBcmd1bWVudCk7DQp9DQpmdW5jdGlvbiBNU09XZWJQYXJ0UGFnZV9TaWduSW4o KQ0Kew0KCXZhciBuZXdJbnB1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdJTlBV VCcpOw0KCS8vQGNjX29uDQoJLy9AaWYgKEBfanNjcmlwdF92ZXJzaW9uID49NSkN CgkvL0AgICAgIHRyeQ0KCS8vQGVsc2UNCgkvL0BlbmQNCgl7DQoJCW5ld0lucHV0 LnR5cGU9J2hpZGRlbic7DQoJfQ0KCS8vQGNjX29uDQoJLy9AaWYgKEBfanNjcmlw dF92ZXJzaW9uID49NSkNCgkvL0AgICAgIGNhdGNoKGUpe25ld0lucHV0LnN0eWxl LmRpc3BsYXk9J25vbmUnO30NCgkvL0BlbHNlDQoJLy9AZW5kDQoJbmV3SW5wdXQu bmFtZT0nTVNPV2ViUGFydFBhZ2VfQW5vbnltb3VzQWNjZXNzTG9nSW4nOw0KCW5l d0lucHV0LnZhbHVlPSIxIjsNCglkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFn ZUZvcm1OYW1lXS5hcHBlbmRDaGlsZChuZXdJbnB1dCk7DQoJX19kb1Bvc3RCYWNr KE1TT1dlYlBhcnRQYWdlRm9ybU5hbWUsJycpOw0KfQ0KZnVuY3Rpb24gTVNPV2Vi UGFydFBhZ2VfU2V0V2luZG93TG9jYXRpb24obmV3TG9jYXRpb24pDQp7DQoJdmFy IG5ld0xvY2F0aW9uTG93ZXJDYXNlPW5ld0xvY2F0aW9uLnRvTG93ZXJDYXNlKCk7 DQoJaWYobmV3TG9jYXRpb25Mb3dlckNhc2UuaW5kZXhPZignamF2YXNjcmlwdDon KT09MCB8fCBuZXdMb2NhdGlvbkxvd2VyQ2FzZS5pbmRleE9mKCd2YnNjcmlwdDon KT09MCkNCgl7DQoJCU1TT1dlYlBhcnRQYWdlX2hpZGVOZXh0QmVmb3JlVW5sb2Fk PXRydWU7DQoJfQ0KCXdpbmRvdy5sb2NhdGlvbj1uZXdMb2NhdGlvbjsNCn0NCmZ1 bmN0aW9uIE1TT1dlYlBhcnRQYWdlX1NldE5ld1dpbmRvd0xvY2F0aW9uKGhlbHBV cmwsIGhlbHBNb2RlKQ0Kew0KCWlmIChoZWxwTW9kZT09MCB8fCBoZWxwTW9kZT09 MSkNCgl7DQoJCWlmIChoZWxwTW9kZT09MCkNCgkJew0KCQkJdmFyIGRpYWxvZ0lu Zm89ImVkZ2U6IFN1bmtlbjsgY2VudGVyOiB5ZXM7IGhlbHA6IG5vOyByZXNpemFi bGU6IHllczsgc3RhdHVzOiBubyI7DQoJCQl3aW5kb3cuY29tbW9uU2hvd01vZGFs RGlhbG9nKGhlbHBVcmwsIGRpYWxvZ0luZm8pOw0KCQl9DQoJCWVsc2UNCgkJew0K CQkJd2luZG93Lm9wZW4oaGVscFVybCwgbnVsbCwgInNjcm9sbGJhcnM9eWVzLHJl c2l6YWJsZT15ZXMsc3RhdHVzPW5vLHRvb2xiYXI9bm8sbWVudWJhcj1ubyxsb2Nh dGlvbj1ubyIpOw0KCQl9DQoJfQ0KCWVsc2UgaWYgKGhlbHBNb2RlPT0yKQ0KCXsN CgkJd2luZG93LmxvY2F0aW9uPWhlbHBVcmw7DQoJfQ0KfQ0KZnVuY3Rpb24gTVNP VGxQbl9vblRvb2xQYW5lQ2xvc2VDbGljaygpDQp7DQoJdmFyIERpc3BsYXlNb2Rl QnJvd3NlPSdCcm93c2UnOw0KCXZhciBQb3N0YmFja1NvdXJjZVNldHRpbmdzSGlk ZT0nNDknOw0KCU1TT1RsUG5fU2hvd1Rvb2xQYW5lMldyYXBwZXIoRGlzcGxheU1v ZGVCcm93c2UsIFBvc3RiYWNrU291cmNlU2V0dGluZ3NIaWRlKTsNCn0NCmZ1bmN0 aW9uIE1TT1BHcmlkX0ludm9rZUZQQnVpbGRlcih0eXBlLGFyZ3VtZW50cyxlZGl0 b3JDdHJsKQ0Kew0KCWVkaXRvckN0cmwudmFsdWU9d2luZG93LmV4dGVybmFsLklu dm9rZUJ1aWxkZXIodHlwZSxhcmd1bWVudHMsZWRpdG9yQ3RybC5pZCk7DQoJZWRp dG9yQ3RybC5mb2N1cygpOw0KfQ0KZnVuY3Rpb24gTVNPTWVudV9LZXlib2FyZENs aWNrKHdpZGdldCkNCnsNCglmb3IodmFyIGluZGV4PTE7IGluZGV4IDwgYXJndW1l bnRzLmxlbmd0aDsgaW5kZXgrKykNCgl7DQoJCWlmKGV2ZW50LmtleUNvZGU9PWFy Z3VtZW50c1tpbmRleF0pDQoJCXsNCgkJCXdpZGdldC5jbGljaygpOw0KCQkJZXZl bnQucmV0dXJuVmFsdWU9ZmFsc2U7DQoJCQlyZXR1cm47DQoJCX0NCgl9DQp9DQpm dW5jdGlvbiBNU09UbFBuX1RvZ2dsZURpc3BsYXkoc3RySUQsc3RySW1nTmFtZSxz dHJBbmNob3JOYW1lLHN0ckFsdEV4cGFuZFRleHQsc3RyQWx0Q29sbGFwc2VUZXh0 LCBzdHJJbWFnZUFuY2hvck5hbWUpDQp7DQoJdmFyIGZpZWxkSUQ9c3RySUQrJ19T VEFURUZJRUxEJzsNCgl2YXIgc3RhdGVGaWVsZFZhbHVlOw0KCXZhciBncm91cD1k b2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJJRCk7DQoJdmFyIGltYWdlPWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKHN0ckltZ05hbWUpOw0KCXZhciBhbmNob3I9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyQW5jaG9yTmFtZSk7DQoJdmFyIGltZ0Fu Y2hvcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJJbWFnZUFuY2hvck5hbWUp Ow0KCWlmKCBncm91cC5zdHlsZS5kaXNwbGF5PT0nbm9uZScgKQ0KCXsNCgkJZ3Jv dXAuc3R5bGUuZGlzcGxheT0nJzsNCgkJaW1hZ2Uuc3JjPScvX2xheW91dHMvaW1h Z2VzL1RQTWluMi5naWYnOw0KCQlpbWFnZS5hbHQ9c3RyQWx0Q29sbGFwc2VUZXh0 Ow0KCQlpbWdBbmNob3IudGl0bGU9c3RyQWx0Q29sbGFwc2VUZXh0Ow0KCQlhbmNo b3IudGl0bGU9c3RyQWx0Q29sbGFwc2VUZXh0Ow0KCQlzdGF0ZUZpZWxkVmFsdWU9 IjEiOw0KCX0NCgllbHNlDQoJew0KCQlncm91cC5zdHlsZS5kaXNwbGF5PSdub25l JzsNCgkJaW1hZ2Uuc3JjPScvX2xheW91dHMvaW1hZ2VzL1RQTWF4Mi5naWYnOw0K CQlpbWFnZS5hbHQ9c3RyQWx0RXhwYW5kVGV4dDsNCgkJaW1nQW5jaG9yLnRpdGxl PXN0ckFsdEV4cGFuZFRleHQ7DQoJCWFuY2hvci50aXRsZT1zdHJBbHRFeHBhbmRU ZXh0Ow0KCQlzdGF0ZUZpZWxkVmFsdWU9IjAiOw0KCX0NCgl2YXIgZmllbGQ9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZmllbGRJRCk7DQoJaWYoZmllbGQgIT1udWxs KQ0KCXsNCgkJZmllbGQudmFsdWU9c3RhdGVGaWVsZFZhbHVlOw0KCX0NCn0NCmZ1 bmN0aW9uIE1TT1RsUG5fb25Ub29sUGFuZU1heENsaWNrKCkNCnsNCgl2YXIgbW9k PTE7DQoJdmFyIG1pbk1heEljb249ZG9jdW1lbnQuYWxsWydNU09UbFBuX21pbk1h eEljb24nXTsNCgl2YXIgbmV3U3JjPW1pbk1heEljb24uc3JjLnN1YnN0cmluZygw LCBtaW5NYXhJY29uLnNyYy5sYXN0SW5kZXhPZignLycpKzEpOw0KCWlmIChkb2N1 bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFnZUZvcm1OYW1lXS5NU09UbFBuX01heGlt aXplZC52YWx1ZT09IkZhbHNlIikNCgl7DQoJCWRvY3VtZW50LmFsbFsnTVNPVGxQ bl9UYmwnXS5zdHlsZS53aWR0aD0ocGFyc2VJbnQoZG9jdW1lbnQuYWxsWydNU09U bFBuX1RibCddLm9mZnNldFdpZHRoKStNU09DaGFuZ2VJblRvb2xQYW5lV2lkdGgp LnRvU3RyaW5nKCkrInB4IjsNCgkJbmV3U3JjKz0oKGRvY3VtZW50LmRpcj09InJ0 bCIpID8gInRwbWF4LmdpZiIgOiAidHBtaW4uZ2lmIik7DQoJCW1pbk1heEljb24u dGl0bGU9TVNPU3RyaW5ncy5Ub29sUGFuZVNocmlua1Rvb2xUaXA7DQoJCW1pbk1h eEljb24uYWx0PU1TT1N0cmluZ3MuVG9vbFBhbmVTaHJpbmtUb29sVGlwOw0KCQlt aW5NYXhJY29uLnBhcmVudEVsZW1lbnQudGl0bGU9TVNPU3RyaW5ncy5Ub29sUGFu ZVNocmlua1Rvb2xUaXA7DQoJCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdl Rm9ybU5hbWVdLk1TT1RsUG5fTWF4aW1pemVkLnZhbHVlPSJUcnVlIjsNCgl9DQoJ ZWxzZQ0KCXsNCgkJZG9jdW1lbnQuYWxsWydNU09UbFBuX1RibCddLnN0eWxlLndp ZHRoPSIyMjVweCI7DQoJCW5ld1NyYys9KChkb2N1bWVudC5kaXI9PSJydGwiKSA/ ICJ0cG1pbi5naWYiIDogInRwbWF4LmdpZiIpOw0KCQltaW5NYXhJY29uLnRpdGxl PU1TT1N0cmluZ3MuVG9vbFBhbmVXaWRlblRvb2xUaXA7DQoJCW1pbk1heEljb24u YWx0PU1TT1N0cmluZ3MuVG9vbFBhbmVXaWRlblRvb2xUaXA7DQoJCW1pbk1heElj b24ucGFyZW50RWxlbWVudC50aXRsZT1NU09TdHJpbmdzLlRvb2xQYW5lV2lkZW5U b29sVGlwOw0KCQltb2Q9LTE7DQoJCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQ YWdlRm9ybU5hbWVdLk1TT1RsUG5fTWF4aW1pemVkLnZhbHVlPSJGYWxzZSI7DQoJ fQ0KCW1pbk1heEljb24uc3JjPW5ld1NyYzsNCgl2YXIgeD1kb2N1bWVudC5hbGxb J01TT1RsUG5fVGJsJ107DQoJZm9yKHZhciBpPTA7IGkgPCB4LmFsbC5sZW5ndGg7 IGkrKykNCgl7DQovL0BjY19vbg0KLy9AaWYgKEBfanNjcmlwdF92ZXJzaW9uID49 NSkNCi8vQCAgICAgdHJ5DQovL0BlbHNlDQovL0BlbmQNCgkJew0KCQkJaWYgKHgu YWxsKGkpLmdldEF0dHJpYnV0ZSgnbXMtVGxQbldpZGVuJyk9PSJ0cnVlIikNCgkJ CXsNCgkJCSAgIHguYWxsKGkpLnN0eWxlLnBpeGVsV2lkdGgrPW1vZCpNU09DaGFu Z2VJblRvb2xQYW5lV2lkdGg7DQoJCQl9DQoJCX0NCi8vQGNjX29uDQovL0BpZiAo QF9qc2NyaXB0X3ZlcnNpb24gPj01KQ0KLy9AICAgICBjYXRjaCAoZSkNCi8vQGVs c2UNCi8vQGVuZA0KCQl7DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBNU09UbFBuX1dp bmRvd1Jlc2l6ZSgpDQp7DQoJdmFyIG9ialRvb2xQYW5lPWRvY3VtZW50LmFsbFsn TVNPVGxQbl9NYWluVEQnXTsNCglpZiAob2JqVG9vbFBhbmU9PW51bGwgfHwgb2Jq VG9vbFBhbmUub2Zmc2V0V2lkdGg9PTApIHJldHVybjsNCgl2YXIgd2lkdGhUb29s UGFuZT1vYmpUb29sUGFuZS5vZmZzZXRXaWR0aDsNCgl2YXIgZG9jRnJhbWU9KGRv Y3VtZW50LmJvZHkub2Zmc2V0V2lkdGggLSBkb2N1bWVudC5ib2R5LmNsaWVudFdp ZHRoKTsNCgl2YXIgc3BEaXY9ZG9jdW1lbnQuYWxsWydNU09UbFBuX1dlYlBhcnRQ YWdlRGl2J107DQoJaWYgKChzcERpdi5vZmZzZXRXaWR0aCtvYmpUb29sUGFuZS5v ZmZzZXRXaWR0aCk9PWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpDQoJew0KCQly ZXR1cm47DQoJfQ0KCXZhciB3aWR0aEFuY2VzdG9ycz0wOw0KCXZhciBuZXh0PXNw RGl2Lm9mZnNldFBhcmVudDsNCgl2YXIgZWxlbWVudFdpZHRoPTA7DQoJd2hpbGUg KG5leHQgIT1udWxsKQ0KCXsNCgkJaWYgKGRvY3VtZW50LmRpciAhPSJydGwiKQ0K CQl7DQoJCQllbGVtZW50V2lkdGg9bmV4dC5vZmZzZXRMZWZ0KyhuZXh0Lm9mZnNl dFdpZHRoIC0gKG5leHQuY2xpZW50TGVmdCtuZXh0LmNsaWVudFdpZHRoKSk7DQoJ CQlpZiAobmV4dC5vZmZzZXRQYXJlbnQgIT1udWxsKQ0KCQkJew0KCQkJCWVsZW1l bnRXaWR0aCs9bmV4dC5vZmZzZXRQYXJlbnQuY2xpZW50TGVmdDsNCgkJCX0NCgkJ fQ0KCQllbHNlDQoJCXsNCgkJCWVsZW1lbnRXaWR0aD0obmV4dC5vZmZzZXRQYXJl bnQgIT1udWxsKSA/IChuZXh0Lm9mZnNldFBhcmVudC5vZmZzZXRXaWR0aCAtIChu ZXh0Lm9mZnNldExlZnQrbmV4dC5vZmZzZXRXaWR0aCkpIDogMDsNCgkJfQ0KCQl3 aWR0aEFuY2VzdG9ycys9ZWxlbWVudFdpZHRoOw0KCQluZXh0PW5leHQub2Zmc2V0 UGFyZW50Ow0KCX0NCgl3aWR0aEFuY2VzdG9ycyAtPWRvY0ZyYW1lOw0KCXZhciB3 aWR0aENlbnRlcj1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gKHdpZHRoQW5j ZXN0b3JzK3dpZHRoVG9vbFBhbmUpOw0KCWlmICh3aWR0aENlbnRlciA8IDI1MCkN CgkJd2lkdGhDZW50ZXI9MjUwOw0KCWRvY3VtZW50LmFsbFsnTVNPX3RibFBhZ2VC b2R5J10uc3R5bGUucGl4ZWxXaWR0aD13aWR0aENlbnRlcit3aWR0aFRvb2xQYW5l Ow0KCXNwRGl2LnN0eWxlLnBpeGVsV2lkdGg9d2lkdGhDZW50ZXI7DQoJaWYgKHdp bmRvdy5ldmVudC50eXBlPT0ibG9hZCIgJiYgZG9jdW1lbnQuYWxsLk1TT1RsUG5f VGxQbkNhcHRpb25TcGFuIT1udWxsKQ0KCQlkb2N1bWVudC5hbGwuTVNPVGxQbl9U bFBuQ2FwdGlvblNwYW4uc2Nyb2xsSW50b1ZpZXcoZmFsc2UpOw0KfQ0KZnVuY3Rp b24gTVNPVGxQbl9DaGVja1VybCgpDQp7DQoJdmFyIHRvb2xQYW5lVmlld0V4cHJl c3Npb249L1smIHwgXD9dVG9vbFBhbmVWaWV3PVstMC05QS1aXSovaWc7DQoJdmFy IGRpc3BsYXlNb2RlRXhwcmVzc2lvbj0vWyYgfCBcP11EaXNwbGF5TW9kZT1bYS16 QS1aXSovaWc7DQoJdmFyIGZvcm1BY3Rpb249ZG9jdW1lbnQuZm9ybXNbTVNPV2Vi UGFydFBhZ2VGb3JtTmFtZV0uYWN0aW9uOw0KCXZhciBuZXdVcmw7DQoJbmV3VXJs PU1TT01vZGVfUmVtb3ZlTW9kZShkb2N1bWVudC5mb3Jtc1tNU09XZWJQYXJ0UGFn ZUZvcm1OYW1lXS5hY3Rpb24sIHRvb2xQYW5lVmlld0V4cHJlc3Npb24pOw0KCW5l d1VybD1NU09Nb2RlX1JlbW92ZU1vZGUoZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFy dFBhZ2VGb3JtTmFtZV0uYWN0aW9uLCBkaXNwbGF5TW9kZUV4cHJlc3Npb24pOw0K CWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLmFjdGlvbj1u ZXdVcmw7DQp9DQpmdW5jdGlvbiBNU09UbFBuX1Jlc2l6ZShvYmopDQp7DQoJaWYg KE1TT1RsUG5fcHJldldpZHRoICE9b2JqLmNsaWVudFdpZHRoKQ0KCXsNCgkJTVNP VGxQbl9wcmV2V2lkdGg9b2JqLmNsaWVudFdpZHRoOw0KCQlNU09UbFBuX1dpbmRv d1Jlc2l6ZSgpOw0KCX0NCglpZiAoTVNPVGxQbl9wcmV2SGVpZ2h0ICE9ZG9jdW1l bnQuYm9keS5jbGllbnRIZWlnaHQpDQoJew0KCQlNU09UbFBuX3ByZXZIZWlnaHQ9 ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7DQoJCXZhciBzcERpdj1kb2N1bWVu dC5hbGxbJ01TT1RsUG5fV2ViUGFydFBhZ2VEaXYnXTsNCgkJc3BEaXYuc3R5bGUu aGVpZ2h0PSIxMDAlIjsNCgkJc3BEaXYuc3R5bGUuaGVpZ2h0PXNwRGl2Lm9mZnNl dEhlaWdodDsNCgl9DQp9DQpmdW5jdGlvbiBNU09XZWJQYXJ0UGFnZV9TZXR1cEZp eGVkV2lkdGhXZWJQYXJ0cygpDQp7DQoJdmFyIGZpeGVkV2lkdGhUaXRsZXM9ZG9j dW1lbnQuYWxsWydNU09GaXhlZFdpZHRoVGl0bGUnXTsNCglpZihmaXhlZFdpZHRo VGl0bGVzICE9bnVsbCkNCgl7DQoJCWlmKGZpeGVkV2lkdGhUaXRsZXMubGVuZ3Ro ID4gMCkNCgkJew0KCQkJZm9yKHZhciBlbGVtZW50SW5kZXg9MDsgZWxlbWVudElu ZGV4IDwgZml4ZWRXaWR0aFRpdGxlcy5sZW5ndGg7IGVsZW1lbnRJbmRleCsrKQ0K CQkJew0KCQkJCWZpeGVkV2lkdGhUaXRsZXNbZWxlbWVudEluZGV4XS5zdHlsZS53 aWR0aD1NU09XZWJQYXJ0UGFnZV9BbGxvY2F0ZVNwYWNlRm9yRmlyc3RURChmaXhl ZFdpZHRoVGl0bGVzW2VsZW1lbnRJbmRleF0pOw0KCQkJfQ0KCQl9DQoJCWVsc2UN CgkJew0KCQkJZml4ZWRXaWR0aFRpdGxlcy5zdHlsZS53aWR0aD1NU09XZWJQYXJ0 UGFnZV9BbGxvY2F0ZVNwYWNlRm9yRmlyc3RURChmaXhlZFdpZHRoVGl0bGVzKTsN CgkJfQ0KCX0NCn0NCmZ1bmN0aW9uIE1TT1dlYlBhcnRQYWdlX0FsbG9jYXRlU3Bh Y2VGb3JGaXJzdFREKHRpdGxlRGl2KQ0Kew0KCXZhciB0ZW1wRWxlbWVudD1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCgl0ZW1wRWxlbWVudC5zdHlsZS53 aWR0aD10aXRsZURpdi5maXhlZFdpZHRoOw0KCWRvY3VtZW50LmJvZHkuYXBwZW5k Q2hpbGQodGVtcEVsZW1lbnQpOw0KCXZhciBwaXhlbFNpemU9dGVtcEVsZW1lbnQu b2Zmc2V0V2lkdGg7DQoJZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZW1wRWxl bWVudCk7DQoJdmFyIHRlbXBUYWJsZT1NU09MYXlvdXRfR2V0UGFyZW50VGFibGUo dGl0bGVEaXYpLmNsb25lTm9kZSh0cnVlKTsNCglpZih0ZW1wVGFibGUgIT0wKQ0K CXsNCgkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wVGFibGUpOw0KCQl2 YXIgdGVtcFRhYmxlUm93PXRlbXBUYWJsZS5yb3dzKDApOw0KCQlmb3IodmFyIGlu ZGV4PTE7IGluZGV4IDwgdGVtcFRhYmxlUm93LmNlbGxzLmxlbmd0aDsgaW5kZXgr KykNCgkJew0KCQkJcGl4ZWxTaXplIC09dGVtcFRhYmxlUm93LmNlbGxzKGluZGV4 KS5vZmZzZXRXaWR0aDsNCgkJfQ0KCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk KHRlbXBUYWJsZSk7DQoJfQ0KCXJldHVybiAocGl4ZWxTaXplIDwgMSkgPyAxIDog cGl4ZWxTaXplOw0KfQ0KZnVuY3Rpb24gTVNPV2ViUGFydFBhZ2VfRmluZENvbnRy b2xOYW1lKG5hbWUpDQp7DQogICB2YXIgbGFiZWxjb2xsZWN0aW9uPWRvY3VtZW50 LmFsbC50YWdzKCJsYWJlbCIpOw0KICAgaWYgKGxhYmVsY29sbGVjdGlvbiAhPW51 bGwpDQogICB7DQoJICAgZm9yIChpPTA7IGkgPCBsYWJlbGNvbGxlY3Rpb24ubGVu Z3RoOyBpKyspDQoJICAgew0KCQkJdmFyIGxhYmVsPWxhYmVsY29sbGVjdGlvbltp XTsNCgkJCWlmIChsYWJlbC5pbm5lclRleHQ9PW5hbWUpDQoJCQl7DQoJCQkJaWYg KGxhYmVsLmh0bWxGb3IuaW5kZXhPZigiX0VESVRPUiIpICE9LTEpDQoJCQkJew0K CQkJCQlyZXR1cm4obGFiZWwuaHRtbEZvcik7DQoJCQkJfQ0KCQkJfQ0KCSAgIH0N Cgl9DQoJcmV0dXJuIG51bGw7DQp9DQpmdW5jdGlvbiBNU09UbFBuX0xpc3RWaWV3 Q2hhbmdlKHN0cldhcm5pbmdUZXh0KQ0Kew0KCWlmIChNU09UbFBuX3Nob3duVmll d0NoYW5nZVdhcm5pbmcpDQoJCXJldHVybjsNCglhbGVydChzdHJXYXJuaW5nVGV4 dCk7DQoJTVNPVGxQbl9zaG93blZpZXdDaGFuZ2VXYXJuaW5nPXRydWU7DQp9DQpm dW5jdGlvbiBNU09UbFBuX0N1c3RvbVdpbmRvd1Jlc2l6ZSgpDQp7DQoJdmFyIG9i alRvb2xQYW5lPWRvY3VtZW50LmFsbFsnTVNPVGxQbl9UYmwnXTsNCglpZiAob2Jq VG9vbFBhbmU9PW51bGwgfHwgb2JqVG9vbFBhbmUub2Zmc2V0V2lkdGg9PTApIHJl dHVybjsNCglvYmpUb29sUGFuZS5zdHlsZS5waXhlbFdpZHRoPWRvY3VtZW50LmJv ZHkuY2xpZW50V2lkdGg7DQp9DQpmdW5jdGlvbiBNU09UbFBuX1Nob3dMaXN0Rmls dGVyKCkNCnsNCglpZiAoZG9jdW1lbnQuYWxsWydXZWJQYXJ0TGlzdEZpbHRlcidd LnN0eWxlLmRpc3BsYXk9PSdub25lJykNCgl7DQoJCWRvY3VtZW50LmFsbFsnV2Vi UGFydExpc3RGaWx0ZXInXS5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQoJCWRvY3Vt ZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLk1TT0dhbGxlcnlfRmls dGVyVmlzaWJsZS52YWx1ZT0idHJ1ZSI7DQoJfQ0KCWVsc2UNCgl7DQoJCWRvY3Vt ZW50LmFsbFsnV2ViUGFydExpc3RGaWx0ZXInXS5zdHlsZS5kaXNwbGF5PSdub25l JzsNCgkJZG9jdW1lbnQuZm9ybXNbTVNPV2ViUGFydFBhZ2VGb3JtTmFtZV0uTVNP R2FsbGVyeV9GaWx0ZXJWaXNpYmxlLnZhbHVlPSJmYWxzZSI7DQoJfQ0KfQ0KZnVu Y3Rpb24gTVNPR2FsbGVyeV9HZXRDb29raWUobmFtZSkNCnsNCgl2YXIgcHJlZml4 PW5hbWUrIj0iOw0KCXZhciBjb29raWVTdGFydEluZGV4PWRvY3VtZW50LmNvb2tp ZS5pbmRleE9mKHByZWZpeCk7DQoJaWYgKGNvb2tpZVN0YXJ0SW5kZXg9PS0xKQ0K CXsNCgkJcmV0dXJuIG51bGw7DQoJfQ0KCXZhciBjb29raWVFbmRJbmRleD1kb2N1 bWVudC5jb29raWUuaW5kZXhPZigiOyIsIGNvb2tpZVN0YXJ0SW5kZXgrcHJlZml4 Lmxlbmd0aCk7DQoJaWYgKGNvb2tpZUVuZEluZGV4PT0tMSkNCgl7DQoJCWNvb2tp ZUVuZEluZGV4PWRvY3VtZW50LmNvb2tpZS5sZW5ndGg7DQoJfQ0KCXJldHVybiB1 bmVzY2FwZShkb2N1bWVudC5jb29raWUuc3Vic3RyaW5nKGNvb2tpZVN0YXJ0SW5k ZXgrcHJlZml4Lmxlbmd0aCwgY29va2llRW5kSW5kZXgpKTsNCn0NCmZ1bmN0aW9u IE1TT1RsUG5fU2hvd0FsbFVzZXJzVG9vbFBhbmUoZGlzcGxheU1vZGUsIHNvdXJj ZSwgc3RvcmFnZUtleSkNCnsNCglNU09MYXlvdXRfQ2hlY2tBbmRTYXZlQ2hhbmdl cygpOw0KCWRvY3VtZW50LmZvcm1zW01TT1dlYlBhcnRQYWdlRm9ybU5hbWVdLmFj dGlvbj1NU09Nb2RlX0dldE5ld1VybCh0cnVlKTsNCglNU09UbFBuX1Nob3dUb29s UGFuZTJXcmFwcGVyKGRpc3BsYXlNb2RlLCBzb3VyY2UsIHN0b3JhZ2VLZXkpOw0K fQ0KZnVuY3Rpb24gTVNPTGF5b3V0X01ha2VJbnZpc2libGVJZkVtcHR5KCkNCnsN Cgl2YXIgYWxsRWxlbWVudHM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoIl9p bnZpc2libGVJZkVtcHR5Iik7DQoJdmFyIGFndD1uYXZpZ2F0b3IudXNlckFnZW50 LnRvTG93ZXJDYXNlKCk7DQoJdmFyIGlzTmF2PSgoYWd0LmluZGV4T2YoJ21vemls bGEnKSE9LTEpJiYoKGFndC5pbmRleE9mKCdzcG9vZmVyJyk9PS0xKSAmJiAoYWd0 LmluZGV4T2YoJ2NvbXBhdGlibGUnKT09LTEpKSk7DQoJdmFyIGlzSUU9KGFndC5p bmRleE9mKCJtc2llIikhPS0xKTsNCglmb3IgKHZhciBjdXJFbGVtZW50PTA7IGN1 ckVsZW1lbnQgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGN1ckVsZW1lbnQrKykNCgl7 DQoJCWlmICgoaXNJRSAmJiBhbGxFbGVtZW50c1tjdXJFbGVtZW50XS5jaGlsZE5v ZGVzLmxlbmd0aD09MCkNCgkJCXx8IChpc05hdiAmJiBhbGxFbGVtZW50c1tjdXJF bGVtZW50XS5jaGlsZE5vZGVzLmxlbmd0aCA8PTEpKQ0KCQl7DQoJCQlhbGxFbGVt ZW50c1tjdXJFbGVtZW50XS5zdHlsZS5kaXNwbGF5PSJub25lIjsNCgkJfQ0KCX0N Cn0NCmZ1bmN0aW9uIE1TT0xheW91dF9HZXRQYXJlbnRSb3codGFibGVDZWxsKQ0K ew0KCXZhciBwYXJlbnRSb3c9dGFibGVDZWxsLnBhcmVudEVsZW1lbnQ7DQoJd2hp bGUocGFyZW50Um93LnRhZ05hbWUgIT0iVFIiICYmIHBhcmVudFJvdy50YWdOYW1l ICE9IkJPRFkiKSBwYXJlbnRSb3c9cGFyZW50Um93LnBhcmVudEVsZW1lbnQ7DQoJ aWYocGFyZW50Um93LnRhZ05hbWUgIT0iVFIiKQ0KCXsNCgkJcmV0dXJuIG51bGw7 DQoJfQ0KCWVsc2UNCgl7DQoJCXJldHVybiBwYXJlbnRSb3c7DQoJfQ0KfQ0KZnVu Y3Rpb24gTVNPTGF5b3V0X0dldFBhcmVudFRhYmxlKFRhYmxlQ2VsbCkNCnsNCglm b3IgKHZhciBjdXJyZW50T2JqZWN0PVRhYmxlQ2VsbDsgY3VycmVudE9iamVjdC50 YWdOYW1lICE9J1RBQkxFJzsgY3VycmVudE9iamVjdD1jdXJyZW50T2JqZWN0LnBh cmVudEVsZW1lbnQpDQoJew0KCQlpZihjdXJyZW50T2JqZWN0PT1kb2N1bWVudC5i b2R5KSByZXR1cm4gMDsNCgl9DQoJcmV0dXJuIGN1cnJlbnRPYmplY3Q7DQp9DQoN Cg== ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=HtmlEditorCustomStyles.css Content-Type: text/css; name=HtmlEditorCustomStyles.css Content-Location: http://www.vojenskaskola.cz/_layouts/1029/styles/HtmlEditorCustomStyles.css?rev=%2FwEkP4fapQor7V0mxDHtvw%3D%3D Content-Transfer-Encoding: 8bit /* _lcid="1029" _version="12.0.4518" _LocalBinding */ IMG.ms-rteCustom-RámečekObrázku { text-align: center; color: #FF0000; border: 5px double #0000FF; margin-left: 14; padding-left: 6px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #9FC2F1; } A:link.ms-rteCustom-StylOdkazu { COLOR: #003399; font-style:normal; font-variant:normal; font-weight:normal; font-size:10pt; font-family:Verdana; } A:visited.ms-rteCustom-StylOdkazu { COLOR: #008080; font-style:normal; font-variant:normal; font-weight:normal; font-size:10pt; font-family:Verdana; } A:hover.ms-rteCustom-StylOdkazu { FONT: 10pt Verdana, Arial, Helvetica; COLOR: red; } OL.ms-rteCustom-SeznamŘímskéČíslice { font-family: Tahoma; font-size: 10pt; color: #595959; text-indent: 0; text-align: left; list-style-type: upper-roman; margin-left: 30; margin-right: 10; padding-left: 10px; margin-top: 1; text-transform: capitalize; } UL.ms-rteCustom-SeznamČtvercovéOdrážky { font-family: Tahoma; font-size: 10pt; color: #595959; text-indent: 0; line-height: 150%; text-align: left; list-style-type: square; margin-left: 15; margin-right: 10; padding-left: 10px; margin-top: 10; word-spacing: 0; margin-bottom: 10; } .ms-rteCustom-NázevČlánku { font-weight: bold; font-family: Arial; font-size: 14pt; color: #015263; text-transform: capitalize; } .ms-rteCustom-ČlánekVedleŘádku { font-family: Arial; font-style: italic; font-size: 10pt; color: #7F7F7F; } .ms-rteCustom-NadpisČlánku { font-size: 12pt; font-weight: bold; font-family: Arial, Helvetica, sans-serif; color: #01778F; } ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=HtmlEditorTableFormats.css Content-Type: text/css; charset=utf-8; name=HtmlEditorTableFormats.css Content-Location: http://www.vojenskaskola.cz/_layouts/1029/styles/HtmlEditorTableFormats.css?rev=Oe54yoTj%2FNwefyHr845plg%3D%3D Content-Transfer-Encoding: 8bit /* _lcid="1029" _version="12.0.4518" _LocalBinding */ .ms-rteTable-1 { border-width: 0px; border-style: none; border-collapse: collapse; font-family: Tahoma; } .ms-rteTable-1 tr.ms-rteTableHeaderRow-1 { margin: 10px; padding: 10px; color: #3F4D6B; background: #D6E8FF; text-align: left; font-size: 10pt; font-style: normal; font-family: Tahoma; text-transform: capitalize; font-weight: bold; border-spacing: 10px; line-height: 14pt; vertical-align: top; } .ms-rteTable-1 td.ms-rteTableHeaderFirstCol-1 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-1 td.ms-rteTableHeaderLastCol-1 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-1 td.ms-rteTableHeaderOddCol-1 { padding:0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-1 td.ms-rteTableHeaderEvenCol-1 { padding:0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-1 tr.ms-rteTableOddRow-1 { color: #666666; background-color: #F2F3F4; font-size: 10pt; vertical-align: top; } .ms-rteTable-1 tr.ms-rteTableEvenRow-1 { color: #666666; background-color: #E7EBF7; font-size: 10pt; vertical-align: top; } .ms-rteTable-1 td.ms-rteTableFirstCol-1 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-1 td.ms-rteTableLastCol-1 {padding:0in 5.4pt 0in 5.4pt;} .ms-rteTable-1 td.ms-rteTableOddCol-1 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-1 td.ms-rteTableEvenCol-1 { padding:0in 5.4pt 0in 5.4pt; } .ms-rteTable-1 tr.ms-rteTableFooterRow-1 { background-color: #D6E8FF; color: #4A5A80; font-weight: 500; font-size: 10pt; font-family: Tahoma; line-height: 11pt; } .ms-rteTable-1 td.ms-rteTableFooterFirstCol-1 { padding: 0in 5.4pt 0in 5.4pt; border-top: solid gray 1.0pt; text-align: left; } .ms-rteTable-1 td.ms-rteTableFooterLastCol-1 { padding:0in 5.4pt 0in 5.4pt; border-top:solid gray 1.0pt; text-align:left; } .ms-rteTable-1 td.ms-rteTableFooterOddCol-1 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; border-top: solid gray 1.0pt; } .ms-rteTable-1 td.ms-rteTableFooterEvenCol-1 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; border-top: solid gray 1.0pt; } .ms-rteTable-2 { border-collapse: collapse; border: solid 0px; font-family: Tahoma; } .ms-rteTable-2 tr.ms-rteTableHeaderRow-2 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; margin-top: 0in; margin-right: 0in; margin-bottom: 10.0pt; margin-left: 0in; line-height: 115%; font-size: 11.0pt; font-family: "Calibri","sans-serif"; width: 119.7pt; border: solid white 1.0pt; border-bottom: solid white 3.0pt; background: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; color: #FFFFFF; } .ms-rteTable-2 td.ms-rteTableHeaderFirstCol-2 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; border: solid white 1.0pt; border-bottom: solid white 3.0pt; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableHeaderLastCol-2 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; border: solid white 1.0pt; border-bottom: solid white 3.0pt; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableHeaderOddCol-2 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; border: solid white 1.0pt; border-bottom: solid white 3.0pt; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableHeaderEvenCol-2 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; border: solid white 1.0pt; border-bottom: solid white 3.0pt; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 tr.ms-rteTableOddRow-2 { color: #666666; background-color: #F2F3F4; font-size: 10pt; vertical-align: top; } .ms-rteTable-2 tr.ms-rteTableEvenRow-2 { color: #666666; background-color: #E7EBF7; font-size: 10pt; vertical-align: top; } .ms-rteTable-2 td.ms-rteTableFirstCol-2 { margin-top: 0in; margin-right: 0in; margin-bottom: 10.0pt; margin-left: 0in; line-height: 115%; font-size: 11.0pt; font-family: "Calibri","sans-serif"; width: 119.7pt; border-top: none; border-left: solid white 1.0pt; border-bottom: none; border-right: solid white 3.0pt; background: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; color: #FFFFFF; } .ms-rteTable-2 td.ms-rteTableLastCol-2 { padding:0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableOddCol-2 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableEvenCol-2 { padding:0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 tr.ms-rteTableFooterRow-2 { color: #666666; background-color: #FFFFFF; font-size: 10pt; vertical-align: top; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableFooterFirstCol-2 { margin-top: 0in; margin-right: 0in; margin-bottom: 10.0pt; margin-left: 0in; line-height: 115%; font-size: 11.0pt; font-family: "Calibri","sans-serif"; width: 119.7pt; border-top: none; border-left: solid white 1.0pt; border-bottom: none; border-right: solid white 3.0pt; background: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; color: #FFFFFF; } .ms-rteTable-2 td.ms-rteTableFooterLastCol-2 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableFooterOddCol-2 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-2 td.ms-rteTableFooterEvenCol-2 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-3 { border-collapse: collapse; border: solid 0px; font-family: Tahoma; } .ms-rteTable-3 tr.ms-rteTableHeaderRow-3 { margin: 10px; padding: 10px; color: #3a4663; text-align: left; font-size: 10pt; font-style: normal; font-family: Verdana; text-transform: capitalize; font-weight: normal; border-spacing: 10px; vertical-align: top; background-color: #C4D1E3; } .ms-rteTable-3 td.ms-rteTableHeaderFirstCol-3 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-3 td.ms-rteTableHeaderLastCol-3 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-3 td.ms-rteTableHeaderOddCol-3 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-3 td.ms-rteTableHeaderEvenCol-3 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; line-height: 14pt; } .ms-rteTable-3 tr.ms-rteTableOddRow-3 { color:#666666; vertical-align: top; font-size: 10pt; } .ms-rteTable-3 tr.ms-rteTableEvenRow-3 { color:#666666; vertical-align: top; font-size: 10pt; } .ms-rteTable-3 td.ms-rteTableFirstCol-3 { padding: 0in 5.4pt 0in 5.4pt; background-color: #E7EBF7; } .ms-rteTable-3 td.ms-rteTableLastCol-3 { padding: 0in 5.4pt 0in 5.4pt; background-color:#E7EBF7; } .ms-rteTable-3 td.ms-rteTableOddCol-3 { padding: 0in 5.4pt 0in 5.4pt; background-color:#F7F3F7; } .ms-rteTable-3 td.ms-rteTableEvenCol-3 { padding: 0in 5.4pt 0in 5.4pt; background-color:#E7EBF7 } .ms-rteTable-3 tr.ms-rteTableFooterRow-3 { background-color: #C4D1E3; color: #3a4663; font-weight: normal; font-size: 10pt; font-family: Verdana; line-height: 11pt; } .ms-rteTable-3 td.ms-rteTableFooterFirstCol-3 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-3 td.ms-rteTableFooterLastCol-3 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-3 td.ms-rteTableFooterOddCol-3 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-3 td.ms-rteTableFooterEvenCol-3 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-4 { border-collapse: collapse; border: solid 0px; font-family: Tahoma; } .ms-rteTable-4 tr.ms-rteTableHeaderRow-4 { border-width: 1.0pt 1.0pt 3.0pt 1.0pt; margin-top: 0in; margin-right: 0in; margin-bottom: 10.0pt; margin-left: 0in; line-height: 115%; font-size: 11.0pt; font-family: "Calibri","sans-serif"; width: 119.7pt; background: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; color: #FFFFFF; } .ms-rteTable-4 td.ms-rteTableHeaderFirstCol-4 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableHeaderLastCol-4 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableHeaderOddCol-4 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableHeaderEvenCol-4 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 tr.ms-rteTableOddRow-4 { border-width: 1pt; color: #666666; font-size: 10pt; vertical-align: top; border-bottom-style: solid; border-bottom-color: #4F81BD; } .ms-rteTable-4 tr.ms-rteTableEvenRow-4 { color: #666666; font-size: 10pt; vertical-align: top; } .ms-rteTable-4 td.ms-rteTableFirstCol-4 { border-width: 1pt; border-color: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; border-bottom-style: solid; border-left-style: solid; } .ms-rteTable-4 td.ms-rteTableLastCol-4 { border-width: 1pt; border-color: #4F81BD; border-bottom-style: solid; border-right-style: solid; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableOddCol-4 { border-width: 1pt; border-color: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; border-bottom-style: solid; } .ms-rteTable-4 td.ms-rteTableEvenCol-4 { border-width: 1pt; border-color: #4F81BD; padding: 0in 5.4pt 0in 5.4pt; border-bottom-style: solid; } .ms-rteTable-4 tr.ms-rteTableFooterRow-4 { color: #355C8C; background-color: #FFFFFF; font-size: 10pt; vertical-align: top; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableFooterFirstCol-4 { border-width: 1pt; border-color: #4F81BD; border-bottom-style: solid; border-left-style: solid; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableFooterLastCol-4 { border-width: 1pt; border-color: #4F81BD; border-bottom-style: solid; border-right-style: solid; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableFooterOddCol-4 { border-width: 1pt; border-color: #4F81BD; border-bottom-style: solid; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-4 td.ms-rteTableFooterEvenCol-4 { border-width: 1pt; border-color: #4F81BD; border-bottom-style: solid; padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-5 { border-collapse: collapse; border: solid 0px; font-family: Tahoma } .ms-rteTable-5 tr.ms-rteTableHeaderRow-5 { margin: 10px; padding: 10px; color: #3A4663; text-align: left; font-size: 10pt; font-style: normal; font-family: Tahoma; text-transform: capitalize; font-weight: 500; border-spacing: 10px; line-height: 11pt; vertical-align: top; } .ms-rteTable-5 td.ms-rteTableHeaderFirstCol-5 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; } .ms-rteTable-5 td.ms-rteTableHeaderLastCol-5 { padding: 0in 5.4pt 0in 5.4pt; color: #3a4663; } .ms-rteTable-5 td.ms-rteTableHeaderOddCol-5 { padding:0in 5.4pt 0in 5.4pt; color: #3a4663; } .ms-rteTable-5 td.ms-rteTableHeaderEvenCol-5 {padding:0in 5.4pt 0in 5.4pt; color: #3a4663; } .ms-rteTable-5 tr.ms-rteTableOddRow-5 { color: #666666; vertical-align: top; font-size: 10pt; } .ms-rteTable-5 tr.ms-rteTableEvenRow-5 { color: #666666; vertical-align: top; font-size: 10pt; } .ms-rteTable-5 td.ms-rteTableFirstCol-5 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-5 td.ms-rteTableLastCol-5 {padding:0in 5.4pt 0in 5.4pt;} .ms-rteTable-5 td.ms-rteTableOddCol-5 { padding: 0in 5.4pt 0in 5.4pt; } .ms-rteTable-5 td.ms-rteTableEvenCol-5 {padding:0in 5.4pt 0in 5.4pt;} .ms-rteTable-5 tr.ms-rteTableFooterRow-5 { color: #3a4663; font-weight: 500; font-size: 10pt; font-family: Tahoma; line-height: 11pt; } .ms-rteTable-5 td.ms-rteTableFooterFirstCol-5 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-5 td.ms-rteTableFooterLastCol-5 { padding:0in 5.4pt 0in 5.4pt; text-align:left; } .ms-rteTable-5 td.ms-rteTableFooterOddCol-5 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } .ms-rteTable-5 td.ms-rteTableFooterEvenCol-5 { padding: 0in 5.4pt 0in 5.4pt; text-align: left; } ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline Content-Type: image/gif Content-Location: http://www.vojenskaskola.cz/skola/uo/Style%20Library/images/UNOB_images/bg_body.gif Content-Transfer-Encoding: Base64 R0lGODlhAQClAuYAAPr6/P7+//39/vz8/fv7/PX2+fHz9/Dy9u/x9fn6/Pj5+/f4 +vb3+eTo79/k7N7j6+zv9Ovu8+rt8tvh6trg6efr8ebq8OXp7/T2+fP1+PL0993j 69zi6tvh6eDl7OLn7uHm7e/y9u7x9e3w9Ozv89ng6eXq8OTp7+Po7uLn7eru8+nt 8ujs8efr8Nvi6trh6eDm7d/l7N7k693j6uHn7efs8ebr8OXq7+zw9Ovv8+ru8vH0 9/Dz9u/y9fb4+vX3+fT2+Pv8/fr7/Pn6+/L19/j6+/f5+v3+/vz9/fv8/P////7+ /gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACwAAAAAAQClAgAH2oBKgoOEhYaHiImKi4yNjo+QkZKTlJWW l5iZmpucSgGfS6GiS0elAqeop0irSAOuA0GxsUkEQra3tgAJCUO9vUUKwcJGRgvG Cz7JPgwMP87PBRgYQNRAGdfYRBrb2zveBgY84uIHByEhPT0IIuztI+/wOBDzJDn2 EfgqKjo6Eiv/AFkIHFijgsEWNhJaWGii4Y0LF05IlNgAhcWLHzJmTJGCBoiPH2GI 9EAyhkmTDhzIWLnywYMNMGHOmMGhps2aLlxMmNCh54ufQCkIpVCiBE+fQH8e7ZD0 J4VAADs= ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline Content-Type: image/gif Content-Location: http://www.vojenskaskola.cz/skola/uo/Style%20Library/images/UNOB_images/bg_content.gif Content-Transfer-Encoding: Base64 R0lGODlhAQD+AOYAAP/+//r6/Pn5+/7+//39/vz8/fv7/Pf4+/b3+vX2+fT1+O7w 9ezu8+Dk7Ovu9Ons8ujr8fHz9/Dy9u/x9e7w9Pn6/Pj5+/f4+vb3+d7j7N3i6+Pn 7uLm7eHl7ODl7d/k7N7j693i6tzh6e3w9ezv9Ovu8+rt8tvh6ujs8ufr8ebq8OXp 7+To7uPn7fT2+fP1+PL09/Hz9t3j69zi6tvh6eDl7N/k6+Ln7uHm7fDz9+/y9u7x 9e3w9Ozv8+Xq8OTp7+Po7uLn7ent8ujs8efr8Obq79/l7N7k693j6tzi6dzj6tvi 6eDm7N/l6+Xq7+Tp7uzw9Ovv8+ru8vH09/Dz9u/y9e7x9O3w8/b4+vX3+fT2+Pz9 /vv8/fr7/Pn6+/j5+uPp7uLo7fL19/H09vn7/Pf5+vb4+fr8/Pj6+v7///3+/vz9 /fv8/P///v////7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACwAAAAAAQD+AAAH2IA0gjRJS0kiJzOKizMhSiFIMhogSCAy IEcgIDYZNp4fTQ0NRjU1Hh5MHTirqxxBHC0bN2EbG0AsYE8sPz8rP04+TisqRSpE xykpEMsQQyhDD0LSUiZS1iVR2QwOPSQkUFc8PBQLI1Y7OxNVOjpVEhJUVDlUMRFj UzD5YjBiLy8KWgK60JIgS5YEGLJgQGAGy4WHWMp8OfDlCxoBAiwI8FIhAJkKZLqI FMnmDBcDbLgUULmm5ZotBAioUROTwAA1b94MGADgDYA0ANykaeOmqNGjSJMqXWo0 EAA7 ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=unob-screen.css Content-Type: text/css; charset=utf-8; name=unob-screen.css Content-Location: http://www.vojenskaskola.cz/skola/uo/Style%20Library/unob-screen.css Content-Transfer-Encoding: 8bit body { margin:0; padding:0; border:0px; font-family:Arial, Helvetica, sans-serif; font-size:100%; color:#003; background-color:#dbe1e9; background-image:url("images/UNOB_images/bg_body.gif"); background-repeat:repeat-x; height:100%; width:100%; text-align:center; } .s190 { font-size:190%; } .s180 { font-size:180%; } .s170 { font-size:170%; } .s160 { font-size:160%; } .s150 { font-size:150%; } .s140 { font-size:140%; } .s130 { font-size:130%; } .s120 { font-size:120%; } .s110 { font-size:110%; } .s100 { font-size:100%; } .s90 { font-size:90%; } .s80 { font-size:80%; } .s70 { font-size:70%; } /* containint the whole page */ #container { width:968px; left:484px; /*margin-left:484px;*/ text-align:left; margin-left:auto; margin-right:auto; } /*60% -20px na margin*/ #DesignColumnMiddle{ width:550px; float:left; top:0px; margin:10px; padding-bottom:20px; } #DesignColumnMiddle ul li{ list-style:square; } #DesignColumnMiddle a{ color:navy; } #DesignColumnMiddle h4{ /*definice je v content_3*/ } #DesignColumnMiddle h3{ /*definice je v content_3*/ } #DesignColumnMiddle h2{ /*definice je v content_3*/ } #DesignColumnMiddle div{ margin-bottom:1.5em; } #DesignColumnMiddleMinHeight{ float:left; height:700px; width:1px; } #LeftSide{ float:left; /*80% z 968px -20px*/ width:730px; vertical-align:top; margin:10px 15px 10px 15px; border:0px; padding:0px; } #LeftSide a{ color:navy; text-decoration:none; } #LeftSide a:hover{ text-decoration:underline; } #LeftSide ul li{ list-style:square; margin-bottom:3px; } #RightSide{ /*20% z 968px -20px*/ float:right; width:174px; vertical-align:top; margin:0px; border:0px; padding:0px; } #RightSide a{ color:navy; text-decoration:none; } #RightSide a:hover{ text-decoration:underline; } #RightSide ul li{ list-style:square; } #MainContent{ /*hlavni obsah uvodni stranky*/ margin: 20px 0px; } /* logo area - included into heading_box because of IE6 bug, negative margin */ #logo_0 { top:1em; margin-top:2px; margin-left:-150px; width:70px; height:80px; } /* logo box - the image has to containt the left and top offset! */ #logo_0 img { margin:0 0 0 40px; padding:0; } /* topmost area, contains page name, subname and basic page navigation (language, home, structure, mail and searchbar) */ #header_1 { float:left; clear:both; width:968px; /*background-color:#95a1b3;*/ color:#fff; border:solid #fff; border-width:0 0 1px 0; height:91px; } /* page name and subname box */ #header_1 #heading_box_1 { float:left; padding:0 0 0 150px; width:579px; text-align:left; } /* h1 */ #heading_box_1 h1 { text-transform:uppercase; margin:15px 0 0 0; padding:0; } /* h2 */ #heading_box_1 h2 { margin:5px 0 5px 0; font-size:100%; color:#dbe1e9; text-align:center; } /* basic page navigation box*/ #header_1 #page_nav_box_1 { float:left; width:230px; } #top_menu{ float:right; margin-bottom:5px; margin-top:3px; font-size:70%; margin-right:3px; color:#81B6E7; } #top_menu a{ text-decoration:none; color:#5D778F; } #top_menu a:hover{ text-decoration:underline; } #top_menu a:visited{ color:#5D778F; } /* basic page navigation */ #page_nav_box_1 ul { display:block; margin:0; padding:0; height:30px; } #page_nav_box_1 li { float:left; margin:0; padding:0; list-style:none; } #page_nav_box_1 a { display:block; margin:0 0 0 9px; padding:0; width:35px; height:29px; background-repeat:no-repeat; } /* top search form */ #page_nav_box_1 form { margin:9px 0 0 9px; padding:0; } #page_nav_box_1 .txt { border:1px solid #91adbc; padding:2px 0 0 0; width:219px; height:20px; } #page_nav_box_1 .butt { margin:5px 0 0 0; color:#fff; font-size:70%; font-size:10px; border-width:0; background-color:#95a1b3; } /* guarantee of minimal height */ #header_1 #filler_1 { float:left; height:91px; width:9px; } /* top navigation area */ #header_2 { float:left; clear:both; width:968px; background-color:#dbe1e9; color:#95a1b3; } /* top navigation box*/ #header_2 #top_navigation_box_2 { float:left; padding:19px 141px 19px 150px; width:668px; font-size:70%; font-weight:bold; } #top_navigation_box_2 a { margin:0; padding:5px 5px 0px 5px; text-transform:uppercase; text-decoration:underline; } #top_navigation_box_2 a:hover { color:#003; } #top_navigation_box_2 .act { color:#003; } #top_navigation_box_2 .nact { color:#95a1b3; } /* guarantee of minimal height */ #header_2 #filler_2 { float:left; height:20px; width:9px; } /* main page area*/ #content_3 { float:left; clear:both; width:968px; background-color:#fff; background-image:url("images/UNOB_images/bg_content.gif"); background-repeat:repeat-x; color:#003; text-align:left; padding:0px; margin:0px; } #content_3 a:hover{ color: #95a1b3; } #content_3 .content_box_3 { float:left; margin:0; padding:0 0 0 9px; } #content_3 .w221_3 { width:221px; } #content_3 .w490_3 { width:490px; } #content_3 .w720_3 { width:720px; } /* sidebar box with 1px border */ #content_3 .content_box_31 { width:209px; margin:0 0 9px 0; padding:5px; /*border:1px solid #91adbc;*/ background-color:#fff; background-image:url("images/UNOB_images/bg_content_box.gif"); background-repeat:repeat-x; background-position:bottom; } /* 720px wide divided into 2*/ #content_3 .one_half_31 { float:left; width:355px; } #content_3 .one_half_32 { float:left; width:355px; padding:0 0 0 10px; } #content_3 .stop_division_3 { clear:both; width:720px; } .stop_division_3 ul { margin:0; padding:0; font-size:100% } .stop_division_3 li { margin:0; padding:0; list-style:none; } .stop_division_3 .custom_hr_3 { clear:left; width:720px; height:1px; margin:0 0 5px 0; padding:0; font-size:1px; border:solid #003; border-width:1px 0 0 0; } div.floating { float:left; display:block; padding:0 0 9px 30px; margin:0 0 0 0; font-size:90%; } /* all used tags */ #content_3 h2 { clear:left; margin:0 0 9px 0; padding:0; font-size:140%; border:solid #003; border-width:0 0 1px 0; } #content_3 h3 { clear:left; margin:5px 0 0.8em 0; padding:0; font-size:120%; color:#5D778F; } #content_3 h4 { clear:left; margin:0; padding:0; font-size:100%; } #content_3 h5 { clear:left; margin:0; padding:0; font-size:90%; } #content_3 h6 { clear:left; margin:0; padding:0; font-size:70%; } #content_3 p { clear:left; margin:0 0 5px 0; padding:0; font-size:90%; color:#444; line-height:125%; } #content_3 ul, #content_3 ol { clear:left; margin:0 0 5px 0; padding:0; } #content_3 li { margin:0 0 0 30px; padding:0; font-size:90%; } #content_3 img { margin:3px 2px 3px 0; padding:0; border:0; } #content_3 img.floating { float:left; } #content_3 form { clear:left; margin:0 0 5px 0; padding:0; } h4.people{ margin: 0 0 2em 5em; } /* background with rector's chain */ .bg_center_3 { float:left; background-image:url("images/UNOB_images/bg_center.gif"); background-repeat:no-repeat; background-position:top right; } /* ID navbar_box_31 used for main navigation box; ul for navigation*/ #navbar_box_31 ul { margin:0; padding:0; } #navbar_box_31 li { margin:0 0 9px 0; padding:0; list-style:none; } #navbar_box_31 a { text-align:left; display:block; margin:0; padding:0; text-decoration:underline; } #navbar_box_31 a:hover { color:#95a1b3; } #navbar_box_31 a.lvl_31 { font-weight:bold; width:209px; } #navbar_box_31 a.lvl_32 { display:block; width:200px; margin:0 0 0 9px; } #content_3 .act { color:#c00; } #content_3 .nact { color:#003; } /* guarantee of minimal height */ #content_3 #filler_3 { float:left; height:440px; width:5px; } /* footer area */ #footer_4 { float:left; clear:both; width:968px; /*puvodni hodnota 95a1b3*/ background-color:#a5b0be; color:#fff; } #footer_4 #footer_box_4 { float:left; font-size:70%; width:941px; padding:5px 0 0 9px; } /* guarantee of minimal height */ #footer_4 #filler_4 { float:left; height:30px; width:9px; } #footer_box_4{ color:#dadada; } #footer_box_4 a{ text-decoration:none; color:#dadada; } #FooterLeft{ float:left; } #FooterRight{ float:right; width:auto; vertical-align:bottom; } .center_tab{ clear:left; text-align:center; } #informace_text{ width:100%; margin:8px 0px 0px 0px; } #informace_text a:hover{ text-decoration:none; } #informace_text div{ width:50%; float:left; } #informace_text div div{ margin-left:45px; width:auto; } #oddelovac{ padding:0px; margin:0px; border:0px; width:100%; height:30px; clear:both; } #navigation_line{ position:relative; width:100%; left:0px; top:0px; clear:both; margin:0px; padding:0px; border-bottom:1px #91adbc solid; } #navigation_line table{ width:100%; font-size:90%; } #navigation_line a:hover{ text-decoration:none; } #navigation_line .navigation_item{ text-align:center; font-weight:bold; } /* v masterpage se vubec zadna tabulka nevyskytuje, takze to muzu dat beztrestne pryc table { font-size:80%; text-align:center; vertical-align:top; border-spacing:0px; border-collapse: collapse; text-align:left; } td, th { border:1px solid #999; padding:1px 2px 1px 2px; } th { background-color:#ccc; } */ #informace_head{ position:relative; width:100%; left:0px; top:0px; clear:both; font-weight:bold; margin:0px; padding:0px; border-bottom:1px #91adbc solid; } #informace_head table{ width:100%; } #informace_head td{ width:50%; padding-left:35px; font-weight:bold; } #sitemap_webpart li{ font-size:130%; } /*20% -20px na margin*/ #DesignColumnLeft{ width:174px; float:left; top:0px; margin:8px; padding:5px; border:0px; /* margin:3px; padding:5px; margin-left:8px; border:1px solid #91adbc; */ /*oprava pro IE 6.x*/ _margin-left:4px; font-size:90%; line-height:125%; } #LeftTop{ margin:0px; padding:5px; border:1px solid #91adbc; } #LeftDown{ margin:0px; padding:5px; margin-top:3em; border:0px; } #DesignColumnLeft h4{ font-size:100%; } #DesignColumnLeft h3{ font-size:90%; } #DesignColumnLeft h2{ font-size:80%; } #DesignColumnLeft a{ color:navy; text-decoration:none; } #DesignColumnLeft a:hover{ text-decoration:underline; } #DesignColumnLeft hr{ width: 100%; color: #91adbc; height: 1px; } #DesignColumnLeft ul li{ margin: 5px 0 10px 20px; list-style: square; } #ContentLeft h4{ font-weight:bold; color:#5D778F; } /*60% -20px na margin*/ /*20% -20px na margin*/ #DesignColumnRight{ width:173px; /*thf tady jsem zmenil float z left na right*/ float:right; top:0px; margin:5px 10px 5px 5px; padding:3px; border:0px; /*je nutno dodat pro IE6.x aby nebylo prave menu az dole*/ _margin-right:4px; /* margin:3px; padding:5px; margin-left:8px; border:1px solid #91adbc; */ font-size:90%; line-height:125%; } #RightTop{ margin:0px; padding:5px; border:1px solid #91adbc; } #RightDown{ margin:0px; padding:5px; margin-top:3em; border:0px; } #DesignColumnRight a{ color:navy; text-decoration:none; } #DesignColumnRight a:hover{ text-decoration:underline; } #DesignColumnRight h4{ font-size:100%; margin-bottom:12px; } #DesignColumnRight h3{ font-size:90%; } #DesignColumnRight h2{ font-size:80%; } #DesignColumnRight hr{ WIDTH: 100%; COLOR: #91adbc; HEIGHT: 1px; border: 0; background-color: #91adbc; } #DesignColumnRight ul li{ margin: 5px 0 10px 20px; list-style: square; } #content_3 .stop_division_3 { clear:both; width:720px; } /* v masterpage se vubec zadna tabulka nevyskytuje, takze to muzu dat beztrestne pryc table { font-size:80%; text-align:center; vertical-align:top; border-spacing:0px; border-collapse: collapse; text-align:left; } td, th { border:1px solid #999; padding:1px 2px 1px 2px; } th { background-color:#ccc; } */ ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline Content-Type: text/css; charset=utf-8 Content-Location: http://www.vojenskaskola.cz/_layouts/1029/styles/core.css?rev=pkS%2FF9TH6vOPeNHO466yQw%3D%3D Content-Transfer-Encoding: 8bit /* _lcid="1029" _version="12.0.6500" _LocalBinding */ body,form{ margin:0; } body{ background-color:#FFFFFF; font-family:verdana,arial,helvetica,sans-serif; color:#000000; } .ms-alphaimage{ behavior:url("/_layouts/alphaimage.htc"); } .ms-alignleft{ text-align:left; } .ms-alignright{ text-align:right; } .ms-toolbar,.ms-viewtoolbar,.ms-formtoolbar,.ms-toolbarContainer{ font-family:verdana; font-size:8pt; text-decoration:none; color:#003399; } .ms-formtoolbar{ margin-bottom:7px; } .ms-formtoolbar td{ padding:0px; vertical-align:top; } .ms-toolbar-togglebutton-on{ border:1px solid #2353b2; background-color:#fffacc; } table.ms-toolbar,table.ms-viewtoolbar,.ms-toolbarContainer{ background-image:url("/_layouts/images/toolgrad.gif"); background-repeat:repeat-x; background-color:#d6e8ff; } table.ms-toolbar,.ms-toolbarContainer{ border:1px solid #83b0ec; border-collapse:collapse; } .ms-toolbarContainer{ padding:2px; } .ms-toolbarItem{ display:inline; white-space:nowrap; } table.ms-viewtoolbar{ border-top:1px solid #6f9dd9; border-bottom:1px solid #6f9dd9; } .ms-attachButton { text-align:left } .ms-listheader{ font:10pt verdana; color:#204d89; font-weight:bold; height:28px; background-image:url("/_layouts/images/listheadergrad.gif"); background-repeat:repeat-x; background-color:#d9d9d9; } .ms-menutoolbar{ border-bottom:1px solid #6f9dd9; height:22px; background-color:#afd2ff; background-image:url("/_layouts/images/listheadergrad.gif"); background-repeat:repeat-x; } .ms-menutoolbar td{ border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; } .ms-menutoolbar td a{ color:#003399; font-size:8pt; font-family:tahoma; text-decoration:none; } .ms-menutoolbar td a:hover{ color:#000000; text-decoration:none; } .ms-menutoolbar td{ padding:0px; margin:0px; vertical-align:middle; } .ms-menutoolbar td a:hover{ color:#000000; text-decoration:none; } .ms-menubuttoninactivehover,.ms-buttoninactivehover{ margin:2px 2px 2px 2px; padding:2px 7px 3px 7px; background-color:transparent; line-height:16px; } .ms-menubuttonactivehover,.ms-buttonactivehover{ margin:0px 1px 0px 1px; padding:3px 7px 4px 7px; background-image:url("/_layouts/images/menubuttonhover.gif"); line-height:16px; border:solid 1px #6f9dd9; cursor:pointer; } .ms-buttoninactivehover{ padding:0px 7px 1px 7px; } .ms-buttonactivehover{ padding:1px 7px 2px 7px; } .ms-buttoninactivehover img,.ms-buttonactivehover img{ margin:1px 1px 0px 0px; } td.ms-menutoolbarheader{ font-size:10pt; font-family:verdana; color:#204d89; font-weight:bold; line-height:16px; padding-left:7px; padding-right:7px; } .ms-listheaderlabel{ color:#204d89; } .ms-listheaderlabel,.ms-viewselector,.ms-viewselectortext,.ms-viewselectorhover{ font-size:8pt; font-family:tahoma; } .ms-menutoolbar td td.ms-viewselector,.ms-menutoolbar td td.ms-viewselectorhover,.ms-toolbar td td.ms-viewselector,.ms-toolbar td td.ms-viewselectorhover,.ms-authoringcontrols td td.ms-viewselector,.ms-authoringcontrols td td.ms-viewselectorhover,td.ms-viewselector{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; font-weight:bold; padding:0px; } .ms-menutoolbar td td{ border:none; } div.ms-viewselector,div.ms-viewselectorhover{ border:solid 1px #ffffff; padding:1px 12px 1px 4px; background-image:url("/_layouts/images/menudarkspaced.gif"); background-repeat:no-repeat; background-position:center right; cursor:pointer; } div.ms-viewselector a{ color:#000000; } .ms-menutoolbar td td.ms-viewselectorhover,.ms-toolbar td td.ms-viewselectorhover,.ms-authoringcontrols td td.ms-viewselectorhover{ background-image:url("/_layouts/images/menubuttonhover.gif"); background-color:#ffbb47; } td.ms-viewselector,td.ms-viewselectorhover{ width:125px; } .ms-bottompaging{ background:#ebf3ff; } .ms-bottompagingline1{ line-height:1px; background:#83b0ec } .ms-bottompagingline2{ line-height:1px; background:#ffffff; } .ms-bottompagingline3{ line-height:0px; background:#ffffff; } .ms-paging{ font-family:tahoma,sans-serif; font-size:8pt; font-weight:normal; color:#204d89; } .ms-bottompaging .ms-paging{ color:#4c4c4c; } .ms-menutoolbar .ms-splitbuttondropdown{ padding:0px 2px 1px 1px; margin:1px; } .ms-menutoolbar .ms-splitbuttontext{ padding:0px 6px 1px 8px; } .ms-splitbutton{ margin:0px 1px 0px 1px; } .ms-splitbuttonhover{ background-image:url("/_layouts/images/menubuttonhover.gif"); border-collapse:collapse; margin:0px 1px 0px 1px; } .ms-splitbuttonhover .ms-splitbuttondropdown,.ms-splitbuttonhover .ms-splitbuttontext{ border:1px solid #6f9dd9; cursor:pointer; } .ms-splitbuttonhover .ms-splitbuttondropdown{ padding:0px 1px 0px 1px; } .ms-splitbuttonhover .ms-splitbuttontext{ padding:0px 5px 0px 7px; } .ms-rtetablecells { border:solid 1px #c4c4c4; padding:2px; } .ms-rtetoolbarmenu { background-color:#f3f3f3; color:#000000; border:#c4c4c4; font-family:verdana; font-size:8pt; } TD.ms-rtetoolbarunsel{ padding:3px; } TD.ms-rtetoolbarsel{ padding:2px; border:solid 1px #89724f; background-image:url("/_layouts/images/rtebnsel.gif"); background-repeat:repeat-x; } .ms-rtetoolbardis{ filter:alpha(opacity=25); cursor:default; } a.ms-rtetoolbardis{ cursor:default; } TD.ms-rtetoolbarhov { padding:2px; border:solid 1px #d2b47a; background-image:url("/_layouts/images/rtebnhov.gif"); background-repeat:repeat-x; background-color:#fff699; cursor:pointer; color:#000000; } .ms-gridT1,.ms-propertysheet th.ms-gridT1 { font-family:verdana; text-align:left; font-size:0.7em; color:#000000; width:190px; } .ms-gridCol{ font-family:verdana; text-align:center; font-size:.6em; color:#7f7f7f; width:90px; } .ms-viewselect a:link,.ms-GRFontSize{ font-size:8pt; font-family:Verdana,sans-serif; color:#003399; } select{ font-size:8pt; font-family:Verdana,sans-serif; } hr{ color:#003399; height:2px; } .ms-formlabel{ text-align:left; font-family:verdana; font-size:.7em; border-top:1px solid #d8d8d8; padding-top:3px; padding-right:8px; padding-bottom:6px; color:#525252; font-weight:bold; } .ms-formdescription A{ color:#003399; text-decoration:none; } .ms-formvalidation{ color:#ff0000; font-family:verdana; font-size:8pt; } .ms-formtable .ms-formbody,.ms-formtable .ms-formbodysurvey{ line-height:1.3em; } .ms-informationbar{ background-color:#fff9de; border:1px solid #ffdf88; } .ms-informationbar td{ font-family:tahoma; font-size:8pt; color:#000000; } .ms-radiotext{ cursor:default; text-align:left; font-family:verdana; font-size:8pt; height:19px; } .ms-radiobutton-child{ margin-left:20px; } .ms-gridtext{ cursor:default; text-align:right; font-family:verdana; font-size:8pt; height:19px; } .ms-formbody{ font-family:verdana; font-size:.7em; vertical-align:top; background:#ebf3ff; border-top:1px solid #d8d8d8; padding:3px 6px 4px 6px; } .ms-formbodysurvey{ font-family:verdana; font-size:.7em; vertical-align:top; background:none; border-top:none; padding:5px 8px 15px 8px; } .ms-formbody FONT{ line-height:normal } .ms-formline{ border-top:1px solid #c4c4c4; padding-right:8px; padding-left:8px; } .ms-formdescription { font-family:verdana; font-size:8pt; color:#7f7f7f; } .ms-formfieldcontainer { } .ms-formfieldlabelcontainer { margin:4px 4px 0px 4px; } div.ms-formfieldlabelcontainer span.ms-formfieldlabel { font-family:tahoma; font-size:8pt; font-weight:normal; text-align:left; color:#777777; padding:1px 4px 1px 4px; border-top:1px solid #cccccc; border-left:1px solid #cccccc; border-right:1px solid #cccccc; background-image:url("/_layouts/images/globgrad.gif"); background-repeat:repeat-x; background-color:#efebef; height:18px; } .ms-formfieldvaluecontainer { border:1px solid #cccccc; margin-left:4px; margin-right:4px; margin-bottom:4px; padding:5px; } .ms-searchbox,.ms-pickersearchbox{ border:solid 1px #7f9db9; border-right:none; color:#1952a4; font-family:Verdana; font-size:8pt; height:19px !important; padding-top:2px; padding-left:2px; } .ms-searchform{ margin-right:10px; position:relative; top:-6px; } .ms-searchform input{ height:19px; padding:2px; } select.ms-searchbox{ margin-right:6px; border:solid 1px #7f9db9; } .ms-searchimage{ border:solid 1px #7f9db9; border-left:solid 1px #9ed6ff; background-color:#e9f2fd; padding-left:3px; padding-right:3px; padding-bottom:2px !important; padding-top:2px !important; } .ms-searchcorner{ background-color:#FFFFFF; background-image:url("/_layouts/images/srchcrnr.gif"); background-repeat:no-repeat; background-position:left top; } .ms-secondary-title { padding-bottom:3px; display:block; } table.ms-form th{ color:#003399; font-family:verdana; font-size:8pt; font-weight:normal; text-align:left; vertical-align:top; } table.ms-form td{ font-size:8pt; width:100%; vertical-align:top; } .ms-formrecurrence{ font-family:verdana; font-size:8pt; font-weight:normal; text-align:left; vertical-align:top; } .ms-fileinput{ font-size:8pt; font-family:Verdana,sans-serif; } .ms-longfileinput{ font-size:8pt; font-family:Verdana,sans-serif; width:386px; } .ms-long{ width:386px; } .ms-longer{ width:411px; } .ms-rtelong{ width:384px; } .ms-rtelonger{ width:409px; } .ms-input,.ms-long,.ms-rtelong,.ms-longer,.ms-rtelonger,.ms-radiotext,.ms-inputuserfield,.ms-rtedropdown,.ms-lookuptypeintextbox{ font-size:8pt; font-family:Verdana,sans-serif; } .ms-inputuserfield,.ms-rtelong,.ms-rtelonger{ border:1px solid #a5a5a5; } div.ms-inputuserfield a { color:#000000; text-decoration:none; font-weight:normal; font-style:normal; } div.ms-inputuserfield { padding-left:1px; padding-top:2px; } .ms-usereditor{ width:386px; } .ms-italic{ font-style:italic; } .ms-bold{ font-weight:bold; } .ms-bannerframe,.ms-GRHeaderBackground{ } .ms-banner{ vertical-align:bottom; } .ms-banner a:link{ text-decoration:none; white-space:nowrap; } .ms-banner a:visited{ text-decoration:none; } .ms-bannerContainer{ background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right top; background-repeat:repeat-y; background-color:#FFFFFF; padding-right:10px; padding-left:5px; } .ms-globalbreadcrumb{ font-size:8pt; text-align:right; background-color:#ebf3ff; padding:2px 10px 2px 5px; } .ms-globalbreadcrumb,.ms-globalbreadcrumb a{ text-decoration:none; color:#666666; } .ms-globalbreadcrumb a:hover{ text-decoration:underline; color:#000000; } .ms-globalleft{ float:left; } .ms-globalright{ float:right; } .ms-globallinks{ font-size:8pt; background:transparent; font-family:tahoma; } .ms-globallinks,.ms-globallinks a{ color:#666666; text-decoration:none; font-family:tahoma; } .ms-pagebreadcrumb{ padding:2px 3px 3px 11px; border-left:1px solid #ffffff; border-top:1px solid #ffffff; } .ms-pagebreadcrumb,.ms-pagebreadcrumb a{ font-size:8pt; background-color:#ebf3ff; color:#666666; text-decoration:none; } .ms-sitetitle { font:11pt verdana; font-weight:bold; color:#666666; padding:4px 0px 7px 6px; vertical-align:middle; margin:0; } .ms-sitetitle a { font:11pt verdana; font-weight:bold; color:#666666; text-decoration:none; } h1.ms-sitetitle{ margin:0; padding:0; } td.ms-titleimagearea{ padding-left:2px; } .ms-siteaction,.ms-siteaction a{ font:8pt tahoma; font-weight:bold; color:#666666; text-decoration:none; } table.ms-siteaction td.ms-siteaction{ border-right:solid 1px #bfbfbf; } table.ms-siteaction td.ms-siteaction div{ padding:3px 8px 3px 8px; border-right:solid 1px #FFFFFF; } .ms-siteactionsmenu{ white-space:nowrap; font:8pt tahoma; padding:0; border:none; cursor:pointer; } .ms-siteactionsmenu div div div{ background-image:url("/_layouts/images/siteactionsmenugrad.gif"); background-repeat:repeat-x; border-top:1px solid #6593cf; border-left:1px solid #6593cf; border-right:1px solid #6593cf; background-color:#6593cf; padding:1px 4px 3px 10px; } .ms-siteactionsmenu div div div a{ color:#FFFFFF; font-weight:bold; } .ms-siteactionsmenu div div div.ms-siteactionsmenuhover{ background-image:url("/_layouts/images/siteactionsmenuhovergrad.gif"); border-top:1px solid #89724f; border-left:1px solid #89724f; border-right:1px solid #89724f; background-color:#ffa521; } .ms-actionbar{ background-color:#FFFFFF; border:1px solid #6f9dd9; padding-top:1px } .ms-actionsep{ height:8px; border-right:1px solid #6f9dd9; } .ms-topnavContainer{ border:none; border-left:solid 1px #c2dcff; } .ms-topnav{ border:solid 1px #c2dcff; border-left:solid 1px #ffffff; border-bottom:none; background-image:url("/_layouts/images/topnavunselected.gif"); background-repeat:repeat-x; font-family:Tahoma; font-size:8pt; background-color:#e2efff; color:#3764a0; } .ms-topnav a{ display:block; white-space:nowrap; padding:1px 8px 0px 8px; height:18px; } .ms-topnavselected{ color:#003399; background:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; font-weight:bold; border:solid 1px #79a7e3; border-bottom-width:0px; border-left:solid 1px #e3efff; background-color:#6593cf; } .ms-topnavselected a{ color:#003399; } .ms-topNavHover{ background-image:url("/_layouts/images/topnavhover.gif"); background-color:#ffe6a0; border:solid 1px #c2a770; border-left:solid 1px #ffffff; border-bottom-width:0px; color:#000000; } .ms-topNavHover a{ color:#000000; } .ms-topnav img{ position:relative; left:-6px; } .ms-topNavFlyOutsContainer { border:solid 1px #c2dcff; } .ms-topNavFlyOuts{ background-color:#F2F8FF; font-family:Tahoma; font-size:8pt; } .ms-topNavFlyOuts a{ display:block; *width:120px; min-width:120px; color:#3764a0; padding:4px 8px 4px 8px; } .ms-topNavFlyOutsHover{ background-color:#ffe6a0; color:#000000; } .ms-nav td,.ms-nav .ms-SPZoneLabel{ font-size:8pt; } .ms-formula{ font-size:8pt; font-family:Verdana,sans-serif; width:222px; height:135px; } .ms-dtinput,.ms-dttimeinput{ vertical-align:middle; padding-top:0px; padding-bottom:0px; padding-right:4px; padding-left:0px; font-size:0px; } .ms-dttimeinput{ direction:ltr; } .ms-nav th{ font-size:8pt; font-family:Verdana,sans-serif; font-weight:normal; text-align:left; color:#000000; } .ms-quicklaunchnavsep{ background-color:#83b0ec; } .ms-quicklaunch table td{ border-top:1px solid #add1ff; } .ms-quicklaunch .ms-treeviewouter table td{ border-top:none; } .ms-quicklaunch table.ms-navheader td,.ms-navheader2 td,.ms-quicklaunch span.ms-navheader{ background-color:#d6e8ff; border-top:solid 1px #f2f8ff; border-left:solid 1px #f2f8ff; padding:1px 4px 4px 4px; } div.ms-treeviewouter div{ border-top:solid 1px #add1ff; } div.ms-treeviewouter div div{ border:none; } .ms-quicklaunch span.ms-navheader{ background-color:#d6e8ff; border-top:1px solid #add1ff; border-left:solid 1px #f2f8ff; border-bottom:1px solid #add1ff; padding:1px 6px 3px 6px; } .ms-quicklaunch table.ms-navsubmenu2 td{ border:none; } .ms-quicklaunch table.ms-selectednavheader td{ width:100%; background-color:#fff699; } .ms-quicklaunch table.ms-selectednavheader{ border:none; } .ms-quicklaunch span{ display:block; } .ms-quicklaunch div.ms-navsubmenu1 br{ display:none; } .ms-quicklaunch table.ms-selectednav{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; margin:2px; margin-bottom:0; width:97%; } .ms-quicklaunch table.ms-selectednav td{ background:transparent url("/_layouts/images/selectednavbullet.gif"); background-repeat:no-repeat; background-position:top left; border:solid 1px #ffffff; padding:0px 4px 1px 12px; margin:0px; } table.ms-selectednav td a.ms-selectednav{ background:none; color:#000000; } .ms-quicklaunch table.ms-selectednavheader td{ width:100%; background-color:#ffe6a0; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; padding-top:2px; padding-bottom:2px; border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; padding:1px 6px 3px 6px; } .ms-selectednavheader a{ font-weight:bold; color:#000000; text-decoration:none; } .ms-selectednavheader a:hover{ color:#000000; text-decoration:underline; } table.ms-navitem td,span.ms-navitem{ background-image:url("/_layouts/images/navBullet.gif"); background-repeat:no-repeat; background-position:left top; padding:3px 6px 4px 16px; font-family:tahoma; } .ms-navsubmenu1{ width:100%; border-collapse:collapse; background-color:#f2f8ff; } .ms-navsubmenu2{ width:100%; background-color:#f2f8ff; margin-bottom:6px; } table.ms-navselected{ padding:2px; } table.ms-navselected,span.ms-navselected{ background-image:url("/_layouts/images/SELECTEDNAV.GIF"); background-color:#ffe6a0; background-repeat:repeat-x; } table.ms-navselected td{ background-image:url("/_layouts/images/navBullet.gif"); background-repeat:no-repeat; background-position:top left; padding:3px 6px 4px 17px; } table.ms-navheader td{ background-image:none; } .ms-navheader a,.ms-navheader2 a{ font-weight:bold; color:#003399; text-decoration:none; } .ms-navheader a:hover,.ms-navheader2 a:hover{ color:#000000; text-decoration:underline; } .ms-navItem a{ color:#003399; text-decoration:none; } .ms-navItem a:hover{ color:#000000; text-decoration:underline; } .ms-navheaderstatic,.ms-navitemstatic{ color:#4c4c4c; } .ms-quicklaunchouter{ border-bottom:solid 1px #83b0ec; border-right:solid 1px #83b0ec; } .ms-quicklaunchouter{ margin:0px 1px 2px 1px; } .ms-tvselected{ background-color:#ffda8a; } .ms-tvselected a{ color:#000000; } .ms-treeviewouter td.ms-navitem{ border-left:2px solid #f2f8ff; } .ms-treeviewouter a.ms-navitem{ padding:0px 1px 0px 1px; } table.ms-recyclebin td{ background-color:#f2f8ff; width:100%; border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; padding:3px 5px 7px 3px; } table.ms-recyclebin td a{ font-weight:bold; color:#008800; text-decoration:none; } table.ms-recyclebin td a:hover{ color:#000000; text-decoration:underline; } .ms-quickLaunch{ border:solid 1px #6f9dd9; border-bottom:solid 1px #6f9dd9; font-size:8pt; font-family:tahoma; line-height:10pt; background-color:#f2f8ff; } .ms-quicklaunchheader{ padding:2px 6px 4px 6px; font-weight:normal; color:#003399; background-image:url("/_layouts/images/quickLaunchHeader.gif"); background-repeat:repeat-x; background-color:#d6e8ff; border-left:solid 1px #f2f8ff; font-size:8pt; } .ms-quicklaunchheader a,.ms-unselectednav a{ color:#003399; text-decoration:none; } .ms-quicklaunchheader a:hover{ color:#000000; text-decoration:underline; } .ms-navline{ border-bottom:1px solid #adadad; } .ms-navwatermark{ color:#ffdf88; } .ms-selectednav,.ms-GRSortFilter{ border:1px solid #2353b2; background:#fff699; padding-top:1px; padding-bottom:2px; } .ms-unselectednav{ border:1px solid #83b0ec; padding-top:1px; padding-bottom:2px; } .ms-templatepickerselected,.ms-templatepickerunselected{ float:left; } .ms-templatepickerunselected{ padding-top:2px; margin-right:1px; } .ms-templatepickerselected{ margin-right:1px; } .ms-templatepickerunselected div{ background-image:url("/_layouts/images/templatepickerunselected.gif"); background-repeat:repeat-x; background-color:#bdbdbd; border:solid 1px #c4c4c4; border-bottom:none; padding:1px 5px 3px 5px; white-space:nowrap; } .ms-templatepickerselected div{ background-image:url("/_layouts/images/templatepickerselected.gif"); background-repeat:repeat-x; background-color:#ffffff; border:solid 1px #c2a770; border-bottom:none; padding:3px 5px 3px 5px; white-space:nowrap; } .ms-templatepickerselected div a{ color:#000000; } .ms-templatepickerunselected div a{ color:#000000; } .ms-templatepicker{ font-size:8pt; font-family:tahoma; width:320px; height:175px; } .ms-lactiontable{ width:100%; } .ms-laction{ border-top:solid 1px #b8bed0; padding-left:2px; padding-right:2px; } .ms-lactionheader{ padding:4px; } .ms-lactionitem{ padding-left:4px; padding-right:4px; padding-top:3px; padding-bottom:3px; white-space:nowrap; } .ms-lactionitem a{ color:#003399; text-decoration:none; } .ms-lactionitem a:hover{ color:#000000; text-decoration:underline; } .ms-diffselected{ background-image:url("/_layouts/images/SELECTEDNAV.GIF"); background-color:#ffe6a0; background-repeat:repeat-x; border:1px solid #d2b47a; } .ms-diffselected table{ width:100%; border:1px solid #ffffff; } .ms-diffselected .ms-lactionbullet{ padding-left:3px; } .ms-diffselected .ms-lactionitem{ padding-right:3px; } .ms-diffselected .ms-lactionitem a{ color:#000000; } .ms-versiondiffnum{ font-weight:bold; } .ms-verticaldots{ border-right:1px solid #83b0ec; border-left:none; } .ms-nav{ background-color:#83b0ec; background-image:url("/_layouts/images/navshape.jpg"); background-repeat:repeat-x; font-family:tahoma; } .ms-relatedtable{ width:100%; background:#f2f2f2; border:1px solid #949494; } .ms-relatedheaderleftcorner{ } .ms-relatedheaderrightcorner{ } .ms-relatedicon{ padding:2px; text-align:center; } .ms-relatedicon img{ border:0px; } .ms-relatedtext{ color:#3966bf; padding:2px; } .ms-relatedtext a:visited,.ms-relatedtext a:link,.ms-relatedtext a:active{ color:#3966bf; font-family:tahoma,sans-serif; text-decoration:none; } .ms-relatedtext a:hover{ color:#3966bf; font-family:tahoma,sans-serif; text-decoration:underline; } .ms-globalTitleArea{ text-align:right; background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right top; background-repeat:repeat-y; padding-left:5px; padding-right:0px; padding-top:1px; } .ms-globalTitleAreaSeparator{ background-color:#ffffff; background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right; background-repeat:repeat-y; } .ms-titlearea,.ms-mwstitlearea{ color:#666666; font-family:tahoma; font-size:8pt; letter-spacing:.1em; } .ms-titlearea a { color:#3966bf; text-decoration:none; } .ms-titlearea a:hover,.ms-mwstitlearea a:hover { color:#000000; text-decoration:underline; } td.ms-mwstitlearea a { color:#3966bf; text-decoration:none; } .ms-titlearealeft { background-color:#d6e8ff; } TD.ms-titleareaframe,Div.ms-titleareaframe,.ms-pagetitleareaframe,.ms-mwspagetitleareaframe,.ms-consoletitleareaframe{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-position:left top; background-color:#d6e8ff; text-align:center; } div.ms-titleareaframe{ height:100%; } .ms-pagetitleareaframe table{ background-image:url("/_layouts/images/topshape.jpg"); background-repeat:no-repeat; background-position:332px 4px; height:54px; } .ms-titlearealine{ background-color:#83b0ec; } .ms-titleareaframe table td.ms-titlearea,.ms-areaseparator table td.ms-titlearea,.ms-pagetitleareaframe table td.ms-titlearea,.ms-consoletitleareaframe{ padding:7px 0px 1px 0px; } .ms-consoletitleareaframe { width:8px; } .ms-consoletitleareaframebottom { background-color:#d6e8ff; text-align:center; padding:0px 0px 0px 0px; } .ms-mwspagetitleareaframe{ width:100%; } .ms-mwstitlearealine{ background-color:#D6E8FF; } .ms-titleareaseparator{ padding-bottom:5px; background-color:#83b0ec; } .ms-titleareaseparator div{ background-color:#d6e8ff; border-top:1px solid #6f9dd9; } .ms-sitemapdirectional,.ms-sitemapdirectional a{ unicode-bidi:embed; } .ms-areaseparatorcorner{ background-image:url("/_layouts/images/framecornergrad.gif"); background-position:left top; background-repeat:repeat-y; height:8px; border-right:1px solid #6f9dd9; } td.ms-areaseparatorleft{ background:#d6e8ff url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; border-right:1px solid #6f9dd9; height:100%; } div.ms-areaseparatorleft{ background:#83b0ec url("/_layouts/images/navshape.jpg"); background-repeat:no-repeat; background-position:-143px 0px; border-right:1px solid #6f9dd9; height:100%; } div.ms-areaseparatorright{ background:#83b0ec url("/_layouts/images/pagebackgrad.gif"); background-repeat:repeat-x; border-left:1px solid #6f9dd9; padding-right:2px; height:100%; } .ms-titlearearight .ms-areaseparatorright{ background:#d6e8ff url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; border-left:1px solid #6f9dd9; padding-right:2px; height:100%; } .ms-areaseparator{ background-color:#ffeaad; background-image:url("/_layouts/images/formtitlegrad.gif"); background-repeat:repeat-x; border-right:none; border-left:none; padding-left:5px; height:61px; } .ms-pagemargin{ background-color:#83b0ec; background-image:url("/_layouts/images/navshape.jpg"); background-repeat:no-repeat; background-position:-143px 0px; height:100%; } td.ms-rightareacell div.ms-pagemargin{ background-color:#83b0ec; background-image:url("/_layouts/images/pagebackgrad.gif"); background-repeat:repeat-x; height:100%; border-left:solid 1px #83b0ec; } .ms-bodyareacell{ vertical-align:top; height:100%; width:100%; } .ms-pagebottommargin,.ms-pagebottommarginleft,.ms-pagebottommarginright{ background:#83b0ec; } .ms-bodyareapagemargin{ background:#83b0ec; border-top:1px solid #6f9dd9; } .ms-bodyareaframe,.ms-viewareaframe{ vertical-align:top; height:100%; width:100%; background-color:#ffffff; border-top:1px solid #6f9dd9; border-right:1px solid #6f9dd9; border-left:1px solid #6f9dd9; } .ms-bodyareaframe{ padding:10px; } .ms-formareaframe{ vertical-align:top; height:100%; background-color:#ffffff; padding:8px; } .ms-pagetitle{ color:#000000; font-family:verdana; font-size:16pt; margin:0px 0px 4px 0px; font-weight:normal; } .ms-pagetitle a{ text-decoration:none; color:#000000; margin:0; font-weight:normal; } .ms-pagetitle a:hover{ } .ms-pagecaption{ font-size:9pt; color:#000000; font-family:arial,verdana,sans-serif; } .ms-selected { background-position:left top; color:#000000; background-image:url("/_layouts/images/filedialogselected.gif"); background-color:#FFE499; border-top:1px solid #FFE499; border-bottom:1px solid #FFE499; background-repeat:repeat-x; } .ms-selected SPAN{ color:#000000; } .ms-vh table.ms-selectedtitle,.ms-vh2 table.ms-selectedtitle,.ms-vh-icon table.ms-selectedtitle,.ms-vh table.ms-unselectedtitle,.ms-vh2 table.ms-unselectedtitle,.ms-vh-icon table.ms-unselectedtitle{ height:21px; } .ms-vh table.ms-selectedtitle,.ms-vh2 table.ms-selectedtitle,.ms-vh-icon table.ms-selectedtitle{ background-color:#dde1e5; border:none; } .ms-vh2 .ms-selectedtitle .ms-vb,.ms-vh2 .ms-unselectedtitle .ms-vb{ padding-left:5px; padding-right:5px; padding-top:1px; } .ms-vh-icon .ms-selectedtitle .ms-vb,.ms-vh-icon .ms-unselectedtitle .ms-vb{ padding-left:0px; vertical-align:middle; } .ms-vh-icon{ padding-left:6px; padding-right:4px; } .ms-propertysheet th.ms-vh2,.ms-propertysheet th.ms-vh2-nofilter{ font-family:tahoma; } .ms-listviewtable .ms-vh2,.ms-summarystandardbody .ms-vh2{ padding:1px 1px 0px 1px; } .ms-listviewtable .ms-vb2,.ms-summarystandardbody .ms-vb2{ padding-left:7px; padding-right:7px; } .ms-basictable{ border-collapse:collapse; } .ms-selectedtitle{ background-color:#ffffff; border:1px solid #b09460; margin:0px; padding:0px; cursor:pointer; } .ms-selectedtitlealternative { background-color:#ffffff; border:1px solid #b09460; margin:0px; padding:0px; cursor:pointer; } .ms-unselectedtitle{ background-color:transparent; margin:0px; padding:0px; } .ms-vb-title .ms-unselectedtitle{ padding:1px; } .ms-menuimagecell{ background:#ffe6a0 url("/_layouts/images/selectednav.gif") repeat-x; cursor:pointer; border:solid 1px #ffffff; padding:0px; height:18px; } .ms-vh .ms-menuimagecell,.ms-vh2 .ms-menuimagecell,.ms-vh-icon .ms-menuimagecell{ height:20px; } .ms-vh .ms-menuimagecell img,.ms-vh2 .ms-menuimagecell img,.ms-vh-icon .ms-menuimagecell img{ margin-top:2px; margin-bottom:2px; } .ms-filedialog td{ height:16px; } .ms-descriptiontext{ color:#4c4c4c; font-family:tahoma; font-size:8pt; text-align:left; } .ms-webpartpagedescription{ font-family:verdana; font-size:8pt; color:#5a5a5a; padding:8px 12px 0px 12px; } .ms-inputformdescription{ width:475px; padding-right:9px; } .ms-inputformcontrols { width:375px; } .ms-halfinputformcontrols { width:150px; } .ms-dspadapterlist { padding-left:1cm; color:#7f7f7f; font-family:verdana; font-size:8pt; } .ms-alerttext { color:#ff0000; font-family:verdana; font-size:8pt; } .ms-separator { color:#83b0ec; font-size:10pt; } .ms-separator img { height:16px; width:1px; margin:0px 1px 0px 1px; background:#9ac6ff; border-bottom:1px solid #f2f8ff; border-right:1px solid #f2f8ff; } .ms-authoringcontrols { background-color:#ebf3ff; font-family:tahoma; font-size:8pt; color:#525252; } .ms-propertysheet th.ms-authoringcontrols { background-color:#ebf3ff; font-family:tahoma; font-size:8pt; color:#083772; text-align:left; } .ms-multiselectbox { width:175px; } .ms-lookuptypeindropdown { width:20em; } .ms-lookuptypeintextbox { width:20em; vertical-align:middle; } .ms-sectionheader { color:#525252; font-family:tahoma; font-size:8pt; font-weight:bold; } .ms-linksectionheader,.ms-propertysheet th.ms-linksectionheader { color:#000000; font-family:tahoma; font-size:8pt; font-weight:bold; text-align:left; } td.ms-linksectionheader,th.ms-linksectionheader { background-color:#ebf3ff; background-image:url("/_layouts/images/linksectiongrad.gif"); background-repeat:repeat-x; border:1px solid #add1ff; text-align:left; } table.ms-disc-bar { background-color:#d6e8ff; background-image:url("/_layouts/images/quicklaunchheader.gif"); background-repeat:repeat-x; border:1px solid #79a7e3; text-align:left; } table.ms-disc HR { height:1px; color:#add1ff; } .ms-attachUploadButtons { text-align:right; } .ms-sectionheader a,.ms-sectionheader a:hover,.ms-sectionheader a:visited,.ms-propertysheet .ms-sectionheader a,.ms-propertysheet .ms-sectionheader a:hover { color:#525252; text-decoration:none; } .ms-sectionline { background-color:#d9d9d9; } .ms-sectionhighlight-top{ border:1px solid #ff9932; border-left:0px solid; border-right:0px solid; background-color:#f7f3cd; font-family:tahoma; font-size:8pt; } .ms-sectionhighlight{ background-color:#fffbd8; color:#4c4c4c; } .ms-sectionhighlight-line{ height:1px; padding:0px; background-color:#ff9932; } .ms-partline { background-color:#add1ff; } .ms-propertysheet{ font-family:verdana; font-size:.7em; text-align:left; color:#4c4c4c; } .ms-propertysheet th{ font-family:verdana; font-size:8pt; color:#4c4c4c; font-weight:normal; } .ms-propertysheet a{ text-decoration:none; color:#3966bf; } .ms-propertysheet a:hover{ text-decoration:underline; color:#000000; } table.ms-pageinformation,table.ms-createpageinformation{ font-family:tahoma; font-size:8pt; height:115px; } table.ms-pageinformation{ background-image:url("/_layouts/images/settingsgraphic.jpg"); background-color:#ffffff; background-repeat:repeat-x; } table.ms-createpageinformation{ background-image:url("/_layouts/images/creategraphic.jpg"); background-repeat:repeat-x; background-color:#ffffff; } .ms-pageinformation th,.ms-createpageinformation th{ color:#204d89; text-align:left; } .ms-pageinformation table td,.ms-createpageinformation table td{ color:#000000; text-align:left; font-family:tahoma; font-size:8pt; padding:3px 5px 3px 1px; } .ms-pageinformation table th { padding:3px 5px 3px 1px; } .ms-storMeFree{ background-color:#80f0dc; border-style:dashed; border-width:1px; border-color:white; } .ms-storMeUsed{ background:#8ebbf5; border-style:solid; border-width:1px; border-color:white; } .ms-storMeEstimated{ background-color:#83b0ec; border-style:dotted; border-width:1px; border-color:white; } .ms-storMeFilterBar{ background:#8ebbf5; } .ms-informationtablehover{ border:solid 1px #add1ff; } .ms-informationtablehover td,.ms-informationtablehover th{ background-color:#ebf3ff; } .ms-informationtablehover td{ border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; } .ms-informationtablehover th{ border-top:solid 1px #ffffff; } .ms-informationtablestatic{ background-image:url("/_layouts/images/settingsbkg.jpg"); background-repeat:no-repeat; } .ms-pageinformationheader{ font-weight:bold; color:#000000; } .ms-itemheader a{ font-size:11pt; font-family:arial; font-weight:bold; color:#003399; text-decoration:none; } .ms-itemstatic{ border:1px solid #FFFFFF; background-color:transparent; } .ms-itemhover{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; cursor:pointer; } .ms-itemhover a{ color:#000000; text-decoration:underline; } .ms-discussiontitle{ font-size:.7em; font-family:verdana; color:#000000; font-weight:bold; } .ms-listdescription{ color:#4c4c4c; font-family:tahoma; background:#f8f8f8; padding:2px 6px 4px 6px; border-bottom:1px solid #6f9dd9; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh-icon-empty,.ms-vhImage,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-ph{ font-weight:normal; color:#b2b2b2; text-align:left; text-decoration:none; vertical-align:top; } .ms-gb,.ms-gb2,.ms-gbload,.ms-vb,.ms-vb2,.ms-vb-tall,.ms-GRFont,.ms-vb-user,.ms-pb,.ms-pb-selected td{ color:#000000; } .ms-gb a,.ms-gb2 a{ color:#003399; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh-icon-empty,.ms-vhImage,.ms-gb,.ms-gb2,.ms-gbload,.ms-vb,.ms-vb2,.ms-vb-tall,.ms-GRFont,.ms-vb-user,table.ms-disc td,.ms-vh2-nofilter,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon,.ms-pb,.ms-pb-selected,.ms-ph{ font-size:8pt; font-family:tahoma,sans-serif; } .ms-vh,.ms-vh2,.ms-vh2-nofilter,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon,.ms-ph{ white-space:nowrap; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-viewheadertr .ms-vh-group,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-ph,.ms-pickerresultheadertr{ background-image:url("/_layouts/images/viewheadergrad.gif"); background-repeat:repeat-x; padding-top:1px; padding-bottom:0px; background-color:#f2f2f2; } .ms-disc .ms-viewheadertr th.ms-vh2{ padding:1px 5px 0px 4px; } .ms-disc .ms-vh2 .ms-selectedtitle .ms-vb,.ms-disc .ms-vh2 .ms-unselectedtitle .ms-vb{ padding-left:4px; } th.ms-vh3-nograd{ width:12px; color:#949494; font-size:8pt; font-family:tahoma,sans-serif; } .ms-vh .ms-vh{ background-image:none; border-left:none; padding-left:1px; background-color:transparent; } .ms-vh2,.ms-ph{ padding:3px 8px 1px 8px; } .ms-vh2-gridview{ padding-top:2px; padding-bottom:2px; vertical-align:middle; } .ms-vh-icon,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon{ width:12px; } .ms-vh-icon-empty{ width:0px; } .ms-vh a,.ms-vh a:visited,.ms-vh2 a,.ms-vh2-nofilter a{ color:#7f7f7f; text-decoration:none; } .ms-vh a:hover,.ms-vh2 a:hover,.ms-vh2-nofilter a:hover{ text-decoration:underline; } .ms-vhImage{ width:18pt } .ms-cbp{ padding-left:8px; padding-right:8px; } .ms-standardheader{ font-size:1em; margin:0em; text-align:left; color:#525252; } .ms-linksectionheader .ms-standardheader{ color:#000000; } .ms-gb h3.ms-standardheader{ margin-top:1em; } .ms-gb .ms-standardheader{ color:#000000; } .ms-gb{ height:22px; background-color:#ffffff; font-weight:bold; border-bottom:1px solid #8ebbf5; border-top:1px solid #f9f9f9; padding-bottom:3px; } .ms-listviewtable .ms-gb,.ms-listviewtable .ms-gb2{ padding-top:14px; } .ms-gb2{ height:22px; color:#4c4c4c; padding-bottom:3px; border-bottom:1px solid #e3efff; border-top:1px solid #f9f9f9; } .ms-gbload{ height:22px; color:#4c4c4c; background-color:#ffffff; padding-bottom:3px; } .ms-vb,.ms-vb2,.ms-GRFont,.ms-vb-user,table.ms-disc td,.ms-vb-tall,.ms-pb,.ms-pb-selected { vertical-align:top; } .ms-vb a,.ms-vb2 a,.ms-GRStatusText a,.ms-vb-user a,.ms-disc a{ color:#003399; text-decoration:none; } .ms-vb a:hover,.ms-vb2 a:hover,.ms-vb-user a:hover,.ms-disc a:hover{ color:#000000; text-decoration:underline; } .ms-vb a:visited,.ms-vb2 a:visited,.ms-GRStatusText a:visited,.ms-vb-user a:visited,.ms-disc a:visited{ color:#000066; text-decoration:none; } .ms-vb a:visited:hover,.ms-vb2 a:visited:hover,.ms-vb-user a:visited:hover,.ms-disc a:visited:hover{ color:#000000; text-decoration:underline; } .ms-vb-icon{ vertical-align:top; width:0%; padding-top:3px; padding-left:8px; padding-right:0px; padding-bottom:0px; } .ms-vb-icon-overlay{ border:0; position:relative; left:-7px; bottom:-2px; } .ms-vb-user{ padding-top:2px; padding-right:2px; padding-left:2px; } .ms-vb-title .ms-vb{ padding-top:2px; padding-right:1px; padding-bottom:5px; padding-left:6px; } .ms-vb-title .ms-selectedtitle .ms-vb{ padding-top:1px; padding-right:0px; padding-bottom:4px; padding-left:5px; } .ms-vb2{ padding-top:3px; padding-left:8px; padding-right:8px; padding-bottom:4px; } .ms-pb,.ms-pb-selected{ padding-left:5px; padding-right:5px; white-space:nowrap; } .ms-pb{ height:22px; padding-top:3px; border-top:1px dashed #ffffff; } .ms-pb-selected{ height:22px; padding-top:3px; background-color:#ffe6a0; border-top:1px solid #ffe6a0; border-bottom:1px solid #ffe6a0; } .ms-pb a,.ms-pb-selected a{ font-size:8pt; font-family:tahoma,sans-serif; color:#000000; text-decoration:none; cursor:default; } .ms-vb-tall{ line-height:1.5em; padding-top:2px; padding-bottom:10px; padding-left:6px; padding-right:6px; } th .ms-vb,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,th.ms-vh2-nograd,th.ms-vh2-nograd-icon{ color:#b2b2b2; font-size:8pt; font-family:tahoma,sans-serif; } th .ms-vb a,.ms-vh2-nofilter a,.ms-vh2-nofilter-icon a{ color:#808080; } th .ms-selectedtitle .ms-vb,th .ms-selectedtitle .ms-vh2-nofilter,th .ms-selectedtitle ms-vh2-nofilter-icon,th .ms-selectedtitle .ms-vb a,th .ms-selectedtitle .ms-vh2-nofilter a,th .ms-selectedtitle ms-vh2-nofilter-icon a{ color:#4c4c4c; } .ms-vb li { vertical-align:auto; } .ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon{ padding-left:8px; padding-right:8px; padding-top:3px; height:20px; } .ms-nlline{ background:#d8d8d8; } .ms-ppleft{ height:440px; overflow:auto; margin:2px; border-bottom:1px solid #d8d8d8; } .ms-ppright{ width:600px; margin:8px; } .ms-basictable .ms-alternating{ background-color:transparent; } .ms-homepagetitle{ font-family:arial; font-size:12pt; color:#000000; font-weight:bold; text-decoration:none; } a.ms-addnew{ font-weight:normal; font-family:verdana; font-size:8pt; color:#003399; text-decoration:none; } a.ms-addnew:Hover{ color:#000000; text-decoration:underline; } td.ms-addnew{ padding-left:1px; padding-right:7px; } .ms-error{ font-family:Verdana,sans-serif; font-size:8pt; font-weight:normal; color:#ff0000 } .ms-errorcolor{ color:#FF0000; } .ms-successcolor{ color:#008000; } IMG.ms-button{ cursor:pointer; } .ms-announcementtitle{ font-weight:bold; } .ms-homepagetitle:Hover{ text-decoration:underline; color:#000000; } .ms-discussionseparator{ color:#CCCCCC; height:1px; } .ms-summarytitlebarframe{ background-color:#2353b2; } .ms-summarytitlebar a:link{ font-family:Verdana,serif; font-size:9pt; color:#FFFFFF; font-weight:normal; text-decoration:none; } .ms-summarytitlebar a:visited{ font-family:Verdana,serif; font-size:9pt; color:#FFFFFF; font-weight:normal; text-decoration:none; } .ms-summarytitlebar{ color:#FFFFFF; font-size:.68em; font-family:verdana; font-weight:normal; text-decoration:none; } .ms-summarytitlebartitle{ color:#FFFFFF; font-size:10pt; font-family:arial; font-weight:bold; text-decoration:none; } .ms-summarytitlebartitle:hover{ text-decoration:underline; color:#000000; } img.thumbnail{ border:solid #83b0ec 3px; } tr.ms-imglibselectedrow,tr.ms-highlight { background-color:#f2f2f2; } .ms-imglibthumbnail { background-color:#d8d8d8;border:solid #83b0ec 0px; } span.thumbnail{ padding:16 10;position:relative;width:5px; } span.userdata{ behavior:url(#default#userData);display:none; } .ms-imglibmenuarea { background-color:#f2f8ff; } a.ms-imglibPreviewTitle { overflow:hidden; text-overflow:ellipsis; width:130px; } table.ms-imglibPreviewTable { display:none; } table.ms-disc td { padding:0; color:#4c4c4c; } .ms-disc-nopad,table tr td.ms-disc-nopad,table.ms-disc-nopad td { padding:0px; } table tr td.ms-disc-padabove{ padding:5px 5px 5px 5px; } table.ms-disc-bar td { vertical-align:middle; height:22px; padding-left:5px; } table.ms-disc-bar IMG { vertical-align:middle; } table.ms-disc-bar B { vertical-align:10%; padding-right:5px; } td.ms-disc-bordered,td.ms-disc-bordered-noleft { border:0px solid #add1ff; border-top-width:0px; } table tr td.ms-disc-bordered-noleft { border-left-width:1px; padding:0px 10px 5px 10px; font-family:verdana; font-size:.7em; text-align:left; } table tr td.ms-disc-bordered{ padding:0px 0px 5px 5px; } .UserShadedRegion { font-family:verdana,sans-serif; background-color:#fffacc; } .UserCaption { font-size:8pt; font-family:verdana; background-color:#d6e8ff; } .UserConfiguration { font-size:8pt; font-family:verdana; background-color:#f2f2f2; } .UserDottedLine { margin-bottom:2px; height:1px; overflow:hidden; background-color:#3966bf; background-image:url("/_layouts/images/dot.gif"); } .UserButton,.UserInput,.UserSelect{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; } .UserNotification{ font-family:verdana,sans-serif; padding:4px; COLOR:#7f7f7f } .RemoveConnectionLink{ color:#003399; text-decoration:none; } .ConnectionTabLink{ color:#333333; text-decoration:none; } .ConnectionChooseActiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #ece9d8; padding:3px; display:inline; height:24px; background-color:#ece9d8; } .ConnectionChooseInactiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #999999; padding:3px; display:inline; margin-top:4px; height:20px; color:#333333; background-color:#bfbfbf; } .ConnectionConfigureInactiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-bottom:solid 1px #999999; padding:3px; margin-top:4px; display:inline; height:20px; color:#333333; background-color:#bfbfbf; } .ConnectionConfigureActiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #ece9d8; padding:3px; display:inline; height:24px; background-color:#ece9d8; } .UserConnectionTop { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-bottom:solid 1px #999999; height:24px; width:100%; } .UserToolBarTextArea{ padding-left:0px; padding-right:0px; padding-bottom:5px; font-weight:normal; font-size:8pt; font-family:Verdana,sans-serif; } .UserToolbarTextArea A:link { COLOR:#3966bf; TEXT-DECORATION:none } .UserToolbarTextArea A:visited { COLOR:#3966bf; TEXT-DECORATION:none } .UserToolbarTextArea A:hover { COLOR:#000000; TEXT-DECORATION:underline } .UserToolbarDisabledLink { COLOR:#7f7f7f; font-size:8pt; font-family:verdana; padding:4px; } .UserToolbarImage { border:medium none; font-size:8pt; cursor:pointer; background-color:#f2f2f2; text-align:center; } .UserCaptionShadow{ border-right:1px solid #add1ff; border-left:1px solid #add1ff; background-color:#f3f3f3; height:2px; background-image:url("/_layouts/images/viewheadergrad.gif"); background-repeat:repeat-x; } .UserGenericHeader { font-weight:bold; font-size:12pt; color:#000000; font-family:arial,sans-serif; } .UserGeneric { padding:8px 5px 7px 5px; } .UserGenericBody { padding:5px 0px 0px 17px; } .UserGenericText { font-size:8pt; font-family:verdana,arial,sans-serif; color:#000000; } .UserBackground { background-color:#FFFFFF; } .UserSectionTitle { width:100%; margin-bottom:5px; padding-bottom:2px; font-weight:bold; border-bottom:solid 1px #c4c4c4; color:#595959 } .UserSectionHead { width:100%; padding:0px 0px 3px 0px; color:#595959; } .UserSectionBody { width:100%; padding:0px 0px 0px 0px; } .UserControlGroup { padding-bottom:10px; padding-top:2px; } .UserSectionFooter { width:100%; margin-top:5px; padding-top:2px; border-top:solid 1px #c8c8c8; color:#000000 } .UserFooter { width:100%; padding:10px 7px 7px 7px; } .UserCommandArea { padding-top:7px; } .UserToolbar { background-image:url("/_layouts/images/topnavunselected.gif"); border-bottom:1px solid #6f9dd9; padding-left:2px; padding-right:2px; background-position:left bottom; background-repeat:repeat-x; background-color:transparent; } .UserCellHover { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; border:solid 1px #2353b2; color:#000000; } .UserCellSelected { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffdf88; border:solid 1px #d2b47a; color:#000000; } .UserCell { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; margin:1px; color:#003399; } .UserGenericBulletItem { padding-bottom:2px; } .ms-ToolPaneFrame { padding:0px; background-color:#f2f2f2; } .ms-ToolPaneOuter { padding:0px; background-color:#f2f2f2; border-top:1px solid #6f9dd9; border-right:2px solid #6f9dd9; } .ms-ToolPaneBody { padding-right:2px; padding-left:0px; padding-bottom:2px; padding-top:2px; } .ms-ToolPaneHeader { background-color:#2353b2; border-style:none; } .ms-ToolPaneBorder { border-right:1px solid #add1ff; border-top:0px solid transparent; border-bottom:0px solid transparent; border-left:1px solid #add1ff; } .ms-ToolPaneClose { background-image:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; background-color:#79a7e3; border-top:solid 1px #e3efff; border-bottom:solid 1px #83b0ec; padding-right:3px; padding-left:0px; } .ms-ToolPaneTitle { color:#000000; font-weight:bold; font-size:8pt; background-image:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; border-left:solid 1px #e3efff; border-top:solid 1px #e3efff; border-bottom:solid 1px #83b0ec; font-family:verdana,arial,helvetica,sans-serif; padding-left:0px; padding-right:7px; padding-top:1px; padding-bottom:2px; background-color:#79a7e3; } .ms-ToolPaneFooter { padding:5px; font-size:8pt; border-top:solid 1px #C8C8C8; color:#595959; font-weight:bold; font-family:verdana,arial,helvetica,sans-serif; } .ms-ToolPaneError { color:#e00000; font-family:verdana,arial,helvetica,sans-serif; font-size:8pt; padding:10px; } .ms-ToolPaneInfo{ font-size:8pt; padding-right:5px; padding-top:5px; padding-bottom:0px; padding-left:5px; color:#FFFFFF; font-family:verdana,arial,helvetica,sans-serif; background-color:#204d89; } .ms-ToolPartSpacing{ padding-top:8px; } .ms-ToolStripSelected { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; background-image:url("/_layouts/images/menubuttonhover.gif"); padding:1px 4px 2px 4px; background-color:#afd2ff; border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; color:#000000; } .ms-ToolStrip { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; background-image:url("/_layouts/images/listheadergrad.gif"); color:#000000; border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; background-color:#afd2ff; } .ms-TPBorder { border:none; } .ms-TPHeader { background-color:#ffdf88; } .ms-TPTitle { padding-left:4px; padding-right:0px; color:#2A4666; font-weight:bold; font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; padding-top:2px; padding-bottom:2px; } .ms-TPBody { color:#000000; font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-TPBody A:link,.ms-TPBody A:visited,.ms-TPBody A:hover { color:#003399; text-decoration:none; cursor:pointer; } .ms-TPCommands{ } .ms-TPInput{ font-size:8pt; color:#000000; font-family:verdana,arial,helvetica,sans-serif; } .ms-PropGridBuilderButton { border:solid 1px #3966bf; width:16px; font-size:8pt; display:none; background-color:#add1ff; } .ms-BuilderBackground { background:#ece9d8; color:#4c4c4c; } .ms-SPZone { border:1px solid #add1ff; padding:5px; background-color:#e3efff; } .ms-SPZoneSelected { border:1px solid #ffa521; background-color:#ffeebe; padding:5px } .ms-SPZoneIBar { border:#f48b3f 3px solid; } .ms-SPZoneLabel { color:#7f7f7f; font-family:tahoma,verdana; font-size:8pt; padding:0px 0px 1px 0px; } .ms-SPZoneCaption{ font-size:9pt; color:#7f7f7f; font-family:tahoma,verdana; } .ms-WPDesign{ background-color:#add1ff; } .ms-WPMenu{ background-color:#add1ff; } .ms-WPTitle { font-weight:bold; font-family:tahoma,sans-serif; color:#4c4c4c; padding-left:3px; padding-right:7px; padding-top:2px; padding-bottom:2px; font-size:10pt; } .ms-WPTitle A:link,.ms-WPTitle A:visited { color:#4c4c4c; text-decoration:none; cursor:pointer; } .ms-WPTitle A:hover { color:#000000; text-decoration:underline; cursor:pointer; } .ms-WPSelected { border:#ffbb77 3px dashed; } .ms-WPBody { font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-WPBody TABLE,.ms-TPBody TABLE { font-size:1em; } .ms-WPBody A:link,.ms-WPBody A:visited { color:#003399; text-decoration:none; } .ms-WPBody A:hover { color:#000000; text-decoration:underline; } .ms-WPBody th,.ms-TPBody th { font-weight:bold; } .ms-WPBody td { font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-WPBody h1,.ms-TPBody h1 { font-weight:bold; font-size:200 %; } .ms-WPBody h2,.ms-TPBody h2 { font-weight:bold; font-size:150 %; } .ms-WPBody h3,.ms-TPBody h3 { font-weight:bold; font-size:120 %; } .ms-WPBody h4,.ms-TPBody h4 { font-weight:bold; font-size:100%; } .ms-WPBody h5,.ms-TPBody h5 { font-weight:bold; font-size:80% } .ms-WPBody h6,.ms-TPBody h6 { font-weight:bold; font-size:65%; } .ms-WPBorder,.ms-WPBorderBorderOnly { border-color:#9ac6ff; border-width:1px; border-style:solid; } .ms-WPBorder { border-top-width:0px; } .ms-HoverCellInActive,.ms-SpLinkButtonInActive { border:none; margin:1px; color:#4c4c4c; vertical-align:top; background-color:transparent; } .ms-HoverCellActive,.ms-SpLinkButtonActive { border:#6f9dd9 1px solid; vertical-align:top; background-color:#ffbb47; background-image:url("/_layouts/images/menubuttonhover.gif"); } .ms-HoverCellActiveDark { background-image:url("/_layouts/images/menubuttonhover.gif"); border:solid 1px #868686; background-color:#ffbb47; vertical-align:top; } .ms-SpLinkButtonInActive,.ms-SpLinkButtonActive { padding:1px 1px 1px 3px; } .ms-SpLinkButtonActive a,.ms-SpLinkButtonActive a:hover{ color:#000000; text-decoration:none; } .ms-SPLink { font-family:verdana; font-size:8pt; color:#003399 } .ms-SPLink A:link,.ms-SPLink A:visited { color:#2A4666; text-decoration:none; } .ms-SPButton { font-family:Tahoma; font-size:8pt; } .ms-WPAddButton { height:25px; background:#ffe6a0 url("/_layouts/images/wpqaM.gif") repeat-x; border:solid 1px #FEBA52; padding:0px; margin:0px; cursor:pointer; } .ms-WPAddButtonHover { background:#ffffff url("/_layouts/images/wpqaMH.gif") repeat-x; } .ms-WPAddButton td { vertical-align:middle; padding-left:3px; padding-right:3px; text-align:center; } .ms-WPAddButton span { color:#CD5C01; vertical-align:middle; } .ms-WPAddButtonHover span { color:#000000; vertical-align:middle; } .ms-PartSpacingVertical { font-size:1pt; margin-top:12px; } .ms-PartSpacingHorizontal { font-size:1pt; width:8px; } .ms-WPHeader { } .ms-WPHeader TD{ border-bottom:1px solid #4e7cb7; border-collapse:collapse; } A span.ms-WPEditText{ display:inline; vertical-align:middle; padding-left:1px; padding-right:1px; font-size:8pt; font-family:verdana,arial,sans-serif; color:#000000; text-decoration:none; } .ms-SPzone .ms-WPHeader TD,.ms-SPZoneSelected .ms-WPHeader TD{ border:1px solid #c4c4c4; background-color:#fff9de; background-image:url("/_layouts/images/partgrad.gif"); background-repeat:repeat-x; } .ms-SPZone td.ms-toolbar table,.ms-SPZoneSelected td.ms-toolbar table{ background-color:transparent; } .ms-SPZone tr.ms-viewheadertr table,.ms-SPZoneSelected tr.ms-viewheadertr table,.ms-SPZone .ms-vh2 table,.ms-SPZoneSelected .ms-vh2 table,.ms-SPZone .ms-vh table,.ms-SPZoneSelected .ms-vh table{ background-color:#f2f2f2; } .ms-SPZone .ms-vh table.ms-unselectedTitle,.ms-SPZone .ms-vh2 table.ms-unselectedTitle,.ms-SPZoneSelected .ms-vh table.ms-unselectedTitle,.ms-SPZoneSelected .ms-vh2 table.ms-unselectedTitle { background-color:transparent; } .ms-SPZone .ms-vh table.ms-selectedTitle,.ms-SPZone .ms-vh table.ms-selectedTitle td,.ms-SPZone .ms-vh2 table.ms-selectedTitle,.ms-SPZoneSelected .ms-vh table.ms-selectedTitle,.ms-SPZoneSelected .ms-vh table.ms-selectedTitle td,.ms-SPZoneSelected .ms-vh2 table.ms-selectedTitle { background-color:#dde1e5; } .ms-SPZone table,.ms-SPZoneSelected table{ background-color:#ffffff; } .ms-rtApplyBackground { background-color:#ffdf88; BORDER-BOTTOM:buttonshadow solid 1px; BORDER-RIGHT:buttonshadow solid 1px; } .ms-tbButtonMouseOverDown { BACKGROUND-COLOR:#ffdf88; BORDER-BOTTOM:buttonhighlight solid 1px; BORDER-LEFT:buttonshadow solid 1px; BORDER-RIGHT:buttonhighlight solid 1px; BORDER-TOP:buttonshadow solid 1px; TOP:1px; HEIGHT:22px; WIDTH:23px; } .ms-rtRemoveBackground { background-color:transparent; BORDER-BOTTOM:#ffdf88 solid 1px; BORDER-LEFT:#ffdf88 solid 1px; BORDER-RIGHT:#ffdf88 solid 1px; BORDER-TOP:#ffdf88 solid 1px; } .ms-subsmanageheader { background-color:#f2f2f2; font-family:verdana; font-size:8pt; text-align:left; text-decoration:none; font-weight:bold; vertical-align:top; } .ms-subsmanagecell { color:#000000; font-family:verdana; font-size:.68em; height:18px; vertical-align:top; } .ms-ConnError { color:#ff0000; } .ms-underline { vertical-align:top; border-bottom:1px solid #bfbfbf; padding:3px 4px 4px 4px; } .ms-underlineback { vertical-align:top; border-bottom:1px solid #bfbfbf; padding:3px 4px 4px 4px; background-color:#f2f2f2; } .ms-back { vertical-align:top; padding:2px 4px 4px 4px; background-color:#f2f2f2; } .ms-smallheader,th.ms-smallheader { font-size:8pt; font-weight:bold; color:#000000; font-family:verdana; text-align:left; } .ms-smallsectionline { padding:0px; background-color:#bfbfbf; } .ms-tabselected { border-color:#6F9DD9; border-width:1px; border-style:solid; font-weight:bold; position:relative; top:0px; padding-top:3px; padding-bottom:3px; padding-left:10px; padding-right:10px; color:#003399; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; border-bottom:white; } .ms-tabinactive { font-weight:bold; position:relative; top:0px; padding-top:3px; padding-bottom:3px; padding-left:10px; padding-right:10px; color:#003399; background-image:url("/_layouts/images/topnavunselected.gif"); background-color:#e3efff; background-repeat:repeat-x; border:solid 1px #c2dcff; border-bottom:none; } .ms-tabinactive a:link { color:#003399; text-decoration:none; } .ms-tabinactive a:hover { color:#003399; text-decoration:none; } .ms-tabinactive a:visited { color:#003399; text-decoration:none; } .ms-surveyHBar { font-size:2px; background-color:#3966bf; border:solid; border-width:5px; border-color:#3966bf; } .ms-surveyHBarB { font-size:2px; background-color:#CCCCCC; border:solid; border-width:1px; border-color:#CCCCCC; } .ms-surveyHBarLabel { font-size:8pt; font-family:tahoma,sans-serif; color:#7f7f7f; text-decoration:none; ;height:3.75pt; margin:0; padding:0; border:none; background-color:white; } .ms-surveyVBar { font-size:2px; background-color:#3966bf; } .ms-surveyVBarB { font-size:2px; background-color:#CCCCCC; vertical-align:bottom; } .ms-surveyVBarBI { font-size:2px; background-color:#3966bf; vertical-align:top; } .ms-surveyVBarS { font-size:2px; } .ms-surveyVBarT { font-size:8pt; font-family:verdana; color:#7f7f7f; } .ms-surveyVBarTC { font-size:8pt; font-family:verdana; text-align:center; color:#7f7f7f; } .ms-surveyHR { color:#CCCCCC; height:1px; } .ms-surveyTotal { font-size:8pt; font-family:verdana; color:#7f7f7f; padding-left:10px; padding-right:0px; } .ms-uploadborder{ border:1px solid #83b0ec; } .ms-uploadcontrol{ background-color:#f2f2f2; } .ms-spaceBetContentAndButton { height:10px; } .ms-ButtonHeightWidth { width:10.5em; font:8pt tahoma; height:2.1em; padding-top:0.1em; padding-bottom:0.4em; } .ms-NarrowButtonHeightWidth { width:5em; height:2em; font:8pt tahoma; padding:0; } .ms-ButtonHeightWidth2 { height:2.1em; font:8pt tahoma; width:18.1em; padding-top:0.1em; padding-bottom:0.4em; } .ms-SpaceBetButtons { width:6px; } .ms-summarycustombody{ margin-left:3px; margin-top:5px; margin-right:6px; } .ms-summarystandardbody{ margin-left:0px; margin-top:0px; margin-right:6px; } .ms-stylebox{ font-family:verdana; border:1px solid #CCCCCC; text-align:left } .ms-stylelabel{ font-family:verdana; font-size:8pt; color:#4c4c4c; } .ms-styleheader{ font-family:verdana; font-size:.68em; background-color:#f9f9f9; } .ms-styleheader a:link,.ms-stylebody a:link{ color:#003399; text-decoration:none; } .ms-styleheader a:visited,.ms-stylebody a:visited{ text-decoration:none } .ms-stylebody{ font-family:verdana; font-size:8pt; } .ms-styleheader a:hover,.ms-stylebody a:hover{ color:#000000; text-decoration:underline; } .ms-alternating{ background-color:#f9f9f9; } .ms-alternatingstrong{ background-color:#e3efff; } .ms-alternatingstrong td,.ms-basictable .ms-alternating td{ border-bottom:1px solid #d8d8d8; border-top:1px solid #d8d8d8; } .ms-alternatingstrong td td,.ms-basictable .ms-alternating td td{ border:0px; } .ms-MWSSelectedInstance{ color:#000000; text-decoration:none; } .ms-MWSInstantiated a:link,.ms-MWSInstantiated a:visited{ color:#003399; text-decoration:none; } .ms-MWSInstantiated a:hover{ color:#8ebbf5; text-decoration:underline; } .ms-MWSUninstantiated a:link,.ms-MWSUninstantiated a:visited{ color:#003399; text-decoration:none; } .ms-MWSUninstantiated a:hover{ color:#003399; text-decoration:underline; } .ms-entity-resolved{ color:#000000; text-decoration:underline; } .ms-entity-unresolved{ color:#000000; cursor:pointer; background-image:url("/_layouts/images/squiggle.gif"); background-repeat:repeat; background-position:left bottom; padding-bottom:2px; vertical-align:text-top; font-style:italic; } .ms-ganttTitleCell { text-align:left; padding-left:7px; width:222px; height:22px; border:solid 1px #d6e8ff; } .ms-ganttTitleCellText { width:222px; height:22px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:22px; } .ms-ganttTitleHeaderCell { text-align:left; padding-left:7px; width:222px; border:solid 1px #d6e8ff; } .ms-ganttInnerTable td,.ms-ganttInnerTable th { font-family:verdana; font-size:.68em; } .ms-ganttDiv { position:absolute; overflow:auto; height:272px; width:100%; } .ms-ganttDivNotIE { position:inherit; overflow:auto; height:272px; width:100%; } .ms-ganttOuterTable { width:100%; height:272px; } .ms-ganttInnerTable th { color:#4e7cb7; } .ms-ganttMajorTimeUnitHeaderCell { text-align:center; border-left:solid 1px #d6e8ff; border-right:solid 1px #d6e8ff; background-color:#f9f9f9; } .ms-ganttDetailTimeUnitRow td,.ms-ganttDetailTimeUnitRow th { text-align:center; border:solid 1px #d6e8ff; background-color:#f9f9f9; } .ms-ganttDetailTimeUnitRow abbr { border:none; } .ms-GWD { } .ms-GNWD { background:#f9f9f9; } .ms-GT { background:cornsilk; } .ms-ganttTransparentImage { position:absolute; width:100%; height:20px; z-index:2; } .ms-ganttNonTransparentImage { position:relative; z-index:1; } .ms-dgselected { background:#5980A5; color:#FFFFFF; vertical-align:middle; font-weight:bold; } .ms-dgselected a { color:#FFFFFF; font-weight:bold; } .ms-dgselected a:visited { color:#FFFFFF; font-weight:bold; } .ms-dgbottom { border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; } .ms-dgadd a { font-weight:bold; } .ms-dgadd { vertical-align:middle; border-top:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-bottom:1px solid #C0C6E0; } .ms-infobar{ font-family:Tahoma; background-color:#EDF0D9; border-color:#999999; border-width:1px; border-style:solid; font-size:10px; } .ms-selwidth { font-family:tahoma,verdana; font-size:1.2em; width:158px; } .ms-featurestatus { width:100px; vertical-align:middle; } .ms-featurestatustext { padding:4px; background-color:#003399; color:white; font-weight:bold; } .ms-featurealtrow { background-color:#e9e9e9; } .ms-unpublishedresource{ border-style:dashed; border-width:thick; border-color:#ff0000; margin:5px 5px 5px 5px; } .ms-inconsistentresource{ border-style:dashed; border-width:thick; border-color:#00FF00; margin:5px 5px 5px 5px; } .ms-annotatedanchorspacing{ top:3px; left:3px; width:3px; height:3px; } .ms-consolemptablerow{ background-color:#79a7e3; } .ms-consolestatus,.ms-consoleerror,.ms-consolemessage,.ms-consoletoolbar{ font-size:8pt; font-family:Tahoma,verdana; } .ms-consoleframe,.ms-consolestatusframe{ border-bottom-width:1px; border-left-width:0px; border-right-width:0px; border-style:solid; } .ms-consolestatuscell{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-position:top left; background-color:#d5dced; text-align:center; } .ms-consoleframe{ border-top-width:1px; border-color:#83b0ec; } .ms-consolestatusframe{ border-top-width:0px; background-color:#f6fdfd; background-repeat:repeat-x; border-color:#FFFFFF; } td.ms-consolestatusmajorframe,td.ms-consolestatusminorframe,td.ms-consolestatuscheckoutframe{ background-repeat:repeat-x; } .ms-consolestatusmajorframe{ background-color:#fff699; background:url('/_layouts/images/cnspgrdn.gif'); } .ms-consolestatusminorframe{ background-color:#e3efff; background:url('/_layouts/images/cnsugrdn.gif'); } .ms-consolestatuscheckoutframe,.ms-consoleminiframe{ background-color:#fff8b2; background:url('/_layouts/images/cnsugrdn.gif'); } .ms-consoleminiframe{ height:24px; background-repeat:repeat-x; } .ms-consolestatusshadowframe{ background-repeat:repeat-x; background:url('/_layouts/images/cnsshdo.gif'); height:4px; } .ms-consolestatusshadowframeleft{ background:url('/_layouts/images/cnsshdol.gif'); height:4px; width:3px; } .ms-consolestatusshadowframeright{ background:url('/_layouts/images/cnsshdor.gif'); height:4px; width:3px; } .ms-consolemode{ background-color:#fff699; color:#000000; font-size:8pt; font-family:verdana; } .ms-consolestatus{ color:#666666; font-size:8pt; font-family:verdana; padding-top:3px; padding-bottom:3px; text-decoration:none; } .ms-consolestatus a{ font-family:Verdana,serif; font-size:8pt; color:#3966bf; text-decoration:none; } .ms-consolestatus a:hover{ font-family:Verdana,serif; font-size:8pt; color:#3966bf; text-decoration:underline; } .ms-consolehr{ background-color:#CDCDCD; height:1px; } .ms-consoleerror{ color:#ff0000; text-decoration:none; } .ms-consoleerror a{ color:#3966bf; text-decoration:none; } .ms-consoleerror a:hover{ color:#3966bf; text-decoration:underline; } .ms-consolemessage{ color:#204d89; text-decoration:none; } .ms-consolemessage a{ text-decoration:none; } .ms-consolemessage a:hover{ text-decoration:underline; } .ms-consoletoolbar{ text-decoration:none; color:#003399; } .ms-consoletoolbar a{ text-decoration:none; } .ms-consoleqaback td{ padding-left:3px; padding-right:6px; background-image:url("/_layouts/images/qarsgrd.gif"); } .ms-consoleqabackhover td{ background-image:url("/_layouts/images/qahvgrd.gif"); padding-left:3px; padding-right:6px; } .ms-consoleqaemptyborderh{ height:1px; } .ms-consoleqaemptyborderv{ width:1px; } .ms-consoleqaemptycorner{ width:1px; height:1px; } .ms-consoleqaborderh,.ms-consoleqaborderv,.ms-consoleqacorner{ background-color:#CAD7E7; } .ms-consoleqaborderhhover,.ms-consoleqabordervhover,.ms-consoleqacornerhover{ background-color:#D2B47A; } .ms-consoleqaborderh{ height:1px; } .ms-consoleqaborderv{ width:1px; } .ms-consoleqacorner{ width:1px; height:1px; } .ms-consoleqaborderhhover{ height:1px; } .ms-consoleqabordervhover{ width:1px; } .ms-consoleqacornerhover{ width:1px; height:1px; } .ms-webpartpickerpagebackground{ background-color:#efebc2; } .ms-webpartpickerpageinnerbackground{ background-color:#f2f2f2; } .ms-webpartpickerpagetext{ color:#656B77; text-align:left; } .ms-webpartpickerpagetext a{ color:#3966bf; text-align:left; } .ms-webpartpickerpageHeaderBorder a{ color:#3966bf; } .ms-webpartpickeralign{ padding-left:3px; padding-right:7px; padding-top:2px; padding-bottom:2px; } .ms-webpartpickerwarning{ color:#ff0000; } .ms-viewtotalselect{ width:104px; } .hierarchy-node-partialcheck{ font-style:italic; } .ms-wikitoolbar a.ms-toolbar{ color:#124890; } .ms-wikieditouter { height:23px; font-size:8pt; font-family:tahoma; position:absolute; right:9px; top:30px; border:1px solid #6393D4; border-bottom:none; text-align:center; border-right-width:2px; } .ms-wikieditsecond { } .ms-wikieditthird { background:url(/_layouts/images/toolgrad.gif); padding-left:3px; } .ms-wikieditorange { } .ms-wikieditorangeinnera { height:0px; font-size:0px; line-height:0px; } .ms-wikitoolbar a:hover.ms-toolbar { text-decoration:underline; color:#000000; } .ms-wikicontent a{ text-decoration:underline; } .ms-wikicontent a.ms-wikilink { text-decoration:none; } .ms-wikicontent a.ms-missinglink { text-decoration:none; border-bottom:1px dashed #000000; } .ms-wikicontent { color:#333333; line-height:1.3; } .ms-recentchanges { vertical-align:top; padding:7px 1px 9px 4px; } .errorinl { FONT-SIZE:8pt; COLOR:#ff0000; FONT-FAMILY:verdana,sans-serif; } .ms-diffdeletenostrike,.ms-diffdelete { background-color:#e0e0e0; } .ms-diffdelete { text-decoration:line-through; } .ms-diffinsert { background-color:#ffeaad; border:1px solid #ffffff; } .ms-wikifieldheader{ font-family:tahoma; font-size:8pt; margin-top:15px; margin-bottom:10px; font-weight:bold; color:#515151; border-bottom:1px solid #C3C3C3; padding:2px; } ul.ms-blogAdminLinks { list-style:none; margin:4px 10px 0 0; padding:0 0 0 4px; } ul.ms-blogAdminLinks li { background:transparent url(/_layouts/images/rect.gif); background-position:center left; background-repeat:no-repeat; margin:0 0 0 0; padding:0 0 3px 15px; } ul.ms-blogAdminLinks li a{ color:#003399; } .ms-PostWrapper,.ms-CommentsWrapper,.ms-blogrss { color:#4c4c4c; width:588px; } .ms-blogrssnav{ color:#4c4c4c; padding-bottom:5px; padding-top:5px; padding-left:5px; border-top:solid 1px #add1ff; } .ms-blogrssnav a{ color:#003399; text-decoration:none; font-weight:bold; font-size:8pt; } .ms-blogrssnav img{ border:none; } .ms-PostTitle{ font-size:16pt; border-top:solid 1px #e3efff; padding-top:6px; } .ms-PostTitle span{ position:relative; left:-2px; right:auto; } .ms-PostTitle a { color:#4c4c4c; text-decoration:none; } .ms-PostFooter,.ms-CommentFooter{ font-size:8pt; color:#999999; padding-bottom:22px; } .ms-PostFooter a,.ms-CommentFooter a{ color:#6c90d8; white-space:nowrap; } .ms-PostBody { color:#4c4c4c; font-size:8pt; line-height:1.7em; padding-top:6px; padding-bottom:12px; } .ms-PostBody a{ color:#0000CC; } .ms-PostBody p{ margin:0 0 1em 0; } h3.ms-PostDate { font-size:8pt; color:#7f7f7f; margin:0; border-bottom:solid 1px #6f9dd9; padding-bottom:5px; } h3.ms-CommentHeader { font-size:16pt; font-weight:normal; color:#999999; margin:0 0 0 0; padding:0 0 0 0; position:relative; top:-.25em; left:-2px; right:auto; } h4.ms-CommentTitle { color:#666666; font-size:8pt; line-height:1.7em; padding:0px 0 0 0; margin:0px; } .ms-CommentBody{ color:#4c4c4c; font-size:8pt; line-height:1.7em; padding-bottom:12px; padding-top:6px; } .ms-commentsempty{ color:#4c4c4c; font-size:8pt; padding-bottom:22px; padding-top:6px; } .ms-blogedit{ font-size:8pt; line-height:1.7em; vertical-align:top; border-top:solid 1px #e3efff; } .ms-blogedit a{ height:22px; padding:0px 5px 0 5px; color:#003399; background-image:url("/_layouts/images/toolgrad.gif"); background-color:#d6e8ff; border:1px solid #83b0ec; border-top:none; } .ms-blogrss { font-size:8pt; border-top:solid 1px #e3efff; padding-top:5px; } .ms-blogrss a{ color:#003399; } .ms-blogrss img { vertical-align:middle; border:none; } .ms-commenttable{ margin:15px 0 0 0; padding:0px; } .ms-commenttable td{ border-top:solid 1px #d6e8ff; } .ms-CommentFooter a { padding-top:4px; margin:0; } .ms-pickerwait { width:100%; height:100%; margin:0px; background-color:#FFFFFF; font-family:verdana; font-size:8pt; color:#000000; } .ms-pickerdropdown { margin-left:5px; } .ms-CategoryTitleCell { padding:0px 0px 0px 0px; } .ms-CategoryTitleCell a { display:block; background:transparent url("/_layouts/images/navbullet.gif"); background-position:left top; background-repeat:no-repeat; margin:0px; padding:3px 0px 3px 16px; } .ms-BlogEmptyListText { padding:2px 2px 2px 10px; } .ms-BlogNavigator p.ms-descriptiontext { display:none; } .ms-BlogNavigator div.ms-navheader{ background-color:#d6e8ff; border-top:solid 1px #f2f8ff; border-left:solid 1px #f2f8ff; border-bottom:1px solid #add1ff; padding:1px 6px 3px 6px; } .ms-BlogNavigator div.ms-navheader a{ color:#003399; } .ms-BlogNavigator div.ms-navheader{ color:#4c4c4c; font-weight:bold; } .ms-BlogNavigator .ms-quicklaunch table td{ border-top:none; } .ms-BlogNavigator div.ms-WPBody{ border-top:solid 1px #add1ff; } .ms-BlogNavigator div.ms-PartSpacingVertical { font-size:1pt; margin-top:0px; } .ms-BlogNavigator td.ms-addnew{ padding-left:6px; } .ms-BlogNavigator td.ms-addnew img{ margin-right:2px; } .ms-BlogEmptyListText{ padding:4px 4px 2px 6px; color:#4c4c4c; } .ms-pickertitlesection { background:#ffffff url("/_layouts/images/siteTitleBKGD.gif") repeat-y top right; } .ms-pickertitlesection .ms-descriptiontext { padding:8px 3px 8px 3px; } .ms-pickeremptyresulttexttr .ms-descriptiontext{ padding-left:5px; padding-top:6px; } .ms-pickerbodysection { background:#ece9d8 url("/_layouts/images/viewheadergrad.gif") repeat-x; border-top:solid 1px #a5a5a5; } .ms-pickerresultoutertable { table-layout:fixed; } .ms-pickerresulttable { border-collapse:separate; } .ms-pickerresultdiv { background-color:#ffffff; border-top-width:1px; border-bottom-width:1px; border-left-width:1px; border-right-width:1px; border-style:inset; OVERFLOW:scroll; width:100%; height:100%; } .ms-pickerbuttonsection { background-color:#ece9d8; } .ms-pickersectionline { background-color:#d0d0bf; } .ms-pickersearchbox { height:19px; color:#000000; } .ms-pickersearchsummarytr td.ms-descriptiontext { padding-left:6px; padding-top:5px; color:#525252; font-weight:bold; } .ms-pickerwaittexttr td.ms-descriptiontext { text-align:center; } .ms-ph { padding-left:5px; padding-right:5px; background-image:none; background-color:#f3f3f3; color:#949494; white-space:nowrap; } .ms-naveditor .ms-vb2,.ms-naveditor .ms-gb{ padding:3px 3px 0 3px; height:22px; } .ms-naveditor .ms-gb{ border-top:0; } .ms-naveditor .ms-gb img{ margin-top:1em; } @media print{ .ms-leftareacell,.ms-globallinks,.ms-siteaction,.ms-areaseparatorleft,.ms-rightareacell,.ms-areaseparatorright, .ms-areaseparatorcorner,.ms-titlearealeft,.ms-titlearearight,.ms-searchform,.ms-banner,.ms-buttonheightwidth,.ms-buttonheightwidth2{ display:none; } } .ms-hidden,a.ms-skip,a:hover.ms-skip,a:visited.ms-skip { position:absolute; left:0px; top:-500px; width:1px; height:1px; overflow:hidden; } a:active.ms-skip,a:focus.ms-skip { position:absolute; left:2px; top:2px; width:auto; height:auto; background-color:white; border-color:black; border-width:1px; border-style:Solid; color:black; padding-top:2px; padding-bottom:2px; padding-left:4px; padding-right:4px; } .ms-dialogBody { background-color:#ece9d8; } .ms-dialogHeader { background-color:#ffffff; background-position:right top; background-image:url('/_layouts/images/dialogTitleBKGD.jpg'); background-repeat:repeat-y; } .ms-dialogHeaderDescription { font-family:Tahoma; font-size:8pt; color:#666666; padding-right:20px; } .ms-dialogHelpLink,.ms-dialogHelpLink a { font-family:Tahoma; font-size:8pt; color:#666666; text-decoration:none; } .ms-dialogHeadingDivider1 { background-color:#ffffff; } .ms-dialogHeadingDivider2 { background-color:#9e9fa1; } .ms-dialogHeadingDivider3 { background-color:#d6d2bf; } .ms-dialogBodyMain { background-color:#ffffff; border:1px solid #7f9db9; font-family:Tahoma; font-size:8pt; color:#666666; } .ms-dialogButtonSection { border-top:1px solid #d0d0bf; } .ms-dialogButtonCell,.ms-dialogButtonCell INPUT { font-family:Tahoma; font-size:8pt; } .ms-dialogHoverRow { background-color:#f2f4e3; } .ms-dialogSelectedRow { background-color:#e6e6e6; } .ms-aggrwebpartcell { padding-right:5px; padding-left:5px; } a.ms-acclink { width:auto; height:1.1em; background-color:white; border-color:black; border-width:1px; border-style:solid; padding-top:2px; padding-bottom:2px; padding-left:4px; padding-right:4px; color:black; } a.ms-imnlink { cursor:default; } /* _lcid="1033" _version="12.0.6500" _LocalBinding */ .ms-SrvMenuUI { display:none; } .ms-MenuUIPopupBody { border:1px solid #868686; margin:0px; padding:0px; } .ms-MenuUIPopupBody TABLE { color:#003399; font-size:100%; margin:0px; padding:0px; } .ms-MenuUIPopupBody div { cursor:pointer; } .ms-MenuUI,.ms-MenuUILarge,.ms-MenuUIRtL,.ms-MenuUILargeRtL { background-color:#fafafa; background-repeat:repeat-y; cursor:pointer; } .ms-MenuUI,.ms-MenuUILarge { background-position:left; } .ms-MenuUIRtL,.ms-MenuUILargeRtL { background-position:right; } .ms-MenuUI { background-image:url("/_layouts/images/MGrad.gif"); } .ms-MenuUILarge { background-image:url("/_layouts/images/MGradLarge.gif"); width:250px; } .ms-MenuUIRtL { background-image:url("/_layouts/images/MGradRtl.gif"); } .ms-MenuUILargeRtL { background-image:url("/_layouts/images/MGradLargeRtl.gif"); width:250px; } .ms-MenuUIDisabled SPAN { color:#888888; } .ms-MenuUIItemTableCell,.ms-MenuUIItemTableCellCompact { padding:2px; color:#003399; text-decoration:none; font-size:8pt; font-family:tahoma; } .ms-MenuUIItemTableCellCompact { padding:1px 2px 1px 2px; } .ms-MenuUIItemTableCell A,.ms-MenuUIItemTableCellHover A,.ms-MenuUIItemTableCellCompact A,.ms-MenuUIItemTableCellCompactHover A { color:#003399; text-decoration:none; } .ms-menuitemdescription { color:#666666; } .ms-MenuUIItemTableCellHover,.ms-MenuUIItemTableCellCompactHover { padding:1px; color:#003399; text-decoration:none; font-size:8pt; font-family:tahoma; } .ms-MenuUIItemTableCellCompactHover { padding:0px 1px 0px 1px; } .ms-MenuUIItemTableHover { background-color:#ffe6a0; border:1px solid #d2b47a; } .ms-MenuUIItemTableHover .ms-menuitemdescription { color:#333333; } .ms-MenuUIIcon,.ms-MenuUIIconRtL { height:16px; width:24px; } .ms-MenuUIIconLarge,.ms-MenuUIIconLargeRtl { height:16px; width:40px; } .ms-MenuUIIcon,.ms-MenuUIIconLarge { padding: 0px 6px 0px 2px; } .ms-MenuUIIconRtL,.ms-MenuUIIconLargeRtl { padding: 0px 2px 0px 6px; } .ms-MenuUILabel,.ms-MenuUILabelRtL,.ms-menuuilabelcompact,.ms-menuuilabelcompactRtl { width:100%; } .ms-MenuUILabel { padding: 2px 0px 3px 6px; } .ms-MenuUILabelRtL { padding: 2px 6px 3px 0px; } .ms-menuuilabelcompact{ padding:1px 0px 1px 7px; } .ms-menuuilabelcompactRtl{ padding:1px 7px 1px 0px; } .ms-MenuUISubmenuArrow { height:16px; width:16px; } .ms-MenuUISeparator,.ms-MenuUISeparatorRtL,.ms-MenuUISeparatorLarge,.ms-MenuUISeparatorLargeRtl { background-color:#c5c5c5; font-size:1px; height:1px; line-height:1px; } .ms-MenuUISeparator { margin: 0px 0px 0px 32px; } .ms-MenuUISeparatorRtL { margin: 0px 32px 0px 0px; } .ms-MenuUISeparatorLarge { margin:0px 0px 0px 48px; } .ms-MenuUISeparatorLargeRtl { margin:0px 48px 0px 0px; } .ms-MenuUICheckMark { background-image:url("/_layouts/images/ChkMrk.gif"); } .ms-MenuUIItemTableCellDisabled { color:#999999; } .ms-sbtable{ color:#000000; font-family:Verdana; font-size:0.7em; font-style:normal;font-weight:normal } .ms-sbtablealt{ color:#000000; font-family:Verdana; font-size:0.7em; font-style:normal;font-weight:normal } .ms-sbtable-ex{ width:100%; border-collapse:collapse; margin-top:2px; margin-left:2px; } .ms-sbtable-border{ border:1px solid #97b4e9; } td.ms-sbcell{ padding:0px; padding-left:2px; white-space:nowrap; border:solid 1px #7f9db9; } td.ms-sbcellnoborder{ padding-right:2px; white-space:nowrap; border:0; } .ms-sbtext{ font-family:Tahoma; font-size:1em; font-weight:bold; } .ms-sbplain{ font-family:Tahoma; font-size:8pt; border:none; } .ms-sbplainwithborder{ font-family:Tahoma; font-size:8pt; } td.ms-sblink{ padding-right:14px; border:none; } .ms-sblink a:link,.ms-sblink a:visited{ font-family:Tahoma; font-size:8pt; color:#666666; text-decoration:none; padding-left:4px; } .ms-sblink a:hover{ color:#000000; text-decoration:underline; } td.ms-sbgo{ background-color:#e9f2fd; padding-left:3px; padding-right:3px; padding-bottom:1px; padding-top:1px; } .ms-sbLastcell,.ms-rightbodysectionsearchbox{ width:100%; } .ms-sbLastCell{ padding-right:10px; } td.ms-sbscopes{ border:none !important; } select.ms-sbscopes{ font-family:tahoma,verdana; font-size:8pt; width:170px; } .srch-WPBody{ margin:0px; font-family:tahoma; font-size:1em; color:#666666; } .srch-results{ } .srch-sort{ COLOR:#333333; FONT-SIZE:1.0em; } .srch-sort A:link,.srch-sort A:visited{ text-decoration:none; color:#003399; } .srch-sort a:hover{ color:#FF0000; } .srch-sort-right{ float:right; COLOR:#333333; FONT-SIZE:1.0em; padding-bottom:4px; } .srch-sort-right A:link,.srch-sort-right A:visited{ text-decoration:none; color:#003399; } .srch-sort-right a:hover{ color:#FF0000; } .srch-summary{ COLOR:#333333; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; } .srch-summary A:link,.srch-summary A:visited{ text-decoration:none; color:#003399; } .srch-summary a:hover{ color:#FF0000; } .srch-stats{ COLOR:#333333; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; background-color:#ececec; text-align:left; white-space:nowrap; } .srch-stats A:link{ text-decoration:none; color:#003399; } .srch-stats a:hover{ color:#FF0000; } .srch-Description{ FONT-SIZE:1.0em; MARGIN:0px 0px 4px;COLOR:#333333; FONT-FAMILY:Tahoma; } .srch-Description b{ font-weight:bold; COLOR:#333333; } .srch-alertme a:link,.srch-alertme A:visited{ MARGIN:0px 0px 0px; } .srch-alertme a:hover{ MARGIN:0px 0px 0px; } .srch-Title{ FONT-SIZE:1.2em; MARGIN:0px 0px 5px; COLOR:#003399; FONT-FAMILY:Tahoma; } .srch-Title A:link,.srch-Title A:visited{ text-decoration:none; color:#003399; } .srch-Title a:hover{ color:#FF0000; text-decoration:underline; } .srch-URL A:link,.srch-URL A:visited{ color:#008800 !important; text-decoration:none; } .srch-URL a:hover{ color:#FF0000; text-decoration:underline; } .srch-Metadata{ BORDER-TOP:#e0ded5 1px solid; FONT-SIZE:1.0em; MARGIN:0px 0px 15px;COLOR:#8c8c8c; FONT-FAMILY:Tahoma; } .srch-dup .srch-Page-bg{ } .srch-Page{ COLOR:#666666; FONT-WEIGHT:bold; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; background-color:#ececec; text-align:right; } .srch-Page A:link,.srch-Page A:visited{ text-decoration:none; color:#3764a0; FONT-WEIGHT:normal; } .srch-Page a:hover{ color:#FF0000; } .srch-dup A:link,.srch-dup A:visited{ COLOR:#517acc } .srch-Icon{ margin-right:4; } .srch-ActionLink a{ text-decoration:none; font-size:.85em; font-style:italic; color:336699; margin-top:2; margin-bottom:0; } .srch-ActionLink a:hover{ color:#FF0000; } .ms-searchresultstitlearea{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-color:#d6e8ff; text-align:center; padding-left:18px; padding-top:20px; border-bottom:1px solid #6f9dd9; height:85px; } .ms-searchresultsareaSeparator{ background-color:#d6e8ff; padding:0px; } ------------v0R7J6g1aaWINvTDUDfdRA Content-Disposition: inline; filename=core.css Content-Type: text/css; charset=utf-8; name=core.css Content-Location: http://www.vojenskaskola.cz/_layouts/1029/styles/core.css?rev=pkS%2FF9TH6vOPeNHO466yQw%3D%3D Content-Transfer-Encoding: 8bit /* _lcid="1029" _version="12.0.6500" _LocalBinding */ body,form{ margin:0; } body{ background-color:#FFFFFF; font-family:verdana,arial,helvetica,sans-serif; color:#000000; } .ms-alphaimage{ behavior:url("/_layouts/alphaimage.htc"); } .ms-alignleft{ text-align:left; } .ms-alignright{ text-align:right; } .ms-toolbar,.ms-viewtoolbar,.ms-formtoolbar,.ms-toolbarContainer{ font-family:verdana; font-size:8pt; text-decoration:none; color:#003399; } .ms-formtoolbar{ margin-bottom:7px; } .ms-formtoolbar td{ padding:0px; vertical-align:top; } .ms-toolbar-togglebutton-on{ border:1px solid #2353b2; background-color:#fffacc; } table.ms-toolbar,table.ms-viewtoolbar,.ms-toolbarContainer{ background-image:url("/_layouts/images/toolgrad.gif"); background-repeat:repeat-x; background-color:#d6e8ff; } table.ms-toolbar,.ms-toolbarContainer{ border:1px solid #83b0ec; border-collapse:collapse; } .ms-toolbarContainer{ padding:2px; } .ms-toolbarItem{ display:inline; white-space:nowrap; } table.ms-viewtoolbar{ border-top:1px solid #6f9dd9; border-bottom:1px solid #6f9dd9; } .ms-attachButton { text-align:left } .ms-listheader{ font:10pt verdana; color:#204d89; font-weight:bold; height:28px; background-image:url("/_layouts/images/listheadergrad.gif"); background-repeat:repeat-x; background-color:#d9d9d9; } .ms-menutoolbar{ border-bottom:1px solid #6f9dd9; height:22px; background-color:#afd2ff; background-image:url("/_layouts/images/listheadergrad.gif"); background-repeat:repeat-x; } .ms-menutoolbar td{ border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; } .ms-menutoolbar td a{ color:#003399; font-size:8pt; font-family:tahoma; text-decoration:none; } .ms-menutoolbar td a:hover{ color:#000000; text-decoration:none; } .ms-menutoolbar td{ padding:0px; margin:0px; vertical-align:middle; } .ms-menutoolbar td a:hover{ color:#000000; text-decoration:none; } .ms-menubuttoninactivehover,.ms-buttoninactivehover{ margin:2px 2px 2px 2px; padding:2px 7px 3px 7px; background-color:transparent; line-height:16px; } .ms-menubuttonactivehover,.ms-buttonactivehover{ margin:0px 1px 0px 1px; padding:3px 7px 4px 7px; background-image:url("/_layouts/images/menubuttonhover.gif"); line-height:16px; border:solid 1px #6f9dd9; cursor:pointer; } .ms-buttoninactivehover{ padding:0px 7px 1px 7px; } .ms-buttonactivehover{ padding:1px 7px 2px 7px; } .ms-buttoninactivehover img,.ms-buttonactivehover img{ margin:1px 1px 0px 0px; } td.ms-menutoolbarheader{ font-size:10pt; font-family:verdana; color:#204d89; font-weight:bold; line-height:16px; padding-left:7px; padding-right:7px; } .ms-listheaderlabel{ color:#204d89; } .ms-listheaderlabel,.ms-viewselector,.ms-viewselectortext,.ms-viewselectorhover{ font-size:8pt; font-family:tahoma; } .ms-menutoolbar td td.ms-viewselector,.ms-menutoolbar td td.ms-viewselectorhover,.ms-toolbar td td.ms-viewselector,.ms-toolbar td td.ms-viewselectorhover,.ms-authoringcontrols td td.ms-viewselector,.ms-authoringcontrols td td.ms-viewselectorhover,td.ms-viewselector{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; font-weight:bold; padding:0px; } .ms-menutoolbar td td{ border:none; } div.ms-viewselector,div.ms-viewselectorhover{ border:solid 1px #ffffff; padding:1px 12px 1px 4px; background-image:url("/_layouts/images/menudarkspaced.gif"); background-repeat:no-repeat; background-position:center right; cursor:pointer; } div.ms-viewselector a{ color:#000000; } .ms-menutoolbar td td.ms-viewselectorhover,.ms-toolbar td td.ms-viewselectorhover,.ms-authoringcontrols td td.ms-viewselectorhover{ background-image:url("/_layouts/images/menubuttonhover.gif"); background-color:#ffbb47; } td.ms-viewselector,td.ms-viewselectorhover{ width:125px; } .ms-bottompaging{ background:#ebf3ff; } .ms-bottompagingline1{ line-height:1px; background:#83b0ec } .ms-bottompagingline2{ line-height:1px; background:#ffffff; } .ms-bottompagingline3{ line-height:0px; background:#ffffff; } .ms-paging{ font-family:tahoma,sans-serif; font-size:8pt; font-weight:normal; color:#204d89; } .ms-bottompaging .ms-paging{ color:#4c4c4c; } .ms-menutoolbar .ms-splitbuttondropdown{ padding:0px 2px 1px 1px; margin:1px; } .ms-menutoolbar .ms-splitbuttontext{ padding:0px 6px 1px 8px; } .ms-splitbutton{ margin:0px 1px 0px 1px; } .ms-splitbuttonhover{ background-image:url("/_layouts/images/menubuttonhover.gif"); border-collapse:collapse; margin:0px 1px 0px 1px; } .ms-splitbuttonhover .ms-splitbuttondropdown,.ms-splitbuttonhover .ms-splitbuttontext{ border:1px solid #6f9dd9; cursor:pointer; } .ms-splitbuttonhover .ms-splitbuttondropdown{ padding:0px 1px 0px 1px; } .ms-splitbuttonhover .ms-splitbuttontext{ padding:0px 5px 0px 7px; } .ms-rtetablecells { border:solid 1px #c4c4c4; padding:2px; } .ms-rtetoolbarmenu { background-color:#f3f3f3; color:#000000; border:#c4c4c4; font-family:verdana; font-size:8pt; } TD.ms-rtetoolbarunsel{ padding:3px; } TD.ms-rtetoolbarsel{ padding:2px; border:solid 1px #89724f; background-image:url("/_layouts/images/rtebnsel.gif"); background-repeat:repeat-x; } .ms-rtetoolbardis{ filter:alpha(opacity=25); cursor:default; } a.ms-rtetoolbardis{ cursor:default; } TD.ms-rtetoolbarhov { padding:2px; border:solid 1px #d2b47a; background-image:url("/_layouts/images/rtebnhov.gif"); background-repeat:repeat-x; background-color:#fff699; cursor:pointer; color:#000000; } .ms-gridT1,.ms-propertysheet th.ms-gridT1 { font-family:verdana; text-align:left; font-size:0.7em; color:#000000; width:190px; } .ms-gridCol{ font-family:verdana; text-align:center; font-size:.6em; color:#7f7f7f; width:90px; } .ms-viewselect a:link,.ms-GRFontSize{ font-size:8pt; font-family:Verdana,sans-serif; color:#003399; } select{ font-size:8pt; font-family:Verdana,sans-serif; } hr{ color:#003399; height:2px; } .ms-formlabel{ text-align:left; font-family:verdana; font-size:.7em; border-top:1px solid #d8d8d8; padding-top:3px; padding-right:8px; padding-bottom:6px; color:#525252; font-weight:bold; } .ms-formdescription A{ color:#003399; text-decoration:none; } .ms-formvalidation{ color:#ff0000; font-family:verdana; font-size:8pt; } .ms-formtable .ms-formbody,.ms-formtable .ms-formbodysurvey{ line-height:1.3em; } .ms-informationbar{ background-color:#fff9de; border:1px solid #ffdf88; } .ms-informationbar td{ font-family:tahoma; font-size:8pt; color:#000000; } .ms-radiotext{ cursor:default; text-align:left; font-family:verdana; font-size:8pt; height:19px; } .ms-radiobutton-child{ margin-left:20px; } .ms-gridtext{ cursor:default; text-align:right; font-family:verdana; font-size:8pt; height:19px; } .ms-formbody{ font-family:verdana; font-size:.7em; vertical-align:top; background:#ebf3ff; border-top:1px solid #d8d8d8; padding:3px 6px 4px 6px; } .ms-formbodysurvey{ font-family:verdana; font-size:.7em; vertical-align:top; background:none; border-top:none; padding:5px 8px 15px 8px; } .ms-formbody FONT{ line-height:normal } .ms-formline{ border-top:1px solid #c4c4c4; padding-right:8px; padding-left:8px; } .ms-formdescription { font-family:verdana; font-size:8pt; color:#7f7f7f; } .ms-formfieldcontainer { } .ms-formfieldlabelcontainer { margin:4px 4px 0px 4px; } div.ms-formfieldlabelcontainer span.ms-formfieldlabel { font-family:tahoma; font-size:8pt; font-weight:normal; text-align:left; color:#777777; padding:1px 4px 1px 4px; border-top:1px solid #cccccc; border-left:1px solid #cccccc; border-right:1px solid #cccccc; background-image:url("/_layouts/images/globgrad.gif"); background-repeat:repeat-x; background-color:#efebef; height:18px; } .ms-formfieldvaluecontainer { border:1px solid #cccccc; margin-left:4px; margin-right:4px; margin-bottom:4px; padding:5px; } .ms-searchbox,.ms-pickersearchbox{ border:solid 1px #7f9db9; border-right:none; color:#1952a4; font-family:Verdana; font-size:8pt; height:19px !important; padding-top:2px; padding-left:2px; } .ms-searchform{ margin-right:10px; position:relative; top:-6px; } .ms-searchform input{ height:19px; padding:2px; } select.ms-searchbox{ margin-right:6px; border:solid 1px #7f9db9; } .ms-searchimage{ border:solid 1px #7f9db9; border-left:solid 1px #9ed6ff; background-color:#e9f2fd; padding-left:3px; padding-right:3px; padding-bottom:2px !important; padding-top:2px !important; } .ms-searchcorner{ background-color:#FFFFFF; background-image:url("/_layouts/images/srchcrnr.gif"); background-repeat:no-repeat; background-position:left top; } .ms-secondary-title { padding-bottom:3px; display:block; } table.ms-form th{ color:#003399; font-family:verdana; font-size:8pt; font-weight:normal; text-align:left; vertical-align:top; } table.ms-form td{ font-size:8pt; width:100%; vertical-align:top; } .ms-formrecurrence{ font-family:verdana; font-size:8pt; font-weight:normal; text-align:left; vertical-align:top; } .ms-fileinput{ font-size:8pt; font-family:Verdana,sans-serif; } .ms-longfileinput{ font-size:8pt; font-family:Verdana,sans-serif; width:386px; } .ms-long{ width:386px; } .ms-longer{ width:411px; } .ms-rtelong{ width:384px; } .ms-rtelonger{ width:409px; } .ms-input,.ms-long,.ms-rtelong,.ms-longer,.ms-rtelonger,.ms-radiotext,.ms-inputuserfield,.ms-rtedropdown,.ms-lookuptypeintextbox{ font-size:8pt; font-family:Verdana,sans-serif; } .ms-inputuserfield,.ms-rtelong,.ms-rtelonger{ border:1px solid #a5a5a5; } div.ms-inputuserfield a { color:#000000; text-decoration:none; font-weight:normal; font-style:normal; } div.ms-inputuserfield { padding-left:1px; padding-top:2px; } .ms-usereditor{ width:386px; } .ms-italic{ font-style:italic; } .ms-bold{ font-weight:bold; } .ms-bannerframe,.ms-GRHeaderBackground{ } .ms-banner{ vertical-align:bottom; } .ms-banner a:link{ text-decoration:none; white-space:nowrap; } .ms-banner a:visited{ text-decoration:none; } .ms-bannerContainer{ background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right top; background-repeat:repeat-y; background-color:#FFFFFF; padding-right:10px; padding-left:5px; } .ms-globalbreadcrumb{ font-size:8pt; text-align:right; background-color:#ebf3ff; padding:2px 10px 2px 5px; } .ms-globalbreadcrumb,.ms-globalbreadcrumb a{ text-decoration:none; color:#666666; } .ms-globalbreadcrumb a:hover{ text-decoration:underline; color:#000000; } .ms-globalleft{ float:left; } .ms-globalright{ float:right; } .ms-globallinks{ font-size:8pt; background:transparent; font-family:tahoma; } .ms-globallinks,.ms-globallinks a{ color:#666666; text-decoration:none; font-family:tahoma; } .ms-pagebreadcrumb{ padding:2px 3px 3px 11px; border-left:1px solid #ffffff; border-top:1px solid #ffffff; } .ms-pagebreadcrumb,.ms-pagebreadcrumb a{ font-size:8pt; background-color:#ebf3ff; color:#666666; text-decoration:none; } .ms-sitetitle { font:11pt verdana; font-weight:bold; color:#666666; padding:4px 0px 7px 6px; vertical-align:middle; margin:0; } .ms-sitetitle a { font:11pt verdana; font-weight:bold; color:#666666; text-decoration:none; } h1.ms-sitetitle{ margin:0; padding:0; } td.ms-titleimagearea{ padding-left:2px; } .ms-siteaction,.ms-siteaction a{ font:8pt tahoma; font-weight:bold; color:#666666; text-decoration:none; } table.ms-siteaction td.ms-siteaction{ border-right:solid 1px #bfbfbf; } table.ms-siteaction td.ms-siteaction div{ padding:3px 8px 3px 8px; border-right:solid 1px #FFFFFF; } .ms-siteactionsmenu{ white-space:nowrap; font:8pt tahoma; padding:0; border:none; cursor:pointer; } .ms-siteactionsmenu div div div{ background-image:url("/_layouts/images/siteactionsmenugrad.gif"); background-repeat:repeat-x; border-top:1px solid #6593cf; border-left:1px solid #6593cf; border-right:1px solid #6593cf; background-color:#6593cf; padding:1px 4px 3px 10px; } .ms-siteactionsmenu div div div a{ color:#FFFFFF; font-weight:bold; } .ms-siteactionsmenu div div div.ms-siteactionsmenuhover{ background-image:url("/_layouts/images/siteactionsmenuhovergrad.gif"); border-top:1px solid #89724f; border-left:1px solid #89724f; border-right:1px solid #89724f; background-color:#ffa521; } .ms-actionbar{ background-color:#FFFFFF; border:1px solid #6f9dd9; padding-top:1px } .ms-actionsep{ height:8px; border-right:1px solid #6f9dd9; } .ms-topnavContainer{ border:none; border-left:solid 1px #c2dcff; } .ms-topnav{ border:solid 1px #c2dcff; border-left:solid 1px #ffffff; border-bottom:none; background-image:url("/_layouts/images/topnavunselected.gif"); background-repeat:repeat-x; font-family:Tahoma; font-size:8pt; background-color:#e2efff; color:#3764a0; } .ms-topnav a{ display:block; white-space:nowrap; padding:1px 8px 0px 8px; height:18px; } .ms-topnavselected{ color:#003399; background:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; font-weight:bold; border:solid 1px #79a7e3; border-bottom-width:0px; border-left:solid 1px #e3efff; background-color:#6593cf; } .ms-topnavselected a{ color:#003399; } .ms-topNavHover{ background-image:url("/_layouts/images/topnavhover.gif"); background-color:#ffe6a0; border:solid 1px #c2a770; border-left:solid 1px #ffffff; border-bottom-width:0px; color:#000000; } .ms-topNavHover a{ color:#000000; } .ms-topnav img{ position:relative; left:-6px; } .ms-topNavFlyOutsContainer { border:solid 1px #c2dcff; } .ms-topNavFlyOuts{ background-color:#F2F8FF; font-family:Tahoma; font-size:8pt; } .ms-topNavFlyOuts a{ display:block; *width:120px; min-width:120px; color:#3764a0; padding:4px 8px 4px 8px; } .ms-topNavFlyOutsHover{ background-color:#ffe6a0; color:#000000; } .ms-nav td,.ms-nav .ms-SPZoneLabel{ font-size:8pt; } .ms-formula{ font-size:8pt; font-family:Verdana,sans-serif; width:222px; height:135px; } .ms-dtinput,.ms-dttimeinput{ vertical-align:middle; padding-top:0px; padding-bottom:0px; padding-right:4px; padding-left:0px; font-size:0px; } .ms-dttimeinput{ direction:ltr; } .ms-nav th{ font-size:8pt; font-family:Verdana,sans-serif; font-weight:normal; text-align:left; color:#000000; } .ms-quicklaunchnavsep{ background-color:#83b0ec; } .ms-quicklaunch table td{ border-top:1px solid #add1ff; } .ms-quicklaunch .ms-treeviewouter table td{ border-top:none; } .ms-quicklaunch table.ms-navheader td,.ms-navheader2 td,.ms-quicklaunch span.ms-navheader{ background-color:#d6e8ff; border-top:solid 1px #f2f8ff; border-left:solid 1px #f2f8ff; padding:1px 4px 4px 4px; } div.ms-treeviewouter div{ border-top:solid 1px #add1ff; } div.ms-treeviewouter div div{ border:none; } .ms-quicklaunch span.ms-navheader{ background-color:#d6e8ff; border-top:1px solid #add1ff; border-left:solid 1px #f2f8ff; border-bottom:1px solid #add1ff; padding:1px 6px 3px 6px; } .ms-quicklaunch table.ms-navsubmenu2 td{ border:none; } .ms-quicklaunch table.ms-selectednavheader td{ width:100%; background-color:#fff699; } .ms-quicklaunch table.ms-selectednavheader{ border:none; } .ms-quicklaunch span{ display:block; } .ms-quicklaunch div.ms-navsubmenu1 br{ display:none; } .ms-quicklaunch table.ms-selectednav{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; margin:2px; margin-bottom:0; width:97%; } .ms-quicklaunch table.ms-selectednav td{ background:transparent url("/_layouts/images/selectednavbullet.gif"); background-repeat:no-repeat; background-position:top left; border:solid 1px #ffffff; padding:0px 4px 1px 12px; margin:0px; } table.ms-selectednav td a.ms-selectednav{ background:none; color:#000000; } .ms-quicklaunch table.ms-selectednavheader td{ width:100%; background-color:#ffe6a0; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; padding-top:2px; padding-bottom:2px; border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; padding:1px 6px 3px 6px; } .ms-selectednavheader a{ font-weight:bold; color:#000000; text-decoration:none; } .ms-selectednavheader a:hover{ color:#000000; text-decoration:underline; } table.ms-navitem td,span.ms-navitem{ background-image:url("/_layouts/images/navBullet.gif"); background-repeat:no-repeat; background-position:left top; padding:3px 6px 4px 16px; font-family:tahoma; } .ms-navsubmenu1{ width:100%; border-collapse:collapse; background-color:#f2f8ff; } .ms-navsubmenu2{ width:100%; background-color:#f2f8ff; margin-bottom:6px; } table.ms-navselected{ padding:2px; } table.ms-navselected,span.ms-navselected{ background-image:url("/_layouts/images/SELECTEDNAV.GIF"); background-color:#ffe6a0; background-repeat:repeat-x; } table.ms-navselected td{ background-image:url("/_layouts/images/navBullet.gif"); background-repeat:no-repeat; background-position:top left; padding:3px 6px 4px 17px; } table.ms-navheader td{ background-image:none; } .ms-navheader a,.ms-navheader2 a{ font-weight:bold; color:#003399; text-decoration:none; } .ms-navheader a:hover,.ms-navheader2 a:hover{ color:#000000; text-decoration:underline; } .ms-navItem a{ color:#003399; text-decoration:none; } .ms-navItem a:hover{ color:#000000; text-decoration:underline; } .ms-navheaderstatic,.ms-navitemstatic{ color:#4c4c4c; } .ms-quicklaunchouter{ border-bottom:solid 1px #83b0ec; border-right:solid 1px #83b0ec; } .ms-quicklaunchouter{ margin:0px 1px 2px 1px; } .ms-tvselected{ background-color:#ffda8a; } .ms-tvselected a{ color:#000000; } .ms-treeviewouter td.ms-navitem{ border-left:2px solid #f2f8ff; } .ms-treeviewouter a.ms-navitem{ padding:0px 1px 0px 1px; } table.ms-recyclebin td{ background-color:#f2f8ff; width:100%; border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; padding:3px 5px 7px 3px; } table.ms-recyclebin td a{ font-weight:bold; color:#008800; text-decoration:none; } table.ms-recyclebin td a:hover{ color:#000000; text-decoration:underline; } .ms-quickLaunch{ border:solid 1px #6f9dd9; border-bottom:solid 1px #6f9dd9; font-size:8pt; font-family:tahoma; line-height:10pt; background-color:#f2f8ff; } .ms-quicklaunchheader{ padding:2px 6px 4px 6px; font-weight:normal; color:#003399; background-image:url("/_layouts/images/quickLaunchHeader.gif"); background-repeat:repeat-x; background-color:#d6e8ff; border-left:solid 1px #f2f8ff; font-size:8pt; } .ms-quicklaunchheader a,.ms-unselectednav a{ color:#003399; text-decoration:none; } .ms-quicklaunchheader a:hover{ color:#000000; text-decoration:underline; } .ms-navline{ border-bottom:1px solid #adadad; } .ms-navwatermark{ color:#ffdf88; } .ms-selectednav,.ms-GRSortFilter{ border:1px solid #2353b2; background:#fff699; padding-top:1px; padding-bottom:2px; } .ms-unselectednav{ border:1px solid #83b0ec; padding-top:1px; padding-bottom:2px; } .ms-templatepickerselected,.ms-templatepickerunselected{ float:left; } .ms-templatepickerunselected{ padding-top:2px; margin-right:1px; } .ms-templatepickerselected{ margin-right:1px; } .ms-templatepickerunselected div{ background-image:url("/_layouts/images/templatepickerunselected.gif"); background-repeat:repeat-x; background-color:#bdbdbd; border:solid 1px #c4c4c4; border-bottom:none; padding:1px 5px 3px 5px; white-space:nowrap; } .ms-templatepickerselected div{ background-image:url("/_layouts/images/templatepickerselected.gif"); background-repeat:repeat-x; background-color:#ffffff; border:solid 1px #c2a770; border-bottom:none; padding:3px 5px 3px 5px; white-space:nowrap; } .ms-templatepickerselected div a{ color:#000000; } .ms-templatepickerunselected div a{ color:#000000; } .ms-templatepicker{ font-size:8pt; font-family:tahoma; width:320px; height:175px; } .ms-lactiontable{ width:100%; } .ms-laction{ border-top:solid 1px #b8bed0; padding-left:2px; padding-right:2px; } .ms-lactionheader{ padding:4px; } .ms-lactionitem{ padding-left:4px; padding-right:4px; padding-top:3px; padding-bottom:3px; white-space:nowrap; } .ms-lactionitem a{ color:#003399; text-decoration:none; } .ms-lactionitem a:hover{ color:#000000; text-decoration:underline; } .ms-diffselected{ background-image:url("/_layouts/images/SELECTEDNAV.GIF"); background-color:#ffe6a0; background-repeat:repeat-x; border:1px solid #d2b47a; } .ms-diffselected table{ width:100%; border:1px solid #ffffff; } .ms-diffselected .ms-lactionbullet{ padding-left:3px; } .ms-diffselected .ms-lactionitem{ padding-right:3px; } .ms-diffselected .ms-lactionitem a{ color:#000000; } .ms-versiondiffnum{ font-weight:bold; } .ms-verticaldots{ border-right:1px solid #83b0ec; border-left:none; } .ms-nav{ background-color:#83b0ec; background-image:url("/_layouts/images/navshape.jpg"); background-repeat:repeat-x; font-family:tahoma; } .ms-relatedtable{ width:100%; background:#f2f2f2; border:1px solid #949494; } .ms-relatedheaderleftcorner{ } .ms-relatedheaderrightcorner{ } .ms-relatedicon{ padding:2px; text-align:center; } .ms-relatedicon img{ border:0px; } .ms-relatedtext{ color:#3966bf; padding:2px; } .ms-relatedtext a:visited,.ms-relatedtext a:link,.ms-relatedtext a:active{ color:#3966bf; font-family:tahoma,sans-serif; text-decoration:none; } .ms-relatedtext a:hover{ color:#3966bf; font-family:tahoma,sans-serif; text-decoration:underline; } .ms-globalTitleArea{ text-align:right; background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right top; background-repeat:repeat-y; padding-left:5px; padding-right:0px; padding-top:1px; } .ms-globalTitleAreaSeparator{ background-color:#ffffff; background-image:url("/_layouts/images/siteTitleBKGD.gif"); background-position:right; background-repeat:repeat-y; } .ms-titlearea,.ms-mwstitlearea{ color:#666666; font-family:tahoma; font-size:8pt; letter-spacing:.1em; } .ms-titlearea a { color:#3966bf; text-decoration:none; } .ms-titlearea a:hover,.ms-mwstitlearea a:hover { color:#000000; text-decoration:underline; } td.ms-mwstitlearea a { color:#3966bf; text-decoration:none; } .ms-titlearealeft { background-color:#d6e8ff; } TD.ms-titleareaframe,Div.ms-titleareaframe,.ms-pagetitleareaframe,.ms-mwspagetitleareaframe,.ms-consoletitleareaframe{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-position:left top; background-color:#d6e8ff; text-align:center; } div.ms-titleareaframe{ height:100%; } .ms-pagetitleareaframe table{ background-image:url("/_layouts/images/topshape.jpg"); background-repeat:no-repeat; background-position:332px 4px; height:54px; } .ms-titlearealine{ background-color:#83b0ec; } .ms-titleareaframe table td.ms-titlearea,.ms-areaseparator table td.ms-titlearea,.ms-pagetitleareaframe table td.ms-titlearea,.ms-consoletitleareaframe{ padding:7px 0px 1px 0px; } .ms-consoletitleareaframe { width:8px; } .ms-consoletitleareaframebottom { background-color:#d6e8ff; text-align:center; padding:0px 0px 0px 0px; } .ms-mwspagetitleareaframe{ width:100%; } .ms-mwstitlearealine{ background-color:#D6E8FF; } .ms-titleareaseparator{ padding-bottom:5px; background-color:#83b0ec; } .ms-titleareaseparator div{ background-color:#d6e8ff; border-top:1px solid #6f9dd9; } .ms-sitemapdirectional,.ms-sitemapdirectional a{ unicode-bidi:embed; } .ms-areaseparatorcorner{ background-image:url("/_layouts/images/framecornergrad.gif"); background-position:left top; background-repeat:repeat-y; height:8px; border-right:1px solid #6f9dd9; } td.ms-areaseparatorleft{ background:#d6e8ff url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; border-right:1px solid #6f9dd9; height:100%; } div.ms-areaseparatorleft{ background:#83b0ec url("/_layouts/images/navshape.jpg"); background-repeat:no-repeat; background-position:-143px 0px; border-right:1px solid #6f9dd9; height:100%; } div.ms-areaseparatorright{ background:#83b0ec url("/_layouts/images/pagebackgrad.gif"); background-repeat:repeat-x; border-left:1px solid #6f9dd9; padding-right:2px; height:100%; } .ms-titlearearight .ms-areaseparatorright{ background:#d6e8ff url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; border-left:1px solid #6f9dd9; padding-right:2px; height:100%; } .ms-areaseparator{ background-color:#ffeaad; background-image:url("/_layouts/images/formtitlegrad.gif"); background-repeat:repeat-x; border-right:none; border-left:none; padding-left:5px; height:61px; } .ms-pagemargin{ background-color:#83b0ec; background-image:url("/_layouts/images/navshape.jpg"); background-repeat:no-repeat; background-position:-143px 0px; height:100%; } td.ms-rightareacell div.ms-pagemargin{ background-color:#83b0ec; background-image:url("/_layouts/images/pagebackgrad.gif"); background-repeat:repeat-x; height:100%; border-left:solid 1px #83b0ec; } .ms-bodyareacell{ vertical-align:top; height:100%; width:100%; } .ms-pagebottommargin,.ms-pagebottommarginleft,.ms-pagebottommarginright{ background:#83b0ec; } .ms-bodyareapagemargin{ background:#83b0ec; border-top:1px solid #6f9dd9; } .ms-bodyareaframe,.ms-viewareaframe{ vertical-align:top; height:100%; width:100%; background-color:#ffffff; border-top:1px solid #6f9dd9; border-right:1px solid #6f9dd9; border-left:1px solid #6f9dd9; } .ms-bodyareaframe{ padding:10px; } .ms-formareaframe{ vertical-align:top; height:100%; background-color:#ffffff; padding:8px; } .ms-pagetitle{ color:#000000; font-family:verdana; font-size:16pt; margin:0px 0px 4px 0px; font-weight:normal; } .ms-pagetitle a{ text-decoration:none; color:#000000; margin:0; font-weight:normal; } .ms-pagetitle a:hover{ } .ms-pagecaption{ font-size:9pt; color:#000000; font-family:arial,verdana,sans-serif; } .ms-selected { background-position:left top; color:#000000; background-image:url("/_layouts/images/filedialogselected.gif"); background-color:#FFE499; border-top:1px solid #FFE499; border-bottom:1px solid #FFE499; background-repeat:repeat-x; } .ms-selected SPAN{ color:#000000; } .ms-vh table.ms-selectedtitle,.ms-vh2 table.ms-selectedtitle,.ms-vh-icon table.ms-selectedtitle,.ms-vh table.ms-unselectedtitle,.ms-vh2 table.ms-unselectedtitle,.ms-vh-icon table.ms-unselectedtitle{ height:21px; } .ms-vh table.ms-selectedtitle,.ms-vh2 table.ms-selectedtitle,.ms-vh-icon table.ms-selectedtitle{ background-color:#dde1e5; border:none; } .ms-vh2 .ms-selectedtitle .ms-vb,.ms-vh2 .ms-unselectedtitle .ms-vb{ padding-left:5px; padding-right:5px; padding-top:1px; } .ms-vh-icon .ms-selectedtitle .ms-vb,.ms-vh-icon .ms-unselectedtitle .ms-vb{ padding-left:0px; vertical-align:middle; } .ms-vh-icon{ padding-left:6px; padding-right:4px; } .ms-propertysheet th.ms-vh2,.ms-propertysheet th.ms-vh2-nofilter{ font-family:tahoma; } .ms-listviewtable .ms-vh2,.ms-summarystandardbody .ms-vh2{ padding:1px 1px 0px 1px; } .ms-listviewtable .ms-vb2,.ms-summarystandardbody .ms-vb2{ padding-left:7px; padding-right:7px; } .ms-basictable{ border-collapse:collapse; } .ms-selectedtitle{ background-color:#ffffff; border:1px solid #b09460; margin:0px; padding:0px; cursor:pointer; } .ms-selectedtitlealternative { background-color:#ffffff; border:1px solid #b09460; margin:0px; padding:0px; cursor:pointer; } .ms-unselectedtitle{ background-color:transparent; margin:0px; padding:0px; } .ms-vb-title .ms-unselectedtitle{ padding:1px; } .ms-menuimagecell{ background:#ffe6a0 url("/_layouts/images/selectednav.gif") repeat-x; cursor:pointer; border:solid 1px #ffffff; padding:0px; height:18px; } .ms-vh .ms-menuimagecell,.ms-vh2 .ms-menuimagecell,.ms-vh-icon .ms-menuimagecell{ height:20px; } .ms-vh .ms-menuimagecell img,.ms-vh2 .ms-menuimagecell img,.ms-vh-icon .ms-menuimagecell img{ margin-top:2px; margin-bottom:2px; } .ms-filedialog td{ height:16px; } .ms-descriptiontext{ color:#4c4c4c; font-family:tahoma; font-size:8pt; text-align:left; } .ms-webpartpagedescription{ font-family:verdana; font-size:8pt; color:#5a5a5a; padding:8px 12px 0px 12px; } .ms-inputformdescription{ width:475px; padding-right:9px; } .ms-inputformcontrols { width:375px; } .ms-halfinputformcontrols { width:150px; } .ms-dspadapterlist { padding-left:1cm; color:#7f7f7f; font-family:verdana; font-size:8pt; } .ms-alerttext { color:#ff0000; font-family:verdana; font-size:8pt; } .ms-separator { color:#83b0ec; font-size:10pt; } .ms-separator img { height:16px; width:1px; margin:0px 1px 0px 1px; background:#9ac6ff; border-bottom:1px solid #f2f8ff; border-right:1px solid #f2f8ff; } .ms-authoringcontrols { background-color:#ebf3ff; font-family:tahoma; font-size:8pt; color:#525252; } .ms-propertysheet th.ms-authoringcontrols { background-color:#ebf3ff; font-family:tahoma; font-size:8pt; color:#083772; text-align:left; } .ms-multiselectbox { width:175px; } .ms-lookuptypeindropdown { width:20em; } .ms-lookuptypeintextbox { width:20em; vertical-align:middle; } .ms-sectionheader { color:#525252; font-family:tahoma; font-size:8pt; font-weight:bold; } .ms-linksectionheader,.ms-propertysheet th.ms-linksectionheader { color:#000000; font-family:tahoma; font-size:8pt; font-weight:bold; text-align:left; } td.ms-linksectionheader,th.ms-linksectionheader { background-color:#ebf3ff; background-image:url("/_layouts/images/linksectiongrad.gif"); background-repeat:repeat-x; border:1px solid #add1ff; text-align:left; } table.ms-disc-bar { background-color:#d6e8ff; background-image:url("/_layouts/images/quicklaunchheader.gif"); background-repeat:repeat-x; border:1px solid #79a7e3; text-align:left; } table.ms-disc HR { height:1px; color:#add1ff; } .ms-attachUploadButtons { text-align:right; } .ms-sectionheader a,.ms-sectionheader a:hover,.ms-sectionheader a:visited,.ms-propertysheet .ms-sectionheader a,.ms-propertysheet .ms-sectionheader a:hover { color:#525252; text-decoration:none; } .ms-sectionline { background-color:#d9d9d9; } .ms-sectionhighlight-top{ border:1px solid #ff9932; border-left:0px solid; border-right:0px solid; background-color:#f7f3cd; font-family:tahoma; font-size:8pt; } .ms-sectionhighlight{ background-color:#fffbd8; color:#4c4c4c; } .ms-sectionhighlight-line{ height:1px; padding:0px; background-color:#ff9932; } .ms-partline { background-color:#add1ff; } .ms-propertysheet{ font-family:verdana; font-size:.7em; text-align:left; color:#4c4c4c; } .ms-propertysheet th{ font-family:verdana; font-size:8pt; color:#4c4c4c; font-weight:normal; } .ms-propertysheet a{ text-decoration:none; color:#3966bf; } .ms-propertysheet a:hover{ text-decoration:underline; color:#000000; } table.ms-pageinformation,table.ms-createpageinformation{ font-family:tahoma; font-size:8pt; height:115px; } table.ms-pageinformation{ background-image:url("/_layouts/images/settingsgraphic.jpg"); background-color:#ffffff; background-repeat:repeat-x; } table.ms-createpageinformation{ background-image:url("/_layouts/images/creategraphic.jpg"); background-repeat:repeat-x; background-color:#ffffff; } .ms-pageinformation th,.ms-createpageinformation th{ color:#204d89; text-align:left; } .ms-pageinformation table td,.ms-createpageinformation table td{ color:#000000; text-align:left; font-family:tahoma; font-size:8pt; padding:3px 5px 3px 1px; } .ms-pageinformation table th { padding:3px 5px 3px 1px; } .ms-storMeFree{ background-color:#80f0dc; border-style:dashed; border-width:1px; border-color:white; } .ms-storMeUsed{ background:#8ebbf5; border-style:solid; border-width:1px; border-color:white; } .ms-storMeEstimated{ background-color:#83b0ec; border-style:dotted; border-width:1px; border-color:white; } .ms-storMeFilterBar{ background:#8ebbf5; } .ms-informationtablehover{ border:solid 1px #add1ff; } .ms-informationtablehover td,.ms-informationtablehover th{ background-color:#ebf3ff; } .ms-informationtablehover td{ border-top:solid 1px #ffffff; border-left:solid 1px #ffffff; } .ms-informationtablehover th{ border-top:solid 1px #ffffff; } .ms-informationtablestatic{ background-image:url("/_layouts/images/settingsbkg.jpg"); background-repeat:no-repeat; } .ms-pageinformationheader{ font-weight:bold; color:#000000; } .ms-itemheader a{ font-size:11pt; font-family:arial; font-weight:bold; color:#003399; text-decoration:none; } .ms-itemstatic{ border:1px solid #FFFFFF; background-color:transparent; } .ms-itemhover{ border:solid 1px #d2b47a; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; cursor:pointer; } .ms-itemhover a{ color:#000000; text-decoration:underline; } .ms-discussiontitle{ font-size:.7em; font-family:verdana; color:#000000; font-weight:bold; } .ms-listdescription{ color:#4c4c4c; font-family:tahoma; background:#f8f8f8; padding:2px 6px 4px 6px; border-bottom:1px solid #6f9dd9; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh-icon-empty,.ms-vhImage,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-ph{ font-weight:normal; color:#b2b2b2; text-align:left; text-decoration:none; vertical-align:top; } .ms-gb,.ms-gb2,.ms-gbload,.ms-vb,.ms-vb2,.ms-vb-tall,.ms-GRFont,.ms-vb-user,.ms-pb,.ms-pb-selected td{ color:#000000; } .ms-gb a,.ms-gb2 a{ color:#003399; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh-icon-empty,.ms-vhImage,.ms-gb,.ms-gb2,.ms-gbload,.ms-vb,.ms-vb2,.ms-vb-tall,.ms-GRFont,.ms-vb-user,table.ms-disc td,.ms-vh2-nofilter,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon,.ms-pb,.ms-pb-selected,.ms-ph{ font-size:8pt; font-family:tahoma,sans-serif; } .ms-vh,.ms-vh2,.ms-vh2-nofilter,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon,.ms-ph{ white-space:nowrap; } .ms-vh,.ms-vh2,.ms-vh-icon,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-viewheadertr .ms-vh-group,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon,.ms-ph,.ms-pickerresultheadertr{ background-image:url("/_layouts/images/viewheadergrad.gif"); background-repeat:repeat-x; padding-top:1px; padding-bottom:0px; background-color:#f2f2f2; } .ms-disc .ms-viewheadertr th.ms-vh2{ padding:1px 5px 0px 4px; } .ms-disc .ms-vh2 .ms-selectedtitle .ms-vb,.ms-disc .ms-vh2 .ms-unselectedtitle .ms-vb{ padding-left:4px; } th.ms-vh3-nograd{ width:12px; color:#949494; font-size:8pt; font-family:tahoma,sans-serif; } .ms-vh .ms-vh{ background-image:none; border-left:none; padding-left:1px; background-color:transparent; } .ms-vh2,.ms-ph{ padding:3px 8px 1px 8px; } .ms-vh2-gridview{ padding-top:2px; padding-bottom:2px; vertical-align:middle; } .ms-vh-icon,.ms-vh2-nograd-icon,.ms-vh2-nofilter-icon{ width:12px; } .ms-vh-icon-empty{ width:0px; } .ms-vh a,.ms-vh a:visited,.ms-vh2 a,.ms-vh2-nofilter a{ color:#7f7f7f; text-decoration:none; } .ms-vh a:hover,.ms-vh2 a:hover,.ms-vh2-nofilter a:hover{ text-decoration:underline; } .ms-vhImage{ width:18pt } .ms-cbp{ padding-left:8px; padding-right:8px; } .ms-standardheader{ font-size:1em; margin:0em; text-align:left; color:#525252; } .ms-linksectionheader .ms-standardheader{ color:#000000; } .ms-gb h3.ms-standardheader{ margin-top:1em; } .ms-gb .ms-standardheader{ color:#000000; } .ms-gb{ height:22px; background-color:#ffffff; font-weight:bold; border-bottom:1px solid #8ebbf5; border-top:1px solid #f9f9f9; padding-bottom:3px; } .ms-listviewtable .ms-gb,.ms-listviewtable .ms-gb2{ padding-top:14px; } .ms-gb2{ height:22px; color:#4c4c4c; padding-bottom:3px; border-bottom:1px solid #e3efff; border-top:1px solid #f9f9f9; } .ms-gbload{ height:22px; color:#4c4c4c; background-color:#ffffff; padding-bottom:3px; } .ms-vb,.ms-vb2,.ms-GRFont,.ms-vb-user,table.ms-disc td,.ms-vb-tall,.ms-pb,.ms-pb-selected { vertical-align:top; } .ms-vb a,.ms-vb2 a,.ms-GRStatusText a,.ms-vb-user a,.ms-disc a{ color:#003399; text-decoration:none; } .ms-vb a:hover,.ms-vb2 a:hover,.ms-vb-user a:hover,.ms-disc a:hover{ color:#000000; text-decoration:underline; } .ms-vb a:visited,.ms-vb2 a:visited,.ms-GRStatusText a:visited,.ms-vb-user a:visited,.ms-disc a:visited{ color:#000066; text-decoration:none; } .ms-vb a:visited:hover,.ms-vb2 a:visited:hover,.ms-vb-user a:visited:hover,.ms-disc a:visited:hover{ color:#000000; text-decoration:underline; } .ms-vb-icon{ vertical-align:top; width:0%; padding-top:3px; padding-left:8px; padding-right:0px; padding-bottom:0px; } .ms-vb-icon-overlay{ border:0; position:relative; left:-7px; bottom:-2px; } .ms-vb-user{ padding-top:2px; padding-right:2px; padding-left:2px; } .ms-vb-title .ms-vb{ padding-top:2px; padding-right:1px; padding-bottom:5px; padding-left:6px; } .ms-vb-title .ms-selectedtitle .ms-vb{ padding-top:1px; padding-right:0px; padding-bottom:4px; padding-left:5px; } .ms-vb2{ padding-top:3px; padding-left:8px; padding-right:8px; padding-bottom:4px; } .ms-pb,.ms-pb-selected{ padding-left:5px; padding-right:5px; white-space:nowrap; } .ms-pb{ height:22px; padding-top:3px; border-top:1px dashed #ffffff; } .ms-pb-selected{ height:22px; padding-top:3px; background-color:#ffe6a0; border-top:1px solid #ffe6a0; border-bottom:1px solid #ffe6a0; } .ms-pb a,.ms-pb-selected a{ font-size:8pt; font-family:tahoma,sans-serif; color:#000000; text-decoration:none; cursor:default; } .ms-vb-tall{ line-height:1.5em; padding-top:2px; padding-bottom:10px; padding-left:6px; padding-right:6px; } th .ms-vb,.ms-vh2-nofilter,.ms-vh2-nofilter-icon,th.ms-vh2-nograd,th.ms-vh2-nograd-icon{ color:#b2b2b2; font-size:8pt; font-family:tahoma,sans-serif; } th .ms-vb a,.ms-vh2-nofilter a,.ms-vh2-nofilter-icon a{ color:#808080; } th .ms-selectedtitle .ms-vb,th .ms-selectedtitle .ms-vh2-nofilter,th .ms-selectedtitle ms-vh2-nofilter-icon,th .ms-selectedtitle .ms-vb a,th .ms-selectedtitle .ms-vh2-nofilter a,th .ms-selectedtitle ms-vh2-nofilter-icon a{ color:#4c4c4c; } .ms-vb li { vertical-align:auto; } .ms-vh2-nofilter,.ms-vh2-nofilter-icon,.ms-vh2-nograd,.ms-vh3-nograd,.ms-vh2-nograd-icon{ padding-left:8px; padding-right:8px; padding-top:3px; height:20px; } .ms-nlline{ background:#d8d8d8; } .ms-ppleft{ height:440px; overflow:auto; margin:2px; border-bottom:1px solid #d8d8d8; } .ms-ppright{ width:600px; margin:8px; } .ms-basictable .ms-alternating{ background-color:transparent; } .ms-homepagetitle{ font-family:arial; font-size:12pt; color:#000000; font-weight:bold; text-decoration:none; } a.ms-addnew{ font-weight:normal; font-family:verdana; font-size:8pt; color:#003399; text-decoration:none; } a.ms-addnew:Hover{ color:#000000; text-decoration:underline; } td.ms-addnew{ padding-left:1px; padding-right:7px; } .ms-error{ font-family:Verdana,sans-serif; font-size:8pt; font-weight:normal; color:#ff0000 } .ms-errorcolor{ color:#FF0000; } .ms-successcolor{ color:#008000; } IMG.ms-button{ cursor:pointer; } .ms-announcementtitle{ font-weight:bold; } .ms-homepagetitle:Hover{ text-decoration:underline; color:#000000; } .ms-discussionseparator{ color:#CCCCCC; height:1px; } .ms-summarytitlebarframe{ background-color:#2353b2; } .ms-summarytitlebar a:link{ font-family:Verdana,serif; font-size:9pt; color:#FFFFFF; font-weight:normal; text-decoration:none; } .ms-summarytitlebar a:visited{ font-family:Verdana,serif; font-size:9pt; color:#FFFFFF; font-weight:normal; text-decoration:none; } .ms-summarytitlebar{ color:#FFFFFF; font-size:.68em; font-family:verdana; font-weight:normal; text-decoration:none; } .ms-summarytitlebartitle{ color:#FFFFFF; font-size:10pt; font-family:arial; font-weight:bold; text-decoration:none; } .ms-summarytitlebartitle:hover{ text-decoration:underline; color:#000000; } img.thumbnail{ border:solid #83b0ec 3px; } tr.ms-imglibselectedrow,tr.ms-highlight { background-color:#f2f2f2; } .ms-imglibthumbnail { background-color:#d8d8d8;border:solid #83b0ec 0px; } span.thumbnail{ padding:16 10;position:relative;width:5px; } span.userdata{ behavior:url(#default#userData);display:none; } .ms-imglibmenuarea { background-color:#f2f8ff; } a.ms-imglibPreviewTitle { overflow:hidden; text-overflow:ellipsis; width:130px; } table.ms-imglibPreviewTable { display:none; } table.ms-disc td { padding:0; color:#4c4c4c; } .ms-disc-nopad,table tr td.ms-disc-nopad,table.ms-disc-nopad td { padding:0px; } table tr td.ms-disc-padabove{ padding:5px 5px 5px 5px; } table.ms-disc-bar td { vertical-align:middle; height:22px; padding-left:5px; } table.ms-disc-bar IMG { vertical-align:middle; } table.ms-disc-bar B { vertical-align:10%; padding-right:5px; } td.ms-disc-bordered,td.ms-disc-bordered-noleft { border:0px solid #add1ff; border-top-width:0px; } table tr td.ms-disc-bordered-noleft { border-left-width:1px; padding:0px 10px 5px 10px; font-family:verdana; font-size:.7em; text-align:left; } table tr td.ms-disc-bordered{ padding:0px 0px 5px 5px; } .UserShadedRegion { font-family:verdana,sans-serif; background-color:#fffacc; } .UserCaption { font-size:8pt; font-family:verdana; background-color:#d6e8ff; } .UserConfiguration { font-size:8pt; font-family:verdana; background-color:#f2f2f2; } .UserDottedLine { margin-bottom:2px; height:1px; overflow:hidden; background-color:#3966bf; background-image:url("/_layouts/images/dot.gif"); } .UserButton,.UserInput,.UserSelect{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; } .UserNotification{ font-family:verdana,sans-serif; padding:4px; COLOR:#7f7f7f } .RemoveConnectionLink{ color:#003399; text-decoration:none; } .ConnectionTabLink{ color:#333333; text-decoration:none; } .ConnectionChooseActiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #ece9d8; padding:3px; display:inline; height:24px; background-color:#ece9d8; } .ConnectionChooseInactiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #999999; padding:3px; display:inline; margin-top:4px; height:20px; color:#333333; background-color:#bfbfbf; } .ConnectionConfigureInactiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-bottom:solid 1px #999999; padding:3px; margin-top:4px; display:inline; height:20px; color:#333333; background-color:#bfbfbf; } .ConnectionConfigureActiveTab{ font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-top:solid 1px #999999; border-left:solid 1px #999999; border-right:solid 1px #999999; border-bottom:solid 1px #ece9d8; padding:3px; display:inline; height:24px; background-color:#ece9d8; } .UserConnectionTop { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; border-bottom:solid 1px #999999; height:24px; width:100%; } .UserToolBarTextArea{ padding-left:0px; padding-right:0px; padding-bottom:5px; font-weight:normal; font-size:8pt; font-family:Verdana,sans-serif; } .UserToolbarTextArea A:link { COLOR:#3966bf; TEXT-DECORATION:none } .UserToolbarTextArea A:visited { COLOR:#3966bf; TEXT-DECORATION:none } .UserToolbarTextArea A:hover { COLOR:#000000; TEXT-DECORATION:underline } .UserToolbarDisabledLink { COLOR:#7f7f7f; font-size:8pt; font-family:verdana; padding:4px; } .UserToolbarImage { border:medium none; font-size:8pt; cursor:pointer; background-color:#f2f2f2; text-align:center; } .UserCaptionShadow{ border-right:1px solid #add1ff; border-left:1px solid #add1ff; background-color:#f3f3f3; height:2px; background-image:url("/_layouts/images/viewheadergrad.gif"); background-repeat:repeat-x; } .UserGenericHeader { font-weight:bold; font-size:12pt; color:#000000; font-family:arial,sans-serif; } .UserGeneric { padding:8px 5px 7px 5px; } .UserGenericBody { padding:5px 0px 0px 17px; } .UserGenericText { font-size:8pt; font-family:verdana,arial,sans-serif; color:#000000; } .UserBackground { background-color:#FFFFFF; } .UserSectionTitle { width:100%; margin-bottom:5px; padding-bottom:2px; font-weight:bold; border-bottom:solid 1px #c4c4c4; color:#595959 } .UserSectionHead { width:100%; padding:0px 0px 3px 0px; color:#595959; } .UserSectionBody { width:100%; padding:0px 0px 0px 0px; } .UserControlGroup { padding-bottom:10px; padding-top:2px; } .UserSectionFooter { width:100%; margin-top:5px; padding-top:2px; border-top:solid 1px #c8c8c8; color:#000000 } .UserFooter { width:100%; padding:10px 7px 7px 7px; } .UserCommandArea { padding-top:7px; } .UserToolbar { background-image:url("/_layouts/images/topnavunselected.gif"); border-bottom:1px solid #6f9dd9; padding-left:2px; padding-right:2px; background-position:left bottom; background-repeat:repeat-x; background-color:transparent; } .UserCellHover { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; border:solid 1px #2353b2; color:#000000; } .UserCellSelected { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffdf88; border:solid 1px #d2b47a; color:#000000; } .UserCell { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; margin:1px; color:#003399; } .UserGenericBulletItem { padding-bottom:2px; } .ms-ToolPaneFrame { padding:0px; background-color:#f2f2f2; } .ms-ToolPaneOuter { padding:0px; background-color:#f2f2f2; border-top:1px solid #6f9dd9; border-right:2px solid #6f9dd9; } .ms-ToolPaneBody { padding-right:2px; padding-left:0px; padding-bottom:2px; padding-top:2px; } .ms-ToolPaneHeader { background-color:#2353b2; border-style:none; } .ms-ToolPaneBorder { border-right:1px solid #add1ff; border-top:0px solid transparent; border-bottom:0px solid transparent; border-left:1px solid #add1ff; } .ms-ToolPaneClose { background-image:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; background-color:#79a7e3; border-top:solid 1px #e3efff; border-bottom:solid 1px #83b0ec; padding-right:3px; padding-left:0px; } .ms-ToolPaneTitle { color:#000000; font-weight:bold; font-size:8pt; background-image:url("/_layouts/images/topnavselected.gif"); background-repeat:repeat-x; border-left:solid 1px #e3efff; border-top:solid 1px #e3efff; border-bottom:solid 1px #83b0ec; font-family:verdana,arial,helvetica,sans-serif; padding-left:0px; padding-right:7px; padding-top:1px; padding-bottom:2px; background-color:#79a7e3; } .ms-ToolPaneFooter { padding:5px; font-size:8pt; border-top:solid 1px #C8C8C8; color:#595959; font-weight:bold; font-family:verdana,arial,helvetica,sans-serif; } .ms-ToolPaneError { color:#e00000; font-family:verdana,arial,helvetica,sans-serif; font-size:8pt; padding:10px; } .ms-ToolPaneInfo{ font-size:8pt; padding-right:5px; padding-top:5px; padding-bottom:0px; padding-left:5px; color:#FFFFFF; font-family:verdana,arial,helvetica,sans-serif; background-color:#204d89; } .ms-ToolPartSpacing{ padding-top:8px; } .ms-ToolStripSelected { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; background-image:url("/_layouts/images/menubuttonhover.gif"); padding:1px 4px 2px 4px; background-color:#afd2ff; border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; color:#000000; } .ms-ToolStrip { font-family:Verdana,Arial,Sans-Serif; font-size:8pt; padding:1px 4px 2px 4px; background-image:url("/_layouts/images/listheadergrad.gif"); color:#000000; border-top:solid 1px #f2f8ff; border-bottom:solid 1px #d6e8ff; background-color:#afd2ff; } .ms-TPBorder { border:none; } .ms-TPHeader { background-color:#ffdf88; } .ms-TPTitle { padding-left:4px; padding-right:0px; color:#2A4666; font-weight:bold; font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; padding-top:2px; padding-bottom:2px; } .ms-TPBody { color:#000000; font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-TPBody A:link,.ms-TPBody A:visited,.ms-TPBody A:hover { color:#003399; text-decoration:none; cursor:pointer; } .ms-TPCommands{ } .ms-TPInput{ font-size:8pt; color:#000000; font-family:verdana,arial,helvetica,sans-serif; } .ms-PropGridBuilderButton { border:solid 1px #3966bf; width:16px; font-size:8pt; display:none; background-color:#add1ff; } .ms-BuilderBackground { background:#ece9d8; color:#4c4c4c; } .ms-SPZone { border:1px solid #add1ff; padding:5px; background-color:#e3efff; } .ms-SPZoneSelected { border:1px solid #ffa521; background-color:#ffeebe; padding:5px } .ms-SPZoneIBar { border:#f48b3f 3px solid; } .ms-SPZoneLabel { color:#7f7f7f; font-family:tahoma,verdana; font-size:8pt; padding:0px 0px 1px 0px; } .ms-SPZoneCaption{ font-size:9pt; color:#7f7f7f; font-family:tahoma,verdana; } .ms-WPDesign{ background-color:#add1ff; } .ms-WPMenu{ background-color:#add1ff; } .ms-WPTitle { font-weight:bold; font-family:tahoma,sans-serif; color:#4c4c4c; padding-left:3px; padding-right:7px; padding-top:2px; padding-bottom:2px; font-size:10pt; } .ms-WPTitle A:link,.ms-WPTitle A:visited { color:#4c4c4c; text-decoration:none; cursor:pointer; } .ms-WPTitle A:hover { color:#000000; text-decoration:underline; cursor:pointer; } .ms-WPSelected { border:#ffbb77 3px dashed; } .ms-WPBody { font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-WPBody TABLE,.ms-TPBody TABLE { font-size:1em; } .ms-WPBody A:link,.ms-WPBody A:visited { color:#003399; text-decoration:none; } .ms-WPBody A:hover { color:#000000; text-decoration:underline; } .ms-WPBody th,.ms-TPBody th { font-weight:bold; } .ms-WPBody td { font-size:8pt; font-family:verdana,arial,helvetica,sans-serif; } .ms-WPBody h1,.ms-TPBody h1 { font-weight:bold; font-size:200 %; } .ms-WPBody h2,.ms-TPBody h2 { font-weight:bold; font-size:150 %; } .ms-WPBody h3,.ms-TPBody h3 { font-weight:bold; font-size:120 %; } .ms-WPBody h4,.ms-TPBody h4 { font-weight:bold; font-size:100%; } .ms-WPBody h5,.ms-TPBody h5 { font-weight:bold; font-size:80% } .ms-WPBody h6,.ms-TPBody h6 { font-weight:bold; font-size:65%; } .ms-WPBorder,.ms-WPBorderBorderOnly { border-color:#9ac6ff; border-width:1px; border-style:solid; } .ms-WPBorder { border-top-width:0px; } .ms-HoverCellInActive,.ms-SpLinkButtonInActive { border:none; margin:1px; color:#4c4c4c; vertical-align:top; background-color:transparent; } .ms-HoverCellActive,.ms-SpLinkButtonActive { border:#6f9dd9 1px solid; vertical-align:top; background-color:#ffbb47; background-image:url("/_layouts/images/menubuttonhover.gif"); } .ms-HoverCellActiveDark { background-image:url("/_layouts/images/menubuttonhover.gif"); border:solid 1px #868686; background-color:#ffbb47; vertical-align:top; } .ms-SpLinkButtonInActive,.ms-SpLinkButtonActive { padding:1px 1px 1px 3px; } .ms-SpLinkButtonActive a,.ms-SpLinkButtonActive a:hover{ color:#000000; text-decoration:none; } .ms-SPLink { font-family:verdana; font-size:8pt; color:#003399 } .ms-SPLink A:link,.ms-SPLink A:visited { color:#2A4666; text-decoration:none; } .ms-SPButton { font-family:Tahoma; font-size:8pt; } .ms-WPAddButton { height:25px; background:#ffe6a0 url("/_layouts/images/wpqaM.gif") repeat-x; border:solid 1px #FEBA52; padding:0px; margin:0px; cursor:pointer; } .ms-WPAddButtonHover { background:#ffffff url("/_layouts/images/wpqaMH.gif") repeat-x; } .ms-WPAddButton td { vertical-align:middle; padding-left:3px; padding-right:3px; text-align:center; } .ms-WPAddButton span { color:#CD5C01; vertical-align:middle; } .ms-WPAddButtonHover span { color:#000000; vertical-align:middle; } .ms-PartSpacingVertical { font-size:1pt; margin-top:12px; } .ms-PartSpacingHorizontal { font-size:1pt; width:8px; } .ms-WPHeader { } .ms-WPHeader TD{ border-bottom:1px solid #4e7cb7; border-collapse:collapse; } A span.ms-WPEditText{ display:inline; vertical-align:middle; padding-left:1px; padding-right:1px; font-size:8pt; font-family:verdana,arial,sans-serif; color:#000000; text-decoration:none; } .ms-SPzone .ms-WPHeader TD,.ms-SPZoneSelected .ms-WPHeader TD{ border:1px solid #c4c4c4; background-color:#fff9de; background-image:url("/_layouts/images/partgrad.gif"); background-repeat:repeat-x; } .ms-SPZone td.ms-toolbar table,.ms-SPZoneSelected td.ms-toolbar table{ background-color:transparent; } .ms-SPZone tr.ms-viewheadertr table,.ms-SPZoneSelected tr.ms-viewheadertr table,.ms-SPZone .ms-vh2 table,.ms-SPZoneSelected .ms-vh2 table,.ms-SPZone .ms-vh table,.ms-SPZoneSelected .ms-vh table{ background-color:#f2f2f2; } .ms-SPZone .ms-vh table.ms-unselectedTitle,.ms-SPZone .ms-vh2 table.ms-unselectedTitle,.ms-SPZoneSelected .ms-vh table.ms-unselectedTitle,.ms-SPZoneSelected .ms-vh2 table.ms-unselectedTitle { background-color:transparent; } .ms-SPZone .ms-vh table.ms-selectedTitle,.ms-SPZone .ms-vh table.ms-selectedTitle td,.ms-SPZone .ms-vh2 table.ms-selectedTitle,.ms-SPZoneSelected .ms-vh table.ms-selectedTitle,.ms-SPZoneSelected .ms-vh table.ms-selectedTitle td,.ms-SPZoneSelected .ms-vh2 table.ms-selectedTitle { background-color:#dde1e5; } .ms-SPZone table,.ms-SPZoneSelected table{ background-color:#ffffff; } .ms-rtApplyBackground { background-color:#ffdf88; BORDER-BOTTOM:buttonshadow solid 1px; BORDER-RIGHT:buttonshadow solid 1px; } .ms-tbButtonMouseOverDown { BACKGROUND-COLOR:#ffdf88; BORDER-BOTTOM:buttonhighlight solid 1px; BORDER-LEFT:buttonshadow solid 1px; BORDER-RIGHT:buttonhighlight solid 1px; BORDER-TOP:buttonshadow solid 1px; TOP:1px; HEIGHT:22px; WIDTH:23px; } .ms-rtRemoveBackground { background-color:transparent; BORDER-BOTTOM:#ffdf88 solid 1px; BORDER-LEFT:#ffdf88 solid 1px; BORDER-RIGHT:#ffdf88 solid 1px; BORDER-TOP:#ffdf88 solid 1px; } .ms-subsmanageheader { background-color:#f2f2f2; font-family:verdana; font-size:8pt; text-align:left; text-decoration:none; font-weight:bold; vertical-align:top; } .ms-subsmanagecell { color:#000000; font-family:verdana; font-size:.68em; height:18px; vertical-align:top; } .ms-ConnError { color:#ff0000; } .ms-underline { vertical-align:top; border-bottom:1px solid #bfbfbf; padding:3px 4px 4px 4px; } .ms-underlineback { vertical-align:top; border-bottom:1px solid #bfbfbf; padding:3px 4px 4px 4px; background-color:#f2f2f2; } .ms-back { vertical-align:top; padding:2px 4px 4px 4px; background-color:#f2f2f2; } .ms-smallheader,th.ms-smallheader { font-size:8pt; font-weight:bold; color:#000000; font-family:verdana; text-align:left; } .ms-smallsectionline { padding:0px; background-color:#bfbfbf; } .ms-tabselected { border-color:#6F9DD9; border-width:1px; border-style:solid; font-weight:bold; position:relative; top:0px; padding-top:3px; padding-bottom:3px; padding-left:10px; padding-right:10px; color:#003399; background-image:url("/_layouts/images/selectednav.gif"); background-repeat:repeat-x; background-color:#ffe6a0; border-bottom:white; } .ms-tabinactive { font-weight:bold; position:relative; top:0px; padding-top:3px; padding-bottom:3px; padding-left:10px; padding-right:10px; color:#003399; background-image:url("/_layouts/images/topnavunselected.gif"); background-color:#e3efff; background-repeat:repeat-x; border:solid 1px #c2dcff; border-bottom:none; } .ms-tabinactive a:link { color:#003399; text-decoration:none; } .ms-tabinactive a:hover { color:#003399; text-decoration:none; } .ms-tabinactive a:visited { color:#003399; text-decoration:none; } .ms-surveyHBar { font-size:2px; background-color:#3966bf; border:solid; border-width:5px; border-color:#3966bf; } .ms-surveyHBarB { font-size:2px; background-color:#CCCCCC; border:solid; border-width:1px; border-color:#CCCCCC; } .ms-surveyHBarLabel { font-size:8pt; font-family:tahoma,sans-serif; color:#7f7f7f; text-decoration:none; ;height:3.75pt; margin:0; padding:0; border:none; background-color:white; } .ms-surveyVBar { font-size:2px; background-color:#3966bf; } .ms-surveyVBarB { font-size:2px; background-color:#CCCCCC; vertical-align:bottom; } .ms-surveyVBarBI { font-size:2px; background-color:#3966bf; vertical-align:top; } .ms-surveyVBarS { font-size:2px; } .ms-surveyVBarT { font-size:8pt; font-family:verdana; color:#7f7f7f; } .ms-surveyVBarTC { font-size:8pt; font-family:verdana; text-align:center; color:#7f7f7f; } .ms-surveyHR { color:#CCCCCC; height:1px; } .ms-surveyTotal { font-size:8pt; font-family:verdana; color:#7f7f7f; padding-left:10px; padding-right:0px; } .ms-uploadborder{ border:1px solid #83b0ec; } .ms-uploadcontrol{ background-color:#f2f2f2; } .ms-spaceBetContentAndButton { height:10px; } .ms-ButtonHeightWidth { width:10.5em; font:8pt tahoma; height:2.1em; padding-top:0.1em; padding-bottom:0.4em; } .ms-NarrowButtonHeightWidth { width:5em; height:2em; font:8pt tahoma; padding:0; } .ms-ButtonHeightWidth2 { height:2.1em; font:8pt tahoma; width:18.1em; padding-top:0.1em; padding-bottom:0.4em; } .ms-SpaceBetButtons { width:6px; } .ms-summarycustombody{ margin-left:3px; margin-top:5px; margin-right:6px; } .ms-summarystandardbody{ margin-left:0px; margin-top:0px; margin-right:6px; } .ms-stylebox{ font-family:verdana; border:1px solid #CCCCCC; text-align:left } .ms-stylelabel{ font-family:verdana; font-size:8pt; color:#4c4c4c; } .ms-styleheader{ font-family:verdana; font-size:.68em; background-color:#f9f9f9; } .ms-styleheader a:link,.ms-stylebody a:link{ color:#003399; text-decoration:none; } .ms-styleheader a:visited,.ms-stylebody a:visited{ text-decoration:none } .ms-stylebody{ font-family:verdana; font-size:8pt; } .ms-styleheader a:hover,.ms-stylebody a:hover{ color:#000000; text-decoration:underline; } .ms-alternating{ background-color:#f9f9f9; } .ms-alternatingstrong{ background-color:#e3efff; } .ms-alternatingstrong td,.ms-basictable .ms-alternating td{ border-bottom:1px solid #d8d8d8; border-top:1px solid #d8d8d8; } .ms-alternatingstrong td td,.ms-basictable .ms-alternating td td{ border:0px; } .ms-MWSSelectedInstance{ color:#000000; text-decoration:none; } .ms-MWSInstantiated a:link,.ms-MWSInstantiated a:visited{ color:#003399; text-decoration:none; } .ms-MWSInstantiated a:hover{ color:#8ebbf5; text-decoration:underline; } .ms-MWSUninstantiated a:link,.ms-MWSUninstantiated a:visited{ color:#003399; text-decoration:none; } .ms-MWSUninstantiated a:hover{ color:#003399; text-decoration:underline; } .ms-entity-resolved{ color:#000000; text-decoration:underline; } .ms-entity-unresolved{ color:#000000; cursor:pointer; background-image:url("/_layouts/images/squiggle.gif"); background-repeat:repeat; background-position:left bottom; padding-bottom:2px; vertical-align:text-top; font-style:italic; } .ms-ganttTitleCell { text-align:left; padding-left:7px; width:222px; height:22px; border:solid 1px #d6e8ff; } .ms-ganttTitleCellText { width:222px; height:22px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:22px; } .ms-ganttTitleHeaderCell { text-align:left; padding-left:7px; width:222px; border:solid 1px #d6e8ff; } .ms-ganttInnerTable td,.ms-ganttInnerTable th { font-family:verdana; font-size:.68em; } .ms-ganttDiv { position:absolute; overflow:auto; height:272px; width:100%; } .ms-ganttDivNotIE { position:inherit; overflow:auto; height:272px; width:100%; } .ms-ganttOuterTable { width:100%; height:272px; } .ms-ganttInnerTable th { color:#4e7cb7; } .ms-ganttMajorTimeUnitHeaderCell { text-align:center; border-left:solid 1px #d6e8ff; border-right:solid 1px #d6e8ff; background-color:#f9f9f9; } .ms-ganttDetailTimeUnitRow td,.ms-ganttDetailTimeUnitRow th { text-align:center; border:solid 1px #d6e8ff; background-color:#f9f9f9; } .ms-ganttDetailTimeUnitRow abbr { border:none; } .ms-GWD { } .ms-GNWD { background:#f9f9f9; } .ms-GT { background:cornsilk; } .ms-ganttTransparentImage { position:absolute; width:100%; height:20px; z-index:2; } .ms-ganttNonTransparentImage { position:relative; z-index:1; } .ms-dgselected { background:#5980A5; color:#FFFFFF; vertical-align:middle; font-weight:bold; } .ms-dgselected a { color:#FFFFFF; font-weight:bold; } .ms-dgselected a:visited { color:#FFFFFF; font-weight:bold; } .ms-dgbottom { border-bottom:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; } .ms-dgadd a { font-weight:bold; } .ms-dgadd { vertical-align:middle; border-top:1px solid #000000; border-left:1px solid #000000; border-right:1px solid #000000; border-bottom:1px solid #C0C6E0; } .ms-infobar{ font-family:Tahoma; background-color:#EDF0D9; border-color:#999999; border-width:1px; border-style:solid; font-size:10px; } .ms-selwidth { font-family:tahoma,verdana; font-size:1.2em; width:158px; } .ms-featurestatus { width:100px; vertical-align:middle; } .ms-featurestatustext { padding:4px; background-color:#003399; color:white; font-weight:bold; } .ms-featurealtrow { background-color:#e9e9e9; } .ms-unpublishedresource{ border-style:dashed; border-width:thick; border-color:#ff0000; margin:5px 5px 5px 5px; } .ms-inconsistentresource{ border-style:dashed; border-width:thick; border-color:#00FF00; margin:5px 5px 5px 5px; } .ms-annotatedanchorspacing{ top:3px; left:3px; width:3px; height:3px; } .ms-consolemptablerow{ background-color:#79a7e3; } .ms-consolestatus,.ms-consoleerror,.ms-consolemessage,.ms-consoletoolbar{ font-size:8pt; font-family:Tahoma,verdana; } .ms-consoleframe,.ms-consolestatusframe{ border-bottom-width:1px; border-left-width:0px; border-right-width:0px; border-style:solid; } .ms-consolestatuscell{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-position:top left; background-color:#d5dced; text-align:center; } .ms-consoleframe{ border-top-width:1px; border-color:#83b0ec; } .ms-consolestatusframe{ border-top-width:0px; background-color:#f6fdfd; background-repeat:repeat-x; border-color:#FFFFFF; } td.ms-consolestatusmajorframe,td.ms-consolestatusminorframe,td.ms-consolestatuscheckoutframe{ background-repeat:repeat-x; } .ms-consolestatusmajorframe{ background-color:#fff699; background:url('/_layouts/images/cnspgrdn.gif'); } .ms-consolestatusminorframe{ background-color:#e3efff; background:url('/_layouts/images/cnsugrdn.gif'); } .ms-consolestatuscheckoutframe,.ms-consoleminiframe{ background-color:#fff8b2; background:url('/_layouts/images/cnsugrdn.gif'); } .ms-consoleminiframe{ height:24px; background-repeat:repeat-x; } .ms-consolestatusshadowframe{ background-repeat:repeat-x; background:url('/_layouts/images/cnsshdo.gif'); height:4px; } .ms-consolestatusshadowframeleft{ background:url('/_layouts/images/cnsshdol.gif'); height:4px; width:3px; } .ms-consolestatusshadowframeright{ background:url('/_layouts/images/cnsshdor.gif'); height:4px; width:3px; } .ms-consolemode{ background-color:#fff699; color:#000000; font-size:8pt; font-family:verdana; } .ms-consolestatus{ color:#666666; font-size:8pt; font-family:verdana; padding-top:3px; padding-bottom:3px; text-decoration:none; } .ms-consolestatus a{ font-family:Verdana,serif; font-size:8pt; color:#3966bf; text-decoration:none; } .ms-consolestatus a:hover{ font-family:Verdana,serif; font-size:8pt; color:#3966bf; text-decoration:underline; } .ms-consolehr{ background-color:#CDCDCD; height:1px; } .ms-consoleerror{ color:#ff0000; text-decoration:none; } .ms-consoleerror a{ color:#3966bf; text-decoration:none; } .ms-consoleerror a:hover{ color:#3966bf; text-decoration:underline; } .ms-consolemessage{ color:#204d89; text-decoration:none; } .ms-consolemessage a{ text-decoration:none; } .ms-consolemessage a:hover{ text-decoration:underline; } .ms-consoletoolbar{ text-decoration:none; color:#003399; } .ms-consoletoolbar a{ text-decoration:none; } .ms-consoleqaback td{ padding-left:3px; padding-right:6px; background-image:url("/_layouts/images/qarsgrd.gif"); } .ms-consoleqabackhover td{ background-image:url("/_layouts/images/qahvgrd.gif"); padding-left:3px; padding-right:6px; } .ms-consoleqaemptyborderh{ height:1px; } .ms-consoleqaemptyborderv{ width:1px; } .ms-consoleqaemptycorner{ width:1px; height:1px; } .ms-consoleqaborderh,.ms-consoleqaborderv,.ms-consoleqacorner{ background-color:#CAD7E7; } .ms-consoleqaborderhhover,.ms-consoleqabordervhover,.ms-consoleqacornerhover{ background-color:#D2B47A; } .ms-consoleqaborderh{ height:1px; } .ms-consoleqaborderv{ width:1px; } .ms-consoleqacorner{ width:1px; height:1px; } .ms-consoleqaborderhhover{ height:1px; } .ms-consoleqabordervhover{ width:1px; } .ms-consoleqacornerhover{ width:1px; height:1px; } .ms-webpartpickerpagebackground{ background-color:#efebc2; } .ms-webpartpickerpageinnerbackground{ background-color:#f2f2f2; } .ms-webpartpickerpagetext{ color:#656B77; text-align:left; } .ms-webpartpickerpagetext a{ color:#3966bf; text-align:left; } .ms-webpartpickerpageHeaderBorder a{ color:#3966bf; } .ms-webpartpickeralign{ padding-left:3px; padding-right:7px; padding-top:2px; padding-bottom:2px; } .ms-webpartpickerwarning{ color:#ff0000; } .ms-viewtotalselect{ width:104px; } .hierarchy-node-partialcheck{ font-style:italic; } .ms-wikitoolbar a.ms-toolbar{ color:#124890; } .ms-wikieditouter { height:23px; font-size:8pt; font-family:tahoma; position:absolute; right:9px; top:30px; border:1px solid #6393D4; border-bottom:none; text-align:center; border-right-width:2px; } .ms-wikieditsecond { } .ms-wikieditthird { background:url(/_layouts/images/toolgrad.gif); padding-left:3px; } .ms-wikieditorange { } .ms-wikieditorangeinnera { height:0px; font-size:0px; line-height:0px; } .ms-wikitoolbar a:hover.ms-toolbar { text-decoration:underline; color:#000000; } .ms-wikicontent a{ text-decoration:underline; } .ms-wikicontent a.ms-wikilink { text-decoration:none; } .ms-wikicontent a.ms-missinglink { text-decoration:none; border-bottom:1px dashed #000000; } .ms-wikicontent { color:#333333; line-height:1.3; } .ms-recentchanges { vertical-align:top; padding:7px 1px 9px 4px; } .errorinl { FONT-SIZE:8pt; COLOR:#ff0000; FONT-FAMILY:verdana,sans-serif; } .ms-diffdeletenostrike,.ms-diffdelete { background-color:#e0e0e0; } .ms-diffdelete { text-decoration:line-through; } .ms-diffinsert { background-color:#ffeaad; border:1px solid #ffffff; } .ms-wikifieldheader{ font-family:tahoma; font-size:8pt; margin-top:15px; margin-bottom:10px; font-weight:bold; color:#515151; border-bottom:1px solid #C3C3C3; padding:2px; } ul.ms-blogAdminLinks { list-style:none; margin:4px 10px 0 0; padding:0 0 0 4px; } ul.ms-blogAdminLinks li { background:transparent url(/_layouts/images/rect.gif); background-position:center left; background-repeat:no-repeat; margin:0 0 0 0; padding:0 0 3px 15px; } ul.ms-blogAdminLinks li a{ color:#003399; } .ms-PostWrapper,.ms-CommentsWrapper,.ms-blogrss { color:#4c4c4c; width:588px; } .ms-blogrssnav{ color:#4c4c4c; padding-bottom:5px; padding-top:5px; padding-left:5px; border-top:solid 1px #add1ff; } .ms-blogrssnav a{ color:#003399; text-decoration:none; font-weight:bold; font-size:8pt; } .ms-blogrssnav img{ border:none; } .ms-PostTitle{ font-size:16pt; border-top:solid 1px #e3efff; padding-top:6px; } .ms-PostTitle span{ position:relative; left:-2px; right:auto; } .ms-PostTitle a { color:#4c4c4c; text-decoration:none; } .ms-PostFooter,.ms-CommentFooter{ font-size:8pt; color:#999999; padding-bottom:22px; } .ms-PostFooter a,.ms-CommentFooter a{ color:#6c90d8; white-space:nowrap; } .ms-PostBody { color:#4c4c4c; font-size:8pt; line-height:1.7em; padding-top:6px; padding-bottom:12px; } .ms-PostBody a{ color:#0000CC; } .ms-PostBody p{ margin:0 0 1em 0; } h3.ms-PostDate { font-size:8pt; color:#7f7f7f; margin:0; border-bottom:solid 1px #6f9dd9; padding-bottom:5px; } h3.ms-CommentHeader { font-size:16pt; font-weight:normal; color:#999999; margin:0 0 0 0; padding:0 0 0 0; position:relative; top:-.25em; left:-2px; right:auto; } h4.ms-CommentTitle { color:#666666; font-size:8pt; line-height:1.7em; padding:0px 0 0 0; margin:0px; } .ms-CommentBody{ color:#4c4c4c; font-size:8pt; line-height:1.7em; padding-bottom:12px; padding-top:6px; } .ms-commentsempty{ color:#4c4c4c; font-size:8pt; padding-bottom:22px; padding-top:6px; } .ms-blogedit{ font-size:8pt; line-height:1.7em; vertical-align:top; border-top:solid 1px #e3efff; } .ms-blogedit a{ height:22px; padding:0px 5px 0 5px; color:#003399; background-image:url("/_layouts/images/toolgrad.gif"); background-color:#d6e8ff; border:1px solid #83b0ec; border-top:none; } .ms-blogrss { font-size:8pt; border-top:solid 1px #e3efff; padding-top:5px; } .ms-blogrss a{ color:#003399; } .ms-blogrss img { vertical-align:middle; border:none; } .ms-commenttable{ margin:15px 0 0 0; padding:0px; } .ms-commenttable td{ border-top:solid 1px #d6e8ff; } .ms-CommentFooter a { padding-top:4px; margin:0; } .ms-pickerwait { width:100%; height:100%; margin:0px; background-color:#FFFFFF; font-family:verdana; font-size:8pt; color:#000000; } .ms-pickerdropdown { margin-left:5px; } .ms-CategoryTitleCell { padding:0px 0px 0px 0px; } .ms-CategoryTitleCell a { display:block; background:transparent url("/_layouts/images/navbullet.gif"); background-position:left top; background-repeat:no-repeat; margin:0px; padding:3px 0px 3px 16px; } .ms-BlogEmptyListText { padding:2px 2px 2px 10px; } .ms-BlogNavigator p.ms-descriptiontext { display:none; } .ms-BlogNavigator div.ms-navheader{ background-color:#d6e8ff; border-top:solid 1px #f2f8ff; border-left:solid 1px #f2f8ff; border-bottom:1px solid #add1ff; padding:1px 6px 3px 6px; } .ms-BlogNavigator div.ms-navheader a{ color:#003399; } .ms-BlogNavigator div.ms-navheader{ color:#4c4c4c; font-weight:bold; } .ms-BlogNavigator .ms-quicklaunch table td{ border-top:none; } .ms-BlogNavigator div.ms-WPBody{ border-top:solid 1px #add1ff; } .ms-BlogNavigator div.ms-PartSpacingVertical { font-size:1pt; margin-top:0px; } .ms-BlogNavigator td.ms-addnew{ padding-left:6px; } .ms-BlogNavigator td.ms-addnew img{ margin-right:2px; } .ms-BlogEmptyListText{ padding:4px 4px 2px 6px; color:#4c4c4c; } .ms-pickertitlesection { background:#ffffff url("/_layouts/images/siteTitleBKGD.gif") repeat-y top right; } .ms-pickertitlesection .ms-descriptiontext { padding:8px 3px 8px 3px; } .ms-pickeremptyresulttexttr .ms-descriptiontext{ padding-left:5px; padding-top:6px; } .ms-pickerbodysection { background:#ece9d8 url("/_layouts/images/viewheadergrad.gif") repeat-x; border-top:solid 1px #a5a5a5; } .ms-pickerresultoutertable { table-layout:fixed; } .ms-pickerresulttable { border-collapse:separate; } .ms-pickerresultdiv { background-color:#ffffff; border-top-width:1px; border-bottom-width:1px; border-left-width:1px; border-right-width:1px; border-style:inset; OVERFLOW:scroll; width:100%; height:100%; } .ms-pickerbuttonsection { background-color:#ece9d8; } .ms-pickersectionline { background-color:#d0d0bf; } .ms-pickersearchbox { height:19px; color:#000000; } .ms-pickersearchsummarytr td.ms-descriptiontext { padding-left:6px; padding-top:5px; color:#525252; font-weight:bold; } .ms-pickerwaittexttr td.ms-descriptiontext { text-align:center; } .ms-ph { padding-left:5px; padding-right:5px; background-image:none; background-color:#f3f3f3; color:#949494; white-space:nowrap; } .ms-naveditor .ms-vb2,.ms-naveditor .ms-gb{ padding:3px 3px 0 3px; height:22px; } .ms-naveditor .ms-gb{ border-top:0; } .ms-naveditor .ms-gb img{ margin-top:1em; } @media print{ .ms-leftareacell,.ms-globallinks,.ms-siteaction,.ms-areaseparatorleft,.ms-rightareacell,.ms-areaseparatorright, .ms-areaseparatorcorner,.ms-titlearealeft,.ms-titlearearight,.ms-searchform,.ms-banner,.ms-buttonheightwidth,.ms-buttonheightwidth2{ display:none; } } .ms-hidden,a.ms-skip,a:hover.ms-skip,a:visited.ms-skip { position:absolute; left:0px; top:-500px; width:1px; height:1px; overflow:hidden; } a:active.ms-skip,a:focus.ms-skip { position:absolute; left:2px; top:2px; width:auto; height:auto; background-color:white; border-color:black; border-width:1px; border-style:Solid; color:black; padding-top:2px; padding-bottom:2px; padding-left:4px; padding-right:4px; } .ms-dialogBody { background-color:#ece9d8; } .ms-dialogHeader { background-color:#ffffff; background-position:right top; background-image:url('/_layouts/images/dialogTitleBKGD.jpg'); background-repeat:repeat-y; } .ms-dialogHeaderDescription { font-family:Tahoma; font-size:8pt; color:#666666; padding-right:20px; } .ms-dialogHelpLink,.ms-dialogHelpLink a { font-family:Tahoma; font-size:8pt; color:#666666; text-decoration:none; } .ms-dialogHeadingDivider1 { background-color:#ffffff; } .ms-dialogHeadingDivider2 { background-color:#9e9fa1; } .ms-dialogHeadingDivider3 { background-color:#d6d2bf; } .ms-dialogBodyMain { background-color:#ffffff; border:1px solid #7f9db9; font-family:Tahoma; font-size:8pt; color:#666666; } .ms-dialogButtonSection { border-top:1px solid #d0d0bf; } .ms-dialogButtonCell,.ms-dialogButtonCell INPUT { font-family:Tahoma; font-size:8pt; } .ms-dialogHoverRow { background-color:#f2f4e3; } .ms-dialogSelectedRow { background-color:#e6e6e6; } .ms-aggrwebpartcell { padding-right:5px; padding-left:5px; } a.ms-acclink { width:auto; height:1.1em; background-color:white; border-color:black; border-width:1px; border-style:solid; padding-top:2px; padding-bottom:2px; padding-left:4px; padding-right:4px; color:black; } a.ms-imnlink { cursor:default; } /* _lcid="1033" _version="12.0.6500" _LocalBinding */ .ms-SrvMenuUI { display:none; } .ms-MenuUIPopupBody { border:1px solid #868686; margin:0px; padding:0px; } .ms-MenuUIPopupBody TABLE { color:#003399; font-size:100%; margin:0px; padding:0px; } .ms-MenuUIPopupBody div { cursor:pointer; } .ms-MenuUI,.ms-MenuUILarge,.ms-MenuUIRtL,.ms-MenuUILargeRtL { background-color:#fafafa; background-repeat:repeat-y; cursor:pointer; } .ms-MenuUI,.ms-MenuUILarge { background-position:left; } .ms-MenuUIRtL,.ms-MenuUILargeRtL { background-position:right; } .ms-MenuUI { background-image:url("/_layouts/images/MGrad.gif"); } .ms-MenuUILarge { background-image:url("/_layouts/images/MGradLarge.gif"); width:250px; } .ms-MenuUIRtL { background-image:url("/_layouts/images/MGradRtl.gif"); } .ms-MenuUILargeRtL { background-image:url("/_layouts/images/MGradLargeRtl.gif"); width:250px; } .ms-MenuUIDisabled SPAN { color:#888888; } .ms-MenuUIItemTableCell,.ms-MenuUIItemTableCellCompact { padding:2px; color:#003399; text-decoration:none; font-size:8pt; font-family:tahoma; } .ms-MenuUIItemTableCellCompact { padding:1px 2px 1px 2px; } .ms-MenuUIItemTableCell A,.ms-MenuUIItemTableCellHover A,.ms-MenuUIItemTableCellCompact A,.ms-MenuUIItemTableCellCompactHover A { color:#003399; text-decoration:none; } .ms-menuitemdescription { color:#666666; } .ms-MenuUIItemTableCellHover,.ms-MenuUIItemTableCellCompactHover { padding:1px; color:#003399; text-decoration:none; font-size:8pt; font-family:tahoma; } .ms-MenuUIItemTableCellCompactHover { padding:0px 1px 0px 1px; } .ms-MenuUIItemTableHover { background-color:#ffe6a0; border:1px solid #d2b47a; } .ms-MenuUIItemTableHover .ms-menuitemdescription { color:#333333; } .ms-MenuUIIcon,.ms-MenuUIIconRtL { height:16px; width:24px; } .ms-MenuUIIconLarge,.ms-MenuUIIconLargeRtl { height:16px; width:40px; } .ms-MenuUIIcon,.ms-MenuUIIconLarge { padding: 0px 6px 0px 2px; } .ms-MenuUIIconRtL,.ms-MenuUIIconLargeRtl { padding: 0px 2px 0px 6px; } .ms-MenuUILabel,.ms-MenuUILabelRtL,.ms-menuuilabelcompact,.ms-menuuilabelcompactRtl { width:100%; } .ms-MenuUILabel { padding: 2px 0px 3px 6px; } .ms-MenuUILabelRtL { padding: 2px 6px 3px 0px; } .ms-menuuilabelcompact{ padding:1px 0px 1px 7px; } .ms-menuuilabelcompactRtl{ padding:1px 7px 1px 0px; } .ms-MenuUISubmenuArrow { height:16px; width:16px; } .ms-MenuUISeparator,.ms-MenuUISeparatorRtL,.ms-MenuUISeparatorLarge,.ms-MenuUISeparatorLargeRtl { background-color:#c5c5c5; font-size:1px; height:1px; line-height:1px; } .ms-MenuUISeparator { margin: 0px 0px 0px 32px; } .ms-MenuUISeparatorRtL { margin: 0px 32px 0px 0px; } .ms-MenuUISeparatorLarge { margin:0px 0px 0px 48px; } .ms-MenuUISeparatorLargeRtl { margin:0px 48px 0px 0px; } .ms-MenuUICheckMark { background-image:url("/_layouts/images/ChkMrk.gif"); } .ms-MenuUIItemTableCellDisabled { color:#999999; } .ms-sbtable{ color:#000000; font-family:Verdana; font-size:0.7em; font-style:normal;font-weight:normal } .ms-sbtablealt{ color:#000000; font-family:Verdana; font-size:0.7em; font-style:normal;font-weight:normal } .ms-sbtable-ex{ width:100%; border-collapse:collapse; margin-top:2px; margin-left:2px; } .ms-sbtable-border{ border:1px solid #97b4e9; } td.ms-sbcell{ padding:0px; padding-left:2px; white-space:nowrap; border:solid 1px #7f9db9; } td.ms-sbcellnoborder{ padding-right:2px; white-space:nowrap; border:0; } .ms-sbtext{ font-family:Tahoma; font-size:1em; font-weight:bold; } .ms-sbplain{ font-family:Tahoma; font-size:8pt; border:none; } .ms-sbplainwithborder{ font-family:Tahoma; font-size:8pt; } td.ms-sblink{ padding-right:14px; border:none; } .ms-sblink a:link,.ms-sblink a:visited{ font-family:Tahoma; font-size:8pt; color:#666666; text-decoration:none; padding-left:4px; } .ms-sblink a:hover{ color:#000000; text-decoration:underline; } td.ms-sbgo{ background-color:#e9f2fd; padding-left:3px; padding-right:3px; padding-bottom:1px; padding-top:1px; } .ms-sbLastcell,.ms-rightbodysectionsearchbox{ width:100%; } .ms-sbLastCell{ padding-right:10px; } td.ms-sbscopes{ border:none !important; } select.ms-sbscopes{ font-family:tahoma,verdana; font-size:8pt; width:170px; } .srch-WPBody{ margin:0px; font-family:tahoma; font-size:1em; color:#666666; } .srch-results{ } .srch-sort{ COLOR:#333333; FONT-SIZE:1.0em; } .srch-sort A:link,.srch-sort A:visited{ text-decoration:none; color:#003399; } .srch-sort a:hover{ color:#FF0000; } .srch-sort-right{ float:right; COLOR:#333333; FONT-SIZE:1.0em; padding-bottom:4px; } .srch-sort-right A:link,.srch-sort-right A:visited{ text-decoration:none; color:#003399; } .srch-sort-right a:hover{ color:#FF0000; } .srch-summary{ COLOR:#333333; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; } .srch-summary A:link,.srch-summary A:visited{ text-decoration:none; color:#003399; } .srch-summary a:hover{ color:#FF0000; } .srch-stats{ COLOR:#333333; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; background-color:#ececec; text-align:left; white-space:nowrap; } .srch-stats A:link{ text-decoration:none; color:#003399; } .srch-stats a:hover{ color:#FF0000; } .srch-Description{ FONT-SIZE:1.0em; MARGIN:0px 0px 4px;COLOR:#333333; FONT-FAMILY:Tahoma; } .srch-Description b{ font-weight:bold; COLOR:#333333; } .srch-alertme a:link,.srch-alertme A:visited{ MARGIN:0px 0px 0px; } .srch-alertme a:hover{ MARGIN:0px 0px 0px; } .srch-Title{ FONT-SIZE:1.2em; MARGIN:0px 0px 5px; COLOR:#003399; FONT-FAMILY:Tahoma; } .srch-Title A:link,.srch-Title A:visited{ text-decoration:none; color:#003399; } .srch-Title a:hover{ color:#FF0000; text-decoration:underline; } .srch-URL A:link,.srch-URL A:visited{ color:#008800 !important; text-decoration:none; } .srch-URL a:hover{ color:#FF0000; text-decoration:underline; } .srch-Metadata{ BORDER-TOP:#e0ded5 1px solid; FONT-SIZE:1.0em; MARGIN:0px 0px 15px;COLOR:#8c8c8c; FONT-FAMILY:Tahoma; } .srch-dup .srch-Page-bg{ } .srch-Page{ COLOR:#666666; FONT-WEIGHT:bold; FONT-SIZE:1.0em; FONT-FAMILY:Tahoma; background-color:#ececec; text-align:right; } .srch-Page A:link,.srch-Page A:visited{ text-decoration:none; color:#3764a0; FONT-WEIGHT:normal; } .srch-Page a:hover{ color:#FF0000; } .srch-dup A:link,.srch-dup A:visited{ COLOR:#517acc } .srch-Icon{ margin-right:4; } .srch-ActionLink a{ text-decoration:none; font-size:.85em; font-style:italic; color:336699; margin-top:2; margin-bottom:0; } .srch-ActionLink a:hover{ color:#FF0000; } .ms-searchresultstitlearea{ background-image:url("/_layouts/images/pageTitleBKGD.gif"); background-repeat:repeat-x; background-color:#d6e8ff; text-align:center; padding-left:18px; padding-top:20px; border-bottom:1px solid #6f9dd9; height:85px; } .ms-searchresultsareaSeparator{ background-color:#d6e8ff; padding:0px; } ------------v0R7J6g1aaWINvTDUDfdRA--