Content-Type: multipart/related; start=; boundary=----------czcpoCQ0yTmKCtOHEE1Zta Content-Location: http://www1.agenziaentrate.it/documentazione/finanziaria/domanda+5+per+mille/motore.htm Subject: =?utf-8?Q?Motore=20di=20ricerca=20del=20codice=20fiscale=20dei=20soggetti?= MIME-Version: 1.0 ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=motore.htm Content-Type: text/html; name=motore.htm Content-ID: Content-Location: http://www1.agenziaentrate.it/documentazione/finanziaria/domanda+5+per+mille/motore.htm Content-Transfer-Encoding: 8bit Motore di ricerca del codice fiscale dei soggetti

Menu di servizio

Ti trovi in:Home -  Motore di ricerca del codice fiscale dei soggetti

Motore di ricerca del codice fiscale dei soggetti


 

Risultati 1 - 1 su 1
Risultato della ricerca filtrati per codice fiscale e ordinati per denominazione
DenominazioneIndirizzoCittāProvinciaCAPCodice FiscaleTipo
ASSOCIAZIONE SPORTIVA DILETTANTISTICA WALTER BERTINI TENNIS CLUB ACADEMYVIA ALESSIO OLIVIERI 15MILANOMILANO2015210693880154E
------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=function.js Content-Type: application/javascript; name=function.js Content-Location: http://www1.agenziaentrate.it/documentazione/finanziaria/domanda+5+per+mille/js/function.js Content-Transfer-Encoding: Base64 dmFyIGlkb2dnZXR0bz1udWxsOw0KZnVuY3Rpb24gZmluZFBvc1gob2JqKQ0Kew0K CXZhciBjdXJsZWZ0ID0gMDsNCglpZiAob2JqLm9mZnNldFBhcmVudCkNCgl7DQoJ CXdoaWxlIChvYmoub2Zmc2V0UGFyZW50KQ0KCQl7DQoJCQljdXJsZWZ0ICs9IG9i ai5vZmZzZXRMZWZ0DQoJCQlvYmogPSBvYmoub2Zmc2V0UGFyZW50Ow0KCQl9DQoJ fQ0KCWVsc2UgaWYgKG9iai54KQ0KCQljdXJsZWZ0ICs9IG9iai54Ow0KCXJldHVy biBjdXJsZWZ0Ow0KfQ0KDQpmdW5jdGlvbiBmaW5kUG9zWShvYmopDQp7DQoJdmFy IGN1cnRvcCA9IDA7DQoJaWYgKG9iai5vZmZzZXRQYXJlbnQpDQoJew0KCQl3aGls ZSAob2JqLm9mZnNldFBhcmVudCkNCgkJew0KCQkJY3VydG9wICs9IG9iai5vZmZz ZXRUb3ANCgkJCW9iaiA9IG9iai5vZmZzZXRQYXJlbnQ7DQoJCX0NCgl9DQoJZWxz ZSBpZiAob2JqLnkpDQoJCWN1cnRvcCArPSBvYmoueTsNCglyZXR1cm4gY3VydG9w Ow0KfQ0KDQpmdW5jdGlvbiBjb250cm9sbGFMdW5nKHRoZUZpZWxkLGRpbSxsYWJl bFN0cmluZykgDQp7IA0KICAgaWYgKHRoZUZpZWxkLnZhbHVlLmxlbmd0aD5kaW0p IA0KICAgeyANCiAgICAgIGFsZXJ0KCJJbnNlcmlyZSBhbCBtYXNzaW1vICIgKyBk aW0gKyAiIGNhcmF0dGVyaSBuZWwgY2FtcG8gIiArIGxhYmVsU3RyaW5nICsgIi4i KTsgDQogICAgICB0aGVGaWVsZC52YWx1ZT10aGVGaWVsZC52YWx1ZS5zdWJzdHJp bmcoMCwgZGltKTsNCiAgICAgIHRoZUZpZWxkLmZvY3VzKCkNCiAgICAgIHJldHVy biBmYWxzZQ0KICAgfQ0KICAgZWxzZXsNCiAgICAgIHJldHVybiB0cnVlDQogICB9 DQp9IA0KDQpmdW5jdGlvbiBjb250cm9sbGFDYW1waShmb3JtKSANCnsgDQoJdmFy IG5vZXJyPXRydWU7DQoJaWYgKCFjb250cm9sbGFMdW5nKGZvcm0uQVUsMjU0LCJB dXRvcmUiKSl7DQoJCW5vZXJyPWZhbHNlOw0KCX0NCglpZiAoIWNvbnRyb2xsYUx1 bmcoZm9ybS5UVCwyNTQsIlRpdG9sbyIpKXsNCgkJbm9lcnI9ZmFsc2U7DQoJfQ0K CWlmICghY29udHJvbGxhTHVuZyhmb3JtLlNUVCwzOTksIlNvdHRvVGl0b2xvIikp ew0KCQlub2Vycj1mYWxzZTsNCgl9DQoJaWYgKCFjb250cm9sbGFMdW5nKGZvcm0u S0VZLDI1NCwiUGFyb2xlIGNoaWF2ZSIpKXsNCgkJbm9lcnI9ZmFsc2U7DQoJfQ0K CWlmICghY29udHJvbGxhTHVuZyhmb3JtLk5ULDI1NCwiTm90ZSIpKXsNCgkJbm9l cnI9ZmFsc2U7DQoJfQ0KDQpyZXR1cm4gbm9lcnI7DQp9IA0KDQpmdW5jdGlvbiBj YXRjYWxjKG9nZ2V0dG8saWRvZ2cpew0KICAgdmFyIGNhbGVuZGFyID0gbmV3IENh bGVuZGFyKDAsbnVsbCxTZWxlemlvbmFDYWxlbmRhcmlvLENoaXVkaUNhbGVuZGFy aW8pOw0KICAgLy9pZG9nZ2V0dG89b2dnZXR0by5pZDsNCiAgIGlkb2dnZXR0bz1p ZG9nZzsNCiAgIGNhbGVuZGFyLnNldERhdGVGb3JtYXQoIiVkLyVtLyVZIik7ICAg IC8vIHRoZSBkYXRlIGZvcm1hdA0KICAgY2FsZW5kYXIuY3JlYXRlKCk7IA0KICAg Ly9jYWxlbmRhci5zaG93KCk7DQogICBjYWxlbmRhci5zaG93QXRFbGVtZW50KG9n Z2V0dG8sICJCciIpOw0KICAgY2FsZW5kYXIucGFyc2VEYXRlKGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKGlkb2dnKS52YWx1ZSk7DQogICByZXR1cm4gdHJ1ZTsNCn0N Cg0KDQpmdW5jdGlvbiBTZWxlemlvbmFDYWxlbmRhcmlvKGNhbGVuZGFyLCBkYXRl KSB7DQogIHZhciBpbnB1dF9maWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KGlkb2dnZXR0byk7DQogIGlucHV0X2ZpZWxkLnZhbHVlID0gZGF0ZTsNCiAgaWYg KGNhbGVuZGFyLmRhdGVDbGlja2VkKSB7DQogICBjYWxlbmRhci5jYWxsQ2xvc2VI YW5kbGVyKCk7IC8vIHRoaXMgY2FsbHMgIm9uQ2xvc2UiIChzZWUgYWJvdmUpDQog IH0NCn0NCg0KZnVuY3Rpb24gQ2hpdWRpQ2FsZW5kYXJpbyhjYWxlbmRhcikgew0K ICAgY2FsZW5kYXIuaGlkZSgpOyAgIA0KICAgLy8gb3IgY2FsZW5kYXIuZGVzdHJv eSgpOw0KfQ0KDQo= ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=all_sg.js Content-Type: application/javascript; name=all_sg.js Content-Location: http://www1.agenziaentrate.it/pie/js/all_sg.js Content-Transfer-Encoding: Base64 Ly8xMi8xMC8yMDEwIDE3OjEwOjMyDQoNCi8vLi4vanF1ZXJ5LmpzDQovKiEKICog alF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS40LjIKICogaHR0cDovL2pxdWVy eS5jb20vCiAqCiAqIENvcHlyaWdodCAyMDEwLCBKb2huIFJlc2lnCiAqIER1YWwg bGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2Vz LgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIEluY2x1ZGVzIFNp enpsZS5qcwogKiBodHRwOi8vc2l6emxlanMuY29tLwogKiBDb3B5cmlnaHQgMjAx MCwgVGhlIERvam8gRm91bmRhdGlvbgogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlU LCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCiAqCiAqIERhdGU6IFNhdCBGZWIgMTMg MjI6MzM6NDggMjAxMCAtMDUwMAogKi8KKGZ1bmN0aW9uKEEsdyl7ZnVuY3Rpb24g bWEoKXtpZighYy5pc1JlYWR5KXt0cnl7cy5kb2N1bWVudEVsZW1lbnQuZG9TY3Jv bGwoImxlZnQiKX1jYXRjaChhKXtzZXRUaW1lb3V0KG1hLDEpO3JldHVybn1jLnJl YWR5KCl9fWZ1bmN0aW9uIFFhKGEsYil7Yi5zcmM/Yy5hamF4KHt1cmw6Yi5zcmMs YXN5bmM6ZmFsc2UsZGF0YVR5cGU6InNjcmlwdCJ9KTpjLmdsb2JhbEV2YWwoYi50 ZXh0fHxiLnRleHRDb250ZW50fHxiLmlubmVySFRNTHx8IiIpO2IucGFyZW50Tm9k ZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpfWZ1bmN0aW9uIFgoYSxiLGQs ZixlLGope3ZhciBpPWEubGVuZ3RoO2lmKHR5cGVvZiBiPT09Im9iamVjdCIpe2Zv cih2YXIgbyBpbiBiKVgoYSxvLGJbb10sZixlLGQpO3JldHVybiBhfWlmKGQhPT13 KXtmPSFqJiZmJiZjLmlzRnVuY3Rpb24oZCk7Zm9yKG89MDtvPGk7bysrKWUoYVtv XSxiLGY/ZC5jYWxsKGFbb10sbyxlKGFbb10sYikpOmQsaik7cmV0dXJuIGF9cmV0 dXJuIGk/CmUoYVswXSxiKTp3fWZ1bmN0aW9uIEooKXtyZXR1cm4obmV3IERhdGUp LmdldFRpbWUoKX1mdW5jdGlvbiBZKCl7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIFoo KXtyZXR1cm4gdHJ1ZX1mdW5jdGlvbiBuYShhLGIsZCl7ZFswXS50eXBlPWE7cmV0 dXJuIGMuZXZlbnQuaGFuZGxlLmFwcGx5KGIsZCl9ZnVuY3Rpb24gb2EoYSl7dmFy IGIsZD1bXSxmPVtdLGU9YXJndW1lbnRzLGosaSxvLGssbixyO2k9Yy5kYXRhKHRo aXMsImV2ZW50cyIpO2lmKCEoYS5saXZlRmlyZWQ9PT10aGlzfHwhaXx8IWkubGl2 ZXx8YS5idXR0b24mJmEudHlwZT09PSJjbGljayIpKXthLmxpdmVGaXJlZD10aGlz O3ZhciB1PWkubGl2ZS5zbGljZSgwKTtmb3Ioaz0wO2s8dS5sZW5ndGg7aysrKXtp PXVba107aS5vcmlnVHlwZS5yZXBsYWNlKE8sIiIpPT09YS50eXBlP2YucHVzaChp LnNlbGVjdG9yKTp1LnNwbGljZShrLS0sMSl9aj1jKGEudGFyZ2V0KS5jbG9zZXN0 KGYsYS5jdXJyZW50VGFyZ2V0KTtuPTA7Zm9yKHI9CmoubGVuZ3RoO248cjtuKysp Zm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2lmKGpbbl0uc2VsZWN0b3I9 PT1pLnNlbGVjdG9yKXtvPWpbbl0uZWxlbTtmPW51bGw7aWYoaS5wcmVUeXBlPT09 Im1vdXNlZW50ZXIifHxpLnByZVR5cGU9PT0ibW91c2VsZWF2ZSIpZj1jKGEucmVs YXRlZFRhcmdldCkuY2xvc2VzdChpLnNlbGVjdG9yKVswXTtpZighZnx8ZiE9PW8p ZC5wdXNoKHtlbGVtOm8saGFuZGxlT2JqOml9KX19bj0wO2ZvcihyPWQubGVuZ3Ro O248cjtuKyspe2o9ZFtuXTthLmN1cnJlbnRUYXJnZXQ9ai5lbGVtO2EuZGF0YT1q LmhhbmRsZU9iai5kYXRhO2EuaGFuZGxlT2JqPWouaGFuZGxlT2JqO2lmKGouaGFu ZGxlT2JqLm9yaWdIYW5kbGVyLmFwcGx5KGouZWxlbSxlKT09PWZhbHNlKXtiPWZh bHNlO2JyZWFrfX1yZXR1cm4gYn19ZnVuY3Rpb24gcGEoYSxiKXtyZXR1cm4ibGl2 ZS4iKyhhJiZhIT09IioiP2ErIi4iOiIiKStiLnJlcGxhY2UoL1wuL2csImAiKS5y ZXBsYWNlKC8gL2csCiImIil9ZnVuY3Rpb24gcWEoYSl7cmV0dXJuIWF8fCFhLnBh cmVudE5vZGV8fGEucGFyZW50Tm9kZS5ub2RlVHlwZT09PTExfWZ1bmN0aW9uIHJh KGEsYil7dmFyIGQ9MDtiLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVOYW1l PT09KGFbZF0mJmFbZF0ubm9kZU5hbWUpKXt2YXIgZj1jLmRhdGEoYVtkKytdKSxl PWMuZGF0YSh0aGlzLGYpO2lmKGY9ZiYmZi5ldmVudHMpe2RlbGV0ZSBlLmhhbmRs ZTtlLmV2ZW50cz17fTtmb3IodmFyIGogaW4gZilmb3IodmFyIGkgaW4gZltqXSlj LmV2ZW50LmFkZCh0aGlzLGosZltqXVtpXSxmW2pdW2ldLmRhdGEpfX19KX1mdW5j dGlvbiBzYShhLGIsZCl7dmFyIGYsZSxqO2I9YiYmYlswXT9iWzBdLm93bmVyRG9j dW1lbnR8fGJbMF06cztpZihhLmxlbmd0aD09PTEmJnR5cGVvZiBhWzBdPT09InN0 cmluZyImJmFbMF0ubGVuZ3RoPDUxMiYmYj09PXMmJiF0YS50ZXN0KGFbMF0pJiYo Yy5zdXBwb3J0LmNoZWNrQ2xvbmV8fCF1YS50ZXN0KGFbMF0pKSl7ZT0KdHJ1ZTtp ZihqPWMuZnJhZ21lbnRzW2FbMF1dKWlmKGohPT0xKWY9an1pZighZil7Zj1iLmNy ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtjLmNsZWFuKGEsYixmLGQpfWlmKGUpYy5m cmFnbWVudHNbYVswXV09aj9mOjE7cmV0dXJue2ZyYWdtZW50OmYsY2FjaGVhYmxl OmV9fWZ1bmN0aW9uIEsoYSxiKXt2YXIgZD17fTtjLmVhY2godmEuY29uY2F0LmFw cGx5KFtdLHZhLnNsaWNlKDAsYikpLGZ1bmN0aW9uKCl7ZFt0aGlzXT1hfSk7cmV0 dXJuIGR9ZnVuY3Rpb24gd2EoYSl7cmV0dXJuInNjcm9sbFRvImluIGEmJmEuZG9j dW1lbnQ/YTphLm5vZGVUeXBlPT09OT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdp bmRvdzpmYWxzZX12YXIgYz1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgYy5mbi5p bml0KGEsYil9LFJhPUEualF1ZXJ5LFNhPUEuJCxzPUEuZG9jdW1lbnQsVCxUYT0v XltePF0qKDxbXHdcV10rPilbXj5dKiR8XiMoW1x3LV0rKSQvLFVhPS9eLlteOiNc W1wuLF0qJC8sVmE9L1xTLywKV2E9L14oXHN8XHUwMEEwKSt8KFxzfFx1MDBBMCkr JC9nLFhhPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sUD1uYXZpZ2F0b3Iu dXNlckFnZW50LHhhPWZhbHNlLFE9W10sTCwkPU9iamVjdC5wcm90b3R5cGUudG9T dHJpbmcsYWE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxiYT1BcnJh eS5wcm90b3R5cGUucHVzaCxSPUFycmF5LnByb3RvdHlwZS5zbGljZSx5YT1BcnJh eS5wcm90b3R5cGUuaW5kZXhPZjtjLmZuPWMucHJvdG90eXBlPXtpbml0OmZ1bmN0 aW9uKGEsYil7dmFyIGQsZjtpZighYSlyZXR1cm4gdGhpcztpZihhLm5vZGVUeXBl KXt0aGlzLmNvbnRleHQ9dGhpc1swXT1hO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRo aXN9aWYoYT09PSJib2R5IiYmIWIpe3RoaXMuY29udGV4dD1zO3RoaXNbMF09cy5i b2R5O3RoaXMuc2VsZWN0b3I9ImJvZHkiO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRo aXN9aWYodHlwZW9mIGE9PT0ic3RyaW5nIilpZigoZD1UYS5leGVjKGEpKSYmCihk WzFdfHwhYikpaWYoZFsxXSl7Zj1iP2Iub3duZXJEb2N1bWVudHx8YjpzO2lmKGE9 WGEuZXhlYyhhKSlpZihjLmlzUGxhaW5PYmplY3QoYikpe2E9W3MuY3JlYXRlRWxl bWVudChhWzFdKV07Yy5mbi5hdHRyLmNhbGwoYSxiLHRydWUpfWVsc2UgYT1bZi5j cmVhdGVFbGVtZW50KGFbMV0pXTtlbHNle2E9c2EoW2RbMV1dLFtmXSk7YT0oYS5j YWNoZWFibGU/YS5mcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk6YS5mcmFnbWVudCku Y2hpbGROb2Rlc31yZXR1cm4gYy5tZXJnZSh0aGlzLGEpfWVsc2V7aWYoYj1zLmdl dEVsZW1lbnRCeUlkKGRbMl0pKXtpZihiLmlkIT09ZFsyXSlyZXR1cm4gVC5maW5k KGEpO3RoaXMubGVuZ3RoPTE7dGhpc1swXT1ifXRoaXMuY29udGV4dD1zO3RoaXMu c2VsZWN0b3I9YTtyZXR1cm4gdGhpc31lbHNlIGlmKCFiJiYvXlx3KyQvLnRlc3Qo YSkpe3RoaXMuc2VsZWN0b3I9YTt0aGlzLmNvbnRleHQ9czthPXMuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoYSk7cmV0dXJuIGMubWVyZ2UodGhpcywKYSl9ZWxzZSByZXR1 cm4hYnx8Yi5qcXVlcnk/KGJ8fFQpLmZpbmQoYSk6YyhiKS5maW5kKGEpO2Vsc2Ug aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiBULnJlYWR5KGEpO2lmKGEuc2VsZWN0 b3IhPT13KXt0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3I7dGhpcy5jb250ZXh0PWEu Y29udGV4dH1yZXR1cm4gYy5tYWtlQXJyYXkoYSx0aGlzKX0sc2VsZWN0b3I6IiIs anF1ZXJ5OiIxLjQuMiIsbGVuZ3RoOjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0 aGlzLmxlbmd0aH0sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBSLmNhbGwodGhp cywwKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP3RoaXMudG9BcnJh eSgpOmE8MD90aGlzLnNsaWNlKGEpWzBdOnRoaXNbYV19LHB1c2hTdGFjazpmdW5j dGlvbihhLGIsZCl7dmFyIGY9YygpO2MuaXNBcnJheShhKT9iYS5hcHBseShmLGEp OmMubWVyZ2UoZixhKTtmLnByZXZPYmplY3Q9dGhpcztmLmNvbnRleHQ9dGhpcy5j b250ZXh0O2lmKGI9PT0KImZpbmQiKWYuc2VsZWN0b3I9dGhpcy5zZWxlY3Rvciso dGhpcy5zZWxlY3Rvcj8iICI6IiIpK2Q7ZWxzZSBpZihiKWYuc2VsZWN0b3I9dGhp cy5zZWxlY3RvcisiLiIrYisiKCIrZCsiKSI7cmV0dXJuIGZ9LGVhY2g6ZnVuY3Rp b24oYSxiKXtyZXR1cm4gYy5lYWNoKHRoaXMsYSxiKX0scmVhZHk6ZnVuY3Rpb24o YSl7Yy5iaW5kUmVhZHkoKTtpZihjLmlzUmVhZHkpYS5jYWxsKHMsYyk7ZWxzZSBR JiZRLnB1c2goYSk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGEpe3JldHVybiBh PT09LTE/dGhpcy5zbGljZShhKTp0aGlzLnNsaWNlKGEsK2ErMSl9LGZpcnN0OmZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5lcSgtMSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVz aFN0YWNrKFIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsUi5jYWxsKGFy Z3VtZW50cykuam9pbigiLCIpKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlz LnB1c2hTdGFjayhjLm1hcCh0aGlzLApmdW5jdGlvbihiLGQpe3JldHVybiBhLmNh bGwoYixkLGIpfSkpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2Jq ZWN0fHxjKG51bGwpfSxwdXNoOmJhLHNvcnQ6W10uc29ydCxzcGxpY2U6W10uc3Bs aWNlfTtjLmZuLmluaXQucHJvdG90eXBlPWMuZm47Yy5leHRlbmQ9Yy5mbi5leHRl bmQ9ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHNbMF18fHt9LGI9MSxkPWFyZ3Vt ZW50cy5sZW5ndGgsZj1mYWxzZSxlLGosaSxvO2lmKHR5cGVvZiBhPT09ImJvb2xl YW4iKXtmPWE7YT1hcmd1bWVudHNbMV18fHt9O2I9Mn1pZih0eXBlb2YgYSE9PSJv YmplY3QiJiYhYy5pc0Z1bmN0aW9uKGEpKWE9e307aWYoZD09PWIpe2E9dGhpczst LWJ9Zm9yKDtiPGQ7YisrKWlmKChlPWFyZ3VtZW50c1tiXSkhPW51bGwpZm9yKGog aW4gZSl7aT1hW2pdO289ZVtqXTtpZihhIT09bylpZihmJiZvJiYoYy5pc1BsYWlu T2JqZWN0KG8pfHxjLmlzQXJyYXkobykpKXtpPWkmJihjLmlzUGxhaW5PYmplY3Qo aSl8fApjLmlzQXJyYXkoaSkpP2k6Yy5pc0FycmF5KG8pP1tdOnt9O2Fbal09Yy5l eHRlbmQoZixpLG8pfWVsc2UgaWYobyE9PXcpYVtqXT1vfXJldHVybiBhfTtjLmV4 dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihhKXtBLiQ9U2E7aWYoYSlBLmpRdWVy eT1SYTtyZXR1cm4gY30saXNSZWFkeTpmYWxzZSxyZWFkeTpmdW5jdGlvbigpe2lm KCFjLmlzUmVhZHkpe2lmKCFzLmJvZHkpcmV0dXJuIHNldFRpbWVvdXQoYy5yZWFk eSwxMyk7Yy5pc1JlYWR5PXRydWU7aWYoUSl7Zm9yKHZhciBhLGI9MDthPVFbYisr XTspYS5jYWxsKHMsYyk7UT1udWxsfWMuZm4udHJpZ2dlckhhbmRsZXImJmMocyku dHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9fSxiaW5kUmVhZHk6ZnVuY3Rpb24oKXtp ZigheGEpe3hhPXRydWU7aWYocy5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIilyZXR1 cm4gYy5yZWFkeSgpO2lmKHMuYWRkRXZlbnRMaXN0ZW5lcil7cy5hZGRFdmVudExp c3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwKTCxmYWxzZSk7QS5hZGRFdmVudExp c3RlbmVyKCJsb2FkIixjLnJlYWR5LGZhbHNlKX1lbHNlIGlmKHMuYXR0YWNoRXZl bnQpe3MuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7QS5hdHRh Y2hFdmVudCgib25sb2FkIixjLnJlYWR5KTt2YXIgYT1mYWxzZTt0cnl7YT1BLmZy YW1lRWxlbWVudD09bnVsbH1jYXRjaChiKXt9cy5kb2N1bWVudEVsZW1lbnQuZG9T Y3JvbGwmJmEmJm1hKCl9fX0saXNGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4g JC5jYWxsKGEpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlv bihhKXtyZXR1cm4gJC5jYWxsKGEpPT09IltvYmplY3QgQXJyYXldIn0saXNQbGFp bk9iamVjdDpmdW5jdGlvbihhKXtpZighYXx8JC5jYWxsKGEpIT09IltvYmplY3Qg T2JqZWN0XSJ8fGEubm9kZVR5cGV8fGEuc2V0SW50ZXJ2YWwpcmV0dXJuIGZhbHNl O2lmKGEuY29uc3RydWN0b3ImJiFhYS5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFh YS5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLAoiaXNQcm90b3R5cGVPZiIp KXJldHVybiBmYWxzZTt2YXIgYjtmb3IoYiBpbiBhKTtyZXR1cm4gYj09PXd8fGFh LmNhbGwoYSxiKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXtmb3IodmFyIGIg aW4gYSlyZXR1cm4gZmFsc2U7cmV0dXJuIHRydWV9LGVycm9yOmZ1bmN0aW9uKGEp e3Rocm93IGE7fSxwYXJzZUpTT046ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0i c3RyaW5nInx8IWEpcmV0dXJuIG51bGw7YT1jLnRyaW0oYSk7aWYoL15bXF0sOnt9 XHNdKiQvLnRlc3QoYS5yZXBsYWNlKC9cXCg/OlsiXFxcL2JmbnJ0XXx1WzAtOWEt ZkEtRl17NH0pL2csIkAiKS5yZXBsYWNlKC8iW14iXFxcblxyXSoifHRydWV8ZmFs c2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywiXSIp LnJlcGxhY2UoLyg/Ol58OnwsKSg/OlxzKlxbKSsvZywiIikpKXJldHVybiBBLkpT T04mJkEuSlNPTi5wYXJzZT9BLkpTT04ucGFyc2UoYSk6KG5ldyBGdW5jdGlvbigi cmV0dXJuICIrCmEpKSgpO2Vsc2UgYy5lcnJvcigiSW52YWxpZCBKU09OOiAiK2Ep fSxub29wOmZ1bmN0aW9uKCl7fSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGEpe2lmKGEm JlZhLnRlc3QoYSkpe3ZhciBiPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQi KVswXXx8cy5kb2N1bWVudEVsZW1lbnQsZD1zLmNyZWF0ZUVsZW1lbnQoInNjcmlw dCIpO2QudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihjLnN1cHBvcnQuc2NyaXB0 RXZhbClkLmFwcGVuZENoaWxkKHMuY3JlYXRlVGV4dE5vZGUoYSkpO2Vsc2UgZC50 ZXh0PWE7Yi5pbnNlcnRCZWZvcmUoZCxiLmZpcnN0Q2hpbGQpO2IucmVtb3ZlQ2hp bGQoZCl9fSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1l JiZhLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT1iLnRvVXBwZXJDYXNlKCl9LGVh Y2g6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9MCxqPWEubGVuZ3RoLGk9aj09PXd8 fGMuaXNGdW5jdGlvbihhKTtpZihkKWlmKGkpZm9yKGYgaW4gYSl7aWYoYi5hcHBs eShhW2ZdLApkKT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKDtlPGo7KXtpZihiLmFw cGx5KGFbZSsrXSxkKT09PWZhbHNlKWJyZWFrfWVsc2UgaWYoaSlmb3IoZiBpbiBh KXtpZihiLmNhbGwoYVtmXSxmLGFbZl0pPT09ZmFsc2UpYnJlYWt9ZWxzZSBmb3Io ZD1hWzBdO2U8aiYmYi5jYWxsKGQsZSxkKSE9PWZhbHNlO2Q9YVsrK2VdKTtyZXR1 cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4oYXx8IiIpLnJlcGxhY2UoV2Es IiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO2lmKGEhPW51bGwp YS5sZW5ndGg9PW51bGx8fHR5cGVvZiBhPT09InN0cmluZyJ8fGMuaXNGdW5jdGlv bihhKXx8dHlwZW9mIGEhPT0iZnVuY3Rpb24iJiZhLnNldEludGVydmFsP2JhLmNh bGwoYixhKTpjLm1lcmdlKGIsYSk7cmV0dXJuIGJ9LGluQXJyYXk6ZnVuY3Rpb24o YSxiKXtpZihiLmluZGV4T2YpcmV0dXJuIGIuaW5kZXhPZihhKTtmb3IodmFyIGQ9 MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYltkXT09PQphKXJldHVybiBkO3JldHVy bi0xfSxtZXJnZTpmdW5jdGlvbihhLGIpe3ZhciBkPWEubGVuZ3RoLGY9MDtpZih0 eXBlb2YgYi5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGU9Yi5sZW5ndGg7Zjxl O2YrKylhW2QrK109YltmXTtlbHNlIGZvcig7YltmXSE9PXc7KWFbZCsrXT1iW2Yr K107YS5sZW5ndGg9ZDtyZXR1cm4gYX0sZ3JlcDpmdW5jdGlvbihhLGIsZCl7Zm9y KHZhciBmPVtdLGU9MCxqPWEubGVuZ3RoO2U8ajtlKyspIWQhPT0hYihhW2VdLGUp JiZmLnB1c2goYVtlXSk7cmV0dXJuIGZ9LG1hcDpmdW5jdGlvbihhLGIsZCl7Zm9y KHZhciBmPVtdLGUsaj0wLGk9YS5sZW5ndGg7ajxpO2orKyl7ZT1iKGFbal0saixk KTtpZihlIT1udWxsKWZbZi5sZW5ndGhdPWV9cmV0dXJuIGYuY29uY2F0LmFwcGx5 KFtdLGYpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiLGQpe2lmKGFyZ3VtZW50 cy5sZW5ndGg9PT0yKWlmKHR5cGVvZiBiPT09InN0cmluZyIpe2Q9YTthPWRbYl07 Yj13fWVsc2UgaWYoYiYmCiFjLmlzRnVuY3Rpb24oYikpe2Q9YjtiPXd9aWYoIWIm JmEpYj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGR8fHRoaXMsYXJndW1lbnRz KX07aWYoYSliLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8Yi5ndWlkfHxjLmd1aWQrKzty ZXR1cm4gYn0sdWFNYXRjaDpmdW5jdGlvbihhKXthPWEudG9Mb3dlckNhc2UoKTth PS8od2Via2l0KVsgXC9dKFtcdy5dKykvLmV4ZWMoYSl8fC8ob3BlcmEpKD86Lip2 ZXJzaW9uKT9bIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG1zaWUpIChbXHcuXSsp Ly5leGVjKGEpfHwhL2NvbXBhdGlibGUvLnRlc3QoYSkmJi8obW96aWxsYSkoPzou Kj8gcnY6KFtcdy5dKykpPy8uZXhlYyhhKXx8W107cmV0dXJue2Jyb3dzZXI6YVsx XXx8IiIsdmVyc2lvbjphWzJdfHwiMCJ9fSxicm93c2VyOnt9fSk7UD1jLnVhTWF0 Y2goUCk7aWYoUC5icm93c2VyKXtjLmJyb3dzZXJbUC5icm93c2VyXT10cnVlO2Mu YnJvd3Nlci52ZXJzaW9uPVAudmVyc2lvbn1pZihjLmJyb3dzZXIud2Via2l0KWMu YnJvd3Nlci5zYWZhcmk9CnRydWU7aWYoeWEpYy5pbkFycmF5PWZ1bmN0aW9uKGEs Yil7cmV0dXJuIHlhLmNhbGwoYixhKX07VD1jKHMpO2lmKHMuYWRkRXZlbnRMaXN0 ZW5lcilMPWZ1bmN0aW9uKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250 ZW50TG9hZGVkIixMLGZhbHNlKTtjLnJlYWR5KCl9O2Vsc2UgaWYocy5hdHRhY2hF dmVudClMPWZ1bmN0aW9uKCl7aWYocy5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7 cy5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixMKTtjLnJlYWR5KCl9 fTsoZnVuY3Rpb24oKXtjLnN1cHBvcnQ9e307dmFyIGE9cy5kb2N1bWVudEVsZW1l bnQsYj1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGQ9cy5jcmVhdGVFbGVtZW50 KCJkaXYiKSxmPSJzY3JpcHQiK0ooKTtkLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Qu aW5uZXJIVE1MPSIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2En IHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+ PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKdmFyIGU9ZC5nZXRFbGVtZW50c0J5 VGFnTmFtZSgiKiIpLGo9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdO2lm KCEoIWV8fCFlLmxlbmd0aHx8IWopKXtjLnN1cHBvcnQ9e2xlYWRpbmdXaGl0ZXNw YWNlOmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTMsdGJvZHk6IWQuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoInRib2R5IikubGVuZ3RoLGh0bWxTZXJpYWxpemU6ISFkLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLHN0eWxlOi9yZWQvLnRl c3Qoai5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLGhyZWZOb3JtYWxpemVkOmouZ2V0 QXR0cmlidXRlKCJocmVmIik9PT0iL2EiLG9wYWNpdHk6L14wLjU1JC8udGVzdChq LnN0eWxlLm9wYWNpdHkpLGNzc0Zsb2F0OiEhai5zdHlsZS5jc3NGbG9hdCxjaGVj a09uOmQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0udmFsdWU9PT0i b24iLG9wdFNlbGVjdGVkOnMuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5k Q2hpbGQocy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSkuc2VsZWN0ZWQsCnBhcmVu dE5vZGU6ZC5yZW1vdmVDaGlsZChkLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVu dCgiZGl2IikpKS5wYXJlbnROb2RlPT09bnVsbCxkZWxldGVFeHBhbmRvOnRydWUs Y2hlY2tDbG9uZTpmYWxzZSxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0 cnVlLGJveE1vZGVsOm51bGx9O2IudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7 Yi5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKCJ3aW5kb3cuIitmKyI9MTsi KSl9Y2F0Y2goaSl7fWEuaW5zZXJ0QmVmb3JlKGIsYS5maXJzdENoaWxkKTtpZihB W2ZdKXtjLnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2RlbGV0ZSBBW2ZdfXRyeXtk ZWxldGUgYi50ZXN0fWNhdGNoKG8pe2Muc3VwcG9ydC5kZWxldGVFeHBhbmRvPWZh bHNlfWEucmVtb3ZlQ2hpbGQoYik7aWYoZC5hdHRhY2hFdmVudCYmZC5maXJlRXZl bnQpe2QuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uIGsoKXtjLnN1cHBv cnQubm9DbG9uZUV2ZW50PQpmYWxzZTtkLmRldGFjaEV2ZW50KCJvbmNsaWNrIixr KX0pO2QuY2xvbmVOb2RlKHRydWUpLmZpcmVFdmVudCgib25jbGljayIpfWQ9cy5j cmVhdGVFbGVtZW50KCJkaXYiKTtkLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3Jh ZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iO2E9cy5j cmVhdGVEb2N1bWVudEZyYWdtZW50KCk7YS5hcHBlbmRDaGlsZChkLmZpcnN0Q2hp bGQpO2Muc3VwcG9ydC5jaGVja0Nsb25lPWEuY2xvbmVOb2RlKHRydWUpLmNsb25l Tm9kZSh0cnVlKS5sYXN0Q2hpbGQuY2hlY2tlZDtjKGZ1bmN0aW9uKCl7dmFyIGs9 cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtrLnN0eWxlLndpZHRoPWsuc3R5bGUucGFk ZGluZ0xlZnQ9IjFweCI7cy5ib2R5LmFwcGVuZENoaWxkKGspO2MuYm94TW9kZWw9 Yy5zdXBwb3J0LmJveE1vZGVsPWsub2Zmc2V0V2lkdGg9PT0yO3MuYm9keS5yZW1v dmVDaGlsZChrKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2E9ZnVuY3Rpb24oayl7 dmFyIG49CnMuY3JlYXRlRWxlbWVudCgiZGl2Iik7az0ib24iK2s7dmFyIHI9ayBp biBuO2lmKCFyKXtuLnNldEF0dHJpYnV0ZShrLCJyZXR1cm47Iik7cj10eXBlb2Yg bltrXT09PSJmdW5jdGlvbiJ9cmV0dXJuIHJ9O2Muc3VwcG9ydC5zdWJtaXRCdWJi bGVzPWEoInN1Ym1pdCIpO2Muc3VwcG9ydC5jaGFuZ2VCdWJibGVzPWEoImNoYW5n ZSIpO2E9Yj1kPWU9aj1udWxsfX0pKCk7Yy5wcm9wcz17ImZvciI6Imh0bWxGb3Ii LCJjbGFzcyI6ImNsYXNzTmFtZSIscmVhZG9ubHk6InJlYWRPbmx5IixtYXhsZW5n dGg6Im1heExlbmd0aCIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixyb3dzcGFu OiJyb3dTcGFuIixjb2xzcGFuOiJjb2xTcGFuIix0YWJpbmRleDoidGFiSW5kZXgi LHVzZW1hcDoidXNlTWFwIixmcmFtZWJvcmRlcjoiZnJhbWVCb3JkZXIifTt2YXIg Rz0ialF1ZXJ5IitKKCksWWE9MCx6YT17fTtjLmV4dGVuZCh7Y2FjaGU6e30sZXhw YW5kbzpHLG5vRGF0YTp7ZW1iZWQ6dHJ1ZSxvYmplY3Q6dHJ1ZSwKYXBwbGV0OnRy dWV9LGRhdGE6ZnVuY3Rpb24oYSxiLGQpe2lmKCEoYS5ub2RlTmFtZSYmYy5ub0Rh dGFbYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkpe2E9YT09QT96YTphO3ZhciBm PWFbR10sZT1jLmNhY2hlO2lmKCFmJiZ0eXBlb2YgYj09PSJzdHJpbmciJiZkPT09 dylyZXR1cm4gbnVsbDtmfHwoZj0rK1lhKTtpZih0eXBlb2YgYj09PSJvYmplY3Qi KXthW0ddPWY7ZVtmXT1jLmV4dGVuZCh0cnVlLHt9LGIpfWVsc2UgaWYoIWVbZl0p e2FbR109ZjtlW2ZdPXt9fWE9ZVtmXTtpZihkIT09dylhW2JdPWQ7cmV0dXJuIHR5 cGVvZiBiPT09InN0cmluZyI/YVtiXTphfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihh LGIpe2lmKCEoYS5ub2RlTmFtZSYmYy5ub0RhdGFbYS5ub2RlTmFtZS50b0xvd2Vy Q2FzZSgpXSkpe2E9YT09QT96YTphO3ZhciBkPWFbR10sZj1jLmNhY2hlLGU9Zltk XTtpZihiKXtpZihlKXtkZWxldGUgZVtiXTtjLmlzRW1wdHlPYmplY3QoZSkmJmMu cmVtb3ZlRGF0YShhKX19ZWxzZXtpZihjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbylk ZWxldGUgYVtjLmV4cGFuZG9dOwplbHNlIGEucmVtb3ZlQXR0cmlidXRlJiZhLnJl bW92ZUF0dHJpYnV0ZShjLmV4cGFuZG8pO2RlbGV0ZSBmW2RdfX19fSk7Yy5mbi5l eHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJ1bmRlZmlu ZWQiJiZ0aGlzLmxlbmd0aClyZXR1cm4gYy5kYXRhKHRoaXNbMF0pO2Vsc2UgaWYo dHlwZW9mIGE9PT0ib2JqZWN0IilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7 Yy5kYXRhKHRoaXMsYSl9KTt2YXIgZD1hLnNwbGl0KCIuIik7ZFsxXT1kWzFdPyIu IitkWzFdOiIiO2lmKGI9PT13KXt2YXIgZj10aGlzLnRyaWdnZXJIYW5kbGVyKCJn ZXREYXRhIitkWzFdKyIhIixbZFswXV0pO2lmKGY9PT13JiZ0aGlzLmxlbmd0aClm PWMuZGF0YSh0aGlzWzBdLGEpO3JldHVybiBmPT09dyYmZFsxXT90aGlzLmRhdGEo ZFswXSk6Zn1lbHNlIHJldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK2RbMV0r IiEiLFtkWzBdLGJdKS5lYWNoKGZ1bmN0aW9uKCl7Yy5kYXRhKHRoaXMsCmEsYil9 KX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0 aW9uKCl7Yy5yZW1vdmVEYXRhKHRoaXMsYSl9KX19KTtjLmV4dGVuZCh7cXVldWU6 ZnVuY3Rpb24oYSxiLGQpe2lmKGEpe2I9KGJ8fCJmeCIpKyJxdWV1ZSI7dmFyIGY9 Yy5kYXRhKGEsYik7aWYoIWQpcmV0dXJuIGZ8fFtdO2lmKCFmfHxjLmlzQXJyYXko ZCkpZj1jLmRhdGEoYSxiLGMubWFrZUFycmF5KGQpKTtlbHNlIGYucHVzaChkKTty ZXR1cm4gZn19LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGQ9 Yy5xdWV1ZShhLGIpLGY9ZC5zaGlmdCgpO2lmKGY9PT0iaW5wcm9ncmVzcyIpZj1k LnNoaWZ0KCk7aWYoZil7Yj09PSJmeCImJmQudW5zaGlmdCgiaW5wcm9ncmVzcyIp O2YuY2FsbChhLGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGEsYil9KX19fSk7Yy5mbi5l eHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ic3RyaW5n Iil7Yj1hO2E9ImZ4In1pZihiPT09CncpcmV0dXJuIGMucXVldWUodGhpc1swXSxh KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9Yy5xdWV1ZSh0aGlz LGEsYik7YT09PSJmeCImJmRbMF0hPT0iaW5wcm9ncmVzcyImJmMuZGVxdWV1ZSh0 aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChm dW5jdGlvbigpe2MuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlbGF5OmZ1bmN0aW9uKGEs Yil7YT1jLmZ4P2MuZnguc3BlZWRzW2FdfHxhOmE7Yj1ifHwiZngiO3JldHVybiB0 aGlzLnF1ZXVlKGIsZnVuY3Rpb24oKXt2YXIgZD10aGlzO3NldFRpbWVvdXQoZnVu Y3Rpb24oKXtjLmRlcXVldWUoZCxiKX0sYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlv bihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX19KTt2YXIgQWE9L1tc blx0XS9nLGNhPS9ccysvLFphPS9cci9nLCRhPS9ocmVmfHNyY3xzdHlsZS8sYWI9 LyhidXR0b258aW5wdXQpL2ksYmI9LyhidXR0b258aW5wdXR8b2JqZWN0fHNlbGVj dHx0ZXh0YXJlYSkvaSwKY2I9L14oYXxhcmVhKSQvaSxCYT0vcmFkaW98Y2hlY2ti b3gvO2MuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhp cyxhLGIsdHJ1ZSxjLmF0dHIpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVy biB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmF0dHIodGhpcyxhLCIiKTt0aGlzLm5v ZGVUeXBlPT09MSYmdGhpcy5yZW1vdmVBdHRyaWJ1dGUoYSl9KX0sYWRkQ2xhc3M6 ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2go ZnVuY3Rpb24obil7dmFyIHI9Yyh0aGlzKTtyLmFkZENsYXNzKGEuY2FsbCh0aGlz LG4sci5hdHRyKCJjbGFzcyIpKSl9KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJpbmci KWZvcih2YXIgYj0oYXx8IiIpLnNwbGl0KGNhKSxkPTAsZj10aGlzLmxlbmd0aDtk PGY7ZCsrKXt2YXIgZT10aGlzW2RdO2lmKGUubm9kZVR5cGU9PT0xKWlmKGUuY2xh c3NOYW1lKXtmb3IodmFyIGo9IiAiK2UuY2xhc3NOYW1lKyIgIiwKaT1lLmNsYXNz TmFtZSxvPTAsaz1iLmxlbmd0aDtvPGs7bysrKWlmKGouaW5kZXhPZigiICIrYltv XSsiICIpPDApaSs9IiAiK2Jbb107ZS5jbGFzc05hbWU9Yy50cmltKGkpfWVsc2Ug ZS5jbGFzc05hbWU9YX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24o YSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24o ayl7dmFyIG49Yyh0aGlzKTtuLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGssbi5h dHRyKCJjbGFzcyIpKSl9KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJpbmcifHxhPT09 dylmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7 ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5vZGVUeXBlPT09MSYmZS5jbGFz c05hbWUpaWYoYSl7Zm9yKHZhciBqPSgiICIrZS5jbGFzc05hbWUrIiAiKS5yZXBs YWNlKEFhLCIgIiksaT0wLG89Yi5sZW5ndGg7aTxvO2krKylqPWoucmVwbGFjZSgi ICIrYltpXSsiICIsCiIgIik7ZS5jbGFzc05hbWU9Yy50cmltKGopfWVsc2UgZS5j bGFzc05hbWU9IiJ9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGEs Yil7dmFyIGQ9dHlwZW9mIGEsZj10eXBlb2YgYj09PSJib29sZWFuIjtpZihjLmlz RnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgaj1j KHRoaXMpO2oudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsZSxqLmF0dHIoImNsYXNz IiksYiksYil9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZD09PSJz dHJpbmciKWZvcih2YXIgZSxqPTAsaT1jKHRoaXMpLG89YixrPWEuc3BsaXQoY2Ep O2U9a1tqKytdOyl7bz1mP286IWkuaGFzQ2xhc3MoZSk7aVtvPyJhZGRDbGFzcyI6 InJlbW92ZUNsYXNzIl0oZSl9ZWxzZSBpZihkPT09InVuZGVmaW5lZCJ8fGQ9PT0i Ym9vbGVhbiIpe3RoaXMuY2xhc3NOYW1lJiZjLmRhdGEodGhpcywiX19jbGFzc05h bWVfXyIsdGhpcy5jbGFzc05hbWUpO3RoaXMuY2xhc3NOYW1lPQp0aGlzLmNsYXNz TmFtZXx8YT09PWZhbHNlPyIiOmMuZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8 fCIifX0pfSxoYXNDbGFzczpmdW5jdGlvbihhKXthPSIgIithKyIgIjtmb3IodmFy IGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYoKCIgIit0aGlzW2JdLmNsYXNz TmFtZSsiICIpLnJlcGxhY2UoQWEsIiAiKS5pbmRleE9mKGEpPi0xKXJldHVybiB0 cnVlO3JldHVybiBmYWxzZX0sdmFsOmZ1bmN0aW9uKGEpe2lmKGE9PT13KXt2YXIg Yj10aGlzWzBdO2lmKGIpe2lmKGMubm9kZU5hbWUoYiwib3B0aW9uIikpcmV0dXJu KGIuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9iLnZhbHVlOmIudGV4 dDtpZihjLm5vZGVOYW1lKGIsInNlbGVjdCIpKXt2YXIgZD1iLnNlbGVjdGVkSW5k ZXgsZj1bXSxlPWIub3B0aW9ucztiPWIudHlwZT09PSJzZWxlY3Qtb25lIjtpZihk PDApcmV0dXJuIG51bGw7dmFyIGo9Yj9kOjA7Zm9yKGQ9Yj9kKzE6ZS5sZW5ndGg7 ajxkO2orKyl7dmFyIGk9CmVbal07aWYoaS5zZWxlY3RlZCl7YT1jKGkpLnZhbCgp O2lmKGIpcmV0dXJuIGE7Zi5wdXNoKGEpfX1yZXR1cm4gZn1pZihCYS50ZXN0KGIu dHlwZSkmJiFjLnN1cHBvcnQuY2hlY2tPbilyZXR1cm4gYi5nZXRBdHRyaWJ1dGUo InZhbHVlIik9PT1udWxsPyJvbiI6Yi52YWx1ZTtyZXR1cm4oYi52YWx1ZXx8IiIp LnJlcGxhY2UoWmEsIiIpfXJldHVybiB3fXZhciBvPWMuaXNGdW5jdGlvbihhKTty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcykscj1hO2lm KHRoaXMubm9kZVR5cGU9PT0xKXtpZihvKXI9YS5jYWxsKHRoaXMsayxuLnZhbCgp KTtpZih0eXBlb2Ygcj09PSJudW1iZXIiKXIrPSIiO2lmKGMuaXNBcnJheShyKSYm QmEudGVzdCh0aGlzLnR5cGUpKXRoaXMuY2hlY2tlZD1jLmluQXJyYXkobi52YWwo KSxyKT49MDtlbHNlIGlmKGMubm9kZU5hbWUodGhpcywic2VsZWN0Iikpe3ZhciB1 PWMubWFrZUFycmF5KHIpO2MoIm9wdGlvbiIsdGhpcykuZWFjaChmdW5jdGlvbigp e3RoaXMuc2VsZWN0ZWQ9CmMuaW5BcnJheShjKHRoaXMpLnZhbCgpLHUpPj0wfSk7 aWYoIXUubGVuZ3RoKXRoaXMuc2VsZWN0ZWRJbmRleD0tMX1lbHNlIHRoaXMudmFs dWU9cn19KX19KTtjLmV4dGVuZCh7YXR0ckZuOnt2YWw6dHJ1ZSxjc3M6dHJ1ZSxo dG1sOnRydWUsdGV4dDp0cnVlLGRhdGE6dHJ1ZSx3aWR0aDp0cnVlLGhlaWdodDp0 cnVlLG9mZnNldDp0cnVlfSxhdHRyOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCFhfHxh Lm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoZiYmYiBp biBjLmF0dHJGbilyZXR1cm4gYyhhKVtiXShkKTtmPWEubm9kZVR5cGUhPT0xfHwh Yy5pc1hNTERvYyhhKTt2YXIgZT1kIT09dztiPWYmJmMucHJvcHNbYl18fGI7aWYo YS5ub2RlVHlwZT09PTEpe3ZhciBqPSRhLnRlc3QoYik7aWYoYiBpbiBhJiZmJiYh ail7aWYoZSl7Yj09PSJ0eXBlIiYmYWIudGVzdChhLm5vZGVOYW1lKSYmYS5wYXJl bnROb2RlJiZjLmVycm9yKCJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQi KTsKYVtiXT1kfWlmKGMubm9kZU5hbWUoYSwiZm9ybSIpJiZhLmdldEF0dHJpYnV0 ZU5vZGUoYikpcmV0dXJuIGEuZ2V0QXR0cmlidXRlTm9kZShiKS5ub2RlVmFsdWU7 aWYoYj09PSJ0YWJJbmRleCIpcmV0dXJuKGI9YS5nZXRBdHRyaWJ1dGVOb2RlKCJ0 YWJJbmRleCIpKSYmYi5zcGVjaWZpZWQ/Yi52YWx1ZTpiYi50ZXN0KGEubm9kZU5h bWUpfHxjYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDp3O3JldHVybiBhW2Jd fWlmKCFjLnN1cHBvcnQuc3R5bGUmJmYmJmI9PT0ic3R5bGUiKXtpZihlKWEuc3R5 bGUuY3NzVGV4dD0iIitkO3JldHVybiBhLnN0eWxlLmNzc1RleHR9ZSYmYS5zZXRB dHRyaWJ1dGUoYiwiIitkKTthPSFjLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJmYm Jmo/YS5nZXRBdHRyaWJ1dGUoYiwyKTphLmdldEF0dHJpYnV0ZShiKTtyZXR1cm4g YT09PW51bGw/dzphfXJldHVybiBjLnN0eWxlKGEsYixkKX19KTt2YXIgTz0vXC4o LiopJC8sZGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvW15cd1xzXC5c fGBdL2csCmZ1bmN0aW9uKGIpe3JldHVybiJcXCIrYn0pfTtjLmV2ZW50PXthZGQ6 ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlw ZT09PTgpKXtpZihhLnNldEludGVydmFsJiZhIT09QSYmIWEuZnJhbWVFbGVtZW50 KWE9QTt2YXIgZSxqO2lmKGQuaGFuZGxlcil7ZT1kO2Q9ZS5oYW5kbGVyfWlmKCFk Lmd1aWQpZC5ndWlkPWMuZ3VpZCsrO2lmKGo9Yy5kYXRhKGEpKXt2YXIgaT1qLmV2 ZW50cz1qLmV2ZW50c3x8e30sbz1qLmhhbmRsZTtpZighbylqLmhhbmRsZT1vPWZ1 bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBjIT09InVuZGVmaW5lZCImJiFjLmV2ZW50 LnRyaWdnZXJlZD9jLmV2ZW50LmhhbmRsZS5hcHBseShvLmVsZW0sYXJndW1lbnRz KTp3fTtvLmVsZW09YTtiPWIuc3BsaXQoIiAiKTtmb3IodmFyIGssbj0wLHI7az1i W24rK107KXtqPWU/Yy5leHRlbmQoe30sZSk6e2hhbmRsZXI6ZCxkYXRhOmZ9O2lm KGsuaW5kZXhPZigiLiIpPi0xKXtyPWsuc3BsaXQoIi4iKTsKaz1yLnNoaWZ0KCk7 ai5uYW1lc3BhY2U9ci5zbGljZSgwKS5zb3J0KCkuam9pbigiLiIpfWVsc2V7cj1b XTtqLm5hbWVzcGFjZT0iIn1qLnR5cGU9aztqLmd1aWQ9ZC5ndWlkO3ZhciB1PWlb a10sej1jLmV2ZW50LnNwZWNpYWxba118fHt9O2lmKCF1KXt1PWlba109W107aWYo IXouc2V0dXB8fHouc2V0dXAuY2FsbChhLGYscixvKT09PWZhbHNlKWlmKGEuYWRk RXZlbnRMaXN0ZW5lcilhLmFkZEV2ZW50TGlzdGVuZXIoayxvLGZhbHNlKTtlbHNl IGEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitrLG8pfWlmKHouYWRk KXt6LmFkZC5jYWxsKGEsaik7aWYoIWouaGFuZGxlci5ndWlkKWouaGFuZGxlci5n dWlkPWQuZ3VpZH11LnB1c2goaik7Yy5ldmVudC5nbG9iYWxba109dHJ1ZX1hPW51 bGx9fX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihhLGIsZCxmKXtpZighKGEu bm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OCkpe3ZhciBlLGo9MCxpLG8sayxu LHIsdSx6PWMuZGF0YShhKSwKQz16JiZ6LmV2ZW50cztpZih6JiZDKXtpZihiJiZi LnR5cGUpe2Q9Yi5oYW5kbGVyO2I9Yi50eXBlfWlmKCFifHx0eXBlb2YgYj09PSJz dHJpbmciJiZiLmNoYXJBdCgwKT09PSIuIil7Yj1ifHwiIjtmb3IoZSBpbiBDKWMu ZXZlbnQucmVtb3ZlKGEsZStiKX1lbHNle2ZvcihiPWIuc3BsaXQoIiAiKTtlPWJb aisrXTspe249ZTtpPWUuaW5kZXhPZigiLiIpPDA7bz1bXTtpZighaSl7bz1lLnNw bGl0KCIuIik7ZT1vLnNoaWZ0KCk7az1uZXcgUmVnRXhwKCIoXnxcXC4pIitjLm1h cChvLnNsaWNlKDApLnNvcnQoKSxkYikuam9pbigiXFwuKD86LipcXC4pPyIpKyIo XFwufCQpIil9aWYocj1DW2VdKWlmKGQpe249Yy5ldmVudC5zcGVjaWFsW2VdfHx7 fTtmb3IoQj1mfHwwO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoZC5ndWlkPT09 dS5ndWlkKXtpZihpfHxrLnRlc3QodS5uYW1lc3BhY2UpKXtmPT1udWxsJiZyLnNw bGljZShCLS0sMSk7bi5yZW1vdmUmJm4ucmVtb3ZlLmNhbGwoYSx1KX1pZihmIT0K bnVsbClicmVha319aWYoci5sZW5ndGg9PT0wfHxmIT1udWxsJiZyLmxlbmd0aD09 PTEpe2lmKCFuLnRlYXJkb3dufHxuLnRlYXJkb3duLmNhbGwoYSxvKT09PWZhbHNl KUNhKGEsZSx6LmhhbmRsZSk7ZGVsZXRlIENbZV19fWVsc2UgZm9yKHZhciBCPTA7 QjxyLmxlbmd0aDtCKyspe3U9cltCXTtpZihpfHxrLnRlc3QodS5uYW1lc3BhY2Up KXtjLmV2ZW50LnJlbW92ZShhLG4sdS5oYW5kbGVyLEIpO3Iuc3BsaWNlKEItLSwx KX19fWlmKGMuaXNFbXB0eU9iamVjdChDKSl7aWYoYj16LmhhbmRsZSliLmVsZW09 bnVsbDtkZWxldGUgei5ldmVudHM7ZGVsZXRlIHouaGFuZGxlO2MuaXNFbXB0eU9i amVjdCh6KSYmYy5yZW1vdmVEYXRhKGEpfX19fX0sdHJpZ2dlcjpmdW5jdGlvbihh LGIsZCxmKXt2YXIgZT1hLnR5cGV8fGE7aWYoIWYpe2E9dHlwZW9mIGE9PT0ib2Jq ZWN0Ij9hW0ddP2E6Yy5leHRlbmQoYy5FdmVudChlKSxhKTpjLkV2ZW50KGUpO2lm KGUuaW5kZXhPZigiISIpPj0wKXthLnR5cGU9CmU9ZS5zbGljZSgwLC0xKTthLmV4 Y2x1c2l2ZT10cnVlfWlmKCFkKXthLnN0b3BQcm9wYWdhdGlvbigpO2MuZXZlbnQu Z2xvYmFsW2VdJiZjLmVhY2goYy5jYWNoZSxmdW5jdGlvbigpe3RoaXMuZXZlbnRz JiZ0aGlzLmV2ZW50c1tlXSYmYy5ldmVudC50cmlnZ2VyKGEsYix0aGlzLmhhbmRs ZS5lbGVtKX0pfWlmKCFkfHxkLm5vZGVUeXBlPT09M3x8ZC5ub2RlVHlwZT09PTgp cmV0dXJuIHc7YS5yZXN1bHQ9dzthLnRhcmdldD1kO2I9Yy5tYWtlQXJyYXkoYik7 Yi51bnNoaWZ0KGEpfWEuY3VycmVudFRhcmdldD1kOyhmPWMuZGF0YShkLCJoYW5k bGUiKSkmJmYuYXBwbHkoZCxiKTtmPWQucGFyZW50Tm9kZXx8ZC5vd25lckRvY3Vt ZW50O3RyeXtpZighKGQmJmQubm9kZU5hbWUmJmMubm9EYXRhW2Qubm9kZU5hbWUu dG9Mb3dlckNhc2UoKV0pKWlmKGRbIm9uIitlXSYmZFsib24iK2VdLmFwcGx5KGQs Yik9PT1mYWxzZSlhLnJlc3VsdD1mYWxzZX1jYXRjaChqKXt9aWYoIWEuaXNQcm9w YWdhdGlvblN0b3BwZWQoKSYmCmYpYy5ldmVudC50cmlnZ2VyKGEsYixmLHRydWUp O2Vsc2UgaWYoIWEuaXNEZWZhdWx0UHJldmVudGVkKCkpe2Y9YS50YXJnZXQ7dmFy IGksbz1jLm5vZGVOYW1lKGYsImEiKSYmZT09PSJjbGljayIsaz1jLmV2ZW50LnNw ZWNpYWxbZV18fHt9O2lmKCghay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5jYWxsKGQs YSk9PT1mYWxzZSkmJiFvJiYhKGYmJmYubm9kZU5hbWUmJmMubm9EYXRhW2Yubm9k ZU5hbWUudG9Mb3dlckNhc2UoKV0pKXt0cnl7aWYoZltlXSl7aWYoaT1mWyJvbiIr ZV0pZlsib24iK2VdPW51bGw7Yy5ldmVudC50cmlnZ2VyZWQ9dHJ1ZTtmW2VdKCl9 fWNhdGNoKG4pe31pZihpKWZbIm9uIitlXT1pO2MuZXZlbnQudHJpZ2dlcmVkPWZh bHNlfX19LGhhbmRsZTpmdW5jdGlvbihhKXt2YXIgYixkLGYsZTthPWFyZ3VtZW50 c1swXT1jLmV2ZW50LmZpeChhfHxBLmV2ZW50KTthLmN1cnJlbnRUYXJnZXQ9dGhp cztiPWEudHlwZS5pbmRleE9mKCIuIik8MCYmIWEuZXhjbHVzaXZlOwppZighYil7 ZD1hLnR5cGUuc3BsaXQoIi4iKTthLnR5cGU9ZC5zaGlmdCgpO2Y9bmV3IFJlZ0V4 cCgiKF58XFwuKSIrZC5zbGljZSgwKS5zb3J0KCkuam9pbigiXFwuKD86LipcXC4p PyIpKyIoXFwufCQpIil9ZT1jLmRhdGEodGhpcywiZXZlbnRzIik7ZD1lW2EudHlw ZV07aWYoZSYmZCl7ZD1kLnNsaWNlKDApO2U9MDtmb3IodmFyIGo9ZC5sZW5ndGg7 ZTxqO2UrKyl7dmFyIGk9ZFtlXTtpZihifHxmLnRlc3QoaS5uYW1lc3BhY2UpKXth LmhhbmRsZXI9aS5oYW5kbGVyO2EuZGF0YT1pLmRhdGE7YS5oYW5kbGVPYmo9aTtp PWkuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoaSE9PXcpe2EucmVz dWx0PWk7aWYoaT09PWZhbHNlKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJv cGFnYXRpb24oKX19aWYoYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgp KWJyZWFrfX19cmV0dXJuIGEucmVzdWx0fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFu Z2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBj bGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWls IGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBs YXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgb3JpZ2luYWxU YXJnZXQgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRU YXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0 IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCmZp eDpmdW5jdGlvbihhKXtpZihhW0ddKXJldHVybiBhO3ZhciBiPWE7YT1jLkV2ZW50 KGIpO2Zvcih2YXIgZD10aGlzLnByb3BzLmxlbmd0aCxmO2Q7KXtmPXRoaXMucHJv cHNbLS1kXTthW2ZdPWJbZl19aWYoIWEudGFyZ2V0KWEudGFyZ2V0PWEuc3JjRWxl bWVudHx8cztpZihhLnRhcmdldC5ub2RlVHlwZT09PTMpYS50YXJnZXQ9YS50YXJn ZXQucGFyZW50Tm9kZTtpZighYS5yZWxhdGVkVGFyZ2V0JiZhLmZyb21FbGVtZW50 KWEucmVsYXRlZFRhcmdldD1hLmZyb21FbGVtZW50PT09YS50YXJnZXQ/YS50b0Vs ZW1lbnQ6YS5mcm9tRWxlbWVudDtpZihhLnBhZ2VYPT1udWxsJiZhLmNsaWVudFgh PW51bGwpe2I9cy5kb2N1bWVudEVsZW1lbnQ7ZD1zLmJvZHk7YS5wYWdlWD1hLmNs aWVudFgrKGImJmIuc2Nyb2xsTGVmdHx8ZCYmZC5zY3JvbGxMZWZ0fHwwKS0oYiYm Yi5jbGllbnRMZWZ0fHxkJiZkLmNsaWVudExlZnR8fDApO2EucGFnZVk9YS5jbGll bnRZKyhiJiZiLnNjcm9sbFRvcHx8CmQmJmQuc2Nyb2xsVG9wfHwwKS0oYiYmYi5j bGllbnRUb3B8fGQmJmQuY2xpZW50VG9wfHwwKX1pZighYS53aGljaCYmKGEuY2hh ckNvZGV8fGEuY2hhckNvZGU9PT0wP2EuY2hhckNvZGU6YS5rZXlDb2RlKSlhLndo aWNoPWEuY2hhckNvZGV8fGEua2V5Q29kZTtpZighYS5tZXRhS2V5JiZhLmN0cmxL ZXkpYS5tZXRhS2V5PWEuY3RybEtleTtpZighYS53aGljaCYmYS5idXR0b24hPT13 KWEud2hpY2g9YS5idXR0b24mMT8xOmEuYnV0dG9uJjI/MzphLmJ1dHRvbiY0PzI6 MDtyZXR1cm4gYX0sZ3VpZDoxRTgscHJveHk6Yy5wcm94eSxzcGVjaWFsOntyZWFk eTp7c2V0dXA6Yy5iaW5kUmVhZHksdGVhcmRvd246Yy5ub29wfSxsaXZlOnthZGQ6 ZnVuY3Rpb24oYSl7Yy5ldmVudC5hZGQodGhpcyxhLm9yaWdUeXBlLGMuZXh0ZW5k KHt9LGEse2hhbmRsZXI6b2F9KSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYj10 cnVlLGQ9YS5vcmlnVHlwZS5yZXBsYWNlKE8sIiIpO2MuZWFjaChjLmRhdGEodGhp cywKImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKCl7aWYoZD09PXRoaXMub3Jp Z1R5cGUucmVwbGFjZShPLCIiKSlyZXR1cm4gYj1mYWxzZX0pO2ImJmMuZXZlbnQu cmVtb3ZlKHRoaXMsYS5vcmlnVHlwZSxvYSl9fSxiZWZvcmV1bmxvYWQ6e3NldHVw OmZ1bmN0aW9uKGEsYixkKXtpZih0aGlzLnNldEludGVydmFsKXRoaXMub25iZWZv cmV1bmxvYWQ9ZDtyZXR1cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKGEsYil7 aWYodGhpcy5vbmJlZm9yZXVubG9hZD09PWIpdGhpcy5vbmJlZm9yZXVubG9hZD1u dWxsfX19fTt2YXIgQ2E9cy5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGEs YixkKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixkLGZhbHNlKX06ZnVuY3Rpb24o YSxiLGQpe2EuZGV0YWNoRXZlbnQoIm9uIitiLGQpfTtjLkV2ZW50PWZ1bmN0aW9u KGEpe2lmKCF0aGlzLnByZXZlbnREZWZhdWx0KXJldHVybiBuZXcgYy5FdmVudChh KTtpZihhJiZhLnR5cGUpe3RoaXMub3JpZ2luYWxFdmVudD0KYTt0aGlzLnR5cGU9 YS50eXBlfWVsc2UgdGhpcy50eXBlPWE7dGhpcy50aW1lU3RhbXA9SigpO3RoaXNb R109dHJ1ZX07Yy5FdmVudC5wcm90b3R5cGU9e3ByZXZlbnREZWZhdWx0OmZ1bmN0 aW9uKCl7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Wjt2YXIgYT10aGlzLm9yaWdp bmFsRXZlbnQ7aWYoYSl7YS5wcmV2ZW50RGVmYXVsdCYmYS5wcmV2ZW50RGVmYXVs dCgpO2EucmV0dXJuVmFsdWU9ZmFsc2V9fSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rp b24oKXt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPVo7dmFyIGE9dGhpcy5vcmln aW5hbEV2ZW50O2lmKGEpe2Euc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdh dGlvbigpO2EuY2FuY2VsQnViYmxlPXRydWV9fSxzdG9wSW1tZWRpYXRlUHJvcGFn YXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9w cGVkPVo7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVk OlksaXNQcm9wYWdhdGlvblN0b3BwZWQ6WSwKaXNJbW1lZGlhdGVQcm9wYWdhdGlv blN0b3BwZWQ6WX07dmFyIERhPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVsYXRlZFRh cmdldDt0cnl7Zm9yKDtiJiZiIT09dGhpczspYj1iLnBhcmVudE5vZGU7aWYoYiE9 PXRoaXMpe2EudHlwZT1hLmRhdGE7Yy5ldmVudC5oYW5kbGUuYXBwbHkodGhpcyxh cmd1bWVudHMpfX1jYXRjaChkKXt9fSxFYT1mdW5jdGlvbihhKXthLnR5cGU9YS5k YXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Yy5lYWNo KHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0s ZnVuY3Rpb24oYSxiKXtjLmV2ZW50LnNwZWNpYWxbYV09e3NldHVwOmZ1bmN0aW9u KGQpe2MuZXZlbnQuYWRkKHRoaXMsYixkJiZkLnNlbGVjdG9yP0VhOkRhLGEpfSx0 ZWFyZG93bjpmdW5jdGlvbihkKXtjLmV2ZW50LnJlbW92ZSh0aGlzLGIsZCYmZC5z ZWxlY3Rvcj9FYTpEYSl9fX0pO2lmKCFjLnN1cHBvcnQuc3VibWl0QnViYmxlcylj LmV2ZW50LnNwZWNpYWwuc3VibWl0PQp7c2V0dXA6ZnVuY3Rpb24oKXtpZih0aGlz Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0iZm9ybSIpe2MuZXZlbnQuYWRkKHRo aXMsImNsaWNrLnNwZWNpYWxTdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFy Z2V0LGQ9Yi50eXBlO2lmKChkPT09InN1Ym1pdCJ8fGQ9PT0iaW1hZ2UiKSYmYyhi KS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoKXJldHVybiBuYSgic3VibWl0Iix0aGlz LGFyZ3VtZW50cyl9KTtjLmV2ZW50LmFkZCh0aGlzLCJrZXlwcmVzcy5zcGVjaWFs U3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigo ZD09PSJ0ZXh0Inx8ZD09PSJwYXNzd29yZCIpJiZjKGIpLmNsb3Nlc3QoImZvcm0i KS5sZW5ndGgmJmEua2V5Q29kZT09PTEzKXJldHVybiBuYSgic3VibWl0Iix0aGlz LGFyZ3VtZW50cyl9KX1lbHNlIHJldHVybiBmYWxzZX0sdGVhcmRvd246ZnVuY3Rp b24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3BlY2lhbFN1Ym1pdCIpfX07Cmlm KCFjLnN1cHBvcnQuY2hhbmdlQnViYmxlcyl7dmFyIGRhPS90ZXh0YXJlYXxpbnB1 dHxzZWxlY3QvaSxlYSxGYT1mdW5jdGlvbihhKXt2YXIgYj1hLnR5cGUsZD1hLnZh bHVlO2lmKGI9PT0icmFkaW8ifHxiPT09ImNoZWNrYm94IilkPWEuY2hlY2tlZDtl bHNlIGlmKGI9PT0ic2VsZWN0LW11bHRpcGxlIilkPWEuc2VsZWN0ZWRJbmRleD4t MT9jLm1hcChhLm9wdGlvbnMsZnVuY3Rpb24oZil7cmV0dXJuIGYuc2VsZWN0ZWR9 KS5qb2luKCItIik6IiI7ZWxzZSBpZihhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9 PT0ic2VsZWN0IilkPWEuc2VsZWN0ZWRJbmRleDtyZXR1cm4gZH0sZmE9ZnVuY3Rp b24oYSxiKXt2YXIgZD1hLnRhcmdldCxmLGU7aWYoISghZGEudGVzdChkLm5vZGVO YW1lKXx8ZC5yZWFkT25seSkpe2Y9Yy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIpO2U9 RmEoZCk7aWYoYS50eXBlIT09ImZvY3Vzb3V0Inx8ZC50eXBlIT09InJhZGlvIilj LmRhdGEoZCwiX2NoYW5nZV9kYXRhIiwKZSk7aWYoIShmPT09d3x8ZT09PWYpKWlm KGYhPW51bGx8fGUpe2EudHlwZT0iY2hhbmdlIjtyZXR1cm4gYy5ldmVudC50cmln Z2VyKGEsYixkKX19fTtjLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtmaWx0ZXJzOntm b2N1c291dDpmYSxjbGljazpmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIu dHlwZTtpZihkPT09InJhZGlvInx8ZD09PSJjaGVja2JveCJ8fGIubm9kZU5hbWUu dG9Mb3dlckNhc2UoKT09PSJzZWxlY3QiKXJldHVybiBmYS5jYWxsKHRoaXMsYSl9 LGtleWRvd246ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYo YS5rZXlDb2RlPT09MTMmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PSJ0ZXh0 YXJlYSJ8fGEua2V5Q29kZT09PTMyJiYoZD09PSJjaGVja2JveCJ8fGQ9PT0icmFk aW8iKXx8ZD09PSJzZWxlY3QtbXVsdGlwbGUiKXJldHVybiBmYS5jYWxsKHRoaXMs YSl9LGJlZm9yZWFjdGl2YXRlOmZ1bmN0aW9uKGEpe2E9YS50YXJnZXQ7Yy5kYXRh KGEsCiJfY2hhbmdlX2RhdGEiLEZhKGEpKX19LHNldHVwOmZ1bmN0aW9uKCl7aWYo dGhpcy50eXBlPT09ImZpbGUiKXJldHVybiBmYWxzZTtmb3IodmFyIGEgaW4gZWEp Yy5ldmVudC5hZGQodGhpcyxhKyIuc3BlY2lhbENoYW5nZSIsZWFbYV0pO3JldHVy biBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2Mu ZXZlbnQucmVtb3ZlKHRoaXMsIi5zcGVjaWFsQ2hhbmdlIik7cmV0dXJuIGRhLnRl c3QodGhpcy5ub2RlTmFtZSl9fTtlYT1jLmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZp bHRlcnN9cy5hZGRFdmVudExpc3RlbmVyJiZjLmVhY2goe2ZvY3VzOiJmb2N1c2lu IixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZChmKXtm PWMuZXZlbnQuZml4KGYpO2YudHlwZT1iO3JldHVybiBjLmV2ZW50LmhhbmRsZS5j YWxsKHRoaXMsZil9Yy5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigp e3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihhLApkLHRydWUpfSx0ZWFyZG93bjpmdW5j dGlvbigpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGQsdHJ1ZSl9fX0pO2Mu ZWFjaChbImJpbmQiLCJvbmUiXSxmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rp b24oZCxmLGUpe2lmKHR5cGVvZiBkPT09Im9iamVjdCIpe2Zvcih2YXIgaiBpbiBk KXRoaXNbYl0oaixmLGRbal0sZSk7cmV0dXJuIHRoaXN9aWYoYy5pc0Z1bmN0aW9u KGYpKXtlPWY7Zj13fXZhciBpPWI9PT0ib25lIj9jLnByb3h5KGUsZnVuY3Rpb24o ayl7Yyh0aGlzKS51bmJpbmQoayxpKTtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3Vt ZW50cyl9KTplO2lmKGQ9PT0idW5sb2FkIiYmYiE9PSJvbmUiKXRoaXMub25lKGQs ZixlKTtlbHNle2o9MDtmb3IodmFyIG89dGhpcy5sZW5ndGg7ajxvO2orKyljLmV2 ZW50LmFkZCh0aGlzW2pdLGQsaSxmKX1yZXR1cm4gdGhpc319KTtjLmZuLmV4dGVu ZCh7dW5iaW5kOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ib2JqZWN0IiYm CiFhLnByZXZlbnREZWZhdWx0KWZvcih2YXIgZCBpbiBhKXRoaXMudW5iaW5kKGQs YVtkXSk7ZWxzZXtkPTA7Zm9yKHZhciBmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspYy5l dmVudC5yZW1vdmUodGhpc1tkXSxhLGIpfXJldHVybiB0aGlzfSxkZWxlZ2F0ZTpm dW5jdGlvbihhLGIsZCxmKXtyZXR1cm4gdGhpcy5saXZlKGIsZCxmLGEpfSx1bmRl bGVnYXRlOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09 PTA/dGhpcy51bmJpbmQoImxpdmUiKTp0aGlzLmRpZShiLG51bGwsZCxhKX0sdHJp Z2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtj LmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0 aW9uKGEsYil7aWYodGhpc1swXSl7YT1jLkV2ZW50KGEpO2EucHJldmVudERlZmF1 bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2MuZXZlbnQudHJpZ2dlcihhLGIsdGhp c1swXSk7cmV0dXJuIGEucmVzdWx0fX0sCnRvZ2dsZTpmdW5jdGlvbihhKXtmb3Io dmFyIGI9YXJndW1lbnRzLGQ9MTtkPGIubGVuZ3RoOyljLnByb3h5KGEsYltkKytd KTtyZXR1cm4gdGhpcy5jbGljayhjLnByb3h5KGEsZnVuY3Rpb24oZil7dmFyIGU9 KGMuZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQpfHwwKSVkO2MuZGF0YSh0 aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQsZSsxKTtmLnByZXZlbnREZWZhdWx0KCk7 cmV0dXJuIGJbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpfHxmYWxzZX0pKX0saG92 ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNl bGVhdmUoYnx8YSl9fSk7dmFyIEdhPXtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9j dXNvdXQiLG1vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2Vv dXQifTtjLmVhY2goWyJsaXZlIiwiZGllIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2Jd PWZ1bmN0aW9uKGQsZixlLGope3ZhciBpLG89MCxrLG4scj1qfHx0aGlzLnNlbGVj dG9yLAp1PWo/dGhpczpjKHRoaXMuY29udGV4dCk7aWYoYy5pc0Z1bmN0aW9uKGYp KXtlPWY7Zj13fWZvcihkPShkfHwiIikuc3BsaXQoIiAiKTsoaT1kW28rK10pIT1u dWxsOyl7aj1PLmV4ZWMoaSk7az0iIjtpZihqKXtrPWpbMF07aT1pLnJlcGxhY2Uo TywiIil9aWYoaT09PSJob3ZlciIpZC5wdXNoKCJtb3VzZWVudGVyIitrLCJtb3Vz ZWxlYXZlIitrKTtlbHNle249aTtpZihpPT09ImZvY3VzInx8aT09PSJibHVyIil7 ZC5wdXNoKEdhW2ldK2spO2krPWt9ZWxzZSBpPShHYVtpXXx8aSkraztiPT09Imxp dmUiP3UuZWFjaChmdW5jdGlvbigpe2MuZXZlbnQuYWRkKHRoaXMscGEoaSxyKSx7 ZGF0YTpmLHNlbGVjdG9yOnIsaGFuZGxlcjplLG9yaWdUeXBlOmksb3JpZ0hhbmRs ZXI6ZSxwcmVUeXBlOm59KX0pOnUudW5iaW5kKHBhKGksciksZSl9fXJldHVybiB0 aGlzfX0pO2MuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQg cmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1v dXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1v dXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBr ZXl1cCBlcnJvciIuc3BsaXQoIiAiKSwKZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1 bmN0aW9uKGQpe3JldHVybiBkP3RoaXMuYmluZChiLGQpOnRoaXMudHJpZ2dlcihi KX07aWYoYy5hdHRyRm4pYy5hdHRyRm5bYl09dHJ1ZX0pO0EuYXR0YWNoRXZlbnQm JiFBLmFkZEV2ZW50TGlzdGVuZXImJkEuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixm dW5jdGlvbigpe2Zvcih2YXIgYSBpbiBjLmNhY2hlKWlmKGMuY2FjaGVbYV0uaGFu ZGxlKXRyeXtjLmV2ZW50LnJlbW92ZShjLmNhY2hlW2FdLmhhbmRsZS5lbGVtKX1j YXRjaChiKXt9fSk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShnKXtmb3IodmFyIGg9 IiIsbCxtPTA7Z1ttXTttKyspe2w9Z1ttXTtpZihsLm5vZGVUeXBlPT09M3x8bC5u b2RlVHlwZT09PTQpaCs9bC5ub2RlVmFsdWU7ZWxzZSBpZihsLm5vZGVUeXBlIT09 OCloKz1hKGwuY2hpbGROb2Rlcyl9cmV0dXJuIGh9ZnVuY3Rpb24gYihnLGgsbCxt LHEscCl7cT0wO2Zvcih2YXIgdj1tLmxlbmd0aDtxPHY7cSsrKXt2YXIgdD1tW3Fd OwppZih0KXt0PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hl PT09bCl7eT1tW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSYmIXAp e3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlmKHQubm9kZU5hbWUudG9Mb3dlckNh c2UoKT09PWgpe3k9dDticmVha310PXRbZ119bVtxXT15fX19ZnVuY3Rpb24gZChn LGgsbCxtLHEscCl7cT0wO2Zvcih2YXIgdj1tLmxlbmd0aDtxPHY7cSsrKXt2YXIg dD1tW3FdO2lmKHQpe3Q9dFtnXTtmb3IodmFyIHk9ZmFsc2U7dDspe2lmKHQuc2l6 Y2FjaGU9PT1sKXt5PW1bdC5zaXpzZXRdO2JyZWFrfWlmKHQubm9kZVR5cGU9PT0x KXtpZighcCl7dC5zaXpjYWNoZT1sO3Quc2l6c2V0PXF9aWYodHlwZW9mIGghPT0i c3RyaW5nIil7aWYodD09PWgpe3k9dHJ1ZTticmVha319ZWxzZSBpZihrLmZpbHRl cihoLFt0XSkubGVuZ3RoPjApe3k9dDticmVha319dD10W2ddfW1bcV09eX19fXZh ciBmPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teW1xd XSpcXXxbJyJdW14nIl0qWyciXXxbXltcXSciXSspK1xdfFxcLnxbXiA+K34sKFxb XFxdKykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLAplPTAsaj1P YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9ZmFsc2Usbz10cnVlO1swLDBdLnNv cnQoZnVuY3Rpb24oKXtvPWZhbHNlO3JldHVybiAwfSk7dmFyIGs9ZnVuY3Rpb24o ZyxoLGwsbSl7bD1sfHxbXTt2YXIgcT1oPWh8fHM7aWYoaC5ub2RlVHlwZSE9PTEm Jmgubm9kZVR5cGUhPT05KXJldHVybltdO2lmKCFnfHx0eXBlb2YgZyE9PSJzdHJp bmciKXJldHVybiBsO2Zvcih2YXIgcD1bXSx2LHQseSxTLEg9dHJ1ZSxNPXgoaCks ST1nOyhmLmV4ZWMoIiIpLHY9Zi5leGVjKEkpKSE9PW51bGw7KXtJPXZbM107cC5w dXNoKHZbMV0pO2lmKHZbMl0pe1M9dlszXTticmVha319aWYocC5sZW5ndGg+MSYm ci5leGVjKGcpKWlmKHAubGVuZ3RoPT09MiYmbi5yZWxhdGl2ZVtwWzBdXSl0PWdh KHBbMF0rcFsxXSxoKTtlbHNlIGZvcih0PW4ucmVsYXRpdmVbcFswXV0/W2hdOmso cC5zaGlmdCgpLGgpO3AubGVuZ3RoOyl7Zz1wLnNoaWZ0KCk7aWYobi5yZWxhdGl2 ZVtnXSlnKz1wLnNoaWZ0KCk7CnQ9Z2EoZyx0KX1lbHNle2lmKCFtJiZwLmxlbmd0 aD4xJiZoLm5vZGVUeXBlPT09OSYmIU0mJm4ubWF0Y2guSUQudGVzdChwWzBdKSYm IW4ubWF0Y2guSUQudGVzdChwW3AubGVuZ3RoLTFdKSl7dj1rLmZpbmQocC5zaGlm dCgpLGgsTSk7aD12LmV4cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KVswXTp2LnNl dFswXX1pZihoKXt2PW0/e2V4cHI6cC5wb3AoKSxzZXQ6eihtKX06ay5maW5kKHAu cG9wKCkscC5sZW5ndGg9PT0xJiYocFswXT09PSJ+Inx8cFswXT09PSIrIikmJmgu cGFyZW50Tm9kZT9oLnBhcmVudE5vZGU6aCxNKTt0PXYuZXhwcj9rLmZpbHRlcih2 LmV4cHIsdi5zZXQpOnYuc2V0O2lmKHAubGVuZ3RoPjApeT16KHQpO2Vsc2UgSD1m YWxzZTtmb3IoO3AubGVuZ3RoOyl7dmFyIEQ9cC5wb3AoKTt2PUQ7aWYobi5yZWxh dGl2ZVtEXSl2PXAucG9wKCk7ZWxzZSBEPSIiO2lmKHY9PW51bGwpdj1oO24ucmVs YXRpdmVbRF0oeSx2LE0pfX1lbHNlIHk9W119eXx8KHk9dCk7eXx8ay5lcnJvcihE fHwKZyk7aWYoai5jYWxsKHkpPT09IltvYmplY3QgQXJyYXldIilpZihIKWlmKGgm Jmgubm9kZVR5cGU9PT0xKWZvcihnPTA7eVtnXSE9bnVsbDtnKyspe2lmKHlbZ10m Jih5W2ddPT09dHJ1ZXx8eVtnXS5ub2RlVHlwZT09PTEmJkUoaCx5W2ddKSkpbC5w dXNoKHRbZ10pfWVsc2UgZm9yKGc9MDt5W2ddIT1udWxsO2crKyl5W2ddJiZ5W2dd Lm5vZGVUeXBlPT09MSYmbC5wdXNoKHRbZ10pO2Vsc2UgbC5wdXNoLmFwcGx5KGws eSk7ZWxzZSB6KHksbCk7aWYoUyl7ayhTLHEsbCxtKTtrLnVuaXF1ZVNvcnQobCl9 cmV0dXJuIGx9O2sudW5pcXVlU29ydD1mdW5jdGlvbihnKXtpZihCKXtpPW87Zy5z b3J0KEIpO2lmKGkpZm9yKHZhciBoPTE7aDxnLmxlbmd0aDtoKyspZ1toXT09PWdb aC0xXSYmZy5zcGxpY2UoaC0tLDEpfXJldHVybiBnfTtrLm1hdGNoZXM9ZnVuY3Rp b24oZyxoKXtyZXR1cm4gayhnLG51bGwsbnVsbCxoKX07ay5maW5kPWZ1bmN0aW9u KGcsaCxsKXt2YXIgbSxxO2lmKCFnKXJldHVybltdOwpmb3IodmFyIHA9MCx2PW4u b3JkZXIubGVuZ3RoO3A8djtwKyspe3ZhciB0PW4ub3JkZXJbcF07aWYocT1uLmxl ZnRNYXRjaFt0XS5leGVjKGcpKXt2YXIgeT1xWzFdO3Euc3BsaWNlKDEsMSk7aWYo eS5zdWJzdHIoeS5sZW5ndGgtMSkhPT0iXFwiKXtxWzFdPShxWzFdfHwiIikucmVw bGFjZSgvXFwvZywiIik7bT1uLmZpbmRbdF0ocSxoLGwpO2lmKG0hPW51bGwpe2c9 Zy5yZXBsYWNlKG4ubWF0Y2hbdF0sIiIpO2JyZWFrfX19fW18fChtPWguZ2V0RWxl bWVudHNCeVRhZ05hbWUoIioiKSk7cmV0dXJue3NldDptLGV4cHI6Z319O2suZmls dGVyPWZ1bmN0aW9uKGcsaCxsLG0pe2Zvcih2YXIgcT1nLHA9W10sdj1oLHQseSxT PWgmJmhbMF0mJngoaFswXSk7ZyYmaC5sZW5ndGg7KXtmb3IodmFyIEggaW4gbi5m aWx0ZXIpaWYoKHQ9bi5sZWZ0TWF0Y2hbSF0uZXhlYyhnKSkhPW51bGwmJnRbMl0p e3ZhciBNPW4uZmlsdGVyW0hdLEksRDtEPXRbMV07eT1mYWxzZTt0LnNwbGljZSgx LDEpO2lmKEQuc3Vic3RyKEQubGVuZ3RoLQoxKSE9PSJcXCIpe2lmKHY9PT1wKXA9 W107aWYobi5wcmVGaWx0ZXJbSF0paWYodD1uLnByZUZpbHRlcltIXSh0LHYsbCxw LG0sUykpe2lmKHQ9PT10cnVlKWNvbnRpbnVlfWVsc2UgeT1JPXRydWU7aWYodClm b3IodmFyIFU9MDsoRD12W1VdKSE9bnVsbDtVKyspaWYoRCl7ST1NKEQsdCxVLHYp O3ZhciBIYT1tXiEhSTtpZihsJiZJIT1udWxsKWlmKEhhKXk9dHJ1ZTtlbHNlIHZb VV09ZmFsc2U7ZWxzZSBpZihIYSl7cC5wdXNoKEQpO3k9dHJ1ZX19aWYoSSE9PXcp e2x8fCh2PXApO2c9Zy5yZXBsYWNlKG4ubWF0Y2hbSF0sIiIpO2lmKCF5KXJldHVy bltdO2JyZWFrfX19aWYoZz09PXEpaWYoeT09bnVsbClrLmVycm9yKGcpO2Vsc2Ug YnJlYWs7cT1nfXJldHVybiB2fTtrLmVycm9yPWZ1bmN0aW9uKGcpe3Rocm93IlN5 bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZzt9O3ZhciBu PWsuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJ RDovIygoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLywKQ0xBU1M6L1wuKCg/ Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykvLE5BTUU6L1xbbmFtZT1bJyJdKigo PzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspWyciXSpcXS8sQVRUUjovXFtccyoo KD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJd KikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKi1d fFxcLikrKS8sQ0hJTEQ6Lzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpc KChldmVufG9kZHxbXGRuKy1dKilcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZp cnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXi1dfCQpLyxQU0VV RE86LzooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKSg/OlwoKFsnIl0/KSgo PzpcKFteXCldK1wpfFteXChcKV0qKSspXDJcKSk/L30sbGVmdE1hdGNoOnt9LGF0 dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRy SGFuZGxlOntocmVmOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldEF0dHJpYnV0ZSgi aHJlZiIpfX0sCnJlbGF0aXZlOnsiKyI6ZnVuY3Rpb24oZyxoKXt2YXIgbD10eXBl b2YgaD09PSJzdHJpbmciLG09bCYmIS9cVy8udGVzdChoKTtsPWwmJiFtO2lmKG0p aD1oLnRvTG93ZXJDYXNlKCk7bT0wO2Zvcih2YXIgcT1nLmxlbmd0aCxwO208cTtt KyspaWYocD1nW21dKXtmb3IoOyhwPXAucHJldmlvdXNTaWJsaW5nKSYmcC5ub2Rl VHlwZSE9PTE7KTtnW21dPWx8fHAmJnAubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09 PWg/cHx8ZmFsc2U6cD09PWh9bCYmay5maWx0ZXIoaCxnLHRydWUpfSwiPiI6ZnVu Y3Rpb24oZyxoKXt2YXIgbD10eXBlb2YgaD09PSJzdHJpbmciO2lmKGwmJiEvXFcv LnRlc3QoaCkpe2g9aC50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgbT0wLHE9Zy5sZW5n dGg7bTxxO20rKyl7dmFyIHA9Z1ttXTtpZihwKXtsPXAucGFyZW50Tm9kZTtnW21d PWwubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWg/bDpmYWxzZX19fWVsc2V7bT0w O2ZvcihxPWcubGVuZ3RoO208cTttKyspaWYocD1nW21dKWdbbV09Cmw/cC5wYXJl bnROb2RlOnAucGFyZW50Tm9kZT09PWg7bCYmay5maWx0ZXIoaCxnLHRydWUpfX0s IiI6ZnVuY3Rpb24oZyxoLGwpe3ZhciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0i c3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9aD1oLnRvTG93ZXJDYXNlKCk7 cT1ifXEoInBhcmVudE5vZGUiLGgsbSxnLHAsbCl9LCJ+IjpmdW5jdGlvbihnLGgs bCl7dmFyIG09ZSsrLHE9ZDtpZih0eXBlb2YgaD09PSJzdHJpbmciJiYhL1xXLy50 ZXN0KGgpKXt2YXIgcD1oPWgudG9Mb3dlckNhc2UoKTtxPWJ9cSgicHJldmlvdXNT aWJsaW5nIixoLG0sZyxwLGwpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oZyxoLGwpe2lm KHR5cGVvZiBoLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFsKXJldHVy bihnPWguZ2V0RWxlbWVudEJ5SWQoZ1sxXSkpP1tnXTpbXX0sTkFNRTpmdW5jdGlv bihnLGgpe2lmKHR5cGVvZiBoLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5l ZCIpe3ZhciBsPVtdOwpoPWguZ2V0RWxlbWVudHNCeU5hbWUoZ1sxXSk7Zm9yKHZh ciBtPTAscT1oLmxlbmd0aDttPHE7bSsrKWhbbV0uZ2V0QXR0cmlidXRlKCJuYW1l Iik9PT1nWzFdJiZsLnB1c2goaFttXSk7cmV0dXJuIGwubGVuZ3RoPT09MD9udWxs Omx9fSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC5nZXRFbGVtZW50c0J5VGFn TmFtZShnWzFdKX19LHByZUZpbHRlcjp7Q0xBU1M6ZnVuY3Rpb24oZyxoLGwsbSxx LHApe2c9IiAiK2dbMV0ucmVwbGFjZSgvXFwvZywiIikrIiAiO2lmKHApcmV0dXJu IGc7cD0wO2Zvcih2YXIgdjsodj1oW3BdKSE9bnVsbDtwKyspaWYodilpZihxXih2 LmNsYXNzTmFtZSYmKCIgIit2LmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoL1tcdFxu XS9nLCIgIikuaW5kZXhPZihnKT49MCkpbHx8bS5wdXNoKHYpO2Vsc2UgaWYobClo W3BdPWZhbHNlO3JldHVybiBmYWxzZX0sSUQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGdb MV0ucmVwbGFjZSgvXFwvZywiIil9LFRBRzpmdW5jdGlvbihnKXtyZXR1cm4gZ1sx XS50b0xvd2VyQ2FzZSgpfSwKQ0hJTEQ6ZnVuY3Rpb24oZyl7aWYoZ1sxXT09PSJu dGgiKXt2YXIgaD0vKC0/KShcZCopbigoPzpcK3wtKT9cZCopLy5leGVjKGdbMl09 PT0iZXZlbiImJiIybiJ8fGdbMl09PT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0 KGdbMl0pJiYiMG4rIitnWzJdfHxnWzJdKTtnWzJdPWhbMV0rKGhbMl18fDEpLTA7 Z1szXT1oWzNdLTB9Z1swXT1lKys7cmV0dXJuIGd9LEFUVFI6ZnVuY3Rpb24oZyxo LGwsbSxxLHApe2g9Z1sxXS5yZXBsYWNlKC9cXC9nLCIiKTtpZighcCYmbi5hdHRy TWFwW2hdKWdbMV09bi5hdHRyTWFwW2hdO2lmKGdbMl09PT0ifj0iKWdbNF09IiAi K2dbNF0rIiAiO3JldHVybiBnfSxQU0VVRE86ZnVuY3Rpb24oZyxoLGwsbSxxKXtp ZihnWzFdPT09Im5vdCIpaWYoKGYuZXhlYyhnWzNdKXx8IiIpLmxlbmd0aD4xfHwv Xlx3Ly50ZXN0KGdbM10pKWdbM109ayhnWzNdLG51bGwsbnVsbCxoKTtlbHNle2c9 ay5maWx0ZXIoZ1szXSxoLGwsdHJ1ZV5xKTtsfHxtLnB1c2guYXBwbHkobSwKZyk7 cmV0dXJuIGZhbHNlfWVsc2UgaWYobi5tYXRjaC5QT1MudGVzdChnWzBdKXx8bi5t YXRjaC5DSElMRC50ZXN0KGdbMF0pKXJldHVybiB0cnVlO3JldHVybiBnfSxQT1M6 ZnVuY3Rpb24oZyl7Zy51bnNoaWZ0KHRydWUpO3JldHVybiBnfX0sZmlsdGVyczp7 ZW5hYmxlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5kaXNhYmxlZD09PWZhbHNlJiZn LnR5cGUhPT0iaGlkZGVuIn0sZGlzYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcu ZGlzYWJsZWQ9PT10cnVlfSxjaGVja2VkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmNo ZWNrZWQ9PT10cnVlfSxzZWxlY3RlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5zZWxl Y3RlZD09PXRydWV9LHBhcmVudDpmdW5jdGlvbihnKXtyZXR1cm4hIWcuZmlyc3RD aGlsZH0sZW1wdHk6ZnVuY3Rpb24oZyl7cmV0dXJuIWcuZmlyc3RDaGlsZH0saGFz OmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4hIWsobFszXSxnKS5sZW5ndGh9LGhlYWRl cjpmdW5jdGlvbihnKXtyZXR1cm4vaFxkL2kudGVzdChnLm5vZGVOYW1lKX0sCnRl eHQ6ZnVuY3Rpb24oZyl7cmV0dXJuInRleHQiPT09Zy50eXBlfSxyYWRpbzpmdW5j dGlvbihnKXtyZXR1cm4icmFkaW8iPT09Zy50eXBlfSxjaGVja2JveDpmdW5jdGlv bihnKXtyZXR1cm4iY2hlY2tib3giPT09Zy50eXBlfSxmaWxlOmZ1bmN0aW9uKGcp e3JldHVybiJmaWxlIj09PWcudHlwZX0scGFzc3dvcmQ6ZnVuY3Rpb24oZyl7cmV0 dXJuInBhc3N3b3JkIj09PWcudHlwZX0sc3VibWl0OmZ1bmN0aW9uKGcpe3JldHVy biJzdWJtaXQiPT09Zy50eXBlfSxpbWFnZTpmdW5jdGlvbihnKXtyZXR1cm4iaW1h Z2UiPT09Zy50eXBlfSxyZXNldDpmdW5jdGlvbihnKXtyZXR1cm4icmVzZXQiPT09 Zy50eXBlfSxidXR0b246ZnVuY3Rpb24oZyl7cmV0dXJuImJ1dHRvbiI9PT1nLnR5 cGV8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJidXR0b24ifSxpbnB1dDpm dW5jdGlvbihnKXtyZXR1cm4vaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9p LnRlc3QoZy5ub2RlTmFtZSl9fSwKc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24o ZyxoKXtyZXR1cm4gaD09PTB9LGxhc3Q6ZnVuY3Rpb24oZyxoLGwsbSl7cmV0dXJu IGg9PT1tLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGglMj09 PTB9LG9kZDpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0xfSxsdDpmdW5jdGlv bihnLGgsbCl7cmV0dXJuIGg8bFszXS0wfSxndDpmdW5jdGlvbihnLGgsbCl7cmV0 dXJuIGg+bFszXS0wfSxudGg6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9 PT1ofSxlcTpmdW5jdGlvbihnLGgsbCl7cmV0dXJuIGxbM10tMD09PWh9fSxmaWx0 ZXI6e1BTRVVETzpmdW5jdGlvbihnLGgsbCxtKXt2YXIgcT1oWzFdLHA9bi5maWx0 ZXJzW3FdO2lmKHApcmV0dXJuIHAoZyxsLGgsbSk7ZWxzZSBpZihxPT09ImNvbnRh aW5zIilyZXR1cm4oZy50ZXh0Q29udGVudHx8Zy5pbm5lclRleHR8fGEoW2ddKXx8 IiIpLmluZGV4T2YoaFszXSk+PTA7ZWxzZSBpZihxPT09Im5vdCIpe2g9CmhbM107 bD0wO2ZvcihtPWgubGVuZ3RoO2w8bTtsKyspaWYoaFtsXT09PWcpcmV0dXJuIGZh bHNlO3JldHVybiB0cnVlfWVsc2Ugay5lcnJvcigiU3ludGF4IGVycm9yLCB1bnJl Y29nbml6ZWQgZXhwcmVzc2lvbjogIitxKX0sQ0hJTEQ6ZnVuY3Rpb24oZyxoKXt2 YXIgbD1oWzFdLG09Zztzd2l0Y2gobCl7Y2FzZSAib25seSI6Y2FzZSAiZmlyc3Qi OmZvcig7bT1tLnByZXZpb3VzU2libGluZzspaWYobS5ub2RlVHlwZT09PTEpcmV0 dXJuIGZhbHNlO2lmKGw9PT0iZmlyc3QiKXJldHVybiB0cnVlO209ZztjYXNlICJs YXN0Ijpmb3IoO209bS5uZXh0U2libGluZzspaWYobS5ub2RlVHlwZT09PTEpcmV0 dXJuIGZhbHNlO3JldHVybiB0cnVlO2Nhc2UgIm50aCI6bD1oWzJdO3ZhciBxPWhb M107aWYobD09PTEmJnE9PT0wKXJldHVybiB0cnVlO2g9aFswXTt2YXIgcD1nLnBh cmVudE5vZGU7aWYocCYmKHAuc2l6Y2FjaGUhPT1ofHwhZy5ub2RlSW5kZXgpKXt2 YXIgdj0wO2ZvcihtPXAuZmlyc3RDaGlsZDttO209Cm0ubmV4dFNpYmxpbmcpaWYo bS5ub2RlVHlwZT09PTEpbS5ub2RlSW5kZXg9Kyt2O3Auc2l6Y2FjaGU9aH1nPWcu bm9kZUluZGV4LXE7cmV0dXJuIGw9PT0wP2c9PT0wOmclbD09PTAmJmcvbD49MH19 LElEOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcubm9kZVR5cGU9PT0xJiZnLmdldEF0 dHJpYnV0ZSgiaWQiKT09PWh9LFRBRzpmdW5jdGlvbihnLGgpe3JldHVybiBoPT09 IioiJiZnLm5vZGVUeXBlPT09MXx8Zy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09 aH0sQ0xBU1M6ZnVuY3Rpb24oZyxoKXtyZXR1cm4oIiAiKyhnLmNsYXNzTmFtZXx8 Zy5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihoKT4tMX0sQVRU UjpmdW5jdGlvbihnLGgpe3ZhciBsPWhbMV07Zz1uLmF0dHJIYW5kbGVbbF0/bi5h dHRySGFuZGxlW2xdKGcpOmdbbF0hPW51bGw/Z1tsXTpnLmdldEF0dHJpYnV0ZShs KTtsPWcrIiI7dmFyIG09aFsyXTtoPWhbNF07cmV0dXJuIGc9PW51bGw/bT09PSIh PSI6bT09PQoiPSI/bD09PWg6bT09PSIqPSI/bC5pbmRleE9mKGgpPj0wOm09PT0i fj0iPygiICIrbCsiICIpLmluZGV4T2YoaCk+PTA6IWg/bCYmZyE9PWZhbHNlOm09 PT0iIT0iP2whPT1oOm09PT0iXj0iP2wuaW5kZXhPZihoKT09PTA6bT09PSIkPSI/ bC5zdWJzdHIobC5sZW5ndGgtaC5sZW5ndGgpPT09aDptPT09Inw9Ij9sPT09aHx8 bC5zdWJzdHIoMCxoLmxlbmd0aCsxKT09PWgrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rp b24oZyxoLGwsbSl7dmFyIHE9bi5zZXRGaWx0ZXJzW2hbMl1dO2lmKHEpcmV0dXJu IHEoZyxsLGgsbSl9fX0scj1uLm1hdGNoLlBPUztmb3IodmFyIHUgaW4gbi5tYXRj aCl7bi5tYXRjaFt1XT1uZXcgUmVnRXhwKG4ubWF0Y2hbdV0uc291cmNlKy8oPyFb XlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSk7bi5sZWZ0TWF0Y2hbdV09bmV3 IFJlZ0V4cCgvKF4oPzoufFxyfFxuKSo/KS8uc291cmNlK24ubWF0Y2hbdV0uc291 cmNlLnJlcGxhY2UoL1xcKFxkKykvZyxmdW5jdGlvbihnLApoKXtyZXR1cm4iXFwi KyhoLTArMSl9KSl9dmFyIHo9ZnVuY3Rpb24oZyxoKXtnPUFycmF5LnByb3RvdHlw ZS5zbGljZS5jYWxsKGcsMCk7aWYoaCl7aC5wdXNoLmFwcGx5KGgsZyk7cmV0dXJu IGh9cmV0dXJuIGd9O3RyeXtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzLmRv Y3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLDApfWNhdGNoKEMpe3o9ZnVuY3Rpb24o ZyxoKXtoPWh8fFtdO2lmKGouY2FsbChnKT09PSJbb2JqZWN0IEFycmF5XSIpQXJy YXkucHJvdG90eXBlLnB1c2guYXBwbHkoaCxnKTtlbHNlIGlmKHR5cGVvZiBnLmxl bmd0aD09PSJudW1iZXIiKWZvcih2YXIgbD0wLG09Zy5sZW5ndGg7bDxtO2wrKylo LnB1c2goZ1tsXSk7ZWxzZSBmb3IobD0wO2dbbF07bCsrKWgucHVzaChnW2xdKTty ZXR1cm4gaH19dmFyIEI7aWYocy5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3Vt ZW50UG9zaXRpb24pQj1mdW5jdGlvbihnLGgpe2lmKCFnLmNvbXBhcmVEb2N1bWVu dFBvc2l0aW9ufHwKIWguY29tcGFyZURvY3VtZW50UG9zaXRpb24pe2lmKGc9PWgp aT10cnVlO3JldHVybiBnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPy0xOjF9Zz1n LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGgpJjQ/LTE6Zz09PWg/MDoxO2lmKGc9 PT0wKWk9dHJ1ZTtyZXR1cm4gZ307ZWxzZSBpZigic291cmNlSW5kZXgiaW4gcy5k b2N1bWVudEVsZW1lbnQpQj1mdW5jdGlvbihnLGgpe2lmKCFnLnNvdXJjZUluZGV4 fHwhaC5zb3VyY2VJbmRleCl7aWYoZz09aClpPXRydWU7cmV0dXJuIGcuc291cmNl SW5kZXg/LTE6MX1nPWcuc291cmNlSW5kZXgtaC5zb3VyY2VJbmRleDtpZihnPT09 MClpPXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYocy5jcmVhdGVSYW5nZSlCPWZ1bmN0 aW9uKGcsaCl7aWYoIWcub3duZXJEb2N1bWVudHx8IWgub3duZXJEb2N1bWVudCl7 aWYoZz09aClpPXRydWU7cmV0dXJuIGcub3duZXJEb2N1bWVudD8tMToxfXZhciBs PWcub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpLG09Cmgub3duZXJEb2N1bWVu dC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQoZywwKTtsLnNldEVuZChnLDApO20u c2V0U3RhcnQoaCwwKTttLnNldEVuZChoLDApO2c9bC5jb21wYXJlQm91bmRhcnlQ b2ludHMoUmFuZ2UuU1RBUlRfVE9fRU5ELG0pO2lmKGc9PT0wKWk9dHJ1ZTtyZXR1 cm4gZ307KGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxo PSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO2cuaW5uZXJIVE1MPSI8YSBu YW1lPSciK2grIicvPiI7dmFyIGw9cy5kb2N1bWVudEVsZW1lbnQ7bC5pbnNlcnRC ZWZvcmUoZyxsLmZpcnN0Q2hpbGQpO2lmKHMuZ2V0RWxlbWVudEJ5SWQoaCkpe24u ZmluZC5JRD1mdW5jdGlvbihtLHEscCl7aWYodHlwZW9mIHEuZ2V0RWxlbWVudEJ5 SWQhPT0idW5kZWZpbmVkIiYmIXApcmV0dXJuKHE9cS5nZXRFbGVtZW50QnlJZCht WzFdKSk/cS5pZD09PW1bMV18fHR5cGVvZiBxLmdldEF0dHJpYnV0ZU5vZGUhPT0i dW5kZWZpbmVkIiYmCnEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWU9 PT1tWzFdP1txXTp3OltdfTtuLmZpbHRlci5JRD1mdW5jdGlvbihtLHEpe3ZhciBw PXR5cGVvZiBtLmdldEF0dHJpYnV0ZU5vZGUhPT0idW5kZWZpbmVkIiYmbS5nZXRB dHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBtLm5vZGVUeXBlPT09MSYmcCYmcC5u b2RlVmFsdWU9PT1xfX1sLnJlbW92ZUNoaWxkKGcpO2w9Zz1udWxsfSkoKTsoZnVu Y3Rpb24oKXt2YXIgZz1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuYXBwZW5kQ2hp bGQocy5jcmVhdGVDb21tZW50KCIiKSk7aWYoZy5nZXRFbGVtZW50c0J5VGFnTmFt ZSgiKiIpLmxlbmd0aD4wKW4uZmluZC5UQUc9ZnVuY3Rpb24oaCxsKXtsPWwuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoaFsxXSk7aWYoaFsxXT09PSIqIil7aD1bXTtmb3Io dmFyIG09MDtsW21dO20rKylsW21dLm5vZGVUeXBlPT09MSYmaC5wdXNoKGxbbV0p O2w9aH1yZXR1cm4gbH07Zy5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iOwpp ZihnLmZpcnN0Q2hpbGQmJnR5cGVvZiBnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRl IT09InVuZGVmaW5lZCImJmcuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYi KSE9PSIjIiluLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihoKXtyZXR1cm4gaC5n ZXRBdHRyaWJ1dGUoImhyZWYiLDIpfTtnPW51bGx9KSgpO3MucXVlcnlTZWxlY3Rv ckFsbCYmZnVuY3Rpb24oKXt2YXIgZz1rLGg9cy5jcmVhdGVFbGVtZW50KCJkaXYi KTtoLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKCEoaC5xdWVy eVNlbGVjdG9yQWxsJiZoLnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3Ro PT09MCkpe2s9ZnVuY3Rpb24obSxxLHAsdil7cT1xfHxzO2lmKCF2JiZxLm5vZGVU eXBlPT09OSYmIXgocSkpdHJ5e3JldHVybiB6KHEucXVlcnlTZWxlY3RvckFsbCht KSxwKX1jYXRjaCh0KXt9cmV0dXJuIGcobSxxLHAsdil9O2Zvcih2YXIgbCBpbiBn KWtbbF09Z1tsXTtoPW51bGx9fSgpOwooZnVuY3Rpb24oKXt2YXIgZz1zLmNyZWF0 ZUVsZW1lbnQoImRpdiIpO2cuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUn PjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISghZy5nZXRFbGVt ZW50c0J5Q2xhc3NOYW1lfHxnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5s ZW5ndGg9PT0wKSl7Zy5sYXN0Q2hpbGQuY2xhc3NOYW1lPSJlIjtpZihnLmdldEVs ZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGghPT0xKXtuLm9yZGVyLnNwbGlj ZSgxLDAsIkNMQVNTIik7bi5maW5kLkNMQVNTPWZ1bmN0aW9uKGgsbCxtKXtpZih0 eXBlb2YgbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFt KXJldHVybiBsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaFsxXSl9O2c9bnVsbH19 fSkoKTt2YXIgRT1zLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGcs aCl7cmV0dXJuISEoZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSYxNil9Ogpm dW5jdGlvbihnLGgpe3JldHVybiBnIT09aCYmKGcuY29udGFpbnM/Zy5jb250YWlu cyhoKTp0cnVlKX0seD1mdW5jdGlvbihnKXtyZXR1cm4oZz0oZz9nLm93bmVyRG9j dW1lbnR8fGc6MCkuZG9jdW1lbnRFbGVtZW50KT9nLm5vZGVOYW1lIT09IkhUTUwi OmZhbHNlfSxnYT1mdW5jdGlvbihnLGgpe3ZhciBsPVtdLG09IiIscTtmb3IoaD1o Lm5vZGVUeXBlP1toXTpoO3E9bi5tYXRjaC5QU0VVRE8uZXhlYyhnKTspe20rPXFb MF07Zz1nLnJlcGxhY2Uobi5tYXRjaC5QU0VVRE8sIiIpfWc9bi5yZWxhdGl2ZVtn XT9nKyIqIjpnO3E9MDtmb3IodmFyIHA9aC5sZW5ndGg7cTxwO3ErKylrKGcsaFtx XSxsKTtyZXR1cm4gay5maWx0ZXIobSxsKX07Yy5maW5kPWs7Yy5leHByPWsuc2Vs ZWN0b3JzO2MuZXhwclsiOiJdPWMuZXhwci5maWx0ZXJzO2MudW5pcXVlPWsudW5p cXVlU29ydDtjLnRleHQ9YTtjLmlzWE1MRG9jPXg7Yy5jb250YWlucz1FfSkoKTt2 YXIgZWI9L1VudGlsJC8sZmI9L14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxs KS8sCmdiPS8sLztSPUFycmF5LnByb3RvdHlwZS5zbGljZTt2YXIgSWE9ZnVuY3Rp b24oYSxiLGQpe2lmKGMuaXNGdW5jdGlvbihiKSlyZXR1cm4gYy5ncmVwKGEsZnVu Y3Rpb24oZSxqKXtyZXR1cm4hIWIuY2FsbChlLGosZSk9PT1kfSk7ZWxzZSBpZihi Lm5vZGVUeXBlKXJldHVybiBjLmdyZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4gZT09 PWI9PT1kfSk7ZWxzZSBpZih0eXBlb2YgYj09PSJzdHJpbmciKXt2YXIgZj1jLmdy ZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlVHlwZT09PTF9KTtpZihVYS50 ZXN0KGIpKXJldHVybiBjLmZpbHRlcihiLGYsIWQpO2Vsc2UgYj1jLmZpbHRlcihi LGYpfXJldHVybiBjLmdyZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4gYy5pbkFycmF5 KGUsYik+PTA9PT1kfSl9O2MuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe2Zv cih2YXIgYj10aGlzLnB1c2hTdGFjaygiIiwiZmluZCIsYSksZD0wLGY9MCxlPXRo aXMubGVuZ3RoO2Y8ZTtmKyspe2Q9Yi5sZW5ndGg7CmMuZmluZChhLHRoaXNbZl0s Yik7aWYoZj4wKWZvcih2YXIgaj1kO2o8Yi5sZW5ndGg7aisrKWZvcih2YXIgaT0w O2k8ZDtpKyspaWYoYltpXT09PWJbal0pe2Iuc3BsaWNlKGotLSwxKTticmVha319 cmV0dXJuIGJ9LGhhczpmdW5jdGlvbihhKXt2YXIgYj1jKGEpO3JldHVybiB0aGlz LmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZD0wLGY9Yi5sZW5ndGg7ZDxmO2Qr KylpZihjLmNvbnRhaW5zKHRoaXMsYltkXSkpcmV0dXJuIHRydWV9KX0sbm90OmZ1 bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJYSh0aGlzLGEsZmFsc2Up LCJub3QiLGEpfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0 YWNrKElhKHRoaXMsYSx0cnVlKSwiZmlsdGVyIixhKX0saXM6ZnVuY3Rpb24oYSl7 cmV0dXJuISFhJiZjLmZpbHRlcihhLHRoaXMpLmxlbmd0aD4wfSxjbG9zZXN0OmZ1 bmN0aW9uKGEsYil7aWYoYy5pc0FycmF5KGEpKXt2YXIgZD1bXSxmPXRoaXNbMF0s ZSxqPQp7fSxpO2lmKGYmJmEubGVuZ3RoKXtlPTA7Zm9yKHZhciBvPWEubGVuZ3Ro O2U8bztlKyspe2k9YVtlXTtqW2ldfHwoaltpXT1jLmV4cHIubWF0Y2guUE9TLnRl c3QoaSk/YyhpLGJ8fHRoaXMuY29udGV4dCk6aSl9Zm9yKDtmJiZmLm93bmVyRG9j dW1lbnQmJmYhPT1iOyl7Zm9yKGkgaW4gail7ZT1qW2ldO2lmKGUuanF1ZXJ5P2Uu aW5kZXgoZik+LTE6YyhmKS5pcyhlKSl7ZC5wdXNoKHtzZWxlY3RvcjppLGVsZW06 Zn0pO2RlbGV0ZSBqW2ldfX1mPWYucGFyZW50Tm9kZX19cmV0dXJuIGR9dmFyIGs9 Yy5leHByLm1hdGNoLlBPUy50ZXN0KGEpP2MoYSxifHx0aGlzLmNvbnRleHQpOm51 bGw7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKG4scil7Zm9yKDtyJiZyLm93bmVy RG9jdW1lbnQmJnIhPT1iOyl7aWYoaz9rLmluZGV4KHIpPi0xOmMocikuaXMoYSkp cmV0dXJuIHI7cj1yLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KX0saW5kZXg6ZnVu Y3Rpb24oYSl7aWYoIWF8fHR5cGVvZiBhPT09CiJzdHJpbmciKXJldHVybiBjLmlu QXJyYXkodGhpc1swXSxhP2MoYSk6dGhpcy5wYXJlbnQoKS5jaGlsZHJlbigpKTty ZXR1cm4gYy5pbkFycmF5KGEuanF1ZXJ5P2FbMF06YSx0aGlzKX0sYWRkOmZ1bmN0 aW9uKGEsYil7YT10eXBlb2YgYT09PSJzdHJpbmciP2MoYSxifHx0aGlzLmNvbnRl eHQpOmMubWFrZUFycmF5KGEpO2I9Yy5tZXJnZSh0aGlzLmdldCgpLGEpO3JldHVy biB0aGlzLnB1c2hTdGFjayhxYShhWzBdKXx8cWEoYlswXSk/YjpjLnVuaXF1ZShi KSl9LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGQodGhpcy5wcmV2 T2JqZWN0KX19KTtjLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1h LnBhcmVudE5vZGUpJiZhLm5vZGVUeXBlIT09MTE/YTpudWxsfSxwYXJlbnRzOmZ1 bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNV bnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMuZGlyKGEsInBhcmVudE5vZGUi LApkKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJuZXh0U2li bGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBjLm50aChhLDIsInByZXZp b3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihh LCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRp cihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixk KXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciLGQpfSxwcmV2VW50aWw6ZnVu Y3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwcmV2aW91c1NpYmxpbmciLGQp fSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gYy5zaWJsaW5nKGEucGFyZW50 Tm9kZS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4g Yy5zaWJsaW5nKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3Jl dHVybiBjLm5vZGVOYW1lKGEsImlmcmFtZSIpPwphLmNvbnRlbnREb2N1bWVudHx8 YS5jb250ZW50V2luZG93LmRvY3VtZW50OmMubWFrZUFycmF5KGEuY2hpbGROb2Rl cyl9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXt2YXIgZT1j Lm1hcCh0aGlzLGIsZCk7ZWIudGVzdChhKXx8KGY9ZCk7aWYoZiYmdHlwZW9mIGY9 PT0ic3RyaW5nIillPWMuZmlsdGVyKGYsZSk7ZT10aGlzLmxlbmd0aD4xP2MudW5p cXVlKGUpOmU7aWYoKHRoaXMubGVuZ3RoPjF8fGdiLnRlc3QoZikpJiZmYi50ZXN0 KGEpKWU9ZS5yZXZlcnNlKCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUsYSxSLmNh bGwoYXJndW1lbnRzKS5qb2luKCIsIikpfX0pO2MuZXh0ZW5kKHtmaWx0ZXI6ZnVu Y3Rpb24oYSxiLGQpe2lmKGQpYT0iOm5vdCgiK2ErIikiO3JldHVybiBjLmZpbmQu bWF0Y2hlcyhhLGIpfSxkaXI6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPVtdO2Zvcihh PWFbYl07YSYmYS5ub2RlVHlwZSE9PTkmJihkPT09d3x8YS5ub2RlVHlwZSE9PTF8 fCFjKGEpLmlzKGQpKTspe2Eubm9kZVR5cGU9PT0KMSYmZi5wdXNoKGEpO2E9YVti XX1yZXR1cm4gZn0sbnRoOmZ1bmN0aW9uKGEsYixkKXtiPWJ8fDE7Zm9yKHZhciBm PTA7YTthPWFbZF0paWYoYS5ub2RlVHlwZT09PTEmJisrZj09PWIpYnJlYWs7cmV0 dXJuIGF9LHNpYmxpbmc6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9W107YTthPWEu bmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09PTEmJmEhPT1iJiZkLnB1c2goYSk7cmV0 dXJuIGR9fSk7dmFyIEphPS8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csVj0v XlxzKy8sS2E9Lyg8KFtcdzpdKylbXj5dKj8pXC8+L2csaGI9L14oPzphcmVhfGJy fGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSQvaSxMYT0v PChbXHc6XSspLyxpYj0vPHRib2R5L2ksamI9Lzx8JiM/XHcrOy8sdGE9LzxzY3Jp cHR8PG9iamVjdHw8ZW1iZWR8PG9wdGlvbnw8c3R5bGUvaSx1YT0vY2hlY2tlZFxz Kig/OltePV18PVxzKi5jaGVja2VkLikvaSxNYT1mdW5jdGlvbihhLGIsZCl7cmV0 dXJuIGhiLnRlc3QoZCk/CmE6YisiPjwvIitkKyI+In0sRj17b3B0aW9uOlsxLCI8 c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5k OlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSx0aGVhZDpbMSwiPHRhYmxl PiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48 L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJv ZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29s Z3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEsIjxtYXA+Iiwi PC9tYXA+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtGLm9wdGdyb3VwPUYub3B0aW9u O0YudGJvZHk9Ri50Zm9vdD1GLmNvbGdyb3VwPUYuY2FwdGlvbj1GLnRoZWFkO0Yu dGg9Ri50ZDtpZighYy5zdXBwb3J0Lmh0bWxTZXJpYWxpemUpRi5fZGVmYXVsdD1b MSwiZGl2PGRpdj4iLCI8L2Rpdj4iXTtjLmZuLmV4dGVuZCh7dGV4dDpmdW5jdGlv bihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv bihiKXt2YXIgZD0KYyh0aGlzKTtkLnRleHQoYS5jYWxsKHRoaXMsYixkLnRleHQo KSkpfSk7aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmYSE9PXcpcmV0dXJuIHRoaXMu ZW1wdHkoKS5hcHBlbmQoKHRoaXNbMF0mJnRoaXNbMF0ub3duZXJEb2N1bWVudHx8 cykuY3JlYXRlVGV4dE5vZGUoYSkpO3JldHVybiBjLnRleHQodGhpcyl9LHdyYXBB bGw6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVh Y2goZnVuY3Rpb24oZCl7Yyh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGQpKX0p O2lmKHRoaXNbMF0pe3ZhciBiPWMoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVx KDApLmNsb25lKHRydWUpO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZv cmUodGhpc1swXSk7Yi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGQ9dGhpcztkLmZp cnN0Q2hpbGQmJmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTE7KWQ9ZC5maXJzdENo aWxkO3JldHVybiBkfSkuYXBwZW5kKHRoaXMpfXJldHVybiB0aGlzfSwKd3JhcElu bmVyOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5l YWNoKGZ1bmN0aW9uKGIpe2ModGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIp KX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLGQ9 Yi5jb250ZW50cygpO2QubGVuZ3RoP2Qud3JhcEFsbChhKTpiLmFwcGVuZChhKX0p fSx3cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtj KHRoaXMpLndyYXBBbGwoYSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe2Mubm9kZU5hbWUodGhpcywiYm9k eSIpfHxjKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQo KX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1l bnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuYXBw ZW5kQ2hpbGQoYSl9KX0sCnByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5k b21NYW5pcChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihhKXt0aGlzLm5vZGVUeXBl PT09MSYmdGhpcy5pbnNlcnRCZWZvcmUoYSx0aGlzLmZpcnN0Q2hpbGQpfSl9LGJl Zm9yZTpmdW5jdGlvbigpe2lmKHRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZSly ZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oYil7 dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLHRoaXMpfSk7ZWxzZSBpZihh cmd1bWVudHMubGVuZ3RoKXt2YXIgYT1jKGFyZ3VtZW50c1swXSk7YS5wdXNoLmFw cGx5KGEsdGhpcy50b0FycmF5KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhhLCJi ZWZvcmUiLGFyZ3VtZW50cyl9fSxhZnRlcjpmdW5jdGlvbigpe2lmKHRoaXNbMF0m JnRoaXNbMF0ucGFyZW50Tm9kZSlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVu dHMsZmFsc2UsZnVuY3Rpb24oYil7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9y ZShiLAp0aGlzLm5leHRTaWJsaW5nKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0 aCl7dmFyIGE9dGhpcy5wdXNoU3RhY2sodGhpcywiYWZ0ZXIiLGFyZ3VtZW50cyk7 YS5wdXNoLmFwcGx5KGEsYyhhcmd1bWVudHNbMF0pLnRvQXJyYXkoKSk7cmV0dXJu IGF9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9MCxmOyhmPXRoaXNb ZF0pIT1udWxsO2QrKylpZighYXx8Yy5maWx0ZXIoYSxbZl0pLmxlbmd0aCl7aWYo IWImJmYubm9kZVR5cGU9PT0xKXtjLmNsZWFuRGF0YShmLmdldEVsZW1lbnRzQnlU YWdOYW1lKCIqIikpO2MuY2xlYW5EYXRhKFtmXSl9Zi5wYXJlbnROb2RlJiZmLnBh cmVudE5vZGUucmVtb3ZlQ2hpbGQoZil9cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0 aW9uKCl7Zm9yKHZhciBhPTAsYjsoYj10aGlzW2FdKSE9bnVsbDthKyspZm9yKGIu bm9kZVR5cGU9PT0xJiZjLmNsZWFuRGF0YShiLmdldEVsZW1lbnRzQnlUYWdOYW1l KCIqIikpO2IuZmlyc3RDaGlsZDspYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQp OwpyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5tYXAo ZnVuY3Rpb24oKXtpZighYy5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIWMuaXNYTUxE b2ModGhpcykpe3ZhciBkPXRoaXMub3V0ZXJIVE1MLGY9dGhpcy5vd25lckRvY3Vt ZW50O2lmKCFkKXtkPWYuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5hcHBlbmRDaGls ZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ZD1kLmlubmVySFRNTH1yZXR1cm4gYy5j bGVhbihbZC5yZXBsYWNlKEphLCIiKS5yZXBsYWNlKC89KFtePSInPlxzXStcLyk+ L2csJz0iJDEiPicpLnJlcGxhY2UoViwiIildLGYpWzBdfWVsc2UgcmV0dXJuIHRo aXMuY2xvbmVOb2RlKHRydWUpfSk7aWYoYT09PXRydWUpe3JhKHRoaXMsYik7cmEo dGhpcy5maW5kKCIqIiksYi5maW5kKCIqIikpfXJldHVybiBifSxodG1sOmZ1bmN0 aW9uKGEpe2lmKGE9PT13KXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLm5vZGVUeXBl PT09MT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKEphLAoiIik6bnVsbDtlbHNl IGlmKHR5cGVvZiBhPT09InN0cmluZyImJiF0YS50ZXN0KGEpJiYoYy5zdXBwb3J0 LmxlYWRpbmdXaGl0ZXNwYWNlfHwhVi50ZXN0KGEpKSYmIUZbKExhLmV4ZWMoYSl8 fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPWEucmVwbGFjZShLYSxNYSk7 dHJ5e2Zvcih2YXIgYj0wLGQ9dGhpcy5sZW5ndGg7YjxkO2IrKylpZih0aGlzW2Jd Lm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEodGhpc1tiXS5nZXRFbGVtZW50c0J5 VGFnTmFtZSgiKiIpKTt0aGlzW2JdLmlubmVySFRNTD1hfX1jYXRjaChmKXt0aGlz LmVtcHR5KCkuYXBwZW5kKGEpfX1lbHNlIGMuaXNGdW5jdGlvbihhKT90aGlzLmVh Y2goZnVuY3Rpb24oZSl7dmFyIGo9Yyh0aGlzKSxpPWouaHRtbCgpO2ouZW1wdHko KS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gYS5jYWxsKHRoaXMsZSxpKX0pfSk6 dGhpcy5lbXB0eSgpLmFwcGVuZChhKTtyZXR1cm4gdGhpc30scmVwbGFjZVdpdGg6 ZnVuY3Rpb24oYSl7aWYodGhpc1swXSYmCnRoaXNbMF0ucGFyZW50Tm9kZSl7aWYo Yy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFy IGQ9Yyh0aGlzKSxmPWQuaHRtbCgpO2QucmVwbGFjZVdpdGgoYS5jYWxsKHRoaXMs YixmKSl9KTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKWE9YyhhKS5kZXRhY2goKTty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5uZXh0U2libGlu ZyxkPXRoaXMucGFyZW50Tm9kZTtjKHRoaXMpLnJlbW92ZSgpO2I/YyhiKS5iZWZv cmUoYSk6YyhkKS5hcHBlbmQoYSl9KX1lbHNlIHJldHVybiB0aGlzLnB1c2hTdGFj ayhjKGMuaXNGdW5jdGlvbihhKT9hKCk6YSksInJlcGxhY2VXaXRoIixhKX0sZGV0 YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLHRydWUpfSxkb21N YW5pcDpmdW5jdGlvbihhLGIsZCl7ZnVuY3Rpb24gZih1KXtyZXR1cm4gYy5ub2Rl TmFtZSh1LCJ0YWJsZSIpP3UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5Iilb MF18fAp1LmFwcGVuZENoaWxkKHUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50 KCJ0Ym9keSIpKTp1fXZhciBlLGosaT1hWzBdLG89W10saztpZighYy5zdXBwb3J0 LmNoZWNrQ2xvbmUmJmFyZ3VtZW50cy5sZW5ndGg9PT0zJiZ0eXBlb2YgaT09PSJz dHJpbmciJiZ1YS50ZXN0KGkpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtj KHRoaXMpLmRvbU1hbmlwKGEsYixkLHRydWUpfSk7aWYoYy5pc0Z1bmN0aW9uKGkp KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odSl7dmFyIHo9Yyh0aGlzKTthWzBd PWkuY2FsbCh0aGlzLHUsYj96Lmh0bWwoKTp3KTt6LmRvbU1hbmlwKGEsYixkKX0p O2lmKHRoaXNbMF0pe2U9aSYmaS5wYXJlbnROb2RlO2U9Yy5zdXBwb3J0LnBhcmVu dE5vZGUmJmUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxlbmd0aD09 PXRoaXMubGVuZ3RoP3tmcmFnbWVudDplfTpzYShhLHRoaXMsbyk7az1lLmZyYWdt ZW50O2lmKGo9ay5jaGlsZE5vZGVzLmxlbmd0aD09PQoxPyhrPWsuZmlyc3RDaGls ZCk6ay5maXJzdENoaWxkKXtiPWImJmMubm9kZU5hbWUoaiwidHIiKTtmb3IodmFy IG49MCxyPXRoaXMubGVuZ3RoO248cjtuKyspZC5jYWxsKGI/Zih0aGlzW25dLGop OnRoaXNbbl0sbj4wfHxlLmNhY2hlYWJsZXx8dGhpcy5sZW5ndGg+MT9rLmNsb25l Tm9kZSh0cnVlKTprKX1vLmxlbmd0aCYmYy5lYWNoKG8sUWEpfXJldHVybiB0aGlz fX0pO2MuZnJhZ21lbnRzPXt9O2MuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJl cGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0 ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEs Yil7Yy5mblthXT1mdW5jdGlvbihkKXt2YXIgZj1bXTtkPWMoZCk7dmFyIGU9dGhp cy5sZW5ndGg9PT0xJiZ0aGlzWzBdLnBhcmVudE5vZGU7aWYoZSYmZS5ub2RlVHlw ZT09PTExJiZlLmNoaWxkTm9kZXMubGVuZ3RoPT09MSYmZC5sZW5ndGg9PT0xKXtk W2JdKHRoaXNbMF0pOwpyZXR1cm4gdGhpc31lbHNle2U9MDtmb3IodmFyIGo9ZC5s ZW5ndGg7ZTxqO2UrKyl7dmFyIGk9KGU+MD90aGlzLmNsb25lKHRydWUpOnRoaXMp LmdldCgpO2MuZm5bYl0uYXBwbHkoYyhkW2VdKSxpKTtmPWYuY29uY2F0KGkpfXJl dHVybiB0aGlzLnB1c2hTdGFjayhmLGEsZC5zZWxlY3Rvcil9fX0pO2MuZXh0ZW5k KHtjbGVhbjpmdW5jdGlvbihhLGIsZCxmKXtiPWJ8fHM7aWYodHlwZW9mIGIuY3Jl YXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKWI9Yi5vd25lckRvY3VtZW50fHxiWzBd JiZiWzBdLm93bmVyRG9jdW1lbnR8fHM7Zm9yKHZhciBlPVtdLGo9MCxpOyhpPWFb al0pIT1udWxsO2orKyl7aWYodHlwZW9mIGk9PT0ibnVtYmVyIilpKz0iIjtpZihp KXtpZih0eXBlb2YgaT09PSJzdHJpbmciJiYhamIudGVzdChpKSlpPWIuY3JlYXRl VGV4dE5vZGUoaSk7ZWxzZSBpZih0eXBlb2YgaT09PSJzdHJpbmciKXtpPWkucmVw bGFjZShLYSxNYSk7dmFyIG89KExhLmV4ZWMoaSl8fFsiIiwKIiJdKVsxXS50b0xv d2VyQ2FzZSgpLGs9RltvXXx8Ri5fZGVmYXVsdCxuPWtbMF0scj1iLmNyZWF0ZUVs ZW1lbnQoImRpdiIpO2ZvcihyLmlubmVySFRNTD1rWzFdK2kra1syXTtuLS07KXI9 ci5sYXN0Q2hpbGQ7aWYoIWMuc3VwcG9ydC50Ym9keSl7bj1pYi50ZXN0KGkpO289 bz09PSJ0YWJsZSImJiFuP3IuZmlyc3RDaGlsZCYmci5maXJzdENoaWxkLmNoaWxk Tm9kZXM6a1sxXT09PSI8dGFibGU+IiYmIW4/ci5jaGlsZE5vZGVzOltdO2Zvcihr PW8ubGVuZ3RoLTE7az49MDstLWspYy5ub2RlTmFtZShvW2tdLCJ0Ym9keSIpJiYh b1trXS5jaGlsZE5vZGVzLmxlbmd0aCYmb1trXS5wYXJlbnROb2RlLnJlbW92ZUNo aWxkKG9ba10pfSFjLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJlYudGVzdChp KSYmci5pbnNlcnRCZWZvcmUoYi5jcmVhdGVUZXh0Tm9kZShWLmV4ZWMoaSlbMF0p LHIuZmlyc3RDaGlsZCk7aT1yLmNoaWxkTm9kZXN9aWYoaS5ub2RlVHlwZSllLnB1 c2goaSk7ZWxzZSBlPQpjLm1lcmdlKGUsaSl9fWlmKGQpZm9yKGo9MDtlW2pdO2or KylpZihmJiZjLm5vZGVOYW1lKGVbal0sInNjcmlwdCIpJiYoIWVbal0udHlwZXx8 ZVtqXS50eXBlLnRvTG93ZXJDYXNlKCk9PT0idGV4dC9qYXZhc2NyaXB0IikpZi5w dXNoKGVbal0ucGFyZW50Tm9kZT9lW2pdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo ZVtqXSk6ZVtqXSk7ZWxzZXtlW2pdLm5vZGVUeXBlPT09MSYmZS5zcGxpY2UuYXBw bHkoZSxbaisxLDBdLmNvbmNhdChjLm1ha2VBcnJheShlW2pdLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJzY3JpcHQiKSkpKTtkLmFwcGVuZENoaWxkKGVbal0pfXJldHVy biBlfSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGQsZj1jLmNhY2hl LGU9Yy5ldmVudC5zcGVjaWFsLGo9Yy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8saT0w LG87KG89YVtpXSkhPW51bGw7aSsrKWlmKGQ9b1tjLmV4cGFuZG9dKXtiPWZbZF07 aWYoYi5ldmVudHMpZm9yKHZhciBrIGluIGIuZXZlbnRzKWVba10/CmMuZXZlbnQu cmVtb3ZlKG8sayk6Q2EobyxrLGIuaGFuZGxlKTtpZihqKWRlbGV0ZSBvW2MuZXhw YW5kb107ZWxzZSBvLnJlbW92ZUF0dHJpYnV0ZSYmby5yZW1vdmVBdHRyaWJ1dGUo Yy5leHBhbmRvKTtkZWxldGUgZltkXX19fSk7dmFyIGtiPS96LT9pbmRleHxmb250 LT93ZWlnaHR8b3BhY2l0eXx6b29tfGxpbmUtP2hlaWdodC9pLE5hPS9hbHBoYVwo W14pXSpcKS8sT2E9L29wYWNpdHk9KFteKV0qKS8saGE9L2Zsb2F0L2ksaWE9Ly0o W2Etel0pL2lnLGxiPS8oW0EtWl0pL2csbWI9L14tP1xkKyg/OnB4KT8kL2ksbmI9 L14tP1xkLyxvYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRk ZW4iLGRpc3BsYXk6ImJsb2NrIn0scGI9WyJMZWZ0IiwiUmlnaHQiXSxxYj1bIlRv cCIsIkJvdHRvbSJdLHJiPXMuZGVmYXVsdFZpZXcmJnMuZGVmYXVsdFZpZXcuZ2V0 Q29tcHV0ZWRTdHlsZSxQYT1jLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoi c3R5bGVGbG9hdCIsamE9CmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNh c2UoKX07Yy5mbi5jc3M9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWCh0aGlzLGEsYix0 cnVlLGZ1bmN0aW9uKGQsZixlKXtpZihlPT09dylyZXR1cm4gYy5jdXJDU1MoZCxm KTtpZih0eXBlb2YgZT09PSJudW1iZXIiJiYha2IudGVzdChmKSllKz0icHgiO2Mu c3R5bGUoZCxmLGUpfSl9O2MuZXh0ZW5kKHtzdHlsZTpmdW5jdGlvbihhLGIsZCl7 aWYoIWF8fGEubm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OClyZXR1cm4gdztp ZigoYj09PSJ3aWR0aCJ8fGI9PT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoZCk8MClk PXc7dmFyIGY9YS5zdHlsZXx8YSxlPWQhPT13O2lmKCFjLnN1cHBvcnQub3BhY2l0 eSYmYj09PSJvcGFjaXR5Iil7aWYoZSl7Zi56b29tPTE7Yj1wYXJzZUludChkLDEw KSsiIj09PSJOYU4iPyIiOiJhbHBoYShvcGFjaXR5PSIrZCoxMDArIikiO2E9Zi5m aWx0ZXJ8fGMuY3VyQ1NTKGEsImZpbHRlciIpfHwiIjtmLmZpbHRlcj0KTmEudGVz dChhKT9hLnJlcGxhY2UoTmEsYik6Yn1yZXR1cm4gZi5maWx0ZXImJmYuZmlsdGVy LmluZGV4T2YoIm9wYWNpdHk9Iik+PTA/cGFyc2VGbG9hdChPYS5leGVjKGYuZmls dGVyKVsxXSkvMTAwKyIiOiIifWlmKGhhLnRlc3QoYikpYj1QYTtiPWIucmVwbGFj ZShpYSxqYSk7aWYoZSlmW2JdPWQ7cmV0dXJuIGZbYl19LGNzczpmdW5jdGlvbihh LGIsZCxmKXtpZihiPT09IndpZHRoInx8Yj09PSJoZWlnaHQiKXt2YXIgZSxqPWI9 PT0id2lkdGgiP3BiOnFiO2Z1bmN0aW9uIGkoKXtlPWI9PT0id2lkdGgiP2Eub2Zm c2V0V2lkdGg6YS5vZmZzZXRIZWlnaHQ7ZiE9PSJib3JkZXIiJiZjLmVhY2goaixm dW5jdGlvbigpe2Z8fChlLT1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsInBhZGRpbmci K3RoaXMsdHJ1ZSkpfHwwKTtpZihmPT09Im1hcmdpbiIpZSs9cGFyc2VGbG9hdChj LmN1ckNTUyhhLCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwO2Vsc2UgZS09cGFyc2VG bG9hdChjLmN1ckNTUyhhLAoiYm9yZGVyIit0aGlzKyJXaWR0aCIsdHJ1ZSkpfHww fSl9YS5vZmZzZXRXaWR0aCE9PTA/aSgpOmMuc3dhcChhLG9iLGkpO3JldHVybiBN YXRoLm1heCgwLE1hdGgucm91bmQoZSkpfXJldHVybiBjLmN1ckNTUyhhLGIsZCl9 LGN1ckNTUzpmdW5jdGlvbihhLGIsZCl7dmFyIGYsZT1hLnN0eWxlO2lmKCFjLnN1 cHBvcnQub3BhY2l0eSYmYj09PSJvcGFjaXR5IiYmYS5jdXJyZW50U3R5bGUpe2Y9 T2EudGVzdChhLmN1cnJlbnRTdHlsZS5maWx0ZXJ8fCIiKT9wYXJzZUZsb2F0KFJl Z0V4cC4kMSkvMTAwKyIiOiIiO3JldHVybiBmPT09IiI/IjEiOmZ9aWYoaGEudGVz dChiKSliPVBhO2lmKCFkJiZlJiZlW2JdKWY9ZVtiXTtlbHNlIGlmKHJiKXtpZiho YS50ZXN0KGIpKWI9ImZsb2F0IjtiPWIucmVwbGFjZShsYiwiLSQxIikudG9Mb3dl ckNhc2UoKTtlPWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztpZighZSlyZXR1 cm4gbnVsbDtpZihhPWUuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpKWY9CmEuZ2V0 UHJvcGVydHlWYWx1ZShiKTtpZihiPT09Im9wYWNpdHkiJiZmPT09IiIpZj0iMSJ9 ZWxzZSBpZihhLmN1cnJlbnRTdHlsZSl7ZD1iLnJlcGxhY2UoaWEsamEpO2Y9YS5j dXJyZW50U3R5bGVbYl18fGEuY3VycmVudFN0eWxlW2RdO2lmKCFtYi50ZXN0KGYp JiZuYi50ZXN0KGYpKXtiPWUubGVmdDt2YXIgaj1hLnJ1bnRpbWVTdHlsZS5sZWZ0 O2EucnVudGltZVN0eWxlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdDtlLmxlZnQ9 ZD09PSJmb250U2l6ZSI/IjFlbSI6Znx8MDtmPWUucGl4ZWxMZWZ0KyJweCI7ZS5s ZWZ0PWI7YS5ydW50aW1lU3R5bGUubGVmdD1qfX1yZXR1cm4gZn0sc3dhcDpmdW5j dGlvbihhLGIsZCl7dmFyIGY9e307Zm9yKHZhciBlIGluIGIpe2ZbZV09YS5zdHls ZVtlXTthLnN0eWxlW2VdPWJbZV19ZC5jYWxsKGEpO2ZvcihlIGluIGIpYS5zdHls ZVtlXT1mW2VdfX0pO2lmKGMuZXhwciYmYy5leHByLmZpbHRlcnMpe2MuZXhwci5m aWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXt2YXIgYj0KYS5vZmZzZXRXaWR0aCxk PWEub2Zmc2V0SGVpZ2h0LGY9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InRy IjtyZXR1cm4gYj09PTAmJmQ9PT0wJiYhZj90cnVlOmI+MCYmZD4wJiYhZj9mYWxz ZTpjLmN1ckNTUyhhLCJkaXNwbGF5Iik9PT0ibm9uZSJ9O2MuZXhwci5maWx0ZXJz LnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuIWMuZXhwci5maWx0ZXJzLmhpZGRl bihhKX19dmFyIHNiPUooKSx0Yj0vPHNjcmlwdCgufFxzKSo/XC9zY3JpcHQ+L2dp LHViPS9zZWxlY3R8dGV4dGFyZWEvaSx2Yj0vY29sb3J8ZGF0ZXxkYXRldGltZXxl bWFpbHxoaWRkZW58bW9udGh8bnVtYmVyfHBhc3N3b3JkfHJhbmdlfHNlYXJjaHx0 ZWx8dGV4dHx0aW1lfHVybHx3ZWVrL2ksTj0vPVw/KCZ8JCkvLGthPS9cPy8sd2I9 LyhcP3wmKV89Lio/KCZ8JCkvLHhiPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLyx5 Yj0vJTIwL2csemI9Yy5mbi5sb2FkO2MuZm4uZXh0ZW5kKHtsb2FkOmZ1bmN0aW9u KGEsYixkKXtpZih0eXBlb2YgYSE9PQoic3RyaW5nIilyZXR1cm4gemIuY2FsbCh0 aGlzLGEpO2Vsc2UgaWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBmPWEu aW5kZXhPZigiICIpO2lmKGY+PTApe3ZhciBlPWEuc2xpY2UoZixhLmxlbmd0aCk7 YT1hLnNsaWNlKDAsZil9Zj0iR0VUIjtpZihiKWlmKGMuaXNGdW5jdGlvbihiKSl7 ZD1iO2I9bnVsbH1lbHNlIGlmKHR5cGVvZiBiPT09Im9iamVjdCIpe2I9Yy5wYXJh bShiLGMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsKTtmPSJQT1NUIn12YXIgaj10 aGlzO2MuYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmIs Y29tcGxldGU6ZnVuY3Rpb24oaSxvKXtpZihvPT09InN1Y2Nlc3MifHxvPT09Im5v dG1vZGlmaWVkIilqLmh0bWwoZT9jKCI8ZGl2IC8+IikuYXBwZW5kKGkucmVzcG9u c2VUZXh0LnJlcGxhY2UodGIsIiIpKS5maW5kKGUpOmkucmVzcG9uc2VUZXh0KTtk JiZqLmVhY2goZCxbaS5yZXNwb25zZVRleHQsbyxpXSl9fSk7cmV0dXJuIHRoaXN9 LApzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gYy5wYXJhbSh0aGlzLnNlcmlh bGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0 aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP2MubWFrZUFy cmF5KHRoaXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8dWIu dGVzdCh0aGlzLm5vZGVOYW1lKXx8dmIudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChm dW5jdGlvbihhLGIpe2E9Yyh0aGlzKS52YWwoKTtyZXR1cm4gYT09bnVsbD9udWxs OmMuaXNBcnJheShhKT9jLm1hcChhLGZ1bmN0aW9uKGQpe3JldHVybntuYW1lOmIu bmFtZSx2YWx1ZTpkfX0pOntuYW1lOmIubmFtZSx2YWx1ZTphfX0pLmdldCgpfX0p O2MuZWFjaCgiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJy b3IgYWpheFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEs Yil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gdGhpcy5iaW5kKGIsZCl9fSk7 Yy5leHRlbmQoe2dldDpmdW5jdGlvbihhLGIsZCxmKXtpZihjLmlzRnVuY3Rpb24o Yikpe2Y9Znx8ZDtkPWI7Yj1udWxsfXJldHVybiBjLmFqYXgoe3R5cGU6IkdFVCIs dXJsOmEsZGF0YTpiLHN1Y2Nlc3M6ZCxkYXRhVHlwZTpmfSl9LGdldFNjcmlwdDpm dW5jdGlvbihhLGIpe3JldHVybiBjLmdldChhLG51bGwsYiwic2NyaXB0Iil9LGdl dEpTT046ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmdldChhLGIsZCwianNvbiIp fSxwb3N0OmZ1bmN0aW9uKGEsYixkLGYpe2lmKGMuaXNGdW5jdGlvbihiKSl7Zj1m fHxkO2Q9YjtiPXt9fXJldHVybiBjLmFqYXgoe3R5cGU6IlBPU1QiLHVybDphLGRh dGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxhamF4U2V0dXA6ZnVuY3Rpb24o YSl7Yy5leHRlbmQoYy5hamF4U2V0dGluZ3MsYSl9LGFqYXhTZXR0aW5nczp7dXJs OmxvY2F0aW9uLmhyZWYsCmdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5 cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0Rh dGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpBLlhNTEh0dHBSZXF1ZXN0JiYoQS5sb2Nh dGlvbi5wcm90b2NvbCE9PSJmaWxlOiJ8fCFBLkFjdGl2ZVhPYmplY3QpP2Z1bmN0 aW9uKCl7cmV0dXJuIG5ldyBBLlhNTEh0dHBSZXF1ZXN0fTpmdW5jdGlvbigpe3Ry eXtyZXR1cm4gbmV3IEEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAi KX1jYXRjaChhKXt9fSxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4 dC94bWwiLGh0bWw6InRleHQvaHRtbCIsc2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQs IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLGpzb246ImFwcGxpY2F0aW9uL2pzb24s IHRleHQvamF2YXNjcmlwdCIsdGV4dDoidGV4dC9wbGFpbiIsX2RlZmF1bHQ6Iiov KiJ9fSxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4OmZ1bmN0aW9uKGEpe2Z1 bmN0aW9uIGIoKXtlLnN1Y2Nlc3MmJgplLnN1Y2Nlc3MuY2FsbChrLG8saSx4KTtl Lmdsb2JhbCYmZigiYWpheFN1Y2Nlc3MiLFt4LGVdKX1mdW5jdGlvbiBkKCl7ZS5j b21wbGV0ZSYmZS5jb21wbGV0ZS5jYWxsKGsseCxpKTtlLmdsb2JhbCYmZigiYWph eENvbXBsZXRlIixbeCxlXSk7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50 LnRyaWdnZXIoImFqYXhTdG9wIil9ZnVuY3Rpb24gZihxLHApeyhlLmNvbnRleHQ/ YyhlLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIocSxwKX12YXIgZT1jLmV4dGVu ZCh0cnVlLHt9LGMuYWpheFNldHRpbmdzLGEpLGosaSxvLGs9YSYmYS5jb250ZXh0 fHxlLG49ZS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoZS5kYXRhJiZlLnByb2Nlc3NE YXRhJiZ0eXBlb2YgZS5kYXRhIT09InN0cmluZyIpZS5kYXRhPWMucGFyYW0oZS5k YXRhLGUudHJhZGl0aW9uYWwpO2lmKGUuZGF0YVR5cGU9PT0ianNvbnAiKXtpZihu PT09IkdFVCIpTi50ZXN0KGUudXJsKXx8KGUudXJsKz0oa2EudGVzdChlLnVybCk/ CiImIjoiPyIpKyhlLmpzb25wfHwiY2FsbGJhY2siKSsiPT8iKTtlbHNlIGlmKCFl LmRhdGF8fCFOLnRlc3QoZS5kYXRhKSllLmRhdGE9KGUuZGF0YT9lLmRhdGErIiYi OiIiKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/IjtlLmRhdGFUeXBlPSJqc29u In1pZihlLmRhdGFUeXBlPT09Impzb24iJiYoZS5kYXRhJiZOLnRlc3QoZS5kYXRh KXx8Ti50ZXN0KGUudXJsKSkpe2o9ZS5qc29ucENhbGxiYWNrfHwianNvbnAiK3Ni Kys7aWYoZS5kYXRhKWUuZGF0YT0oZS5kYXRhKyIiKS5yZXBsYWNlKE4sIj0iK2or IiQxIik7ZS51cmw9ZS51cmwucmVwbGFjZShOLCI9IitqKyIkMSIpO2UuZGF0YVR5 cGU9InNjcmlwdCI7QVtqXT1BW2pdfHxmdW5jdGlvbihxKXtvPXE7YigpO2QoKTtB W2pdPXc7dHJ5e2RlbGV0ZSBBW2pdfWNhdGNoKHApe316JiZ6LnJlbW92ZUNoaWxk KEMpfX1pZihlLmRhdGFUeXBlPT09InNjcmlwdCImJmUuY2FjaGU9PT1udWxsKWUu Y2FjaGU9ZmFsc2U7aWYoZS5jYWNoZT09PQpmYWxzZSYmbj09PSJHRVQiKXt2YXIg cj1KKCksdT1lLnVybC5yZXBsYWNlKHdiLCIkMV89IityKyIkMiIpO2UudXJsPXUr KHU9PT1lLnVybD8oa2EudGVzdChlLnVybCk/IiYiOiI/IikrIl89IityOiIiKX1p ZihlLmRhdGEmJm49PT0iR0VUIillLnVybCs9KGthLnRlc3QoZS51cmwpPyImIjoi PyIpK2UuZGF0YTtlLmdsb2JhbCYmIWMuYWN0aXZlKysmJmMuZXZlbnQudHJpZ2dl cigiYWpheFN0YXJ0Iik7cj0ocj14Yi5leGVjKGUudXJsKSkmJihyWzFdJiZyWzFd IT09bG9jYXRpb24ucHJvdG9jb2x8fHJbMl0hPT1sb2NhdGlvbi5ob3N0KTtpZihl LmRhdGFUeXBlPT09InNjcmlwdCImJm49PT0iR0VUIiYmcil7dmFyIHo9cy5nZXRF bGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdfHxzLmRvY3VtZW50RWxlbWVudCxD PXMuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Qy5zcmM9ZS51cmw7aWYoZS5zY3Jp cHRDaGFyc2V0KUMuY2hhcnNldD1lLnNjcmlwdENoYXJzZXQ7aWYoIWope3ZhciBC PQpmYWxzZTtDLm9ubG9hZD1DLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigp e2lmKCFCJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT09Imxv YWRlZCJ8fHRoaXMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpKXtCPXRydWU7Yigp O2QoKTtDLm9ubG9hZD1DLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3omJkMucGFy ZW50Tm9kZSYmei5yZW1vdmVDaGlsZChDKX19fXouaW5zZXJ0QmVmb3JlKEMsei5m aXJzdENoaWxkKTtyZXR1cm4gd312YXIgRT1mYWxzZSx4PWUueGhyKCk7aWYoeCl7 ZS51c2VybmFtZT94Lm9wZW4obixlLnVybCxlLmFzeW5jLGUudXNlcm5hbWUsZS5w YXNzd29yZCk6eC5vcGVuKG4sZS51cmwsZS5hc3luYyk7dHJ5e2lmKGUuZGF0YXx8 YSYmYS5jb250ZW50VHlwZSl4LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlw ZSIsZS5jb250ZW50VHlwZSk7aWYoZS5pZk1vZGlmaWVkKXtjLmxhc3RNb2RpZmll ZFtlLnVybF0mJnguc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2Ui LApjLmxhc3RNb2RpZmllZFtlLnVybF0pO2MuZXRhZ1tlLnVybF0mJnguc2V0UmVx dWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsYy5ldGFnW2UudXJsXSl9cnx8eC5z ZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVl c3QiKTt4LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsZS5kYXRhVHlwZSYmZS5h Y2NlcHRzW2UuZGF0YVR5cGVdP2UuYWNjZXB0c1tlLmRhdGFUeXBlXSsiLCAqLyoi OmUuYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goZ2Epe31pZihlLmJlZm9yZVNlbmQm JmUuYmVmb3JlU2VuZC5jYWxsKGsseCxlKT09PWZhbHNlKXtlLmdsb2JhbCYmIS0t Yy5hY3RpdmUmJmMuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKTt4LmFib3J0KCk7 cmV0dXJuIGZhbHNlfWUuZ2xvYmFsJiZmKCJhamF4U2VuZCIsW3gsZV0pO3ZhciBn PXgub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKHEpe2lmKCF4fHx4LnJlYWR5 U3RhdGU9PT0wfHxxPT09ImFib3J0Iil7RXx8CmQoKTtFPXRydWU7aWYoeCl4Lm9u cmVhZHlzdGF0ZWNoYW5nZT1jLm5vb3B9ZWxzZSBpZighRSYmeCYmKHgucmVhZHlT dGF0ZT09PTR8fHE9PT0idGltZW91dCIpKXtFPXRydWU7eC5vbnJlYWR5c3RhdGVj aGFuZ2U9Yy5ub29wO2k9cT09PSJ0aW1lb3V0Ij8idGltZW91dCI6IWMuaHR0cFN1 Y2Nlc3MoeCk/ImVycm9yIjplLmlmTW9kaWZpZWQmJmMuaHR0cE5vdE1vZGlmaWVk KHgsZS51cmwpPyJub3Rtb2RpZmllZCI6InN1Y2Nlc3MiO3ZhciBwO2lmKGk9PT0i c3VjY2VzcyIpdHJ5e289Yy5odHRwRGF0YSh4LGUuZGF0YVR5cGUsZSl9Y2F0Y2go dil7aT0icGFyc2VyZXJyb3IiO3A9dn1pZihpPT09InN1Y2Nlc3MifHxpPT09Im5v dG1vZGlmaWVkIilqfHxiKCk7ZWxzZSBjLmhhbmRsZUVycm9yKGUseCxpLHApO2Qo KTtxPT09InRpbWVvdXQiJiZ4LmFib3J0KCk7aWYoZS5hc3luYyl4PW51bGx9fTt0 cnl7dmFyIGg9eC5hYm9ydDt4LmFib3J0PWZ1bmN0aW9uKCl7eCYmaC5jYWxsKHgp OwpnKCJhYm9ydCIpfX1jYXRjaChsKXt9ZS5hc3luYyYmZS50aW1lb3V0PjAmJnNl dFRpbWVvdXQoZnVuY3Rpb24oKXt4JiYhRSYmZygidGltZW91dCIpfSxlLnRpbWVv dXQpO3RyeXt4LnNlbmQobj09PSJQT1NUInx8bj09PSJQVVQifHxuPT09IkRFTEVU RSI/ZS5kYXRhOm51bGwpfWNhdGNoKG0pe2MuaGFuZGxlRXJyb3IoZSx4LG51bGws bSk7ZCgpfWUuYXN5bmN8fGcoKTtyZXR1cm4geH19LGhhbmRsZUVycm9yOmZ1bmN0 aW9uKGEsYixkLGYpe2lmKGEuZXJyb3IpYS5lcnJvci5jYWxsKGEuY29udGV4dHx8 YSxiLGQsZik7aWYoYS5nbG9iYWwpKGEuY29udGV4dD9jKGEuY29udGV4dCk6Yy5l dmVudCkudHJpZ2dlcigiYWpheEVycm9yIixbYixhLGZdKX0sYWN0aXZlOjAsaHR0 cFN1Y2Nlc3M6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiFhLnN0YXR1cyYmbG9jYXRp b24ucHJvdG9jb2w9PT0iZmlsZToifHxhLnN0YXR1cz49MjAwJiZhLnN0YXR1czwz MDB8fGEuc3RhdHVzPT09MzA0fHxhLnN0YXR1cz09PQoxMjIzfHxhLnN0YXR1cz09 PTB9Y2F0Y2goYil7fXJldHVybiBmYWxzZX0saHR0cE5vdE1vZGlmaWVkOmZ1bmN0 aW9uKGEsYil7dmFyIGQ9YS5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmll ZCIpLGY9YS5nZXRSZXNwb25zZUhlYWRlcigiRXRhZyIpO2lmKGQpYy5sYXN0TW9k aWZpZWRbYl09ZDtpZihmKWMuZXRhZ1tiXT1mO3JldHVybiBhLnN0YXR1cz09PTMw NHx8YS5zdGF0dXM9PT0wfSxodHRwRGF0YTpmdW5jdGlvbihhLGIsZCl7dmFyIGY9 YS5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIil8fCIiLGU9Yj09PSJ4 bWwifHwhYiYmZi5pbmRleE9mKCJ4bWwiKT49MDthPWU/YS5yZXNwb25zZVhNTDph LnJlc3BvbnNlVGV4dDtlJiZhLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZT09PSJw YXJzZXJlcnJvciImJmMuZXJyb3IoInBhcnNlcmVycm9yIik7aWYoZCYmZC5kYXRh RmlsdGVyKWE9ZC5kYXRhRmlsdGVyKGEsYik7aWYodHlwZW9mIGE9PT0ic3RyaW5n IilpZihiPT09CiJqc29uInx8IWImJmYuaW5kZXhPZigianNvbiIpPj0wKWE9Yy5w YXJzZUpTT04oYSk7ZWxzZSBpZihiPT09InNjcmlwdCJ8fCFiJiZmLmluZGV4T2Yo ImphdmFzY3JpcHQiKT49MCljLmdsb2JhbEV2YWwoYSk7cmV0dXJuIGF9LHBhcmFt OmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZChpLG8pe2lmKGMuaXNBcnJheShvKSlj LmVhY2gobyxmdW5jdGlvbihrLG4pe2J8fC9cW1xdJC8udGVzdChpKT9mKGksbik6 ZChpKyJbIisodHlwZW9mIG49PT0ib2JqZWN0Inx8Yy5pc0FycmF5KG4pP2s6IiIp KyJdIixuKX0pO2Vsc2UhYiYmbyE9bnVsbCYmdHlwZW9mIG89PT0ib2JqZWN0Ij9j LmVhY2gobyxmdW5jdGlvbihrLG4pe2QoaSsiWyIraysiXSIsbil9KTpmKGksbyl9 ZnVuY3Rpb24gZihpLG8pe289Yy5pc0Z1bmN0aW9uKG8pP28oKTpvO2VbZS5sZW5n dGhdPWVuY29kZVVSSUNvbXBvbmVudChpKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50 KG8pfXZhciBlPVtdO2lmKGI9PT13KWI9Yy5hamF4U2V0dGluZ3MudHJhZGl0aW9u YWw7CmlmKGMuaXNBcnJheShhKXx8YS5qcXVlcnkpYy5lYWNoKGEsZnVuY3Rpb24o KXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKHZhciBqIGluIGEp ZChqLGFbal0pO3JldHVybiBlLmpvaW4oIiYiKS5yZXBsYWNlKHliLCIrIil9fSk7 dmFyIGxhPXt9LEFiPS90b2dnbGV8c2hvd3xoaWRlLyxCYj0vXihbKy1dPSk/KFtc ZCstLl0rKSguKikkLyxXLHZhPVtbImhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdp bkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0sWyJ3aWR0aCIs Im1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGlu Z1JpZ2h0Il0sWyJvcGFjaXR5Il1dO2MuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9u KGEsYil7aWYoYXx8YT09PTApcmV0dXJuIHRoaXMuYW5pbWF0ZShLKCJzaG93Iiwz KSxhLGIpO2Vsc2V7YT0wO2ZvcihiPXRoaXMubGVuZ3RoO2E8YjthKyspe3ZhciBk PWMuZGF0YSh0aGlzW2FdLCJvbGRkaXNwbGF5Iik7CnRoaXNbYV0uc3R5bGUuZGlz cGxheT1kfHwiIjtpZihjLmNzcyh0aGlzW2FdLCJkaXNwbGF5Iik9PT0ibm9uZSIp e2Q9dGhpc1thXS5ub2RlTmFtZTt2YXIgZjtpZihsYVtkXSlmPWxhW2RdO2Vsc2V7 dmFyIGU9YygiPCIrZCsiIC8+IikuYXBwZW5kVG8oImJvZHkiKTtmPWUuY3NzKCJk aXNwbGF5Iik7aWYoZj09PSJub25lIilmPSJibG9jayI7ZS5yZW1vdmUoKTtsYVtk XT1mfWMuZGF0YSh0aGlzW2FdLCJvbGRkaXNwbGF5IixmKX19YT0wO2ZvcihiPXRo aXMubGVuZ3RoO2E8YjthKyspdGhpc1thXS5zdHlsZS5kaXNwbGF5PWMuZGF0YSh0 aGlzW2FdLCJvbGRkaXNwbGF5Iil8fCIiO3JldHVybiB0aGlzfX0saGlkZTpmdW5j dGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoSygiaGlk ZSIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXt2 YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOyFkJiZkIT09Im5vbmUi JiZjLmRhdGEodGhpc1thXSwKIm9sZGRpc3BsYXkiLGMuY3NzKHRoaXNbYV0sImRp c3BsYXkiKSl9YT0wO2ZvcihiPXRoaXMubGVuZ3RoO2E8YjthKyspdGhpc1thXS5z dHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm4gdGhpc319LF90b2dnbGU6Yy5mbi50 b2dnbGUsdG9nZ2xlOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dHlwZW9mIGE9PT0iYm9v bGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpJiZjLmlzRnVuY3Rpb24oYikpdGhpcy5f dG9nZ2xlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlbHNlIGE9PW51bGx8fGQ/dGhp cy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9ZD9hOmModGhpcykuaXMoIjpoaWRkZW4i KTtjKHRoaXMpW2Y/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZShLKCJ0 b2dnbGUiLDMpLGEsYik7cmV0dXJuIHRoaXN9LGZhZGVUbzpmdW5jdGlvbihhLGIs ZCl7cmV0dXJuIHRoaXMuZmlsdGVyKCI6aGlkZGVuIikuY3NzKCJvcGFjaXR5Iiww KS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGQpfSwKYW5pbWF0 ZTpmdW5jdGlvbihhLGIsZCxmKXt2YXIgZT1jLnNwZWVkKGIsZCxmKTtpZihjLmlz RW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFjaChlLmNvbXBsZXRlKTtyZXR1 cm4gdGhpc1tlLnF1ZXVlPT09ZmFsc2U/ImVhY2giOiJxdWV1ZSJdKGZ1bmN0aW9u KCl7dmFyIGo9Yy5leHRlbmQoe30sZSksaSxvPXRoaXMubm9kZVR5cGU9PT0xJiZj KHRoaXMpLmlzKCI6aGlkZGVuIiksaz10aGlzO2ZvcihpIGluIGEpe3ZhciBuPWku cmVwbGFjZShpYSxqYSk7aWYoaSE9PW4pe2Fbbl09YVtpXTtkZWxldGUgYVtpXTtp PW59aWYoYVtpXT09PSJoaWRlIiYmb3x8YVtpXT09PSJzaG93IiYmIW8pcmV0dXJu IGouY29tcGxldGUuY2FsbCh0aGlzKTtpZigoaT09PSJoZWlnaHQifHxpPT09Indp ZHRoIikmJnRoaXMuc3R5bGUpe2ouZGlzcGxheT1jLmNzcyh0aGlzLCJkaXNwbGF5 Iik7ai5vdmVyZmxvdz10aGlzLnN0eWxlLm92ZXJmbG93fWlmKGMuaXNBcnJheShh W2ldKSl7KGouc3BlY2lhbEVhc2luZz0Kai5zcGVjaWFsRWFzaW5nfHx7fSlbaV09 YVtpXVsxXTthW2ldPWFbaV1bMF19fWlmKGoub3ZlcmZsb3chPW51bGwpdGhpcy5z dHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtqLmN1ckFuaW09Yy5leHRlbmQoe30sYSk7 Yy5lYWNoKGEsZnVuY3Rpb24ocix1KXt2YXIgej1uZXcgYy5meChrLGoscik7aWYo QWIudGVzdCh1KSl6W3U9PT0idG9nZ2xlIj9vPyJzaG93IjoiaGlkZSI6dV0oYSk7 ZWxzZXt2YXIgQz1CYi5leGVjKHUpLEI9ei5jdXIodHJ1ZSl8fDA7aWYoQyl7dT1w YXJzZUZsb2F0KENbMl0pO3ZhciBFPUNbM118fCJweCI7aWYoRSE9PSJweCIpe2su c3R5bGVbcl09KHV8fDEpK0U7Qj0odXx8MSkvei5jdXIodHJ1ZSkqQjtrLnN0eWxl W3JdPUIrRX1pZihDWzFdKXU9KENbMV09PT0iLT0iPy0xOjEpKnUrQjt6LmN1c3Rv bShCLHUsRSl9ZWxzZSB6LmN1c3RvbShCLHUsIiIpfX0pO3JldHVybiB0cnVlfSl9 LHN0b3A6ZnVuY3Rpb24oYSxiKXt2YXIgZD1jLnRpbWVyczthJiZ0aGlzLnF1ZXVl KFtdKTsKdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zm9yKHZhciBmPWQubGVuZ3RoLTE7 Zj49MDtmLS0paWYoZFtmXS5lbGVtPT09dGhpcyl7YiYmZFtmXSh0cnVlKTtkLnNw bGljZShmLDEpfX0pO2J8fHRoaXMuZGVxdWV1ZSgpO3JldHVybiB0aGlzfX0pO2Mu ZWFjaCh7c2xpZGVEb3duOksoInNob3ciLDEpLHNsaWRlVXA6SygiaGlkZSIsMSks c2xpZGVUb2dnbGU6SygidG9nZ2xlIiwxKSxmYWRlSW46e29wYWNpdHk6InNob3ci fSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn19LGZ1bmN0aW9uKGEsYil7Yy5mblth XT1mdW5jdGlvbihkLGYpe3JldHVybiB0aGlzLmFuaW1hdGUoYixkLGYpfX0pO2Mu ZXh0ZW5kKHtzcGVlZDpmdW5jdGlvbihhLGIsZCl7dmFyIGY9YSYmdHlwZW9mIGE9 PT0ib2JqZWN0Ij9hOntjb21wbGV0ZTpkfHwhZCYmYnx8Yy5pc0Z1bmN0aW9uKGEp JiZhLGR1cmF0aW9uOmEsZWFzaW5nOmQmJmJ8fGImJiFjLmlzRnVuY3Rpb24oYikm JmJ9O2YuZHVyYXRpb249Yy5meC5vZmY/MDp0eXBlb2YgZi5kdXJhdGlvbj09PQoi bnVtYmVyIj9mLmR1cmF0aW9uOmMuZnguc3BlZWRzW2YuZHVyYXRpb25dfHxjLmZ4 LnNwZWVkcy5fZGVmYXVsdDtmLm9sZD1mLmNvbXBsZXRlO2YuY29tcGxldGU9ZnVu Y3Rpb24oKXtmLnF1ZXVlIT09ZmFsc2UmJmModGhpcykuZGVxdWV1ZSgpO2MuaXNG dW5jdGlvbihmLm9sZCkmJmYub2xkLmNhbGwodGhpcyl9O3JldHVybiBmfSxlYXNp bmc6e2xpbmVhcjpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4gZCtmKmF9LHN3aW5n OmZ1bmN0aW9uKGEsYixkLGYpe3JldHVybigtTWF0aC5jb3MoYSpNYXRoLlBJKS8y KzAuNSkqZitkfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKGEsYixkKXt0aGlzLm9w dGlvbnM9Yjt0aGlzLmVsZW09YTt0aGlzLnByb3A9ZDtpZighYi5vcmlnKWIub3Jp Zz17fX19KTtjLmZ4LnByb3RvdHlwZT17dXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5v cHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRo aXMubm93LHRoaXMpOyhjLmZ4LnN0ZXBbdGhpcy5wcm9wXXx8CmMuZnguc3RlcC5f ZGVmYXVsdCkodGhpcyk7aWYoKHRoaXMucHJvcD09PSJoZWlnaHQifHx0aGlzLnBy b3A9PT0id2lkdGgiKSYmdGhpcy5lbGVtLnN0eWxlKXRoaXMuZWxlbS5zdHlsZS5k aXNwbGF5PSJibG9jayJ9LGN1cjpmdW5jdGlvbihhKXtpZih0aGlzLmVsZW1bdGhp cy5wcm9wXSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHls ZVt0aGlzLnByb3BdPT1udWxsKSlyZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF07 cmV0dXJuKGE9cGFyc2VGbG9hdChjLmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wLGEp KSkmJmE+LTEwMDAwP2E6cGFyc2VGbG9hdChjLmN1ckNTUyh0aGlzLmVsZW0sdGhp cy5wcm9wKSl8fDB9LGN1c3RvbTpmdW5jdGlvbihhLGIsZCl7ZnVuY3Rpb24gZihq KXtyZXR1cm4gZS5zdGVwKGopfXRoaXMuc3RhcnRUaW1lPUooKTt0aGlzLnN0YXJ0 PWE7dGhpcy5lbmQ9Yjt0aGlzLnVuaXQ9ZHx8dGhpcy51bml0fHwicHgiO3RoaXMu bm93PXRoaXMuc3RhcnQ7CnRoaXMucG9zPXRoaXMuc3RhdGU9MDt2YXIgZT10aGlz O2YuZWxlbT10aGlzLmVsZW07aWYoZigpJiZjLnRpbWVycy5wdXNoKGYpJiYhVylX PXNldEludGVydmFsKGMuZngudGljaywxMyl9LHNob3c6ZnVuY3Rpb24oKXt0aGlz Lm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMu cHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnBy b3A9PT0id2lkdGgifHx0aGlzLnByb3A9PT0iaGVpZ2h0Ij8xOjAsdGhpcy5jdXIo KSk7Yyh0aGlzLmVsZW0pLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3RoaXMub3B0 aW9ucy5vcmlnW3RoaXMucHJvcF09Yy5zdHlsZSh0aGlzLmVsZW0sdGhpcy5wcm9w KTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCks MCl9LHN0ZXA6ZnVuY3Rpb24oYSl7dmFyIGI9SigpLGQ9dHJ1ZTtpZihhfHxiPj10 aGlzLm9wdGlvbnMuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMubm93PQp0 aGlzLmVuZDt0aGlzLnBvcz10aGlzLnN0YXRlPTE7dGhpcy51cGRhdGUoKTt0aGlz Lm9wdGlvbnMuY3VyQW5pbVt0aGlzLnByb3BdPXRydWU7Zm9yKHZhciBmIGluIHRo aXMub3B0aW9ucy5jdXJBbmltKWlmKHRoaXMub3B0aW9ucy5jdXJBbmltW2ZdIT09 dHJ1ZSlkPWZhbHNlO2lmKGQpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxs KXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93 O2E9Yy5kYXRhKHRoaXMuZWxlbSwib2xkZGlzcGxheSIpO3RoaXMuZWxlbS5zdHls ZS5kaXNwbGF5PWE/YTp0aGlzLm9wdGlvbnMuZGlzcGxheTtpZihjLmNzcyh0aGlz LmVsZW0sImRpc3BsYXkiKT09PSJub25lIil0aGlzLmVsZW0uc3R5bGUuZGlzcGxh eT0iYmxvY2sifXRoaXMub3B0aW9ucy5oaWRlJiZjKHRoaXMuZWxlbSkuaGlkZSgp O2lmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdylmb3IodmFy IGUgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0pYy5zdHlsZSh0aGlzLmVsZW0sCmUs dGhpcy5vcHRpb25zLm9yaWdbZV0pO3RoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxs KHRoaXMuZWxlbSl9cmV0dXJuIGZhbHNlfWVsc2V7ZT1iLXRoaXMuc3RhcnRUaW1l O3RoaXMuc3RhdGU9ZS90aGlzLm9wdGlvbnMuZHVyYXRpb247YT10aGlzLm9wdGlv bnMuZWFzaW5nfHwoYy5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIik7dGhp cy5wb3M9Yy5lYXNpbmdbdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcmJnRoaXMu b3B0aW9ucy5zcGVjaWFsRWFzaW5nW3RoaXMucHJvcF18fGFdKHRoaXMuc3RhdGUs ZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0 Kyh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0aGlzLnBvczt0aGlzLnVwZGF0ZSgpfXJl dHVybiB0cnVlfX07Yy5leHRlbmQoYy5meCx7dGljazpmdW5jdGlvbigpe2Zvcih2 YXIgYT1jLnRpbWVycyxiPTA7YjxhLmxlbmd0aDtiKyspYVtiXSgpfHxhLnNwbGlj ZShiLS0sMSk7YS5sZW5ndGh8fApjLmZ4LnN0b3AoKX0sc3RvcDpmdW5jdGlvbigp e2NsZWFySW50ZXJ2YWwoVyk7Vz1udWxsfSxzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6 MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihhKXtjLnN0 eWxlKGEuZWxlbSwib3BhY2l0eSIsYS5ub3cpfSxfZGVmYXVsdDpmdW5jdGlvbihh KXtpZihhLmVsZW0uc3R5bGUmJmEuZWxlbS5zdHlsZVthLnByb3BdIT1udWxsKWEu ZWxlbS5zdHlsZVthLnByb3BdPShhLnByb3A9PT0id2lkdGgifHxhLnByb3A9PT0i aGVpZ2h0Ij9NYXRoLm1heCgwLGEubm93KTphLm5vdykrYS51bml0O2Vsc2UgYS5l bGVtW2EucHJvcF09YS5ub3d9fX0pO2lmKGMuZXhwciYmYy5leHByLmZpbHRlcnMp Yy5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZ3Jl cChjLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0 aH07Yy5mbi5vZmZzZXQ9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCJpbiBzLmRvY3Vt ZW50RWxlbWVudD8KZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXTtpZihhKXJldHVy biB0aGlzLmVhY2goZnVuY3Rpb24oZSl7Yy5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMs YSxlKX0pO2lmKCFifHwhYi5vd25lckRvY3VtZW50KXJldHVybiBudWxsO2lmKGI9 PT1iLm93bmVyRG9jdW1lbnQuYm9keSlyZXR1cm4gYy5vZmZzZXQuYm9keU9mZnNl dChiKTt2YXIgZD1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9Yi5vd25lckRv Y3VtZW50O2I9Zi5ib2R5O2Y9Zi5kb2N1bWVudEVsZW1lbnQ7cmV0dXJue3RvcDpk LnRvcCsoc2VsZi5wYWdlWU9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNj cm9sbFRvcHx8Yi5zY3JvbGxUb3ApLShmLmNsaWVudFRvcHx8Yi5jbGllbnRUb3B8 fDApLGxlZnQ6ZC5sZWZ0KyhzZWxmLnBhZ2VYT2Zmc2V0fHxjLnN1cHBvcnQuYm94 TW9kZWwmJmYuc2Nyb2xsTGVmdHx8Yi5zY3JvbGxMZWZ0KS0oZi5jbGllbnRMZWZ0 fHxiLmNsaWVudExlZnR8fDApfX06ZnVuY3Rpb24oYSl7dmFyIGI9CnRoaXNbMF07 aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHIpe2Mub2Zmc2V0LnNldE9m ZnNldCh0aGlzLGEscil9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4g bnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0 LmJvZHlPZmZzZXQoYik7Yy5vZmZzZXQuaW5pdGlhbGl6ZSgpO3ZhciBkPWIub2Zm c2V0UGFyZW50LGY9YixlPWIub3duZXJEb2N1bWVudCxqLGk9ZS5kb2N1bWVudEVs ZW1lbnQsbz1lLmJvZHk7Zj0oZT1lLmRlZmF1bHRWaWV3KT9lLmdldENvbXB1dGVk U3R5bGUoYixudWxsKTpiLmN1cnJlbnRTdHlsZTtmb3IodmFyIGs9Yi5vZmZzZXRU b3Asbj1iLm9mZnNldExlZnQ7KGI9Yi5wYXJlbnROb2RlKSYmYiE9PW8mJmIhPT1p Oyl7aWYoYy5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uJiZmLnBvc2l0aW9u PT09ImZpeGVkIilicmVhaztqPWU/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6 Yi5jdXJyZW50U3R5bGU7CmstPWIuc2Nyb2xsVG9wO24tPWIuc2Nyb2xsTGVmdDtp ZihiPT09ZCl7ays9Yi5vZmZzZXRUb3A7bis9Yi5vZmZzZXRMZWZ0O2lmKGMub2Zm c2V0LmRvZXNOb3RBZGRCb3JkZXImJiEoYy5vZmZzZXQuZG9lc0FkZEJvcmRlckZv clRhYmxlQW5kQ2VsbHMmJi9edChhYmxlfGR8aCkkL2kudGVzdChiLm5vZGVOYW1l KSkpe2srPXBhcnNlRmxvYXQoai5ib3JkZXJUb3BXaWR0aCl8fDA7bis9cGFyc2VG bG9hdChqLmJvcmRlckxlZnRXaWR0aCl8fDB9Zj1kO2Q9Yi5vZmZzZXRQYXJlbnR9 aWYoYy5vZmZzZXQuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxl JiZqLm92ZXJmbG93IT09InZpc2libGUiKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVy VG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5ib3JkZXJMZWZ0V2lkdGgpfHww fWY9an1pZihmLnBvc2l0aW9uPT09InJlbGF0aXZlInx8Zi5wb3NpdGlvbj09PSJz dGF0aWMiKXtrKz1vLm9mZnNldFRvcDtuKz1vLm9mZnNldExlZnR9aWYoYy5vZmZz ZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uJiYKZi5wb3NpdGlvbj09PSJmaXhlZCIp e2srPU1hdGgubWF4KGkuc2Nyb2xsVG9wLG8uc2Nyb2xsVG9wKTtuKz1NYXRoLm1h eChpLnNjcm9sbExlZnQsby5zY3JvbGxMZWZ0KX1yZXR1cm57dG9wOmssbGVmdDpu fX07Yy5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rpb24oKXt2YXIgYT1zLmJvZHks Yj1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQsZixlLGo9cGFyc2VGbG9hdChjLmN1 ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtjLmV4dGVuZChiLnN0eWxlLHtw b3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxtYXJnaW46MCxib3JkZXI6 MCx3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCIsdmlzaWJpbGl0eToiaGlkZGVuIn0p O2IuaW5uZXJIVE1MPSI8ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0b3A6 MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6 MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsnPjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxl IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7 Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0 OjFweDsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCc+PHRyPjx0ZD48 L3RkPjwvdHI+PC90YWJsZT4iOwphLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGls ZCk7ZD1iLmZpcnN0Q2hpbGQ7Zj1kLmZpcnN0Q2hpbGQ7ZT1kLm5leHRTaWJsaW5n LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDt0aGlzLmRvZXNOb3RBZGRCb3JkZXI9Zi5v ZmZzZXRUb3AhPT01O3RoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHM9 ZS5vZmZzZXRUb3A9PT01O2Yuc3R5bGUucG9zaXRpb249ImZpeGVkIjtmLnN0eWxl LnRvcD0iMjBweCI7dGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb249Zi5vZmZzZXRU b3A9PT0yMHx8Zi5vZmZzZXRUb3A9PT0xNTtmLnN0eWxlLnBvc2l0aW9uPWYuc3R5 bGUudG9wPSIiO2Quc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ZC5zdHlsZS5wb3Np dGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dO b3RWaXNpYmxlPWYub2Zmc2V0VG9wPT09LTU7dGhpcy5kb2VzTm90SW5jbHVkZU1h cmdpbkluQm9keU9mZnNldD1hLm9mZnNldFRvcCE9PWo7YS5yZW1vdmVDaGlsZChi KTsKYy5vZmZzZXQuaW5pdGlhbGl6ZT1jLm5vb3B9LGJvZHlPZmZzZXQ6ZnVuY3Rp b24oYSl7dmFyIGI9YS5vZmZzZXRUb3AsZD1hLm9mZnNldExlZnQ7Yy5vZmZzZXQu aW5pdGlhbGl6ZSgpO2lmKGMub2Zmc2V0LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5C b2R5T2Zmc2V0KXtiKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpblRvcCIs dHJ1ZSkpfHwwO2QrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luTGVmdCIs dHJ1ZSkpfHwwfXJldHVybnt0b3A6YixsZWZ0OmR9fSxzZXRPZmZzZXQ6ZnVuY3Rp b24oYSxiLGQpe2lmKC9zdGF0aWMvLnRlc3QoYy5jdXJDU1MoYSwicG9zaXRpb24i KSkpYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBmPWMoYSksZT1mLm9m ZnNldCgpLGo9cGFyc2VJbnQoYy5jdXJDU1MoYSwidG9wIix0cnVlKSwxMCl8fDAs aT1wYXJzZUludChjLmN1ckNTUyhhLCJsZWZ0Iix0cnVlKSwxMCl8fDA7aWYoYy5p c0Z1bmN0aW9uKGIpKWI9Yi5jYWxsKGEsCmQsZSk7ZD17dG9wOmIudG9wLWUudG9w K2osbGVmdDpiLmxlZnQtZS5sZWZ0K2l9OyJ1c2luZyJpbiBiP2IudXNpbmcuY2Fs bChhLGQpOmYuY3NzKGQpfX07Yy5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9u KCl7aWYoIXRoaXNbMF0pcmV0dXJuIG51bGw7dmFyIGE9dGhpc1swXSxiPXRoaXMu b2Zmc2V0UGFyZW50KCksZD10aGlzLm9mZnNldCgpLGY9L15ib2R5fGh0bWwkL2ku dGVzdChiWzBdLm5vZGVOYW1lKT97dG9wOjAsbGVmdDowfTpiLm9mZnNldCgpO2Qu dG9wLT1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpblRvcCIsdHJ1ZSkpfHww O2QubGVmdC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5MZWZ0Iix0cnVl KSl8fDA7Zi50b3ArPXBhcnNlRmxvYXQoYy5jdXJDU1MoYlswXSwiYm9yZGVyVG9w V2lkdGgiLHRydWUpKXx8MDtmLmxlZnQrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYlsw XSwiYm9yZGVyTGVmdFdpZHRoIix0cnVlKSl8fDA7cmV0dXJue3RvcDpkLnRvcC0K Zi50b3AsbGVmdDpkLmxlZnQtZi5sZWZ0fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9u KCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zm c2V0UGFyZW50fHxzLmJvZHk7YSYmIS9eYm9keXxodG1sJC9pLnRlc3QoYS5ub2Rl TmFtZSkmJmMuY3NzKGEsInBvc2l0aW9uIik9PT0ic3RhdGljIjspYT1hLm9mZnNl dFBhcmVudDtyZXR1cm4gYX0pfX0pO2MuZWFjaChbIkxlZnQiLCJUb3AiXSxmdW5j dGlvbihhLGIpe3ZhciBkPSJzY3JvbGwiK2I7Yy5mbltkXT1mdW5jdGlvbihmKXt2 YXIgZT10aGlzWzBdLGo7aWYoIWUpcmV0dXJuIG51bGw7aWYoZiE9PXcpcmV0dXJu IHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGo9d2EodGhpcykpai5zY3JvbGxUbygh YT9mOmMoaikuc2Nyb2xsTGVmdCgpLGE/ZjpjKGopLnNjcm9sbFRvcCgpKTtlbHNl IHRoaXNbZF09Zn0pO2Vsc2UgcmV0dXJuKGo9d2EoZSkpPyJwYWdlWE9mZnNldCJp biBqP2pbYT8icGFnZVlPZmZzZXQiOgoicGFnZVhPZmZzZXQiXTpjLnN1cHBvcnQu Ym94TW9kZWwmJmouZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2RdfHxqLmRvY3Vt ZW50LmJvZHlbZF06ZVtkXX19KTtjLmVhY2goWyJIZWlnaHQiLCJXaWR0aCJdLGZ1 bmN0aW9uKGEsYil7dmFyIGQ9Yi50b0xvd2VyQ2FzZSgpO2MuZm5bImlubmVyIiti XT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP2MuY3NzKHRoaXNbMF0sZCxmYWxz ZSwicGFkZGluZyIpOm51bGx9O2MuZm5bIm91dGVyIitiXT1mdW5jdGlvbihmKXty ZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsZj8ibWFyZ2luIjoi Ym9yZGVyIik6bnVsbH07Yy5mbltkXT1mdW5jdGlvbihmKXt2YXIgZT10aGlzWzBd O2lmKCFlKXJldHVybiBmPT1udWxsP251bGw6dGhpcztpZihjLmlzRnVuY3Rpb24o ZikpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihqKXt2YXIgaT1jKHRoaXMpO2lb ZF0oZi5jYWxsKHRoaXMsaixpW2RdKCkpKX0pO3JldHVybiJzY3JvbGxUbyJpbgpl JiZlLmRvY3VtZW50P2UuZG9jdW1lbnQuY29tcGF0TW9kZT09PSJDU1MxQ29tcGF0 IiYmZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl18fGUuZG9j dW1lbnQuYm9keVsiY2xpZW50IitiXTplLm5vZGVUeXBlPT09OT9NYXRoLm1heChl LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IitiXSxlLmJvZHlbInNjcm9sbCIrYl0s ZS5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIrYl0sZS5ib2R5WyJvZmZzZXQiK2Jd LGUuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK2JdKTpmPT09dz9jLmNzcyhlLGQp OnRoaXMuY3NzKGQsdHlwZW9mIGY9PT0ic3RyaW5nIj9mOmYrInB4Iil9fSk7QS5q UXVlcnk9QS4kPWN9KSh3aW5kb3cpOwoNCg0KLy8uLi9qcXVlcnkucG5nRml4LnBh Y2suanMNCi8qKg0KICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAqIGpRdWVyeS1Q bHVnaW4gInBuZ0ZpeCINCiAqIFZlcnNpb246IDEuMSwgMTEuMDkuMjAwNw0KICog YnkgQW5kcmVhcyBFYmVyaGFyZCwgYW5kcmVhcy5lYmVyaGFyZEBnbWFpbC5jb20N CiAqICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9qcXVlcnkuYW5kcmVhc2Vi ZXJoYXJkLmRlLw0KICoNCiAqIENvcHlyaWdodCAoYykgMjAwNyBBbmRyZWFzIEVi ZXJoYXJkDQogKiBMaWNlbnNlZCB1bmRlciBHUEwgKGh0dHA6Ly93d3cub3BlbnNv dXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwKQ0KICovDQpldmFsKGZ1 bmN0aW9uKHAsYSxjLGssZSxyKXtlPWZ1bmN0aW9uKGMpe3JldHVybihjPDYyPycn OmUocGFyc2VJbnQoYy82MikpKSsoKGM9YyU2Mik+MzU/U3RyaW5nLmZyb21DaGFy Q29kZShjKzI5KTpjLnRvU3RyaW5nKDM2KSl9O2lmKCcwJy5yZXBsYWNlKDAsZSk9 PTApe3doaWxlKGMtLSlyW2UoYyldPWtbY107az1bZnVuY3Rpb24oZSl7cmV0dXJu IHJbZV18fGV9XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJyhbMjM3LTluLXpBLVpdfDFc XHcpJ307Yz0xfTt3aGlsZShjLS0paWYoa1tjXSlwPXAucmVwbGFjZShuZXcgUmVn RXhwKCdcXGInK2UoYykrJ1xcYicsJ2cnKSxrW2NdKTtyZXR1cm4gcH0oJyhzKG0p ezMuZm4ucG5nRml4PXMoYyl7Yz0zLmV4dGVuZCh7UDpcJ2JsYW5rLmdpZlwnfSxj KTs4IGU9KG8uUT09InQgUiBTIiYmVChvLnUpPT00JiZvLnUuQSgiVSA1LjUiKSE9 LTEpOzggZj0oby5RPT0idCBSIFMiJiZUKG8udSk9PTQmJm8udS5BKCJVIDYuMCIp IT0tMSk7cCgzLmJyb3dzZXIubXNpZSYmKGV8fGYpKXszKDIpLkIoImltZ1tuJD0u Q10iKS5EKHMoKXszKDIpLjcoXCdxXCcsMygyKS5xKCkpOzMoMikuNyhcJ3JcJywz KDIpLnIoKSk7OCBhPVwnXCc7OCBiPVwnXCc7OCBnPSgzKDIpLjcoXCdFXCcpKT9c J0U9IlwnKzMoMikuNyhcJ0VcJykrXCciIFwnOlwnXCc7OCBoPSgzKDIpLjcoXCdG XCcpKT9cJ0Y9IlwnKzMoMikuNyhcJ0ZcJykrXCciIFwnOlwnXCc7OCBpPSgzKDIp LjcoXCdHXCcpKT9cJ0c9IlwnKzMoMikuNyhcJ0dcJykrXCciIFwnOlwnXCc7OCBq PSgzKDIpLjcoXCdIXCcpKT9cJ0g9IlwnKzMoMikuNyhcJ0hcJykrXCciIFwnOlwn XCc7OCBrPSgzKDIpLjcoXCdWXCcpKT9cJ2Zsb2F0OlwnKzMoMikuNyhcJ1ZcJykr XCc7XCc6XCdcJzs4IGQ9KDMoMikucGFyZW50KCkuNyhcJ2hyZWZcJykpP1wnY3Vy c29yOmhhbmQ7XCc6XCdcJztwKDIuOS52KXthKz1cJ3Y6XCcrMi45LnYrXCc7XCc7 Mi45LnY9XCdcJ31wKDIuOS53KXthKz1cJ3c6XCcrMi45LncrXCc7XCc7Mi45Lnc9 XCdcJ31wKDIuOS54KXthKz1cJ3g6XCcrMi45LngrXCc7XCc7Mi45Lng9XCdcJ304 IGw9KDIuOS5jc3NUZXh0KTtiKz1cJzx5IFwnK2craCtpK2o7Yis9XCc5PSJXOlg7 d2hpdGUtc3BhY2U6cHJlLWxpbmU7WTpaLTEwO0k6dHJhbnNwYXJlbnQ7XCcraytk O2IrPVwncTpcJyszKDIpLnEoKStcJ3o7cjpcJyszKDIpLnIoKStcJ3o7XCc7Yis9 XCdKOks6TC50Lk0obj1cXFwnXCcrMygyKS43KFwnblwnKStcJ1xcXCcsIE49XFxc J09cXFwnKTtcJztiKz1sK1wnIj48L3k+XCc7cChhIT1cJ1wnKXtiPVwnPHkgOT0i VzpYO1k6Wi0xMDtcJythK2QrXCdxOlwnKzMoMikucSgpK1wnejtyOlwnKzMoMiku cigpK1wnejsiPlwnK2IrXCc8L3k+XCd9MygyKS5oaWRlKCk7MygyKS5hZnRlcihi KX0pOzMoMikuQigiKiIpLkQocygpezggYT0zKDIpLjExKFwnSS0xMlwnKTtwKGEu QSgiLkMiKSE9LTEpezggYj1hLjEzKFwndXJsKCJcJylbMV0uMTMoXCciKVwnKVsw XTszKDIpLjExKFwnSS0xMlwnLFwnbm9uZVwnKTszKDIpLjE0KDApLjE1Lko9Iks6 TC50Lk0obj1cJyIrYisiXCcsTj1cJ09cJykifX0pOzMoMikuQigiaW5wdXRbbiQ9 LkNdIikuRChzKCl7OCBhPTMoMikuNyhcJ25cJyk7MygyKS4xNCgwKS4xNS5KPVwn SzpMLnQuTShuPVxcXCdcJythK1wnXFxcJywgTj1cXFwnT1xcXCcpO1wnOzMoMiku NyhcJ25cJyxjLlApfSl9cmV0dXJuIDN9fSkoMyk7JyxbXSw2OCwnfHx0aGlzfGpR dWVyeXx8fHxhdHRyfHZhcnxzdHlsZXx8fHx8fHx8fHx8fHx8c3JjfG5hdmlnYXRv cnxpZnx3aWR0aHxoZWlnaHR8ZnVuY3Rpb258TWljcm9zb2Z0fGFwcFZlcnNpb258 Ym9yZGVyfHBhZGRpbmd8bWFyZ2lufHNwYW58cHh8aW5kZXhPZnxmaW5kfHBuZ3xl YWNofGlkfGNsYXNzfHRpdGxlfGFsdHxiYWNrZ3JvdW5kfGZpbHRlcnxwcm9naWR8 RFhJbWFnZVRyYW5zZm9ybXxBbHBoYUltYWdlTG9hZGVyfHNpemluZ01ldGhvZHxz Y2FsZXxibGFua2dpZnxhcHBOYW1lfEludGVybmV0fEV4cGxvcmVyfHBhcnNlSW50 fE1TSUV8YWxpZ258cG9zaXRpb258cmVsYXRpdmV8ZGlzcGxheXxpbmxpbmV8Ymxv Y2t8Y3NzfGltYWdlfHNwbGl0fGdldHxydW50aW1lU3R5bGUnLnNwbGl0KCd8Jyks MCx7fSkpDQoNCi8vLi4vZnVuemlvbmkuanMNClZlcnNpb25lPSIxMS8xMC8yMDEw IjskKGRvY3VtZW50KS5yZWFkeShmdl9pbml0KTtmdW5jdGlvbiBjc3NlbmFibGVk KCl7JCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD1cInRlc3Rjc3NcIj48L2Rpdj4i KTskKCIjdGVzdGNzcyIpLmNzcyh7InBvc2l0aW9uIjoiYWJzb2x1dGUiLCJ0b3Ai OiItMTAwMDBweCIsImxlZnQiOiItMTAwMDBweCJ9KTt2YXIgZXNpdD0kKCIjdGVz dGNzcyIpLnBvc2l0aW9uKCkudG9wIDwgMDskKCIjdGVzdGNzcyIpLnJlbW92ZSgp O3JldHVybiBlc2l0O31mdW5jdGlvbiBmdl9pbml0KCl7aWYoc2VsZi5wYWdpbmEg IT11bmRlZmluZWQpeyQoIiNzZm9uZG9fbWVudV9jYW5hbGkgdWwgbGkgYSIpLmVh Y2goZnVuY3Rpb24oKXtpZighICQodGhpcykucGFyZW50KCkuaGFzQ2xhc3MoImlu ZGVudCIpKSQodGhpcykuYWRkQ2xhc3MoInRlbXBvcmFuZWEiKTtpZigkKHRoaXMp Lmh0bWwoKT09cGFnaW5hKXskKHRoaXMpLmFkZENsYXNzKCJjdXJyZW50Iik7JCgi I3Nmb25kb19tZW51X2NhbmFsaSB1bCBsaSBhLnRlbXBvcmFuZWEiKS5sYXN0KCku YWRkQ2xhc3MoImN1cnJlbnQiKTt9fSl9JCgiI3Nmb25kb19tZW51X2NhbmFsaSB1 bCBsaSBhLnRlbXBvcmFuZWEiKS5yZW1vdmVDbGFzcygidGVtcG9yYW5lYSIpO2lm KCQuYnJvd3Nlci5tc2llICYmKCQuYnJvd3Nlci52ZXJzaW9uPT0iNi4wIikmJigk KCJ0aXRsZTpjb250YWlucygnSG9tZScpIikubGVuZ3RoPT0wKSkkKGRvY3VtZW50 KS5wbmdGaXgoKTskKGZ1bmN0aW9uKCl7JCgiYS5hcHJpX2ZpbmVzdHJhIikuY2xp Y2soZnVuY3Rpb24oKXt3aW5kb3cub3Blbih0aGlzLmhyZWYpO3JldHVybiBmYWxz ZTt9KTt9KTskKCIjZF9mb3JtIGZvcm0gaW5wdXRbdHlwZT1yYWRpb10iKS5hZGRD bGFzcygiUmFkaW9DaGVjayIpOyQoIi5kX3RhYmVsbGEgdGFibGUgdHI6bnRoLWNo aWxkKGV2ZW4pIikuYWRkQ2xhc3MoImV2ZW4iKTskKCIjY29sb25uYTIgdWwgbGk6 bGFzdC1jaGlsZCIpLmFkZENsYXNzKCJib3JkbyIpO3ZhciBjb3VudExpPTA7dmFy IGFsbExpPSQoIiNjb2xvbm5hMiB1bCBsaS5pbmRlbnQgYSIpLmxlbmd0aDskKCIj Y29sb25uYTIgdWwgbGkuaW5kZW50IGEiKS5lYWNoKGZ1bmN0aW9uKCl7Y291bnRM aSsrOyQodGhpcykuYWZ0ZXIoKGFsbExpPT1jb3VudExpKT8gIjxzcGFuIGNsYXNz PVwic2Z1bWF0dXJhX2R3XCI+PC9zcGFuPiI6IjxzcGFuIGNsYXNzPVwiYm9yZG9f bWVudV9pbmRlbnRcIj48L3NwYW4+Iik7fSk7JCgiI2NvbG9ubmEyIHVsIGxpLmlu ZGVudDpmaXJzdCBhIikuYmVmb3JlKCI8c3BhbiBjbGFzcz1cInNmdW1hdHVyYV91 cFwiPjwvc3Bhbj4iKTskKCIjY29sb25uYTIgdWwgbGkuaW5kZW50IGEuY3VycmVu dCIpLnBhcmVudCgpLmFkZENsYXNzKCJzZWxlemlvbmF0byIpOyQoIi5hbmdvbG9f Ym90dG9uZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLndyYXAoIjxwIGNsYXNz PVwiYnRuX2JsdVwiPiIpOyQodGhpcykucGFyZW50KCkuYWZ0ZXIoIjxkaXYgY2xh c3M9XCJjbGVhcmVyXCI+PC9kaXY+Iik7JCh0aGlzKS5hcHBlbmQoIjxzcGFuIGNs YXNzPVwiYnRuX2JsdV9kZXNcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJidG5fYmx1 X3NpblwiPjwvc3Bhbj4iKTt9KTskKCJhLnB1bHNhbnRlX2FjY2VkaV9zciIpLmVh Y2goZnVuY3Rpb24oKXskKHRoaXMpLndyYXAoIjxkaXYgY2xhc3M9XCJjcmVhX3B1 bHNhbnRlX2FjY2VkaV9zclwiPiIpOyQodGhpcykuYXBwZW5kKCI8c3BhbiBjbGFz cz1cInB1bHNhbnRlX2FjY2VkaV9zcl9zeFwiPiZuYnNwOzwvc3Bhbj4iKTskKHRo aXMpLmFwcGVuZCgiPHNwYW4gY2xhc3M9XCJwdWxzYW50ZV9hY2NlZGlfc3JfZHhc Ij4mbmJzcDs8L3NwYW4+Iik7fSk7JCgiYS5wdWxzYW50ZV9hY2NlZGlfY3IiKS5l YWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS53cmFwKCI8ZGl2IGNsYXNzPVwiY3JlYV9w dWxzYW50ZV9hY2NlZGlfY3JcIj4iKTskKHRoaXMpLmFwcGVuZCgiPHNwYW4gY2xh c3M9XCJwdWxzYW50ZV9hY2NlZGlfY3Jfc3hcIj4mbmJzcDs8L3NwYW4+Iik7JCh0 aGlzKS5hcHBlbmQoIjxzcGFuIGNsYXNzPVwicHVsc2FudGVfYWNjZWRpX2NyX2R4 XCI+Jm5ic3A7PC9zcGFuPiIpO30pOyQoImEucHVsc2FudGVfc2tfYWRlbXAiKS5l YWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS53cmFwKCI8ZGl2IGNsYXNzPVwiY3JlYV9w dWxzYW50ZV9za19hZGVtcFwiPiIpOyQodGhpcykuYXBwZW5kKCI8c3BhbiBjbGFz cz1cInB1bHNhbnRlX3NrX2FkZW1wX3N4XCI+Jm5ic3A7PC9zcGFuPiIpOyQodGhp cykuYXBwZW5kKCI8c3BhbiBjbGFzcz1cInB1bHNhbnRlX3NrX2FkZW1wX2R4XCI+ Jm5ic3A7PC9zcGFuPiIpO30pOyQoImEucHVsc2FudGVfc2tfYWRlbXBfcGRmIiku ZWFjaChmdW5jdGlvbigpeyQodGhpcykud3JhcCgiPGRpdiBjbGFzcz1cImNyZWFf cHVsc2FudGVfc2tfYWRlbXBfcGRmXCI+Iik7JCh0aGlzKS5hcHBlbmQoIjxzcGFu IGNsYXNzPVwicHVsc2FudGVfc2tfYWRlbXBfcGRmX3N4XCI+Jm5ic3A7PC9zcGFu PiIpOyQodGhpcykuYXBwZW5kKCI8c3BhbiBjbGFzcz1cInB1bHNhbnRlX3NrX2Fk ZW1wX3BkZl9keFwiPiZuYnNwOzwvc3Bhbj4iKTt9KTskKCIjY29udGF0dGEsLmNy ZWFfcHVsc2FudGVfc2tfYWRlbXAsLmNyZWFfcHVsc2FudGVfc2tfYWRlbXBfcGRm IikuY2xpY2soZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249JCh0aGlzKS5maW5k KCJhIikuYXR0cigiaHJlZiIpO3JldHVybiBmYWxzZTt9KTtpZihjc3NlbmFibGVk KCkpeyQoIi50YWJzID4gZGl2IikuZWFjaChmdW5jdGlvbihpbmRleCl7aWYoJCh0 aGlzKS5hdHRyKCJpZCIpKSQodGhpcykuYWRkQ2xhc3MoJCh0aGlzKS5hdHRyKCJp ZCIpKyAiX2pzIik7fSk7JCgiLnRhYnMgdWwudGFiTmF2aWdhdGlvbiIpLmFkZENs YXNzKCJ0YWJOYXZpZ2F0aW9uX2pzIik7JCgiLnRhYnMgaDIiKS5hZGRDbGFzcygi c2tpcGhlYWRlciIpO3ZhciB0YWJDb250YWluZXJzPSQoImRpdi50YWJzID4gZGl2 Iik7dGFiQ29udGFpbmVycy5oaWRlKCkuZmlsdGVyKCI6Zmlyc3QiKS5zaG93KCk7 JCgiZGl2LnRhYnMgdWwudGFiTmF2aWdhdGlvbiBhIikuY2xpY2soZnVuY3Rpb24o KXt0YWJDb250YWluZXJzLmhpZGUoKTt0YWJDb250YWluZXJzLmZpbHRlcih0aGlz Lmhhc2gpLnNob3coKTskKCJkaXYudGFicyB1bC50YWJOYXZpZ2F0aW9uIGEiKS5y ZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCJkaXYudGFicyB1bC50YWJOYXZpZ2F0 aW9uIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpOyQodGhpcykuYWRkQ2xhc3Mo InNlbGVjdGVkIik7JCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygiYWN0aXZlIik7 cmV0dXJuIGZhbHNlO30pLmZpbHRlcigiOmZpcnN0IikuY2xpY2soKTt9aWYoY3Nz ZW5hYmxlZCgpKXtmb3IoY291bnQ9MTtjb3VudCA8PTQ7Y291bnQrKykkKCIjc2Vs Y2FsIiArIGNvdW50KS5hdHRyKCJocmVmIiwiI25vbmUiKTskKCIjc2VsY2FsMSIp LmNsaWNrKGZ1bmN0aW9uKCl7c2VsY2FsKDIpO30pOyQoIiNzZWxjYWwyIikuY2xp Y2soZnVuY3Rpb24oKXtzZWxjYWwoMSk7fSk7JCgiI3NlbGNhbDMiKS5jbGljayhm dW5jdGlvbigpe3NlbGNhbCgzKTt9KTskKCIjc2VsY2FsNCIpLmNsaWNrKGZ1bmN0 aW9uKCl7c2VsY2FsKDIpO30pO31mdW5jdGlvbiBzZWxjYWwobil7Zm9yKGNvdW50 PTE7Y291bnQgPD0zO2NvdW50KyspJCgiI2NhbGVuZGFyaW8iICsgY291bnQgKyAi LCNldmVudGkiICsgY291bnQpLmNzcyh7InBvc2l0aW9uIjoiYWJzb2x1dGUiLCJ0 b3AiOiItMTAwMDBweCIsImxlZnQiOiItMTAwMDBweCJ9KTskKCIjY2FsZW5kYXJp byIgKyBuICsgIiwjZXZlbnRpIiArIG4pLmNzcyh7InBvc2l0aW9uIjoic3RhdGlj In0pO3JldHVybjt9c2VsY2FsKDEpO3ZhciBtb3VudGhzPVsiZ2VubmFpbyIsImZl YmJyYWlvIiwibWFyem8iLCJhcHJpbGUiLCJtYWdnaW8iLCJnaXVnbm8iLCJsdWds aW8iLCJhZ29zdG8iLCJzZXR0ZW1icmUiLCJvdHRvYnJlIiwibm92ZW1icmUiLCJk aWNlbWJyZSJdO2lmKHNlbGYudG9kYXkgIT11bmRlZmluZWQpe3ZhciBzdHJpcGRh dGU9dG9kYXkuc3BsaXQoIi8iKTt2YXIgZGF0ZT1zdHJpcGRhdGVbMF0rICIgIiAr IG1vdW50aHNbc3RyaXBkYXRlWzFdLSAxXSsgIiAiICsgc3RyaXBkYXRlWzJdOyQo IiNjYWxlbmRhcmlvMSB0ZCwjY2FsZW5kYXJpbzIgdGQsI2NhbGVuZGFyaW8zIHRk IikuZWFjaChmdW5jdGlvbigpe2NvbnRlbnQ9JCh0aGlzKS5odG1sKCk7Y29udGVu dD1jb250ZW50LnJlcGxhY2UoL1tcclxuXHRdLywiIik7Y29udGVudD1jb250ZW50 LnJlcGxhY2UoLzxcL2E+L2ksIiIpO2NvbnRlbnQ9Y29udGVudC5yZXBsYWNlKC88 YVtePl0qPi9pLCIiKTtjb250ZW50PWNvbnRlbnQucmVwbGFjZSgvPHNwYW4+L2ks IiIpO2NvbnRlbnQ9Y29udGVudC5yZXBsYWNlKC88XC9zcGFuPi9pLCIiKTtjb250 ZW50PSQudHJpbShjb250ZW50LnJlcGxhY2UoL1xzKy8sIiAiKSk7aWYoZGF0ZT09 Y29udGVudCkkKHRoaXMpLmh0bWwoIjwiICsgImRpdiBjbGFzcz1cImN1cmRhdGVc Ij4iICsgJCh0aGlzKS5odG1sKCkrICI8IiArICIvZGl2PiIpO30pO30kKCIjdG9n Z2xlX2NvbnRlbnQiKS5hZGRDbGFzcygibmFzY29uZGkiKTskKCIudG9nZ2xlX2xp bmsiKS5jbGljayhmdW5jdGlvbigpe2lmKCQodGhpcykucGFyZW50KCkuZmluZCgi I3RvZ2dsZV9jb250ZW50IikuaGFzQ2xhc3MoIm5hc2NvbmRpIikpeyQodGhpcyku cGFyZW50KCkuZmluZCgiI3RvZ2dsZV9jb250ZW50IikucmVtb3ZlQ2xhc3MoIm5h c2NvbmRpIik7JCh0aGlzKS5wYXJlbnQoKS5maW5kKCIjdG9nZ2xlX2NvbnRlbnQi KS5hZGRDbGFzcygibW9zdHJhIik7JCh0aGlzKS5jaGlsZHJlbigiYSIpLmFkZENs YXNzKCJ2aXNpYmlsZSIpO31lbHNleyQodGhpcykucGFyZW50KCkuZmluZCgiI3Rv Z2dsZV9jb250ZW50IikucmVtb3ZlQ2xhc3MoIm1vc3RyYSIpOyQodGhpcykucGFy ZW50KCkuZmluZCgiI3RvZ2dsZV9jb250ZW50IikuYWRkQ2xhc3MoIm5hc2NvbmRp Iik7JCh0aGlzKS5jaGlsZHJlbigiYSIpLnJlbW92ZUNsYXNzKCJ2aXNpYmlsZSIp O31yZXR1cm4gZmFsc2U7fSk7JCgiI3Rlc3RvX25hc2Nvc3RvIikuYWRkQ2xhc3Mo Im5hc2NvbmRpIik7JCgiLmFwcmlfbGluayIpLmNsaWNrKGZ1bmN0aW9uKCl7aWYo JCgiI3Rlc3RvX25hc2Nvc3RvIikuaGFzQ2xhc3MoIm5hc2NvbmRpIikpeyQoIiN0 ZXN0b19uYXNjb3N0byIpLnJlbW92ZUNsYXNzKCJuYXNjb25kaSIpOyQoIiN0ZXN0 b19uYXNjb3N0byIpLmFkZENsYXNzKCJtb3N0cmEiKTskKCJzcGFuLmFwcmlfbGlu ayBhIikuYWRkQ2xhc3MoInZpc2liaWxlIik7fWVsc2V7JCgiI3Rlc3RvX25hc2Nv c3RvIikucmVtb3ZlQ2xhc3MoIm1vc3RyYSIpOyQoIiN0ZXN0b19uYXNjb3N0byIp LmFkZENsYXNzKCJuYXNjb25kaSIpOyQoInNwYW4uYXByaV9saW5rIGEiKS5yZW1v dmVDbGFzcygidmlzaWJpbGUiKTt9cmV0dXJuIGZhbHNlO30pOyQoIi5vcGVuX2Jv eCAub3Blbl9ib3hfY29udGVudCIpLmNzcyh7InBvc2l0aW9uIjoiYWJzb2x1dGUi LCJ0b3AiOiItMTAwMDAwcHgifSk7JCgiLm9wZW5fYm94IC5vcGVuX2JveF90aXRs ZSIpLmNzcyh7ImN1cnNvciI6InBvaW50ZXIiLCJ0ZXh0LWRlY29yYXRpb24iOiJu b25lIn0pOyQoIi5vcGVuX2JveCAub3Blbl9ib3hfdGl0bGUiKS5jbGljayhmdW5j dGlvbigpe2lmKCQodGhpcykucGFyZW50KCkuZmluZCgiLm9wZW5fYm94X2NvbnRl bnQiKS5jc3MoInBvc2l0aW9uIik9PSJhYnNvbHV0ZSIpeyQodGhpcykucGFyZW50 KCkuZmluZCgiLm9wZW5fYm94X2NvbnRlbnQiKS5jc3MoeyJwb3NpdGlvbiI6InN0 YXRpYyIsInRvcCI6IjAifSk7JCh0aGlzKS5jaGlsZHJlbigiYSIpLmNzcygiYmFj a2dyb3VuZCIsInVybChpbWcvaWNvX21lbm8ucG5nKW5vLXJlcGVhdCBjZW50ZXIg bGVmdCIpO31lbHNleyQodGhpcykucGFyZW50KCkuZmluZCgiLm9wZW5fYm94X2Nv bnRlbnQiKS5jc3MoeyJwb3NpdGlvbiI6ImFic29sdXRlIiwidG9wIjoiLTEwMDAw cHgifSk7JCh0aGlzKS5jaGlsZHJlbigiYSIpLmNzcygiYmFja2dyb3VuZCIsInVy bChpbWcvaWNvX3BpdS5wbmcpbm8tcmVwZWF0IGNlbnRlciBsZWZ0Iik7fXJldHVy biBmYWxzZTt9KTskKCJmb3JtW2lkJD0nUGFnZVJlbG9hZEZvcm0nXSIpLmNzcygi ZGlzcGxheSIsIm5vbmUiKTtpZigkKCIjb3JnYW5pZ3JhbW1hIikpeyQoIiNvcmdh bmlncmFtbWEgYXJlYSIpLmVhY2goZnVuY3Rpb24oKXtpZigkKHRoaXMpLmF0dHIo ImlkIikhPSJhcmVhX2N2MTEiKXskKHRoaXMpLm1vdXNlb3ZlcihmdW5jdGlvbihl KXtlLnByZXZlbnREZWZhdWx0KCk7JCgiI2N2LCNjdjIsI2N2MywjY3Y0LCNjdjUs I2N2NiwjY3Y3LCNjdjgsI2N2OSwjY3YxMCIpLmhpZGUoKTt2YXIgYXJlYV9pZD0k KHRoaXMpLmF0dHIoImlkIikucmVwbGFjZSgiYXJlYV8iLCIiKTskKCcjJyArIGFy ZWFfaWQpLnNob3coKTt9KTt9fSk7JCgiI2FyZWFfY3YxMSIpLm1vdXNlb3Zlcihm dW5jdGlvbigpeyQoIiNjdiwjY3YyLCNjdjMsI2N2NCwjY3Y1LCNjdjYsI2N2Nywj Y3Y4LCNjdjksI2N2MTAiKS5oaWRlKCk7fSk7JCgiZGl2IikuY2xpY2soZnVuY3Rp b24oKXskKCIjY3YsI2N2MiwjY3YzLCNjdjQsI2N2NSwjY3Y2LCNjdjcsI2N2OCwj Y3Y5LCNjdjEwIikuaGlkZSgpO30pO319DQoNCi8vLi4vYWJzZm9vdGVyLmpzDQpW ZXJzaW9uZT0iMTEvMTAvMjAxMCI7YWZfY29scz1bIiNjb2xvbm5hMSIsIiNjb2xv bm5hMiIsIiNkb3VibGVfYm94IiwiI2JveF9yaWdodCIsIiNjb2xvbm5hX0Nhc3Nl dHRvIl07JCh3aW5kb3cpLmxvYWQoYWZfaW5pdCk7JCh3aW5kb3cpLnJlc2l6ZShh Zl9pbml0KTtmdW5jdGlvbiBhZl9pbml0KCl7dmFyIGdyb3VwPWV2YWwoIiQoXCIi ICsgYWZfY29scy5qb2luKCIsIikrICJcIikiKTtncm91cC5lYWNoKGZ1bmN0aW9u KCl7JCh0aGlzKS5hdHRyKCJzdHlsZSIsIm1pbi1oZWlnaHQ6MHB4O2hlaWdodDph dXRvICFpbXBvcnRhbnQ7aGVpZ2h0OjBweDsiKTt9KTt2YXIgbWF4PTA7Z3JvdXAu ZWFjaChmdW5jdGlvbigpe21heD1NYXRoLm1heChtYXgsJCh0aGlzKS5oZWlnaHQo KSk7fSk7Z3JvdXAuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3R5bGUi LCJtaW4taGVpZ2h0OiIgKyBtYXggKyAicHg7aGVpZ2h0OmF1dG8gIWltcG9ydGFu dDtoZWlnaHQ6IiArIG1heCArICJweDsiKTt9KTt9DQoNCi8vLi4vY29kZWNsZWFy LmpzDQpWZXJzaW9uZT0iMTEvMTAvMjAxMCI7Y2NfY2xlYXI9dHJ1ZTtjY19sYWJl bD10cnVlO2NjX2RvY3M9eyJ6aXAiOiJ6aXAiLCJyYXIiOiJyYXIiLCJkb2MiOiJk b2MiLCJwZGYiOiJwZGYiLCJ4bHMiOiJ4bHMifTskKGRvY3VtZW50KS5yZWFkeShj Y19pbml0KTtmdW5jdGlvbiBjY19pbml0KCl7Y2NfY2xlYXJfaW5pdCgpO2NjX2xh YmVsX2luaXQoKTt9ZnVuY3Rpb24gY2NfY2xlYXJfaW5pdCgpe2lmKGNjX2NsZWFy KXskKCJwLGFbaHJlZl0iKS5lYWNoKGZ1bmN0aW9uKCl7aWYoISgkLnRyaW0oJCh0 aGlzKS50ZXh0KCkpfHwgJC50cmltKCQodGhpcykuaHRtbCgpKSkpJCh0aGlzKS5y ZW1vdmUoKTt9KTt9fWZ1bmN0aW9uIGNjX2xhYmVsX2luaXQoKXtpZihjY19sYWJl bCl7JCgiYVtocmVmXSIpLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIGluZGV4IGlu IGNjX2RvY3Mpe2lmKCEgJCh0aGlzKS5hdHRyKCJocmVmIikubWF0Y2gobmV3IFJl Z0V4cCgiXlteXFw/XStcXC4iICsgaW5kZXggKyAiKFxcPy4qKT8kIiwiaWciKSkp Y29udGludWU7aWYoJC50cmltKCQodGhpcykuaHRtbCgpKS5tYXRjaChuZXcgUmVn RXhwKCJePGltZyIsImlnIikpKXJldHVybjtpZigkKHRoaXMpLnRleHQoKS5tYXRj aChuZXcgUmVnRXhwKGluZGV4LCJpZyIpKSlyZXR1cm47dmFyIHJlbW92ZT0kKHRo aXMpLmh0bWwoKTtyZW1vdmU9cmVtb3ZlLnJlcGxhY2UoL1tcblxyXHRdL2csIiIp O3JlbW92ZT0kLnRyaW0ocmVtb3ZlLnJlcGxhY2UoL1tcP1wqXCtcKFwpXFtcXVx7 XH1cLV0vZywiLiIpKTt2YXIgaHRtbD0kKHRoaXMpLnBhcmVudCgpLmh0bWwoKTto dG1sPSQudHJpbShodG1sLnJlcGxhY2UoL1tcblxyXHRdL2csIiIpKTtodG1sPSQu dHJpbShodG1sLnJlcGxhY2UobmV3IFJlZ0V4cCgiXi4qIiArIHJlbW92ZSwiaWci KSwiIikpO2h0bWw9JC50cmltKGh0bWwucmVwbGFjZShuZXcgUmVnRXhwKCJePC9h PiIsImlnIiksIiIpKTtodG1sPSQudHJpbShodG1sLnJlcGxhY2UobmV3IFJlZ0V4 cCgiPGEuKiQiLCJpZyIpLCIiKSk7aWYoaHRtbC5tYXRjaChuZXcgUmVnRXhwKGlu ZGV4LCJpZyIpKSlyZXR1cm47JCh0aGlzKS5odG1sKCQodGhpcykuaHRtbCgpKyAi IC0gIiArIGNjX2RvY3NbaW5kZXhdKTt9fSk7fX0NCg0K ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=funzioniwww1.js Content-Type: application/javascript; name=funzioniwww1.js Content-Location: http://www1.agenziaentrate.it/pie/js/funzioniwww1.js Content-Transfer-Encoding: Base64 Ly9Bc3NlZ25hIGxhIGNsYXNzZSBjdXJyZW50IGFsIG1lbnUgcHJpbmNpcGFsZSBw ZXIgbGUgYXBwbGljYXppb25pIHBocA0KJCggZG9jdW1lbnQgKS5yZWFkeSggZnVu Y3Rpb24oKSB7DQogCXZhciBwYXRoQz0kKHRoaXMpLmZpbmQoJyNwYXRoIHAgYScp Ow0KCWlmKChwYXRoQyE9bnVsbCkgJiYgKHBhdGhDIT11bmRlZmluZWQpKXsNCgkJ dmFyIHBhdGhDdXJyZW50Ow0KCQlpZigocGF0aEMuZXEoMSlbMF0hPW51bGwpICYm IChwYXRoQy5lcSgxKVswXSE9dW5kZWZpbmVkKSkNCgkJCXBhdGhDdXJyZW50PXBh dGhDLmVxKDEpWzBdLmlubmVySFRNTC5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIiku dG9Mb3dlckNhc2UoKTsNCgkJdmFyIG1lbnVQPSQodGhpcykuZmluZCgnLm1lbnVw IHVsIGxpIGEnKTsNCgkJaWYoKHBhdGhDdXJyZW50ICE9IHVuZGVmaW5lZCkgJiYg KG1lbnVQIT1udWxsKSAmJiAobWVudVAhPXVuZGVmaW5lZCkpew0KCQkJJC5lYWNo KG1lbnVQLCBmdW5jdGlvbihpbmRleCkgew0KCQkJCSAgdmFyIHBhdGhNZW51UDsg CSANCgkJCQkgIGlmKChtZW51UC5lcShpbmRleClbMF0hPW51bGwpICYmIChtZW51 UC5lcShpbmRleClbMF0hPXVuZGVmaW5lZCkpDQoJCQkJCSAgcGF0aE1lbnVQPW1l bnVQLmVxKGluZGV4KVswXS5pbm5lckhUTUwucmVwbGFjZSgvXlxzK3xccyskL2cs IiIpLnRvTG93ZXJDYXNlKCk7DQoJCQkJICBpZigocGF0aE1lbnVQICE9IHVuZGVm aW5lZCkgJiYgKHBhdGhNZW51UD09cGF0aEN1cnJlbnQpKXsNCgkJCQkJaWYoIW1l bnVQLmVxKGluZGV4KS5pcygnLnByb2ZpbG9fZmlzY2FsZScpKXsNCgkJCQkJCW1l bnVQLmVxKGluZGV4KS5hZGRDbGFzcygnY3VycmVudCcpOw0KCQkJCQl9ZWxzZXsN CgkJCQkJCW1lbnVQLmVxKGluZGV4KS5hZGRDbGFzcygncHJvZmlsb19maXNjYWxl X2N1cnJlbnQnKTsNCgkJCQkJfQ0KCQkJCSAgfQ0KCQkJfQ0KCQkJKQ0KCQl9DQoJ fQ0KfQ0KKQ== ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=style.css Content-Type: text/css; name=style.css Content-Location: http://www1.agenziaentrate.it/pie/css/style.css Content-Transfer-Encoding: 8bit @import url("portale.css"); @import url("canali.css"); @import url("menu_canali.css"); @import url("content.css"); @import url("contenuti_home.css"); @import url("footer.css"); @import url("glossario.css"); @import url("menu_principale.css"); @import url("scheda_adempimento.css"); @import url("menu_tab.css"); @import url("struttura_sito.css"); @import url("testata.css"); @import url("tipo_contribuente.css"); @import url("servizi_telematici.css"); @import url("moduli.css"); @import url("motore_a_faccette.css"); @import url("organigramma.css"); @import url("redazione.css"); ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=print.css Content-Type: text/css; name=print.css Content-Location: http://www1.agenziaentrate.it/pie/css/print.css Content-Transfer-Encoding: 8bit /* stili per la stampa */ body { color: black; background: white; font-size: 12pt; width: 90%; margin: 10px 20px; } a:link, a:visited { background-color: #FFF; color: #000; text-decoration: none; font-weight: normal; } a:link:after, a:visited:after { /*content: " [" attr(href) "]"; */} h1, h2, h3, h4, h5, h6/*, cont_menu_tab_home h2.skipheader*/ { background-color: #FFF; color: #000; margin: 10px 10px 10px 0; border: none; width: 100%; display: block; } #colonna1 h1, #colonna2 h1 { border-bottom: 1px solid gray; margin-bottom: 20px; width: 100%; display: block; } img { border: none; } .skiplink, .skipheader, .skiptesto { display: none; } /* testata */ #testata_sx, #testata_dx, #testata_dx_form, .menup, #footerMenu, .archivio_primopiano2, #titrovi, #ti_trovi, .tabNavigation, #menu_tipo_contribuente, #box_tipo_contribuente, #box_contatta_e_servizi, #calendario1, #calendario2, #calendario3 { display: none; } #logo img { text-align: left; margin: 10px 0; display: block; padding: 0; border: 0 none; } /* corpo centrale */ #contenuti_due_colonne, #contenuti_due_colonne_home, #contenuti_una_colonna { width:100%; text-align:left; /*height: auto;*/ margin: 0; padding: 0; } #colonna1 { width:100%; text-align:left; min-height: 100px !important; height: auto !important; height: 100px !important; margin: 0 !important; padding: 0; } #colonna2 { display: none; } /* Stampa Home Page */ #colonna1, #contenuti_due_colonne_home #colonna2 { position:static; display: block; width: 100%; padding: 0; margin: 0; border: none; min-height: 100px !important; height: auto !important; height: 100px !important; background-color: #FFF; } #contenuti_due_colonne_home #colonna1 h2.skipheader { display: block; } #first, #second, #third, #four, #organigramma, .torna, .scarica { display: none; } .box_org_blu { background-color:#FFF; border: 0 none; float:left; margin: 0 5px 10px 0; padding:10px; width:94.5%; } .box_org_blu p img, .box_org_azzurro p img { border:1px solid #ADADAF; float:left; margin:0 10px 0 0; padding:2px; } #banner_laterali, #eventi1, #eventi2, #eventi3 { float: none !important; width: 100%; display: block !important; position: static !important; } .indirizzo { clear:both; color:#333333; font-size: 80%; padding-top:30px; border-top: 1px solid #eee; margin: 30px auto 0 auto; padding: 10px 0 0 0; text-align: center; width: 100%; } /* Scheda adempimento */ #double_box, #box_right { position:static; display: block; width: 100%; padding: 0; margin: 0; border: none; min-height: 100px !important; height: auto !important; height: 100px !important; background-color: #FFF; } p.attenzione { border: 2px solid #ccc; padding: 10px 20px; } p.attenzione strong { font-size: 16pt; } /* Servizi telematici */ #scelta_utenza, #menu_servizi_telem_orizz { display: none; } /* Il tuo profilo fiscale*/ .per_saperne_di_piu br { display: none; } /* Immagine flottata pagina indice o documentazione */ #colonna1 .indcart_gn, #contenuti_una_colonna .indcart_gn { padding: 10px 0 1em 0; background-color: transparent; } #colonna1 .indcart_gn p, #contenuti_una_colonna .indcart_gn p { margin: 0; padding: 0; line-height: normal; } #contenuti_una_colonna #box_right #correlati_adempimento .indcart_gn p a, #correlati_adempimento .mtsc p a { padding: 0; margin: 0; background: none; } #colonna1 .indcart_gn img, #contenuti_una_colonna .indcart_gn img, #contenuti_una_colonna #box_right #correlati_adempimento .indcart_gn img { border:0 solid #990000; float:left; margin:0 10px 0 0; } #correlati_adempimento .mtsc img { clear: left; border:0 solid #990000; float:left; margin: 0 10px; padding: 0 0 30px 0; } ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://www1.agenziaentrate.it/nsi2/gn/immagini/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAA AAAAAAAAAAAAAAAAAAD////9/////f////3////9/////f////3////9/////f// //3////9/////f////3////9/////f////3////9+Pv7/enx/P3m7/z95u/8/efv /P31+vr9+/39/fz+/f38/v39/Pz9/ery/P3m7/z95/D8/ebw/P3z+Pr9+/38/VCP 9P0IYfr9BmD8/Rtr9v2EpOP9v7W5/Y5pVf1pOhz9bkAj/XxTOf16Yln9bXGO/VqJ 3f0MY/n9FWn2/dDh+P1xovT9GGv6/SJz+P3HzNr9x66p/byelP2BVTv9azoZ/Wc1 FP1gKgf9YCsI/WAsCP16TjH9QIX3/TR89v3f6/r9/f39/d3p+P20yOn90cC5/bGU hv24ppn98O/s/fv9/P37/Pz97+zp/cK6t/04S4f9LViy/YOv9P38/fr9/Pz8/f7+ /v38/fz9uqSY/dO+uv3Hrqj9x7Cq/b6lm/23mpD9sZGG/aiHef2efGz9kXFi/Y1w Zf32+vz9/P78/f7+/v3////9/f7+/Y1rVv20moz9xqyo/bqclP2vjoH9pYBy/Z1z Y/2TZlT9h1tF/YBSN/13TDP9/P38/f7+/v3+/v79/////f7+/f2qkoL9ek80/cu3 sf3n4Nz95t/b/ePb1/3h19P929LM/aB+bf13SCz9k3Fc/fr9/f3////9/////f// //3+/f796enl/Wo9Iv2ti3/9xbCp/dnMyP3Rxr/9zr63/auRhP2JW0X9bTwf/eDZ 0/3+/v79/////f////3////9/v7+/f79/v3i3dX9lnZn/byek/2vjH79azoe/Y5h Sf2RZlP9imNR/c/Ct/37/Pz9/v/+/f////3////9/////f7+/v3+/v79+/z8/ff5 +P2svNv9wbu9/bqmnf26rav9m6fF/crZ8f38/fz9/v7+/f7+/v3////9/////f// //3+/v799vr6/bXP9/2nxfj9SYn2/Qhh+v0QZvv9CmL8/Rts9/3s9Pr9/v7+/f// //3+/v79/////f////3////9/v79/afF9f0GYv39BmL9/QZi/f0GYv39BmL9/QZi /f2CsPf9/f39/f////3////9/////f////3////9/////f7+/v3m7vn9bqP3/WGZ +v1hmfv9YZn7/WCY+v1hmvf96vL7/f7+/f3////9/////f////3////9/////f// //3+/v79/v7+/fz9/f38/v39/f79/f3+/f39/v39/f79/f7+/v3+/v79/////f// //3////9/////f////3////9/////f////3////9/////f////3////9/////f// //3////9/////f////3////9/////f////3////9AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline Content-Type: text/css Content-Location: http://www1.agenziaentrate.it/documentazione/finanziaria/domanda+5+per+mille/style.css Content-Transfer-Encoding: 8bit /* Stili per il nuovo motore di ricerca */ /************* #cerca styles ***************/ #onlusprincipale { padding: 0px; margin: 0px; width: auto; color: #FFF; } #onluscerca { padding: 10px 0px 0px 0px; color: #000; border-bottom:0px solid #3366CC; } #onluscerca form{ margin: 0px 0px 0px 2px; padding: 0px 0px 15px 0px; width: 100%; } #onluscerca input,#onluscerca select{ margin-top:0.5em; } #onluscerca input#okricerca{ /* padding: 3px; font-weight: bold; border-style:solid; border-color: #FFF #333 #333 #FFF; border-width:1px 2px 2px 1px; background: #1F5F7B; color: #FFF; text-align: center; width:35px; margin-top:10px; */ } #onluscerca input{ } #onluscerca label{ margin: 0px 0px 0px 0px; padding: 0px 0 5px 0; text-align: left; } /************* #search styles ***************/ /************* #menu laterale e risultato ***************/ #testataonlus #sceltabutton .selezionato{ /* background:#ffffff; color: #BB0000; font-weight:bold; text-decoration:none; */ border-color:#3366CC; border-style:solid; border-width:2px 2px 0px; bottom:-3px; font-weight:bold; padding:0pt 5px; position:relative; text-decoration:none; background:#D5DDF3; color:#000000; } #testataonlus a:hover , #testataonlus a:visited { background:#ffffff; color:#1C517B; } #onlusrisultato { /* per centrare la tabella con tutti i browser */ text-align: center; min-width: 700px; /*margin: 10px 0px 0px 0px; */ color: #000; border: 0px solid #000; background-color: #FFF; width:auto; /*min-height: 500px;*/ /* non e' interpetata da Internet Explorer */ /*height: auto !important;*/ /* serve per Opera, Mozilla e gli altri browser per sovrascrivere la terza dichiarazione che vincolerebbe in ogni caso l'altezza del box (cosa non prevista da min-height). Internet Explorer non da' peso alla direttiva !important */ /*height: 500px;*/ } /*********** #numris styles ***********/ #onlusnumris { text-align: right; background:#D5DDF3 none repeat scroll 0%; color: #000; /* padding-bottom: 5px;*/ padding-right:15px; font-size:80%; font-weight: bold; margin-bottom:10px; /* background-color: #638C72;*/ } /*********** #numris styles Fine ***********/ /*********** #hits styles ***********/ #onlushits { /* per centrare la tabella con tutti i browser */ text-align: left; /* width: 700px; margin:0 auto; text-align: center;*/ color: #000; /*font-size: 90%;*/ /* background-color: #DEE7EB;*/ padding: 0 15px; } .onlusimgdett{ border-style:none; padding-left:10px; } #onlushits a:link { text-decoration: underline; color: #000; } #onlushits a:hover { text-decoration: none; color: #000; } #onlushits a:visited { text-decoration: underline; color: #000; } #onlushits table{ border: 1px solid rgb(255, 189, 132); width: auto; border-collapse: collapse; } #onlushits table th{ text-align:center; border: 1px solid rgb(255, 189, 132); background-color: rgb(255, 255, 255); vertical-align: middle; } #onlushits table td{ border: 1px solid rgb(255, 189, 132); background-color: rgb(255, 239, 222); padding:3px 5px ; /*text-align:center;*/ } .CAP{ /* width:45px;*/ } .CodiceFiscale{ /* width:85px;*/ } /*********** #hits styles Fine ***********/ /*********** #nav styles ***********/ #onlusnav { text-align: center; color: #000; font-size: 80%; background-color: #FFF; border: 0px solid #FFF; margin: 0px; padding: 5px; /* POSITION: absolute; TOP: 10px; */ } #onlusnav a { font-size: 120%; } #onlusnav a:link { text-decoration: underline; color: #000; } #onlusnav a:hover { text-decoration: underline; color: #000; } #onlusnav a:visited { text-decoration: underline; color: #000; } p.motore { text-align: right; font-weight: bold; } /*********** #nav styles Fine ***********/ #sceltabutton{ /*text-align:center; padding-bottom:5px;*/ font-size:80%; padding-left:15px; border-bottom:2px solid #3366CC; } /* #sceltabutton fieldset{ display:inline; width:345px; } #sceltabutton fieldset p{ margin:10px 0 10px 0; font-weight:bold; } */ .linkrossi { font-weight: bold; text-decoration: underline; white-space: nowrap; } .linkrossi:link { font-weight: bold; text-decoration: underline } /* Aggiunti per nuova grafica */ #testataonlus legend{ /*font-size:80%;*/ } ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline Content-Type: text/css Content-Location: http://www1.agenziaentrate.it/documentazione/finanziaria/domanda+5+per+mille/print.css Content-Transfer-Encoding: 8bit /* Stili per il nuovo motore di ricerca */ /************* #cerca styles ***************/ #onlusprincipale { padding: 0px; margin: 0px; width: auto; color: #FFF; } #onluscerca { width: 40%; padding: 10px 0px 0px 0px; margin-left: 165px; color: #000; } #onluscerca form{ margin: 0px 0px 0px 2px; padding: 0px 0px 15px 0px; width: 100%; } #onluscerca input,select{ text-align: left; margin:0 1px 0 3px; padding: 0; padding: 3px 0; font-size:100%; } #onluscerca input#okricerca{ padding: 3px; font-weight: bold; border-style:solid; border-color: #FFF #333 #333 #FFF; border-width:1px 2px 2px 1px; background: #1F5F7B; color: #FFF; text-align: center; width:35px; margin-top:10px; } #onluscerca input{ padding: 3px 0; text-align: left; } #onluscerca label{ margin: 0px 0px 0px 0px; padding: 0px 0 5px 0; text-align: left; } /************* #search styles ***************/ /************* #menu laterale e risultato ***************/ .selezionato{ background:#cccccc; font-style:italic; } #onlusrisultato { margin: 10px 0px 0px 0px; color: #000; border: 0px solid #000; background-color: #FFF; width:auto; min-height: 500px; /* non e' interpetata da Internet Explorer */ height: auto !important; /* serve per Opera, Mozilla e gli altri browser per sovrascrivere la terza dichiarazione che vincolerebbe in ogni caso l'altezza del box (cosa non prevista da min-height). Internet Explorer non da' peso alla direttiva !important */ height: 500px; } /*********** #numris styles ***********/ #onlusnumris { text-align: right; color: #000; font-size: 100%; padding-bottom: 5px; font-weight: bold; /* background-color: #638C72;*/ } /*********** #numris styles Fine ***********/ /*********** #hits styles ***********/ #onlushits { text-align: left; color: #000; /*font-size: 90%;*/ /* background-color: #DEE7EB;*/ } .onlusimgdett{ border-style:none; padding-left:10px; } .sottotitolo { font-size: 100%; margin-left:38px; } .dettagli { font-size: 90%; } .titolo { font-size: 120%; color:blue; font-weight:bold; } #onlushits a:link { text-decoration: underline; color: #000; } #onlushits a:hover { text-decoration: none; color: #000; } #onlushits a:visited { text-decoration: underline; color: #000; } #onlushits table{ border: 1px solid rgb(255, 189, 132); width: auto; border-collapse: collapse; } #onlushits table th{ text-align:center; border: 1px solid rgb(255, 189, 132); background-color: rgb(255, 255, 255); vertical-align: middle; } #onlushits table td{ border: 1px solid rgb(255, 189, 132); background-color: rgb(255, 239, 222); text-align: center; } .CAP{ width:45px; } .CodiceFiscale{ width:85px; } /*********** #hits styles Fine ***********/ /*********** #nav styles ***********/ #onlusnav { text-align: center; color: #000; font-size: 90%; background-color: #FFF; border: 0px solid #FFF; margin: 0px; padding: 5px; /* POSITION: absolute; TOP: 10px; */ } #onlusnav a { font-size: 120%; } #onlusnav a:link { text-decoration: underline; color: #000; } #onlusnav a:hover { text-decoration: underline; color: #000; } #onlusnav a:visited { text-decoration: underline; color: #000; } p.motore { text-align: right; font-weight: bold; } /*********** #nav styles Fine ***********/ #sceltabutton{ text-align:center; } /* #sceltabutton fieldset{ display:inline; width:345px; } #sceltabutton fieldset p{ margin:10px 0 10px 0; font-weight:bold; } */ .linkrossi { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff0000; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline; } .linkrossi:link { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff0000; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline } ------------czcpoCQ0yTmKCtOHEE1Zta Content-Disposition: inline; filename=logo_trasparente.gif Content-Type: image/gif; name=logo_trasparente.gif Content-Location: http://www1.agenziaentrate.it/pie/img/logo_trasparente.gif Content-Transfer-Encoding: Base64 R0lGODlh+ABIAPcAAAA/d/N9I2yYte/OrxtfnPCUS6O2x9bd71F2qypPbPCpa7TM 1pSkxtTZ3SNgjfvx7+6DM61vPmuMrUhune69lIGft6y9ze/Vvu9/KQBEg8XO1e+c Wpazxefi6LfFzu/v71mKq1B0pHKOtkJqm4ulvBhajvCOQ++yfPHEpfGEKc/W3jBk lABKhLW+2199r5Oly++dYfGDJABJfO/fzztrnJW1zlKDpGRfWazE0HScv6a11OXo 7YWkuY+svszGuneWtWqTr0h6m9XEvfzNr/GJMhBTit7d5f7/+lSErPaFKWOLru7l 3rXM3AdJhcnU2kN0nPK3i5atv/iCIqq3183U5vSVUSlkjiJaje3w9alqR/Cuepy7 z6a6xfGmbPeNQTNmmfHJr3uMnvmeWApPhvjEn32lv+7q5/HXxt3m72SOtIOmxHSW u3mdtbzP3vaJNFJ5pEJxpYqdx/Xi0zp0nLzD1ZuuzoOcxfDOtdXZ5GuGs8XX5Zu1 zverbzJrlvZ9KpWtxZu1xqS+1VmFrP6eUre/1ktupoysxeTu763E1muTtq291xtR jVl7q++yg3OSrr3E3v3UtBdUgyRbk/aeX/j3/Up7pGSEsyljk3ydvFqFpd/o5/n9 //q9jll6p/3dxPqTRAdIfv+jWv/q3fiNO6S0zu+9nPd8H83e6LzU3jFrneLt8fWl asV2NDhrlrXG1iNhlPKaUyZlm/CTRe/3+oKYv6vD3Q9NhrXF3veSSvXQtvvWuf+C IcXM32uKttDb4WORtfe4hfb29r3O2IynxO7d1Q9ThARPkviFNEyApZqux0R6pv3o 1//EmObs6pWszp+z1Nfl7v2rcUJ4nqW8zoScvklzpebt9dbe4PWueIaqxM3Fw+7c yABBe3OUtRxbke/Wta+/4MPV32ODrO/DnqjF1VR4qjtwpvKkZPCudN7o9Ed0nvij Y++KOtfe6P///4SkvfOyePDt6PyOOStol4uuzlqLtHOat3uUvebk5yddjPapc6C8 1EFupTNrqPG7jf///yH5BAEHAP8ALAAAAAD4AEgAAAj/AP8JHEiwoMGDCBMqXMiw ocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2b OHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnXpw2wlZbtwc20qkq9evYLue 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 Z711170KCAA7 ------------czcpoCQ0yTmKCtOHEE1Zta--