{"report_id":"9a4c56d6-9633-4a37-be50-aaf9d962ffef","version":6,"status":"done","tags":[],"date":"2025-11-03T02:34:48Z","url":{"schema":"http","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.168.112","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"final":{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"title":"Sistema de Avaliação Ortomolecular","dom":{"size":1132096,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (19216)","md5":"f20dad2f8850fcb26e9a78db710739cc","sha1":"6fc653ebe65a9c66e626f540f20eda8b0edc1d21","sha256":"843aa7c1318e47aee2ad677a9b628d7987d62df6839120ac701a135b6784d907","sha512":"4bf82d01b3a488ea7dfdbf0fc3a270426e9eb89b762850ecc008cdab50a243ecef5cf6003502de54ea386b444c91bf694f7e281124a04325d7017c0e28fa7183","ssdeep":"12288:Gt6i2b+nOeeVjOXXq0FJc6GAJN0mWOLSF2XPEYFsMQJJ:O6i2bmXX1FJc6nN0mWOLSF2fGJJ","tlshash":"a835afdcb25921344ba747f464bb2202b33c3c61b40d4865fa5deca62ba855d20b7fbd","dom_hash":"domhashe6843966a9398aaceba8432d604feba9","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":"PGh0bWwgbGFuZz0iZW4iPjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MSI+CiAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9maWxlcy5tYW51c2Nkbi5jb20vdXNlcl91cGxvYWRfYnlfbW9kdWxlL3dlYl9kZXZfbG9nby8zMTA1MTk2NjMxOTkzMjI4NzgvcGlORGlBbmxnRVZTWHJNVS5wbmciPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJodHRwczovL2ZpbGVzLm1hbnVzY2RuLmNvbS91c2VyX3VwbG9hZF9ieV9tb2R1bGUvd2ViX2Rldl9sb2dvLzMxMDUxOTY2MzE5OTMyMjg3OC9waU5EaUFubGdFVlNYck1VLnBuZyI+CiAgICA8dGl0bGU+U2lzdGVtYSBkZSBBdmFsaWHDp8OjbyBPcnRvbW9sZWN1bGFyPC90aXRsZT4KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPSIiPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1JbnRlcjp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmYW1wO2Rpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBjcm9zc29yaWdpbj0iIiBzcmM9Ii9hc3NldHMvaW5kZXgtQ0VLVDlsRnouanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBjcm9zc29yaWdpbj0iIiBocmVmPSIvYXNzZXRzL2luZGV4LUIzMTRBTUx1LmNzcyI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgoJCTxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vdG9ldmFsLWN4bmpqcGpqLm1hbnVzLnNwYWNlL2F2YWxpYWNhbyI+CgkJPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJTaXN0ZW1hIGRlIEF2YWxpYcOnw6NvIE9ydG9tb2xlY3VsYXIiPgoJCTxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iU2lzdGVtYSB3ZWIgY29tcGxldG8gcGFyYSBhdmFsaWHDp8OjbyBmdW5jaW9uYWwgb3J0b21vbGVjdWxhciBjb20gYW7DoWxpc2UgZGUgZGnDoXRlc2VzIG1pbmVyYWlzLCBnZXJhw6fDo28gZGUgbWluZXJhbG9ncmFtYSBlIHJlbGF0w7NyaW8gcHJvZmlzc2lvbmFsIGZvcm1hdGFkbyI+CgkJPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2ZpbGVzLm1hbnVzY2RuLmNvbS93ZWJkZXZfc2NyZWVuc2hvdHMvMjAyNS8xMC8zMC9XVXlSZ1BoTlZaUGNoOGt5VktpQXk4LnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSx3XzEyMDAvY3JvcCxoXzYzMCx4XzAseV8wIj4KCQk8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjEyMDAiPgoJCTxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCI+CgkJPG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj4KCQk8bWV0YSBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJTaXN0ZW1hIGRlIEF2YWxpYcOnw6NvIE9ydG9tb2xlY3VsYXIiPgoJCTxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlNpc3RlbWEgd2ViIGNvbXBsZXRvIHBhcmEgYXZhbGlhw6fDo28gZnVuY2lvbmFsIG9ydG9tb2xlY3VsYXIgY29tIGFuw6FsaXNlIGRlIGRpw6F0ZXNlcyBtaW5lcmFpcywgZ2VyYcOnw6NvIGRlIG1pbmVyYWxvZ3JhbWEgZSByZWxhdMOzcmlvIHByb2Zpc3Npb25hbCBmb3JtYXRhZG8iPgoJCTxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZmlsZXMubWFudXNjZG4uY29tL3dlYmRldl9zY3JlZW5zaG90cy8yMDI1LzEwLzMwL1dVeVJnUGhOVlpQY2g4a3lWS2lBeTgucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfMTIwMC9jcm9wLGhfNjMwLHhfMCx5XzAiPgoJCTxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjEyMDAiPgoJCTxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2U6aGVpZ2h0IiBjb250ZW50PSI2MzAiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2Rpcj1sdHJdLGh0bWxbZGlyPWx0cl17LS10b2FzdC1pY29uLW1hcmdpbi1zdGFydDotM3B4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOjRweDstLXRvYXN0LXN2Zy1tYXJnaW4tc3RhcnQ6LTFweDstLXRvYXN0LXN2Zy1tYXJnaW4tZW5kOjBweDstLXRvYXN0LWJ1dHRvbi1tYXJnaW4tc3RhcnQ6YXV0bzstLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kOjA7LS10b2FzdC1jbG9zZS1idXR0b24tc3RhcnQ6MDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1lbmQ6dW5zZXQ7LS10b2FzdC1jbG9zZS1idXR0b24tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMzUlLCAtMzUlKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGlyPXJ0bF0saHRtbFtkaXI9cnRsXXstLXRvYXN0LWljb24tbWFyZ2luLXN0YXJ0OjRweDstLXRvYXN0LWljb24tbWFyZ2luLWVuZDotM3B4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1zdGFydDowcHg7LS10b2FzdC1zdmctbWFyZ2luLWVuZDotMXB4Oy0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydDowOy0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQ6YXV0bzstLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydDp1bnNldDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1lbmQ6MDstLXRvYXN0LWNsb3NlLWJ1dHRvbi10cmFuc2Zvcm06dHJhbnNsYXRlKDM1JSwgLTM1JSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOnZhcigtLXdpZHRoKTtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxSb2JvdG8sSGVsdmV0aWNhIE5ldWUsQXJpYWwsTm90byBTYW5zLHNhbnMtc2VyaWYsQXBwbGUgQ29sb3IgRW1vamksU2Vnb2UgVUkgRW1vamksU2Vnb2UgVUkgU3ltYm9sLE5vdG8gQ29sb3IgRW1vamk7LS1ncmF5MTpoc2woMCwgMCUsIDk5JSk7LS1ncmF5Mjpoc2woMCwgMCUsIDk3LjMlKTstLWdyYXkzOmhzbCgwLCAwJSwgOTUuMSUpOy0tZ3JheTQ6aHNsKDAsIDAlLCA5MyUpOy0tZ3JheTU6aHNsKDAsIDAlLCA5MC45JSk7LS1ncmF5Njpoc2woMCwgMCUsIDg4LjclKTstLWdyYXk3OmhzbCgwLCAwJSwgODUuOCUpOy0tZ3JheTg6aHNsKDAsIDAlLCA3OCUpOy0tZ3JheTk6aHNsKDAsIDAlLCA1Ni4xJSk7LS1ncmF5MTA6aHNsKDAsIDAlLCA1Mi4zJSk7LS1ncmF5MTE6aHNsKDAsIDAlLCA0My41JSk7LS1ncmF5MTI6aHNsKDAsIDAlLCA5JSk7LS1ib3JkZXItcmFkaXVzOjhweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowO21hcmdpbjowO2xpc3Qtc3R5bGU6bm9uZTtvdXRsaW5lOjA7ei1pbmRleDo5OTk5OTk5OTk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjRzIGVhc2V9QG1lZGlhIChob3Zlcjpub25lKSBhbmQgKHBvaW50ZXI6Y29hcnNlKXtbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1saWZ0ZWQ9dHJ1ZV17dHJhbnNmb3JtOm5vbmV9fVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249cmlnaHRde3JpZ2h0OnZhcigtLW9mZnNldC1yaWdodCl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1sZWZ0XXtsZWZ0OnZhcigtLW9mZnNldC1sZWZ0KX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS14LXBvc2l0aW9uPWNlbnRlcl17bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteS1wb3NpdGlvbj10b3Bde3RvcDp2YXIoLS1vZmZzZXQtdG9wKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV17Ym90dG9tOnZhcigtLW9mZnNldC1ib3R0b20pfVtkYXRhLXNvbm5lci10b2FzdF17LS15OnRyYW5zbGF0ZVkoMTAwJSk7LS1saWZ0LWFtb3VudDpjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tZ2FwKSk7ei1pbmRleDp2YXIoLS16LWluZGV4KTtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dHJhbnNmb3JtOnZhcigtLXkpO3RvdWNoLWFjdGlvbjpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIC40cyxvcGFjaXR5IC40cyxoZWlnaHQgLjRzLGJveC1zaGFkb3cgLjJzO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVde3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC1iZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ub3JtYWwtYm9yZGVyKTtjb2xvcjp2YXIoLS1ub3JtYWwtdGV4dCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTtib3gtc2hhZG93OjAgNHB4IDEycHggcmdiYSgwLDAsMCwuMSk7d2lkdGg6dmFyKC0td2lkdGgpO2ZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH1bZGF0YS1zb25uZXItdG9hc3RdOmZvY3VzLXZpc2libGV7Ym94LXNoYWRvdzowIDRweCAxMnB4IHJnYmEoMCwwLDAsLjEpLDAgMCAwIDJweCByZ2JhKDAsMCwwLC4yKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteS1wb3NpdGlvbj10b3Bde3RvcDowOy0teTp0cmFuc2xhdGVZKC0xMDAlKTstLWxpZnQ6MTstLWxpZnQtYW1vdW50OmNhbGMoMSAqIHZhcigtLWdhcCkpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV17Ym90dG9tOjA7LS15OnRyYW5zbGF0ZVkoMTAwJSk7LS1saWZ0Oi0xOy0tbGlmdC1hbW91bnQ6Y2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLWdhcCkpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtZGVzY3JpcHRpb25de2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzNmM2YzZn1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtZGVzY3JpcHRpb25de2NvbG9yOmluaGVyaXR9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWRhcmtdIFtkYXRhLWRlc2NyaXB0aW9uXXtjb2xvcjojZThlOGU4fVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtdGl0bGVde2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6aW5oZXJpdH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWljb25de2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OnZhcigtLXRvYXN0LWljb24tbWFyZ2luLXN0YXJ0KTttYXJnaW4tcmlnaHQ6dmFyKC0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcHJvbWlzZT10cnVlXSBbZGF0YS1pY29uXT5zdmd7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7YW5pbWF0aW9uOnNvbm5lci1mYWRlLWluIC4zcyBlYXNlIGZvcndhcmRzfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtaWNvbl0+KntmbGV4LXNocmluazowfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtaWNvbl0gc3Zne21hcmdpbi1sZWZ0OnZhcigtLXRvYXN0LXN2Zy1tYXJnaW4tc3RhcnQpO21hcmdpbi1yaWdodDp2YXIoLS10b2FzdC1zdmctbWFyZ2luLWVuZCl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1jb250ZW50XXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1idXR0b25de2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHg7aGVpZ2h0OjI0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tbm9ybWFsLWJnKTtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC10ZXh0KTttYXJnaW4tbGVmdDp2YXIoLS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0KTttYXJnaW4tcmlnaHQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQpO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjUwMDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246b3BhY2l0eSAuNHMsYm94LXNoYWRvdyAuMnN9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1idXR0b25dOmZvY3VzLXZpc2libGV7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiYSgwLDAsMCwuNCl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1idXR0b25dOmZpcnN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LWJ1dHRvbi1tYXJnaW4tZW5kKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWNhbmNlbF17Y29sb3I6dmFyKC0tbm9ybWFsLXRleHQpO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDgpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXNvbm5lci10aGVtZT1kYXJrXSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWNhbmNlbF17YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWNsb3NlLWJ1dHRvbl17cG9zaXRpb246YWJzb2x1dGU7bGVmdDp2YXIoLS10b2FzdC1jbG9zZS1idXR0b24tc3RhcnQpO3JpZ2h0OnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi1lbmQpO3RvcDowO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MDtjb2xvcjp2YXIoLS1ncmF5MTIpO2JhY2tncm91bmQ6dmFyKC0tbm9ybWFsLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXk0KTt0cmFuc2Zvcm06dmFyKC0tdG9hc3QtY2xvc2UtYnV0dG9uLXRyYW5zZm9ybSk7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxO3RyYW5zaXRpb246b3BhY2l0eSAuMXMsYmFja2dyb3VuZCAuMnMsYm9yZGVyLWNvbG9yIC4yc31bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWNsb3NlLWJ1dHRvbl06Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgNHB4IDEycHggcmdiYSgwLDAsMCwuMSksMCAwIDAgMnB4IHJnYmEoMCwwLDAsLjIpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtZGlzYWJsZWQ9dHJ1ZV17Y3Vyc29yOm5vdC1hbGxvd2VkfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV06aG92ZXIgW2RhdGEtY2xvc2UtYnV0dG9uXTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWdyYXkyKTtib3JkZXItY29sb3I6dmFyKC0tZ3JheTUpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwaW5nPXRydWVdOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMDAlO3JpZ2h0Oi0xMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6LTF9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXktcG9zaXRpb249dG9wXVtkYXRhLXN3aXBpbmc9dHJ1ZV06OmJlZm9yZXtib3R0b206NTAlO3RyYW5zZm9ybTpzY2FsZVkoMykgdHJhbnNsYXRlWSg1MCUpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV1bZGF0YS1zd2lwaW5nPXRydWVdOjpiZWZvcmV7dG9wOjUwJTt0cmFuc2Zvcm06c2NhbGVZKDMpIHRyYW5zbGF0ZVkoLTUwJSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBpbmc9ZmFsc2VdW2RhdGEtcmVtb3ZlZD10cnVlXTo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt0cmFuc2Zvcm06c2NhbGVZKDIpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1leHBhbmRlZD10cnVlXTo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7aGVpZ2h0OmNhbGModmFyKC0tZ2FwKSArIDFweCk7Ym90dG9tOjEwMCU7d2lkdGg6MTAwJX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtbW91bnRlZD10cnVlXXstLXk6dHJhbnNsYXRlWSgwKTtvcGFjaXR5OjF9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLWV4cGFuZGVkPWZhbHNlXVtkYXRhLWZyb250PWZhbHNlXXstLXNjYWxlOnZhcigtLXRvYXN0cy1iZWZvcmUpICogMC4wNSArIDE7LS15OnRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0LWFtb3VudCkgKiB2YXIoLS10b2FzdHMtYmVmb3JlKSkpIHNjYWxlKGNhbGMoLTEgKiB2YXIoLS1zY2FsZSkpKTtoZWlnaHQ6dmFyKC0tZnJvbnQtdG9hc3QtaGVpZ2h0KX1bZGF0YS1zb25uZXItdG9hc3RdPip7dHJhbnNpdGlvbjpvcGFjaXR5IC40c31bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteC1wb3NpdGlvbj1yaWdodF17cmlnaHQ6MH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteC1wb3NpdGlvbj1sZWZ0XXtsZWZ0OjB9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLWV4cGFuZGVkPWZhbHNlXVtkYXRhLWZyb250PWZhbHNlXVtkYXRhLXN0eWxlZD10cnVlXT4qe29wYWNpdHk6MH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdmlzaWJsZT1mYWxzZV17b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLW1vdW50ZWQ9dHJ1ZV1bZGF0YS1leHBhbmRlZD10cnVlXXstLXk6dHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tb2Zmc2V0KSkpO2hlaWdodDp2YXIoLS1pbml0aWFsLWhlaWdodCl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9dHJ1ZV1bZGF0YS1mcm9udD10cnVlXVtkYXRhLXN3aXBlLW91dD1mYWxzZV17LS15OnRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0KSAqIC0xMDAlKSk7b3BhY2l0eTowfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1yZW1vdmVkPXRydWVdW2RhdGEtZnJvbnQ9ZmFsc2VdW2RhdGEtc3dpcGUtb3V0PWZhbHNlXVtkYXRhLWV4cGFuZGVkPXRydWVdey0teTp0cmFuc2xhdGVZKGNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1vZmZzZXQpICsgdmFyKC0tbGlmdCkgKiAtMTAwJSkpO29wYWNpdHk6MH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcmVtb3ZlZD10cnVlXVtkYXRhLWZyb250PWZhbHNlXVtkYXRhLXN3aXBlLW91dD1mYWxzZV1bZGF0YS1leHBhbmRlZD1mYWxzZV17LS15OnRyYW5zbGF0ZVkoNDAlKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzLG9wYWNpdHkgLjJzfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1yZW1vdmVkPXRydWVdW2RhdGEtZnJvbnQ9ZmFsc2VdOjpiZWZvcmV7aGVpZ2h0OmNhbGModmFyKC0taW5pdGlhbC1oZWlnaHQpICsgMjAlKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGluZz10cnVlXXt0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWSh2YXIoLS1zd2lwZS1hbW91bnQteSwwKSkgdHJhbnNsYXRlWCh2YXIoLS1zd2lwZS1hbW91bnQteCwwKSk7dHJhbnNpdGlvbjpub25lfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZWQ9dHJ1ZV17dXNlci1zZWxlY3Q6bm9uZX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGUtb3V0PXRydWVdW2RhdGEteS1wb3NpdGlvbj1ib3R0b21dLFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9dHJ1ZV1bZGF0YS15LXBvc2l0aW9uPXRvcF17YW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlLW91dD10cnVlXVtkYXRhLXN3aXBlLWRpcmVjdGlvbj1sZWZ0XXthbmltYXRpb24tbmFtZTpzd2lwZS1vdXQtbGVmdH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGUtb3V0PXRydWVdW2RhdGEtc3dpcGUtZGlyZWN0aW9uPXJpZ2h0XXthbmltYXRpb24tbmFtZTpzd2lwZS1vdXQtcmlnaHR9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlLW91dD10cnVlXVtkYXRhLXN3aXBlLWRpcmVjdGlvbj11cF17YW5pbWF0aW9uLW5hbWU6c3dpcGUtb3V0LXVwfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9dHJ1ZV1bZGF0YS1zd2lwZS1kaXJlY3Rpb249ZG93bl17YW5pbWF0aW9uLW5hbWU6c3dpcGUtb3V0LWRvd259QGtleWZyYW1lcyBzd2lwZS1vdXQtbGVmdHtmcm9te3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVYKHZhcigtLXN3aXBlLWFtb3VudC14KSk7b3BhY2l0eToxfXRve3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVYKGNhbGModmFyKC0tc3dpcGUtYW1vdW50LXgpIC0gMTAwJSkpO29wYWNpdHk6MH19QGtleWZyYW1lcyBzd2lwZS1vdXQtcmlnaHR7ZnJvbXt0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWCh2YXIoLS1zd2lwZS1hbW91bnQteCkpO29wYWNpdHk6MX10b3t0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWChjYWxjKHZhcigtLXN3aXBlLWFtb3VudC14KSArIDEwMCUpKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgc3dpcGUtb3V0LXVwe2Zyb217dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVkodmFyKC0tc3dpcGUtYW1vdW50LXkpKTtvcGFjaXR5OjF9dG97dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1zd2lwZS1hbW91bnQteSkgLSAxMDAlKSk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHN3aXBlLW91dC1kb3due2Zyb217dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVkodmFyKC0tc3dpcGUtYW1vdW50LXkpKTtvcGFjaXR5OjF9dG97dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1zd2lwZS1hbW91bnQteSkgKyAxMDAlKSk7b3BhY2l0eTowfX1AbWVkaWEgKG1heC13aWR0aDo2MDBweCl7W2RhdGEtc29ubmVyLXRvYXN0ZXJde3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OnZhcigtLW1vYmlsZS1vZmZzZXQtcmlnaHQpO2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldC1sZWZ0KTt3aWR0aDoxMDAlfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkaXI9cnRsXXtsZWZ0OmNhbGModmFyKC0tbW9iaWxlLW9mZnNldC1sZWZ0KSAqIC0xKX1bZGF0YS1zb25uZXItdG9hc3Rlcl0gW2RhdGEtc29ubmVyLXRvYXN0XXtsZWZ0OjA7cmlnaHQ6MDt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1tb2JpbGUtb2Zmc2V0LWxlZnQpICogMil9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1sZWZ0XXtsZWZ0OnZhcigtLW1vYmlsZS1vZmZzZXQtbGVmdCl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteS1wb3NpdGlvbj1ib3R0b21de2JvdHRvbTp2YXIoLS1tb2JpbGUtb2Zmc2V0LWJvdHRvbSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteS1wb3NpdGlvbj10b3Bde3RvcDp2YXIoLS1tb2JpbGUtb2Zmc2V0LXRvcCl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1jZW50ZXJde2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldC1sZWZ0KTtyaWdodDp2YXIoLS1tb2JpbGUtb2Zmc2V0LXJpZ2h0KTt0cmFuc2Zvcm06bm9uZX19W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWxpZ2h0XXstLW5vcm1hbC1iZzojZmZmOy0tbm9ybWFsLWJvcmRlcjp2YXIoLS1ncmF5NCk7LS1ub3JtYWwtdGV4dDp2YXIoLS1ncmF5MTIpOy0tc3VjY2Vzcy1iZzpoc2woMTQzLCA4NSUsIDk2JSk7LS1zdWNjZXNzLWJvcmRlcjpoc2woMTQ1LCA5MiUsIDg3JSk7LS1zdWNjZXNzLXRleHQ6aHNsKDE0MCwgMTAwJSwgMjclKTstLWluZm8tYmc6aHNsKDIwOCwgMTAwJSwgOTclKTstLWluZm8tYm9yZGVyOmhzbCgyMjEsIDkxJSwgOTMlKTstLWluZm8tdGV4dDpoc2woMjEwLCA5MiUsIDQ1JSk7LS13YXJuaW5nLWJnOmhzbCg0OSwgMTAwJSwgOTclKTstLXdhcm5pbmctYm9yZGVyOmhzbCg0OSwgOTElLCA4NCUpOy0td2FybmluZy10ZXh0OmhzbCgzMSwgOTIlLCA0NSUpOy0tZXJyb3ItYmc6aHNsKDM1OSwgMTAwJSwgOTclKTstLWVycm9yLWJvcmRlcjpoc2woMzU5LCAxMDAlLCA5NCUpOy0tZXJyb3ItdGV4dDpoc2woMzYwLCAxMDAlLCA0NSUpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXNvbm5lci10aGVtZT1saWdodF0gW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLWludmVydD10cnVlXXstLW5vcm1hbC1iZzojMDAwOy0tbm9ybWFsLWJvcmRlcjpoc2woMCwgMCUsIDIwJSk7LS1ub3JtYWwtdGV4dDp2YXIoLS1ncmF5MSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWRhcmtdIFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1pbnZlcnQ9dHJ1ZV17LS1ub3JtYWwtYmc6I2ZmZjstLW5vcm1hbC1ib3JkZXI6dmFyKC0tZ3JheTMpOy0tbm9ybWFsLXRleHQ6dmFyKC0tZ3JheTEyKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9ZGFya117LS1ub3JtYWwtYmc6IzAwMDstLW5vcm1hbC1iZy1ob3Zlcjpoc2woMCwgMCUsIDEyJSk7LS1ub3JtYWwtYm9yZGVyOmhzbCgwLCAwJSwgMjAlKTstLW5vcm1hbC1ib3JkZXItaG92ZXI6aHNsKDAsIDAlLCAyNSUpOy0tbm9ybWFsLXRleHQ6dmFyKC0tZ3JheTEpOy0tc3VjY2Vzcy1iZzpoc2woMTUwLCAxMDAlLCA2JSk7LS1zdWNjZXNzLWJvcmRlcjpoc2woMTQ3LCAxMDAlLCAxMiUpOy0tc3VjY2Vzcy10ZXh0OmhzbCgxNTAsIDg2JSwgNjUlKTstLWluZm8tYmc6aHNsKDIxNSwgMTAwJSwgNiUpOy0taW5mby1ib3JkZXI6aHNsKDIyMywgNDMlLCAxNyUpOy0taW5mby10ZXh0OmhzbCgyMTYsIDg3JSwgNjUlKTstLXdhcm5pbmctYmc6aHNsKDY0LCAxMDAlLCA2JSk7LS13YXJuaW5nLWJvcmRlcjpoc2woNjAsIDEwMCUsIDklKTstLXdhcm5pbmctdGV4dDpoc2woNDYsIDg3JSwgNjUlKTstLWVycm9yLWJnOmhzbCgzNTgsIDc2JSwgMTAlKTstLWVycm9yLWJvcmRlcjpoc2woMzU3LCA4OSUsIDE2JSk7LS1lcnJvci10ZXh0OmhzbCgzNTgsIDEwMCUsIDgxJSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWRhcmtdIFtkYXRhLXNvbm5lci10b2FzdF0gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLW5vcm1hbC1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLW5vcm1hbC1ib3JkZXIpO2NvbG9yOnZhcigtLW5vcm1hbC10ZXh0KX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9ZGFya10gW2RhdGEtc29ubmVyLXRvYXN0XSBbZGF0YS1jbG9zZS1idXR0b25dOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tbm9ybWFsLWJnLWhvdmVyKTtib3JkZXItY29sb3I6dmFyKC0tbm9ybWFsLWJvcmRlci1ob3Zlcil9W2RhdGEtcmljaC1jb2xvcnM9dHJ1ZV1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT1zdWNjZXNzXXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzLWJvcmRlcik7Y29sb3I6dmFyKC0tc3VjY2Vzcy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXN1Y2Nlc3NdIFtkYXRhLWNsb3NlLWJ1dHRvbl17YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLWJnKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcy1ib3JkZXIpO2NvbG9yOnZhcigtLXN1Y2Nlc3MtdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9dHJ1ZV1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT1pbmZvXXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvLWJvcmRlcik7Y29sb3I6dmFyKC0taW5mby10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWluZm9dIFtkYXRhLWNsb3NlLWJ1dHRvbl17YmFja2dyb3VuZDp2YXIoLS1pbmZvLWJnKTtib3JkZXItY29sb3I6dmFyKC0taW5mby1ib3JkZXIpO2NvbG9yOnZhcigtLWluZm8tdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9dHJ1ZV1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT13YXJuaW5nXXtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctYmcpO2JvcmRlci1jb2xvcjp2YXIoLS13YXJuaW5nLWJvcmRlcik7Y29sb3I6dmFyKC0td2FybmluZy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXdhcm5pbmddIFtkYXRhLWNsb3NlLWJ1dHRvbl17YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLWJnKTtib3JkZXItY29sb3I6dmFyKC0td2FybmluZy1ib3JkZXIpO2NvbG9yOnZhcigtLXdhcm5pbmctdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9dHJ1ZV1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT1lcnJvcl17YmFja2dyb3VuZDp2YXIoLS1lcnJvci1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWVycm9yLWJvcmRlcik7Y29sb3I6dmFyKC0tZXJyb3ItdGV4dCl9W2RhdGEtcmljaC1jb2xvcnM9dHJ1ZV1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtdHlwZT1lcnJvcl0gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLWVycm9yLWJnKTtib3JkZXItY29sb3I6dmFyKC0tZXJyb3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1lcnJvci10ZXh0KX0uc29ubmVyLWxvYWRpbmctd3JhcHBlcnstLXNpemU6MTZweDtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSk7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjEwfS5zb25uZXItbG9hZGluZy13cmFwcGVyW2RhdGEtdmlzaWJsZT1mYWxzZV17dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7YW5pbWF0aW9uOnNvbm5lci1mYWRlLW91dCAuMnMgZWFzZSBmb3J3YXJkc30uc29ubmVyLXNwaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7dG9wOjUwJTtsZWZ0OjUwJTtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSl9LnNvbm5lci1sb2FkaW5nLWJhcnthbmltYXRpb246c29ubmVyLXNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZDp2YXIoLS1ncmF5MTEpO2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDo4JTtsZWZ0Oi0xMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zLjklO3dpZHRoOjI0JX0uc29ubmVyLWxvYWRpbmctYmFyOmZpcnN0LWNoaWxke2FuaW1hdGlvbi1kZWxheTotMS4yczt0cmFuc2Zvcm06cm90YXRlKC4wMDAxZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi0xLjFzO3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgzKXthbmltYXRpb24tZGVsYXk6LTFzO3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg0KXthbmltYXRpb24tZGVsYXk6LS45czt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNSl7YW5pbWF0aW9uLWRlbGF5Oi0uOHM7dHJhbnNmb3JtOnJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg2KXthbmltYXRpb24tZGVsYXk6LS43czt0cmFuc2Zvcm06cm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDcpe2FuaW1hdGlvbi1kZWxheTotLjZzO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoOCl7YW5pbWF0aW9uLWRlbGF5Oi0uNXM7dHJhbnNmb3JtOnJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg5KXthbmltYXRpb24tZGVsYXk6LS40czt0cmFuc2Zvcm06cm90YXRlKDI0MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDEwKXthbmltYXRpb24tZGVsYXk6LS4zczt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDExKXthbmltYXRpb24tZGVsYXk6LS4yczt0cmFuc2Zvcm06cm90YXRlKDMwMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDEyKXthbmltYXRpb24tZGVsYXk6LS4xczt0cmFuc2Zvcm06cm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDE0NiUpfUBrZXlmcmFtZXMgc29ubmVyLWZhZGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCl9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIHNvbm5lci1mYWRlLW91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTEwMCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCl9fUBrZXlmcmFtZXMgc29ubmVyLXNwaW57MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eTouMTV9fUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbil7LnNvbm5lci1sb2FkaW5nLWJhcixbZGF0YS1zb25uZXItdG9hc3RdLFtkYXRhLXNvbm5lci10b2FzdF0+Knt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50O2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19LnNvbm5lci1sb2FkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyx0cmFuc2Zvcm0gLjJzfS5zb25uZXItbG9hZGVyW2RhdGEtdmlzaWJsZT1mYWxzZV17b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlKC01MCUsLTUwJSl9PC9zdHlsZT48L2hlYWQ+CgogIDxib2R5PgogICAgPHNjcmlwdCBpZD0ibWFudXMtcnVudGltZSI+d2luZG93Ll9fTUFOVVNfSE9TVF9ERVZfXyA9IGZhbHNlOwooZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIERyPXtleHBvcnRzOnt9fSxRbj17fTsvKioKICogQGxpY2Vuc2UgUmVhY3QKICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi92YXIgV2M7ZnVuY3Rpb24gY20oKXtpZihXYylyZXR1cm4gUW47V2M9MTt2YXIgcj1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTtmdW5jdGlvbiB1KHMsZixtKXt2YXIgeD1udWxsO2lmKG0hPT12b2lkIDAmJih4PSIiK20pLGYua2V5IT09dm9pZCAwJiYoeD0iIitmLmtleSksImtleSJpbiBmKXttPXt9O2Zvcih2YXIgTiBpbiBmKU4hPT0ia2V5IiYmKG1bTl09ZltOXSl9ZWxzZSBtPWY7cmV0dXJuIGY9bS5yZWYseyQkdHlwZW9mOnIsdHlwZTpzLGtleTp4LHJlZjpmIT09dm9pZCAwP2Y6bnVsbCxwcm9wczptfX1yZXR1cm4gUW4uRnJhZ21lbnQ9aSxRbi5qc3g9dSxRbi5qc3hzPXUsUW59dmFyICRjO2Z1bmN0aW9uIHVtKCl7cmV0dXJuICRjfHwoJGM9MSxEci5leHBvcnRzPWNtKCkpLERyLmV4cG9ydHN9dmFyIGg9dW0oKSxNcj17ZXhwb3J0czp7fX0sS249e30sQXI9e2V4cG9ydHM6e319LFJyPXt9Oy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi92YXIgRmM7ZnVuY3Rpb24gZG0oKXtyZXR1cm4gRmN8fChGYz0xLGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGkoQSxHKXt2YXIgQj1BLmxlbmd0aDtBLnB1c2goRyk7dDpmb3IoOzA8Qjspe3ZhciBidD1CLTE+Pj4xLHA9QVtidF07aWYoMDxmKHAsRykpQVtidF09RyxBW0JdPXAsQj1idDtlbHNlIGJyZWFrIHR9fWZ1bmN0aW9uIHUoQSl7cmV0dXJuIEEubGVuZ3RoPT09MD9udWxsOkFbMF19ZnVuY3Rpb24gcyhBKXtpZihBLmxlbmd0aD09PTApcmV0dXJuIG51bGw7dmFyIEc9QVswXSxCPUEucG9wKCk7aWYoQiE9PUcpe0FbMF09Qjt0OmZvcih2YXIgYnQ9MCxwPUEubGVuZ3RoLGo9cD4+PjE7YnQ8ajspe3ZhciBWPTIqKGJ0KzEpLTEscT1BW1ZdLFo9VisxLHN0PUFbWl07aWYoMD5mKHEsQikpWjxwJiYwPmYoc3QscSk/KEFbYnRdPXN0LEFbWl09QixidD1aKTooQVtidF09cSxBW1ZdPUIsYnQ9Vik7ZWxzZSBpZihaPHAmJjA+ZihzdCxCKSlBW2J0XT1zdCxBW1pdPUIsYnQ9WjtlbHNlIGJyZWFrIHR9fXJldHVybiBHfWZ1bmN0aW9uIGYoQSxHKXt2YXIgQj1BLnNvcnRJbmRleC1HLnNvcnRJbmRleDtyZXR1cm4gQiE9PTA/QjpBLmlkLUcuaWR9aWYoci51bnN0YWJsZV9ub3c9dm9pZCAwLHR5cGVvZiBwZXJmb3JtYW5jZT09Im9iamVjdCImJnR5cGVvZiBwZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiIpe3ZhciBtPXBlcmZvcm1hbmNlO3IudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIG0ubm93KCl9fWVsc2V7dmFyIHg9RGF0ZSxOPXgubm93KCk7ci51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4geC5ub3coKS1OfX12YXIgQz1bXSx2PVtdLEQ9MSxSPW51bGwsSj0zLCQ9ITEsRj0hMSxhdD0hMSxjdD0hMSxodD10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0Om51bGwsU3Q9dHlwZW9mIGNsZWFyVGltZW91dD09ImZ1bmN0aW9uIj9jbGVhclRpbWVvdXQ6bnVsbCxrPXR5cGVvZiBzZXRJbW1lZGlhdGU8InUiP3NldEltbWVkaWF0ZTpudWxsO2Z1bmN0aW9uIFkoQSl7Zm9yKHZhciBHPXUodik7RyE9PW51bGw7KXtpZihHLmNhbGxiYWNrPT09bnVsbClzKHYpO2Vsc2UgaWYoRy5zdGFydFRpbWU8PUEpcyh2KSxHLnNvcnRJbmRleD1HLmV4cGlyYXRpb25UaW1lLGkoQyxHKTtlbHNlIGJyZWFrO0c9dSh2KX19ZnVuY3Rpb24gSChBKXtpZihhdD0hMSxZKEEpLCFGKWlmKHUoQykhPT1udWxsKUY9ITAsaXR8fChpdD0hMCxCdCgpKTtlbHNle3ZhciBHPXUodik7RyE9PW51bGwmJk10KEgsRy5zdGFydFRpbWUtQSl9fXZhciBpdD0hMSxydD0tMSxYPTUseHQ9LTE7ZnVuY3Rpb24gQmUoKXtyZXR1cm4gY3Q/ITA6IShyLnVuc3RhYmxlX25vdygpLXh0PFgpfWZ1bmN0aW9uIEl0KCl7aWYoY3Q9ITEsaXQpe3ZhciBBPXIudW5zdGFibGVfbm93KCk7eHQ9QTt2YXIgRz0hMDt0cnl7dDp7Rj0hMSxhdCYmKGF0PSExLFN0KHJ0KSxydD0tMSksJD0hMDt2YXIgQj1KO3RyeXtlOntmb3IoWShBKSxSPXUoQyk7UiE9PW51bGwmJiEoUi5leHBpcmF0aW9uVGltZT5BJiZCZSgpKTspe3ZhciBidD1SLmNhbGxiYWNrO2lmKHR5cGVvZiBidD09ImZ1bmN0aW9uIil7Ui5jYWxsYmFjaz1udWxsLEo9Ui5wcmlvcml0eUxldmVsO3ZhciBwPWJ0KFIuZXhwaXJhdGlvblRpbWU8PUEpO2lmKEE9ci51bnN0YWJsZV9ub3coKSx0eXBlb2YgcD09ImZ1bmN0aW9uIil7Ui5jYWxsYmFjaz1wLFkoQSksRz0hMDticmVhayBlfVI9PT11KEMpJiZzKEMpLFkoQSl9ZWxzZSBzKEMpO1I9dShDKX1pZihSIT09bnVsbClHPSEwO2Vsc2V7dmFyIGo9dSh2KTtqIT09bnVsbCYmTXQoSCxqLnN0YXJ0VGltZS1BKSxHPSExfX1icmVhayB0fWZpbmFsbHl7Uj1udWxsLEo9QiwkPSExfUc9dm9pZCAwfX1maW5hbGx5e0c/QnQoKTppdD0hMX19fXZhciBCdDtpZih0eXBlb2Ygaz09ImZ1bmN0aW9uIilCdD1mdW5jdGlvbigpe2soSXQpfTtlbHNlIGlmKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbDwidSIpe3ZhciBtZT1uZXcgTWVzc2FnZUNoYW5uZWwsU2U9bWUucG9ydDI7bWUucG9ydDEub25tZXNzYWdlPUl0LEJ0PWZ1bmN0aW9uKCl7U2UucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgQnQ9ZnVuY3Rpb24oKXtodChJdCwwKX07ZnVuY3Rpb24gTXQoQSxHKXtydD1odChmdW5jdGlvbigpe0Eoci51bnN0YWJsZV9ub3coKSl9LEcpfXIudW5zdGFibGVfSWRsZVByaW9yaXR5PTUsci51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHIudW5zdGFibGVfTG93UHJpb3JpdHk9NCxyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsci51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCxyLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihBKXtBLmNhbGxiYWNrPW51bGx9LHIudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oQSl7MD5BfHwxMjU8QT9jb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKTpYPTA8QT9NYXRoLmZsb29yKDFlMy9BKTo1fSxyLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIEp9LHIudW5zdGFibGVfbmV4dD1mdW5jdGlvbihBKXtzd2l0Y2goSil7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIEc9MzticmVhaztkZWZhdWx0Okc9Sn12YXIgQj1KO0o9Rzt0cnl7cmV0dXJuIEEoKX1maW5hbGx5e0o9Qn19LHIudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7Y3Q9ITB9LHIudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKEEsRyl7c3dpdGNoKEEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDpBPTN9dmFyIEI9SjtKPUE7dHJ5e3JldHVybiBHKCl9ZmluYWxseXtKPUJ9fSxyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oQSxHLEIpe3ZhciBidD1yLnVuc3RhYmxlX25vdygpO3N3aXRjaCh0eXBlb2YgQj09Im9iamVjdCImJkIhPT1udWxsPyhCPUIuZGVsYXksQj10eXBlb2YgQj09Im51bWJlciImJjA8Qj9idCtCOmJ0KTpCPWJ0LEEpe2Nhc2UgMTp2YXIgcD0tMTticmVhaztjYXNlIDI6cD0yNTA7YnJlYWs7Y2FzZSA1OnA9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6cD0xZTQ7YnJlYWs7ZGVmYXVsdDpwPTVlM31yZXR1cm4gcD1CK3AsQT17aWQ6RCsrLGNhbGxiYWNrOkcscHJpb3JpdHlMZXZlbDpBLHN0YXJ0VGltZTpCLGV4cGlyYXRpb25UaW1lOnAsc29ydEluZGV4Oi0xfSxCPmJ0PyhBLnNvcnRJbmRleD1CLGkodixBKSx1KEMpPT09bnVsbCYmQT09PXUodikmJihhdD8oU3QocnQpLHJ0PS0xKTphdD0hMCxNdChILEItYnQpKSk6KEEuc29ydEluZGV4PXAsaShDLEEpLEZ8fCR8fChGPSEwLGl0fHwoaXQ9ITAsQnQoKSkpKSxBfSxyLnVuc3RhYmxlX3Nob3VsZFlpZWxkPUJlLHIudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKEEpe3ZhciBHPUo7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEI9SjtKPUc7dHJ5e3JldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e0o9Qn19fX0oUnIpKSxScn12YXIgSWM7ZnVuY3Rpb24gZm0oKXtyZXR1cm4gSWN8fChJYz0xLEFyLmV4cG9ydHM9ZG0oKSksQXIuZXhwb3J0c312YXIgenI9e2V4cG9ydHM6e319LHV0PXt9Oy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiByZWFjdC5wcm9kdWN0aW9uLmpzCiAqCiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciB0dTtmdW5jdGlvbiBobSgpe2lmKHR1KXJldHVybiB1dDt0dT0xO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksaT1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSx1PVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iikscz1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGY9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxtPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIikseD1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksTj1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEM9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSx2PVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxEPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxSPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBKKHApe3JldHVybiBwPT09bnVsbHx8dHlwZW9mIHAhPSJvYmplY3QiP251bGw6KHA9UiYmcFtSXXx8cFsiQEBpdGVyYXRvciJdLHR5cGVvZiBwPT0iZnVuY3Rpb24iP3A6bnVsbCl9dmFyICQ9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEY9T2JqZWN0LmFzc2lnbixhdD17fTtmdW5jdGlvbiBjdChwLGosVil7dGhpcy5wcm9wcz1wLHRoaXMuY29udGV4dD1qLHRoaXMucmVmcz1hdCx0aGlzLnVwZGF0ZXI9Vnx8JH1jdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxjdC5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24ocCxqKXtpZih0eXBlb2YgcCE9Im9iamVjdCImJnR5cGVvZiBwIT0iZnVuY3Rpb24iJiZwIT1udWxsKXRocm93IEVycm9yKCJ0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMscCxqLCJzZXRTdGF0ZSIpfSxjdC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24ocCl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLHAsImZvcmNlVXBkYXRlIil9O2Z1bmN0aW9uIGh0KCl7fWh0LnByb3RvdHlwZT1jdC5wcm90b3R5cGU7ZnVuY3Rpb24gU3QocCxqLFYpe3RoaXMucHJvcHM9cCx0aGlzLmNvbnRleHQ9aix0aGlzLnJlZnM9YXQsdGhpcy51cGRhdGVyPVZ8fCR9dmFyIGs9U3QucHJvdG90eXBlPW5ldyBodDtrLmNvbnN0cnVjdG9yPVN0LEYoayxjdC5wcm90b3R5cGUpLGsuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIFk9QXJyYXkuaXNBcnJheSxIPXtIOm51bGwsQTpudWxsLFQ6bnVsbCxTOm51bGwsVjpudWxsfSxpdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHJ0KHAsaixWLHEsWixzdCl7cmV0dXJuIFY9c3QucmVmLHskJHR5cGVvZjpyLHR5cGU6cCxrZXk6aixyZWY6ViE9PXZvaWQgMD9WOm51bGwscHJvcHM6c3R9fWZ1bmN0aW9uIFgocCxqKXtyZXR1cm4gcnQocC50eXBlLGosdm9pZCAwLHZvaWQgMCx2b2lkIDAscC5wcm9wcyl9ZnVuY3Rpb24geHQocCl7cmV0dXJuIHR5cGVvZiBwPT0ib2JqZWN0IiYmcCE9PW51bGwmJnAuJCR0eXBlb2Y9PT1yfWZ1bmN0aW9uIEJlKHApe3ZhciBqPXsiPSI6Ij0wIiwiOiI6Ij0yIn07cmV0dXJuIiQiK3AucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKFYpe3JldHVybiBqW1ZdfSl9dmFyIEl0PS9cLysvZztmdW5jdGlvbiBCdChwLGope3JldHVybiB0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsJiZwLmtleSE9bnVsbD9CZSgiIitwLmtleSk6ai50b1N0cmluZygzNil9ZnVuY3Rpb24gbWUoKXt9ZnVuY3Rpb24gU2UocCl7c3dpdGNoKHAuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHAudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgcC5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIHAuc3RhdHVzPT0ic3RyaW5nIj9wLnRoZW4obWUsbWUpOihwLnN0YXR1cz0icGVuZGluZyIscC50aGVuKGZ1bmN0aW9uKGope3Auc3RhdHVzPT09InBlbmRpbmciJiYocC5zdGF0dXM9ImZ1bGZpbGxlZCIscC52YWx1ZT1qKX0sZnVuY3Rpb24oail7cC5zdGF0dXM9PT0icGVuZGluZyImJihwLnN0YXR1cz0icmVqZWN0ZWQiLHAucmVhc29uPWopfSkpLHAuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHAudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgcC5yZWFzb259fXRocm93IHB9ZnVuY3Rpb24gTXQocCxqLFYscSxaKXt2YXIgc3Q9dHlwZW9mIHA7KHN0PT09InVuZGVmaW5lZCJ8fHN0PT09ImJvb2xlYW4iKSYmKHA9bnVsbCk7dmFyIHR0PSExO2lmKHA9PT1udWxsKXR0PSEwO2Vsc2Ugc3dpdGNoKHN0KXtjYXNlImJpZ2ludCI6Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjp0dD0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKHAuJCR0eXBlb2Ype2Nhc2UgcjpjYXNlIGk6dHQ9ITA7YnJlYWs7Y2FzZSBEOnJldHVybiB0dD1wLl9pbml0LE10KHR0KHAuX3BheWxvYWQpLGosVixxLFopfX1pZih0dClyZXR1cm4gWj1aKHApLHR0PXE9PT0iIj8iLiIrQnQocCwwKTpxLFkoWik/KFY9IiIsdHQhPW51bGwmJihWPXR0LnJlcGxhY2UoSXQsIiQmLyIpKyIvIiksTXQoWixqLFYsIiIsZnVuY3Rpb24oUHQpe3JldHVybiBQdH0pKTpaIT1udWxsJiYoeHQoWikmJihaPVgoWixWKyhaLmtleT09bnVsbHx8cCYmcC5rZXk9PT1aLmtleT8iIjooIiIrWi5rZXkpLnJlcGxhY2UoSXQsIiQmLyIpKyIvIikrdHQpKSxqLnB1c2goWikpLDE7dHQ9MDt2YXIgZ3Q9cT09PSIiPyIuIjpxKyI6IjtpZihZKHApKWZvcih2YXIgVHQ9MDtUdDxwLmxlbmd0aDtUdCsrKXE9cFtUdF0sc3Q9Z3QrQnQocSxUdCksdHQrPU10KHEsaixWLHN0LFopO2Vsc2UgaWYoVHQ9SihwKSx0eXBlb2YgVHQ9PSJmdW5jdGlvbiIpZm9yKHA9VHQuY2FsbChwKSxUdD0wOyEocT1wLm5leHQoKSkuZG9uZTspcT1xLnZhbHVlLHN0PWd0K0J0KHEsVHQrKyksdHQrPU10KHEsaixWLHN0LFopO2Vsc2UgaWYoc3Q9PT0ib2JqZWN0Iil7aWYodHlwZW9mIHAudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gTXQoU2UocCksaixWLHEsWik7dGhyb3cgaj1TdHJpbmcocCksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoaj09PSJbb2JqZWN0IE9iamVjdF0iPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKHApLmpvaW4oIiwgIikrIn0iOmopKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIil9cmV0dXJuIHR0fWZ1bmN0aW9uIEEocCxqLFYpe2lmKHA9PW51bGwpcmV0dXJuIHA7dmFyIHE9W10sWj0wO3JldHVybiBNdChwLHEsIiIsIiIsZnVuY3Rpb24oc3Qpe3JldHVybiBqLmNhbGwoVixzdCxaKyspfSkscX1mdW5jdGlvbiBHKHApe2lmKHAuX3N0YXR1cz09PS0xKXt2YXIgaj1wLl9yZXN1bHQ7aj1qKCksai50aGVuKGZ1bmN0aW9uKFYpeyhwLl9zdGF0dXM9PT0wfHxwLl9zdGF0dXM9PT0tMSkmJihwLl9zdGF0dXM9MSxwLl9yZXN1bHQ9Vil9LGZ1bmN0aW9uKFYpeyhwLl9zdGF0dXM9PT0wfHxwLl9zdGF0dXM9PT0tMSkmJihwLl9zdGF0dXM9MixwLl9yZXN1bHQ9Vil9KSxwLl9zdGF0dXM9PT0tMSYmKHAuX3N0YXR1cz0wLHAuX3Jlc3VsdD1qKX1pZihwLl9zdGF0dXM9PT0xKXJldHVybiBwLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBwLl9yZXN1bHR9dmFyIEI9dHlwZW9mIHJlcG9ydEVycm9yPT0iZnVuY3Rpb24iP3JlcG9ydEVycm9yOmZ1bmN0aW9uKHApe2lmKHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ0eXBlb2Ygd2luZG93LkVycm9yRXZlbnQ9PSJmdW5jdGlvbiIpe3ZhciBqPW5ldyB3aW5kb3cuRXJyb3JFdmVudCgiZXJyb3IiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsbWVzc2FnZTp0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsJiZ0eXBlb2YgcC5tZXNzYWdlPT0ic3RyaW5nIj9TdHJpbmcocC5tZXNzYWdlKTpTdHJpbmcocCksZXJyb3I6cH0pO2lmKCF3aW5kb3cuZGlzcGF0Y2hFdmVudChqKSlyZXR1cm59ZWxzZSBpZih0eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLmVtaXQ9PSJmdW5jdGlvbiIpe3Byb2Nlc3MuZW1pdCgidW5jYXVnaHRFeGNlcHRpb24iLHApO3JldHVybn1jb25zb2xlLmVycm9yKHApfTtmdW5jdGlvbiBidCgpe31yZXR1cm4gdXQuQ2hpbGRyZW49e21hcDpBLGZvckVhY2g6ZnVuY3Rpb24ocCxqLFYpe0EocCxmdW5jdGlvbigpe2ouYXBwbHkodGhpcyxhcmd1bWVudHMpfSxWKX0sY291bnQ6ZnVuY3Rpb24ocCl7dmFyIGo9MDtyZXR1cm4gQShwLGZ1bmN0aW9uKCl7aisrfSksan0sdG9BcnJheTpmdW5jdGlvbihwKXtyZXR1cm4gQShwLGZ1bmN0aW9uKGope3JldHVybiBqfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKHApe2lmKCF4dChwKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIHB9fSx1dC5Db21wb25lbnQ9Y3QsdXQuRnJhZ21lbnQ9dSx1dC5Qcm9maWxlcj1mLHV0LlB1cmVDb21wb25lbnQ9U3QsdXQuU3RyaWN0TW9kZT1zLHV0LlN1c3BlbnNlPUMsdXQuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPUgsdXQuX19DT01QSUxFUl9SVU5USU1FPXtfX3Byb3RvX186bnVsbCxjOmZ1bmN0aW9uKHApe3JldHVybiBILkgudXNlTWVtb0NhY2hlKHApfX0sdXQuY2FjaGU9ZnVuY3Rpb24ocCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHAuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sdXQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKHAsaixWKXtpZihwPT1udWxsKXRocm93IEVycm9yKCJUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrcCsiLiIpO3ZhciBxPUYoe30scC5wcm9wcyksWj1wLmtleSxzdD12b2lkIDA7aWYoaiE9bnVsbClmb3IodHQgaW4gai5yZWYhPT12b2lkIDAmJihzdD12b2lkIDApLGoua2V5IT09dm9pZCAwJiYoWj0iIitqLmtleSksaikhaXQuY2FsbChqLHR0KXx8dHQ9PT0ia2V5Inx8dHQ9PT0iX19zZWxmInx8dHQ9PT0iX19zb3VyY2UifHx0dD09PSJyZWYiJiZqLnJlZj09PXZvaWQgMHx8KHFbdHRdPWpbdHRdKTt2YXIgdHQ9YXJndW1lbnRzLmxlbmd0aC0yO2lmKHR0PT09MSlxLmNoaWxkcmVuPVY7ZWxzZSBpZigxPHR0KXtmb3IodmFyIGd0PUFycmF5KHR0KSxUdD0wO1R0PHR0O1R0KyspZ3RbVHRdPWFyZ3VtZW50c1tUdCsyXTtxLmNoaWxkcmVuPWd0fXJldHVybiBydChwLnR5cGUsWix2b2lkIDAsdm9pZCAwLHN0LHEpfSx1dC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKHApe3JldHVybiBwPXskJHR5cGVvZjp4LF9jdXJyZW50VmFsdWU6cCxfY3VycmVudFZhbHVlMjpwLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0scC5Qcm92aWRlcj1wLHAuQ29uc3VtZXI9eyQkdHlwZW9mOm0sX2NvbnRleHQ6cH0scH0sdXQuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihwLGosVil7dmFyIHEsWj17fSxzdD1udWxsO2lmKGohPW51bGwpZm9yKHEgaW4gai5rZXkhPT12b2lkIDAmJihzdD0iIitqLmtleSksailpdC5jYWxsKGoscSkmJnEhPT0ia2V5IiYmcSE9PSJfX3NlbGYiJiZxIT09Il9fc291cmNlIiYmKFpbcV09altxXSk7dmFyIHR0PWFyZ3VtZW50cy5sZW5ndGgtMjtpZih0dD09PTEpWi5jaGlsZHJlbj1WO2Vsc2UgaWYoMTx0dCl7Zm9yKHZhciBndD1BcnJheSh0dCksVHQ9MDtUdDx0dDtUdCsrKWd0W1R0XT1hcmd1bWVudHNbVHQrMl07Wi5jaGlsZHJlbj1ndH1pZihwJiZwLmRlZmF1bHRQcm9wcylmb3IocSBpbiB0dD1wLmRlZmF1bHRQcm9wcyx0dClaW3FdPT09dm9pZCAwJiYoWltxXT10dFtxXSk7cmV0dXJuIHJ0KHAsc3Qsdm9pZCAwLHZvaWQgMCxudWxsLFopfSx1dC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdXQuZm9yd2FyZFJlZj1mdW5jdGlvbihwKXtyZXR1cm57JCR0eXBlb2Y6TixyZW5kZXI6cH19LHV0LmlzVmFsaWRFbGVtZW50PXh0LHV0Lmxhenk9ZnVuY3Rpb24ocCl7cmV0dXJueyQkdHlwZW9mOkQsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpwfSxfaW5pdDpHfX0sdXQubWVtbz1mdW5jdGlvbihwLGope3JldHVybnskJHR5cGVvZjp2LHR5cGU6cCxjb21wYXJlOmo9PT12b2lkIDA/bnVsbDpqfX0sdXQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKHApe3ZhciBqPUguVCxWPXt9O0guVD1WO3RyeXt2YXIgcT1wKCksWj1ILlM7WiE9PW51bGwmJlooVixxKSx0eXBlb2YgcT09Im9iamVjdCImJnEhPT1udWxsJiZ0eXBlb2YgcS50aGVuPT0iZnVuY3Rpb24iJiZxLnRoZW4oYnQsQil9Y2F0Y2goc3Qpe0Ioc3QpfWZpbmFsbHl7SC5UPWp9fSx1dC51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gSC5ILnVzZUNhY2hlUmVmcmVzaCgpfSx1dC51c2U9ZnVuY3Rpb24ocCl7cmV0dXJuIEguSC51c2UocCl9LHV0LnVzZUFjdGlvblN0YXRlPWZ1bmN0aW9uKHAsaixWKXtyZXR1cm4gSC5ILnVzZUFjdGlvblN0YXRlKHAsaixWKX0sdXQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24ocCxqKXtyZXR1cm4gSC5ILnVzZUNhbGxiYWNrKHAsail9LHV0LnVzZUNvbnRleHQ9ZnVuY3Rpb24ocCl7cmV0dXJuIEguSC51c2VDb250ZXh0KHApfSx1dC51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSx1dC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKHAsail7cmV0dXJuIEguSC51c2VEZWZlcnJlZFZhbHVlKHAsail9LHV0LnVzZUVmZmVjdD1mdW5jdGlvbihwLGosVil7dmFyIHE9SC5IO2lmKHR5cGVvZiBWPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJ1c2VFZmZlY3QgQ1JVRCBvdmVybG9hZCBpcyBub3QgZW5hYmxlZCBpbiB0aGlzIGJ1aWxkIG9mIFJlYWN0LiIpO3JldHVybiBxLnVzZUVmZmVjdChwLGopfSx1dC51c2VJZD1mdW5jdGlvbigpe3JldHVybiBILkgudXNlSWQoKX0sdXQudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihwLGosVil7cmV0dXJuIEguSC51c2VJbXBlcmF0aXZlSGFuZGxlKHAsaixWKX0sdXQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKHAsail7cmV0dXJuIEguSC51c2VJbnNlcnRpb25FZmZlY3QocCxqKX0sdXQudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKHAsail7cmV0dXJuIEguSC51c2VMYXlvdXRFZmZlY3QocCxqKX0sdXQudXNlTWVtbz1mdW5jdGlvbihwLGope3JldHVybiBILkgudXNlTWVtbyhwLGopfSx1dC51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKHAsail7cmV0dXJuIEguSC51c2VPcHRpbWlzdGljKHAsail9LHV0LnVzZVJlZHVjZXI9ZnVuY3Rpb24ocCxqLFYpe3JldHVybiBILkgudXNlUmVkdWNlcihwLGosVil9LHV0LnVzZVJlZj1mdW5jdGlvbihwKXtyZXR1cm4gSC5ILnVzZVJlZihwKX0sdXQudXNlU3RhdGU9ZnVuY3Rpb24ocCl7cmV0dXJuIEguSC51c2VTdGF0ZShwKX0sdXQudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24ocCxqLFYpe3JldHVybiBILkgudXNlU3luY0V4dGVybmFsU3RvcmUocCxqLFYpfSx1dC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEguSC51c2VUcmFuc2l0aW9uKCl9LHV0LnZlcnNpb249IjE5LjEuMSIsdXR9dmFyIGV1O2Z1bmN0aW9uIE5yKCl7cmV0dXJuIGV1fHwoZXU9MSx6ci5leHBvcnRzPWhtKCkpLHpyLmV4cG9ydHN9dmFyIF9yPXtleHBvcnRzOnt9fSxoZT17fTsvKioKICogQGxpY2Vuc2UgUmVhY3QKICogcmVhY3QtZG9tLnByb2R1Y3Rpb24uanMKICoKICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIGx1O2Z1bmN0aW9uIG1tKCl7aWYobHUpcmV0dXJuIGhlO2x1PTE7dmFyIHI9TnIoKTtmdW5jdGlvbiBpKEMpe3ZhciB2PSJodHRwczovL3JlYWN0LmRldi9lcnJvcnMvIitDO2lmKDE8YXJndW1lbnRzLmxlbmd0aCl7dis9Ij9hcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzWzFdKTtmb3IodmFyIEQ9MjtEPGFyZ3VtZW50cy5sZW5ndGg7RCsrKXYrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tEXSl9cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK0MrIjsgdmlzaXQgIit2KyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9ZnVuY3Rpb24gdSgpe312YXIgcz17ZDp7Zjp1LHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihpKDUyMikpfSxEOnUsQzp1LEw6dSxtOnUsWDp1LFM6dSxNOnV9LHA6MCxmaW5kRE9NTm9kZTpudWxsfSxmPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpO2Z1bmN0aW9uIG0oQyx2LEQpe3ZhciBSPTM8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjpmLGtleTpSPT1udWxsP251bGw6IiIrUixjaGlsZHJlbjpDLGNvbnRhaW5lckluZm86dixpbXBsZW1lbnRhdGlvbjpEfX12YXIgeD1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBOKEMsdil7aWYoQz09PSJmb250IilyZXR1cm4iIjtpZih0eXBlb2Ygdj09InN0cmluZyIpcmV0dXJuIHY9PT0idXNlLWNyZWRlbnRpYWxzIj92OiIifXJldHVybiBoZS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9cyxoZS5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oQyx2KXt2YXIgRD0yPGFyZ3VtZW50cy5sZW5ndGgmJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06bnVsbDtpZighdnx8di5ub2RlVHlwZSE9PTEmJnYubm9kZVR5cGUhPT05JiZ2Lm5vZGVUeXBlIT09MTEpdGhyb3cgRXJyb3IoaSgyOTkpKTtyZXR1cm4gbShDLHYsbnVsbCxEKX0saGUuZmx1c2hTeW5jPWZ1bmN0aW9uKEMpe3ZhciB2PXguVCxEPXMucDt0cnl7aWYoeC5UPW51bGwscy5wPTIsQylyZXR1cm4gQygpfWZpbmFsbHl7eC5UPXYscy5wPUQscy5kLmYoKX19LGhlLnByZWNvbm5lY3Q9ZnVuY3Rpb24oQyx2KXt0eXBlb2YgQz09InN0cmluZyImJih2Pyh2PXYuY3Jvc3NPcmlnaW4sdj10eXBlb2Ygdj09InN0cmluZyI/dj09PSJ1c2UtY3JlZGVudGlhbHMiP3Y6IiI6dm9pZCAwKTp2PW51bGwscy5kLkMoQyx2KSl9LGhlLnByZWZldGNoRE5TPWZ1bmN0aW9uKEMpe3R5cGVvZiBDPT0ic3RyaW5nIiYmcy5kLkQoQyl9LGhlLnByZWluaXQ9ZnVuY3Rpb24oQyx2KXtpZih0eXBlb2YgQz09InN0cmluZyImJnYmJnR5cGVvZiB2LmFzPT0ic3RyaW5nIil7dmFyIEQ9di5hcyxSPU4oRCx2LmNyb3NzT3JpZ2luKSxKPXR5cGVvZiB2LmludGVncml0eT09InN0cmluZyI/di5pbnRlZ3JpdHk6dm9pZCAwLCQ9dHlwZW9mIHYuZmV0Y2hQcmlvcml0eT09InN0cmluZyI/di5mZXRjaFByaW9yaXR5OnZvaWQgMDtEPT09InN0eWxlIj9zLmQuUyhDLHR5cGVvZiB2LnByZWNlZGVuY2U9PSJzdHJpbmciP3YucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOlIsaW50ZWdyaXR5OkosZmV0Y2hQcmlvcml0eTokfSk6RD09PSJzY3JpcHQiJiZzLmQuWChDLHtjcm9zc09yaWdpbjpSLGludGVncml0eTpKLGZldGNoUHJpb3JpdHk6JCxub25jZTp0eXBlb2Ygdi5ub25jZT09InN0cmluZyI/di5ub25jZTp2b2lkIDB9KX19LGhlLnByZWluaXRNb2R1bGU9ZnVuY3Rpb24oQyx2KXtpZih0eXBlb2YgQz09InN0cmluZyIpaWYodHlwZW9mIHY9PSJvYmplY3QiJiZ2IT09bnVsbCl7aWYodi5hcz09bnVsbHx8di5hcz09PSJzY3JpcHQiKXt2YXIgRD1OKHYuYXMsdi5jcm9zc09yaWdpbik7cy5kLk0oQyx7Y3Jvc3NPcmlnaW46RCxpbnRlZ3JpdHk6dHlwZW9mIHYuaW50ZWdyaXR5PT0ic3RyaW5nIj92LmludGVncml0eTp2b2lkIDAsbm9uY2U6dHlwZW9mIHYubm9uY2U9PSJzdHJpbmciP3Yubm9uY2U6dm9pZCAwfSl9fWVsc2Ugdj09bnVsbCYmcy5kLk0oQyl9LGhlLnByZWxvYWQ9ZnVuY3Rpb24oQyx2KXtpZih0eXBlb2YgQz09InN0cmluZyImJnR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwmJnR5cGVvZiB2LmFzPT0ic3RyaW5nIil7dmFyIEQ9di5hcyxSPU4oRCx2LmNyb3NzT3JpZ2luKTtzLmQuTChDLEQse2Nyb3NzT3JpZ2luOlIsaW50ZWdyaXR5OnR5cGVvZiB2LmludGVncml0eT09InN0cmluZyI/di5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOnR5cGVvZiB2Lm5vbmNlPT0ic3RyaW5nIj92Lm5vbmNlOnZvaWQgMCx0eXBlOnR5cGVvZiB2LnR5cGU9PSJzdHJpbmciP3YudHlwZTp2b2lkIDAsZmV0Y2hQcmlvcml0eTp0eXBlb2Ygdi5mZXRjaFByaW9yaXR5PT0ic3RyaW5nIj92LmZldGNoUHJpb3JpdHk6dm9pZCAwLHJlZmVycmVyUG9saWN5OnR5cGVvZiB2LnJlZmVycmVyUG9saWN5PT0ic3RyaW5nIj92LnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDp0eXBlb2Ygdi5pbWFnZVNyY1NldD09InN0cmluZyI/di5pbWFnZVNyY1NldDp2b2lkIDAsaW1hZ2VTaXplczp0eXBlb2Ygdi5pbWFnZVNpemVzPT0ic3RyaW5nIj92LmltYWdlU2l6ZXM6dm9pZCAwLG1lZGlhOnR5cGVvZiB2Lm1lZGlhPT0ic3RyaW5nIj92Lm1lZGlhOnZvaWQgMH0pfX0saGUucHJlbG9hZE1vZHVsZT1mdW5jdGlvbihDLHYpe2lmKHR5cGVvZiBDPT0ic3RyaW5nIilpZih2KXt2YXIgRD1OKHYuYXMsdi5jcm9zc09yaWdpbik7cy5kLm0oQyx7YXM6dHlwZW9mIHYuYXM9PSJzdHJpbmciJiZ2LmFzIT09InNjcmlwdCI/di5hczp2b2lkIDAsY3Jvc3NPcmlnaW46RCxpbnRlZ3JpdHk6dHlwZW9mIHYuaW50ZWdyaXR5PT0ic3RyaW5nIj92LmludGVncml0eTp2b2lkIDB9KX1lbHNlIHMuZC5tKEMpfSxoZS5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKEMpe3MuZC5yKEMpfSxoZS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1mdW5jdGlvbihDLHYpe3JldHVybiBDKHYpfSxoZS51c2VGb3JtU3RhdGU9ZnVuY3Rpb24oQyx2LEQpe3JldHVybiB4LkgudXNlRm9ybVN0YXRlKEMsdixEKX0saGUudXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiB4LkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0saGUudmVyc2lvbj0iMTkuMS4xIixoZX12YXIgYXU7ZnVuY3Rpb24gZ20oKXtpZihhdSlyZXR1cm4gX3IuZXhwb3J0czthdT0xO2Z1bmN0aW9uIHIoKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18+InUifHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT0iZnVuY3Rpb24iKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKHIpfWNhdGNoKGkpe2NvbnNvbGUuZXJyb3IoaSl9fXJldHVybiByKCksX3IuZXhwb3J0cz1tbSgpLF9yLmV4cG9ydHN9LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWRvbS1jbGllbnQucHJvZHVjdGlvbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi92YXIgbnU7ZnVuY3Rpb24gcG0oKXtpZihudSlyZXR1cm4gS247bnU9MTt2YXIgcj1mbSgpLGk9TnIoKSx1PWdtKCk7ZnVuY3Rpb24gcyh0KXt2YXIgZT0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrdDtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe2UrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBsPTI7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyllKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbF0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIit0KyI7IHZpc2l0ICIrZSsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIGYodCl7cmV0dXJuISghdHx8dC5ub2RlVHlwZSE9PTEmJnQubm9kZVR5cGUhPT05JiZ0Lm5vZGVUeXBlIT09MTEpfWZ1bmN0aW9uIG0odCl7dmFyIGU9dCxsPXQ7aWYodC5hbHRlcm5hdGUpZm9yKDtlLnJldHVybjspZT1lLnJldHVybjtlbHNle3Q9ZTtkbyBlPXQsKGUuZmxhZ3MmNDA5OCkhPT0wJiYobD1lLnJldHVybiksdD1lLnJldHVybjt3aGlsZSh0KX1yZXR1cm4gZS50YWc9PT0zP2w6bnVsbH1mdW5jdGlvbiB4KHQpe2lmKHQudGFnPT09MTMpe3ZhciBlPXQubWVtb2l6ZWRTdGF0ZTtpZihlPT09bnVsbCYmKHQ9dC5hbHRlcm5hdGUsdCE9PW51bGwmJihlPXQubWVtb2l6ZWRTdGF0ZSkpLGUhPT1udWxsKXJldHVybiBlLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gTih0KXtpZihtKHQpIT09dCl0aHJvdyBFcnJvcihzKDE4OCkpfWZ1bmN0aW9uIEModCl7dmFyIGU9dC5hbHRlcm5hdGU7aWYoIWUpe2lmKGU9bSh0KSxlPT09bnVsbCl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiBlIT09dD9udWxsOnR9Zm9yKHZhciBsPXQsYT1lOzspe3ZhciBuPWwucmV0dXJuO2lmKG49PT1udWxsKWJyZWFrO3ZhciBvPW4uYWx0ZXJuYXRlO2lmKG89PT1udWxsKXtpZihhPW4ucmV0dXJuLGEhPT1udWxsKXtsPWE7Y29udGludWV9YnJlYWt9aWYobi5jaGlsZD09PW8uY2hpbGQpe2ZvcihvPW4uY2hpbGQ7bzspe2lmKG89PT1sKXJldHVybiBOKG4pLHQ7aWYobz09PWEpcmV0dXJuIE4obiksZTtvPW8uc2libGluZ310aHJvdyBFcnJvcihzKDE4OCkpfWlmKGwucmV0dXJuIT09YS5yZXR1cm4pbD1uLGE9bztlbHNle2Zvcih2YXIgYz0hMSxkPW4uY2hpbGQ7ZDspe2lmKGQ9PT1sKXtjPSEwLGw9bixhPW87YnJlYWt9aWYoZD09PWEpe2M9ITAsYT1uLGw9bzticmVha31kPWQuc2libGluZ31pZighYyl7Zm9yKGQ9by5jaGlsZDtkOyl7aWYoZD09PWwpe2M9ITAsbD1vLGE9bjticmVha31pZihkPT09YSl7Yz0hMCxhPW8sbD1uO2JyZWFrfWQ9ZC5zaWJsaW5nfWlmKCFjKXRocm93IEVycm9yKHMoMTg5KSl9fWlmKGwuYWx0ZXJuYXRlIT09YSl0aHJvdyBFcnJvcihzKDE5MCkpfWlmKGwudGFnIT09Myl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiBsLnN0YXRlTm9kZS5jdXJyZW50PT09bD90OmV9ZnVuY3Rpb24gdih0KXt2YXIgZT10LnRhZztpZihlPT09NXx8ZT09PTI2fHxlPT09Mjd8fGU9PT02KXJldHVybiB0O2Zvcih0PXQuY2hpbGQ7dCE9PW51bGw7KXtpZihlPXYodCksZSE9PW51bGwpcmV0dXJuIGU7dD10LnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIEQ9T2JqZWN0LmFzc2lnbixSPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxKPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksJD1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxGPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksYXQ9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxjdD1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLGh0PVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksU3Q9U3ltYm9sLmZvcigicmVhY3QuY29uc3VtZXIiKSxrPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxZPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksSD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLGl0PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxydD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksWD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikseHQ9U3ltYm9sLmZvcigicmVhY3QuYWN0aXZpdHkiKSxCZT1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsIiksSXQ9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEJ0KHQpe3JldHVybiB0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiP251bGw6KHQ9SXQmJnRbSXRdfHx0WyJAQGl0ZXJhdG9yIl0sdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpudWxsKX12YXIgbWU9U3ltYm9sLmZvcigicmVhY3QuY2xpZW50LnJlZmVyZW5jZSIpO2Z1bmN0aW9uIFNlKHQpe2lmKHQ9PW51bGwpcmV0dXJuIG51bGw7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQuJCR0eXBlb2Y9PT1tZT9udWxsOnQuZGlzcGxheU5hbWV8fHQubmFtZXx8bnVsbDtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIHQ7c3dpdGNoKHQpe2Nhc2UgRjpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgY3Q6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIGF0OnJldHVybiJTdHJpY3RNb2RlIjtjYXNlIEg6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIGl0OnJldHVybiJTdXNwZW5zZUxpc3QiO2Nhc2UgeHQ6cmV0dXJuIkFjdGl2aXR5In1pZih0eXBlb2YgdD09Im9iamVjdCIpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgJDpyZXR1cm4iUG9ydGFsIjtjYXNlIGs6cmV0dXJuKHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSBTdDpyZXR1cm4odC5fY29udGV4dC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIFk6dmFyIGU9dC5yZW5kZXI7cmV0dXJuIHQ9dC5kaXNwbGF5TmFtZSx0fHwodD1lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCIiLHQ9dCE9PSIiPyJGb3J3YXJkUmVmKCIrdCsiKSI6IkZvcndhcmRSZWYiKSx0O2Nhc2UgcnQ6cmV0dXJuIGU9dC5kaXNwbGF5TmFtZXx8bnVsbCxlIT09bnVsbD9lOlNlKHQudHlwZSl8fCJNZW1vIjtjYXNlIFg6ZT10Ll9wYXlsb2FkLHQ9dC5faW5pdDt0cnl7cmV0dXJuIFNlKHQoZSkpfWNhdGNoe319cmV0dXJuIG51bGx9dmFyIE10PUFycmF5LmlzQXJyYXksQT1pLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxHPXUuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLEI9e3BlbmRpbmc6ITEsZGF0YTpudWxsLG1ldGhvZDpudWxsLGFjdGlvbjpudWxsfSxidD1bXSxwPS0xO2Z1bmN0aW9uIGoodCl7cmV0dXJue2N1cnJlbnQ6dH19ZnVuY3Rpb24gVih0KXswPnB8fCh0LmN1cnJlbnQ9YnRbcF0sYnRbcF09bnVsbCxwLS0pfWZ1bmN0aW9uIHEodCxlKXtwKyssYnRbcF09dC5jdXJyZW50LHQuY3VycmVudD1lfXZhciBaPWoobnVsbCksc3Q9aihudWxsKSx0dD1qKG51bGwpLGd0PWoobnVsbCk7ZnVuY3Rpb24gVHQodCxlKXtzd2l0Y2gocSh0dCxlKSxxKHN0LHQpLHEoWixudWxsKSxlLm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTp0PSh0PWUuZG9jdW1lbnRFbGVtZW50KSYmKHQ9dC5uYW1lc3BhY2VVUkkpP0xoKHQpOjA7YnJlYWs7ZGVmYXVsdDppZih0PWUudGFnTmFtZSxlPWUubmFtZXNwYWNlVVJJKWU9TGgoZSksdD1IaChlLHQpO2Vsc2Ugc3dpdGNoKHQpe2Nhc2Uic3ZnIjp0PTE7YnJlYWs7Y2FzZSJtYXRoIjp0PTI7YnJlYWs7ZGVmYXVsdDp0PTB9fVYoWikscShaLHQpfWZ1bmN0aW9uIFB0KCl7VihaKSxWKHN0KSxWKHR0KX1mdW5jdGlvbiBLZSh0KXt0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZxKGd0LHQpO3ZhciBlPVouY3VycmVudCxsPUhoKGUsdC50eXBlKTtlIT09bCYmKHEoc3QsdCkscShaLGwpKX1mdW5jdGlvbiBDZSh0KXtzdC5jdXJyZW50PT09dCYmKFYoWiksVihzdCkpLGd0LmN1cnJlbnQ9PT10JiYoVihndCksSm8uX2N1cnJlbnRWYWx1ZT1CKX12YXIgUGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxwbD1yLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sscm49ci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxTYT1yLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGlpPXIudW5zdGFibGVfcmVxdWVzdFBhaW50LGdlPXIudW5zdGFibGVfbm93LHJpPXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsSGw9ci51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSwkbj1yLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LG5sPXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksc2k9ci51bnN0YWJsZV9Mb3dQcmlvcml0eSxVbD1yLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxjaT1yLmxvZyxDYT1yLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLHFsPW51bGwsSnQ9bnVsbDtmdW5jdGlvbiBKZSh0KXtpZih0eXBlb2YgY2k9PSJmdW5jdGlvbiImJkNhKHQpLEp0JiZ0eXBlb2YgSnQuc2V0U3RyaWN0TW9kZT09ImZ1bmN0aW9uIil0cnl7SnQuc2V0U3RyaWN0TW9kZShxbCx0KX1jYXRjaHt9fXZhciBXdD1NYXRoLmNsejMyP01hdGguY2x6MzI6ZGksdWk9TWF0aC5sb2csRWE9TWF0aC5MTjI7ZnVuY3Rpb24gZGkodCl7cmV0dXJuIHQ+Pj49MCx0PT09MD8zMjozMS0odWkodCkvRWF8MCl8MH12YXIgTD0yNTYsc249NDE5NDMwNDtmdW5jdGlvbiB5bCh0KXt2YXIgZT10JjQyO2lmKGUhPT0wKXJldHVybiBlO3N3aXRjaCh0Ji10KXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpyZXR1cm4gNjQ7Y2FzZSAxMjg6cmV0dXJuIDEyODtjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gdCY0MTk0MDQ4O2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOnJldHVybiB0JjYyOTE0NTYwO2Nhc2UgNjcxMDg4NjQ6cmV0dXJuIDY3MTA4ODY0O2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMDtkZWZhdWx0OnJldHVybiB0fX1mdW5jdGlvbiBjbih0LGUsbCl7dmFyIGE9dC5wZW5kaW5nTGFuZXM7aWYoYT09PTApcmV0dXJuIDA7dmFyIG49MCxvPXQuc3VzcGVuZGVkTGFuZXMsYz10LnBpbmdlZExhbmVzO3Q9dC53YXJtTGFuZXM7dmFyIGQ9YSYxMzQyMTc3Mjc7cmV0dXJuIGQhPT0wPyhhPWQmfm8sYSE9PTA/bj15bChhKTooYyY9ZCxjIT09MD9uPXlsKGMpOmx8fChsPWQmfnQsbCE9PTAmJihuPXlsKGwpKSkpKTooZD1hJn5vLGQhPT0wP249eWwoZCk6YyE9PTA/bj15bChjKTpsfHwobD1hJn50LGwhPT0wJiYobj15bChsKSkpKSxuPT09MD8wOmUhPT0wJiZlIT09biYmKGUmbyk9PT0wJiYobz1uJi1uLGw9ZSYtZSxvPj1sfHxvPT09MzImJihsJjQxOTQwNDgpIT09MCk/ZTpufWZ1bmN0aW9uIER0KHQsZSl7cmV0dXJuKHQucGVuZGluZ0xhbmVzJn4odC5zdXNwZW5kZWRMYW5lcyZ+dC5waW5nZWRMYW5lcykmZSk9PT0wfWZ1bmN0aW9uIEZuKHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgODpjYXNlIDY0OnJldHVybiBlKzI1MDtjYXNlIDE2OmNhc2UgMzI6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGUrNWUzO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOnJldHVybi0xO2Nhc2UgNjcxMDg4NjQ6Y2FzZSAxMzQyMTc3Mjg6Y2FzZSAyNjg0MzU0NTY6Y2FzZSA1MzY4NzA5MTI6Y2FzZSAxMDczNzQxODI0OnJldHVybi0xO2RlZmF1bHQ6cmV0dXJuLTF9fWZ1bmN0aW9uIEluKCl7dmFyIHQ9TDtyZXR1cm4gTDw8PTEsKEwmNDE5NDA0OCk9PT0wJiYoTD0yNTYpLHR9ZnVuY3Rpb24gZmkoKXt2YXIgdD1zbjtyZXR1cm4gc248PD0xLChzbiY2MjkxNDU2MCk9PT0wJiYoc249NDE5NDMwNCksdH1mdW5jdGlvbiB0byh0KXtmb3IodmFyIGU9W10sbD0wOzMxPmw7bCsrKWUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiBUYSh0LGUpe3QucGVuZGluZ0xhbmVzfD1lLGUhPT0yNjg0MzU0NTYmJih0LnN1c3BlbmRlZExhbmVzPTAsdC5waW5nZWRMYW5lcz0wLHQud2FybUxhbmVzPTApfWZ1bmN0aW9uIEZyKHQsZSxsLGEsbixvKXt2YXIgYz10LnBlbmRpbmdMYW5lczt0LnBlbmRpbmdMYW5lcz1sLHQuc3VzcGVuZGVkTGFuZXM9MCx0LnBpbmdlZExhbmVzPTAsdC53YXJtTGFuZXM9MCx0LmV4cGlyZWRMYW5lcyY9bCx0LmVudGFuZ2xlZExhbmVzJj1sLHQuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMmPWwsdC5zaGVsbFN1c3BlbmRDb3VudGVyPTA7dmFyIGQ9dC5lbnRhbmdsZW1lbnRzLGc9dC5leHBpcmF0aW9uVGltZXMsUz10LmhpZGRlblVwZGF0ZXM7Zm9yKGw9YyZ+bDswPGw7KXt2YXIgej0zMS1XdChsKSxPPTE8PHo7ZFt6XT0wLGdbel09LTE7dmFyIEU9U1t6XTtpZihFIT09bnVsbClmb3IoU1t6XT1udWxsLHo9MDt6PEUubGVuZ3RoO3orKyl7dmFyIFQ9RVt6XTtUIT09bnVsbCYmKFQubGFuZSY9LTUzNjg3MDkxMyl9bCY9fk99YSE9PTAmJmhpKHQsYSwwKSxvIT09MCYmbj09PTAmJnQudGFnIT09MCYmKHQuc3VzcGVuZGVkTGFuZXN8PW8mfihjJn5lKSl9ZnVuY3Rpb24gaGkodCxlLGwpe3QucGVuZGluZ0xhbmVzfD1lLHQuc3VzcGVuZGVkTGFuZXMmPX5lO3ZhciBhPTMxLVd0KGUpO3QuZW50YW5nbGVkTGFuZXN8PWUsdC5lbnRhbmdsZW1lbnRzW2FdPXQuZW50YW5nbGVtZW50c1thXXwxMDczNzQxODI0fGwmNDE5NDA5MH1mdW5jdGlvbiBtaSh0LGUpe3ZhciBsPXQuZW50YW5nbGVkTGFuZXN8PWU7Zm9yKHQ9dC5lbnRhbmdsZW1lbnRzO2w7KXt2YXIgYT0zMS1XdChsKSxuPTE8PGE7biZlfHRbYV0mZSYmKHRbYV18PWUpLGwmPX5ufX1mdW5jdGlvbiBlbyh0KXtzd2l0Y2godCl7Y2FzZSAyOnQ9MTticmVhaztjYXNlIDg6dD00O2JyZWFrO2Nhc2UgMzI6dD0xNjticmVhaztjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjp0PTEyODticmVhaztjYXNlIDI2ODQzNTQ1Njp0PTEzNDIxNzcyODticmVhaztkZWZhdWx0OnQ9MH1yZXR1cm4gdH1mdW5jdGlvbiBsbyh0KXtyZXR1cm4gdCY9LXQsMjx0Pzg8dD8odCYxMzQyMTc3MjcpIT09MD8zMjoyNjg0MzU0NTY6ODoyfWZ1bmN0aW9uIGdpKCl7dmFyIHQ9Ry5wO3JldHVybiB0IT09MD90Oih0PXdpbmRvdy5ldmVudCx0PT09dm9pZCAwPzMyOmFtKHQudHlwZSkpfWZ1bmN0aW9uIElyKHQsZSl7dmFyIGw9Ry5wO3RyeXtyZXR1cm4gRy5wPXQsZSgpfWZpbmFsbHl7Ry5wPWx9fXZhciBvbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSx0ZT0iX19yZWFjdEZpYmVyJCIrb2wscGU9Il9fcmVhY3RQcm9wcyQiK29sLEdsPSJfX3JlYWN0Q29udGFpbmVyJCIrb2wsYW89Il9fcmVhY3RFdmVudHMkIitvbCx0cz0iX19yZWFjdExpc3RlbmVycyQiK29sLGVzPSJfX3JlYWN0SGFuZGxlcyQiK29sLHBpPSJfX3JlYWN0UmVzb3VyY2VzJCIrb2wsRGE9Il9fcmVhY3RNYXJrZXIkIitvbDtmdW5jdGlvbiBubyh0KXtkZWxldGUgdFt0ZV0sZGVsZXRlIHRbcGVdLGRlbGV0ZSB0W2FvXSxkZWxldGUgdFt0c10sZGVsZXRlIHRbZXNdfWZ1bmN0aW9uIFlsKHQpe3ZhciBlPXRbdGVdO2lmKGUpcmV0dXJuIGU7Zm9yKHZhciBsPXQucGFyZW50Tm9kZTtsOyl7aWYoZT1sW0dsXXx8bFt0ZV0pe2lmKGw9ZS5hbHRlcm5hdGUsZS5jaGlsZCE9PW51bGx8fGwhPT1udWxsJiZsLmNoaWxkIT09bnVsbClmb3IodD1ZaCh0KTt0IT09bnVsbDspe2lmKGw9dFt0ZV0pcmV0dXJuIGw7dD1ZaCh0KX1yZXR1cm4gZX10PWwsbD10LnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWGwodCl7aWYodD10W3RlXXx8dFtHbF0pe3ZhciBlPXQudGFnO2lmKGU9PT01fHxlPT09Nnx8ZT09PTEzfHxlPT09MjZ8fGU9PT0yN3x8ZT09PTMpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gTWEodCl7dmFyIGU9dC50YWc7aWYoZT09PTV8fGU9PT0yNnx8ZT09PTI3fHxlPT09NilyZXR1cm4gdC5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IocygzMykpfWZ1bmN0aW9uIFZsKHQpe3ZhciBlPXRbcGldO3JldHVybiBlfHwoZT10W3BpXT17aG9pc3RhYmxlU3R5bGVzOm5ldyBNYXAsaG9pc3RhYmxlU2NyaXB0czpuZXcgTWFwfSksZX1mdW5jdGlvbiBYdCh0KXt0W0RhXT0hMH12YXIgeWk9bmV3IFNldCx2aT17fTtmdW5jdGlvbiB2bCh0LGUpe1dlKHQsZSksV2UodCsiQ2FwdHVyZSIsZSl9ZnVuY3Rpb24gV2UodCxlKXtmb3IodmlbdF09ZSx0PTA7dDxlLmxlbmd0aDt0KyspeWkuYWRkKGVbdF0pfXZhciBscz1SZWdFeHAoIl5bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiKSxiaT17fSx4aT17fTtmdW5jdGlvbiBBYSh0KXtyZXR1cm4gUGUuY2FsbCh4aSx0KT8hMDpQZS5jYWxsKGJpLHQpPyExOmxzLnRlc3QodCk/eGlbdF09ITA6KGJpW3RdPSEwLCExKX1mdW5jdGlvbiBNKHQsZSxsKXtpZihBYShlKSlpZihsPT09bnVsbCl0LnJlbW92ZUF0dHJpYnV0ZShlKTtlbHNle3N3aXRjaCh0eXBlb2YgbCl7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjp0LnJlbW92ZUF0dHJpYnV0ZShlKTtyZXR1cm47Y2FzZSJib29sZWFuIjp2YXIgYT1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZihhIT09ImRhdGEtIiYmYSE9PSJhcmlhLSIpe3QucmVtb3ZlQXR0cmlidXRlKGUpO3JldHVybn19dC5zZXRBdHRyaWJ1dGUoZSwiIitsKX19ZnVuY3Rpb24gbnQodCxlLGwpe2lmKGw9PT1udWxsKXQucmVtb3ZlQXR0cmlidXRlKGUpO2Vsc2V7c3dpdGNoKHR5cGVvZiBsKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6dC5yZW1vdmVBdHRyaWJ1dGUoZSk7cmV0dXJufXQuc2V0QXR0cmlidXRlKGUsIiIrbCl9fWZ1bmN0aW9uIE90KHQsZSxsLGEpe2lmKGE9PT1udWxsKXQucmVtb3ZlQXR0cmlidXRlKGwpO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6dC5yZW1vdmVBdHRyaWJ1dGUobCk7cmV0dXJufXQuc2V0QXR0cmlidXRlTlMoZSxsLCIiK2EpfX12YXIgZWUsRWU7ZnVuY3Rpb24gbGUodCl7aWYoZWU9PT12b2lkIDApdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2gobCl7dmFyIGU9bC5zdGFjay50cmltKCkubWF0Y2goL1xuKCAqKGF0ICk/KS8pO2VlPWUmJmVbMV18fCIiLEVlPS0xPGwuc3RhY2suaW5kZXhPZihgCiAgICBhdGApPyIgKDxhbm9ueW1vdXM+KSI6LTE8bC5zdGFjay5pbmRleE9mKCJAIik/IkB1bmtub3duOjA6MCI6IiJ9cmV0dXJuYApgK2VlK3QrRWV9dmFyIExlPSExO2Z1bmN0aW9uIEhlKHQsZSl7aWYoIXR8fExlKXJldHVybiIiO0xlPSEwO3ZhciBsPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIGE9e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZihlKXt2YXIgTz1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChPLFtdKX1jYXRjaChUKXt2YXIgRT1UfVJlZmxlY3QuY29uc3RydWN0KHQsW10sTyl9ZWxzZXt0cnl7Ty5jYWxsKCl9Y2F0Y2goVCl7RT1UfXQuY2FsbChPLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goVCl7RT1UfShPPXQoKSkmJnR5cGVvZiBPLmNhdGNoPT0iZnVuY3Rpb24iJiZPLmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKFQpe2lmKFQmJkUmJnR5cGVvZiBULnN0YWNrPT0ic3RyaW5nIilyZXR1cm5bVC5zdGFjayxFLnN0YWNrXX1yZXR1cm5bbnVsbCxudWxsXX19O2EuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lPSJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiO3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiKTtuJiZuLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIix7dmFsdWU6IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCJ9KTt2YXIgbz1hLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLGM9b1swXSxkPW9bMV07aWYoYyYmZCl7dmFyIGc9Yy5zcGxpdChgCmApLFM9ZC5zcGxpdChgCmApO2ZvcihuPWE9MDthPGcubGVuZ3RoJiYhZ1thXS5pbmNsdWRlcygiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Iik7KWErKztmb3IoO248Uy5sZW5ndGgmJiFTW25dLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspbisrO2lmKGE9PT1nLmxlbmd0aHx8bj09PVMubGVuZ3RoKWZvcihhPWcubGVuZ3RoLTEsbj1TLmxlbmd0aC0xOzE8PWEmJjA8PW4mJmdbYV0hPT1TW25dOyluLS07Zm9yKDsxPD1hJiYwPD1uO2EtLSxuLS0paWYoZ1thXSE9PVNbbl0pe2lmKGEhPT0xfHxuIT09MSlkbyBpZihhLS0sbi0tLDA+bnx8Z1thXSE9PVNbbl0pe3ZhciB6PWAKYCtnW2FdLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiB0LmRpc3BsYXlOYW1lJiZ6LmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoej16LnJlcGxhY2UoIjxhbm9ueW1vdXM+Iix0LmRpc3BsYXlOYW1lKSksen13aGlsZSgxPD1hJiYwPD1uKTticmVha319fWZpbmFsbHl7TGU9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9bH1yZXR1cm4obD10P3QuZGlzcGxheU5hbWV8fHQubmFtZToiIik/bGUobCk6IiJ9ZnVuY3Rpb24gWmwodCl7c3dpdGNoKHQudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBsZSh0LnR5cGUpO2Nhc2UgMTY6cmV0dXJuIGxlKCJMYXp5Iik7Y2FzZSAxMzpyZXR1cm4gbGUoIlN1c3BlbnNlIik7Y2FzZSAxOTpyZXR1cm4gbGUoIlN1c3BlbnNlTGlzdCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBIZSh0LnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIEhlKHQudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gSGUodC50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBsZSgiQWN0aXZpdHkiKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBibCh0KXt0cnl7dmFyIGU9IiI7ZG8gZSs9WmwodCksdD10LnJldHVybjt3aGlsZSh0KTtyZXR1cm4gZX1jYXRjaChsKXtyZXR1cm5gCkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IGArbC5tZXNzYWdlK2AKYCtsLnN0YWNrfX1mdW5jdGlvbiBWdCh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UiYmlnaW50IjpjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiB0O2Nhc2Uib2JqZWN0IjpyZXR1cm4gdDtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBpbCh0KXt2YXIgZT10LnR5cGU7cmV0dXJuKHQ9dC5ub2RlTmFtZSkmJnQudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJihlPT09ImNoZWNrYm94Inx8ZT09PSJyYWRpbyIpfWZ1bmN0aW9uIHZlKHQpe3ZhciBlPWlsKHQpPyJjaGVja2VkIjoidmFsdWUiLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSxlKSxhPSIiK3RbZV07aWYoIXQuaGFzT3duUHJvcGVydHkoZSkmJnR5cGVvZiBsPCJ1IiYmdHlwZW9mIGwuZ2V0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgbC5zZXQ9PSJmdW5jdGlvbiIpe3ZhciBuPWwuZ2V0LG89bC5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYyl7YT0iIitjLG8uY2FsbCh0aGlzLGMpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2VudW1lcmFibGU6bC5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldFZhbHVlOmZ1bmN0aW9uKGMpe2E9IiIrY30sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7dC5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIHRbZV19fX19ZnVuY3Rpb24gcmUodCl7dC5fdmFsdWVUcmFja2VyfHwodC5fdmFsdWVUcmFja2VyPXZlKHQpKX1mdW5jdGlvbiBybCh0KXtpZighdClyZXR1cm4hMTt2YXIgZT10Ll92YWx1ZVRyYWNrZXI7aWYoIWUpcmV0dXJuITA7dmFyIGw9ZS5nZXRWYWx1ZSgpLGE9IiI7cmV0dXJuIHQmJihhPWlsKHQpP3QuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIjp0LnZhbHVlKSx0PWEsdCE9PWw/KGUuc2V0VmFsdWUodCksITApOiExfWZ1bmN0aW9uIHhsKHQpe2lmKHQ9dHx8KHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6dm9pZCAwKSx0eXBlb2YgdD4idSIpcmV0dXJuIG51bGw7dHJ5e3JldHVybiB0LmFjdGl2ZUVsZW1lbnR8fHQuYm9keX1jYXRjaHtyZXR1cm4gdC5ib2R5fX12YXIgdW49L1tcbiJcXF0vZztmdW5jdGlvbiBzZSh0KXtyZXR1cm4gdC5yZXBsYWNlKHVuLGZ1bmN0aW9uKGUpe3JldHVybiJcXCIrZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiICJ9KX1mdW5jdGlvbiBRbCh0LGUsbCxhLG4sbyxjLGQpe3QubmFtZT0iIixjIT1udWxsJiZ0eXBlb2YgYyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGMhPSJzeW1ib2wiJiZ0eXBlb2YgYyE9ImJvb2xlYW4iP3QudHlwZT1jOnQucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksZSE9bnVsbD9jPT09Im51bWJlciI/KGU9PT0wJiZ0LnZhbHVlPT09IiJ8fHQudmFsdWUhPWUpJiYodC52YWx1ZT0iIitWdChlKSk6dC52YWx1ZSE9PSIiK1Z0KGUpJiYodC52YWx1ZT0iIitWdChlKSk6YyE9PSJzdWJtaXQiJiZjIT09InJlc2V0Inx8dC5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksZSE9bnVsbD9LbCh0LGMsVnQoZSkpOmwhPW51bGw/S2wodCxjLFZ0KGwpKTphIT1udWxsJiZ0LnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSxuPT1udWxsJiZvIT1udWxsJiYodC5kZWZhdWx0Q2hlY2tlZD0hIW8pLG4hPW51bGwmJih0LmNoZWNrZWQ9biYmdHlwZW9mIG4hPSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ic3ltYm9sIiksZCE9bnVsbCYmdHlwZW9mIGQhPSJmdW5jdGlvbiImJnR5cGVvZiBkIT0ic3ltYm9sIiYmdHlwZW9mIGQhPSJib29sZWFuIj90Lm5hbWU9IiIrVnQoZCk6dC5yZW1vdmVBdHRyaWJ1dGUoIm5hbWUiKX1mdW5jdGlvbiBSYSh0LGUsbCxhLG4sbyxjLGQpe2lmKG8hPW51bGwmJnR5cGVvZiBvIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9InN5bWJvbCImJnR5cGVvZiBvIT0iYm9vbGVhbiImJih0LnR5cGU9byksZSE9bnVsbHx8bCE9bnVsbCl7aWYoIShvIT09InN1Ym1pdCImJm8hPT0icmVzZXQifHxlIT1udWxsKSlyZXR1cm47bD1sIT1udWxsPyIiK1Z0KGwpOiIiLGU9ZSE9bnVsbD8iIitWdChlKTpsLGR8fGU9PT10LnZhbHVlfHwodC52YWx1ZT1lKSx0LmRlZmF1bHRWYWx1ZT1lfWE9YT8/bixhPXR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCImJiEhYSx0LmNoZWNrZWQ9ZD90LmNoZWNrZWQ6ISFhLHQuZGVmYXVsdENoZWNrZWQ9ISFhLGMhPW51bGwmJnR5cGVvZiBjIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYyE9InN5bWJvbCImJnR5cGVvZiBjIT0iYm9vbGVhbiImJih0Lm5hbWU9Yyl9ZnVuY3Rpb24gS2wodCxlLGwpe2U9PT0ibnVtYmVyIiYmeGwodC5vd25lckRvY3VtZW50KT09PXR8fHQuZGVmYXVsdFZhbHVlPT09IiIrbHx8KHQuZGVmYXVsdFZhbHVlPSIiK2wpfWZ1bmN0aW9uICRlKHQsZSxsLGEpe2lmKHQ9dC5vcHRpb25zLGUpe2U9e307Zm9yKHZhciBuPTA7bjxsLmxlbmd0aDtuKyspZVsiJCIrbFtuXV09ITA7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKyluPWUuaGFzT3duUHJvcGVydHkoIiQiK3RbbF0udmFsdWUpLHRbbF0uc2VsZWN0ZWQhPT1uJiYodFtsXS5zZWxlY3RlZD1uKSxuJiZhJiYodFtsXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKGw9IiIrVnQobCksZT1udWxsLG49MDtuPHQubGVuZ3RoO24rKyl7aWYodFtuXS52YWx1ZT09PWwpe3Rbbl0uc2VsZWN0ZWQ9ITAsYSYmKHRbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59ZSE9PW51bGx8fHRbbl0uZGlzYWJsZWR8fChlPXRbbl0pfWUhPT1udWxsJiYoZS5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHphKHQsZSxsKXtpZihlIT1udWxsJiYoZT0iIitWdChlKSxlIT09dC52YWx1ZSYmKHQudmFsdWU9ZSksbD09bnVsbCkpe3QuZGVmYXVsdFZhbHVlIT09ZSYmKHQuZGVmYXVsdFZhbHVlPWUpO3JldHVybn10LmRlZmF1bHRWYWx1ZT1sIT1udWxsPyIiK1Z0KGwpOiIifWZ1bmN0aW9uIE5hKHQsZSxsLGEpe2lmKGU9PW51bGwpe2lmKGEhPW51bGwpe2lmKGwhPW51bGwpdGhyb3cgRXJyb3Iocyg5MikpO2lmKE10KGEpKXtpZigxPGEubGVuZ3RoKXRocm93IEVycm9yKHMoOTMpKTthPWFbMF19bD1hfWw9PW51bGwmJihsPSIiKSxlPWx9bD1WdChlKSx0LmRlZmF1bHRWYWx1ZT1sLGE9dC50ZXh0Q29udGVudCxhPT09bCYmYSE9PSIiJiZhIT09bnVsbCYmKHQudmFsdWU9YSl9ZnVuY3Rpb24gRmUodCxlKXtpZihlKXt2YXIgbD10LmZpcnN0Q2hpbGQ7aWYobCYmbD09PXQubGFzdENoaWxkJiZsLm5vZGVUeXBlPT09Myl7bC5ub2RlVmFsdWU9ZTtyZXR1cm59fXQudGV4dENvbnRlbnQ9ZX12YXIgZG49bmV3IFNldCgiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgYXNwZWN0UmF0aW8gYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVdpZHRoIGJveEZsZXggYm94RmxleEdyb3VwIGJveE9yZGluYWxHcm91cCBjb2x1bW5Db3VudCBjb2x1bW5zIGZsZXggZmxleEdyb3cgZmxleFBvc2l0aXZlIGZsZXhTaHJpbmsgZmxleE5lZ2F0aXZlIGZsZXhPcmRlciBncmlkQXJlYSBncmlkUm93IGdyaWRSb3dFbmQgZ3JpZFJvd1NwYW4gZ3JpZFJvd1N0YXJ0IGdyaWRDb2x1bW4gZ3JpZENvbHVtbkVuZCBncmlkQ29sdW1uU3BhbiBncmlkQ29sdW1uU3RhcnQgZm9udFdlaWdodCBsaW5lQ2xhbXAgbGluZUhlaWdodCBvcGFjaXR5IG9yZGVyIG9ycGhhbnMgc2NhbGUgdGFiU2l6ZSB3aWRvd3MgekluZGV4IHpvb20gZmlsbE9wYWNpdHkgZmxvb2RPcGFjaXR5IHN0b3BPcGFjaXR5IHN0cm9rZURhc2hhcnJheSBzdHJva2VEYXNob2Zmc2V0IHN0cm9rZU1pdGVybGltaXQgc3Ryb2tlT3BhY2l0eSBzdHJva2VXaWR0aCBNb3pBbmltYXRpb25JdGVyYXRpb25Db3VudCBNb3pCb3hGbGV4IE1vekJveEZsZXhHcm91cCBNb3pMaW5lQ2xhbXAgbXNBbmltYXRpb25JdGVyYXRpb25Db3VudCBtc0ZsZXggbXNab29tIG1zRmxleEdyb3cgbXNGbGV4TmVnYXRpdmUgbXNGbGV4T3JkZXIgbXNGbGV4UG9zaXRpdmUgbXNGbGV4U2hyaW5rIG1zR3JpZENvbHVtbiBtc0dyaWRDb2x1bW5TcGFuIG1zR3JpZFJvdyBtc0dyaWRSb3dTcGFuIFdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IFdlYmtpdEJveEZsZXggV2ViS2l0Qm94RmxleEdyb3VwIFdlYmtpdEJveE9yZGluYWxHcm91cCBXZWJraXRDb2x1bW5Db3VudCBXZWJraXRDb2x1bW5zIFdlYmtpdEZsZXggV2Via2l0RmxleEdyb3cgV2Via2l0RmxleFBvc2l0aXZlIFdlYmtpdEZsZXhTaHJpbmsgV2Via2l0TGluZUNsYW1wIi5zcGxpdCgiICIpKTtmdW5jdGlvbiBfYSh0LGUsbCl7dmFyIGE9ZS5pbmRleE9mKCItLSIpPT09MDtsPT1udWxsfHx0eXBlb2YgbD09ImJvb2xlYW4ifHxsPT09IiI/YT90LnNldFByb3BlcnR5KGUsIiIpOmU9PT0iZmxvYXQiP3QuY3NzRmxvYXQ9IiI6dFtlXT0iIjphP3Quc2V0UHJvcGVydHkoZSxsKTp0eXBlb2YgbCE9Im51bWJlciJ8fGw9PT0wfHxkbi5oYXMoZSk/ZT09PSJmbG9hdCI/dC5jc3NGbG9hdD1sOnRbZV09KCIiK2wpLnRyaW0oKTp0W2VdPWwrInB4In1mdW5jdGlvbiBrYSh0LGUsbCl7aWYoZSE9bnVsbCYmdHlwZW9mIGUhPSJvYmplY3QiKXRocm93IEVycm9yKHMoNjIpKTtpZih0PXQuc3R5bGUsbCE9bnVsbCl7Zm9yKHZhciBhIGluIGwpIWwuaGFzT3duUHJvcGVydHkoYSl8fGUhPW51bGwmJmUuaGFzT3duUHJvcGVydHkoYSl8fChhLmluZGV4T2YoIi0tIik9PT0wP3Quc2V0UHJvcGVydHkoYSwiIik6YT09PSJmbG9hdCI/dC5jc3NGbG9hdD0iIjp0W2FdPSIiKTtmb3IodmFyIG4gaW4gZSlhPWVbbl0sZS5oYXNPd25Qcm9wZXJ0eShuKSYmbFtuXSE9PWEmJl9hKHQsbixhKX1lbHNlIGZvcih2YXIgbyBpbiBlKWUuaGFzT3duUHJvcGVydHkobykmJl9hKHQsbyxlW29dKX1mdW5jdGlvbiBPYSh0KXtpZih0LmluZGV4T2YoIi0iKT09PS0xKXJldHVybiExO3N3aXRjaCh0KXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciB3aT1uZXcgTWFwKFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdLFsiY3Jvc3NPcmlnaW4iLCJjcm9zc29yaWdpbiJdLFsiYWNjZW50SGVpZ2h0IiwiYWNjZW50LWhlaWdodCJdLFsiYWxpZ25tZW50QmFzZWxpbmUiLCJhbGlnbm1lbnQtYmFzZWxpbmUiXSxbImFyYWJpY0Zvcm0iLCJhcmFiaWMtZm9ybSJdLFsiYmFzZWxpbmVTaGlmdCIsImJhc2VsaW5lLXNoaWZ0Il0sWyJjYXBIZWlnaHQiLCJjYXAtaGVpZ2h0Il0sWyJjbGlwUGF0aCIsImNsaXAtcGF0aCJdLFsiY2xpcFJ1bGUiLCJjbGlwLXJ1bGUiXSxbImNvbG9ySW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24iXSxbImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMiLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiXSxbImNvbG9yUHJvZmlsZSIsImNvbG9yLXByb2ZpbGUiXSxbImNvbG9yUmVuZGVyaW5nIiwiY29sb3ItcmVuZGVyaW5nIl0sWyJkb21pbmFudEJhc2VsaW5lIiwiZG9taW5hbnQtYmFzZWxpbmUiXSxbImVuYWJsZUJhY2tncm91bmQiLCJlbmFibGUtYmFja2dyb3VuZCJdLFsiZmlsbE9wYWNpdHkiLCJmaWxsLW9wYWNpdHkiXSxbImZpbGxSdWxlIiwiZmlsbC1ydWxlIl0sWyJmbG9vZENvbG9yIiwiZmxvb2QtY29sb3IiXSxbImZsb29kT3BhY2l0eSIsImZsb29kLW9wYWNpdHkiXSxbImZvbnRGYW1pbHkiLCJmb250LWZhbWlseSJdLFsiZm9udFNpemUiLCJmb250LXNpemUiXSxbImZvbnRTaXplQWRqdXN0IiwiZm9udC1zaXplLWFkanVzdCJdLFsiZm9udFN0cmV0Y2giLCJmb250LXN0cmV0Y2giXSxbImZvbnRTdHlsZSIsImZvbnQtc3R5bGUiXSxbImZvbnRWYXJpYW50IiwiZm9udC12YXJpYW50Il0sWyJmb250V2VpZ2h0IiwiZm9udC13ZWlnaHQiXSxbImdseXBoTmFtZSIsImdseXBoLW5hbWUiXSxbImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCJdLFsiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsIiwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwiXSxbImhvcml6QWR2WCIsImhvcml6LWFkdi14Il0sWyJob3Jpek9yaWdpblgiLCJob3Jpei1vcmlnaW4teCJdLFsiaW1hZ2VSZW5kZXJpbmciLCJpbWFnZS1yZW5kZXJpbmciXSxbImxldHRlclNwYWNpbmciLCJsZXR0ZXItc3BhY2luZyJdLFsibGlnaHRpbmdDb2xvciIsImxpZ2h0aW5nLWNvbG9yIl0sWyJtYXJrZXJFbmQiLCJtYXJrZXItZW5kIl0sWyJtYXJrZXJNaWQiLCJtYXJrZXItbWlkIl0sWyJtYXJrZXJTdGFydCIsIm1hcmtlci1zdGFydCJdLFsib3ZlcmxpbmVQb3NpdGlvbiIsIm92ZXJsaW5lLXBvc2l0aW9uIl0sWyJvdmVybGluZVRoaWNrbmVzcyIsIm92ZXJsaW5lLXRoaWNrbmVzcyJdLFsicGFpbnRPcmRlciIsInBhaW50LW9yZGVyIl0sWyJwYW5vc2UtMSIsInBhbm9zZS0xIl0sWyJwb2ludGVyRXZlbnRzIiwicG9pbnRlci1ldmVudHMiXSxbInJlbmRlcmluZ0ludGVudCIsInJlbmRlcmluZy1pbnRlbnQiXSxbInNoYXBlUmVuZGVyaW5nIiwic2hhcGUtcmVuZGVyaW5nIl0sWyJzdG9wQ29sb3IiLCJzdG9wLWNvbG9yIl0sWyJzdG9wT3BhY2l0eSIsInN0b3Atb3BhY2l0eSJdLFsic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwic3RyaWtldGhyb3VnaC1wb3NpdGlvbiJdLFsic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIl0sWyJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2UtZGFzaGFycmF5Il0sWyJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hvZmZzZXQiXSxbInN0cm9rZUxpbmVjYXAiLCJzdHJva2UtbGluZWNhcCJdLFsic3Ryb2tlTGluZWpvaW4iLCJzdHJva2UtbGluZWpvaW4iXSxbInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2UtbWl0ZXJsaW1pdCJdLFsic3Ryb2tlT3BhY2l0eSIsInN0cm9rZS1vcGFjaXR5Il0sWyJzdHJva2VXaWR0aCIsInN0cm9rZS13aWR0aCJdLFsidGV4dEFuY2hvciIsInRleHQtYW5jaG9yIl0sWyJ0ZXh0RGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbiJdLFsidGV4dFJlbmRlcmluZyIsInRleHQtcmVuZGVyaW5nIl0sWyJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2Zvcm0tb3JpZ2luIl0sWyJ1bmRlcmxpbmVQb3NpdGlvbiIsInVuZGVybGluZS1wb3NpdGlvbiJdLFsidW5kZXJsaW5lVGhpY2tuZXNzIiwidW5kZXJsaW5lLXRoaWNrbmVzcyJdLFsidW5pY29kZUJpZGkiLCJ1bmljb2RlLWJpZGkiXSxbInVuaWNvZGVSYW5nZSIsInVuaWNvZGUtcmFuZ2UiXSxbInVuaXRzUGVyRW0iLCJ1bml0cy1wZXItZW0iXSxbInZBbHBoYWJldGljIiwidi1hbHBoYWJldGljIl0sWyJ2SGFuZ2luZyIsInYtaGFuZ2luZyJdLFsidklkZW9ncmFwaGljIiwidi1pZGVvZ3JhcGhpYyJdLFsidk1hdGhlbWF0aWNhbCIsInYtbWF0aGVtYXRpY2FsIl0sWyJ2ZWN0b3JFZmZlY3QiLCJ2ZWN0b3ItZWZmZWN0Il0sWyJ2ZXJ0QWR2WSIsInZlcnQtYWR2LXkiXSxbInZlcnRPcmlnaW5YIiwidmVydC1vcmlnaW4teCJdLFsidmVydE9yaWdpblkiLCJ2ZXJ0LW9yaWdpbi15Il0sWyJ3b3JkU3BhY2luZyIsIndvcmQtc3BhY2luZyJdLFsid3JpdGluZ01vZGUiLCJ3cml0aW5nLW1vZGUiXSxbInhtbG5zWGxpbmsiLCJ4bWxuczp4bGluayJdLFsieEhlaWdodCIsIngtaGVpZ2h0Il1dKSxTaT0vXltcdTAwMDAtXHUwMDFGIF0qaltcclxuXHRdKmFbXHJcblx0XSp2W1xyXG5cdF0qYVtcclxuXHRdKnNbXHJcblx0XSpjW1xyXG5cdF0qcltcclxuXHRdKmlbXHJcblx0XSpwW1xyXG5cdF0qdFtcclxuXHRdKjovaTtmdW5jdGlvbiBqYSh0KXtyZXR1cm4gU2kudGVzdCgiIit0KT8iamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKSI6dH12YXIgZm49bnVsbDtmdW5jdGlvbiBobih0KXtyZXR1cm4gdD10LnRhcmdldHx8dC5zcmNFbGVtZW50fHx3aW5kb3csdC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKHQ9dC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksdC5ub2RlVHlwZT09PTM/dC5wYXJlbnROb2RlOnR9dmFyIHdsPW51bGwsU2w9bnVsbDtmdW5jdGlvbiBvbyh0KXt2YXIgZT1YbCh0KTtpZihlJiYodD1lLnN0YXRlTm9kZSkpe3ZhciBsPXRbcGVdfHxudWxsO3Q6c3dpdGNoKHQ9ZS5zdGF0ZU5vZGUsZS50eXBlKXtjYXNlImlucHV0IjppZihRbCh0LGwudmFsdWUsbC5kZWZhdWx0VmFsdWUsbC5kZWZhdWx0VmFsdWUsbC5jaGVja2VkLGwuZGVmYXVsdENoZWNrZWQsbC50eXBlLGwubmFtZSksZT1sLm5hbWUsbC50eXBlPT09InJhZGlvIiYmZSE9bnVsbCl7Zm9yKGw9dDtsLnBhcmVudE5vZGU7KWw9bC5wYXJlbnROb2RlO2ZvcihsPWwucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJytzZSgiIitlKSsnIl1bdHlwZT0icmFkaW8iXScpLGU9MDtlPGwubGVuZ3RoO2UrKyl7dmFyIGE9bFtlXTtpZihhIT09dCYmYS5mb3JtPT09dC5mb3JtKXt2YXIgbj1hW3BlXXx8bnVsbDtpZighbil0aHJvdyBFcnJvcihzKDkwKSk7UWwoYSxuLnZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uY2hlY2tlZCxuLmRlZmF1bHRDaGVja2VkLG4udHlwZSxuLm5hbWUpfX1mb3IoZT0wO2U8bC5sZW5ndGg7ZSsrKWE9bFtlXSxhLmZvcm09PT10LmZvcm0mJnJsKGEpfWJyZWFrIHQ7Y2FzZSJ0ZXh0YXJlYSI6emEodCxsLnZhbHVlLGwuZGVmYXVsdFZhbHVlKTticmVhayB0O2Nhc2Uic2VsZWN0IjplPWwudmFsdWUsZSE9bnVsbCYmJGUodCwhIWwubXVsdGlwbGUsZSwhMSl9fX12YXIgbW49ITE7ZnVuY3Rpb24gaW8odCxlLGwpe2lmKG1uKXJldHVybiB0KGUsbCk7bW49ITA7dHJ5e3ZhciBhPXQoZSk7cmV0dXJuIGF9ZmluYWxseXtpZihtbj0hMSwod2whPT1udWxsfHxTbCE9PW51bGwpJiYob3IoKSx3bCYmKGU9d2wsdD1TbCxTbD13bD1udWxsLG9vKGUpLHQpKSlmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKW9vKHRbZV0pfX1mdW5jdGlvbiBQbCh0LGUpe3ZhciBsPXQuc3RhdGVOb2RlO2lmKGw9PT1udWxsKXJldHVybiBudWxsO3ZhciBhPWxbcGVdfHxudWxsO2lmKGE9PT1udWxsKXJldHVybiBudWxsO2w9YVtlXTt0OnN3aXRjaChlKXtjYXNlIm9uQ2xpY2siOmNhc2Uib25DbGlja0NhcHR1cmUiOmNhc2Uib25Eb3VibGVDbGljayI6Y2FzZSJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRG93biI6Y2FzZSJvbk1vdXNlRG93bkNhcHR1cmUiOmNhc2Uib25Nb3VzZU1vdmUiOmNhc2Uib25Nb3VzZU1vdmVDYXB0dXJlIjpjYXNlIm9uTW91c2VVcCI6Y2FzZSJvbk1vdXNlVXBDYXB0dXJlIjpjYXNlIm9uTW91c2VFbnRlciI6KGE9IWEuZGlzYWJsZWQpfHwodD10LnR5cGUsYT0hKHQ9PT0iYnV0dG9uInx8dD09PSJpbnB1dCJ8fHQ9PT0ic2VsZWN0Inx8dD09PSJ0ZXh0YXJlYSIpKSx0PSFhO2JyZWFrIHQ7ZGVmYXVsdDp0PSExfWlmKHQpcmV0dXJuIG51bGw7aWYobCYmdHlwZW9mIGwhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IocygyMzEsZSx0eXBlb2YgbCkpO3JldHVybiBsfXZhciBVZT0hKHR5cGVvZiB3aW5kb3c+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50PiJ1Inx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50PiJ1IiksZ249ITE7aWYoVWUpdHJ5e3ZhciBKbD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSmwsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtnbj0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsSmwsSmwpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixKbCxKbCl9Y2F0Y2h7Z249ITF9dmFyIEllPW51bGwscG49bnVsbCxCYT1udWxsO2Z1bmN0aW9uIHJvKCl7aWYoQmEpcmV0dXJuIEJhO3ZhciB0LGU9cG4sbD1lLmxlbmd0aCxhLG49InZhbHVlImluIEllP0llLnZhbHVlOkllLnRleHRDb250ZW50LG89bi5sZW5ndGg7Zm9yKHQ9MDt0PGwmJmVbdF09PT1uW3RdO3QrKyk7dmFyIGM9bC10O2ZvcihhPTE7YTw9YyYmZVtsLWFdPT09bltvLWFdO2ErKyk7cmV0dXJuIEJhPW4uc2xpY2UodCwxPGE/MS1hOnZvaWQgMCl9ZnVuY3Rpb24gTGEodCl7dmFyIGU9dC5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiB0Pyh0PXQuY2hhckNvZGUsdD09PTAmJmU9PT0xMyYmKHQ9MTMpKTp0PWUsdD09PTEwJiYodD0xMyksMzI8PXR8fHQ9PT0xMz90OjB9ZnVuY3Rpb24gSGEoKXtyZXR1cm4hMH1mdW5jdGlvbiBzbygpe3JldHVybiExfWZ1bmN0aW9uIGNlKHQpe2Z1bmN0aW9uIGUobCxhLG4sbyxjKXt0aGlzLl9yZWFjdE5hbWU9bCx0aGlzLl90YXJnZXRJbnN0PW4sdGhpcy50eXBlPWEsdGhpcy5uYXRpdmVFdmVudD1vLHRoaXMudGFyZ2V0PWMsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBkIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShkKSYmKGw9dFtkXSx0aGlzW2RdPWw/bChvKTpvW2RdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG8uZGVmYXVsdFByZXZlbnRlZCE9bnVsbD9vLmRlZmF1bHRQcmV2ZW50ZWQ6by5yZXR1cm5WYWx1ZT09PSExKT9IYTpzbyx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXNvLHRoaXN9cmV0dXJuIEQoZS5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBsPXRoaXMubmF0aXZlRXZlbnQ7bCYmKGwucHJldmVudERlZmF1bHQ/bC5wcmV2ZW50RGVmYXVsdCgpOnR5cGVvZiBsLnJldHVyblZhbHVlIT0idW5rbm93biImJihsLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1IYSl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBsPXRoaXMubmF0aXZlRXZlbnQ7bCYmKGwuc3RvcFByb3BhZ2F0aW9uP2wuc3RvcFByb3BhZ2F0aW9uKCk6dHlwZW9mIGwuY2FuY2VsQnViYmxlIT0idW5rbm93biImJihsLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1IYSl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpIYX0pLGV9dmFyIHNsPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24odCl7cmV0dXJuIHQudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LFVhPWNlKHNsKSxXbD1EKHt9LHNsLHt2aWV3OjAsZGV0YWlsOjB9KSxDaT1jZShXbCksRWksY28sdW8sVGk9RCh7fSxXbCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpucyxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWxhdGVkVGFyZ2V0PT09dm9pZCAwP3QuZnJvbUVsZW1lbnQ9PT10LnNyY0VsZW1lbnQ/dC50b0VsZW1lbnQ6dC5mcm9tRWxlbWVudDp0LnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbih0KXtyZXR1cm4ibW92ZW1lbnRYImluIHQ/dC5tb3ZlbWVudFg6KHQhPT11byYmKHVvJiZ0LnR5cGU9PT0ibW91c2Vtb3ZlIj8oRWk9dC5zY3JlZW5YLXVvLnNjcmVlblgsY289dC5zY3JlZW5ZLXVvLnNjcmVlblkpOmNvPUVpPTAsdW89dCksRWkpfSxtb3ZlbWVudFk6ZnVuY3Rpb24odCl7cmV0dXJuIm1vdmVtZW50WSJpbiB0P3QubW92ZW1lbnRZOmNvfX0pLFl1PWNlKFRpKSxDMD1EKHt9LFRpLHtkYXRhVHJhbnNmZXI6MH0pLEUwPWNlKEMwKSxUMD1EKHt9LFdsLHtyZWxhdGVkVGFyZ2V0OjB9KSxhcz1jZShUMCksRDA9RCh7fSxzbCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksTTA9Y2UoRDApLEEwPUQoe30sc2wse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24odCl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gdD90LmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksUjA9Y2UoQTApLHowPUQoe30sc2wse2RhdGE6MH0pLFh1PWNlKHowKSxOMD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sXzA9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxrMD17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIE8wKHQpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIGUuZ2V0TW9kaWZpZXJTdGF0ZT9lLmdldE1vZGlmaWVyU3RhdGUodCk6KHQ9azBbdF0pPyEhZVt0XTohMX1mdW5jdGlvbiBucygpe3JldHVybiBPMH12YXIgajA9RCh7fSxXbCx7a2V5OmZ1bmN0aW9uKHQpe2lmKHQua2V5KXt2YXIgZT1OMFt0LmtleV18fHQua2V5O2lmKGUhPT0iVW5pZGVudGlmaWVkIilyZXR1cm4gZX1yZXR1cm4gdC50eXBlPT09ImtleXByZXNzIj8odD1MYSh0KSx0PT09MTM/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTp0LnR5cGU9PT0ia2V5ZG93biJ8fHQudHlwZT09PSJrZXl1cCI/XzBbdC5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOm5zLGNoYXJDb2RlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT0ia2V5cHJlc3MiP0xhKHQpOjB9LGtleUNvZGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PSJrZXlkb3duInx8dC50eXBlPT09ImtleXVwIj90LmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PSJrZXlwcmVzcyI/TGEodCk6dC50eXBlPT09ImtleWRvd24ifHx0LnR5cGU9PT0ia2V5dXAiP3Qua2V5Q29kZTowfX0pLEIwPWNlKGowKSxMMD1EKHt9LFRpLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLFZ1PWNlKEwwKSxIMD1EKHt9LFdsLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6bnN9KSxVMD1jZShIMCkscTA9RCh7fSxzbCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxHMD1jZShxMCksWTA9RCh7fSxUaSx7ZGVsdGFYOmZ1bmN0aW9uKHQpe3JldHVybiJkZWx0YVgiaW4gdD90LmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gdD8tdC53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24odCl7cmV0dXJuImRlbHRhWSJpbiB0P3QuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiB0Py10LndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIHQ/LXQud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLFgwPWNlKFkwKSxWMD1EKHt9LHNsLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSxaMD1jZShWMCksUTA9WzksMTMsMjcsMzJdLG9zPVVlJiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3csZm89bnVsbDtVZSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKGZvPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIEswPVVlJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIWZvLFp1PVVlJiYoIW9zfHxmbyYmODxmbyYmMTE+PWZvKSxRdT0iICIsS3U9ITE7ZnVuY3Rpb24gUHUodCxlKXtzd2l0Y2godCl7Y2FzZSJrZXl1cCI6cmV0dXJuIFEwLmluZGV4T2YoZS5rZXlDb2RlKSE9PS0xO2Nhc2Uia2V5ZG93biI6cmV0dXJuIGUua2V5Q29kZSE9PTIyOTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gSnUodCl7cmV0dXJuIHQ9dC5kZXRhaWwsdHlwZW9mIHQ9PSJvYmplY3QiJiYiZGF0YSJpbiB0P3QuZGF0YTpudWxsfXZhciB5bj0hMTtmdW5jdGlvbiBQMCh0LGUpe3N3aXRjaCh0KXtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gSnUoZSk7Y2FzZSJrZXlwcmVzcyI6cmV0dXJuIGUud2hpY2ghPT0zMj9udWxsOihLdT0hMCxRdSk7Y2FzZSJ0ZXh0SW5wdXQiOnJldHVybiB0PWUuZGF0YSx0PT09UXUmJkt1P251bGw6dDtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiBKMCh0LGUpe2lmKHluKXJldHVybiB0PT09ImNvbXBvc2l0aW9uZW5kInx8IW9zJiZQdSh0LGUpPyh0PXJvKCksQmE9cG49SWU9bnVsbCx5bj0hMSx0KTpudWxsO3N3aXRjaCh0KXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKGUuY3RybEtleXx8ZS5hbHRLZXl8fGUubWV0YUtleSl8fGUuY3RybEtleSYmZS5hbHRLZXkpe2lmKGUuY2hhciYmMTxlLmNoYXIubGVuZ3RoKXJldHVybiBlLmNoYXI7aWYoZS53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gWnUmJmUubG9jYWxlIT09ImtvIj9udWxsOmUuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgVzA9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIFd1KHQpe3ZhciBlPXQmJnQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gZT09PSJpbnB1dCI/ISFXMFt0LnR5cGVdOmU9PT0idGV4dGFyZWEifWZ1bmN0aW9uICR1KHQsZSxsLGEpe3dsP1NsP1NsLnB1c2goYSk6U2w9W2FdOndsPWEsZT1kcihlLCJvbkNoYW5nZSIpLDA8ZS5sZW5ndGgmJihsPW5ldyBVYSgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsbCxhKSx0LnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOmV9KSl9dmFyIGhvPW51bGwsbW89bnVsbDtmdW5jdGlvbiAkMCh0KXtfaCh0LDApfWZ1bmN0aW9uIERpKHQpe3ZhciBlPU1hKHQpO2lmKHJsKGUpKXJldHVybiB0fWZ1bmN0aW9uIEZ1KHQsZSl7aWYodD09PSJjaGFuZ2UiKXJldHVybiBlfXZhciBJdT0hMTtpZihVZSl7dmFyIGlzO2lmKFVlKXt2YXIgcnM9Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIXJzKXt2YXIgdGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGQuc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLHJzPXR5cGVvZiB0ZC5vbmlucHV0PT0iZnVuY3Rpb24ifWlzPXJzfWVsc2UgaXM9ITE7SXU9aXMmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gZWQoKXtobyYmKGhvLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixsZCksbW89aG89bnVsbCl9ZnVuY3Rpb24gbGQodCl7aWYodC5wcm9wZXJ0eU5hbWU9PT0idmFsdWUiJiZEaShtbykpe3ZhciBlPVtdOyR1KGUsbW8sdCxobih0KSksaW8oJDAsZSl9fWZ1bmN0aW9uIEYwKHQsZSxsKXt0PT09ImZvY3VzaW4iPyhlZCgpLGhvPWUsbW89bCxoby5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbGQpKTp0PT09ImZvY3Vzb3V0IiYmZWQoKX1mdW5jdGlvbiBJMCh0KXtpZih0PT09InNlbGVjdGlvbmNoYW5nZSJ8fHQ9PT0ia2V5dXAifHx0PT09ImtleWRvd24iKXJldHVybiBEaShtbyl9ZnVuY3Rpb24gdDEodCxlKXtpZih0PT09ImNsaWNrIilyZXR1cm4gRGkoZSl9ZnVuY3Rpb24gZTEodCxlKXtpZih0PT09ImlucHV0Inx8dD09PSJjaGFuZ2UiKXJldHVybiBEaShlKX1mdW5jdGlvbiBsMSh0LGUpe3JldHVybiB0PT09ZSYmKHQhPT0wfHwxL3Q9PT0xL2UpfHx0IT09dCYmZSE9PWV9dmFyIFJlPXR5cGVvZiBPYmplY3QuaXM9PSJmdW5jdGlvbiI/T2JqZWN0LmlzOmwxO2Z1bmN0aW9uIGdvKHQsZSl7aWYoUmUodCxlKSlyZXR1cm4hMDtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO3ZhciBsPU9iamVjdC5rZXlzKHQpLGE9T2JqZWN0LmtleXMoZSk7aWYobC5sZW5ndGghPT1hLmxlbmd0aClyZXR1cm4hMTtmb3IoYT0wO2E8bC5sZW5ndGg7YSsrKXt2YXIgbj1sW2FdO2lmKCFQZS5jYWxsKGUsbil8fCFSZSh0W25dLGVbbl0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGFkKHQpe2Zvcig7dCYmdC5maXJzdENoaWxkOyl0PXQuZmlyc3RDaGlsZDtyZXR1cm4gdH1mdW5jdGlvbiBuZCh0LGUpe3ZhciBsPWFkKHQpO3Q9MDtmb3IodmFyIGE7bDspe2lmKGwubm9kZVR5cGU9PT0zKXtpZihhPXQrbC50ZXh0Q29udGVudC5sZW5ndGgsdDw9ZSYmYT49ZSlyZXR1cm57bm9kZTpsLG9mZnNldDplLXR9O3Q9YX10Ontmb3IoO2w7KXtpZihsLm5leHRTaWJsaW5nKXtsPWwubmV4dFNpYmxpbmc7YnJlYWsgdH1sPWwucGFyZW50Tm9kZX1sPXZvaWQgMH1sPWFkKGwpfX1mdW5jdGlvbiBvZCh0LGUpe3JldHVybiB0JiZlP3Q9PT1lPyEwOnQmJnQubm9kZVR5cGU9PT0zPyExOmUmJmUubm9kZVR5cGU9PT0zP29kKHQsZS5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKGUpOnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEodC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKSYxNik6ITE6ITF9ZnVuY3Rpb24gaWQodCl7dD10IT1udWxsJiZ0Lm93bmVyRG9jdW1lbnQhPW51bGwmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyE9bnVsbD90Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6d2luZG93O2Zvcih2YXIgZT14bCh0LmRvY3VtZW50KTtlIGluc3RhbmNlb2YgdC5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgbD10eXBlb2YgZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY9PSJzdHJpbmcifWNhdGNoe2w9ITF9aWYobCl0PWUuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2U9eGwodC5kb2N1bWVudCl9cmV0dXJuIGV9ZnVuY3Rpb24gc3ModCl7dmFyIGU9dCYmdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBlJiYoZT09PSJpbnB1dCImJih0LnR5cGU9PT0idGV4dCJ8fHQudHlwZT09PSJzZWFyY2gifHx0LnR5cGU9PT0idGVsInx8dC50eXBlPT09InVybCJ8fHQudHlwZT09PSJwYXNzd29yZCIpfHxlPT09InRleHRhcmVhInx8dC5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpfXZhciBhMT1VZSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSx2bj1udWxsLGNzPW51bGwscG89bnVsbCx1cz0hMTtmdW5jdGlvbiByZCh0LGUsbCl7dmFyIGE9bC53aW5kb3c9PT1sP2wuZG9jdW1lbnQ6bC5ub2RlVHlwZT09PTk/bDpsLm93bmVyRG9jdW1lbnQ7dXN8fHZuPT1udWxsfHx2biE9PXhsKGEpfHwoYT12biwic2VsZWN0aW9uU3RhcnQiaW4gYSYmc3MoYSk/YT17c3RhcnQ6YS5zZWxlY3Rpb25TdGFydCxlbmQ6YS5zZWxlY3Rpb25FbmR9OihhPShhLm93bmVyRG9jdW1lbnQmJmEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxhPXthbmNob3JOb2RlOmEuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6YS5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmEuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmEuZm9jdXNPZmZzZXR9KSxwbyYmZ28ocG8sYSl8fChwbz1hLGE9ZHIoY3MsIm9uU2VsZWN0IiksMDxhLmxlbmd0aCYmKGU9bmV3IFVhKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCxlLGwpLHQucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6YX0pLGUudGFyZ2V0PXZuKSkpfWZ1bmN0aW9uIHFhKHQsZSl7dmFyIGw9e307cmV0dXJuIGxbdC50b0xvd2VyQ2FzZSgpXT1lLnRvTG93ZXJDYXNlKCksbFsiV2Via2l0Iit0XT0id2Via2l0IitlLGxbIk1veiIrdF09Im1veiIrZSxsfXZhciBibj17YW5pbWF0aW9uZW5kOnFhKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246cWEoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OnFhKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25ydW46cWEoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uUnVuIiksdHJhbnNpdGlvbnN0YXJ0OnFhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblN0YXJ0IiksdHJhbnNpdGlvbmNhbmNlbDpxYSgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25DYW5jZWwiKSx0cmFuc2l0aW9uZW5kOnFhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxkcz17fSxzZD17fTtVZSYmKHNkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgYm4uYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgYm4uYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgYm4uYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIGJuLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gR2EodCl7aWYoZHNbdF0pcmV0dXJuIGRzW3RdO2lmKCFiblt0XSlyZXR1cm4gdDt2YXIgZT1iblt0XSxsO2ZvcihsIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShsKSYmbCBpbiBzZClyZXR1cm4gZHNbdF09ZVtsXTtyZXR1cm4gdH12YXIgY2Q9R2EoImFuaW1hdGlvbmVuZCIpLHVkPUdhKCJhbmltYXRpb25pdGVyYXRpb24iKSxkZD1HYSgiYW5pbWF0aW9uc3RhcnQiKSxuMT1HYSgidHJhbnNpdGlvbnJ1biIpLG8xPUdhKCJ0cmFuc2l0aW9uc3RhcnQiKSxpMT1HYSgidHJhbnNpdGlvbmNhbmNlbCIpLGZkPUdhKCJ0cmFuc2l0aW9uZW5kIiksaGQ9bmV3IE1hcCxmcz0iYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO2ZzLnB1c2goInNjcm9sbEVuZCIpO2Z1bmN0aW9uIHRsKHQsZSl7aGQuc2V0KHQsZSksdmwoZSxbdF0pfXZhciBtZD1uZXcgV2Vha01hcDtmdW5jdGlvbiBxZSh0LGUpe2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwpe3ZhciBsPW1kLmdldCh0KTtyZXR1cm4gbCE9PXZvaWQgMD9sOihlPXt2YWx1ZTp0LHNvdXJjZTplLHN0YWNrOmJsKGUpfSxtZC5zZXQodCxlKSxlKX1yZXR1cm57dmFsdWU6dCxzb3VyY2U6ZSxzdGFjazpibChlKX19dmFyIEdlPVtdLHhuPTAsaHM9MDtmdW5jdGlvbiBNaSgpe2Zvcih2YXIgdD14bixlPWhzPXhuPTA7ZTx0Oyl7dmFyIGw9R2VbZV07R2VbZSsrXT1udWxsO3ZhciBhPUdlW2VdO0dlW2UrK109bnVsbDt2YXIgbj1HZVtlXTtHZVtlKytdPW51bGw7dmFyIG89R2VbZV07aWYoR2VbZSsrXT1udWxsLGEhPT1udWxsJiZuIT09bnVsbCl7dmFyIGM9YS5wZW5kaW5nO2M9PT1udWxsP24ubmV4dD1uOihuLm5leHQ9Yy5uZXh0LGMubmV4dD1uKSxhLnBlbmRpbmc9bn1vIT09MCYmZ2QobCxuLG8pfX1mdW5jdGlvbiBBaSh0LGUsbCxhKXtHZVt4bisrXT10LEdlW3huKytdPWUsR2VbeG4rK109bCxHZVt4bisrXT1hLGhzfD1hLHQubGFuZXN8PWEsdD10LmFsdGVybmF0ZSx0IT09bnVsbCYmKHQubGFuZXN8PWEpfWZ1bmN0aW9uIG1zKHQsZSxsLGEpe3JldHVybiBBaSh0LGUsbCxhKSxSaSh0KX1mdW5jdGlvbiB3bih0LGUpe3JldHVybiBBaSh0LG51bGwsbnVsbCxlKSxSaSh0KX1mdW5jdGlvbiBnZCh0LGUsbCl7dC5sYW5lc3w9bDt2YXIgYT10LmFsdGVybmF0ZTthIT09bnVsbCYmKGEubGFuZXN8PWwpO2Zvcih2YXIgbj0hMSxvPXQucmV0dXJuO28hPT1udWxsOylvLmNoaWxkTGFuZXN8PWwsYT1vLmFsdGVybmF0ZSxhIT09bnVsbCYmKGEuY2hpbGRMYW5lc3w9bCksby50YWc9PT0yMiYmKHQ9by5zdGF0ZU5vZGUsdD09PW51bGx8fHQuX3Zpc2liaWxpdHkmMXx8KG49ITApKSx0PW8sbz1vLnJldHVybjtyZXR1cm4gdC50YWc9PT0zPyhvPXQuc3RhdGVOb2RlLG4mJmUhPT1udWxsJiYobj0zMS1XdChsKSx0PW8uaGlkZGVuVXBkYXRlcyxhPXRbbl0sYT09PW51bGw/dFtuXT1bZV06YS5wdXNoKGUpLGUubGFuZT1sfDUzNjg3MDkxMiksbyk6bnVsbH1mdW5jdGlvbiBSaSh0KXtpZig1MDxHbyl0aHJvdyBHbz0wLHhjPW51bGwsRXJyb3IocygxODUpKTtmb3IodmFyIGU9dC5yZXR1cm47ZSE9PW51bGw7KXQ9ZSxlPXQucmV0dXJuO3JldHVybiB0LnRhZz09PTM/dC5zdGF0ZU5vZGU6bnVsbH12YXIgU249e307ZnVuY3Rpb24gcjEodCxlLGwsYSl7dGhpcy50YWc9dCx0aGlzLmtleT1sLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmQ2xlYW51cD10aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPWUsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPWEsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIHplKHQsZSxsLGEpe3JldHVybiBuZXcgcjEodCxlLGwsYSl9ZnVuY3Rpb24gZ3ModCl7cmV0dXJuIHQ9dC5wcm90b3R5cGUsISghdHx8IXQuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gQ2wodCxlKXt2YXIgbD10LmFsdGVybmF0ZTtyZXR1cm4gbD09PW51bGw/KGw9emUodC50YWcsZSx0LmtleSx0Lm1vZGUpLGwuZWxlbWVudFR5cGU9dC5lbGVtZW50VHlwZSxsLnR5cGU9dC50eXBlLGwuc3RhdGVOb2RlPXQuc3RhdGVOb2RlLGwuYWx0ZXJuYXRlPXQsdC5hbHRlcm5hdGU9bCk6KGwucGVuZGluZ1Byb3BzPWUsbC50eXBlPXQudHlwZSxsLmZsYWdzPTAsbC5zdWJ0cmVlRmxhZ3M9MCxsLmRlbGV0aW9ucz1udWxsKSxsLmZsYWdzPXQuZmxhZ3MmNjUwMTE3MTIsbC5jaGlsZExhbmVzPXQuY2hpbGRMYW5lcyxsLmxhbmVzPXQubGFuZXMsbC5jaGlsZD10LmNoaWxkLGwubWVtb2l6ZWRQcm9wcz10Lm1lbW9pemVkUHJvcHMsbC5tZW1vaXplZFN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxsLnVwZGF0ZVF1ZXVlPXQudXBkYXRlUXVldWUsZT10LmRlcGVuZGVuY2llcyxsLmRlcGVuZGVuY2llcz1lPT09bnVsbD9udWxsOntsYW5lczplLmxhbmVzLGZpcnN0Q29udGV4dDplLmZpcnN0Q29udGV4dH0sbC5zaWJsaW5nPXQuc2libGluZyxsLmluZGV4PXQuaW5kZXgsbC5yZWY9dC5yZWYsbC5yZWZDbGVhbnVwPXQucmVmQ2xlYW51cCxsfWZ1bmN0aW9uIHBkKHQsZSl7dC5mbGFncyY9NjUwMTE3MTQ7dmFyIGw9dC5hbHRlcm5hdGU7cmV0dXJuIGw9PT1udWxsPyh0LmNoaWxkTGFuZXM9MCx0LmxhbmVzPWUsdC5jaGlsZD1udWxsLHQuc3VidHJlZUZsYWdzPTAsdC5tZW1vaXplZFByb3BzPW51bGwsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQuZGVwZW5kZW5jaWVzPW51bGwsdC5zdGF0ZU5vZGU9bnVsbCk6KHQuY2hpbGRMYW5lcz1sLmNoaWxkTGFuZXMsdC5sYW5lcz1sLmxhbmVzLHQuY2hpbGQ9bC5jaGlsZCx0LnN1YnRyZWVGbGFncz0wLHQuZGVsZXRpb25zPW51bGwsdC5tZW1vaXplZFByb3BzPWwubWVtb2l6ZWRQcm9wcyx0Lm1lbW9pemVkU3RhdGU9bC5tZW1vaXplZFN0YXRlLHQudXBkYXRlUXVldWU9bC51cGRhdGVRdWV1ZSx0LnR5cGU9bC50eXBlLGU9bC5kZXBlbmRlbmNpZXMsdC5kZXBlbmRlbmNpZXM9ZT09PW51bGw/bnVsbDp7bGFuZXM6ZS5sYW5lcyxmaXJzdENvbnRleHQ6ZS5maXJzdENvbnRleHR9KSx0fWZ1bmN0aW9uIHppKHQsZSxsLGEsbixvKXt2YXIgYz0wO2lmKGE9dCx0eXBlb2YgdD09ImZ1bmN0aW9uIilncyh0KSYmKGM9MSk7ZWxzZSBpZih0eXBlb2YgdD09InN0cmluZyIpYz1jcCh0LGwsWi5jdXJyZW50KT8yNjp0PT09Imh0bWwifHx0PT09ImhlYWQifHx0PT09ImJvZHkiPzI3OjU7ZWxzZSB0OnN3aXRjaCh0KXtjYXNlIHh0OnJldHVybiB0PXplKDMxLGwsZSxuKSx0LmVsZW1lbnRUeXBlPXh0LHQubGFuZXM9byx0O2Nhc2UgRjpyZXR1cm4gWWEobC5jaGlsZHJlbixuLG8sZSk7Y2FzZSBhdDpjPTgsbnw9MjQ7YnJlYWs7Y2FzZSBjdDpyZXR1cm4gdD16ZSgxMixsLGUsbnwyKSx0LmVsZW1lbnRUeXBlPWN0LHQubGFuZXM9byx0O2Nhc2UgSDpyZXR1cm4gdD16ZSgxMyxsLGUsbiksdC5lbGVtZW50VHlwZT1ILHQubGFuZXM9byx0O2Nhc2UgaXQ6cmV0dXJuIHQ9emUoMTksbCxlLG4pLHQuZWxlbWVudFR5cGU9aXQsdC5sYW5lcz1vLHQ7ZGVmYXVsdDppZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXN3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIGh0OmNhc2UgazpjPTEwO2JyZWFrIHQ7Y2FzZSBTdDpjPTk7YnJlYWsgdDtjYXNlIFk6Yz0xMTticmVhayB0O2Nhc2UgcnQ6Yz0xNDticmVhayB0O2Nhc2UgWDpjPTE2LGE9bnVsbDticmVhayB0fWM9MjksbD1FcnJvcihzKDEzMCx0PT09bnVsbD8ibnVsbCI6dHlwZW9mIHQsIiIpKSxhPW51bGx9cmV0dXJuIGU9emUoYyxsLGUsbiksZS5lbGVtZW50VHlwZT10LGUudHlwZT1hLGUubGFuZXM9byxlfWZ1bmN0aW9uIFlhKHQsZSxsLGEpe3JldHVybiB0PXplKDcsdCxhLGUpLHQubGFuZXM9bCx0fWZ1bmN0aW9uIHBzKHQsZSxsKXtyZXR1cm4gdD16ZSg2LHQsbnVsbCxlKSx0LmxhbmVzPWwsdH1mdW5jdGlvbiB5cyh0LGUsbCl7cmV0dXJuIGU9emUoNCx0LmNoaWxkcmVuIT09bnVsbD90LmNoaWxkcmVuOltdLHQua2V5LGUpLGUubGFuZXM9bCxlLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzp0LmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246dC5pbXBsZW1lbnRhdGlvbn0sZX12YXIgQ249W10sRW49MCxOaT1udWxsLF9pPTAsWWU9W10sWGU9MCxYYT1udWxsLEVsPTEsVGw9IiI7ZnVuY3Rpb24gVmEodCxlKXtDbltFbisrXT1faSxDbltFbisrXT1OaSxOaT10LF9pPWV9ZnVuY3Rpb24geWQodCxlLGwpe1llW1hlKytdPUVsLFllW1hlKytdPVRsLFllW1hlKytdPVhhLFhhPXQ7dmFyIGE9RWw7dD1UbDt2YXIgbj0zMi1XdChhKS0xO2EmPX4oMTw8biksbCs9MTt2YXIgbz0zMi1XdChlKStuO2lmKDMwPG8pe3ZhciBjPW4tbiU1O289KGEmKDE8PGMpLTEpLnRvU3RyaW5nKDMyKSxhPj49YyxuLT1jLEVsPTE8PDMyLVd0KGUpK258bDw8bnxhLFRsPW8rdH1lbHNlIEVsPTE8PG98bDw8bnxhLFRsPXR9ZnVuY3Rpb24gdnModCl7dC5yZXR1cm4hPT1udWxsJiYoVmEodCwxKSx5ZCh0LDEsMCkpfWZ1bmN0aW9uIGJzKHQpe2Zvcig7dD09PU5pOylOaT1DblstLUVuXSxDbltFbl09bnVsbCxfaT1DblstLUVuXSxDbltFbl09bnVsbDtmb3IoO3Q9PT1YYTspWGE9WWVbLS1YZV0sWWVbWGVdPW51bGwsVGw9WWVbLS1YZV0sWWVbWGVdPW51bGwsRWw9WWVbLS1YZV0sWWVbWGVdPW51bGx9dmFyIGJlPW51bGwsVXQ9bnVsbCxFdD0hMSxaYT1udWxsLGNsPSExLHhzPUVycm9yKHMoNTE5KSk7ZnVuY3Rpb24gUWEodCl7dmFyIGU9RXJyb3Iocyg0MTgsIiIpKTt0aHJvdyBibyhxZShlLHQpKSx4c31mdW5jdGlvbiB2ZCh0KXt2YXIgZT10LnN0YXRlTm9kZSxsPXQudHlwZSxhPXQubWVtb2l6ZWRQcm9wcztzd2l0Y2goZVt0ZV09dCxlW3BlXT1hLGwpe2Nhc2UiZGlhbG9nIjp2dCgiY2FuY2VsIixlKSx2dCgiY2xvc2UiLGUpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6dnQoImxvYWQiLGUpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihsPTA7bDxYby5sZW5ndGg7bCsrKXZ0KFhvW2xdLGUpO2JyZWFrO2Nhc2Uic291cmNlIjp2dCgiZXJyb3IiLGUpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOnZ0KCJlcnJvciIsZSksdnQoImxvYWQiLGUpO2JyZWFrO2Nhc2UiZGV0YWlscyI6dnQoInRvZ2dsZSIsZSk7YnJlYWs7Y2FzZSJpbnB1dCI6dnQoImludmFsaWQiLGUpLFJhKGUsYS52YWx1ZSxhLmRlZmF1bHRWYWx1ZSxhLmNoZWNrZWQsYS5kZWZhdWx0Q2hlY2tlZCxhLnR5cGUsYS5uYW1lLCEwKSxyZShlKTticmVhaztjYXNlInNlbGVjdCI6dnQoImludmFsaWQiLGUpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOnZ0KCJpbnZhbGlkIixlKSxOYShlLGEudmFsdWUsYS5kZWZhdWx0VmFsdWUsYS5jaGlsZHJlbikscmUoZSl9bD1hLmNoaWxkcmVuLHR5cGVvZiBsIT0ic3RyaW5nIiYmdHlwZW9mIGwhPSJudW1iZXIiJiZ0eXBlb2YgbCE9ImJpZ2ludCJ8fGUudGV4dENvbnRlbnQ9PT0iIitsfHxhLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxCaChlLnRleHRDb250ZW50LGwpPyhhLnBvcG92ZXIhPW51bGwmJih2dCgiYmVmb3JldG9nZ2xlIixlKSx2dCgidG9nZ2xlIixlKSksYS5vblNjcm9sbCE9bnVsbCYmdnQoInNjcm9sbCIsZSksYS5vblNjcm9sbEVuZCE9bnVsbCYmdnQoInNjcm9sbGVuZCIsZSksYS5vbkNsaWNrIT1udWxsJiYoZS5vbmNsaWNrPWZyKSxlPSEwKTplPSExLGV8fFFhKHQpfWZ1bmN0aW9uIGJkKHQpe2ZvcihiZT10LnJldHVybjtiZTspc3dpdGNoKGJlLnRhZyl7Y2FzZSA1OmNhc2UgMTM6Y2w9ITE7cmV0dXJuO2Nhc2UgMjc6Y2FzZSAzOmNsPSEwO3JldHVybjtkZWZhdWx0OmJlPWJlLnJldHVybn19ZnVuY3Rpb24geW8odCl7aWYodCE9PWJlKXJldHVybiExO2lmKCFFdClyZXR1cm4gYmQodCksRXQ9ITAsITE7dmFyIGU9dC50YWcsbDtpZigobD1lIT09MyYmZSE9PTI3KSYmKChsPWU9PT01KSYmKGw9dC50eXBlLGw9IShsIT09ImZvcm0iJiZsIT09ImJ1dHRvbiIpfHxCYyh0LnR5cGUsdC5tZW1vaXplZFByb3BzKSksbD0hbCksbCYmVXQmJlFhKHQpLGJkKHQpLGU9PT0xMyl7aWYodD10Lm1lbW9pemVkU3RhdGUsdD10IT09bnVsbD90LmRlaHlkcmF0ZWQ6bnVsbCwhdCl0aHJvdyBFcnJvcihzKDMxNykpO3Q6e2Zvcih0PXQubmV4dFNpYmxpbmcsZT0wO3Q7KXtpZih0Lm5vZGVUeXBlPT09OClpZihsPXQuZGF0YSxsPT09Ii8kIil7aWYoZT09PTApe1V0PWxsKHQubmV4dFNpYmxpbmcpO2JyZWFrIHR9ZS0tfWVsc2UgbCE9PSIkIiYmbCE9PSIkISImJmwhPT0iJD8ifHxlKys7dD10Lm5leHRTaWJsaW5nfVV0PW51bGx9fWVsc2UgZT09PTI3PyhlPVV0LGZhKHQudHlwZSk/KHQ9cWMscWM9bnVsbCxVdD10KTpVdD1lKTpVdD1iZT9sbCh0LnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiB2bygpe1V0PWJlPW51bGwsRXQ9ITF9ZnVuY3Rpb24geGQoKXt2YXIgdD1aYTtyZXR1cm4gdCE9PW51bGwmJihNZT09PW51bGw/TWU9dDpNZS5wdXNoLmFwcGx5KE1lLHQpLFphPW51bGwpLHR9ZnVuY3Rpb24gYm8odCl7WmE9PT1udWxsP1phPVt0XTpaYS5wdXNoKHQpfXZhciB3cz1qKG51bGwpLEthPW51bGwsRGw9bnVsbDtmdW5jdGlvbiAkbCh0LGUsbCl7cSh3cyxlLl9jdXJyZW50VmFsdWUpLGUuX2N1cnJlbnRWYWx1ZT1sfWZ1bmN0aW9uIE1sKHQpe3QuX2N1cnJlbnRWYWx1ZT13cy5jdXJyZW50LFYod3MpfWZ1bmN0aW9uIFNzKHQsZSxsKXtmb3IoO3QhPT1udWxsOyl7dmFyIGE9dC5hbHRlcm5hdGU7aWYoKHQuY2hpbGRMYW5lcyZlKSE9PWU/KHQuY2hpbGRMYW5lc3w9ZSxhIT09bnVsbCYmKGEuY2hpbGRMYW5lc3w9ZSkpOmEhPT1udWxsJiYoYS5jaGlsZExhbmVzJmUpIT09ZSYmKGEuY2hpbGRMYW5lc3w9ZSksdD09PWwpYnJlYWs7dD10LnJldHVybn19ZnVuY3Rpb24gQ3ModCxlLGwsYSl7dmFyIG49dC5jaGlsZDtmb3IobiE9PW51bGwmJihuLnJldHVybj10KTtuIT09bnVsbDspe3ZhciBvPW4uZGVwZW5kZW5jaWVzO2lmKG8hPT1udWxsKXt2YXIgYz1uLmNoaWxkO289by5maXJzdENvbnRleHQ7dDpmb3IoO28hPT1udWxsOyl7dmFyIGQ9bztvPW47Zm9yKHZhciBnPTA7ZzxlLmxlbmd0aDtnKyspaWYoZC5jb250ZXh0PT09ZVtnXSl7by5sYW5lc3w9bCxkPW8uYWx0ZXJuYXRlLGQhPT1udWxsJiYoZC5sYW5lc3w9bCksU3Moby5yZXR1cm4sbCx0KSxhfHwoYz1udWxsKTticmVhayB0fW89ZC5uZXh0fX1lbHNlIGlmKG4udGFnPT09MTgpe2lmKGM9bi5yZXR1cm4sYz09PW51bGwpdGhyb3cgRXJyb3IocygzNDEpKTtjLmxhbmVzfD1sLG89Yy5hbHRlcm5hdGUsbyE9PW51bGwmJihvLmxhbmVzfD1sKSxTcyhjLGwsdCksYz1udWxsfWVsc2UgYz1uLmNoaWxkO2lmKGMhPT1udWxsKWMucmV0dXJuPW47ZWxzZSBmb3IoYz1uO2MhPT1udWxsOyl7aWYoYz09PXQpe2M9bnVsbDticmVha31pZihuPWMuc2libGluZyxuIT09bnVsbCl7bi5yZXR1cm49Yy5yZXR1cm4sYz1uO2JyZWFrfWM9Yy5yZXR1cm59bj1jfX1mdW5jdGlvbiB4byh0LGUsbCxhKXt0PW51bGw7Zm9yKHZhciBuPWUsbz0hMTtuIT09bnVsbDspe2lmKCFvKXtpZigobi5mbGFncyY1MjQyODgpIT09MClvPSEwO2Vsc2UgaWYoKG4uZmxhZ3MmMjYyMTQ0KSE9PTApYnJlYWt9aWYobi50YWc9PT0xMCl7dmFyIGM9bi5hbHRlcm5hdGU7aWYoYz09PW51bGwpdGhyb3cgRXJyb3IocygzODcpKTtpZihjPWMubWVtb2l6ZWRQcm9wcyxjIT09bnVsbCl7dmFyIGQ9bi50eXBlO1JlKG4ucGVuZGluZ1Byb3BzLnZhbHVlLGMudmFsdWUpfHwodCE9PW51bGw/dC5wdXNoKGQpOnQ9W2RdKX19ZWxzZSBpZihuPT09Z3QuY3VycmVudCl7aWYoYz1uLmFsdGVybmF0ZSxjPT09bnVsbCl0aHJvdyBFcnJvcihzKDM4NykpO2MubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlIT09bi5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUmJih0IT09bnVsbD90LnB1c2goSm8pOnQ9W0pvXSl9bj1uLnJldHVybn10IT09bnVsbCYmQ3MoZSx0LGwsYSksZS5mbGFnc3w9MjYyMTQ0fWZ1bmN0aW9uIGtpKHQpe2Zvcih0PXQuZmlyc3RDb250ZXh0O3QhPT1udWxsOyl7aWYoIVJlKHQuY29udGV4dC5fY3VycmVudFZhbHVlLHQubWVtb2l6ZWRWYWx1ZSkpcmV0dXJuITA7dD10Lm5leHR9cmV0dXJuITF9ZnVuY3Rpb24gUGEodCl7S2E9dCxEbD1udWxsLHQ9dC5kZXBlbmRlbmNpZXMsdCE9PW51bGwmJih0LmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiB5ZSh0KXtyZXR1cm4gd2QoS2EsdCl9ZnVuY3Rpb24gT2kodCxlKXtyZXR1cm4gS2E9PT1udWxsJiZQYSh0KSx3ZCh0LGUpfWZ1bmN0aW9uIHdkKHQsZSl7dmFyIGw9ZS5fY3VycmVudFZhbHVlO2lmKGU9e2NvbnRleHQ6ZSxtZW1vaXplZFZhbHVlOmwsbmV4dDpudWxsfSxEbD09PW51bGwpe2lmKHQ9PT1udWxsKXRocm93IEVycm9yKHMoMzA4KSk7RGw9ZSx0LmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6ZX0sdC5mbGFnc3w9NTI0Mjg4fWVsc2UgRGw9RGwubmV4dD1lO3JldHVybiBsfXZhciBzMT10eXBlb2YgQWJvcnRDb250cm9sbGVyPCJ1Ij9BYm9ydENvbnRyb2xsZXI6ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuc2lnbmFsPXthYm9ydGVkOiExLGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24obCxhKXt0LnB1c2goYSl9fTt0aGlzLmFib3J0PWZ1bmN0aW9uKCl7ZS5hYm9ydGVkPSEwLHQuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gbCgpfSl9fSxjMT1yLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssdTE9ci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwkdD17JCR0eXBlb2Y6ayxDb25zdW1lcjpudWxsLFByb3ZpZGVyOm51bGwsX2N1cnJlbnRWYWx1ZTpudWxsLF9jdXJyZW50VmFsdWUyOm51bGwsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIEVzKCl7cmV0dXJue2NvbnRyb2xsZXI6bmV3IHMxLGRhdGE6bmV3IE1hcCxyZWZDb3VudDowfX1mdW5jdGlvbiB3byh0KXt0LnJlZkNvdW50LS0sdC5yZWZDb3VudD09PTAmJmMxKHUxLGZ1bmN0aW9uKCl7dC5jb250cm9sbGVyLmFib3J0KCl9KX12YXIgU289bnVsbCxUcz0wLFRuPTAsRG49bnVsbDtmdW5jdGlvbiBkMSh0LGUpe2lmKFNvPT09bnVsbCl7dmFyIGw9U289W107VHM9MCxUbj1NYygpLERuPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKGEpe2wucHVzaChhKX19fXJldHVybiBUcysrLGUudGhlbihTZCxTZCksZX1mdW5jdGlvbiBTZCgpe2lmKC0tVHM9PT0wJiZTbyE9PW51bGwpe0RuIT09bnVsbCYmKERuLnN0YXR1cz0iZnVsZmlsbGVkIik7dmFyIHQ9U287U289bnVsbCxUbj0wLERuPW51bGw7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspKDAsdFtlXSkoKX19ZnVuY3Rpb24gZjEodCxlKXt2YXIgbD1bXSxhPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbihuKXtsLnB1c2gobil9fTtyZXR1cm4gdC50aGVuKGZ1bmN0aW9uKCl7YS5zdGF0dXM9ImZ1bGZpbGxlZCIsYS52YWx1ZT1lO2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKSgwLGxbbl0pKGUpfSxmdW5jdGlvbihuKXtmb3IoYS5zdGF0dXM9InJlamVjdGVkIixhLnJlYXNvbj1uLG49MDtuPGwubGVuZ3RoO24rKykoMCxsW25dKSh2b2lkIDApfSksYX12YXIgQ2Q9QS5TO0EuUz1mdW5jdGlvbih0LGUpe3R5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiImJmQxKHQsZSksQ2QhPT1udWxsJiZDZCh0LGUpfTt2YXIgSmE9aihudWxsKTtmdW5jdGlvbiBEcygpe3ZhciB0PUphLmN1cnJlbnQ7cmV0dXJuIHQhPT1udWxsP3Q6anQucG9vbGVkQ2FjaGV9ZnVuY3Rpb24gamkodCxlKXtlPT09bnVsbD9xKEphLEphLmN1cnJlbnQpOnEoSmEsZS5wb29sKX1mdW5jdGlvbiBFZCgpe3ZhciB0PURzKCk7cmV0dXJuIHQ9PT1udWxsP251bGw6e3BhcmVudDokdC5fY3VycmVudFZhbHVlLHBvb2w6dH19dmFyIENvPUVycm9yKHMoNDYwKSksVGQ9RXJyb3Iocyg0NzQpKSxCaT1FcnJvcihzKDU0MikpLE1zPXt0aGVuOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gRGQodCl7cmV0dXJuIHQ9dC5zdGF0dXMsdD09PSJmdWxmaWxsZWQifHx0PT09InJlamVjdGVkIn1mdW5jdGlvbiBMaSgpe31mdW5jdGlvbiBNZCh0LGUsbCl7c3dpdGNoKGw9dFtsXSxsPT09dm9pZCAwP3QucHVzaChlKTpsIT09ZSYmKGUudGhlbihMaSxMaSksZT1sKSxlLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBlLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IHQ9ZS5yZWFzb24sUmQodCksdDtkZWZhdWx0OmlmKHR5cGVvZiBlLnN0YXR1cz09InN0cmluZyIpZS50aGVuKExpLExpKTtlbHNle2lmKHQ9anQsdCE9PW51bGwmJjEwMDx0LnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3Iocyg0ODIpKTt0PWUsdC5zdGF0dXM9InBlbmRpbmciLHQudGhlbihmdW5jdGlvbihhKXtpZihlLnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIG49ZTtuLnN0YXR1cz0iZnVsZmlsbGVkIixuLnZhbHVlPWF9fSxmdW5jdGlvbihhKXtpZihlLnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIG49ZTtuLnN0YXR1cz0icmVqZWN0ZWQiLG4ucmVhc29uPWF9fSl9c3dpdGNoKGUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGUudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgdD1lLnJlYXNvbixSZCh0KSx0fXRocm93IEVvPWUsQ299fXZhciBFbz1udWxsO2Z1bmN0aW9uIEFkKCl7aWYoRW89PT1udWxsKXRocm93IEVycm9yKHMoNDU5KSk7dmFyIHQ9RW87cmV0dXJuIEVvPW51bGwsdH1mdW5jdGlvbiBSZCh0KXtpZih0PT09Q298fHQ9PT1CaSl0aHJvdyBFcnJvcihzKDQ4MykpfXZhciBGbD0hMTtmdW5jdGlvbiBBcyh0KXt0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6dC5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsbGFuZXM6MCxoaWRkZW5DYWxsYmFja3M6bnVsbH0sY2FsbGJhY2tzOm51bGx9fWZ1bmN0aW9uIFJzKHQsZSl7dD10LnVwZGF0ZVF1ZXVlLGUudXBkYXRlUXVldWU9PT10JiYoZS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOnQuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTp0LmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTp0Lmxhc3RCYXNlVXBkYXRlLHNoYXJlZDp0LnNoYXJlZCxjYWxsYmFja3M6bnVsbH0pfWZ1bmN0aW9uIElsKHQpe3JldHVybntsYW5lOnQsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiB0YSh0LGUsbCl7dmFyIGE9dC51cGRhdGVRdWV1ZTtpZihhPT09bnVsbClyZXR1cm4gbnVsbDtpZihhPWEuc2hhcmVkLChBdCYyKSE9PTApe3ZhciBuPWEucGVuZGluZztyZXR1cm4gbj09PW51bGw/ZS5uZXh0PWU6KGUubmV4dD1uLm5leHQsbi5uZXh0PWUpLGEucGVuZGluZz1lLGU9UmkodCksZ2QodCxudWxsLGwpLGV9cmV0dXJuIEFpKHQsYSxlLGwpLFJpKHQpfWZ1bmN0aW9uIFRvKHQsZSxsKXtpZihlPWUudXBkYXRlUXVldWUsZSE9PW51bGwmJihlPWUuc2hhcmVkLChsJjQxOTQwNDgpIT09MCkpe3ZhciBhPWUubGFuZXM7YSY9dC5wZW5kaW5nTGFuZXMsbHw9YSxlLmxhbmVzPWwsbWkodCxsKX19ZnVuY3Rpb24genModCxlKXt2YXIgbD10LnVwZGF0ZVF1ZXVlLGE9dC5hbHRlcm5hdGU7aWYoYSE9PW51bGwmJihhPWEudXBkYXRlUXVldWUsbD09PWEpKXt2YXIgbj1udWxsLG89bnVsbDtpZihsPWwuZmlyc3RCYXNlVXBkYXRlLGwhPT1udWxsKXtkb3t2YXIgYz17bGFuZTpsLmxhbmUsdGFnOmwudGFnLHBheWxvYWQ6bC5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfTtvPT09bnVsbD9uPW89YzpvPW8ubmV4dD1jLGw9bC5uZXh0fXdoaWxlKGwhPT1udWxsKTtvPT09bnVsbD9uPW89ZTpvPW8ubmV4dD1lfWVsc2Ugbj1vPWU7bD17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpuLGxhc3RCYXNlVXBkYXRlOm8sc2hhcmVkOmEuc2hhcmVkLGNhbGxiYWNrczphLmNhbGxiYWNrc30sdC51cGRhdGVRdWV1ZT1sO3JldHVybn10PWwubGFzdEJhc2VVcGRhdGUsdD09PW51bGw/bC5maXJzdEJhc2VVcGRhdGU9ZTp0Lm5leHQ9ZSxsLmxhc3RCYXNlVXBkYXRlPWV9dmFyIE5zPSExO2Z1bmN0aW9uIERvKCl7aWYoTnMpe3ZhciB0PURuO2lmKHQhPT1udWxsKXRocm93IHR9fWZ1bmN0aW9uIE1vKHQsZSxsLGEpe05zPSExO3ZhciBuPXQudXBkYXRlUXVldWU7Rmw9ITE7dmFyIG89bi5maXJzdEJhc2VVcGRhdGUsYz1uLmxhc3RCYXNlVXBkYXRlLGQ9bi5zaGFyZWQucGVuZGluZztpZihkIT09bnVsbCl7bi5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBnPWQsUz1nLm5leHQ7Zy5uZXh0PW51bGwsYz09PW51bGw/bz1TOmMubmV4dD1TLGM9Zzt2YXIgej10LmFsdGVybmF0ZTt6IT09bnVsbCYmKHo9ei51cGRhdGVRdWV1ZSxkPXoubGFzdEJhc2VVcGRhdGUsZCE9PWMmJihkPT09bnVsbD96LmZpcnN0QmFzZVVwZGF0ZT1TOmQubmV4dD1TLHoubGFzdEJhc2VVcGRhdGU9ZykpfWlmKG8hPT1udWxsKXt2YXIgTz1uLmJhc2VTdGF0ZTtjPTAsej1TPWc9bnVsbCxkPW87ZG97dmFyIEU9ZC5sYW5lJi01MzY4NzA5MTMsVD1FIT09ZC5sYW5lO2lmKFQ/KHd0JkUpPT09RTooYSZFKT09PUUpe0UhPT0wJiZFPT09VG4mJihOcz0hMCkseiE9PW51bGwmJih6PXoubmV4dD17bGFuZTowLHRhZzpkLnRhZyxwYXlsb2FkOmQucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH0pO3Q6e3ZhciBsdD10LEk9ZDtFPWU7dmFyIF90PWw7c3dpdGNoKEkudGFnKXtjYXNlIDE6aWYobHQ9SS5wYXlsb2FkLHR5cGVvZiBsdD09ImZ1bmN0aW9uIil7Tz1sdC5jYWxsKF90LE8sRSk7YnJlYWsgdH1PPWx0O2JyZWFrIHQ7Y2FzZSAzOmx0LmZsYWdzPWx0LmZsYWdzJi02NTUzN3wxMjg7Y2FzZSAwOmlmKGx0PUkucGF5bG9hZCxFPXR5cGVvZiBsdD09ImZ1bmN0aW9uIj9sdC5jYWxsKF90LE8sRSk6bHQsRT09bnVsbClicmVhayB0O089RCh7fSxPLEUpO2JyZWFrIHQ7Y2FzZSAyOkZsPSEwfX1FPWQuY2FsbGJhY2ssRSE9PW51bGwmJih0LmZsYWdzfD02NCxUJiYodC5mbGFnc3w9ODE5MiksVD1uLmNhbGxiYWNrcyxUPT09bnVsbD9uLmNhbGxiYWNrcz1bRV06VC5wdXNoKEUpKX1lbHNlIFQ9e2xhbmU6RSx0YWc6ZC50YWcscGF5bG9hZDpkLnBheWxvYWQsY2FsbGJhY2s6ZC5jYWxsYmFjayxuZXh0Om51bGx9LHo9PT1udWxsPyhTPXo9VCxnPU8pOno9ei5uZXh0PVQsY3w9RTtpZihkPWQubmV4dCxkPT09bnVsbCl7aWYoZD1uLnNoYXJlZC5wZW5kaW5nLGQ9PT1udWxsKWJyZWFrO1Q9ZCxkPVQubmV4dCxULm5leHQ9bnVsbCxuLmxhc3RCYXNlVXBkYXRlPVQsbi5zaGFyZWQucGVuZGluZz1udWxsfX13aGlsZSghMCk7ej09PW51bGwmJihnPU8pLG4uYmFzZVN0YXRlPWcsbi5maXJzdEJhc2VVcGRhdGU9UyxuLmxhc3RCYXNlVXBkYXRlPXosbz09PW51bGwmJihuLnNoYXJlZC5sYW5lcz0wKSxzYXw9Yyx0LmxhbmVzPWMsdC5tZW1vaXplZFN0YXRlPU99fWZ1bmN0aW9uIHpkKHQsZSl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IocygxOTEsdCkpO3QuY2FsbChlKX1mdW5jdGlvbiBOZCh0LGUpe3ZhciBsPXQuY2FsbGJhY2tzO2lmKGwhPT1udWxsKWZvcih0LmNhbGxiYWNrcz1udWxsLHQ9MDt0PGwubGVuZ3RoO3QrKyl6ZChsW3RdLGUpfXZhciBNbj1qKG51bGwpLEhpPWooMCk7ZnVuY3Rpb24gX2QodCxlKXt0PU9sLHEoSGksdCkscShNbixlKSxPbD10fGUuYmFzZUxhbmVzfWZ1bmN0aW9uIF9zKCl7cShIaSxPbCkscShNbixNbi5jdXJyZW50KX1mdW5jdGlvbiBrcygpe09sPUhpLmN1cnJlbnQsVihNbiksVihIaSl9dmFyIGVhPTAsbXQ9bnVsbCx6dD1udWxsLFp0PW51bGwsVWk9ITEsQW49ITEsV2E9ITEscWk9MCxBbz0wLFJuPW51bGwsaDE9MDtmdW5jdGlvbiBHdCgpe3Rocm93IEVycm9yKHMoMzIxKSl9ZnVuY3Rpb24gT3ModCxlKXtpZihlPT09bnVsbClyZXR1cm4hMTtmb3IodmFyIGw9MDtsPGUubGVuZ3RoJiZsPHQubGVuZ3RoO2wrKylpZighUmUodFtsXSxlW2xdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBqcyh0LGUsbCxhLG4sbyl7cmV0dXJuIGVhPW8sbXQ9ZSxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5sYW5lcz0wLEEuSD10PT09bnVsbHx8dC5tZW1vaXplZFN0YXRlPT09bnVsbD9wZjp5ZixXYT0hMSxvPWwoYSxuKSxXYT0hMSxBbiYmKG89T2QoZSxsLGEsbikpLGtkKHQpLG99ZnVuY3Rpb24ga2QodCl7QS5IPVFpO3ZhciBlPXp0IT09bnVsbCYmenQubmV4dCE9PW51bGw7aWYoZWE9MCxadD16dD1tdD1udWxsLFVpPSExLEFvPTAsUm49bnVsbCxlKXRocm93IEVycm9yKHMoMzAwKSk7dD09PW51bGx8fGFlfHwodD10LmRlcGVuZGVuY2llcyx0IT09bnVsbCYma2kodCkmJihhZT0hMCkpfWZ1bmN0aW9uIE9kKHQsZSxsLGEpe210PXQ7dmFyIG49MDtkb3tpZihBbiYmKFJuPW51bGwpLEFvPTAsQW49ITEsMjU8PW4pdGhyb3cgRXJyb3IocygzMDEpKTtpZihuKz0xLFp0PXp0PW51bGwsdC51cGRhdGVRdWV1ZSE9bnVsbCl7dmFyIG89dC51cGRhdGVRdWV1ZTtvLmxhc3RFZmZlY3Q9bnVsbCxvLmV2ZW50cz1udWxsLG8uc3RvcmVzPW51bGwsby5tZW1vQ2FjaGUhPW51bGwmJihvLm1lbW9DYWNoZS5pbmRleD0wKX1BLkg9eDEsbz1lKGwsYSl9d2hpbGUoQW4pO3JldHVybiBvfWZ1bmN0aW9uIG0xKCl7dmFyIHQ9QS5ILGU9dC51c2VTdGF0ZSgpWzBdO3JldHVybiBlPXR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiI/Um8oZSk6ZSx0PXQudXNlU3RhdGUoKVswXSwoenQhPT1udWxsP3p0Lm1lbW9pemVkU3RhdGU6bnVsbCkhPT10JiYobXQuZmxhZ3N8PTEwMjQpLGV9ZnVuY3Rpb24gQnMoKXt2YXIgdD1xaSE9PTA7cmV0dXJuIHFpPTAsdH1mdW5jdGlvbiBMcyh0LGUsbCl7ZS51cGRhdGVRdWV1ZT10LnVwZGF0ZVF1ZXVlLGUuZmxhZ3MmPS0yMDUzLHQubGFuZXMmPX5sfWZ1bmN0aW9uIEhzKHQpe2lmKFVpKXtmb3IodD10Lm1lbW9pemVkU3RhdGU7dCE9PW51bGw7KXt2YXIgZT10LnF1ZXVlO2UhPT1udWxsJiYoZS5wZW5kaW5nPW51bGwpLHQ9dC5uZXh0fVVpPSExfWVhPTAsWnQ9enQ9bXQ9bnVsbCxBbj0hMSxBbz1xaT0wLFJuPW51bGx9ZnVuY3Rpb24gVGUoKXt2YXIgdD17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gWnQ9PT1udWxsP210Lm1lbW9pemVkU3RhdGU9WnQ9dDpadD1adC5uZXh0PXQsWnR9ZnVuY3Rpb24gUXQoKXtpZih6dD09PW51bGwpe3ZhciB0PW10LmFsdGVybmF0ZTt0PXQhPT1udWxsP3QubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgdD16dC5uZXh0O3ZhciBlPVp0PT09bnVsbD9tdC5tZW1vaXplZFN0YXRlOlp0Lm5leHQ7aWYoZSE9PW51bGwpWnQ9ZSx6dD10O2Vsc2V7aWYodD09PW51bGwpdGhyb3cgbXQuYWx0ZXJuYXRlPT09bnVsbD9FcnJvcihzKDQ2NykpOkVycm9yKHMoMzEwKSk7enQ9dCx0PXttZW1vaXplZFN0YXRlOnp0Lm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOnp0LmJhc2VTdGF0ZSxiYXNlUXVldWU6enQuYmFzZVF1ZXVlLHF1ZXVlOnp0LnF1ZXVlLG5leHQ6bnVsbH0sWnQ9PT1udWxsP210Lm1lbW9pemVkU3RhdGU9WnQ9dDpadD1adC5uZXh0PXR9cmV0dXJuIFp0fWZ1bmN0aW9uIFVzKCl7cmV0dXJue2xhc3RFZmZlY3Q6bnVsbCxldmVudHM6bnVsbCxzdG9yZXM6bnVsbCxtZW1vQ2FjaGU6bnVsbH19ZnVuY3Rpb24gUm8odCl7dmFyIGU9QW87cmV0dXJuIEFvKz0xLFJuPT09bnVsbCYmKFJuPVtdKSx0PU1kKFJuLHQsZSksZT1tdCwoWnQ9PT1udWxsP2UubWVtb2l6ZWRTdGF0ZTpadC5uZXh0KT09PW51bGwmJihlPWUuYWx0ZXJuYXRlLEEuSD1lPT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlPT09bnVsbD9wZjp5ZiksdH1mdW5jdGlvbiBHaSh0KXtpZih0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtpZih0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBSbyh0KTtpZih0LiQkdHlwZW9mPT09aylyZXR1cm4geWUodCl9dGhyb3cgRXJyb3Iocyg0MzgsU3RyaW5nKHQpKSl9ZnVuY3Rpb24gcXModCl7dmFyIGU9bnVsbCxsPW10LnVwZGF0ZVF1ZXVlO2lmKGwhPT1udWxsJiYoZT1sLm1lbW9DYWNoZSksZT09bnVsbCl7dmFyIGE9bXQuYWx0ZXJuYXRlO2EhPT1udWxsJiYoYT1hLnVwZGF0ZVF1ZXVlLGEhPT1udWxsJiYoYT1hLm1lbW9DYWNoZSxhIT1udWxsJiYoZT17ZGF0YTphLmRhdGEubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnNsaWNlKCl9KSxpbmRleDowfSkpKX1pZihlPT1udWxsJiYoZT17ZGF0YTpbXSxpbmRleDowfSksbD09PW51bGwmJihsPVVzKCksbXQudXBkYXRlUXVldWU9bCksbC5tZW1vQ2FjaGU9ZSxsPWUuZGF0YVtlLmluZGV4XSxsPT09dm9pZCAwKWZvcihsPWUuZGF0YVtlLmluZGV4XT1BcnJheSh0KSxhPTA7YTx0O2ErKylsW2FdPUJlO3JldHVybiBlLmluZGV4KyssbH1mdW5jdGlvbiBBbCh0LGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQpOmV9ZnVuY3Rpb24gWWkodCl7dmFyIGU9UXQoKTtyZXR1cm4gR3MoZSx6dCx0KX1mdW5jdGlvbiBHcyh0LGUsbCl7dmFyIGE9dC5xdWV1ZTtpZihhPT09bnVsbCl0aHJvdyBFcnJvcihzKDMxMSkpO2EubGFzdFJlbmRlcmVkUmVkdWNlcj1sO3ZhciBuPXQuYmFzZVF1ZXVlLG89YS5wZW5kaW5nO2lmKG8hPT1udWxsKXtpZihuIT09bnVsbCl7dmFyIGM9bi5uZXh0O24ubmV4dD1vLm5leHQsby5uZXh0PWN9ZS5iYXNlUXVldWU9bj1vLGEucGVuZGluZz1udWxsfWlmKG89dC5iYXNlU3RhdGUsbj09PW51bGwpdC5tZW1vaXplZFN0YXRlPW87ZWxzZXtlPW4ubmV4dDt2YXIgZD1jPW51bGwsZz1udWxsLFM9ZSx6PSExO2Rve3ZhciBPPVMubGFuZSYtNTM2ODcwOTEzO2lmKE8hPT1TLmxhbmU/KHd0Jk8pPT09TzooZWEmTyk9PT1PKXt2YXIgRT1TLnJldmVydExhbmU7aWYoRT09PTApZyE9PW51bGwmJihnPWcubmV4dD17bGFuZTowLHJldmVydExhbmU6MCxhY3Rpb246Uy5hY3Rpb24saGFzRWFnZXJTdGF0ZTpTLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpTLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksTz09PVRuJiYoej0hMCk7ZWxzZSBpZigoZWEmRSk9PT1FKXtTPVMubmV4dCxFPT09VG4mJih6PSEwKTtjb250aW51ZX1lbHNlIE89e2xhbmU6MCxyZXZlcnRMYW5lOlMucmV2ZXJ0TGFuZSxhY3Rpb246Uy5hY3Rpb24saGFzRWFnZXJTdGF0ZTpTLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpTLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSxnPT09bnVsbD8oZD1nPU8sYz1vKTpnPWcubmV4dD1PLG10LmxhbmVzfD1FLHNhfD1FO089Uy5hY3Rpb24sV2EmJmwobyxPKSxvPVMuaGFzRWFnZXJTdGF0ZT9TLmVhZ2VyU3RhdGU6bChvLE8pfWVsc2UgRT17bGFuZTpPLHJldmVydExhbmU6Uy5yZXZlcnRMYW5lLGFjdGlvbjpTLmFjdGlvbixoYXNFYWdlclN0YXRlOlMuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOlMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LGc9PT1udWxsPyhkPWc9RSxjPW8pOmc9Zy5uZXh0PUUsbXQubGFuZXN8PU8sc2F8PU87Uz1TLm5leHR9d2hpbGUoUyE9PW51bGwmJlMhPT1lKTtpZihnPT09bnVsbD9jPW86Zy5uZXh0PWQsIVJlKG8sdC5tZW1vaXplZFN0YXRlKSYmKGFlPSEwLHomJihsPURuLGwhPT1udWxsKSkpdGhyb3cgbDt0Lm1lbW9pemVkU3RhdGU9byx0LmJhc2VTdGF0ZT1jLHQuYmFzZVF1ZXVlPWcsYS5sYXN0UmVuZGVyZWRTdGF0ZT1vfXJldHVybiBuPT09bnVsbCYmKGEubGFuZXM9MCksW3QubWVtb2l6ZWRTdGF0ZSxhLmRpc3BhdGNoXX1mdW5jdGlvbiBZcyh0KXt2YXIgZT1RdCgpLGw9ZS5xdWV1ZTtpZihsPT09bnVsbCl0aHJvdyBFcnJvcihzKDMxMSkpO2wubGFzdFJlbmRlcmVkUmVkdWNlcj10O3ZhciBhPWwuZGlzcGF0Y2gsbj1sLnBlbmRpbmcsbz1lLm1lbW9pemVkU3RhdGU7aWYobiE9PW51bGwpe2wucGVuZGluZz1udWxsO3ZhciBjPW49bi5uZXh0O2RvIG89dChvLGMuYWN0aW9uKSxjPWMubmV4dDt3aGlsZShjIT09bik7UmUobyxlLm1lbW9pemVkU3RhdGUpfHwoYWU9ITApLGUubWVtb2l6ZWRTdGF0ZT1vLGUuYmFzZVF1ZXVlPT09bnVsbCYmKGUuYmFzZVN0YXRlPW8pLGwubGFzdFJlbmRlcmVkU3RhdGU9b31yZXR1cm5bbyxhXX1mdW5jdGlvbiBqZCh0LGUsbCl7dmFyIGE9bXQsbj1RdCgpLG89RXQ7aWYobyl7aWYobD09PXZvaWQgMCl0aHJvdyBFcnJvcihzKDQwNykpO2w9bCgpfWVsc2UgbD1lKCk7dmFyIGM9IVJlKCh6dHx8bikubWVtb2l6ZWRTdGF0ZSxsKTtjJiYobi5tZW1vaXplZFN0YXRlPWwsYWU9ITApLG49bi5xdWV1ZTt2YXIgZD1IZC5iaW5kKG51bGwsYSxuLHQpO2lmKHpvKDIwNDgsOCxkLFt0XSksbi5nZXRTbmFwc2hvdCE9PWV8fGN8fFp0IT09bnVsbCYmWnQubWVtb2l6ZWRTdGF0ZS50YWcmMSl7aWYoYS5mbGFnc3w9MjA0OCx6big5LFhpKCksTGQuYmluZChudWxsLGEsbixsLGUpLG51bGwpLGp0PT09bnVsbCl0aHJvdyBFcnJvcihzKDM0OSkpO298fChlYSYxMjQpIT09MHx8QmQoYSxlLGwpfXJldHVybiBsfWZ1bmN0aW9uIEJkKHQsZSxsKXt0LmZsYWdzfD0xNjM4NCx0PXtnZXRTbmFwc2hvdDplLHZhbHVlOmx9LGU9bXQudXBkYXRlUXVldWUsZT09PW51bGw/KGU9VXMoKSxtdC51cGRhdGVRdWV1ZT1lLGUuc3RvcmVzPVt0XSk6KGw9ZS5zdG9yZXMsbD09PW51bGw/ZS5zdG9yZXM9W3RdOmwucHVzaCh0KSl9ZnVuY3Rpb24gTGQodCxlLGwsYSl7ZS52YWx1ZT1sLGUuZ2V0U25hcHNob3Q9YSxVZChlKSYmcWQodCl9ZnVuY3Rpb24gSGQodCxlLGwpe3JldHVybiBsKGZ1bmN0aW9uKCl7VWQoZSkmJnFkKHQpfSl9ZnVuY3Rpb24gVWQodCl7dmFyIGU9dC5nZXRTbmFwc2hvdDt0PXQudmFsdWU7dHJ5e3ZhciBsPWUoKTtyZXR1cm4hUmUodCxsKX1jYXRjaHtyZXR1cm4hMH19ZnVuY3Rpb24gcWQodCl7dmFyIGU9d24odCwyKTtlIT09bnVsbCYmamUoZSx0LDIpfWZ1bmN0aW9uIFhzKHQpe3ZhciBlPVRlKCk7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpe3ZhciBsPXQ7aWYodD1sKCksV2Epe0plKCEwKTt0cnl7bCgpfWZpbmFsbHl7SmUoITEpfX19cmV0dXJuIGUubWVtb2l6ZWRTdGF0ZT1lLmJhc2VTdGF0ZT10LGUucXVldWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpBbCxsYXN0UmVuZGVyZWRTdGF0ZTp0fSxlfWZ1bmN0aW9uIEdkKHQsZSxsLGEpe3JldHVybiB0LmJhc2VTdGF0ZT1sLEdzKHQsenQsdHlwZW9mIGE9PSJmdW5jdGlvbiI/YTpBbCl9ZnVuY3Rpb24gZzEodCxlLGwsYSxuKXtpZihaaSh0KSl0aHJvdyBFcnJvcihzKDQ4NSkpO2lmKHQ9ZS5hY3Rpb24sdCE9PW51bGwpe3ZhciBvPXtwYXlsb2FkOm4sYWN0aW9uOnQsbmV4dDpudWxsLGlzVHJhbnNpdGlvbjohMCxzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24oYyl7by5saXN0ZW5lcnMucHVzaChjKX19O0EuVCE9PW51bGw/bCghMCk6by5pc1RyYW5zaXRpb249ITEsYShvKSxsPWUucGVuZGluZyxsPT09bnVsbD8oby5uZXh0PWUucGVuZGluZz1vLFlkKGUsbykpOihvLm5leHQ9bC5uZXh0LGUucGVuZGluZz1sLm5leHQ9byl9fWZ1bmN0aW9uIFlkKHQsZSl7dmFyIGw9ZS5hY3Rpb24sYT1lLnBheWxvYWQsbj10LnN0YXRlO2lmKGUuaXNUcmFuc2l0aW9uKXt2YXIgbz1BLlQsYz17fTtBLlQ9Yzt0cnl7dmFyIGQ9bChuLGEpLGc9QS5TO2chPT1udWxsJiZnKGMsZCksWGQodCxlLGQpfWNhdGNoKFMpe1ZzKHQsZSxTKX1maW5hbGx5e0EuVD1vfX1lbHNlIHRyeXtvPWwobixhKSxYZCh0LGUsbyl9Y2F0Y2goUyl7VnModCxlLFMpfX1mdW5jdGlvbiBYZCh0LGUsbCl7bCE9PW51bGwmJnR5cGVvZiBsPT0ib2JqZWN0IiYmdHlwZW9mIGwudGhlbj09ImZ1bmN0aW9uIj9sLnRoZW4oZnVuY3Rpb24oYSl7VmQodCxlLGEpfSxmdW5jdGlvbihhKXtyZXR1cm4gVnModCxlLGEpfSk6VmQodCxlLGwpfWZ1bmN0aW9uIFZkKHQsZSxsKXtlLnN0YXR1cz0iZnVsZmlsbGVkIixlLnZhbHVlPWwsWmQoZSksdC5zdGF0ZT1sLGU9dC5wZW5kaW5nLGUhPT1udWxsJiYobD1lLm5leHQsbD09PWU/dC5wZW5kaW5nPW51bGw6KGw9bC5uZXh0LGUubmV4dD1sLFlkKHQsbCkpKX1mdW5jdGlvbiBWcyh0LGUsbCl7dmFyIGE9dC5wZW5kaW5nO2lmKHQucGVuZGluZz1udWxsLGEhPT1udWxsKXthPWEubmV4dDtkbyBlLnN0YXR1cz0icmVqZWN0ZWQiLGUucmVhc29uPWwsWmQoZSksZT1lLm5leHQ7d2hpbGUoZSE9PWEpfXQuYWN0aW9uPW51bGx9ZnVuY3Rpb24gWmQodCl7dD10Lmxpc3RlbmVycztmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKykoMCx0W2VdKSgpfWZ1bmN0aW9uIFFkKHQsZSl7cmV0dXJuIGV9ZnVuY3Rpb24gS2QodCxlKXtpZihFdCl7dmFyIGw9anQuZm9ybVN0YXRlO2lmKGwhPT1udWxsKXt0Ont2YXIgYT1tdDtpZihFdCl7aWYoVXQpe2U6e2Zvcih2YXIgbj1VdCxvPWNsO24ubm9kZVR5cGUhPT04Oyl7aWYoIW8pe249bnVsbDticmVhayBlfWlmKG49bGwobi5uZXh0U2libGluZyksbj09PW51bGwpe249bnVsbDticmVhayBlfX1vPW4uZGF0YSxuPW89PT0iRiEifHxvPT09IkYiP246bnVsbH1pZihuKXtVdD1sbChuLm5leHRTaWJsaW5nKSxhPW4uZGF0YT09PSJGISI7YnJlYWsgdH19UWEoYSl9YT0hMX1hJiYoZT1sWzBdKX19cmV0dXJuIGw9VGUoKSxsLm1lbW9pemVkU3RhdGU9bC5iYXNlU3RhdGU9ZSxhPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6UWQsbGFzdFJlbmRlcmVkU3RhdGU6ZX0sbC5xdWV1ZT1hLGw9aGYuYmluZChudWxsLG10LGEpLGEuZGlzcGF0Y2g9bCxhPVhzKCExKSxvPUpzLmJpbmQobnVsbCxtdCwhMSxhLnF1ZXVlKSxhPVRlKCksbj17c3RhdGU6ZSxkaXNwYXRjaDpudWxsLGFjdGlvbjp0LHBlbmRpbmc6bnVsbH0sYS5xdWV1ZT1uLGw9ZzEuYmluZChudWxsLG10LG4sbyxsKSxuLmRpc3BhdGNoPWwsYS5tZW1vaXplZFN0YXRlPXQsW2UsbCwhMV19ZnVuY3Rpb24gUGQodCl7dmFyIGU9UXQoKTtyZXR1cm4gSmQoZSx6dCx0KX1mdW5jdGlvbiBKZCh0LGUsbCl7aWYoZT1Hcyh0LGUsUWQpWzBdLHQ9WWkoQWwpWzBdLHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIpdHJ5e3ZhciBhPVJvKGUpfWNhdGNoKGMpe3Rocm93IGM9PT1Dbz9CaTpjfWVsc2UgYT1lO2U9UXQoKTt2YXIgbj1lLnF1ZXVlLG89bi5kaXNwYXRjaDtyZXR1cm4gbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKG10LmZsYWdzfD0yMDQ4LHpuKDksWGkoKSxwMS5iaW5kKG51bGwsbixsKSxudWxsKSksW2Esbyx0XX1mdW5jdGlvbiBwMSh0LGUpe3QuYWN0aW9uPWV9ZnVuY3Rpb24gV2QodCl7dmFyIGU9UXQoKSxsPXp0O2lmKGwhPT1udWxsKXJldHVybiBKZChlLGwsdCk7UXQoKSxlPWUubWVtb2l6ZWRTdGF0ZSxsPVF0KCk7dmFyIGE9bC5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gbC5tZW1vaXplZFN0YXRlPXQsW2UsYSwhMV19ZnVuY3Rpb24gem4odCxlLGwsYSl7cmV0dXJuIHQ9e3RhZzp0LGNyZWF0ZTpsLGRlcHM6YSxpbnN0OmUsbmV4dDpudWxsfSxlPW10LnVwZGF0ZVF1ZXVlLGU9PT1udWxsJiYoZT1VcygpLG10LnVwZGF0ZVF1ZXVlPWUpLGw9ZS5sYXN0RWZmZWN0LGw9PT1udWxsP2UubGFzdEVmZmVjdD10Lm5leHQ9dDooYT1sLm5leHQsbC5uZXh0PXQsdC5uZXh0PWEsZS5sYXN0RWZmZWN0PXQpLHR9ZnVuY3Rpb24gWGkoKXtyZXR1cm57ZGVzdHJveTp2b2lkIDAscmVzb3VyY2U6dm9pZCAwfX1mdW5jdGlvbiAkZCgpe3JldHVybiBRdCgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gVmkodCxlLGwsYSl7dmFyIG49VGUoKTthPWE9PT12b2lkIDA/bnVsbDphLG10LmZsYWdzfD10LG4ubWVtb2l6ZWRTdGF0ZT16bigxfGUsWGkoKSxsLGEpfWZ1bmN0aW9uIHpvKHQsZSxsLGEpe3ZhciBuPVF0KCk7YT1hPT09dm9pZCAwP251bGw6YTt2YXIgbz1uLm1lbW9pemVkU3RhdGUuaW5zdDt6dCE9PW51bGwmJmEhPT1udWxsJiZPcyhhLHp0Lm1lbW9pemVkU3RhdGUuZGVwcyk/bi5tZW1vaXplZFN0YXRlPXpuKGUsbyxsLGEpOihtdC5mbGFnc3w9dCxuLm1lbW9pemVkU3RhdGU9em4oMXxlLG8sbCxhKSl9ZnVuY3Rpb24gRmQodCxlKXtWaSg4MzkwNjU2LDgsdCxlKX1mdW5jdGlvbiBJZCh0LGUpe3pvKDIwNDgsOCx0LGUpfWZ1bmN0aW9uIHRmKHQsZSl7cmV0dXJuIHpvKDQsMix0LGUpfWZ1bmN0aW9uIGVmKHQsZSl7cmV0dXJuIHpvKDQsNCx0LGUpfWZ1bmN0aW9uIGxmKHQsZSl7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpe3Q9dCgpO3ZhciBsPWUodCk7cmV0dXJuIGZ1bmN0aW9uKCl7dHlwZW9mIGw9PSJmdW5jdGlvbiI/bCgpOmUobnVsbCl9fWlmKGUhPW51bGwpcmV0dXJuIHQ9dCgpLGUuY3VycmVudD10LGZ1bmN0aW9uKCl7ZS5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIGFmKHQsZSxsKXtsPWwhPW51bGw/bC5jb25jYXQoW3RdKTpudWxsLHpvKDQsNCxsZi5iaW5kKG51bGwsZSx0KSxsKX1mdW5jdGlvbiBacygpe31mdW5jdGlvbiBuZih0LGUpe3ZhciBsPVF0KCk7ZT1lPT09dm9pZCAwP251bGw6ZTt2YXIgYT1sLm1lbW9pemVkU3RhdGU7cmV0dXJuIGUhPT1udWxsJiZPcyhlLGFbMV0pP2FbMF06KGwubWVtb2l6ZWRTdGF0ZT1bdCxlXSx0KX1mdW5jdGlvbiBvZih0LGUpe3ZhciBsPVF0KCk7ZT1lPT09dm9pZCAwP251bGw6ZTt2YXIgYT1sLm1lbW9pemVkU3RhdGU7aWYoZSE9PW51bGwmJk9zKGUsYVsxXSkpcmV0dXJuIGFbMF07aWYoYT10KCksV2Epe0plKCEwKTt0cnl7dCgpfWZpbmFsbHl7SmUoITEpfX1yZXR1cm4gbC5tZW1vaXplZFN0YXRlPVthLGVdLGF9ZnVuY3Rpb24gUXModCxlLGwpe3JldHVybiBsPT09dm9pZCAwfHwoZWEmMTA3Mzc0MTgyNCkhPT0wP3QubWVtb2l6ZWRTdGF0ZT1lOih0Lm1lbW9pemVkU3RhdGU9bCx0PWNoKCksbXQubGFuZXN8PXQsc2F8PXQsbCl9ZnVuY3Rpb24gcmYodCxlLGwsYSl7cmV0dXJuIFJlKGwsZSk/bDpNbi5jdXJyZW50IT09bnVsbD8odD1Rcyh0LGwsYSksUmUodCxlKXx8KGFlPSEwKSx0KTooZWEmNDIpPT09MD8oYWU9ITAsdC5tZW1vaXplZFN0YXRlPWwpOih0PWNoKCksbXQubGFuZXN8PXQsc2F8PXQsZSl9ZnVuY3Rpb24gc2YodCxlLGwsYSxuKXt2YXIgbz1HLnA7Ry5wPW8hPT0wJiY4Pm8/bzo4O3ZhciBjPUEuVCxkPXt9O0EuVD1kLEpzKHQsITEsZSxsKTt0cnl7dmFyIGc9bigpLFM9QS5TO2lmKFMhPT1udWxsJiZTKGQsZyksZyE9PW51bGwmJnR5cGVvZiBnPT0ib2JqZWN0IiYmdHlwZW9mIGcudGhlbj09ImZ1bmN0aW9uIil7dmFyIHo9ZjEoZyxhKTtObyh0LGUseixPZSh0KSl9ZWxzZSBObyh0LGUsYSxPZSh0KSl9Y2F0Y2goTyl7Tm8odCxlLHt0aGVuOmZ1bmN0aW9uKCl7fSxzdGF0dXM6InJlamVjdGVkIixyZWFzb246T30sT2UoKSl9ZmluYWxseXtHLnA9byxBLlQ9Y319ZnVuY3Rpb24geTEoKXt9ZnVuY3Rpb24gS3ModCxlLGwsYSl7aWYodC50YWchPT01KXRocm93IEVycm9yKHMoNDc2KSk7dmFyIG49Y2YodCkucXVldWU7c2YodCxuLGUsQixsPT09bnVsbD95MTpmdW5jdGlvbigpe3JldHVybiB1Zih0KSxsKGEpfSl9ZnVuY3Rpb24gY2YodCl7dmFyIGU9dC5tZW1vaXplZFN0YXRlO2lmKGUhPT1udWxsKXJldHVybiBlO2U9e21lbW9pemVkU3RhdGU6QixiYXNlU3RhdGU6QixiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkFsLGxhc3RSZW5kZXJlZFN0YXRlOkJ9LG5leHQ6bnVsbH07dmFyIGw9e307cmV0dXJuIGUubmV4dD17bWVtb2l6ZWRTdGF0ZTpsLGJhc2VTdGF0ZTpsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOntwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6QWwsbGFzdFJlbmRlcmVkU3RhdGU6bH0sbmV4dDpudWxsfSx0Lm1lbW9pemVkU3RhdGU9ZSx0PXQuYWx0ZXJuYXRlLHQhPT1udWxsJiYodC5tZW1vaXplZFN0YXRlPWUpLGV9ZnVuY3Rpb24gdWYodCl7dmFyIGU9Y2YodCkubmV4dC5xdWV1ZTtObyh0LGUse30sT2UoKSl9ZnVuY3Rpb24gUHMoKXtyZXR1cm4geWUoSm8pfWZ1bmN0aW9uIGRmKCl7cmV0dXJuIFF0KCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBmZigpe3JldHVybiBRdCgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gdjEodCl7Zm9yKHZhciBlPXQucmV0dXJuO2UhPT1udWxsOyl7c3dpdGNoKGUudGFnKXtjYXNlIDI0OmNhc2UgMzp2YXIgbD1PZSgpO3Q9SWwobCk7dmFyIGE9dGEoZSx0LGwpO2EhPT1udWxsJiYoamUoYSxlLGwpLFRvKGEsZSxsKSksZT17Y2FjaGU6RXMoKX0sdC5wYXlsb2FkPWU7cmV0dXJufWU9ZS5yZXR1cm59fWZ1bmN0aW9uIGIxKHQsZSxsKXt2YXIgYT1PZSgpO2w9e2xhbmU6YSxyZXZlcnRMYW5lOjAsYWN0aW9uOmwsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxaaSh0KT9tZihlLGwpOihsPW1zKHQsZSxsLGEpLGwhPT1udWxsJiYoamUobCx0LGEpLGdmKGwsZSxhKSkpfWZ1bmN0aW9uIGhmKHQsZSxsKXt2YXIgYT1PZSgpO05vKHQsZSxsLGEpfWZ1bmN0aW9uIE5vKHQsZSxsLGEpe3ZhciBuPXtsYW5lOmEscmV2ZXJ0TGFuZTowLGFjdGlvbjpsLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoWmkodCkpbWYoZSxuKTtlbHNle3ZhciBvPXQuYWx0ZXJuYXRlO2lmKHQubGFuZXM9PT0wJiYobz09PW51bGx8fG8ubGFuZXM9PT0wKSYmKG89ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyLG8hPT1udWxsKSl0cnl7dmFyIGM9ZS5sYXN0UmVuZGVyZWRTdGF0ZSxkPW8oYyxsKTtpZihuLmhhc0VhZ2VyU3RhdGU9ITAsbi5lYWdlclN0YXRlPWQsUmUoZCxjKSlyZXR1cm4gQWkodCxlLG4sMCksanQ9PT1udWxsJiZNaSgpLCExfWNhdGNoe31maW5hbGx5e31pZihsPW1zKHQsZSxuLGEpLGwhPT1udWxsKXJldHVybiBqZShsLHQsYSksZ2YobCxlLGEpLCEwfXJldHVybiExfWZ1bmN0aW9uIEpzKHQsZSxsLGEpe2lmKGE9e2xhbmU6MixyZXZlcnRMYW5lOk1jKCksYWN0aW9uOmEsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxaaSh0KSl7aWYoZSl0aHJvdyBFcnJvcihzKDQ3OSkpfWVsc2UgZT1tcyh0LGwsYSwyKSxlIT09bnVsbCYmamUoZSx0LDIpfWZ1bmN0aW9uIFppKHQpe3ZhciBlPXQuYWx0ZXJuYXRlO3JldHVybiB0PT09bXR8fGUhPT1udWxsJiZlPT09bXR9ZnVuY3Rpb24gbWYodCxlKXtBbj1VaT0hMDt2YXIgbD10LnBlbmRpbmc7bD09PW51bGw/ZS5uZXh0PWU6KGUubmV4dD1sLm5leHQsbC5uZXh0PWUpLHQucGVuZGluZz1lfWZ1bmN0aW9uIGdmKHQsZSxsKXtpZigobCY0MTk0MDQ4KSE9PTApe3ZhciBhPWUubGFuZXM7YSY9dC5wZW5kaW5nTGFuZXMsbHw9YSxlLmxhbmVzPWwsbWkodCxsKX19dmFyIFFpPXtyZWFkQ29udGV4dDp5ZSx1c2U6R2ksdXNlQ2FsbGJhY2s6R3QsdXNlQ29udGV4dDpHdCx1c2VFZmZlY3Q6R3QsdXNlSW1wZXJhdGl2ZUhhbmRsZTpHdCx1c2VMYXlvdXRFZmZlY3Q6R3QsdXNlSW5zZXJ0aW9uRWZmZWN0Okd0LHVzZU1lbW86R3QsdXNlUmVkdWNlcjpHdCx1c2VSZWY6R3QsdXNlU3RhdGU6R3QsdXNlRGVidWdWYWx1ZTpHdCx1c2VEZWZlcnJlZFZhbHVlOkd0LHVzZVRyYW5zaXRpb246R3QsdXNlU3luY0V4dGVybmFsU3RvcmU6R3QsdXNlSWQ6R3QsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6R3QsdXNlRm9ybVN0YXRlOkd0LHVzZUFjdGlvblN0YXRlOkd0LHVzZU9wdGltaXN0aWM6R3QsdXNlTWVtb0NhY2hlOkd0LHVzZUNhY2hlUmVmcmVzaDpHdH0scGY9e3JlYWRDb250ZXh0OnllLHVzZTpHaSx1c2VDYWxsYmFjazpmdW5jdGlvbih0LGUpe3JldHVybiBUZSgpLm1lbW9pemVkU3RhdGU9W3QsZT09PXZvaWQgMD9udWxsOmVdLHR9LHVzZUNvbnRleHQ6eWUsdXNlRWZmZWN0OkZkLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24odCxlLGwpe2w9bCE9bnVsbD9sLmNvbmNhdChbdF0pOm51bGwsVmkoNDE5NDMwOCw0LGxmLmJpbmQobnVsbCxlLHQpLGwpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gVmkoNDE5NDMwOCw0LHQsZSl9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbih0LGUpe1ZpKDQsMix0LGUpfSx1c2VNZW1vOmZ1bmN0aW9uKHQsZSl7dmFyIGw9VGUoKTtlPWU9PT12b2lkIDA/bnVsbDplO3ZhciBhPXQoKTtpZihXYSl7SmUoITApO3RyeXt0KCl9ZmluYWxseXtKZSghMSl9fXJldHVybiBsLm1lbW9pemVkU3RhdGU9W2EsZV0sYX0sdXNlUmVkdWNlcjpmdW5jdGlvbih0LGUsbCl7dmFyIGE9VGUoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sKGUpO2lmKFdhKXtKZSghMCk7dHJ5e2woZSl9ZmluYWxseXtKZSghMSl9fX1lbHNlIG49ZTtyZXR1cm4gYS5tZW1vaXplZFN0YXRlPWEuYmFzZVN0YXRlPW4sdD17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOnQsbGFzdFJlbmRlcmVkU3RhdGU6bn0sYS5xdWV1ZT10LHQ9dC5kaXNwYXRjaD1iMS5iaW5kKG51bGwsbXQsdCksW2EubWVtb2l6ZWRTdGF0ZSx0XX0sdXNlUmVmOmZ1bmN0aW9uKHQpe3ZhciBlPVRlKCk7cmV0dXJuIHQ9e2N1cnJlbnQ6dH0sZS5tZW1vaXplZFN0YXRlPXR9LHVzZVN0YXRlOmZ1bmN0aW9uKHQpe3Q9WHModCk7dmFyIGU9dC5xdWV1ZSxsPWhmLmJpbmQobnVsbCxtdCxlKTtyZXR1cm4gZS5kaXNwYXRjaD1sLFt0Lm1lbW9pemVkU3RhdGUsbF19LHVzZURlYnVnVmFsdWU6WnMsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBsPVRlKCk7cmV0dXJuIFFzKGwsdCxlKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciB0PVhzKCExKTtyZXR1cm4gdD1zZi5iaW5kKG51bGwsbXQsdC5xdWV1ZSwhMCwhMSksVGUoKS5tZW1vaXplZFN0YXRlPXQsWyExLHRdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbih0LGUsbCl7dmFyIGE9bXQsbj1UZSgpO2lmKEV0KXtpZihsPT09dm9pZCAwKXRocm93IEVycm9yKHMoNDA3KSk7bD1sKCl9ZWxzZXtpZihsPWUoKSxqdD09PW51bGwpdGhyb3cgRXJyb3IocygzNDkpKTsod3QmMTI0KSE9PTB8fEJkKGEsZSxsKX1uLm1lbW9pemVkU3RhdGU9bDt2YXIgbz17dmFsdWU6bCxnZXRTbmFwc2hvdDplfTtyZXR1cm4gbi5xdWV1ZT1vLEZkKEhkLmJpbmQobnVsbCxhLG8sdCksW3RdKSxhLmZsYWdzfD0yMDQ4LHpuKDksWGkoKSxMZC5iaW5kKG51bGwsYSxvLGwsZSksbnVsbCksbH0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgdD1UZSgpLGU9anQuaWRlbnRpZmllclByZWZpeDtpZihFdCl7dmFyIGw9VGwsYT1FbDtsPShhJn4oMTw8MzItV3QoYSktMSkpLnRvU3RyaW5nKDMyKStsLGU9IsKrIitlKyJSIitsLGw9cWkrKywwPGwmJihlKz0iSCIrbC50b1N0cmluZygzMikpLGUrPSLCuyJ9ZWxzZSBsPWgxKyssZT0iwqsiK2UrInIiK2wudG9TdHJpbmcoMzIpKyLCuyI7cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1lfSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpQcyx1c2VGb3JtU3RhdGU6S2QsdXNlQWN0aW9uU3RhdGU6S2QsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbih0KXt2YXIgZT1UZSgpO2UubWVtb2l6ZWRTdGF0ZT1lLmJhc2VTdGF0ZT10O3ZhciBsPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6bnVsbCxsYXN0UmVuZGVyZWRTdGF0ZTpudWxsfTtyZXR1cm4gZS5xdWV1ZT1sLGU9SnMuYmluZChudWxsLG10LCEwLGwpLGwuZGlzcGF0Y2g9ZSxbdCxlXX0sdXNlTWVtb0NhY2hlOnFzLHVzZUNhY2hlUmVmcmVzaDpmdW5jdGlvbigpe3JldHVybiBUZSgpLm1lbW9pemVkU3RhdGU9djEuYmluZChudWxsLG10KX19LHlmPXtyZWFkQ29udGV4dDp5ZSx1c2U6R2ksdXNlQ2FsbGJhY2s6bmYsdXNlQ29udGV4dDp5ZSx1c2VFZmZlY3Q6SWQsdXNlSW1wZXJhdGl2ZUhhbmRsZTphZix1c2VJbnNlcnRpb25FZmZlY3Q6dGYsdXNlTGF5b3V0RWZmZWN0OmVmLHVzZU1lbW86b2YsdXNlUmVkdWNlcjpZaSx1c2VSZWY6JGQsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gWWkoQWwpfSx1c2VEZWJ1Z1ZhbHVlOlpzLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbD1RdCgpO3JldHVybiByZihsLHp0Lm1lbW9pemVkU3RhdGUsdCxlKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciB0PVlpKEFsKVswXSxlPVF0KCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bdHlwZW9mIHQ9PSJib29sZWFuIj90OlJvKHQpLGVdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpqZCx1c2VJZDpkZix1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpQcyx1c2VGb3JtU3RhdGU6UGQsdXNlQWN0aW9uU3RhdGU6UGQsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbih0LGUpe3ZhciBsPVF0KCk7cmV0dXJuIEdkKGwsenQsdCxlKX0sdXNlTWVtb0NhY2hlOnFzLHVzZUNhY2hlUmVmcmVzaDpmZn0seDE9e3JlYWRDb250ZXh0OnllLHVzZTpHaSx1c2VDYWxsYmFjazpuZix1c2VDb250ZXh0OnllLHVzZUVmZmVjdDpJZCx1c2VJbXBlcmF0aXZlSGFuZGxlOmFmLHVzZUluc2VydGlvbkVmZmVjdDp0Zix1c2VMYXlvdXRFZmZlY3Q6ZWYsdXNlTWVtbzpvZix1c2VSZWR1Y2VyOllzLHVzZVJlZjokZCx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBZcyhBbCl9LHVzZURlYnVnVmFsdWU6WnMsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBsPVF0KCk7cmV0dXJuIHp0PT09bnVsbD9RcyhsLHQsZSk6cmYobCx6dC5tZW1vaXplZFN0YXRlLHQsZSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD1ZcyhBbClbMF0sZT1RdCgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW3R5cGVvZiB0PT0iYm9vbGVhbiI/dDpSbyh0KSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6amQsdXNlSWQ6ZGYsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6UHMsdXNlRm9ybVN0YXRlOldkLHVzZUFjdGlvblN0YXRlOldkLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24odCxlKXt2YXIgbD1RdCgpO3JldHVybiB6dCE9PW51bGw/R2QobCx6dCx0LGUpOihsLmJhc2VTdGF0ZT10LFt0LGwucXVldWUuZGlzcGF0Y2hdKX0sdXNlTWVtb0NhY2hlOnFzLHVzZUNhY2hlUmVmcmVzaDpmZn0sTm49bnVsbCxfbz0wO2Z1bmN0aW9uIEtpKHQpe3ZhciBlPV9vO3JldHVybiBfbys9MSxObj09PW51bGwmJihObj1bXSksTWQoTm4sdCxlKX1mdW5jdGlvbiBrbyh0LGUpe2U9ZS5wcm9wcy5yZWYsdC5yZWY9ZSE9PXZvaWQgMD9lOm51bGx9ZnVuY3Rpb24gUGkodCxlKXt0aHJvdyBlLiQkdHlwZW9mPT09Uj9FcnJvcihzKDUyNSkpOih0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSxFcnJvcihzKDMxLHQ9PT0iW29iamVjdCBPYmplY3RdIj8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9Ijp0KSkpfWZ1bmN0aW9uIHZmKHQpe3ZhciBlPXQuX2luaXQ7cmV0dXJuIGUodC5fcGF5bG9hZCl9ZnVuY3Rpb24gYmYodCl7ZnVuY3Rpb24gZShiLHkpe2lmKHQpe3ZhciB3PWIuZGVsZXRpb25zO3c9PT1udWxsPyhiLmRlbGV0aW9ucz1beV0sYi5mbGFnc3w9MTYpOncucHVzaCh5KX19ZnVuY3Rpb24gbChiLHkpe2lmKCF0KXJldHVybiBudWxsO2Zvcig7eSE9PW51bGw7KWUoYix5KSx5PXkuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiBhKGIpe2Zvcih2YXIgeT1uZXcgTWFwO2IhPT1udWxsOyliLmtleSE9PW51bGw/eS5zZXQoYi5rZXksYik6eS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4geX1mdW5jdGlvbiBuKGIseSl7cmV0dXJuIGI9Q2woYix5KSxiLmluZGV4PTAsYi5zaWJsaW5nPW51bGwsYn1mdW5jdGlvbiBvKGIseSx3KXtyZXR1cm4gYi5pbmRleD13LHQ/KHc9Yi5hbHRlcm5hdGUsdyE9PW51bGw/KHc9dy5pbmRleCx3PHk/KGIuZmxhZ3N8PTY3MTA4ODY2LHkpOncpOihiLmZsYWdzfD02NzEwODg2Nix5KSk6KGIuZmxhZ3N8PTEwNDg1NzYseSl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdCYmYi5hbHRlcm5hdGU9PT1udWxsJiYoYi5mbGFnc3w9NjcxMDg4NjYpLGJ9ZnVuY3Rpb24gZChiLHksdyxfKXtyZXR1cm4geT09PW51bGx8fHkudGFnIT09Nj8oeT1wcyh3LGIubW9kZSxfKSx5LnJldHVybj1iLHkpOih5PW4oeSx3KSx5LnJldHVybj1iLHkpfWZ1bmN0aW9uIGcoYix5LHcsXyl7dmFyIFA9dy50eXBlO3JldHVybiBQPT09Rj96KGIseSx3LnByb3BzLmNoaWxkcmVuLF8sdy5rZXkpOnkhPT1udWxsJiYoeS5lbGVtZW50VHlwZT09PVB8fHR5cGVvZiBQPT0ib2JqZWN0IiYmUCE9PW51bGwmJlAuJCR0eXBlb2Y9PT1YJiZ2ZihQKT09PXkudHlwZSk/KHk9bih5LHcucHJvcHMpLGtvKHksdykseS5yZXR1cm49Yix5KTooeT16aSh3LnR5cGUsdy5rZXksdy5wcm9wcyxudWxsLGIubW9kZSxfKSxrbyh5LHcpLHkucmV0dXJuPWIseSl9ZnVuY3Rpb24gUyhiLHksdyxfKXtyZXR1cm4geT09PW51bGx8fHkudGFnIT09NHx8eS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PXcuY29udGFpbmVySW5mb3x8eS5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT13LmltcGxlbWVudGF0aW9uPyh5PXlzKHcsYi5tb2RlLF8pLHkucmV0dXJuPWIseSk6KHk9bih5LHcuY2hpbGRyZW58fFtdKSx5LnJldHVybj1iLHkpfWZ1bmN0aW9uIHooYix5LHcsXyxQKXtyZXR1cm4geT09PW51bGx8fHkudGFnIT09Nz8oeT1ZYSh3LGIubW9kZSxfLFApLHkucmV0dXJuPWIseSk6KHk9bih5LHcpLHkucmV0dXJuPWIseSl9ZnVuY3Rpb24gTyhiLHksdyl7aWYodHlwZW9mIHk9PSJzdHJpbmciJiZ5IT09IiJ8fHR5cGVvZiB5PT0ibnVtYmVyInx8dHlwZW9mIHk9PSJiaWdpbnQiKXJldHVybiB5PXBzKCIiK3ksYi5tb2RlLHcpLHkucmV0dXJuPWIseTtpZih0eXBlb2YgeT09Im9iamVjdCImJnkhPT1udWxsKXtzd2l0Y2goeS4kJHR5cGVvZil7Y2FzZSBKOnJldHVybiB3PXppKHkudHlwZSx5LmtleSx5LnByb3BzLG51bGwsYi5tb2RlLHcpLGtvKHcseSksdy5yZXR1cm49Yix3O2Nhc2UgJDpyZXR1cm4geT15cyh5LGIubW9kZSx3KSx5LnJldHVybj1iLHk7Y2FzZSBYOnZhciBfPXkuX2luaXQ7cmV0dXJuIHk9Xyh5Ll9wYXlsb2FkKSxPKGIseSx3KX1pZihNdCh5KXx8QnQoeSkpcmV0dXJuIHk9WWEoeSxiLm1vZGUsdyxudWxsKSx5LnJldHVybj1iLHk7aWYodHlwZW9mIHkudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gTyhiLEtpKHkpLHcpO2lmKHkuJCR0eXBlb2Y9PT1rKXJldHVybiBPKGIsT2koYix5KSx3KTtQaShiLHkpfXJldHVybiBudWxsfWZ1bmN0aW9uIEUoYix5LHcsXyl7dmFyIFA9eSE9PW51bGw/eS5rZXk6bnVsbDtpZih0eXBlb2Ygdz09InN0cmluZyImJnchPT0iInx8dHlwZW9mIHc9PSJudW1iZXIifHx0eXBlb2Ygdz09ImJpZ2ludCIpcmV0dXJuIFAhPT1udWxsP251bGw6ZChiLHksIiIrdyxfKTtpZih0eXBlb2Ygdz09Im9iamVjdCImJnchPT1udWxsKXtzd2l0Y2gody4kJHR5cGVvZil7Y2FzZSBKOnJldHVybiB3LmtleT09PVA/ZyhiLHksdyxfKTpudWxsO2Nhc2UgJDpyZXR1cm4gdy5rZXk9PT1QP1MoYix5LHcsXyk6bnVsbDtjYXNlIFg6cmV0dXJuIFA9dy5faW5pdCx3PVAody5fcGF5bG9hZCksRShiLHksdyxfKX1pZihNdCh3KXx8QnQodykpcmV0dXJuIFAhPT1udWxsP251bGw6eihiLHksdyxfLG51bGwpO2lmKHR5cGVvZiB3LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIEUoYix5LEtpKHcpLF8pO2lmKHcuJCR0eXBlb2Y9PT1rKXJldHVybiBFKGIseSxPaShiLHcpLF8pO1BpKGIsdyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVChiLHksdyxfLFApe2lmKHR5cGVvZiBfPT0ic3RyaW5nIiYmXyE9PSIifHx0eXBlb2YgXz09Im51bWJlciJ8fHR5cGVvZiBfPT0iYmlnaW50IilyZXR1cm4gYj1iLmdldCh3KXx8bnVsbCxkKHksYiwiIitfLFApO2lmKHR5cGVvZiBfPT0ib2JqZWN0IiYmXyE9PW51bGwpe3N3aXRjaChfLiQkdHlwZW9mKXtjYXNlIEo6cmV0dXJuIGI9Yi5nZXQoXy5rZXk9PT1udWxsP3c6Xy5rZXkpfHxudWxsLGcoeSxiLF8sUCk7Y2FzZSAkOnJldHVybiBiPWIuZ2V0KF8ua2V5PT09bnVsbD93Ol8ua2V5KXx8bnVsbCxTKHksYixfLFApO2Nhc2UgWDp2YXIgcHQ9Xy5faW5pdDtyZXR1cm4gXz1wdChfLl9wYXlsb2FkKSxUKGIseSx3LF8sUCl9aWYoTXQoXyl8fEJ0KF8pKXJldHVybiBiPWIuZ2V0KHcpfHxudWxsLHooeSxiLF8sUCxudWxsKTtpZih0eXBlb2YgXy50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBUKGIseSx3LEtpKF8pLFApO2lmKF8uJCR0eXBlb2Y9PT1rKXJldHVybiBUKGIseSx3LE9pKHksXyksUCk7UGkoeSxfKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBsdChiLHksdyxfKXtmb3IodmFyIFA9bnVsbCxwdD1udWxsLFc9eSxldD15PTAsb2U9bnVsbDtXIT09bnVsbCYmZXQ8dy5sZW5ndGg7ZXQrKyl7Vy5pbmRleD5ldD8ob2U9VyxXPW51bGwpOm9lPVcuc2libGluZzt2YXIgQ3Q9RShiLFcsd1tldF0sXyk7aWYoQ3Q9PT1udWxsKXtXPT09bnVsbCYmKFc9b2UpO2JyZWFrfXQmJlcmJkN0LmFsdGVybmF0ZT09PW51bGwmJmUoYixXKSx5PW8oQ3QseSxldCkscHQ9PT1udWxsP1A9Q3Q6cHQuc2libGluZz1DdCxwdD1DdCxXPW9lfWlmKGV0PT09dy5sZW5ndGgpcmV0dXJuIGwoYixXKSxFdCYmVmEoYixldCksUDtpZihXPT09bnVsbCl7Zm9yKDtldDx3Lmxlbmd0aDtldCsrKVc9TyhiLHdbZXRdLF8pLFchPT1udWxsJiYoeT1vKFcseSxldCkscHQ9PT1udWxsP1A9VzpwdC5zaWJsaW5nPVcscHQ9Vyk7cmV0dXJuIEV0JiZWYShiLGV0KSxQfWZvcihXPWEoVyk7ZXQ8dy5sZW5ndGg7ZXQrKylvZT1UKFcsYixldCx3W2V0XSxfKSxvZSE9PW51bGwmJih0JiZvZS5hbHRlcm5hdGUhPT1udWxsJiZXLmRlbGV0ZShvZS5rZXk9PT1udWxsP2V0Om9lLmtleSkseT1vKG9lLHksZXQpLHB0PT09bnVsbD9QPW9lOnB0LnNpYmxpbmc9b2UscHQ9b2UpO3JldHVybiB0JiZXLmZvckVhY2goZnVuY3Rpb24oeWEpe3JldHVybiBlKGIseWEpfSksRXQmJlZhKGIsZXQpLFB9ZnVuY3Rpb24gSShiLHksdyxfKXtpZih3PT1udWxsKXRocm93IEVycm9yKHMoMTUxKSk7Zm9yKHZhciBQPW51bGwscHQ9bnVsbCxXPXksZXQ9eT0wLG9lPW51bGwsQ3Q9dy5uZXh0KCk7VyE9PW51bGwmJiFDdC5kb25lO2V0KyssQ3Q9dy5uZXh0KCkpe1cuaW5kZXg+ZXQ/KG9lPVcsVz1udWxsKTpvZT1XLnNpYmxpbmc7dmFyIHlhPUUoYixXLEN0LnZhbHVlLF8pO2lmKHlhPT09bnVsbCl7Vz09PW51bGwmJihXPW9lKTticmVha310JiZXJiZ5YS5hbHRlcm5hdGU9PT1udWxsJiZlKGIsVykseT1vKHlhLHksZXQpLHB0PT09bnVsbD9QPXlhOnB0LnNpYmxpbmc9eWEscHQ9eWEsVz1vZX1pZihDdC5kb25lKXJldHVybiBsKGIsVyksRXQmJlZhKGIsZXQpLFA7aWYoVz09PW51bGwpe2Zvcig7IUN0LmRvbmU7ZXQrKyxDdD13Lm5leHQoKSlDdD1PKGIsQ3QudmFsdWUsXyksQ3QhPT1udWxsJiYoeT1vKEN0LHksZXQpLHB0PT09bnVsbD9QPUN0OnB0LnNpYmxpbmc9Q3QscHQ9Q3QpO3JldHVybiBFdCYmVmEoYixldCksUH1mb3IoVz1hKFcpOyFDdC5kb25lO2V0KyssQ3Q9dy5uZXh0KCkpQ3Q9VChXLGIsZXQsQ3QudmFsdWUsXyksQ3QhPT1udWxsJiYodCYmQ3QuYWx0ZXJuYXRlIT09bnVsbCYmVy5kZWxldGUoQ3Qua2V5PT09bnVsbD9ldDpDdC5rZXkpLHk9byhDdCx5LGV0KSxwdD09PW51bGw/UD1DdDpwdC5zaWJsaW5nPUN0LHB0PUN0KTtyZXR1cm4gdCYmVy5mb3JFYWNoKGZ1bmN0aW9uKHdwKXtyZXR1cm4gZShiLHdwKX0pLEV0JiZWYShiLGV0KSxQfWZ1bmN0aW9uIF90KGIseSx3LF8pe2lmKHR5cGVvZiB3PT0ib2JqZWN0IiYmdyE9PW51bGwmJncudHlwZT09PUYmJncua2V5PT09bnVsbCYmKHc9dy5wcm9wcy5jaGlsZHJlbiksdHlwZW9mIHc9PSJvYmplY3QiJiZ3IT09bnVsbCl7c3dpdGNoKHcuJCR0eXBlb2Ype2Nhc2UgSjp0Ontmb3IodmFyIFA9dy5rZXk7eSE9PW51bGw7KXtpZih5LmtleT09PVApe2lmKFA9dy50eXBlLFA9PT1GKXtpZih5LnRhZz09PTcpe2woYix5LnNpYmxpbmcpLF89bih5LHcucHJvcHMuY2hpbGRyZW4pLF8ucmV0dXJuPWIsYj1fO2JyZWFrIHR9fWVsc2UgaWYoeS5lbGVtZW50VHlwZT09PVB8fHR5cGVvZiBQPT0ib2JqZWN0IiYmUCE9PW51bGwmJlAuJCR0eXBlb2Y9PT1YJiZ2ZihQKT09PXkudHlwZSl7bChiLHkuc2libGluZyksXz1uKHksdy5wcm9wcyksa28oXyx3KSxfLnJldHVybj1iLGI9XzticmVhayB0fWwoYix5KTticmVha31lbHNlIGUoYix5KTt5PXkuc2libGluZ313LnR5cGU9PT1GPyhfPVlhKHcucHJvcHMuY2hpbGRyZW4sYi5tb2RlLF8sdy5rZXkpLF8ucmV0dXJuPWIsYj1fKTooXz16aSh3LnR5cGUsdy5rZXksdy5wcm9wcyxudWxsLGIubW9kZSxfKSxrbyhfLHcpLF8ucmV0dXJuPWIsYj1fKX1yZXR1cm4gYyhiKTtjYXNlICQ6dDp7Zm9yKFA9dy5rZXk7eSE9PW51bGw7KXtpZih5LmtleT09PVApaWYoeS50YWc9PT00JiZ5LnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09dy5jb250YWluZXJJbmZvJiZ5LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PXcuaW1wbGVtZW50YXRpb24pe2woYix5LnNpYmxpbmcpLF89bih5LHcuY2hpbGRyZW58fFtdKSxfLnJldHVybj1iLGI9XzticmVhayB0fWVsc2V7bChiLHkpO2JyZWFrfWVsc2UgZShiLHkpO3k9eS5zaWJsaW5nfV89eXModyxiLm1vZGUsXyksXy5yZXR1cm49YixiPV99cmV0dXJuIGMoYik7Y2FzZSBYOnJldHVybiBQPXcuX2luaXQsdz1QKHcuX3BheWxvYWQpLF90KGIseSx3LF8pfWlmKE10KHcpKXJldHVybiBsdChiLHksdyxfKTtpZihCdCh3KSl7aWYoUD1CdCh3KSx0eXBlb2YgUCE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihzKDE1MCkpO3JldHVybiB3PVAuY2FsbCh3KSxJKGIseSx3LF8pfWlmKHR5cGVvZiB3LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIF90KGIseSxLaSh3KSxfKTtpZih3LiQkdHlwZW9mPT09aylyZXR1cm4gX3QoYix5LE9pKGIsdyksXyk7UGkoYix3KX1yZXR1cm4gdHlwZW9mIHc9PSJzdHJpbmciJiZ3IT09IiJ8fHR5cGVvZiB3PT0ibnVtYmVyInx8dHlwZW9mIHc9PSJiaWdpbnQiPyh3PSIiK3cseSE9PW51bGwmJnkudGFnPT09Nj8obChiLHkuc2libGluZyksXz1uKHksdyksXy5yZXR1cm49YixiPV8pOihsKGIseSksXz1wcyh3LGIubW9kZSxfKSxfLnJldHVybj1iLGI9XyksYyhiKSk6bChiLHkpfXJldHVybiBmdW5jdGlvbihiLHksdyxfKXt0cnl7X289MDt2YXIgUD1fdChiLHksdyxfKTtyZXR1cm4gTm49bnVsbCxQfWNhdGNoKFcpe2lmKFc9PT1Db3x8Vz09PUJpKXRocm93IFc7dmFyIHB0PXplKDI5LFcsbnVsbCxiLm1vZGUpO3JldHVybiBwdC5sYW5lcz1fLHB0LnJldHVybj1iLHB0fWZpbmFsbHl7fX19dmFyIF9uPWJmKCEwKSx4Zj1iZighMSksVmU9aihudWxsKSx1bD1udWxsO2Z1bmN0aW9uIGxhKHQpe3ZhciBlPXQuYWx0ZXJuYXRlO3EoRnQsRnQuY3VycmVudCYxKSxxKFZlLHQpLHVsPT09bnVsbCYmKGU9PT1udWxsfHxNbi5jdXJyZW50IT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlIT09bnVsbCkmJih1bD10KX1mdW5jdGlvbiB3Zih0KXtpZih0LnRhZz09PTIyKXtpZihxKEZ0LEZ0LmN1cnJlbnQpLHEoVmUsdCksdWw9PT1udWxsKXt2YXIgZT10LmFsdGVybmF0ZTtlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmKHVsPXQpfX1lbHNlIGFhKCl9ZnVuY3Rpb24gYWEoKXtxKEZ0LEZ0LmN1cnJlbnQpLHEoVmUsVmUuY3VycmVudCl9ZnVuY3Rpb24gUmwodCl7VihWZSksdWw9PT10JiYodWw9bnVsbCksVihGdCl9dmFyIEZ0PWooMCk7ZnVuY3Rpb24gSmkodCl7Zm9yKHZhciBlPXQ7ZSE9PW51bGw7KXtpZihlLnRhZz09PTEzKXt2YXIgbD1lLm1lbW9pemVkU3RhdGU7aWYobCE9PW51bGwmJihsPWwuZGVoeWRyYXRlZCxsPT09bnVsbHx8bC5kYXRhPT09IiQ/Inx8VWMobCkpKXJldHVybiBlfWVsc2UgaWYoZS50YWc9PT0xOSYmZS5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyIT09dm9pZCAwKXtpZigoZS5mbGFncyYxMjgpIT09MClyZXR1cm4gZX1lbHNlIGlmKGUuY2hpbGQhPT1udWxsKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhaztmb3IoO2Uuc2libGluZz09PW51bGw7KXtpZihlLnJldHVybj09PW51bGx8fGUucmV0dXJuPT09dClyZXR1cm4gbnVsbDtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gV3ModCxlLGwsYSl7ZT10Lm1lbW9pemVkU3RhdGUsbD1sKGEsZSksbD1sPT1udWxsP2U6RCh7fSxlLGwpLHQubWVtb2l6ZWRTdGF0ZT1sLHQubGFuZXM9PT0wJiYodC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9bCl9dmFyICRzPXtlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24odCxlLGwpe3Q9dC5fcmVhY3RJbnRlcm5hbHM7dmFyIGE9T2UoKSxuPUlsKGEpO24ucGF5bG9hZD1lLGwhPW51bGwmJihuLmNhbGxiYWNrPWwpLGU9dGEodCxuLGEpLGUhPT1udWxsJiYoamUoZSx0LGEpLFRvKGUsdCxhKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24odCxlLGwpe3Q9dC5fcmVhY3RJbnRlcm5hbHM7dmFyIGE9T2UoKSxuPUlsKGEpO24udGFnPTEsbi5wYXlsb2FkPWUsbCE9bnVsbCYmKG4uY2FsbGJhY2s9bCksZT10YSh0LG4sYSksZSE9PW51bGwmJihqZShlLHQsYSksVG8oZSx0LGEpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKHQsZSl7dD10Ll9yZWFjdEludGVybmFsczt2YXIgbD1PZSgpLGE9SWwobCk7YS50YWc9MixlIT1udWxsJiYoYS5jYWxsYmFjaz1lKSxlPXRhKHQsYSxsKSxlIT09bnVsbCYmKGplKGUsdCxsKSxUbyhlLHQsbCkpfX07ZnVuY3Rpb24gU2YodCxlLGwsYSxuLG8sYyl7cmV0dXJuIHQ9dC5zdGF0ZU5vZGUsdHlwZW9mIHQuc2hvdWxkQ29tcG9uZW50VXBkYXRlPT0iZnVuY3Rpb24iP3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKGEsbyxjKTplLnByb3RvdHlwZSYmZS5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQ/IWdvKGwsYSl8fCFnbyhuLG8pOiEwfWZ1bmN0aW9uIENmKHQsZSxsLGEpe3Q9ZS5zdGF0ZSx0eXBlb2YgZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPT0iZnVuY3Rpb24iJiZlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobCxhKSx0eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz09ImZ1bmN0aW9uIiYmZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhsLGEpLGUuc3RhdGUhPT10JiYkcy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKX1mdW5jdGlvbiAkYSh0LGUpe3ZhciBsPWU7aWYoInJlZiJpbiBlKXtsPXt9O2Zvcih2YXIgYSBpbiBlKWEhPT0icmVmIiYmKGxbYV09ZVthXSl9aWYodD10LmRlZmF1bHRQcm9wcyl7bD09PWUmJihsPUQoe30sbCkpO2Zvcih2YXIgbiBpbiB0KWxbbl09PT12b2lkIDAmJihsW25dPXRbbl0pfXJldHVybiBsfXZhciBXaT10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24odCl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIGU9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwmJnR5cGVvZiB0Lm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyh0Lm1lc3NhZ2UpOlN0cmluZyh0KSxlcnJvcjp0fSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KGUpKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsdCk7cmV0dXJufWNvbnNvbGUuZXJyb3IodCl9O2Z1bmN0aW9uIEVmKHQpe1dpKHQpfWZ1bmN0aW9uIFRmKHQpe2NvbnNvbGUuZXJyb3IodCl9ZnVuY3Rpb24gRGYodCl7V2kodCl9ZnVuY3Rpb24gJGkodCxlKXt0cnl7dmFyIGw9dC5vblVuY2F1Z2h0RXJyb3I7bChlLnZhbHVlLHtjb21wb25lbnRTdGFjazplLnN0YWNrfSl9Y2F0Y2goYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGF9KX19ZnVuY3Rpb24gTWYodCxlLGwpe3RyeXt2YXIgYT10Lm9uQ2F1Z2h0RXJyb3I7YShsLnZhbHVlLHtjb21wb25lbnRTdGFjazpsLnN0YWNrLGVycm9yQm91bmRhcnk6ZS50YWc9PT0xP2Uuc3RhdGVOb2RlOm51bGx9KX1jYXRjaChuKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgbn0pfX1mdW5jdGlvbiBGcyh0LGUsbCl7cmV0dXJuIGw9SWwobCksbC50YWc9MyxsLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sbC5jYWxsYmFjaz1mdW5jdGlvbigpeyRpKHQsZSl9LGx9ZnVuY3Rpb24gQWYodCl7cmV0dXJuIHQ9SWwodCksdC50YWc9Myx0fWZ1bmN0aW9uIFJmKHQsZSxsLGEpe3ZhciBuPWwudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpe3ZhciBvPWEudmFsdWU7dC5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIG4obyl9LHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtNZihlLGwsYSl9fXZhciBjPWwuc3RhdGVOb2RlO2MhPT1udWxsJiZ0eXBlb2YgYy5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtNZihlLGwsYSksdHlwZW9mIG4hPSJmdW5jdGlvbiImJihjYT09PW51bGw/Y2E9bmV3IFNldChbdGhpc10pOmNhLmFkZCh0aGlzKSk7dmFyIGQ9YS5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGEudmFsdWUse2NvbXBvbmVudFN0YWNrOmQhPT1udWxsP2Q6IiJ9KX0pfWZ1bmN0aW9uIHcxKHQsZSxsLGEsbil7aWYobC5mbGFnc3w9MzI3NjgsYSE9PW51bGwmJnR5cGVvZiBhPT0ib2JqZWN0IiYmdHlwZW9mIGEudGhlbj09ImZ1bmN0aW9uIil7aWYoZT1sLmFsdGVybmF0ZSxlIT09bnVsbCYmeG8oZSxsLG4sITApLGw9VmUuY3VycmVudCxsIT09bnVsbCl7c3dpdGNoKGwudGFnKXtjYXNlIDEzOnJldHVybiB1bD09PW51bGw/U2MoKTpsLmFsdGVybmF0ZT09PW51bGwmJnF0PT09MCYmKHF0PTMpLGwuZmxhZ3MmPS0yNTcsbC5mbGFnc3w9NjU1MzYsbC5sYW5lcz1uLGE9PT1Ncz9sLmZsYWdzfD0xNjM4NDooZT1sLnVwZGF0ZVF1ZXVlLGU9PT1udWxsP2wudXBkYXRlUXVldWU9bmV3IFNldChbYV0pOmUuYWRkKGEpLEVjKHQsYSxuKSksITE7Y2FzZSAyMjpyZXR1cm4gbC5mbGFnc3w9NjU1MzYsYT09PU1zP2wuZmxhZ3N8PTE2Mzg0OihlPWwudXBkYXRlUXVldWUsZT09PW51bGw/KGU9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFthXSl9LGwudXBkYXRlUXVldWU9ZSk6KGw9ZS5yZXRyeVF1ZXVlLGw9PT1udWxsP2UucmV0cnlRdWV1ZT1uZXcgU2V0KFthXSk6bC5hZGQoYSkpLEVjKHQsYSxuKSksITF9dGhyb3cgRXJyb3Iocyg0MzUsbC50YWcpKX1yZXR1cm4gRWModCxhLG4pLFNjKCksITF9aWYoRXQpcmV0dXJuIGU9VmUuY3VycmVudCxlIT09bnVsbD8oKGUuZmxhZ3MmNjU1MzYpPT09MCYmKGUuZmxhZ3N8PTI1NiksZS5mbGFnc3w9NjU1MzYsZS5sYW5lcz1uLGEhPT14cyYmKHQ9RXJyb3Iocyg0MjIpLHtjYXVzZTphfSksYm8ocWUodCxsKSkpKTooYSE9PXhzJiYoZT1FcnJvcihzKDQyMykse2NhdXNlOmF9KSxibyhxZShlLGwpKSksdD10LmN1cnJlbnQuYWx0ZXJuYXRlLHQuZmxhZ3N8PTY1NTM2LG4mPS1uLHQubGFuZXN8PW4sYT1xZShhLGwpLG49RnModC5zdGF0ZU5vZGUsYSxuKSx6cyh0LG4pLHF0IT09NCYmKHF0PTIpKSwhMTt2YXIgbz1FcnJvcihzKDUyMCkse2NhdXNlOmF9KTtpZihvPXFlKG8sbCkscW89PT1udWxsP3FvPVtvXTpxby5wdXNoKG8pLHF0IT09NCYmKHF0PTIpLGU9PT1udWxsKXJldHVybiEwO2E9cWUoYSxsKSxsPWU7ZG97c3dpdGNoKGwudGFnKXtjYXNlIDM6cmV0dXJuIGwuZmxhZ3N8PTY1NTM2LHQ9biYtbixsLmxhbmVzfD10LHQ9RnMobC5zdGF0ZU5vZGUsYSx0KSx6cyhsLHQpLCExO2Nhc2UgMTppZihlPWwudHlwZSxvPWwuc3RhdGVOb2RlLChsLmZsYWdzJjEyOCk9PT0wJiYodHlwZW9mIGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHxvIT09bnVsbCYmdHlwZW9mIG8uY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihjYT09PW51bGx8fCFjYS5oYXMobykpKSlyZXR1cm4gbC5mbGFnc3w9NjU1MzYsbiY9LW4sbC5sYW5lc3w9bixuPUFmKG4pLFJmKG4sdCxsLGEpLHpzKGwsbiksITF9bD1sLnJldHVybn13aGlsZShsIT09bnVsbCk7cmV0dXJuITF9dmFyIHpmPUVycm9yKHMoNDYxKSksYWU9ITE7ZnVuY3Rpb24gdWUodCxlLGwsYSl7ZS5jaGlsZD10PT09bnVsbD94ZihlLG51bGwsbCxhKTpfbihlLHQuY2hpbGQsbCxhKX1mdW5jdGlvbiBOZih0LGUsbCxhLG4pe2w9bC5yZW5kZXI7dmFyIG89ZS5yZWY7aWYoInJlZiJpbiBhKXt2YXIgYz17fTtmb3IodmFyIGQgaW4gYSlkIT09InJlZiImJihjW2RdPWFbZF0pfWVsc2UgYz1hO3JldHVybiBQYShlKSxhPWpzKHQsZSxsLGMsbyxuKSxkPUJzKCksdCE9PW51bGwmJiFhZT8oTHModCxlLG4pLHpsKHQsZSxuKSk6KEV0JiZkJiZ2cyhlKSxlLmZsYWdzfD0xLHVlKHQsZSxhLG4pLGUuY2hpbGQpfWZ1bmN0aW9uIF9mKHQsZSxsLGEsbil7aWYodD09PW51bGwpe3ZhciBvPWwudHlwZTtyZXR1cm4gdHlwZW9mIG89PSJmdW5jdGlvbiImJiFncyhvKSYmby5kZWZhdWx0UHJvcHM9PT12b2lkIDAmJmwuY29tcGFyZT09PW51bGw/KGUudGFnPTE1LGUudHlwZT1vLGtmKHQsZSxvLGEsbikpOih0PXppKGwudHlwZSxudWxsLGEsZSxlLm1vZGUsbiksdC5yZWY9ZS5yZWYsdC5yZXR1cm49ZSxlLmNoaWxkPXQpfWlmKG89dC5jaGlsZCwhaWModCxuKSl7dmFyIGM9by5tZW1vaXplZFByb3BzO2lmKGw9bC5jb21wYXJlLGw9bCE9PW51bGw/bDpnbyxsKGMsYSkmJnQucmVmPT09ZS5yZWYpcmV0dXJuIHpsKHQsZSxuKX1yZXR1cm4gZS5mbGFnc3w9MSx0PUNsKG8sYSksdC5yZWY9ZS5yZWYsdC5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24ga2YodCxlLGwsYSxuKXtpZih0IT09bnVsbCl7dmFyIG89dC5tZW1vaXplZFByb3BzO2lmKGdvKG8sYSkmJnQucmVmPT09ZS5yZWYpaWYoYWU9ITEsZS5wZW5kaW5nUHJvcHM9YT1vLGljKHQsbikpKHQuZmxhZ3MmMTMxMDcyKSE9PTAmJihhZT0hMCk7ZWxzZSByZXR1cm4gZS5sYW5lcz10LmxhbmVzLHpsKHQsZSxuKX1yZXR1cm4gSXModCxlLGwsYSxuKX1mdW5jdGlvbiBPZih0LGUsbCl7dmFyIGE9ZS5wZW5kaW5nUHJvcHMsbj1hLmNoaWxkcmVuLG89dCE9PW51bGw/dC5tZW1vaXplZFN0YXRlOm51bGw7aWYoYS5tb2RlPT09ImhpZGRlbiIpe2lmKChlLmZsYWdzJjEyOCkhPT0wKXtpZihhPW8hPT1udWxsP28uYmFzZUxhbmVzfGw6bCx0IT09bnVsbCl7Zm9yKG49ZS5jaGlsZD10LmNoaWxkLG89MDtuIT09bnVsbDspbz1vfG4ubGFuZXN8bi5jaGlsZExhbmVzLG49bi5zaWJsaW5nO2UuY2hpbGRMYW5lcz1vJn5hfWVsc2UgZS5jaGlsZExhbmVzPTAsZS5jaGlsZD1udWxsO3JldHVybiBqZih0LGUsYSxsKX1pZigobCY1MzY4NzA5MTIpIT09MCllLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsfSx0IT09bnVsbCYmamkoZSxvIT09bnVsbD9vLmNhY2hlUG9vbDpudWxsKSxvIT09bnVsbD9fZChlLG8pOl9zKCksd2YoZSk7ZWxzZSByZXR1cm4gZS5sYW5lcz1lLmNoaWxkTGFuZXM9NTM2ODcwOTEyLGpmKHQsZSxvIT09bnVsbD9vLmJhc2VMYW5lc3xsOmwsbCl9ZWxzZSBvIT09bnVsbD8oamkoZSxvLmNhY2hlUG9vbCksX2QoZSxvKSxhYSgpLGUubWVtb2l6ZWRTdGF0ZT1udWxsKToodCE9PW51bGwmJmppKGUsbnVsbCksX3MoKSxhYSgpKTtyZXR1cm4gdWUodCxlLG4sbCksZS5jaGlsZH1mdW5jdGlvbiBqZih0LGUsbCxhKXt2YXIgbj1EcygpO3JldHVybiBuPW49PT1udWxsP251bGw6e3BhcmVudDokdC5fY3VycmVudFZhbHVlLHBvb2w6bn0sZS5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6bCxjYWNoZVBvb2w6bn0sdCE9PW51bGwmJmppKGUsbnVsbCksX3MoKSx3ZihlKSx0IT09bnVsbCYmeG8odCxlLGEsITApLG51bGx9ZnVuY3Rpb24gRmkodCxlKXt2YXIgbD1lLnJlZjtpZihsPT09bnVsbCl0IT09bnVsbCYmdC5yZWYhPT1udWxsJiYoZS5mbGFnc3w9NDE5NDgxNik7ZWxzZXtpZih0eXBlb2YgbCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGwhPSJvYmplY3QiKXRocm93IEVycm9yKHMoMjg0KSk7KHQ9PT1udWxsfHx0LnJlZiE9PWwpJiYoZS5mbGFnc3w9NDE5NDgxNil9fWZ1bmN0aW9uIElzKHQsZSxsLGEsbil7cmV0dXJuIFBhKGUpLGw9anModCxlLGwsYSx2b2lkIDAsbiksYT1CcygpLHQhPT1udWxsJiYhYWU/KExzKHQsZSxuKSx6bCh0LGUsbikpOihFdCYmYSYmdnMoZSksZS5mbGFnc3w9MSx1ZSh0LGUsbCxuKSxlLmNoaWxkKX1mdW5jdGlvbiBCZih0LGUsbCxhLG4sbyl7cmV0dXJuIFBhKGUpLGUudXBkYXRlUXVldWU9bnVsbCxsPU9kKGUsYSxsLG4pLGtkKHQpLGE9QnMoKSx0IT09bnVsbCYmIWFlPyhMcyh0LGUsbyksemwodCxlLG8pKTooRXQmJmEmJnZzKGUpLGUuZmxhZ3N8PTEsdWUodCxlLGwsbyksZS5jaGlsZCl9ZnVuY3Rpb24gTGYodCxlLGwsYSxuKXtpZihQYShlKSxlLnN0YXRlTm9kZT09PW51bGwpe3ZhciBvPVNuLGM9bC5jb250ZXh0VHlwZTt0eXBlb2YgYz09Im9iamVjdCImJmMhPT1udWxsJiYobz15ZShjKSksbz1uZXcgbChhLG8pLGUubWVtb2l6ZWRTdGF0ZT1vLnN0YXRlIT09bnVsbCYmby5zdGF0ZSE9PXZvaWQgMD9vLnN0YXRlOm51bGwsby51cGRhdGVyPSRzLGUuc3RhdGVOb2RlPW8sby5fcmVhY3RJbnRlcm5hbHM9ZSxvPWUuc3RhdGVOb2RlLG8ucHJvcHM9YSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxvLnJlZnM9e30sQXMoZSksYz1sLmNvbnRleHRUeXBlLG8uY29udGV4dD10eXBlb2YgYz09Im9iamVjdCImJmMhPT1udWxsP3llKGMpOlNuLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLGM9bC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsdHlwZW9mIGM9PSJmdW5jdGlvbiImJihXcyhlLGwsYyxhKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGwuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPT0iZnVuY3Rpb24ifHx0eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uInx8dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwoYz1vLnN0YXRlLHR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmby5jb21wb25lbnRXaWxsTW91bnQoKSx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxjIT09by5zdGF0ZSYmJHMuZW5xdWV1ZVJlcGxhY2VTdGF0ZShvLG8uc3RhdGUsbnVsbCksTW8oZSxhLG8sbiksRG8oKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJihlLmZsYWdzfD00MTk0MzA4KSxhPSEwfWVsc2UgaWYodD09PW51bGwpe289ZS5zdGF0ZU5vZGU7dmFyIGQ9ZS5tZW1vaXplZFByb3BzLGc9JGEobCxkKTtvLnByb3BzPWc7dmFyIFM9by5jb250ZXh0LHo9bC5jb250ZXh0VHlwZTtjPVNuLHR5cGVvZiB6PT0ib2JqZWN0IiYmeiE9PW51bGwmJihjPXllKHopKTt2YXIgTz1sLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczt6PXR5cGVvZiBPPT0iZnVuY3Rpb24ifHx0eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIixkPWUucGVuZGluZ1Byb3BzIT09ZCx6fHx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KGR8fFMhPT1jKSYmQ2YoZSxvLGEsYyksRmw9ITE7dmFyIEU9ZS5tZW1vaXplZFN0YXRlO28uc3RhdGU9RSxNbyhlLGEsbyxuKSxEbygpLFM9ZS5tZW1vaXplZFN0YXRlLGR8fEUhPT1TfHxGbD8odHlwZW9mIE89PSJmdW5jdGlvbiImJihXcyhlLGwsTyxhKSxTPWUubWVtb2l6ZWRTdGF0ZSksKGc9Rmx8fFNmKGUsbCxnLGEsRSxTLGMpKT8oenx8dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZvLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJm8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSx0eXBlb2Ygby5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTQxOTQzMDgpKToodHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJihlLmZsYWdzfD00MTk0MzA4KSxlLm1lbW9pemVkUHJvcHM9YSxlLm1lbW9pemVkU3RhdGU9Uyksby5wcm9wcz1hLG8uc3RhdGU9UyxvLmNvbnRleHQ9YyxhPWcpOih0eXBlb2Ygby5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTQxOTQzMDgpLGE9ITEpfWVsc2V7bz1lLnN0YXRlTm9kZSxScyh0LGUpLGM9ZS5tZW1vaXplZFByb3BzLHo9JGEobCxjKSxvLnByb3BzPXosTz1lLnBlbmRpbmdQcm9wcyxFPW8uY29udGV4dCxTPWwuY29udGV4dFR5cGUsZz1Tbix0eXBlb2YgUz09Im9iamVjdCImJlMhPT1udWxsJiYoZz15ZShTKSksZD1sLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywoUz10eXBlb2YgZD09ImZ1bmN0aW9uInx8dHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiIpfHx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KGMhPT1PfHxFIT09ZykmJkNmKGUsbyxhLGcpLEZsPSExLEU9ZS5tZW1vaXplZFN0YXRlLG8uc3RhdGU9RSxNbyhlLGEsbyxuKSxEbygpO3ZhciBUPWUubWVtb2l6ZWRTdGF0ZTtjIT09T3x8RSE9PVR8fEZsfHx0IT09bnVsbCYmdC5kZXBlbmRlbmNpZXMhPT1udWxsJiZraSh0LmRlcGVuZGVuY2llcyk/KHR5cGVvZiBkPT0iZnVuY3Rpb24iJiYoV3MoZSxsLGQsYSksVD1lLm1lbW9pemVkU3RhdGUpLCh6PUZsfHxTZihlLGwseixhLEUsVCxnKXx8dCE9PW51bGwmJnQuZGVwZW5kZW5jaWVzIT09bnVsbCYma2kodC5kZXBlbmRlbmNpZXMpKT8oU3x8dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiImJnR5cGVvZiBvLmNvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiJ8fCh0eXBlb2Ygby5jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZvLmNvbXBvbmVudFdpbGxVcGRhdGUoYSxULGcpLHR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZvLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGEsVCxnKSksdHlwZW9mIG8uY29tcG9uZW50RGlkVXBkYXRlPT0iZnVuY3Rpb24iJiYoZS5mbGFnc3w9NCksdHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiImJihlLmZsYWdzfD0xMDI0KSk6KHR5cGVvZiBvLmNvbXBvbmVudERpZFVwZGF0ZSE9ImZ1bmN0aW9uInx8Yz09PXQubWVtb2l6ZWRQcm9wcyYmRT09PXQubWVtb2l6ZWRTdGF0ZXx8KGUuZmxhZ3N8PTQpLHR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIT0iZnVuY3Rpb24ifHxjPT09dC5tZW1vaXplZFByb3BzJiZFPT09dC5tZW1vaXplZFN0YXRlfHwoZS5mbGFnc3w9MTAyNCksZS5tZW1vaXplZFByb3BzPWEsZS5tZW1vaXplZFN0YXRlPVQpLG8ucHJvcHM9YSxvLnN0YXRlPVQsby5jb250ZXh0PWcsYT16KToodHlwZW9mIG8uY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHxjPT09dC5tZW1vaXplZFByb3BzJiZFPT09dC5tZW1vaXplZFN0YXRlfHwoZS5mbGFnc3w9NCksdHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fGM9PT10Lm1lbW9pemVkUHJvcHMmJkU9PT10Lm1lbW9pemVkU3RhdGV8fChlLmZsYWdzfD0xMDI0KSxhPSExKX1yZXR1cm4gbz1hLEZpKHQsZSksYT0oZS5mbGFncyYxMjgpIT09MCxvfHxhPyhvPWUuc3RhdGVOb2RlLGw9YSYmdHlwZW9mIGwuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIT0iZnVuY3Rpb24iP251bGw6by5yZW5kZXIoKSxlLmZsYWdzfD0xLHQhPT1udWxsJiZhPyhlLmNoaWxkPV9uKGUsdC5jaGlsZCxudWxsLG4pLGUuY2hpbGQ9X24oZSxudWxsLGwsbikpOnVlKHQsZSxsLG4pLGUubWVtb2l6ZWRTdGF0ZT1vLnN0YXRlLHQ9ZS5jaGlsZCk6dD16bCh0LGUsbiksdH1mdW5jdGlvbiBIZih0LGUsbCxhKXtyZXR1cm4gdm8oKSxlLmZsYWdzfD0yNTYsdWUodCxlLGwsYSksZS5jaGlsZH12YXIgdGM9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowLGh5ZHJhdGlvbkVycm9yczpudWxsfTtmdW5jdGlvbiBlYyh0KXtyZXR1cm57YmFzZUxhbmVzOnQsY2FjaGVQb29sOkVkKCl9fWZ1bmN0aW9uIGxjKHQsZSxsKXtyZXR1cm4gdD10IT09bnVsbD90LmNoaWxkTGFuZXMmfmw6MCxlJiYodHw9WmUpLHR9ZnVuY3Rpb24gVWYodCxlLGwpe3ZhciBhPWUucGVuZGluZ1Byb3BzLG49ITEsbz0oZS5mbGFncyYxMjgpIT09MCxjO2lmKChjPW8pfHwoYz10IT09bnVsbCYmdC5tZW1vaXplZFN0YXRlPT09bnVsbD8hMTooRnQuY3VycmVudCYyKSE9PTApLGMmJihuPSEwLGUuZmxhZ3MmPS0xMjkpLGM9KGUuZmxhZ3MmMzIpIT09MCxlLmZsYWdzJj0tMzMsdD09PW51bGwpe2lmKEV0KXtpZihuP2xhKGUpOmFhKCksRXQpe3ZhciBkPVV0LGc7aWYoZz1kKXt0Ontmb3IoZz1kLGQ9Y2w7Zy5ub2RlVHlwZSE9PTg7KXtpZighZCl7ZD1udWxsO2JyZWFrIHR9aWYoZz1sbChnLm5leHRTaWJsaW5nKSxnPT09bnVsbCl7ZD1udWxsO2JyZWFrIHR9fWQ9Z31kIT09bnVsbD8oZS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmQsdHJlZUNvbnRleHQ6WGEhPT1udWxsP3tpZDpFbCxvdmVyZmxvdzpUbH06bnVsbCxyZXRyeUxhbmU6NTM2ODcwOTEyLGh5ZHJhdGlvbkVycm9yczpudWxsfSxnPXplKDE4LG51bGwsbnVsbCwwKSxnLnN0YXRlTm9kZT1kLGcucmV0dXJuPWUsZS5jaGlsZD1nLGJlPWUsVXQ9bnVsbCxnPSEwKTpnPSExfWd8fFFhKGUpfWlmKGQ9ZS5tZW1vaXplZFN0YXRlLGQhPT1udWxsJiYoZD1kLmRlaHlkcmF0ZWQsZCE9PW51bGwpKXJldHVybiBVYyhkKT9lLmxhbmVzPTMyOmUubGFuZXM9NTM2ODcwOTEyLG51bGw7UmwoZSl9cmV0dXJuIGQ9YS5jaGlsZHJlbixhPWEuZmFsbGJhY2ssbj8oYWEoKSxuPWUubW9kZSxkPUlpKHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmR9LG4pLGE9WWEoYSxuLGwsbnVsbCksZC5yZXR1cm49ZSxhLnJldHVybj1lLGQuc2libGluZz1hLGUuY2hpbGQ9ZCxuPWUuY2hpbGQsbi5tZW1vaXplZFN0YXRlPWVjKGwpLG4uY2hpbGRMYW5lcz1sYyh0LGMsbCksZS5tZW1vaXplZFN0YXRlPXRjLGEpOihsYShlKSxhYyhlLGQpKX1pZihnPXQubWVtb2l6ZWRTdGF0ZSxnIT09bnVsbCYmKGQ9Zy5kZWh5ZHJhdGVkLGQhPT1udWxsKSl7aWYobyllLmZsYWdzJjI1Nj8obGEoZSksZS5mbGFncyY9LTI1NyxlPW5jKHQsZSxsKSk6ZS5tZW1vaXplZFN0YXRlIT09bnVsbD8oYWEoKSxlLmNoaWxkPXQuY2hpbGQsZS5mbGFnc3w9MTI4LGU9bnVsbCk6KGFhKCksbj1hLmZhbGxiYWNrLGQ9ZS5tb2RlLGE9SWkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOmEuY2hpbGRyZW59LGQpLG49WWEobixkLGwsbnVsbCksbi5mbGFnc3w9MixhLnJldHVybj1lLG4ucmV0dXJuPWUsYS5zaWJsaW5nPW4sZS5jaGlsZD1hLF9uKGUsdC5jaGlsZCxudWxsLGwpLGE9ZS5jaGlsZCxhLm1lbW9pemVkU3RhdGU9ZWMobCksYS5jaGlsZExhbmVzPWxjKHQsYyxsKSxlLm1lbW9pemVkU3RhdGU9dGMsZT1uKTtlbHNlIGlmKGxhKGUpLFVjKGQpKXtpZihjPWQubmV4dFNpYmxpbmcmJmQubmV4dFNpYmxpbmcuZGF0YXNldCxjKXZhciBTPWMuZGdzdDtjPVMsYT1FcnJvcihzKDQxOSkpLGEuc3RhY2s9IiIsYS5kaWdlc3Q9Yyxibyh7dmFsdWU6YSxzb3VyY2U6bnVsbCxzdGFjazpudWxsfSksZT1uYyh0LGUsbCl9ZWxzZSBpZihhZXx8eG8odCxlLGwsITEpLGM9KGwmdC5jaGlsZExhbmVzKSE9PTAsYWV8fGMpe2lmKGM9anQsYyE9PW51bGwmJihhPWwmLWwsYT0oYSY0MikhPT0wPzE6ZW8oYSksYT0oYSYoYy5zdXNwZW5kZWRMYW5lc3xsKSkhPT0wPzA6YSxhIT09MCYmYSE9PWcucmV0cnlMYW5lKSl0aHJvdyBnLnJldHJ5TGFuZT1hLHduKHQsYSksamUoYyx0LGEpLHpmO2QuZGF0YT09PSIkPyJ8fFNjKCksZT1uYyh0LGUsbCl9ZWxzZSBkLmRhdGE9PT0iJD8iPyhlLmZsYWdzfD0xOTIsZS5jaGlsZD10LmNoaWxkLGU9bnVsbCk6KHQ9Zy50cmVlQ29udGV4dCxVdD1sbChkLm5leHRTaWJsaW5nKSxiZT1lLEV0PSEwLFphPW51bGwsY2w9ITEsdCE9PW51bGwmJihZZVtYZSsrXT1FbCxZZVtYZSsrXT1UbCxZZVtYZSsrXT1YYSxFbD10LmlkLFRsPXQub3ZlcmZsb3csWGE9ZSksZT1hYyhlLGEuY2hpbGRyZW4pLGUuZmxhZ3N8PTQwOTYpO3JldHVybiBlfXJldHVybiBuPyhhYSgpLG49YS5mYWxsYmFjayxkPWUubW9kZSxnPXQuY2hpbGQsUz1nLnNpYmxpbmcsYT1DbChnLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmEuY2hpbGRyZW59KSxhLnN1YnRyZWVGbGFncz1nLnN1YnRyZWVGbGFncyY2NTAxMTcxMixTIT09bnVsbD9uPUNsKFMsbik6KG49WWEobixkLGwsbnVsbCksbi5mbGFnc3w9Miksbi5yZXR1cm49ZSxhLnJldHVybj1lLGEuc2libGluZz1uLGUuY2hpbGQ9YSxhPW4sbj1lLmNoaWxkLGQ9dC5jaGlsZC5tZW1vaXplZFN0YXRlLGQ9PT1udWxsP2Q9ZWMobCk6KGc9ZC5jYWNoZVBvb2wsZyE9PW51bGw/KFM9JHQuX2N1cnJlbnRWYWx1ZSxnPWcucGFyZW50IT09Uz97cGFyZW50OlMscG9vbDpTfTpnKTpnPUVkKCksZD17YmFzZUxhbmVzOmQuYmFzZUxhbmVzfGwsY2FjaGVQb29sOmd9KSxuLm1lbW9pemVkU3RhdGU9ZCxuLmNoaWxkTGFuZXM9bGModCxjLGwpLGUubWVtb2l6ZWRTdGF0ZT10YyxhKToobGEoZSksbD10LmNoaWxkLHQ9bC5zaWJsaW5nLGw9Q2wobCx7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46YS5jaGlsZHJlbn0pLGwucmV0dXJuPWUsbC5zaWJsaW5nPW51bGwsdCE9PW51bGwmJihjPWUuZGVsZXRpb25zLGM9PT1udWxsPyhlLmRlbGV0aW9ucz1bdF0sZS5mbGFnc3w9MTYpOmMucHVzaCh0KSksZS5jaGlsZD1sLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGwpfWZ1bmN0aW9uIGFjKHQsZSl7cmV0dXJuIGU9SWkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOmV9LHQubW9kZSksZS5yZXR1cm49dCx0LmNoaWxkPWV9ZnVuY3Rpb24gSWkodCxlKXtyZXR1cm4gdD16ZSgyMix0LG51bGwsZSksdC5sYW5lcz0wLHQuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9LHR9ZnVuY3Rpb24gbmModCxlLGwpe3JldHVybiBfbihlLHQuY2hpbGQsbnVsbCxsKSx0PWFjKGUsZS5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLHQuZmxhZ3N8PTIsZS5tZW1vaXplZFN0YXRlPW51bGwsdH1mdW5jdGlvbiBxZih0LGUsbCl7dC5sYW5lc3w9ZTt2YXIgYT10LmFsdGVybmF0ZTthIT09bnVsbCYmKGEubGFuZXN8PWUpLFNzKHQucmV0dXJuLGUsbCl9ZnVuY3Rpb24gb2ModCxlLGwsYSxuKXt2YXIgbz10Lm1lbW9pemVkU3RhdGU7bz09PW51bGw/dC5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczplLHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6YSx0YWlsOmwsdGFpbE1vZGU6bn06KG8uaXNCYWNrd2FyZHM9ZSxvLnJlbmRlcmluZz1udWxsLG8ucmVuZGVyaW5nU3RhcnRUaW1lPTAsby5sYXN0PWEsby50YWlsPWwsby50YWlsTW9kZT1uKX1mdW5jdGlvbiBHZih0LGUsbCl7dmFyIGE9ZS5wZW5kaW5nUHJvcHMsbj1hLnJldmVhbE9yZGVyLG89YS50YWlsO2lmKHVlKHQsZSxhLmNoaWxkcmVuLGwpLGE9RnQuY3VycmVudCwoYSYyKSE9PTApYT1hJjF8MixlLmZsYWdzfD0xMjg7ZWxzZXtpZih0IT09bnVsbCYmKHQuZmxhZ3MmMTI4KSE9PTApdDpmb3IodD1lLmNoaWxkO3QhPT1udWxsOyl7aWYodC50YWc9PT0xMyl0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZxZih0LGwsZSk7ZWxzZSBpZih0LnRhZz09PTE5KXFmKHQsbCxlKTtlbHNlIGlmKHQuY2hpbGQhPT1udWxsKXt0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtjb250aW51ZX1pZih0PT09ZSlicmVhayB0O2Zvcig7dC5zaWJsaW5nPT09bnVsbDspe2lmKHQucmV0dXJuPT09bnVsbHx8dC5yZXR1cm49PT1lKWJyZWFrIHQ7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfWEmPTF9c3dpdGNoKHEoRnQsYSksbil7Y2FzZSJmb3J3YXJkcyI6Zm9yKGw9ZS5jaGlsZCxuPW51bGw7bCE9PW51bGw7KXQ9bC5hbHRlcm5hdGUsdCE9PW51bGwmJkppKHQpPT09bnVsbCYmKG49bCksbD1sLnNpYmxpbmc7bD1uLGw9PT1udWxsPyhuPWUuY2hpbGQsZS5jaGlsZD1udWxsKToobj1sLnNpYmxpbmcsbC5zaWJsaW5nPW51bGwpLG9jKGUsITEsbixsLG8pO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpmb3IobD1udWxsLG49ZS5jaGlsZCxlLmNoaWxkPW51bGw7biE9PW51bGw7KXtpZih0PW4uYWx0ZXJuYXRlLHQhPT1udWxsJiZKaSh0KT09PW51bGwpe2UuY2hpbGQ9bjticmVha310PW4uc2libGluZyxuLnNpYmxpbmc9bCxsPW4sbj10fW9jKGUsITAsbCxudWxsLG8pO2JyZWFrO2Nhc2UidG9nZXRoZXIiOm9jKGUsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDplLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gZS5jaGlsZH1mdW5jdGlvbiB6bCh0LGUsbCl7aWYodCE9PW51bGwmJihlLmRlcGVuZGVuY2llcz10LmRlcGVuZGVuY2llcyksc2F8PWUubGFuZXMsKGwmZS5jaGlsZExhbmVzKT09PTApaWYodCE9PW51bGwpe2lmKHhvKHQsZSxsLCExKSwobCZlLmNoaWxkTGFuZXMpPT09MClyZXR1cm4gbnVsbH1lbHNlIHJldHVybiBudWxsO2lmKHQhPT1udWxsJiZlLmNoaWxkIT09dC5jaGlsZCl0aHJvdyBFcnJvcihzKDE1MykpO2lmKGUuY2hpbGQhPT1udWxsKXtmb3IodD1lLmNoaWxkLGw9Q2wodCx0LnBlbmRpbmdQcm9wcyksZS5jaGlsZD1sLGwucmV0dXJuPWU7dC5zaWJsaW5nIT09bnVsbDspdD10LnNpYmxpbmcsbD1sLnNpYmxpbmc9Q2wodCx0LnBlbmRpbmdQcm9wcyksbC5yZXR1cm49ZTtsLnNpYmxpbmc9bnVsbH1yZXR1cm4gZS5jaGlsZH1mdW5jdGlvbiBpYyh0LGUpe3JldHVybih0LmxhbmVzJmUpIT09MD8hMDoodD10LmRlcGVuZGVuY2llcywhISh0IT09bnVsbCYma2kodCkpKX1mdW5jdGlvbiBTMSh0LGUsbCl7c3dpdGNoKGUudGFnKXtjYXNlIDM6VHQoZSxlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSwkbChlLCR0LHQubWVtb2l6ZWRTdGF0ZS5jYWNoZSksdm8oKTticmVhaztjYXNlIDI3OmNhc2UgNTpLZShlKTticmVhaztjYXNlIDQ6VHQoZSxlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOiRsKGUsZS50eXBlLGUubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAxMzp2YXIgYT1lLm1lbW9pemVkU3RhdGU7aWYoYSE9PW51bGwpcmV0dXJuIGEuZGVoeWRyYXRlZCE9PW51bGw/KGxhKGUpLGUuZmxhZ3N8PTEyOCxudWxsKToobCZlLmNoaWxkLmNoaWxkTGFuZXMpIT09MD9VZih0LGUsbCk6KGxhKGUpLHQ9emwodCxlLGwpLHQhPT1udWxsP3Quc2libGluZzpudWxsKTtsYShlKTticmVhaztjYXNlIDE5OnZhciBuPSh0LmZsYWdzJjEyOCkhPT0wO2lmKGE9KGwmZS5jaGlsZExhbmVzKSE9PTAsYXx8KHhvKHQsZSxsLCExKSxhPShsJmUuY2hpbGRMYW5lcykhPT0wKSxuKXtpZihhKXJldHVybiBHZih0LGUsbCk7ZS5mbGFnc3w9MTI4fWlmKG49ZS5tZW1vaXplZFN0YXRlLG4hPT1udWxsJiYobi5yZW5kZXJpbmc9bnVsbCxuLnRhaWw9bnVsbCxuLmxhc3RFZmZlY3Q9bnVsbCkscShGdCxGdC5jdXJyZW50KSxhKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gZS5sYW5lcz0wLE9mKHQsZSxsKTtjYXNlIDI0OiRsKGUsJHQsdC5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gemwodCxlLGwpfWZ1bmN0aW9uIFlmKHQsZSxsKXtpZih0IT09bnVsbClpZih0Lm1lbW9pemVkUHJvcHMhPT1lLnBlbmRpbmdQcm9wcylhZT0hMDtlbHNle2lmKCFpYyh0LGwpJiYoZS5mbGFncyYxMjgpPT09MClyZXR1cm4gYWU9ITEsUzEodCxlLGwpO2FlPSh0LmZsYWdzJjEzMTA3MikhPT0wfWVsc2UgYWU9ITEsRXQmJihlLmZsYWdzJjEwNDg1NzYpIT09MCYmeWQoZSxfaSxlLmluZGV4KTtzd2l0Y2goZS5sYW5lcz0wLGUudGFnKXtjYXNlIDE2OnQ6e3Q9ZS5wZW5kaW5nUHJvcHM7dmFyIGE9ZS5lbGVtZW50VHlwZSxuPWEuX2luaXQ7aWYoYT1uKGEuX3BheWxvYWQpLGUudHlwZT1hLHR5cGVvZiBhPT0iZnVuY3Rpb24iKWdzKGEpPyh0PSRhKGEsdCksZS50YWc9MSxlPUxmKG51bGwsZSxhLHQsbCkpOihlLnRhZz0wLGU9SXMobnVsbCxlLGEsdCxsKSk7ZWxzZXtpZihhIT1udWxsKXtpZihuPWEuJCR0eXBlb2Ysbj09PVkpe2UudGFnPTExLGU9TmYobnVsbCxlLGEsdCxsKTticmVhayB0fWVsc2UgaWYobj09PXJ0KXtlLnRhZz0xNCxlPV9mKG51bGwsZSxhLHQsbCk7YnJlYWsgdH19dGhyb3cgZT1TZShhKXx8YSxFcnJvcihzKDMwNixlLCIiKSl9fXJldHVybiBlO2Nhc2UgMDpyZXR1cm4gSXModCxlLGUudHlwZSxlLnBlbmRpbmdQcm9wcyxsKTtjYXNlIDE6cmV0dXJuIGE9ZS50eXBlLG49JGEoYSxlLnBlbmRpbmdQcm9wcyksTGYodCxlLGEsbixsKTtjYXNlIDM6dDp7aWYoVHQoZSxlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSx0PT09bnVsbCl0aHJvdyBFcnJvcihzKDM4NykpO2E9ZS5wZW5kaW5nUHJvcHM7dmFyIG89ZS5tZW1vaXplZFN0YXRlO249by5lbGVtZW50LFJzKHQsZSksTW8oZSxhLG51bGwsbCk7dmFyIGM9ZS5tZW1vaXplZFN0YXRlO2lmKGE9Yy5jYWNoZSwkbChlLCR0LGEpLGEhPT1vLmNhY2hlJiZDcyhlLFskdF0sbCwhMCksRG8oKSxhPWMuZWxlbWVudCxvLmlzRGVoeWRyYXRlZClpZihvPXtlbGVtZW50OmEsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOmMuY2FjaGV9LGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW8sZS5tZW1vaXplZFN0YXRlPW8sZS5mbGFncyYyNTYpe2U9SGYodCxlLGEsbCk7YnJlYWsgdH1lbHNlIGlmKGEhPT1uKXtuPXFlKEVycm9yKHMoNDI0KSksZSksYm8obiksZT1IZih0LGUsYSxsKTticmVhayB0fWVsc2V7c3dpdGNoKHQ9ZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyx0Lm5vZGVUeXBlKXtjYXNlIDk6dD10LmJvZHk7YnJlYWs7ZGVmYXVsdDp0PXQubm9kZU5hbWU9PT0iSFRNTCI/dC5vd25lckRvY3VtZW50LmJvZHk6dH1mb3IoVXQ9bGwodC5maXJzdENoaWxkKSxiZT1lLEV0PSEwLFphPW51bGwsY2w9ITAsbD14ZihlLG51bGwsYSxsKSxlLmNoaWxkPWw7bDspbC5mbGFncz1sLmZsYWdzJi0zfDQwOTYsbD1sLnNpYmxpbmd9ZWxzZXtpZih2bygpLGE9PT1uKXtlPXpsKHQsZSxsKTticmVhayB0fXVlKHQsZSxhLGwpfWU9ZS5jaGlsZH1yZXR1cm4gZTtjYXNlIDI2OnJldHVybiBGaSh0LGUpLHQ9PT1udWxsPyhsPVFoKGUudHlwZSxudWxsLGUucGVuZGluZ1Byb3BzLG51bGwpKT9lLm1lbW9pemVkU3RhdGU9bDpFdHx8KGw9ZS50eXBlLHQ9ZS5wZW5kaW5nUHJvcHMsYT1ocih0dC5jdXJyZW50KS5jcmVhdGVFbGVtZW50KGwpLGFbdGVdPWUsYVtwZV09dCxmZShhLGwsdCksWHQoYSksZS5zdGF0ZU5vZGU9YSk6ZS5tZW1vaXplZFN0YXRlPVFoKGUudHlwZSx0Lm1lbW9pemVkUHJvcHMsZS5wZW5kaW5nUHJvcHMsdC5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuIEtlKGUpLHQ9PT1udWxsJiZFdCYmKGE9ZS5zdGF0ZU5vZGU9WGgoZS50eXBlLGUucGVuZGluZ1Byb3BzLHR0LmN1cnJlbnQpLGJlPWUsY2w9ITAsbj1VdCxmYShlLnR5cGUpPyhxYz1uLFV0PWxsKGEuZmlyc3RDaGlsZCkpOlV0PW4pLHVlKHQsZSxlLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixsKSxGaSh0LGUpLHQ9PT1udWxsJiYoZS5mbGFnc3w9NDE5NDMwNCksZS5jaGlsZDtjYXNlIDU6cmV0dXJuIHQ9PT1udWxsJiZFdCYmKChuPWE9VXQpJiYoYT1XMShhLGUudHlwZSxlLnBlbmRpbmdQcm9wcyxjbCksYSE9PW51bGw/KGUuc3RhdGVOb2RlPWEsYmU9ZSxVdD1sbChhLmZpcnN0Q2hpbGQpLGNsPSExLG49ITApOm49ITEpLG58fFFhKGUpKSxLZShlKSxuPWUudHlwZSxvPWUucGVuZGluZ1Byb3BzLGM9dCE9PW51bGw/dC5tZW1vaXplZFByb3BzOm51bGwsYT1vLmNoaWxkcmVuLEJjKG4sbyk/YT1udWxsOmMhPT1udWxsJiZCYyhuLGMpJiYoZS5mbGFnc3w9MzIpLGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJihuPWpzKHQsZSxtMSxudWxsLG51bGwsbCksSm8uX2N1cnJlbnRWYWx1ZT1uKSxGaSh0LGUpLHVlKHQsZSxhLGwpLGUuY2hpbGQ7Y2FzZSA2OnJldHVybiB0PT09bnVsbCYmRXQmJigodD1sPVV0KSYmKGw9JDEobCxlLnBlbmRpbmdQcm9wcyxjbCksbCE9PW51bGw/KGUuc3RhdGVOb2RlPWwsYmU9ZSxVdD1udWxsLHQ9ITApOnQ9ITEpLHR8fFFhKGUpKSxudWxsO2Nhc2UgMTM6cmV0dXJuIFVmKHQsZSxsKTtjYXNlIDQ6cmV0dXJuIFR0KGUsZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksYT1lLnBlbmRpbmdQcm9wcyx0PT09bnVsbD9lLmNoaWxkPV9uKGUsbnVsbCxhLGwpOnVlKHQsZSxhLGwpLGUuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gTmYodCxlLGUudHlwZSxlLnBlbmRpbmdQcm9wcyxsKTtjYXNlIDc6cmV0dXJuIHVlKHQsZSxlLnBlbmRpbmdQcm9wcyxsKSxlLmNoaWxkO2Nhc2UgODpyZXR1cm4gdWUodCxlLGUucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGwpLGUuY2hpbGQ7Y2FzZSAxMjpyZXR1cm4gdWUodCxlLGUucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGwpLGUuY2hpbGQ7Y2FzZSAxMDpyZXR1cm4gYT1lLnBlbmRpbmdQcm9wcywkbChlLGUudHlwZSxhLnZhbHVlKSx1ZSh0LGUsYS5jaGlsZHJlbixsKSxlLmNoaWxkO2Nhc2UgOTpyZXR1cm4gbj1lLnR5cGUuX2NvbnRleHQsYT1lLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixQYShlKSxuPXllKG4pLGE9YShuKSxlLmZsYWdzfD0xLHVlKHQsZSxhLGwpLGUuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gX2YodCxlLGUudHlwZSxlLnBlbmRpbmdQcm9wcyxsKTtjYXNlIDE1OnJldHVybiBrZih0LGUsZS50eXBlLGUucGVuZGluZ1Byb3BzLGwpO2Nhc2UgMTk6cmV0dXJuIEdmKHQsZSxsKTtjYXNlIDMxOnJldHVybiBhPWUucGVuZGluZ1Byb3BzLGw9ZS5tb2RlLGE9e21vZGU6YS5tb2RlLGNoaWxkcmVuOmEuY2hpbGRyZW59LHQ9PT1udWxsPyhsPUlpKGEsbCksbC5yZWY9ZS5yZWYsZS5jaGlsZD1sLGwucmV0dXJuPWUsZT1sKToobD1DbCh0LmNoaWxkLGEpLGwucmVmPWUucmVmLGUuY2hpbGQ9bCxsLnJldHVybj1lLGU9bCksZTtjYXNlIDIyOnJldHVybiBPZih0LGUsbCk7Y2FzZSAyNDpyZXR1cm4gUGEoZSksYT15ZSgkdCksdD09PW51bGw/KG49RHMoKSxuPT09bnVsbCYmKG49anQsbz1FcygpLG4ucG9vbGVkQ2FjaGU9byxvLnJlZkNvdW50KyssbyE9PW51bGwmJihuLnBvb2xlZENhY2hlTGFuZXN8PWwpLG49byksZS5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6YSxjYWNoZTpufSxBcyhlKSwkbChlLCR0LG4pKTooKHQubGFuZXMmbCkhPT0wJiYoUnModCxlKSxNbyhlLG51bGwsbnVsbCxsKSxEbygpKSxuPXQubWVtb2l6ZWRTdGF0ZSxvPWUubWVtb2l6ZWRTdGF0ZSxuLnBhcmVudCE9PWE/KG49e3BhcmVudDphLGNhY2hlOmF9LGUubWVtb2l6ZWRTdGF0ZT1uLGUubGFuZXM9PT0wJiYoZS5tZW1vaXplZFN0YXRlPWUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pLCRsKGUsJHQsYSkpOihhPW8uY2FjaGUsJGwoZSwkdCxhKSxhIT09bi5jYWNoZSYmQ3MoZSxbJHRdLGwsITApKSksdWUodCxlLGUucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGwpLGUuY2hpbGQ7Y2FzZSAyOTp0aHJvdyBlLnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihzKDE1NixlLnRhZykpfWZ1bmN0aW9uIE5sKHQpe3QuZmxhZ3N8PTR9ZnVuY3Rpb24gWGYodCxlKXtpZihlLnR5cGUhPT0ic3R5bGVzaGVldCJ8fChlLnN0YXRlLmxvYWRpbmcmNCkhPT0wKXQuZmxhZ3MmPS0xNjc3NzIxNztlbHNlIGlmKHQuZmxhZ3N8PTE2Nzc3MjE2LCEkaChlKSl7aWYoZT1WZS5jdXJyZW50LGUhPT1udWxsJiYoKHd0JjQxOTQwNDgpPT09d3Q/dWwhPT1udWxsOih3dCY2MjkxNDU2MCkhPT13dCYmKHd0JjUzNjg3MDkxMik9PT0wfHxlIT09dWwpKXRocm93IEVvPU1zLFRkO3QuZmxhZ3N8PTgxOTJ9fWZ1bmN0aW9uIHRyKHQsZSl7ZSE9PW51bGwmJih0LmZsYWdzfD00KSx0LmZsYWdzJjE2Mzg0JiYoZT10LnRhZyE9PTIyP2ZpKCk6NTM2ODcwOTEyLHQubGFuZXN8PWUsQm58PWUpfWZ1bmN0aW9uIE9vKHQsZSl7aWYoIUV0KXN3aXRjaCh0LnRhaWxNb2RlKXtjYXNlImhpZGRlbiI6ZT10LnRhaWw7Zm9yKHZhciBsPW51bGw7ZSE9PW51bGw7KWUuYWx0ZXJuYXRlIT09bnVsbCYmKGw9ZSksZT1lLnNpYmxpbmc7bD09PW51bGw/dC50YWlsPW51bGw6bC5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSJjb2xsYXBzZWQiOmw9dC50YWlsO2Zvcih2YXIgYT1udWxsO2whPT1udWxsOylsLmFsdGVybmF0ZSE9PW51bGwmJihhPWwpLGw9bC5zaWJsaW5nO2E9PT1udWxsP2V8fHQudGFpbD09PW51bGw/dC50YWlsPW51bGw6dC50YWlsLnNpYmxpbmc9bnVsbDphLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gSHQodCl7dmFyIGU9dC5hbHRlcm5hdGUhPT1udWxsJiZ0LmFsdGVybmF0ZS5jaGlsZD09PXQuY2hpbGQsbD0wLGE9MDtpZihlKWZvcih2YXIgbj10LmNoaWxkO24hPT1udWxsOylsfD1uLmxhbmVzfG4uY2hpbGRMYW5lcyxhfD1uLnN1YnRyZWVGbGFncyY2NTAxMTcxMixhfD1uLmZsYWdzJjY1MDExNzEyLG4ucmV0dXJuPXQsbj1uLnNpYmxpbmc7ZWxzZSBmb3Iobj10LmNoaWxkO24hPT1udWxsOylsfD1uLmxhbmVzfG4uY2hpbGRMYW5lcyxhfD1uLnN1YnRyZWVGbGFncyxhfD1uLmZsYWdzLG4ucmV0dXJuPXQsbj1uLnNpYmxpbmc7cmV0dXJuIHQuc3VidHJlZUZsYWdzfD1hLHQuY2hpbGRMYW5lcz1sLGV9ZnVuY3Rpb24gQzEodCxlLGwpe3ZhciBhPWUucGVuZGluZ1Byb3BzO3N3aXRjaChicyhlKSxlLnRhZyl7Y2FzZSAzMTpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBIdChlKSxudWxsO2Nhc2UgMTpyZXR1cm4gSHQoZSksbnVsbDtjYXNlIDM6cmV0dXJuIGw9ZS5zdGF0ZU5vZGUsYT1udWxsLHQhPT1udWxsJiYoYT10Lm1lbW9pemVkU3RhdGUuY2FjaGUpLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PWEmJihlLmZsYWdzfD0yMDQ4KSxNbCgkdCksUHQoKSxsLnBlbmRpbmdDb250ZXh0JiYobC5jb250ZXh0PWwucGVuZGluZ0NvbnRleHQsbC5wZW5kaW5nQ29udGV4dD1udWxsKSwodD09PW51bGx8fHQuY2hpbGQ9PT1udWxsKSYmKHlvKGUpP05sKGUpOnQ9PT1udWxsfHx0Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoZS5mbGFncyYyNTYpPT09MHx8KGUuZmxhZ3N8PTEwMjQseGQoKSkpLEh0KGUpLG51bGw7Y2FzZSAyNjpyZXR1cm4gbD1lLm1lbW9pemVkU3RhdGUsdD09PW51bGw/KE5sKGUpLGwhPT1udWxsPyhIdChlKSxYZihlLGwpKTooSHQoZSksZS5mbGFncyY9LTE2Nzc3MjE3KSk6bD9sIT09dC5tZW1vaXplZFN0YXRlPyhObChlKSxIdChlKSxYZihlLGwpKTooSHQoZSksZS5mbGFncyY9LTE2Nzc3MjE3KToodC5tZW1vaXplZFByb3BzIT09YSYmTmwoZSksSHQoZSksZS5mbGFncyY9LTE2Nzc3MjE3KSxudWxsO2Nhc2UgMjc6Q2UoZSksbD10dC5jdXJyZW50O3ZhciBuPWUudHlwZTtpZih0IT09bnVsbCYmZS5zdGF0ZU5vZGUhPW51bGwpdC5tZW1vaXplZFByb3BzIT09YSYmTmwoZSk7ZWxzZXtpZighYSl7aWYoZS5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIEh0KGUpLG51bGx9dD1aLmN1cnJlbnQseW8oZSk/dmQoZSk6KHQ9WGgobixhLGwpLGUuc3RhdGVOb2RlPXQsTmwoZSkpfXJldHVybiBIdChlKSxudWxsO2Nhc2UgNTppZihDZShlKSxsPWUudHlwZSx0IT09bnVsbCYmZS5zdGF0ZU5vZGUhPW51bGwpdC5tZW1vaXplZFByb3BzIT09YSYmTmwoZSk7ZWxzZXtpZighYSl7aWYoZS5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIEh0KGUpLG51bGx9aWYodD1aLmN1cnJlbnQseW8oZSkpdmQoZSk7ZWxzZXtzd2l0Y2gobj1ocih0dC5jdXJyZW50KSx0KXtjYXNlIDE6dD1uLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UgMjp0PW4uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixsKTticmVhaztkZWZhdWx0OnN3aXRjaChsKXtjYXNlInN2ZyI6dD1uLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UibWF0aCI6dD1uLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsbCk7YnJlYWs7Y2FzZSJzY3JpcHQiOnQ9bi5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmlubmVySFRNTD0iPHNjcmlwdD48XC9zY3JpcHQ+Iix0PXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTticmVhaztjYXNlInNlbGVjdCI6dD10eXBlb2YgYS5pcz09InN0cmluZyI/bi5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpczphLmlzfSk6bi5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSxhLm11bHRpcGxlP3QubXVsdGlwbGU9ITA6YS5zaXplJiYodC5zaXplPWEuc2l6ZSk7YnJlYWs7ZGVmYXVsdDp0PXR5cGVvZiBhLmlzPT0ic3RyaW5nIj9uLmNyZWF0ZUVsZW1lbnQobCx7aXM6YS5pc30pOm4uY3JlYXRlRWxlbWVudChsKX19dFt0ZV09ZSx0W3BlXT1hO3Q6Zm9yKG49ZS5jaGlsZDtuIT09bnVsbDspe2lmKG4udGFnPT09NXx8bi50YWc9PT02KXQuYXBwZW5kQ2hpbGQobi5zdGF0ZU5vZGUpO2Vsc2UgaWYobi50YWchPT00JiZuLnRhZyE9PTI3JiZuLmNoaWxkIT09bnVsbCl7bi5jaGlsZC5yZXR1cm49bixuPW4uY2hpbGQ7Y29udGludWV9aWYobj09PWUpYnJlYWsgdDtmb3IoO24uc2libGluZz09PW51bGw7KXtpZihuLnJldHVybj09PW51bGx8fG4ucmV0dXJuPT09ZSlicmVhayB0O249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ31lLnN0YXRlTm9kZT10O3Q6c3dpdGNoKGZlKHQsbCxhKSxsKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOnQ9ISFhLmF1dG9Gb2N1czticmVhayB0O2Nhc2UiaW1nIjp0PSEwO2JyZWFrIHQ7ZGVmYXVsdDp0PSExfXQmJk5sKGUpfX1yZXR1cm4gSHQoZSksZS5mbGFncyY9LTE2Nzc3MjE3LG51bGw7Y2FzZSA2OmlmKHQmJmUuc3RhdGVOb2RlIT1udWxsKXQubWVtb2l6ZWRQcm9wcyE9PWEmJk5sKGUpO2Vsc2V7aWYodHlwZW9mIGEhPSJzdHJpbmciJiZlLnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IocygxNjYpKTtpZih0PXR0LmN1cnJlbnQseW8oZSkpe2lmKHQ9ZS5zdGF0ZU5vZGUsbD1lLm1lbW9pemVkUHJvcHMsYT1udWxsLG49YmUsbiE9PW51bGwpc3dpdGNoKG4udGFnKXtjYXNlIDI3OmNhc2UgNTphPW4ubWVtb2l6ZWRQcm9wc310W3RlXT1lLHQ9ISEodC5ub2RlVmFsdWU9PT1sfHxhIT09bnVsbCYmYS5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc9PT0hMHx8QmgodC5ub2RlVmFsdWUsbCkpLHR8fFFhKGUpfWVsc2UgdD1ocih0KS5jcmVhdGVUZXh0Tm9kZShhKSx0W3RlXT1lLGUuc3RhdGVOb2RlPXR9cmV0dXJuIEh0KGUpLG51bGw7Y2FzZSAxMzppZihhPWUubWVtb2l6ZWRTdGF0ZSx0PT09bnVsbHx8dC5tZW1vaXplZFN0YXRlIT09bnVsbCYmdC5tZW1vaXplZFN0YXRlLmRlaHlkcmF0ZWQhPT1udWxsKXtpZihuPXlvKGUpLGEhPT1udWxsJiZhLmRlaHlkcmF0ZWQhPT1udWxsKXtpZih0PT09bnVsbCl7aWYoIW4pdGhyb3cgRXJyb3IocygzMTgpKTtpZihuPWUubWVtb2l6ZWRTdGF0ZSxuPW4hPT1udWxsP24uZGVoeWRyYXRlZDpudWxsLCFuKXRocm93IEVycm9yKHMoMzE3KSk7blt0ZV09ZX1lbHNlIHZvKCksKGUuZmxhZ3MmMTI4KT09PTAmJihlLm1lbW9pemVkU3RhdGU9bnVsbCksZS5mbGFnc3w9NDtIdChlKSxuPSExfWVsc2Ugbj14ZCgpLHQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiYodC5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1uKSxuPSEwO2lmKCFuKXJldHVybiBlLmZsYWdzJjI1Nj8oUmwoZSksZSk6KFJsKGUpLG51bGwpfWlmKFJsKGUpLChlLmZsYWdzJjEyOCkhPT0wKXJldHVybiBlLmxhbmVzPWwsZTtpZihsPWEhPT1udWxsLHQ9dCE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZSE9PW51bGwsbCl7YT1lLmNoaWxkLG49bnVsbCxhLmFsdGVybmF0ZSE9PW51bGwmJmEuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZhLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihuPWEuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpO3ZhciBvPW51bGw7YS5tZW1vaXplZFN0YXRlIT09bnVsbCYmYS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihvPWEubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksbyE9PW4mJihhLmZsYWdzfD0yMDQ4KX1yZXR1cm4gbCE9PXQmJmwmJihlLmNoaWxkLmZsYWdzfD04MTkyKSx0cihlLGUudXBkYXRlUXVldWUpLEh0KGUpLG51bGw7Y2FzZSA0OnJldHVybiBQdCgpLHQ9PT1udWxsJiZOYyhlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxIdChlKSxudWxsO2Nhc2UgMTA6cmV0dXJuIE1sKGUudHlwZSksSHQoZSksbnVsbDtjYXNlIDE5OmlmKFYoRnQpLG49ZS5tZW1vaXplZFN0YXRlLG49PT1udWxsKXJldHVybiBIdChlKSxudWxsO2lmKGE9KGUuZmxhZ3MmMTI4KSE9PTAsbz1uLnJlbmRlcmluZyxvPT09bnVsbClpZihhKU9vKG4sITEpO2Vsc2V7aWYocXQhPT0wfHx0IT09bnVsbCYmKHQuZmxhZ3MmMTI4KSE9PTApZm9yKHQ9ZS5jaGlsZDt0IT09bnVsbDspe2lmKG89SmkodCksbyE9PW51bGwpe2ZvcihlLmZsYWdzfD0xMjgsT28obiwhMSksdD1vLnVwZGF0ZVF1ZXVlLGUudXBkYXRlUXVldWU9dCx0cihlLHQpLGUuc3VidHJlZUZsYWdzPTAsdD1sLGw9ZS5jaGlsZDtsIT09bnVsbDspcGQobCx0KSxsPWwuc2libGluZztyZXR1cm4gcShGdCxGdC5jdXJyZW50JjF8MiksZS5jaGlsZH10PXQuc2libGluZ31uLnRhaWwhPT1udWxsJiZnZSgpPmFyJiYoZS5mbGFnc3w9MTI4LGE9ITAsT28obiwhMSksZS5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFhKWlmKHQ9SmkobyksdCE9PW51bGwpe2lmKGUuZmxhZ3N8PTEyOCxhPSEwLHQ9dC51cGRhdGVRdWV1ZSxlLnVwZGF0ZVF1ZXVlPXQsdHIoZSx0KSxPbyhuLCEwKSxuLnRhaWw9PT1udWxsJiZuLnRhaWxNb2RlPT09ImhpZGRlbiImJiFvLmFsdGVybmF0ZSYmIUV0KXJldHVybiBIdChlKSxudWxsfWVsc2UgMipnZSgpLW4ucmVuZGVyaW5nU3RhcnRUaW1lPmFyJiZsIT09NTM2ODcwOTEyJiYoZS5mbGFnc3w9MTI4LGE9ITAsT28obiwhMSksZS5sYW5lcz00MTk0MzA0KTtuLmlzQmFja3dhcmRzPyhvLnNpYmxpbmc9ZS5jaGlsZCxlLmNoaWxkPW8pOih0PW4ubGFzdCx0IT09bnVsbD90LnNpYmxpbmc9bzplLmNoaWxkPW8sbi5sYXN0PW8pfXJldHVybiBuLnRhaWwhPT1udWxsPyhlPW4udGFpbCxuLnJlbmRlcmluZz1lLG4udGFpbD1lLnNpYmxpbmcsbi5yZW5kZXJpbmdTdGFydFRpbWU9Z2UoKSxlLnNpYmxpbmc9bnVsbCx0PUZ0LmN1cnJlbnQscShGdCxhP3QmMXwyOnQmMSksZSk6KEh0KGUpLG51bGwpO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gUmwoZSksa3MoKSxhPWUubWVtb2l6ZWRTdGF0ZSE9PW51bGwsdCE9PW51bGw/dC5tZW1vaXplZFN0YXRlIT09bnVsbCE9PWEmJihlLmZsYWdzfD04MTkyKTphJiYoZS5mbGFnc3w9ODE5MiksYT8obCY1MzY4NzA5MTIpIT09MCYmKGUuZmxhZ3MmMTI4KT09PTAmJihIdChlKSxlLnN1YnRyZWVGbGFncyY2JiYoZS5mbGFnc3w9ODE5MikpOkh0KGUpLGw9ZS51cGRhdGVRdWV1ZSxsIT09bnVsbCYmdHIoZSxsLnJldHJ5UXVldWUpLGw9bnVsbCx0IT09bnVsbCYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCYmdC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihsPXQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksYT1udWxsLGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoYT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGEhPT1sJiYoZS5mbGFnc3w9MjA0OCksdCE9PW51bGwmJlYoSmEpLG51bGw7Y2FzZSAyNDpyZXR1cm4gbD1udWxsLHQhPT1udWxsJiYobD10Lm1lbW9pemVkU3RhdGUuY2FjaGUpLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PWwmJihlLmZsYWdzfD0yMDQ4KSxNbCgkdCksSHQoZSksbnVsbDtjYXNlIDI1OnJldHVybiBudWxsO2Nhc2UgMzA6cmV0dXJuIG51bGx9dGhyb3cgRXJyb3IocygxNTYsZS50YWcpKX1mdW5jdGlvbiBFMSh0LGUpe3N3aXRjaChicyhlKSxlLnRhZyl7Y2FzZSAxOnJldHVybiB0PWUuZmxhZ3MsdCY2NTUzNj8oZS5mbGFncz10Ji02NTUzN3wxMjgsZSk6bnVsbDtjYXNlIDM6cmV0dXJuIE1sKCR0KSxQdCgpLHQ9ZS5mbGFncywodCY2NTUzNikhPT0wJiYodCYxMjgpPT09MD8oZS5mbGFncz10Ji02NTUzN3wxMjgsZSk6bnVsbDtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBDZShlKSxudWxsO2Nhc2UgMTM6aWYoUmwoZSksdD1lLm1lbW9pemVkU3RhdGUsdCE9PW51bGwmJnQuZGVoeWRyYXRlZCE9PW51bGwpe2lmKGUuYWx0ZXJuYXRlPT09bnVsbCl0aHJvdyBFcnJvcihzKDM0MCkpO3ZvKCl9cmV0dXJuIHQ9ZS5mbGFncyx0JjY1NTM2PyhlLmZsYWdzPXQmLTY1NTM3fDEyOCxlKTpudWxsO2Nhc2UgMTk6cmV0dXJuIFYoRnQpLG51bGw7Y2FzZSA0OnJldHVybiBQdCgpLG51bGw7Y2FzZSAxMDpyZXR1cm4gTWwoZS50eXBlKSxudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gUmwoZSksa3MoKSx0IT09bnVsbCYmVihKYSksdD1lLmZsYWdzLHQmNjU1MzY/KGUuZmxhZ3M9dCYtNjU1Mzd8MTI4LGUpOm51bGw7Y2FzZSAyNDpyZXR1cm4gTWwoJHQpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiBWZih0LGUpe3N3aXRjaChicyhlKSxlLnRhZyl7Y2FzZSAzOk1sKCR0KSxQdCgpO2JyZWFrO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6Q2UoZSk7YnJlYWs7Y2FzZSA0OlB0KCk7YnJlYWs7Y2FzZSAxMzpSbChlKTticmVhaztjYXNlIDE5OlYoRnQpO2JyZWFrO2Nhc2UgMTA6TWwoZS50eXBlKTticmVhaztjYXNlIDIyOmNhc2UgMjM6UmwoZSksa3MoKSx0IT09bnVsbCYmVihKYSk7YnJlYWs7Y2FzZSAyNDpNbCgkdCl9fWZ1bmN0aW9uIGpvKHQsZSl7dHJ5e3ZhciBsPWUudXBkYXRlUXVldWUsYT1sIT09bnVsbD9sLmxhc3RFZmZlY3Q6bnVsbDtpZihhIT09bnVsbCl7dmFyIG49YS5uZXh0O2w9bjtkb3tpZigobC50YWcmdCk9PT10KXthPXZvaWQgMDt2YXIgbz1sLmNyZWF0ZSxjPWwuaW5zdDthPW8oKSxjLmRlc3Ryb3k9YX1sPWwubmV4dH13aGlsZShsIT09bil9fWNhdGNoKGQpe2t0KGUsZS5yZXR1cm4sZCl9fWZ1bmN0aW9uIG5hKHQsZSxsKXt0cnl7dmFyIGE9ZS51cGRhdGVRdWV1ZSxuPWEhPT1udWxsP2EubGFzdEVmZmVjdDpudWxsO2lmKG4hPT1udWxsKXt2YXIgbz1uLm5leHQ7YT1vO2Rve2lmKChhLnRhZyZ0KT09PXQpe3ZhciBjPWEuaW5zdCxkPWMuZGVzdHJveTtpZihkIT09dm9pZCAwKXtjLmRlc3Ryb3k9dm9pZCAwLG49ZTt2YXIgZz1sLFM9ZDt0cnl7UygpfWNhdGNoKHope2t0KG4sZyx6KX19fWE9YS5uZXh0fXdoaWxlKGEhPT1vKX19Y2F0Y2goeil7a3QoZSxlLnJldHVybix6KX19ZnVuY3Rpb24gWmYodCl7dmFyIGU9dC51cGRhdGVRdWV1ZTtpZihlIT09bnVsbCl7dmFyIGw9dC5zdGF0ZU5vZGU7dHJ5e05kKGUsbCl9Y2F0Y2goYSl7a3QodCx0LnJldHVybixhKX19fWZ1bmN0aW9uIFFmKHQsZSxsKXtsLnByb3BzPSRhKHQudHlwZSx0Lm1lbW9pemVkUHJvcHMpLGwuc3RhdGU9dC5tZW1vaXplZFN0YXRlO3RyeXtsLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goYSl7a3QodCxlLGEpfX1mdW5jdGlvbiBCbyh0LGUpe3RyeXt2YXIgbD10LnJlZjtpZihsIT09bnVsbCl7c3dpdGNoKHQudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnZhciBhPXQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMzA6YT10LnN0YXRlTm9kZTticmVhaztkZWZhdWx0OmE9dC5zdGF0ZU5vZGV9dHlwZW9mIGw9PSJmdW5jdGlvbiI/dC5yZWZDbGVhbnVwPWwoYSk6bC5jdXJyZW50PWF9fWNhdGNoKG4pe2t0KHQsZSxuKX19ZnVuY3Rpb24gZGwodCxlKXt2YXIgbD10LnJlZixhPXQucmVmQ2xlYW51cDtpZihsIT09bnVsbClpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil0cnl7YSgpfWNhdGNoKG4pe2t0KHQsZSxuKX1maW5hbGx5e3QucmVmQ2xlYW51cD1udWxsLHQ9dC5hbHRlcm5hdGUsdCE9bnVsbCYmKHQucmVmQ2xlYW51cD1udWxsKX1lbHNlIGlmKHR5cGVvZiBsPT0iZnVuY3Rpb24iKXRyeXtsKG51bGwpfWNhdGNoKG4pe2t0KHQsZSxuKX1lbHNlIGwuY3VycmVudD1udWxsfWZ1bmN0aW9uIEtmKHQpe3ZhciBlPXQudHlwZSxsPXQubWVtb2l6ZWRQcm9wcyxhPXQuc3RhdGVOb2RlO3RyeXt0OnN3aXRjaChlKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOmwuYXV0b0ZvY3VzJiZhLmZvY3VzKCk7YnJlYWsgdDtjYXNlImltZyI6bC5zcmM/YS5zcmM9bC5zcmM6bC5zcmNTZXQmJihhLnNyY3NldD1sLnNyY1NldCl9fWNhdGNoKG4pe2t0KHQsdC5yZXR1cm4sbil9fWZ1bmN0aW9uIHJjKHQsZSxsKXt0cnl7dmFyIGE9dC5zdGF0ZU5vZGU7WjEoYSx0LnR5cGUsbCxlKSxhW3BlXT1lfWNhdGNoKG4pe2t0KHQsdC5yZXR1cm4sbil9fWZ1bmN0aW9uIFBmKHQpe3JldHVybiB0LnRhZz09PTV8fHQudGFnPT09M3x8dC50YWc9PT0yNnx8dC50YWc9PT0yNyYmZmEodC50eXBlKXx8dC50YWc9PT00fWZ1bmN0aW9uIHNjKHQpe3Q6Zm9yKDs7KXtmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fFBmKHQucmV0dXJuKSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufWZvcih0LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nO3QudGFnIT09NSYmdC50YWchPT02JiZ0LnRhZyE9PTE4Oyl7aWYodC50YWc9PT0yNyYmZmEodC50eXBlKXx8dC5mbGFncyYyfHx0LmNoaWxkPT09bnVsbHx8dC50YWc9PT00KWNvbnRpbnVlIHQ7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGR9aWYoISh0LmZsYWdzJjIpKXJldHVybiB0LnN0YXRlTm9kZX19ZnVuY3Rpb24gY2ModCxlLGwpe3ZhciBhPXQudGFnO2lmKGE9PT01fHxhPT09Nil0PXQuc3RhdGVOb2RlLGU/KGwubm9kZVR5cGU9PT05P2wuYm9keTpsLm5vZGVOYW1lPT09IkhUTUwiP2wub3duZXJEb2N1bWVudC5ib2R5OmwpLmluc2VydEJlZm9yZSh0LGUpOihlPWwubm9kZVR5cGU9PT05P2wuYm9keTpsLm5vZGVOYW1lPT09IkhUTUwiP2wub3duZXJEb2N1bWVudC5ib2R5OmwsZS5hcHBlbmRDaGlsZCh0KSxsPWwuX3JlYWN0Um9vdENvbnRhaW5lcixsIT1udWxsfHxlLm9uY2xpY2shPT1udWxsfHwoZS5vbmNsaWNrPWZyKSk7ZWxzZSBpZihhIT09NCYmKGE9PT0yNyYmZmEodC50eXBlKSYmKGw9dC5zdGF0ZU5vZGUsZT1udWxsKSx0PXQuY2hpbGQsdCE9PW51bGwpKWZvcihjYyh0LGUsbCksdD10LnNpYmxpbmc7dCE9PW51bGw7KWNjKHQsZSxsKSx0PXQuc2libGluZ31mdW5jdGlvbiBlcih0LGUsbCl7dmFyIGE9dC50YWc7aWYoYT09PTV8fGE9PT02KXQ9dC5zdGF0ZU5vZGUsZT9sLmluc2VydEJlZm9yZSh0LGUpOmwuYXBwZW5kQ2hpbGQodCk7ZWxzZSBpZihhIT09NCYmKGE9PT0yNyYmZmEodC50eXBlKSYmKGw9dC5zdGF0ZU5vZGUpLHQ9dC5jaGlsZCx0IT09bnVsbCkpZm9yKGVyKHQsZSxsKSx0PXQuc2libGluZzt0IT09bnVsbDspZXIodCxlLGwpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIEpmKHQpe3ZhciBlPXQuc3RhdGVOb2RlLGw9dC5tZW1vaXplZFByb3BzO3RyeXtmb3IodmFyIGE9dC50eXBlLG49ZS5hdHRyaWJ1dGVzO24ubGVuZ3RoOyllLnJlbW92ZUF0dHJpYnV0ZU5vZGUoblswXSk7ZmUoZSxhLGwpLGVbdGVdPXQsZVtwZV09bH1jYXRjaChvKXtrdCh0LHQucmV0dXJuLG8pfX12YXIgX2w9ITEsWXQ9ITEsdWM9ITEsV2Y9dHlwZW9mIFdlYWtTZXQ9PSJmdW5jdGlvbiI/V2Vha1NldDpTZXQsbmU9bnVsbDtmdW5jdGlvbiBUMSh0LGUpe2lmKHQ9dC5jb250YWluZXJJbmZvLE9jPWJyLHQ9aWQodCksc3ModCkpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiB0KXZhciBsPXtzdGFydDp0LnNlbGVjdGlvblN0YXJ0LGVuZDp0LnNlbGVjdGlvbkVuZH07ZWxzZSB0OntsPShsPXQub3duZXJEb2N1bWVudCkmJmwuZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgYT1sLmdldFNlbGVjdGlvbiYmbC5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQhPT0wKXtsPWEuYW5jaG9yTm9kZTt2YXIgbj1hLmFuY2hvck9mZnNldCxvPWEuZm9jdXNOb2RlO2E9YS5mb2N1c09mZnNldDt0cnl7bC5ub2RlVHlwZSxvLm5vZGVUeXBlfWNhdGNoe2w9bnVsbDticmVhayB0fXZhciBjPTAsZD0tMSxnPS0xLFM9MCx6PTAsTz10LEU9bnVsbDtlOmZvcig7Oyl7Zm9yKHZhciBUO08hPT1sfHxuIT09MCYmTy5ub2RlVHlwZSE9PTN8fChkPWMrbiksTyE9PW98fGEhPT0wJiZPLm5vZGVUeXBlIT09M3x8KGc9YythKSxPLm5vZGVUeXBlPT09MyYmKGMrPU8ubm9kZVZhbHVlLmxlbmd0aCksKFQ9Ty5maXJzdENoaWxkKSE9PW51bGw7KUU9TyxPPVQ7Zm9yKDs7KXtpZihPPT09dClicmVhayBlO2lmKEU9PT1sJiYrK1M9PT1uJiYoZD1jKSxFPT09byYmKyt6PT09YSYmKGc9YyksKFQ9Ty5uZXh0U2libGluZykhPT1udWxsKWJyZWFrO089RSxFPU8ucGFyZW50Tm9kZX1PPVR9bD1kPT09LTF8fGc9PT0tMT9udWxsOntzdGFydDpkLGVuZDpnfX1lbHNlIGw9bnVsbH1sPWx8fHtzdGFydDowLGVuZDowfX1lbHNlIGw9bnVsbDtmb3IoamM9e2ZvY3VzZWRFbGVtOnQsc2VsZWN0aW9uUmFuZ2U6bH0sYnI9ITEsbmU9ZTtuZSE9PW51bGw7KWlmKGU9bmUsdD1lLmNoaWxkLChlLnN1YnRyZWVGbGFncyYxMDI0KSE9PTAmJnQhPT1udWxsKXQucmV0dXJuPWUsbmU9dDtlbHNlIGZvcig7bmUhPT1udWxsOyl7c3dpdGNoKGU9bmUsbz1lLmFsdGVybmF0ZSx0PWUuZmxhZ3MsZS50YWcpe2Nhc2UgMDpicmVhaztjYXNlIDExOmNhc2UgMTU6YnJlYWs7Y2FzZSAxOmlmKCh0JjEwMjQpIT09MCYmbyE9PW51bGwpe3Q9dm9pZCAwLGw9ZSxuPW8ubWVtb2l6ZWRQcm9wcyxvPW8ubWVtb2l6ZWRTdGF0ZSxhPWwuc3RhdGVOb2RlO3RyeXt2YXIgbHQ9JGEobC50eXBlLG4sbC5lbGVtZW50VHlwZT09PWwudHlwZSk7dD1hLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGx0LG8pLGEuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9dH1jYXRjaChJKXtrdChsLGwucmV0dXJuLEkpfX1icmVhaztjYXNlIDM6aWYoKHQmMTAyNCkhPT0wKXtpZih0PWUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbD10Lm5vZGVUeXBlLGw9PT05KUhjKHQpO2Vsc2UgaWYobD09PTEpc3dpdGNoKHQubm9kZU5hbWUpe2Nhc2UiSEVBRCI6Y2FzZSJIVE1MIjpjYXNlIkJPRFkiOkhjKHQpO2JyZWFrO2RlZmF1bHQ6dC50ZXh0Q29udGVudD0iIn19YnJlYWs7Y2FzZSA1OmNhc2UgMjY6Y2FzZSAyNzpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7ZGVmYXVsdDppZigodCYxMDI0KSE9PTApdGhyb3cgRXJyb3IocygxNjMpKX1pZih0PWUuc2libGluZyx0IT09bnVsbCl7dC5yZXR1cm49ZS5yZXR1cm4sbmU9dDticmVha31uZT1lLnJldHVybn19ZnVuY3Rpb24gJGYodCxlLGwpe3ZhciBhPWwuZmxhZ3M7c3dpdGNoKGwudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Om9hKHQsbCksYSY0JiZqbyg1LGwpO2JyZWFrO2Nhc2UgMTppZihvYSh0LGwpLGEmNClpZih0PWwuc3RhdGVOb2RlLGU9PT1udWxsKXRyeXt0LmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goYyl7a3QobCxsLnJldHVybixjKX1lbHNle3ZhciBuPSRhKGwudHlwZSxlLm1lbW9pemVkUHJvcHMpO2U9ZS5tZW1vaXplZFN0YXRlO3RyeXt0LmNvbXBvbmVudERpZFVwZGF0ZShuLGUsdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9Y2F0Y2goYyl7a3QobCxsLnJldHVybixjKX19YSY2NCYmWmYobCksYSY1MTImJkJvKGwsbC5yZXR1cm4pO2JyZWFrO2Nhc2UgMzppZihvYSh0LGwpLGEmNjQmJih0PWwudXBkYXRlUXVldWUsdCE9PW51bGwpKXtpZihlPW51bGwsbC5jaGlsZCE9PW51bGwpc3dpdGNoKGwuY2hpbGQudGFnKXtjYXNlIDI3OmNhc2UgNTplPWwuY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTplPWwuY2hpbGQuc3RhdGVOb2RlfXRyeXtOZCh0LGUpfWNhdGNoKGMpe2t0KGwsbC5yZXR1cm4sYyl9fWJyZWFrO2Nhc2UgMjc6ZT09PW51bGwmJmEmNCYmSmYobCk7Y2FzZSAyNjpjYXNlIDU6b2EodCxsKSxlPT09bnVsbCYmYSY0JiZLZihsKSxhJjUxMiYmQm8obCxsLnJldHVybik7YnJlYWs7Y2FzZSAxMjpvYSh0LGwpO2JyZWFrO2Nhc2UgMTM6b2EodCxsKSxhJjQmJnRoKHQsbCksYSY2NCYmKHQ9bC5tZW1vaXplZFN0YXRlLHQhPT1udWxsJiYodD10LmRlaHlkcmF0ZWQsdCE9PW51bGwmJihsPU8xLmJpbmQobnVsbCxsKSxGMSh0LGwpKSkpO2JyZWFrO2Nhc2UgMjI6aWYoYT1sLm1lbW9pemVkU3RhdGUhPT1udWxsfHxfbCwhYSl7ZT1lIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlIT09bnVsbHx8WXQsbj1fbDt2YXIgbz1ZdDtfbD1hLChZdD1lKSYmIW8/aWEodCxsLChsLnN1YnRyZWVGbGFncyY4NzcyKSE9PTApOm9hKHQsbCksX2w9bixZdD1vfWJyZWFrO2Nhc2UgMzA6YnJlYWs7ZGVmYXVsdDpvYSh0LGwpfX1mdW5jdGlvbiBGZih0KXt2YXIgZT10LmFsdGVybmF0ZTtlIT09bnVsbCYmKHQuYWx0ZXJuYXRlPW51bGwsRmYoZSkpLHQuY2hpbGQ9bnVsbCx0LmRlbGV0aW9ucz1udWxsLHQuc2libGluZz1udWxsLHQudGFnPT09NSYmKGU9dC5zdGF0ZU5vZGUsZSE9PW51bGwmJm5vKGUpKSx0LnN0YXRlTm9kZT1udWxsLHQucmV0dXJuPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnBlbmRpbmdQcm9wcz1udWxsLHQuc3RhdGVOb2RlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsfXZhciBMdD1udWxsLERlPSExO2Z1bmN0aW9uIGtsKHQsZSxsKXtmb3IobD1sLmNoaWxkO2whPT1udWxsOylJZih0LGUsbCksbD1sLnNpYmxpbmd9ZnVuY3Rpb24gSWYodCxlLGwpe2lmKEp0JiZ0eXBlb2YgSnQub25Db21taXRGaWJlclVubW91bnQ9PSJmdW5jdGlvbiIpdHJ5e0p0Lm9uQ29tbWl0RmliZXJVbm1vdW50KHFsLGwpfWNhdGNoe31zd2l0Y2gobC50YWcpe2Nhc2UgMjY6WXR8fGRsKGwsZSksa2wodCxlLGwpLGwubWVtb2l6ZWRTdGF0ZT9sLm1lbW9pemVkU3RhdGUuY291bnQtLTpsLnN0YXRlTm9kZSYmKGw9bC5zdGF0ZU5vZGUsbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpKTticmVhaztjYXNlIDI3Oll0fHxkbChsLGUpO3ZhciBhPUx0LG49RGU7ZmEobC50eXBlKSYmKEx0PWwuc3RhdGVOb2RlLERlPSExKSxrbCh0LGUsbCksWm8obC5zdGF0ZU5vZGUpLEx0PWEsRGU9bjticmVhaztjYXNlIDU6WXR8fGRsKGwsZSk7Y2FzZSA2OmlmKGE9THQsbj1EZSxMdD1udWxsLGtsKHQsZSxsKSxMdD1hLERlPW4sTHQhPT1udWxsKWlmKERlKXRyeXsoTHQubm9kZVR5cGU9PT05P0x0LmJvZHk6THQubm9kZU5hbWU9PT0iSFRNTCI/THQub3duZXJEb2N1bWVudC5ib2R5Okx0KS5yZW1vdmVDaGlsZChsLnN0YXRlTm9kZSl9Y2F0Y2gobyl7a3QobCxlLG8pfWVsc2UgdHJ5e0x0LnJlbW92ZUNoaWxkKGwuc3RhdGVOb2RlKX1jYXRjaChvKXtrdChsLGUsbyl9YnJlYWs7Y2FzZSAxODpMdCE9PW51bGwmJihEZT8odD1MdCxHaCh0Lm5vZGVUeXBlPT09OT90LmJvZHk6dC5ub2RlTmFtZT09PSJIVE1MIj90Lm93bmVyRG9jdW1lbnQuYm9keTp0LGwuc3RhdGVOb2RlKSxJbyh0KSk6R2goTHQsbC5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6YT1MdCxuPURlLEx0PWwuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sRGU9ITAsa2wodCxlLGwpLEx0PWEsRGU9bjticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6WXR8fG5hKDIsbCxlKSxZdHx8bmEoNCxsLGUpLGtsKHQsZSxsKTticmVhaztjYXNlIDE6WXR8fChkbChsLGUpLGE9bC5zdGF0ZU5vZGUsdHlwZW9mIGEuY29tcG9uZW50V2lsbFVubW91bnQ9PSJmdW5jdGlvbiImJlFmKGwsZSxhKSksa2wodCxlLGwpO2JyZWFrO2Nhc2UgMjE6a2wodCxlLGwpO2JyZWFrO2Nhc2UgMjI6WXQ9KGE9WXQpfHxsLm1lbW9pemVkU3RhdGUhPT1udWxsLGtsKHQsZSxsKSxZdD1hO2JyZWFrO2RlZmF1bHQ6a2wodCxlLGwpfX1mdW5jdGlvbiB0aCh0LGUpe2lmKGUubWVtb2l6ZWRTdGF0ZT09PW51bGwmJih0PWUuYWx0ZXJuYXRlLHQhPT1udWxsJiYodD10Lm1lbW9pemVkU3RhdGUsdCE9PW51bGwmJih0PXQuZGVoeWRyYXRlZCx0IT09bnVsbCkpKSl0cnl7SW8odCl9Y2F0Y2gobCl7a3QoZSxlLnJldHVybixsKX19ZnVuY3Rpb24gRDEodCl7c3dpdGNoKHQudGFnKXtjYXNlIDEzOmNhc2UgMTk6dmFyIGU9dC5zdGF0ZU5vZGU7cmV0dXJuIGU9PT1udWxsJiYoZT10LnN0YXRlTm9kZT1uZXcgV2YpLGU7Y2FzZSAyMjpyZXR1cm4gdD10LnN0YXRlTm9kZSxlPXQuX3JldHJ5Q2FjaGUsZT09PW51bGwmJihlPXQuX3JldHJ5Q2FjaGU9bmV3IFdmKSxlO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0MzUsdC50YWcpKX19ZnVuY3Rpb24gZGModCxlKXt2YXIgbD1EMSh0KTtlLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG49ajEuYmluZChudWxsLHQsYSk7bC5oYXMoYSl8fChsLmFkZChhKSxhLnRoZW4obixuKSl9KX1mdW5jdGlvbiBOZSh0LGUpe3ZhciBsPWUuZGVsZXRpb25zO2lmKGwhPT1udWxsKWZvcih2YXIgYT0wO2E8bC5sZW5ndGg7YSsrKXt2YXIgbj1sW2FdLG89dCxjPWUsZD1jO3Q6Zm9yKDtkIT09bnVsbDspe3N3aXRjaChkLnRhZyl7Y2FzZSAyNzppZihmYShkLnR5cGUpKXtMdD1kLnN0YXRlTm9kZSxEZT0hMTticmVhayB0fWJyZWFrO2Nhc2UgNTpMdD1kLnN0YXRlTm9kZSxEZT0hMTticmVhayB0O2Nhc2UgMzpjYXNlIDQ6THQ9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxEZT0hMDticmVhayB0fWQ9ZC5yZXR1cm59aWYoTHQ9PT1udWxsKXRocm93IEVycm9yKHMoMTYwKSk7SWYobyxjLG4pLEx0PW51bGwsRGU9ITEsbz1uLmFsdGVybmF0ZSxvIT09bnVsbCYmKG8ucmV0dXJuPW51bGwpLG4ucmV0dXJuPW51bGx9aWYoZS5zdWJ0cmVlRmxhZ3MmMTM4NzgpZm9yKGU9ZS5jaGlsZDtlIT09bnVsbDspZWgoZSx0KSxlPWUuc2libGluZ312YXIgZWw9bnVsbDtmdW5jdGlvbiBlaCh0LGUpe3ZhciBsPXQuYWx0ZXJuYXRlLGE9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpOZShlLHQpLF9lKHQpLGEmNCYmKG5hKDMsdCx0LnJldHVybiksam8oMyx0KSxuYSg1LHQsdC5yZXR1cm4pKTticmVhaztjYXNlIDE6TmUoZSx0KSxfZSh0KSxhJjUxMiYmKFl0fHxsPT09bnVsbHx8ZGwobCxsLnJldHVybikpLGEmNjQmJl9sJiYodD10LnVwZGF0ZVF1ZXVlLHQhPT1udWxsJiYoYT10LmNhbGxiYWNrcyxhIT09bnVsbCYmKGw9dC5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzLHQuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1sPT09bnVsbD9hOmwuY29uY2F0KGEpKSkpO2JyZWFrO2Nhc2UgMjY6dmFyIG49ZWw7aWYoTmUoZSx0KSxfZSh0KSxhJjUxMiYmKFl0fHxsPT09bnVsbHx8ZGwobCxsLnJldHVybikpLGEmNCl7dmFyIG89bCE9PW51bGw/bC5tZW1vaXplZFN0YXRlOm51bGw7aWYoYT10Lm1lbW9pemVkU3RhdGUsbD09PW51bGwpaWYoYT09PW51bGwpaWYodC5zdGF0ZU5vZGU9PT1udWxsKXt0OnthPXQudHlwZSxsPXQubWVtb2l6ZWRQcm9wcyxuPW4ub3duZXJEb2N1bWVudHx8bjtlOnN3aXRjaChhKXtjYXNlInRpdGxlIjpvPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRpdGxlIilbMF0sKCFvfHxvW0RhXXx8b1t0ZV18fG8ubmFtZXNwYWNlVVJJPT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnInx8by5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpJiYobz1uLmNyZWF0ZUVsZW1lbnQoYSksbi5oZWFkLmluc2VydEJlZm9yZShvLG4ucXVlcnlTZWxlY3RvcigiaGVhZCA+IHRpdGxlIikpKSxmZShvLGEsbCksb1t0ZV09dCxYdChvKSxhPW87YnJlYWsgdDtjYXNlImxpbmsiOnZhciBjPUpoKCJsaW5rIiwiaHJlZiIsbikuZ2V0KGErKGwuaHJlZnx8IiIpKTtpZihjKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKylpZihvPWNbZF0sby5nZXRBdHRyaWJ1dGUoImhyZWYiKT09PShsLmhyZWY9PW51bGx8fGwuaHJlZj09PSIiP251bGw6bC5ocmVmKSYmby5nZXRBdHRyaWJ1dGUoInJlbCIpPT09KGwucmVsPT1udWxsP251bGw6bC5yZWwpJiZvLmdldEF0dHJpYnV0ZSgidGl0bGUiKT09PShsLnRpdGxlPT1udWxsP251bGw6bC50aXRsZSkmJm8uZ2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIpPT09KGwuY3Jvc3NPcmlnaW49PW51bGw/bnVsbDpsLmNyb3NzT3JpZ2luKSl7Yy5zcGxpY2UoZCwxKTticmVhayBlfX1vPW4uY3JlYXRlRWxlbWVudChhKSxmZShvLGEsbCksbi5oZWFkLmFwcGVuZENoaWxkKG8pO2JyZWFrO2Nhc2UibWV0YSI6aWYoYz1KaCgibWV0YSIsImNvbnRlbnQiLG4pLmdldChhKyhsLmNvbnRlbnR8fCIiKSkpe2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYobz1jW2RdLG8uZ2V0QXR0cmlidXRlKCJjb250ZW50Iik9PT0obC5jb250ZW50PT1udWxsP251bGw6IiIrbC5jb250ZW50KSYmby5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PShsLm5hbWU9PW51bGw/bnVsbDpsLm5hbWUpJiZvLmdldEF0dHJpYnV0ZSgicHJvcGVydHkiKT09PShsLnByb3BlcnR5PT1udWxsP251bGw6bC5wcm9wZXJ0eSkmJm8uZ2V0QXR0cmlidXRlKCJodHRwLWVxdWl2Iik9PT0obC5odHRwRXF1aXY9PW51bGw/bnVsbDpsLmh0dHBFcXVpdikmJm8uZ2V0QXR0cmlidXRlKCJjaGFyc2V0Iik9PT0obC5jaGFyU2V0PT1udWxsP251bGw6bC5jaGFyU2V0KSl7Yy5zcGxpY2UoZCwxKTticmVhayBlfX1vPW4uY3JlYXRlRWxlbWVudChhKSxmZShvLGEsbCksbi5oZWFkLmFwcGVuZENoaWxkKG8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NjgsYSkpfW9bdGVdPXQsWHQobyksYT1vfXQuc3RhdGVOb2RlPWF9ZWxzZSBXaChuLHQudHlwZSx0LnN0YXRlTm9kZSk7ZWxzZSB0LnN0YXRlTm9kZT1QaChuLGEsdC5tZW1vaXplZFByb3BzKTtlbHNlIG8hPT1hPyhvPT09bnVsbD9sLnN0YXRlTm9kZSE9PW51bGwmJihsPWwuc3RhdGVOb2RlLGwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsKSk6by5jb3VudC0tLGE9PT1udWxsP1doKG4sdC50eXBlLHQuc3RhdGVOb2RlKTpQaChuLGEsdC5tZW1vaXplZFByb3BzKSk6YT09PW51bGwmJnQuc3RhdGVOb2RlIT09bnVsbCYmcmModCx0Lm1lbW9pemVkUHJvcHMsbC5tZW1vaXplZFByb3BzKX1icmVhaztjYXNlIDI3Ok5lKGUsdCksX2UodCksYSY1MTImJihZdHx8bD09PW51bGx8fGRsKGwsbC5yZXR1cm4pKSxsIT09bnVsbCYmYSY0JiZyYyh0LHQubWVtb2l6ZWRQcm9wcyxsLm1lbW9pemVkUHJvcHMpO2JyZWFrO2Nhc2UgNTppZihOZShlLHQpLF9lKHQpLGEmNTEyJiYoWXR8fGw9PT1udWxsfHxkbChsLGwucmV0dXJuKSksdC5mbGFncyYzMil7bj10LnN0YXRlTm9kZTt0cnl7RmUobiwiIil9Y2F0Y2goVCl7a3QodCx0LnJldHVybixUKX19YSY0JiZ0LnN0YXRlTm9kZSE9bnVsbCYmKG49dC5tZW1vaXplZFByb3BzLHJjKHQsbixsIT09bnVsbD9sLm1lbW9pemVkUHJvcHM6bikpLGEmMTAyNCYmKHVjPSEwKTticmVhaztjYXNlIDY6aWYoTmUoZSx0KSxfZSh0KSxhJjQpe2lmKHQuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihzKDE2MikpO2E9dC5tZW1vaXplZFByb3BzLGw9dC5zdGF0ZU5vZGU7dHJ5e2wubm9kZVZhbHVlPWF9Y2F0Y2goVCl7a3QodCx0LnJldHVybixUKX19YnJlYWs7Y2FzZSAzOmlmKHByPW51bGwsbj1lbCxlbD1tcihlLmNvbnRhaW5lckluZm8pLE5lKGUsdCksZWw9bixfZSh0KSxhJjQmJmwhPT1udWxsJiZsLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXtJbyhlLmNvbnRhaW5lckluZm8pfWNhdGNoKFQpe2t0KHQsdC5yZXR1cm4sVCl9dWMmJih1Yz0hMSxsaCh0KSk7YnJlYWs7Y2FzZSA0OmE9ZWwsZWw9bXIodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksTmUoZSx0KSxfZSh0KSxlbD1hO2JyZWFrO2Nhc2UgMTI6TmUoZSx0KSxfZSh0KTticmVhaztjYXNlIDEzOk5lKGUsdCksX2UodCksdC5jaGlsZC5mbGFncyY4MTkyJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsIT0obCE9PW51bGwmJmwubWVtb2l6ZWRTdGF0ZSE9PW51bGwpJiYoeWM9Z2UoKSksYSY0JiYoYT10LnVwZGF0ZVF1ZXVlLGEhPT1udWxsJiYodC51cGRhdGVRdWV1ZT1udWxsLGRjKHQsYSkpKTticmVhaztjYXNlIDIyOm49dC5tZW1vaXplZFN0YXRlIT09bnVsbDt2YXIgZz1sIT09bnVsbCYmbC5tZW1vaXplZFN0YXRlIT09bnVsbCxTPV9sLHo9WXQ7aWYoX2w9U3x8bixZdD16fHxnLE5lKGUsdCksWXQ9eixfbD1TLF9lKHQpLGEmODE5Mil0OmZvcihlPXQuc3RhdGVOb2RlLGUuX3Zpc2liaWxpdHk9bj9lLl92aXNpYmlsaXR5Ji0yOmUuX3Zpc2liaWxpdHl8MSxuJiYobD09PW51bGx8fGd8fF9sfHxZdHx8RmEodCkpLGw9bnVsbCxlPXQ7Oyl7aWYoZS50YWc9PT01fHxlLnRhZz09PTI2KXtpZihsPT09bnVsbCl7Zz1sPWU7dHJ5e2lmKG89Zy5zdGF0ZU5vZGUsbiljPW8uc3R5bGUsdHlwZW9mIGMuc2V0UHJvcGVydHk9PSJmdW5jdGlvbiI/Yy5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiLCJpbXBvcnRhbnQiKTpjLmRpc3BsYXk9Im5vbmUiO2Vsc2V7ZD1nLnN0YXRlTm9kZTt2YXIgTz1nLm1lbW9pemVkUHJvcHMuc3R5bGUsRT1PIT1udWxsJiZPLmhhc093blByb3BlcnR5KCJkaXNwbGF5Iik/Ty5kaXNwbGF5Om51bGw7ZC5zdHlsZS5kaXNwbGF5PUU9PW51bGx8fHR5cGVvZiBFPT0iYm9vbGVhbiI/IiI6KCIiK0UpLnRyaW0oKX19Y2F0Y2goVCl7a3QoZyxnLnJldHVybixUKX19fWVsc2UgaWYoZS50YWc9PT02KXtpZihsPT09bnVsbCl7Zz1lO3RyeXtnLnN0YXRlTm9kZS5ub2RlVmFsdWU9bj8iIjpnLm1lbW9pemVkUHJvcHN9Y2F0Y2goVCl7a3QoZyxnLnJldHVybixUKX19fWVsc2UgaWYoKGUudGFnIT09MjImJmUudGFnIT09MjN8fGUubWVtb2l6ZWRTdGF0ZT09PW51bGx8fGU9PT10KSYmZS5jaGlsZCE9PW51bGwpe2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT10KWJyZWFrIHQ7Zm9yKDtlLnNpYmxpbmc9PT1udWxsOyl7aWYoZS5yZXR1cm49PT1udWxsfHxlLnJldHVybj09PXQpYnJlYWsgdDtsPT09ZSYmKGw9bnVsbCksZT1lLnJldHVybn1sPT09ZSYmKGw9bnVsbCksZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31hJjQmJihhPXQudXBkYXRlUXVldWUsYSE9PW51bGwmJihsPWEucmV0cnlRdWV1ZSxsIT09bnVsbCYmKGEucmV0cnlRdWV1ZT1udWxsLGRjKHQsbCkpKSk7YnJlYWs7Y2FzZSAxOTpOZShlLHQpLF9lKHQpLGEmNCYmKGE9dC51cGRhdGVRdWV1ZSxhIT09bnVsbCYmKHQudXBkYXRlUXVldWU9bnVsbCxkYyh0LGEpKSk7YnJlYWs7Y2FzZSAzMDpicmVhaztjYXNlIDIxOmJyZWFrO2RlZmF1bHQ6TmUoZSx0KSxfZSh0KX19ZnVuY3Rpb24gX2UodCl7dmFyIGU9dC5mbGFncztpZihlJjIpe3RyeXtmb3IodmFyIGwsYT10LnJldHVybjthIT09bnVsbDspe2lmKFBmKGEpKXtsPWE7YnJlYWt9YT1hLnJldHVybn1pZihsPT1udWxsKXRocm93IEVycm9yKHMoMTYwKSk7c3dpdGNoKGwudGFnKXtjYXNlIDI3OnZhciBuPWwuc3RhdGVOb2RlLG89c2ModCk7ZXIodCxvLG4pO2JyZWFrO2Nhc2UgNTp2YXIgYz1sLnN0YXRlTm9kZTtsLmZsYWdzJjMyJiYoRmUoYywiIiksbC5mbGFncyY9LTMzKTt2YXIgZD1zYyh0KTtlcih0LGQsYyk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZz1sLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLFM9c2ModCk7Y2ModCxTLGcpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocygxNjEpKX19Y2F0Y2goeil7a3QodCx0LnJldHVybix6KX10LmZsYWdzJj0tM31lJjQwOTYmJih0LmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gbGgodCl7aWYodC5zdWJ0cmVlRmxhZ3MmMTAyNClmb3IodD10LmNoaWxkO3QhPT1udWxsOyl7dmFyIGU9dDtsaChlKSxlLnRhZz09PTUmJmUuZmxhZ3MmMTAyNCYmZS5zdGF0ZU5vZGUucmVzZXQoKSx0PXQuc2libGluZ319ZnVuY3Rpb24gb2EodCxlKXtpZihlLnN1YnRyZWVGbGFncyY4NzcyKWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KSRmKHQsZS5hbHRlcm5hdGUsZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gRmEodCl7Zm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspe3ZhciBlPXQ7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6bmEoNCxlLGUucmV0dXJuKSxGYShlKTticmVhaztjYXNlIDE6ZGwoZSxlLnJldHVybik7dmFyIGw9ZS5zdGF0ZU5vZGU7dHlwZW9mIGwuY29tcG9uZW50V2lsbFVubW91bnQ9PSJmdW5jdGlvbiImJlFmKGUsZS5yZXR1cm4sbCksRmEoZSk7YnJlYWs7Y2FzZSAyNzpabyhlLnN0YXRlTm9kZSk7Y2FzZSAyNjpjYXNlIDU6ZGwoZSxlLnJldHVybiksRmEoZSk7YnJlYWs7Y2FzZSAyMjplLm1lbW9pemVkU3RhdGU9PT1udWxsJiZGYShlKTticmVhaztjYXNlIDMwOkZhKGUpO2JyZWFrO2RlZmF1bHQ6RmEoZSl9dD10LnNpYmxpbmd9fWZ1bmN0aW9uIGlhKHQsZSxsKXtmb3IobD1sJiYoZS5zdWJ0cmVlRmxhZ3MmODc3MikhPT0wLGU9ZS5jaGlsZDtlIT09bnVsbDspe3ZhciBhPWUuYWx0ZXJuYXRlLG49dCxvPWUsYz1vLmZsYWdzO3N3aXRjaChvLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTppYShuLG8sbCksam8oNCxvKTticmVhaztjYXNlIDE6aWYoaWEobixvLGwpLGE9byxuPWEuc3RhdGVOb2RlLHR5cGVvZiBuLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iKXRyeXtuLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goUyl7a3QoYSxhLnJldHVybixTKX1pZihhPW8sbj1hLnVwZGF0ZVF1ZXVlLG4hPT1udWxsKXt2YXIgZD1hLnN0YXRlTm9kZTt0cnl7dmFyIGc9bi5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzO2lmKGchPT1udWxsKWZvcihuLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M9bnVsbCxuPTA7bjxnLmxlbmd0aDtuKyspemQoZ1tuXSxkKX1jYXRjaChTKXtrdChhLGEucmV0dXJuLFMpfX1sJiZjJjY0JiZaZihvKSxCbyhvLG8ucmV0dXJuKTticmVhaztjYXNlIDI3OkpmKG8pO2Nhc2UgMjY6Y2FzZSA1OmlhKG4sbyxsKSxsJiZhPT09bnVsbCYmYyY0JiZLZihvKSxCbyhvLG8ucmV0dXJuKTticmVhaztjYXNlIDEyOmlhKG4sbyxsKTticmVhaztjYXNlIDEzOmlhKG4sbyxsKSxsJiZjJjQmJnRoKG4sbyk7YnJlYWs7Y2FzZSAyMjpvLm1lbW9pemVkU3RhdGU9PT1udWxsJiZpYShuLG8sbCksQm8obyxvLnJldHVybik7YnJlYWs7Y2FzZSAzMDpicmVhaztkZWZhdWx0OmlhKG4sbyxsKX1lPWUuc2libGluZ319ZnVuY3Rpb24gZmModCxlKXt2YXIgbD1udWxsO3QhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKGw9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSx0PW51bGwsZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJih0PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksdCE9PWwmJih0IT1udWxsJiZ0LnJlZkNvdW50KyssbCE9bnVsbCYmd28obCkpfWZ1bmN0aW9uIGhjKHQsZSl7dD1udWxsLGUuYWx0ZXJuYXRlIT09bnVsbCYmKHQ9ZS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksZT1lLm1lbW9pemVkU3RhdGUuY2FjaGUsZSE9PXQmJihlLnJlZkNvdW50KyssdCE9bnVsbCYmd28odCkpfWZ1bmN0aW9uIGZsKHQsZSxsLGEpe2lmKGUuc3VidHJlZUZsYWdzJjEwMjU2KWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KWFoKHQsZSxsLGEpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGFoKHQsZSxsLGEpe3ZhciBuPWUuZmxhZ3M7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmZsKHQsZSxsLGEpLG4mMjA0OCYmam8oOSxlKTticmVhaztjYXNlIDE6ZmwodCxlLGwsYSk7YnJlYWs7Y2FzZSAzOmZsKHQsZSxsLGEpLG4mMjA0OCYmKHQ9bnVsbCxlLmFsdGVybmF0ZSE9PW51bGwmJih0PWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLGU9ZS5tZW1vaXplZFN0YXRlLmNhY2hlLGUhPT10JiYoZS5yZWZDb3VudCsrLHQhPW51bGwmJndvKHQpKSk7YnJlYWs7Y2FzZSAxMjppZihuJjIwNDgpe2ZsKHQsZSxsLGEpLHQ9ZS5zdGF0ZU5vZGU7dHJ5e3ZhciBvPWUubWVtb2l6ZWRQcm9wcyxjPW8uaWQsZD1vLm9uUG9zdENvbW1pdDt0eXBlb2YgZD09ImZ1bmN0aW9uIiYmZChjLGUuYWx0ZXJuYXRlPT09bnVsbD8ibW91bnQiOiJ1cGRhdGUiLHQucGFzc2l2ZUVmZmVjdER1cmF0aW9uLC0wKX1jYXRjaChnKXtrdChlLGUucmV0dXJuLGcpfX1lbHNlIGZsKHQsZSxsLGEpO2JyZWFrO2Nhc2UgMTM6ZmwodCxlLGwsYSk7YnJlYWs7Y2FzZSAyMzpicmVhaztjYXNlIDIyOm89ZS5zdGF0ZU5vZGUsYz1lLmFsdGVybmF0ZSxlLm1lbW9pemVkU3RhdGUhPT1udWxsP28uX3Zpc2liaWxpdHkmMj9mbCh0LGUsbCxhKTpMbyh0LGUpOm8uX3Zpc2liaWxpdHkmMj9mbCh0LGUsbCxhKTooby5fdmlzaWJpbGl0eXw9Mixrbih0LGUsbCxhLChlLnN1YnRyZWVGbGFncyYxMDI1NikhPT0wKSksbiYyMDQ4JiZmYyhjLGUpO2JyZWFrO2Nhc2UgMjQ6ZmwodCxlLGwsYSksbiYyMDQ4JiZoYyhlLmFsdGVybmF0ZSxlKTticmVhaztkZWZhdWx0OmZsKHQsZSxsLGEpfX1mdW5jdGlvbiBrbih0LGUsbCxhLG4pe2ZvcihuPW4mJihlLnN1YnRyZWVGbGFncyYxMDI1NikhPT0wLGU9ZS5jaGlsZDtlIT09bnVsbDspe3ZhciBvPXQsYz1lLGQ9bCxnPWEsUz1jLmZsYWdzO3N3aXRjaChjLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTprbihvLGMsZCxnLG4pLGpvKDgsYyk7YnJlYWs7Y2FzZSAyMzpicmVhaztjYXNlIDIyOnZhciB6PWMuc3RhdGVOb2RlO2MubWVtb2l6ZWRTdGF0ZSE9PW51bGw/ei5fdmlzaWJpbGl0eSYyP2tuKG8sYyxkLGcsbik6TG8obyxjKTooei5fdmlzaWJpbGl0eXw9MixrbihvLGMsZCxnLG4pKSxuJiZTJjIwNDgmJmZjKGMuYWx0ZXJuYXRlLGMpO2JyZWFrO2Nhc2UgMjQ6a24obyxjLGQsZyxuKSxuJiZTJjIwNDgmJmhjKGMuYWx0ZXJuYXRlLGMpO2JyZWFrO2RlZmF1bHQ6a24obyxjLGQsZyxuKX1lPWUuc2libGluZ319ZnVuY3Rpb24gTG8odCxlKXtpZihlLnN1YnRyZWVGbGFncyYxMDI1Nilmb3IoZT1lLmNoaWxkO2UhPT1udWxsOyl7dmFyIGw9dCxhPWUsbj1hLmZsYWdzO3N3aXRjaChhLnRhZyl7Y2FzZSAyMjpMbyhsLGEpLG4mMjA0OCYmZmMoYS5hbHRlcm5hdGUsYSk7YnJlYWs7Y2FzZSAyNDpMbyhsLGEpLG4mMjA0OCYmaGMoYS5hbHRlcm5hdGUsYSk7YnJlYWs7ZGVmYXVsdDpMbyhsLGEpfWU9ZS5zaWJsaW5nfX12YXIgSG89ODE5MjtmdW5jdGlvbiBPbih0KXtpZih0LnN1YnRyZWVGbGFncyZIbylmb3IodD10LmNoaWxkO3QhPT1udWxsOyluaCh0KSx0PXQuc2libGluZ31mdW5jdGlvbiBuaCh0KXtzd2l0Y2godC50YWcpe2Nhc2UgMjY6T24odCksdC5mbGFncyZIbyYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCYmZHAoZWwsdC5tZW1vaXplZFN0YXRlLHQubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1Ok9uKHQpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIGU9ZWw7ZWw9bXIodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksT24odCksZWw9ZTticmVhaztjYXNlIDIyOnQubWVtb2l6ZWRTdGF0ZT09PW51bGwmJihlPXQuYWx0ZXJuYXRlLGUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsPyhlPUhvLEhvPTE2Nzc3MjE2LE9uKHQpLEhvPWUpOk9uKHQpKTticmVhaztkZWZhdWx0Ok9uKHQpfX1mdW5jdGlvbiBvaCh0KXt2YXIgZT10LmFsdGVybmF0ZTtpZihlIT09bnVsbCYmKHQ9ZS5jaGlsZCx0IT09bnVsbCkpe2UuY2hpbGQ9bnVsbDtkbyBlPXQuc2libGluZyx0LnNpYmxpbmc9bnVsbCx0PWU7d2hpbGUodCE9PW51bGwpfX1mdW5jdGlvbiBVbyh0KXt2YXIgZT10LmRlbGV0aW9ucztpZigodC5mbGFncyYxNikhPT0wKXtpZihlIT09bnVsbClmb3IodmFyIGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGE9ZVtsXTtuZT1hLHJoKGEsdCl9b2godCl9aWYodC5zdWJ0cmVlRmxhZ3MmMTAyNTYpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspaWgodCksdD10LnNpYmxpbmd9ZnVuY3Rpb24gaWgodCl7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlVvKHQpLHQuZmxhZ3MmMjA0OCYmbmEoOSx0LHQucmV0dXJuKTticmVhaztjYXNlIDM6VW8odCk7YnJlYWs7Y2FzZSAxMjpVbyh0KTticmVhaztjYXNlIDIyOnZhciBlPXQuc3RhdGVOb2RlO3QubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUuX3Zpc2liaWxpdHkmMiYmKHQucmV0dXJuPT09bnVsbHx8dC5yZXR1cm4udGFnIT09MTMpPyhlLl92aXNpYmlsaXR5Jj0tMyxscih0KSk6VW8odCk7YnJlYWs7ZGVmYXVsdDpVbyh0KX19ZnVuY3Rpb24gbHIodCl7dmFyIGU9dC5kZWxldGlvbnM7aWYoKHQuZmxhZ3MmMTYpIT09MCl7aWYoZSE9PW51bGwpZm9yKHZhciBsPTA7bDxlLmxlbmd0aDtsKyspe3ZhciBhPWVbbF07bmU9YSxyaChhLHQpfW9oKHQpfWZvcih0PXQuY2hpbGQ7dCE9PW51bGw7KXtzd2l0Y2goZT10LGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Om5hKDgsZSxlLnJldHVybiksbHIoZSk7YnJlYWs7Y2FzZSAyMjpsPWUuc3RhdGVOb2RlLGwuX3Zpc2liaWxpdHkmMiYmKGwuX3Zpc2liaWxpdHkmPS0zLGxyKGUpKTticmVhaztkZWZhdWx0OmxyKGUpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiByaCh0LGUpe2Zvcig7bmUhPT1udWxsOyl7dmFyIGw9bmU7c3dpdGNoKGwudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Om5hKDgsbCxlKTticmVhaztjYXNlIDIzOmNhc2UgMjI6aWYobC5tZW1vaXplZFN0YXRlIT09bnVsbCYmbC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwpe3ZhciBhPWwubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbDthIT1udWxsJiZhLnJlZkNvdW50Kyt9YnJlYWs7Y2FzZSAyNDp3byhsLm1lbW9pemVkU3RhdGUuY2FjaGUpfWlmKGE9bC5jaGlsZCxhIT09bnVsbClhLnJldHVybj1sLG5lPWE7ZWxzZSB0OmZvcihsPXQ7bmUhPT1udWxsOyl7YT1uZTt2YXIgbj1hLnNpYmxpbmcsbz1hLnJldHVybjtpZihGZihhKSxhPT09bCl7bmU9bnVsbDticmVhayB0fWlmKG4hPT1udWxsKXtuLnJldHVybj1vLG5lPW47YnJlYWsgdH1uZT1vfX19dmFyIE0xPXtnZXRDYWNoZUZvclR5cGU6ZnVuY3Rpb24odCl7dmFyIGU9eWUoJHQpLGw9ZS5kYXRhLmdldCh0KTtyZXR1cm4gbD09PXZvaWQgMCYmKGw9dCgpLGUuZGF0YS5zZXQodCxsKSksbH19LEExPXR5cGVvZiBXZWFrTWFwPT0iZnVuY3Rpb24iP1dlYWtNYXA6TWFwLEF0PTAsanQ9bnVsbCx5dD1udWxsLHd0PTAsUnQ9MCxrZT1udWxsLHJhPSExLGpuPSExLG1jPSExLE9sPTAscXQ9MCxzYT0wLElhPTAsZ2M9MCxaZT0wLEJuPTAscW89bnVsbCxNZT1udWxsLHBjPSExLHljPTAsYXI9MS8wLG5yPW51bGwsY2E9bnVsbCxkZT0wLHVhPW51bGwsTG49bnVsbCxIbj0wLHZjPTAsYmM9bnVsbCxzaD1udWxsLEdvPTAseGM9bnVsbDtmdW5jdGlvbiBPZSgpe2lmKChBdCYyKSE9PTAmJnd0IT09MClyZXR1cm4gd3QmLXd0O2lmKEEuVCE9PW51bGwpe3ZhciB0PVRuO3JldHVybiB0IT09MD90Ok1jKCl9cmV0dXJuIGdpKCl9ZnVuY3Rpb24gY2goKXtaZT09PTAmJihaZT0od3QmNTM2ODcwOTEyKT09PTB8fEV0P0luKCk6NTM2ODcwOTEyKTt2YXIgdD1WZS5jdXJyZW50O3JldHVybiB0IT09bnVsbCYmKHQuZmxhZ3N8PTMyKSxaZX1mdW5jdGlvbiBqZSh0LGUsbCl7KHQ9PT1qdCYmKFJ0PT09Mnx8UnQ9PT05KXx8dC5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbCkmJihVbih0LDApLGRhKHQsd3QsWmUsITEpKSxUYSh0LGwpLCgoQXQmMik9PT0wfHx0IT09anQpJiYodD09PWp0JiYoKEF0JjIpPT09MCYmKElhfD1sKSxxdD09PTQmJmRhKHQsd3QsWmUsITEpKSxobCh0KSl9ZnVuY3Rpb24gdWgodCxlLGwpe2lmKChBdCY2KSE9PTApdGhyb3cgRXJyb3IocygzMjcpKTt2YXIgYT0hbCYmKGUmMTI0KT09PTAmJihlJnQuZXhwaXJlZExhbmVzKT09PTB8fER0KHQsZSksbj1hP04xKHQsZSk6Q2ModCxlLCEwKSxvPWE7ZG97aWYobj09PTApe2puJiYhYSYmZGEodCxlLDAsITEpO2JyZWFrfWVsc2V7aWYobD10LmN1cnJlbnQuYWx0ZXJuYXRlLG8mJiFSMShsKSl7bj1DYyh0LGUsITEpLG89ITE7Y29udGludWV9aWYobj09PTIpe2lmKG89ZSx0LmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJm8pdmFyIGM9MDtlbHNlIGM9dC5wZW5kaW5nTGFuZXMmLTUzNjg3MDkxMyxjPWMhPT0wP2M6YyY1MzY4NzA5MTI/NTM2ODcwOTEyOjA7aWYoYyE9PTApe2U9Yzt0Ont2YXIgZD10O249cW87dmFyIGc9ZC5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO2lmKGcmJihVbihkLGMpLmZsYWdzfD0yNTYpLGM9Q2MoZCxjLCExKSxjIT09Mil7aWYobWMmJiFnKXtkLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzfD1vLElhfD1vLG49NDticmVhayB0fW89TWUsTWU9bixvIT09bnVsbCYmKE1lPT09bnVsbD9NZT1vOk1lLnB1c2guYXBwbHkoTWUsbykpfW49Y31pZihvPSExLG4hPT0yKWNvbnRpbnVlfX1pZihuPT09MSl7VW4odCwwKSxkYSh0LGUsMCwhMCk7YnJlYWt9dDp7c3dpdGNoKGE9dCxvPW4sbyl7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihzKDM0NSkpO2Nhc2UgNDppZigoZSY0MTk0MDQ4KSE9PWUpYnJlYWs7Y2FzZSA2OmRhKGEsZSxaZSwhcmEpO2JyZWFrIHQ7Y2FzZSAyOk1lPW51bGw7YnJlYWs7Y2FzZSAzOmNhc2UgNTpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKHMoMzI5KSl9aWYoKGUmNjI5MTQ1NjApPT09ZSYmKG49eWMrMzAwLWdlKCksMTA8bikpe2lmKGRhKGEsZSxaZSwhcmEpLGNuKGEsMCwhMCkhPT0wKWJyZWFrIHQ7YS50aW1lb3V0SGFuZGxlPVVoKGRoLmJpbmQobnVsbCxhLGwsTWUsbnIscGMsZSxaZSxJYSxCbixyYSxvLDIsLTAsMCksbik7YnJlYWsgdH1kaChhLGwsTWUsbnIscGMsZSxaZSxJYSxCbixyYSxvLDAsLTAsMCl9fWJyZWFrfXdoaWxlKCEwKTtobCh0KX1mdW5jdGlvbiBkaCh0LGUsbCxhLG4sbyxjLGQsZyxTLHosTyxFLFQpe2lmKHQudGltZW91dEhhbmRsZT0tMSxPPWUuc3VidHJlZUZsYWdzLChPJjgxOTJ8fChPJjE2Nzg1NDA4KT09PTE2Nzg1NDA4KSYmKFBvPXtzdHlsZXNoZWV0czpudWxsLGNvdW50OjAsdW5zdXNwZW5kOnVwfSxuaChlKSxPPWZwKCksTyE9PW51bGwpKXt0LmNhbmNlbFBlbmRpbmdDb21taXQ9Tyh2aC5iaW5kKG51bGwsdCxlLG8sbCxhLG4sYyxkLGcseiwxLEUsVCkpLGRhKHQsbyxjLCFTKTtyZXR1cm59dmgodCxlLG8sbCxhLG4sYyxkLGcpfWZ1bmN0aW9uIFIxKHQpe2Zvcih2YXIgZT10Ozspe3ZhciBsPWUudGFnO2lmKChsPT09MHx8bD09PTExfHxsPT09MTUpJiZlLmZsYWdzJjE2Mzg0JiYobD1lLnVwZGF0ZVF1ZXVlLGwhPT1udWxsJiYobD1sLnN0b3JlcyxsIT09bnVsbCkpKWZvcih2YXIgYT0wO2E8bC5sZW5ndGg7YSsrKXt2YXIgbj1sW2FdLG89bi5nZXRTbmFwc2hvdDtuPW4udmFsdWU7dHJ5e2lmKCFSZShvKCksbikpcmV0dXJuITF9Y2F0Y2h7cmV0dXJuITF9fWlmKGw9ZS5jaGlsZCxlLnN1YnRyZWVGbGFncyYxNjM4NCYmbCE9PW51bGwpbC5yZXR1cm49ZSxlPWw7ZWxzZXtpZihlPT09dClicmVhaztmb3IoO2Uuc2libGluZz09PW51bGw7KXtpZihlLnJldHVybj09PW51bGx8fGUucmV0dXJuPT09dClyZXR1cm4hMDtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9fXJldHVybiEwfWZ1bmN0aW9uIGRhKHQsZSxsLGEpe2UmPX5nYyxlJj1+SWEsdC5zdXNwZW5kZWRMYW5lc3w9ZSx0LnBpbmdlZExhbmVzJj1+ZSxhJiYodC53YXJtTGFuZXN8PWUpLGE9dC5leHBpcmF0aW9uVGltZXM7Zm9yKHZhciBuPWU7MDxuOyl7dmFyIG89MzEtV3QobiksYz0xPDxvO2Fbb109LTEsbiY9fmN9bCE9PTAmJmhpKHQsbCxlKX1mdW5jdGlvbiBvcigpe3JldHVybihBdCY2KT09PTA/KFlvKDApLCExKTohMH1mdW5jdGlvbiB3Yygpe2lmKHl0IT09bnVsbCl7aWYoUnQ9PT0wKXZhciB0PXl0LnJldHVybjtlbHNlIHQ9eXQsRGw9S2E9bnVsbCxIcyh0KSxObj1udWxsLF9vPTAsdD15dDtmb3IoO3QhPT1udWxsOylWZih0LmFsdGVybmF0ZSx0KSx0PXQucmV0dXJuO3l0PW51bGx9fWZ1bmN0aW9uIFVuKHQsZSl7dmFyIGw9dC50aW1lb3V0SGFuZGxlO2whPT0tMSYmKHQudGltZW91dEhhbmRsZT0tMSxLMShsKSksbD10LmNhbmNlbFBlbmRpbmdDb21taXQsbCE9PW51bGwmJih0LmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbCxsKCkpLHdjKCksanQ9dCx5dD1sPUNsKHQuY3VycmVudCxudWxsKSx3dD1lLFJ0PTAsa2U9bnVsbCxyYT0hMSxqbj1EdCh0LGUpLG1jPSExLEJuPVplPWdjPUlhPXNhPXF0PTAsTWU9cW89bnVsbCxwYz0hMSwoZSY4KSE9PTAmJihlfD1lJjMyKTt2YXIgYT10LmVudGFuZ2xlZExhbmVzO2lmKGEhPT0wKWZvcih0PXQuZW50YW5nbGVtZW50cyxhJj1lOzA8YTspe3ZhciBuPTMxLVd0KGEpLG89MTw8bjtlfD10W25dLGEmPX5vfXJldHVybiBPbD1lLE1pKCksbH1mdW5jdGlvbiBmaCh0LGUpe210PW51bGwsQS5IPVFpLGU9PT1Db3x8ZT09PUJpPyhlPUFkKCksUnQ9Myk6ZT09PVRkPyhlPUFkKCksUnQ9NCk6UnQ9ZT09PXpmPzg6ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIj82OjEsa2U9ZSx5dD09PW51bGwmJihxdD0xLCRpKHQscWUoZSx0LmN1cnJlbnQpKSl9ZnVuY3Rpb24gaGgoKXt2YXIgdD1BLkg7cmV0dXJuIEEuSD1RaSx0PT09bnVsbD9RaTp0fWZ1bmN0aW9uIG1oKCl7dmFyIHQ9QS5BO3JldHVybiBBLkE9TTEsdH1mdW5jdGlvbiBTYygpe3F0PTQscmF8fCh3dCY0MTk0MDQ4KSE9PXd0JiZWZS5jdXJyZW50IT09bnVsbHx8KGpuPSEwKSwoc2EmMTM0MjE3NzI3KT09PTAmJihJYSYxMzQyMTc3MjcpPT09MHx8anQ9PT1udWxsfHxkYShqdCx3dCxaZSwhMSl9ZnVuY3Rpb24gQ2ModCxlLGwpe3ZhciBhPUF0O0F0fD0yO3ZhciBuPWhoKCksbz1taCgpOyhqdCE9PXR8fHd0IT09ZSkmJihucj1udWxsLFVuKHQsZSkpLGU9ITE7dmFyIGM9cXQ7dDpkbyB0cnl7aWYoUnQhPT0wJiZ5dCE9PW51bGwpe3ZhciBkPXl0LGc9a2U7c3dpdGNoKFJ0KXtjYXNlIDg6d2MoKSxjPTY7YnJlYWsgdDtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6VmUuY3VycmVudD09PW51bGwmJihlPSEwKTt2YXIgUz1SdDtpZihSdD0wLGtlPW51bGwscW4odCxkLGcsUyksbCYmam4pe2M9MDticmVhayB0fWJyZWFrO2RlZmF1bHQ6Uz1SdCxSdD0wLGtlPW51bGwscW4odCxkLGcsUyl9fXoxKCksYz1xdDticmVha31jYXRjaCh6KXtmaCh0LHopfXdoaWxlKCEwKTtyZXR1cm4gZSYmdC5zaGVsbFN1c3BlbmRDb3VudGVyKyssRGw9S2E9bnVsbCxBdD1hLEEuSD1uLEEuQT1vLHl0PT09bnVsbCYmKGp0PW51bGwsd3Q9MCxNaSgpKSxjfWZ1bmN0aW9uIHoxKCl7Zm9yKDt5dCE9PW51bGw7KWdoKHl0KX1mdW5jdGlvbiBOMSh0LGUpe3ZhciBsPUF0O0F0fD0yO3ZhciBhPWhoKCksbj1taCgpO2p0IT09dHx8d3QhPT1lPyhucj1udWxsLGFyPWdlKCkrNTAwLFVuKHQsZSkpOmpuPUR0KHQsZSk7dDpkbyB0cnl7aWYoUnQhPT0wJiZ5dCE9PW51bGwpe2U9eXQ7dmFyIG89a2U7ZTpzd2l0Y2goUnQpe2Nhc2UgMTpSdD0wLGtlPW51bGwscW4odCxlLG8sMSk7YnJlYWs7Y2FzZSAyOmNhc2UgOTppZihEZChvKSl7UnQ9MCxrZT1udWxsLHBoKGUpO2JyZWFrfWU9ZnVuY3Rpb24oKXtSdCE9PTImJlJ0IT09OXx8anQhPT10fHwoUnQ9NyksaGwodCl9LG8udGhlbihlLGUpO2JyZWFrIHQ7Y2FzZSAzOlJ0PTc7YnJlYWsgdDtjYXNlIDQ6UnQ9NTticmVhayB0O2Nhc2UgNzpEZChvKT8oUnQ9MCxrZT1udWxsLHBoKGUpKTooUnQ9MCxrZT1udWxsLHFuKHQsZSxvLDcpKTticmVhaztjYXNlIDU6dmFyIGM9bnVsbDtzd2l0Y2goeXQudGFnKXtjYXNlIDI2OmM9eXQubWVtb2l6ZWRTdGF0ZTtjYXNlIDU6Y2FzZSAyNzp2YXIgZD15dDtpZighY3x8JGgoYykpe1J0PTAsa2U9bnVsbDt2YXIgZz1kLnNpYmxpbmc7aWYoZyE9PW51bGwpeXQ9ZztlbHNle3ZhciBTPWQucmV0dXJuO1MhPT1udWxsPyh5dD1TLGlyKFMpKTp5dD1udWxsfWJyZWFrIGV9fVJ0PTAsa2U9bnVsbCxxbih0LGUsbyw1KTticmVhaztjYXNlIDY6UnQ9MCxrZT1udWxsLHFuKHQsZSxvLDYpO2JyZWFrO2Nhc2UgODp3YygpLHF0PTY7YnJlYWsgdDtkZWZhdWx0OnRocm93IEVycm9yKHMoNDYyKSl9fV8xKCk7YnJlYWt9Y2F0Y2goeil7ZmgodCx6KX13aGlsZSghMCk7cmV0dXJuIERsPUthPW51bGwsQS5IPWEsQS5BPW4sQXQ9bCx5dCE9PW51bGw/MDooanQ9bnVsbCx3dD0wLE1pKCkscXQpfWZ1bmN0aW9uIF8xKCl7Zm9yKDt5dCE9PW51bGwmJiFTYSgpOylnaCh5dCl9ZnVuY3Rpb24gZ2godCl7dmFyIGU9WWYodC5hbHRlcm5hdGUsdCxPbCk7dC5tZW1vaXplZFByb3BzPXQucGVuZGluZ1Byb3BzLGU9PT1udWxsP2lyKHQpOnl0PWV9ZnVuY3Rpb24gcGgodCl7dmFyIGU9dCxsPWUuYWx0ZXJuYXRlO3N3aXRjaChlLnRhZyl7Y2FzZSAxNTpjYXNlIDA6ZT1CZihsLGUsZS5wZW5kaW5nUHJvcHMsZS50eXBlLHZvaWQgMCx3dCk7YnJlYWs7Y2FzZSAxMTplPUJmKGwsZSxlLnBlbmRpbmdQcm9wcyxlLnR5cGUucmVuZGVyLGUucmVmLHd0KTticmVhaztjYXNlIDU6SHMoZSk7ZGVmYXVsdDpWZihsLGUpLGU9eXQ9cGQoZSxPbCksZT1ZZihsLGUsT2wpfXQubWVtb2l6ZWRQcm9wcz10LnBlbmRpbmdQcm9wcyxlPT09bnVsbD9pcih0KTp5dD1lfWZ1bmN0aW9uIHFuKHQsZSxsLGEpe0RsPUthPW51bGwsSHMoZSksTm49bnVsbCxfbz0wO3ZhciBuPWUucmV0dXJuO3RyeXtpZih3MSh0LG4sZSxsLHd0KSl7cXQ9MSwkaSh0LHFlKGwsdC5jdXJyZW50KSkseXQ9bnVsbDtyZXR1cm59fWNhdGNoKG8pe2lmKG4hPT1udWxsKXRocm93IHl0PW4sbztxdD0xLCRpKHQscWUobCx0LmN1cnJlbnQpKSx5dD1udWxsO3JldHVybn1lLmZsYWdzJjMyNzY4PyhFdHx8YT09PTE/dD0hMDpqbnx8KHd0JjUzNjg3MDkxMikhPT0wP3Q9ITE6KHJhPXQ9ITAsKGE9PT0yfHxhPT09OXx8YT09PTN8fGE9PT02KSYmKGE9VmUuY3VycmVudCxhIT09bnVsbCYmYS50YWc9PT0xMyYmKGEuZmxhZ3N8PTE2Mzg0KSkpLHloKGUsdCkpOmlyKGUpfWZ1bmN0aW9uIGlyKHQpe3ZhciBlPXQ7ZG97aWYoKGUuZmxhZ3MmMzI3NjgpIT09MCl7eWgoZSxyYSk7cmV0dXJufXQ9ZS5yZXR1cm47dmFyIGw9QzEoZS5hbHRlcm5hdGUsZSxPbCk7aWYobCE9PW51bGwpe3l0PWw7cmV0dXJufWlmKGU9ZS5zaWJsaW5nLGUhPT1udWxsKXt5dD1lO3JldHVybn15dD1lPXR9d2hpbGUoZSE9PW51bGwpO3F0PT09MCYmKHF0PTUpfWZ1bmN0aW9uIHloKHQsZSl7ZG97dmFyIGw9RTEodC5hbHRlcm5hdGUsdCk7aWYobCE9PW51bGwpe2wuZmxhZ3MmPTMyNzY3LHl0PWw7cmV0dXJufWlmKGw9dC5yZXR1cm4sbCE9PW51bGwmJihsLmZsYWdzfD0zMjc2OCxsLnN1YnRyZWVGbGFncz0wLGwuZGVsZXRpb25zPW51bGwpLCFlJiYodD10LnNpYmxpbmcsdCE9PW51bGwpKXt5dD10O3JldHVybn15dD10PWx9d2hpbGUodCE9PW51bGwpO3F0PTYseXQ9bnVsbH1mdW5jdGlvbiB2aCh0LGUsbCxhLG4sbyxjLGQsZyl7dC5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGw7ZG8gcnIoKTt3aGlsZShkZSE9PTApO2lmKChBdCY2KSE9PTApdGhyb3cgRXJyb3IocygzMjcpKTtpZihlIT09bnVsbCl7aWYoZT09PXQuY3VycmVudCl0aHJvdyBFcnJvcihzKDE3NykpO2lmKG89ZS5sYW5lc3xlLmNoaWxkTGFuZXMsb3w9aHMsRnIodCxsLG8sYyxkLGcpLHQ9PT1qdCYmKHl0PWp0PW51bGwsd3Q9MCksTG49ZSx1YT10LEhuPWwsdmM9byxiYz1uLHNoPWEsKGUuc3VidHJlZUZsYWdzJjEwMjU2KSE9PTB8fChlLmZsYWdzJjEwMjU2KSE9PTA/KHQuY2FsbGJhY2tOb2RlPW51bGwsdC5jYWxsYmFja1ByaW9yaXR5PTAsQjEobmwsZnVuY3Rpb24oKXtyZXR1cm4gQ2goKSxudWxsfSkpOih0LmNhbGxiYWNrTm9kZT1udWxsLHQuY2FsbGJhY2tQcmlvcml0eT0wKSxhPShlLmZsYWdzJjEzODc4KSE9PTAsKGUuc3VidHJlZUZsYWdzJjEzODc4KSE9PTB8fGEpe2E9QS5ULEEuVD1udWxsLG49Ry5wLEcucD0yLGM9QXQsQXR8PTQ7dHJ5e1QxKHQsZSxsKX1maW5hbGx5e0F0PWMsRy5wPW4sQS5UPWF9fWRlPTEsYmgoKSx4aCgpLHdoKCl9fWZ1bmN0aW9uIGJoKCl7aWYoZGU9PT0xKXtkZT0wO3ZhciB0PXVhLGU9TG4sbD0oZS5mbGFncyYxMzg3OCkhPT0wO2lmKChlLnN1YnRyZWVGbGFncyYxMzg3OCkhPT0wfHxsKXtsPUEuVCxBLlQ9bnVsbDt2YXIgYT1HLnA7Ry5wPTI7dmFyIG49QXQ7QXR8PTQ7dHJ5e2VoKGUsdCk7dmFyIG89amMsYz1pZCh0LmNvbnRhaW5lckluZm8pLGQ9by5mb2N1c2VkRWxlbSxnPW8uc2VsZWN0aW9uUmFuZ2U7aWYoYyE9PWQmJmQmJmQub3duZXJEb2N1bWVudCYmb2QoZC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxkKSl7aWYoZyE9PW51bGwmJnNzKGQpKXt2YXIgUz1nLnN0YXJ0LHo9Zy5lbmQ7aWYoej09PXZvaWQgMCYmKHo9UyksInNlbGVjdGlvblN0YXJ0ImluIGQpZC5zZWxlY3Rpb25TdGFydD1TLGQuc2VsZWN0aW9uRW5kPU1hdGgubWluKHosZC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIE89ZC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxFPU8mJk8uZGVmYXVsdFZpZXd8fHdpbmRvdztpZihFLmdldFNlbGVjdGlvbil7dmFyIFQ9RS5nZXRTZWxlY3Rpb24oKSxsdD1kLnRleHRDb250ZW50Lmxlbmd0aCxJPU1hdGgubWluKGcuc3RhcnQsbHQpLF90PWcuZW5kPT09dm9pZCAwP0k6TWF0aC5taW4oZy5lbmQsbHQpOyFULmV4dGVuZCYmST5fdCYmKGM9X3QsX3Q9SSxJPWMpO3ZhciBiPW5kKGQsSSkseT1uZChkLF90KTtpZihiJiZ5JiYoVC5yYW5nZUNvdW50IT09MXx8VC5hbmNob3JOb2RlIT09Yi5ub2RlfHxULmFuY2hvck9mZnNldCE9PWIub2Zmc2V0fHxULmZvY3VzTm9kZSE9PXkubm9kZXx8VC5mb2N1c09mZnNldCE9PXkub2Zmc2V0KSl7dmFyIHc9Ty5jcmVhdGVSYW5nZSgpO3cuc2V0U3RhcnQoYi5ub2RlLGIub2Zmc2V0KSxULnJlbW92ZUFsbFJhbmdlcygpLEk+X3Q/KFQuYWRkUmFuZ2UodyksVC5leHRlbmQoeS5ub2RlLHkub2Zmc2V0KSk6KHcuc2V0RW5kKHkubm9kZSx5Lm9mZnNldCksVC5hZGRSYW5nZSh3KSl9fX19Zm9yKE89W10sVD1kO1Q9VC5wYXJlbnROb2RlOylULm5vZGVUeXBlPT09MSYmTy5wdXNoKHtlbGVtZW50OlQsbGVmdDpULnNjcm9sbExlZnQsdG9wOlQuc2Nyb2xsVG9wfSk7Zm9yKHR5cGVvZiBkLmZvY3VzPT0iZnVuY3Rpb24iJiZkLmZvY3VzKCksZD0wO2Q8Ty5sZW5ndGg7ZCsrKXt2YXIgXz1PW2RdO18uZWxlbWVudC5zY3JvbGxMZWZ0PV8ubGVmdCxfLmVsZW1lbnQuc2Nyb2xsVG9wPV8udG9wfX1icj0hIU9jLGpjPU9jPW51bGx9ZmluYWxseXtBdD1uLEcucD1hLEEuVD1sfX10LmN1cnJlbnQ9ZSxkZT0yfX1mdW5jdGlvbiB4aCgpe2lmKGRlPT09Mil7ZGU9MDt2YXIgdD11YSxlPUxuLGw9KGUuZmxhZ3MmODc3MikhPT0wO2lmKChlLnN1YnRyZWVGbGFncyY4NzcyKSE9PTB8fGwpe2w9QS5ULEEuVD1udWxsO3ZhciBhPUcucDtHLnA9Mjt2YXIgbj1BdDtBdHw9NDt0cnl7JGYodCxlLmFsdGVybmF0ZSxlKX1maW5hbGx5e0F0PW4sRy5wPWEsQS5UPWx9fWRlPTN9fWZ1bmN0aW9uIHdoKCl7aWYoZGU9PT00fHxkZT09PTMpe2RlPTAsaWkoKTt2YXIgdD11YSxlPUxuLGw9SG4sYT1zaDsoZS5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KGUuZmxhZ3MmMTAyNTYpIT09MD9kZT01OihkZT0wLExuPXVhPW51bGwsU2godCx0LnBlbmRpbmdMYW5lcykpO3ZhciBuPXQucGVuZGluZ0xhbmVzO2lmKG49PT0wJiYoY2E9bnVsbCksbG8obCksZT1lLnN0YXRlTm9kZSxKdCYmdHlwZW9mIEp0Lm9uQ29tbWl0RmliZXJSb290PT0iZnVuY3Rpb24iKXRyeXtKdC5vbkNvbW1pdEZpYmVyUm9vdChxbCxlLHZvaWQgMCwoZS5jdXJyZW50LmZsYWdzJjEyOCk9PT0xMjgpfWNhdGNoe31pZihhIT09bnVsbCl7ZT1BLlQsbj1HLnAsRy5wPTIsQS5UPW51bGw7dHJ5e2Zvcih2YXIgbz10Lm9uUmVjb3ZlcmFibGVFcnJvcixjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY107byhkLnZhbHVlLHtjb21wb25lbnRTdGFjazpkLnN0YWNrfSl9fWZpbmFsbHl7QS5UPWUsRy5wPW59fShIbiYzKSE9PTAmJnJyKCksaGwodCksbj10LnBlbmRpbmdMYW5lcywobCY0MTk0MDkwKSE9PTAmJihuJjQyKSE9PTA/dD09PXhjP0dvKys6KEdvPTAseGM9dCk6R289MCxZbygwKX19ZnVuY3Rpb24gU2godCxlKXsodC5wb29sZWRDYWNoZUxhbmVzJj1lKT09PTAmJihlPXQucG9vbGVkQ2FjaGUsZSE9bnVsbCYmKHQucG9vbGVkQ2FjaGU9bnVsbCx3byhlKSkpfWZ1bmN0aW9uIHJyKHQpe3JldHVybiBiaCgpLHhoKCksd2goKSxDaCgpfWZ1bmN0aW9uIENoKCl7aWYoZGUhPT01KXJldHVybiExO3ZhciB0PXVhLGU9dmM7dmM9MDt2YXIgbD1sbyhIbiksYT1BLlQsbj1HLnA7dHJ5e0cucD0zMj5sPzMyOmwsQS5UPW51bGwsbD1iYyxiYz1udWxsO3ZhciBvPXVhLGM9SG47aWYoZGU9MCxMbj11YT1udWxsLEhuPTAsKEF0JjYpIT09MCl0aHJvdyBFcnJvcihzKDMzMSkpO3ZhciBkPUF0O2lmKEF0fD00LGloKG8uY3VycmVudCksYWgobyxvLmN1cnJlbnQsYyxsKSxBdD1kLFlvKDAsITEpLEp0JiZ0eXBlb2YgSnQub25Qb3N0Q29tbWl0RmliZXJSb290PT0iZnVuY3Rpb24iKXRyeXtKdC5vblBvc3RDb21taXRGaWJlclJvb3QocWwsbyl9Y2F0Y2h7fXJldHVybiEwfWZpbmFsbHl7Ry5wPW4sQS5UPWEsU2godCxlKX19ZnVuY3Rpb24gRWgodCxlLGwpe2U9cWUobCxlKSxlPUZzKHQuc3RhdGVOb2RlLGUsMiksdD10YSh0LGUsMiksdCE9PW51bGwmJihUYSh0LDIpLGhsKHQpKX1mdW5jdGlvbiBrdCh0LGUsbCl7aWYodC50YWc9PT0zKUVoKHQsdCxsKTtlbHNlIGZvcig7ZSE9PW51bGw7KXtpZihlLnRhZz09PTMpe0VoKGUsdCxsKTticmVha31lbHNlIGlmKGUudGFnPT09MSl7dmFyIGE9ZS5zdGF0ZU5vZGU7aWYodHlwZW9mIGUudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I9PSJmdW5jdGlvbiJ8fHR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoPT0iZnVuY3Rpb24iJiYoY2E9PT1udWxsfHwhY2EuaGFzKGEpKSl7dD1xZShsLHQpLGw9QWYoMiksYT10YShlLGwsMiksYSE9PW51bGwmJihSZihsLGEsZSx0KSxUYShhLDIpLGhsKGEpKTticmVha319ZT1lLnJldHVybn19ZnVuY3Rpb24gRWModCxlLGwpe3ZhciBhPXQucGluZ0NhY2hlO2lmKGE9PT1udWxsKXthPXQucGluZ0NhY2hlPW5ldyBBMTt2YXIgbj1uZXcgU2V0O2Euc2V0KGUsbil9ZWxzZSBuPWEuZ2V0KGUpLG49PT12b2lkIDAmJihuPW5ldyBTZXQsYS5zZXQoZSxuKSk7bi5oYXMobCl8fChtYz0hMCxuLmFkZChsKSx0PWsxLmJpbmQobnVsbCx0LGUsbCksZS50aGVuKHQsdCkpfWZ1bmN0aW9uIGsxKHQsZSxsKXt2YXIgYT10LnBpbmdDYWNoZTthIT09bnVsbCYmYS5kZWxldGUoZSksdC5waW5nZWRMYW5lc3w9dC5zdXNwZW5kZWRMYW5lcyZsLHQud2FybUxhbmVzJj1+bCxqdD09PXQmJih3dCZsKT09PWwmJihxdD09PTR8fHF0PT09MyYmKHd0JjYyOTE0NTYwKT09PXd0JiYzMDA+Z2UoKS15Yz8oQXQmMik9PT0wJiZVbih0LDApOmdjfD1sLEJuPT09d3QmJihCbj0wKSksaGwodCl9ZnVuY3Rpb24gVGgodCxlKXtlPT09MCYmKGU9ZmkoKSksdD13bih0LGUpLHQhPT1udWxsJiYoVGEodCxlKSxobCh0KSl9ZnVuY3Rpb24gTzEodCl7dmFyIGU9dC5tZW1vaXplZFN0YXRlLGw9MDtlIT09bnVsbCYmKGw9ZS5yZXRyeUxhbmUpLFRoKHQsbCl9ZnVuY3Rpb24gajEodCxlKXt2YXIgbD0wO3N3aXRjaCh0LnRhZyl7Y2FzZSAxMzp2YXIgYT10LnN0YXRlTm9kZSxuPXQubWVtb2l6ZWRTdGF0ZTtuIT09bnVsbCYmKGw9bi5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6YT10LnN0YXRlTm9kZTticmVhaztjYXNlIDIyOmE9dC5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDMxNCkpfWEhPT1udWxsJiZhLmRlbGV0ZShlKSxUaCh0LGwpfWZ1bmN0aW9uIEIxKHQsZSl7cmV0dXJuIHBsKHQsZSl9dmFyIHNyPW51bGwsR249bnVsbCxUYz0hMSxjcj0hMSxEYz0hMSx0bj0wO2Z1bmN0aW9uIGhsKHQpe3QhPT1HbiYmdC5uZXh0PT09bnVsbCYmKEduPT09bnVsbD9zcj1Hbj10OkduPUduLm5leHQ9dCksY3I9ITAsVGN8fChUYz0hMCxIMSgpKX1mdW5jdGlvbiBZbyh0LGUpe2lmKCFEYyYmY3Ipe0RjPSEwO2RvIGZvcih2YXIgbD0hMSxhPXNyO2EhPT1udWxsOyl7aWYodCE9PTApe3ZhciBuPWEucGVuZGluZ0xhbmVzO2lmKG49PT0wKXZhciBvPTA7ZWxzZXt2YXIgYz1hLnN1c3BlbmRlZExhbmVzLGQ9YS5waW5nZWRMYW5lcztvPSgxPDwzMS1XdCg0Mnx0KSsxKS0xLG8mPW4mfihjJn5kKSxvPW8mMjAxMzI2NzQxP28mMjAxMzI2NzQxfDE6bz9vfDI6MH1vIT09MCYmKGw9ITAsUmgoYSxvKSl9ZWxzZSBvPXd0LG89Y24oYSxhPT09anQ/bzowLGEuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGx8fGEudGltZW91dEhhbmRsZSE9PS0xKSwobyYzKT09PTB8fER0KGEsbyl8fChsPSEwLFJoKGEsbykpO2E9YS5uZXh0fXdoaWxlKGwpO0RjPSExfX1mdW5jdGlvbiBMMSgpe0RoKCl9ZnVuY3Rpb24gRGgoKXtjcj1UYz0hMTt2YXIgdD0wO3RuIT09MCYmKFExKCkmJih0PXRuKSx0bj0wKTtmb3IodmFyIGU9Z2UoKSxsPW51bGwsYT1zcjthIT09bnVsbDspe3ZhciBuPWEubmV4dCxvPU1oKGEsZSk7bz09PTA/KGEubmV4dD1udWxsLGw9PT1udWxsP3NyPW46bC5uZXh0PW4sbj09PW51bGwmJihHbj1sKSk6KGw9YSwodCE9PTB8fChvJjMpIT09MCkmJihjcj0hMCkpLGE9bn1Zbyh0KX1mdW5jdGlvbiBNaCh0LGUpe2Zvcih2YXIgbD10LnN1c3BlbmRlZExhbmVzLGE9dC5waW5nZWRMYW5lcyxuPXQuZXhwaXJhdGlvblRpbWVzLG89dC5wZW5kaW5nTGFuZXMmLTYyOTE0NTYxOzA8bzspe3ZhciBjPTMxLVd0KG8pLGQ9MTw8YyxnPW5bY107Zz09PS0xPygoZCZsKT09PTB8fChkJmEpIT09MCkmJihuW2NdPUZuKGQsZSkpOmc8PWUmJih0LmV4cGlyZWRMYW5lc3w9ZCksbyY9fmR9aWYoZT1qdCxsPXd0LGw9Y24odCx0PT09ZT9sOjAsdC5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbHx8dC50aW1lb3V0SGFuZGxlIT09LTEpLGE9dC5jYWxsYmFja05vZGUsbD09PTB8fHQ9PT1lJiYoUnQ9PT0yfHxSdD09PTkpfHx0LmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsKXJldHVybiBhIT09bnVsbCYmYSE9PW51bGwmJnJuKGEpLHQuY2FsbGJhY2tOb2RlPW51bGwsdC5jYWxsYmFja1ByaW9yaXR5PTA7aWYoKGwmMyk9PT0wfHxEdCh0LGwpKXtpZihlPWwmLWwsZT09PXQuY2FsbGJhY2tQcmlvcml0eSlyZXR1cm4gZTtzd2l0Y2goYSE9PW51bGwmJnJuKGEpLGxvKGwpKXtjYXNlIDI6Y2FzZSA4Omw9JG47YnJlYWs7Y2FzZSAzMjpsPW5sO2JyZWFrO2Nhc2UgMjY4NDM1NDU2Omw9VWw7YnJlYWs7ZGVmYXVsdDpsPW5sfXJldHVybiBhPUFoLmJpbmQobnVsbCx0KSxsPXBsKGwsYSksdC5jYWxsYmFja1ByaW9yaXR5PWUsdC5jYWxsYmFja05vZGU9bCxlfXJldHVybiBhIT09bnVsbCYmYSE9PW51bGwmJnJuKGEpLHQuY2FsbGJhY2tQcmlvcml0eT0yLHQuY2FsbGJhY2tOb2RlPW51bGwsMn1mdW5jdGlvbiBBaCh0LGUpe2lmKGRlIT09MCYmZGUhPT01KXJldHVybiB0LmNhbGxiYWNrTm9kZT1udWxsLHQuY2FsbGJhY2tQcmlvcml0eT0wLG51bGw7dmFyIGw9dC5jYWxsYmFja05vZGU7aWYocnIoKSYmdC5jYWxsYmFja05vZGUhPT1sKXJldHVybiBudWxsO3ZhciBhPXd0O3JldHVybiBhPWNuKHQsdD09PWp0P2E6MCx0LmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHx0LnRpbWVvdXRIYW5kbGUhPT0tMSksYT09PTA/bnVsbDoodWgodCxhLGUpLE1oKHQsZ2UoKSksdC5jYWxsYmFja05vZGUhPW51bGwmJnQuY2FsbGJhY2tOb2RlPT09bD9BaC5iaW5kKG51bGwsdCk6bnVsbCl9ZnVuY3Rpb24gUmgodCxlKXtpZihycigpKXJldHVybiBudWxsO3VoKHQsZSwhMCl9ZnVuY3Rpb24gSDEoKXtQMShmdW5jdGlvbigpeyhBdCY2KSE9PTA/cGwoSGwsTDEpOkRoKCl9KX1mdW5jdGlvbiBNYygpe3JldHVybiB0bj09PTAmJih0bj1JbigpKSx0bn1mdW5jdGlvbiB6aCh0KXtyZXR1cm4gdD09bnVsbHx8dHlwZW9mIHQ9PSJzeW1ib2wifHx0eXBlb2YgdD09ImJvb2xlYW4iP251bGw6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpqYSgiIit0KX1mdW5jdGlvbiBOaCh0LGUpe3ZhciBsPWUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBsLm5hbWU9ZS5uYW1lLGwudmFsdWU9ZS52YWx1ZSx0LmlkJiZsLnNldEF0dHJpYnV0ZSgiZm9ybSIsdC5pZCksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLGUpLHQ9bmV3IEZvcm1EYXRhKHQpLGwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsKSx0fWZ1bmN0aW9uIFUxKHQsZSxsLGEsbil7aWYoZT09PSJzdWJtaXQiJiZsJiZsLnN0YXRlTm9kZT09PW4pe3ZhciBvPXpoKChuW3BlXXx8bnVsbCkuYWN0aW9uKSxjPWEuc3VibWl0dGVyO2MmJihlPShlPWNbcGVdfHxudWxsKT96aChlLmZvcm1BY3Rpb24pOmMuZ2V0QXR0cmlidXRlKCJmb3JtQWN0aW9uIiksZSE9PW51bGwmJihvPWUsYz1udWxsKSk7dmFyIGQ9bmV3IFVhKCJhY3Rpb24iLCJhY3Rpb24iLG51bGwsYSxuKTt0LnB1c2goe2V2ZW50OmQsbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKGEuZGVmYXVsdFByZXZlbnRlZCl7aWYodG4hPT0wKXt2YXIgZz1jP05oKG4sYyk6bmV3IEZvcm1EYXRhKG4pO0tzKGwse3BlbmRpbmc6ITAsZGF0YTpnLG1ldGhvZDpuLm1ldGhvZCxhY3Rpb246b30sbnVsbCxnKX19ZWxzZSB0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmKGQucHJldmVudERlZmF1bHQoKSxnPWM/TmgobixjKTpuZXcgRm9ybURhdGEobiksS3MobCx7cGVuZGluZzohMCxkYXRhOmcsbWV0aG9kOm4ubWV0aG9kLGFjdGlvbjpvfSxvLGcpKX0sY3VycmVudFRhcmdldDpufV19KX19Zm9yKHZhciBBYz0wO0FjPGZzLmxlbmd0aDtBYysrKXt2YXIgUmM9ZnNbQWNdLHExPVJjLnRvTG93ZXJDYXNlKCksRzE9UmNbMF0udG9VcHBlckNhc2UoKStSYy5zbGljZSgxKTt0bChxMSwib24iK0cxKX10bChjZCwib25BbmltYXRpb25FbmQiKSx0bCh1ZCwib25BbmltYXRpb25JdGVyYXRpb24iKSx0bChkZCwib25BbmltYXRpb25TdGFydCIpLHRsKCJkYmxjbGljayIsIm9uRG91YmxlQ2xpY2siKSx0bCgiZm9jdXNpbiIsIm9uRm9jdXMiKSx0bCgiZm9jdXNvdXQiLCJvbkJsdXIiKSx0bChuMSwib25UcmFuc2l0aW9uUnVuIiksdGwobzEsIm9uVHJhbnNpdGlvblN0YXJ0IiksdGwoaTEsIm9uVHJhbnNpdGlvbkNhbmNlbCIpLHRsKGZkLCJvblRyYW5zaXRpb25FbmQiKSxXZSgib25Nb3VzZUVudGVyIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLFdlKCJvbk1vdXNlTGVhdmUiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksV2UoIm9uUG9pbnRlckVudGVyIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxXZSgib25Qb2ludGVyTGVhdmUiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLHZsKCJvbkNoYW5nZSIsImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSx2bCgib25TZWxlY3QiLCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLHZsKCJvbkJlZm9yZUlucHV0IixbImNvbXBvc2l0aW9uZW5kIiwia2V5cHJlc3MiLCJ0ZXh0SW5wdXQiLCJwYXN0ZSJdKSx2bCgib25Db21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSx2bCgib25Db21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksdmwoIm9uQ29tcG9zaXRpb25VcGRhdGUiLCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7dmFyIFhvPSJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoIiAiKSxZMT1uZXcgU2V0KCJiZWZvcmV0b2dnbGUgY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgc2Nyb2xsZW5kIHRvZ2dsZSIuc3BsaXQoIiAiKS5jb25jYXQoWG8pKTtmdW5jdGlvbiBfaCh0LGUpe2U9KGUmNCkhPT0wO2Zvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgYT10W2xdLG49YS5ldmVudDthPWEubGlzdGVuZXJzO3Q6e3ZhciBvPXZvaWQgMDtpZihlKWZvcih2YXIgYz1hLmxlbmd0aC0xOzA8PWM7Yy0tKXt2YXIgZD1hW2NdLGc9ZC5pbnN0YW5jZSxTPWQuY3VycmVudFRhcmdldDtpZihkPWQubGlzdGVuZXIsZyE9PW8mJm4uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayB0O289ZCxuLmN1cnJlbnRUYXJnZXQ9Uzt0cnl7byhuKX1jYXRjaCh6KXtXaSh6KX1uLmN1cnJlbnRUYXJnZXQ9bnVsbCxvPWd9ZWxzZSBmb3IoYz0wO2M8YS5sZW5ndGg7YysrKXtpZihkPWFbY10sZz1kLmluc3RhbmNlLFM9ZC5jdXJyZW50VGFyZ2V0LGQ9ZC5saXN0ZW5lcixnIT09byYmbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIHQ7bz1kLG4uY3VycmVudFRhcmdldD1TO3RyeXtvKG4pfWNhdGNoKHope1dpKHopfW4uY3VycmVudFRhcmdldD1udWxsLG89Z319fX1mdW5jdGlvbiB2dCh0LGUpe3ZhciBsPWVbYW9dO2w9PT12b2lkIDAmJihsPWVbYW9dPW5ldyBTZXQpO3ZhciBhPXQrIl9fYnViYmxlIjtsLmhhcyhhKXx8KGtoKGUsdCwyLCExKSxsLmFkZChhKSl9ZnVuY3Rpb24gemModCxlLGwpe3ZhciBhPTA7ZSYmKGF8PTQpLGtoKGwsdCxhLGUpfXZhciB1cj0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBOYyh0KXtpZighdFt1cl0pe3RbdXJdPSEwLHlpLmZvckVhY2goZnVuY3Rpb24obCl7bCE9PSJzZWxlY3Rpb25jaGFuZ2UiJiYoWTEuaGFzKGwpfHx6YyhsLCExLHQpLHpjKGwsITAsdCkpfSk7dmFyIGU9dC5ub2RlVHlwZT09PTk/dDp0Lm93bmVyRG9jdW1lbnQ7ZT09PW51bGx8fGVbdXJdfHwoZVt1cl09ITAsemMoInNlbGVjdGlvbmNoYW5nZSIsITEsZSkpfX1mdW5jdGlvbiBraCh0LGUsbCxhKXtzd2l0Y2goYW0oZSkpe2Nhc2UgMjp2YXIgbj1ncDticmVhaztjYXNlIDg6bj1wcDticmVhaztkZWZhdWx0Om49WmN9bD1uLmJpbmQobnVsbCxlLGwsdCksbj12b2lkIDAsIWdufHxlIT09InRvdWNoc3RhcnQiJiZlIT09InRvdWNobW92ZSImJmUhPT0id2hlZWwifHwobj0hMCksYT9uIT09dm9pZCAwP3QuYWRkRXZlbnRMaXN0ZW5lcihlLGwse2NhcHR1cmU6ITAscGFzc2l2ZTpufSk6dC5hZGRFdmVudExpc3RlbmVyKGUsbCwhMCk6biE9PXZvaWQgMD90LmFkZEV2ZW50TGlzdGVuZXIoZSxsLHtwYXNzaXZlOm59KTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxsLCExKX1mdW5jdGlvbiBfYyh0LGUsbCxhLG4pe3ZhciBvPWE7aWYoKGUmMSk9PT0wJiYoZSYyKT09PTAmJmEhPT1udWxsKXQ6Zm9yKDs7KXtpZihhPT09bnVsbClyZXR1cm47dmFyIGM9YS50YWc7aWYoYz09PTN8fGM9PT00KXt2YXIgZD1hLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKGQ9PT1uKWJyZWFrO2lmKGM9PT00KWZvcihjPWEucmV0dXJuO2MhPT1udWxsOyl7dmFyIGc9Yy50YWc7aWYoKGc9PT0zfHxnPT09NCkmJmMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1uKXJldHVybjtjPWMucmV0dXJufWZvcig7ZCE9PW51bGw7KXtpZihjPVlsKGQpLGM9PT1udWxsKXJldHVybjtpZihnPWMudGFnLGc9PT01fHxnPT09Nnx8Zz09PTI2fHxnPT09Mjcpe2E9bz1jO2NvbnRpbnVlIHR9ZD1kLnBhcmVudE5vZGV9fWE9YS5yZXR1cm59aW8oZnVuY3Rpb24oKXt2YXIgUz1vLHo9aG4obCksTz1bXTt0Ont2YXIgRT1oZC5nZXQodCk7aWYoRSE9PXZvaWQgMCl7dmFyIFQ9VWEsbHQ9dDtzd2l0Y2godCl7Y2FzZSJrZXlwcmVzcyI6aWYoTGEobCk9PT0wKWJyZWFrIHQ7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpUPUIwO2JyZWFrO2Nhc2UiZm9jdXNpbiI6bHQ9ImZvY3VzIixUPWFzO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOmx0PSJibHVyIixUPWFzO2JyZWFrO2Nhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOlQ9YXM7YnJlYWs7Y2FzZSJjbGljayI6aWYobC5idXR0b249PT0yKWJyZWFrIHQ7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjpUPVl1O2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOlQ9RTA7YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6VD1VMDticmVhaztjYXNlIGNkOmNhc2UgdWQ6Y2FzZSBkZDpUPU0wO2JyZWFrO2Nhc2UgZmQ6VD1HMDticmVhaztjYXNlInNjcm9sbCI6Y2FzZSJzY3JvbGxlbmQiOlQ9Q2k7YnJlYWs7Y2FzZSJ3aGVlbCI6VD1YMDticmVhaztjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlInBhc3RlIjpUPVIwO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVydXAiOlQ9VnU7YnJlYWs7Y2FzZSJ0b2dnbGUiOmNhc2UiYmVmb3JldG9nZ2xlIjpUPVowfXZhciBJPShlJjQpIT09MCxfdD0hSSYmKHQ9PT0ic2Nyb2xsInx8dD09PSJzY3JvbGxlbmQiKSxiPUk/RSE9PW51bGw/RSsiQ2FwdHVyZSI6bnVsbDpFO0k9W107Zm9yKHZhciB5PVMsdzt5IT09bnVsbDspe3ZhciBfPXk7aWYodz1fLnN0YXRlTm9kZSxfPV8udGFnLF8hPT01JiZfIT09MjYmJl8hPT0yN3x8dz09PW51bGx8fGI9PT1udWxsfHwoXz1QbCh5LGIpLF8hPW51bGwmJkkucHVzaChWbyh5LF8sdykpKSxfdClicmVhazt5PXkucmV0dXJufTA8SS5sZW5ndGgmJihFPW5ldyBUKEUsbHQsbnVsbCxsLHopLE8ucHVzaCh7ZXZlbnQ6RSxsaXN0ZW5lcnM6SX0pKX19aWYoKGUmNyk9PT0wKXt0OntpZihFPXQ9PT0ibW91c2VvdmVyInx8dD09PSJwb2ludGVyb3ZlciIsVD10PT09Im1vdXNlb3V0Inx8dD09PSJwb2ludGVyb3V0IixFJiZsIT09Zm4mJihsdD1sLnJlbGF0ZWRUYXJnZXR8fGwuZnJvbUVsZW1lbnQpJiYoWWwobHQpfHxsdFtHbF0pKWJyZWFrIHQ7aWYoKFR8fEUpJiYoRT16LndpbmRvdz09PXo/ejooRT16Lm93bmVyRG9jdW1lbnQpP0UuZGVmYXVsdFZpZXd8fEUucGFyZW50V2luZG93OndpbmRvdyxUPyhsdD1sLnJlbGF0ZWRUYXJnZXR8fGwudG9FbGVtZW50LFQ9UyxsdD1sdD9ZbChsdCk6bnVsbCxsdCE9PW51bGwmJihfdD1tKGx0KSxJPWx0LnRhZyxsdCE9PV90fHxJIT09NSYmSSE9PTI3JiZJIT09NikmJihsdD1udWxsKSk6KFQ9bnVsbCxsdD1TKSxUIT09bHQpKXtpZihJPVl1LF89Im9uTW91c2VMZWF2ZSIsYj0ib25Nb3VzZUVudGVyIix5PSJtb3VzZSIsKHQ9PT0icG9pbnRlcm91dCJ8fHQ9PT0icG9pbnRlcm92ZXIiKSYmKEk9VnUsXz0ib25Qb2ludGVyTGVhdmUiLGI9Im9uUG9pbnRlckVudGVyIix5PSJwb2ludGVyIiksX3Q9VD09bnVsbD9FOk1hKFQpLHc9bHQ9PW51bGw/RTpNYShsdCksRT1uZXcgSShfLHkrImxlYXZlIixULGwseiksRS50YXJnZXQ9X3QsRS5yZWxhdGVkVGFyZ2V0PXcsXz1udWxsLFlsKHopPT09UyYmKEk9bmV3IEkoYix5KyJlbnRlciIsbHQsbCx6KSxJLnRhcmdldD13LEkucmVsYXRlZFRhcmdldD1fdCxfPUkpLF90PV8sVCYmbHQpZTp7Zm9yKEk9VCxiPWx0LHk9MCx3PUk7dzt3PVluKHcpKXkrKztmb3Iodz0wLF89YjtfO189WW4oXykpdysrO2Zvcig7MDx5LXc7KUk9WW4oSSkseS0tO2Zvcig7MDx3LXk7KWI9WW4oYiksdy0tO2Zvcig7eS0tOyl7aWYoST09PWJ8fGIhPT1udWxsJiZJPT09Yi5hbHRlcm5hdGUpYnJlYWsgZTtJPVluKEkpLGI9WW4oYil9ST1udWxsfWVsc2UgST1udWxsO1QhPT1udWxsJiZPaChPLEUsVCxJLCExKSxsdCE9PW51bGwmJl90IT09bnVsbCYmT2goTyxfdCxsdCxJLCEwKX19dDp7aWYoRT1TP01hKFMpOndpbmRvdyxUPUUubm9kZU5hbWUmJkUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxUPT09InNlbGVjdCJ8fFQ9PT0iaW5wdXQiJiZFLnR5cGU9PT0iZmlsZSIpdmFyIFA9RnU7ZWxzZSBpZihXdShFKSlpZihJdSlQPWUxO2Vsc2V7UD1JMDt2YXIgcHQ9RjB9ZWxzZSBUPUUubm9kZU5hbWUsIVR8fFQudG9Mb3dlckNhc2UoKSE9PSJpbnB1dCJ8fEUudHlwZSE9PSJjaGVja2JveCImJkUudHlwZSE9PSJyYWRpbyI/UyYmT2EoUy5lbGVtZW50VHlwZSkmJihQPUZ1KTpQPXQxO2lmKFAmJihQPVAodCxTKSkpeyR1KE8sUCxsLHopO2JyZWFrIHR9cHQmJnB0KHQsRSxTKSx0PT09ImZvY3Vzb3V0IiYmUyYmRS50eXBlPT09Im51bWJlciImJlMubWVtb2l6ZWRQcm9wcy52YWx1ZSE9bnVsbCYmS2woRSwibnVtYmVyIixFLnZhbHVlKX1zd2l0Y2gocHQ9Uz9NYShTKTp3aW5kb3csdCl7Y2FzZSJmb2N1c2luIjooV3UocHQpfHxwdC5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpJiYodm49cHQsY3M9Uyxwbz1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0Ijpwbz1jcz12bj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp1cz0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6dXM9ITEscmQoTyxsLHopO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihhMSlicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOnJkKE8sbCx6KX12YXIgVztpZihvcyl0Ontzd2l0Y2godCl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgZXQ9Im9uQ29tcG9zaXRpb25TdGFydCI7YnJlYWsgdDtjYXNlImNvbXBvc2l0aW9uZW5kIjpldD0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgdDtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpldD0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgdH1ldD12b2lkIDB9ZWxzZSB5bj9QdSh0LGwpJiYoZXQ9Im9uQ29tcG9zaXRpb25FbmQiKTp0PT09ImtleWRvd24iJiZsLmtleUNvZGU9PT0yMjkmJihldD0ib25Db21wb3NpdGlvblN0YXJ0Iik7ZXQmJihadSYmbC5sb2NhbGUhPT0ia28iJiYoeW58fGV0IT09Im9uQ29tcG9zaXRpb25TdGFydCI/ZXQ9PT0ib25Db21wb3NpdGlvbkVuZCImJnluJiYoVz1ybygpKTooSWU9eixwbj0idmFsdWUiaW4gSWU/SWUudmFsdWU6SWUudGV4dENvbnRlbnQseW49ITApKSxwdD1kcihTLGV0KSwwPHB0Lmxlbmd0aCYmKGV0PW5ldyBYdShldCx0LG51bGwsbCx6KSxPLnB1c2goe2V2ZW50OmV0LGxpc3RlbmVyczpwdH0pLFc/ZXQuZGF0YT1XOihXPUp1KGwpLFchPT1udWxsJiYoZXQuZGF0YT1XKSkpKSwoVz1LMD9QMCh0LGwpOkowKHQsbCkpJiYoZXQ9ZHIoUywib25CZWZvcmVJbnB1dCIpLDA8ZXQubGVuZ3RoJiYocHQ9bmV3IFh1KCJvbkJlZm9yZUlucHV0IiwiYmVmb3JlaW5wdXQiLG51bGwsbCx6KSxPLnB1c2goe2V2ZW50OnB0LGxpc3RlbmVyczpldH0pLHB0LmRhdGE9VykpLFUxKE8sdCxTLGwseil9X2goTyxlKX0pfWZ1bmN0aW9uIFZvKHQsZSxsKXtyZXR1cm57aW5zdGFuY2U6dCxsaXN0ZW5lcjplLGN1cnJlbnRUYXJnZXQ6bH19ZnVuY3Rpb24gZHIodCxlKXtmb3IodmFyIGw9ZSsiQ2FwdHVyZSIsYT1bXTt0IT09bnVsbDspe3ZhciBuPXQsbz1uLnN0YXRlTm9kZTtpZihuPW4udGFnLG4hPT01JiZuIT09MjYmJm4hPT0yN3x8bz09PW51bGx8fChuPVBsKHQsbCksbiE9bnVsbCYmYS51bnNoaWZ0KFZvKHQsbixvKSksbj1QbCh0LGUpLG4hPW51bGwmJmEucHVzaChWbyh0LG4sbykpKSx0LnRhZz09PTMpcmV0dXJuIGE7dD10LnJldHVybn1yZXR1cm5bXX1mdW5jdGlvbiBZbih0KXtpZih0PT09bnVsbClyZXR1cm4gbnVsbDtkbyB0PXQucmV0dXJuO3doaWxlKHQmJnQudGFnIT09NSYmdC50YWchPT0yNyk7cmV0dXJuIHR8fG51bGx9ZnVuY3Rpb24gT2godCxlLGwsYSxuKXtmb3IodmFyIG89ZS5fcmVhY3ROYW1lLGM9W107bCE9PW51bGwmJmwhPT1hOyl7dmFyIGQ9bCxnPWQuYWx0ZXJuYXRlLFM9ZC5zdGF0ZU5vZGU7aWYoZD1kLnRhZyxnIT09bnVsbCYmZz09PWEpYnJlYWs7ZCE9PTUmJmQhPT0yNiYmZCE9PTI3fHxTPT09bnVsbHx8KGc9UyxuPyhTPVBsKGwsbyksUyE9bnVsbCYmYy51bnNoaWZ0KFZvKGwsUyxnKSkpOm58fChTPVBsKGwsbyksUyE9bnVsbCYmYy5wdXNoKFZvKGwsUyxnKSkpKSxsPWwucmV0dXJufWMubGVuZ3RoIT09MCYmdC5wdXNoKHtldmVudDplLGxpc3RlbmVyczpjfSl9dmFyIFgxPS9cclxuPy9nLFYxPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gamgodCl7cmV0dXJuKHR5cGVvZiB0PT0ic3RyaW5nIj90OiIiK3QpLnJlcGxhY2UoWDEsYApgKS5yZXBsYWNlKFYxLCIiKX1mdW5jdGlvbiBCaCh0LGUpe3JldHVybiBlPWpoKGUpLGpoKHQpPT09ZX1mdW5jdGlvbiBmcigpe31mdW5jdGlvbiBOdCh0LGUsbCxhLG4sbyl7c3dpdGNoKGwpe2Nhc2UiY2hpbGRyZW4iOnR5cGVvZiBhPT0ic3RyaW5nIj9lPT09ImJvZHkifHxlPT09InRleHRhcmVhIiYmYT09PSIifHxGZSh0LGEpOih0eXBlb2YgYT09Im51bWJlciJ8fHR5cGVvZiBhPT0iYmlnaW50IikmJmUhPT0iYm9keSImJkZlKHQsIiIrYSk7YnJlYWs7Y2FzZSJjbGFzc05hbWUiOm50KHQsImNsYXNzIixhKTticmVhaztjYXNlInRhYkluZGV4IjpudCh0LCJ0YWJpbmRleCIsYSk7YnJlYWs7Y2FzZSJkaXIiOmNhc2Uicm9sZSI6Y2FzZSJ2aWV3Qm94IjpjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6bnQodCxsLGEpO2JyZWFrO2Nhc2Uic3R5bGUiOmthKHQsYSxvKTticmVhaztjYXNlImRhdGEiOmlmKGUhPT0ib2JqZWN0Iil7bnQodCwiZGF0YSIsYSk7YnJlYWt9Y2FzZSJzcmMiOmNhc2UiaHJlZiI6aWYoYT09PSIiJiYoZSE9PSJhInx8bCE9PSJocmVmIikpe3QucmVtb3ZlQXR0cmlidXRlKGwpO2JyZWFrfWlmKGE9PW51bGx8fHR5cGVvZiBhPT0iZnVuY3Rpb24ifHx0eXBlb2YgYT09InN5bWJvbCJ8fHR5cGVvZiBhPT0iYm9vbGVhbiIpe3QucmVtb3ZlQXR0cmlidXRlKGwpO2JyZWFrfWE9amEoIiIrYSksdC5zZXRBdHRyaWJ1dGUobCxhKTticmVhaztjYXNlImFjdGlvbiI6Y2FzZSJmb3JtQWN0aW9uIjppZih0eXBlb2YgYT09ImZ1bmN0aW9uIil7dC5zZXRBdHRyaWJ1dGUobCwiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ0EgUmVhY3QgZm9ybSB3YXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4gSWYgeW91IGNhbGxlZCBmb3JtLnN1Ym1pdCgpIG1hbnVhbGx5LCBjb25zaWRlciB1c2luZyBmb3JtLnJlcXVlc3RTdWJtaXQoKSBpbnN0ZWFkLiBJZiB5b3VcXCdyZSB0cnlpbmcgdG8gdXNlIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIGluIGEgc3VibWl0IGV2ZW50IGhhbmRsZXIsIGNvbnNpZGVyIGFsc28gY2FsbGluZyBldmVudC5wcmV2ZW50RGVmYXVsdCgpLicpIik7YnJlYWt9ZWxzZSB0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmKGw9PT0iZm9ybUFjdGlvbiI/KGUhPT0iaW5wdXQiJiZOdCh0LGUsIm5hbWUiLG4ubmFtZSxuLG51bGwpLE50KHQsZSwiZm9ybUVuY1R5cGUiLG4uZm9ybUVuY1R5cGUsbixudWxsKSxOdCh0LGUsImZvcm1NZXRob2QiLG4uZm9ybU1ldGhvZCxuLG51bGwpLE50KHQsZSwiZm9ybVRhcmdldCIsbi5mb3JtVGFyZ2V0LG4sbnVsbCkpOihOdCh0LGUsImVuY1R5cGUiLG4uZW5jVHlwZSxuLG51bGwpLE50KHQsZSwibWV0aG9kIixuLm1ldGhvZCxuLG51bGwpLE50KHQsZSwidGFyZ2V0IixuLnRhcmdldCxuLG51bGwpKSk7aWYoYT09bnVsbHx8dHlwZW9mIGE9PSJzeW1ib2wifHx0eXBlb2YgYT09ImJvb2xlYW4iKXt0LnJlbW92ZUF0dHJpYnV0ZShsKTticmVha31hPWphKCIiK2EpLHQuc2V0QXR0cmlidXRlKGwsYSk7YnJlYWs7Y2FzZSJvbkNsaWNrIjphIT1udWxsJiYodC5vbmNsaWNrPWZyKTticmVhaztjYXNlIm9uU2Nyb2xsIjphIT1udWxsJiZ2dCgic2Nyb2xsIix0KTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjphIT1udWxsJiZ2dCgic2Nyb2xsZW5kIix0KTticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihhIT1udWxsKXtpZih0eXBlb2YgYSE9Im9iamVjdCJ8fCEoIl9faHRtbCJpbiBhKSl0aHJvdyBFcnJvcihzKDYxKSk7aWYobD1hLl9faHRtbCxsIT1udWxsKXtpZihuLmNoaWxkcmVuIT1udWxsKXRocm93IEVycm9yKHMoNjApKTt0LmlubmVySFRNTD1sfX1icmVhaztjYXNlIm11bHRpcGxlIjp0Lm11bHRpcGxlPWEmJnR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCI7YnJlYWs7Y2FzZSJtdXRlZCI6dC5tdXRlZD1hJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJzeW1ib2wiO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJkZWZhdWx0VmFsdWUiOmNhc2UiZGVmYXVsdENoZWNrZWQiOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6YnJlYWs7Y2FzZSJhdXRvRm9jdXMiOmJyZWFrO2Nhc2UieGxpbmtIcmVmIjppZihhPT1udWxsfHx0eXBlb2YgYT09ImZ1bmN0aW9uInx8dHlwZW9mIGE9PSJib29sZWFuInx8dHlwZW9mIGE9PSJzeW1ib2wiKXt0LnJlbW92ZUF0dHJpYnV0ZSgieGxpbms6aHJlZiIpO2JyZWFrfWw9amEoIiIrYSksdC5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmhyZWYiLGwpO2JyZWFrO2Nhc2UiY29udGVudEVkaXRhYmxlIjpjYXNlInNwZWxsQ2hlY2siOmNhc2UiZHJhZ2dhYmxlIjpjYXNlInZhbHVlIjpjYXNlImF1dG9SZXZlcnNlIjpjYXNlImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOmNhc2UiZm9jdXNhYmxlIjpjYXNlInByZXNlcnZlQWxwaGEiOmEhPW51bGwmJnR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCI/dC5zZXRBdHRyaWJ1dGUobCwiIithKTp0LnJlbW92ZUF0dHJpYnV0ZShsKTticmVhaztjYXNlImluZXJ0IjpjYXNlImFsbG93RnVsbFNjcmVlbiI6Y2FzZSJhc3luYyI6Y2FzZSJhdXRvUGxheSI6Y2FzZSJjb250cm9scyI6Y2FzZSJkZWZhdWx0IjpjYXNlImRlZmVyIjpjYXNlImRpc2FibGVkIjpjYXNlImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIjpjYXNlImRpc2FibGVSZW1vdGVQbGF5YmFjayI6Y2FzZSJmb3JtTm9WYWxpZGF0ZSI6Y2FzZSJoaWRkZW4iOmNhc2UibG9vcCI6Y2FzZSJub01vZHVsZSI6Y2FzZSJub1ZhbGlkYXRlIjpjYXNlIm9wZW4iOmNhc2UicGxheXNJbmxpbmUiOmNhc2UicmVhZE9ubHkiOmNhc2UicmVxdWlyZWQiOmNhc2UicmV2ZXJzZWQiOmNhc2Uic2NvcGVkIjpjYXNlInNlYW1sZXNzIjpjYXNlIml0ZW1TY29wZSI6YSYmdHlwZW9mIGEhPSJmdW5jdGlvbiImJnR5cGVvZiBhIT0ic3ltYm9sIj90LnNldEF0dHJpYnV0ZShsLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZShsKTticmVhaztjYXNlImNhcHR1cmUiOmNhc2UiZG93bmxvYWQiOmE9PT0hMD90LnNldEF0dHJpYnV0ZShsLCIiKTphIT09ITEmJmEhPW51bGwmJnR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCI/dC5zZXRBdHRyaWJ1dGUobCxhKTp0LnJlbW92ZUF0dHJpYnV0ZShsKTticmVhaztjYXNlImNvbHMiOmNhc2Uicm93cyI6Y2FzZSJzaXplIjpjYXNlInNwYW4iOmEhPW51bGwmJnR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCImJiFpc05hTihhKSYmMTw9YT90LnNldEF0dHJpYnV0ZShsLGEpOnQucmVtb3ZlQXR0cmlidXRlKGwpO2JyZWFrO2Nhc2Uicm93U3BhbiI6Y2FzZSJzdGFydCI6YT09bnVsbHx8dHlwZW9mIGE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBhPT0ic3ltYm9sInx8aXNOYU4oYSk/dC5yZW1vdmVBdHRyaWJ1dGUobCk6dC5zZXRBdHRyaWJ1dGUobCxhKTticmVhaztjYXNlInBvcG92ZXIiOnZ0KCJiZWZvcmV0b2dnbGUiLHQpLHZ0KCJ0b2dnbGUiLHQpLE0odCwicG9wb3ZlciIsYSk7YnJlYWs7Y2FzZSJ4bGlua0FjdHVhdGUiOk90KHQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazphY3R1YXRlIixhKTticmVhaztjYXNlInhsaW5rQXJjcm9sZSI6T3QodCwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmFyY3JvbGUiLGEpO2JyZWFrO2Nhc2UieGxpbmtSb2xlIjpPdCh0LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6cm9sZSIsYSk7YnJlYWs7Y2FzZSJ4bGlua1Nob3ciOk90KHQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazpzaG93IixhKTticmVhaztjYXNlInhsaW5rVGl0bGUiOk90KHQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0aXRsZSIsYSk7YnJlYWs7Y2FzZSJ4bGlua1R5cGUiOk90KHQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0eXBlIixhKTticmVhaztjYXNlInhtbEJhc2UiOk90KHQsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpiYXNlIixhKTticmVhaztjYXNlInhtbExhbmciOk90KHQsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIixhKTticmVhaztjYXNlInhtbFNwYWNlIjpPdCh0LCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6c3BhY2UiLGEpO2JyZWFrO2Nhc2UiaXMiOk0odCwiaXMiLGEpO2JyZWFrO2Nhc2UiaW5uZXJUZXh0IjpjYXNlInRleHRDb250ZW50IjpicmVhaztkZWZhdWx0OighKDI8bC5sZW5ndGgpfHxsWzBdIT09Im8iJiZsWzBdIT09Ik8ifHxsWzFdIT09Im4iJiZsWzFdIT09Ik4iKSYmKGw9d2kuZ2V0KGwpfHxsLE0odCxsLGEpKX19ZnVuY3Rpb24ga2ModCxlLGwsYSxuLG8pe3N3aXRjaChsKXtjYXNlInN0eWxlIjprYSh0LGEsbyk7YnJlYWs7Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoYSE9bnVsbCl7aWYodHlwZW9mIGEhPSJvYmplY3QifHwhKCJfX2h0bWwiaW4gYSkpdGhyb3cgRXJyb3Iocyg2MSkpO2lmKGw9YS5fX2h0bWwsbCE9bnVsbCl7aWYobi5jaGlsZHJlbiE9bnVsbCl0aHJvdyBFcnJvcihzKDYwKSk7dC5pbm5lckhUTUw9bH19YnJlYWs7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIGE9PSJzdHJpbmciP0ZlKHQsYSk6KHR5cGVvZiBhPT0ibnVtYmVyInx8dHlwZW9mIGE9PSJiaWdpbnQiKSYmRmUodCwiIithKTticmVhaztjYXNlIm9uU2Nyb2xsIjphIT1udWxsJiZ2dCgic2Nyb2xsIix0KTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjphIT1udWxsJiZ2dCgic2Nyb2xsZW5kIix0KTticmVhaztjYXNlIm9uQ2xpY2siOmEhPW51bGwmJih0Lm9uY2xpY2s9ZnIpO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJpbm5lckhUTUwiOmNhc2UicmVmIjpicmVhaztjYXNlImlubmVyVGV4dCI6Y2FzZSJ0ZXh0Q29udGVudCI6YnJlYWs7ZGVmYXVsdDppZighdmkuaGFzT3duUHJvcGVydHkobCkpdDp7aWYobFswXT09PSJvIiYmbFsxXT09PSJuIiYmKG49bC5lbmRzV2l0aCgiQ2FwdHVyZSIpLGU9bC5zbGljZSgyLG4/bC5sZW5ndGgtNzp2b2lkIDApLG89dFtwZV18fG51bGwsbz1vIT1udWxsP29bbF06bnVsbCx0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbyxuKSx0eXBlb2YgYT09ImZ1bmN0aW9uIikpe3R5cGVvZiBvIT0iZnVuY3Rpb24iJiZvIT09bnVsbCYmKGwgaW4gdD90W2xdPW51bGw6dC5oYXNBdHRyaWJ1dGUobCkmJnQucmVtb3ZlQXR0cmlidXRlKGwpKSx0LmFkZEV2ZW50TGlzdGVuZXIoZSxhLG4pO2JyZWFrIHR9bCBpbiB0P3RbbF09YTphPT09ITA/dC5zZXRBdHRyaWJ1dGUobCwiIik6TSh0LGwsYSl9fX1mdW5jdGlvbiBmZSh0LGUsbCl7c3dpdGNoKGUpe2Nhc2UiZGl2IjpjYXNlInNwYW4iOmNhc2Uic3ZnIjpjYXNlInBhdGgiOmNhc2UiYSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UibGkiOmJyZWFrO2Nhc2UiaW1nIjp2dCgiZXJyb3IiLHQpLHZ0KCJsb2FkIix0KTt2YXIgYT0hMSxuPSExLG87Zm9yKG8gaW4gbClpZihsLmhhc093blByb3BlcnR5KG8pKXt2YXIgYz1sW29dO2lmKGMhPW51bGwpc3dpdGNoKG8pe2Nhc2Uic3JjIjphPSEwO2JyZWFrO2Nhc2Uic3JjU2V0IjpuPSEwO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKHMoMTM3LGUpKTtkZWZhdWx0Ok50KHQsZSxvLGMsbCxudWxsKX19biYmTnQodCxlLCJzcmNTZXQiLGwuc3JjU2V0LGwsbnVsbCksYSYmTnQodCxlLCJzcmMiLGwuc3JjLGwsbnVsbCk7cmV0dXJuO2Nhc2UiaW5wdXQiOnZ0KCJpbnZhbGlkIix0KTt2YXIgZD1vPWM9bj1udWxsLGc9bnVsbCxTPW51bGw7Zm9yKGEgaW4gbClpZihsLmhhc093blByb3BlcnR5KGEpKXt2YXIgej1sW2FdO2lmKHohPW51bGwpc3dpdGNoKGEpe2Nhc2UibmFtZSI6bj16O2JyZWFrO2Nhc2UidHlwZSI6Yz16O2JyZWFrO2Nhc2UiY2hlY2tlZCI6Zz16O2JyZWFrO2Nhc2UiZGVmYXVsdENoZWNrZWQiOlM9ejticmVhaztjYXNlInZhbHVlIjpvPXo7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmQ9ejticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZih6IT1udWxsKXRocm93IEVycm9yKHMoMTM3LGUpKTticmVhaztkZWZhdWx0Ok50KHQsZSxhLHosbCxudWxsKX19UmEodCxvLGQsZyxTLGMsbiwhMSkscmUodCk7cmV0dXJuO2Nhc2Uic2VsZWN0Ijp2dCgiaW52YWxpZCIsdCksYT1jPW89bnVsbDtmb3IobiBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkobikmJihkPWxbbl0sZCE9bnVsbCkpc3dpdGNoKG4pe2Nhc2UidmFsdWUiOm89ZDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6Yz1kO2JyZWFrO2Nhc2UibXVsdGlwbGUiOmE9ZDtkZWZhdWx0Ok50KHQsZSxuLGQsbCxudWxsKX1lPW8sbD1jLHQubXVsdGlwbGU9ISFhLGUhPW51bGw/JGUodCwhIWEsZSwhMSk6bCE9bnVsbCYmJGUodCwhIWEsbCwhMCk7cmV0dXJuO2Nhc2UidGV4dGFyZWEiOnZ0KCJpbnZhbGlkIix0KSxvPW49YT1udWxsO2ZvcihjIGluIGwpaWYobC5oYXNPd25Qcm9wZXJ0eShjKSYmKGQ9bFtjXSxkIT1udWxsKSlzd2l0Y2goYyl7Y2FzZSJ2YWx1ZSI6YT1kO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpuPWQ7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6bz1kO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKGQhPW51bGwpdGhyb3cgRXJyb3Iocyg5MSkpO2JyZWFrO2RlZmF1bHQ6TnQodCxlLGMsZCxsLG51bGwpfU5hKHQsYSxuLG8pLHJlKHQpO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKGcgaW4gbClpZihsLmhhc093blByb3BlcnR5KGcpJiYoYT1sW2ddLGEhPW51bGwpKXN3aXRjaChnKXtjYXNlInNlbGVjdGVkIjp0LnNlbGVjdGVkPWEmJnR5cGVvZiBhIT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9InN5bWJvbCI7YnJlYWs7ZGVmYXVsdDpOdCh0LGUsZyxhLGwsbnVsbCl9cmV0dXJuO2Nhc2UiZGlhbG9nIjp2dCgiYmVmb3JldG9nZ2xlIix0KSx2dCgidG9nZ2xlIix0KSx2dCgiY2FuY2VsIix0KSx2dCgiY2xvc2UiLHQpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6dnQoImxvYWQiLHQpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihhPTA7YTxYby5sZW5ndGg7YSsrKXZ0KFhvW2FdLHQpO2JyZWFrO2Nhc2UiaW1hZ2UiOnZ0KCJlcnJvciIsdCksdnQoImxvYWQiLHQpO2JyZWFrO2Nhc2UiZGV0YWlscyI6dnQoInRvZ2dsZSIsdCk7YnJlYWs7Y2FzZSJlbWJlZCI6Y2FzZSJzb3VyY2UiOmNhc2UibGluayI6dnQoImVycm9yIix0KSx2dCgibG9hZCIsdCk7Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInRyYWNrIjpjYXNlIndiciI6Y2FzZSJtZW51aXRlbSI6Zm9yKFMgaW4gbClpZihsLmhhc093blByb3BlcnR5KFMpJiYoYT1sW1NdLGEhPW51bGwpKXN3aXRjaChTKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcihzKDEzNyxlKSk7ZGVmYXVsdDpOdCh0LGUsUyxhLGwsbnVsbCl9cmV0dXJuO2RlZmF1bHQ6aWYoT2EoZSkpe2Zvcih6IGluIGwpbC5oYXNPd25Qcm9wZXJ0eSh6KSYmKGE9bFt6XSxhIT09dm9pZCAwJiZrYyh0LGUseixhLGwsdm9pZCAwKSk7cmV0dXJufX1mb3IoZCBpbiBsKWwuaGFzT3duUHJvcGVydHkoZCkmJihhPWxbZF0sYSE9bnVsbCYmTnQodCxlLGQsYSxsLG51bGwpKX1mdW5jdGlvbiBaMSh0LGUsbCxhKXtzd2l0Y2goZSl7Y2FzZSJkaXYiOmNhc2Uic3BhbiI6Y2FzZSJzdmciOmNhc2UicGF0aCI6Y2FzZSJhIjpjYXNlImciOmNhc2UicCI6Y2FzZSJsaSI6YnJlYWs7Y2FzZSJpbnB1dCI6dmFyIG49bnVsbCxvPW51bGwsYz1udWxsLGQ9bnVsbCxnPW51bGwsUz1udWxsLHo9bnVsbDtmb3IoVCBpbiBsKXt2YXIgTz1sW1RdO2lmKGwuaGFzT3duUHJvcGVydHkoVCkmJk8hPW51bGwpc3dpdGNoKFQpe2Nhc2UiY2hlY2tlZCI6YnJlYWs7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmc9TztkZWZhdWx0OmEuaGFzT3duUHJvcGVydHkoVCl8fE50KHQsZSxULG51bGwsYSxPKX19Zm9yKHZhciBFIGluIGEpe3ZhciBUPWFbRV07aWYoTz1sW0VdLGEuaGFzT3duUHJvcGVydHkoRSkmJihUIT1udWxsfHxPIT1udWxsKSlzd2l0Y2goRSl7Y2FzZSJ0eXBlIjpvPVQ7YnJlYWs7Y2FzZSJuYW1lIjpuPVQ7YnJlYWs7Y2FzZSJjaGVja2VkIjpTPVQ7YnJlYWs7Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6ej1UO2JyZWFrO2Nhc2UidmFsdWUiOmM9VDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6ZD1UO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKFQhPW51bGwpdGhyb3cgRXJyb3IocygxMzcsZSkpO2JyZWFrO2RlZmF1bHQ6VCE9PU8mJk50KHQsZSxFLFQsYSxPKX19UWwodCxjLGQsZyxTLHosbyxuKTtyZXR1cm47Y2FzZSJzZWxlY3QiOlQ9Yz1kPUU9bnVsbDtmb3IobyBpbiBsKWlmKGc9bFtvXSxsLmhhc093blByb3BlcnR5KG8pJiZnIT1udWxsKXN3aXRjaChvKXtjYXNlInZhbHVlIjpicmVhaztjYXNlIm11bHRpcGxlIjpUPWc7ZGVmYXVsdDphLmhhc093blByb3BlcnR5KG8pfHxOdCh0LGUsbyxudWxsLGEsZyl9Zm9yKG4gaW4gYSlpZihvPWFbbl0sZz1sW25dLGEuaGFzT3duUHJvcGVydHkobikmJihvIT1udWxsfHxnIT1udWxsKSlzd2l0Y2gobil7Y2FzZSJ2YWx1ZSI6RT1vO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpkPW87YnJlYWs7Y2FzZSJtdWx0aXBsZSI6Yz1vO2RlZmF1bHQ6byE9PWcmJk50KHQsZSxuLG8sYSxnKX1lPWQsbD1jLGE9VCxFIT1udWxsPyRlKHQsISFsLEUsITEpOiEhYSE9ISFsJiYoZSE9bnVsbD8kZSh0LCEhbCxlLCEwKTokZSh0LCEhbCxsP1tdOiIiLCExKSk7cmV0dXJuO2Nhc2UidGV4dGFyZWEiOlQ9RT1udWxsO2ZvcihkIGluIGwpaWYobj1sW2RdLGwuaGFzT3duUHJvcGVydHkoZCkmJm4hPW51bGwmJiFhLmhhc093blByb3BlcnR5KGQpKXN3aXRjaChkKXtjYXNlInZhbHVlIjpicmVhaztjYXNlImNoaWxkcmVuIjpicmVhaztkZWZhdWx0Ok50KHQsZSxkLG51bGwsYSxuKX1mb3IoYyBpbiBhKWlmKG49YVtjXSxvPWxbY10sYS5oYXNPd25Qcm9wZXJ0eShjKSYmKG4hPW51bGx8fG8hPW51bGwpKXN3aXRjaChjKXtjYXNlInZhbHVlIjpFPW47YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOlQ9bjticmVhaztjYXNlImNoaWxkcmVuIjpicmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihuIT1udWxsKXRocm93IEVycm9yKHMoOTEpKTticmVhaztkZWZhdWx0Om4hPT1vJiZOdCh0LGUsYyxuLGEsbyl9emEodCxFLFQpO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKHZhciBsdCBpbiBsKWlmKEU9bFtsdF0sbC5oYXNPd25Qcm9wZXJ0eShsdCkmJkUhPW51bGwmJiFhLmhhc093blByb3BlcnR5KGx0KSlzd2l0Y2gobHQpe2Nhc2Uic2VsZWN0ZWQiOnQuc2VsZWN0ZWQ9ITE7YnJlYWs7ZGVmYXVsdDpOdCh0LGUsbHQsbnVsbCxhLEUpfWZvcihnIGluIGEpaWYoRT1hW2ddLFQ9bFtnXSxhLmhhc093blByb3BlcnR5KGcpJiZFIT09VCYmKEUhPW51bGx8fFQhPW51bGwpKXN3aXRjaChnKXtjYXNlInNlbGVjdGVkIjp0LnNlbGVjdGVkPUUmJnR5cGVvZiBFIT0iZnVuY3Rpb24iJiZ0eXBlb2YgRSE9InN5bWJvbCI7YnJlYWs7ZGVmYXVsdDpOdCh0LGUsZyxFLGEsVCl9cmV0dXJuO2Nhc2UiaW1nIjpjYXNlImxpbmsiOmNhc2UiYXJlYSI6Y2FzZSJiYXNlIjpjYXNlImJyIjpjYXNlImNvbCI6Y2FzZSJlbWJlZCI6Y2FzZSJociI6Y2FzZSJrZXlnZW4iOmNhc2UibWV0YSI6Y2FzZSJwYXJhbSI6Y2FzZSJzb3VyY2UiOmNhc2UidHJhY2siOmNhc2Uid2JyIjpjYXNlIm1lbnVpdGVtIjpmb3IodmFyIEkgaW4gbClFPWxbSV0sbC5oYXNPd25Qcm9wZXJ0eShJKSYmRSE9bnVsbCYmIWEuaGFzT3duUHJvcGVydHkoSSkmJk50KHQsZSxJLG51bGwsYSxFKTtmb3IoUyBpbiBhKWlmKEU9YVtTXSxUPWxbU10sYS5oYXNPd25Qcm9wZXJ0eShTKSYmRSE9PVQmJihFIT1udWxsfHxUIT1udWxsKSlzd2l0Y2goUyl7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoRSE9bnVsbCl0aHJvdyBFcnJvcihzKDEzNyxlKSk7YnJlYWs7ZGVmYXVsdDpOdCh0LGUsUyxFLGEsVCl9cmV0dXJuO2RlZmF1bHQ6aWYoT2EoZSkpe2Zvcih2YXIgX3QgaW4gbClFPWxbX3RdLGwuaGFzT3duUHJvcGVydHkoX3QpJiZFIT09dm9pZCAwJiYhYS5oYXNPd25Qcm9wZXJ0eShfdCkmJmtjKHQsZSxfdCx2b2lkIDAsYSxFKTtmb3IoeiBpbiBhKUU9YVt6XSxUPWxbel0sIWEuaGFzT3duUHJvcGVydHkoeil8fEU9PT1UfHxFPT09dm9pZCAwJiZUPT09dm9pZCAwfHxrYyh0LGUseixFLGEsVCk7cmV0dXJufX1mb3IodmFyIGIgaW4gbClFPWxbYl0sbC5oYXNPd25Qcm9wZXJ0eShiKSYmRSE9bnVsbCYmIWEuaGFzT3duUHJvcGVydHkoYikmJk50KHQsZSxiLG51bGwsYSxFKTtmb3IoTyBpbiBhKUU9YVtPXSxUPWxbT10sIWEuaGFzT3duUHJvcGVydHkoTyl8fEU9PT1UfHxFPT1udWxsJiZUPT1udWxsfHxOdCh0LGUsTyxFLGEsVCl9dmFyIE9jPW51bGwsamM9bnVsbDtmdW5jdGlvbiBocih0KXtyZXR1cm4gdC5ub2RlVHlwZT09PTk/dDp0Lm93bmVyRG9jdW1lbnR9ZnVuY3Rpb24gTGgodCl7c3dpdGNoKHQpe2Nhc2UiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOnJldHVybiAxO2Nhc2UiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gSGgodCxlKXtpZih0PT09MClzd2l0Y2goZSl7Y2FzZSJzdmciOnJldHVybiAxO2Nhc2UibWF0aCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH1yZXR1cm4gdD09PTEmJmU9PT0iZm9yZWlnbk9iamVjdCI/MDp0fWZ1bmN0aW9uIEJjKHQsZSl7cmV0dXJuIHQ9PT0idGV4dGFyZWEifHx0PT09Im5vc2NyaXB0Inx8dHlwZW9mIGUuY2hpbGRyZW49PSJzdHJpbmcifHx0eXBlb2YgZS5jaGlsZHJlbj09Im51bWJlciJ8fHR5cGVvZiBlLmNoaWxkcmVuPT0iYmlnaW50Inx8dHlwZW9mIGUuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9PSJvYmplY3QiJiZlLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT09bnVsbCYmZS5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwhPW51bGx9dmFyIExjPW51bGw7ZnVuY3Rpb24gUTEoKXt2YXIgdD13aW5kb3cuZXZlbnQ7cmV0dXJuIHQmJnQudHlwZT09PSJwb3BzdGF0ZSI/dD09PUxjPyExOihMYz10LCEwKTooTGM9bnVsbCwhMSl9dmFyIFVoPXR5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP3NldFRpbWVvdXQ6dm9pZCAwLEsxPXR5cGVvZiBjbGVhclRpbWVvdXQ9PSJmdW5jdGlvbiI/Y2xlYXJUaW1lb3V0OnZvaWQgMCxxaD10eXBlb2YgUHJvbWlzZT09ImZ1bmN0aW9uIj9Qcm9taXNlOnZvaWQgMCxQMT10eXBlb2YgcXVldWVNaWNyb3Rhc2s9PSJmdW5jdGlvbiI/cXVldWVNaWNyb3Rhc2s6dHlwZW9mIHFoPCJ1Ij9mdW5jdGlvbih0KXtyZXR1cm4gcWgucmVzb2x2ZShudWxsKS50aGVuKHQpLmNhdGNoKEoxKX06VWg7ZnVuY3Rpb24gSjEodCl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHR9KX1mdW5jdGlvbiBmYSh0KXtyZXR1cm4gdD09PSJoZWFkIn1mdW5jdGlvbiBHaCh0LGUpe3ZhciBsPWUsYT0wLG49MDtkb3t2YXIgbz1sLm5leHRTaWJsaW5nO2lmKHQucmVtb3ZlQ2hpbGQobCksbyYmby5ub2RlVHlwZT09PTgpaWYobD1vLmRhdGEsbD09PSIvJCIpe2lmKDA8YSYmOD5hKXtsPWE7dmFyIGM9dC5vd25lckRvY3VtZW50O2lmKGwmMSYmWm8oYy5kb2N1bWVudEVsZW1lbnQpLGwmMiYmWm8oYy5ib2R5KSxsJjQpZm9yKGw9Yy5oZWFkLFpvKGwpLGM9bC5maXJzdENoaWxkO2M7KXt2YXIgZD1jLm5leHRTaWJsaW5nLGc9Yy5ub2RlTmFtZTtjW0RhXXx8Zz09PSJTQ1JJUFQifHxnPT09IlNUWUxFInx8Zz09PSJMSU5LIiYmYy5yZWwudG9Mb3dlckNhc2UoKT09PSJzdHlsZXNoZWV0Inx8bC5yZW1vdmVDaGlsZChjKSxjPWR9fWlmKG49PT0wKXt0LnJlbW92ZUNoaWxkKG8pLElvKGUpO3JldHVybn1uLS19ZWxzZSBsPT09IiQifHxsPT09IiQ/Inx8bD09PSIkISI/bisrOmE9bC5jaGFyQ29kZUF0KDApLTQ4O2Vsc2UgYT0wO2w9b313aGlsZShsKTtJbyhlKX1mdW5jdGlvbiBIYyh0KXt2YXIgZT10LmZpcnN0Q2hpbGQ7Zm9yKGUmJmUubm9kZVR5cGU9PT0xMCYmKGU9ZS5uZXh0U2libGluZyk7ZTspe3ZhciBsPWU7c3dpdGNoKGU9ZS5uZXh0U2libGluZyxsLm5vZGVOYW1lKXtjYXNlIkhUTUwiOmNhc2UiSEVBRCI6Y2FzZSJCT0RZIjpIYyhsKSxubyhsKTtjb250aW51ZTtjYXNlIlNDUklQVCI6Y2FzZSJTVFlMRSI6Y29udGludWU7Y2FzZSJMSU5LIjppZihsLnJlbC50b0xvd2VyQ2FzZSgpPT09InN0eWxlc2hlZXQiKWNvbnRpbnVlfXQucmVtb3ZlQ2hpbGQobCl9fWZ1bmN0aW9uIFcxKHQsZSxsLGEpe2Zvcig7dC5ub2RlVHlwZT09PTE7KXt2YXIgbj1sO2lmKHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PWUudG9Mb3dlckNhc2UoKSl7aWYoIWEmJih0Lm5vZGVOYW1lIT09IklOUFVUInx8dC50eXBlIT09ImhpZGRlbiIpKWJyZWFrfWVsc2UgaWYoYSl7aWYoIXRbRGFdKXN3aXRjaChlKXtjYXNlIm1ldGEiOmlmKCF0Lmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSlicmVhaztyZXR1cm4gdDtjYXNlImxpbmsiOmlmKG89dC5nZXRBdHRyaWJ1dGUoInJlbCIpLG89PT0ic3R5bGVzaGVldCImJnQuaGFzQXR0cmlidXRlKCJkYXRhLXByZWNlZGVuY2UiKSlicmVhaztpZihvIT09bi5yZWx8fHQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0obi5ocmVmPT1udWxsfHxuLmhyZWY9PT0iIj9udWxsOm4uaHJlZil8fHQuZ2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIpIT09KG4uY3Jvc3NPcmlnaW49PW51bGw/bnVsbDpuLmNyb3NzT3JpZ2luKXx8dC5nZXRBdHRyaWJ1dGUoInRpdGxlIikhPT0obi50aXRsZT09bnVsbD9udWxsOm4udGl0bGUpKWJyZWFrO3JldHVybiB0O2Nhc2Uic3R5bGUiOmlmKHQuaGFzQXR0cmlidXRlKCJkYXRhLXByZWNlZGVuY2UiKSlicmVhaztyZXR1cm4gdDtjYXNlInNjcmlwdCI6aWYobz10LmdldEF0dHJpYnV0ZSgic3JjIiksKG8hPT0obi5zcmM9PW51bGw/bnVsbDpuLnNyYyl8fHQuZ2V0QXR0cmlidXRlKCJ0eXBlIikhPT0obi50eXBlPT1udWxsP251bGw6bi50eXBlKXx8dC5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0obi5jcm9zc09yaWdpbj09bnVsbD9udWxsOm4uY3Jvc3NPcmlnaW4pKSYmbyYmdC5oYXNBdHRyaWJ1dGUoImFzeW5jIikmJiF0Lmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSlicmVhaztyZXR1cm4gdDtkZWZhdWx0OnJldHVybiB0fX1lbHNlIGlmKGU9PT0iaW5wdXQiJiZ0LnR5cGU9PT0iaGlkZGVuIil7dmFyIG89bi5uYW1lPT1udWxsP251bGw6IiIrbi5uYW1lO2lmKG4udHlwZT09PSJoaWRkZW4iJiZ0LmdldEF0dHJpYnV0ZSgibmFtZSIpPT09bylyZXR1cm4gdH1lbHNlIHJldHVybiB0O2lmKHQ9bGwodC5uZXh0U2libGluZyksdD09PW51bGwpYnJlYWt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gJDEodCxlLGwpe2lmKGU9PT0iIilyZXR1cm4gbnVsbDtmb3IoO3Qubm9kZVR5cGUhPT0zOylpZigodC5ub2RlVHlwZSE9PTF8fHQubm9kZU5hbWUhPT0iSU5QVVQifHx0LnR5cGUhPT0iaGlkZGVuIikmJiFsfHwodD1sbCh0Lm5leHRTaWJsaW5nKSx0PT09bnVsbCkpcmV0dXJuIG51bGw7cmV0dXJuIHR9ZnVuY3Rpb24gVWModCl7cmV0dXJuIHQuZGF0YT09PSIkISJ8fHQuZGF0YT09PSIkPyImJnQub3duZXJEb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIn1mdW5jdGlvbiBGMSh0LGUpe3ZhciBsPXQub3duZXJEb2N1bWVudDtpZih0LmRhdGEhPT0iJD8ifHxsLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKWUoKTtlbHNle3ZhciBhPWZ1bmN0aW9uKCl7ZSgpLGwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsYSl9O2wuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsYSksdC5fcmVhY3RSZXRyeT1hfX1mdW5jdGlvbiBsbCh0KXtmb3IoO3QhPW51bGw7dD10Lm5leHRTaWJsaW5nKXt2YXIgZT10Lm5vZGVUeXBlO2lmKGU9PT0xfHxlPT09MylicmVhaztpZihlPT09OCl7aWYoZT10LmRhdGEsZT09PSIkInx8ZT09PSIkISJ8fGU9PT0iJD8ifHxlPT09IkYhInx8ZT09PSJGIilicmVhaztpZihlPT09Ii8kIilyZXR1cm4gbnVsbH19cmV0dXJuIHR9dmFyIHFjPW51bGw7ZnVuY3Rpb24gWWgodCl7dD10LnByZXZpb3VzU2libGluZztmb3IodmFyIGU9MDt0Oyl7aWYodC5ub2RlVHlwZT09PTgpe3ZhciBsPXQuZGF0YTtpZihsPT09IiQifHxsPT09IiQhInx8bD09PSIkPyIpe2lmKGU9PT0wKXJldHVybiB0O2UtLX1lbHNlIGw9PT0iLyQiJiZlKyt9dD10LnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH1mdW5jdGlvbiBYaCh0LGUsbCl7c3dpdGNoKGU9aHIobCksdCl7Y2FzZSJodG1sIjppZih0PWUuZG9jdW1lbnRFbGVtZW50LCF0KXRocm93IEVycm9yKHMoNDUyKSk7cmV0dXJuIHQ7Y2FzZSJoZWFkIjppZih0PWUuaGVhZCwhdCl0aHJvdyBFcnJvcihzKDQ1MykpO3JldHVybiB0O2Nhc2UiYm9keSI6aWYodD1lLmJvZHksIXQpdGhyb3cgRXJyb3Iocyg0NTQpKTtyZXR1cm4gdDtkZWZhdWx0OnRocm93IEVycm9yKHMoNDUxKSl9fWZ1bmN0aW9uIFpvKHQpe2Zvcih2YXIgZT10LmF0dHJpYnV0ZXM7ZS5sZW5ndGg7KXQucmVtb3ZlQXR0cmlidXRlTm9kZShlWzBdKTtubyh0KX12YXIgUWU9bmV3IE1hcCxWaD1uZXcgU2V0O2Z1bmN0aW9uIG1yKHQpe3JldHVybiB0eXBlb2YgdC5nZXRSb290Tm9kZT09ImZ1bmN0aW9uIj90LmdldFJvb3ROb2RlKCk6dC5ub2RlVHlwZT09PTk/dDp0Lm93bmVyRG9jdW1lbnR9dmFyIGpsPUcuZDtHLmQ9e2Y6STEscjp0cCxEOmVwLEM6bHAsTDphcCxtOm5wLFg6aXAsUzpvcCxNOnJwfTtmdW5jdGlvbiBJMSgpe3ZhciB0PWpsLmYoKSxlPW9yKCk7cmV0dXJuIHR8fGV9ZnVuY3Rpb24gdHAodCl7dmFyIGU9WGwodCk7ZSE9PW51bGwmJmUudGFnPT09NSYmZS50eXBlPT09ImZvcm0iP3VmKGUpOmpsLnIodCl9dmFyIFhuPXR5cGVvZiBkb2N1bWVudD4idSI/bnVsbDpkb2N1bWVudDtmdW5jdGlvbiBaaCh0LGUsbCl7dmFyIGE9WG47aWYoYSYmdHlwZW9mIGU9PSJzdHJpbmciJiZlKXt2YXIgbj1zZShlKTtuPSdsaW5rW3JlbD0iJyt0KyciXVtocmVmPSInK24rJyJdJyx0eXBlb2YgbD09InN0cmluZyImJihuKz0nW2Nyb3Nzb3JpZ2luPSInK2wrJyJdJyksVmguaGFzKG4pfHwoVmguYWRkKG4pLHQ9e3JlbDp0LGNyb3NzT3JpZ2luOmwsaHJlZjplfSxhLnF1ZXJ5U2VsZWN0b3Iobik9PT1udWxsJiYoZT1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxmZShlLCJsaW5rIix0KSxYdChlKSxhLmhlYWQuYXBwZW5kQ2hpbGQoZSkpKX19ZnVuY3Rpb24gZXAodCl7amwuRCh0KSxaaCgiZG5zLXByZWZldGNoIix0LG51bGwpfWZ1bmN0aW9uIGxwKHQsZSl7amwuQyh0LGUpLFpoKCJwcmVjb25uZWN0Iix0LGUpfWZ1bmN0aW9uIGFwKHQsZSxsKXtqbC5MKHQsZSxsKTt2YXIgYT1YbjtpZihhJiZ0JiZlKXt2YXIgbj0nbGlua1tyZWw9InByZWxvYWQiXVthcz0iJytzZShlKSsnIl0nO2U9PT0iaW1hZ2UiJiZsJiZsLmltYWdlU3JjU2V0PyhuKz0nW2ltYWdlc3Jjc2V0PSInK3NlKGwuaW1hZ2VTcmNTZXQpKyciXScsdHlwZW9mIGwuaW1hZ2VTaXplcz09InN0cmluZyImJihuKz0nW2ltYWdlc2l6ZXM9Iicrc2UobC5pbWFnZVNpemVzKSsnIl0nKSk6bis9J1tocmVmPSInK3NlKHQpKyciXSc7dmFyIG89bjtzd2l0Y2goZSl7Y2FzZSJzdHlsZSI6bz1Wbih0KTticmVhaztjYXNlInNjcmlwdCI6bz1abih0KX1RZS5oYXMobyl8fCh0PUQoe3JlbDoicHJlbG9hZCIsaHJlZjplPT09ImltYWdlIiYmbCYmbC5pbWFnZVNyY1NldD92b2lkIDA6dCxhczplfSxsKSxRZS5zZXQobyx0KSxhLnF1ZXJ5U2VsZWN0b3IobikhPT1udWxsfHxlPT09InN0eWxlIiYmYS5xdWVyeVNlbGVjdG9yKFFvKG8pKXx8ZT09PSJzY3JpcHQiJiZhLnF1ZXJ5U2VsZWN0b3IoS28obykpfHwoZT1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxmZShlLCJsaW5rIix0KSxYdChlKSxhLmhlYWQuYXBwZW5kQ2hpbGQoZSkpKX19ZnVuY3Rpb24gbnAodCxlKXtqbC5tKHQsZSk7dmFyIGw9WG47aWYobCYmdCl7dmFyIGE9ZSYmdHlwZW9mIGUuYXM9PSJzdHJpbmciP2UuYXM6InNjcmlwdCIsbj0nbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXVthcz0iJytzZShhKSsnIl1baHJlZj0iJytzZSh0KSsnIl0nLG89bjtzd2l0Y2goYSl7Y2FzZSJhdWRpb3dvcmtsZXQiOmNhc2UicGFpbnR3b3JrbGV0IjpjYXNlInNlcnZpY2V3b3JrZXIiOmNhc2Uic2hhcmVkd29ya2VyIjpjYXNlIndvcmtlciI6Y2FzZSJzY3JpcHQiOm89Wm4odCl9aWYoIVFlLmhhcyhvKSYmKHQ9RCh7cmVsOiJtb2R1bGVwcmVsb2FkIixocmVmOnR9LGUpLFFlLnNldChvLHQpLGwucXVlcnlTZWxlY3RvcihuKT09PW51bGwpKXtzd2l0Y2goYSl7Y2FzZSJhdWRpb3dvcmtsZXQiOmNhc2UicGFpbnR3b3JrbGV0IjpjYXNlInNlcnZpY2V3b3JrZXIiOmNhc2Uic2hhcmVkd29ya2VyIjpjYXNlIndvcmtlciI6Y2FzZSJzY3JpcHQiOmlmKGwucXVlcnlTZWxlY3RvcihLbyhvKSkpcmV0dXJufWE9bC5jcmVhdGVFbGVtZW50KCJsaW5rIiksZmUoYSwibGluayIsdCksWHQoYSksbC5oZWFkLmFwcGVuZENoaWxkKGEpfX19ZnVuY3Rpb24gb3AodCxlLGwpe2psLlModCxlLGwpO3ZhciBhPVhuO2lmKGEmJnQpe3ZhciBuPVZsKGEpLmhvaXN0YWJsZVN0eWxlcyxvPVZuKHQpO2U9ZXx8ImRlZmF1bHQiO3ZhciBjPW4uZ2V0KG8pO2lmKCFjKXt2YXIgZD17bG9hZGluZzowLHByZWxvYWQ6bnVsbH07aWYoYz1hLnF1ZXJ5U2VsZWN0b3IoUW8obykpKWQubG9hZGluZz01O2Vsc2V7dD1EKHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6dCwiZGF0YS1wcmVjZWRlbmNlIjplfSxsKSwobD1RZS5nZXQobykpJiZHYyh0LGwpO3ZhciBnPWM9YS5jcmVhdGVFbGVtZW50KCJsaW5rIik7WHQoZyksZmUoZywibGluayIsdCksZy5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihTLHope2cub25sb2FkPVMsZy5vbmVycm9yPXp9KSxnLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7ZC5sb2FkaW5nfD0xfSksZy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oKXtkLmxvYWRpbmd8PTJ9KSxkLmxvYWRpbmd8PTQsZ3IoYyxlLGEpfWM9e3R5cGU6InN0eWxlc2hlZXQiLGluc3RhbmNlOmMsY291bnQ6MSxzdGF0ZTpkfSxuLnNldChvLGMpfX19ZnVuY3Rpb24gaXAodCxlKXtqbC5YKHQsZSk7dmFyIGw9WG47aWYobCYmdCl7dmFyIGE9VmwobCkuaG9pc3RhYmxlU2NyaXB0cyxuPVpuKHQpLG89YS5nZXQobik7b3x8KG89bC5xdWVyeVNlbGVjdG9yKEtvKG4pKSxvfHwodD1EKHtzcmM6dCxhc3luYzohMH0sZSksKGU9UWUuZ2V0KG4pKSYmWWModCxlKSxvPWwuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksWHQobyksZmUobywibGluayIsdCksbC5oZWFkLmFwcGVuZENoaWxkKG8pKSxvPXt0eXBlOiJzY3JpcHQiLGluc3RhbmNlOm8sY291bnQ6MSxzdGF0ZTpudWxsfSxhLnNldChuLG8pKX19ZnVuY3Rpb24gcnAodCxlKXtqbC5NKHQsZSk7dmFyIGw9WG47aWYobCYmdCl7dmFyIGE9VmwobCkuaG9pc3RhYmxlU2NyaXB0cyxuPVpuKHQpLG89YS5nZXQobik7b3x8KG89bC5xdWVyeVNlbGVjdG9yKEtvKG4pKSxvfHwodD1EKHtzcmM6dCxhc3luYzohMCx0eXBlOiJtb2R1bGUifSxlKSwoZT1RZS5nZXQobikpJiZZYyh0LGUpLG89bC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxYdChvKSxmZShvLCJsaW5rIix0KSxsLmhlYWQuYXBwZW5kQ2hpbGQobykpLG89e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOm51bGx9LGEuc2V0KG4sbykpfX1mdW5jdGlvbiBRaCh0LGUsbCxhKXt2YXIgbj0obj10dC5jdXJyZW50KT9tcihuKTpudWxsO2lmKCFuKXRocm93IEVycm9yKHMoNDQ2KSk7c3dpdGNoKHQpe2Nhc2UibWV0YSI6Y2FzZSJ0aXRsZSI6cmV0dXJuIG51bGw7Y2FzZSJzdHlsZSI6cmV0dXJuIHR5cGVvZiBsLnByZWNlZGVuY2U9PSJzdHJpbmciJiZ0eXBlb2YgbC5ocmVmPT0ic3RyaW5nIj8oZT1WbihsLmhyZWYpLGw9VmwobikuaG9pc3RhYmxlU3R5bGVzLGE9bC5nZXQoZSksYXx8KGE9e3R5cGU6InN0eWxlIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH0sbC5zZXQoZSxhKSksYSk6e3R5cGU6InZvaWQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtjYXNlImxpbmsiOmlmKGwucmVsPT09InN0eWxlc2hlZXQiJiZ0eXBlb2YgbC5ocmVmPT0ic3RyaW5nIiYmdHlwZW9mIGwucHJlY2VkZW5jZT09InN0cmluZyIpe3Q9Vm4obC5ocmVmKTt2YXIgbz1WbChuKS5ob2lzdGFibGVTdHlsZXMsYz1vLmdldCh0KTtpZihjfHwobj1uLm93bmVyRG9jdW1lbnR8fG4sYz17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOntsb2FkaW5nOjAscHJlbG9hZDpudWxsfX0sby5zZXQodCxjKSwobz1uLnF1ZXJ5U2VsZWN0b3IoUW8odCkpKSYmIW8uX3AmJihjLmluc3RhbmNlPW8sYy5zdGF0ZS5sb2FkaW5nPTUpLFFlLmhhcyh0KXx8KGw9e3JlbDoicHJlbG9hZCIsYXM6InN0eWxlIixocmVmOmwuaHJlZixjcm9zc09yaWdpbjpsLmNyb3NzT3JpZ2luLGludGVncml0eTpsLmludGVncml0eSxtZWRpYTpsLm1lZGlhLGhyZWZMYW5nOmwuaHJlZkxhbmcscmVmZXJyZXJQb2xpY3k6bC5yZWZlcnJlclBvbGljeX0sUWUuc2V0KHQsbCksb3x8c3Aobix0LGwsYy5zdGF0ZSkpKSxlJiZhPT09bnVsbCl0aHJvdyBFcnJvcihzKDUyOCwiIikpO3JldHVybiBjfWlmKGUmJmEhPT1udWxsKXRocm93IEVycm9yKHMoNTI5LCIiKSk7cmV0dXJuIG51bGw7Y2FzZSJzY3JpcHQiOnJldHVybiBlPWwuYXN5bmMsbD1sLnNyYyx0eXBlb2YgbD09InN0cmluZyImJmUmJnR5cGVvZiBlIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZSE9InN5bWJvbCI/KGU9Wm4obCksbD1WbChuKS5ob2lzdGFibGVTY3JpcHRzLGE9bC5nZXQoZSksYXx8KGE9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LGwuc2V0KGUsYSkpLGEpOnt0eXBlOiJ2b2lkIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ0NCx0KSl9fWZ1bmN0aW9uIFZuKHQpe3JldHVybidocmVmPSInK3NlKHQpKyciJ31mdW5jdGlvbiBRbyh0KXtyZXR1cm4nbGlua1tyZWw9InN0eWxlc2hlZXQiXVsnK3QrIl0ifWZ1bmN0aW9uIEtoKHQpe3JldHVybiBEKHt9LHQseyJkYXRhLXByZWNlZGVuY2UiOnQucHJlY2VkZW5jZSxwcmVjZWRlbmNlOm51bGx9KX1mdW5jdGlvbiBzcCh0LGUsbCxhKXt0LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPSJwcmVsb2FkIl1bYXM9InN0eWxlIl1bJytlKyJdIik/YS5sb2FkaW5nPTE6KGU9dC5jcmVhdGVFbGVtZW50KCJsaW5rIiksYS5wcmVsb2FkPWUsZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3JldHVybiBhLmxvYWRpbmd8PTF9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe3JldHVybiBhLmxvYWRpbmd8PTJ9KSxmZShlLCJsaW5rIixsKSxYdChlKSx0LmhlYWQuYXBwZW5kQ2hpbGQoZSkpfWZ1bmN0aW9uIFpuKHQpe3JldHVybidbc3JjPSInK3NlKHQpKyciXSd9ZnVuY3Rpb24gS28odCl7cmV0dXJuInNjcmlwdFthc3luY10iK3R9ZnVuY3Rpb24gUGgodCxlLGwpe2lmKGUuY291bnQrKyxlLmluc3RhbmNlPT09bnVsbClzd2l0Y2goZS50eXBlKXtjYXNlInN0eWxlIjp2YXIgYT10LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtaHJlZn49Iicrc2UobC5ocmVmKSsnIl0nKTtpZihhKXJldHVybiBlLmluc3RhbmNlPWEsWHQoYSksYTt2YXIgbj1EKHt9LGwseyJkYXRhLWhyZWYiOmwuaHJlZiwiZGF0YS1wcmVjZWRlbmNlIjpsLnByZWNlZGVuY2UsaHJlZjpudWxsLHByZWNlZGVuY2U6bnVsbH0pO3JldHVybiBhPSh0Lm93bmVyRG9jdW1lbnR8fHQpLmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksWHQoYSksZmUoYSwic3R5bGUiLG4pLGdyKGEsbC5wcmVjZWRlbmNlLHQpLGUuaW5zdGFuY2U9YTtjYXNlInN0eWxlc2hlZXQiOm49Vm4obC5ocmVmKTt2YXIgbz10LnF1ZXJ5U2VsZWN0b3IoUW8obikpO2lmKG8pcmV0dXJuIGUuc3RhdGUubG9hZGluZ3w9NCxlLmluc3RhbmNlPW8sWHQobyksbzthPUtoKGwpLChuPVFlLmdldChuKSkmJkdjKGEsbiksbz0odC5vd25lckRvY3VtZW50fHx0KS5jcmVhdGVFbGVtZW50KCJsaW5rIiksWHQobyk7dmFyIGM9bztyZXR1cm4gYy5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihkLGcpe2Mub25sb2FkPWQsYy5vbmVycm9yPWd9KSxmZShvLCJsaW5rIixhKSxlLnN0YXRlLmxvYWRpbmd8PTQsZ3IobyxsLnByZWNlZGVuY2UsdCksZS5pbnN0YW5jZT1vO2Nhc2Uic2NyaXB0IjpyZXR1cm4gbz1abihsLnNyYyksKG49dC5xdWVyeVNlbGVjdG9yKEtvKG8pKSk/KGUuaW5zdGFuY2U9bixYdChuKSxuKTooYT1sLChuPVFlLmdldChvKSkmJihhPUQoe30sbCksWWMoYSxuKSksdD10Lm93bmVyRG9jdW1lbnR8fHQsbj10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLFh0KG4pLGZlKG4sImxpbmsiLGEpLHQuaGVhZC5hcHBlbmRDaGlsZChuKSxlLmluc3RhbmNlPW4pO2Nhc2Uidm9pZCI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ0MyxlLnR5cGUpKX1lbHNlIGUudHlwZT09PSJzdHlsZXNoZWV0IiYmKGUuc3RhdGUubG9hZGluZyY0KT09PTAmJihhPWUuaW5zdGFuY2UsZS5zdGF0ZS5sb2FkaW5nfD00LGdyKGEsbC5wcmVjZWRlbmNlLHQpKTtyZXR1cm4gZS5pbnN0YW5jZX1mdW5jdGlvbiBncih0LGUsbCl7Zm9yKHZhciBhPWwucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxuPWEubGVuZ3RoP2FbYS5sZW5ndGgtMV06bnVsbCxvPW4sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdO2lmKGQuZGF0YXNldC5wcmVjZWRlbmNlPT09ZSlvPWQ7ZWxzZSBpZihvIT09bilicmVha31vP28ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxvLm5leHRTaWJsaW5nKTooZT1sLm5vZGVUeXBlPT09OT9sLmhlYWQ6bCxlLmluc2VydEJlZm9yZSh0LGUuZmlyc3RDaGlsZCkpfWZ1bmN0aW9uIEdjKHQsZSl7dC5jcm9zc09yaWdpbj09bnVsbCYmKHQuY3Jvc3NPcmlnaW49ZS5jcm9zc09yaWdpbiksdC5yZWZlcnJlclBvbGljeT09bnVsbCYmKHQucmVmZXJyZXJQb2xpY3k9ZS5yZWZlcnJlclBvbGljeSksdC50aXRsZT09bnVsbCYmKHQudGl0bGU9ZS50aXRsZSl9ZnVuY3Rpb24gWWModCxlKXt0LmNyb3NzT3JpZ2luPT1udWxsJiYodC5jcm9zc09yaWdpbj1lLmNyb3NzT3JpZ2luKSx0LnJlZmVycmVyUG9saWN5PT1udWxsJiYodC5yZWZlcnJlclBvbGljeT1lLnJlZmVycmVyUG9saWN5KSx0LmludGVncml0eT09bnVsbCYmKHQuaW50ZWdyaXR5PWUuaW50ZWdyaXR5KX12YXIgcHI9bnVsbDtmdW5jdGlvbiBKaCh0LGUsbCl7aWYocHI9PT1udWxsKXt2YXIgYT1uZXcgTWFwLG49cHI9bmV3IE1hcDtuLnNldChsLGEpfWVsc2Ugbj1wcixhPW4uZ2V0KGwpLGF8fChhPW5ldyBNYXAsbi5zZXQobCxhKSk7aWYoYS5oYXModCkpcmV0dXJuIGE7Zm9yKGEuc2V0KHQsbnVsbCksbD1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpLG49MDtuPGwubGVuZ3RoO24rKyl7dmFyIG89bFtuXTtpZighKG9bRGFdfHxvW3RlXXx8dD09PSJsaW5rIiYmby5nZXRBdHRyaWJ1dGUoInJlbCIpPT09InN0eWxlc2hlZXQiKSYmby5uYW1lc3BhY2VVUkkhPT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKXt2YXIgYz1vLmdldEF0dHJpYnV0ZShlKXx8IiI7Yz10K2M7dmFyIGQ9YS5nZXQoYyk7ZD9kLnB1c2gobyk6YS5zZXQoYyxbb10pfX1yZXR1cm4gYX1mdW5jdGlvbiBXaCh0LGUsbCl7dD10Lm93bmVyRG9jdW1lbnR8fHQsdC5oZWFkLmluc2VydEJlZm9yZShsLGU9PT0idGl0bGUiP3QucXVlcnlTZWxlY3RvcigiaGVhZCA+IHRpdGxlIik6bnVsbCl9ZnVuY3Rpb24gY3AodCxlLGwpe2lmKGw9PT0xfHxlLml0ZW1Qcm9wIT1udWxsKXJldHVybiExO3N3aXRjaCh0KXtjYXNlIm1ldGEiOmNhc2UidGl0bGUiOnJldHVybiEwO2Nhc2Uic3R5bGUiOmlmKHR5cGVvZiBlLnByZWNlZGVuY2UhPSJzdHJpbmcifHx0eXBlb2YgZS5ocmVmIT0ic3RyaW5nInx8ZS5ocmVmPT09IiIpYnJlYWs7cmV0dXJuITA7Y2FzZSJsaW5rIjppZih0eXBlb2YgZS5yZWwhPSJzdHJpbmcifHx0eXBlb2YgZS5ocmVmIT0ic3RyaW5nInx8ZS5ocmVmPT09IiJ8fGUub25Mb2FkfHxlLm9uRXJyb3IpYnJlYWs7c3dpdGNoKGUucmVsKXtjYXNlInN0eWxlc2hlZXQiOnJldHVybiB0PWUuZGlzYWJsZWQsdHlwZW9mIGUucHJlY2VkZW5jZT09InN0cmluZyImJnQ9PW51bGw7ZGVmYXVsdDpyZXR1cm4hMH1jYXNlInNjcmlwdCI6aWYoZS5hc3luYyYmdHlwZW9mIGUuYXN5bmMhPSJmdW5jdGlvbiImJnR5cGVvZiBlLmFzeW5jIT0ic3ltYm9sIiYmIWUub25Mb2FkJiYhZS5vbkVycm9yJiZlLnNyYyYmdHlwZW9mIGUuc3JjPT0ic3RyaW5nIilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiAkaCh0KXtyZXR1cm4hKHQudHlwZT09PSJzdHlsZXNoZWV0IiYmKHQuc3RhdGUubG9hZGluZyYzKT09PTApfXZhciBQbz1udWxsO2Z1bmN0aW9uIHVwKCl7fWZ1bmN0aW9uIGRwKHQsZSxsKXtpZihQbz09PW51bGwpdGhyb3cgRXJyb3Iocyg0NzUpKTt2YXIgYT1QbztpZihlLnR5cGU9PT0ic3R5bGVzaGVldCImJih0eXBlb2YgbC5tZWRpYSE9InN0cmluZyJ8fG1hdGNoTWVkaWEobC5tZWRpYSkubWF0Y2hlcyE9PSExKSYmKGUuc3RhdGUubG9hZGluZyY0KT09PTApe2lmKGUuaW5zdGFuY2U9PT1udWxsKXt2YXIgbj1WbihsLmhyZWYpLG89dC5xdWVyeVNlbGVjdG9yKFFvKG4pKTtpZihvKXt0PW8uX3AsdCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIiYmKGEuY291bnQrKyxhPXlyLmJpbmQoYSksdC50aGVuKGEsYSkpLGUuc3RhdGUubG9hZGluZ3w9NCxlLmluc3RhbmNlPW8sWHQobyk7cmV0dXJufW89dC5vd25lckRvY3VtZW50fHx0LGw9S2gobCksKG49UWUuZ2V0KG4pKSYmR2MobCxuKSxvPW8uY3JlYXRlRWxlbWVudCgibGluayIpLFh0KG8pO3ZhciBjPW87Yy5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihkLGcpe2Mub25sb2FkPWQsYy5vbmVycm9yPWd9KSxmZShvLCJsaW5rIixsKSxlLmluc3RhbmNlPW99YS5zdHlsZXNoZWV0cz09PW51bGwmJihhLnN0eWxlc2hlZXRzPW5ldyBNYXApLGEuc3R5bGVzaGVldHMuc2V0KGUsdCksKHQ9ZS5zdGF0ZS5wcmVsb2FkKSYmKGUuc3RhdGUubG9hZGluZyYzKT09PTAmJihhLmNvdW50KyssZT15ci5iaW5kKGEpLHQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZSksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZSkpfX1mdW5jdGlvbiBmcCgpe2lmKFBvPT09bnVsbCl0aHJvdyBFcnJvcihzKDQ3NSkpO3ZhciB0PVBvO3JldHVybiB0LnN0eWxlc2hlZXRzJiZ0LmNvdW50PT09MCYmWGModCx0LnN0eWxlc2hlZXRzKSwwPHQuY291bnQ/ZnVuY3Rpb24oZSl7dmFyIGw9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHQuc3R5bGVzaGVldHMmJlhjKHQsdC5zdHlsZXNoZWV0cyksdC51bnN1c3BlbmQpe3ZhciBhPXQudW5zdXNwZW5kO3QudW5zdXNwZW5kPW51bGwsYSgpfX0sNmU0KTtyZXR1cm4gdC51bnN1c3BlbmQ9ZSxmdW5jdGlvbigpe3QudW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KGwpfX06bnVsbH1mdW5jdGlvbiB5cigpe2lmKHRoaXMuY291bnQtLSx0aGlzLmNvdW50PT09MCl7aWYodGhpcy5zdHlsZXNoZWV0cylYYyh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciB0PXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsdCgpfX19dmFyIHZyPW51bGw7ZnVuY3Rpb24gWGModCxlKXt0LnN0eWxlc2hlZXRzPW51bGwsdC51bnN1c3BlbmQhPT1udWxsJiYodC5jb3VudCsrLHZyPW5ldyBNYXAsZS5mb3JFYWNoKGhwLHQpLHZyPW51bGwseXIuY2FsbCh0KSl9ZnVuY3Rpb24gaHAodCxlKXtpZighKGUuc3RhdGUubG9hZGluZyY0KSl7dmFyIGw9dnIuZ2V0KHQpO2lmKGwpdmFyIGE9bC5nZXQobnVsbCk7ZWxzZXtsPW5ldyBNYXAsdnIuc2V0KHQsbCk7Zm9yKHZhciBuPXQucXVlcnlTZWxlY3RvckFsbCgibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iKSxvPTA7bzxuLmxlbmd0aDtvKyspe3ZhciBjPW5bb107KGMubm9kZU5hbWU9PT0iTElOSyJ8fGMuZ2V0QXR0cmlidXRlKCJtZWRpYSIpIT09Im5vdCBhbGwiKSYmKGwuc2V0KGMuZGF0YXNldC5wcmVjZWRlbmNlLGMpLGE9Yyl9YSYmbC5zZXQobnVsbCxhKX1uPWUuaW5zdGFuY2UsYz1uLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIiksbz1sLmdldChjKXx8YSxvPT09YSYmbC5zZXQobnVsbCxuKSxsLnNldChjLG4pLHRoaXMuY291bnQrKyxhPXlyLmJpbmQodGhpcyksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhKSxuLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixhKSxvP28ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixvLm5leHRTaWJsaW5nKToodD10Lm5vZGVUeXBlPT09OT90LmhlYWQ6dCx0Lmluc2VydEJlZm9yZShuLHQuZmlyc3RDaGlsZCkpLGUuc3RhdGUubG9hZGluZ3w9NH19dmFyIEpvPXskJHR5cGVvZjprLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfY3VycmVudFZhbHVlOkIsX2N1cnJlbnRWYWx1ZTI6QixfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gbXAodCxlLGwsYSxuLG8sYyxkKXt0aGlzLnRhZz0xLHRoaXMuY29udGFpbmVySW5mbz10LHRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLm5leHQ9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9dGhpcy5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5leHBpcmF0aW9uVGltZXM9dG8oLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyPXRoaXMuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy53YXJtTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPXRvKDApLHRoaXMuaGlkZGVuVXBkYXRlcz10byhudWxsKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9YSx0aGlzLm9uVW5jYXVnaHRFcnJvcj1uLHRoaXMub25DYXVnaHRFcnJvcj1vLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPWMsdGhpcy5wb29sZWRDYWNoZT1udWxsLHRoaXMucG9vbGVkQ2FjaGVMYW5lcz0wLHRoaXMuZm9ybVN0YXRlPWQsdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnM9bmV3IE1hcH1mdW5jdGlvbiBGaCh0LGUsbCxhLG4sbyxjLGQsZyxTLHosTyl7cmV0dXJuIHQ9bmV3IG1wKHQsZSxsLGMsZCxnLFMsTyksZT0xLG89PT0hMCYmKGV8PTI0KSxvPXplKDMsbnVsbCxudWxsLGUpLHQuY3VycmVudD1vLG8uc3RhdGVOb2RlPXQsZT1FcygpLGUucmVmQ291bnQrKyx0LnBvb2xlZENhY2hlPWUsZS5yZWZDb3VudCsrLG8ubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDphLGlzRGVoeWRyYXRlZDpsLGNhY2hlOmV9LEFzKG8pLHR9ZnVuY3Rpb24gSWgodCl7cmV0dXJuIHQ/KHQ9U24sdCk6U259ZnVuY3Rpb24gdG0odCxlLGwsYSxuLG8pe249SWgobiksYS5jb250ZXh0PT09bnVsbD9hLmNvbnRleHQ9bjphLnBlbmRpbmdDb250ZXh0PW4sYT1JbChlKSxhLnBheWxvYWQ9e2VsZW1lbnQ6bH0sbz1vPT09dm9pZCAwP251bGw6byxvIT09bnVsbCYmKGEuY2FsbGJhY2s9byksbD10YSh0LGEsZSksbCE9PW51bGwmJihqZShsLHQsZSksVG8obCx0LGUpKX1mdW5jdGlvbiBlbSh0LGUpe2lmKHQ9dC5tZW1vaXplZFN0YXRlLHQhPT1udWxsJiZ0LmRlaHlkcmF0ZWQhPT1udWxsKXt2YXIgbD10LnJldHJ5TGFuZTt0LnJldHJ5TGFuZT1sIT09MCYmbDxlP2w6ZX19ZnVuY3Rpb24gVmModCxlKXtlbSh0LGUpLCh0PXQuYWx0ZXJuYXRlKSYmZW0odCxlKX1mdW5jdGlvbiBsbSh0KXtpZih0LnRhZz09PTEzKXt2YXIgZT13bih0LDY3MTA4ODY0KTtlIT09bnVsbCYmamUoZSx0LDY3MTA4ODY0KSxWYyh0LDY3MTA4ODY0KX19dmFyIGJyPSEwO2Z1bmN0aW9uIGdwKHQsZSxsLGEpe3ZhciBuPUEuVDtBLlQ9bnVsbDt2YXIgbz1HLnA7dHJ5e0cucD0yLFpjKHQsZSxsLGEpfWZpbmFsbHl7Ry5wPW8sQS5UPW59fWZ1bmN0aW9uIHBwKHQsZSxsLGEpe3ZhciBuPUEuVDtBLlQ9bnVsbDt2YXIgbz1HLnA7dHJ5e0cucD04LFpjKHQsZSxsLGEpfWZpbmFsbHl7Ry5wPW8sQS5UPW59fWZ1bmN0aW9uIFpjKHQsZSxsLGEpe2lmKGJyKXt2YXIgbj1RYyhhKTtpZihuPT09bnVsbClfYyh0LGUsYSx4cixsKSxubSh0LGEpO2Vsc2UgaWYodnAobix0LGUsbCxhKSlhLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYobm0odCxhKSxlJjQmJi0xPHlwLmluZGV4T2YodCkpe2Zvcig7biE9PW51bGw7KXt2YXIgbz1YbChuKTtpZihvIT09bnVsbClzd2l0Y2goby50YWcpe2Nhc2UgMzppZihvPW8uc3RhdGVOb2RlLG8uY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dmFyIGM9eWwoby5wZW5kaW5nTGFuZXMpO2lmKGMhPT0wKXt2YXIgZD1vO2ZvcihkLnBlbmRpbmdMYW5lc3w9MixkLmVudGFuZ2xlZExhbmVzfD0yO2M7KXt2YXIgZz0xPDwzMS1XdChjKTtkLmVudGFuZ2xlbWVudHNbMV18PWcsYyY9fmd9aGwobyksKEF0JjYpPT09MCYmKGFyPWdlKCkrNTAwLFlvKDApKX19YnJlYWs7Y2FzZSAxMzpkPXduKG8sMiksZCE9PW51bGwmJmplKGQsbywyKSxvcigpLFZjKG8sMil9aWYobz1RYyhhKSxvPT09bnVsbCYmX2ModCxlLGEseHIsbCksbz09PW4pYnJlYWs7bj1vfW4hPT1udWxsJiZhLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgX2ModCxlLGEsbnVsbCxsKX19ZnVuY3Rpb24gUWModCl7cmV0dXJuIHQ9aG4odCksS2ModCl9dmFyIHhyPW51bGw7ZnVuY3Rpb24gS2ModCl7aWYoeHI9bnVsbCx0PVlsKHQpLHQhPT1udWxsKXt2YXIgZT1tKHQpO2lmKGU9PT1udWxsKXQ9bnVsbDtlbHNle3ZhciBsPWUudGFnO2lmKGw9PT0xMyl7aWYodD14KGUpLHQhPT1udWxsKXJldHVybiB0O3Q9bnVsbH1lbHNlIGlmKGw9PT0zKXtpZihlLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiBlLnRhZz09PTM/ZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3Q9bnVsbH1lbHNlIGUhPT10JiYodD1udWxsKX19cmV0dXJuIHhyPXQsbnVsbH1mdW5jdGlvbiBhbSh0KXtzd2l0Y2godCl7Y2FzZSJiZWZvcmV0b2dnbGUiOmNhc2UiY2FuY2VsIjpjYXNlImNsaWNrIjpjYXNlImNsb3NlIjpjYXNlImNvbnRleHRtZW51IjpjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmNhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6Y2FzZSJpbnB1dCI6Y2FzZSJpbnZhbGlkIjpjYXNlImtleWRvd24iOmNhc2Uia2V5cHJlc3MiOmNhc2Uia2V5dXAiOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNldXAiOmNhc2UicGFzdGUiOmNhc2UicGF1c2UiOmNhc2UicGxheSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJyYXRlY2hhbmdlIjpjYXNlInJlc2V0IjpjYXNlInJlc2l6ZSI6Y2FzZSJzZWVrZWQiOmNhc2Uic3VibWl0IjpjYXNlInRvZ2dsZSI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDI7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2Uid2hlZWwiOmNhc2UibW91c2VlbnRlciI6Y2FzZSJtb3VzZWxlYXZlIjpjYXNlInBvaW50ZXJlbnRlciI6Y2FzZSJwb2ludGVybGVhdmUiOnJldHVybiA4O2Nhc2UibWVzc2FnZSI6c3dpdGNoKHJpKCkpe2Nhc2UgSGw6cmV0dXJuIDI7Y2FzZSAkbjpyZXR1cm4gODtjYXNlIG5sOmNhc2Ugc2k6cmV0dXJuIDMyO2Nhc2UgVWw6cmV0dXJuIDI2ODQzNTQ1NjtkZWZhdWx0OnJldHVybiAzMn1kZWZhdWx0OnJldHVybiAzMn19dmFyIFBjPSExLGhhPW51bGwsbWE9bnVsbCxnYT1udWxsLFdvPW5ldyBNYXAsJG89bmV3IE1hcCxwYT1bXSx5cD0ibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIG5tKHQsZSl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6aGE9bnVsbDticmVhaztjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnbGVhdmUiOm1hPW51bGw7YnJlYWs7Y2FzZSJtb3VzZW92ZXIiOmNhc2UibW91c2VvdXQiOmdhPW51bGw7YnJlYWs7Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVyb3V0IjpXby5kZWxldGUoZS5wb2ludGVySWQpO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjokby5kZWxldGUoZS5wb2ludGVySWQpfX1mdW5jdGlvbiBGbyh0LGUsbCxhLG4sbyl7cmV0dXJuIHQ9PT1udWxsfHx0Lm5hdGl2ZUV2ZW50IT09bz8odD17YmxvY2tlZE9uOmUsZG9tRXZlbnROYW1lOmwsZXZlbnRTeXN0ZW1GbGFnczphLG5hdGl2ZUV2ZW50Om8sdGFyZ2V0Q29udGFpbmVyczpbbl19LGUhPT1udWxsJiYoZT1YbChlKSxlIT09bnVsbCYmbG0oZSkpLHQpOih0LmV2ZW50U3lzdGVtRmxhZ3N8PWEsZT10LnRhcmdldENvbnRhaW5lcnMsbiE9PW51bGwmJmUuaW5kZXhPZihuKT09PS0xJiZlLnB1c2gobiksdCl9ZnVuY3Rpb24gdnAodCxlLGwsYSxuKXtzd2l0Y2goZSl7Y2FzZSJmb2N1c2luIjpyZXR1cm4gaGE9Rm8oaGEsdCxlLGwsYSxuKSwhMDtjYXNlImRyYWdlbnRlciI6cmV0dXJuIG1hPUZvKG1hLHQsZSxsLGEsbiksITA7Y2FzZSJtb3VzZW92ZXIiOnJldHVybiBnYT1GbyhnYSx0LGUsbCxhLG4pLCEwO2Nhc2UicG9pbnRlcm92ZXIiOnZhciBvPW4ucG9pbnRlcklkO3JldHVybiBXby5zZXQobyxGbyhXby5nZXQobyl8fG51bGwsdCxlLGwsYSxuKSksITA7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6cmV0dXJuIG89bi5wb2ludGVySWQsJG8uc2V0KG8sRm8oJG8uZ2V0KG8pfHxudWxsLHQsZSxsLGEsbikpLCEwfXJldHVybiExfWZ1bmN0aW9uIG9tKHQpe3ZhciBlPVlsKHQudGFyZ2V0KTtpZihlIT09bnVsbCl7dmFyIGw9bShlKTtpZihsIT09bnVsbCl7aWYoZT1sLnRhZyxlPT09MTMpe2lmKGU9eChsKSxlIT09bnVsbCl7dC5ibG9ja2VkT249ZSxJcih0LnByaW9yaXR5LGZ1bmN0aW9uKCl7aWYobC50YWc9PT0xMyl7dmFyIGE9T2UoKTthPWVvKGEpO3ZhciBuPXduKGwsYSk7biE9PW51bGwmJmplKG4sbCxhKSxWYyhsLGEpfX0pO3JldHVybn19ZWxzZSBpZihlPT09MyYmbC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dC5ibG9ja2VkT249bC50YWc9PT0zP2wuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fX10LmJsb2NrZWRPbj1udWxsfWZ1bmN0aW9uIHdyKHQpe2lmKHQuYmxvY2tlZE9uIT09bnVsbClyZXR1cm4hMTtmb3IodmFyIGU9dC50YXJnZXRDb250YWluZXJzOzA8ZS5sZW5ndGg7KXt2YXIgbD1RYyh0Lm5hdGl2ZUV2ZW50KTtpZihsPT09bnVsbCl7bD10Lm5hdGl2ZUV2ZW50O3ZhciBhPW5ldyBsLmNvbnN0cnVjdG9yKGwudHlwZSxsKTtmbj1hLGwudGFyZ2V0LmRpc3BhdGNoRXZlbnQoYSksZm49bnVsbH1lbHNlIHJldHVybiBlPVhsKGwpLGUhPT1udWxsJiZsbShlKSx0LmJsb2NrZWRPbj1sLCExO2Uuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBpbSh0LGUsbCl7d3IodCkmJmwuZGVsZXRlKGUpfWZ1bmN0aW9uIGJwKCl7UGM9ITEsaGEhPT1udWxsJiZ3cihoYSkmJihoYT1udWxsKSxtYSE9PW51bGwmJndyKG1hKSYmKG1hPW51bGwpLGdhIT09bnVsbCYmd3IoZ2EpJiYoZ2E9bnVsbCksV28uZm9yRWFjaChpbSksJG8uZm9yRWFjaChpbSl9ZnVuY3Rpb24gU3IodCxlKXt0LmJsb2NrZWRPbj09PWUmJih0LmJsb2NrZWRPbj1udWxsLFBjfHwoUGM9ITAsci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksYnApKSl9dmFyIENyPW51bGw7ZnVuY3Rpb24gcm0odCl7Q3IhPT10JiYoQ3I9dCxyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxmdW5jdGlvbigpe0NyPT09dCYmKENyPW51bGwpO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSs9Myl7dmFyIGw9dFtlXSxhPXRbZSsxXSxuPXRbZSsyXTtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil7aWYoS2MoYXx8bCk9PT1udWxsKWNvbnRpbnVlO2JyZWFrfXZhciBvPVhsKGwpO28hPT1udWxsJiYodC5zcGxpY2UoZSwzKSxlLT0zLEtzKG8se3BlbmRpbmc6ITAsZGF0YTpuLG1ldGhvZDpsLm1ldGhvZCxhY3Rpb246YX0sYSxuKSl9fSkpfWZ1bmN0aW9uIElvKHQpe2Z1bmN0aW9uIGUoZyl7cmV0dXJuIFNyKGcsdCl9aGEhPT1udWxsJiZTcihoYSx0KSxtYSE9PW51bGwmJlNyKG1hLHQpLGdhIT09bnVsbCYmU3IoZ2EsdCksV28uZm9yRWFjaChlKSwkby5mb3JFYWNoKGUpO2Zvcih2YXIgbD0wO2w8cGEubGVuZ3RoO2wrKyl7dmFyIGE9cGFbbF07YS5ibG9ja2VkT249PT10JiYoYS5ibG9ja2VkT249bnVsbCl9Zm9yKDswPHBhLmxlbmd0aCYmKGw9cGFbMF0sbC5ibG9ja2VkT249PT1udWxsKTspb20obCksbC5ibG9ja2VkT249PT1udWxsJiZwYS5zaGlmdCgpO2lmKGw9KHQub3duZXJEb2N1bWVudHx8dCkuJCRyZWFjdEZvcm1SZXBsYXksbCE9bnVsbClmb3IoYT0wO2E8bC5sZW5ndGg7YSs9Myl7dmFyIG49bFthXSxvPWxbYSsxXSxjPW5bcGVdfHxudWxsO2lmKHR5cGVvZiBvPT0iZnVuY3Rpb24iKWN8fHJtKGwpO2Vsc2UgaWYoYyl7dmFyIGQ9bnVsbDtpZihvJiZvLmhhc0F0dHJpYnV0ZSgiZm9ybUFjdGlvbiIpKXtpZihuPW8sYz1vW3BlXXx8bnVsbClkPWMuZm9ybUFjdGlvbjtlbHNlIGlmKEtjKG4pIT09bnVsbCljb250aW51ZX1lbHNlIGQ9Yy5hY3Rpb247dHlwZW9mIGQ9PSJmdW5jdGlvbiI/bFthKzFdPWQ6KGwuc3BsaWNlKGEsMyksYS09Mykscm0obCl9fX1mdW5jdGlvbiBKYyh0KXt0aGlzLl9pbnRlcm5hbFJvb3Q9dH1Fci5wcm90b3R5cGUucmVuZGVyPUpjLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5faW50ZXJuYWxSb290O2lmKGU9PT1udWxsKXRocm93IEVycm9yKHMoNDA5KSk7dmFyIGw9ZS5jdXJyZW50LGE9T2UoKTt0bShsLGEsdCxlLG51bGwsbnVsbCl9LEVyLnByb3RvdHlwZS51bm1vdW50PUpjLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faW50ZXJuYWxSb290O2lmKHQhPT1udWxsKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgZT10LmNvbnRhaW5lckluZm87dG0odC5jdXJyZW50LDIsbnVsbCx0LG51bGwsbnVsbCksb3IoKSxlW0dsXT1udWxsfX07ZnVuY3Rpb24gRXIodCl7dGhpcy5faW50ZXJuYWxSb290PXR9RXIucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPWdpKCk7dD17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OnQscHJpb3JpdHk6ZX07Zm9yKHZhciBsPTA7bDxwYS5sZW5ndGgmJmUhPT0wJiZlPHBhW2xdLnByaW9yaXR5O2wrKyk7cGEuc3BsaWNlKGwsMCx0KSxsPT09MCYmb20odCl9fTt2YXIgc209aS52ZXJzaW9uO2lmKHNtIT09IjE5LjEuMSIpdGhyb3cgRXJyb3Iocyg1Mjcsc20sIjE5LjEuMSIpKTtHLmZpbmRET01Ob2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX3JlYWN0SW50ZXJuYWxzO2lmKGU9PT12b2lkIDApdGhyb3cgdHlwZW9mIHQucmVuZGVyPT0iZnVuY3Rpb24iP0Vycm9yKHMoMTg4KSk6KHQ9T2JqZWN0LmtleXModCkuam9pbigiLCIpLEVycm9yKHMoMjY4LHQpKSk7cmV0dXJuIHQ9QyhlKSx0PXQhPT1udWxsP3YodCk6bnVsbCx0PXQ9PT1udWxsP251bGw6dC5zdGF0ZU5vZGUsdH07dmFyIHhwPXtidW5kbGVUeXBlOjAsdmVyc2lvbjoiMTkuMS4xIixyZW5kZXJlclBhY2thZ2VOYW1lOiJyZWFjdC1kb20iLGN1cnJlbnREaXNwYXRjaGVyUmVmOkEscmVjb25jaWxlclZlcnNpb246IjE5LjEuMSJ9O2lmKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX188InUiKXt2YXIgVHI9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCFUci5pc0Rpc2FibGVkJiZUci5zdXBwb3J0c0ZpYmVyKXRyeXtxbD1Uci5pbmplY3QoeHApLEp0PVRyfWNhdGNoe319cmV0dXJuIEtuLmNyZWF0ZVJvb3Q9ZnVuY3Rpb24odCxlKXtpZighZih0KSl0aHJvdyBFcnJvcihzKDI5OSkpO3ZhciBsPSExLGE9IiIsbj1FZixvPVRmLGM9RGYsZD1udWxsO3JldHVybiBlIT1udWxsJiYoZS51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihsPSEwKSxlLmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJihhPWUuaWRlbnRpZmllclByZWZpeCksZS5vblVuY2F1Z2h0RXJyb3IhPT12b2lkIDAmJihuPWUub25VbmNhdWdodEVycm9yKSxlLm9uQ2F1Z2h0RXJyb3IhPT12b2lkIDAmJihvPWUub25DYXVnaHRFcnJvciksZS5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJihjPWUub25SZWNvdmVyYWJsZUVycm9yKSxlLnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MhPT12b2lkIDAmJihkPWUudW5zdGFibGVfdHJhbnNpdGlvbkNhbGxiYWNrcykpLGU9RmgodCwxLCExLG51bGwsbnVsbCxsLGEsbixvLGMsZCxudWxsKSx0W0dsXT1lLmN1cnJlbnQsTmModCksbmV3IEpjKGUpfSxLbi5oeWRyYXRlUm9vdD1mdW5jdGlvbih0LGUsbCl7aWYoIWYodCkpdGhyb3cgRXJyb3IocygyOTkpKTt2YXIgYT0hMSxuPSIiLG89RWYsYz1UZixkPURmLGc9bnVsbCxTPW51bGw7cmV0dXJuIGwhPW51bGwmJihsLnVuc3RhYmxlX3N0cmljdE1vZGU9PT0hMCYmKGE9ITApLGwuaWRlbnRpZmllclByZWZpeCE9PXZvaWQgMCYmKG49bC5pZGVudGlmaWVyUHJlZml4KSxsLm9uVW5jYXVnaHRFcnJvciE9PXZvaWQgMCYmKG89bC5vblVuY2F1Z2h0RXJyb3IpLGwub25DYXVnaHRFcnJvciE9PXZvaWQgMCYmKGM9bC5vbkNhdWdodEVycm9yKSxsLm9uUmVjb3ZlcmFibGVFcnJvciE9PXZvaWQgMCYmKGQ9bC5vblJlY292ZXJhYmxlRXJyb3IpLGwudW5zdGFibGVfdHJhbnNpdGlvbkNhbGxiYWNrcyE9PXZvaWQgMCYmKGc9bC51bnN0YWJsZV90cmFuc2l0aW9uQ2FsbGJhY2tzKSxsLmZvcm1TdGF0ZSE9PXZvaWQgMCYmKFM9bC5mb3JtU3RhdGUpKSxlPUZoKHQsMSwhMCxlLGw/P251bGwsYSxuLG8sYyxkLGcsUyksZS5jb250ZXh0PUloKG51bGwpLGw9ZS5jdXJyZW50LGE9T2UoKSxhPWVvKGEpLG49SWwoYSksbi5jYWxsYmFjaz1udWxsLHRhKGwsbixhKSxsPWEsZS5jdXJyZW50LmxhbmVzPWwsVGEoZSxsKSxobChlKSx0W0dsXT1lLmN1cnJlbnQsTmModCksbmV3IEVyKGUpfSxLbi52ZXJzaW9uPSIxOS4xLjEiLEtufXZhciBvdTtmdW5jdGlvbiB5bSgpe2lmKG91KXJldHVybiBNci5leHBvcnRzO291PTE7ZnVuY3Rpb24gcigpe2lmKCEodHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXz4idSJ8fHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UhPSJmdW5jdGlvbiIpKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0Uocil9Y2F0Y2goaSl7Y29uc29sZS5lcnJvcihpKX19cmV0dXJuIHIoKSxNci5leHBvcnRzPXBtKCksTXIuZXhwb3J0c312YXIga3I9eW0oKTtjb25zdCBPcj17cm9vdDoibWFudXMtcHJldmlld2VyLXJvb3QiLGNvbnRlbnRSb290OiJtYW51cy1wcmV2aWV3ZXItY29udGVudC1yb290In07Y2xhc3Mgdm17ZGlhbG9nUm9vdD1udWxsO3NldERpYWxvZ1Jvb3QoaSl7dGhpcy5kaWFsb2dSb290PWl9Y3JlYXRlT3BlbmVyPShpLHUpPT57Y29uc3R7c2luZ2xldG9uOnMsY2xvc2VXaGVuTmV4dFRyaWdnZXI6ZixjbG9zZUJlZm9yZURpYWxvZzptfT11fHx7fTtsZXQgeD1bXTtjb25zdCBOPXY9Pntjb25zdCBEPSJzaW5nbGUiO2lmKHMpe2NvbnN0IEY9eC5maW5kKGF0PT5hdC5pZD09PUQpO2lmKEYpaWYobSlGLm9uRGlzcG9zZWQoKTtlbHNlIHJldHVybiBmJiZGLm9uRGlzcG9zZWQoKSxudWxsfWNvbnN0IFI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj1rci5jcmVhdGVSb290KFIpO3RoaXMuZGlhbG9nUm9vdCYmdGhpcy5kaWFsb2dSb290LmFwcGVuZChSKTtjb25zdCAkPSgpPT57Si51bm1vdW50KCksUi5yZW1vdmUoKSx4PXguZmlsdGVyKEY9PkYuaWQhPT1EKSx2Lm9uRGlzcG9zZWQ/LigpfTtyZXR1cm4geC5wdXNoKHtpZDpELG9uRGlzcG9zZWQ6JH0pLEoucmVuZGVyKGguanN4KGkseyJkYXRhLWxvYyI6InNyYy9oZWxwZXJzL2RpYWxvZ0NvbnRyb2xsZXIudHN4OjY5IiwuLi52LG9uRGlzcG9zZWQ6JH0pKSx7ZGlzcG9zZTokfX07cmV0dXJuIHY9Pk4oey4uLnZ9KX19Y29uc3QgdGk9bmV3IHZtO3ZhciBVPU5yKCk7ZnVuY3Rpb24gYm0oe3NpemU6cj0xOH0pe3JldHVybiBoLmpzeCgic3ZnIix7ImRhdGEtbG9jIjoic3JjL2ljb25zL1ByZXZpZXdJY29uLnRzeDozIix3aWR0aDpyLGhlaWdodDpyLHZpZXdCb3g6IjAgMCAxOCAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9pY29ucy9QcmV2aWV3SWNvbi50c3g6MTAiLGQ6Ik0xNS43NSAyLjc1QzE1Ljc1IDIuMzM1NzkgMTUuNDE0MiAyIDE1IDJIM0MyLjU4NTc5IDIgMi4yNSAyLjMzNTc5IDIuMjUgMi43NVYxMC4yNUMyLjI1IDEwLjY2NDIgMi41ODU3OSAxMSAzIDExSDE1QzE1LjQxNDIgMTEgMTUuNzUgMTAuNjY0MiAxNS43NSAxMC4yNVYyLjc1Wk04LjI1IDcuODUyMDVMMTAuNDUxNyA2LjQ5OTI3TDguMjUgNS4xNDc5NVY3Ljg1MjA1Wk0xMi4xMjIzIDYuNUMxMi4xMjIzIDYuNzI0MyAxMi4wNjQ4IDYuOTQ1MSAxMS45NTUzIDcuMTQwODdDMTEuODQ1OSA3LjMzNjUxIDExLjY4NzggNy41MDEwNCAxMS40OTY4IDcuNjE4NDFMOC43NDg3OCA5LjMwNTkxQzguNTQ5NzggOS40Mjc5MSA4LjMyMTUxIDkuNDk0NyA4LjA4ODEzIDkuNDk5MjdDNy44NTQ4MiA5LjUwMzgzIDcuNjI0NDggOS40NDYzNCA3LjQyMDkgOS4zMzIyOEM3LjIxNzI4IDkuMjE4MTYgNy4wNDczNiA5LjA1MTc4IDYuOTI5NDQgOC44NTAzNEM2LjgxMTU2IDguNjQ4OTIgNi43NDk4MSA4LjQxOTQyIDYuNzUgOC4xODYwNFY0LjgxMTA0QzYuNzUwNDUgNC41Nzc5NiA2LjgxMjc3IDQuMzQ5MTEgNi45MzA5MSA0LjE0ODE5QzcuMDQ5MDggMy45NDcyNCA3LjIxODg1IDMuNzgxNDIgNy40MjIzNiAzLjY2NzcyQzcuNjI1ODIgMy41NTQwNiA3Ljg1NTg3IDMuNDk2NzggOC4wODg4NyAzLjUwMTQ2TDguMTc2MDMgMy41MDU4NkM4LjM0OTU5IDMuNTIwOTMgOC41MTgzNiAzLjU3MDYyIDguNjcyNjEgMy42NTE2MUw4Ljc0ODc4IDMuNjk0ODJMMTEuNDk2OCA1LjM4MTU5QzExLjY4NzggNS40OTg5NiAxMS44NDU5IDUuNjYzNSAxMS45NTUzIDUuODU5MTNDMTIuMDY0OCA2LjA1NDkgMTIuMTIyMyA2LjI3NTcgMTIuMTIyMyA2LjVaTTE3LjI1IDEwLjI1QzE3LjI1IDExLjQ5MjYgMTYuMjQyNiAxMi41IDE1IDEyLjVIOS43NVYxNEgxMkMxMi40MTQyIDE0IDEyLjc1IDE0LjMzNTggMTIuNzUgMTQuNzVDMTIuNzUgMTUuMTY0MiAxMi40MTQyIDE1LjUgMTIgMTUuNUg2QzUuNTg1NzkgMTUuNSA1LjI1IDE1LjE2NDIgNS4yNSAxNC43NUM1LjI1IDE0LjMzNTggNS41ODU3OSAxNCA2IDE0SDguMjVWMTIuNUgzQzEuNzU3MzYgMTIuNSAwLjc1IDExLjQ5MjYgMC43NSAxMC4yNVYyLjc1QzAuNzUgMS41MDczNiAxLjc1NzM2IDAuNSAzIDAuNUgxNUMxNi4yNDI2IDAuNSAxNy4yNSAxLjUwNzM2IDE3LjI1IDIuNzVWMTAuMjVaIixmaWxsOiIjMzQzMjJEIn0pfSl9ZnVuY3Rpb24gaXUocil7dmFyIGksdSxzPSIiO2lmKHR5cGVvZiByPT0ic3RyaW5nInx8dHlwZW9mIHI9PSJudW1iZXIiKXMrPXI7ZWxzZSBpZih0eXBlb2Ygcj09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShyKSl7dmFyIGY9ci5sZW5ndGg7Zm9yKGk9MDtpPGY7aSsrKXJbaV0mJih1PWl1KHJbaV0pKSYmKHMmJihzKz0iICIpLHMrPXUpfWVsc2UgZm9yKHUgaW4gcilyW3VdJiYocyYmKHMrPSIgIikscys9dSk7cmV0dXJuIHN9ZnVuY3Rpb24geG0oKXtmb3IodmFyIHIsaSx1PTAscz0iIixmPWFyZ3VtZW50cy5sZW5ndGg7dTxmO3UrKykocj1hcmd1bWVudHNbdV0pJiYoaT1pdShyKSkmJihzJiYocys9IiAiKSxzKz1pKTtyZXR1cm4gc31jb25zdCBqcj0iLSIsd209cj0+e2NvbnN0IGk9Q20ocikse2NvbmZsaWN0aW5nQ2xhc3NHcm91cHM6dSxjb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnM6c309cjtyZXR1cm57Z2V0Q2xhc3NHcm91cElkOng9Pntjb25zdCBOPXguc3BsaXQoanIpO3JldHVybiBOWzBdPT09IiImJk4ubGVuZ3RoIT09MSYmTi5zaGlmdCgpLHJ1KE4saSl8fFNtKHgpfSxnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHM6KHgsTik9Pntjb25zdCBDPXVbeF18fFtdO3JldHVybiBOJiZzW3hdP1suLi5DLC4uLnNbeF1dOkN9fX0scnU9KHIsaSk9PntpZihyLmxlbmd0aD09PTApcmV0dXJuIGkuY2xhc3NHcm91cElkO2NvbnN0IHU9clswXSxzPWkubmV4dFBhcnQuZ2V0KHUpLGY9cz9ydShyLnNsaWNlKDEpLHMpOnZvaWQgMDtpZihmKXJldHVybiBmO2lmKGkudmFsaWRhdG9ycy5sZW5ndGg9PT0wKXJldHVybjtjb25zdCBtPXIuam9pbihqcik7cmV0dXJuIGkudmFsaWRhdG9ycy5maW5kKCh7dmFsaWRhdG9yOnh9KT0+eChtKSk/LmNsYXNzR3JvdXBJZH0sc3U9L15cWyguKylcXSQvLFNtPXI9PntpZihzdS50ZXN0KHIpKXtjb25zdCBpPXN1LmV4ZWMocilbMV0sdT1pPy5zdWJzdHJpbmcoMCxpLmluZGV4T2YoIjoiKSk7aWYodSlyZXR1cm4iYXJiaXRyYXJ5Li4iK3V9fSxDbT1yPT57Y29uc3R7dGhlbWU6aSxjbGFzc0dyb3Vwczp1fT1yLHM9e25leHRQYXJ0Om5ldyBNYXAsdmFsaWRhdG9yczpbXX07Zm9yKGNvbnN0IGYgaW4gdSlCcih1W2ZdLHMsZixpKTtyZXR1cm4gc30sQnI9KHIsaSx1LHMpPT57ci5mb3JFYWNoKGY9PntpZih0eXBlb2YgZj09InN0cmluZyIpe2NvbnN0IG09Zj09PSIiP2k6Y3UoaSxmKTttLmNsYXNzR3JvdXBJZD11O3JldHVybn1pZih0eXBlb2YgZj09ImZ1bmN0aW9uIil7aWYoRW0oZikpe0JyKGYocyksaSx1LHMpO3JldHVybn1pLnZhbGlkYXRvcnMucHVzaCh7dmFsaWRhdG9yOmYsY2xhc3NHcm91cElkOnV9KTtyZXR1cm59T2JqZWN0LmVudHJpZXMoZikuZm9yRWFjaCgoW20seF0pPT57QnIoeCxjdShpLG0pLHUscyl9KX0pfSxjdT0ocixpKT0+e2xldCB1PXI7cmV0dXJuIGkuc3BsaXQoanIpLmZvckVhY2gocz0+e3UubmV4dFBhcnQuaGFzKHMpfHx1Lm5leHRQYXJ0LnNldChzLHtuZXh0UGFydDpuZXcgTWFwLHZhbGlkYXRvcnM6W119KSx1PXUubmV4dFBhcnQuZ2V0KHMpfSksdX0sRW09cj0+ci5pc1RoZW1lR2V0dGVyLFRtPXI9PntpZihyPDEpcmV0dXJue2dldDooKT0+e30sc2V0OigpPT57fX07bGV0IGk9MCx1PW5ldyBNYXAscz1uZXcgTWFwO2NvbnN0IGY9KG0seCk9Pnt1LnNldChtLHgpLGkrKyxpPnImJihpPTAscz11LHU9bmV3IE1hcCl9O3JldHVybntnZXQobSl7bGV0IHg9dS5nZXQobSk7aWYoeCE9PXZvaWQgMClyZXR1cm4geDtpZigoeD1zLmdldChtKSkhPT12b2lkIDApcmV0dXJuIGYobSx4KSx4fSxzZXQobSx4KXt1LmhhcyhtKT91LnNldChtLHgpOmYobSx4KX19fSxMcj0iISIsSHI9IjoiLERtPUhyLmxlbmd0aCxNbT1yPT57Y29uc3R7cHJlZml4OmksZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWU6dX09cjtsZXQgcz1mPT57Y29uc3QgbT1bXTtsZXQgeD0wLE49MCxDPTAsdjtmb3IobGV0IEY9MDtGPGYubGVuZ3RoO0YrKyl7bGV0IGF0PWZbRl07aWYoeD09PTAmJk49PT0wKXtpZihhdD09PUhyKXttLnB1c2goZi5zbGljZShDLEYpKSxDPUYrRG07Y29udGludWV9aWYoYXQ9PT0iLyIpe3Y9Rjtjb250aW51ZX19YXQ9PT0iWyI/eCsrOmF0PT09Il0iP3gtLTphdD09PSIoIj9OKys6YXQ9PT0iKSImJk4tLX1jb25zdCBEPW0ubGVuZ3RoPT09MD9mOmYuc3Vic3RyaW5nKEMpLFI9QW0oRCksSj1SIT09RCwkPXYmJnY+Qz92LUM6dm9pZCAwO3JldHVybnttb2RpZmllcnM6bSxoYXNJbXBvcnRhbnRNb2RpZmllcjpKLGJhc2VDbGFzc05hbWU6UixtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uOiR9fTtpZihpKXtjb25zdCBmPWkrSHIsbT1zO3M9eD0+eC5zdGFydHNXaXRoKGYpP20oeC5zdWJzdHJpbmcoZi5sZW5ndGgpKTp7aXNFeHRlcm5hbDohMCxtb2RpZmllcnM6W10saGFzSW1wb3J0YW50TW9kaWZpZXI6ITEsYmFzZUNsYXNzTmFtZTp4LG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb246dm9pZCAwfX1pZih1KXtjb25zdCBmPXM7cz1tPT51KHtjbGFzc05hbWU6bSxwYXJzZUNsYXNzTmFtZTpmfSl9cmV0dXJuIHN9LEFtPXI9PnIuZW5kc1dpdGgoTHIpP3Iuc3Vic3RyaW5nKDAsci5sZW5ndGgtMSk6ci5zdGFydHNXaXRoKExyKT9yLnN1YnN0cmluZygxKTpyLFJtPXI9Pntjb25zdCBpPU9iamVjdC5mcm9tRW50cmllcyhyLm9yZGVyU2Vuc2l0aXZlTW9kaWZpZXJzLm1hcChzPT5bcywhMF0pKTtyZXR1cm4gcz0+e2lmKHMubGVuZ3RoPD0xKXJldHVybiBzO2NvbnN0IGY9W107bGV0IG09W107cmV0dXJuIHMuZm9yRWFjaCh4PT57eFswXT09PSJbInx8aVt4XT8oZi5wdXNoKC4uLm0uc29ydCgpLHgpLG09W10pOm0ucHVzaCh4KX0pLGYucHVzaCguLi5tLnNvcnQoKSksZn19LHptPXI9Pih7Y2FjaGU6VG0oci5jYWNoZVNpemUpLHBhcnNlQ2xhc3NOYW1lOk1tKHIpLHNvcnRNb2RpZmllcnM6Um0ociksLi4ud20ocil9KSxObT0vXHMrLyxfbT0ocixpKT0+e2NvbnN0e3BhcnNlQ2xhc3NOYW1lOnUsZ2V0Q2xhc3NHcm91cElkOnMsZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzOmYsc29ydE1vZGlmaWVyczptfT1pLHg9W10sTj1yLnRyaW0oKS5zcGxpdChObSk7bGV0IEM9IiI7Zm9yKGxldCB2PU4ubGVuZ3RoLTE7dj49MDt2LT0xKXtjb25zdCBEPU5bdl0se2lzRXh0ZXJuYWw6Uixtb2RpZmllcnM6SixoYXNJbXBvcnRhbnRNb2RpZmllcjokLGJhc2VDbGFzc05hbWU6RixtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uOmF0fT11KEQpO2lmKFIpe0M9RCsoQy5sZW5ndGg+MD8iICIrQzpDKTtjb250aW51ZX1sZXQgY3Q9ISFhdCxodD1zKGN0P0Yuc3Vic3RyaW5nKDAsYXQpOkYpO2lmKCFodCl7aWYoIWN0KXtDPUQrKEMubGVuZ3RoPjA/IiAiK0M6Qyk7Y29udGludWV9aWYoaHQ9cyhGKSwhaHQpe0M9RCsoQy5sZW5ndGg+MD8iICIrQzpDKTtjb250aW51ZX1jdD0hMX1jb25zdCBTdD1tKEopLmpvaW4oIjoiKSxrPSQ/U3QrTHI6U3QsWT1rK2h0O2lmKHguaW5jbHVkZXMoWSkpY29udGludWU7eC5wdXNoKFkpO2NvbnN0IEg9ZihodCxjdCk7Zm9yKGxldCBpdD0wO2l0PEgubGVuZ3RoOysraXQpe2NvbnN0IHJ0PUhbaXRdO3gucHVzaChrK3J0KX1DPUQrKEMubGVuZ3RoPjA/IiAiK0M6Qyl9cmV0dXJuIEN9O2Z1bmN0aW9uIGttKCl7bGV0IHI9MCxpLHUscz0iIjtmb3IoO3I8YXJndW1lbnRzLmxlbmd0aDspKGk9YXJndW1lbnRzW3IrK10pJiYodT11dShpKSkmJihzJiYocys9IiAiKSxzKz11KTtyZXR1cm4gc31jb25zdCB1dT1yPT57aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiByO2xldCBpLHU9IiI7Zm9yKGxldCBzPTA7czxyLmxlbmd0aDtzKyspcltzXSYmKGk9dXUocltzXSkpJiYodSYmKHUrPSIgIiksdSs9aSk7cmV0dXJuIHV9O2Z1bmN0aW9uIE9tKHIsLi4uaSl7bGV0IHUscyxmLG09eDtmdW5jdGlvbiB4KEMpe2NvbnN0IHY9aS5yZWR1Y2UoKEQsUik9PlIoRCkscigpKTtyZXR1cm4gdT16bSh2KSxzPXUuY2FjaGUuZ2V0LGY9dS5jYWNoZS5zZXQsbT1OLE4oQyl9ZnVuY3Rpb24gTihDKXtjb25zdCB2PXMoQyk7aWYodilyZXR1cm4gdjtjb25zdCBEPV9tKEMsdSk7cmV0dXJuIGYoQyxEKSxEfXJldHVybiBmdW5jdGlvbigpe3JldHVybiBtKGttLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9fWNvbnN0IEt0PXI9Pntjb25zdCBpPXU9PnVbcl18fFtdO3JldHVybiBpLmlzVGhlbWVHZXR0ZXI9ITAsaX0sZHU9L15cWyg/Oihcd1tcdy1dKik6KT8oLispXF0kL2ksZnU9L15cKCg/Oihcd1tcdy1dKik6KT8oLispXCkkL2ksam09L15cZCtcL1xkKyQvLEJtPS9eKFxkKyhcLlxkKyk/KT8oeHN8c218bWR8bGd8eGwpJC8sTG09L1xkKyglfHB4fHI/ZW18W3NkbF0/dihbaHdpYl18bWlufG1heCl8cHR8cGN8aW58Y218bW18Y2FwfGNofGV4fHI/bGh8Y3Eod3xofGl8YnxtaW58bWF4KSl8XGIoY2FsY3xtaW58bWF4fGNsYW1wKVwoLitcKXxeMCQvLEhtPS9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKXxjb2xvci1taXgpXCguK1wpJC8sVW09L14oaW5zZXRfKT8tPygoXGQrKT9cLj8oXGQrKVthLXpdK3wwKV8tPygoXGQrKT9cLj8oXGQrKVthLXpdK3wwKS8scW09L14odXJsfGltYWdlfGltYWdlLXNldHxjcm9zcy1mYWRlfGVsZW1lbnR8KHJlcGVhdGluZy0pPyhsaW5lYXJ8cmFkaWFsfGNvbmljKS1ncmFkaWVudClcKC4rXCkkLyxlbj1yPT5qbS50ZXN0KHIpLGR0PXI9PiEhciYmIU51bWJlci5pc05hTihOdW1iZXIocikpLEJsPXI9PiEhciYmTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIocikpLFVyPXI9PnIuZW5kc1dpdGgoIiUiKSYmZHQoci5zbGljZSgwLC0xKSksbWw9cj0+Qm0udGVzdChyKSxHbT0oKT0+ITAsWW09cj0+TG0udGVzdChyKSYmIUhtLnRlc3QociksaHU9KCk9PiExLFhtPXI9PlVtLnRlc3QociksVm09cj0+cW0udGVzdChyKSxabT1yPT4hUShyKSYmIUsociksUW09cj0+bG4ocix2dSxodSksUT1yPT5kdS50ZXN0KHIpLHZhPXI9PmxuKHIsYnUsWW0pLHFyPXI9PmxuKHIsJG0sZHQpLG11PXI9PmxuKHIscHUsaHUpLEttPXI9PmxuKHIseXUsVm0pLGVpPXI9PmxuKHIseHUsWG0pLEs9cj0+ZnUudGVzdChyKSxQbj1yPT5hbihyLGJ1KSxQbT1yPT5hbihyLEZtKSxndT1yPT5hbihyLHB1KSxKbT1yPT5hbihyLHZ1KSxXbT1yPT5hbihyLHl1KSxsaT1yPT5hbihyLHh1LCEwKSxsbj0ocixpLHUpPT57Y29uc3Qgcz1kdS5leGVjKHIpO3JldHVybiBzP3NbMV0/aShzWzFdKTp1KHNbMl0pOiExfSxhbj0ocixpLHU9ITEpPT57Y29uc3Qgcz1mdS5leGVjKHIpO3JldHVybiBzP3NbMV0/aShzWzFdKTp1OiExfSxwdT1yPT5yPT09InBvc2l0aW9uInx8cj09PSJwZXJjZW50YWdlIix5dT1yPT5yPT09ImltYWdlInx8cj09PSJ1cmwiLHZ1PXI9PnI9PT0ibGVuZ3RoInx8cj09PSJzaXplInx8cj09PSJiZy1zaXplIixidT1yPT5yPT09Imxlbmd0aCIsJG09cj0+cj09PSJudW1iZXIiLEZtPXI9PnI9PT0iZmFtaWx5LW5hbWUiLHh1PXI9PnI9PT0ic2hhZG93IixJbT1PbSgoKT0+e2NvbnN0IHI9S3QoImNvbG9yIiksaT1LdCgiZm9udCIpLHU9S3QoInRleHQiKSxzPUt0KCJmb250LXdlaWdodCIpLGY9S3QoInRyYWNraW5nIiksbT1LdCgibGVhZGluZyIpLHg9S3QoImJyZWFrcG9pbnQiKSxOPUt0KCJjb250YWluZXIiKSxDPUt0KCJzcGFjaW5nIiksdj1LdCgicmFkaXVzIiksRD1LdCgic2hhZG93IiksUj1LdCgiaW5zZXQtc2hhZG93IiksSj1LdCgidGV4dC1zaGFkb3ciKSwkPUt0KCJkcm9wLXNoYWRvdyIpLEY9S3QoImJsdXIiKSxhdD1LdCgicGVyc3BlY3RpdmUiKSxjdD1LdCgiYXNwZWN0IiksaHQ9S3QoImVhc2UiKSxTdD1LdCgiYW5pbWF0ZSIpLGs9KCk9PlsiYXV0byIsImF2b2lkIiwiYWxsIiwiYXZvaWQtcGFnZSIsInBhZ2UiLCJsZWZ0IiwicmlnaHQiLCJjb2x1bW4iXSxZPSgpPT5bImNlbnRlciIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsInRvcC1sZWZ0IiwibGVmdC10b3AiLCJ0b3AtcmlnaHQiLCJyaWdodC10b3AiLCJib3R0b20tcmlnaHQiLCJyaWdodC1ib3R0b20iLCJib3R0b20tbGVmdCIsImxlZnQtYm90dG9tIl0sSD0oKT0+Wy4uLlkoKSxLLFFdLGl0PSgpPT5bImF1dG8iLCJoaWRkZW4iLCJjbGlwIiwidmlzaWJsZSIsInNjcm9sbCJdLHJ0PSgpPT5bImF1dG8iLCJjb250YWluIiwibm9uZSJdLFg9KCk9PltLLFEsQ10seHQ9KCk9PltlbiwiZnVsbCIsImF1dG8iLC4uLlgoKV0sQmU9KCk9PltCbCwibm9uZSIsInN1YmdyaWQiLEssUV0sSXQ9KCk9PlsiYXV0byIse3NwYW46WyJmdWxsIixCbCxLLFFdfSxCbCxLLFFdLEJ0PSgpPT5bQmwsImF1dG8iLEssUV0sbWU9KCk9PlsiYXV0byIsIm1pbiIsIm1heCIsImZyIixLLFFdLFNlPSgpPT5bInN0YXJ0IiwiZW5kIiwiY2VudGVyIiwiYmV0d2VlbiIsImFyb3VuZCIsImV2ZW5seSIsInN0cmV0Y2giLCJiYXNlbGluZSIsImNlbnRlci1zYWZlIiwiZW5kLXNhZmUiXSxNdD0oKT0+WyJzdGFydCIsImVuZCIsImNlbnRlciIsInN0cmV0Y2giLCJjZW50ZXItc2FmZSIsImVuZC1zYWZlIl0sQT0oKT0+WyJhdXRvIiwuLi5YKCldLEc9KCk9PltlbiwiYXV0byIsImZ1bGwiLCJkdnciLCJkdmgiLCJsdnciLCJsdmgiLCJzdnciLCJzdmgiLCJtaW4iLCJtYXgiLCJmaXQiLC4uLlgoKV0sQj0oKT0+W3IsSyxRXSxidD0oKT0+Wy4uLlkoKSxndSxtdSx7cG9zaXRpb246W0ssUV19XSxwPSgpPT5bIm5vLXJlcGVhdCIse3JlcGVhdDpbIiIsIngiLCJ5Iiwic3BhY2UiLCJyb3VuZCJdfV0saj0oKT0+WyJhdXRvIiwiY292ZXIiLCJjb250YWluIixKbSxRbSx7c2l6ZTpbSyxRXX1dLFY9KCk9PltVcixQbix2YV0scT0oKT0+WyIiLCJub25lIiwiZnVsbCIsdixLLFFdLFo9KCk9PlsiIixkdCxQbix2YV0sc3Q9KCk9Plsic29saWQiLCJkYXNoZWQiLCJkb3R0ZWQiLCJkb3VibGUiXSx0dD0oKT0+WyJub3JtYWwiLCJtdWx0aXBseSIsInNjcmVlbiIsIm92ZXJsYXkiLCJkYXJrZW4iLCJsaWdodGVuIiwiY29sb3ItZG9kZ2UiLCJjb2xvci1idXJuIiwiaGFyZC1saWdodCIsInNvZnQtbGlnaHQiLCJkaWZmZXJlbmNlIiwiZXhjbHVzaW9uIiwiaHVlIiwic2F0dXJhdGlvbiIsImNvbG9yIiwibHVtaW5vc2l0eSJdLGd0PSgpPT5bZHQsVXIsZ3UsbXVdLFR0PSgpPT5bIiIsIm5vbmUiLEYsSyxRXSxQdD0oKT0+WyJub25lIixkdCxLLFFdLEtlPSgpPT5bIm5vbmUiLGR0LEssUV0sQ2U9KCk9PltkdCxLLFFdLFBlPSgpPT5bZW4sImZ1bGwiLC4uLlgoKV07cmV0dXJue2NhY2hlU2l6ZTo1MDAsdGhlbWU6e2FuaW1hdGU6WyJzcGluIiwicGluZyIsInB1bHNlIiwiYm91bmNlIl0sYXNwZWN0OlsidmlkZW8iXSxibHVyOlttbF0sYnJlYWtwb2ludDpbbWxdLGNvbG9yOltHbV0sY29udGFpbmVyOlttbF0sImRyb3Atc2hhZG93IjpbbWxdLGVhc2U6WyJpbiIsIm91dCIsImluLW91dCJdLGZvbnQ6W1ptXSwiZm9udC13ZWlnaHQiOlsidGhpbiIsImV4dHJhbGlnaHQiLCJsaWdodCIsIm5vcm1hbCIsIm1lZGl1bSIsInNlbWlib2xkIiwiYm9sZCIsImV4dHJhYm9sZCIsImJsYWNrIl0sImluc2V0LXNoYWRvdyI6W21sXSxsZWFkaW5nOlsibm9uZSIsInRpZ2h0Iiwic251ZyIsIm5vcm1hbCIsInJlbGF4ZWQiLCJsb29zZSJdLHBlcnNwZWN0aXZlOlsiZHJhbWF0aWMiLCJuZWFyIiwibm9ybWFsIiwibWlkcmFuZ2UiLCJkaXN0YW50Iiwibm9uZSJdLHJhZGl1czpbbWxdLHNoYWRvdzpbbWxdLHNwYWNpbmc6WyJweCIsZHRdLHRleHQ6W21sXSwidGV4dC1zaGFkb3ciOlttbF0sdHJhY2tpbmc6WyJ0aWdodGVyIiwidGlnaHQiLCJub3JtYWwiLCJ3aWRlIiwid2lkZXIiLCJ3aWRlc3QiXX0sY2xhc3NHcm91cHM6e2FzcGVjdDpbe2FzcGVjdDpbImF1dG8iLCJzcXVhcmUiLGVuLFEsSyxjdF19XSxjb250YWluZXI6WyJjb250YWluZXIiXSxjb2x1bW5zOlt7Y29sdW1uczpbZHQsUSxLLE5dfV0sImJyZWFrLWFmdGVyIjpbeyJicmVhay1hZnRlciI6aygpfV0sImJyZWFrLWJlZm9yZSI6W3siYnJlYWstYmVmb3JlIjprKCl9XSwiYnJlYWstaW5zaWRlIjpbeyJicmVhay1pbnNpZGUiOlsiYXV0byIsImF2b2lkIiwiYXZvaWQtcGFnZSIsImF2b2lkLWNvbHVtbiJdfV0sImJveC1kZWNvcmF0aW9uIjpbeyJib3gtZGVjb3JhdGlvbiI6WyJzbGljZSIsImNsb25lIl19XSxib3g6W3tib3g6WyJib3JkZXIiLCJjb250ZW50Il19XSxkaXNwbGF5OlsiYmxvY2siLCJpbmxpbmUtYmxvY2siLCJpbmxpbmUiLCJmbGV4IiwiaW5saW5lLWZsZXgiLCJ0YWJsZSIsImlubGluZS10YWJsZSIsInRhYmxlLWNhcHRpb24iLCJ0YWJsZS1jZWxsIiwidGFibGUtY29sdW1uIiwidGFibGUtY29sdW1uLWdyb3VwIiwidGFibGUtZm9vdGVyLWdyb3VwIiwidGFibGUtaGVhZGVyLWdyb3VwIiwidGFibGUtcm93LWdyb3VwIiwidGFibGUtcm93IiwiZmxvdy1yb290IiwiZ3JpZCIsImlubGluZS1ncmlkIiwiY29udGVudHMiLCJsaXN0LWl0ZW0iLCJoaWRkZW4iXSxzcjpbInNyLW9ubHkiLCJub3Qtc3Itb25seSJdLGZsb2F0Olt7ZmxvYXQ6WyJyaWdodCIsImxlZnQiLCJub25lIiwic3RhcnQiLCJlbmQiXX1dLGNsZWFyOlt7Y2xlYXI6WyJsZWZ0IiwicmlnaHQiLCJib3RoIiwibm9uZSIsInN0YXJ0IiwiZW5kIl19XSxpc29sYXRpb246WyJpc29sYXRlIiwiaXNvbGF0aW9uLWF1dG8iXSwib2JqZWN0LWZpdCI6W3tvYmplY3Q6WyJjb250YWluIiwiY292ZXIiLCJmaWxsIiwibm9uZSIsInNjYWxlLWRvd24iXX1dLCJvYmplY3QtcG9zaXRpb24iOlt7b2JqZWN0OkgoKX1dLG92ZXJmbG93Olt7b3ZlcmZsb3c6aXQoKX1dLCJvdmVyZmxvdy14IjpbeyJvdmVyZmxvdy14IjppdCgpfV0sIm92ZXJmbG93LXkiOlt7Im92ZXJmbG93LXkiOml0KCl9XSxvdmVyc2Nyb2xsOlt7b3ZlcnNjcm9sbDpydCgpfV0sIm92ZXJzY3JvbGwteCI6W3sib3ZlcnNjcm9sbC14IjpydCgpfV0sIm92ZXJzY3JvbGwteSI6W3sib3ZlcnNjcm9sbC15IjpydCgpfV0scG9zaXRpb246WyJzdGF0aWMiLCJmaXhlZCIsImFic29sdXRlIiwicmVsYXRpdmUiLCJzdGlja3kiXSxpbnNldDpbe2luc2V0Onh0KCl9XSwiaW5zZXQteCI6W3siaW5zZXQteCI6eHQoKX1dLCJpbnNldC15IjpbeyJpbnNldC15Ijp4dCgpfV0sc3RhcnQ6W3tzdGFydDp4dCgpfV0sZW5kOlt7ZW5kOnh0KCl9XSx0b3A6W3t0b3A6eHQoKX1dLHJpZ2h0Olt7cmlnaHQ6eHQoKX1dLGJvdHRvbTpbe2JvdHRvbTp4dCgpfV0sbGVmdDpbe2xlZnQ6eHQoKX1dLHZpc2liaWxpdHk6WyJ2aXNpYmxlIiwiaW52aXNpYmxlIiwiY29sbGFwc2UiXSx6Olt7ejpbQmwsImF1dG8iLEssUV19XSxiYXNpczpbe2Jhc2lzOltlbiwiZnVsbCIsImF1dG8iLE4sLi4uWCgpXX1dLCJmbGV4LWRpcmVjdGlvbiI6W3tmbGV4Olsicm93Iiwicm93LXJldmVyc2UiLCJjb2wiLCJjb2wtcmV2ZXJzZSJdfV0sImZsZXgtd3JhcCI6W3tmbGV4Olsibm93cmFwIiwid3JhcCIsIndyYXAtcmV2ZXJzZSJdfV0sZmxleDpbe2ZsZXg6W2R0LGVuLCJhdXRvIiwiaW5pdGlhbCIsIm5vbmUiLFFdfV0sZ3Jvdzpbe2dyb3c6WyIiLGR0LEssUV19XSxzaHJpbms6W3tzaHJpbms6WyIiLGR0LEssUV19XSxvcmRlcjpbe29yZGVyOltCbCwiZmlyc3QiLCJsYXN0Iiwibm9uZSIsSyxRXX1dLCJncmlkLWNvbHMiOlt7ImdyaWQtY29scyI6QmUoKX1dLCJjb2wtc3RhcnQtZW5kIjpbe2NvbDpJdCgpfV0sImNvbC1zdGFydCI6W3siY29sLXN0YXJ0IjpCdCgpfV0sImNvbC1lbmQiOlt7ImNvbC1lbmQiOkJ0KCl9XSwiZ3JpZC1yb3dzIjpbeyJncmlkLXJvd3MiOkJlKCl9XSwicm93LXN0YXJ0LWVuZCI6W3tyb3c6SXQoKX1dLCJyb3ctc3RhcnQiOlt7InJvdy1zdGFydCI6QnQoKX1dLCJyb3ctZW5kIjpbeyJyb3ctZW5kIjpCdCgpfV0sImdyaWQtZmxvdyI6W3siZ3JpZC1mbG93IjpbInJvdyIsImNvbCIsImRlbnNlIiwicm93LWRlbnNlIiwiY29sLWRlbnNlIl19XSwiYXV0by1jb2xzIjpbeyJhdXRvLWNvbHMiOm1lKCl9XSwiYXV0by1yb3dzIjpbeyJhdXRvLXJvd3MiOm1lKCl9XSxnYXA6W3tnYXA6WCgpfV0sImdhcC14IjpbeyJnYXAteCI6WCgpfV0sImdhcC15IjpbeyJnYXAteSI6WCgpfV0sImp1c3RpZnktY29udGVudCI6W3tqdXN0aWZ5OlsuLi5TZSgpLCJub3JtYWwiXX1dLCJqdXN0aWZ5LWl0ZW1zIjpbeyJqdXN0aWZ5LWl0ZW1zIjpbLi4uTXQoKSwibm9ybWFsIl19XSwianVzdGlmeS1zZWxmIjpbeyJqdXN0aWZ5LXNlbGYiOlsiYXV0byIsLi4uTXQoKV19XSwiYWxpZ24tY29udGVudCI6W3tjb250ZW50Olsibm9ybWFsIiwuLi5TZSgpXX1dLCJhbGlnbi1pdGVtcyI6W3tpdGVtczpbLi4uTXQoKSx7YmFzZWxpbmU6WyIiLCJsYXN0Il19XX1dLCJhbGlnbi1zZWxmIjpbe3NlbGY6WyJhdXRvIiwuLi5NdCgpLHtiYXNlbGluZTpbIiIsImxhc3QiXX1dfV0sInBsYWNlLWNvbnRlbnQiOlt7InBsYWNlLWNvbnRlbnQiOlNlKCl9XSwicGxhY2UtaXRlbXMiOlt7InBsYWNlLWl0ZW1zIjpbLi4uTXQoKSwiYmFzZWxpbmUiXX1dLCJwbGFjZS1zZWxmIjpbeyJwbGFjZS1zZWxmIjpbImF1dG8iLC4uLk10KCldfV0scDpbe3A6WCgpfV0scHg6W3tweDpYKCl9XSxweTpbe3B5OlgoKX1dLHBzOlt7cHM6WCgpfV0scGU6W3twZTpYKCl9XSxwdDpbe3B0OlgoKX1dLHByOlt7cHI6WCgpfV0scGI6W3twYjpYKCl9XSxwbDpbe3BsOlgoKX1dLG06W3ttOkEoKX1dLG14Olt7bXg6QSgpfV0sbXk6W3tteTpBKCl9XSxtczpbe21zOkEoKX1dLG1lOlt7bWU6QSgpfV0sbXQ6W3ttdDpBKCl9XSxtcjpbe21yOkEoKX1dLG1iOlt7bWI6QSgpfV0sbWw6W3ttbDpBKCl9XSwic3BhY2UteCI6W3sic3BhY2UteCI6WCgpfV0sInNwYWNlLXgtcmV2ZXJzZSI6WyJzcGFjZS14LXJldmVyc2UiXSwic3BhY2UteSI6W3sic3BhY2UteSI6WCgpfV0sInNwYWNlLXktcmV2ZXJzZSI6WyJzcGFjZS15LXJldmVyc2UiXSxzaXplOlt7c2l6ZTpHKCl9XSx3Olt7dzpbTiwic2NyZWVuIiwuLi5HKCldfV0sIm1pbi13IjpbeyJtaW4tdyI6W04sInNjcmVlbiIsIm5vbmUiLC4uLkcoKV19XSwibWF4LXciOlt7Im1heC13IjpbTiwic2NyZWVuIiwibm9uZSIsInByb3NlIix7c2NyZWVuOlt4XX0sLi4uRygpXX1dLGg6W3toOlsic2NyZWVuIiwibGgiLC4uLkcoKV19XSwibWluLWgiOlt7Im1pbi1oIjpbInNjcmVlbiIsImxoIiwibm9uZSIsLi4uRygpXX1dLCJtYXgtaCI6W3sibWF4LWgiOlsic2NyZWVuIiwibGgiLC4uLkcoKV19XSwiZm9udC1zaXplIjpbe3RleHQ6WyJiYXNlIix1LFBuLHZhXX1dLCJmb250LXNtb290aGluZyI6WyJhbnRpYWxpYXNlZCIsInN1YnBpeGVsLWFudGlhbGlhc2VkIl0sImZvbnQtc3R5bGUiOlsiaXRhbGljIiwibm90LWl0YWxpYyJdLCJmb250LXdlaWdodCI6W3tmb250OltzLEsscXJdfV0sImZvbnQtc3RyZXRjaCI6W3siZm9udC1zdHJldGNoIjpbInVsdHJhLWNvbmRlbnNlZCIsImV4dHJhLWNvbmRlbnNlZCIsImNvbmRlbnNlZCIsInNlbWktY29uZGVuc2VkIiwibm9ybWFsIiwic2VtaS1leHBhbmRlZCIsImV4cGFuZGVkIiwiZXh0cmEtZXhwYW5kZWQiLCJ1bHRyYS1leHBhbmRlZCIsVXIsUV19XSwiZm9udC1mYW1pbHkiOlt7Zm9udDpbUG0sUSxpXX1dLCJmdm4tbm9ybWFsIjpbIm5vcm1hbC1udW1zIl0sImZ2bi1vcmRpbmFsIjpbIm9yZGluYWwiXSwiZnZuLXNsYXNoZWQtemVybyI6WyJzbGFzaGVkLXplcm8iXSwiZnZuLWZpZ3VyZSI6WyJsaW5pbmctbnVtcyIsIm9sZHN0eWxlLW51bXMiXSwiZnZuLXNwYWNpbmciOlsicHJvcG9ydGlvbmFsLW51bXMiLCJ0YWJ1bGFyLW51bXMiXSwiZnZuLWZyYWN0aW9uIjpbImRpYWdvbmFsLWZyYWN0aW9ucyIsInN0YWNrZWQtZnJhY3Rpb25zIl0sdHJhY2tpbmc6W3t0cmFja2luZzpbZixLLFFdfV0sImxpbmUtY2xhbXAiOlt7ImxpbmUtY2xhbXAiOltkdCwibm9uZSIsSyxxcl19XSxsZWFkaW5nOlt7bGVhZGluZzpbbSwuLi5YKCldfV0sImxpc3QtaW1hZ2UiOlt7Imxpc3QtaW1hZ2UiOlsibm9uZSIsSyxRXX1dLCJsaXN0LXN0eWxlLXBvc2l0aW9uIjpbe2xpc3Q6WyJpbnNpZGUiLCJvdXRzaWRlIl19XSwibGlzdC1zdHlsZS10eXBlIjpbe2xpc3Q6WyJkaXNjIiwiZGVjaW1hbCIsIm5vbmUiLEssUV19XSwidGV4dC1hbGlnbm1lbnQiOlt7dGV4dDpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsImp1c3RpZnkiLCJzdGFydCIsImVuZCJdfV0sInBsYWNlaG9sZGVyLWNvbG9yIjpbe3BsYWNlaG9sZGVyOkIoKX1dLCJ0ZXh0LWNvbG9yIjpbe3RleHQ6QigpfV0sInRleHQtZGVjb3JhdGlvbiI6WyJ1bmRlcmxpbmUiLCJvdmVybGluZSIsImxpbmUtdGhyb3VnaCIsIm5vLXVuZGVybGluZSJdLCJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOlt7ZGVjb3JhdGlvbjpbLi4uc3QoKSwid2F2eSJdfV0sInRleHQtZGVjb3JhdGlvbi10aGlja25lc3MiOlt7ZGVjb3JhdGlvbjpbZHQsImZyb20tZm9udCIsImF1dG8iLEssdmFdfV0sInRleHQtZGVjb3JhdGlvbi1jb2xvciI6W3tkZWNvcmF0aW9uOkIoKX1dLCJ1bmRlcmxpbmUtb2Zmc2V0IjpbeyJ1bmRlcmxpbmUtb2Zmc2V0IjpbZHQsImF1dG8iLEssUV19XSwidGV4dC10cmFuc2Zvcm0iOlsidXBwZXJjYXNlIiwibG93ZXJjYXNlIiwiY2FwaXRhbGl6ZSIsIm5vcm1hbC1jYXNlIl0sInRleHQtb3ZlcmZsb3ciOlsidHJ1bmNhdGUiLCJ0ZXh0LWVsbGlwc2lzIiwidGV4dC1jbGlwIl0sInRleHQtd3JhcCI6W3t0ZXh0Olsid3JhcCIsIm5vd3JhcCIsImJhbGFuY2UiLCJwcmV0dHkiXX1dLGluZGVudDpbe2luZGVudDpYKCl9XSwidmVydGljYWwtYWxpZ24iOlt7YWxpZ246WyJiYXNlbGluZSIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSIsInRleHQtdG9wIiwidGV4dC1ib3R0b20iLCJzdWIiLCJzdXBlciIsSyxRXX1dLHdoaXRlc3BhY2U6W3t3aGl0ZXNwYWNlOlsibm9ybWFsIiwibm93cmFwIiwicHJlIiwicHJlLWxpbmUiLCJwcmUtd3JhcCIsImJyZWFrLXNwYWNlcyJdfV0sYnJlYWs6W3ticmVhazpbIm5vcm1hbCIsIndvcmRzIiwiYWxsIiwia2VlcCJdfV0sd3JhcDpbe3dyYXA6WyJicmVhay13b3JkIiwiYW55d2hlcmUiLCJub3JtYWwiXX1dLGh5cGhlbnM6W3toeXBoZW5zOlsibm9uZSIsIm1hbnVhbCIsImF1dG8iXX1dLGNvbnRlbnQ6W3tjb250ZW50Olsibm9uZSIsSyxRXX1dLCJiZy1hdHRhY2htZW50Ijpbe2JnOlsiZml4ZWQiLCJsb2NhbCIsInNjcm9sbCJdfV0sImJnLWNsaXAiOlt7ImJnLWNsaXAiOlsiYm9yZGVyIiwicGFkZGluZyIsImNvbnRlbnQiLCJ0ZXh0Il19XSwiYmctb3JpZ2luIjpbeyJiZy1vcmlnaW4iOlsiYm9yZGVyIiwicGFkZGluZyIsImNvbnRlbnQiXX1dLCJiZy1wb3NpdGlvbiI6W3tiZzpidCgpfV0sImJnLXJlcGVhdCI6W3tiZzpwKCl9XSwiYmctc2l6ZSI6W3tiZzpqKCl9XSwiYmctaW1hZ2UiOlt7Ymc6WyJub25lIix7bGluZWFyOlt7dG86WyJ0IiwidHIiLCJyIiwiYnIiLCJiIiwiYmwiLCJsIiwidGwiXX0sQmwsSyxRXSxyYWRpYWw6WyIiLEssUV0sY29uaWM6W0JsLEssUV19LFdtLEttXX1dLCJiZy1jb2xvciI6W3tiZzpCKCl9XSwiZ3JhZGllbnQtZnJvbS1wb3MiOlt7ZnJvbTpWKCl9XSwiZ3JhZGllbnQtdmlhLXBvcyI6W3t2aWE6VigpfV0sImdyYWRpZW50LXRvLXBvcyI6W3t0bzpWKCl9XSwiZ3JhZGllbnQtZnJvbSI6W3tmcm9tOkIoKX1dLCJncmFkaWVudC12aWEiOlt7dmlhOkIoKX1dLCJncmFkaWVudC10byI6W3t0bzpCKCl9XSxyb3VuZGVkOlt7cm91bmRlZDpxKCl9XSwicm91bmRlZC1zIjpbeyJyb3VuZGVkLXMiOnEoKX1dLCJyb3VuZGVkLWUiOlt7InJvdW5kZWQtZSI6cSgpfV0sInJvdW5kZWQtdCI6W3sicm91bmRlZC10IjpxKCl9XSwicm91bmRlZC1yIjpbeyJyb3VuZGVkLXIiOnEoKX1dLCJyb3VuZGVkLWIiOlt7InJvdW5kZWQtYiI6cSgpfV0sInJvdW5kZWQtbCI6W3sicm91bmRlZC1sIjpxKCl9XSwicm91bmRlZC1zcyI6W3sicm91bmRlZC1zcyI6cSgpfV0sInJvdW5kZWQtc2UiOlt7InJvdW5kZWQtc2UiOnEoKX1dLCJyb3VuZGVkLWVlIjpbeyJyb3VuZGVkLWVlIjpxKCl9XSwicm91bmRlZC1lcyI6W3sicm91bmRlZC1lcyI6cSgpfV0sInJvdW5kZWQtdGwiOlt7InJvdW5kZWQtdGwiOnEoKX1dLCJyb3VuZGVkLXRyIjpbeyJyb3VuZGVkLXRyIjpxKCl9XSwicm91bmRlZC1iciI6W3sicm91bmRlZC1iciI6cSgpfV0sInJvdW5kZWQtYmwiOlt7InJvdW5kZWQtYmwiOnEoKX1dLCJib3JkZXItdyI6W3tib3JkZXI6WigpfV0sImJvcmRlci13LXgiOlt7ImJvcmRlci14IjpaKCl9XSwiYm9yZGVyLXcteSI6W3siYm9yZGVyLXkiOlooKX1dLCJib3JkZXItdy1zIjpbeyJib3JkZXItcyI6WigpfV0sImJvcmRlci13LWUiOlt7ImJvcmRlci1lIjpaKCl9XSwiYm9yZGVyLXctdCI6W3siYm9yZGVyLXQiOlooKX1dLCJib3JkZXItdy1yIjpbeyJib3JkZXItciI6WigpfV0sImJvcmRlci13LWIiOlt7ImJvcmRlci1iIjpaKCl9XSwiYm9yZGVyLXctbCI6W3siYm9yZGVyLWwiOlooKX1dLCJkaXZpZGUteCI6W3siZGl2aWRlLXgiOlooKX1dLCJkaXZpZGUteC1yZXZlcnNlIjpbImRpdmlkZS14LXJldmVyc2UiXSwiZGl2aWRlLXkiOlt7ImRpdmlkZS15IjpaKCl9XSwiZGl2aWRlLXktcmV2ZXJzZSI6WyJkaXZpZGUteS1yZXZlcnNlIl0sImJvcmRlci1zdHlsZSI6W3tib3JkZXI6Wy4uLnN0KCksImhpZGRlbiIsIm5vbmUiXX1dLCJkaXZpZGUtc3R5bGUiOlt7ZGl2aWRlOlsuLi5zdCgpLCJoaWRkZW4iLCJub25lIl19XSwiYm9yZGVyLWNvbG9yIjpbe2JvcmRlcjpCKCl9XSwiYm9yZGVyLWNvbG9yLXgiOlt7ImJvcmRlci14IjpCKCl9XSwiYm9yZGVyLWNvbG9yLXkiOlt7ImJvcmRlci15IjpCKCl9XSwiYm9yZGVyLWNvbG9yLXMiOlt7ImJvcmRlci1zIjpCKCl9XSwiYm9yZGVyLWNvbG9yLWUiOlt7ImJvcmRlci1lIjpCKCl9XSwiYm9yZGVyLWNvbG9yLXQiOlt7ImJvcmRlci10IjpCKCl9XSwiYm9yZGVyLWNvbG9yLXIiOlt7ImJvcmRlci1yIjpCKCl9XSwiYm9yZGVyLWNvbG9yLWIiOlt7ImJvcmRlci1iIjpCKCl9XSwiYm9yZGVyLWNvbG9yLWwiOlt7ImJvcmRlci1sIjpCKCl9XSwiZGl2aWRlLWNvbG9yIjpbe2RpdmlkZTpCKCl9XSwib3V0bGluZS1zdHlsZSI6W3tvdXRsaW5lOlsuLi5zdCgpLCJub25lIiwiaGlkZGVuIl19XSwib3V0bGluZS1vZmZzZXQiOlt7Im91dGxpbmUtb2Zmc2V0IjpbZHQsSyxRXX1dLCJvdXRsaW5lLXciOlt7b3V0bGluZTpbIiIsZHQsUG4sdmFdfV0sIm91dGxpbmUtY29sb3IiOlt7b3V0bGluZTpCKCl9XSxzaGFkb3c6W3tzaGFkb3c6WyIiLCJub25lIixELGxpLGVpXX1dLCJzaGFkb3ctY29sb3IiOlt7c2hhZG93OkIoKX1dLCJpbnNldC1zaGFkb3ciOlt7Imluc2V0LXNoYWRvdyI6WyJub25lIixSLGxpLGVpXX1dLCJpbnNldC1zaGFkb3ctY29sb3IiOlt7Imluc2V0LXNoYWRvdyI6QigpfV0sInJpbmctdyI6W3tyaW5nOlooKX1dLCJyaW5nLXctaW5zZXQiOlsicmluZy1pbnNldCJdLCJyaW5nLWNvbG9yIjpbe3Jpbmc6QigpfV0sInJpbmctb2Zmc2V0LXciOlt7InJpbmctb2Zmc2V0IjpbZHQsdmFdfV0sInJpbmctb2Zmc2V0LWNvbG9yIjpbeyJyaW5nLW9mZnNldCI6QigpfV0sImluc2V0LXJpbmctdyI6W3siaW5zZXQtcmluZyI6WigpfV0sImluc2V0LXJpbmctY29sb3IiOlt7Imluc2V0LXJpbmciOkIoKX1dLCJ0ZXh0LXNoYWRvdyI6W3sidGV4dC1zaGFkb3ciOlsibm9uZSIsSixsaSxlaV19XSwidGV4dC1zaGFkb3ctY29sb3IiOlt7InRleHQtc2hhZG93IjpCKCl9XSxvcGFjaXR5Olt7b3BhY2l0eTpbZHQsSyxRXX1dLCJtaXgtYmxlbmQiOlt7Im1peC1ibGVuZCI6Wy4uLnR0KCksInBsdXMtZGFya2VyIiwicGx1cy1saWdodGVyIl19XSwiYmctYmxlbmQiOlt7ImJnLWJsZW5kIjp0dCgpfV0sIm1hc2stY2xpcCI6W3sibWFzay1jbGlwIjpbImJvcmRlciIsInBhZGRpbmciLCJjb250ZW50IiwiZmlsbCIsInN0cm9rZSIsInZpZXciXX0sIm1hc2stbm8tY2xpcCJdLCJtYXNrLWNvbXBvc2l0ZSI6W3ttYXNrOlsiYWRkIiwic3VidHJhY3QiLCJpbnRlcnNlY3QiLCJleGNsdWRlIl19XSwibWFzay1pbWFnZS1saW5lYXItcG9zIjpbeyJtYXNrLWxpbmVhciI6W2R0XX1dLCJtYXNrLWltYWdlLWxpbmVhci1mcm9tLXBvcyI6W3sibWFzay1saW5lYXItZnJvbSI6Z3QoKX1dLCJtYXNrLWltYWdlLWxpbmVhci10by1wb3MiOlt7Im1hc2stbGluZWFyLXRvIjpndCgpfV0sIm1hc2staW1hZ2UtbGluZWFyLWZyb20tY29sb3IiOlt7Im1hc2stbGluZWFyLWZyb20iOkIoKX1dLCJtYXNrLWltYWdlLWxpbmVhci10by1jb2xvciI6W3sibWFzay1saW5lYXItdG8iOkIoKX1dLCJtYXNrLWltYWdlLXQtZnJvbS1wb3MiOlt7Im1hc2stdC1mcm9tIjpndCgpfV0sIm1hc2staW1hZ2UtdC10by1wb3MiOlt7Im1hc2stdC10byI6Z3QoKX1dLCJtYXNrLWltYWdlLXQtZnJvbS1jb2xvciI6W3sibWFzay10LWZyb20iOkIoKX1dLCJtYXNrLWltYWdlLXQtdG8tY29sb3IiOlt7Im1hc2stdC10byI6QigpfV0sIm1hc2staW1hZ2Utci1mcm9tLXBvcyI6W3sibWFzay1yLWZyb20iOmd0KCl9XSwibWFzay1pbWFnZS1yLXRvLXBvcyI6W3sibWFzay1yLXRvIjpndCgpfV0sIm1hc2staW1hZ2Utci1mcm9tLWNvbG9yIjpbeyJtYXNrLXItZnJvbSI6QigpfV0sIm1hc2staW1hZ2Utci10by1jb2xvciI6W3sibWFzay1yLXRvIjpCKCl9XSwibWFzay1pbWFnZS1iLWZyb20tcG9zIjpbeyJtYXNrLWItZnJvbSI6Z3QoKX1dLCJtYXNrLWltYWdlLWItdG8tcG9zIjpbeyJtYXNrLWItdG8iOmd0KCl9XSwibWFzay1pbWFnZS1iLWZyb20tY29sb3IiOlt7Im1hc2stYi1mcm9tIjpCKCl9XSwibWFzay1pbWFnZS1iLXRvLWNvbG9yIjpbeyJtYXNrLWItdG8iOkIoKX1dLCJtYXNrLWltYWdlLWwtZnJvbS1wb3MiOlt7Im1hc2stbC1mcm9tIjpndCgpfV0sIm1hc2staW1hZ2UtbC10by1wb3MiOlt7Im1hc2stbC10byI6Z3QoKX1dLCJtYXNrLWltYWdlLWwtZnJvbS1jb2xvciI6W3sibWFzay1sLWZyb20iOkIoKX1dLCJtYXNrLWltYWdlLWwtdG8tY29sb3IiOlt7Im1hc2stbC10byI6QigpfV0sIm1hc2staW1hZ2UteC1mcm9tLXBvcyI6W3sibWFzay14LWZyb20iOmd0KCl9XSwibWFzay1pbWFnZS14LXRvLXBvcyI6W3sibWFzay14LXRvIjpndCgpfV0sIm1hc2staW1hZ2UteC1mcm9tLWNvbG9yIjpbeyJtYXNrLXgtZnJvbSI6QigpfV0sIm1hc2staW1hZ2UteC10by1jb2xvciI6W3sibWFzay14LXRvIjpCKCl9XSwibWFzay1pbWFnZS15LWZyb20tcG9zIjpbeyJtYXNrLXktZnJvbSI6Z3QoKX1dLCJtYXNrLWltYWdlLXktdG8tcG9zIjpbeyJtYXNrLXktdG8iOmd0KCl9XSwibWFzay1pbWFnZS15LWZyb20tY29sb3IiOlt7Im1hc2steS1mcm9tIjpCKCl9XSwibWFzay1pbWFnZS15LXRvLWNvbG9yIjpbeyJtYXNrLXktdG8iOkIoKX1dLCJtYXNrLWltYWdlLXJhZGlhbCI6W3sibWFzay1yYWRpYWwiOltLLFFdfV0sIm1hc2staW1hZ2UtcmFkaWFsLWZyb20tcG9zIjpbeyJtYXNrLXJhZGlhbC1mcm9tIjpndCgpfV0sIm1hc2staW1hZ2UtcmFkaWFsLXRvLXBvcyI6W3sibWFzay1yYWRpYWwtdG8iOmd0KCl9XSwibWFzay1pbWFnZS1yYWRpYWwtZnJvbS1jb2xvciI6W3sibWFzay1yYWRpYWwtZnJvbSI6QigpfV0sIm1hc2staW1hZ2UtcmFkaWFsLXRvLWNvbG9yIjpbeyJtYXNrLXJhZGlhbC10byI6QigpfV0sIm1hc2staW1hZ2UtcmFkaWFsLXNoYXBlIjpbeyJtYXNrLXJhZGlhbCI6WyJjaXJjbGUiLCJlbGxpcHNlIl19XSwibWFzay1pbWFnZS1yYWRpYWwtc2l6ZSI6W3sibWFzay1yYWRpYWwiOlt7Y2xvc2VzdDpbInNpZGUiLCJjb3JuZXIiXSxmYXJ0aGVzdDpbInNpZGUiLCJjb3JuZXIiXX1dfV0sIm1hc2staW1hZ2UtcmFkaWFsLXBvcyI6W3sibWFzay1yYWRpYWwtYXQiOlkoKX1dLCJtYXNrLWltYWdlLWNvbmljLXBvcyI6W3sibWFzay1jb25pYyI6W2R0XX1dLCJtYXNrLWltYWdlLWNvbmljLWZyb20tcG9zIjpbeyJtYXNrLWNvbmljLWZyb20iOmd0KCl9XSwibWFzay1pbWFnZS1jb25pYy10by1wb3MiOlt7Im1hc2stY29uaWMtdG8iOmd0KCl9XSwibWFzay1pbWFnZS1jb25pYy1mcm9tLWNvbG9yIjpbeyJtYXNrLWNvbmljLWZyb20iOkIoKX1dLCJtYXNrLWltYWdlLWNvbmljLXRvLWNvbG9yIjpbeyJtYXNrLWNvbmljLXRvIjpCKCl9XSwibWFzay1tb2RlIjpbe21hc2s6WyJhbHBoYSIsImx1bWluYW5jZSIsIm1hdGNoIl19XSwibWFzay1vcmlnaW4iOlt7Im1hc2stb3JpZ2luIjpbImJvcmRlciIsInBhZGRpbmciLCJjb250ZW50IiwiZmlsbCIsInN0cm9rZSIsInZpZXciXX1dLCJtYXNrLXBvc2l0aW9uIjpbe21hc2s6YnQoKX1dLCJtYXNrLXJlcGVhdCI6W3ttYXNrOnAoKX1dLCJtYXNrLXNpemUiOlt7bWFzazpqKCl9XSwibWFzay10eXBlIjpbeyJtYXNrLXR5cGUiOlsiYWxwaGEiLCJsdW1pbmFuY2UiXX1dLCJtYXNrLWltYWdlIjpbe21hc2s6WyJub25lIixLLFFdfV0sZmlsdGVyOlt7ZmlsdGVyOlsiIiwibm9uZSIsSyxRXX1dLGJsdXI6W3tibHVyOlR0KCl9XSxicmlnaHRuZXNzOlt7YnJpZ2h0bmVzczpbZHQsSyxRXX1dLGNvbnRyYXN0Olt7Y29udHJhc3Q6W2R0LEssUV19XSwiZHJvcC1zaGFkb3ciOlt7ImRyb3Atc2hhZG93IjpbIiIsIm5vbmUiLCQsbGksZWldfV0sImRyb3Atc2hhZG93LWNvbG9yIjpbeyJkcm9wLXNoYWRvdyI6QigpfV0sZ3JheXNjYWxlOlt7Z3JheXNjYWxlOlsiIixkdCxLLFFdfV0sImh1ZS1yb3RhdGUiOlt7Imh1ZS1yb3RhdGUiOltkdCxLLFFdfV0saW52ZXJ0Olt7aW52ZXJ0OlsiIixkdCxLLFFdfV0sc2F0dXJhdGU6W3tzYXR1cmF0ZTpbZHQsSyxRXX1dLHNlcGlhOlt7c2VwaWE6WyIiLGR0LEssUV19XSwiYmFja2Ryb3AtZmlsdGVyIjpbeyJiYWNrZHJvcC1maWx0ZXIiOlsiIiwibm9uZSIsSyxRXX1dLCJiYWNrZHJvcC1ibHVyIjpbeyJiYWNrZHJvcC1ibHVyIjpUdCgpfV0sImJhY2tkcm9wLWJyaWdodG5lc3MiOlt7ImJhY2tkcm9wLWJyaWdodG5lc3MiOltkdCxLLFFdfV0sImJhY2tkcm9wLWNvbnRyYXN0IjpbeyJiYWNrZHJvcC1jb250cmFzdCI6W2R0LEssUV19XSwiYmFja2Ryb3AtZ3JheXNjYWxlIjpbeyJiYWNrZHJvcC1ncmF5c2NhbGUiOlsiIixkdCxLLFFdfV0sImJhY2tkcm9wLWh1ZS1yb3RhdGUiOlt7ImJhY2tkcm9wLWh1ZS1yb3RhdGUiOltkdCxLLFFdfV0sImJhY2tkcm9wLWludmVydCI6W3siYmFja2Ryb3AtaW52ZXJ0IjpbIiIsZHQsSyxRXX1dLCJiYWNrZHJvcC1vcGFjaXR5IjpbeyJiYWNrZHJvcC1vcGFjaXR5IjpbZHQsSyxRXX1dLCJiYWNrZHJvcC1zYXR1cmF0ZSI6W3siYmFja2Ryb3Atc2F0dXJhdGUiOltkdCxLLFFdfV0sImJhY2tkcm9wLXNlcGlhIjpbeyJiYWNrZHJvcC1zZXBpYSI6WyIiLGR0LEssUV19XSwiYm9yZGVyLWNvbGxhcHNlIjpbe2JvcmRlcjpbImNvbGxhcHNlIiwic2VwYXJhdGUiXX1dLCJib3JkZXItc3BhY2luZyI6W3siYm9yZGVyLXNwYWNpbmciOlgoKX1dLCJib3JkZXItc3BhY2luZy14IjpbeyJib3JkZXItc3BhY2luZy14IjpYKCl9XSwiYm9yZGVyLXNwYWNpbmcteSI6W3siYm9yZGVyLXNwYWNpbmcteSI6WCgpfV0sInRhYmxlLWxheW91dCI6W3t0YWJsZTpbImF1dG8iLCJmaXhlZCJdfV0sY2FwdGlvbjpbe2NhcHRpb246WyJ0b3AiLCJib3R0b20iXX1dLHRyYW5zaXRpb246W3t0cmFuc2l0aW9uOlsiIiwiYWxsIiwiY29sb3JzIiwib3BhY2l0eSIsInNoYWRvdyIsInRyYW5zZm9ybSIsIm5vbmUiLEssUV19XSwidHJhbnNpdGlvbi1iZWhhdmlvciI6W3t0cmFuc2l0aW9uOlsibm9ybWFsIiwiZGlzY3JldGUiXX1dLGR1cmF0aW9uOlt7ZHVyYXRpb246W2R0LCJpbml0aWFsIixLLFFdfV0sZWFzZTpbe2Vhc2U6WyJsaW5lYXIiLCJpbml0aWFsIixodCxLLFFdfV0sZGVsYXk6W3tkZWxheTpbZHQsSyxRXX1dLGFuaW1hdGU6W3thbmltYXRlOlsibm9uZSIsU3QsSyxRXX1dLGJhY2tmYWNlOlt7YmFja2ZhY2U6WyJoaWRkZW4iLCJ2aXNpYmxlIl19XSxwZXJzcGVjdGl2ZTpbe3BlcnNwZWN0aXZlOlthdCxLLFFdfV0sInBlcnNwZWN0aXZlLW9yaWdpbiI6W3sicGVyc3BlY3RpdmUtb3JpZ2luIjpIKCl9XSxyb3RhdGU6W3tyb3RhdGU6UHQoKX1dLCJyb3RhdGUteCI6W3sicm90YXRlLXgiOlB0KCl9XSwicm90YXRlLXkiOlt7InJvdGF0ZS15IjpQdCgpfV0sInJvdGF0ZS16IjpbeyJyb3RhdGUteiI6UHQoKX1dLHNjYWxlOlt7c2NhbGU6S2UoKX1dLCJzY2FsZS14IjpbeyJzY2FsZS14IjpLZSgpfV0sInNjYWxlLXkiOlt7InNjYWxlLXkiOktlKCl9XSwic2NhbGUteiI6W3sic2NhbGUteiI6S2UoKX1dLCJzY2FsZS0zZCI6WyJzY2FsZS0zZCJdLHNrZXc6W3tza2V3OkNlKCl9XSwic2tldy14IjpbeyJza2V3LXgiOkNlKCl9XSwic2tldy15IjpbeyJza2V3LXkiOkNlKCl9XSx0cmFuc2Zvcm06W3t0cmFuc2Zvcm06W0ssUSwiIiwibm9uZSIsImdwdSIsImNwdSJdfV0sInRyYW5zZm9ybS1vcmlnaW4iOlt7b3JpZ2luOkgoKX1dLCJ0cmFuc2Zvcm0tc3R5bGUiOlt7dHJhbnNmb3JtOlsiM2QiLCJmbGF0Il19XSx0cmFuc2xhdGU6W3t0cmFuc2xhdGU6UGUoKX1dLCJ0cmFuc2xhdGUteCI6W3sidHJhbnNsYXRlLXgiOlBlKCl9XSwidHJhbnNsYXRlLXkiOlt7InRyYW5zbGF0ZS15IjpQZSgpfV0sInRyYW5zbGF0ZS16IjpbeyJ0cmFuc2xhdGUteiI6UGUoKX1dLCJ0cmFuc2xhdGUtbm9uZSI6WyJ0cmFuc2xhdGUtbm9uZSJdLGFjY2VudDpbe2FjY2VudDpCKCl9XSxhcHBlYXJhbmNlOlt7YXBwZWFyYW5jZTpbIm5vbmUiLCJhdXRvIl19XSwiY2FyZXQtY29sb3IiOlt7Y2FyZXQ6QigpfV0sImNvbG9yLXNjaGVtZSI6W3tzY2hlbWU6WyJub3JtYWwiLCJkYXJrIiwibGlnaHQiLCJsaWdodC1kYXJrIiwib25seS1kYXJrIiwib25seS1saWdodCJdfV0sY3Vyc29yOlt7Y3Vyc29yOlsiYXV0byIsImRlZmF1bHQiLCJwb2ludGVyIiwid2FpdCIsInRleHQiLCJtb3ZlIiwiaGVscCIsIm5vdC1hbGxvd2VkIiwibm9uZSIsImNvbnRleHQtbWVudSIsInByb2dyZXNzIiwiY2VsbCIsImNyb3NzaGFpciIsInZlcnRpY2FsLXRleHQiLCJhbGlhcyIsImNvcHkiLCJuby1kcm9wIiwiZ3JhYiIsImdyYWJiaW5nIiwiYWxsLXNjcm9sbCIsImNvbC1yZXNpemUiLCJyb3ctcmVzaXplIiwibi1yZXNpemUiLCJlLXJlc2l6ZSIsInMtcmVzaXplIiwidy1yZXNpemUiLCJuZS1yZXNpemUiLCJudy1yZXNpemUiLCJzZS1yZXNpemUiLCJzdy1yZXNpemUiLCJldy1yZXNpemUiLCJucy1yZXNpemUiLCJuZXN3LXJlc2l6ZSIsIm53c2UtcmVzaXplIiwiem9vbS1pbiIsInpvb20tb3V0IixLLFFdfV0sImZpZWxkLXNpemluZyI6W3siZmllbGQtc2l6aW5nIjpbImZpeGVkIiwiY29udGVudCJdfV0sInBvaW50ZXItZXZlbnRzIjpbeyJwb2ludGVyLWV2ZW50cyI6WyJhdXRvIiwibm9uZSJdfV0scmVzaXplOlt7cmVzaXplOlsibm9uZSIsIiIsInkiLCJ4Il19XSwic2Nyb2xsLWJlaGF2aW9yIjpbe3Njcm9sbDpbImF1dG8iLCJzbW9vdGgiXX1dLCJzY3JvbGwtbSI6W3sic2Nyb2xsLW0iOlgoKX1dLCJzY3JvbGwtbXgiOlt7InNjcm9sbC1teCI6WCgpfV0sInNjcm9sbC1teSI6W3sic2Nyb2xsLW15IjpYKCl9XSwic2Nyb2xsLW1zIjpbeyJzY3JvbGwtbXMiOlgoKX1dLCJzY3JvbGwtbWUiOlt7InNjcm9sbC1tZSI6WCgpfV0sInNjcm9sbC1tdCI6W3sic2Nyb2xsLW10IjpYKCl9XSwic2Nyb2xsLW1yIjpbeyJzY3JvbGwtbXIiOlgoKX1dLCJzY3JvbGwtbWIiOlt7InNjcm9sbC1tYiI6WCgpfV0sInNjcm9sbC1tbCI6W3sic2Nyb2xsLW1sIjpYKCl9XSwic2Nyb2xsLXAiOlt7InNjcm9sbC1wIjpYKCl9XSwic2Nyb2xsLXB4IjpbeyJzY3JvbGwtcHgiOlgoKX1dLCJzY3JvbGwtcHkiOlt7InNjcm9sbC1weSI6WCgpfV0sInNjcm9sbC1wcyI6W3sic2Nyb2xsLXBzIjpYKCl9XSwic2Nyb2xsLXBlIjpbeyJzY3JvbGwtcGUiOlgoKX1dLCJzY3JvbGwtcHQiOlt7InNjcm9sbC1wdCI6WCgpfV0sInNjcm9sbC1wciI6W3sic2Nyb2xsLXByIjpYKCl9XSwic2Nyb2xsLXBiIjpbeyJzY3JvbGwtcGIiOlgoKX1dLCJzY3JvbGwtcGwiOlt7InNjcm9sbC1wbCI6WCgpfV0sInNuYXAtYWxpZ24iOlt7c25hcDpbInN0YXJ0IiwiZW5kIiwiY2VudGVyIiwiYWxpZ24tbm9uZSJdfV0sInNuYXAtc3RvcCI6W3tzbmFwOlsibm9ybWFsIiwiYWx3YXlzIl19XSwic25hcC10eXBlIjpbe3NuYXA6WyJub25lIiwieCIsInkiLCJib3RoIl19XSwic25hcC1zdHJpY3RuZXNzIjpbe3NuYXA6WyJtYW5kYXRvcnkiLCJwcm94aW1pdHkiXX1dLHRvdWNoOlt7dG91Y2g6WyJhdXRvIiwibm9uZSIsIm1hbmlwdWxhdGlvbiJdfV0sInRvdWNoLXgiOlt7InRvdWNoLXBhbiI6WyJ4IiwibGVmdCIsInJpZ2h0Il19XSwidG91Y2gteSI6W3sidG91Y2gtcGFuIjpbInkiLCJ1cCIsImRvd24iXX1dLCJ0b3VjaC1weiI6WyJ0b3VjaC1waW5jaC16b29tIl0sc2VsZWN0Olt7c2VsZWN0Olsibm9uZSIsInRleHQiLCJhbGwiLCJhdXRvIl19XSwid2lsbC1jaGFuZ2UiOlt7IndpbGwtY2hhbmdlIjpbImF1dG8iLCJzY3JvbGwiLCJjb250ZW50cyIsInRyYW5zZm9ybSIsSyxRXX1dLGZpbGw6W3tmaWxsOlsibm9uZSIsLi4uQigpXX1dLCJzdHJva2UtdyI6W3tzdHJva2U6W2R0LFBuLHZhLHFyXX1dLHN0cm9rZTpbe3N0cm9rZTpbIm5vbmUiLC4uLkIoKV19XSwiZm9yY2VkLWNvbG9yLWFkanVzdCI6W3siZm9yY2VkLWNvbG9yLWFkanVzdCI6WyJhdXRvIiwibm9uZSJdfV19LGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6e292ZXJmbG93Olsib3ZlcmZsb3cteCIsIm92ZXJmbG93LXkiXSxvdmVyc2Nyb2xsOlsib3ZlcnNjcm9sbC14Iiwib3ZlcnNjcm9sbC15Il0saW5zZXQ6WyJpbnNldC14IiwiaW5zZXQteSIsInN0YXJ0IiwiZW5kIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Il0sImluc2V0LXgiOlsicmlnaHQiLCJsZWZ0Il0sImluc2V0LXkiOlsidG9wIiwiYm90dG9tIl0sZmxleDpbImJhc2lzIiwiZ3JvdyIsInNocmluayJdLGdhcDpbImdhcC14IiwiZ2FwLXkiXSxwOlsicHgiLCJweSIsInBzIiwicGUiLCJwdCIsInByIiwicGIiLCJwbCJdLHB4OlsicHIiLCJwbCJdLHB5OlsicHQiLCJwYiJdLG06WyJteCIsIm15IiwibXMiLCJtZSIsIm10IiwibXIiLCJtYiIsIm1sIl0sbXg6WyJtciIsIm1sIl0sbXk6WyJtdCIsIm1iIl0sc2l6ZTpbInciLCJoIl0sImZvbnQtc2l6ZSI6WyJsZWFkaW5nIl0sImZ2bi1ub3JtYWwiOlsiZnZuLW9yZGluYWwiLCJmdm4tc2xhc2hlZC16ZXJvIiwiZnZuLWZpZ3VyZSIsImZ2bi1zcGFjaW5nIiwiZnZuLWZyYWN0aW9uIl0sImZ2bi1vcmRpbmFsIjpbImZ2bi1ub3JtYWwiXSwiZnZuLXNsYXNoZWQtemVybyI6WyJmdm4tbm9ybWFsIl0sImZ2bi1maWd1cmUiOlsiZnZuLW5vcm1hbCJdLCJmdm4tc3BhY2luZyI6WyJmdm4tbm9ybWFsIl0sImZ2bi1mcmFjdGlvbiI6WyJmdm4tbm9ybWFsIl0sImxpbmUtY2xhbXAiOlsiZGlzcGxheSIsIm92ZXJmbG93Il0scm91bmRlZDpbInJvdW5kZWQtcyIsInJvdW5kZWQtZSIsInJvdW5kZWQtdCIsInJvdW5kZWQtciIsInJvdW5kZWQtYiIsInJvdW5kZWQtbCIsInJvdW5kZWQtc3MiLCJyb3VuZGVkLXNlIiwicm91bmRlZC1lZSIsInJvdW5kZWQtZXMiLCJyb3VuZGVkLXRsIiwicm91bmRlZC10ciIsInJvdW5kZWQtYnIiLCJyb3VuZGVkLWJsIl0sInJvdW5kZWQtcyI6WyJyb3VuZGVkLXNzIiwicm91bmRlZC1lcyJdLCJyb3VuZGVkLWUiOlsicm91bmRlZC1zZSIsInJvdW5kZWQtZWUiXSwicm91bmRlZC10IjpbInJvdW5kZWQtdGwiLCJyb3VuZGVkLXRyIl0sInJvdW5kZWQtciI6WyJyb3VuZGVkLXRyIiwicm91bmRlZC1iciJdLCJyb3VuZGVkLWIiOlsicm91bmRlZC1iciIsInJvdW5kZWQtYmwiXSwicm91bmRlZC1sIjpbInJvdW5kZWQtdGwiLCJyb3VuZGVkLWJsIl0sImJvcmRlci1zcGFjaW5nIjpbImJvcmRlci1zcGFjaW5nLXgiLCJib3JkZXItc3BhY2luZy15Il0sImJvcmRlci13IjpbImJvcmRlci13LXgiLCJib3JkZXItdy15IiwiYm9yZGVyLXctcyIsImJvcmRlci13LWUiLCJib3JkZXItdy10IiwiYm9yZGVyLXctciIsImJvcmRlci13LWIiLCJib3JkZXItdy1sIl0sImJvcmRlci13LXgiOlsiYm9yZGVyLXctciIsImJvcmRlci13LWwiXSwiYm9yZGVyLXcteSI6WyJib3JkZXItdy10IiwiYm9yZGVyLXctYiJdLCJib3JkZXItY29sb3IiOlsiYm9yZGVyLWNvbG9yLXgiLCJib3JkZXItY29sb3IteSIsImJvcmRlci1jb2xvci1zIiwiYm9yZGVyLWNvbG9yLWUiLCJib3JkZXItY29sb3ItdCIsImJvcmRlci1jb2xvci1yIiwiYm9yZGVyLWNvbG9yLWIiLCJib3JkZXItY29sb3ItbCJdLCJib3JkZXItY29sb3IteCI6WyJib3JkZXItY29sb3ItciIsImJvcmRlci1jb2xvci1sIl0sImJvcmRlci1jb2xvci15IjpbImJvcmRlci1jb2xvci10IiwiYm9yZGVyLWNvbG9yLWIiXSx0cmFuc2xhdGU6WyJ0cmFuc2xhdGUteCIsInRyYW5zbGF0ZS15IiwidHJhbnNsYXRlLW5vbmUiXSwidHJhbnNsYXRlLW5vbmUiOlsidHJhbnNsYXRlIiwidHJhbnNsYXRlLXgiLCJ0cmFuc2xhdGUteSIsInRyYW5zbGF0ZS16Il0sInNjcm9sbC1tIjpbInNjcm9sbC1teCIsInNjcm9sbC1teSIsInNjcm9sbC1tcyIsInNjcm9sbC1tZSIsInNjcm9sbC1tdCIsInNjcm9sbC1tciIsInNjcm9sbC1tYiIsInNjcm9sbC1tbCJdLCJzY3JvbGwtbXgiOlsic2Nyb2xsLW1yIiwic2Nyb2xsLW1sIl0sInNjcm9sbC1teSI6WyJzY3JvbGwtbXQiLCJzY3JvbGwtbWIiXSwic2Nyb2xsLXAiOlsic2Nyb2xsLXB4Iiwic2Nyb2xsLXB5Iiwic2Nyb2xsLXBzIiwic2Nyb2xsLXBlIiwic2Nyb2xsLXB0Iiwic2Nyb2xsLXByIiwic2Nyb2xsLXBiIiwic2Nyb2xsLXBsIl0sInNjcm9sbC1weCI6WyJzY3JvbGwtcHIiLCJzY3JvbGwtcGwiXSwic2Nyb2xsLXB5IjpbInNjcm9sbC1wdCIsInNjcm9sbC1wYiJdLHRvdWNoOlsidG91Y2gteCIsInRvdWNoLXkiLCJ0b3VjaC1weiJdLCJ0b3VjaC14IjpbInRvdWNoIl0sInRvdWNoLXkiOlsidG91Y2giXSwidG91Y2gtcHoiOlsidG91Y2giXX0sY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzOnsiZm9udC1zaXplIjpbImxlYWRpbmciXX0sb3JkZXJTZW5zaXRpdmVNb2RpZmllcnM6WyIqIiwiKioiLCJhZnRlciIsImJhY2tkcm9wIiwiYmVmb3JlIiwiZGV0YWlscy1jb250ZW50IiwiZmlsZSIsImZpcnN0LWxldHRlciIsImZpcnN0LWxpbmUiLCJtYXJrZXIiLCJwbGFjZWhvbGRlciIsInNlbGVjdGlvbiJdfX0pO2NsYXNzIHRne2NuKC4uLmkpe3JldHVybiBJbSh4bShpKSl9Y3JlYXRlUmVhZHlTb3VyY2UoKXtsZXQgaT0hMSx1PVtdO3JldHVybntnZXQgcmVhZHkoKXtyZXR1cm4gaX0sbWFya1JlYWR5OigpPT57aXx8KGk9ITAsdS5mb3JFYWNoKCh7cmVzb2x2ZTpzfSk9PnMoKSksdT1bXSl9LHdhaXRSZWFkeTphc3luYygpPT5pPyEwOm5ldyBQcm9taXNlKChmLG0pPT57dS5wdXNoKHtyZXNvbHZlOmYscmVqZWN0Om19KX0pLG9uUmVhZHkocyl7dGhpcy53YWl0UmVhZHkoKS50aGVuKHMpfSxjbGVhcjooKT0+e2k9ITEsdS5mb3JFYWNoKCh7cmVqZWN0OnN9KT0+cygpKSx1PVtdfSxjbGVhcldpdGhvdXRQcm9taXNlOigpPT57aT0hMX19fW9uRE9NUmVhZHkoaSl7ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJsb2FkaW5nIj9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixpKTppKCl9fWNvbnN0IEFlPW5ldyB0ZztjbGFzcyBlZ3tyZWFkeVNvdXJjZT1BZS5jcmVhdGVSZWFkeVNvdXJjZSgpO2lmcmFtZUVsZW1lbnQ9bnVsbDtjdXJyZW50RW5kcG9pbnQ9bnVsbDttZXNzYWdlUXVldWU9W107aW5pdGVkPSExO3NlbmRNZXNzYWdlKGkpe2lmKGkudG8hPT10aGlzLmN1cnJlbnRFbmRwb2ludCl7aWYoaS50bz09PSJjb250ZW50Iil7aWYoIXRoaXMuaWZyYW1lRWxlbWVudD8uY29udGVudFdpbmRvdylyZXR1cm47dGhpcy5pZnJhbWVFbGVtZW50LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UodGhpcy5wYWNrTWVzc2FnZShpKSwiKiIpfWkudG89PT0iY29udGFpbmVyIiYmd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh0aGlzLnBhY2tNZXNzYWdlKGkpLCIqIil9fWxpc3Rlbk1lc3NhZ2UoaSl7Y29uc3QgdT1zPT57dGhpcy5zZW5kTWVzc2FnZSh7dHlwZToiZ2V0TWVzc2FnZSIsdG86ImNvbnRhaW5lciIscGF5bG9hZDp7bWVzc2FnZVR5cGU6aS50eXBlfX0pLGkuY2FsbGJhY2socyl9O3JldHVybiB0aGlzLm1lc3NhZ2VRdWV1ZS5wdXNoKHt0eXBlOmkudHlwZSxjYWxsYmFjazp1fSksKCk9Pnt0aGlzLm1lc3NhZ2VRdWV1ZT10aGlzLm1lc3NhZ2VRdWV1ZS5maWx0ZXIocz0+cy5jYWxsYmFjayE9PXUpfX11cGRhdGVJZnJhbWVFbGVtZW50KGkpe3RoaXMuaWZyYW1lRWxlbWVudD1pfWluaXQoaSl7dGhpcy5pbml0ZWR8fCh0aGlzLmluaXRlZD0hMCx0aGlzLmN1cnJlbnRFbmRwb2ludD1pLmN1cnJlbnRFbmRwb2ludCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdT0+e2NvbnN0IHM9dS5kYXRhO3MudHlwZT09PSJTcGFjZVByZXZpZXdlckNoYW5uZWwiJiZ0aGlzLm1lc3NhZ2VRdWV1ZS5mb3JFYWNoKGY9PntmLnR5cGU9PT1zLnBheWxvYWQudHlwZSYmcy5wYXlsb2FkLnRvPT09dGhpcy5jdXJyZW50RW5kcG9pbnQmJmYuY2FsbGJhY2socy5wYXlsb2FkLnBheWxvYWQpfSl9KSl9cGFja01lc3NhZ2UoaSl7cmV0dXJue3R5cGU6IlNwYWNlUHJldmlld2VyQ2hhbm5lbCIscGF5bG9hZDp7Li4uaSxmcm9tOnRoaXMuY3VycmVudEVuZHBvaW50fX19fWNvbnN0IGllPW5ldyBlZztmdW5jdGlvbiBsZygpe2NvbnN0IHI9KCk9Pntjb25zdCBpPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2llLnNlbmRNZXNzYWdlKHt0eXBlOiJyZXBvcnROb3Rmb3VuZCIsdG86ImNvbnRhaW5lciIscGF5bG9hZDp7dXJsOml9fSl9O3JldHVybiBoLmpzeHMoImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDoxNiIsaWQ6Im5vdC1mb3VuZC1maXgtYnV0dG9uIixvbkNsaWNrOnIsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsd2lkdGg6IjEwMCUiLGdhcDoiOHB4IixiYWNrZ3JvdW5kOiIjMWExYTE5Iixjb2xvcjoiI2ZmZiIsZm9udFdlaWdodDoiNTAwIixmb250U2l6ZToiMTRweCIsaGVpZ2h0OiIzNnB4Iixib3JkZXJSYWRpdXM6IjEwcHgiLHBhZGRpbmc6IjEwcHggMTJweCJ9LGNoaWxkcmVuOltoLmpzeHMoInN2ZyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDozNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoiMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIyIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixjbGFzc05hbWU6InctNCBoLTQiLGNoaWxkcmVuOltoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDo0NiIsZDoiTTEyIDJ2NCJ9KSxoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDo0NyIsZDoibTE2LjIgNy44IDIuOS0yLjkifSksaC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Ob3RGb3VuZEJ1dHRvbi9Ob3RGb3VuZEJ1dHRvbi50c3g6NDgiLGQ6Ik0xOCAxMmg0In0pLGguanN4KCJwYXRoIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvTm90Rm91bmRCdXR0b24vTm90Rm91bmRCdXR0b24udHN4OjQ5IixkOiJtMTYuMiAxNi4yIDIuOSAyLjkifSksaC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Ob3RGb3VuZEJ1dHRvbi9Ob3RGb3VuZEJ1dHRvbi50c3g6NTAiLGQ6Ik0xMiAxOHY0In0pLGguanN4KCJwYXRoIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvTm90Rm91bmRCdXR0b24vTm90Rm91bmRCdXR0b24udHN4OjUxIixkOiJtNC45IDE5LjEgMi45LTIuOSJ9KSxoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDo1MiIsZDoiTTIgMTJoNCJ9KSxoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL05vdEZvdW5kQnV0dG9uL05vdEZvdW5kQnV0dG9uLnRzeDo1MyIsZDoibTQuOSA0LjkgMi45IDIuOSJ9KV19KSwiRml4IFVSTCJdfSl9Y2xhc3MgYWd7aW5pdGlhbEhyZWY9ITE7bGFzdEhyZWY9IiI7b3JpZ2luYWxQdXNoU3RhdGU7b3JpZ2luYWxSZXBsYWNlU3RhdGU7aW5pdCgpe3RoaXMuaW5pdGlhbEhyZWZ8fCh0aGlzLmluaXRpYWxIcmVmPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsKCk9Pnt0aGlzLm5vdGlmeUNvbnRhaW5lcigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCgpPT57dGhpcy5ub3RpZnlDb250YWluZXIoKX0pLHRoaXMub3JpZ2luYWxQdXNoU3RhdGU9d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlLmJpbmQod2luZG93Lmhpc3RvcnkpLHRoaXMub3JpZ2luYWxSZXBsYWNlU3RhdGU9d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlLmJpbmQod2luZG93Lmhpc3RvcnkpLHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZT0oLi4uaSk9Pnt0aGlzLm9yaWdpbmFsUHVzaFN0YXRlKC4uLmkpLHRoaXMubm90aWZ5Q29udGFpbmVyKCl9LHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZT0oLi4uaSk9Pnt0aGlzLm9yaWdpbmFsUmVwbGFjZVN0YXRlKC4uLmkpLHRoaXMubm90aWZ5Q29udGFpbmVyKCl9LGllLmxpc3Rlbk1lc3NhZ2Uoe3R5cGU6InJlZnJlc2giLGNhbGxiYWNrOmk9Pntjb25zdHtwYXRoOnV9PWk7dT93aW5kb3cubG9jYXRpb24uaHJlZj11OndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX19KSx0aGlzLmNoZWNrQ29udGVudFJvdXRlc0luaXRlZCgpLnRoZW4oKCk9Pnt0aGlzLm5vdGlmeUNvbnRhaW5lcigpfSkpfWNoZWNrQ29udGVudFJvdXRlc0luaXRlZCgpe3JldHVybiBuZXcgUHJvbWlzZShpPT57Y29uc3QgdT1zZXRJbnRlcnZhbCgoKT0+e3dpbmRvdy5fX1dPVVRFUl9ST1VURVNfXyYmKGNsZWFySW50ZXJ2YWwodSksaSghMCkpfSwyMCl9KX1ub3RpZnlDb250YWluZXIoKXtjb25zdCBpPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2lmKHRoaXMubGFzdEhyZWY9PT1pKXJldHVybjt0aGlzLmxhc3RIcmVmPWk7Y29uc3QgdT13aW5kb3cuX19XT1VURVJfUk9VVEVTX198fFtdLHM9QXJyYXkuaXNBcnJheSh1KT91OltdO2llLnNlbmRNZXNzYWdlKHt0eXBlOiJ1cmxDaGFuZ2UiLHRvOiJjb250YWluZXIiLHBheWxvYWQ6e2hyZWY6aSxhbGxTdXBwb3J0ZWRVcmxzOnN9fSksaWUucmVhZHlTb3VyY2Uud2FpdFJlYWR5KCkudGhlbigoKT0+e3RoaXMuY2hlY2tJc05vdGZvdW5kQnV0dG9uR3JvdXAoKX0pfWNoZWNrSXNOb3Rmb3VuZEJ1dHRvbkdyb3VwKCl7Y29uc3QgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90LWZvdW5kLWJ1dHRvbi1ncm91cCIpO2lmKGkpe2NvbnN0IHU9Im5vdC1mb3VuZC1idXR0b24tY29udGFpbmVyIjtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1KSlyZXR1cm47Y29uc3Qgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmlkPXUsaS5hcHBlbmRDaGlsZChzKSxrci5jcmVhdGVSb290KHMpLnJlbmRlcihVLmNyZWF0ZUVsZW1lbnQobGcpKX19fWNvbnN0IHd1PW5ldyBhZztmdW5jdGlvbiBuZygpe2NvbnN0IHI9d2luZG93Ll9fTUFOVVNfSE9TVF9ERVZfXz8/ITEsaT13aW5kb3cubG9jYXRpb24uaG9zdG5hbWU9PT0ibG9jYWxob3N0Inx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lPT09IjEyNy4wLjAuMSIsW3Usc109VS51c2VTdGF0ZSghMSksW2YsbV09VS51c2VTdGF0ZSghMSk7cmV0dXJuIFUudXNlRWZmZWN0KCgpPT57aWUucmVhZHlTb3VyY2Uud2FpdFJlYWR5KCkudGhlbigoKT0+e3MoITEpfSksd3UuY2hlY2tDb250ZW50Um91dGVzSW5pdGVkKCkudGhlbigoKT0+e3NldFRpbWVvdXQoKCk9PntpZS5yZWFkeVNvdXJjZS5yZWFkeXx8cyghMCl9LDEyMDApfSl9LFtdKSwhcnx8IXV8fGl8fGY/bnVsbDpoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0FsZXJ0L1ByZXZpZXdlck1vZGVBbGVydC50c3g6NDkiLGNsYXNzTmFtZToiZml4ZWQgYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgei1bOTk5OTk5XSB3LWZ1bGwgcHktMiBweC0yIHByLTQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgYmctWyNmZGY0ZTBdIixjaGlsZHJlbjpbaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9BbGVydC9QcmV2aWV3ZXJNb2RlQWxlcnQudHN4OjUwIixjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHBvaW50ZXItZXZlbnRzLW5vbmUgZmxleC0xIixjaGlsZHJlbjpbaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9BbGVydC9QcmV2aWV3ZXJNb2RlQWxlcnQudHN4OjUxIixjbGFzc05hbWU6InB4LTIgcHktMSBiZy1bcmdiYSgyMzksMTYyLDEsMC4xMildIHJvdW5kZWQtZnVsbCBpdGVtcy1jZW50ZXIgZ2FwLTIgaGlkZGVuIG1kOmZsZXgiLGNoaWxkcmVuOltoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvQWxlcnQvUHJldmlld2VyTW9kZUFsZXJ0LnRzeDo1MiIsY2xhc3NOYW1lOiJ3LVsxOHB4XSBoLVsxOHB4XSB0ZXh0LVt2YXIoLS1pY29uLXByaW1hcnksIzM0MzIyRCldIixjaGlsZHJlbjpoLmpzeChibSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvQWxlcnQvUHJldmlld2VyTW9kZUFsZXJ0LnRzeDo1MyIsc2l6ZToxOH0pfSksaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9BbGVydC9QcmV2aWV3ZXJNb2RlQWxlcnQudHN4OjU1IixjbGFzc05hbWU6InRleHQtc20gZm9udC1tZWRpdW0gbGVhZGluZy01IHRleHQtW3ZhcigtLXRleHQtcHJpbWFyeSwjMzQzMjJEKV0iLGNoaWxkcmVuOiJQcmV2aWV3IG1vZGUifSldfSksaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9BbGVydC9QcmV2aWV3ZXJNb2RlQWxlcnQudHN4OjU5IixjbGFzc05hbWU6InRleHQtc20gZm9udC1ub3JtYWwgbGVhZGluZy01IHRleHQtW3ZhcigtLXRleHQtcHJpbWFyeSwjMzQzMjJEKV0iLGNoaWxkcmVuOiJUaGlzIHBhZ2UgaXMgbm90IGxpdmUgYW5kIGNhbm5vdCBiZSBzaGFyZWQgZGlyZWN0bHkuIFBsZWFzZSBwdWJsaXNoIHRvIGdldCBhIHB1YmxpYyBsaW5rLiJ9KV19KSxoLmpzeCgiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvQWxlcnQvUHJldmlld2VyTW9kZUFsZXJ0LnRzeDo2NCIsY2xhc3NOYW1lOiJ3LTQgaC00IGZsZXgtc2hyaW5rLTAgY3Vyc29yLXBvaW50ZXIiLG9uQ2xpY2s6KCk9PnttKCEwKX0sY2hpbGRyZW46aC5qc3goInN2ZyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0FsZXJ0L1ByZXZpZXdlck1vZGVBbGVydC50c3g6NzAiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOmguanN4KCJwYXRoIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvQWxlcnQvUHJldmlld2VyTW9kZUFsZXJ0LnRzeDo3NyIsZDoiTTEyIDRMNCAxMk00IDRMMTIgMTIiLHN0cm9rZToidmFyKC0taWNvbi10ZXJ0aWFyeSwgIzg1ODQ4MSkiLHN0cm9rZVdpZHRoOiIxLjUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIn0pfSl9KV19KX1jbGFzcyBTdXtlbWl0dGVyO2V2ZW50O2hhbmRsZXI7ZGVzdHJveWVkPSExO2xpc3RlbkJ5O2NvbnN0cnVjdG9yKGksdSxzLGYpe3RoaXMuZXZlbnQ9aSx0aGlzLmhhbmRsZXI9dSx0aGlzLmVtaXR0ZXI9cyx0aGlzLmxpc3RlbkJ5PWZ9dW5yZWdpc3Rlcigpe3RoaXMuZW1pdHRlci5vZmYodGhpcy5ldmVudCx0aGlzKSx0aGlzLl9kZXN0cm95KCl9X2Rlc3Ryb3koKXtyZXR1cm4gdGhpcy5kZXN0cm95ZWQ/ITE6KHRoaXMuaGFuZGxlcj1udWxsLHRoaXMuZW1pdHRlcj1udWxsLHRoaXMuZGVzdHJveWVkPSEwLCEwKX19Y2xhc3Mgb2d7X2V2ZW50cz17fTtvbihpLHUpe2lmKCF1KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaGFuZGxlciEgLS1FdmVudEVtaXR0ZXIiKTt0aGlzLl9ldmVudHNbaV18fCh0aGlzLl9ldmVudHNbaV09W10pO2NvbnN0IHM9bmV3IFN1KGksdSx0aGlzLG51bGwpO3JldHVybiB0aGlzLl9ldmVudHNbaV0/LnB1c2gocyksc31saXN0ZW5CeShpLHUscyl7aWYoIXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBoYW5kbGVyISAtLUV2ZW50RW1pdHRlciIpO3RoaXMuX2V2ZW50c1t1XXx8KHRoaXMuX2V2ZW50c1t1XT1bXSk7Y29uc3QgZj1uZXcgU3UodSxzLHRoaXMsaSk7cmV0dXJuIHRoaXMuX2V2ZW50c1t1XT8ucHVzaChmKSxmfW9uY2UoaSx1KXtjb25zdCBzPXRoaXMub24oaSxmPT57dShmKSxzLnVucmVnaXN0ZXIoKX0pO3JldHVybiBzfWVtaXQoaSx1PW51bGwpe2lmKCF0aGlzLl9ldmVudHNbaV0pcmV0dXJuITE7Zm9yKGNvbnN0IHMgb2YgdGhpcy5fZXZlbnRzW2ldKXMuZGVzdHJveWVkfHxzLmhhbmRsZXIuY2FsbCh0aGlzLHUpO3JldHVybiEwfW9mZihpLHUpe2lmKCF0aGlzLl9ldmVudHNbaV0pcmV0dXJuITE7aWYodSl7Zm9yKGxldCBzPXRoaXMuX2V2ZW50c1tpXSxmPTA7ZjxzLmxlbmd0aDtmKyspe2NvbnN0IG09c1tmXTtpZihtPT09dSlyZXR1cm4gdGhpcy5fZXZlbnRzW2ldPXRoaXMuX2V2ZW50c1tpXT8uZmlsdGVyKHg9PnghPT1tKSx0aGlzLl9ldmVudHNbaV0/Lmxlbmd0aD09PTAmJmRlbGV0ZSB0aGlzLl9ldmVudHNbaV0sITB9cmV0dXJuIGNvbnNvbGUuZXJyb3IodSx0aGlzKSxjb25zb2xlLmVycm9yKGBDYW5ub3QgZmluZCBsaXN0ZW5lciBvZiAke2l9IC0tRXZlbnRFbWl0dGVyYCksITF9Zm9yKGxldCBzPXRoaXMuX2V2ZW50c1tpXSxmPTA7ZjxzLmxlbmd0aDtmKyspe2NvbnN0IG09c1tmXTt0aGlzLl9ldmVudHNbaV1bZl09bnVsbCxtPy5fZGVzdHJveSgpfXJldHVybiBkZWxldGUgdGhpcy5fZXZlbnRzW2ldLCEwfXN0b3BMaXN0ZW5CeShpKXtmb3IoY29uc3QgdSBpbiB0aGlzLl9ldmVudHMpdGhpcy5fZXZlbnRzW3VdPXRoaXMuX2V2ZW50c1t1XT8uZmlsdGVyKHM9PnMubGlzdGVuQnk9PT1pPyhzLl9kZXN0cm95KCksITEpOiEwKX1yZW1vdmVBbGxMaXN0ZW5lcnMoKXtmb3IoY29uc3QgaSBpbiB0aGlzLl9ldmVudHMpe2NvbnN0IHU9dGhpcy5fZXZlbnRzW2ldO2lmKHUpe2ZvcihsZXQgcz11LGY9MDtmPHMubGVuZ3RoO2YrKyl1W2ZdPW51bGw7dGhpcy5fZXZlbnRzW2ldPW51bGx9fX19Y29uc3QgaWc9InVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3QiO2xldCByZz1yPT5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KHIpKSxzZz0ocixpLHUpPT57bGV0IHM9KDI8PE1hdGgubG9nMihyLmxlbmd0aC0xKSktMSxmPS1+KDEuNipzKmkvci5sZW5ndGgpO3JldHVybihtPWkpPT57bGV0IHg9IiI7Zm9yKDs7KXtsZXQgTj11KGYpLEM9ZnwwO2Zvcig7Qy0tOylpZih4Kz1yW05bQ10mc118fCIiLHgubGVuZ3RoPj1tKXJldHVybiB4fX19LGNnPShyLGk9MjEpPT5zZyhyLGl8MCxyZyk7ZnVuY3Rpb24gQ3UoKXtjb25zdCByPWlnLnJlcGxhY2UoL1stX10vZywiIik7cmV0dXJuIGNnKHIsMjIpKCl9Y2xhc3MgdWd7cmVhZHlTb3VyY2U9QWUuY3JlYXRlUmVhZHlTb3VyY2UoKTtldmVudEVtaXR0ZXI9bmV3IG9nO2luaXQoKXtjb25zdCBpPWNvbnNvbGUuZXJyb3I7Y29uc29sZS5lcnJvcj0oLi4udSk9Pntjb25zdCBzPXRoaXMucGFyc2VDb25zb2xlRXJyb3IoLi4udSkseD1uZXcgRXJyb3IoKS5zdGFjaz8uc3BsaXQoYApgKT8uc2xpY2UoMikuam9pbihgCmApO3MmJihzLmNhbGxTdGFjaz1zLmNhbGxTdGFja3x8eCx0aGlzLnJlYWR5U291cmNlLndhaXRSZWFkeSgpLnRoZW4oKCk9Pnt0aGlzLmV2ZW50RW1pdHRlci5lbWl0KCJjYXVnaHRFcnJvciIscyl9KSksaSguLi51KX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIix1PT57Y29uc3Qgcz10aGlzLnBhcnNlV2luZG93RXJyb3IodSk7cyYmdGhpcy5yZWFkeVNvdXJjZS53YWl0UmVhZHkoKS50aGVuKCgpPT57dGhpcy5ldmVudEVtaXR0ZXIuZW1pdCgiY2F1Z2h0RXJyb3IiLHMpfSl9KX1wYXJzZUNvbnNvbGVFcnJvciguLi5pKXtsZXQgdT0iIixzPSIiLGY9IiI7Zm9yKGNvbnN0IG0gb2YgaSl0eXBlb2YgbT09InN0cmluZyI/dSs9bSsiICI6bSBpbnN0YW5jZW9mIEVycm9yPyh1PW0ubWVzc2FnZSxzPW0uc3RhY2t8fCIiKTptPy5jb21wb25lbnRTdGFjayYmKGY9bS5jb21wb25lbnRTdGFjayk7cmV0dXJue2lkOkN1KCksZnJvbToiY29uc29sZSIsbWVzc2FnZTp1LnRyaW0oKXx8IlVua25vd24gZXJyb3IiLGNhbGxTdGFjazpzLGNvbXBvbmVudFN0YWNrOmYsdGltZTpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksdGltZVpvbmU6SW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lfX1wYXJzZVdpbmRvd0Vycm9yKGkpe3JldHVybntpZDpDdSgpLGZyb206IndpbmRvdyIsbWVzc2FnZTppLm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIixjYWxsU3RhY2s6aS5lcnJvcj8uc3RhY2t8fGBhdCAke2kuZmlsZW5hbWV9OiR7aS5saW5lbm99OiR7aS5jb2xub31gLHRpbWU6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHRpbWVab25lOkludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZX19fWZ1bmN0aW9uIG90KHIpe2NvbnN0IGk9VS51c2VSZWYocik7aS5jdXJyZW50PXI7Y29uc3QgdT1VLnVzZVJlZihudWxsKTtyZXR1cm4gdS5jdXJyZW50fHwodS5jdXJyZW50PWZ1bmN0aW9uKC4uLnMpe3JldHVybiBpLmN1cnJlbnQuYXBwbHkodGhpcyxzKX0pLHUuY3VycmVudH1mdW5jdGlvbiBFdShyKXtyZXR1cm4gci5zcGxpdChgCmApLmZpbHRlcih1PT51LnRyaW0oKSkubWFwKHU9Pntjb25zdCBzPXUubWF0Y2goL2F0XHMrKD86KC4rPylccytcKCk/KC4rPyk6KFxkKyk6KFxkKylcKT8kLyk7aWYocyl7Y29uc3RbLGYsbSx4LE5dPXM7cmV0dXJue3Jhdzp1LGZ1bmN0aW9uTmFtZTpmPy50cmltKCksZmlsZU5hbWU6bT8udHJpbSgpLGxpbmVOdW1iZXI6cGFyc2VJbnQoeCwxMCksY29sdW1uTnVtYmVyOnBhcnNlSW50KE4sMTApfX1yZXR1cm57cmF3OnV9fSl9ZnVuY3Rpb24gZGcocil7Y29uc3QgaT1yLnNwbGl0KGAKYCksdT1pWzBdfHxyLHM9W107Zm9yKGxldCBmPTE7ZjxpLmxlbmd0aDtmKyspe2NvbnN0IG09aVtmXS50cmltKCk7aWYobS5zdGFydHNXaXRoKCJhdCAiKSlzLnB1c2gobSk7ZWxzZSBpZihzLmxlbmd0aD4wKWJyZWFrfXJldHVybiBzLmxlbmd0aD4wP3ttYWluTWVzc2FnZTp1LHN0YWNrRnJhbWVzOkV1KHMuam9pbihgCmApKX06e21haW5NZXNzYWdlOnIsc3RhY2tGcmFtZXM6W119fWZ1bmN0aW9uIGZnKHIpe2lmKCFyKXJldHVybiIiO3RyeXtyZXR1cm4gbmV3IFVSTChyKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpfHxyfWNhdGNoe3JldHVybiByLnNwbGl0KCIvIikucG9wKCl8fHJ9fWZ1bmN0aW9uIGhnKHtmcmFtZXM6cn0pe3JldHVybiBoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL1N0YWNrVmlldy50c3g6MTAiLGNsYXNzTmFtZToicHgtNCBwdC0wIHBiLTMgc3BhY2UteS0xLjUgdGV4dC1zbSIsY2hpbGRyZW46ci5tYXAoKGksdSk9PmguanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvU3RhY2tWaWV3LnRzeDoxMiIsY2xhc3NOYW1lOiJmb250LW1vbm8iLGNoaWxkcmVuOmkuZmlsZU5hbWV8fGkuZnVuY3Rpb25OYW1lP2guanN4cyhoLkZyYWdtZW50LHtjaGlsZHJlbjpbaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9TdGFja1ZpZXcudHN4OjE1IixjbGFzc05hbWU6InRleHQtZ3JheS04MDAiLGNoaWxkcmVuOmkuZnVuY3Rpb25OYW1lfHwiKGFub255bW91cykifSksaS5maWxlTmFtZSYmaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvU3RhY2tWaWV3LnRzeDoxOSIsY2xhc3NOYW1lOiJ0ZXh0LWdyYXktNjAwIixjaGlsZHJlbjpbIkAiLCIgIixoLmpzeHMoImEiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvU3RhY2tWaWV3LnRzeDoyMSIsaHJlZjppLmZpbGVOYW1lLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLGNsYXNzTmFtZToidGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmUiLGNoaWxkcmVuOltmZyhpLmZpbGVOYW1lKSxpLmxpbmVOdW1iZXImJmguanN4cyhoLkZyYWdtZW50LHtjaGlsZHJlbjpbIjoiLGkubGluZU51bWJlcixpLmNvbHVtbk51bWJlciYmYDoke2kuY29sdW1uTnVtYmVyfWBdfSldfSldfSldfSk6aC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9TdGFja1ZpZXcudHN4OjM5IixjbGFzc05hbWU6InRleHQtZ3JheS02MDAiLGNoaWxkcmVuOmkucmF3fSl9LHUpKX0pfWZ1bmN0aW9uIG1nKCl7Y29uc3RbcixpXT1VLnVzZVN0YXRlKCExKSxbdSxzXT1VLnVzZVN0YXRlKFtdKSxbZixtXT1VLnVzZVN0YXRlKDApLFt4LE5dPVUudXNlU3RhdGUoITEpLFtDLHZdPVUudXNlU3RhdGUoIm1lc3NhZ2UiKSxEPXVbZl18fHVbMF0sUj1VLnVzZU1lbW8oKCk9PkQ/Lm1lc3NhZ2U/ZGcoRC5tZXNzYWdlKTp7bWFpbk1lc3NhZ2U6IiIsc3RhY2tGcmFtZXM6W119LFtEPy5tZXNzYWdlXSksSj1VLnVzZU1lbW8oKCk9Pntjb25zdCBrPVsuLi5SLnN0YWNrRnJhbWVzXTtpZihEPy5jYWxsU3RhY2spe2NvbnN0IFk9RXUoRC5jYWxsU3RhY2spO1kubGVuZ3RoPjAmJmsubGVuZ3RoIT09WS5sZW5ndGg/ay5wdXNoKC4uLlkpOmsubGVuZ3RoPT09MCYmay5wdXNoKC4uLlkpfXJldHVybiBrfSxbUi5zdGFja0ZyYW1lcyxEPy5jYWxsU3RhY2tdKSwkPW90KCgpPT57cyhbXSksbSgwKSxOKCExKX0pLEY9b3QoKCk9PntOKCEwKX0pLGF0PW90KCgpPT57TighMSksdigibWVzc2FnZSIpfSksY3Q9b3QoKCk9PnttKGs9Pms9PT11Lmxlbmd0aC0xPzA6aysxKX0pLGh0PW90KCgpPT57bShrPT5rPT09MD91Lmxlbmd0aC0xOmstMSl9KSxTdD1vdChrPT57aWUuc2VuZE1lc3NhZ2Uoe3BheWxvYWQ6e2Vycm9ySXRlbXM6az9ba106dSx1cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsdXNlckluZm86bG9jYWxTdG9yYWdlLmdldEl0ZW0oIm1hbnVzLXJ1bnRpbWUtdXNlci1pbmZvIil8fHZvaWQgMH0sdG86ImNvbnRhaW5lciIsdHlwZToicmVwb3J0RXJyb3IifSksJCgpfSk7cmV0dXJuIFUudXNlRWZmZWN0KCgpPT57Y29uc3Qgaz1Hci5ldmVudEVtaXR0ZXIub24oImNhdWdodEVycm9yIixZPT57cyhIPT5bWSwuLi5IXSl9KTtyZXR1cm4gaWUucmVhZHlTb3VyY2Uud2FpdFJlYWR5KCkudGhlbigoKT0+e2koITApfSksR3IucmVhZHlTb3VyY2UubWFya1JlYWR5KCksKCk9PntrLnVucmVnaXN0ZXIoKX19LFtdKSwhRHx8IXI/bnVsbDp4P2guanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTE4IixjbGFzc05hbWU6ImZpeGVkIGluc2V0LTAgei1bOTk5OTk5XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjay81MCIsb25DbGljazphdCxjaGlsZHJlbjpoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxMjIiLGNsYXNzTmFtZToiYmctd2hpdGUgcm91bmRlZC14bCBtYXgtdy1bNjAwcHhdIHctWzkwJV0gbWF4LWgtWzgwdmhdIGZsZXggZmxleC1jb2wgc2hhZG93LVswXzRweF8yNHB4X3JnYmEoMCwwLDAsMC4xNSldIixvbkNsaWNrOms9Pmsuc3RvcFByb3BhZ2F0aW9uKCksY2hpbGRyZW46W2guanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjEyNyIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBwLTYgcGItNCBzaHJpbmstMCIsY2hpbGRyZW46W2guanN4KCJoMyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxMjgiLGNsYXNzTmFtZToibS0wIHRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWJsYWNrIixjaGlsZHJlbjpELmZyb209PT0iY29uc29sZSI/IkNvbnNvbGUgRXJyb3IiOiJVbmNhdWdodCBFcnJvciJ9KSxoLmpzeCgiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjEzMyIsb25DbGljazphdCxjbGFzc05hbWU6ImJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHRleHQtMnhsIGN1cnNvci1wb2ludGVyIHAtMCB0ZXh0LWdyYXktNDAwIGxlYWRpbmctbm9uZSBob3Zlcjp0ZXh0LWdyYXktNjAwIixjaGlsZHJlbjoiw5cifSldfSksaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxNDIiLGNsYXNzTmFtZToib3ZlcmZsb3cteS1hdXRvIGZsZXgtMSBtaW4taC0wIixjaGlsZHJlbjpoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjE0MyIsY2xhc3NOYW1lOiJweC00IHB5LTAiLGNoaWxkcmVuOmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjE0NSIsY2xhc3NOYW1lOiJyb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiBiZy1yZWQtNTAiLGNoaWxkcmVuOltoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxNDciLGNsYXNzTmFtZToiZmxleCBpdGVtcy1zdGFydCBnYXAtMiBweC00IHB5LTMgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctcmVkLTEwMCB0cmFuc2l0aW9uLWNvbG9ycyIsb25DbGljazooKT0+dihDPT09Im1lc3NhZ2UiPyJzdGFjayI6Im1lc3NhZ2UiKSxjaGlsZHJlbjpbaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTUzIixjbGFzc05hbWU6InRleHQtcmVkLTYwMCB0ZXh0LXNtIHNocmluay0wIG10LTAuNSIsY2hpbGRyZW46Qz09PSJtZXNzYWdlIj8i4pa8Ijoi4pa2In0pLGguanN4KCJwIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjE1NiIsY2xhc3NOYW1lOiJ0ZXh0LXJlZC04MDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgZm9udC1tZWRpdW0gYnJlYWstd29yZHMgd2hpdGVzcGFjZS1wcmUtd3JhcCBtLTAgZmxleC0xIixjaGlsZHJlbjpSLm1haW5NZXNzYWdlfSldfSksQz09PSJzdGFjayImJkoubGVuZ3RoPjAmJmguanN4KGhnLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTYzIixmcmFtZXM6Sn0pXX0pfSl9KSxoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjE3MCIsY2xhc3NOYW1lOkFlLmNuKCJmbGV4IGZsZXgtY29sIHhzOmZsZXgtcm93IGl0ZW1zLXN0cmV0Y2ggeHM6aXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMyBwLTQgeHM6cC02IHhzOnB0LTQgc2hyaW5rLTAiKSxjaGlsZHJlbjp1Lmxlbmd0aD4xP2guanN4cyhoLkZyYWdtZW50LHtjaGlsZHJlbjpbaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTc3IixjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIixjaGlsZHJlbjpbaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxNzgiLG9uQ2xpY2s6aHQsY2xhc3NOYW1lOiJiZy1ncmF5LTEwMCBib3JkZXItbm9uZSByb3VuZGVkLWxnIHctOCBoLTggZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgdGV4dC1ncmF5LTYwMCB0ZXh0LWxnIGhvdmVyOmJnLWdyYXktMjAwIixjaGlsZHJlbjoi4oC5In0pLGguanN4KCJidXR0b24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTg0IixvbkNsaWNrOmN0LGNsYXNzTmFtZToiYmctZ3JheS0xMDAgYm9yZGVyLW5vbmUgcm91bmRlZC1sZyB3LTggaC04IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGN1cnNvci1wb2ludGVyIHRleHQtZ3JheS02MDAgdGV4dC1sZyBob3ZlcjpiZy1ncmF5LTIwMCIsY2hpbGRyZW46IuKAuiJ9KSxoLmpzeHMoInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MTkwIixjbGFzc05hbWU6InRleHQtc20gdGV4dC1ncmF5LTYwMCB3aGl0ZXNwYWNlLW5vd3JhcCIsY2hpbGRyZW46W2YrMSwiIG9mICIsdS5sZW5ndGgsIiBlcnJvcnMiXX0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjE5NCIsY2xhc3NOYW1lOiJmbGV4IGdhcC0yIixjaGlsZHJlbjpbaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoxOTUiLG9uQ2xpY2s6KCk9PntTdChEKX0sY2xhc3NOYW1lOiJiZy13aGl0ZSB0ZXh0LWdyYXktNzAwIHJvdW5kZWQtbGcgcHgtNCB4czpweC01IHB5LTIgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBjdXJzb3ItcG9pbnRlciB0ZXh0LXNtIGZvbnQtbWVkaXVtIGhvdmVyOmJnLWdyYXktNTAgZmxleC0xIHhzOmZsZXgtbm9uZSIsY2hpbGRyZW46IkZpeCBpdCJ9KSxoLmpzeCgiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjIwMyIsb25DbGljazooKT0+e1N0KCl9LGNsYXNzTmFtZToiYmctYmxhY2sgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHB4LTQgeHM6cHgtNSBweS0yIGJvcmRlci1ub25lIGN1cnNvci1wb2ludGVyIHRleHQtc20gZm9udC1tZWRpdW0gaG92ZXI6YmctZ3JheS04MDAgZmxleC0xIHhzOmZsZXgtbm9uZSIsY2hpbGRyZW46IkZpeCBBbGwifSldfSldfSk6aC5qc3hzKGguRnJhZ21lbnQse2NoaWxkcmVuOltoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjIxNSIsY2xhc3NOYW1lOiJoaWRkZW4geHM6YmxvY2sifSksaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoyMTYiLG9uQ2xpY2s6KCk9PntTdChEKX0sY2xhc3NOYW1lOiJiZy1ibGFjayB0ZXh0LXdoaXRlIHJvdW5kZWQtbGcgcHgtNCB4czpweC01IHB5LTIgYm9yZGVyLW5vbmUgY3Vyc29yLXBvaW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSBob3ZlcjpiZy1ncmF5LTgwMCB3LWZ1bGwgeHM6dy1hdXRvIixjaGlsZHJlbjoiRml4IGl0In0pXX0pfSldfSl9KTpoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoyMzQiLGNsYXNzTmFtZToiZml4ZWQgYm90dG9tLTggbGVmdC04IHotWzk5OTk5OV0gYmctcmVkLTUwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtM3hsIHB4LTUgcHktMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBzaGFkb3ctWzBfNHB4XzEycHhfcmdiYSgwLDAsMCwwLjE1KV0gY3Vyc29yLXBvaW50ZXIgdGV4dC1iYXNlIGZvbnQtbWVkaXVtIixvbkNsaWNrOkYsY2hpbGRyZW46W2guanN4KCJzcGFuIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRXJyb3JDYXRjaGVyL0Vycm9yVG9hc3QudHN4OjIzOCIsY2xhc3NOYW1lOiJ0ZXh0LXhsIGZvbnQtYm9sZCIsY2hpbGRyZW46IuKTmCJ9KSxoLmpzeHMoInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9FcnJvckNhdGNoZXIvRXJyb3JUb2FzdC50c3g6MjM5IixjaGlsZHJlbjpbdS5sZW5ndGgsIiBlcnJvciIsdS5sZW5ndGg+MT8icyI6IiJdfSksaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0Vycm9yQ2F0Y2hlci9FcnJvclRvYXN0LnRzeDoyNDIiLG9uQ2xpY2s6az0+e2suc3RvcFByb3BhZ2F0aW9uKCksJCgpfSxjbGFzc05hbWU6ImJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHRleHQtd2hpdGUgdGV4dC14bCBjdXJzb3ItcG9pbnRlciBwLTAgbGVhZGluZy1ub25lIGhvdmVyOm9wYWNpdHktODAiLGNoaWxkcmVuOiLDlyJ9KV19KX1jb25zdCBHcj1uZXcgdWc7ZnVuY3Rpb24gZ2coKXtyZXR1cm4gaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvQ29udGVudFJvb3QudHN4OjgiLGlkOk9yLmNvbnRlbnRSb290LGNsYXNzTmFtZToiei1bOTk5OTk5XSByZWxhdGl2ZSIscmVmOnI9PntyJiZ0aS5zZXREaWFsb2dSb290KHIpfSxjaGlsZHJlbjpbaC5qc3gobmcseyJkYXRhLWxvYyI6InNyYy9Db250ZW50Um9vdC50c3g6MTcifSksaC5qc3gobWcseyJkYXRhLWxvYyI6InNyYy9Db250ZW50Um9vdC50c3g6MTgifSldfSl9Y2xhc3MgcGd7aW5pdCgpe2llLmxpc3Rlbk1lc3NhZ2Uoe3R5cGU6InNldENvb2tpZSIsY2FsbGJhY2s6aT0+e2RvY3VtZW50LmNvb2tpZT1pLmNvb2tpZX19KX19Y29uc3QgeWc9bmV3IHBnLHZnPTIxNDc0ODM2NDYsVHU9ImRhdGEtbWFudXMtc2VsZWN0b3ItY2FudmFzIixhbD0iZGF0YS1tYW51cy1zZWxlY3Rvci1pbnB1dCIsRHU9Mi41LGJnPVs4LDRdLHhnPSIjMDA4MWYyIix3Zz0icmdiYSgwLCAwLCAwLCAwKSIsTXU9InJnYmEoMCwgMTIyLCAyNTUsIDAuMDgpIixTZz0yO2Z1bmN0aW9uIEF1KCl7cmV0dXJuIE1hdGgubWluKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLFNnKX1mdW5jdGlvbiBhaShyLGkpe2NvbnN0IHU9ci5tYXRjaCgvXihbMC05Ll0rKS8pO2lmKCF1fHwhdVsxXSlyZXR1cm4gMDtjb25zdCBzPU51bWJlci5wYXJzZUZsb2F0KHVbMV0pLGY9TWF0aC5taW4oaS53aWR0aCxpLmhlaWdodCkvMjtyZXR1cm4gci5pbmNsdWRlcygiJSIpP01hdGgubWluKHMvMTAwKk1hdGgubWluKGkud2lkdGgsaS5oZWlnaHQpLGYpOi9yZW18ZW0vLnRlc3Qocik/TWF0aC5taW4ocyoxNixmKTpNYXRoLm1pbihzLGYpfWNsYXNzIENne2hvdmVyVGFyZ2V0PW51bGw7YWN0aXZlVGFyZ2V0PW51bGw7Y2FudmFzPW51bGw7Y29udGV4dD1udWxsO2hvc3Q9bnVsbDtjdXJyZW50RHByPTE7ZnJhbWVSZXF1ZXN0ZWQ9ITE7cmVzaXplU2NoZWR1bGVkPSExO2V4Y2x1c2lvblJlY3RzPW5ldyBNYXA7aGFuZGxlUmVzaXplPSgpPT57dGhpcy5yZXNpemVTY2hlZHVsZWR8fCh0aGlzLnJlc2l6ZVNjaGVkdWxlZD0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5yZXNpemVTY2hlZHVsZWQ9ITEsISghdGhpcy5jYW52YXN8fCF0aGlzLmNvbnRleHQpJiYodGhpcy51cGRhdGVDYW52YXNEaW1lbnNpb25zKCksdGhpcy5zY2hlZHVsZVJlbmRlcigpKX0pKX07aGFuZGxlU2Nyb2xsPSgpPT57dGhpcy5zY2hlZHVsZVJlbmRlcigpfTttb3VudCgpe2lmKHRoaXMuY2FudmFzKXJldHVybjtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuc2V0QXR0cmlidXRlKFR1LCJ0cnVlIik7Y29uc3QgdT1pLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KTt1LmlubmVySFRNTD1gPGNhbnZhcyBzdHlsZT0icG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3otaW5kZXg6JHt2Z307cG9pbnRlci1ldmVudHM6bm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvY2FudmFzPmA7Y29uc3Qgcz11LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpO2lmKCFzKXJldHVybjtjb25zdCBmPXMuZ2V0Q29udGV4dCgiMmQiKTtmJiYodGhpcy5ob3N0PWksdGhpcy5jYW52YXM9cyx0aGlzLmNvbnRleHQ9Zixkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaSksdGhpcy51cGRhdGVDYW52YXNEaW1lbnNpb25zKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVSZXNpemUse3Bhc3NpdmU6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbCx7cGFzc2l2ZTohMH0pLHRoaXMuc2NoZWR1bGVSZW5kZXIoKSl9dW5tb3VudCgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlUmVzaXplKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbCksdGhpcy5jbGVhcigpLHRoaXMuaG9zdCYmdGhpcy5ob3N0LnJlbW92ZSgpLHRoaXMuY2FudmFzPW51bGwsdGhpcy5jb250ZXh0PW51bGwsdGhpcy5ob3N0PW51bGx9c2V0SG92ZXJUYXJnZXQoaSl7dGhpcy5ob3ZlclRhcmdldCE9PWkmJih0aGlzLmhvdmVyVGFyZ2V0PWksdGhpcy5zY2hlZHVsZVJlbmRlcigpKX1zZXRBY3RpdmVUYXJnZXQoaSl7dGhpcy5hY3RpdmVUYXJnZXQhPT1pJiYodGhpcy5hY3RpdmVUYXJnZXQ9aSx0aGlzLnNjaGVkdWxlUmVuZGVyKCkpfWFkZEV4Y2x1c2lvblJlY3QoaSx1KXt0aGlzLmV4Y2x1c2lvblJlY3RzLnNldChpLHUpLHRoaXMuc2NoZWR1bGVSZW5kZXIoKX1yZW1vdmVFeGNsdXNpb25SZWN0KGkpe3RoaXMuZXhjbHVzaW9uUmVjdHMuZGVsZXRlKGkpLHRoaXMuc2NoZWR1bGVSZW5kZXIoKX1jbGVhcigpe3RoaXMuaG92ZXJUYXJnZXQ9bnVsbCx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2NoZWR1bGVSZW5kZXIoKX1zY2hlZHVsZVJlbmRlcigpeyF0aGlzLmNhbnZhc3x8IXRoaXMuY29udGV4dHx8dGhpcy5mcmFtZVJlcXVlc3RlZHx8KHRoaXMuZnJhbWVSZXF1ZXN0ZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5mcmFtZVJlcXVlc3RlZD0hMSx0aGlzLnJlbmRlcigpfSkpfXVwZGF0ZUNhbnZhc0RpbWVuc2lvbnMoKXtpZighdGhpcy5jYW52YXN8fCF0aGlzLmNvbnRleHQpcmV0dXJuO2NvbnN0IGk9QXUoKSx7aW5uZXJXaWR0aDp1LGlubmVySGVpZ2h0OnN9PXdpbmRvdzt0aGlzLmNhbnZhcy5zdHlsZS53aWR0aD1gJHt1fXB4YCx0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQ9YCR7c31weGAsdGhpcy5jYW52YXMud2lkdGg9dSppLHRoaXMuY2FudmFzLmhlaWdodD1zKmksdHlwZW9mIHRoaXMuY29udGV4dC5yZXNldFRyYW5zZm9ybT09ImZ1bmN0aW9uIj90aGlzLmNvbnRleHQucmVzZXRUcmFuc2Zvcm0oKTp0aGlzLmNvbnRleHQuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSx0aGlzLmNvbnRleHQuc2NhbGUoaSxpKSx0aGlzLmN1cnJlbnREcHI9aX1yZW5kZXIoKXtpZighdGhpcy5jYW52YXN8fCF0aGlzLmNvbnRleHQpcmV0dXJuO2NvbnN0IGk9QXUoKTtNYXRoLmFicyhpLXRoaXMuY3VycmVudERwcik+LjAxJiZ0aGlzLnVwZGF0ZUNhbnZhc0RpbWVuc2lvbnMoKTtjb25zdCB1PXRoaXMuY29udGV4dCxzPXRoaXMuY2FudmFzO3UuY2xlYXJSZWN0KDAsMCxzLndpZHRoLHMuaGVpZ2h0KSx1LnNldExpbmVEYXNoKFtdKTtjb25zdCBmPXRoaXMuZ2V0RHJhd2FibGVFbGVtZW50KHRoaXMuYWN0aXZlVGFyZ2V0KSxtPXRoaXMuZ2V0RHJhd2FibGVFbGVtZW50KHRoaXMuaG92ZXJUYXJnZXQpO2lmKCEoIWYmJiFtKSl7aWYodS5zYXZlKCksdGhpcy5leGNsdXNpb25SZWN0cy5zaXplPjApe3UuYmVnaW5QYXRoKCksdS5yZWN0KDAsMCxzLndpZHRoLHMuaGVpZ2h0KTtmb3IoY29uc3QgeCBvZiB0aGlzLmV4Y2x1c2lvblJlY3RzLnZhbHVlcygpKXUucmVjdCh4LmxlZnQseC50b3AseC53aWR0aCx4LmhlaWdodCk7dS5jbGlwKCJldmVub2RkIil9ZiYmUnUocyx1LGYse2ZpbGxDb2xvcjp3Z30pLG0mJm0hPT1mJiZSdShzLHUsbSx7bGluZURhc2g6Ymd9KSx1LnJlc3RvcmUoKX19Z2V0RHJhd2FibGVFbGVtZW50KGkpe2lmKCFpKXJldHVybiBudWxsO2NvbnN0IHU9aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdS53aWR0aDw9MHx8dS5oZWlnaHQ8PTA/bnVsbDppfX1mdW5jdGlvbiBSdShyLGksdSxzPXtsaW5lV2lkdGg6RHUsZmlsbENvbG9yOk11fSl7Y29uc3QgZj1zLnJlY3Q/P3UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoZi53aWR0aDw9MHx8Zi5oZWlnaHQ8PTApcmV0dXJuO3MubGluZURhc2g/aS5zZXRMaW5lRGFzaChzLmxpbmVEYXNoKTppLnNldExpbmVEYXNoKFtdKTtjb25zdCBtPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHUpLHtib3JkZXJUb3BMZWZ0UmFkaXVzOngsYm9yZGVyVG9wUmlnaHRSYWRpdXM6Tixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOkMsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6dn09bSxEPXt0b3A6e2xlZnQ6YWkoeCxmKSxyaWdodDphaShOLGYpfSxib3R0b206e2xlZnQ6YWkoQyxmKSxyaWdodDphaSh2LGYpfX07aS5saW5lV2lkdGg9cy5saW5lV2lkdGg/P0R1LGkuc3Ryb2tlU3R5bGU9eGcsaS5saW5lQ2FwPSJyb3VuZCIsaS5saW5lSm9pbj0icm91bmQiLGkuYmVnaW5QYXRoKCksRC50b3AubGVmdD4wfHxELnRvcC5yaWdodD4wfHxELmJvdHRvbS5yaWdodD4wfHxELmJvdHRvbS5sZWZ0PjA/KGkubW92ZVRvKGYubGVmdCtELnRvcC5sZWZ0LGYudG9wKSxpLmxpbmVUbyhmLmxlZnQrZi53aWR0aC1ELnRvcC5yaWdodCxmLnRvcCksaS5hcmNUbyhmLmxlZnQrZi53aWR0aCxmLnRvcCxmLmxlZnQrZi53aWR0aCxmLnRvcCtELnRvcC5yaWdodCxELnRvcC5yaWdodCksaS5saW5lVG8oZi5sZWZ0K2Yud2lkdGgsZi50b3ArZi5oZWlnaHQtRC5ib3R0b20ucmlnaHQpLGkuYXJjVG8oZi5sZWZ0K2Yud2lkdGgsZi50b3ArZi5oZWlnaHQsZi5sZWZ0K2Yud2lkdGgtRC5ib3R0b20ucmlnaHQsZi50b3ArZi5oZWlnaHQsRC5ib3R0b20ucmlnaHQpLGkubGluZVRvKGYubGVmdCtELmJvdHRvbS5sZWZ0LGYudG9wK2YuaGVpZ2h0KSxpLmFyY1RvKGYubGVmdCxmLnRvcCtmLmhlaWdodCxmLmxlZnQsZi50b3ArZi5oZWlnaHQtRC5ib3R0b20ubGVmdCxELmJvdHRvbS5sZWZ0KSxpLmxpbmVUbyhmLmxlZnQsZi50b3ArRC50b3AubGVmdCksaS5hcmNUbyhmLmxlZnQsZi50b3AsZi5sZWZ0K0QudG9wLmxlZnQsZi50b3AsRC50b3AubGVmdCkpOmkucmVjdChmLmxlZnQsZi50b3AsZi53aWR0aCxmLmhlaWdodCksaS5maWxsU3R5bGU9cy5maWxsQ29sb3I/P011LGkuZmlsbCgpLGkuc2hhZG93Q29sb3I9InJnYmEoMCwgMTIyLCAyNTUsIDAuMykiLGkuc2hhZG93Qmx1cj00LGkuc2hhZG93T2Zmc2V0WD0wLGkuc2hhZG93T2Zmc2V0WT0wLGkuc3Ryb2tlKCksaS5zaGFkb3dDb2xvcj0idHJhbnNwYXJlbnQiLGkuc2hhZG93Qmx1cj0wLEVnKHIsaSx1LGYpfWZ1bmN0aW9uIEVnKHIsaSx1LHMpe2NvbnN0IGY9dS50YWdOYW1lLnRvTG93ZXJDYXNlKCksbT0xMCx4PTUsTj0xMSxDPTg7aS5mb250PWA2MDAgJHtOfXB4IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgUm9ib3RvLCBzYW5zLXNlcmlmYDtjb25zdCBEPWkubWVhc3VyZVRleHQoZikud2lkdGgsUj17eDpzLmxlZnQseTowLHdpZHRoOkQrbSoyLGhlaWdodDpOK3gqMisyfTtSLnk9cy50b3AtUi5oZWlnaHQtQyxSLnk8MCYmKFIueT1zLnRvcCtzLmhlaWdodCtDKSxSLnk+cy50b3ArZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQtQyYmKFIueT1DKSxSLng8Qz9SLng9QzpSLngrUi53aWR0aD5yLndpZHRoLUMmJihSLng9ci53aWR0aC1SLndpZHRoLUMpLGkuc2V0TGluZURhc2goW10pLGkuc2hhZG93Q29sb3I9InJnYmEoMCwgMTIyLCAyNTUsIDAuNCkiLGkuc2hhZG93Qmx1cj0xMixpLnNoYWRvd09mZnNldFg9MCxpLnNoYWRvd09mZnNldFk9Mjtjb25zdCBKPWkuY3JlYXRlTGluZWFyR3JhZGllbnQoUi54LFIueSxSLngsUi55K1IuaGVpZ2h0KTtKLmFkZENvbG9yU3RvcCgwLCIjMDA4MWYyIiksaS5maWxsU3R5bGU9SixpLmJlZ2luUGF0aCgpLGkucm91bmRSZWN0KFIueCxSLnksUi53aWR0aCxSLmhlaWdodCw2KSxpLmZpbGwoKSxpLnNoYWRvd0NvbG9yPSJ0cmFuc3BhcmVudCIsaS5zaGFkb3dCbHVyPTAsaS5zaGFkb3dPZmZzZXRYPTAsaS5zaGFkb3dPZmZzZXRZPTAsaS5zdHJva2VTdHlsZT0icmdiYSgwLCA4MSwgMjEzLCAwLjMpIixpLmxpbmVXaWR0aD0xLGkuc3Ryb2tlKCk7Y29uc3QgJD1pLmNyZWF0ZUxpbmVhckdyYWRpZW50KFIueCxSLnksUi54LFIueStSLmhlaWdodC8yKTskLmFkZENvbG9yU3RvcCgwLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIiksJC5hZGRDb2xvclN0b3AoMSwicmdiYSgyNTUsIDI1NSwgMjU1LCAwKSIpLGkuZmlsbFN0eWxlPSQsaS5iZWdpblBhdGgoKSxpLnJvdW5kUmVjdChSLngsUi55LFIud2lkdGgsUi5oZWlnaHQvMixbNiw2LDAsMF0pLGkuZmlsbCgpLGkuc2hhZG93Q29sb3I9InJnYmEoMCwgMCwgMCwgMC4yNSkiLGkuc2hhZG93Qmx1cj0yLGkuc2hhZG93T2Zmc2V0WD0wLGkuc2hhZG93T2Zmc2V0WT0xLGkuZmlsbFN0eWxlPSIjZmZmIixpLnRleHRBbGlnbj0iY2VudGVyIixpLnRleHRCYXNlbGluZT0ibWlkZGxlIixpLmZpbGxUZXh0KGYsUi54K1Iud2lkdGgvMixSLnkrUi5oZWlnaHQvMiksaS5zaGFkb3dDb2xvcj0idHJhbnNwYXJlbnQiLGkuc2hhZG93Qmx1cj0wLGkuc2hhZG93T2Zmc2V0WD0wLGkuc2hhZG93T2Zmc2V0WT0wfWZ1bmN0aW9uIFRnKHI9e30pe2NvbnN0e29uS2V5RG93bjppLG9uQ29tcG9zaXRpb25TdGFydDp1LG9uQ29tcG9zaXRpb25FbmQ6c309cixmPVUudXNlUmVmKCExKSxtPVUudXNlUmVmKG51bGwpLHg9VS51c2VSZWYobnVsbCksTj1vdChSPT57bS5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KG0uY3VycmVudCksbS5jdXJyZW50PW51bGwpLHguY3VycmVudCYmKGNsZWFyVGltZW91dCh4LmN1cnJlbnQpLHguY3VycmVudD1udWxsKSxmLmN1cnJlbnQ9ITAsdT8uKFIpfSksQz1vdChSPT57bS5jdXJyZW50PXNldFRpbWVvdXQoKCk9Pnt4LmN1cnJlbnQ9c2V0VGltZW91dCgoKT0+e2YuY3VycmVudD0hMX0pfSkscz8uKFIpfSksdj1vdChSPT57aWYoZi5jdXJyZW50JiYoUi5rZXk9PT0iRXNjYXBlInx8Ui5rZXk9PT0iRW50ZXIiJiYhUi5zaGlmdEtleSkpe1Iuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJufWk/LihSKX0pLEQ9b3QoKCk9PmYuY3VycmVudCk7cmV0dXJue29uQ29tcG9zaXRpb25TdGFydDpOLG9uQ29tcG9zaXRpb25FbmQ6QyxvbktleURvd246dixpc0NvbXBvc2luZzpEfX1jb25zdCBEZz1uZXcgU2V0KFsicm9sZSIsIm5hbWUiLCJhcmlhLWxhYmVsIiwicmVsIiwiaHJlZiJdKTtmdW5jdGlvbiBNZyhyLGkpe2xldCB1PURnLmhhcyhyKTt1fHw9ci5zdGFydHNXaXRoKCJkYXRhLSIpJiZKbihyKTtsZXQgcz1KbihpKSYmaS5sZW5ndGg8MTAwO3JldHVybiBzfHw9aS5zdGFydHNXaXRoKCIjIikmJkpuKGkuc2xpY2UoMSkpLHUmJnN9ZnVuY3Rpb24gQWcocil7cmV0dXJuIEpuKHIpfWZ1bmN0aW9uIFJnKHIpe3JldHVybiBKbihyKX1mdW5jdGlvbiB6ZyhyKXtyZXR1cm4hMH1mdW5jdGlvbiBZcihyLGkpe2lmKHIubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSl0aHJvdyBuZXcgRXJyb3IoIkNhbid0IGdlbmVyYXRlIENTUyBzZWxlY3RvciBmb3Igbm9uLWVsZW1lbnQgbm9kZSB0eXBlLiIpO2lmKHIudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Imh0bWwiKXJldHVybiJodG1sIjtjb25zdCB1PXtyb290OmRvY3VtZW50LmJvZHksaWROYW1lOkFnLGNsYXNzTmFtZTpSZyx0YWdOYW1lOnpnLGF0dHI6TWcsdGltZW91dE1zOjFlMyxzZWVkTWluTGVuZ3RoOjMsb3B0aW1pemVkTWluTGVuZ3RoOjIsbWF4TnVtYmVyT2ZQYXRoQ2hlY2tzOjEvMH0scz1uZXcgRGF0ZSxmPXsuLi51LC4uLml9LG09amcoZi5yb290LHUpO2xldCB4LE49MDtmb3IoY29uc3QgdiBvZiBOZyhyLGYsbSkpe2lmKG5ldyBEYXRlKCkuZ2V0VGltZSgpLXMuZ2V0VGltZSgpPmYudGltZW91dE1zfHxOPj1mLm1heE51bWJlck9mUGF0aENoZWNrcyl7Y29uc3QgUj1rZyhyLG0pO2lmKCFSKXRocm93IG5ldyBFcnJvcihgVGltZW91dDogQ2FuJ3QgZmluZCBhIHVuaXF1ZSBzZWxlY3RvciBhZnRlciAke2YudGltZW91dE1zfW1zYCk7cmV0dXJuIFduKFIpfWlmKE4rKyxacih2LG0pKXt4PXY7YnJlYWt9fWlmKCF4KXRocm93IG5ldyBFcnJvcigiU2VsZWN0b3Igd2FzIG5vdCBmb3VuZC4iKTtjb25zdCBDPVsuLi5rdSh4LHIsZixtLHMpXTtyZXR1cm4gQy5zb3J0KFhyKSxDLmxlbmd0aD4wP1duKENbMF0pOlduKHgpfWZ1bmN0aW9uKk5nKHIsaSx1KXtjb25zdCBzPVtdO2xldCBmPVtdLG09cix4PTA7Zm9yKDttJiZtIT09dTspe2NvbnN0IE49X2cobSxpKTtmb3IoY29uc3QgQyBvZiBOKUMubGV2ZWw9eDtpZihzLnB1c2goTiksbT1tLnBhcmVudEVsZW1lbnQseCsrLGYucHVzaCguLi5fdShzKSkseD49aS5zZWVkTWluTGVuZ3RoKXtmLnNvcnQoWHIpO2Zvcihjb25zdCBDIG9mIGYpeWllbGQgQztmPVtdfX1mLnNvcnQoWHIpO2Zvcihjb25zdCBOIG9mIGYpeWllbGQgTn1mdW5jdGlvbiBKbihyKXtpZigvXlthLXpcLV17Myx9JC9pLnRlc3Qocikpe2NvbnN0IGk9ci5zcGxpdCgvLXxbQS1aXS8pO2Zvcihjb25zdCB1IG9mIGkpaWYodS5sZW5ndGg8PTJ8fC9bXmFlaW91XXs0LH0vaS50ZXN0KHUpKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIF9nKHIsaSl7Y29uc3QgdT1bXSxzPXIuZ2V0QXR0cmlidXRlKCJpZCIpO3MmJmkuaWROYW1lKHMpJiZ1LnB1c2goe25hbWU6IiMiK0NTUy5lc2NhcGUocykscGVuYWx0eTowfSk7Zm9yKGxldCB4PTA7eDxyLmNsYXNzTGlzdC5sZW5ndGg7eCsrKXtjb25zdCBOPXIuY2xhc3NMaXN0W3hdO2kuY2xhc3NOYW1lKE4pJiZ1LnB1c2goe25hbWU6Ii4iK0NTUy5lc2NhcGUoTikscGVuYWx0eToxfSl9Zm9yKGxldCB4PTA7eDxyLmF0dHJpYnV0ZXMubGVuZ3RoO3grKyl7Y29uc3QgTj1yLmF0dHJpYnV0ZXNbeF07aS5hdHRyKE4ubmFtZSxOLnZhbHVlKSYmdS5wdXNoKHtuYW1lOmBbJHtDU1MuZXNjYXBlKE4ubmFtZSl9PSIke0NTUy5lc2NhcGUoTi52YWx1ZSl9Il1gLHBlbmFsdHk6Mn0pfWNvbnN0IGY9ci50YWdOYW1lLnRvTG93ZXJDYXNlKCk7aWYoaS50YWdOYW1lKGYpKXt1LnB1c2goe25hbWU6ZixwZW5hbHR5OjV9KTtjb25zdCB4PVZyKHIsZik7eCE9PXZvaWQgMCYmdS5wdXNoKHtuYW1lOk51KGYseCkscGVuYWx0eToxMH0pfWNvbnN0IG09VnIocik7cmV0dXJuIG0hPT12b2lkIDAmJnUucHVzaCh7bmFtZTpPZyhmLG0pLHBlbmFsdHk6NTB9KSx1fWZ1bmN0aW9uIFduKHIpe2xldCBpPXJbMF0sdT1pLm5hbWU7Zm9yKGxldCBzPTE7czxyLmxlbmd0aDtzKyspe2NvbnN0IGY9cltzXS5sZXZlbHx8MDtpLmxldmVsPT09Zi0xP3U9YCR7cltzXS5uYW1lfSA+ICR7dX1gOnU9YCR7cltzXS5uYW1lfSAke3V9YCxpPXJbc119cmV0dXJuIHV9ZnVuY3Rpb24genUocil7cmV0dXJuIHIubWFwKGk9PmkucGVuYWx0eSkucmVkdWNlKChpLHUpPT5pK3UsMCl9ZnVuY3Rpb24gWHIocixpKXtyZXR1cm4genUociktenUoaSl9ZnVuY3Rpb24gVnIocixpKXtjb25zdCB1PXIucGFyZW50Tm9kZTtpZighdSlyZXR1cm47bGV0IHM9dS5maXJzdENoaWxkO2lmKCFzKXJldHVybjtsZXQgZj0wO2Zvcig7cyYmKHMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGk9PT12b2lkIDB8fHMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09aSkmJmYrKyxzIT09cik7KXM9cy5uZXh0U2libGluZztyZXR1cm4gZn1mdW5jdGlvbiBrZyhyLGkpe2xldCB1PTAscz1yO2NvbnN0IGY9W107Zm9yKDtzJiZzIT09aTspe2NvbnN0IG09cy50YWdOYW1lLnRvTG93ZXJDYXNlKCkseD1WcihzLG0pO2lmKHg9PT12b2lkIDApcmV0dXJuO2YucHVzaCh7bmFtZTpOdShtLHgpLHBlbmFsdHk6TmFOLGxldmVsOnV9KSxzPXMucGFyZW50RWxlbWVudCx1Kyt9aWYoWnIoZixpKSlyZXR1cm4gZn1mdW5jdGlvbiBPZyhyLGkpe3JldHVybiByPT09Imh0bWwiPyJodG1sIjpgJHtyfTpudGgtY2hpbGQoJHtpfSlgfWZ1bmN0aW9uIE51KHIsaSl7cmV0dXJuIHI9PT0iaHRtbCI/Imh0bWwiOmAke3J9Om50aC1vZi10eXBlKCR7aX0pYH1mdW5jdGlvbipfdShyLGk9W10pe2lmKHIubGVuZ3RoPjApZm9yKGxldCB1IG9mIHJbMF0peWllbGQqX3Uoci5zbGljZSgxLHIubGVuZ3RoKSxpLmNvbmNhdCh1KSk7ZWxzZSB5aWVsZCBpfWZ1bmN0aW9uIGpnKHIsaSl7cmV0dXJuIHIubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX05PREU/cjpyPT09aS5yb290P3Iub3duZXJEb2N1bWVudDpyfWZ1bmN0aW9uIFpyKHIsaSl7Y29uc3QgdT1XbihyKTtzd2l0Y2goaS5xdWVyeVNlbGVjdG9yQWxsKHUpLmxlbmd0aCl7Y2FzZSAwOnRocm93IG5ldyBFcnJvcihgQ2FuJ3Qgc2VsZWN0IGFueSBub2RlIHdpdGggdGhpcyBzZWxlY3RvcjogJHt1fWApO2Nhc2UgMTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiprdShyLGksdSxzLGYpe2lmKHIubGVuZ3RoPjImJnIubGVuZ3RoPnUub3B0aW1pemVkTWluTGVuZ3RoKWZvcihsZXQgbT0xO208ci5sZW5ndGgtMTttKyspe2lmKG5ldyBEYXRlKCkuZ2V0VGltZSgpLWYuZ2V0VGltZSgpPnUudGltZW91dE1zKXJldHVybjtjb25zdCBOPVsuLi5yXTtOLnNwbGljZShtLDEpLFpyKE4scykmJnMucXVlcnlTZWxlY3RvcihXbihOKSk9PT1pJiYoeWllbGQgTix5aWVsZCprdShOLGksdSxzLGYpKX19Y29uc3QgQmc9IiMwYzhjZTkiLExsPSJkYXRhLW1hbnVzLWVsZW1lbnQtaWQiLExnPVsiYXBwIiwicm9vdCJdLEhnPVsiUCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkEiLCJMSSIsIlREIiwiVEgiLCJFTSIsIlNQQU4iLCJMQUJFTCIsIlNNQUxMIiwiU1RST05HIiwiQlVUVE9OIl07ZnVuY3Rpb24gUXIocil7cmV0dXJuIHIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ciBpbnN0YW5jZW9mIFNWR1NWR0VsZW1lbnR9ZnVuY3Rpb24gVWcocil7aWYoIXIpcmV0dXJuITE7Y29uc3QgaT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmdldENvbXB1dGVkU3R5bGUocik7cmV0dXJuIGkud2lkdGg9PT0wfHxpLmhlaWdodD09PTB8fHUub3BhY2l0eT09PSIwInx8dS5kaXNwbGF5PT09Im5vbmUifHx1LnZpc2liaWxpdHk9PT0iaGlkZGVuInx8ciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZyLm9mZnNldFBhcmVudD09PW51bGx9ZnVuY3Rpb24gcWcocil7aWYoIXIpcmV0dXJuITE7Y29uc3QgaT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLnRvcD49MCYmaS5sZWZ0Pj0wJiZpLmJvdHRvbTw9d2luZG93LmlubmVySGVpZ2h0JiZpLnJpZ2h0PD13aW5kb3cuaW5uZXJXaWR0aH1mdW5jdGlvbiBHZyhyKXtpZighcilyZXR1cm4hMDtjb25zdCBpPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGkuYm90dG9tPDB8fGkudG9wPndpbmRvdy5pbm5lckhlaWdodHx8aS5yaWdodDwwfHxpLmxlZnQ+d2luZG93LmlubmVyV2lkdGh9ZnVuY3Rpb24gYmEocil7aWYoci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiEwO2lmKHIubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtjb25zdCBpPWdldENvbXB1dGVkU3R5bGUocik7aWYoci5jaGlsZE5vZGVzLmxlbmd0aCl7Zm9yKGNvbnN0IHUgb2YgQXJyYXkuZnJvbShyLmNoaWxkTm9kZXMpKWlmKHUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmdS50ZXh0Q29udGVudD8udHJpbSgpKXJldHVybiEwfXJldHVybiBIZy5pbmNsdWRlcyhyLnRhZ05hbWUpfHxbImlubGluZSIsImlubGluZS1ibG9jayJdLmluY2x1ZGVzKGkuZGlzcGxheSl9cmV0dXJuITF9ZnVuY3Rpb24gWWcoKXtyZXR1cm5bMWU3LC0xZTMsLTRlMywtOGUzLC0xZTExXS5qb2luKCIiKS5yZXBsYWNlKC9bMDE4XS9nLHI9PihwYXJzZUludChyKV5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEpKVswXSYxNT4+cGFyc2VJbnQocikvNCkudG9TdHJpbmcoMTYpKX1mdW5jdGlvbiBLcihyKXtyZXR1cm4gcj9yLmdldEF0dHJpYnV0ZShMbCk/PyIiOiIifWZ1bmN0aW9uIFByKHIpe2lmKCFyKXJldHVybiIiO2NvbnN0IGk9S3Iocik7aWYoaSlyZXR1cm4gaTtjb25zdCB1PVlnKCk7cmV0dXJuIHIuc2V0QXR0cmlidXRlKExsLHUpLHV9ZnVuY3Rpb24gWGcocil7Y29uc3QgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbJHtMbH09IiR7ci5pZH0iXWApO2lmKGkpcmV0dXJuIGk7dHJ5e2NvbnN0IHU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyLnNlbGVjdG9yKTtpZih1KXJldHVybiB1LnNldEF0dHJpYnV0ZShMbCxyLmlkKSx1fWNhdGNoKHUpe2NvbnNvbGUud2FybigiSW52YWxpZCBzZWxlY3RvciBpbiBnZXRFbGVtZW50QnlJZE9yU2VsZWN0b3I6IixyLnNlbGVjdG9yLHUpfXJldHVybiBudWxsfWZ1bmN0aW9uIE91KHIsaSl7aWYoISghcnx8IWJhKHIpKSYmciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWlmKGkpe2lmKHIuaXNDb250ZW50RWRpdGFibGUpcmV0dXJuO3IuY29udGVudEVkaXRhYmxlPSJwbGFpbnRleHQtb25seSIsci5zdHlsZS5zZXRQcm9wZXJ0eSgiY3Vyc29yIiwidGV4dCIsImltcG9ydGFudCIpLHIuc3R5bGUuc2V0UHJvcGVydHkoInRleHQtd3JhcCIsIndyYXAiLCJpbXBvcnRhbnQiKSxyLnN0eWxlLnNldFByb3BlcnR5KCJjYXJldC1jb2xvciIsQmcsImltcG9ydGFudCIpLHIuZm9jdXMoKX1lbHNlIHIucmVtb3ZlQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJjdXJzb3IiKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0ZXh0LXdyYXAiKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJjYXJldC1jb2xvciIpLHIuYmx1cigpfWZ1bmN0aW9uIG5pKHIpe3ImJihyLl9zcmNPcmlnaW5hbD1yLl9zcmNPcmlnaW5hbD8/ci5zcmM/PyIiLHIuX2hyZWZPcmlnaW5hbD1yLl9ocmVmT3JpZ2luYWw/P3IuaHJlZj8/IiIsci5faW5uZXJIVE1MT3JpZ2luYWw9ci5faW5uZXJIVE1MT3JpZ2luYWw/P3IuaW5uZXJIVE1MLHIuX3RleHRDb250ZW50T3JpZ2luYWw9ci5fdGV4dENvbnRlbnRPcmlnaW5hbD8/ci50ZXh0Q29udGVudD8/IiIsciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoci5fY2xhc3NOYW1lT3JpZ2luYWw9ci5fY2xhc3NOYW1lT3JpZ2luYWw/P3IuY2xhc3NOYW1lPz8iIiksci5fbWFudXNJbXBvcnRhbnRQcm9wZXJ0aWVzfHwoci5fbWFudXNJbXBvcnRhbnRQcm9wZXJ0aWVzPW5ldyBTZXQpKX1mdW5jdGlvbiBKcihyKXtpZihyJiYoWyJJTUciLCJWSURFTyJdLmluY2x1ZGVzKHIudGFnTmFtZSkmJnIuc3JjIT09ci5fc3JjT3JpZ2luYWwmJihyLnNyYz1yLl9zcmNPcmlnaW5hbCksYmEocikmJnIudGV4dENvbnRlbnQhPT1yLl90ZXh0Q29udGVudE9yaWdpbmFsJiYoci5pbm5lckhUTUw9ci5faW5uZXJIVE1MT3JpZ2luYWx8fCIiKSwiaHJlZiJpbiByJiZyLmhyZWYhPT1yLl9ocmVmT3JpZ2luYWwmJihyLmhyZWY9ci5faHJlZk9yaWdpbmFsKSxyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnIuY2xhc3NOYW1lIT09ci5fY2xhc3NOYW1lT3JpZ2luYWwmJihyLmNsYXNzTmFtZT1yLl9jbGFzc05hbWVPcmlnaW5hbHx8IiIpLHIuX21hbnVzSW1wb3J0YW50UHJvcGVydGllcz8uc2l6ZSkpe2Zvcihjb25zdCBpIG9mIHIuX21hbnVzSW1wb3J0YW50UHJvcGVydGllcylyLnN0eWxlLnJlbW92ZVByb3BlcnR5KGkpO3IuX21hbnVzSW1wb3J0YW50UHJvcGVydGllcy5jbGVhcigpfX1mdW5jdGlvbiBWZyhyKXtjb25zdCBpPWdldENvbXB1dGVkU3R5bGUocik7cmV0dXJue2NvbG9yOmkuY29sb3IsYmFja2dyb3VuZENvbG9yOmkuYmFja2dyb3VuZENvbG9yLHdpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0LGRpc3BsYXk6aS5kaXNwbGF5LG9iamVjdEZpdDppLm9iamVjdEZpdCxmb250U2l6ZTppLmZvbnRTaXplLGZvbnRTdHlsZTppLmZvbnRTdHlsZSxmb250V2VpZ2h0OmkuZm9udFdlaWdodCxmb250RmFtaWx5OmkuZm9udEZhbWlseSx0ZXh0QWxpZ246aS50ZXh0QWxpZ24sdGV4dERlY29yYXRpb246aS50ZXh0RGVjb3JhdGlvbixib3JkZXJSYWRpdXM6aS5ib3JkZXJSYWRpdXMsYm9yZGVyV2lkdGg6aS5ib3JkZXJXaWR0aCxib3JkZXJTdHlsZTppLmJvcmRlclN0eWxlLGJvcmRlckNvbG9yOmkuYm9yZGVyQ29sb3Isb3BhY2l0eTppLm9wYWNpdHksbWFyZ2luTGVmdDppLm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6aS5tYXJnaW5SaWdodCxtYXJnaW5Ub3A6aS5tYXJnaW5Ub3AsbWFyZ2luQm90dG9tOmkubWFyZ2luQm90dG9tLHBhZGRpbmdMZWZ0OmkucGFkZGluZ0xlZnQscGFkZGluZ1JpZ2h0OmkucGFkZGluZ1JpZ2h0LHBhZGRpbmdUb3A6aS5wYWRkaW5nVG9wLHBhZGRpbmdCb3R0b206aS5wYWRkaW5nQm90dG9tfX1mdW5jdGlvbiBaZyhyLGksdSl7aWYoIXIpcmV0dXJuO2NvbnN0IHM9aS5zcGxpdCgvKD89W0EtWl0pLykuam9pbigiLSIpLnRvTG93ZXJDYXNlKCk7dT8oci5zdHlsZS5zZXRQcm9wZXJ0eShzLHUsImltcG9ydGFudCIpLGk9PT0iaGVpZ2h0IiYmci5zdHlsZS5zZXRQcm9wZXJ0eSgibWluLWhlaWdodCIsImF1dG8iLCJpbXBvcnRhbnQiKSxyLl9tYW51c0ltcG9ydGFudFByb3BlcnRpZXN8fChyLl9tYW51c0ltcG9ydGFudFByb3BlcnRpZXM9bmV3IFNldCksci5fbWFudXNJbXBvcnRhbnRQcm9wZXJ0aWVzLmFkZChzKSxpPT09ImhlaWdodCImJnIuX21hbnVzSW1wb3J0YW50UHJvcGVydGllcy5hZGQoIm1pbi1oZWlnaHQiKSk6KHIuc3R5bGUucmVtb3ZlUHJvcGVydHkocyksci5fbWFudXNJbXBvcnRhbnRQcm9wZXJ0aWVzPy5kZWxldGUocyksaT09PSJoZWlnaHQiJiYoci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgibWluLWhlaWdodCIpLHIuX21hbnVzSW1wb3J0YW50UHJvcGVydGllcz8uZGVsZXRlKCJtaW4taGVpZ2h0IikpKX1mdW5jdGlvbiBXcihyKXtpZighcil0aHJvdyBuZXcgRXJyb3IoIlRhcmdldCBlbGVtZW50IGlzIHJlcXVpcmVkIik7cmV0dXJuIG5pKHIpLFByKHIpLHtpZDpLcihyKSxzZWxlY3RvcjpZcihyLHtzZWVkTWluTGVuZ3RoOjMsb3B0aW1pemVkTWluTGVuZ3RoOjJ9KSx0YWdOYW1lOnIudGFnTmFtZS50b0xvd2VyQ2FzZSgpLGlzVGV4dDpiYShyKSxpc0ltYWdlOnIudGFnTmFtZT09PSJJTUciLGlzVmlkZW86ci50YWdOYW1lPT09IlZJREVPIixpc0NhbnZhczpyLnRhZ05hbWU9PT0iQ0FOVkFTIixpc0xpbms6ci50YWdOYW1lPT09IkEiLHN0eWxlOlZnKHIpLHNyYzpyLnNyY3x8IiIsaHJlZjpyLmhyZWZ8fCIiLGlubmVySFRNTDpyLmlubmVySFRNTCx0ZXh0Q29udGVudDpyLnRleHRDb250ZW50fHwiIixjbGFzc05hbWU6ci5jbGFzc05hbWUsY29tbWVudDpyLl9jb21tZW50fHwiIix3aW5kb3c6e2lubmVyV2lkdGg6d2luZG93LmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fSxqc3hMb2M6ci5nZXRBdHRyaWJ1dGUoImRhdGEtbG9jIil8fHZvaWQgMH19ZnVuY3Rpb24gUWcocil7ciYmKHFnKHIpfHxyLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIn0pKX1mdW5jdGlvbiBqdShyKXtjb25zdCBpPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6aS5sZWZ0K2kud2lkdGgvMix5OmkudG9wK2kuaGVpZ2h0LzJ9fWZ1bmN0aW9uIEtnKHIsaSx1KXtzd2l0Y2godSl7Y2FzZSJ1cCI6cmV0dXJuIGkueTxyLnktMDtjYXNlImRvd24iOnJldHVybiBpLnk+ci55KzA7Y2FzZSJsZWZ0IjpyZXR1cm4gaS54PHIueC0wO2Nhc2UicmlnaHQiOnJldHVybiBpLng+ci54KzB9fWZ1bmN0aW9uIEJ1KHIsaSl7cmV0dXJuIHIuY29udGFpbnMoaSkmJnIhPT1pfWZ1bmN0aW9uIEx1KHIpe2xldCBpPTAsdT1yLnBhcmVudEVsZW1lbnQ7Zm9yKDt1OylpKyssdT11LnBhcmVudEVsZW1lbnQ7cmV0dXJuIGl9ZnVuY3Rpb24gUGcocixpLHUscyxmKXtjb25zdCBtPXMueC1pLngseD1zLnktaS55LE49TWF0aC5zcXJ0KG0qbSt4KngpO2xldCBDPTA7c3dpdGNoKGYpe2Nhc2UidXAiOmNhc2UiZG93biI6Qz1NYXRoLmFicyhtKTticmVhaztjYXNlImxlZnQiOmNhc2UicmlnaHQiOkM9TWF0aC5hYnMoeCk7YnJlYWt9bGV0IHY9MDtCdSh1LHIpJiYodis9MWU0KSxCdShyLHUpJiYodis9NWUzKTtjb25zdCBEPU1hdGguYWJzKEx1KHUpLUx1KHIpKTtyZXR1cm4gdis9RCoxMDAsTitDKjEuNSt2fWZ1bmN0aW9uIEpnKHIsaSl7Y29uc3QgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikscz1bXTtmb3IoY29uc3QgZiBvZiBBcnJheS5mcm9tKHUpKSEoZiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmIShmIGluc3RhbmNlb2YgU1ZHU1ZHRWxlbWVudCl8fHImJmY9PT1yfHxRcihmKSYmKFVnKGYpfHxpJiZmIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmkoZil8fFsiU0NSSVBUIiwiU1RZTEUiXS5pbmNsdWRlcyhmLnRhZ05hbWUpfHxzLnB1c2goZikpO3JldHVybiBzfWZ1bmN0aW9uIFdnKHIsaSx1KXtjb25zdCBzPWp1KHIpLGY9Smcocix1KTtsZXQgbT1udWxsLHg9MS8wO2Zvcihjb25zdCBOIG9mIGYpe2NvbnN0IEM9anUoTik7aWYoIUtnKHMsQyxpKSljb250aW51ZTtjb25zdCB2PVBnKHIscyxOLEMsaSk7djx4JiYoeD12LG09Til9cmV0dXJuIG19ZnVuY3Rpb24gJGcocil7aWYoIXIpcmV0dXJuITE7Y29uc3QgaT1yLnRhZ05hbWU7aWYoWyJIVE1MIiwiQk9EWSIsIkhFQUQiXS5pbmNsdWRlcyhpKSlyZXR1cm4hMTtpZihyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2NvbnN0IHU9ci5pZDtpZihMZy5pbmNsdWRlcyh1KSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBGZyhyKXtpZighci5wYXJlbnRFbGVtZW50KXJldHVybiBudWxsO2NvbnN0IGk9ci5wYXJlbnRFbGVtZW50LHU9UHIoaSkscz1ZcihpLHtzZWVkTWluTGVuZ3RoOjMsb3B0aW1pemVkTWluTGVuZ3RoOjJ9KTtsZXQgZj1udWxsLG09bnVsbDtjb25zdCB4PXIubmV4dEVsZW1lbnRTaWJsaW5nO3JldHVybiB4JiYoZj1Qcih4KSxtPVlyKHgse3NlZWRNaW5MZW5ndGg6MyxvcHRpbWl6ZWRNaW5MZW5ndGg6Mn0pKSx7cGFyZW50SWQ6dSxwYXJlbnRTZWxlY3RvcjpzLG5leHRTaWJsaW5nSWQ6ZixuZXh0U2libGluZ1NlbGVjdG9yOm0sb3V0ZXJIVE1MOnIub3V0ZXJIVE1MLGNvbW1lbnQ6ci5fY29tbWVudH19ZnVuY3Rpb24gSHUocil7bGV0IGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgWyR7TGx9PSIke3IucGFyZW50SWR9Il1gKTtpZighaSl0cnl7aT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHIucGFyZW50U2VsZWN0b3IpLGkmJmkuc2V0QXR0cmlidXRlKExsLHIucGFyZW50SWQpfWNhdGNoKG0pe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBmaW5kIHBhcmVudCBlbGVtZW50IGZvciByZXN0b3JhdGlvbjoiLG0pLG51bGx9aWYoIWkpcmV0dXJuIGNvbnNvbGUud2FybigiUGFyZW50IGVsZW1lbnQgbm90IGZvdW5kIGZvciByZXN0b3JhdGlvbiIpLG51bGw7Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmlubmVySFRNTD1yLm91dGVySFRNTDtjb25zdCBzPXUuZmlyc3RFbGVtZW50Q2hpbGQ7aWYoIXMpcmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIHBhcnNlIG91dGVySFRNTCBmb3IgcmVzdG9yYXRpb24iKSxudWxsO2xldCBmPW51bGw7aWYoci5uZXh0U2libGluZ0lkJiYoZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbJHtMbH09IiR7ci5uZXh0U2libGluZ0lkfSJdYCksIWYmJnIubmV4dFNpYmxpbmdTZWxlY3RvcikpdHJ5e2Y9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyLm5leHRTaWJsaW5nU2VsZWN0b3IpLGYmJmYuc2V0QXR0cmlidXRlKExsLHIubmV4dFNpYmxpbmdJZCl9Y2F0Y2gobSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmluZCBuZXh0IHNpYmxpbmcgZm9yIHJlc3RvcmF0aW9uOiIsbSl9cmV0dXJuIGYmJmYucGFyZW50RWxlbWVudD09PWk/aS5pbnNlcnRCZWZvcmUocyxmKTppLmFwcGVuZENoaWxkKHMpLHIuY29tbWVudCYmKHMuX2NvbW1lbnQ9ci5jb21tZW50KSxzfWNvbnN0IGZ0PXI9Pntjb25zdCBpPU51bWJlci5wYXJzZUludChyKTtyZXR1cm4gTnVtYmVyLmlzTmFOKGkpPzA6aX0sZ2w9cj0+e2lmKCFyfHxyPT09InRyYW5zcGFyZW50IilyZXR1cm4idHJhbnNwYXJlbnQiO2NvbnN0IGk9ci5tYXRjaCgvcmdiYT9cKChcZCspLFxzKihcZCspLFxzKihcZCspLyk7aWYoaSl7Y29uc3QgdT1OdW1iZXIucGFyc2VJbnQoaVsxXSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSxzPU51bWJlci5wYXJzZUludChpWzJdKS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLGY9TnVtYmVyLnBhcnNlSW50KGlbM10pLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIik7cmV0dXJuYCMke3V9JHtzfSR7Zn1gfXJldHVybiByfTtmdW5jdGlvbiB4YSh7bGFiZWw6cixjaGlsZHJlbjppLGlzT3Blbjp1LG9uVG9nZ2xlOnN9KXtyZXR1cm4gaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29sbGFwc2libGVHcm91cC50c3g6MTgiLHN0eWxlOntib3JkZXJCb3R0b206IjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbWFpbikifSxjbGFzc05hbWU6Imxhc3Q6Ym9yZGVyLWItMCIsY2hpbGRyZW46W2guanN4cygiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbGxhcHNpYmxlR3JvdXAudHN4OjI0IixvbkNsaWNrOnMsY2xhc3NOYW1lOiJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTIuNSBweC0zIGhvdmVyOmJnLVt2YXIoLS1maWxsLXRzcC13aGl0ZS1saWdodCldIGFjdGl2ZTpvcGFjaXR5LTgwIHRyYW5zaXRpb24tYWxsIixjaGlsZHJlbjpbaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29sbGFwc2libGVHcm91cC50c3g6MjgiLGNsYXNzTmFtZToidGV4dC1zbSB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSIsY2hpbGRyZW46cn0pLGguanN4KCJzdmciLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29sbGFwc2libGVHcm91cC50c3g6MjkiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIuNSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsY2xhc3NOYW1lOkFlLmNuKCJ0ZXh0LVt2YXIoLS1pY29uLXRlcnRpYXJ5KV0gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMjAwIix1PyJyb3RhdGUtMTgwIjoiIiksY2hpbGRyZW46aC5qc3goInBvbHlsaW5lIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbGxhcHNpYmxlR3JvdXAudHN4OjQzIixwb2ludHM6IjYgOSAxMiAxNSAxOCA5In0pfSldfSksaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db2xsYXBzaWJsZUdyb3VwLnRzeDo0NiIsY2xhc3NOYW1lOiJncmlkIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBlYXNlLWluLW91dCBvdmVyZmxvdy1oaWRkZW4iLHN0eWxlOntncmlkVGVtcGxhdGVSb3dzOnU/IjFmciI6IjBmciIsb3BhY2l0eTp1PzE6MH0sY2hpbGRyZW46aC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db2xsYXBzaWJsZUdyb3VwLnRzeDo1MyIsY2xhc3NOYW1lOiJtaW4taC0wIixjaGlsZHJlbjpoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbGxhcHNpYmxlR3JvdXAudHN4OjU0IixjbGFzc05hbWU6InB4LTMgcGItMyBwdC0wIHNwYWNlLXktMi41IixjaGlsZHJlbjppfSl9KX0pXX0pfWNvbnN0IElnPXtiYWNrZ3JvdW5kOiJ2YXIoLS1maWxsLXRzcC13aGl0ZS1tYWluKSIsTW96QXBwZWFyYW5jZToidGV4dGZpZWxkIn0sdDA9InctZnVsbCB0ZXh0LXNtIHB4LTIuNSBweS0xLjUgcm91bmRlZC1bMTBweF0gYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSBwbGFjZWhvbGRlcjp0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLVsxcHhdIGZvY3VzOnJpbmctW3ZhcigtLWJvcmRlci1kYXJrKV0gdHJhbnNpdGlvbi1hbGwgY3Vyc29yLWV3LXJlc2l6ZSBbJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbl06YXBwZWFyYW5jZS1ub25lIFsmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uXTphcHBlYXJhbmNlLW5vbmUiO2Z1bmN0aW9uIHhlKHt2YWx1ZTpyLG9uQ2hhbmdlOmkscGxhY2Vob2xkZXI6dT0iIixtaW46cyxzdGVwOmY9MSxjbGFzc05hbWU6bT10MCxzdHlsZTp4PUlnLGxlZnRMYWJlbDpOfSl7Y29uc3RbQyx2XT1VLnVzZVN0YXRlKCExKSxbRCxSXT1VLnVzZVN0YXRlKCExKSxKPVUudXNlUmVmKDApLCQ9VS51c2VSZWYoMCksRj1VLnVzZVJlZihudWxsKSxhdD1VLnVzZVJlZihpKSxjdD1VLnVzZVJlZihmKSxodD1VLnVzZVJlZihzKTtVLnVzZUVmZmVjdCgoKT0+e2F0LmN1cnJlbnQ9aSxjdC5jdXJyZW50PWYsaHQuY3VycmVudD1zfSxbaSxmLHNdKTtjb25zdCBTdD1ZPT57aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PUYuY3VycmVudClyZXR1cm47UighMCksSi5jdXJyZW50PVkuY2xpZW50WDtjb25zdCBIPXBhcnNlRmxvYXQocil8fDA7JC5jdXJyZW50PUh9O1UudXNlRWZmZWN0KCgpPT57aWYoIUQmJiFDKXJldHVybjtjb25zdCBZPWl0PT57aWYoIUMmJkQpe01hdGguYWJzKGl0LmNsaWVudFgtSi5jdXJyZW50KT4zJiYodighMCksUighMSksZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9ImV3LXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIixGLmN1cnJlbnQ/LmJsdXIoKSk7cmV0dXJufWlmKEMpe2NvbnN0IHJ0PWl0LmNsaWVudFgtSi5jdXJyZW50LFg9TWF0aC5yb3VuZChydC8yKSpjdC5jdXJyZW50O2xldCB4dD0kLmN1cnJlbnQrWDtodC5jdXJyZW50IT09dm9pZCAwJiZ4dDxodC5jdXJyZW50JiYoeHQ9aHQuY3VycmVudCksYXQuY3VycmVudChTdHJpbmcoeHQpKX19LEg9KCk9Pnt2KCExKSxSKCExKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiJ9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLFkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEgpLCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixZKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixIKX19LFtDLERdKTtjb25zdCBrPWguanN4KCJpbnB1dCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9EcmFnZ2FibGVJbnB1dC50c3g6MTE2IixyZWY6Rix0eXBlOiJudW1iZXIiLG1pbjpzLHN0ZXA6Zix2YWx1ZTpyLG9uQ2hhbmdlOlk9PmkoWS50YXJnZXQudmFsdWUpLG9uTW91c2VEb3duOlN0LHBsYWNlaG9sZGVyOnUsc3R5bGU6eCxjbGFzc05hbWU6Tj9gJHttfSBwbC03YDptfSk7cmV0dXJuIE4/aC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvRHJhZ2dhYmxlSW5wdXQudHN4OjEzMiIsY2xhc3NOYW1lOiJyZWxhdGl2ZSIsY2hpbGRyZW46W2guanN4KCJzcGFuIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0RyYWdnYWJsZUlucHV0LnRzeDoxMzMiLGNsYXNzTmFtZToiYWJzb2x1dGUgbGVmdC0yLjUgdG9wLTEvMiAtdHJhbnNsYXRlLXktMS8yIHRleHQtc20gdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIHBvaW50ZXItZXZlbnRzLW5vbmUiLGNoaWxkcmVuOk59KSxrXX0pOmt9ZnVuY3Rpb24gZTAocil7Y29uc3RbaSx1XT1VLnVzZVN0YXRlKCJwYWRkaW5nIikscz1mPT57dShtPT5tPT09Zj9udWxsOmYpfTtyZXR1cm4gaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjM5IixzdHlsZTp7Ym9yZGVyVG9wOiIxcHggc29saWQgdmFyKC0tYm9yZGVyLW1haW4pIn0sY2hpbGRyZW46W2guanN4KHhhLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjQ0IixsYWJlbDoiUGFkZGluZyIsaXNPcGVuOmk9PT0icGFkZGluZyIsb25Ub2dnbGU6KCk9PnMoInBhZGRpbmciKSxjaGlsZHJlbjpoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9MYXlvdXRQYW5lbC50c3g6NDkiLGNsYXNzTmFtZToiZ3JpZCBncmlkLWNvbHMtMiBnYXAteC0yIGdhcC15LTMiLGNoaWxkcmVuOltoLmpzeCh4ZSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDo1MCIsbWluOjAsc3RlcDoxLHZhbHVlOnIucGFkZGluZ1RvcCxvbkNoYW5nZTpyLm9uUGFkZGluZ1RvcENoYW5nZSxwbGFjZWhvbGRlcjoiMCIsbGVmdExhYmVsOiJUIn0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjU4IixtaW46MCxzdGVwOjEsdmFsdWU6ci5wYWRkaW5nUmlnaHQsb25DaGFuZ2U6ci5vblBhZGRpbmdSaWdodENoYW5nZSxwbGFjZWhvbGRlcjoiMCIsbGVmdExhYmVsOiJSIn0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjY2IixtaW46MCxzdGVwOjEsdmFsdWU6ci5wYWRkaW5nQm90dG9tLG9uQ2hhbmdlOnIub25QYWRkaW5nQm90dG9tQ2hhbmdlLHBsYWNlaG9sZGVyOiIwIixsZWZ0TGFiZWw6IkIifSksaC5qc3goeGUseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9MYXlvdXRQYW5lbC50c3g6NzQiLG1pbjowLHN0ZXA6MSx2YWx1ZTpyLnBhZGRpbmdMZWZ0LG9uQ2hhbmdlOnIub25QYWRkaW5nTGVmdENoYW5nZSxwbGFjZWhvbGRlcjoiMCIsbGVmdExhYmVsOiJMIn0pXX0pfSksaC5qc3goeGEseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9MYXlvdXRQYW5lbC50c3g6ODUiLGxhYmVsOiJNYXJnaW4iLGlzT3BlbjppPT09Im1hcmdpbiIsb25Ub2dnbGU6KCk9PnMoIm1hcmdpbiIpLGNoaWxkcmVuOmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDo5MCIsY2xhc3NOYW1lOiJncmlkIGdyaWQtY29scy0yIGdhcC14LTIgZ2FwLXktMyIsY2hpbGRyZW46W2guanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjkxIixzdGVwOjEsdmFsdWU6ci5tYXJnaW5Ub3Asb25DaGFuZ2U6ci5vbk1hcmdpblRvcENoYW5nZSxwbGFjZWhvbGRlcjoiMCIsbGVmdExhYmVsOiJUIn0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4Ojk4IixzdGVwOjEsdmFsdWU6ci5tYXJnaW5SaWdodCxvbkNoYW5nZTpyLm9uTWFyZ2luUmlnaHRDaGFuZ2UscGxhY2Vob2xkZXI6IjAiLGxlZnRMYWJlbDoiUiJ9KSxoLmpzeCh4ZSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDoxMDUiLHN0ZXA6MSx2YWx1ZTpyLm1hcmdpbkJvdHRvbSxvbkNoYW5nZTpyLm9uTWFyZ2luQm90dG9tQ2hhbmdlLHBsYWNlaG9sZGVyOiIwIixsZWZ0TGFiZWw6IkIifSksaC5qc3goeGUseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9MYXlvdXRQYW5lbC50c3g6MTEyIixzdGVwOjEsdmFsdWU6ci5tYXJnaW5MZWZ0LG9uQ2hhbmdlOnIub25NYXJnaW5MZWZ0Q2hhbmdlLHBsYWNlaG9sZGVyOiIwIixsZWZ0TGFiZWw6IkwifSldfSl9KSxoLmpzeCh4YSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDoxMjIiLGxhYmVsOiJEaW1lbnNpb25zIixpc09wZW46aT09PSJkaW1lbnNpb25zIixvblRvZ2dsZTooKT0+cygiZGltZW5zaW9ucyIpLGNoaWxkcmVuOmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDoxMjciLGNsYXNzTmFtZToiZ3JpZCBncmlkLWNvbHMtMiBnYXAteC0yIGdhcC15LTMiLGNoaWxkcmVuOltoLmpzeCh4ZSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0xheW91dFBhbmVsLnRzeDoxMjgiLG1pbjowLHN0ZXA6MSx2YWx1ZTpyLndpZHRoLG9uQ2hhbmdlOnIub25XaWR0aENoYW5nZSxwbGFjZWhvbGRlcjoiMCIsbGVmdExhYmVsOiJXIn0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvTGF5b3V0UGFuZWwudHN4OjEzNiIsbWluOjAsc3RlcDoxLHZhbHVlOnIuaGVpZ2h0LG9uQ2hhbmdlOnIub25IZWlnaHRDaGFuZ2UscGxhY2Vob2xkZXI6IjAiLGxlZnRMYWJlbDoiSCJ9KV19KX0pXX0pfWZ1bmN0aW9uICRyKHt2YWx1ZTpyLG9uQ2hhbmdlOml9KXtjb25zdCB1PVUudXNlUmVmKG51bGwpLHM9bT0+IW18fG09PT0idHJhbnNwYXJlbnQiPyIjZmZmZmZmIjptLnN0YXJ0c1dpdGgoIiMiKXx8bS5zdGFydHNXaXRoKCIjIik/bToiI2ZmZmZmZiIsZj0oKT0+e3UuY3VycmVudD8uY2xpY2soKX07cmV0dXJuIGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbG9ySW5wdXQudHN4OjI1IixjbGFzc05hbWU6InJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIixjaGlsZHJlbjpbaC5qc3goImlucHV0Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbG9ySW5wdXQudHN4OjI2Iix0eXBlOiJ0ZXh0Iix2YWx1ZTpyLG9uQ2hhbmdlOm09PmkobS50YXJnZXQudmFsdWUpLG9uQ2xpY2s6ZixwbGFjZWhvbGRlcjoiIzAwMDAwMCIsY2xhc3NOYW1lOiJ3LWZ1bGwgdGV4dC1zbSBweC0yLjUgcHktMS41IHBsLTEwIHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctW3ZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pXSB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSBwbGFjZWhvbGRlcjp0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLVsxcHhdIGZvY3VzOnJpbmctW3ZhcigtLWJvcmRlci1kYXJrKV0gdHJhbnNpdGlvbi1hbGwgY3Vyc29yLXBvaW50ZXIifSksaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db2xvcklucHV0LnRzeDozNCIsY2xhc3NOYW1lOiJhYnNvbHV0ZSBsZWZ0LTIuNSBwb2ludGVyLWV2ZW50cy1ub25lIixjaGlsZHJlbjpoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbG9ySW5wdXQudHN4OjM1IixjbGFzc05hbWU6InctNSBoLTUgcm91bmRlZCBib3JkZXIgYm9yZGVyLWJsYWNrLzIwIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctc20iLHN0eWxlOntiYWNrZ3JvdW5kQ29sb3I6cixib3hTaGFkb3c6Imluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkifSxjaGlsZHJlbjpoLmpzeCgiaW5wdXQiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29sb3JJbnB1dC50c3g6NDIiLHJlZjp1LHR5cGU6ImNvbG9yIix2YWx1ZTpzKHIpLG9uQ2hhbmdlOm09PmkobS50YXJnZXQudmFsdWUpLGNsYXNzTmFtZToidy1bMTUwJV0gaC1bMTUwJV0gY3Vyc29yLXBvaW50ZXIgYm9yZGVyLTAgLW0tWzI1JV0gb3BhY2l0eS0wIHBvaW50ZXItZXZlbnRzLWF1dG8iLHRpdGxlOiJQaWNrIGEgY29sb3IifSl9KX0pXX0pfWNvbnN0IGwwPXtiYWNrZ3JvdW5kOiJ2YXIoLS1maWxsLXRzcC13aGl0ZS1tYWluKSJ9LGEwPSJ3LWZ1bGwgdGV4dC1zbSBweC0yLjUgcHktMS41IHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1bdmFyKC0tdGV4dC1wcmltYXJ5KV0gcGxhY2Vob2xkZXI6dGV4dC1bdmFyKC0tdGV4dC1kaXNhYmxlKV0gb3V0bGluZS1ub25lIGZvY3VzOnJpbmctaW5zZXQgZm9jdXM6cmluZy1bMXB4XSBmb2N1czpyaW5nLVt2YXIoLS1ib3JkZXItZGFyayldIHRyYW5zaXRpb24tYWxsIixubj0idy1mdWxsIHRleHQtc20gcHgtMi41IHB5LTEuNSByb3VuZGVkLVsxMHB4XSBib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtW3ZhcigtLXRleHQtcHJpbWFyeSldIG91dGxpbmUtbm9uZSBmb2N1czpyaW5nLWluc2V0IGZvY3VzOnJpbmctWzFweF0gZm9jdXM6cmluZy1bdmFyKC0tYm9yZGVyLWRhcmspXSB0cmFuc2l0aW9uLWFsbCBjdXJzb3ItcG9pbnRlciBhcHBlYXJhbmNlLW5vbmUiLG9uPXtiYWNrZ3JvdW5kOiJ2YXIoLS1maWxsLXRzcC13aGl0ZS1tYWluKSIsYmFja2dyb3VuZEltYWdlOmB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZiNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nTTYgOGw0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIilgLGJhY2tncm91bmRQb3NpdGlvbjoicmlnaHQgMC41cmVtIGNlbnRlciIsYmFja2dyb3VuZFNpemU6IjE2cHggMTZweCIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixwYWRkaW5nUmlnaHQ6IjJyZW0ifTtmdW5jdGlvbiBuMChyKXtjb25zdFtpLHVdPVUudXNlU3RhdGUoImNvbG9ycyIpLHM9Zj0+e3UobT0+bT09PWY/bnVsbDpmKX07cmV0dXJuIGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDo3MCIsc3R5bGU6e2JvcmRlclRvcDoiMXB4IHNvbGlkIHZhcigtLWJvcmRlci1tYWluKSJ9LGNoaWxkcmVuOltoLmpzeCh4YSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDo3NSIsbGFiZWw6IkNvbG9ycyIsaXNPcGVuOmk9PT0iY29sb3JzIixvblRvZ2dsZTooKT0+cygiY29sb3JzIiksY2hpbGRyZW46aC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjgwIixjbGFzc05hbWU6ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLXgtMiBnYXAteS0zIixjaGlsZHJlbjpbci5yZXN1bHQuaXNUZXh0JiZoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6ODIiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjgzIixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIG1iLTEuNSBibG9jayIsY2hpbGRyZW46IlRleHQgY29sb3IifSksaC5qc3goJHIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6ODYiLHZhbHVlOnIuY29sb3Isb25DaGFuZ2U6ci5vbkNvbG9yQ2hhbmdlfSldfSksaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4Ojg5IixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDo5MCIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJCYWNrZ3JvdW5kIn0pLGguanN4KCRyLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjkzIix2YWx1ZTpyLmJhY2tncm91bmRDb2xvcixvbkNoYW5nZTpyLm9uQmFja2dyb3VuZENvbG9yQ2hhbmdlfSldfSldfSl9KSxyLnJlc3VsdC5pc1RleHQmJmguanN4cyh4YSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMDIiLGxhYmVsOiJUeXBvZ3JhcGh5Iixpc09wZW46aT09PSJ0eXBvZ3JhcGh5IixvblRvZ2dsZTooKT0+cygidHlwb2dyYXBoeSIpLGNoaWxkcmVuOltoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTA3IixjbGFzc05hbWU6ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLXgtMiBnYXAteS0zIixjaGlsZHJlbjpbaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjEwOCIsY2hpbGRyZW46W2guanN4KCJsYWJlbCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTA5IixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIG1iLTEuNSBibG9jayIsY2hpbGRyZW46IkZvbnQgc2l6ZSJ9KSxoLmpzeCh4ZSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMTIiLG1pbjowLHN0ZXA6MSx2YWx1ZTpyLmZvbnRTaXplLG9uQ2hhbmdlOnIub25Gb250U2l6ZUNoYW5nZSxwbGFjZWhvbGRlcjoicHgifSldfSksaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjEyMCIsY2hpbGRyZW46W2guanN4KCJsYWJlbCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTIxIixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIG1iLTEuNSBibG9jayIsY2hpbGRyZW46IkZvbnQgd2VpZ2h0In0pLGguanN4cygic2VsZWN0Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMjQiLHZhbHVlOnIuZm9udFdlaWdodCxvbkNoYW5nZTpmPT5yLm9uRm9udFdlaWdodENoYW5nZShmLnRhcmdldC52YWx1ZSksc3R5bGU6b24sY2xhc3NOYW1lOm5uLGNoaWxkcmVuOltoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMzAiLHZhbHVlOiIiLGNoaWxkcmVuOiJEZWZhdWx0In0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjEzMSIsdmFsdWU6IjEwMCIsY2hpbGRyZW46IlRoaW4gKDEwMCkifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTMyIix2YWx1ZToiMjAwIixjaGlsZHJlbjoiRXh0cmEgTGlnaHQgKDIwMCkifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTMzIix2YWx1ZToiMzAwIixjaGlsZHJlbjoiTGlnaHQgKDMwMCkifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTM0Iix2YWx1ZToiNDAwIixjaGlsZHJlbjoiTm9ybWFsICg0MDApIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjEzNSIsdmFsdWU6IjUwMCIsY2hpbGRyZW46Ik1lZGl1bSAoNTAwKSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMzYiLHZhbHVlOiI2MDAiLGNoaWxkcmVuOiJTZW1pIEJvbGQgKDYwMCkifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTM3Iix2YWx1ZToiNzAwIixjaGlsZHJlbjoiQm9sZCAoNzAwKSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxMzgiLHZhbHVlOiI4MDAiLGNoaWxkcmVuOiJFeHRyYSBCb2xkICg4MDApIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjEzOSIsdmFsdWU6IjkwMCIsY2hpbGRyZW46IkJsYWNrICg5MDApIn0pXX0pXX0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxNDMiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE0NCIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJGb250IGZhbWlseSJ9KSxoLmpzeCgiaW5wdXQiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE0NyIsdHlwZToidGV4dCIsdmFsdWU6ci5mb250RmFtaWx5LG9uQ2hhbmdlOmY9PnIub25Gb250RmFtaWx5Q2hhbmdlKGYudGFyZ2V0LnZhbHVlKSxwbGFjZWhvbGRlcjoiZS5nLiwgQXJpYWwsIHNhbnMtc2VyaWYiLHN0eWxlOmwwLGNsYXNzTmFtZTphMH0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxNTYiLGNsYXNzTmFtZToiZ3JpZCBncmlkLWNvbHMtMiBnYXAteC0yIGdhcC15LTMiLGNoaWxkcmVuOltoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTU3IixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxNTgiLGNsYXNzTmFtZToidGV4dC14cyB0ZXh0LVt2YXIoLS10ZXh0LXRlcnRpYXJ5KV0gbWItMS41IGJsb2NrIixjaGlsZHJlbjoiVGV4dCBhbGlnbiJ9KSxoLmpzeHMoInNlbGVjdCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTYxIix2YWx1ZTpyLnRleHRBbGlnbixvbkNoYW5nZTpmPT5yLm9uVGV4dEFsaWduQ2hhbmdlKGYudGFyZ2V0LnZhbHVlKSxzdHlsZTpvbixjbGFzc05hbWU6bm4sY2hpbGRyZW46W2guanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE2NyIsdmFsdWU6IiIsY2hpbGRyZW46IkRlZmF1bHQifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTY4Iix2YWx1ZToibGVmdCIsY2hpbGRyZW46IkxlZnQifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTY5Iix2YWx1ZToiY2VudGVyIixjaGlsZHJlbjoiQ2VudGVyIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE3MCIsdmFsdWU6InJpZ2h0IixjaGlsZHJlbjoiUmlnaHQifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTcxIix2YWx1ZToianVzdGlmeSIsY2hpbGRyZW46Ikp1c3RpZnkifSldfSldfSksaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE3NCIsY2hpbGRyZW46W2guanN4KCJsYWJlbCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTc1IixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIG1iLTEuNSBibG9jayIsY2hpbGRyZW46IlRleHQgZGVjb3JhdGlvbiJ9KSxoLmpzeHMoInNlbGVjdCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MTc4Iix2YWx1ZTpyLnRleHREZWNvcmF0aW9uLG9uQ2hhbmdlOmY9PnIub25UZXh0RGVjb3JhdGlvbkNoYW5nZShmLnRhcmdldC52YWx1ZSksc3R5bGU6b24sY2xhc3NOYW1lOm5uLGNoaWxkcmVuOltoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxODQiLHZhbHVlOiIiLGNoaWxkcmVuOiJEZWZhdWx0In0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE4NSIsdmFsdWU6Im5vbmUiLGNoaWxkcmVuOiJOb25lIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE4NiIsdmFsdWU6InVuZGVybGluZSIsY2hpbGRyZW46IlVuZGVybGluZSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxODciLHZhbHVlOiJvdmVybGluZSIsY2hpbGRyZW46Ik92ZXJsaW5lIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjE4OCIsdmFsdWU6ImxpbmUtdGhyb3VnaCIsY2hpbGRyZW46IkxpbmUgVGhyb3VnaCJ9KV19KV19KV19KV19KSxoLmpzeCh4YSx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoxOTUiLGxhYmVsOiJCb3JkZXIiLGlzT3BlbjppPT09ImJvcmRlciIsb25Ub2dnbGU6KCk9PnMoImJvcmRlciIpLGNoaWxkcmVuOmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMDAiLGNsYXNzTmFtZToiZ3JpZCBncmlkLWNvbHMtMiBnYXAteC0yIGdhcC15LTMiLGNoaWxkcmVuOltoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjAxIixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMDIiLGNsYXNzTmFtZToidGV4dC14cyB0ZXh0LVt2YXIoLS10ZXh0LXRlcnRpYXJ5KV0gbWItMS41IGJsb2NrIixjaGlsZHJlbjoiQm9yZGVyIGNvbG9yIn0pLGguanN4KCRyLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIwNSIsdmFsdWU6ci5ib3JkZXJDb2xvcixvbkNoYW5nZTpyLm9uQm9yZGVyQ29sb3JDaGFuZ2V9KV19KSxoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjEwIixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMTEiLGNsYXNzTmFtZToidGV4dC14cyB0ZXh0LVt2YXIoLS10ZXh0LXRlcnRpYXJ5KV0gbWItMS41IGJsb2NrIixjaGlsZHJlbjoiUmFkaXVzIn0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIxNCIsbWluOjAsc3RlcDoxLHZhbHVlOnIuYm9yZGVyUmFkaXVzLG9uQ2hhbmdlOnIub25Cb3JkZXJSYWRpdXNDaGFuZ2UscGxhY2Vob2xkZXI6InB4In0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMjIiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIyMyIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJCb3JkZXIgc3R5bGUifSksaC5qc3hzKCJzZWxlY3QiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIyNiIsdmFsdWU6ci5ib3JkZXJTdHlsZSxvbkNoYW5nZTpmPT5yLm9uQm9yZGVyU3R5bGVDaGFuZ2UoZi50YXJnZXQudmFsdWUpLHN0eWxlOm9uLGNsYXNzTmFtZTpubixjaGlsZHJlbjpbaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjMyIix2YWx1ZToiIixjaGlsZHJlbjoiRGVmYXVsdCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMzMiLHZhbHVlOiJub25lIixjaGlsZHJlbjoiTm9uZSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMzQiLHZhbHVlOiJzb2xpZCIsY2hpbGRyZW46IlNvbGlkIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIzNSIsdmFsdWU6ImRhc2hlZCIsY2hpbGRyZW46IkRhc2hlZCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMzYiLHZhbHVlOiJkb3R0ZWQiLGNoaWxkcmVuOiJEb3R0ZWQifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjM3Iix2YWx1ZToiZG91YmxlIixjaGlsZHJlbjoiRG91YmxlIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjIzOCIsdmFsdWU6Imdyb292ZSIsY2hpbGRyZW46Ikdyb292ZSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyMzkiLHZhbHVlOiJyaWRnZSIsY2hpbGRyZW46IlJpZGdlIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI0MCIsdmFsdWU6Imluc2V0IixjaGlsZHJlbjoiSW5zZXQifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjQxIix2YWx1ZToib3V0c2V0IixjaGlsZHJlbjoiT3V0c2V0In0pXX0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyNDQiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI0NSIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJCb3JkZXIgd2VpZ2h0In0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI0OCIsbWluOjAsc3RlcDoxLHZhbHVlOnIuYm9yZGVyV2lkdGgsb25DaGFuZ2U6ci5vbkJvcmRlcldpZHRoQ2hhbmdlLHBsYWNlaG9sZGVyOiJweCJ9KV19KV19KX0pLGguanN4KHhhLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI1OSIsbGFiZWw6IkRpc3BsYXkiLGlzT3BlbjppPT09ImRpc3BsYXkiLG9uVG9nZ2xlOigpPT5zKCJkaXNwbGF5IiksY2hpbGRyZW46aC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI2NCIsY2xhc3NOYW1lOiJncmlkIGdyaWQtY29scy0yIGdhcC14LTIgZ2FwLXktMyIsY2hpbGRyZW46W2guanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyNjUiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI2NiIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJCZWhhdmlvciJ9KSxoLmpzeHMoInNlbGVjdCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjY5Iix2YWx1ZTpyLmRpc3BsYXksb25DaGFuZ2U6Zj0+ci5vbkRpc3BsYXlDaGFuZ2UoZi50YXJnZXQudmFsdWUpLHN0eWxlOm9uLGNsYXNzTmFtZTpubixjaGlsZHJlbjpbaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6Mjc1Iix2YWx1ZToiIixjaGlsZHJlbjoiRGVmYXVsdCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyNzYiLHZhbHVlOiJibG9jayIsY2hpbGRyZW46IkJsb2NrIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI3NyIsdmFsdWU6ImlubGluZSIsY2hpbGRyZW46IklubGluZSJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyNzgiLHZhbHVlOiJpbmxpbmUtYmxvY2siLGNoaWxkcmVuOiJJbmxpbmUgQmxvY2sifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6Mjc5Iix2YWx1ZToiZmxleCIsY2hpbGRyZW46IkZsZXgifSksaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MjgwIix2YWx1ZToiaW5saW5lLWZsZXgiLGNoaWxkcmVuOiJJbmxpbmUgRmxleCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyODEiLHZhbHVlOiJncmlkIixjaGlsZHJlbjoiR3JpZCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyODIiLHZhbHVlOiJpbmxpbmUtZ3JpZCIsY2hpbGRyZW46IklubGluZSBHcmlkIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI4MyIsdmFsdWU6Im5vbmUiLGNoaWxkcmVuOiJOb25lIChIaWRkZW4pIn0pXX0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyODYiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI4NyIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJPcGFjaXR5In0pLGguanN4KHhlLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjI5MCIsbWluOjAsc3RlcDouMSx2YWx1ZTpyLm9wYWNpdHksb25DaGFuZ2U6ci5vbk9wYWNpdHlDaGFuZ2UscGxhY2Vob2xkZXI6IjAtMSJ9KV19KSwoci5yZXN1bHQuaXNJbWFnZXx8ci5yZXN1bHQuaXNWaWRlbykmJmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDoyOTkiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjMwMCIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBtYi0xLjUgYmxvY2siLGNoaWxkcmVuOiJPYmplY3QgZml0In0pLGguanN4cygic2VsZWN0Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDozMDMiLHZhbHVlOnIub2JqZWN0Rml0LG9uQ2hhbmdlOmY9PnIub25PYmplY3RGaXRDaGFuZ2UoZi50YXJnZXQudmFsdWUpLHN0eWxlOm9uLGNsYXNzTmFtZTpubixjaGlsZHJlbjpbaC5qc3goIm9wdGlvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9TdHlsZXNQYW5lbC50c3g6MzA5Iix2YWx1ZToiIixjaGlsZHJlbjoiRGVmYXVsdCJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDozMTAiLHZhbHVlOiJjb250YWluIixjaGlsZHJlbjoiQ29udGFpbiJ9KSxoLmpzeCgib3B0aW9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL1N0eWxlc1BhbmVsLnRzeDozMTEiLHZhbHVlOiJjb3ZlciIsY2hpbGRyZW46IkNvdmVyIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjMxMiIsdmFsdWU6ImZpbGwiLGNoaWxkcmVuOiJGaWxsIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjMxMyIsdmFsdWU6Im5vbmUiLGNoaWxkcmVuOiJOb25lIn0pLGguanN4KCJvcHRpb24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvU3R5bGVzUGFuZWwudHN4OjMxNCIsdmFsdWU6InNjYWxlLWRvd24iLGNoaWxkcmVuOiJTY2FsZSBEb3duIn0pXX0pXX0pXX0pfSldfSl9Y29uc3Qgb2k9OCx3ZT0xNix3YT0zMjAsVXU9NjAwO2Z1bmN0aW9uIG8wKHIpe2NvbnN0IGk9VS51c2VSZWYobnVsbCksdT1VLnVzZVJlZihudWxsKSxzPVUudXNlUmVmKG51bGwpLGY9VS51c2VSZWYoITEpLFttLHhdPVUudXNlU3RhdGUoMCksW04sQ109VS51c2VTdGF0ZSgwKSxbdixEXT1VLnVzZVN0YXRlKCExKSxbUixKXT1VLnVzZVN0YXRlKCJzdHlsZXMiKSxbJCxGXT1VLnVzZVN0YXRlKCIiKSxbYXQsY3RdPVUudXNlU3RhdGUoIiIpLFtodCxTdF09VS51c2VTdGF0ZSgiIiksW2ssWV09VS51c2VTdGF0ZSgiIiksW0gsaXRdPVUudXNlU3RhdGUoIiIpLFtydCxYXT1VLnVzZVN0YXRlKCIiKSxbeHQsQmVdPVUudXNlU3RhdGUoIiIpLFtJdCxCdF09VS51c2VTdGF0ZSgiIiksW21lLFNlXT1VLnVzZVN0YXRlKCIiKSxbTXQsQV09VS51c2VTdGF0ZSgiIiksW0csQl09VS51c2VTdGF0ZSgiIiksW2J0LHBdPVUudXNlU3RhdGUoIiIpLFtqLFZdPVUudXNlU3RhdGUoIiIpLFtxLFpdPVUudXNlU3RhdGUoIiIpLFtzdCx0dF09VS51c2VTdGF0ZSgiIiksW2d0LFR0XT1VLnVzZVN0YXRlKCIiKSxbUHQsS2VdPVUudXNlU3RhdGUoIiIpLFtDZSxQZV09VS51c2VTdGF0ZSgiIiksW3BsLHJuXT1VLnVzZVN0YXRlKCIiKSxbU2EsaWldPVUudXNlU3RhdGUoIiIpLFtnZSxyaV09VS51c2VTdGF0ZSgiIiksW0hsLCRuXT1VLnVzZVN0YXRlKCIiKSxbbmwsc2ldPVUudXNlU3RhdGUoIiIpLFtVbCxjaV09VS51c2VTdGF0ZSgiIiksW0NhLHFsXT1VLnVzZVN0YXRlKCIiKSxbSnQsSmVdPVUudXNlU3RhdGUoIiIpLFtXdCx1aV09VS51c2VTdGF0ZSgiIiksW0VhLGRpXT1VLnVzZVN0YXRlKCIiKSxMPVUudXNlTWVtbygoKT0+V3Ioci50YXJnZXRFbGVtZW50KSxbci50YXJnZXRFbGVtZW50XSksc249b3QoTT0+e2NvbnN0IG50PXIudGFyZ2V0RWxlbWVudDtudCYmKG50LnRleHRDb250ZW50IT09bnVsbCYmKG50LnRleHRDb250ZW50PU0pLHIuaGlnaGxpZ2h0ZXIuc2NoZWR1bGVSZW5kZXIoKSl9KSx5bD1vdChNPT57Y29uc3QgbnQ9ci50YXJnZXRFbGVtZW50O250JiYoInNyYyJpbiBudCYmdHlwZW9mIG50LnNyYz09InN0cmluZyImJihudC5zcmM9TSksci5oaWdobGlnaHRlci5zY2hlZHVsZVJlbmRlcigpKX0pLGNuPW90KE09Pntjb25zdCBudD1yLnRhcmdldEVsZW1lbnQ7bnQmJigiaHJlZiJpbiBudCYmdHlwZW9mIG50LmhyZWY9PSJzdHJpbmciJiYobnQuaHJlZj1NKSxyLmhpZ2hsaWdodGVyLnNjaGVkdWxlUmVuZGVyKCkpfSksRHQ9b3QoKE0sbnQpPT57Y29uc3QgT3Q9ci50YXJnZXRFbGVtZW50O2lmKCFPdClyZXR1cm47Y29uc3QgZWU9TS5zcGxpdCgvKD89W0EtWl0pLykuam9pbigiLSIpLnRvTG93ZXJDYXNlKCk7bnQ/T3Quc3R5bGUuc2V0UHJvcGVydHkoZWUsbnQsImltcG9ydGFudCIpOk90LnN0eWxlLnJlbW92ZVByb3BlcnR5KGVlKSxyLmhpZ2hsaWdodGVyLnNjaGVkdWxlUmVuZGVyKCl9KSxGbj1vdCgoKT0+e2YuY3VycmVudD0hMCxKcihyLnRhcmdldEVsZW1lbnQpLHIub25EaXNwb3NlZCgpfSksSW49b3QoKCk9PntyLm9uRGlzcG9zZWQoKX0pLGZpPW90KGFzeW5jKCk9Pntjb25zdCBNPSQudHJpbSgpLG50PUwuY29tbWVudCxPdD1hdCE9PUwudGV4dENvbnRlbnQsZWU9aHQhPT1MLnNyYyxFZT1rIT09TC5ocmVmLGxlPU0hPT1udCxMZT1nbChMLnN0eWxlLmNvbG9yKSxIZT1nbChMLnN0eWxlLmJhY2tncm91bmRDb2xvciksWmw9ZnQoTC5zdHlsZS5mb250U2l6ZSkudG9TdHJpbmcoKSxibD1mdChMLnN0eWxlLmJvcmRlclJhZGl1cykudG9TdHJpbmcoKSxWdD1mdChMLnN0eWxlLnBhZGRpbmdUb3ApLnRvU3RyaW5nKCksaWw9ZnQoTC5zdHlsZS5wYWRkaW5nUmlnaHQpLnRvU3RyaW5nKCksdmU9ZnQoTC5zdHlsZS5wYWRkaW5nQm90dG9tKS50b1N0cmluZygpLHJlPWZ0KEwuc3R5bGUucGFkZGluZ0xlZnQpLnRvU3RyaW5nKCkscmw9ZnQoTC5zdHlsZS5tYXJnaW5Ub3ApLnRvU3RyaW5nKCkseGw9ZnQoTC5zdHlsZS5tYXJnaW5SaWdodCkudG9TdHJpbmcoKSx1bj1mdChMLnN0eWxlLm1hcmdpbkJvdHRvbSkudG9TdHJpbmcoKSxzZT1mdChMLnN0eWxlLm1hcmdpbkxlZnQpLnRvU3RyaW5nKCksUWw9ZnQoTC5zdHlsZS53aWR0aCkudG9TdHJpbmcoKSxSYT1mdChMLnN0eWxlLmhlaWdodCkudG9TdHJpbmcoKSxLbD1MLnN0eWxlLmZvbnRXZWlnaHQsJGU9TC5zdHlsZS5mb250RmFtaWx5LHphPUwuc3R5bGUudGV4dEFsaWduLE5hPUwuc3R5bGUudGV4dERlY29yYXRpb24sRmU9TC5zdHlsZS5kaXNwbGF5LGRuPUwuc3R5bGUub3BhY2l0eSxfYT1MLnN0eWxlLm9iamVjdEZpdCxrYT1mdChMLnN0eWxlLmJvcmRlcldpZHRoKS50b1N0cmluZygpLE9hPUwuc3R5bGUuYm9yZGVyU3R5bGUsd2k9Z2woTC5zdHlsZS5ib3JkZXJDb2xvciksU2k9SCE9PUxlLGphPXJ0IT09SGUsZm49eHQhPT1abCxobj1JdCE9PWJsLHdsPW1lIT09VnQsU2w9TXQhPT1pbCxvbz1HIT09dmUsbW49YnQhPT1yZSxpbz1qIT09cmwsUGw9cSE9PXhsLFVlPXN0IT09dW4sZ249Z3QhPT1zZSxKbD1QdCE9PVFsLEllPUNlIT09UmEscG49cGwhPT1LbCxCYT1TYSE9PSRlLHJvPWdlIT09emEsTGE9SGwhPT1OYSxIYT1ubCE9PUZlLHNvPVVsIT09ZG4sY2U9Q2EhPT1fYSxzbD1KdCE9PWthLFVhPVd0IT09T2EsV2w9RWEhPT13aSxDaT1TaXx8amF8fGZufHxobnx8d2x8fFNsfHxvb3x8bW58fGlvfHxQbHx8VWV8fGdufHxKbHx8SWV8fHBufHxCYXx8cm98fExhfHxIYXx8c298fGNlfHxzbHx8VWF8fFdsO2lmKCEoT3R8fGVlfHxFZXx8Q2l8fGxlKSlyZXR1cm47Y29uc3QgY289e3RleHRDb250ZW50Ok90P3tvcmlnaW5hbDpMLnRleHRDb250ZW50LG1vZGlmaWVkOmF0fTp2b2lkIDAsc3JjOmVlP3tvcmlnaW5hbDpMLnNyYyxtb2RpZmllZDpodH06dm9pZCAwLGhyZWY6RWU/e29yaWdpbmFsOkwuaHJlZixtb2RpZmllZDprfTp2b2lkIDAsY29tbWVudDpsZT97b3JpZ2luYWw6bnQsbW9kaWZpZWQ6TX06dm9pZCAwLHN0eWxlOkNpP3suLi5TaSYme2NvbG9yOntvcmlnaW5hbDpMZSxtb2RpZmllZDpIfX0sLi4uamEmJntiYWNrZ3JvdW5kQ29sb3I6e29yaWdpbmFsOkhlLG1vZGlmaWVkOnJ0fX0sLi4uZm4mJntmb250U2l6ZTp7b3JpZ2luYWw6YCR7Wmx9cHhgLG1vZGlmaWVkOmAke3h0fXB4YH19LC4uLmhuJiZ7Ym9yZGVyUmFkaXVzOntvcmlnaW5hbDpgJHtibH1weGAsbW9kaWZpZWQ6YCR7SXR9cHhgfX0sLi4ud2wmJntwYWRkaW5nVG9wOntvcmlnaW5hbDpgJHtWdH1weGAsbW9kaWZpZWQ6YCR7bWV9cHhgfX0sLi4uU2wmJntwYWRkaW5nUmlnaHQ6e29yaWdpbmFsOmAke2lsfXB4YCxtb2RpZmllZDpgJHtNdH1weGB9fSwuLi5vbyYme3BhZGRpbmdCb3R0b206e29yaWdpbmFsOmAke3ZlfXB4YCxtb2RpZmllZDpgJHtHfXB4YH19LC4uLm1uJiZ7cGFkZGluZ0xlZnQ6e29yaWdpbmFsOmAke3JlfXB4YCxtb2RpZmllZDpgJHtidH1weGB9fSwuLi5pbyYme21hcmdpblRvcDp7b3JpZ2luYWw6YCR7cmx9cHhgLG1vZGlmaWVkOmAke2p9cHhgfX0sLi4uUGwmJnttYXJnaW5SaWdodDp7b3JpZ2luYWw6YCR7eGx9cHhgLG1vZGlmaWVkOmAke3F9cHhgfX0sLi4uVWUmJnttYXJnaW5Cb3R0b206e29yaWdpbmFsOmAke3VufXB4YCxtb2RpZmllZDpgJHtzdH1weGB9fSwuLi5nbiYme21hcmdpbkxlZnQ6e29yaWdpbmFsOmAke3NlfXB4YCxtb2RpZmllZDpgJHtndH1weGB9fSwuLi5KbCYme3dpZHRoOntvcmlnaW5hbDpgJHtRbH1weGAsbW9kaWZpZWQ6YCR7UHR9cHhgfX0sLi4uSWUmJntoZWlnaHQ6e29yaWdpbmFsOmAke1JhfXB4YCxtb2RpZmllZDpgJHtDZX1weGB9fSwuLi5wbiYme2ZvbnRXZWlnaHQ6e29yaWdpbmFsOktsLG1vZGlmaWVkOnBsfX0sLi4uQmEmJntmb250RmFtaWx5OntvcmlnaW5hbDokZSxtb2RpZmllZDpTYX19LC4uLnJvJiZ7dGV4dEFsaWduOntvcmlnaW5hbDp6YSxtb2RpZmllZDpnZX19LC4uLkxhJiZ7dGV4dERlY29yYXRpb246e29yaWdpbmFsOk5hLG1vZGlmaWVkOkhsfX0sLi4uSGEmJntkaXNwbGF5OntvcmlnaW5hbDpGZSxtb2RpZmllZDpubH19LC4uLnNvJiZ7b3BhY2l0eTp7b3JpZ2luYWw6ZG4sbW9kaWZpZWQ6VWx9fSwuLi5jZSYme29iamVjdEZpdDp7b3JpZ2luYWw6X2EsbW9kaWZpZWQ6Q2F9fSwuLi5zbCYme2JvcmRlcldpZHRoOntvcmlnaW5hbDpgJHtrYX1weGAsbW9kaWZpZWQ6YCR7SnR9cHhgfX0sLi4uVWEmJntib3JkZXJTdHlsZTp7b3JpZ2luYWw6T2EsbW9kaWZpZWQ6V3R9fSwuLi5XbCYme2JvcmRlckNvbG9yOntvcmlnaW5hbDp3aSxtb2RpZmllZDpFYX19fTp2b2lkIDB9O00/ci50YXJnZXRFbGVtZW50Ll9jb21tZW50PU06ci50YXJnZXRFbGVtZW50Ll9jb21tZW50JiZkZWxldGUgci50YXJnZXRFbGVtZW50Ll9jb21tZW50LHIub25TYXZlQ2hhbmdlcyh7ZWxlbWVudDpMLGNoYW5nZXM6Y28sc2NyZWVuc2hvdDpudWxsfSl9KSx0bz1vdChNPT57Y3QoTSksc24oTSl9KSxUYT1vdChNPT57U3QoTSkseWwoTSl9KSxGcj1vdChNPT57WShNKSxjbihNKX0pLGhpPW90KE09PntpdChNKSxEdCgiY29sb3IiLE0pfSksbWk9b3QoTT0+e1goTSksRHQoImJhY2tncm91bmRDb2xvciIsTSl9KSxlbz1vdChNPT57QmUoTSksRHQoImZvbnRTaXplIixNP2Ake019cHhgOiIiKX0pLGxvPW90KE09PntCdChNKSxEdCgiYm9yZGVyUmFkaXVzIixNP2Ake019cHhgOiIiKX0pLGdpPW90KE09PntTZShNKSxEdCgicGFkZGluZ1RvcCIsTT9gJHtNfXB4YDoiIil9KSxJcj1vdChNPT57QihNKSxEdCgicGFkZGluZ0JvdHRvbSIsTT9gJHtNfXB4YDoiIil9KSxvbD1vdChNPT57QShNKSxEdCgicGFkZGluZ1JpZ2h0IixNP2Ake019cHhgOiIiKX0pLHRlPW90KE09PntwKE0pLER0KCJwYWRkaW5nTGVmdCIsTT9gJHtNfXB4YDoiIil9KSxwZT1vdChNPT57VihNKSxEdCgibWFyZ2luVG9wIixNP2Ake019cHhgOiIiKX0pLEdsPW90KE09PntaKE0pLER0KCJtYXJnaW5SaWdodCIsTT9gJHtNfXB4YDoiIil9KSxhbz1vdChNPT57dHQoTSksRHQoIm1hcmdpbkJvdHRvbSIsTT9gJHtNfXB4YDoiIil9KSx0cz1vdChNPT57VHQoTSksRHQoIm1hcmdpbkxlZnQiLE0/YCR7TX1weGA6IiIpfSksZXM9b3QoTT0+e0tlKE0pLER0KCJ3aWR0aCIsTT9gJHtNfXB4YDoiIil9KSxwaT1vdChNPT57UGUoTSksRHQoImhlaWdodCIsTT9gJHtNfXB4YDoiIil9KSxEYT1vdChNPT57cm4oTSksRHQoImZvbnRXZWlnaHQiLE0pfSksbm89b3QoTT0+e2lpKE0pLER0KCJmb250RmFtaWx5IixNKX0pLFlsPW90KE09PntyaShNKSxEdCgidGV4dEFsaWduIixNKX0pLFhsPW90KE09PnskbihNKSxEdCgidGV4dERlY29yYXRpb24iLE0pfSksTWE9b3QoTT0+e3NpKE0pLER0KCJkaXNwbGF5IixNKX0pLFZsPW90KE09PntjaShNKSxEdCgib3BhY2l0eSIsTSl9KSxYdD1vdChNPT57cWwoTSksRHQoIm9iamVjdEZpdCIsTSl9KSx5aT1vdChNPT57SmUoTSksRHQoImJvcmRlcldpZHRoIixNP2Ake019cHhgOiIiKX0pLHZpPW90KE09Pnt1aShNKSxEdCgiYm9yZGVyU3R5bGUiLE0pfSksdmw9b3QoTT0+e2RpKE0pLER0KCJib3JkZXJDb2xvciIsTSl9KSxXZT1VLnVzZU1lbW8oKCk9Pntjb25zdCBNPWF0IT09TC50ZXh0Q29udGVudCxudD1odCE9PUwuc3JjLE90PWshPT1MLmhyZWYsZWU9JC50cmltKCkhPT1MLmNvbW1lbnQsRWU9Z2woTC5zdHlsZS5jb2xvciksbGU9Z2woTC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IpLExlPWZ0KEwuc3R5bGUuZm9udFNpemUpLnRvU3RyaW5nKCksSGU9ZnQoTC5zdHlsZS5ib3JkZXJSYWRpdXMpLnRvU3RyaW5nKCksWmw9ZnQoTC5zdHlsZS5wYWRkaW5nVG9wKS50b1N0cmluZygpLGJsPWZ0KEwuc3R5bGUucGFkZGluZ1JpZ2h0KS50b1N0cmluZygpLFZ0PWZ0KEwuc3R5bGUucGFkZGluZ0JvdHRvbSkudG9TdHJpbmcoKSxpbD1mdChMLnN0eWxlLnBhZGRpbmdMZWZ0KS50b1N0cmluZygpLHZlPWZ0KEwuc3R5bGUubWFyZ2luVG9wKS50b1N0cmluZygpLHJlPWZ0KEwuc3R5bGUubWFyZ2luUmlnaHQpLnRvU3RyaW5nKCkscmw9ZnQoTC5zdHlsZS5tYXJnaW5Cb3R0b20pLnRvU3RyaW5nKCkseGw9ZnQoTC5zdHlsZS5tYXJnaW5MZWZ0KS50b1N0cmluZygpLHVuPWZ0KEwuc3R5bGUud2lkdGgpLnRvU3RyaW5nKCksc2U9ZnQoTC5zdHlsZS5oZWlnaHQpLnRvU3RyaW5nKCksUWw9TC5zdHlsZS5mb250V2VpZ2h0LFJhPUwuc3R5bGUuZm9udEZhbWlseSxLbD1MLnN0eWxlLnRleHRBbGlnbiwkZT1MLnN0eWxlLnRleHREZWNvcmF0aW9uLHphPUwuc3R5bGUuZGlzcGxheSxOYT1MLnN0eWxlLm9wYWNpdHksRmU9TC5zdHlsZS5vYmplY3RGaXQsZG49ZnQoTC5zdHlsZS5ib3JkZXJXaWR0aCkudG9TdHJpbmcoKSxfYT1MLnN0eWxlLmJvcmRlclN0eWxlLGthPWdsKEwuc3R5bGUuYm9yZGVyQ29sb3IpO3JldHVybiBNfHxudHx8T3R8fGVlfHwoSCE9PUVlfHxydCE9PWxlfHx4dCE9PUxlfHxJdCE9PUhlfHxtZSE9PVpsfHxNdCE9PWJsfHxHIT09VnR8fGJ0IT09aWx8fGohPT12ZXx8cSE9PXJlfHxzdCE9PXJsfHxndCE9PXhsfHxQdCE9PXVufHxDZSE9PXNlfHxwbCE9PVFsfHxTYSE9PVJhfHxnZSE9PUtsfHxIbCE9PSRlfHxubCE9PXphfHxVbCE9PU5hfHxDYSE9PUZlfHxKdCE9PWRufHxXdCE9PV9hfHxFYSE9PWthKX0sW0wsYXQsaHQsayxILHJ0LHh0LEl0LG1lLE10LEcsYnQsaixxLHN0LGd0LFB0LENlLHBsLFNhLGdlLEhsLG5sLFVsLENhLEp0LFd0LEVhLHIudGFyZ2V0RWxlbWVudCwkXSkse29uQ29tcG9zaXRpb25FbmQ6bHMsb25Db21wb3NpdGlvblN0YXJ0OmJpLG9uS2V5RG93bjp4aX09VGcoe29uS2V5RG93bjpNPT57TS5rZXk9PT0iRXNjYXBlIj9GbigpOk0ua2V5PT09IkVudGVyIiYmIU0uc2hpZnRLZXkmJihNLnByZXZlbnREZWZhdWx0KCksSW4oKSl9fSksQWE9b3QoKE09ITEpPT57aWYoIWkuY3VycmVudClyZXR1cm47Y29uc3QgbnQ9ci50YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE90PXdpbmRvdy5pbm5lcldpZHRoLGVlPXdpbmRvdy5pbm5lckhlaWdodCxFZT1pLmN1cnJlbnQub2Zmc2V0SGVpZ2h0fHwwLGxlPUVlPjA/RWU6VXU7bGV0IExlPW0sSGU9TjtpZighTSl7Y29uc3QgYmw9KHJlLHJsKT0+cmU+PXdlJiZyZSt3YTw9T3Qtd2UmJnJsPj13ZSYmcmwrbGU8PWVlLXdlLFZ0PSgpPT57Y29uc3QgcmU9bnQudG9wK250LmhlaWdodC8yLWxlLzI7cmV0dXJuIE1hdGgubWF4KHdlLE1hdGgubWluKHJlLGVlLXdlLWxlKSl9LGlsPVt7bGVmdDpudC5yaWdodCtvaSx0b3A6VnQoKSxuYW1lOiJyaWdodCJ9LHtsZWZ0Om50LmxlZnQtd2Etb2ksdG9wOlZ0KCksbmFtZToibGVmdCJ9LHtsZWZ0Ok1hdGgubWF4KHdlLE1hdGgubWluKG50LmxlZnQsT3Qtd2Utd2EpKSx0b3A6bnQuYm90dG9tK29pLG5hbWU6ImJlbG93In0se2xlZnQ6TWF0aC5tYXgod2UsTWF0aC5taW4obnQubGVmdCxPdC13ZS13YSkpLHRvcDpudC50b3AtbGUtb2ksbmFtZToiYWJvdmUifV07bGV0IHZlPWlsLmZpbmQocmU9PmJsKHJlLmxlZnQscmUudG9wKSk7dmV8fCh2ZT1pbFswXSx2ZS5sZWZ0PU1hdGgubWF4KHdlLE1hdGgubWluKHZlLmxlZnQsT3Qtd2Utd2EpKSx2ZS50b3A9TWF0aC5tYXgod2UsTWF0aC5taW4odmUudG9wLGVlLXdlLWxlKSkpLExlPXZlLmxlZnQsSGU9dmUudG9wLHgoTGUpLEMoSGUpLEQoITApfWNvbnN0IFpsPW5ldyBET01SZWN0KExlLEhlLHdhLGxlKTtyLmhpZ2hsaWdodGVyLmFkZEV4Y2x1c2lvblJlY3QoImNvbnRyb2wtcGFuZWwiLFpsKX0pO3JldHVybiBVLnVzZUVmZmVjdCgoKT0+e2lmKCFpLmN1cnJlbnR8fCF2KXJldHVybjtjb25zdCBNPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e2kuY3VycmVudCYmQWEoITApfSk7cmV0dXJuIE0ub2JzZXJ2ZShpLmN1cnJlbnQpLCgpPT57TS5kaXNjb25uZWN0KCl9fSxbdixBYV0pLFUudXNlRWZmZWN0KCgpPT57cy5jdXJyZW50JiYocy5jdXJyZW50LnN0eWxlLmhlaWdodD0iYXV0byIscy5jdXJyZW50LnN0eWxlLmhlaWdodD1gJHtNYXRoLm1pbihzLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0LDIwMCl9cHhgKX0sW2F0XSksVS51c2VFZmZlY3QoKCk9PntGKEwuY29tbWVudCksY3Qoci50YXJnZXRFbGVtZW50LnRleHRDb250ZW50fHwiIiksU3Qoci50YXJnZXRFbGVtZW50LnNyY3x8IiIpLFkoci50YXJnZXRFbGVtZW50LmhyZWZ8fCIiKSxpdChnbChMLnN0eWxlLmNvbG9yKSksWChnbChMLnN0eWxlLmJhY2tncm91bmRDb2xvcikpLEJlKGZ0KEwuc3R5bGUuZm9udFNpemUpLnRvU3RyaW5nKCkpLEJ0KGZ0KEwuc3R5bGUuYm9yZGVyUmFkaXVzKS50b1N0cmluZygpKSxTZShmdChMLnN0eWxlLnBhZGRpbmdUb3ApLnRvU3RyaW5nKCkpLEEoZnQoTC5zdHlsZS5wYWRkaW5nUmlnaHQpLnRvU3RyaW5nKCkpLEIoZnQoTC5zdHlsZS5wYWRkaW5nQm90dG9tKS50b1N0cmluZygpKSxwKGZ0KEwuc3R5bGUucGFkZGluZ0xlZnQpLnRvU3RyaW5nKCkpLFYoZnQoTC5zdHlsZS5tYXJnaW5Ub3ApLnRvU3RyaW5nKCkpLFooZnQoTC5zdHlsZS5tYXJnaW5SaWdodCkudG9TdHJpbmcoKSksdHQoZnQoTC5zdHlsZS5tYXJnaW5Cb3R0b20pLnRvU3RyaW5nKCkpLFR0KGZ0KEwuc3R5bGUubWFyZ2luTGVmdCkudG9TdHJpbmcoKSksS2UoZnQoTC5zdHlsZS53aWR0aCkudG9TdHJpbmcoKSksUGUoZnQoTC5zdHlsZS5oZWlnaHQpLnRvU3RyaW5nKCkpLHJuKEwuc3R5bGUuZm9udFdlaWdodCksaWkoTC5zdHlsZS5mb250RmFtaWx5KSxyaShMLnN0eWxlLnRleHRBbGlnbiksJG4oTC5zdHlsZS50ZXh0RGVjb3JhdGlvbiksc2koTC5zdHlsZS5kaXNwbGF5KSxjaShMLnN0eWxlLm9wYWNpdHkpLHFsKEwuc3R5bGUub2JqZWN0Rml0KSxKZShmdChMLnN0eWxlLmJvcmRlcldpZHRoKS50b1N0cmluZygpKSx1aShMLnN0eWxlLmJvcmRlclN0eWxlKSxkaShnbChMLnN0eWxlLmJvcmRlckNvbG9yKSk7Y29uc3QgTT0oKT0+e2NvbnN0IEVlPXIudGFyZ2V0RWxlbWVudC50ZXh0Q29udGVudHx8IiI7Y3QoRWUpfSxudD0oKT0+e0FhKCl9LE90PUVlPT57RWUua2V5PT09IkVzY2FwZSImJkZuKCl9LGVlPSgpPT57QWEoKX07cmV0dXJuIEFhKCksdS5jdXJyZW50Py5mb2N1cygpLEwuaXNUZXh0JiZyLnRhcmdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLE0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG50KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlZSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLE90KSwoKT0+e0wuaXNUZXh0JiZyLnRhcmdldEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLE0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG50KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsT3QpLHIuaGlnaGxpZ2h0ZXIucmVtb3ZlRXhjbHVzaW9uUmVjdCgiY29udHJvbC1wYW5lbCIpLGYuY3VycmVudHx8ZmkoKX19LFtdKSxoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6OTk3IixjbGFzc05hbWU6ImZpeGVkIGxlZnQtMCByaWdodC0wIHRvcC0wIGJvdHRvbS0wIHBvaW50ZXItZXZlbnRzLW5vbmUiLHN0eWxlOnt6SW5kZXg6MjE0NzQ4MzY0NX0sY2hpbGRyZW46aC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMDAxIixbYWxdOiJ0cnVlIixvbk1vdXNlRG93bjpNPT5NLnN0b3BQcm9wYWdhdGlvbigpLHJlZjppLGNsYXNzTmFtZToiYWJzb2x1dGUgcG9pbnRlci1ldmVudHMtYXV0byByb3VuZGVkLVsyMHB4XSBib3JkZXIgYm9yZGVyLVt2YXIoLS1ib3JkZXItbWFpbildIG92ZXJmbG93LWhpZGRlbiBiZy1bdmFyKC0tYmFja2dyb3VuZC1tZW51LWdyYXkpXSBzaGFkb3ctWzBweF84cHhfMzJweF8wcHhfdmFyKC0tc2hhZG93LVMpXSBmbGV4IGZsZXgtY29sIixzdHlsZTp7bGVmdDptLHRvcDpOLHdpZHRoOmAke3dhfXB4YCxtYXhIZWlnaHQ6YCR7VXV9cHhgLG9wYWNpdHk6dj8xOjAsdHJhbnNmb3JtOnY/InNjYWxlKDEpIjoic2NhbGUoMC45NSkiLHRyYW5zaXRpb246Im9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnMifSxjaGlsZHJlbjpbaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMDE3IixjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgZmxleC1zaHJpbmstMCIsY2hpbGRyZW46W2guanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTAxOSIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWVuZCBteC0yIHB0LTIuNSBwYi0xLjUgcGwtMSBnYXAtMS41IGJvcmRlci1iIGJvcmRlci1tYWluIixjaGlsZHJlbjpbaC5qc3goInRleHRhcmVhIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTAyMCIscmVmOnUscm93czoxLGNsYXNzTmFtZToiZmxleC0xIHRleHQtc20gcHktMSBiZy1bdmFyKC0tYmFja2dyb3VuZC1tZW51LWdyYXkpXSB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSBwbGFjZWhvbGRlcjp0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSByZXNpemUtbm9uZSBvdmVyZmxvdy1oaWRkZW4iLHZhbHVlOiQsb25DaGFuZ2U6TT0+RihNLnRhcmdldC52YWx1ZSksb25Db21wb3NpdGlvblN0YXJ0OmJpLG9uQ29tcG9zaXRpb25FbmQ6bHMsb25LZXlEb3duOnhpLHBsYWNlaG9sZGVyOiJEZXNjcmliZSBhIGNoYW5nZSIsb25JbnB1dDpNPT57Y29uc3QgbnQ9TS50YXJnZXQ7bnQuc3R5bGUuaGVpZ2h0PSJhdXRvIixudC5zdHlsZS5oZWlnaHQ9YCR7bnQuc2Nyb2xsSGVpZ2h0fXB4YH19KSxoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTA2NCIsY2xhc3NOYW1lOiJ3LXB4IGgtNCBtYi1bNnB4XSBiZy1bdmFyKC0tYm9yZGVyLW1haW4pXSBmbGV4LXNocmluay0wIn0pLGguanN4KCJidXR0b24iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMDY1IixvbkNsaWNrOldlP0luOkZuLGNsYXNzTmFtZTpBZS5jbigiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc2l6ZS03IHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCBhY3RpdmU6b3BhY2l0eS04MCBvdXRsaW5lLW5vbmUgZmxleC1zaHJpbmstMCIsV2U/ImJnLVt2YXIoLS1CdXR0b24tcHJpbWFyeS1icmFuZCldIHRleHQtd2hpdGUgaG92ZXI6b3BhY2l0eS05MCBmb2N1czpvcGFjaXR5LTkwIjoidGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIGhvdmVyOmJnLVt2YXIoLS1maWxsLXRzcC13aGl0ZS1tYWluKV0gZm9jdXM6YmctW3ZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pXSIpLHRpdGxlOldlPyJTYXZlIGFuZCBjbG9zZSI6IkNsb3NlIixjaGlsZHJlbjpXZT9oLmpzeCgic3ZnIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTA3NiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHZpZXdCb3g6IjAgMCAxNCAxNCIsY2hpbGRyZW46aC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMDgyIixkOiJNNi45Mjc4NiAxMy4xODEyQzYuNTkwMzMgMTMuMTgxMiA2LjMxOTAzIDEzLjA3MjMgNi4xMTM5NSAxMi44NTQ0QzUuOTA4ODcgMTIuNjQwNyA1LjgwNjM0IDEyLjM1NjYgNS44MDYzNCAxMi4wMDJWNS41OTk3M0w1LjkyODEgMi45MjczMUw2LjU0OTc0IDMuNDA3OTZMNC45MjE5NCA1LjM1NjJMMy40OTI4IDYuNzkxNzVDMy4zOTAyNiA2Ljg5NDI5IDMuMjcyNzcgNi45Nzk3NCAzLjE0MDMyIDcuMDQ4MUMzLjAxMjE1IDcuMTE2NDYgMi44NjI2MSA3LjE1MDYzIDIuNjkxNzEgNy4xNTA2M0MyLjM5MjY0IDcuMTUwNjMgMi4xNDA1NiA3LjA1MjM3IDEuOTM1NDkgNi44NTU4M0MxLjczNDY4IDYuNjU1MDMgMS42MzQyOCA2LjM5NjU1IDEuNjM0MjggNi4wODAzOEMxLjYzNDI4IDUuNzc3MDQgMS43NDk2MyA1LjUxMDAxIDEuOTgwMzUgNS4yNzkzTDYuMTA3NTQgMS4xNDU2OUM2LjIwNTgxIDEuMDQzMTUgNi4zMjk3MSAwLjk2NDExMSA2LjQ3OTI1IDAuOTA4NTY5QzYuNjI4NzggMC44NDg3NTUgNi43NzgzMiAwLjgxODg0OCA2LjkyNzg2IDAuODE4ODQ4QzcuMDc3MzkgMC44MTg4NDggNy4yMjY5MyAwLjg0ODc1NSA3LjM3NjQ2IDAuOTA4NTY5QzcuNTI2IDAuOTY0MTExIDcuNjUyMDQgMS4wNDMxNSA3Ljc1NDU4IDEuMTQ1NjlMMTEuODgxOCA1LjI3OTNDMTIuMTEyNSA1LjUxMDAxIDEyLjIyNzggNS43NzcwNCAxMi4yMjc4IDYuMDgwMzhDMTIuMjI3OCA2LjM5NjU1IDEyLjEyNTMgNi42NTUwMyAxMS45MjAyIDYuODU1ODNDMTEuNzE5NCA3LjA1MjM3IDExLjQ2OTUgNy4xNTA2MyAxMS4xNzA0IDcuMTUwNjNDMTAuOTk5NSA3LjE1MDYzIDEwLjg0NzggNy4xMTY0NiAxMC43MTU0IDcuMDQ4MUMxMC41ODcyIDYuOTc5NzQgMTAuNDcxOSA2Ljg5NDI5IDEwLjM2OTMgNi43OTE3NUw4LjkzMzc4IDUuMzU2Mkw3LjMwNTk3IDMuNDA3OTZMNy45Mjc2MSAyLjkyNzMxTDguMDQyOTcgNS41OTk3M1YxMi4wMDJDOC4wNDI5NyAxMi4zNTY2IDcuOTQwNDMgMTIuNjQwNyA3LjczNTM1IDEyLjg1NDRDNy41MzAyNyAxMy4wNzIzIDcuMjYxMTEgMTMuMTgxMiA2LjkyNzg2IDEzLjE4MTJaIixmaWxsOiJjdXJyZW50Q29sb3IifSl9KTpoLmpzeHMoInN2ZyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjEwODgiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIix2aWV3Qm94OiIwIDAgMTQgMTQiLGZpbGw6Im5vbmUiLHN0cm9rZVdpZHRoOiIxLjUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixjaGlsZHJlbjpbaC5qc3goImxpbmUiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMDk5Iix4MToiMTQiLHkxOiIwIix4MjoiMCIseTI6IjE0In0pLGguanN4KCJsaW5lIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTEwMCIseDE6IjAiLHkxOiIwIix4MjoiMTQiLHkyOiIxNCJ9KV19KX0pXX0pLChMLmlzVGV4dHx8TC5pc0ltYWdlfHxMLmlzTGluaykmJmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTEwOCIsY2xhc3NOYW1lOiJweC0yLjUgcHQtMyBmbGV4IGZsZXgtY29sIGdhcC0yIixjaGlsZHJlbjpbTC5pc1RleHQmJmguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTExMCIsY2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIGdhcC0xLjUiLGNoaWxkcmVuOltoLmpzeCgibGFiZWwiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMTExIixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIHB4LTAuNSIsY2hpbGRyZW46IlRleHQgY29udGVudCJ9KSxoLmpzeCgidGV4dGFyZWEiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMTE0IixyZWY6cyxzdHlsZTp7bWluSGVpZ2h0OiIzNHB4IixtYXhIZWlnaHQ6IjIwMHB4In0sY2xhc3NOYW1lOiJ3LWZ1bGwgcmVzaXplLXkgcm91bmRlZC1bMTBweF0gYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1bdmFyKC0tZmlsbC10c3Atd2hpdGUtbWFpbildIHB4LTIuNSBweS0xLjUgdGV4dC1zbSB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSBwbGFjZWhvbGRlcjp0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLVsxcHhdIGZvY3VzOnJpbmctW3ZhcigtLWJvcmRlci1kYXJrKV0gb3ZlcmZsb3cteS1hdXRvIix2YWx1ZTphdCxvbkNoYW5nZTpNPT50byhNLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6IkVkaXQgdGV4dCBjb250ZW50Li4uIixvbklucHV0Ok09Pntjb25zdCBudD1NLnRhcmdldDtudC5zdHlsZS5oZWlnaHQ9ImF1dG8iLG50LnN0eWxlLmhlaWdodD1gJHtNYXRoLm1pbihudC5zY3JvbGxIZWlnaHQsMjAwKX1weGB9fSldfSksTC5pc0ltYWdlJiZoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjExMzQiLGNsYXNzTmFtZToiZmxleCBmbGV4LWNvbCBnYXAtMS41IixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTEzNSIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBweC0wLjUiLGNoaWxkcmVuOiJJbWFnZSBzb3VyY2UifSksaC5qc3goImlucHV0Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTEzOCIsdHlwZToidGV4dCIsY2xhc3NOYW1lOiJ3LWZ1bGwgdGV4dC1zbSBweC0yLjUgcHktMS41IHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctW3ZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pXSB0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSBwbGFjZWhvbGRlcjp0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLVsxcHhdIGZvY3VzOnJpbmctW3ZhcigtLWJvcmRlci1kYXJrKV0gdHJhbnNpdGlvbi1hbGwiLHZhbHVlOmh0LG9uQ2hhbmdlOk09PlRhKE0udGFyZ2V0LnZhbHVlKSxwbGFjZWhvbGRlcjoiRWRpdCBpbWFnZSBzb3VyY2UgVVJMIn0pXX0pLEwuaXNMaW5rJiZoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjExNDgiLGNsYXNzTmFtZToiZmxleCBmbGV4LWNvbCBnYXAtMS41IixjaGlsZHJlbjpbaC5qc3goImxhYmVsIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTE0OSIsY2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBweC0wLjUiLGNoaWxkcmVuOiJMaW5rIFVSTCJ9KSxoLmpzeCgiaW5wdXQiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMTUyIix0eXBlOiJ0ZXh0IixjbGFzc05hbWU6InctZnVsbCB0ZXh0LXNtIHB4LTIuNSBweS0xLjUgcm91bmRlZC1bMTBweF0gYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1bdmFyKC0tZmlsbC10c3Atd2hpdGUtbWFpbildIHRleHQtW3ZhcigtLXRleHQtcHJpbWFyeSldIHBsYWNlaG9sZGVyOnRleHQtW3ZhcigtLXRleHQtZGlzYWJsZSldIG91dGxpbmUtbm9uZSBmb2N1czpyaW5nLWluc2V0IGZvY3VzOnJpbmctWzFweF0gZm9jdXM6cmluZy1bdmFyKC0tYm9yZGVyLWRhcmspXSB0cmFuc2l0aW9uLWFsbCIsdmFsdWU6ayxvbkNoYW5nZTpNPT5GcihNLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6IkVkaXQgbGluayBVUkwgKGhyZWYpIn0pXX0pXX0pLGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTE2NSIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMCBweC0yIHB0LTEgcGItMCIsY2hpbGRyZW46W2guanN4cygiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTE2NiIsb25DbGljazooKT0+Sigic3R5bGVzIiksY2xhc3NOYW1lOkFlLmNuKCJ0ZXh0LXNtIHB4LTQgcHktMiB0cmFuc2l0aW9uLWFsbCByZWxhdGl2ZSBvdXRsaW5lLW5vbmUiLFI9PT0ic3R5bGVzIj8idGV4dC1bdmFyKC0tdGV4dC1wcmltYXJ5KV0iOiJ0ZXh0LVt2YXIoLS10ZXh0LXRlcnRpYXJ5KV0gaG92ZXI6dGV4dC1bdmFyKC0tdGV4dC1zZWNvbmRhcnkpXSBmb2N1czp0ZXh0LVt2YXIoLS10ZXh0LXNlY29uZGFyeSldIGFjdGl2ZTpvcGFjaXR5LTgwIiksY2hpbGRyZW46WyJTdHlsZSIsUj09PSJzdHlsZXMiJiZoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTE3NyIsY2xhc3NOYW1lOiJhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCBoLTAuNSBiZy1bdmFyKC0tdGV4dC1wcmltYXJ5KV0gcm91bmRlZC1mdWxsIn0pXX0pLGguanN4cygiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTE4MCIsb25DbGljazooKT0+Sigic3BhY2luZyIpLGNsYXNzTmFtZTpBZS5jbigidGV4dC1zbSBweC00IHB5LTIgdHJhbnNpdGlvbi1hbGwgcmVsYXRpdmUgb3V0bGluZS1ub25lIixSPT09InNwYWNpbmciPyJ0ZXh0LVt2YXIoLS10ZXh0LXByaW1hcnkpXSI6InRleHQtW3ZhcigtLXRleHQtdGVydGlhcnkpXSBob3Zlcjp0ZXh0LVt2YXIoLS10ZXh0LXNlY29uZGFyeSldIGZvY3VzOnRleHQtW3ZhcigtLXRleHQtc2Vjb25kYXJ5KV0gYWN0aXZlOm9wYWNpdHktODAiKSxjaGlsZHJlbjpbIkxheW91dCIsUj09PSJzcGFjaW5nIiYmaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjExOTEiLGNsYXNzTmFtZToiYWJzb2x1dGUgYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgaC0wLjUgYmctW3ZhcigtLXRleHQtcHJpbWFyeSldIHJvdW5kZWQtZnVsbCJ9KV19KV19KV19KSxoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjExOTgiLGNsYXNzTmFtZToicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIGZsZXgtMSIsY2hpbGRyZW46W2guanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMTk5IixjbGFzc05hbWU6InRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBlYXNlLWluLW91dCIsc3R5bGU6e29wYWNpdHk6Uj09PSJzdHlsZXMiPzE6MCx0cmFuc2Zvcm06Uj09PSJzdHlsZXMiPyJ0cmFuc2xhdGVYKDApIjoidHJhbnNsYXRlWCgtMjBweCkiLHBvc2l0aW9uOlI9PT0ic3R5bGVzIj8icmVsYXRpdmUiOiJhYnNvbHV0ZSIsd2lkdGg6IjEwMCUiLHBvaW50ZXJFdmVudHM6Uj09PSJzdHlsZXMiPyJhdXRvIjoibm9uZSIsdmlzaWJpbGl0eTpSPT09InN0eWxlcyI/InZpc2libGUiOiJoaWRkZW4ifSxjaGlsZHJlbjpoLmpzeChuMCx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29udHJvbFBhbmVsL0NvbnRyb2xQYW5lbC50c3g6MTIxMyIscmVzdWx0OkwsY29sb3I6SCxiYWNrZ3JvdW5kQ29sb3I6cnQsb25Db2xvckNoYW5nZTpoaSxvbkJhY2tncm91bmRDb2xvckNoYW5nZTptaSxmb250U2l6ZTp4dCxmb250V2VpZ2h0OnBsLGZvbnRGYW1pbHk6U2EsdGV4dEFsaWduOmdlLHRleHREZWNvcmF0aW9uOkhsLG9uRm9udFNpemVDaGFuZ2U6ZW8sb25Gb250V2VpZ2h0Q2hhbmdlOkRhLG9uRm9udEZhbWlseUNoYW5nZTpubyxvblRleHRBbGlnbkNoYW5nZTpZbCxvblRleHREZWNvcmF0aW9uQ2hhbmdlOlhsLGJvcmRlclJhZGl1czpJdCxib3JkZXJXaWR0aDpKdCxib3JkZXJTdHlsZTpXdCxib3JkZXJDb2xvcjpFYSxvbkJvcmRlclJhZGl1c0NoYW5nZTpsbyxvbkJvcmRlcldpZHRoQ2hhbmdlOnlpLG9uQm9yZGVyU3R5bGVDaGFuZ2U6dmksb25Cb3JkZXJDb2xvckNoYW5nZTp2bCxkaXNwbGF5Om5sLG9wYWNpdHk6VWwsb2JqZWN0Rml0OkNhLG9uRGlzcGxheUNoYW5nZTpNYSxvbk9wYWNpdHlDaGFuZ2U6Vmwsb25PYmplY3RGaXRDaGFuZ2U6WHR9KX0pLGguanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db250cm9sUGFuZWwvQ29udHJvbFBhbmVsLnRzeDoxMjQ1IixjbGFzc05hbWU6InRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBlYXNlLWluLW91dCIsc3R5bGU6e29wYWNpdHk6Uj09PSJzcGFjaW5nIj8xOjAsdHJhbnNmb3JtOlI9PT0ic3BhY2luZyI/InRyYW5zbGF0ZVgoMCkiOiJ0cmFuc2xhdGVYKDIwcHgpIixwb3NpdGlvbjpSPT09InNwYWNpbmciPyJyZWxhdGl2ZSI6ImFic29sdXRlIix3aWR0aDoiMTAwJSIscG9pbnRlckV2ZW50czpSPT09InNwYWNpbmciPyJhdXRvIjoibm9uZSIsdmlzaWJpbGl0eTpSPT09InNwYWNpbmciPyJ2aXNpYmxlIjoiaGlkZGVuIn0sY2hpbGRyZW46aC5qc3goZTAseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbnRyb2xQYW5lbC9Db250cm9sUGFuZWwudHN4OjEyNTkiLHBhZGRpbmdUb3A6bWUscGFkZGluZ1JpZ2h0Ok10LHBhZGRpbmdCb3R0b206RyxwYWRkaW5nTGVmdDpidCxvblBhZGRpbmdUb3BDaGFuZ2U6Z2ksb25QYWRkaW5nUmlnaHRDaGFuZ2U6b2wsb25QYWRkaW5nQm90dG9tQ2hhbmdlOklyLG9uUGFkZGluZ0xlZnRDaGFuZ2U6dGUsbWFyZ2luVG9wOmosbWFyZ2luUmlnaHQ6cSxtYXJnaW5Cb3R0b206c3QsbWFyZ2luTGVmdDpndCxvbk1hcmdpblRvcENoYW5nZTpwZSxvbk1hcmdpblJpZ2h0Q2hhbmdlOkdsLG9uTWFyZ2luQm90dG9tQ2hhbmdlOmFvLG9uTWFyZ2luTGVmdENoYW5nZTp0cyx3aWR0aDpQdCxoZWlnaHQ6Q2Usb25XaWR0aENoYW5nZTplcyxvbkhlaWdodENoYW5nZTpwaX0pfSldfSldfSl9KX1jb25zdCBpMD10aS5jcmVhdGVPcGVuZXIobzAse3NpbmdsZXRvbjohMH0pO2NsYXNzIHIwe2hpc3Rvcnk9W107Y3VycmVudEluZGV4PS0xO2xpc3RlbmVycz1bXTtlbGVtZW50Q2FjaGU9bmV3IE1hcDthZGRFZGl0KGkpe3RoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKTtjb25zdCB1PXRoaXMuZ2V0Q2FjaGVkRWxlbWVudChpLnRhcmdldERhdGEuaWQsaS50YXJnZXREYXRhKTt1JiYobmkodSksaS50YXJnZXQ9dSksdGhpcy5oaXN0b3J5LnB1c2goaSksdGhpcy5jdXJyZW50SW5kZXg9dGhpcy5oaXN0b3J5Lmxlbmd0aC0xLHRoaXMubm90aWZ5TGlzdGVuZXJzKCl9dW5kbygpe2lmKCF0aGlzLmNhblVuZG8oKSlyZXR1cm4gbnVsbDtjb25zdCBpPXRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0sdT1pLnRhcmdldERhdGEuaWQ7aWYoaS5jaGFuZ2VzLmRlbGV0ZWQpe2NvbnN0IGY9SHUoaS5jaGFuZ2VzLmRlbGV0ZWQpO2YmJih0aGlzLmVsZW1lbnRDYWNoZS5zZXQodSxuZXcgV2Vha1JlZihmKSksaS50YXJnZXQ9Zil9dGhpcy5jdXJyZW50SW5kZXgtLTtjb25zdCBzPXRoaXMucmVidWlsZEVsZW1lbnRTdGF0ZSh1LGkudGFyZ2V0RGF0YSk7cmV0dXJuIHMmJihpLnRhcmdldD1zKSx0aGlzLm5vdGlmeUxpc3RlbmVycygpLGl9cmVkbygpe2lmKCF0aGlzLmNhblJlZG8oKSlyZXR1cm4gbnVsbDt0aGlzLmN1cnJlbnRJbmRleCsrO2NvbnN0IGk9dGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSx1PXRoaXMucmVidWlsZEVsZW1lbnRTdGF0ZShpLnRhcmdldERhdGEuaWQsaS50YXJnZXREYXRhKTtyZXR1cm4gdSYmKGkudGFyZ2V0PXUpLHRoaXMubm90aWZ5TGlzdGVuZXJzKCksaX1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wfWNhblJlZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xfWdldEFjdGl2ZUVkaXRzKCl7cmV0dXJuIHRoaXMuaGlzdG9yeS5zbGljZSgwLHRoaXMuY3VycmVudEluZGV4KzEpfWhhc0VkaXRzKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wfWNsZWFyKCl7Y29uc3QgaT10aGlzLmdldEFjdGl2ZUVkaXRzKCk7Zm9yKGxldCBzPWkubGVuZ3RoLTE7cz49MDtzLS0pe2NvbnN0IGY9aVtzXTtpZihmLmNoYW5nZXMuZGVsZXRlZCl7Y29uc3QgbT1IdShmLmNoYW5nZXMuZGVsZXRlZCk7bSYmKHRoaXMuZWxlbWVudENhY2hlLnNldChmLnRhcmdldERhdGEuaWQsbmV3IFdlYWtSZWYobSkpLGYudGFyZ2V0PW0pfX1jb25zdCB1PXRoaXMuY29sbGVjdFRhcmdldHMoKTtmb3IoY29uc3QgcyBvZiB1LnZhbHVlcygpKUpyKHMpO3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMSx0aGlzLmVsZW1lbnRDYWNoZS5jbGVhcigpLHRoaXMubm90aWZ5TGlzdGVuZXJzKCl9Y2xlYXJDb21tZW50cygpe2NvbnN0IGk9dGhpcy5nZXRBY3RpdmVFZGl0cygpLHU9bmV3IFNldDtmb3IoY29uc3QgcyBvZiBpKXMuY2hhbmdlcy5jb21tZW50JiZ1LmFkZChzLnRhcmdldERhdGEuaWQpO2Zvcihjb25zdCBzIG9mIHUpe2NvbnN0IGY9dGhpcy5nZXRDYWNoZWRFbGVtZW50KHMsaS5maW5kKG09Pm0udGFyZ2V0RGF0YS5pZD09PXMpLnRhcmdldERhdGEpO2YmJmYuX2NvbW1lbnQmJmRlbGV0ZSBmLl9jb21tZW50fXRoaXMuaGlzdG9yeT10aGlzLmhpc3RvcnkubWFwKHM9PntpZighcy5jaGFuZ2VzLmNvbW1lbnQpcmV0dXJuIHM7Y29uc3R7Y29tbWVudDpmLC4uLm19PXMuY2hhbmdlcztyZXR1cm4gbS50ZXh0Q29udGVudHx8bS5zcmN8fG0uaHJlZnx8bS5jbGFzc05hbWV8fG0uZGVsZXRlZHx8bS5zdHlsZSYmT2JqZWN0LmtleXMobS5zdHlsZSkubGVuZ3RoPjA/ey4uLnMsY2hhbmdlczptfTpudWxsfSkuZmlsdGVyKHM9PnMhPT1udWxsKSx0aGlzLmN1cnJlbnRJbmRleD49dGhpcy5oaXN0b3J5Lmxlbmd0aCYmKHRoaXMuY3VycmVudEluZGV4PXRoaXMuaGlzdG9yeS5sZW5ndGgtMSksdGhpcy5ub3RpZnlMaXN0ZW5lcnMoKX1vbkNoYW5nZShpKXtyZXR1cm4gdGhpcy5saXN0ZW5lcnMucHVzaChpKSwoKT0+e3RoaXMubGlzdGVuZXJzPXRoaXMubGlzdGVuZXJzLmZpbHRlcih1PT51IT09aSl9fW5vdGlmeUxpc3RlbmVycygpe2Zvcihjb25zdCBpIG9mIHRoaXMubGlzdGVuZXJzKWkoKX1nZXRDYWNoZWRFbGVtZW50KGksdSl7Y29uc3Qgcz10aGlzLmVsZW1lbnRDYWNoZS5nZXQoaSk7aWYocyl7Y29uc3QgbT1zLmRlcmVmKCk7aWYobSYmZG9jdW1lbnQuY29udGFpbnMobSkpcmV0dXJuIG07dGhpcy5lbGVtZW50Q2FjaGUuZGVsZXRlKGkpfWNvbnN0IGY9WGcodSk7cmV0dXJuIGYmJnRoaXMuZWxlbWVudENhY2hlLnNldChpLG5ldyBXZWFrUmVmKGYpKSxmfXJlYnVpbGRFbGVtZW50U3RhdGUoaSx1KXtjb25zdCBzPXRoaXMuZ2V0Q2FjaGVkRWxlbWVudChpLHUpO2lmKCFzKXJldHVybiBudWxsO2lmKG5pKHMpLEpyKHMpLHRoaXMuY3VycmVudEluZGV4PDApcmV0dXJuIHM7Zm9yKGxldCBmPTA7Zjw9dGhpcy5jdXJyZW50SW5kZXg7ZisrKXtjb25zdCBtPXRoaXMuaGlzdG9yeVtmXTttLnRhcmdldERhdGEuaWQ9PT1pJiYobS50YXJnZXQ9cyx0aGlzLmFwcGx5Q2hhbmdlcyhzLG0uY2hhbmdlcykpfXJldHVybiBzfWFwcGx5Q2hhbmdlcyhpLHUpe2lmKHUuZGVsZXRlZCl7aS5wYXJlbnRFbGVtZW50JiZkb2N1bWVudC5jb250YWlucyhpKSYmaS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGkpO3JldHVybn1pZih1LnRleHRDb250ZW50JiZpLnRleHRDb250ZW50IT09bnVsbCYmKGkudGV4dENvbnRlbnQ9dS50ZXh0Q29udGVudC5tb2RpZmllZCksdS5zcmMmJiJzcmMiaW4gaSYmKGkuc3JjPXUuc3JjLm1vZGlmaWVkKSx1LmhyZWYmJiJocmVmImluIGkmJihpLmhyZWY9dS5ocmVmLm1vZGlmaWVkKSx1LmNsYXNzTmFtZSYmaSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoaS5jbGFzc05hbWU9dS5jbGFzc05hbWUubW9kaWZpZWQpLHUuY29tbWVudCYmKGkuX2NvbW1lbnQ9dS5jb21tZW50Lm1vZGlmaWVkKSx1LnN0eWxlKXtjb25zdCBzPU9iamVjdC5lbnRyaWVzKHUuc3R5bGUpO2Zvcihjb25zdFtmLG1db2YgcylaZyhpLGYsbS5tb2RpZmllZCl9fWNvbGxlY3RUYXJnZXRzKCl7Y29uc3QgaT1uZXcgTWFwLHU9dGhpcy5jdXJyZW50SW5kZXg+PTA/dGhpcy5oaXN0b3J5LnNsaWNlKDAsdGhpcy5jdXJyZW50SW5kZXgrMSk6W107Zm9yKGNvbnN0IHMgb2YgdSl7Y29uc3QgZj1zLnRhcmdldERhdGEuaWQ7aWYoaS5oYXMoZikpY29udGludWU7Y29uc3QgbT10aGlzLmdldENhY2hlZEVsZW1lbnQoZixzLnRhcmdldERhdGEpO20mJihuaShtKSxzLnRhcmdldD1tLGkuc2V0KGYsbSkpfXJldHVybiBpfX1jbGFzcyBzMHtob3ZlclRhcmdldD1udWxsO2FjdGl2ZVRhcmdldD1udWxsO3BvaW50ZXJEb3duPSExO2Rpc3Bvc2VTZWxlY3RvcklucHV0PSgpPT57fTtoaWdobGlnaHRlcj1uZXcgQ2c7Y3Vyc29yU3R5bGVFbGVtZW50PW51bGw7aXNEaXJlY3RFZGl0aW5nPSExO3JlbW92ZUVudGVyS2V5TGlzdGVuZXI9bnVsbDtlZGl0SGlzdG9yeT1uZXcgcjA7ZGlzcG9zZUVkaXRUb29sYmFyPW51bGw7ZGlzcG9zZUhpc3RvcnlMaXN0ZW5lcj1udWxsO2Rpc3Bvc2VDb21tZW50TWFya2Vycz1udWxsO2luaXQoKXtpZS5saXN0ZW5NZXNzYWdlKHt0eXBlOiJlbmFibGVFZGl0TW9kZSIsY2FsbGJhY2s6KCk9Pnt0aGlzLmVuYWJsZSgpfX0pLGllLmxpc3Rlbk1lc3NhZ2Uoe3R5cGU6ImRpc2FibGVFZGl0TW9kZSIsY2FsbGJhY2s6aT0+e3RoaXMuZGlzYWJsZShpLmtlZXBEb21DaGFuZ2VzKSx0aGlzLmNhbmNlbCgpLHRoaXMuZGlzcG9zZVNlbGVjdG9ySW5wdXQoKX19KSxpZS5saXN0ZW5NZXNzYWdlKHt0eXBlOiJoaWRlRWRpdFRvb2xCYXIiLGNhbGxiYWNrOigpPT57dGhpcy5oaWRlRWRpdFRvb2xiYXIoKX19KX1lbmFibGUoKXt0aGlzLmhpZ2hsaWdodGVyLm1vdW50KCksdGhpcy5pbmplY3RDdXJzb3JTdHlsZSgpLHRoaXMuZGlzcG9zZUhpc3RvcnlMaXN0ZW5lcj8uKCksdGhpcy5kaXNwb3NlSGlzdG9yeUxpc3RlbmVyPXRoaXMuZWRpdEhpc3Rvcnkub25DaGFuZ2UoKCk9Pnt0aGlzLmhpZ2hsaWdodGVyLnNjaGVkdWxlUmVuZGVyKCl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3ZlciIsdGhpcy5oYW5kbGVQb2ludGVyT3ZlciwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMuaGFuZGxlUG9pbnRlckRvd24sITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdXQiLHRoaXMuaGFuZGxlUG9pbnRlck91dCwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2ssITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlQXJyb3dLZXlOYXZpZ2F0aW9uLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZVVuZG9SZWRvLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZURlbGV0ZSwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVHbG9iYWxFc2NhcGUsITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3V0T2ZWaWV3LCEwKSx0aGlzLnNob3dFZGl0VG9vbGJhcklmTmVlZGVkKCksdGhpcy5zaG93Q29tbWVudE1hcmtlcnNJZk5lZWRlZCgpfWRpc2FibGUoaT0hMSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLHRoaXMuaGFuZGxlUG9pbnRlck92ZXIsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLmhhbmRsZVBvaW50ZXJEb3duLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0Iix0aGlzLmhhbmRsZVBvaW50ZXJPdXQsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUFycm93S2V5TmF2aWdhdGlvbiwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVVbmRvUmVkbywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVEZWxldGUsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlR2xvYmFsRXNjYXBlLCEwKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE91dE9mVmlldywhMCksdGhpcy5oaWdobGlnaHRlci51bm1vdW50KCksdGhpcy5yZW1vdmVDdXJzb3JTdHlsZSgpLHRoaXMuZXhpdERpcmVjdEVkaXRNb2RlKCksdGhpcy5oaWRlRWRpdFRvb2xiYXIoKSxpfHx0aGlzLmVkaXRIaXN0b3J5LmNsZWFyKCksdGhpcy5oaWRlQ29tbWVudE1hcmtlcnMoKSx0aGlzLmRpc3Bvc2VIaXN0b3J5TGlzdGVuZXI/LigpLHRoaXMuZGlzcG9zZUhpc3RvcnlMaXN0ZW5lcj1udWxsLHRoaXMuaG92ZXJUYXJnZXQ9bnVsbCx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMucG9pbnRlckRvd249ITF9Y2FuY2VsKCl7dGhpcy5leGl0RGlyZWN0RWRpdE1vZGUoKSx0aGlzLnJlbW92ZUVudGVyS2V5TGlzdGVuZXI/LigpLHRoaXMucmVtb3ZlRW50ZXJLZXlMaXN0ZW5lcj1udWxsLHRoaXMucG9pbnRlckRvd249ITEsdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmhvdmVyVGFyZ2V0PW51bGwsdGhpcy5oaWdobGlnaHRlci5zZXRBY3RpdmVUYXJnZXQobnVsbCksdGhpcy5oaWdobGlnaHRlci5zZXRIb3ZlclRhcmdldChudWxsKX1oYW5kbGVQb2ludGVyT3Zlcj1pPT57Y29uc3QgdT1pLnRhcmdldDtpZighUXIodSl8fCF0aGlzLmlzU2VsZWN0YWJsZUVsZW1lbnQodSkpe3RoaXMuaG92ZXJUYXJnZXQ9bnVsbCx0aGlzLmhpZ2hsaWdodGVyLnNldEhvdmVyVGFyZ2V0KG51bGwpO3JldHVybn1pZih0aGlzLmlzSWdub3JlZEVsZW1lbnQodSkpe3RoaXMuaG92ZXJUYXJnZXQ9bnVsbCx0aGlzLmhpZ2hsaWdodGVyLnNldEhvdmVyVGFyZ2V0KG51bGwpO3JldHVybn10aGlzLmhvdmVyVGFyZ2V0PXUsdGhpcy5oaWdobGlnaHRlci5zZXRIb3ZlclRhcmdldCh0aGlzLmhvdmVyVGFyZ2V0KX07aGFuZGxlUG9pbnRlck91dD1pPT57aS50YXJnZXQmJiF0aGlzLmlzU2VsZWN0YWJsZUVsZW1lbnQoaS50YXJnZXQpfHxpLnJlbGF0ZWRUYXJnZXQmJmkucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyhpLnJlbGF0ZWRUYXJnZXQpfHwodGhpcy5ob3ZlclRhcmdldD1udWxsLHRoaXMuaGlnaGxpZ2h0ZXIuc2V0SG92ZXJUYXJnZXQobnVsbCkpfTtoYW5kbGVTY3JvbGxPdXRPZlZpZXc9KCk9PnshdGhpcy5hY3RpdmVUYXJnZXR8fCF0aGlzLnBvaW50ZXJEb3dufHx0aGlzLmlzRGlyZWN0RWRpdGluZ3x8R2codGhpcy5hY3RpdmVUYXJnZXQpJiYodGhpcy5kaXNwb3NlU2VsZWN0b3JJbnB1dCgpLHRoaXMuZXhpdERpcmVjdEVkaXRNb2RlKCksdGhpcy5yZW1vdmVFbnRlcktleUxpc3RlbmVyPy4oKSx0aGlzLnJlbW92ZUVudGVyS2V5TGlzdGVuZXI9bnVsbCx0aGlzLnBvaW50ZXJEb3duPSExLHRoaXMuYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5ob3ZlclRhcmdldD1udWxsLHRoaXMuaGlnaGxpZ2h0ZXIuc2V0QWN0aXZlVGFyZ2V0KG51bGwpLHRoaXMuaGlnaGxpZ2h0ZXIuc2V0SG92ZXJUYXJnZXQobnVsbCkpfTtzZWxlY3RFbGVtZW50KGksdSl7aWYodGhpcy5hY3RpdmVUYXJnZXQmJmk9PT10aGlzLmFjdGl2ZVRhcmdldCYmYmEoaSkpe3RoaXMuZW50ZXJEaXJlY3RFZGl0TW9kZShpKTtyZXR1cm59dGhpcy5wb2ludGVyRG93biYmKHRoaXMuZGlzcG9zZVNlbGVjdG9ySW5wdXQoKSx0aGlzLmV4aXREaXJlY3RFZGl0TW9kZSgpLHRoaXMucmVtb3ZlRW50ZXJLZXlMaXN0ZW5lcj8uKCksdGhpcy5yZW1vdmVFbnRlcktleUxpc3RlbmVyPW51bGwpLHRoaXMucG9pbnRlckRvd249ITAsdGhpcy5hY3RpdmVUYXJnZXQ9aSx0aGlzLmhvdmVyVGFyZ2V0PWksdGhpcy5oaWdobGlnaHRlci5zZXRBY3RpdmVUYXJnZXQodGhpcy5hY3RpdmVUYXJnZXQpLHRoaXMuaGlnaGxpZ2h0ZXIuc2V0SG92ZXJUYXJnZXQodGhpcy5ob3ZlclRhcmdldCksYmEoaSkmJnRoaXMuc2V0dXBFbnRlcktleUxpc3RlbmVyKCk7Y29uc3Qgcz11fHwoKCk9Pntjb25zdCBtPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG5ldyBNb3VzZUV2ZW50KCJjbGljayIse2NsaWVudFg6bS5sZWZ0K20ud2lkdGgvMixjbGllbnRZOm0udG9wK20uaGVpZ2h0LzIsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSl9KSgpLGY9aTAoe3RhcmdldEVsZW1lbnQ6dGhpcy5hY3RpdmVUYXJnZXQsbW91c2VFdmVudDpzLGhpZ2hsaWdodGVyOnRoaXMuaGlnaGxpZ2h0ZXIsb25TYXZlQ2hhbmdlczptPT57dGhpcy5lZGl0SGlzdG9yeS5hZGRFZGl0KHt0YXJnZXQ6dGhpcy5hY3RpdmVUYXJnZXQsdGFyZ2V0RGF0YTptLmVsZW1lbnQsY2hhbmdlczptLmNoYW5nZXMsc2NyZWVuc2hvdDptLnNjcmVlbnNob3R9KSx0aGlzLnNob3dFZGl0VG9vbGJhcklmTmVlZGVkKCksdGhpcy5zaG93Q29tbWVudE1hcmtlcnNJZk5lZWRlZCgpfSxvbkRpc3Bvc2VkOigpPT57dGhpcy5jYW5jZWwoKX19KTt0aGlzLmRpc3Bvc2VTZWxlY3RvcklucHV0PSgpPT57Zj8uZGlzcG9zZSgpfX1oYW5kbGVQb2ludGVyRG93bj1pPT57Y29uc3QgdT1pLnRhcmdldDshUXIodSl8fCF0aGlzLmlzU2VsZWN0YWJsZUVsZW1lbnQodSl8fHRoaXMuaXNJZ25vcmVkRWxlbWVudCh1KXx8KGkucHJldmVudERlZmF1bHQoKSxpLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2VsZWN0RWxlbWVudCh1LGkpKX07aGFuZGxlQ2xpY2s9aT0+e2NvbnN0IHU9aS50YXJnZXQ7ISh1IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpJiYhKHUgaW5zdGFuY2VvZiBTVkdFbGVtZW50KXx8dGhpcy5pc0lnbm9yZWRFbGVtZW50KHUpfHwoaS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCksaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9O2hhbmRsZUFycm93S2V5TmF2aWdhdGlvbj1pPT57aWYodGhpcy5pc0RpcmVjdEVkaXRpbmd8fCFbIkFycm93VXAiLCJBcnJvd0Rvd24iLCJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0Il0uaW5jbHVkZXMoaS5rZXkpKXJldHVybjtjb25zdCB1PWkudGFyZ2V0O2lmKHUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7Y29uc3QgTj11LnRhZ05hbWU7aWYoWyJJTlBVVCIsIlRFWFRBUkVBIiwiU0VMRUNUIl0uaW5jbHVkZXMoTil8fHUuaXNDb250ZW50RWRpdGFibGUpcmV0dXJufWNvbnN0IHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2NvbnN0IE49cy50YWdOYW1lO2lmKFsiSU5QVVQiLCJURVhUQVJFQSIsIlNFTEVDVCJdLmluY2x1ZGVzKE4pfHxzLmlzQ29udGVudEVkaXRhYmxlKXJldHVybjtsZXQgQz1zO2Zvcig7Qzspe2lmKEMuaGFzQXR0cmlidXRlKGFsKSlyZXR1cm47Qz1DLnBhcmVudEVsZW1lbnR9fWlmKCF0aGlzLmFjdGl2ZVRhcmdldClyZXR1cm47aS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCk7Y29uc3QgbT17QXJyb3dVcDoidXAiLEFycm93RG93bjoiZG93biIsQXJyb3dMZWZ0OiJsZWZ0IixBcnJvd1JpZ2h0OiJyaWdodCJ9W2kua2V5XTtpZighbSlyZXR1cm47Y29uc3QgeD1XZyh0aGlzLmFjdGl2ZVRhcmdldCxtLE49PnRoaXMuaXNJZ25vcmVkRWxlbWVudChOKSk7eCYmKFFnKHgpLHRoaXMuc2VsZWN0RWxlbWVudCh4KSl9O3NldHVwRW50ZXJLZXlMaXN0ZW5lcigpe2NvbnN0IGk9dT0+e2lmKHUua2V5PT09IkVudGVyIiYmIXUuc2hpZnRLZXkmJiF1LmN0cmxLZXkmJiF1Lm1ldGFLZXkpe2NvbnN0IHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2NvbnN0IGY9cy50YWdOYW1lO2lmKFsiSU5QVVQiLCJURVhUQVJFQSIsIlNFTEVDVCJdLmluY2x1ZGVzKGYpfHxzLmlzQ29udGVudEVkaXRhYmxlKXJldHVybjtsZXQgbT1zO2Zvcig7bTspe2lmKG0uaGFzQXR0cmlidXRlKGFsKSlyZXR1cm47bT1tLnBhcmVudEVsZW1lbnR9fSF0aGlzLmlzRGlyZWN0RWRpdGluZyYmdGhpcy5hY3RpdmVUYXJnZXQmJmJhKHRoaXMuYWN0aXZlVGFyZ2V0KSYmKHUucHJldmVudERlZmF1bHQoKSx1LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW50ZXJEaXJlY3RFZGl0TW9kZSh0aGlzLmFjdGl2ZVRhcmdldCkpfX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaSwhMCksdGhpcy5yZW1vdmVFbnRlcktleUxpc3RlbmVyPSgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaSwhMCl9fWVudGVyRGlyZWN0RWRpdE1vZGUoaSl7aWYodGhpcy5pc0RpcmVjdEVkaXRpbmcpcmV0dXJuO3RoaXMuaXNEaXJlY3RFZGl0aW5nPSEwLHRoaXMucmVtb3ZlRW50ZXJLZXlMaXN0ZW5lcj8uKCksdGhpcy5yZW1vdmVFbnRlcktleUxpc3RlbmVyPW51bGwsT3UoaSwhMCksaSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZzZXRUaW1lb3V0KCgpPT57Y29uc3QgbT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHg9d2luZG93LmdldFNlbGVjdGlvbigpO20uc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLHg/LnJlbW92ZUFsbFJhbmdlcygpLHg/LmFkZFJhbmdlKG0pfSwwKTtjb25zdCB1PSgpPT57dGhpcy5leGl0RGlyZWN0RWRpdE1vZGUoKX0scz1tPT57bSBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQmJm0ua2V5PT09IkVzY2FwZSImJnRoaXMuZXhpdERpcmVjdEVkaXRNb2RlKCl9LGY9KCk9Pnt0aGlzLmhpZ2hsaWdodGVyLnNjaGVkdWxlUmVuZGVyKCl9O2kuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdSx7b25jZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscyksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZiksaS5fZWRpdE1vZGVDbGVhbnVwPSgpPT57aS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix1KSxpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHMpLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGYpfX1leGl0RGlyZWN0RWRpdE1vZGUoKXtpZih0aGlzLmlzRGlyZWN0RWRpdGluZyYmKHRoaXMuaXNEaXJlY3RFZGl0aW5nPSExLHRoaXMuYWN0aXZlVGFyZ2V0KSl7T3UodGhpcy5hY3RpdmVUYXJnZXQsITEpO2NvbnN0IGk9dGhpcy5hY3RpdmVUYXJnZXQuX2VkaXRNb2RlQ2xlYW51cDtpJiYoaSgpLGRlbGV0ZSB0aGlzLmFjdGl2ZVRhcmdldC5fZWRpdE1vZGVDbGVhbnVwKSxiYSh0aGlzLmFjdGl2ZVRhcmdldCkmJnRoaXMuc2V0dXBFbnRlcktleUxpc3RlbmVyKCl9fWlzSWdub3JlZEVsZW1lbnQoaSl7Y29uc3QgdT1pLnRhZ05hbWU7aWYobmV3IFNldChbIlNDUklQVCIsIlNUWUxFIl0pLmhhcyh1KXx8aS5oYXNBdHRyaWJ1dGUoVHUpKXJldHVybiEwO2xldCBzPWk7Zm9yKDtzOyl7aWYocy5oYXNBdHRyaWJ1dGUoYWwpKXJldHVybiEwO3M9cy5wYXJlbnRFbGVtZW50fXJldHVybiExfWlzU2VsZWN0YWJsZUVsZW1lbnQoaSl7cmV0dXJuISFpJiYoaSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxpIGluc3RhbmNlb2YgU1ZHRWxlbWVudCl9aW5qZWN0Q3Vyc29yU3R5bGUoKXtpZih0aGlzLmN1cnNvclN0eWxlRWxlbWVudClyZXR1cm47Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2kudGV4dENvbnRlbnQ9YAogICAgICAqIHsgY3Vyc29yOiBjcm9zc2hhaXIgIWltcG9ydGFudDsgfQogICAgICBbY29udGVudGVkaXRhYmxlPSJ0cnVlIl0sIFtjb250ZW50ZWRpdGFibGU9InBsYWludGV4dC1vbmx5Il0geyBjdXJzb3I6IHRleHQgIWltcG9ydGFudDsgfQogICAgYCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGkpLHRoaXMuY3Vyc29yU3R5bGVFbGVtZW50PWl9cmVtb3ZlQ3Vyc29yU3R5bGUoKXt0aGlzLmN1cnNvclN0eWxlRWxlbWVudCYmKHRoaXMuY3Vyc29yU3R5bGVFbGVtZW50LnJlbW92ZSgpLHRoaXMuY3Vyc29yU3R5bGVFbGVtZW50PW51bGwpfWhhbmRsZVVuZG9SZWRvPWk9Pntjb25zdCB1PWkua2V5LnRvTG93ZXJDYXNlKCkscz0oaS5jdHJsS2V5fHxpLm1ldGFLZXkpJiZ1PT09InoiJiYhaS5zaGlmdEtleSxmPShpLmN0cmxLZXl8fGkubWV0YUtleSkmJih1PT09InoiJiZpLnNoaWZ0S2V5fHx1PT09InkiKTtpZighcyYmIWYpcmV0dXJuO2NvbnN0IG09aS50YXJnZXQ7aWYobSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtjb25zdCBDPW0udGFnTmFtZTtpZihbIklOUFVUIiwiVEVYVEFSRUEiLCJTRUxFQ1QiXS5pbmNsdWRlcyhDKXx8bS5pc0NvbnRlbnRFZGl0YWJsZSlyZXR1cm59Y29uc3QgeD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKHggaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7Y29uc3QgQz14LnRhZ05hbWU7aWYoWyJJTlBVVCIsIlRFWFRBUkVBIiwiU0VMRUNUIl0uaW5jbHVkZXMoQyl8fHguaXNDb250ZW50RWRpdGFibGUpcmV0dXJuO2xldCB2PXg7Zm9yKDt2Oyl7aWYodi5oYXNBdHRyaWJ1dGUoYWwpKXJldHVybjt2PXYucGFyZW50RWxlbWVudH19aS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IE49bnVsbDtzPyhOPXRoaXMuZWRpdEhpc3RvcnkudW5kbygpLHRoaXMuaGlnaGxpZ2h0ZXIuc2NoZWR1bGVSZW5kZXIoKSk6ZiYmKE49dGhpcy5lZGl0SGlzdG9yeS5yZWRvKCksdGhpcy5oaWdobGlnaHRlci5zY2hlZHVsZVJlbmRlcigpKSxOJiZOLnRhcmdldCYmZG9jdW1lbnQuY29udGFpbnMoTi50YXJnZXQpJiYoTi50YXJnZXQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJjZW50ZXIifSksdGhpcy5oaWdobGlnaHRlci5zZXRBY3RpdmVUYXJnZXQoTi50YXJnZXQpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmhpZ2hsaWdodGVyLnNldEFjdGl2ZVRhcmdldChudWxsKX0sMTUwMCkpfTtoYW5kbGVEZWxldGU9aT0+e2lmKGkua2V5IT09IkRlbGV0ZSImJmkua2V5IT09IkJhY2tzcGFjZSJ8fHRoaXMuaXNEaXJlY3RFZGl0aW5nKXJldHVybjtjb25zdCB1PWkudGFyZ2V0O2lmKHUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7Y29uc3QgTj11LnRhZ05hbWU7aWYoWyJJTlBVVCIsIlRFWFRBUkVBIiwiU0VMRUNUIl0uaW5jbHVkZXMoTil8fHUuaXNDb250ZW50RWRpdGFibGUpcmV0dXJufWNvbnN0IHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2NvbnN0IE49cy50YWdOYW1lO2lmKFsiSU5QVVQiLCJURVhUQVJFQSIsIlNFTEVDVCJdLmluY2x1ZGVzKE4pfHxzLmlzQ29udGVudEVkaXRhYmxlKXJldHVybjtsZXQgQz1zO2Zvcig7Qzspe2lmKEMuaGFzQXR0cmlidXRlKGFsKSlyZXR1cm47Qz1DLnBhcmVudEVsZW1lbnR9fWlmKCF0aGlzLmFjdGl2ZVRhcmdldClyZXR1cm47aWYoISRnKHRoaXMuYWN0aXZlVGFyZ2V0KSl7Y29uc29sZS53YXJuKCJDYW5ub3QgZGVsZXRlIHRoaXMgZWxlbWVudDogaXQgaXMgYSBjcml0aWNhbCBET00gZWxlbWVudCIpO3JldHVybn1pLnByZXZlbnREZWZhdWx0KCksaS5zdG9wUHJvcGFnYXRpb24oKTtjb25zdCBmPUZnKHRoaXMuYWN0aXZlVGFyZ2V0KTtpZighZil7Y29uc29sZS53YXJuKCJDYW5ub3QgZGVsZXRlIGVsZW1lbnQ6IG5vIHBhcmVudCBmb3VuZCIpO3JldHVybn1jb25zdCBtPVdyKHRoaXMuYWN0aXZlVGFyZ2V0KSx4PXRoaXMuYWN0aXZlVGFyZ2V0O3RoaXMuZGlzcG9zZVNlbGVjdG9ySW5wdXQoKSx0aGlzLmV4aXREaXJlY3RFZGl0TW9kZSgpLHRoaXMucmVtb3ZlRW50ZXJLZXlMaXN0ZW5lcj8uKCksdGhpcy5yZW1vdmVFbnRlcktleUxpc3RlbmVyPW51bGwseC5wYXJlbnRFbGVtZW50JiZ4LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoeCksdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmhvdmVyVGFyZ2V0PW51bGwsdGhpcy5wb2ludGVyRG93bj0hMSx0aGlzLmhpZ2hsaWdodGVyLnNldEFjdGl2ZVRhcmdldChudWxsKSx0aGlzLmhpZ2hsaWdodGVyLnNldEhvdmVyVGFyZ2V0KG51bGwpLHRoaXMuZWRpdEhpc3RvcnkuYWRkRWRpdCh7dGFyZ2V0OngsdGFyZ2V0RGF0YTptLGNoYW5nZXM6e2RlbGV0ZWQ6Zn0sc2NyZWVuc2hvdDpudWxsfSksdGhpcy5zaG93RWRpdFRvb2xiYXJJZk5lZWRlZCgpLHRoaXMuc2hvd0NvbW1lbnRNYXJrZXJzSWZOZWVkZWQoKX07c2hvd0VkaXRUb29sYmFySWZOZWVkZWQoKXtpZighdGhpcy5lZGl0SGlzdG9yeS5oYXNFZGl0cygpKXt0aGlzLmhpZGVFZGl0VG9vbGJhcigpO3JldHVybn10aGlzLmRpc3Bvc2VFZGl0VG9vbGJhcnx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+djApLnRoZW4oKHtvcGVuRWRpdFRvb2xiYXI6aX0pPT57Y29uc3QgdT1pKHtlZGl0SGlzdG9yeTp0aGlzLmVkaXRIaXN0b3J5LGhpZ2hsaWdodGVyOnRoaXMuaGlnaGxpZ2h0ZXIsb25BcHBseTooKT0+e3RoaXMuaGFuZGxlQXBwbHlBbGwoKX0sb25EaXNjYXJkOigpPT57dGhpcy5oYW5kbGVEaXNjYXJkQWxsKCl9fSk7dGhpcy5kaXNwb3NlRWRpdFRvb2xiYXI9KCk9Pnt1Py5kaXNwb3NlKCksdGhpcy5kaXNwb3NlRWRpdFRvb2xiYXI9bnVsbH19KS5jYXRjaChpPT57Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBFZGl0VG9vbGJhcjoiLGkpfSl9aGlkZUVkaXRUb29sYmFyKCl7dGhpcy5kaXNwb3NlRWRpdFRvb2xiYXImJnRoaXMuZGlzcG9zZUVkaXRUb29sYmFyKCl9aGFuZGxlQXBwbHlBbGwoKXtjb25zdCBpPXRoaXMuZWRpdEhpc3RvcnkuZ2V0QWN0aXZlRWRpdHMoKTtpLmxlbmd0aCE9PTAmJmllLnNlbmRNZXNzYWdlKHt0eXBlOiJlZGl0cyIsdG86ImNvbnRhaW5lciIscGF5bG9hZDp7ZWRpdHM6aS5tYXAodT0+KHtlbGVtZW50OnUudGFyZ2V0RGF0YSxjaGFuZ2VzOnUuY2hhbmdlcyxzY3JlZW5zaG90OnUuc2NyZWVuc2hvdH0pKX19KX1oYW5kbGVEaXNjYXJkQWxsKCl7dGhpcy5lZGl0SGlzdG9yeS5jbGVhcigpLHRoaXMuaGlkZUVkaXRUb29sYmFyKCksdGhpcy5oaWRlQ29tbWVudE1hcmtlcnMoKSx0aGlzLmhpZ2hsaWdodGVyLnNjaGVkdWxlUmVuZGVyKCl9c2hvd0NvbW1lbnRNYXJrZXJzSWZOZWVkZWQoKXtpZighdGhpcy5lZGl0SGlzdG9yeS5oYXNFZGl0cygpKXt0aGlzLmhpZGVDb21tZW50TWFya2VycygpO3JldHVybn10aGlzLmRpc3Bvc2VDb21tZW50TWFya2Vyc3x8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dzApLnRoZW4oKHtvcGVuQ29tbWVudE1hcmtlcnM6aX0pPT57Y29uc3QgdT1pKHtlZGl0SGlzdG9yeTp0aGlzLmVkaXRIaXN0b3J5LGhpZ2hsaWdodGVyOnRoaXMuaGlnaGxpZ2h0ZXIsZ2V0QWN0aXZlRWxlbWVudDooKT0+dGhpcy5hY3RpdmVUYXJnZXQsb25FbGVtZW50U2VsZWN0OnM9Pnt0aGlzLnNlbGVjdEVsZW1lbnQocyl9fSk7dGhpcy5kaXNwb3NlQ29tbWVudE1hcmtlcnM9KCk9Pnt1Py5kaXNwb3NlKCksdGhpcy5kaXNwb3NlQ29tbWVudE1hcmtlcnM9bnVsbH19KS5jYXRjaChpPT57Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBDb21tZW50TWFya2VyczoiLGkpfSl9aGlkZUNvbW1lbnRNYXJrZXJzKCl7dGhpcy5kaXNwb3NlQ29tbWVudE1hcmtlcnMmJnRoaXMuZGlzcG9zZUNvbW1lbnRNYXJrZXJzKCksdGhpcy5lZGl0SGlzdG9yeS5jbGVhckNvbW1lbnRzKCksdGhpcy5oaWdobGlnaHRlci5zY2hlZHVsZVJlbmRlcigpfWhhbmRsZUdsb2JhbEVzY2FwZT1pPT57aWYoaS5rZXkhPT0iRXNjYXBlInx8dGhpcy5hY3RpdmVUYXJnZXQpcmV0dXJuO2NvbnN0IHU9aS50YXJnZXQ7aWYodSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtjb25zdCBmPXUudGFnTmFtZTtpZihbIklOUFVUIiwiVEVYVEFSRUEiLCJTRUxFQ1QiXS5pbmNsdWRlcyhmKXx8dS5pc0NvbnRlbnRFZGl0YWJsZSlyZXR1cm59Y29uc3Qgcz1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKHMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7Y29uc3QgZj1zLnRhZ05hbWU7aWYoWyJJTlBVVCIsIlRFWFRBUkVBIiwiU0VMRUNUIl0uaW5jbHVkZXMoZil8fHMuaXNDb250ZW50RWRpdGFibGUpcmV0dXJuO2xldCBtPXM7Zm9yKDttOyl7aWYobS5oYXNBdHRyaWJ1dGUoYWwpKXJldHVybjttPW0ucGFyZW50RWxlbWVudH19dGhpcy5lZGl0SGlzdG9yeS5oYXNFZGl0cygpfHwoaS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNhYmxlKCksaWUuc2VuZE1lc3NhZ2Uoe3R5cGU6ImV4aXRFZGl0TW9kZSIsdG86ImNvbnRhaW5lciIscGF5bG9hZDp7fX0pKX19Y29uc3QgYzA9bmV3IHMwO2NsYXNzIHUwe2NvbnN0cnVjdG9yKCl7dGhpcy5pbml0KCl9YXN5bmMgaW5pdCgpe2llLmluaXQoe2N1cnJlbnRFbmRwb2ludDoiY29udGVudCJ9KSxpZS5saXN0ZW5NZXNzYWdlKHt0eXBlOiJjb250YWluZXJJbml0ZWQiLGNhbGxiYWNrOigpPT57aWUucmVhZHlTb3VyY2UubWFya1JlYWR5KCl9fSksR3IuaW5pdCgpLHlnLmluaXQoKSx3dS5pbml0KCksYzAuaW5pdCgpLGF3YWl0IHRoaXMucmVuZGVyUm9vdCgpLHRoaXMucmVuZGVyUm9vdEZvckRldigpfXJlbmRlclJvb3RGb3JEZXYoKXt9YXN5bmMgcmVuZGVyUm9vdCgpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE9yLnJvb3QpKXJldHVybjtjb25zdCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuaWQ9T3Iucm9vdCx1LnNldEF0dHJpYnV0ZShhbCwidHJ1ZSIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh1KTtjb25zdCBzPXUuYXR0YWNoU2hhZG93KHttb2RlOiJjbG9zZWQifSksZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLG09YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+UzApLnRoZW4oeD0+eC5kZWZhdWx0KTtmLnRleHRDb250ZW50PW0scy5hcHBlbmRDaGlsZChmKSxrci5jcmVhdGVSb290KHMpLnJlbmRlcihoLmpzeChnZyx7ImRhdGEtbG9jIjoic3JjL21haW4udHN4OjEyNiJ9KSl9fW5ldyB1MDtmdW5jdGlvbiBkMCh7b25EaXNjYXJkOnIsb25BcHBseTppLGlzQXBwbHlpbmc6dT0hMSxlZGl0Q291bnQ6c30pe2NvbnN0IGY9dXx8cz09PTA7cmV0dXJuIGguanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0FjdGlvbkJ1dHRvbnMudHN4OjE3IixjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjpbaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9BY3Rpb25CdXR0b25zLnRzeDoxOCIsb25DbGljazpyLGRpc2FibGVkOmYsY2xhc3NOYW1lOiJweC0zIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtW3ZhcigtLXRleHQtd2hpdGUpXSBib3JkZXItW3ZhcigtLXRleHQtdGVydGlhcnkpXSBib3JkZXItWzEuNXB4XSBob3ZlcjpiZy1bI2ZmZmZmZjBmXSBmb2N1czpiZy1bI2ZmZmZmZjBmXSBhY3RpdmU6b3BhY2l0eS05MCByb3VuZGVkLVsxMnB4XSB0cmFuc2l0aW9uLWFsbCBvdXRsaW5lLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQiLHRpdGxlOiJEaXNjYXJkIGFsbCBjaGFuZ2VzIixjaGlsZHJlbjoiRGlzY2FyZCJ9KSxoLmpzeHMoImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9BY3Rpb25CdXR0b25zLnRzeDoyNyIsb25DbGljazppLGRpc2FibGVkOmYsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC00IHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIGJnLVt2YXIoLS1CdXR0b24tcHJpbWFyeS1icmFuZCldIHRleHQtd2hpdGUgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBob3ZlcjpvcGFjaXR5LTkwIGZvY3VzOm9wYWNpdHktOTAgYWN0aXZlOm9wYWNpdHktOTAgcm91bmRlZC1bMTJweF0gdHJhbnNpdGlvbi1hbGwgb3V0bGluZS1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIix0aXRsZToiU2F2ZSBhbGwgY2hhbmdlcyIsY2hpbGRyZW46W3UmJmguanN4cygic3ZnIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0FjdGlvbkJ1dHRvbnMudHN4OjM0IixjbGFzc05hbWU6ImFuaW1hdGUtc3BpbiBoLTQgdy00Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsY2hpbGRyZW46W2guanN4KCJjaXJjbGUiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvQWN0aW9uQnV0dG9ucy50c3g6NDAiLGNsYXNzTmFtZToib3BhY2l0eS0yNSIsY3g6IjEyIixjeToiMTIiLHI6IjEwIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjQifSksaC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvQWN0aW9uQnV0dG9ucy50c3g6NDgiLGNsYXNzTmFtZToib3BhY2l0eS03NSIsZmlsbDoiY3VycmVudENvbG9yIixkOiJNNCAxMmE4IDggMCAwMTgtOFYwQzUuMzczIDAgMCA1LjM3MyAwIDEyaDR6bTIgNS4yOTFBNy45NjIgNy45NjIgMCAwMTQgMTJIMGMwIDMuMDQyIDEuMTM1IDUuODI0IDMgNy45MzhsMy0yLjY0N3oifSldfSksIkFwcGx5Il19KV19KX1mdW5jdGlvbiBmMCh7ZWRpdENvdW50OnIsc2hvd0VkaXRQcmV2aWV3czppLG9uQ2xpY2s6dX0pe3JldHVybiBoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0Q291bnRCYWRnZS50c3g6MTUiLG9uQ2xpY2s6dSx0YWJJbmRleDowLHJvbGU6ImJ1dHRvbiIsY2xhc3NOYW1lOkFlLmNuKCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0zIHB5LTEuNSByb3VuZGVkLVsxMnB4XSBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCByZWxhdGl2ZSBvdXRsaW5lLW5vbmUgdGV4dC1bdmFyKC0tdGV4dC13aGl0ZSldIGJvcmRlci1bdmFyKC0tdGV4dC10ZXJ0aWFyeSldIGJvcmRlci1bMS41cHhdIGFjdGl2ZTpvcGFjaXR5LTkwIixpPyJiZy1bI2ZmZmZmZjBmXSI6ImJnLXRyYW5zcGFyZW50IGhvdmVyOmJnLVsjZmZmZmZmMGZdIiksY2hpbGRyZW46W2guanN4KCJzdmciLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdENvdW50QmFkZ2UudHN4OjI2Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJjdXJyZW50Q29sb3IiLGNoaWxkcmVuOmguanN4KCJnIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRDb3VudEJhZGdlLnRzeDozMyIsY2hpbGRyZW46aC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdENvdW50QmFkZ2UudHN4OjM0IixkOiJNNy41Mjg4MSA3LjUyODY5QzcuNzE3MzMgNy4zNDAxNyA4IDcuMjgxOTggOC4yNDc1NiA3LjM4MDlMMTQuOTE0MiAxMC4wNDc2QzE1LjE2NzggMTAuMTQ5IDE1LjMzNCAxMC4zOTQ5IDE1LjMzMzUgMTAuNjY4QzE1LjMzMjkgMTAuOTQxMSAxNS4xNjU2IDExLjE4NjEgMTQuOTExNiAxMS4yODY1TDEyLjMxMzMgMTIuMzEzMkwxMS4yODY2IDE0LjkxMTVDMTEuMTg2MiAxNS4xNjU1IDEwLjk0MTIgMTUuMzMyOCAxMC42NjgxIDE1LjMzMzRDMTAuMzk1MSAxNS4zMzM5IDEwLjE0OTEgMTUuMTY3NyAxMC4wNDc3IDE0LjkxNDFMNy4zODEwMiA4LjI0NzQ0QzcuMjgyMSA3Ljk5OTg4IDcuMzQwMjkgNy43MTcyMSA3LjUyODgxIDcuNTI4NjlaTTEuMzMzNSAxMi42NjY3QzEuMzMzNSAxMi4yOTg1IDEuNjMxOTcgMTIgMi4wMDAxNiAxMkMyLjM2ODM1IDEyIDIuNjY2ODMgMTIuMjk4NSAyLjY2NjgzIDEyLjY2NjdDMi42NjY4MyAxMi44NDM1IDIuNzM3MTIgMTMuMDEzIDIuODYyMTQgMTMuMTM4MUMyLjk4NzE3IDEzLjI2MzEgMy4xNTY2OSAxMy4zMzM0IDMuMzMzNSAxMy4zMzM0QzMuNzAxNjkgMTMuMzMzNCA0LjAwMDE2IDEzLjYzMTkgNC4wMDAxNiAxNEM0LjAwMDE2IDE0LjM2ODIgMy43MDE2OSAxNC42NjY3IDMuMzMzNSAxNC42NjY3QzIuODAzMDYgMTQuNjY2NyAyLjI5NDUxIDE0LjQ1NTggMS45MTk0MyAxNC4wODA4QzEuNTQ0MzYgMTMuNzA1NyAxLjMzMzUgMTMuMTk3MSAxLjMzMzUgMTIuNjY2N1pNNy4zMzM1IDEzLjMzMzRDNy43MDE2OSAxMy4zMzM0IDguMDAwMTYgMTMuNjMxOSA4LjAwMDE2IDE0QzguMDAwMTYgMTQuMzY4MiA3LjcwMTY5IDE0LjY2NjcgNy4zMzM1IDE0LjY2NjdINi4wMDAxNkM1LjYzMTk3IDE0LjY2NjcgNS4zMzM1IDE0LjM2ODIgNS4zMzM1IDE0QzUuMzMzNSAxMy42MzE5IDUuNjMxOTcgMTMuMzMzNCA2LjAwMDE2IDEzLjMzMzRINy4zMzM1Wk0xMC42NjI5IDEyLjg2MjdMMTEuMTgwNSAxMS41NTQ3TDExLjIwODUgMTEuNDkyMkMxMS4yODIyIDExLjM1MDYgMTEuNDA1IDExLjIzOTcgMTEuNTU0OSAxMS4xODA0TDEyLjg2MjggMTAuNjYyOEw5LjE5Njc4IDkuMTk2NjZMMTAuNjYyOSAxMi44NjI3Wk0xLjMzMzUgMTBWOS4zMzMzN0MxLjMzMzUgOC45NjUxOCAxLjYzMTk3IDguNjY2NzEgMi4wMDAxNiA4LjY2NjcxQzIuMzY4MzUgOC42NjY3MSAyLjY2NjgzIDguOTY1MTggMi42NjY4MyA5LjMzMzM3VjEwQzIuNjY2ODMgMTAuMzY4MiAyLjM2ODM1IDEwLjY2NjcgMi4wMDAxNiAxMC42NjY3QzEuNjMxOTcgMTAuNjY2NyAxLjMzMzUgMTAuMzY4MiAxLjMzMzUgMTBaTTEzLjMzMzUgNy4zMzMzN1Y2LjAwMDA0QzEzLjMzMzUgNS42MzE4NSAxMy42MzIgNS4zMzMzNyAxNC4wMDAyIDUuMzMzMzdDMTQuMzY4NCA1LjMzMzM3IDE0LjY2NjggNS42MzE4NSAxNC42NjY4IDYuMDAwMDRWNy4zMzMzN0MxNC42NjY4IDcuNzAxNTYgMTQuMzY4NCA4LjAwMDA0IDE0LjAwMDIgOC4wMDAwNEMxMy42MzIgOC4wMDAwNCAxMy4zMzM1IDcuNzAxNTYgMTMuMzMzNSA3LjMzMzM3Wk0xLjMzMzUgNi42NjY3MVY2LjAwMDA0QzEuMzMzNSA1LjYzMTg1IDEuNjMxOTcgNS4zMzMzNyAyLjAwMDE2IDUuMzMzMzdDMi4zNjgzNSA1LjMzMzM3IDIuNjY2ODMgNS42MzE4NSAyLjY2NjgzIDYuMDAwMDRWNi42NjY3MUMyLjY2NjgzIDcuMDM0OSAyLjM2ODM1IDcuMzMzMzcgMi4wMDAxNiA3LjMzMzM3QzEuNjMxOTcgNy4zMzMzNyAxLjMzMzUgNy4wMzQ5IDEuMzMzNSA2LjY2NjcxWk0xLjMzMzUgMy4zMzMzN0MxLjMzMzUgMi44MDI5NCAxLjU0NDM2IDIuMjk0MzggMS45MTk0MyAxLjkxOTMxQzIuMjk0NTEgMS41NDQyNCAyLjgwMzA2IDEuMzMzMzcgMy4zMzM1IDEuMzMzMzdDMy43MDE2OSAxLjMzMzM3IDQuMDAwMTYgMS42MzE4NSA0LjAwMDE2IDIuMDAwMDRDNC4wMDAxNiAyLjM2ODIzIDMuNzAxNjkgMi42NjY3MSAzLjMzMzUgMi42NjY3MUMzLjE1NjY4IDIuNjY2NzEgMi45ODcxNyAyLjczNyAyLjg2MjE0IDIuODYyMDJDMi43MzcxMiAyLjk4NzA0IDIuNjY2ODMgMy4xNTY1NiAyLjY2NjgzIDMuMzMzMzdDMi42NjY4MyAzLjcwMTU2IDIuMzY4MzUgNC4wMDAwNCAyLjAwMDE2IDQuMDAwMDRDMS42MzE5NyA0LjAwMDA0IDEuMzMzNSAzLjcwMTU2IDEuMzMzNSAzLjMzMzM3Wk0xMy4zMzM1IDMuMzMzMzdDMTMuMzMzNSAzLjE1NjU2IDEzLjI2MzIgMi45ODcwNCAxMy4xMzgyIDIuODYyMDJDMTMuMDEzMiAyLjczNyAxMi44NDM2IDIuNjY2NzEgMTIuNjY2OCAyLjY2NjcxQzEyLjI5ODYgMi42NjY3MSAxMi4wMDAyIDIuMzY4MjMgMTIuMDAwMiAyLjAwMDA0QzEyLjAwMDIgMS42MzE4NSAxMi4yOTg2IDEuMzMzMzcgMTIuNjY2OCAxLjMzMzM3QzEzLjE5NzMgMS4zMzMzNyAxMy43MDU4IDEuNTQ0MjQgMTQuMDgwOSAxLjkxOTMxQzE0LjQ1NiAyLjI5NDM4IDE0LjY2NjggMi44MDI5NCAxNC42NjY4IDMuMzMzMzdDMTQuNjY2OCAzLjcwMTU2IDE0LjM2ODQgNC4wMDAwNCAxNC4wMDAyIDQuMDAwMDRDMTMuNjMyIDQuMDAwMDQgMTMuMzMzNSAzLjcwMTU2IDEzLjMzMzUgMy4zMzMzN1pNNi42NjY4MyAxLjMzMzM3QzcuMDM1MDIgMS4zMzMzNyA3LjMzMzUgMS42MzE4NSA3LjMzMzUgMi4wMDAwNEM3LjMzMzUgMi4zNjgyMyA3LjAzNTAyIDIuNjY2NzEgNi42NjY4MyAyLjY2NjcxSDYuMDAwMTZDNS42MzE5NyAyLjY2NjcxIDUuMzMzNSAyLjM2ODIzIDUuMzMzNSAyLjAwMDA0QzUuMzMzNSAxLjYzMTg1IDUuNjMxOTcgMS4zMzMzNyA2LjAwMDE2IDEuMzMzMzdINi42NjY4M1pNMTAuMDAwMiAxLjMzMzM3QzEwLjM2ODQgMS4zMzMzNyAxMC42NjY4IDEuNjMxODUgMTAuNjY2OCAyLjAwMDA0QzEwLjY2NjggMi4zNjgyMyAxMC4zNjg0IDIuNjY2NzEgMTAuMDAwMiAyLjY2NjcxSDkuMzMzNUM4Ljk2NTMxIDIuNjY2NzEgOC42NjY4MyAyLjM2ODIzIDguNjY2ODMgMi4wMDAwNEM4LjY2NjgzIDEuNjMxODUgOC45NjUzMSAxLjMzMzM3IDkuMzMzNSAxLjMzMzM3SDEwLjAwMDJaIn0pfSl9KSxoLmpzeCgic3BhbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0Q291bnRCYWRnZS50c3g6MzciLGNsYXNzTmFtZToidGV4dC1zbSBmb250LW1lZGl1bSB0YWJ1bGFyLW51bXMiLGNoaWxkcmVuOnJ9KV19KX1mdW5jdGlvbiBoMCh7YWN0aXZlRWRpdHM6cixob3ZlcmVkRWRpdEluZGV4OmksaGlnaGxpZ2h0ZXI6dSxvbkNhcmRDbGljazpzLG9uQ2FyZEhvdmVyOmYsc2hvdzptfSl7Y29uc3QgeD1VLnVzZVJlZihudWxsKSxOPXY9PntmKHYpfSxDPSgpPT57ZihudWxsKX07cmV0dXJuIFUudXNlRWZmZWN0KCgpPT57aWYoIW0pe3UucmVtb3ZlRXhjbHVzaW9uUmVjdCgiZWRpdC1wcmV2aWV3LWNhcmRzIik7cmV0dXJufWNvbnN0IHY9KCk9PntpZih4LmN1cnJlbnQmJm0pe2NvbnN0IEQ9eC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3UuYWRkRXhjbHVzaW9uUmVjdCgiZWRpdC1wcmV2aWV3LWNhcmRzIixEKX19O3JldHVybiB2KCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdix7cGFzc2l2ZTohMH0pLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdiksdS5yZW1vdmVFeGNsdXNpb25SZWN0KCJlZGl0LXByZXZpZXctY2FyZHMiKX19LFt1LG1dKSxoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRQcmV2aWV3Q2FyZHMudHN4OjU5IixyZWY6eCxjbGFzc05hbWU6ImFic29sdXRlIGJvdHRvbS1mdWxsIG1iLTIgbGVmdC0wIHJpZ2h0LTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwIGVhc2Utb3V0IixzdHlsZTp7b3BhY2l0eTptPzE6MCx0cmFuc2Zvcm06bT8idHJhbnNsYXRlWSgwKSBzY2FsZSgxKSI6InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk4KSIscG9pbnRlckV2ZW50czptPyJhdXRvIjoibm9uZSIsdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiJjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSJ9LG9uTW91c2VMZWF2ZTpDLGNoaWxkcmVuOmguanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6NzIiLGNsYXNzTmFtZToicm91bmRlZC1bMTRweF0gYm9yZGVyIGJvcmRlci1bdmFyKC0tYm9yZGVyLW1haW4pXSBiZy1bcmdiKDM3LDM3LDM3KV0gc2hhZG93LVswcHhfOHB4XzMycHhfMHB4X3ZhcigtLXNoYWRvdy1TKV0gb3ZlcmZsb3ctaGlkZGVuIixzdHlsZTp7bWF4SGVpZ2h0OiI0MHZoIn0sY2hpbGRyZW46aC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDo3OCIsY2xhc3NOYW1lOiJvdmVyZmxvdy15LWF1dG8iLHN0eWxlOnttYXhIZWlnaHQ6IjQwdmgifSxjaGlsZHJlbjpyLm1hcCgodixEKT0+e2NvbnN0IFI9aT09PUQsSj0hIXYuc2NyZWVuc2hvdDtyZXR1cm4gaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDo4OSIsb25DbGljazooKT0+cyhEKSxvbk1vdXNlRW50ZXI6KCk9Pk4oRCksY2xhc3NOYW1lOkFlLmNuKCJweC00IGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsIixSJiYiYmctWyNmZmZmZmYwZl0iKSxjaGlsZHJlbjpoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDo5OCIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMi41IHB5LTIiLHN0eWxlOntib3JkZXJCb3R0b206RCE9PXIubGVuZ3RoLTE/IjFweCBzb2xpZCB2YXIoLS1pY29uLXNlY29uZGFyeSkiOiJub25lIn0sY2hpbGRyZW46W2guanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTA4IixjbGFzc05hbWU6QWUuY24oImZsZXgtc2hyaW5rLTAgc2l6ZS01IHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0cmFuc2l0aW9uLWFsbCB0ZXh0LVt2YXIoLS1iYWNrZ3JvdW5kLWNhcmQpXSBib3JkZXItW3ZhcigtLWljb24tc2Vjb25kYXJ5KV0gYm9yZGVyIixSJiYiYmctWyNmZmZmZmYwZl0iKSxjaGlsZHJlbjpoLmpzeCgic3BhbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDoxMTQiLGNsYXNzTmFtZToidGV4dC14cyIsY2hpbGRyZW46RCsxfSl9KSxoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDoxMTgiLGNsYXNzTmFtZToiZmxleC0xIG1pbi13LTAiLGNoaWxkcmVuOltoLmpzeCgic3BhbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDoxMTkiLGNsYXNzTmFtZTpBZS5jbigidGV4dC1zbSB0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIix2LmNoYW5nZXMuZGVsZXRlZCYmImxpbmUtdGhyb3VnaCIpLGNoaWxkcmVuOnYudGFyZ2V0RGF0YS50YWdOYW1lfSksaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTI5IixjbGFzc05hbWU6InRleHQteHMgdGV4dC1bdmFyKC0tdGV4dC13aGl0ZS10c3ApXSBwdC0wLjUgbGVhZGluZy1ub25lIGdhcC0xIGZsZXggZmxleC1jb2wiLGNoaWxkcmVuOlt2LmNoYW5nZXMuY29tbWVudCYmaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTMxIixjbGFzc05hbWU6ImxlYWRpbmctc251ZyIsY2hpbGRyZW46di5jaGFuZ2VzLmNvbW1lbnQubW9kaWZpZWQ9PT0iIj8iUmVtb3ZlZCBjb21tZW50IjpgQ29tbWVudDogIiR7di5jaGFuZ2VzLmNvbW1lbnQubW9kaWZpZWQuc2xpY2UoMCwzMCl9JHt2LmNoYW5nZXMuY29tbWVudC5tb2RpZmllZC5sZW5ndGg+MzA/Ii4uLiI6IiJ9ImB9KSx2LmNoYW5nZXMuZGVsZXRlZCYmaC5qc3goInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTQ0IixjaGlsZHJlbjoiRWxlbWVudCBkZWxldGVkIn0pLHYuY2hhbmdlcy50ZXh0Q29udGVudCYmaC5qc3hzKCJzcGFuIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRQcmV2aWV3Q2FyZHMudHN4OjE0NiIsY2xhc3NOYW1lOiJsZWFkaW5nLXNudWciLGNoaWxkcmVuOlsnVGV4dDogIicsdi5jaGFuZ2VzLnRleHRDb250ZW50Lm1vZGlmaWVkLnNsaWNlKDAsNDApLHYuY2hhbmdlcy50ZXh0Q29udGVudC5tb2RpZmllZC5sZW5ndGg+NDA/Ii4uLiI6IiIsJyInXX0pLHYuY2hhbmdlcy5zcmMmJmguanN4KCJzcGFuIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRQcmV2aWV3Q2FyZHMudHN4OjE1NSIsY2hpbGRyZW46IkltYWdlIHNvdXJjZSB1cGRhdGVkIn0pLHYuY2hhbmdlcy5ocmVmJiZoLmpzeHMoInNwYW4iLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTU3IixjbGFzc05hbWU6ImxlYWRpbmctc251ZyIsY2hpbGRyZW46WyJMaW5rOiAiLHYuY2hhbmdlcy5ocmVmLm1vZGlmaWVkLnNsaWNlKDAsMzApLCIuLi4iXX0pLHYuY2hhbmdlcy5zdHlsZSYmaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFByZXZpZXdDYXJkcy50c3g6MTYyIixjbGFzc05hbWU6ImZsZXggZmxleC13cmFwIGdhcC0xIixjaGlsZHJlbjpbT2JqZWN0LmtleXModi5jaGFuZ2VzLnN0eWxlKS5zbGljZSgwLDMpLm1hcCgkPT5oLmpzeCgic3BhbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDoxNjYiLGNsYXNzTmFtZToicHgtMS41IHB5LTAuNSB0ZXh0LXhzIGJnLVsjZmZmZmZmMWFdIHRleHQtd2hpdGUgcm91bmRlZC1bOHB4XSIsY2hpbGRyZW46JH0sJCkpLE9iamVjdC5rZXlzKHYuY2hhbmdlcy5zdHlsZSkubGVuZ3RoPjMmJmguanN4cygic3BhbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9FZGl0UHJldmlld0NhcmRzLnRzeDoxNzQiLGNsYXNzTmFtZToidGV4dC14cyB0ZXh0LXdoaXRlIixjaGlsZHJlbjpbIisiLE9iamVjdC5rZXlzKHYuY2hhbmdlcy5zdHlsZSkubGVuZ3RoLTMsIiBtb3JlIl19KV19KSxKJiYhdi5jaGFuZ2VzLmRlbGV0ZWQmJih2LmNoYW5nZXMudGV4dENvbnRlbnR8fHYuY2hhbmdlcy5zdHlsZXx8di5jaGFuZ2VzLmNvbW1lbnQpJiZoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRQcmV2aWV3Q2FyZHMudHN4OjE4NSIsc3R5bGU6e2JhY2tncm91bmRJbWFnZTpgdXJsKCR7di5zY3JlZW5zaG90fSlgLGJhY2tncm91bmRTaXplOiJjb3ZlciIsYmFja2dyb3VuZFBvc2l0aW9uOiJ0b3AifSxjbGFzc05hbWU6ImgtMTIgbXQtMSByb3VuZGVkIGJvcmRlciBib3JkZXItYmxhY2svMTAifSldfSldfSldfSl9LGAke3YudGFyZ2V0RGF0YS5pZH0tJHtEfWApfSl9KX0pfSl9ZnVuY3Rpb24gbTAoe2NhblVuZG86cixjYW5SZWRvOmksb25VbmRvOnUsb25SZWRvOnN9KXtyZXR1cm4gaC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvVW5kb1JlZG9CdXR0b25zLnRzeDoxNyIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IixjaGlsZHJlbjpbaC5qc3goImJ1dHRvbiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9VbmRvUmVkb0J1dHRvbnMudHN4OjE4IixvbkNsaWNrOnUsZGlzYWJsZWQ6IXIsY2xhc3NOYW1lOkFlLmNuKCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTEuNSByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1hbGwgb3V0bGluZS1ub25lIixyPyJ0ZXh0LVt2YXIoLS10ZXh0LXdoaXRlKV0gaG92ZXI6YmctWyNmZmZmZmYwZl0gY3Vyc29yLXBvaW50ZXIiOiJiZy10cmFuc3BhcmVudCB0ZXh0LVt2YXIoLS10ZXh0LWRpc2FibGUpXSBjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCIpLHRpdGxlOiJVbmRvICjijJhaKSIsY2hpbGRyZW46aC5qc3goInN2ZyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9VbmRvUmVkb0J1dHRvbnMudHN4OjI5Iix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIixjaGlsZHJlbjpoLmpzeCgicGF0aCIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0VkaXRzVG9vbEJhci9VbmRvUmVkb0J1dHRvbnMudHN4OjM2IixkOiJNMTIuNjY2NiA5LjY2NjYyQzEyLjY2NjYgOS4yNzI3MSAxMi41ODg4IDguODgyNzYgMTIuNDM4MSA4LjUxODgzQzEyLjI4NzMgOC4xNTQ4NSAxMi4wNjYzIDcuODI0MSAxMS43ODc3IDcuNTQ1NTJDMTEuNTA5MSA3LjI2Njk1IDExLjE3ODQgNy4wNDU5IDEwLjgxNDQgNi44OTUxM0MxMC40NTA1IDYuNzQ0NDEgMTAuMDYwNSA2LjY2NjYyIDkuNjY2NjIgNi42NjY2Mkg0LjI3NTk5TDYuNDcxMyA4Ljg2MTkzQzYuNzMxNjUgOS4xMjIyOCA2LjczMTY1IDkuNTQ0MjkgNi40NzEzIDkuODA0NjRDNi4yMTA5NSAxMC4wNjUgNS43ODg5NCAxMC4wNjUgNS41Mjg2IDkuODA0NjRMMi4xOTUyNiA2LjQ3MTNDMS45MzQ5MSA2LjIxMDk1IDEuOTM0OTEgNS43ODg5NCAyLjE5NTI2IDUuNTI4Nkw1LjUyODYgMi4xOTUyNkM1Ljc4ODk0IDEuOTM0OTEgNi4yMTA5NSAxLjkzNDkxIDYuNDcxMyAyLjE5NTI2QzYuNzMxNjUgMi40NTU2MSA2LjczMTY1IDIuODc3NjIgNi40NzEzIDMuMTM3OTdMNC4yNzU5OSA1LjMzMzI4SDkuNjY2NjJDMTAuMjM1NyA1LjMzMzI4IDEwLjc5OTEgNS40NDU1OSAxMS4zMjQ4IDUuNjYzMzZDMTEuODUwNiA1Ljg4MTEzIDEyLjMyODcgNi4xOTk3OCAxMi43MzExIDYuNjAyMTZDMTMuMTMzNSA3LjAwNDU1IDEzLjQ1MjEgNy40ODI2NyAxMy42Njk5IDguMDA4NDFDMTMuODg3NiA4LjUzNDE2IDEzLjk5OTkgOS4wOTc1NSAxMy45OTk5IDkuNjY2NjJDMTMuOTk5OSAxMC4yMzU3IDEzLjg4NzYgMTAuNzk5MSAxMy42Njk5IDExLjMyNDhDMTMuNDUyMSAxMS44NTA2IDEzLjEzMzUgMTIuMzI4NyAxMi43MzExIDEyLjczMTFDMTIuMzI4NyAxMy4xMzM1IDExLjg1MDYgMTMuNDUyMSAxMS4zMjQ4IDEzLjY2OTlDMTAuNzk5MSAxMy44ODc2IDEwLjIzNTcgMTMuOTk5OSA5LjY2NjYyIDEzLjk5OTlINy4zMzMyOEM2Ljk2NTA5IDEzLjk5OTkgNi42NjY2MiAxMy43MDE1IDYuNjY2NjIgMTMuMzMzM0M2LjY2NjYyIDEyLjk2NTEgNi45NjUwOSAxMi42NjY2IDcuMzMzMjggMTIuNjY2Nkg5LjY2NjYyQzEwLjA2MDUgMTIuNjY2NiAxMC40NTA1IDEyLjU4ODggMTAuODE0NCAxMi40MzgxQzExLjE3ODQgMTIuMjg3MyAxMS41MDkxIDEyLjA2NjMgMTEuNzg3NyAxMS43ODc3QzEyLjA2NjMgMTEuNTA5MSAxMi4yODczIDExLjE3ODQgMTIuNDM4MSAxMC44MTQ0QzEyLjU4ODggMTAuNDUwNSAxMi42NjY2IDEwLjA2MDUgMTIuNjY2NiA5LjY2NjYyWiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9KSxoLmpzeCgiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL1VuZG9SZWRvQnV0dG9ucy50c3g6NDMiLG9uQ2xpY2s6cyxkaXNhYmxlZDohaSxjbGFzc05hbWU6QWUuY24oImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtMS41IHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCBvdXRsaW5lLW5vbmUiLGk/InRleHQtW3ZhcigtLXRleHQtd2hpdGUpXSBob3ZlcjpiZy1bI2ZmZmZmZjBmXSBjdXJzb3ItcG9pbnRlciI6ImJnLXRyYW5zcGFyZW50IHRleHQtW3ZhcigtLXRleHQtZGlzYWJsZSldIG9wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkIiksdGl0bGU6IlJlZG8gKOKMmOKHp1opIixjaGlsZHJlbjpoLmpzeCgic3ZnIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL1VuZG9SZWRvQnV0dG9ucy50c3g6NTQiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLGNoaWxkcmVuOmguanN4KCJwYXRoIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL1VuZG9SZWRvQnV0dG9ucy50c3g6NjEiLGQ6Ik0zLjMzMzM4IDkuNjY2NjJDMy4zMzMzOCA5LjI3MjcxIDMuNDExMTggOC44ODI3NiAzLjU2MTkgOC41MTg4M0MzLjcxMjY2IDguMTU0ODUgMy45MzM3MSA3LjgyNDEgNC4yMTIyOSA3LjU0NTUyQzQuNDkwODYgNy4yNjY5NSA0LjgyMTYyIDcuMDQ1OSA1LjE4NTYgNi44OTUxM0M1LjU0OTUzIDYuNzQ0NDEgNS45Mzk0OCA2LjY2NjYyIDYuMzMzMzggNi42NjY2MkgxMS43MjRMOS41Mjg3IDguODYxOTNDOS4yNjgzNSA5LjEyMjI4IDkuMjY4MzUgOS41NDQyOSA5LjUyODcgOS44MDQ2NEM5Ljc4OTA1IDEwLjA2NSAxMC4yMTExIDEwLjA2NSAxMC40NzE0IDkuODA0NjRMMTMuODA0NyA2LjQ3MTNDMTQuMDY1MSA2LjIxMDk1IDE0LjA2NTEgNS43ODg5NCAxMy44MDQ3IDUuNTI4NkwxMC40NzE0IDIuMTk1MjZDMTAuMjExMSAxLjkzNDkxIDkuNzg5MDUgMS45MzQ5MSA5LjUyODcgMi4xOTUyNkM5LjI2ODM1IDIuNDU1NjEgOS4yNjgzNSAyLjg3NzYyIDkuNTI4NyAzLjEzNzk3TDExLjcyNCA1LjMzMzI4SDYuMzMzMzhDNS43NjQzMiA1LjMzMzI4IDUuMjAwOTIgNS40NDU1OSA0LjY3NTE4IDUuNjYzMzZDNC4xNDk0NCA1Ljg4MTEzIDMuNjcxMzIgNi4xOTk3OCAzLjI2ODkzIDYuNjAyMTZDMi44NjY1NCA3LjAwNDU1IDIuNTQ3OSA3LjQ4MjY3IDIuMzMwMTMgOC4wMDg0MUMyLjExMjM2IDguNTM0MTYgMi4wMDAwNSA5LjA5NzU1IDIuMDAwMDUgOS42NjY2MkMyLjAwMDA1IDEwLjIzNTcgMi4xMTIzNiAxMC43OTkxIDIuMzMwMTMgMTEuMzI0OEMyLjU0NzkgMTEuODUwNiAyLjg2NjU0IDEyLjMyODcgMy4yNjg5MyAxMi43MzExQzMuNjcxMzIgMTMuMTMzNSA0LjE0OTQ0IDEzLjQ1MjEgNC42NzUxOCAxMy42Njk5QzUuMjAwOTIgMTMuODg3NiA1Ljc2NDMyIDEzLjk5OTkgNi4zMzMzOCAxMy45OTk5SDguNjY2NzJDOS4wMzQ5MSAxMy45OTk5IDkuMzMzMzggMTMuNzAxNSA5LjMzMzM4IDEzLjMzMzNDOS4zMzMzOCAxMi45NjUxIDkuMDM0OTEgMTIuNjY2NiA4LjY2NjcyIDEyLjY2NjZINi4zMzMzOEM1LjkzOTQ4IDEyLjY2NjYgNS41NDk1MyAxMi41ODg4IDUuMTg1NiAxMi40MzgxQzQuODIxNjIgMTIuMjg3MyA0LjQ5MDg2IDEyLjA2NjMgNC4yMTIyOSAxMS43ODc3QzMuOTMzNzEgMTEuNTA5MSAzLjcxMjY2IDExLjE3ODQgMy41NjE5IDEwLjgxNDRDMy40MTExOCAxMC40NTA1IDMuMzMzMzggMTAuMDYwNSAzLjMzMzM4IDkuNjY2NjJaIixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX0pXX0pfWZ1bmN0aW9uIGcwKHIpe2NvbnN0W2ksdV09VS51c2VTdGF0ZShyLmNhblVuZG8oKSksW3MsZl09VS51c2VTdGF0ZShyLmNhblJlZG8oKSksW20seF09VS51c2VTdGF0ZShyLmdldEFjdGl2ZUVkaXRzKCkubGVuZ3RoKSxbTixDXT1VLnVzZVN0YXRlKFtdKTtyZXR1cm4gVS51c2VFZmZlY3QoKCk9Pntjb25zdCB2PXIub25DaGFuZ2UoKCk9Pnt1KHIuY2FuVW5kbygpKSxmKHIuY2FuUmVkbygpKTtjb25zdCBEPXIuZ2V0QWN0aXZlRWRpdHMoKTt4KEQubGVuZ3RoKSxDKEQpfSk7cmV0dXJuIEMoci5nZXRBY3RpdmVFZGl0cygpKSx2fSxbcl0pLHtjYW5VbmRvOmksY2FuUmVkbzpzLGVkaXRDb3VudDptLGFjdGl2ZUVkaXRzOk59fWZ1bmN0aW9uIHAwKCl7Y29uc3RbcixpXT1VLnVzZVN0YXRlKCExKTtyZXR1cm57c2hvd0VkaXRQcmV2aWV3czpyLGhhbmRsZUVkaXRDb3VudENsaWNrOigpPT57aSghcil9fX1mdW5jdGlvbiBxdSh7ZWRpdEhpc3Rvcnk6cixoaWdobGlnaHRlcjppLG9uQXBwbHk6dSxvbkRpc2NhcmQ6c30pe2NvbnN0IGY9VS51c2VSZWYobnVsbCksW20seF09VS51c2VTdGF0ZShudWxsKSxbTixDXT1VLnVzZVN0YXRlKCExKSx7Y2FuVW5kbzp2LGNhblJlZG86RCxlZGl0Q291bnQ6UixhY3RpdmVFZGl0czpKfT1nMChyKSx7c2hvd0VkaXRQcmV2aWV3czokLGhhbmRsZUVkaXRDb3VudENsaWNrOkZ9PXAwKCk7VS51c2VFZmZlY3QoKCk9PntpZihtIT09bnVsbCYmSlttXSl7Y29uc3Qgaz1KW21dO2sudGFyZ2V0JiZkb2N1bWVudC5jb250YWlucyhrLnRhcmdldCkmJmkuc2V0SG92ZXJUYXJnZXQoay50YXJnZXQpfWVsc2UgaS5zZXRIb3ZlclRhcmdldChudWxsKX0sW20sSixpXSksVS51c2VFZmZlY3QoKCk9Pntjb25zdCBrPSgpPT57aWYoZi5jdXJyZW50KXtjb25zdCBZPWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpLmFkZEV4Y2x1c2lvblJlY3QoImVkaXQtdG9vbGJhciIsWSl9fTtyZXR1cm4gaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGspLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsayksaS5yZW1vdmVFeGNsdXNpb25SZWN0KCJlZGl0LXRvb2xiYXIiKX19LFtpXSk7Y29uc3QgYXQ9KCk9Pntjb25zdCBrPXIudW5kbygpO2kuc2NoZWR1bGVSZW5kZXIoKSxrJiZrLnRhcmdldCYmZG9jdW1lbnQuY29udGFpbnMoay50YXJnZXQpJiYoay50YXJnZXQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJjZW50ZXIifSksaS5zZXRBY3RpdmVUYXJnZXQoay50YXJnZXQpLHNldFRpbWVvdXQoKCk9PntpLnNldEFjdGl2ZVRhcmdldChudWxsKX0sMTUwMCkpfSxjdD0oKT0+e2NvbnN0IGs9ci5yZWRvKCk7aS5zY2hlZHVsZVJlbmRlcigpLGsmJmsudGFyZ2V0JiZkb2N1bWVudC5jb250YWlucyhrLnRhcmdldCkmJihrLnRhcmdldC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6ImNlbnRlciJ9KSxpLnNldEFjdGl2ZVRhcmdldChrLnRhcmdldCksc2V0VGltZW91dCgoKT0+e2kuc2V0QWN0aXZlVGFyZ2V0KG51bGwpfSwxNTAwKSl9LGh0PWs9Pntjb25zdCBZPUpba107WS50YXJnZXQmJmRvY3VtZW50LmNvbnRhaW5zKFkudGFyZ2V0KSYmKFkudGFyZ2V0LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIn0pLGkuc2V0QWN0aXZlVGFyZ2V0KFkudGFyZ2V0KSxzZXRUaW1lb3V0KCgpPT57aS5zZXRBY3RpdmVUYXJnZXQobnVsbCl9LDE1MDApKX0sU3Q9KCk9PntDKCEwKSx1KCl9O3JldHVybiBoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxMjciLGNsYXNzTmFtZToiZml4ZWQgbGVmdC0wIHJpZ2h0LTAgdG9wLTAgYm90dG9tLTAgcG9pbnRlci1ldmVudHMtbm9uZSIsc3R5bGU6e3pJbmRleDoyMTQ3NDgzNjQ1fSxjaGlsZHJlbjpoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxMzEiLGNsYXNzTmFtZToiYWJzb2x1dGUgYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcGItOCIsY2hpbGRyZW46aC5qc3hzKCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFRvb2xiYXIudHN4OjEzMiIscmVmOmYsW2FsXToidHJ1ZSIsb25Nb3VzZURvd246az0+ay5zdG9wUHJvcGFnYXRpb24oKSxjbGFzc05hbWU6InBvaW50ZXItZXZlbnRzLWF1dG8gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTggcC0yIHJvdW5kZWQtWzE0cHhdIGJvcmRlciBib3JkZXItW3ZhcigtLWJvcmRlci1tYWluKV0gYmctW3JnYigzNywzNywzNyldIHNoYWRvdy1bMHB4XzhweF8zMnB4XzBweF92YXIoLS1zaGFkb3ctUyldIHJlbGF0aXZlIGp1c3RpZnktYmV0d2VlbiIsY2hpbGRyZW46W2guanN4cygiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxMzgiLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiLGNoaWxkcmVuOltoLmpzeChmMCx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxMzkiLGVkaXRDb3VudDpSLHNob3dFZGl0UHJldmlld3M6JCxvbkNsaWNrOkZ9KSxoLmpzeChtMCx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxNDUiLGNhblVuZG86dixjYW5SZWRvOkQsb25VbmRvOmF0LG9uUmVkbzpjdH0pXX0pLGguanN4KGQwLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9FZGl0c1Rvb2xCYXIvRWRpdFRvb2xiYXIudHN4OjE1MyIsb25EaXNjYXJkOnMsb25BcHBseTpTdCxpc0FwcGx5aW5nOk4sZWRpdENvdW50OlJ9KSxKLmxlbmd0aD4wJiZoLmpzeChoMCx7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvRWRpdHNUb29sQmFyL0VkaXRUb29sYmFyLnRzeDoxNjEiLGFjdGl2ZUVkaXRzOkosaG92ZXJlZEVkaXRJbmRleDptLGhpZ2hsaWdodGVyOmksb25DYXJkQ2xpY2s6aHQsb25DYXJkSG92ZXI6eCxzaG93OiR9KV19KX0pfSl9Y29uc3QgeTA9dGkuY3JlYXRlT3BlbmVyKHF1LHtzaW5nbGV0b246ITB9KSx2MD1PYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsRWRpdFRvb2xiYXI6cXUsb3BlbkVkaXRUb29sYmFyOnkwfSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSkpO2Z1bmN0aW9uIGIwKHtjb21tZW50OnIsZWxlbWVudFJlY3Q6aSxib3hSZWY6dSxvbk1vdXNlRW50ZXI6cyxvbk1vdXNlTGVhdmU6ZixvbkNsaWNrOm0sb25EZWxldGU6eCxpc0hpZGRlbjpOfSl7Y29uc3QgQz1VLnVzZVJlZihudWxsKSx2PVUudXNlUmVmKG51bGwpLFtELFJdPVUudXNlU3RhdGUoe3dpZHRoOjAsaGVpZ2h0OjB9KTtVLnVzZUxheW91dEVmZmVjdCgoKT0+e2lmKCFDLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGl0PUMuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtSKHt3aWR0aDppdC53aWR0aCxoZWlnaHQ6aXQuaGVpZ2h0fSl9LFtyLHhdKTtjb25zdCBKPXdpbmRvdy5pbm5lcldpZHRoLCQ9d2luZG93LmlubmVySGVpZ2h0LEY9MzAsYXQ9aS50b3AraS5oZWlnaHQvMjtsZXQgY3Q9aS5yaWdodCtGLGh0PWF0LUQuaGVpZ2h0LzI7Y3QrRC53aWR0aD5KLTIwJiYoY3Q9aS5sZWZ0LUYtRC53aWR0aCksY3Q8MjAmJihjdD1NYXRoLm1pbihpLmxlZnQsSi1ELndpZHRoLTIwKSxjdD1NYXRoLm1heCgyMCxjdCksaHQ9aS5ib3R0b20rRiksaHQ8MjA/aHQ9MjA6aHQrRC5oZWlnaHQ+JC0yMCYmKGh0PU1hdGgubWF4KDIwLCQtRC5oZWlnaHQtMjApKTtjb25zdCBTdD17eDpjdCx5Omh0fSxrPVN0LnkrRC5oZWlnaHQvMixZPVN0Lng+aS5yaWdodD9pLnJpZ2h0OmkubGVmdDtyZXR1cm4gTj9udWxsOmguanN4cyhoLkZyYWdtZW50LHtjaGlsZHJlbjpbaC5qc3hzKCJzdmciLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db21tZW50TWFya2Vycy9Db21tZW50VG9vbHRpcC50c3g6ODAiLGNsYXNzTmFtZToiYWJzb2x1dGUgaW5zZXQtMCB3LWZ1bGwgaC1mdWxsIHBvaW50ZXItZXZlbnRzLW5vbmUgei1bMjE0NzQ4MzY0M10iLGNoaWxkcmVuOltoLmpzeCgibGluZSIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbW1lbnRNYXJrZXJzL0NvbW1lbnRUb29sdGlwLnRzeDo4MSIseDE6WSx5MTphdCx4MjpTdC54LHkyOmssc3Ryb2tlOiIjMDA4MWYyIixzdHJva2VXaWR0aDoxLjUsc3Ryb2tlRGFzaGFycmF5OiIzIDIifSksaC5qc3goImNpcmNsZSIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbW1lbnRNYXJrZXJzL0NvbW1lbnRUb29sdGlwLnRzeDo5MCIsY3g6WSxjeTphdCxyOjMsZmlsbDoiIzAwODFmMiJ9KV19KSxoLmpzeHMoImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbW1lbnRNYXJrZXJzL0NvbW1lbnRUb29sdGlwLnRzeDo5NCIscmVmOnYsY2xhc3NOYW1lOiJhYnNvbHV0ZSBncm91cCB6LVsyMTQ3NDgzNjQ0XSIsc3R5bGU6e2xlZnQ6U3QueCx0b3A6U3QueX0sb25Nb3VzZUVudGVyOnMsb25Nb3VzZUxlYXZlOmYsY2hpbGRyZW46W2guanN4KCJkaXYiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db21tZW50TWFya2Vycy9Db21tZW50VG9vbHRpcC50c3g6MTA1IixyZWY6SD0+e0MuY3VycmVudD1ILHUoSCl9LGNsYXNzTmFtZToicG9pbnRlci1ldmVudHMtYXV0byBjdXJzb3ItcG9pbnRlciByb3VuZGVkLVsxMHB4XSBweC0yLjUgcHktMS41IGJnLVsjMDA4MWYyXSBtYXgtdy1bMjYwcHhdIixvbkNsaWNrOm0sb25Nb3VzZURvd246SD0+SC5zdG9wUHJvcGFnYXRpb24oKSxjaGlsZHJlbjpoLmpzeCgiZGl2Iix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29tbWVudE1hcmtlcnMvQ29tbWVudFRvb2x0aXAudHN4OjExNCIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0xLjUiLGNoaWxkcmVuOmguanN4KCJwIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29tbWVudE1hcmtlcnMvQ29tbWVudFRvb2x0aXAudHN4OjExNSIsY2xhc3NOYW1lOiJmbGV4LTEgdGV4dC14cyBicmVhay13b3JkcyB3aGl0ZXNwYWNlLXByZS13cmFwIHRleHQtW3ZhcigtLXRleHQtd2hpdGUpXSIsY2hpbGRyZW46cn0pfSl9KSx4JiZoLmpzeCgiYnV0dG9uIix7ImRhdGEtbG9jIjoic3JjL21vZHVsZXMvRG9tU2VsZWN0b3IvQ29tbWVudE1hcmtlcnMvQ29tbWVudFRvb2x0aXAudHN4OjEyMyIsb25DbGljazpIPT57SC5zdG9wUHJvcGFnYXRpb24oKSx4KCl9LGNsYXNzTmFtZToiYWJzb2x1dGUgLXRvcC0xIHJpZ2h0LTAgcG9pbnRlci1ldmVudHMtYXV0byBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzaXplLTUgcm91bmRlZC1mdWxsIGJnLXdoaXRlIHNoYWRvdy1tZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtcmVkLTUwMCBob3ZlcjpiZy1yZWQtNTAgdHJhbnNpdGlvbi1hbGwgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIix0aXRsZToiRGVsZXRlIGNvbW1lbnQiLG9uTW91c2VEb3duOkg9Pkguc3RvcFByb3BhZ2F0aW9uKCksY2hpbGRyZW46aC5qc3goInN2ZyIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbW1lbnRNYXJrZXJzL0NvbW1lbnRUb29sdGlwLnRzeDoxMzIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIix2aWV3Qm94OiIwIDAgMTIgMTIiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoiMS41IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsY2hpbGRyZW46aC5qc3goInBhdGgiLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db21tZW50TWFya2Vycy9Db21tZW50VG9vbHRpcC50c3g6MTQyIixkOiJNOSAzTDMgOU0zIDNsNiA2In0pfSl9KV19KV19KX1mdW5jdGlvbiBHdSh7ZWRpdEhpc3Rvcnk6cixoaWdobGlnaHRlcjppLGdldEFjdGl2ZUVsZW1lbnQ6dSxvbkVsZW1lbnRTZWxlY3Q6c30pe2NvbnN0W2YsbV09VS51c2VTdGF0ZShudWxsKSxbeCxOXT1VLnVzZVN0YXRlKG51bGwpLFtDLHZdPVUudXNlU3RhdGUoMCksRD1VLnVzZVJlZihuZXcgTWFwKSxSPVUudXNlTWVtbygoKT0+e2NvbnN0IGs9ci5nZXRBY3RpdmVFZGl0cygpLFk9bmV3IE1hcDtmb3IoY29uc3QgaXQgb2Ygayl7Y29uc3QgcnQ9aXQudGFyZ2V0O2lmKCFkb2N1bWVudC5jb250YWlucyhydCkpY29udGludWU7Y29uc3QgWD1LcihydCk7WCYmWS5zZXQoWCxydCl9Y29uc3QgSD1bXTtmb3IoY29uc3RbaXQscnRdb2YgWS5lbnRyaWVzKCkpe2NvbnN0IFg9cnQuX2NvbW1lbnR8fCIiO2lmKCFYLnRyaW0oKSljb250aW51ZTtjb25zdCB4dD1ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt4dC53aWR0aD09PTB8fHh0LmhlaWdodD09PTB8fEgucHVzaCh7aWQ6aXQsZWxlbWVudDpydCxjb21tZW50OlgudHJpbSgpLHBvc2l0aW9uOnt4Onh0LmxlZnQseTp4dC50b3B9fSl9cmV0dXJuIEh9LFtyLEMseF0pLEo9KCk9Pntmb3IoY29uc3RbayxZXW9mIEQuY3VycmVudC5lbnRyaWVzKCkpe2NvbnN0IEg9WS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpLmFkZEV4Y2x1c2lvblJlY3QoYGNvbW1lbnQtYm94LSR7a31gLEgpfX0sJD0oayxZKT0+IShrLnJpZ2h0PFkubGVmdHx8ay5sZWZ0PlkucmlnaHR8fGsuYm90dG9tPFkudG9wfHxrLnRvcD5ZLmJvdHRvbSk7VS51c2VFZmZlY3QoKCk9Pntjb25zdCBrPXIub25DaGFuZ2UoKCk9Pnt2KFg9PlgrMSl9KTtsZXQgWT1udWxsLEg9bnVsbDtjb25zdCBpdD0oKT0+e1k9PT1udWxsJiYoWT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntZPW51bGwsdihYPT5YKzEpfSkpfSxydD0oKT0+e0gmJmNsZWFyVGltZW91dChIKSxIPXNldFRpbWVvdXQoKCk9Pnt2KFg9PlgrMSl9LDEwMCl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixpdCx7cGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJ0LHtwYXNzaXZlOiEwfSksKCk9PntrKCksWSE9PW51bGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKFkpLEgmJmNsZWFyVGltZW91dChIKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixpdCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIscnQpO2Zvcihjb25zdCBYIG9mIEQuY3VycmVudC5rZXlzKCkpaS5yZW1vdmVFeGNsdXNpb25SZWN0KGBjb21tZW50LWJveC0ke1h9YCl9fSxbcixpXSksVS51c2VFZmZlY3QoKCk9Pntjb25zdCBrPSgpPT57Y29uc3QgSD11KCk7TihIKX07aygpO2NvbnN0IFk9c2V0SW50ZXJ2YWwoaywxMDApO3JldHVybigpPT57Y2xlYXJJbnRlcnZhbChZKX19LFt1XSksVS51c2VFZmZlY3QoKCk9Pntjb25zdCBrPW5ldyBTZXQoUi5tYXAoSD0+SC5pZCkpO2Zvcihjb25zdCBIIG9mIEQuY3VycmVudC5rZXlzKCkpay5oYXMoSCl8fChpLnJlbW92ZUV4Y2x1c2lvblJlY3QoYGNvbW1lbnQtYm94LSR7SH1gKSxELmN1cnJlbnQuZGVsZXRlKEgpKTtKKCk7Y29uc3QgWT1mP1IuZmluZChIPT5ILmlkPT09Zik/LmVsZW1lbnQ6bnVsbDtZJiZkb2N1bWVudC5jb250YWlucyhZKT9pLnNldEhvdmVyVGFyZ2V0KFkpOmkuc2V0SG92ZXJUYXJnZXQobnVsbCl9LFtSLGYsaV0pO2NvbnN0IEY9az0+e20oayl9LGF0PSgpPT57bShudWxsKX0sY3Q9az0+e2NvbnN0IFk9Ui5maW5kKEg9PkguaWQ9PT1rKTtZJiZkb2N1bWVudC5jb250YWlucyhZLmVsZW1lbnQpJiYoWS5lbGVtZW50LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIn0pLHMoWS5lbGVtZW50KSl9LGh0PWs9Pntjb25zdCBZPVIuZmluZChIPT5ILmlkPT09ayk7aWYoWSYmZG9jdW1lbnQuY29udGFpbnMoWS5lbGVtZW50KSl7Y29uc3QgSD1ZLmVsZW1lbnQsaXQ9SC5fY29tbWVudHx8IiIscnQ9V3IoSCk7ZGVsZXRlIEguX2NvbW1lbnQsci5hZGRFZGl0KHt0YXJnZXQ6SCx0YXJnZXREYXRhOnJ0LGNoYW5nZXM6e2NvbW1lbnQ6e29yaWdpbmFsOml0LG1vZGlmaWVkOiIifX0sc2NyZWVuc2hvdDpudWxsfSksdihYPT5YKzEpfX0sU3Q9KGssWSk9PntpZihZKXtELmN1cnJlbnQuc2V0KGssWSk7Y29uc3QgSD1ZLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2kuYWRkRXhjbHVzaW9uUmVjdChgY29tbWVudC1ib3gtJHtrfWAsSCl9ZWxzZSBELmN1cnJlbnQuZGVsZXRlKGspLGkucmVtb3ZlRXhjbHVzaW9uUmVjdChgY29tbWVudC1ib3gtJHtrfWApfTtyZXR1cm4gaC5qc3goImRpdiIseyJkYXRhLWxvYyI6InNyYy9tb2R1bGVzL0RvbVNlbGVjdG9yL0NvbW1lbnRNYXJrZXJzL0NvbW1lbnRNYXJrZXJzLnRzeDoyMjkiLGNsYXNzTmFtZToiZml4ZWQgaW5zZXQtMCBwb2ludGVyLWV2ZW50cy1ub25lIixzdHlsZTp7ekluZGV4OjIxNDc0ODM2NDJ9LFthbF06InRydWUiLGNoaWxkcmVuOlIubWFwKGs9PntsZXQgSD14PT09ay5lbGVtZW50O2lmKCFIJiZ4JiZkb2N1bWVudC5jb250YWlucyh4KSl7Y29uc3QgaXQ9RC5jdXJyZW50LmdldChrLmlkKTtpZihpdCl7Y29uc3QgcnQ9eC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxYPWl0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0g9JChYLHJ0KX19cmV0dXJuIGguanN4KGIwLHsiZGF0YS1sb2MiOiJzcmMvbW9kdWxlcy9Eb21TZWxlY3Rvci9Db21tZW50TWFya2Vycy9Db21tZW50TWFya2Vycy50c3g6MjQ5Iixjb21tZW50OmsuY29tbWVudCxlbGVtZW50UmVjdDprLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaXNIaWRkZW46SCxvbk1vdXNlRW50ZXI6KCk9PkYoay5pZCksb25Nb3VzZUxlYXZlOmF0LG9uQ2xpY2s6KCk9PmN0KGsuaWQpLG9uRGVsZXRlOigpPT5odChrLmlkKSxib3hSZWY6aXQ9PlN0KGsuaWQsaXQpfSxrLmlkKX0pfSl9Y29uc3QgeDA9dGkuY3JlYXRlT3BlbmVyKEd1LHtzaW5nbGV0b246ITB9KSx3MD1PYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsQ29tbWVudE1hcmtlcnM6R3Usb3BlbkNvbW1lbnRNYXJrZXJzOngwfSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSkpLFMwPU9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OicjbWFudXMtcHJldmlld2VyLWNvbnRlbnQtcm9vdHstLWJhY2tncm91bmQtZ3JheS1sb2dpbjogI2Y4ZjhmNzstLWJhY2tncm91bmQtc2VsZWN0aW9uOiAjYjhkM2Y4Oy0tYmFja2dyb3VuZC10b29sLXVzZWQ6IGxpbmVhci1ncmFkaWVudCggMTc2ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDUuODglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIC42KSA1MS4yOCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgOTQuOTUlICk7LS1iYWNrZ3JvdW5kLWRyYWctb3ZlcmxheTogI2ZmZmZmZjgwOy0tYmFja2dyb3VuZC10aGlua2luZzogbGluZWFyLWdyYWRpZW50KCA5MGRlZywgdmFyKC0tdGV4dC1wcmltYXJ5KSAwJSwgI2Q5ZDhkOCA1MC40OCUsIHZhcigtLXRleHQtcHJpbWFyeSkgOTkuMDQlICk7LS1iYWNrZ3JvdW5kLWFwcC1iYW5uZXI6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmN2Y3ZjcgMCUsICNlY2VjZWMgMTAwJSk7LS1iYWNrZ3JvdW5kLXNoYXJlLWhlYWRlcjogbGluZWFyLWdyYWRpZW50KCAwZGVnLCByZ2JhKDI0OCwgMjQ4LCAyNDcsIDApIDAlLCAjZjhmOGY3IDQ1LjA1JSApOy0tdGV4dC1wcmltYXJ5OiAjMzQzMjJkOy0tdGV4dC1zZWNvbmRhcnk6ICM1ZTVlNWI7LS10ZXh0LXRlcnRpYXJ5OiAjODU4NDgxOy0tdGV4dC1kaXNhYmxlOiAjYjliOWI3Oy0tdGV4dC1ibHVlOiAjMDA4MWYyOy0tdGV4dC1vbmJsYWNrOiAjZmZmZmZmOy0tdGV4dC13aGl0ZTogI2ZmZmZmZjstLXRleHQtd2hpdGUtdHNwOiAjZmZmZmZmOTk7LS10aGVtZS10ZXh0LXByaW1hcnk6ICMyNjI2MjY7LS1sb2dvLWNvbG9yOiAjMzQzMjJkOy0tdGV4dC1zaGluaW5nOiAjZTVlNWU1Oy0tYmFja2dyb3VuZC1ncmF5LW1haW46ICNmOGY4Zjc7LS1iYWNrZ3JvdW5kLXdoaXRlLW1haW46ICNmZmZmZmY7LS1iYWNrZ3JvdW5kLW1lbnUtd2hpdGU6ICNmZmZmZmY7LS1iYWNrZ3JvdW5kLW1lbnUtZ3JheTogI2Y4ZjhmNzstLWJhY2tncm91bmQtdHNwLW1lbnUtd2hpdGU6ICNmZmZmZmYxNDstLWJhY2tncm91bmQtdHNwLWNhcmQtZ3JheTogIzM3MzUyZjBhOy0tYmFja2dyb3VuZC1uYXY6ICNlYmViZWI7LS1iYWNrZ3JvdW5kLWNhcmQ6ICNmYWZhZmE7LS1iYWNrZ3JvdW5kLW1hc2s6ICMwMDAwMDBhNjstLWJhY2tncm91bmQtY2FyZC1ncmF5OiAjZmFmYWZhOy0tYmFja2dyb3VuZC1wcmV2aWV3LW1hc2s6ICMwMDAwMDBkOTstLWJvcmRlci1tYWluOiAjMDAwMDAwMGY7LS1ib3JkZXItd2hpdGU6ICNmZmZmZmYzMzstLWJvcmRlci1idG4tbWFpbjogIzAwMDAwMDFmOy0tYm9yZGVyLWlucHV0LWFjdGl2ZTogIzAwODFmMjgwOy0tYm9yZGVyLWxpZ2h0OiAjMDAwMDAwMGE7LS1ib3JkZXItZGFyazogIzAwMDAwMDFmOy0tYm9yZGVyLXByaW1hcnk6ICM0ZjU5NjYxZjstLWljb24tcHJpbWFyeTogIzM0MzIyZDstLWljb24tc2Vjb25kYXJ5OiAjNWU1ZTViOy0taWNvbi10ZXJ0aWFyeTogIzg1ODQ4MTstLWljb24tZGlzYWJsZTogI2I5YjliNzstLWljb24tYmx1ZTogIzAwODFmMjstLWljb24tb25ibGFjazogI2ZmZmZmZjstLWljb24td2hpdGU6ICNmZmZmZmY7LS1pY29uLXdoaXRlLXRzcDogI2ZmZmZmZjk5Oy0tZnVuY3Rpb24tZXJyb3I6ICNmMjVhNWE7LS1mdW5jdGlvbi1zdWNjZXNzOiAjMjViYTNiOy0tZnVuY3Rpb24td2FybmluZzogI2VmYTIwMTstLWZ1bmN0aW9uLWVycm9yLXRzcDogI2YyNWE1YTE0Oy0tZnVuY3Rpb24td2FybmluZy10c3A6ICNlZmEyMDExZjstLWZ1bmN0aW9uLXN1Y2Nlc3MtdHNwOiAjMjViYTNiMTQ7LS1maWxsLWJsdWU6ICMwMDgxZjIxNDstLWZpbGwtdHNwLXdoaXRlLW1haW46ICMzNzM1MmYwZjstLWZpbGwtdHNwLXdoaXRlLWRhcms6ICMzNzM1MmYxNDstLWZpbGwtdHNwLXdoaXRlLWxpZ2h0OiAjMzczNTJmMGE7LS1maWxsLXRzcC1ncmF5LWRhcms6ICMzNzM1MmYxNDstLWZpbGwtdHNwLWdyYXktbWFpbjogIzM3MzUyZjBhOy0tZmlsbC13aGl0ZTogI2ZmZmZmZjstLWZpbGwtYmxhY2s6ICMyODI4Mjk3MzstLWZpbGwtZ3JheTogI2Y4ZjhmNzstLUJ1dHRvbi1wcmltYXJ5LWJsYWNrOiAjMWExYTE5Oy0tQnV0dG9uLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7LS1CdXR0b24tcHJpbWFyeS1icmFuZDogIzAwODFmMjstLUJ1dHRvbi1wcmltYXJ5LWJyYW5kLWRpc2FibGVkOiAjN2NiZGY1Oy0tQnV0dG9uLXNlY29uZGFyeS1icmFuZDogIzAwODFmMjFhOy0tQnV0dG9uLXNlY29uZGFyeS1lcnJvci1ib3JkZXI6ICNmMjVhNWE4MDstLUJ1dHRvbi1zZWNvbmRhcnktZXJyb3ItZmlsbDogI2ZmZmZmZjstLUJ1dHRvbi1zZWNvbmRhcnktbWFpbjogI2ZmZmZmZjstLUJ1dHRvbi1zZWNvbmRhcnktZ3JheTogIzM3MzUyZjBmOy0tdGFiLWZpbGw6IHJnYmEoMCwgMCwgMCwgLjA0KTstLXRhYi1hY3RpdmUtYmxhY2s6ICMxYTFhMTk7LS1zaGFkb3ctTDogIzAwMDAwMDNkOy0tc2hhZG93LU06ICMwMDAwMDAxZjstLXNoYWRvdy1TOiAjMDAwMDAwMTQ7LS1zaGFkb3ctWFM6ICMwMDAwMDAwZjstLXNoYWRvd3MtaW5uZXItMDogI2ZmZmZmZjAwOy0tc2hhZG93cy1pbm5lci0xOiAjMTYxOTFkMTQ7LS1zaGFkb3dzLWlubmVyLTI6ICMxNjE5MWQxZjstLXNoYWRvd3MtZHJvcC0xOiAjMTYxOTFkMDg7LS1zaGFkb3dzLWRyb3AtMjogIzE2MTkxZDBhOy0tc2hhZG93cy1kcm9wLTM6ICMxNjE5MWQxNDstLXNoYWRvd3MtZHJvcC00OiAjMTYxOTFkMWY7LS1zaGFkb3dzLWhpZ2hsaWdodC0xOiAjY2NlNWZmOy0tc2hhZG93cy1oaWdobGlnaHQtMjogIzE0ODdmYTstLXNoYWRvd3MtZGFuZ2VyLTE6ICNmZWQ3ZDc7LS1zaGFkb3dzLWRhbmdlci0yOiAjZWUzYTNhOy0tc2hhZG93cy1jYXJkLWJvcmRlcjogIzE2MTkxZDFmOy0tc2hhZG93cy1jYXJkLWJvcmRlci0yOiAjMTYxOTFkMWY7LS1Ub29sdGlwcy1tYWluOiAjMDAwMDAwZTY7LS1ncmFkdWFsLXdoaXRlLTA6ICNmZmZmZmYwMDstLWdyYWR1YWwtZ3JheS0xMDA6ICNmZmZmZmYwMDstLWdyYWR1YWwtZ3JheS0wOiAjZmZmZmZmMDA7LS1ncmFkdWFsLWRhcmstMjA6ICMwMDAwMDAzMzstLWZpbGwtaW5wdXQtY2hhdDogI2ZmZmZmZjstLWdyYWRpZW50LWJnLW1hc2stZ3JheS0wOiAjZWFlYWViMDA7LS1ncmFkdWFsLXdoaXRlLW1lbnUtMDogI2ZmZmZmZjAwfSNtYW51cy1wcmV2aWV3ZXItY29udGVudC1yb290LmRhcmt7LS10ZXh0LXByaW1hcnk6ICNkYWRhZGE7LS10ZXh0LXNlY29uZGFyeTogI2FjYWNhYzstLXRleHQtdGVydGlhcnk6ICM3ZjdmN2Y7LS10ZXh0LWRpc2FibGU6ICM1ZjVmNWY7LS10ZXh0LWJsdWU6ICMxYTkzZmU7LS10ZXh0LW9uYmxhY2s6ICMwMDAwMDBlNjstLXRleHQtd2hpdGU6ICNmZmZmZmY7LS10ZXh0LXdoaXRlLXRzcDogI2ZmZmZmZjk5Oy0tdGhlbWUtdGV4dC1wcmltYXJ5OiAjZGJkYmRiOy0tbG9nby1jb2xvcjogI2RhZGFkYTstLXRleHQtc2hpbmluZzogIzQ3NDc0NzstLWJhY2tncm91bmQtZ3JheS1tYWluOiAjMjcyNzI4Oy0tYmFja2dyb3VuZC13aGl0ZS1tYWluOiAjMTYxNjE4Oy0tYmFja2dyb3VuZC1tZW51LXdoaXRlOiAjMzgzNzM5Oy0tYmFja2dyb3VuZC1tZW51LWdyYXk6ICMyNzI3Mjg7LS1iYWNrZ3JvdW5kLXRzcC1tZW51LXdoaXRlOiAjZmZmZmZmMGY7LS1iYWNrZ3JvdW5kLXRzcC1jYXJkLWdyYXk6ICNmZmZmZmYwZjstLWJhY2tncm91bmQtbmF2OiAjMjEyMTIyOy0tYmFja2dyb3VuZC1jYXJkOiAjMzgzNzM5Oy0tYmFja2dyb3VuZC1tYXNrLWJsYWNrOiAjMDAwMDAwYTY7LS1iYWNrZ3JvdW5kLW1hc2std2hpdGU6ICMyNzI3MjhhNjstLWJhY2tncm91bmQtY2FyZC1ncmF5OiAjMzgzNzM5Oy0tYmFja2dyb3VuZC1wcmV2aWV3LW1hc2s6ICMwMDAwMDBkOTstLWJvcmRlci1tYWluOiAjZmZmZmZmMTQ7LS1ib3JkZXItd2hpdGU6ICMwMDAwMDAxNDstLWJvcmRlci1idG4tbWFpbjogI2ZmZmZmZjFhOy0tYm9yZGVyLWlucHV0LWFjdGl2ZTogIzFhOTNmZTgwOy0tYm9yZGVyLWxpZ2h0OiAjZmZmZmZmMGY7LS1ib3JkZXItZGFyazogI2ZmZmZmZjI5Oy0tYm9yZGVyLXByaW1hcnk6ICM1NjU2NWY1MjstLWljb24tcHJpbWFyeTogI2RhZGFkYTstLWljb24tc2Vjb25kYXJ5OiAjYWNhY2FjOy0taWNvbi10ZXJ0aWFyeTogIzdmN2Y3ZjstLWljb24tZGlzYWJsZTogIzVmNWY1ZjstLWljb24tYmx1ZTogIzFhOTNmZTstLWljb24tb25ibGFjazogIzAwMDAwMGQ5Oy0taWNvbi13aGl0ZTogI2ZmZmZmZjstLWljb24td2hpdGUtdHNwOiAjZmZmZmZmOTk7LS1mdW5jdGlvbi1lcnJvcjogI2ViNGQ0ZDstLWZ1bmN0aW9uLXN1Y2Nlc3M6ICM1ZWI5MmQ7LS1mdW5jdGlvbi13YXJuaW5nOiAjZmZiZjM2Oy0tZnVuY3Rpb24tZXJyb3ItdHNwOiAjZWI0ZDRkMTQ7LS1mdW5jdGlvbi13YXJuaW5nLXRzcDogI2ZmYmYzNjFmOy0tZnVuY3Rpb24tc3VjY2Vzcy10c3A6ICMyNWJhM2IxZjstLWZpbGwtYmx1ZTogIzFhOTNmZTFmOy0tZmlsbC10c3Atd2hpdGUtbWFpbjogI2ZmZmZmZjBmOy0tZmlsbC10c3Atd2hpdGUtZGFyazogI2ZmZmZmZjFmOy0tZmlsbC10c3Atd2hpdGUtbGlnaHQ6ICNmZmZmZmYwYTstLWZpbGwtdHNwLWdyYXktZGFyazogIzAwMDAwMDQ3Oy0tZmlsbC10c3AtZ3JheS1tYWluOiAjMDAwMDAwMzM7LS1maWxsLXdoaXRlOiAjM2UzZDNlOy0tZmlsbC1ibGFjazogIzI4MjgyOTczOy0tZmlsbC1ncmF5OiAjNDQ0MzQ1Oy0tQnV0dG9uLXByaW1hcnktYmxhY2s6ICNmZmZmZmY7LS1CdXR0b24tcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjE0Oy0tQnV0dG9uLXByaW1hcnktYnJhbmQ6ICMxYTkzZmU7LS1CdXR0b24tcHJpbWFyeS1icmFuZC1kaXNhYmxlZDogIzIxNWQ5MzstLUJ1dHRvbi1zZWNvbmRhcnktYnJhbmQ6ICMxYTkzZmUxZjstLUJ1dHRvbi1zZWNvbmRhcnktZXJyb3ItYm9yZGVyOiAjZWI0ZDRkMjk7LS1CdXR0b24tc2Vjb25kYXJ5LWVycm9yLWZpbGw6ICNlYjRkNGQxZjstLUJ1dHRvbi1zZWNvbmRhcnktbWFpbjogI2ZmZmZmZjFmOy0tQnV0dG9uLXNlY29uZGFyeS1ncmF5OiAjZmZmZmZmMGY7LS10YWItZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMDYpOy0tdGFiLWFjdGl2ZS1ibGFjazogI2ZmZmZmZjstLXNoYWRvdy1MOiAjMDAwMDAwNjY7LS1zaGFkb3ctTTogIzAwMDAwMDNkOy0tc2hhZG93LVM6ICMwMDAwMDAyOTstLXNoYWRvdy1YUzogIzAwMDAwMDFmOy0tc2hhZG93cy1pbm5lci0wOiAjZmZmZmZmMWY7LS1zaGFkb3dzLWlubmVyLTE6ICNmZmZmZmYxNDstLXNoYWRvd3MtaW5uZXItMjogI2ZmZmZmZjFmOy0tc2hhZG93cy1kcm9wLTE6ICMwMDAwMDAxZjstLXNoYWRvd3MtZHJvcC0yOiAjMDAwMDAwMzM7LS1zaGFkb3dzLWRyb3AtMzogIzAwMDAwMDQ3Oy0tc2hhZG93cy1kcm9wLTQ6ICMwMDAwMDA1YzstLXNoYWRvd3MtaGlnaGxpZ2h0LTE6ICMxYjYxYTY7LS1zaGFkb3dzLWhpZ2hsaWdodC0yOiAjMTQ4N2ZhOy0tc2hhZG93cy1kYW5nZXItMTogIzhmMTkxOTstLXNoYWRvd3MtZGFuZ2VyLTI6ICNlZTNhM2E7LS1zaGFkb3dzLWNhcmQtYm9yZGVyOiAjZmZmZmZmMWY7LS1zaGFkb3dzLWNhcmQtYm9yZGVyLTI6ICNmZmZmZmYwMDstLVRvb2x0aXBzLW1haW46ICMwMDAwMDBlNjstLWdyYWR1YWwtd2hpdGUtMDogIzI3MjcyODAwOy0tZ3JhZHVhbC1ncmF5LTEwMDogIzQ0NDM0NTstLWdyYWR1YWwtZ3JheS0wOiAjNDQ0MzQ1MDA7LS1ncmFkdWFsLWRhcmstMjA6ICNmZmZmZmYzMzstLWZpbGwtaW5wdXQtY2hhdDogIzM2MzUzNzstLWdyYWRpZW50LWJnLW1hc2stZ3JheS0wOiAjMWUxZTFlMDA7LS1ncmFkdWFsLXdoaXRlLW1lbnUtMDogIzM4MzczOTAwfSosOmJlZm9yZSw6YWZ0ZXJ7LS10dy1ib3JkZXItc3BhY2luZy14OiAwOy0tdHctYm9yZGVyLXNwYWNpbmcteTogMDstLXR3LXRyYW5zbGF0ZS14OiAwOy0tdHctdHJhbnNsYXRlLXk6IDA7LS10dy1yb3RhdGU6IDA7LS10dy1za2V3LXg6IDA7LS10dy1za2V3LXk6IDA7LS10dy1zY2FsZS14OiAxOy0tdHctc2NhbGUteTogMTstLXR3LXBhbi14OiA7LS10dy1wYW4teTogOy0tdHctcGluY2gtem9vbTogOy0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5Oy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOy0tdHctb3JkaW5hbDogOy0tdHctc2xhc2hlZC16ZXJvOiA7LS10dy1udW1lcmljLWZpZ3VyZTogOy0tdHctbnVtZXJpYy1zcGFjaW5nOiA7LS10dy1udW1lcmljLWZyYWN0aW9uOiA7LS10dy1yaW5nLWluc2V0OiA7LS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4Oy0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7LS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIC41KTstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwOy0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXNoYWRvdzogMCAwICMwMDAwOy0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDstLXR3LWJsdXI6IDstLXR3LWJyaWdodG5lc3M6IDstLXR3LWNvbnRyYXN0OiA7LS10dy1ncmF5c2NhbGU6IDstLXR3LWh1ZS1yb3RhdGU6IDstLXR3LWludmVydDogOy0tdHctc2F0dXJhdGU6IDstLXR3LXNlcGlhOiA7LS10dy1kcm9wLXNoYWRvdzogOy0tdHctYmFja2Ryb3AtYmx1cjogOy0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogOy0tdHctYmFja2Ryb3AtY29udHJhc3Q6IDstLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogOy0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogOy0tdHctYmFja2Ryb3AtaW52ZXJ0OiA7LS10dy1iYWNrZHJvcC1vcGFjaXR5OiA7LS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogOy0tdHctYmFja2Ryb3Atc2VwaWE6IDstLXR3LWNvbnRhaW4tc2l6ZTogOy0tdHctY29udGFpbi1sYXlvdXQ6IDstLXR3LWNvbnRhaW4tcGFpbnQ6IDstLXR3LWNvbnRhaW4tc3R5bGU6IH06OmJhY2tkcm9wey0tdHctYm9yZGVyLXNwYWNpbmcteDogMDstLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7LS10dy10cmFuc2xhdGUteDogMDstLXR3LXRyYW5zbGF0ZS15OiAwOy0tdHctcm90YXRlOiAwOy0tdHctc2tldy14OiAwOy0tdHctc2tldy15OiAwOy0tdHctc2NhbGUteDogMTstLXR3LXNjYWxlLXk6IDE7LS10dy1wYW4teDogOy0tdHctcGFuLXk6IDstLXR3LXBpbmNoLXpvb206IDstLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTstLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDstLXR3LW9yZGluYWw6IDstLXR3LXNsYXNoZWQtemVybzogOy0tdHctbnVtZXJpYy1maWd1cmU6IDstLXR3LW51bWVyaWMtc3BhY2luZzogOy0tdHctbnVtZXJpYy1mcmFjdGlvbjogOy0tdHctcmluZy1pbnNldDogOy0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDstLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmOy0tdHctcmluZy1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyAuNSk7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7LS10dy1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7LS10dy1ibHVyOiA7LS10dy1icmlnaHRuZXNzOiA7LS10dy1jb250cmFzdDogOy0tdHctZ3JheXNjYWxlOiA7LS10dy1odWUtcm90YXRlOiA7LS10dy1pbnZlcnQ6IDstLXR3LXNhdHVyYXRlOiA7LS10dy1zZXBpYTogOy0tdHctZHJvcC1zaGFkb3c6IDstLXR3LWJhY2tkcm9wLWJsdXI6IDstLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiA7LS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXR3LWJhY2tkcm9wLWludmVydDogOy0tdHctYmFja2Ryb3Atb3BhY2l0eTogOy0tdHctYmFja2Ryb3Atc2F0dXJhdGU6IDstLXR3LWJhY2tkcm9wLXNlcGlhOiA7LS10dy1jb250YWluLXNpemU6IDstLXR3LWNvbnRhaW4tbGF5b3V0OiA7LS10dy1jb250YWluLXBhaW50OiA7LS10dy1jb250YWluLXN0eWxlOiB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZTVlN2VifTpiZWZvcmUsOmFmdGVyey0tdHctY29udGVudDogIiJ9aHRtbCw6aG9zdHtsaW5lLWhlaWdodDoxLjU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LW1vei10YWItc2l6ZTo0Oy1vLXRhYi1zaXplOjQ7dGFiLXNpemU6NDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIixTZWdvZSBVSSBTeW1ib2wsIk5vdG8gQ29sb3IgRW1vamkiO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1ib2R5e21hcmdpbjowO2xpbmUtaGVpZ2h0OmluaGVyaXR9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXAscHJle2ZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsTGliZXJhdGlvbiBNb25vLENvdXJpZXIgTmV3LG1vbm9zcGFjZTtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOm5vcm1hbDtmb250LXNpemU6MWVtfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX10YWJsZXt0ZXh0LWluZGVudDowO2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLGlucHV0OndoZXJlKFt0eXBlPWJ1dHRvbl0pLGlucHV0OndoZXJlKFt0eXBlPXJlc2V0XSksaW5wdXQ6d2hlcmUoW3R5cGU9c3VibWl0XSl7LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiw6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXJ7b3BhY2l0eToxO2NvbG9yOiM5Y2EzYWZ9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHtkaXNwbGF5OmJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0uY29udGFpbmVye3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6IDQ3NXB4KXsuY29udGFpbmVye21heC13aWR0aDo0NzVweH19QG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KXsuY29udGFpbmVye21heC13aWR0aDo2NDBweH19QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KXsuY29udGFpbmVye21heC13aWR0aDo3NjhweH19QG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6MTAyNHB4fX1AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KXsuY29udGFpbmVye21heC13aWR0aDoxMjgwcHh9fUBtZWRpYSAobWluLXdpZHRoOiAxNTM2cHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjE1MzZweH19LnBvaW50ZXItZXZlbnRzLW5vbmV7cG9pbnRlci1ldmVudHM6bm9uZX0ucG9pbnRlci1ldmVudHMtYXV0b3twb2ludGVyLWV2ZW50czphdXRvfS52aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0uaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVufS5maXhlZHtwb3NpdGlvbjpmaXhlZH0uYWJzb2x1dGV7cG9zaXRpb246YWJzb2x1dGV9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS5pbnNldC0we2luc2V0OjB9Li10b3AtMXt0b3A6LS4yNXJlbX0uYm90dG9tLTB7Ym90dG9tOjB9LmJvdHRvbS04e2JvdHRvbToycmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC0we2xlZnQ6MH0ubGVmdC0yXFwuNXtsZWZ0Oi42MjVyZW19LmxlZnQtOHtsZWZ0OjJyZW19LnJpZ2h0LTB7cmlnaHQ6MH0ucmlnaHQtNHtyaWdodDoxcmVtfS50b3AtMHt0b3A6MH0udG9wLTFcXC8ye3RvcDo1MCV9LnRvcC00e3RvcDoxcmVtfS50b3AtZnVsbHt0b3A6MTAwJX0uei01MHt6LWluZGV4OjUwfS56LVxcWy0xXFxde3otaW5kZXg6LTF9LnotXFxbMjE0NzQ4MzY0M1xcXXt6LWluZGV4OjIxNDc0ODM2NDN9LnotXFxbMjE0NzQ4MzY0NFxcXXt6LWluZGV4OjIxNDc0ODM2NDR9LnotXFxbOTk5OTk5XFxde3otaW5kZXg6OTk5OTk5fS56LVxcWzk5OTlcXF17ei1pbmRleDo5OTk5fS4tbS1cXFsyNVxcJVxcXXttYXJnaW46LTI1JX0ubS0we21hcmdpbjowfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5tYi0xe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0xXFwuNXttYXJnaW4tYm90dG9tOi4zNzVyZW19Lm1iLTJ7bWFyZ2luLWJvdHRvbTouNXJlbX0ubWItNHttYXJnaW4tYm90dG9tOjFyZW19Lm1iLTZ7bWFyZ2luLWJvdHRvbToxLjVyZW19Lm1iLTh7bWFyZ2luLWJvdHRvbToycmVtfS5tYi1cXFs2cHhcXF17bWFyZ2luLWJvdHRvbTo2cHh9Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tci0xe21hcmdpbi1yaWdodDouMjVyZW19Lm10LTBcXC41e21hcmdpbi10b3A6LjEyNXJlbX0ubXQtMXttYXJnaW4tdG9wOi4yNXJlbX0ubXQtMTJ7bWFyZ2luLXRvcDozcmVtfS5tdC0ye21hcmdpbi10b3A6LjVyZW19Lm10LTR7bWFyZ2luLXRvcDoxcmVtfS5tdC02e21hcmdpbi10b3A6MS41cmVtfS5tdC04e21hcmdpbi10b3A6MnJlbX0ubGluZS1jbGFtcC0ye292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mn0uYmxvY2t7ZGlzcGxheTpibG9ja30uaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5pbmxpbmV7ZGlzcGxheTppbmxpbmV9LmZsZXh7ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4fS5ncmlke2Rpc3BsYXk6Z3JpZH0uaW5saW5lLWdyaWR7ZGlzcGxheTppbmxpbmUtZ3JpZH0uaGlkZGVue2Rpc3BsYXk6bm9uZX0uc2l6ZS01e3dpZHRoOjEuMjVyZW07aGVpZ2h0OjEuMjVyZW19LnNpemUtN3t3aWR0aDoxLjc1cmVtO2hlaWdodDoxLjc1cmVtfS5oLTBcXC41e2hlaWdodDouMTI1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTR7aGVpZ2h0OjFyZW19LmgtNDh7aGVpZ2h0OjEycmVtfS5oLTV7aGVpZ2h0OjEuMjVyZW19LmgtNntoZWlnaHQ6MS41cmVtfS5oLTh7aGVpZ2h0OjJyZW19LmgtXFxbMTUwXFwlXFxde2hlaWdodDoxNTAlfS5oLVxcWzE4cHhcXF17aGVpZ2h0OjE4cHh9LmgtYXV0b3toZWlnaHQ6YXV0b30uaC1mdWxse2hlaWdodDoxMDAlfS5tYXgtaC05NnttYXgtaGVpZ2h0OjI0cmVtfS5tYXgtaC1cXFs3MHZoXFxde21heC1oZWlnaHQ6NzB2aH0ubWF4LWgtXFxbODB2aFxcXXttYXgtaGVpZ2h0Ojgwdmh9Lm1pbi1oLTB7bWluLWhlaWdodDowcHh9Lm1pbi1oLXNjcmVlbnttaW4taGVpZ2h0OjEwMHZofS53LTJ7d2lkdGg6LjVyZW19LnctNHt3aWR0aDoxcmVtfS53LTV7d2lkdGg6MS4yNXJlbX0udy02e3dpZHRoOjEuNXJlbX0udy02NHt3aWR0aDoxNnJlbX0udy04e3dpZHRoOjJyZW19LnctODB7d2lkdGg6MjByZW19LnctXFxbMTUwXFwlXFxde3dpZHRoOjE1MCV9LnctXFxbMThweFxcXXt3aWR0aDoxOHB4fS53LVxcWzkwXFwlXFxde3dpZHRoOjkwJX0udy1mdWxse3dpZHRoOjEwMCV9LnctcHh7d2lkdGg6MXB4fS5taW4tdy0we21pbi13aWR0aDowcHh9Lm1heC13LTJ4bHttYXgtd2lkdGg6NDJyZW19Lm1heC13LTR4bHttYXgtd2lkdGg6NTZyZW19Lm1heC13LTd4bHttYXgtd2lkdGg6ODByZW19Lm1heC13LVxcWzI2MHB4XFxde21heC13aWR0aDoyNjBweH0ubWF4LXctXFxbNjAwcHhcXF17bWF4LXdpZHRoOjYwMHB4fS5mbGV4LTF7ZmxleDoxIDEgMCV9LmZsZXgtc2hyaW5rLTAsLnNocmluay0we2ZsZXgtc2hyaW5rOjB9Li10cmFuc2xhdGUteS0xXFwvMnstLXR3LXRyYW5zbGF0ZS15OiAtNTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXcodmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5yb3RhdGUtMTgwey0tdHctcm90YXRlOiAxODBkZWc7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LnRyYW5zZm9ybXt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3KHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX1Aa2V5ZnJhbWVzIHNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjpzcGluIDFzIGxpbmVhciBpbmZpbml0ZX0uY3Vyc29yLWV3LXJlc2l6ZXtjdXJzb3I6ZXctcmVzaXplfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0ucmVzaXplLW5vbmV7cmVzaXplOm5vbmV9LnJlc2l6ZS15e3Jlc2l6ZTp2ZXJ0aWNhbH0ucmVzaXple3Jlc2l6ZTpib3RofS5saXN0LWluc2lkZXtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZX0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5hcHBlYXJhbmNlLW5vbmV7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5ncmlkLWNvbHMtMXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9LmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0uZmxleC1jb2x7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mbGV4LXdyYXB7ZmxleC13cmFwOndyYXB9Lml0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lml0ZW1zLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZH0uaXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0uaXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNofS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0we2dhcDowcHh9LmdhcC0xe2dhcDouMjVyZW19LmdhcC0xXFwuNXtnYXA6LjM3NXJlbX0uZ2FwLTJ7Z2FwOi41cmVtfS5nYXAtMlxcLjV7Z2FwOi42MjVyZW19LmdhcC0ze2dhcDouNzVyZW19LmdhcC00e2dhcDoxcmVtfS5nYXAtNntnYXA6MS41cmVtfS5nYXAtOHtnYXA6MnJlbX0uZ2FwLXgtMnstbW96LWNvbHVtbi1nYXA6LjVyZW07Y29sdW1uLWdhcDouNXJlbX0uZ2FwLXktM3tyb3ctZ2FwOi43NXJlbX0uc3BhY2UteS0xPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTFcXC41Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguMzc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMzc1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktMj46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTogMDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktMlxcLjU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6IDA7bWFyZ2luLXRvcDpjYWxjKC42MjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC42MjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS02Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYygxLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKDEuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5kaXZpZGUteT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LWRpdmlkZS15LXJldmVyc2U6IDA7Ym9yZGVyLXRvcC13aWR0aDpjYWxjKDFweCAqIGNhbGMoMSAtIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKSk7Ym9yZGVyLWJvdHRvbS13aWR0aDpjYWxjKDFweCAqIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKX0ub3ZlcmZsb3ctaGlkZGVue292ZXJmbG93OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ud2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS50ZXh0LXdyYXB7dGV4dC13cmFwOndyYXB9LmJyZWFrLXdvcmRze292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0ucm91bmRlZHtib3JkZXItcmFkaXVzOi4yNXJlbX0ucm91bmRlZC0zeGx7Ym9yZGVyLXJhZGl1czoxLjVyZW19LnJvdW5kZWQtXFxbMTBweFxcXXtib3JkZXItcmFkaXVzOjEwcHh9LnJvdW5kZWQtXFxbMTJweFxcXXtib3JkZXItcmFkaXVzOjEycHh9LnJvdW5kZWQtXFxbMTRweFxcXXtib3JkZXItcmFkaXVzOjE0cHh9LnJvdW5kZWQtXFxbMjBweFxcXXtib3JkZXItcmFkaXVzOjIwcHh9LnJvdW5kZWQtXFxbOHB4XFxde2JvcmRlci1yYWRpdXM6OHB4fS5yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czouNXJlbX0ucm91bmRlZC14bHtib3JkZXItcmFkaXVzOi43NXJlbX0uYm9yZGVye2JvcmRlci13aWR0aDoxcHh9LmJvcmRlci0we2JvcmRlci13aWR0aDowcHh9LmJvcmRlci1cXFsxXFwuNXB4XFxde2JvcmRlci13aWR0aDoxLjVweH0uYm9yZGVyLWJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LmJvcmRlci10e2JvcmRlci10b3Atd2lkdGg6MXB4fS5ib3JkZXItbm9uZXtib3JkZXItc3R5bGU6bm9uZX0uYm9yZGVyLVxcW3ZhclxcKC0tYm9yZGVyLW1haW5cXClcXF17Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1tYWluKX0uYm9yZGVyLVxcW3ZhclxcKC0taWNvbi1zZWNvbmRhcnlcXClcXF17Ym9yZGVyLWNvbG9yOnZhcigtLWljb24tc2Vjb25kYXJ5KX0uYm9yZGVyLVxcW3ZhclxcKC0tdGV4dC10ZXJ0aWFyeVxcKVxcXXtib3JkZXItY29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSl9LmJvcmRlci1ibGFja1xcLzEwe2JvcmRlci1jb2xvcjojMDAwMDAwMWF9LmJvcmRlci1ibGFja1xcLzIwe2JvcmRlci1jb2xvcjojMDAwM30uYm9yZGVyLWdyYXktMjAwey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSl9LmJvcmRlci1ncmF5LTMwMHstLXR3LWJvcmRlci1vcGFjaXR5OiAxO2JvcmRlci1jb2xvcjpyZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpfS5ib3JkZXItdHJhbnNwYXJlbnR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5iZy1cXFtcXCMwMDgxZjJcXF17LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDAgMTI5IDI0MiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctXFxbXFwjZmRmNGUwXFxdey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTMgMjQ0IDIyNCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctXFxbXFwjZmZmZmZmMGZcXF17YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMGZ9LmJnLVxcW1xcI2ZmZmZmZjFhXFxde2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjFhfS5iZy1cXFtyZ2JcXCgzN1xcLDM3XFwsMzdcXClcXF17LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDM3IDM3IDM3IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1cXFtyZ2JhXFwoMjM5XFwsMTYyXFwsMVxcLDBcXC4xMlxcKVxcXXtiYWNrZ3JvdW5kLWNvbG9yOiNlZmEyMDExZn0uYmctXFxbdmFyXFwoLS1CdXR0b24tcHJpbWFyeS1icmFuZFxcKVxcXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLUJ1dHRvbi1wcmltYXJ5LWJyYW5kKX0uYmctXFxbdmFyXFwoLS1iYWNrZ3JvdW5kLW1lbnUtZ3JheVxcKVxcXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtbWVudS1ncmF5KX0uYmctXFxbdmFyXFwoLS1ib3JkZXItbWFpblxcKVxcXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJvcmRlci1tYWluKX0uYmctXFxbdmFyXFwoLS1maWxsLXRzcC13aGl0ZS1tYWluXFwpXFxde2JhY2tncm91bmQtY29sb3I6dmFyKC0tZmlsbC10c3Atd2hpdGUtbWFpbil9LmJnLVxcW3ZhclxcKC0tdGV4dC1wcmltYXJ5XFwpXFxde2JhY2tncm91bmQtY29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uYmctYmxhY2t7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDAgMCAwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1ibGFja1xcLzUwe2JhY2tncm91bmQtY29sb3I6IzAwMDAwMDgwfS5iZy1ncmF5LTEwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQzIDI0NCAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLWdyYXktMjAwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctZ3JheS0zMDB7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDIwOSAyMTMgMjE5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1ncmF5LTUwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctaW5kaWdvLTEwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI0IDIzMSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLWluZGlnby02MDB7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDc5IDcwIDIyOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctcHVycGxlLTUwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTAgMjQ1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctcHVycGxlLTYwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTQ3IDUxIDIzNCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctcmVkLTUwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTQgMjQyIDI0MiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctcmVkLTUwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5iZy13aGl0ZXstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLW9wYWNpdHktNzV7LS10dy1iZy1vcGFjaXR5OiAuNzV9LmJnLWdyYWRpZW50LXRvLWJye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCx2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpfS5iZy1ncmFkaWVudC10by1ye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSl9LmZyb20tYmx1ZS01MHstLXR3LWdyYWRpZW50LWZyb206ICNlZmY2ZmYgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7LS10dy1ncmFkaWVudC10bzogcmdiKDIzOSAyNDYgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pOy0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byl9LmZyb20tcHVycGxlLTEwMHstLXR3LWdyYWRpZW50LWZyb206ICNmM2U4ZmYgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7LS10dy1ncmFkaWVudC10bzogcmdiKDI0MyAyMzIgMjU1IC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pOy0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCB2YXIoLS10dy1ncmFkaWVudC10byl9LmZyb20tcHVycGxlLTYwMHstLXR3LWdyYWRpZW50LWZyb206ICM5MzMzZWEgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7LS10dy1ncmFkaWVudC10bzogcmdiKDE0NyA1MSAyMzQgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7LS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKX0udG8tYmx1ZS0xMDB7LS10dy1ncmFkaWVudC10bzogI2RiZWFmZSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbil9LnRvLWJsdWUtNjAwey0tdHctZ3JhZGllbnQtdG86ICMyNTYzZWIgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pfS50by1pbmRpZ28tMTAwey0tdHctZ3JhZGllbnQtdG86ICNlMGU3ZmYgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pfS5vYmplY3QtY29udGFpbnstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5vYmplY3QtY292ZXJ7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS5wLTB7cGFkZGluZzowfS5wLTFcXC41e3BhZGRpbmc6LjM3NXJlbX0ucC0ye3BhZGRpbmc6LjVyZW19LnAtM3twYWRkaW5nOi43NXJlbX0ucC00e3BhZGRpbmc6MXJlbX0ucC02e3BhZGRpbmc6MS41cmVtfS5wLTh7cGFkZGluZzoycmVtfS5weC0wXFwuNXtwYWRkaW5nLWxlZnQ6LjEyNXJlbTtwYWRkaW5nLXJpZ2h0Oi4xMjVyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMVxcLjV7cGFkZGluZy1sZWZ0Oi4zNzVyZW07cGFkZGluZy1yaWdodDouMzc1cmVtfS5weC0ye3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5weC0yXFwuNXtwYWRkaW5nLWxlZnQ6LjYyNXJlbTtwYWRkaW5nLXJpZ2h0Oi42MjVyZW19LnB4LTN7cGFkZGluZy1sZWZ0Oi43NXJlbTtwYWRkaW5nLXJpZ2h0Oi43NXJlbX0ucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTV7cGFkZGluZy1sZWZ0OjEuMjVyZW07cGFkZGluZy1yaWdodDoxLjI1cmVtfS5weC02e3BhZGRpbmctbGVmdDoxLjVyZW07cGFkZGluZy1yaWdodDoxLjVyZW19LnB4LTh7cGFkZGluZy1sZWZ0OjJyZW07cGFkZGluZy1yaWdodDoycmVtfS5weS0we3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MH0ucHktMFxcLjV7cGFkZGluZy10b3A6LjEyNXJlbTtwYWRkaW5nLWJvdHRvbTouMTI1cmVtfS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnB5LTFcXC41e3BhZGRpbmctdG9wOi4zNzVyZW07cGFkZGluZy1ib3R0b206LjM3NXJlbX0ucHktMntwYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLWJvdHRvbTouNXJlbX0ucHktMlxcLjV7cGFkZGluZy10b3A6LjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5weS0ze3BhZGRpbmctdG9wOi43NXJlbTtwYWRkaW5nLWJvdHRvbTouNzVyZW19LnB5LTR7cGFkZGluZy10b3A6MXJlbTtwYWRkaW5nLWJvdHRvbToxcmVtfS5weS04e3BhZGRpbmctdG9wOjJyZW07cGFkZGluZy1ib3R0b206MnJlbX0ucGItMHtwYWRkaW5nLWJvdHRvbTowfS5wYi0xXFwuNXtwYWRkaW5nLWJvdHRvbTouMzc1cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wYi04e3BhZGRpbmctYm90dG9tOjJyZW19LnBsLTF7cGFkZGluZy1sZWZ0Oi4yNXJlbX0ucGwtMTB7cGFkZGluZy1sZWZ0OjIuNXJlbX0ucGwtN3twYWRkaW5nLWxlZnQ6MS43NXJlbX0ucHItNHtwYWRkaW5nLXJpZ2h0OjFyZW19LnB0LTB7cGFkZGluZy10b3A6MH0ucHQtMFxcLjV7cGFkZGluZy10b3A6LjEyNXJlbX0ucHQtMXtwYWRkaW5nLXRvcDouMjVyZW19LnB0LTJcXC41e3BhZGRpbmctdG9wOi42MjVyZW19LnB0LTN7cGFkZGluZy10b3A6Ljc1cmVtfS5wdC04e3BhZGRpbmctdG9wOjJyZW19LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5mb250LW1vbm97Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlfS50ZXh0LTJ4bHtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjJyZW19LnRleHQtM3hse2ZvbnQtc2l6ZToxLjg3NXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtfS50ZXh0LWJhc2V7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MS41cmVtfS50ZXh0LWxne2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtfS50ZXh0LXNte2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQteGx7Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbWVkaXVte2ZvbnQtd2VpZ2h0OjUwMH0uZm9udC1ub3JtYWx7Zm9udC13ZWlnaHQ6NDAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0udGFidWxhci1udW1zey0tdHctbnVtZXJpYy1zcGFjaW5nOiB0YWJ1bGFyLW51bXM7Zm9udC12YXJpYW50LW51bWVyaWM6dmFyKC0tdHctb3JkaW5hbCkgdmFyKC0tdHctc2xhc2hlZC16ZXJvKSB2YXIoLS10dy1udW1lcmljLWZpZ3VyZSkgdmFyKC0tdHctbnVtZXJpYy1zcGFjaW5nKSB2YXIoLS10dy1udW1lcmljLWZyYWN0aW9uKX0ubGVhZGluZy01e2xpbmUtaGVpZ2h0OjEuMjVyZW19LmxlYWRpbmctbm9uZXtsaW5lLWhlaWdodDoxfS5sZWFkaW5nLXJlbGF4ZWR7bGluZS1oZWlnaHQ6MS42MjV9LmxlYWRpbmctc251Z3tsaW5lLWhlaWdodDoxLjM3NX0udGV4dC1cXFt2YXJcXCgtLWJhY2tncm91bmQtY2FyZFxcKVxcXXtjb2xvcjp2YXIoLS1iYWNrZ3JvdW5kLWNhcmQpfS50ZXh0LVxcW3ZhclxcKC0taWNvbi1wcmltYXJ5XFwsXFwjMzQzMjJEXFwpXFxde2NvbG9yOnZhcigtLWljb24tcHJpbWFyeSwjMzQzMjJEKX0udGV4dC1cXFt2YXJcXCgtLWljb24tdGVydGlhcnlcXClcXF17Y29sb3I6dmFyKC0taWNvbi10ZXJ0aWFyeSl9LnRleHQtXFxbdmFyXFwoLS10ZXh0LWRpc2FibGVcXClcXF17Y29sb3I6dmFyKC0tdGV4dC1kaXNhYmxlKX0udGV4dC1cXFt2YXJcXCgtLXRleHQtcHJpbWFyeVxcKVxcXXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS50ZXh0LVxcW3ZhclxcKC0tdGV4dC1wcmltYXJ5XFwsXFwjMzQzMjJEXFwpXFxde2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSwjMzQzMjJEKX0udGV4dC1cXFt2YXJcXCgtLXRleHQtdGVydGlhcnlcXClcXF17Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSl9LnRleHQtXFxbdmFyXFwoLS10ZXh0LXdoaXRlXFwpXFxde2NvbG9yOnZhcigtLXRleHQtd2hpdGUpfS50ZXh0LVxcW3ZhclxcKC0tdGV4dC13aGl0ZS10c3BcXClcXF17Y29sb3I6dmFyKC0tdGV4dC13aGl0ZS10c3ApfS50ZXh0LWJsYWNrey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigwIDAgMCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LWJsdWUtNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigzNyA5OSAyMzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmF5LTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmF5LTUwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTA3IDExNCAxMjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmF5LTYwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNzUgODUgOTkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmF5LTcwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNTUgNjUgODEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmF5LTgwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMzEgNDEgNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1pbmRpZ28tNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig3OSA3MCAyMjkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1pbmRpZ28tNzAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig2NyA1NiAyMDIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1wdXJwbGUtMTAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyNDMgMjMyIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LXB1cnBsZS02MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1yZWQtNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyMjAgMzggMzggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1yZWQtODAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxNTMgMjcgMjcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC10cmFuc3BhcmVudHtjb2xvcjp0cmFuc3BhcmVudH0udGV4dC13aGl0ZXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0ub3ZlcmxpbmV7dGV4dC1kZWNvcmF0aW9uLWxpbmU6b3ZlcmxpbmV9LmxpbmUtdGhyb3VnaHt0ZXh0LWRlY29yYXRpb24tbGluZTpsaW5lLXRocm91Z2h9Lm9wYWNpdHktMHtvcGFjaXR5OjB9Lm9wYWNpdHktMjV7b3BhY2l0eTouMjV9Lm9wYWNpdHktNTB7b3BhY2l0eTouNX0ub3BhY2l0eS03NXtvcGFjaXR5Oi43NX0uc2hhZG93ey0tdHctc2hhZG93OiAwIDFweCAzcHggMCByZ2IoMCAwIDAgLyAuMSksIDAgMXB4IDJweCAtMXB4IHJnYigwIDAgMCAvIC4xKTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1cXFswXzRweF8xMnB4X3JnYmFcXCgwXFwsMFxcLDBcXCwwXFwuMTVcXClcXF17LS10dy1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwuMTUpOy0tdHctc2hhZG93LWNvbG9yZWQ6IDAgNHB4IDEycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5zaGFkb3ctXFxbMF80cHhfMjRweF9yZ2JhXFwoMFxcLDBcXCwwXFwsMFxcLjE1XFwpXFxdey0tdHctc2hhZG93OiAwIDRweCAyNHB4IHJnYmEoMCwwLDAsLjE1KTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDRweCAyNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LVxcWzBweF84cHhfMzJweF8wcHhfdmFyXFwoLS1zaGFkb3ctU1xcKVxcXXstLXR3LXNoYWRvdzogMHB4IDhweCAzMnB4IDBweCB2YXIoLS1zaGFkb3ctUyk7LS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDhweCAzMnB4IDBweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1sZ3stLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2IoMCAwIDAgLyAuMSksIDAgNHB4IDZweCAtNHB4IHJnYigwIDAgMCAvIC4xKTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LW1key0tdHctc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2IoMCAwIDAgLyAuMSksIDAgMnB4IDRweCAtMnB4IHJnYigwIDAgMCAvIC4xKTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDRweCA2cHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDJweCA0cHggLTJweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1zbXstLXR3LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gLjA1KTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDFweCAycHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy14bHstLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAuMSksIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAuMSk7LS10dy1zaGFkb3ctY29sb3JlZDogMCAyMHB4IDI1cHggLTVweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDhweCAxMHB4IC02cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5vdXRsaW5lLW5vbmV7b3V0bGluZToycHggc29saWQgdHJhbnNwYXJlbnQ7b3V0bGluZS1vZmZzZXQ6MnB4fS5ibHVyey0tdHctYmx1cjogYmx1cig4cHgpO2ZpbHRlcjp2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpfS5maWx0ZXJ7ZmlsdGVyOnZhcigtLXR3LWJsdXIpIHZhcigtLXR3LWJyaWdodG5lc3MpIHZhcigtLXR3LWNvbnRyYXN0KSB2YXIoLS10dy1ncmF5c2NhbGUpIHZhcigtLXR3LWh1ZS1yb3RhdGUpIHZhcigtLXR3LWludmVydCkgdmFyKC0tdHctc2F0dXJhdGUpIHZhcigtLXR3LXNlcGlhKSB2YXIoLS10dy1kcm9wLXNoYWRvdyl9LnRyYW5zaXRpb257dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2Usb3BhY2l0eSxib3gtc2hhZG93LHRyYW5zZm9ybSxmaWx0ZXIsLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2Usb3BhY2l0eSxib3gtc2hhZG93LHRyYW5zZm9ybSxmaWx0ZXIsYmFja2Ryb3AtZmlsdGVyO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlLG9wYWNpdHksYm94LXNoYWRvdyx0cmFuc2Zvcm0sZmlsdGVyLGJhY2tkcm9wLWZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LnRyYW5zaXRpb24tYWxse3RyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30udHJhbnNpdGlvbi1jb2xvcnN7dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS50cmFuc2l0aW9uLXNoYWRvd3t0cmFuc2l0aW9uLXByb3BlcnR5OmJveC1zaGFkb3c7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LmR1cmF0aW9uLTIwMHt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yc30uZWFzZS1pbi1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LmVhc2Utb3V0e3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLDAsLjIsMSl9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7b3V0bGluZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH0jbWFudXMtcHJldmlld2VyLWNvbnRlbnQtcm9vdHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSBWYXJpYWJsZSBEaXNwbGF5LFNlZ29lIFVJLEhlbHZldGljYSwiQXBwbGUgQ29sb3IgRW1vamkiLEFyaWFsLHNhbnMtc2VyaWYsIlNlZ29lIFVJIEVtb2ppIixTZWdvZSBVSSBTeW1ib2x9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyfSo6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6I2I5YjliN306Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQtY29sb3I6Izg1ODQ4MX06Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9KntzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9Kjpob3ZlcntzY3JvbGxiYXItY29sb3I6I2I5YjliNyB0cmFuc3BhcmVudH1Aa2V5ZnJhbWVzIGZhZGVJblVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMnB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QGtleWZyYW1lcyBmYWRlSW5TY2FsZXswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45Mil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX19LnBsYWNlaG9sZGVyXFw6dGV4dC1cXFt2YXJcXCgtLXRleHQtZGlzYWJsZVxcKVxcXTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LWRpc2FibGUpfS5wbGFjZWhvbGRlclxcOnRleHQtXFxbdmFyXFwoLS10ZXh0LWRpc2FibGVcXClcXF06OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXRleHQtZGlzYWJsZSl9Lmxhc3RcXDpib3JkZXItYi0wOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS13aWR0aDowcHh9LmhvdmVyXFw6YmctXFxbXFwjZmZmZmZmMGZcXF06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMGZ9LmhvdmVyXFw6YmctXFxbdmFyXFwoLS1maWxsLXRzcC13aGl0ZS1saWdodFxcKVxcXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZpbGwtdHNwLXdoaXRlLWxpZ2h0KX0uaG92ZXJcXDpiZy1cXFt2YXJcXCgtLWZpbGwtdHNwLXdoaXRlLW1haW5cXClcXF06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1maWxsLXRzcC13aGl0ZS1tYWluKX0uaG92ZXJcXDpiZy1ncmF5LTEwMDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQzIDI0NCAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6YmctZ3JheS0yMDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDIyOSAyMzEgMjM1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5ob3ZlclxcOmJnLWdyYXktMzAwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcXDpiZy1ncmF5LTUwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcXDpiZy1ncmF5LTgwMDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMzEgNDEgNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6YmctaW5kaWdvLTcwMDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjcgNTYgMjAyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5ob3ZlclxcOmJnLXB1cnBsZS03MDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDEyNiAzNCAyMDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6YmctcmVkLTEwMDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU0IDIyNiAyMjYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6YmctcmVkLTUwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTQgMjQyIDI0MiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcXDp0ZXh0LVxcW3ZhclxcKC0tdGV4dC1zZWNvbmRhcnlcXClcXF06aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5ob3ZlclxcOnRleHQtZ3JheS02MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6dGV4dC1pbmRpZ28tNjAwOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig3OSA3MCAyMjkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uaG92ZXJcXDp0ZXh0LWluZGlnby03MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDY3IDU2IDIwMiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5ob3ZlclxcOnRleHQtcHVycGxlLTcwMDpob3ZlcnstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTI2IDM0IDIwNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5ob3ZlclxcOnRleHQtcmVkLTUwMDpob3ZlcnstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmhvdmVyXFw6dW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0uaG92ZXJcXDpvcGFjaXR5LTgwOmhvdmVye29wYWNpdHk6Ljh9LmhvdmVyXFw6b3BhY2l0eS05MDpob3ZlcntvcGFjaXR5Oi45fS5ob3ZlclxcOnNoYWRvdy14bDpob3ZlcnstLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAuMSksIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAuMSk7LS10dy1zaGFkb3ctY29sb3JlZDogMCAyMHB4IDI1cHggLTVweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDhweCAxMHB4IC02cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5mb2N1c1xcOmJnLVxcW1xcI2ZmZmZmZjBmXFxdOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjBmfS5mb2N1c1xcOmJnLVxcW3ZhclxcKC0tZmlsbC10c3Atd2hpdGUtbWFpblxcKVxcXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pfS5mb2N1c1xcOnRleHQtXFxbdmFyXFwoLS10ZXh0LXNlY29uZGFyeVxcKVxcXTpmb2N1c3tjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LmZvY3VzXFw6b3BhY2l0eS05MDpmb2N1c3tvcGFjaXR5Oi45fS5mb2N1c1xcOm91dGxpbmUtbm9uZTpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCB0cmFuc3BhcmVudDtvdXRsaW5lLW9mZnNldDoycHh9LmZvY3VzXFw6cmluZy0yOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKX0uZm9jdXNcXDpyaW5nLVxcWzFweFxcXTpmb2N1c3stLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTstLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDFweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCl9LmZvY3VzXFw6cmluZy1pbnNldDpmb2N1c3stLXR3LXJpbmctaW5zZXQ6IGluc2V0fS5mb2N1c1xcOnJpbmctXFxbdmFyXFwoLS1ib3JkZXItZGFya1xcKVxcXTpmb2N1c3stLXR3LXJpbmctY29sb3I6IHZhcigtLWJvcmRlci1kYXJrKX0uZm9jdXNcXDpyaW5nLXB1cnBsZS01MDA6Zm9jdXN7LS10dy1yaW5nLW9wYWNpdHk6IDE7LS10dy1yaW5nLWNvbG9yOiByZ2IoMTY4IDg1IDI0NyAvIHZhcigtLXR3LXJpbmctb3BhY2l0eSwgMSkpfS5hY3RpdmVcXDpvcGFjaXR5LTgwOmFjdGl2ZXtvcGFjaXR5Oi44fS5hY3RpdmVcXDpvcGFjaXR5LTkwOmFjdGl2ZXtvcGFjaXR5Oi45fS5kaXNhYmxlZFxcOmN1cnNvci1ub3QtYWxsb3dlZDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmRpc2FibGVkXFw6b3BhY2l0eS01MDpkaXNhYmxlZHtvcGFjaXR5Oi41fS5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDpvcGFjaXR5LTEwMHtvcGFjaXR5OjF9QG1lZGlhIChtaW4td2lkdGg6IDQ3NXB4KXsueHNcXDpibG9ja3tkaXNwbGF5OmJsb2NrfS54c1xcOnctYXV0b3t3aWR0aDphdXRvfS54c1xcOmZsZXgtbm9uZXtmbGV4Om5vbmV9LnhzXFw6ZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS54c1xcOml0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9LnhzXFw6cC02e3BhZGRpbmc6MS41cmVtfS54c1xcOnB4LTV7cGFkZGluZy1sZWZ0OjEuMjVyZW07cGFkZGluZy1yaWdodDoxLjI1cmVtfS54c1xcOnB0LTR7cGFkZGluZy10b3A6MXJlbX19QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KXsubWRcXDpmbGV4e2Rpc3BsYXk6ZmxleH0ubWRcXDp3LTFcXC8ze3dpZHRoOjMzLjMzMzMzMyV9Lm1kXFw6dy0yXFwvM3t3aWR0aDo2Ni42NjY2NjclfS5tZFxcOmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0ubWRcXDpncmlkLWNvbHMtNHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9fUBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpey5sZ1xcOmdyaWQtY29scy0ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKX19LlxcW1xcJlxcOlxcOi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b25cXF1cXDphcHBlYXJhbmNlLW5vbmU6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5cXFtcXCZcXDpcXDotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uXFxdXFw6YXBwZWFyYW5jZS1ub25lOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0nfSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSkpfSkoKTsKPC9zY3JpcHQ+CgogICAgPGRpdiBpZD0icm9vdCI+PHNlY3Rpb24gYXJpYS1sYWJlbD0iTm90aWZpY2F0aW9ucyBhbHQrVCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIHRleHQiIGFyaWEtYXRvbWljPSJmYWxzZSI+PC9zZWN0aW9uPjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4Ojg3IiBjbGFzcz0ibWluLWgtc2NyZWVuIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tdGVhbC01MCB2aWEtd2hpdGUgdG8tb3JhbmdlLTUwIHB5LTgiPjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4Ojg4IiBjbGFzcz0iY29udGFpbmVyIG1heC13LTR4bCI+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6OTAiIGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi04Ij48aDEgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjkxIiBjbGFzcz0idGV4dC00eGwgZm9udC1ib2xkIHRleHQtdGVhbC03MDAgbWItMiI+8J+nrCBBdmFsaWHDp8OjbyBPcnRvbW9sZWN1bGFyPC9oMT48cCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6OTQiIGNsYXNzPSJ0ZXh0LW11dGVkLWZvcmVncm91bmQiPkFuw6FsaXNlIEZ1bmNpb25hbCBkZSBEacOhdGVzZXMgTWluZXJhaXM8L3A+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTAwIiBjbGFzcz0ibWItOCI+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTAxIiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gbWItMiI+PHNwYW4gZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjEwMiIgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC10ZWFsLTcwMCI+RXRhcGEgMSBkZSA2PC9zcGFuPjxzcGFuIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxMDUiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCI+RGFkb3MgUGVzc29haXM8L3NwYW4+PC9kaXY+PGRpdiBhcmlhLXZhbHVlbWF4PSIxMDAiIGFyaWEtdmFsdWVtaW49IjAiIHJvbGU9InByb2dyZXNzYmFyIiBkYXRhLXN0YXRlPSJpbmRldGVybWluYXRlIiBkYXRhLW1heD0iMTAwIiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTA5IiBkYXRhLXNsb3Q9InByb2dyZXNzIiBjbGFzcz0iYmctcHJpbWFyeS8yMCByZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBoLTIiPjxkaXYgZGF0YS1zdGF0ZT0iaW5kZXRlcm1pbmF0ZSIgZGF0YS1tYXg9IjEwMCIgZGF0YS1sb2M9ImNsaWVudC9zcmMvY29tcG9uZW50cy91aS9wcm9ncmVzcy50c3g6MjAiIGRhdGEtc2xvdD0icHJvZ3Jlc3MtaW5kaWNhdG9yIiBjbGFzcz0iYmctcHJpbWFyeSBoLWZ1bGwgdy1mdWxsIGZsZXgtMSB0cmFuc2l0aW9uLWFsbCIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODMuMzMzMyUpOyI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTEzIiBkYXRhLXNsb3Q9ImNhcmQiIGNsYXNzPSJiZy1jYXJkIHRleHQtY2FyZC1mb3JlZ3JvdW5kIGZsZXggZmxleC1jb2wgZ2FwLTYgcm91bmRlZC14bCBib3JkZXIgcHktNiBzaGFkb3ctbGcgYm9yZGVyLXRlYWwtMTAwIj48ZGl2IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxMTQiIGRhdGEtc2xvdD0iY2FyZC1oZWFkZXIiIGNsYXNzPSJAY29udGFpbmVyL2NhcmQtaGVhZGVyIGdyaWQgYXV0by1yb3dzLW1pbiBncmlkLXJvd3MtW2F1dG9fYXV0b10gaXRlbXMtc3RhcnQgZ2FwLTIgcHgtNiBoYXMtZGF0YS1bc2xvdD1jYXJkLWFjdGlvbl06Z3JpZC1jb2xzLVsxZnJfYXV0b10gWy5ib3JkZXItYl06cGItNiI+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTE1IiBkYXRhLXNsb3Q9ImNhcmQtdGl0bGUiIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtMnhsIHRleHQtdGVhbC03MDAiPkRhZG9zIFBlc3NvYWlzPC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTE4IiBkYXRhLXNsb3Q9ImNhcmQtZGVzY3JpcHRpb24iIGNsYXNzPSJ0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1zbSI+UHJlZW5jaGEgb3MgZGFkb3MgcGVzc29haXMgZG8gcGFjaWVudGU8L2Rpdj48L2Rpdj48ZGl2IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxMjQiIGRhdGEtc2xvdD0iY2FyZC1jb250ZW50IiBjbGFzcz0icHgtNiI+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTI2IiBjbGFzcz0ic3BhY2UteS00Ij48ZGl2IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxMjciIGNsYXNzPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00Ij48ZGl2IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxMjgiIGNsYXNzPSJzcGFjZS15LTIiPjxsYWJlbCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTI5IiBkYXRhLXNsb3Q9ImxhYmVsIiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSBsZWFkaW5nLW5vbmUgZm9udC1tZWRpdW0gc2VsZWN0LW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06cG9pbnRlci1ldmVudHMtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpvcGFjaXR5LTUwIHBlZXItZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIHBlZXItZGlzYWJsZWQ6b3BhY2l0eS01MCIgZm9yPSJuYW1lIj5Ob21lIENvbXBsZXRvICo8L2xhYmVsPjxpbnB1dCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTMwIiBkYXRhLXNsb3Q9ImlucHV0IiBjbGFzcz0iZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHNlbGVjdGlvbjpiZy1wcmltYXJ5IHNlbGVjdGlvbjp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBkYXJrOmJnLWlucHV0LzMwIGJvcmRlci1pbnB1dCBoLTkgdy1mdWxsIG1pbi13LTAgcm91bmRlZC1tZCBib3JkZXIgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtYmFzZSBzaGFkb3cteHMgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gb3V0bGluZS1ub25lIGZpbGU6aW5saW5lLWZsZXggZmlsZTpoLTcgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbSBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS8yMCBkYXJrOmFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzQwIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUiIGlkPSJuYW1lIiBwbGFjZWhvbGRlcj0iTm9tZSBkbyBwYWNpZW50ZSIgdmFsdWU9IiI+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTM3IiBjbGFzcz0ic3BhY2UteS0yIj48bGFiZWwgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjEzOCIgZGF0YS1zbG90PSJsYWJlbCIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gbGVhZGluZy1ub25lIGZvbnQtbWVkaXVtIHNlbGVjdC1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOnBvaW50ZXItZXZlbnRzLW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06b3BhY2l0eS01MCBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNTAiIGZvcj0iYWdlIj5JZGFkZSAqPC9sYWJlbD48aW5wdXQgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjEzOSIgdHlwZT0ibnVtYmVyIiBkYXRhLXNsb3Q9ImlucHV0IiBjbGFzcz0iZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHNlbGVjdGlvbjpiZy1wcmltYXJ5IHNlbGVjdGlvbjp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBkYXJrOmJnLWlucHV0LzMwIGJvcmRlci1pbnB1dCBoLTkgdy1mdWxsIG1pbi13LTAgcm91bmRlZC1tZCBib3JkZXIgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtYmFzZSBzaGFkb3cteHMgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gb3V0bGluZS1ub25lIGZpbGU6aW5saW5lLWZsZXggZmlsZTpoLTcgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbSBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS8yMCBkYXJrOmFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzQwIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUiIGlkPSJhZ2UiIHBsYWNlaG9sZGVyPSJFeDogMzUiIHZhbHVlPSIiPjwvZGl2PjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE0NyIgY2xhc3M9InNwYWNlLXktMiI+PGxhYmVsIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxNDgiIGRhdGEtc2xvdD0ibGFiZWwiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGxlYWRpbmctbm9uZSBmb250LW1lZGl1bSBzZWxlY3Qtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpwb2ludGVyLWV2ZW50cy1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOm9wYWNpdHktNTAgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTUwIiBmb3I9IndlaWdodCI+UGVzbyAoa2cpPC9sYWJlbD48aW5wdXQgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE0OSIgZGF0YS1zbG90PSJpbnB1dCIgY2xhc3M9ImZpbGU6dGV4dC1mb3JlZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzZWxlY3Rpb246YmctcHJpbWFyeSBzZWxlY3Rpb246dGV4dC1wcmltYXJ5LWZvcmVncm91bmQgZGFyazpiZy1pbnB1dC8zMCBib3JkZXItaW5wdXQgaC05IHctZnVsbCBtaW4tdy0wIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LWJhc2Ugc2hhZG93LXhzIHRyYW5zaXRpb24tW2NvbG9yLGJveC1zaGFkb3ddIG91dGxpbmUtbm9uZSBmaWxlOmlubGluZS1mbGV4IGZpbGU6aC03IGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwIG1kOnRleHQtc20gZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvMjAgZGFyazphcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS80MCBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIiBpZD0id2VpZ2h0IiBwbGFjZWhvbGRlcj0iRXg6IDcwIiB2YWx1ZT0iIj48L2Rpdj48ZGl2IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxNTYiIGNsYXNzPSJzcGFjZS15LTIiPjxsYWJlbCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTU3IiBkYXRhLXNsb3Q9ImxhYmVsIiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSBsZWFkaW5nLW5vbmUgZm9udC1tZWRpdW0gc2VsZWN0LW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06cG9pbnRlci1ldmVudHMtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpvcGFjaXR5LTUwIHBlZXItZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIHBlZXItZGlzYWJsZWQ6b3BhY2l0eS01MCIgZm9yPSJoZWlnaHQiPkFsdHVyYSAoY20pPC9sYWJlbD48aW5wdXQgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE1OCIgZGF0YS1zbG90PSJpbnB1dCIgY2xhc3M9ImZpbGU6dGV4dC1mb3JlZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzZWxlY3Rpb246YmctcHJpbWFyeSBzZWxlY3Rpb246dGV4dC1wcmltYXJ5LWZvcmVncm91bmQgZGFyazpiZy1pbnB1dC8zMCBib3JkZXItaW5wdXQgaC05IHctZnVsbCBtaW4tdy0wIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LWJhc2Ugc2hhZG93LXhzIHRyYW5zaXRpb24tW2NvbG9yLGJveC1zaGFkb3ddIG91dGxpbmUtbm9uZSBmaWxlOmlubGluZS1mbGV4IGZpbGU6aC03IGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwIG1kOnRleHQtc20gZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvMjAgZGFyazphcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS80MCBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIiBpZD0iaGVpZ2h0IiBwbGFjZWhvbGRlcj0iRXg6IDE3MCIgdmFsdWU9IiI+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTY1IiBjbGFzcz0ic3BhY2UteS0yIj48bGFiZWwgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE2NiIgZGF0YS1zbG90PSJsYWJlbCIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gbGVhZGluZy1ub25lIGZvbnQtbWVkaXVtIHNlbGVjdC1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOnBvaW50ZXItZXZlbnRzLW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06b3BhY2l0eS01MCBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNTAiIGZvcj0iYmxvb2RUeXBlIj5UaXBvIFNhbmd1w61uZW88L2xhYmVsPjxpbnB1dCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTY3IiBkYXRhLXNsb3Q9ImlucHV0IiBjbGFzcz0iZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHNlbGVjdGlvbjpiZy1wcmltYXJ5IHNlbGVjdGlvbjp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBkYXJrOmJnLWlucHV0LzMwIGJvcmRlci1pbnB1dCBoLTkgdy1mdWxsIG1pbi13LTAgcm91bmRlZC1tZCBib3JkZXIgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtYmFzZSBzaGFkb3cteHMgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gb3V0bGluZS1ub25lIGZpbGU6aW5saW5lLWZsZXggZmlsZTpoLTcgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbSBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS8yMCBkYXJrOmFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzQwIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUiIGlkPSJibG9vZFR5cGUiIHBsYWNlaG9sZGVyPSJFeDogTysiIHZhbHVlPSIiPjwvZGl2PjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE3NCIgY2xhc3M9InNwYWNlLXktMiI+PGxhYmVsIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxNzUiIGRhdGEtc2xvdD0ibGFiZWwiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGxlYWRpbmctbm9uZSBmb250LW1lZGl1bSBzZWxlY3Qtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpwb2ludGVyLWV2ZW50cy1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOm9wYWNpdHktNTAgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTUwIiBmb3I9InBob25lIj5UZWxlZm9uZTwvbGFiZWw+PGlucHV0IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxNzYiIGRhdGEtc2xvdD0iaW5wdXQiIGNsYXNzPSJmaWxlOnRleHQtZm9yZWdyb3VuZCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgc2VsZWN0aW9uOmJnLXByaW1hcnkgc2VsZWN0aW9uOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGRhcms6YmctaW5wdXQvMzAgYm9yZGVyLWlucHV0IGgtOSB3LWZ1bGwgbWluLXctMCByb3VuZGVkLW1kIGJvcmRlciBiZy10cmFuc3BhcmVudCBweC0zIHB5LTEgdGV4dC1iYXNlIHNoYWRvdy14cyB0cmFuc2l0aW9uLVtjb2xvcixib3gtc2hhZG93XSBvdXRsaW5lLW5vbmUgZmlsZTppbmxpbmUtZmxleCBmaWxlOmgtNyBmaWxlOmJvcmRlci0wIGZpbGU6YmctdHJhbnNwYXJlbnQgZmlsZTp0ZXh0LXNtIGZpbGU6Zm9udC1tZWRpdW0gZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBtZDp0ZXh0LXNtIGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcvNTAgZm9jdXMtdmlzaWJsZTpyaW5nLVszcHhdIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzIwIGRhcms6YXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvNDAgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSIgaWQ9InBob25lIiBwbGFjZWhvbGRlcj0iRXg6ICgyMSkgOTg3NjUtNDMyMSIgdmFsdWU9IiI+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTgzIiBjbGFzcz0ic3BhY2UteS0yIj48bGFiZWwgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE4NCIgZGF0YS1zbG90PSJsYWJlbCIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gbGVhZGluZy1ub25lIGZvbnQtbWVkaXVtIHNlbGVjdC1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOnBvaW50ZXItZXZlbnRzLW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06b3BhY2l0eS01MCBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNTAiIGZvcj0id2hhdHNhcHAiPldoYXRzQXBwICo8L2xhYmVsPjxpbnB1dCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTg1IiBkYXRhLXNsb3Q9ImlucHV0IiBjbGFzcz0iZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHNlbGVjdGlvbjpiZy1wcmltYXJ5IHNlbGVjdGlvbjp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBkYXJrOmJnLWlucHV0LzMwIGJvcmRlci1pbnB1dCBoLTkgdy1mdWxsIG1pbi13LTAgcm91bmRlZC1tZCBib3JkZXIgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtYmFzZSBzaGFkb3cteHMgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gb3V0bGluZS1ub25lIGZpbGU6aW5saW5lLWZsZXggZmlsZTpoLTcgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbSBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS8yMCBkYXJrOmFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzQwIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUiIGlkPSJ3aGF0c2FwcCIgcGxhY2Vob2xkZXI9IkV4OiAoMjEpIDk4NzY1LTQzMjEiIHZhbHVlPSIiPjwvZGl2PjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjE5MiIgY2xhc3M9InNwYWNlLXktMiI+PGxhYmVsIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoxOTMiIGRhdGEtc2xvdD0ibGFiZWwiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGxlYWRpbmctbm9uZSBmb250LW1lZGl1bSBzZWxlY3Qtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpwb2ludGVyLWV2ZW50cy1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOm9wYWNpdHktNTAgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTUwIiBmb3I9ImVtYWlsIj5FLW1haWw8L2xhYmVsPjxpbnB1dCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MTk0IiB0eXBlPSJlbWFpbCIgZGF0YS1zbG90PSJpbnB1dCIgY2xhc3M9ImZpbGU6dGV4dC1mb3JlZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzZWxlY3Rpb246YmctcHJpbWFyeSBzZWxlY3Rpb246dGV4dC1wcmltYXJ5LWZvcmVncm91bmQgZGFyazpiZy1pbnB1dC8zMCBib3JkZXItaW5wdXQgaC05IHctZnVsbCBtaW4tdy0wIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LWJhc2Ugc2hhZG93LXhzIHRyYW5zaXRpb24tW2NvbG9yLGJveC1zaGFkb3ddIG91dGxpbmUtbm9uZSBmaWxlOmlubGluZS1mbGV4IGZpbGU6aC03IGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwIG1kOnRleHQtc20gZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvMjAgZGFyazphcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS80MCBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIiBpZD0iZW1haWwiIHBsYWNlaG9sZGVyPSJlbWFpbEBleGVtcGxvLmNvbSIgdmFsdWU9IiI+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MjAzIiBjbGFzcz0ic3BhY2UteS0yIj48bGFiZWwgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjIwNCIgZGF0YS1zbG90PSJsYWJlbCIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gbGVhZGluZy1ub25lIGZvbnQtbWVkaXVtIHNlbGVjdC1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOnBvaW50ZXItZXZlbnRzLW5vbmUgZ3JvdXAtZGF0YS1bZGlzYWJsZWQ9dHJ1ZV06b3BhY2l0eS01MCBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNTAiIGZvcj0iYWRkcmVzcyI+RW5kZXJlw6dvPC9sYWJlbD48aW5wdXQgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjIwNSIgZGF0YS1zbG90PSJpbnB1dCIgY2xhc3M9ImZpbGU6dGV4dC1mb3JlZ3JvdW5kIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzZWxlY3Rpb246YmctcHJpbWFyeSBzZWxlY3Rpb246dGV4dC1wcmltYXJ5LWZvcmVncm91bmQgZGFyazpiZy1pbnB1dC8zMCBib3JkZXItaW5wdXQgaC05IHctZnVsbCBtaW4tdy0wIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LWJhc2Ugc2hhZG93LXhzIHRyYW5zaXRpb24tW2NvbG9yLGJveC1zaGFkb3ddIG91dGxpbmUtbm9uZSBmaWxlOmlubGluZS1mbGV4IGZpbGU6aC03IGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwIG1kOnRleHQtc20gZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvMjAgZGFyazphcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS80MCBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIiBpZD0iYWRkcmVzcyIgcGxhY2Vob2xkZXI9IlJ1YSwgbsO6bWVybywgY29tcGxlbWVudG8iIHZhbHVlPSIiPjwvZGl2PjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjIxMiIgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTQiPjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjIxMyIgY2xhc3M9InNwYWNlLXktMiI+PGxhYmVsIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoyMTQiIGRhdGEtc2xvdD0ibGFiZWwiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGxlYWRpbmctbm9uZSBmb250LW1lZGl1bSBzZWxlY3Qtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpwb2ludGVyLWV2ZW50cy1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOm9wYWNpdHktNTAgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTUwIiBmb3I9ImNpdHkiPkNpZGFkZTwvbGFiZWw+PGlucHV0IGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoyMTUiIGRhdGEtc2xvdD0iaW5wdXQiIGNsYXNzPSJmaWxlOnRleHQtZm9yZWdyb3VuZCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgc2VsZWN0aW9uOmJnLXByaW1hcnkgc2VsZWN0aW9uOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGRhcms6YmctaW5wdXQvMzAgYm9yZGVyLWlucHV0IGgtOSB3LWZ1bGwgbWluLXctMCByb3VuZGVkLW1kIGJvcmRlciBiZy10cmFuc3BhcmVudCBweC0zIHB5LTEgdGV4dC1iYXNlIHNoYWRvdy14cyB0cmFuc2l0aW9uLVtjb2xvcixib3gtc2hhZG93XSBvdXRsaW5lLW5vbmUgZmlsZTppbmxpbmUtZmxleCBmaWxlOmgtNyBmaWxlOmJvcmRlci0wIGZpbGU6YmctdHJhbnNwYXJlbnQgZmlsZTp0ZXh0LXNtIGZpbGU6Zm9udC1tZWRpdW0gZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBtZDp0ZXh0LXNtIGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcvNTAgZm9jdXMtdmlzaWJsZTpyaW5nLVszcHhdIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzIwIGRhcms6YXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvNDAgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSIgaWQ9ImNpdHkiIHBsYWNlaG9sZGVyPSJFeDogUmlvIGRlIEphbmVpcm8iIHZhbHVlPSIiPjwvZGl2PjxkaXYgZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjIyMiIgY2xhc3M9InNwYWNlLXktMiI+PGxhYmVsIGRhdGEtbG9jPSJjbGllbnQvc3JjL3BhZ2VzL0Fzc2Vzc21lbnRGb3JtLnRzeDoyMjMiIGRhdGEtc2xvdD0ibGFiZWwiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGxlYWRpbmctbm9uZSBmb250LW1lZGl1bSBzZWxlY3Qtbm9uZSBncm91cC1kYXRhLVtkaXNhYmxlZD10cnVlXTpwb2ludGVyLWV2ZW50cy1ub25lIGdyb3VwLWRhdGEtW2Rpc2FibGVkPXRydWVdOm9wYWNpdHktNTAgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTUwIiBmb3I9InN0YXRlIj5Fc3RhZG88L2xhYmVsPjxpbnB1dCBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MjI0IiBkYXRhLXNsb3Q9ImlucHV0IiBjbGFzcz0iZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHNlbGVjdGlvbjpiZy1wcmltYXJ5IHNlbGVjdGlvbjp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBkYXJrOmJnLWlucHV0LzMwIGJvcmRlci1pbnB1dCBoLTkgdy1mdWxsIG1pbi13LTAgcm91bmRlZC1tZCBib3JkZXIgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtYmFzZSBzaGFkb3cteHMgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gb3V0bGluZS1ub25lIGZpbGU6aW5saW5lLWZsZXggZmlsZTpoLTcgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAgbWQ6dGV4dC1zbSBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS8yMCBkYXJrOmFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzQwIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUiIGlkPSJzdGF0ZSIgcGxhY2Vob2xkZXI9IkV4OiBSSiIgdmFsdWU9IiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6Mjc5IiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gbXQtOCI+PGJ1dHRvbiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MjgwIiBkYXRhLXNsb3Q9ImJ1dHRvbiIgY2xhc3M9ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1hbGwgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIFsmYW1wO19zdmddOnBvaW50ZXItZXZlbnRzLW5vbmUgWyZhbXA7X3N2Zzpub3QoW2NsYXNzKj0nc2l6ZS0nXSldOnNpemUtNCBzaHJpbmstMCBbJmFtcDtfc3ZnXTpzaHJpbmstMCBvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvMjAgZGFyazphcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZS80MCBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIGJvcmRlciBiZy10cmFuc3BhcmVudCBzaGFkb3cteHMgaG92ZXI6YmctYWNjZW50IGRhcms6YmctdHJhbnNwYXJlbnQgZGFyazpib3JkZXItaW5wdXQgZGFyazpob3ZlcjpiZy1pbnB1dC81MCBoLTkgcHgtNCBweS0yIGhhcy1bPnN2Z106cHgtMyBnYXAtMiIgZGlzYWJsZWQ9IiI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tbGVmdCB3LTQgaC00IiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6Mjg2Ij48cGF0aCBkPSJtMTUgMTgtNi02IDYtNiI+PC9wYXRoPjwvc3ZnPlZvbHRhcjwvYnV0dG9uPjxidXR0b24gZGF0YS1sb2M9ImNsaWVudC9zcmMvcGFnZXMvQXNzZXNzbWVudEZvcm0udHN4OjI4OSIgZGF0YS1zbG90PSJidXR0b24iIGNsYXNzPSJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAgcm91bmRlZC1tZCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tYWxsIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCBbJmFtcDtfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmYW1wO19zdmc6bm90KFtjbGFzcyo9J3NpemUtJ10pXTpzaXplLTQgc2hyaW5rLTAgWyZhbXA7X3N2Z106c2hyaW5rLTAgb3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcvNTAgZm9jdXMtdmlzaWJsZTpyaW5nLVszcHhdIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlLzIwIGRhcms6YXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUvNDAgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBoLTkgcHgtNCBweS0yIGhhcy1bPnN2Z106cHgtMyBnYXAtMiBiZy10ZWFsLTYwMCBob3ZlcjpiZy10ZWFsLTcwMCIgZGlzYWJsZWQ9IiI+UHLDs3hpbW88c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgY2xhc3M9Imx1Y2lkZSBsdWNpZGUtY2hldnJvbi1yaWdodCB3LTQgaC00IiBkYXRhLWxvYz0iY2xpZW50L3NyYy9wYWdlcy9Bc3Nlc3NtZW50Rm9ybS50c3g6MzAyIj48cGF0aCBkPSJtOSAxOCA2LTYtNi02Ij48L3BhdGg+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CiAgICA8c2NyaXB0IGRlZmVyPSIiIHNyYz0iaHR0cHM6Ly9tYW51cy1hbmFseXRpY3MuY29tL3VtYW1pIiBkYXRhLXdlYnNpdGUtaWQ9IjBhYTBmMjI3LTdkYmUtNGFkMS1hYWQ3LWU5Mzk1OGI3ZGUxNSI+PC9zY3JpcHQ+CiAgPG1hbnVzLWNvbnRlbnQtcm9vdD48L21hbnVzLWNvbnRlbnQtcm9vdD48c2NyaXB0PgoJCQl2YXIgX19tYW51c19zcGFjZV9lZGl0b3JfaW5mbyA9IHsKCQkJc3BhY2VJZCA6ICdDeE5qSlBqSkE3WDZpRVlaTnl2S3U3JywKCQkJcGF0Y2hMaXN0IDogW10sCgkJCX07CgkJCQl7CgkJCQl2YXIgX19tYW51c19fZ2xvYmFsX2VudiA9IHsKICAiYXBpSG9zdCI6ICJodHRwczovL2FwaS5tYW51cy5pbSIsCiAgImhvc3QiOiAiaHR0cHM6Ly9tYW51cy5pbSIsCiAgImFtcGxpdHVkZUtleSI6ICI0NmFjM2Y5YWJiNDFkZDJkMTdhNTc4NWUwNTJiYzZkMyIKfTsKCnZhciBvdT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGF1PSh0LGUsbik9PmUgaW4gdD9vdSh0LGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTp0W2VdPW47dmFyIHB0PSh0LGUsbik9PmF1KHQsdHlwZW9mIGUhPSJzeW1ib2wiP2UrIiI6ZSxuKTsoZnVuY3Rpb24oKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKS5yZWxMaXN0O2lmKGUmJmUuc3VwcG9ydHMmJmUuc3VwcG9ydHMoIm1vZHVsZXByZWxvYWQiKSlyZXR1cm47Zm9yKGNvbnN0IGkgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXScpKWwoaSk7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoaT0+e2Zvcihjb25zdCByIG9mIGkpaWYoci50eXBlPT09ImNoaWxkTGlzdCIpZm9yKGNvbnN0IG8gb2Ygci5hZGRlZE5vZGVzKW8udGFnTmFtZT09PSJMSU5LIiYmby5yZWw9PT0ibW9kdWxlcHJlbG9hZCImJmwobyl9KS5vYnNlcnZlKGRvY3VtZW50LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2Z1bmN0aW9uIG4oaSl7Y29uc3Qgcj17fTtyZXR1cm4gaS5pbnRlZ3JpdHkmJihyLmludGVncml0eT1pLmludGVncml0eSksaS5yZWZlcnJlclBvbGljeSYmKHIucmVmZXJyZXJQb2xpY3k9aS5yZWZlcnJlclBvbGljeSksaS5jcm9zc09yaWdpbj09PSJ1c2UtY3JlZGVudGlhbHMiP3IuY3JlZGVudGlhbHM9ImluY2x1ZGUiOmkuY3Jvc3NPcmlnaW49PT0iYW5vbnltb3VzIj9yLmNyZWRlbnRpYWxzPSJvbWl0IjpyLmNyZWRlbnRpYWxzPSJzYW1lLW9yaWdpbiIscn1mdW5jdGlvbiBsKGkpe2lmKGkuZXApcmV0dXJuO2kuZXA9ITA7Y29uc3Qgcj1uKGkpO2ZldGNoKGkuaHJlZixyKX19KSgpOy8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovY29uc3QgbW49Z2xvYmFsVGhpcyxobD1tbi50cnVzdGVkVHlwZXMsVXI9aGw/aGwuY3JlYXRlUG9saWN5KCJsaXQtaHRtbCIse2NyZWF0ZUhUTUw6dD0+dH0pOnZvaWQgMCxWYz0iJGxpdCQiLHl0PWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsbWM9Ij8iK3l0LGN1PWA8JHttY30+YCxrdD1kb2N1bWVudCxYbj0oKT0+a3QuY3JlYXRlQ29tbWVudCgiIiksSW49dD0+dD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIsa2k9QXJyYXkuaXNBcnJheSxkdT10PT5raSh0KXx8dHlwZW9mKHQ9PW51bGw/dm9pZCAwOnRbU3ltYm9sLml0ZXJhdG9yXSk9PSJmdW5jdGlvbiIsTWw9YFsgCQpcZlxyXWAsZG49LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csSnI9Ly0tPi9nLHhyPS8+L2csTnQ9UmVnRXhwKGA+fCR7TWx9KD86KFteXFxzIic+PS9dKykoJHtNbH0qPSR7TWx9Kig/OlteIAkKXGZcciInXGA8Pj1dfCgifCcpfCkpfCQpYCwiZyIpLHdyPS8nL2csa3I9LyIvZyxmYz0vXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2ksQWM9dD0+KGUsLi4ubik9Pih7XyRsaXRUeXBlJDp0LHN0cmluZ3M6ZSx2YWx1ZXM6bn0pLE89QWMoMSksQWU9QWMoMiksenQ9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIiksY2U9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSx6cj1uZXcgV2Vha01hcCxKdD1rdC5jcmVhdGVUcmVlV2Fsa2VyKGt0LDEyOSk7ZnVuY3Rpb24gcGModCxlKXtpZigha2kodCl8fCF0Lmhhc093blByb3BlcnR5KCJyYXciKSl0aHJvdyBFcnJvcigiaW52YWxpZCB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5Iik7cmV0dXJuIFVyIT09dm9pZCAwP1VyLmNyZWF0ZUhUTUwoZSk6ZX1jb25zdCBzdT0odCxlKT0+e2NvbnN0IG49dC5sZW5ndGgtMSxsPVtdO2xldCBpLHI9ZT09PTI/Ijxzdmc+IjplPT09Mz8iPG1hdGg+IjoiIixvPWRuO2ZvcihsZXQgYT0wO2E8bjthKyspe2NvbnN0IGM9dFthXTtsZXQgZCxzLHU9LTEsaD0wO2Zvcig7aDxjLmxlbmd0aCYmKG8ubGFzdEluZGV4PWgscz1vLmV4ZWMoYykscyE9PW51bGwpOyloPW8ubGFzdEluZGV4LG89PT1kbj9zWzFdPT09IiEtLSI/bz1KcjpzWzFdIT09dm9pZCAwP289eHI6c1syXSE9PXZvaWQgMD8oZmMudGVzdChzWzJdKSYmKGk9UmVnRXhwKCI8LyIrc1syXSwiZyIpKSxvPU50KTpzWzNdIT09dm9pZCAwJiYobz1OdCk6bz09PU50P3NbMF09PT0iPiI/KG89aT8/ZG4sdT0tMSk6c1sxXT09PXZvaWQgMD91PS0yOih1PW8ubGFzdEluZGV4LXNbMl0ubGVuZ3RoLGQ9c1sxXSxvPXNbM109PT12b2lkIDA/TnQ6c1szXT09PSciJz9rcjp3cik6bz09PWtyfHxvPT09d3I/bz1OdDpvPT09SnJ8fG89PT14cj9vPWRuOihvPU50LGk9dm9pZCAwKTtjb25zdCBnPW89PT1OdCYmdFthKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO3IrPW89PT1kbj9jK2N1OnU+PTA/KGwucHVzaChkKSxjLnNsaWNlKDAsdSkrVmMrYy5zbGljZSh1KSt5dCtnKTpjK3l0Kyh1PT09LTI/YTpnKX1yZXR1cm5bcGModCxyKyh0W25dfHwiPD8+IikrKGU9PT0yPyI8L3N2Zz4iOmU9PT0zPyI8L21hdGg+IjoiIikpLGxdfTtsZXQgYmk9Y2xhc3MgWmN7Y29uc3RydWN0b3Ioe3N0cmluZ3M6ZSxfJGxpdFR5cGUkOm59LGwpe2xldCBpO3RoaXMucGFydHM9W107bGV0IHI9MCxvPTA7Y29uc3QgYT1lLmxlbmd0aC0xLGM9dGhpcy5wYXJ0cyxbZCxzXT1zdShlLG4pO2lmKHRoaXMuZWw9WmMuY3JlYXRlRWxlbWVudChkLGwpLEp0LmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCxuPT09Mnx8bj09PTMpe2NvbnN0IHU9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQ7dS5yZXBsYWNlV2l0aCguLi51LmNoaWxkTm9kZXMpfWZvcig7KGk9SnQubmV4dE5vZGUoKSkhPT1udWxsJiZjLmxlbmd0aDxhOyl7aWYoaS5ub2RlVHlwZT09PTEpe2lmKGkuaGFzQXR0cmlidXRlcygpKWZvcihjb25zdCB1IG9mIGkuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZih1LmVuZHNXaXRoKFZjKSl7Y29uc3QgaD1zW28rK10sZz1pLmdldEF0dHJpYnV0ZSh1KS5zcGxpdCh5dCksYj0vKFsuP0BdKT8oLiopLy5leGVjKGgpO2MucHVzaCh7dHlwZToxLGluZGV4OnIsbmFtZTpiWzJdLHN0cmluZ3M6ZyxjdG9yOmJbMV09PT0iLiI/Z3U6YlsxXT09PSI/Ij9odTpiWzFdPT09IkAiP2J1OkNsfSksaS5yZW1vdmVBdHRyaWJ1dGUodSl9ZWxzZSB1LnN0YXJ0c1dpdGgoeXQpJiYoYy5wdXNoKHt0eXBlOjYsaW5kZXg6cn0pLGkucmVtb3ZlQXR0cmlidXRlKHUpKTtpZihmYy50ZXN0KGkudGFnTmFtZSkpe2NvbnN0IHU9aS50ZXh0Q29udGVudC5zcGxpdCh5dCksaD11Lmxlbmd0aC0xO2lmKGg+MCl7aS50ZXh0Q29udGVudD1obD9obC5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGc9MDtnPGg7ZysrKWkuYXBwZW5kKHVbZ10sWG4oKSksSnQubmV4dE5vZGUoKSxjLnB1c2goe3R5cGU6MixpbmRleDorK3J9KTtpLmFwcGVuZCh1W2hdLFhuKCkpfX19ZWxzZSBpZihpLm5vZGVUeXBlPT09OClpZihpLmRhdGE9PT1tYyljLnB1c2goe3R5cGU6MixpbmRleDpyfSk7ZWxzZXtsZXQgdT0tMTtmb3IoOyh1PWkuZGF0YS5pbmRleE9mKHl0LHUrMSkpIT09LTE7KWMucHVzaCh7dHlwZTo3LGluZGV4OnJ9KSx1Kz15dC5sZW5ndGgtMX1yKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUsbil7Y29uc3QgbD1rdC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBsLmlubmVySFRNTD1lLGx9fTtmdW5jdGlvbiAkdCh0LGUsbj10LGwpe3ZhciBvLGE7aWYoZT09PXp0KXJldHVybiBlO2xldCBpPWwhPT12b2lkIDA/KG89bi5fJENvKT09bnVsbD92b2lkIDA6b1tsXTpuLl8kQ2w7Y29uc3Qgcj1JbihlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuKGk9PW51bGw/dm9pZCAwOmkuY29uc3RydWN0b3IpIT09ciYmKChhPWk9PW51bGw/dm9pZCAwOmkuXyRBTyk9PW51bGx8fGEuY2FsbChpLCExKSxyPT09dm9pZCAwP2k9dm9pZCAwOihpPW5ldyByKHQpLGkuXyRBVCh0LG4sbCkpLGwhPT12b2lkIDA/KG4uXyRDbz8/KG4uXyRDbz1bXSkpW2xdPWk6bi5fJENsPWkpLGkhPT12b2lkIDAmJihlPSR0KHQsaS5fJEFTKHQsZS52YWx1ZXMpLGksbCkpLGV9bGV0IHV1PWNsYXNze2NvbnN0cnVjdG9yKGUsbil7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPWUsdGhpcy5fJEFNPW59Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dShlKXtjb25zdHtlbDp7Y29udGVudDpufSxwYXJ0czpsfT10aGlzLl8kQUQsaT0oKGU9PW51bGw/dm9pZCAwOmUuY3JlYXRpb25TY29wZSk/P2t0KS5pbXBvcnROb2RlKG4sITApO0p0LmN1cnJlbnROb2RlPWk7bGV0IHI9SnQubmV4dE5vZGUoKSxvPTAsYT0wLGM9bFswXTtmb3IoO2MhPT12b2lkIDA7KXtpZihvPT09Yy5pbmRleCl7bGV0IGQ7Yy50eXBlPT09Mj9kPW5ldyB6aShyLHIubmV4dFNpYmxpbmcsdGhpcyxlKTpjLnR5cGU9PT0xP2Q9bmV3IGMuY3RvcihyLGMubmFtZSxjLnN0cmluZ3MsdGhpcyxlKTpjLnR5cGU9PT02JiYoZD1uZXcgVnUocix0aGlzLGUpKSx0aGlzLl8kQVYucHVzaChkKSxjPWxbKythXX1vIT09KGM9PW51bGw/dm9pZCAwOmMuaW5kZXgpJiYocj1KdC5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIEp0LmN1cnJlbnROb2RlPWt0LGl9cChlKXtsZXQgbj0wO2Zvcihjb25zdCBsIG9mIHRoaXMuXyRBVilsIT09dm9pZCAwJiYobC5zdHJpbmdzIT09dm9pZCAwPyhsLl8kQUkoZSxsLG4pLG4rPWwuc3RyaW5ncy5sZW5ndGgtMik6bC5fJEFJKGVbbl0pKSxuKyt9fSx6aT1jbGFzcyBHY3tnZXQgXyRBVSgpe3ZhciBlO3JldHVybigoZT10aGlzLl8kQU0pPT1udWxsP3ZvaWQgMDplLl8kQVUpPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSxuLGwsaSl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPWNlLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPW4sdGhpcy5fJEFNPWwsdGhpcy5vcHRpb25zPWksdGhpcy5fJEN2PShpPT1udWxsP3ZvaWQgMDppLmlzQ29ubmVjdGVkKT8/ITB9Z2V0IHBhcmVudE5vZGUoKXtsZXQgZT10aGlzLl8kQUEucGFyZW50Tm9kZTtjb25zdCBuPXRoaXMuXyRBTTtyZXR1cm4gbiE9PXZvaWQgMCYmKGU9PW51bGw/dm9pZCAwOmUubm9kZVR5cGUpPT09MTEmJihlPW4ucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLG49dGhpcyl7ZT0kdCh0aGlzLGUsbiksSW4oZSk/ZT09PWNlfHxlPT1udWxsfHxlPT09IiI/KHRoaXMuXyRBSCE9PWNlJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9Y2UpOmUhPT10aGlzLl8kQUgmJmUhPT16dCYmdGhpcy5fKGUpOmUuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQoZSk6ZS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQoZSk6ZHUoZSk/dGhpcy5rKGUpOnRoaXMuXyhlKX1PKGUpe3JldHVybiB0aGlzLl8kQUEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLl8kQUIpfVQoZSl7dGhpcy5fJEFIIT09ZSYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLk8oZSkpfV8oZSl7dGhpcy5fJEFIIT09Y2UmJkluKHRoaXMuXyRBSCk/dGhpcy5fJEFBLm5leHRTaWJsaW5nLmRhdGE9ZTp0aGlzLlQoa3QuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuXyRBSD1lfSQoZSl7dmFyIHI7Y29uc3R7dmFsdWVzOm4sXyRsaXRUeXBlJDpsfT1lLGk9dHlwZW9mIGw9PSJudW1iZXIiP3RoaXMuXyRBQyhlKToobC5lbD09PXZvaWQgMCYmKGwuZWw9YmkuY3JlYXRlRWxlbWVudChwYyhsLmgsbC5oWzBdKSx0aGlzLm9wdGlvbnMpKSxsKTtpZigoKHI9dGhpcy5fJEFIKT09bnVsbD92b2lkIDA6ci5fJEFEKT09PWkpdGhpcy5fJEFILnAobik7ZWxzZXtjb25zdCBvPW5ldyB1dShpLHRoaXMpLGE9by51KHRoaXMub3B0aW9ucyk7by5wKG4pLHRoaXMuVChhKSx0aGlzLl8kQUg9b319XyRBQyhlKXtsZXQgbj16ci5nZXQoZS5zdHJpbmdzKTtyZXR1cm4gbj09PXZvaWQgMCYmenIuc2V0KGUuc3RyaW5ncyxuPW5ldyBiaShlKSksbn1rKGUpe2tpKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2NvbnN0IG49dGhpcy5fJEFIO2xldCBsLGk9MDtmb3IoY29uc3QgciBvZiBlKWk9PT1uLmxlbmd0aD9uLnB1c2gobD1uZXcgR2ModGhpcy5PKFhuKCkpLHRoaXMuTyhYbigpKSx0aGlzLHRoaXMub3B0aW9ucykpOmw9bltpXSxsLl8kQUkociksaSsrO2k8bi5sZW5ndGgmJih0aGlzLl8kQVIobCYmbC5fJEFCLm5leHRTaWJsaW5nLGkpLG4ubGVuZ3RoPWkpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsbil7dmFyIGw7Zm9yKChsPXRoaXMuXyRBUCk9PW51bGw/dm9pZCAwOmwuY2FsbCh0aGlzLCExLCEwLG4pO2UhPT10aGlzLl8kQUI7KXtjb25zdCBpPWUubmV4dFNpYmxpbmc7ZS5yZW1vdmUoKSxlPWl9fXNldENvbm5lY3RlZChlKXt2YXIgbjt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9ZSwobj10aGlzLl8kQVApPT1udWxsfHxuLmNhbGwodGhpcyxlKSl9fSxDbD1jbGFzc3tnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLG4sbCxpLHIpe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1jZSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT1uLHRoaXMuXyRBTT1pLHRoaXMub3B0aW9ucz1yLGwubGVuZ3RoPjJ8fGxbMF0hPT0iInx8bFsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkobC5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9bCk6dGhpcy5fJEFIPWNlfV8kQUkoZSxuPXRoaXMsbCxpKXtjb25zdCByPXRoaXMuc3RyaW5ncztsZXQgbz0hMTtpZihyPT09dm9pZCAwKWU9JHQodGhpcyxlLG4sMCksbz0hSW4oZSl8fGUhPT10aGlzLl8kQUgmJmUhPT16dCxvJiYodGhpcy5fJEFIPWUpO2Vsc2V7Y29uc3QgYT1lO2xldCBjLGQ7Zm9yKGU9clswXSxjPTA7YzxyLmxlbmd0aC0xO2MrKylkPSR0KHRoaXMsYVtsK2NdLG4sYyksZD09PXp0JiYoZD10aGlzLl8kQUhbY10pLG98fChvPSFJbihkKXx8ZCE9PXRoaXMuXyRBSFtjXSksZD09PWNlP2U9Y2U6ZSE9PWNlJiYoZSs9KGQ/PyIiKStyW2MrMV0pLHRoaXMuXyRBSFtjXT1kfW8mJiFpJiZ0aGlzLmooZSl9aihlKXtlPT09Y2U/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LGd1PWNsYXNzIGV4dGVuZHMgQ2x7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWooZSl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09ZT09PWNlP3ZvaWQgMDplfX0saHU9Y2xhc3MgZXh0ZW5kcyBDbHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aihlKXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIWUmJmUhPT1jZSl9fSxidT1jbGFzcyBleHRlbmRzIENse2NvbnN0cnVjdG9yKGUsbixsLGkscil7c3VwZXIoZSxuLGwsaSxyKSx0aGlzLnR5cGU9NX1fJEFJKGUsbj10aGlzKXtpZigoZT0kdCh0aGlzLGUsbiwwKT8/Y2UpPT09enQpcmV0dXJuO2NvbnN0IGw9dGhpcy5fJEFILGk9ZT09PWNlJiZsIT09Y2V8fGUuY2FwdHVyZSE9PWwuY2FwdHVyZXx8ZS5vbmNlIT09bC5vbmNlfHxlLnBhc3NpdmUhPT1sLnBhc3NpdmUscj1lIT09Y2UmJihsPT09Y2V8fGkpO2kmJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGwpLHImJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGUpLHRoaXMuXyRBSD1lfWhhbmRsZUV2ZW50KGUpe3ZhciBuO3R5cGVvZiB0aGlzLl8kQUg9PSJmdW5jdGlvbiI/dGhpcy5fJEFILmNhbGwoKChuPXRoaXMub3B0aW9ucyk9PW51bGw/dm9pZCAwOm4uaG9zdCk/P3RoaXMuZWxlbWVudCxlKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZSl9fTtjbGFzcyBWdXtjb25zdHJ1Y3RvcihlLG4sbCl7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09bix0aGlzLm9wdGlvbnM9bH1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpeyR0KHRoaXMsZSl9fWNvbnN0IEhsPW1uLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7SGw9PW51bGx8fEhsKGJpLHppKSwobW4ubGl0SHRtbFZlcnNpb25zPz8obW4ubGl0SHRtbFZlcnNpb25zPVtdKSkucHVzaCgiMy4zLjEiKTtjb25zdCBYdD0odCxlLG4pPT57Y29uc3QgbD1lO2xldCBpPWwuXyRsaXRQYXJ0JDtyZXR1cm4gaT09PXZvaWQgMCYmKGwuXyRsaXRQYXJ0JD1pPW5ldyB6aShlLmluc2VydEJlZm9yZShYbigpLG51bGwpLG51bGwsdm9pZCAwLHt9KSksaS5fJEFJKHQpLGl9O2NsYXNzIFdsIGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2RpYWxvZ0VsZW1lbnQ9bnVsbCx0aGlzLl9pc09wZW49ITEsdGhpcy5fdGl0bGU9IkRpYWxvZyIsdGhpcy5faXNDbG9zYWJsZT0hMCx0aGlzLl9zaGFkb3dSb290PXRoaXMuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLHRoaXMuX3JlbmRlcigpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJvcGVuIiwidGl0bGUiLCJjbG9zYWJsZSIsIndpZHRoIl19Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmhhc0F0dHJpYnV0ZSgib3BlbiIpP3RoaXMuX2lzT3Blbj0hMDp0aGlzLl9pc09wZW49ITEsdGhpcy5fdGl0bGU9dGhpcy5nZXRBdHRyaWJ1dGUoInRpdGxlIil8fHRoaXMuX3RpdGxlLHRoaXMuaGFzQXR0cmlidXRlKCJjbG9zYWJsZSIpP3RoaXMuX2lzQ2xvc2FibGU9dGhpcy5nZXRBdHRyaWJ1dGUoImNsb3NhYmxlIikhPT0iZmFsc2UiOnRoaXMuX2lzQ2xvc2FibGU9ITA7Y29uc3QgZT10aGlzLmdldEF0dHJpYnV0ZSgid2lkdGgiKTtlP3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZHluYW1pYy1kaWFsb2ctd2lkdGgiLGUpOnRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHluYW1pYy1kaWFsb2ctd2lkdGgiKSx0aGlzLl9yZW5kZXIoKSx0aGlzLl9kaWFsb2dFbGVtZW50PXRoaXMuX3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGlhbG9nIiksdGhpcy5fZGlhbG9nRWxlbWVudCYmKHRoaXMuX2RpYWxvZ0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49Pnt0aGlzLl9pc0Nsb3NhYmxlJiZuLnRhcmdldD09PXRoaXMuX2RpYWxvZ0VsZW1lbnQmJnRoaXMuY2xvc2UoKX0pLHRoaXMuX2RpYWxvZ0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT57dGhpcy5faXNPcGVuJiYodGhpcy5faXNPcGVuPSExLHRoaXMuaGFzQXR0cmlidXRlKCJvcGVuIikmJnRoaXMucmVtb3ZlQXR0cmlidXRlKCJvcGVuIiksdGhpcy5fZGlzcGF0Y2hDbG9zZUV2ZW50KCkpfSksdGhpcy5faXNPcGVuJiYhdGhpcy5fZGlhbG9nRWxlbWVudC5vcGVuJiYodGhpcy5fZGlhbG9nRWxlbWVudC5zaG93TW9kYWwoKSx0aGlzLl9kaXNwYXRjaE9wZW5FdmVudCgpKSl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsbixsKXtjb25zdCBpPXRoaXMuX2lzT3BlbjtsZXQgcj0hMTtpZihlPT09Im9wZW4iKXtjb25zdCBvPWwhPT1udWxsO3RoaXMuX2lzT3BlbiE9PW8mJih0aGlzLl9pc09wZW49byksdGhpcy5fZGlhbG9nRWxlbWVudCYmKHRoaXMuX2lzT3Blbj90aGlzLl9kaWFsb2dFbGVtZW50Lm9wZW58fCh0aGlzLl9kaWFsb2dFbGVtZW50LnNob3dNb2RhbCgpLGl8fHRoaXMuX2Rpc3BhdGNoT3BlbkV2ZW50KCkpOnRoaXMuX2RpYWxvZ0VsZW1lbnQub3BlbiYmdGhpcy5fZGlhbG9nRWxlbWVudC5jbG9zZSgpKX1lbHNlIGlmKGU9PT0idGl0bGUiKXtjb25zdCBvPWx8fCJEaWFsb2ciO3RoaXMuX3RpdGxlIT09byYmKHRoaXMuX3RpdGxlPW8scj0hMCl9ZWxzZSBpZihlPT09ImNsb3NhYmxlIil7Y29uc3Qgbz1sIT09ImZhbHNlIjt0aGlzLl9pc0Nsb3NhYmxlIT09byYmKHRoaXMuX2lzQ2xvc2FibGU9byxyPSEwKX1lbHNlIGU9PT0id2lkdGgiJiYobCE9PW51bGw/dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1keW5hbWljLWRpYWxvZy13aWR0aCIsbCk6dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1keW5hbWljLWRpYWxvZy13aWR0aCIpKTtyJiZ0aGlzLl9yZW5kZXIoKX1zaG93KCl7dGhpcy5faXNPcGVuP3RoaXMuX2RpYWxvZ0VsZW1lbnQmJiF0aGlzLl9kaWFsb2dFbGVtZW50Lm9wZW4mJih0aGlzLl9kaWFsb2dFbGVtZW50LnNob3dNb2RhbCgpLHRoaXMuX2Rpc3BhdGNoT3BlbkV2ZW50KCkpOnRoaXMuc2V0QXR0cmlidXRlKCJvcGVuIiwiIil9Y2xvc2UoKXt0aGlzLl9pc09wZW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm9wZW4iKTp0aGlzLl9kaWFsb2dFbGVtZW50JiZ0aGlzLl9kaWFsb2dFbGVtZW50Lm9wZW4mJnRoaXMuX2RpYWxvZ0VsZW1lbnQuY2xvc2UoKX1faGFuZGxlQ2xvc2VCdXR0b25DbGljaygpe3RoaXMuY2xvc2UoKX1fZGlzcGF0Y2hPcGVuRXZlbnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWFsb2ctb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9X2Rpc3BhdGNoQ2xvc2VFdmVudCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpYWxvZy1jbG9zZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9X3JlbmRlcigpe2NvbnN0IGU9T2AKCQkJPHN0eWxlPgoJCQkJOmhvc3QgewoJCQkJCS8qIERlZmF1bHQgd2lkdGggZm9yIHRoZSBkaWFsb2csIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAnd2lkdGgnIGF0dHJpYnV0ZSAqLwoJCQkJCS0tbGl0LWh0bWwtZGlhbG9nLWRlZmF1bHQtd2lkdGg6IDQwMHB4OwoJCQkJCS8qIC0tZHluYW1pYy1kaWFsb2ctd2lkdGggd2lsbCBiZSBzZXQgb24gdGhlIGhvc3QgaW5zdGFuY2UgdmlhIEpTICovCgkJCQkJLS1saXQtaHRtbC1kaWFsb2ctZm9udC1mYW1pbHk6ICdTRiBQcm8nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy1zdXJmYWNlLWJnOiB3aGl0ZTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy1ib3JkZXItbWFpbjogcmdiYSgwLCAwLCAwLCAwLjA2KTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy10ZXh0LXByaW1hcnk6ICMzNDMyMmQ7CgkJCQkJLS1saXQtaHRtbC1kaWFsb2ctdGV4dC10ZXJ0aWFyeTogIzg1ODQ4MTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy10ZXh0LXdoaXRlOiB3aGl0ZTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy1pY29uLXRlcnRpYXJ5OiAjODU4NDgxOwoJCQkJCS0tbGl0LWh0bWwtZGlhbG9nLWJvcmRlci1idG4tbWFpbjogcmdiYSgwLCAwLCAwLCAwLjEyKTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy1mdW5jdGlvbi1lcnJvci1iZzogI2YyNWE1YTsKCQkJCQktLWxpdC1odG1sLWRpYWxvZy1idXR0b24tZGVmYXVsdC1iZzogdHJhbnNwYXJlbnQ7CgkJCQkJLS1saXQtaHRtbC1kaWFsb2ctYm94LXNoYWRvdzogMHB4IDRweCAxMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CgkJCQkJLS1saXQtaHRtbC1kaWFsb2ctYm9yZGVyLXJhZGl1czogMjBweDsKCQkJCX0KCgkJCQlkaWFsb2cgewoJCQkJCS8qIFVzZSB0aGUgZHluYW1pYyB3aWR0aCB2YXJpYWJsZSwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHdpZHRoICovCgkJCQkJd2lkdGg6IHZhcigtLWR5bmFtaWMtZGlhbG9nLXdpZHRoLCB2YXIoLS1saXQtaHRtbC1kaWFsb2ctZGVmYXVsdC13aWR0aCkpOwoJCQkJCW1heC13aWR0aDogOTB2dzsgLyogQWRkIGEgbWF4LXdpZHRoIHRvIHByZXZlbnQgb3ZlcmZsb3cgb24gc21hbGwgc2NyZWVucyAqLwoKCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctc3VyZmFjZS1iZyk7CgkJCQkJYm94LXNoYWRvdzogdmFyKC0tbGl0LWh0bWwtZGlhbG9nLWJveC1zaGFkb3cpOwoJCQkJCWJvcmRlci1yYWRpdXM6IHZhcigtLWxpdC1odG1sLWRpYWxvZy1ib3JkZXItcmFkaXVzKTsKCQkJCQlib3JkZXI6IDFweCB2YXIoLS1saXQtaHRtbC1kaWFsb2ctYm9yZGVyLW1haW4pIHNvbGlkOwoJCQkJCXBhZGRpbmc6IDA7CgkJCQkJbWFyZ2luOiBhdXRvOwoJCQkJCW92ZXJmbG93OiB2aXNpYmxlOwoJCQkJfQoKCQkJCWRpYWxvZzo6YmFja2Ryb3AgewoJCQkJCWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKCQkJCX0KCgkJCQkuZGlhbG9nLWhlYWRlciB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CgkJCQkJYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CgkJCQkJcGFkZGluZzogMjBweCAxNnB4IDEwcHggMjBweDsKCQkJCQlnYXA6IDEwcHg7CgkJCQl9CgoJCQkJLmRpYWxvZy10aXRsZSB7CgkJCQkJZmxleDogMSAxIDA7CgkJCQkJY29sb3I6IHZhcigtLWxpdC1odG1sLWRpYWxvZy10ZXh0LXByaW1hcnkpOwoJCQkJCWZvbnQtc2l6ZTogMThweDsKCQkJCQlmb250LWZhbWlseTogdmFyKC0tbGl0LWh0bWwtZGlhbG9nLWZvbnQtZmFtaWx5KTsKCQkJCQlmb250LXdlaWdodDogNjAwOwoJCQkJCWxpbmUtaGVpZ2h0OiAyNHB4OwoJCQkJCXdvcmQtd3JhcDogYnJlYWstd29yZDsKCQkJCX0KCgkJCQkuZGlhbG9nLWNsb3NlLWJ1dHRvbiB7CgkJCQkJYmFja2dyb3VuZDogbm9uZTsKCQkJCQlib3JkZXI6IG5vbmU7CgkJCQkJY3Vyc29yOiBwb2ludGVyOwoJCQkJCXBhZGRpbmc6IDA7CgkJCQkJd2lkdGg6IDI4cHg7CgkJCQkJaGVpZ2h0OiAyOHB4OwoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQljb2xvcjogdmFyKC0tbGl0LWh0bWwtZGlhbG9nLWljb24tdGVydGlhcnkpOwoJCQkJCWZvbnQtc2l6ZTogMThweDsKCQkJCQlmb250LWZhbWlseTogdmFyKC0tbGl0LWh0bWwtZGlhbG9nLWZvbnQtZmFtaWx5KTsKCQkJCQlmb250LXdlaWdodDogNTAwOwoJCQkJCWxpbmUtaGVpZ2h0OiAxOwoJCQkJfQoJCQkJLmRpYWxvZy1jbG9zZS1idXR0b246aG92ZXIgewoJCQkJCWNvbG9yOiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctdGV4dC1wcmltYXJ5KTsKCQkJCX0KCgkJCQkuZGlhbG9nLWJvZHkgewoJCQkJCXBhZGRpbmc6IDBweCAyMHB4OwoJCQkJCWNvbG9yOiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctdGV4dC10ZXJ0aWFyeSk7CgkJCQkJZm9udC1zaXplOiAxNHB4OwoJCQkJCWZvbnQtZmFtaWx5OiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctZm9udC1mYW1pbHkpOwoJCQkJCWZvbnQtd2VpZ2h0OiA0MDA7CgkJCQkJbGluZS1oZWlnaHQ6IDIycHg7CgkJCQkJd29yZC13cmFwOiBicmVhay13b3JkOwoJCQkJfQoKCQkJCS5kaWFsb2ctZm9vdGVyIHsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlnYXA6IDEycHg7CgkJCQkJcGFkZGluZzogMjBweDsKCQkJCX0KCgkJCQkuZGlhbG9nLWZvb3RlciA6OnNsb3R0ZWQoLmRpYWxvZy1idXR0b24pIHsKCQkJCQltaW4taGVpZ2h0OiAzNnB4OwoJCQkJCXBhZGRpbmc6IDhweCAxMnB4OwoJCQkJCWJvcmRlci1yYWRpdXM6IDEwcHg7CgkJCQkJZm9udC1zaXplOiAxNHB4OwoJCQkJCWZvbnQtd2VpZ2h0OiA1MDA7CgkJCQkJbGluZS1oZWlnaHQ6IDIwcHg7CgkJCQkJYm9yZGVyOiBub25lOwoJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQlkaXNwbGF5OiBpbmxpbmUtZmxleDsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCWZvbnQtZmFtaWx5OiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctZm9udC1mYW1pbHkpOwoJCQkJfQoJCQkJLmRpYWxvZy1mb290ZXIgOjpzbG90dGVkKC5kaWFsb2ctYnV0dG9uLWRlZmF1bHQpIHsKCQkJCQltaW4td2lkdGg6IDY0cHg7CgkJCQkJY29sb3I6IHZhcigtLWxpdC1odG1sLWRpYWxvZy10ZXh0LXByaW1hcnkpOwoJCQkJCWJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpdC1odG1sLWRpYWxvZy1idXR0b24tZGVmYXVsdC1iZyk7CgkJCQkJYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGl0LWh0bWwtZGlhbG9nLWJvcmRlci1idG4tbWFpbik7CgkJCQl9CgkJCQkuZGlhbG9nLWZvb3RlciA6OnNsb3R0ZWQoLmRpYWxvZy1idXR0b24tZGVmYXVsdDpob3ZlcikgewoJCQkJCWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7CgkJCQl9CgkJCQkuZGlhbG9nLWZvb3RlciA6OnNsb3R0ZWQoLmRpYWxvZy1idXR0b24tZXJyb3IpIHsKCQkJCQltaW4td2lkdGg6IDc0cHg7CgkJCQkJY29sb3I6IHZhcigtLWxpdC1odG1sLWRpYWxvZy10ZXh0LXdoaXRlKTsKCQkJCQliYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saXQtaHRtbC1kaWFsb2ctZnVuY3Rpb24tZXJyb3ItYmcpOwoJCQkJfQoJCQkJLmRpYWxvZy1mb290ZXIgOjpzbG90dGVkKC5kaWFsb2ctYnV0dG9uLWVycm9yOmhvdmVyKSB7CgkJCQkJb3BhY2l0eTogMC45OwoJCQkJfQoJCQk8L3N0eWxlPgoKCQkJPGRpYWxvZyBwYXJ0PSJkaWFsb2ciPgoJCQkJPGRpdiBjbGFzcz0iZGlhbG9nLWhlYWRlciIgcGFydD0iaGVhZGVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiIHBhcnQ9InRpdGxlIj4ke3RoaXMuX3RpdGxlfTwvZGl2PgoJCQkJCSR7dGhpcy5faXNDbG9zYWJsZT9PYAoJCQkJCQkJCTxidXR0b24KCQkJCQkJCQkJdHlwZT0iYnV0dG9uIgoJCQkJCQkJCQljbGFzcz0iZGlhbG9nLWNsb3NlLWJ1dHRvbiIKCQkJCQkJCQkJcGFydD0iY2xvc2UtYnV0dG9uIgoJCQkJCQkJCQlhcmlhLWxhYmVsPSJDbG9zZSBkaWFsb2ciCgkJCQkJCQkJCUBjbGljaz0keygpPT50aGlzLl9oYW5kbGVDbG9zZUJ1dHRvbkNsaWNrKCl9CgkJCQkJCQkJPgoJCQkJCQkJCQkmI3gyNzE1OwoJCQkJCQkJCTwvYnV0dG9uPgoJCQkJCQkgIGA6IiJ9CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImRpYWxvZy1ib2R5IiBwYXJ0PSJib2R5Ij4KCQkJCQk8c2xvdD48L3Nsb3Q+CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImRpYWxvZy1mb290ZXIiIHBhcnQ9ImZvb3RlciI+CgkJCQkJPHNsb3QgbmFtZT0iZm9vdGVyIj48L3Nsb3Q+CgkJCQk8L2Rpdj4KCQkJPC9kaWFsb2c+CgkJYDtYdChlLHRoaXMuX3NoYWRvd1Jvb3QpfX1jbGFzcyBRaSBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmFuY2hvcj1udWxsLHRoaXMucG9wdXBDb250ZW50PW51bGwsdGhpcy5pc09wZW49ITEsdGhpcy5zY3JvbGxMaXN0ZW5lcj1udWxsLHRoaXMuX3JlZj1udWxsLHRoaXMuX2N1c3RvbUNsYXNzPSIiLHRoaXMubW91c2VQb3NpdGlvbj1udWxsLHRoaXMuZ2FwU2l6ZT0xMCx0aGlzLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSx0aGlzLnJlbmRlcigpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJvcGVuIiwicmVmIiwiY2xhc3MiXX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuc2Nyb2xsTGlzdGVuZXI9KCk9Pnt0aGlzLmlzT3BlbiYmdGhpcy51cGRhdGVQb3NpdGlvbigpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnNjcm9sbExpc3RlbmVyLCEwKSx0aGlzLl9yZWYmJnRoaXMuX3JlZih0aGlzKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuc2Nyb2xsTGlzdGVuZXImJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuc2Nyb2xsTGlzdGVuZXIsITApLHRoaXMuZGVzdHJveSgpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhlLG4sbCl7ZT09PSJvcGVuIj8odGhpcy5pc09wZW49bCE9PW51bGwsdGhpcy5yZW5kZXIoKSx0aGlzLmlzT3BlbiYmc2V0VGltZW91dCgoKT0+dGhpcy51cGRhdGVQb3NpdGlvbigpLDApKTplPT09InJlZiJ8fGU9PT0iY2xhc3MiJiYodGhpcy5fY3VzdG9tQ2xhc3M9bHx8IiIsdGhpcy5yZW5kZXIoKSl9c2V0IHJlZihlKXt0aGlzLl9yZWY9ZSx0aGlzLmlzQ29ubmVjdGVkJiZlKHRoaXMpfXNldCBjdXN0b21DbGFzcyhlKXt0aGlzLl9jdXN0b21DbGFzcz1lLHRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsZSksdGhpcy5yZW5kZXIoKX1nZXQgY3VzdG9tQ2xhc3MoKXtyZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3N9c2V0QW5jaG9yKGUpe3RoaXMuYW5jaG9yPWUsdGhpcy5pc09wZW4mJnRoaXMudXBkYXRlUG9zaXRpb24oKX1vcGVuKGUpe2lmKHRoaXMuaXNPcGVuPSEwLHRoaXMuc2V0QXR0cmlidXRlKCJvcGVuIiwiIiksZSl7dGhpcy5tb3VzZVBvc2l0aW9uPXt4OmUuY2xpZW50WCx5OmUuY2xpZW50WX07Y29uc3Qgbj1lLnRhcmdldDtuJiZ0aGlzLnNldEFuY2hvcihuKX1lbHNlIHRoaXMubW91c2VQb3NpdGlvbj1udWxsO3RoaXMucmVuZGVyKCksc2V0VGltZW91dCgoKT0+dGhpcy51cGRhdGVQb3NpdGlvbigpLDApfWNsb3NlKCl7dGhpcy5pc09wZW49ITEsdGhpcy5tb3VzZVBvc2l0aW9uPW51bGwsdGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm9wZW4iKSx0aGlzLnJlbmRlcigpfXVwZGF0ZVBvc2l0aW9uKCl7aWYoIXRoaXMucG9wdXBDb250ZW50KXJldHVybjtjb25zdCBlPXRoaXMucG9wdXBDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBuLGwsaT0iYm90dG9tIjtpZih0aGlzLmFuY2hvciluPXRoaXMuYW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSt0aGlzLmdhcFNpemU7ZWxzZSBpZih0aGlzLm1vdXNlUG9zaXRpb24pbj10aGlzLm1vdXNlUG9zaXRpb24ueSt0aGlzLmdhcFNpemU7ZWxzZXtuPXdpbmRvdy5pbm5lckhlaWdodC8yLWUuaGVpZ2h0LzIsbD13aW5kb3cuaW5uZXJXaWR0aC8yLWUud2lkdGgvMix0aGlzLnVwZGF0ZVBvcHVwU3R5bGVzKG4sbCxpKTtyZXR1cm59aWYodGhpcy5tb3VzZVBvc2l0aW9uKWw9dGhpcy5tb3VzZVBvc2l0aW9uLngtZS53aWR0aC8yO2Vsc2UgaWYodGhpcy5hbmNob3Ipe2NvbnN0IHI9dGhpcy5hbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bD1yLmxlZnQrci53aWR0aC8yLWUud2lkdGgvMn1lbHNlIGw9d2luZG93LmlubmVyV2lkdGgvMi1lLndpZHRoLzI7bCtlLndpZHRoPndpbmRvdy5pbm5lcldpZHRoJiYobD13aW5kb3cuaW5uZXJXaWR0aC1lLndpZHRoLTEwKSxsPDEwJiYobD0xMCksbitlLmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQmJihpPSJ0b3AiLHRoaXMuYW5jaG9yP249dGhpcy5hbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLWUuaGVpZ2h0LXRoaXMuZ2FwU2l6ZTp0aGlzLm1vdXNlUG9zaXRpb24mJihuPXRoaXMubW91c2VQb3NpdGlvbi55LWUuaGVpZ2h0LXRoaXMuZ2FwU2l6ZSksbjwwJiYobj13aW5kb3cuaW5uZXJIZWlnaHQvMi1lLmhlaWdodC8yLGk9ImJvdHRvbSIpKSx0aGlzLnVwZGF0ZVBvcHVwU3R5bGVzKG4sbCxpKX11cGRhdGVQb3B1cFN0eWxlcyhlLG4sbCl7dGhpcy5wb3B1cENvbnRlbnQmJih0aGlzLnBvcHVwQ29udGVudC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMucG9wdXBDb250ZW50LnN0eWxlLnRvcD1gJHtlfXB4YCx0aGlzLnBvcHVwQ29udGVudC5zdHlsZS5sZWZ0PWAke259cHhgLHRoaXMucG9wdXBDb250ZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1wb3NpdGlvbiIsbCkpfXJlbmRlcigpe2NvbnN0IGU9T2AKCQkJPHN0eWxlPgoJCQkJOmhvc3QgewoJCQkJCWRpc3BsYXk6IGJsb2NrOwoJCQkJfQoKCQkJCS5wb3B1cC1jb250ZW50IHsKCQkJCQlkaXNwbGF5OiAke3RoaXMuaXNPcGVuPyJibG9jayI6Im5vbmUifTsKCQkJCQlwb3NpdGlvbjogZml4ZWQ7CgkJCQkJei1pbmRleDogMTAwMDsKCQkJCX0KCgkJCQkvKiDlupXpg6jlrprkvY3ml7bnmoTov57mjqXkvKrlhYPntKAgKi8KCQkJCS5wb3B1cC1jb250ZW50W2RhdGEtcG9zaXRpb249J2JvdHRvbSddOjpiZWZvcmUgewoJCQkJCWNvbnRlbnQ6ICcnOwoJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQlsZWZ0OiAwOwoJCQkJCXJpZ2h0OiAwOwoJCQkJCXRvcDogLSR7dGhpcy5nYXBTaXplfXB4OwoJCQkJCWhlaWdodDogJHt0aGlzLmdhcFNpemV9cHg7CgkJCQkJLyog6LCD6K+V5pe25Y+v5Lul6K6+572u6IOM5pmv6ImyICovCgkJCQkJLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMik7ICovCgkJCQl9CgoJCQkJLyog6aG26YOo5a6a5L2N5pe255qE6L+e5o6l5Lyq5YWD57SgICovCgkJCQkucG9wdXAtY29udGVudFtkYXRhLXBvc2l0aW9uPSd0b3AnXTo6YWZ0ZXIgewoJCQkJCWNvbnRlbnQ6ICcnOwoJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQlsZWZ0OiAwOwoJCQkJCXJpZ2h0OiAwOwoJCQkJCWJvdHRvbTogLSR7dGhpcy5nYXBTaXplfXB4OwoJCQkJCWhlaWdodDogJHt0aGlzLmdhcFNpemV9cHg7CgkJCQkJLyog6LCD6K+V5pe25Y+v5Lul6K6+572u6IOM5pmv6ImyICovCgkJCQkJLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDAsIDAuMik7ICovCgkJCQl9CgkJCTwvc3R5bGU+CgkJCTxkaXYgY2xhc3M9InBvcHVwLWNvbnRlbnQgJHt0aGlzLl9jdXN0b21DbGFzc30iIGRhdGEtcG9zaXRpb249ImJvdHRvbSI+CgkJCQk8c2xvdD48L3Nsb3Q+CgkJCTwvZGl2PgoJCWA7WHQoZSx0aGlzLnNoYWRvd1Jvb3QpLHRoaXMucG9wdXBDb250ZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucG9wdXAtY29udGVudCIpfWRlc3Ryb3koKXtYdChjZSx0aGlzLnNoYWRvd1Jvb3QpfX0vKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqL2NvbnN0IExpPXtBVFRSSUJVVEU6MSxDSElMRDoyfSxLaT10PT4oLi4uZSk9Pih7XyRsaXREaXJlY3RpdmUkOnQsdmFsdWVzOmV9KTtsZXQgVGk9Y2xhc3N7Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxuLGwpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1uLHRoaXMuXyRDaT1sfV8kQVMoZSxuKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxuKX11cGRhdGUoZSxuKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ubil9fTsvKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqL2NvbnN0IHR0PUtpKGNsYXNzIGV4dGVuZHMgVGl7Y29uc3RydWN0b3IodCl7dmFyIGU7aWYoc3VwZXIodCksdC50eXBlIT09TGkuQVRUUklCVVRFfHx0Lm5hbWUhPT0iY2xhc3MifHwoKGU9dC5zdHJpbmdzKT09bnVsbD92b2lkIDA6ZS5sZW5ndGgpPjIpdGhyb3cgRXJyb3IoImBjbGFzc01hcCgpYCBjYW4gb25seSBiZSB1c2VkIGluIHRoZSBgY2xhc3NgIGF0dHJpYnV0ZSBhbmQgbXVzdCBiZSB0aGUgb25seSBwYXJ0IGluIHRoZSBhdHRyaWJ1dGUuIil9cmVuZGVyKHQpe3JldHVybiIgIitPYmplY3Qua2V5cyh0KS5maWx0ZXIoKGU9PnRbZV0pKS5qb2luKCIgIikrIiAifXVwZGF0ZSh0LFtlXSl7dmFyIGwsaTtpZih0aGlzLnN0PT09dm9pZCAwKXt0aGlzLnN0PW5ldyBTZXQsdC5zdHJpbmdzIT09dm9pZCAwJiYodGhpcy5udD1uZXcgU2V0KHQuc3RyaW5ncy5qb2luKCIgIikuc3BsaXQoL1xzLykuZmlsdGVyKChyPT5yIT09IiIpKSkpO2Zvcihjb25zdCByIGluIGUpZVtyXSYmISgobD10aGlzLm50KSE9bnVsbCYmbC5oYXMocikpJiZ0aGlzLnN0LmFkZChyKTtyZXR1cm4gdGhpcy5yZW5kZXIoZSl9Y29uc3Qgbj10LmVsZW1lbnQuY2xhc3NMaXN0O2Zvcihjb25zdCByIG9mIHRoaXMuc3QpciBpbiBlfHwobi5yZW1vdmUociksdGhpcy5zdC5kZWxldGUocikpO2Zvcihjb25zdCByIGluIGUpe2NvbnN0IG89ISFlW3JdO289PT10aGlzLnN0LmhhcyhyKXx8KGk9dGhpcy5udCkhPW51bGwmJmkuaGFzKHIpfHwobz8obi5hZGQociksdGhpcy5zdC5hZGQocikpOihuLnJlbW92ZShyKSx0aGlzLnN0LmRlbGV0ZShyKSkpfXJldHVybiB6dH19KTsvKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqL2NvbnN0IG11PXQ9PnQuc3RyaW5ncz09PXZvaWQgMDsvKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqL2NvbnN0IGZuPSh0LGUpPT57dmFyIGw7Y29uc3Qgbj10Ll8kQU47aWYobj09PXZvaWQgMClyZXR1cm4hMTtmb3IoY29uc3QgaSBvZiBuKShsPWkuXyRBTyk9PW51bGx8fGwuY2FsbChpLGUsITEpLGZuKGksZSk7cmV0dXJuITB9LGJsPXQ9PntsZXQgZSxuO2Rve2lmKChlPXQuXyRBTSk9PT12b2lkIDApYnJlYWs7bj1lLl8kQU4sbi5kZWxldGUodCksdD1lfXdoaWxlKChuPT1udWxsP3ZvaWQgMDpuLnNpemUpPT09MCl9LFhjPXQ9Pntmb3IobGV0IGU7ZT10Ll8kQU07dD1lKXtsZXQgbj1lLl8kQU47aWYobj09PXZvaWQgMCllLl8kQU49bj1uZXcgU2V0O2Vsc2UgaWYobi5oYXModCkpYnJlYWs7bi5hZGQodCkscHUoZSl9fTtmdW5jdGlvbiBmdSh0KXt0aGlzLl8kQU4hPT12b2lkIDA/KGJsKHRoaXMpLHRoaXMuXyRBTT10LFhjKHRoaXMpKTp0aGlzLl8kQU09dH1mdW5jdGlvbiBBdSh0LGU9ITEsbj0wKXtjb25zdCBsPXRoaXMuXyRBSCxpPXRoaXMuXyRBTjtpZihpIT09dm9pZCAwJiZpLnNpemUhPT0wKWlmKGUpaWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IHI9bjtyPGwubGVuZ3RoO3IrKylmbihsW3JdLCExKSxibChsW3JdKTtlbHNlIGwhPW51bGwmJihmbihsLCExKSxibChsKSk7ZWxzZSBmbih0aGlzLHQpfWNvbnN0IHB1PXQ9Pnt0LnR5cGU9PUxpLkNISUxEJiYodC5fJEFQPz8odC5fJEFQPUF1KSx0Ll8kQVE/Pyh0Ll8kQVE9ZnUpKX07bGV0IFp1PWNsYXNzIGV4dGVuZHMgVGl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRBTj12b2lkIDB9XyRBVChlLG4sbCl7c3VwZXIuXyRBVChlLG4sbCksWGModGhpcyksdGhpcy5pc0Nvbm5lY3RlZD1lLl8kQVV9XyRBTyhlLG49ITApe3ZhciBsLGk7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT8obD10aGlzLnJlY29ubmVjdGVkKT09bnVsbHx8bC5jYWxsKHRoaXMpOihpPXRoaXMuZGlzY29ubmVjdGVkKT09bnVsbHx8aS5jYWxsKHRoaXMpKSxuJiYoZm4odGhpcyxlKSxibCh0aGlzKSl9c2V0VmFsdWUoZSl7aWYobXUodGhpcy5fJEN0KSl0aGlzLl8kQ3QuXyRBSShlLHRoaXMpO2Vsc2V7Y29uc3Qgbj1bLi4udGhpcy5fJEN0Ll8kQUhdO25bdGhpcy5fJENpXT1lLHRoaXMuXyRDdC5fJEFJKG4sdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX07LyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi9jb25zdCBHdT0oKT0+bmV3IFh1O2xldCBYdT1jbGFzc3t9O2NvbnN0IERsPW5ldyBXZWFrTWFwLFF0PUtpKGNsYXNzIGV4dGVuZHMgWnV7cmVuZGVyKHQpe3JldHVybiBjZX11cGRhdGUodCxbZV0pe3ZhciBsO2NvbnN0IG49ZSE9PXRoaXMuRztyZXR1cm4gbiYmdGhpcy5HIT09dm9pZCAwJiZ0aGlzLnJ0KHZvaWQgMCksKG58fHRoaXMubHQhPT10aGlzLmN0KSYmKHRoaXMuRz1lLHRoaXMuaHQ9KGw9dC5vcHRpb25zKT09bnVsbD92b2lkIDA6bC5ob3N0LHRoaXMucnQodGhpcy5jdD10LmVsZW1lbnQpKSxjZX1ydCh0KXtpZih0aGlzLmlzQ29ubmVjdGVkfHwodD12b2lkIDApLHR5cGVvZiB0aGlzLkc9PSJmdW5jdGlvbiIpe2NvbnN0IGU9dGhpcy5odD8/Z2xvYmFsVGhpcztsZXQgbj1EbC5nZXQoZSk7bj09PXZvaWQgMCYmKG49bmV3IFdlYWtNYXAsRGwuc2V0KGUsbikpLG4uZ2V0KHRoaXMuRykhPT12b2lkIDAmJnRoaXMuRy5jYWxsKHRoaXMuaHQsdm9pZCAwKSxuLnNldCh0aGlzLkcsdCksdCE9PXZvaWQgMCYmdGhpcy5HLmNhbGwodGhpcy5odCx0KX1lbHNlIHRoaXMuRy52YWx1ZT10fWdldCBsdCgpe3ZhciB0LGU7cmV0dXJuIHR5cGVvZiB0aGlzLkc9PSJmdW5jdGlvbiI/KHQ9RGwuZ2V0KHRoaXMuaHQ/P2dsb2JhbFRoaXMpKT09bnVsbD92b2lkIDA6dC5nZXQodGhpcy5HKTooZT10aGlzLkcpPT1udWxsP3ZvaWQgMDplLnZhbHVlfWRpc2Nvbm5lY3RlZCgpe3RoaXMubHQ9PT10aGlzLmN0JiZ0aGlzLnJ0KHZvaWQgMCl9cmVjb25uZWN0ZWQoKXt0aGlzLnJ0KHRoaXMuY3QpfX0pO2NsYXNzIEl1IGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGV4dGFyZWFSZWY9R3UoKSx0aGlzLl92YWx1ZT0iIix0aGlzLl9hdXRvUmVzaXplPSExLHRoaXMuX2F1dG9Gb2N1cz0hMSx0aGlzLl9wbGFjZWhvbGRlcj0iIix0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLmFkanVzdEhlaWdodD0oKT0+e2NvbnN0IGU9dGhpcy50ZXh0YXJlYVJlZi52YWx1ZTtpZighZXx8IXRoaXMuX2F1dG9SZXNpemUpcmV0dXJuO2NvbnN0IG49ZS5zY3JvbGxUb3AsbD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxpPXBhcnNlSW50KGwuYm9yZGVyVG9wV2lkdGgsMTApfHwwLHI9cGFyc2VJbnQobC5ib3JkZXJCb3R0b21XaWR0aCwxMCl8fDAsbz1lLmNsb25lTm9kZSghMCk7by5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG8uc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixvLnN0eWxlLmhlaWdodD0iYXV0byIsby5zdHlsZS53aWR0aD1sLndpZHRoLG8uc3R5bGUubWluSGVpZ2h0PWwubWluSGVpZ2h0LG8uc3R5bGUubWF4SGVpZ2h0PWwubWF4SGVpZ2h0LG8uc3R5bGUucGFkZGluZz1sLnBhZGRpbmcsby5zdHlsZS5mb250PWwuZm9udCxvLnN0eWxlLmxpbmVIZWlnaHQ9bC5saW5lSGVpZ2h0LG8uc3R5bGUubGV0dGVyU3BhY2luZz1sLmxldHRlclNwYWNpbmcsby5zdHlsZS53b3JkU3BhY2luZz1sLndvcmRTcGFjaW5nLG8uc3R5bGUud2hpdGVTcGFjZT1sLndoaXRlU3BhY2Usby5zdHlsZS53b3JkQnJlYWs9bC53b3JkQnJlYWssby5zdHlsZS5ib3hTaXppbmc9bC5ib3hTaXppbmcsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKTtsZXQgYT1vLnNjcm9sbEhlaWdodDtsLmJveFNpemluZyE9PSJib3JkZXItYm94IiYmKGErPWkrciksYT1vLnNjcm9sbEhlaWdodCtpK3IsZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChvKTtjb25zdCBjPXBhcnNlRmxvYXQobC5taW5IZWlnaHQpfHwwLGQ9cGFyc2VGbG9hdChsLm1heEhlaWdodCl8fDEvMDthPU1hdGgubWF4KGMsTWF0aC5taW4oYSxkKSksZS5zdHlsZS5oZWlnaHQ9YCR7YX1weGAsZS5zY3JvbGxUb3A9bn0sdGhpcy5oYW5kbGVJbnB1dD1lPT57Y29uc3Qgbj1lLnRhcmdldDt0aGlzLl92YWx1ZT1uLnZhbHVlLHRoaXMuX2F1dG9SZXNpemUmJnRoaXMuYWRqdXN0SGVpZ2h0KCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGl0LXRleHRhcmVhLWlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLl92YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJhdXRvLXJlc2l6ZSIsInZhbHVlIiwiYXV0b2ZvY3VzIiwiY2xhc3MiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwicm93cyIsImNvbHMiXX1jb25uZWN0ZWRDYWxsYmFjaygpe2lmKHRoaXMuX3JlbmRlcigpLHRoaXMudGV4dGFyZWFSZWYudmFsdWUmJih0aGlzLl9hdXRvUmVzaXplJiYodGhpcy5fc2V0dXBBdXRvUmVzaXplKCksdGhpcy5hZGp1c3RIZWlnaHQoKSksdGhpcy5fYXV0b0ZvY3VzKSl7dGhpcy50ZXh0YXJlYVJlZi52YWx1ZS5mb2N1cygpO2NvbnN0IGU9dGhpcy50ZXh0YXJlYVJlZi52YWx1ZS52YWx1ZS5sZW5ndGg7dGhpcy50ZXh0YXJlYVJlZi52YWx1ZS5zZXRTZWxlY3Rpb25SYW5nZShlLGUpfX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX3RlYXJkb3duQXV0b1Jlc2l6ZSgpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhlLG4sbCl7aWYobj09PWwmJmUhPT0iZGlzYWJsZWQiJiZlIT09ImF1dG9mb2N1cyImJmUhPT0iYXV0by1yZXNpemUiJiYoZT09PSJkaXNhYmxlZCImJnRoaXMuX2Rpc2FibGVkPT09KGwhPT1udWxsKXx8ZT09PSJhdXRvZm9jdXMiJiZ0aGlzLl9hdXRvRm9jdXM9PT0obCE9PW51bGwpfHxlPT09ImF1dG8tcmVzaXplIiYmdGhpcy5fYXV0b1Jlc2l6ZT09PShsIT09bnVsbCl8fGUhPT0iZGlzYWJsZWQiJiZlIT09ImF1dG8tZm9jdXMiJiZlIT09ImF1dG8tcmVzaXplIikpcmV0dXJuO2xldCBpPSEwO3N3aXRjaChlKXtjYXNlImF1dG8tcmVzaXplIjpjb25zdCByPWwhPT1udWxsO3RoaXMuX2F1dG9SZXNpemUhPT1yJiYodGhpcy5fYXV0b1Jlc2l6ZT1yLHRoaXMudGV4dGFyZWFSZWYudmFsdWUmJih0aGlzLl9hdXRvUmVzaXplPyh0aGlzLl9zZXR1cEF1dG9SZXNpemUoKSx0aGlzLmFkanVzdEhlaWdodCgpKToodGhpcy5fdGVhcmRvd25BdXRvUmVzaXplKCksdGhpcy50ZXh0YXJlYVJlZi52YWx1ZS5zdHlsZS5oZWlnaHQ9IiIpKSk7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fdmFsdWUhPT0obHx8IiIpJiYodGhpcy5fdmFsdWU9bHx8IiIsdGhpcy50ZXh0YXJlYVJlZi52YWx1ZSYmdGhpcy50ZXh0YXJlYVJlZi52YWx1ZS52YWx1ZSE9PXRoaXMuX3ZhbHVlJiYodGhpcy50ZXh0YXJlYVJlZi52YWx1ZS52YWx1ZT10aGlzLl92YWx1ZSksdGhpcy5fYXV0b1Jlc2l6ZSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5hZGp1c3RIZWlnaHQoKSkpO2JyZWFrO2Nhc2UiYXV0b2ZvY3VzIjp0aGlzLl9hdXRvRm9jdXM9bCE9PW51bGwsaT0hMTticmVhaztjYXNlImNsYXNzIjppPSExO2JyZWFrO2Nhc2UicGxhY2Vob2xkZXIiOnRoaXMuX3BsYWNlaG9sZGVyPWx8fCIiO2JyZWFrO2Nhc2UiZGlzYWJsZWQiOnRoaXMuX2Rpc2FibGVkPWwhPT1udWxsO2JyZWFrO2Nhc2Uicm93cyI6dGhpcy5fcm93cz1sP3BhcnNlSW50KGwsMTApOnZvaWQgMDticmVhaztjYXNlImNvbHMiOnRoaXMuX2NvbHM9bD9wYXJzZUludChsLDEwKTp2b2lkIDA7YnJlYWs7ZGVmYXVsdDppPSExfWkmJnRoaXMuX3JlbmRlcigpfV9zZXR1cEF1dG9SZXNpemUoKXshdGhpcy50ZXh0YXJlYVJlZi52YWx1ZXx8dGhpcy5yZXNpemVPYnNlcnZlcnx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuYWRqdXN0SGVpZ2h0KSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmFkanVzdEhlaWdodCksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudGV4dGFyZWFSZWYudmFsdWUpKX1fdGVhcmRvd25BdXRvUmVzaXplKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5hZGp1c3RIZWlnaHQpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnRleHRhcmVhUmVmLnZhbHVlJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLnRleHRhcmVhUmVmLnZhbHVlKSx0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMCl9Z2V0SW50ZXJuYWxUZXh0YXJlYUNsYXNzZXMoKXtyZXR1cm57ImludGVybmFsLXRleHRhcmVhIjohMCwiYXV0by1yZXNpemUtYWN0aXZlIjp0aGlzLl9hdXRvUmVzaXplfX1fcmVuZGVyKCl7Y29uc3QgZT1PYAoJCQk8c3R5bGU+CgkJCQkuaW50ZXJuYWwtdGV4dGFyZWE6ZGlzYWJsZWQgewoJCQkJCWN1cnNvcjogbm90LWFsbG93ZWQ7CgkJCQkJb3BhY2l0eTogMC43OwoJCQkJfQoKCQkJCS5pbnRlcm5hbC10ZXh0YXJlYSB7CgkJCQkJd2lkdGg6IDEwMCU7CgkJCQkJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CgkJCQkJYm9yZGVyOiBub25lOwoJCQkJCXJlc2l6ZTogbm9uZTsKCQkJCQlvdmVyZmxvdzogaGlkZGVuOwoJCQkJfQoKCQkJCS5pbnRlcm5hbC10ZXh0YXJlYTpmb2N1cyB7CgkJCQkJb3V0bGluZTogbm9uZTsKCQkJCX0KCQkJPC9zdHlsZT4KCQkJPHRleHRhcmVhCgkJCQlwYXJ0PSJ0ZXh0YXJlYSIKCQkJCWNsYXNzPSR7dHQodGhpcy5nZXRJbnRlcm5hbFRleHRhcmVhQ2xhc3NlcygpKX0KCQkJCSR7UXQodGhpcy50ZXh0YXJlYVJlZil9CgkJCQkudmFsdWU9JHt0aGlzLl92YWx1ZX0KCQkJCT9kaXNhYmxlZD0ke3RoaXMuX2Rpc2FibGVkfQoJCQkJcGxhY2Vob2xkZXI9JHt0aGlzLl9wbGFjZWhvbGRlcnx8IiJ9CgkJCQk/YXV0b2ZvY3VzPSR7dGhpcy5hdXRvZm9jdXN9CgkJCQlyb3dzPSR7dGhpcy5fcm93cyE9PXZvaWQgMD90aGlzLl9yb3dzOnRoaXMuX2F1dG9SZXNpemU/MTpjZX0KCQkJCWNvbHM9JHt0aGlzLl9jb2xzIT09dm9pZCAwP3RoaXMuX2NvbHM6Y2V9CgkJCQlAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQoJCQkJQGZvY3VzPSR7KCk9PnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRm9jdXNFdmVudCgiZm9jdXMiLHtidWJibGVzOiExLGNvbXBvc2VkOiEwfSkpfQoJCQkJQGJsdXI9JHsoKT0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBGb2N1c0V2ZW50KCJibHVyIix7YnViYmxlczohMSxjb21wb3NlZDohMH0pKX0KCQkJCWFyaWEtbGFiZWw9JHt0aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpfHx0aGlzLl9wbGFjZWhvbGRlcnx8InRleHRhcmVhIn0KCQkJPjwvdGV4dGFyZWE+CgkJYDtYdChlLHRoaXMpLHRoaXMudGV4dGFyZWFSZWYudmFsdWUmJnRoaXMudGV4dGFyZWFSZWYudmFsdWUudmFsdWUhPT10aGlzLl92YWx1ZSYmKHRoaXMudGV4dGFyZWFSZWYudmFsdWUudmFsdWU9dGhpcy5fdmFsdWUpLHRoaXMuX2F1dG9Gb2N1cyYmc2V0VGltZW91dCgoKT0+e3ZhciBuOyhuPXRoaXMudGV4dGFyZWFSZWYudmFsdWUpPT1udWxsfHxuLmZvY3VzKCl9LDApfX1jbGFzcyBCbHtjb25zdHJ1Y3RvcihlLG49ITApe3RoaXMuY29udGFpbmVyPWUsbiYmdGhpcy5yZW5kZXIoKX1yZW5kZXIoKXtYdCh0aGlzLnRlbXBsYXRlLHRoaXMuY29udGFpbmVyKX1kZXN0cm95KCl7WHQoY2UsdGhpcy5jb250YWluZXIpfX1jbGFzcyBSdSBleHRlbmRzIEJse2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoZSwhMSksdGhpcy5jb250YWluZXI9ZSx0aGlzLmNvbmY9bix0aGlzLl9kZXN0cm95UHJvbWlzZT1uZXcgUHJvbWlzZShsPT57dGhpcy5fcmVzb2x2ZURlc3Ryb3lQcm9taXNlPWx9KX1nZXQgdGVtcGxhdGUoKXtjb25zdHt2YXJpYW50OmUsdGl0bGU6bn09dGhpcy5jb25mLGw9YHRvYXN0IHRvYXN0LS0ke2V9YCxpPUFlYAo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9Im5vbmUiPgogIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80NDM3Xzc2MDEwKSI+CiAgICA8cGF0aCBkPSJNMTcuNDk4NyAxMC4wMDA3QzE3LjQ5ODcgNS44NTg1MSAxNC4xNDA4IDIuNTAwNjUgOS45OTg3IDIuNTAwNjVDNS44NTY1NiAyLjUwMDY1IDIuNDk4NyA1Ljg1ODUxIDIuNDk4NyAxMC4wMDA3QzIuNDk4NyAxNC4xNDI4IDUuODU2NTYgMTcuNTAwNiA5Ljk5ODcgMTcuNTAwNkMxNC4xNDA4IDE3LjUwMDYgMTcuNDk4NyAxNC4xNDI4IDE3LjQ5ODcgMTAuMDAwN1pNMTEuOTA5NSA3Ljc0NDc5QzEyLjIzNDkgNy40MTkzNSAxMi43NjI1IDcuNDE5MzUgMTMuMDg3OSA3Ljc0NDc5QzEzLjQxMzMgOC4wNzAyMyAxMy40MTMzIDguNTk3NzQgMTMuMDg3OSA4LjkyMzE4TDkuNzU0NTYgMTIuMjU2NUM5LjQyOTEyIDEyLjU4MTkgOC45MDE1OSAxMi41ODE5IDguNTc2MTcgMTIuMjU2NUw2LjkwOTUgMTAuNTg5OEw2Ljg1MjU0IDEwLjUyNjRDNi41ODU1OSAxMC4xOTkxIDYuNjA0NDUgOS43MTY1NiA2LjkwOTUgOS40MTE0NkM3LjIxNDYgOS4xMDYzNiA3LjY5NzEgOS4wODc1NCA4LjAyNDQxIDkuMzU0NDlMOC4wODc4OSA5LjQxMTQ2TDkuMTY1MzYgMTAuNDg4OUwxMS45MDk1IDcuNzQ0NzlaTTE5LjE2NTQgMTAuMDAwN0MxOS4xNjU0IDE1LjA2MzMgMTUuMDYxMyAxOS4xNjczIDkuOTk4NyAxOS4xNjczQzQuOTM2MDkgMTkuMTY3MyAwLjgzMjAzMSAxNS4wNjMzIDAuODMyMDMxIDEwLjAwMDdDMC44MzIwMzEgNC45MzgwNCA0LjkzNjA5IDAuODMzOTg0IDkuOTk4NyAwLjgzMzk4NEMxNS4wNjEzIDAuODMzOTg0IDE5LjE2NTQgNC45MzgwNCAxOS4xNjU0IDEwLjAwMDdaIiBmaWxsPSIjMjVCQTNCIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwMF80NDM3Xzc2MDEwIj4KICAgICAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJ3aGl0ZSIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+Cjwvc3ZnPgoJCWA7cmV0dXJuIE9gCgkJCTxzdHlsZT4KCQkJCS8qIEJhc2UgVG9hc3QgU3R5bGVzIG1hdGNoaW5nIHRoZSBGaWdtYSBkZXNpZ24gKi8KCQkJCS50b2FzdCB7CgkJCQkJcGFkZGluZzogMTBweCAxNnB4OwoJCQkJCWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsKCQkJCQlib3gtc2hhZG93OiAwcHggNHB4IDExcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKCQkJCQlvdmVyZmxvdzogaGlkZGVuOwoJCQkJCWJvcmRlci1yYWRpdXM6IDEycHg7CgkJCQkJYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTsKCQkJCQliYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDBweCk7CgkJCQkJZGlzcGxheTogaW5saW5lLWZsZXg7CgkJCQkJanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwoJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJbWFyZ2luLWJvdHRvbTogMTBweDsKCQkJCQlvcGFjaXR5OiAwOwoJCQkJCXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDsKCQkJCQlwb2ludGVyLWV2ZW50czogYXV0bzsKCQkJCQltYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKCQkJCQlib3gtc2l6aW5nOiBib3JkZXItYm94OwoJCQkJfQoKCQkJCS50b2FzdC5pcy12aXNpYmxlIHsKCQkJCQlvcGFjaXR5OiAxOwoJCQkJfQoKCQkJCS8qIENvbnRlbnQgd3JhcHBlciAqLwoJCQkJLnRvYXN0X19jb250ZW50IHsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCWZsZXgtZGlyZWN0aW9uOiByb3c7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CgkJCQkJZ2FwOiAxMHB4OwoJCQkJCWZsZXgtc2hyaW5rOiAwOwoJCQkJfQoKCQkJCS8qIEljb24gV3JhcHBlciAqLwoJCQkJLnRvYXN0X19pY29uLXdyYXBwZXIgewoJCQkJCXdpZHRoOiAyMHB4OwoJCQkJCWhlaWdodDogMjBweDsKCQkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJZmxleC1zaHJpbms6IDA7CgkJCQl9CgoJCQkJLyogVGV4dCBTdHlsZSAqLwoJCQkJLnRvYXN0X19tZXNzYWdlIHsKCQkJCQljb2xvcjogI2ZmZmZmZjsKCQkJCQlmb250LXNpemU6IDE0cHg7CgkJCQkJZm9udC1mYW1pbHk6ICdTRiBQcm8nLCBzYW5zLXNlcmlmOwoJCQkJCWZvbnQtd2VpZ2h0OiA0MDA7CgkJCQkJbGluZS1oZWlnaHQ6IDIycHg7CgkJCQkJbGV0dGVyLXNwYWNpbmc6IC0wLjE1NHB4OwoJCQkJCXdvcmQtd3JhcDogYnJlYWstd29yZDsKCQkJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQkJfQoKCQkJCS8qIFNwZWNpZmljIHZhcmlhbnQgc3R5bGVzICovCgkJCQkudG9hc3QtLXN1Y2Nlc3MgLnRvYXN0X19pY29uLXdyYXBwZXIgewoJCQkJCS8qIFN1Y2Nlc3MgaWNvbiBjb2xvciBpcyBoYW5kbGVkIGJ5IHRoZSBTVkcgZmlsbCBpdHNlbGYgKi8KCQkJCX0KCgkJCQkudG9hc3QtLWVycm9yIHsKCQkJCQkvKiDlgYforr4gZXJyb3Ig5Y+Y5L2T5pyJ5LiN5ZCM55qE6IOM5pmv6Imy5oiW6L655qGGICovCgkJCQkJYmFja2dyb3VuZDogI2ZmZGRkZDsgLyog56S65L6L6ZSZ6K+v6IOM5pmv6ImyICovCgkJCQkJb3V0bGluZTogMXB4IHJnYmEoMjU1LCAwLCAwLCAwLjIpIHNvbGlkOwoJCQkJfQoJCQkJLnRvYXN0LS1lcnJvciAudG9hc3RfX2ljb24td3JhcHBlciBzdmcgcGF0aCB7CgkJCQkJZmlsbDogI2Y0NDMzNjsgLyog56S65L6L6ZSZ6K+v5Zu+5qCH6aKc6ImyICovCgkJCQl9CgkJCQkudG9hc3QtLWVycm9yIC50b2FzdF9fbWVzc2FnZSB7CgkJCQkJY29sb3I6ICNmNDQzMzY7IC8qIOekuuS+i+mUmeivr+aWh+acrOminOiJsiAqLwoJCQkJfQoJCQk8L3N0eWxlPgoJCQk8ZGl2IGNsYXNzPSR7bH0+CgkJCQk8ZGl2IGNsYXNzPSJ0b2FzdF9fY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0idG9hc3RfX2ljb24td3JhcHBlciI+JHtlPT09InN1Y2Nlc3MiP2k6IiJ9PC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0idG9hc3RfX21lc3NhZ2UiPiR7bn08L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQlgfXNob3coKXt0aGlzLnJlbmRlcigpO2NvbnN0IGU9dGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcigiLnRvYXN0Iik7ZSYmKHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2UuY2xhc3NMaXN0LmFkZCgiaXMtdmlzaWJsZSIpfSksc2V0VGltZW91dCgoKT0+e3RoaXMuZGVzdHJveSgpfSwzZTMpKX1kZXN0cm95KCl7Y29uc3QgZT10aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIudG9hc3QiKTtlPyhlLmNsYXNzTGlzdC5yZW1vdmUoImlzLXZpc2libGUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCgpPT57c3VwZXIuZGVzdHJveSgpLGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpLHRoaXMuX3Jlc29sdmVEZXN0cm95UHJvbWlzZSgpfSx7b25jZTohMH0pKTooc3VwZXIuZGVzdHJveSgpLHRoaXMuX3Jlc29sdmVEZXN0cm95UHJvbWlzZSgpKX1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3lQcm9taXNlfX1jb25zdCBFdT0idG9hc3QtbWFuYWdlci1jb250YWluZXIiO2NsYXNzIHl1e2NvbnN0cnVjdG9yKCl7dGhpcy5jdXJyZW50VG9hc3RzPVtdfWluaXRSb290KGUpe3RoaXMucm9vdENvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnJvb3RDb250YWluZXIuaWQ9RXUsZS5hcHBlbmRDaGlsZCh0aGlzLnJvb3RDb250YWluZXIpLHRoaXMucm9vdENvbnRhaW5lci5zdHlsZS5jc3NUZXh0PWAKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICB0b3A6IDIwcHg7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IC8qIOaWsOeahCBUb2FzdCDlnKjlupXpg6jvvIzml6fnmoTlkJHkuIrmjqggKi8KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgei1pbmRleDogMTAwMDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIOWFgeiuuOeCueWHu+epv+mAjyBUb2FzdCDlrrnlmaggKi8KICAgIGB9c2hvd1RvYXN0KGUpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhdXRvIix0aGlzLnJvb3RDb250YWluZXIucHJlcGVuZChuKTtjb25zdCBsPW5ldyBSdShuLGUpO3RoaXMuY3VycmVudFRvYXN0cy5wdXNoKGwpLGwuc2hvdygpLGwuZGVzdHJveWVkLnRoZW4oKCk9Pnt0aGlzLnJlbW92ZVRvYXN0KGwpfSl9cmVtb3ZlVG9hc3QoZSl7dGhpcy5jdXJyZW50VG9hc3RzPXRoaXMuY3VycmVudFRvYXN0cy5maWx0ZXIobj0+biE9PWUpLGUuY29udGFpbmVyJiZlLmNvbnRhaW5lci5wYXJlbnROb2RlJiZlLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUuY29udGFpbmVyKX1jbGVhckFsbFRvYXN0cygpe3RoaXMuY3VycmVudFRvYXN0cy5mb3JFYWNoKGU9PmUuZGVzdHJveSgpKSx0aGlzLmN1cnJlbnRUb2FzdHM9W119fWNvbnN0IGlsPW5ldyB5dSx2dT10PT5PYDxzdHlsZT4KCQkuc3Bpbm5lciB7CgkJCXdpZHRoOiAyMHB4OwoJCQloZWlnaHQ6IDIwcHg7CgkJCWJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwoJCQlib3JkZXItdG9wOiAycHggc29saWQgd2hpdGU7CgkJCWJvcmRlci1yYWRpdXM6IDUwJTsKCQkJYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKCQkJdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CgkJfQoKCgkJQGtleWZyYW1lcyBzcGluIHsKCQkJMCUgewoJCQkJdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CgkJCX0KCQkJMTAwJSB7CgkJCQl0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwoJCQl9CgkJfQoJPC9zdHlsZT4KCiAgPHNwYW4gY2xhc3M9InNwaW5uZXIiPjwvc3Bhbj5gO2NsYXNzIFFye2NvbnN0cnVjdG9yKGUsbixsLGkpe3RoaXMuZGVzdHJveWVkPSExLHRoaXMuZXZlbnQ9ZSx0aGlzLmhhbmRsZXI9bix0aGlzLmVtaXR0ZXI9bCx0aGlzLmxpc3RlbkJ5PWl9dW5yZWdpc3Rlcigpe3RoaXMuZW1pdHRlci5vZmYodGhpcy5ldmVudCx0aGlzKSx0aGlzLl9kZXN0cm95KCl9X2Rlc3Ryb3koKXtyZXR1cm4gdGhpcy5kZXN0cm95ZWQ/ITE6KHRoaXMuaGFuZGxlcj1udWxsLHRoaXMuZW1pdHRlcj1udWxsLHRoaXMuZGVzdHJveWVkPSEwLCEwKX19Y2xhc3MgU3V7Y29uc3RydWN0b3IoKXt0aGlzLl9ldmVudHM9e319b24oZSxuKXt2YXIgaTtpZighbil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGhhbmRsZXIhIC0tRXZlbnRFbWl0dGVyIik7dGhpcy5fZXZlbnRzW2VdfHwodGhpcy5fZXZlbnRzW2VdPVtdKTtjb25zdCBsPW5ldyBRcihlLG4sdGhpcyxudWxsKTtyZXR1cm4oaT10aGlzLl9ldmVudHNbZV0pPT1udWxsfHxpLnB1c2gobCksbH1saXN0ZW5CeShlLG4sbCl7dmFyIHI7aWYoIWwpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBoYW5kbGVyISAtLUV2ZW50RW1pdHRlciIpO3RoaXMuX2V2ZW50c1tuXXx8KHRoaXMuX2V2ZW50c1tuXT1bXSk7Y29uc3QgaT1uZXcgUXIobixsLHRoaXMsZSk7cmV0dXJuKHI9dGhpcy5fZXZlbnRzW25dKT09bnVsbHx8ci5wdXNoKGkpLGl9b25jZShlLG4pe2NvbnN0IGw9dGhpcy5vbihlLGk9PntuKGkpLGwudW5yZWdpc3RlcigpfSk7cmV0dXJuIGx9ZW1pdChlLG49bnVsbCl7aWYoIXRoaXMuX2V2ZW50c1tlXSlyZXR1cm4hMTtmb3IoY29uc3QgbCBvZiB0aGlzLl9ldmVudHNbZV0pbC5kZXN0cm95ZWR8fGwuaGFuZGxlci5jYWxsKHRoaXMsbik7cmV0dXJuITB9b2ZmKGUsbil7dmFyIGwsaTtpZighdGhpcy5fZXZlbnRzW2VdKXJldHVybiExO2lmKG4pe2ZvcihsZXQgcj10aGlzLl9ldmVudHNbZV0sbz0wO288ci5sZW5ndGg7bysrKXtjb25zdCBhPXJbb107aWYoYT09PW4pcmV0dXJuIHRoaXMuX2V2ZW50c1tlXT0obD10aGlzLl9ldmVudHNbZV0pPT1udWxsP3ZvaWQgMDpsLmZpbHRlcihjPT5jIT09YSksKChpPXRoaXMuX2V2ZW50c1tlXSk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKT09PTAmJmRlbGV0ZSB0aGlzLl9ldmVudHNbZV0sITB9cmV0dXJuIGNvbnNvbGUuZXJyb3Iobix0aGlzKSxjb25zb2xlLmVycm9yKGBDYW5ub3QgZmluZCBsaXN0ZW5lciBvZiAke2V9IC0tRXZlbnRFbWl0dGVyYCksITF9Zm9yKGxldCByPXRoaXMuX2V2ZW50c1tlXSxvPTA7bzxyLmxlbmd0aDtvKyspe2NvbnN0IGE9cltvXTt0aGlzLl9ldmVudHNbZV1bb109bnVsbCxhPT1udWxsfHxhLl9kZXN0cm95KCl9cmV0dXJuIGRlbGV0ZSB0aGlzLl9ldmVudHNbZV0sITB9c3RvcExpc3RlbkJ5KGUpe3ZhciBuO2Zvcihjb25zdCBsIGluIHRoaXMuX2V2ZW50cyl0aGlzLl9ldmVudHNbbF09KG49dGhpcy5fZXZlbnRzW2xdKT09bnVsbD92b2lkIDA6bi5maWx0ZXIoaT0+aS5saXN0ZW5CeT09PWU/KGkuX2Rlc3Ryb3koKSwhMSk6ITApfXJlbW92ZUFsbExpc3RlbmVycygpe2Zvcihjb25zdCBlIGluIHRoaXMuX2V2ZW50cyl7Y29uc3Qgbj10aGlzLl9ldmVudHNbZV07aWYobil7Zm9yKGxldCBsPW4saT0wO2k8bC5sZW5ndGg7aSsrKW5baV09bnVsbDt0aGlzLl9ldmVudHNbZV09bnVsbH19fX1jb25zdCBSbj1uZXcgU3U7Y2xhc3MgQ3V7Y29uc3RydWN0b3IoKXt0aGlzLnZpZXdUeXBlPSJkZWZhdWx0Iix0aGlzLnByZXZWaWV3VHlwZT0iZGVmYXVsdCJ9c2V0Vmlld1R5cGUoZSl7dGhpcy5wcmV2Vmlld1R5cGU9dGhpcy52aWV3VHlwZSx0aGlzLnZpZXdUeXBlPWUsUm4uZW1pdCgib25WaWV3VHlwZUNoYW5nZSIse30pfX1jb25zdCBxZT1uZXcgQ3U7ZnVuY3Rpb24gV3UodCl7Y29uc3QgZT10LmtleT09PSJ6Inx8dC5rZXk9PT0iWiI7cmV0dXJuL01hY3xpUG9kfGlQaG9uZXxpUGFkLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk/ZSYmdC5tZXRhS2V5JiYhdC5jdHJsS2V5JiYhdC5hbHRLZXk6ZSYmdC5jdHJsS2V5JiYhdC5tZXRhS2V5JiYhdC5hbHRLZXl9ZnVuY3Rpb24gQnUoKXtsZXQgdD0hMSxlPVtdO3JldHVybntnZXQgcmVhZHkoKXtyZXR1cm4gdH0sbWFya1JlYWR5OigpPT57dHx8KHQ9ITAsZS5mb3JFYWNoKCh7cmVzb2x2ZTpufSk9Pm4oKSksZT1bXSl9LHdhaXRSZWFkeTphc3luYygpPT50PyEwOm5ldyBQcm9taXNlKChsLGkpPT57ZS5wdXNoKHtyZXNvbHZlOmwscmVqZWN0Oml9KX0pLG9uUmVhZHkobil7dGhpcy53YWl0UmVhZHkoKS50aGVuKG4pfSxjbGVhcjooKT0+e3Q9ITEsZS5mb3JFYWNoKCh7cmVqZWN0Om59KT0+bigpKSxlPVtdfSxjbGVhcldpdGhvdXRQcm9taXNlOigpPT57dD0hMX19fWZ1bmN0aW9uIFZpKHQsZSl7aWYodHlwZW9mIHdpbmRvdz4idSIpcmV0dXJuO2NvbnN0IG49d2luZG93LmxvY2F0aW9uLmhyZWYsbD1uZXcgVVJMKG4pO3QuZm9yRWFjaChpPT57bC5zZWFyY2hQYXJhbXMuZGVsZXRlKGkpfSksd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCIiLGwudG9TdHJpbmcoKSl9ZnVuY3Rpb24gSWMoKXtyZXR1cm4vQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9ZnVuY3Rpb24gTnUodCl7ZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJsb2FkaW5nIj90KCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCk9Pnt0KCl9KX1mdW5jdGlvbiBGdSgpe3JldHVyblsoKT0+dHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5fX05FWFRfREFUQV9fLCgpPT5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19uZXh0IikhPT1udWxsLCgpPT5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHRbc3JjKj0iX25leHQvIl0nKS5sZW5ndGg+MCwoKT0+ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tocmVmKj0iX25leHQvIl0nKS5sZW5ndGg+MF0uc29tZShlPT5lKCkpfWFzeW5jIGZ1bmN0aW9uIFl1KCl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntsZXQgZT0hMTtmdW5jdGlvbiBuKCl7dmFyIGk7KGk9d2luZG93PT1udWxsP3ZvaWQgMDp3aW5kb3cubmV4dCkhPW51bGwmJmkucm91dGVyJiZzZXRUaW1lb3V0KCgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3QoITApLGU9ITB9KX0sMjAwKX1jb25zdCBsPXNldEludGVydmFsKCgpPT57bigpLGUmJmNsZWFySW50ZXJ2YWwobCl9LDEwMCk7c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwobCksdCghMSl9LDFlNCl9KX1jbGFzcyBVdXtnZXQgc3BhY2VJZCgpe3ZhciBlO3JldHVybihlPXdpbmRvdy5fX21hbnVzX3NwYWNlX2VkaXRvcl9pbmZvKT09bnVsbD92b2lkIDA6ZS5zcGFjZUlkfWdldCBhcGlIb3N0KCl7dmFyIGU7cmV0dXJuKChlPXdpbmRvdy5fX21hbnVzX19nbG9iYWxfZW52KT09bnVsbD92b2lkIDA6ZS5hcGlIb3N0KT8/Imh0dHBzOi8vYXBpLm1hbnVzLmltIn1nZXQgaG9zdCgpe3ZhciBlO3JldHVybigoZT13aW5kb3cuX19tYW51c19fZ2xvYmFsX2Vudik9PW51bGw/dm9pZCAwOmUuaG9zdCk/PyJodHRwczovL21hbnVzLmltIn1nZXQgcGF0Y2hMaXN0KCl7dmFyIGU7cmV0dXJuKChlPXdpbmRvdy5fX21hbnVzX3NwYWNlX2VkaXRvcl9pbmZvKT09bnVsbD92b2lkIDA6ZS5wYXRjaExpc3QpPz9bXX1nZXQgYW1wbGl0dWRlS2V5KCl7cmV0dXJuIHdpbmRvdy5fX21hbnVzX19nbG9iYWxfZW52LmFtcGxpdHVkZUtleT8/IiJ9fWNvbnN0IFNlPW5ldyBVdSxKdT17c25ha2VUb0NhbWVsOnQ9PnQucmVwbGFjZSgvKF9bYS16XSkvZyxlPT5lLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgiXyIsIiIpKSxjYW1lbFRvU25ha2U6dD0+dC5yZXBsYWNlKC8oW0EtWl0pL2csZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKS5yZXBsYWNlKC9eXy8sIiIpfTtmdW5jdGlvbiB4dSh0LGUpe3JldHVybiBKdS5jYW1lbFRvU25ha2UoZSl9ZnVuY3Rpb24gVmwodCxlKXtyZXR1cm4gZSYmKEFycmF5LmlzQXJyYXkoZSk/ZS5tYXAobj0+VmwodCxuKSk6dHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5rZXlzKGUpLnJlZHVjZSgobixsKT0+e2NvbnN0IGk9ZVtsXSxyPXh1KHQsbCk7cmV0dXJuIG5bcl09VmwodCxpKSxufSx7fSk6ZSl9dmFyIG1pPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG1pPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihuLGwpe24uX19wcm90b19fPWx9fHxmdW5jdGlvbihuLGwpe2Zvcih2YXIgaSBpbiBsKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsLGkpJiYobltpXT1sW2ldKX0sbWkodCxlKX07ZnVuY3Rpb24gTWUodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTttaSh0LGUpO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfXZhciBOPWZ1bmN0aW9uKCl7cmV0dXJuIE49T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciBuLGw9MSxpPWFyZ3VtZW50cy5sZW5ndGg7bDxpO2wrKyl7bj1hcmd1bWVudHNbbF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZmkodCxlKXt2YXIgbj17fTtmb3IodmFyIGwgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsKSYmZS5pbmRleE9mKGwpPDAmJihuW2xdPXRbbF0pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLGw9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPGwubGVuZ3RoO2krKyllLmluZGV4T2YobFtpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsbFtpXSkmJihuW2xbaV1dPXRbbFtpXV0pO3JldHVybiBufWZ1bmN0aW9uIFcodCxlLG4sbCl7ZnVuY3Rpb24gaShyKXtyZXR1cm4gciBpbnN0YW5jZW9mIG4/cjpuZXcgbihmdW5jdGlvbihvKXtvKHIpfSl9cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24ocixvKXtmdW5jdGlvbiBhKHMpe3RyeXtkKGwubmV4dChzKSl9Y2F0Y2godSl7byh1KX19ZnVuY3Rpb24gYyhzKXt0cnl7ZChsLnRocm93KHMpKX1jYXRjaCh1KXtvKHUpfX1mdW5jdGlvbiBkKHMpe3MuZG9uZT9yKHMudmFsdWUpOmkocy52YWx1ZSkudGhlbihhLGMpfWQoKGw9bC5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIEModCxlKXt2YXIgbj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoclswXSYxKXRocm93IHJbMV07cmV0dXJuIHJbMV19LHRyeXM6W10sb3BzOltdfSxsLGkscixvPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIG8ubmV4dD1hKDApLG8udGhyb3c9YSgxKSxvLnJldHVybj1hKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gYShkKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGMoW2Qsc10pfX1mdW5jdGlvbiBjKGQpe2lmKGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7byYmKG89MCxkWzBdJiYobj0wKSksbjspdHJ5e2lmKGw9MSxpJiYocj1kWzBdJjI/aS5yZXR1cm46ZFswXT9pLnRocm93fHwoKHI9aS5yZXR1cm4pJiZyLmNhbGwoaSksMCk6aS5uZXh0KSYmIShyPXIuY2FsbChpLGRbMV0pKS5kb25lKXJldHVybiByO3N3aXRjaChpPTAsciYmKGQ9W2RbMF0mMixyLnZhbHVlXSksZFswXSl7Y2FzZSAwOmNhc2UgMTpyPWQ7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOmRbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPWRbMV0sZD1bMF07Y29udGludWU7Y2FzZSA3OmQ9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYocj1uLnRyeXMsIShyPXIubGVuZ3RoPjAmJnJbci5sZW5ndGgtMV0pJiYoZFswXT09PTZ8fGRbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKGRbMF09PT0zJiYoIXJ8fGRbMV0+clswXSYmZFsxXTxyWzNdKSl7bi5sYWJlbD1kWzFdO2JyZWFrfWlmKGRbMF09PT02JiZuLmxhYmVsPHJbMV0pe24ubGFiZWw9clsxXSxyPWQ7YnJlYWt9aWYociYmbi5sYWJlbDxyWzJdKXtuLmxhYmVsPXJbMl0sbi5vcHMucHVzaChkKTticmVha31yWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9ZD1lLmNhbGwodCxuKX1jYXRjaChzKXtkPVs2LHNdLGk9MH1maW5hbGx5e2w9cj0wfWlmKGRbMF0mNSl0aHJvdyBkWzFdO3JldHVybnt2YWx1ZTpkWzBdP2RbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBEKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixuPWUmJnRbZV0sbD0wO2lmKG4pcmV0dXJuIG4uY2FsbCh0KTtpZih0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJmw+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2wrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFUodCxlKXt2YXIgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIGw9bi5jYWxsKHQpLGkscj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKGk9bC5uZXh0KCkpLmRvbmU7KXIucHVzaChpLnZhbHVlKX1jYXRjaChhKXtvPXtlcnJvcjphfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1sLnJldHVybikmJm4uY2FsbChsKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIHJ9ZnVuY3Rpb24gaih0LGUsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBsPTAsaT1lLmxlbmd0aCxyO2w8aTtsKyspKHJ8fCEobCBpbiBlKSkmJihyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsbCkpLHJbbF09ZVtsXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBfdCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF90Pyh0aGlzLnY9dCx0aGlzKTpuZXcgX3QodCl9ZnVuY3Rpb24gd3UodCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgbD1uLmFwcGx5KHQsZXx8W10pLGkscj1bXTtyZXR1cm4gaT1PYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvcj09ImZ1bmN0aW9uIj9Bc3luY0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iLG8pLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gbyhnKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKS50aGVuKGcsdSl9fWZ1bmN0aW9uIGEoZyxiKXtsW2ddJiYoaVtnXT1mdW5jdGlvbihtKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZixwKXtyLnB1c2goW2csbSxmLHBdKT4xfHxjKGcsbSl9KX0sYiYmKGlbZ109YihpW2ddKSkpfWZ1bmN0aW9uIGMoZyxiKXt0cnl7ZChsW2ddKGIpKX1jYXRjaChtKXtoKHJbMF1bM10sbSl9fWZ1bmN0aW9uIGQoZyl7Zy52YWx1ZSBpbnN0YW5jZW9mIF90P1Byb21pc2UucmVzb2x2ZShnLnZhbHVlLnYpLnRoZW4ocyx1KTpoKHJbMF1bMl0sZyl9ZnVuY3Rpb24gcyhnKXtjKCJuZXh0IixnKX1mdW5jdGlvbiB1KGcpe2MoInRocm93IixnKX1mdW5jdGlvbiBoKGcsYil7ZyhiKSxyLnNoaWZ0KCksci5sZW5ndGgmJmMoclswXVswXSxyWzBdWzFdKX19ZnVuY3Rpb24ga3UodCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLG47cmV0dXJuIGU/ZS5jYWxsKHQpOih0PXR5cGVvZiBEPT0iZnVuY3Rpb24iP0QodCk6dFtTeW1ib2wuaXRlcmF0b3JdKCksbj17fSxsKCJuZXh0IiksbCgidGhyb3ciKSxsKCJyZXR1cm4iKSxuW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuKTtmdW5jdGlvbiBsKHIpe25bcl09dFtyXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYyl7bz10W3JdKG8pLGkoYSxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBpKHIsbyxhLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGQpe3Ioe3ZhbHVlOmQsZG9uZTphfSl9LG8pfX12YXIgRHQ7KGZ1bmN0aW9uKHQpe3QuU0VUPSIkc2V0Iix0LlNFVF9PTkNFPSIkc2V0T25jZSIsdC5BREQ9IiRhZGQiLHQuQVBQRU5EPSIkYXBwZW5kIix0LlBSRVBFTkQ9IiRwcmVwZW5kIix0LlJFTU9WRT0iJHJlbW92ZSIsdC5QUkVJTlNFUlQ9IiRwcmVJbnNlcnQiLHQuUE9TVElOU0VSVD0iJHBvc3RJbnNlcnQiLHQuVU5TRVQ9IiR1bnNldCIsdC5DTEVBUl9BTEw9IiRjbGVhckFsbCJ9KShEdHx8KER0PXt9KSk7dmFyIFN0OyhmdW5jdGlvbih0KXt0LklERU5USUZZPSIkaWRlbnRpZnkiLHQuR1JPVVBfSURFTlRJRlk9IiRncm91cGlkZW50aWZ5Iix0LlJFVkVOVUU9InJldmVudWVfYW1vdW50In0pKFN0fHwoU3Q9e30pKTt2YXIgTHI9Ii0iLE5sPSJBTVAiLHp1PSIiLmNvbmNhdChObCwiX3Vuc2VudCIpLFJjPSIkZGVmYXVsdF9pbnN0YW5jZSIsRWM9Imh0dHBzOi8vYXBpMi5hbXBsaXR1ZGUuY29tLzIvaHR0cGFwaSIsUXU9Imh0dHBzOi8vYXBpLmV1LmFtcGxpdHVkZS5jb20vMi9odHRwYXBpIixMdT0iaHR0cHM6Ly9hcGkyLmFtcGxpdHVkZS5jb20vYmF0Y2giLEt1PSJodHRwczovL2FwaS5ldS5hbXBsaXR1ZGUuY29tL2JhdGNoIixUdT0idXRtX2NhbXBhaWduIixNdT0idXRtX2NvbnRlbnQiLEh1PSJ1dG1faWQiLER1PSJ1dG1fbWVkaXVtIixqdT0idXRtX3NvdXJjZSIsX3U9InV0bV90ZXJtIixLcj0iZGNsaWQiLFRyPSJmYmNsaWQiLE1yPSJnYnJhaWQiLEhyPSJnY2xpZCIsRHI9ImtvX2NsaWNrX2lkIixqcj0ibGlfZmF0X2lkIixfcj0ibXNjbGtpZCIsT3I9InJkdF9jaWQiLFByPSJ0dGNsaWQiLCRyPSJ0d2NsaWQiLHFyPSJ3YnJhaWQiLE1pPXt1dG1fY2FtcGFpZ246dm9pZCAwLHV0bV9jb250ZW50OnZvaWQgMCx1dG1faWQ6dm9pZCAwLHV0bV9tZWRpdW06dm9pZCAwLHV0bV9zb3VyY2U6dm9pZCAwLHV0bV90ZXJtOnZvaWQgMCxyZWZlcnJlcjp2b2lkIDAscmVmZXJyaW5nX2RvbWFpbjp2b2lkIDAsZGNsaWQ6dm9pZCAwLGdicmFpZDp2b2lkIDAsZ2NsaWQ6dm9pZCAwLGZiY2xpZDp2b2lkIDAsa29fY2xpY2tfaWQ6dm9pZCAwLGxpX2ZhdF9pZDp2b2lkIDAsbXNjbGtpZDp2b2lkIDAscmR0X2NpZDp2b2lkIDAsdHRjbGlkOnZvaWQgMCx0d2NsaWQ6dm9pZCAwLHdicmFpZDp2b2lkIDB9LG1sPVsiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwiYWNjZXNzLWNvbnRyb2wtYWxsb3ctY3JlZGVudGlhbHMiLCJhY2Nlc3MtY29udHJvbC1leHBvc2UtaGVhZGVycyIsImFjY2Vzcy1jb250cm9sLW1heC1hZ2UiLCJhY2Nlc3MtY29udHJvbC1hbGxvdy1tZXRob2RzIiwiYWNjZXNzLWNvbnRyb2wtYWxsb3ctaGVhZGVycyIsImFjY2VwdC1wYXRjaCIsImFjY2VwdC1yYW5nZXMiLCJhZ2UiLCJhbGxvdyIsImFsdC1zdmMiLCJjYWNoZS1jb250cm9sIiwiY29ubmVjdGlvbiIsImNvbnRlbnQtZGlzcG9zaXRpb24iLCJjb250ZW50LWVuY29kaW5nIiwiY29udGVudC1sYW5ndWFnZSIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC1sb2NhdGlvbiIsImNvbnRlbnQtbWQ1IiwiY29udGVudC1yYW5nZSIsImNvbnRlbnQtdHlwZSIsImRhdGUiLCJkZWx0YS1iYXNlIiwiZXRhZyIsImV4cGlyZXMiLCJpbSIsImxhc3QtbW9kaWZpZWQiLCJsaW5rIiwibG9jYXRpb24iLCJwZXJtYW5lbnQiLCJwM3AiLCJwcmFnbWEiLCJwcm94eS1hdXRoZW50aWNhdGUiLCJwdWJsaWMta2V5LXBpbnMiLCJyZXRyeS1hZnRlciIsInNlcnZlciIsInN0YXR1cyIsInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCJ0cmFpbGVyIiwidHJhbnNmZXItZW5jb2RpbmciLCJ0ayIsInVwZ3JhZGUiLCJ2YXJ5IiwidmlhIiwid2FybmluZyIsInd3dy1hdXRoZW50aWNhdGUiLCJ4LWIzLXRyYWNlaWQiLCJ4LWZyYW1lLW9wdGlvbnMiXSxPdT1bImF1dGhvcml6YXRpb24iLCJjb29raWUiLCJzZXQtY29va2llIl0sUHU9MWUzLEFpPWZ1bmN0aW9uKHQpe2lmKE9iamVjdC5rZXlzKHQpLmxlbmd0aD5QdSlyZXR1cm4hMTtmb3IodmFyIGUgaW4gdCl7dmFyIG49dFtlXTtpZigheWMoZSxuKSlyZXR1cm4hMX1yZXR1cm4hMH0seWM9ZnVuY3Rpb24odCxlKXt2YXIgbixsO2lmKHR5cGVvZiB0IT0ic3RyaW5nIilyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KGUpKXt2YXIgaT0hMDt0cnl7Zm9yKHZhciByPUQoZSksbz1yLm5leHQoKTshby5kb25lO289ci5uZXh0KCkpe3ZhciBhPW8udmFsdWU7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4hMTtpZih0eXBlb2YgYT09Im9iamVjdCIpaT1pJiZBaShhKTtlbHNlIGlmKCFbIm51bWJlciIsInN0cmluZyJdLmluY2x1ZGVzKHR5cGVvZiBhKSlyZXR1cm4hMTtpZighaSlyZXR1cm4hMX19Y2F0Y2goYyl7bj17ZXJyb3I6Y319ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKGw9ci5yZXR1cm4pJiZsLmNhbGwocil9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fX1lbHNle2lmKGU9PW51bGwpcmV0dXJuITE7aWYodHlwZW9mIGU9PSJvYmplY3QiKXJldHVybiBBaShlKTtpZighWyJudW1iZXIiLCJzdHJpbmciLCJib29sZWFuIl0uaW5jbHVkZXModHlwZW9mIGUpKXJldHVybiExfXJldHVybiEwfSxxdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fcHJvcGVydHlTZXQ9bmV3IFNldCx0aGlzLl9wcm9wZXJ0aWVzPXt9fXJldHVybiB0LnByb3RvdHlwZS5nZXRVc2VyUHJvcGVydGllcz1mdW5jdGlvbigpe3JldHVybiBOKHt9LHRoaXMuX3Byb3BlcnRpZXMpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5fc2FmZVNldChvZS5TRVQsZSxuKSx0aGlzfSx0LnByb3RvdHlwZS5zZXRPbmNlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuU0VUX09OQ0UsZSxuKSx0aGlzfSx0LnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5fc2FmZVNldChvZS5BUFBFTkQsZSxuKSx0aGlzfSx0LnByb3RvdHlwZS5wcmVwZW5kPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuUFJFUEVORCxlLG4pLHRoaXN9LHQucHJvdG90eXBlLnBvc3RJbnNlcnQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5fc2FmZVNldChvZS5QT1NUSU5TRVJULGUsbiksdGhpc30sdC5wcm90b3R5cGUucHJlSW5zZXJ0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuUFJFSU5TRVJULGUsbiksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuUkVNT1ZFLGUsbiksdGhpc30sdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUsbil7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuQURELGUsbiksdGhpc30sdC5wcm90b3R5cGUudW5zZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3NhZmVTZXQob2UuVU5TRVQsZSxMciksdGhpc30sdC5wcm90b3R5cGUuY2xlYXJBbGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllcz17fSx0aGlzLl9wcm9wZXJ0aWVzW29lLkNMRUFSX0FMTF09THIsdGhpc30sdC5wcm90b3R5cGUuX3NhZmVTZXQ9ZnVuY3Rpb24oZSxuLGwpe2lmKHRoaXMuX3ZhbGlkYXRlKGUsbixsKSl7dmFyIGk9dGhpcy5fcHJvcGVydGllc1tlXTtyZXR1cm4gaT09PXZvaWQgMCYmKGk9e30sdGhpcy5fcHJvcGVydGllc1tlXT1pKSxpW25dPWwsdGhpcy5fcHJvcGVydHlTZXQuYWRkKG4pLCEwfXJldHVybiExfSx0LnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxuLGwpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzW29lLkNMRUFSX0FMTF0hPT12b2lkIDB8fHRoaXMuX3Byb3BlcnR5U2V0LmhhcyhuKT8hMTplPT09b2UuQUREP3R5cGVvZiBsPT0ibnVtYmVyIjplIT09b2UuVU5TRVQmJmUhPT1vZS5SRU1PVkU/eWMobixsKTohMH0sdH0pKCksb2U7KGZ1bmN0aW9uKHQpe3QuU0VUPSIkc2V0Iix0LlNFVF9PTkNFPSIkc2V0T25jZSIsdC5BREQ9IiRhZGQiLHQuQVBQRU5EPSIkYXBwZW5kIix0LlBSRVBFTkQ9IiRwcmVwZW5kIix0LlJFTU9WRT0iJHJlbW92ZSIsdC5QUkVJTlNFUlQ9IiRwcmVJbnNlcnQiLHQuUE9TVElOU0VSVD0iJHBvc3RJbnNlcnQiLHQuVU5TRVQ9IiR1bnNldCIsdC5DTEVBUl9BTEw9IiRjbGVhckFsbCJ9KShvZXx8KG9lPXt9KSk7dmFyICR1PVtvZS5DTEVBUl9BTEwsb2UuVU5TRVQsb2UuU0VULG9lLlNFVF9PTkNFLG9lLkFERCxvZS5BUFBFTkQsb2UuUFJFUEVORCxvZS5QUkVJTlNFUlQsb2UuUE9TVElOU0VSVCxvZS5SRU1PVkVdLHF1PSJFdmVudCB0cmFja2VkIHN1Y2Nlc3NmdWxseSIsZWc9IlVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQiLHRnPSJFdmVudCByZWplY3RlZCBkdWUgdG8gZXhjZWVkZWQgcmV0cnkgY291bnQiLG5nPSJFdmVudCBza2lwcGVkIGR1ZSB0byBvcHRPdXQgY29uZmlnIixsZz0iRXZlbnQgcmVqZWN0ZWQgZHVlIHRvIG1pc3NpbmcgQVBJIGtleSIsaWc9IkludmFsaWQgQVBJIGtleSIscmc9IkNsaWVudCBub3QgaW5pdGlhbGl6ZWQiLEllOyhmdW5jdGlvbih0KXt0LlVua25vd249InVua25vd24iLHQuU2tpcHBlZD0ic2tpcHBlZCIsdC5TdWNjZXNzPSJzdWNjZXNzIix0LlJhdGVMaW1pdD0icmF0ZV9saW1pdCIsdC5QYXlsb2FkVG9vTGFyZ2U9InBheWxvYWRfdG9vX2xhcmdlIix0LkludmFsaWQ9ImludmFsaWQiLHQuRmFpbGVkPSJmYWlsZWQiLHQuVGltZW91dD0iVGltZW91dCIsdC5TeXN0ZW1FcnJvcj0iU3lzdGVtRXJyb3IifSkoSWV8fChJZT17fSkpO3ZhciBPdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLG49PT12b2lkIDAmJihuPUllLlVua25vd24pLHtldmVudDp0LGNvZGU6ZSxtZXNzYWdlOm59fSxGZT1mdW5jdGlvbigpe3ZhciB0PSJhbXBJbnRlZ3JhdGlvbkNvbnRleHQiO2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXNbdF08InUiKXJldHVybiBnbG9iYWxUaGlzW3RdO2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IilyZXR1cm4gZ2xvYmFsVGhpcztpZih0eXBlb2Ygd2luZG93PCJ1IilyZXR1cm4gd2luZG93O2lmKHR5cGVvZiBzZWxmPCJ1IilyZXR1cm4gc2VsZjtpZih0eXBlb2YgZ2xvYmFsPCJ1IilyZXR1cm4gZ2xvYmFsfSxvZz1mdW5jdGlvbih0KXtyZXR1cm4gdD8odF5NYXRoLnJhbmRvbSgpKjE2Pj50LzQpLnRvU3RyaW5nKDE2KTooU3RyaW5nKDFlNykrU3RyaW5nKC0xZTMpK1N0cmluZygtNGUzKStTdHJpbmcoLThlMykrU3RyaW5nKC0xZTExKSkucmVwbGFjZSgvWzAxOF0vZyxXdCl9LGVvPWooW10sVShBcnJheSgyNTYpLmtleXMoKSksITEpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpfSksV3Q9ZnVuY3Rpb24odCl7dmFyIGUsbj1GZSgpO2lmKCEoISgoZT1uPT1udWxsP3ZvaWQgMDpuLmNyeXB0byk9PT1udWxsfHxlPT09dm9pZCAwKSYmZS5nZXRSYW5kb21WYWx1ZXMpKXJldHVybiBvZyh0KTt2YXIgbD1uLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMTYpKTtyZXR1cm4gbFs2XT1sWzZdJjE1fDY0LGxbOF09bFs4XSY2M3wxMjgsaihbXSxVKGwuZW50cmllcygpKSwhMSkubWFwKGZ1bmN0aW9uKGkpe3ZhciByPVUoaSwyKSxvPXJbMF0sYT1yWzFdO3JldHVybls0LDYsOCwxMF0uaW5jbHVkZXMobyk/Ii0iLmNvbmNhdChlb1thXSk6ZW9bYV19KS5qb2luKCIiKX0sYWc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt0aGlzLmNsaWVudD1lLHRoaXMucXVldWU9W10sdGhpcy5hcHBseWluZz0hMSx0aGlzLnBsdWdpbnM9W119cmV0dXJuIHQucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGUsbil7dmFyIGwsaTtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMucGx1Z2lucy5zb21lKGZ1bmN0aW9uKG8pe3JldHVybiBvLm5hbWU9PT1lLm5hbWV9KT8odGhpcy5sb2dnZXJQcm92aWRlci53YXJuKCJQbHVnaW4gd2l0aCBuYW1lICIuY29uY2F0KGUubmFtZSwiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZyByZWdpc3RyYXRpb24iKSksWzJdKTooZS5uYW1lPT09dm9pZCAwJiYoZS5uYW1lPVd0KCksdGhpcy5sb2dnZXJQcm92aWRlci53YXJuKGBQbHVnaW4gbmFtZSBpcyB1bmRlZmluZWQuIAogICAgICBHZW5lcmF0aW5nIGEgcmFuZG9tIFVVSUQgZm9yIHBsdWdpbiBuYW1lOiBgLmNvbmNhdChlLm5hbWUsYC4gCiAgICAgIFNldCBhIG5hbWUgZm9yIHRoZSBwbHVnaW4gdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGFkZGVkIG11bHRpcGxlIHRpbWVzLmApKSksZS50eXBlPShsPWUudHlwZSkhPT1udWxsJiZsIT09dm9pZCAwP2w6ImVucmljaG1lbnQiLFs0LChpPWUuc2V0dXApPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5jYWxsKGUsbix0aGlzLmNsaWVudCldKTtjYXNlIDE6cmV0dXJuIHIuc2VudCgpLHRoaXMucGx1Z2lucy5wdXNoKGUpLFsyXX19KX0pfSx0LnByb3RvdHlwZS5kZXJlZ2lzdGVyPWZ1bmN0aW9uKGUsbil7dmFyIGw7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGkscjtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGk9dGhpcy5wbHVnaW5zLmZpbmRJbmRleChmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT09ZX0pLGk9PT0tMT8obi5sb2dnZXJQcm92aWRlci53YXJuKCJQbHVnaW4gd2l0aCBuYW1lICIuY29uY2F0KGUsIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcgZGVyZWdpc3RyYXRpb24iKSksWzJdKToocj10aGlzLnBsdWdpbnNbaV0sdGhpcy5wbHVnaW5zLnNwbGljZShpLDEpLFs0LChsPXIudGVhcmRvd24pPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC5jYWxsKHIpXSk7Y2FzZSAxOnJldHVybiBvLnNlbnQoKSxbMl19fSl9KX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oZSl7dGhpcy5hcHBseWluZz0hMTt2YXIgbj10aGlzLnBsdWdpbnM7bi5tYXAoZnVuY3Rpb24obCl7dmFyIGk7cmV0dXJuKGk9bC50ZWFyZG93bik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmNhbGwobCl9KSx0aGlzLnBsdWdpbnM9W10sdGhpcy5jbGllbnQ9ZX0sdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsKXtuLnF1ZXVlLnB1c2goW2UsbF0pLG4uc2NoZWR1bGVBcHBseSgwKX0pfSx0LnByb3RvdHlwZS5zY2hlZHVsZUFwcGx5PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5hcHBseWluZ3x8KHRoaXMuYXBwbHlpbmc9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe24uYXBwbHkobi5xdWV1ZS5zaGlmdCgpKS50aGVuKGZ1bmN0aW9uKCl7bi5hcHBseWluZz0hMSxuLnF1ZXVlLmxlbmd0aD4wJiZuLnNjaGVkdWxlQXBwbHkoMCl9KX0sZSkpfSx0LnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbihlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixsLGkscixvLGEsYyxnLGIsZCxzLHUsaCxnLGIsbSxmLHAsQSxYLHksSTtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKFMpe3N3aXRjaChTLmxhYmVsKXtjYXNlIDA6aWYoIWUpcmV0dXJuWzJdO249VShlLDEpLGw9blswXSxpPVUoZSwyKSxyPWlbMV0sdGhpcy5sb2dnZXJQcm92aWRlci5sb2coIlRpbWVsaW5lLmFwcGx5OiBJbml0aWFsIGV2ZW50IixsKSxvPXRoaXMucGx1Z2lucy5maWx0ZXIoZnVuY3Rpb24oRyl7cmV0dXJuIEcudHlwZT09PSJiZWZvcmUifSksUy5sYWJlbD0xO2Nhc2UgMTpTLnRyeXMucHVzaChbMSw2LDcsOF0pLGE9RChvKSxjPWEubmV4dCgpLFMubGFiZWw9MjtjYXNlIDI6cmV0dXJuIGMuZG9uZT9bMyw1XTooZz1jLnZhbHVlLGcuZXhlY3V0ZT9bNCxnLmV4ZWN1dGUoTih7fSxsKSldOlszLDRdKTtjYXNlIDM6aWYoYj1TLnNlbnQoKSxiPT09bnVsbClyZXR1cm4gdGhpcy5sb2dnZXJQcm92aWRlci5sb2coIlRpbWVsaW5lLmFwcGx5OiBFdmVudCBmaWx0ZXJlZCBvdXQgYnkgYmVmb3JlIHBsdWdpbiAnIi5jb25jYXQoU3RyaW5nKGcubmFtZSksIicsIGV2ZW50OiAiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkobCkpKSxyKHtldmVudDpsLGNvZGU6MCxtZXNzYWdlOiIifSksWzJdO2w9Yix0aGlzLmxvZ2dlclByb3ZpZGVyLmxvZygiVGltZWxpbmUuYXBwbHk6IEV2ZW50IGFmdGVyIGJlZm9yZSBwbHVnaW4gJyIuY29uY2F0KFN0cmluZyhnLm5hbWUpLCInLCBldmVudDogIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KGwpKSksUy5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gYz1hLm5leHQoKSxbMywyXTtjYXNlIDU6cmV0dXJuWzMsOF07Y2FzZSA2OnJldHVybiBkPVMuc2VudCgpLEE9e2Vycm9yOmR9LFszLDhdO2Nhc2UgNzp0cnl7YyYmIWMuZG9uZSYmKFg9YS5yZXR1cm4pJiZYLmNhbGwoYSl9ZmluYWxseXtpZihBKXRocm93IEEuZXJyb3J9cmV0dXJuWzddO2Nhc2UgODpzPXRoaXMucGx1Z2lucy5maWx0ZXIoZnVuY3Rpb24oRyl7cmV0dXJuIEcudHlwZT09PSJlbnJpY2htZW50Inx8Ry50eXBlPT09dm9pZCAwfSksUy5sYWJlbD05O2Nhc2UgOTpTLnRyeXMucHVzaChbOSwxNCwxNSwxNl0pLHU9RChzKSxoPXUubmV4dCgpLFMubGFiZWw9MTA7Y2FzZSAxMDpyZXR1cm4gaC5kb25lP1szLDEzXTooZz1oLnZhbHVlLGcuZXhlY3V0ZT9bNCxnLmV4ZWN1dGUoTih7fSxsKSldOlszLDEyXSk7Y2FzZSAxMTppZihiPVMuc2VudCgpLGI9PT1udWxsKXJldHVybiB0aGlzLmxvZ2dlclByb3ZpZGVyLmxvZygiVGltZWxpbmUuYXBwbHk6IEV2ZW50IGZpbHRlcmVkIG91dCBieSBlbnJpY2htZW50IHBsdWdpbiAnIi5jb25jYXQoU3RyaW5nKGcubmFtZSksIicsIGV2ZW50OiAiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkobCkpKSxyKHtldmVudDpsLGNvZGU6MCxtZXNzYWdlOiIifSksWzJdO2w9Yix0aGlzLmxvZ2dlclByb3ZpZGVyLmxvZygiVGltZWxpbmUuYXBwbHk6IEV2ZW50IGFmdGVyIGVucmljaG1lbnQgcGx1Z2luICciLmNvbmNhdChTdHJpbmcoZy5uYW1lKSwiJywgZXZlbnQ6ICIpLmNvbmNhdChKU09OLnN0cmluZ2lmeShsKSkpLFMubGFiZWw9MTI7Y2FzZSAxMjpyZXR1cm4gaD11Lm5leHQoKSxbMywxMF07Y2FzZSAxMzpyZXR1cm5bMywxNl07Y2FzZSAxNDpyZXR1cm4gbT1TLnNlbnQoKSx5PXtlcnJvcjptfSxbMywxNl07Y2FzZSAxNTp0cnl7aCYmIWguZG9uZSYmKEk9dS5yZXR1cm4pJiZJLmNhbGwodSl9ZmluYWxseXtpZih5KXRocm93IHkuZXJyb3J9cmV0dXJuWzddO2Nhc2UgMTY6cmV0dXJuIGY9dGhpcy5wbHVnaW5zLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4gRy50eXBlPT09ImRlc3RpbmF0aW9uIn0pLHRoaXMubG9nZ2VyUHJvdmlkZXIubG9nKCJUaW1lbGluZS5hcHBseTogRmluYWwgZXZlbnQgYmVmb3JlIGRlc3RpbmF0aW9ucywgZXZlbnQ6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGwpKSkscD1mLm1hcChmdW5jdGlvbihHKXt2YXIgQj1OKHt9LGwpO3JldHVybiBHLmV4ZWN1dGUoQikuY2F0Y2goZnVuY3Rpb24odil7cmV0dXJuIE90KEIsMCxTdHJpbmcodikpfSl9KSxQcm9taXNlLmFsbChwKS50aGVuKGZ1bmN0aW9uKEcpe3ZhciBCPVUoRywxKSx2PUJbMF0sSj12fHxPdChsLDEwMCwiRXZlbnQgbm90IHRyYWNrZWQsIG5vIGRlc3RpbmF0aW9uIHBsdWdpbnMgb24gdGhlIGluc3RhbmNlIik7cihKKX0pLFsyXX19KX0pfSx0LnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4sbCxpPXRoaXM7cmV0dXJuIEModGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXRoaXMucXVldWUsdGhpcy5xdWV1ZT1bXSxbNCxQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gaS5hcHBseShvKX0pKV07Y2FzZSAxOnJldHVybiByLnNlbnQoKSxuPXRoaXMucGx1Z2lucy5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIG8udHlwZT09PSJkZXN0aW5hdGlvbiJ9KSxsPW4ubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLmZsdXNoJiZvLmZsdXNoKCl9KSxbNCxQcm9taXNlLmFsbChsKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbMl19fSl9KX0sdC5wcm90b3R5cGUub25JZGVudGl0eUNoYW5nZWQ9ZnVuY3Rpb24oZSl7dGhpcy5wbHVnaW5zLmZvckVhY2goZnVuY3Rpb24obil7dmFyIGw7KGw9bi5vbklkZW50aXR5Q2hhbmdlZCk9PT1udWxsfHxsPT09dm9pZCAwfHxsLmNhbGwobixlKX0pfSx0LnByb3RvdHlwZS5vblNlc3Npb25JZENoYW5nZWQ9ZnVuY3Rpb24oZSl7dGhpcy5wbHVnaW5zLmZvckVhY2goZnVuY3Rpb24obil7dmFyIGw7KGw9bi5vblNlc3Npb25JZENoYW5nZWQpPT09bnVsbHx8bD09PXZvaWQgMHx8bC5jYWxsKG4sZSl9KX0sdC5wcm90b3R5cGUub25PcHRPdXRDaGFuZ2VkPWZ1bmN0aW9uKGUpe3RoaXMucGx1Z2lucy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBsOyhsPW4ub25PcHRPdXRDaGFuZ2VkKT09PW51bGx8fGw9PT12b2lkIDB8fGwuY2FsbChuLGUpfSl9LHR9KSgpLGNnPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbD10eXBlb2YgdD09InN0cmluZyI/e2V2ZW50X3R5cGU6dH06dDtyZXR1cm4gTihOKE4oe30sbCksbiksZSYme2V2ZW50X3Byb3BlcnRpZXM6ZX0pfSx2Yz1mdW5jdGlvbih0LGUpe3ZhciBuPU4oTih7fSxlKSx7ZXZlbnRfdHlwZTpTdC5JREVOVElGWSx1c2VyX3Byb3BlcnRpZXM6dC5nZXRVc2VyUHJvcGVydGllcygpfSk7cmV0dXJuIG59LGRnPWZ1bmN0aW9uKHQsZSxuLGwpe3ZhciBpLHI9TihOKHt9LGwpLHtldmVudF90eXBlOlN0LkdST1VQX0lERU5USUZZLGdyb3VwX3Byb3BlcnRpZXM6bi5nZXRVc2VyUHJvcGVydGllcygpLGdyb3VwczooaT17fSxpW3RdPWUsaSl9KTtyZXR1cm4gcn0sc2c9ZnVuY3Rpb24odCxlLG4pe3ZhciBsLGk9bmV3IHF0O2kuc2V0KHQsZSk7dmFyIHI9TihOKHt9LG4pLHtldmVudF90eXBlOlN0LklERU5USUZZLHVzZXJfcHJvcGVydGllczppLmdldFVzZXJQcm9wZXJ0aWVzKCksZ3JvdXBzOihsPXt9LGxbdF09ZSxsKX0pO3JldHVybiByfSx1Zz1mdW5jdGlvbih0LGUpe3JldHVybiBOKE4oe30sZSkse2V2ZW50X3R5cGU6U3QuUkVWRU5VRSxldmVudF9wcm9wZXJ0aWVzOnQuZ2V0RXZlbnRQcm9wZXJ0aWVzKCl9KX0sT2U9ZnVuY3Rpb24odCl7cmV0dXJue3Byb21pc2U6dHx8UHJvbWlzZS5yZXNvbHZlKCl9fSxnZz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe2U9PT12b2lkIDAmJihlPSIkZGVmYXVsdCIpLHRoaXMuaW5pdGlhbGl6aW5nPSExLHRoaXMuaXNSZWFkeT0hMSx0aGlzLnE9W10sdGhpcy5kaXNwYXRjaFE9W10sdGhpcy5sb2dFdmVudD10aGlzLnRyYWNrLmJpbmQodGhpcyksdGhpcy50aW1lbGluZT1uZXcgYWcodGhpcyksdGhpcy5uYW1lPWV9cmV0dXJuIHQucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25maWc9ZSx0aGlzLnRpbWVsaW5lLnJlc2V0KHRoaXMpLHRoaXMudGltZWxpbmUubG9nZ2VyUHJvdmlkZXI9dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIsWzQsdGhpcy5ydW5RdWV1ZWRGdW5jdGlvbnMoInEiKV07Y2FzZSAxOnJldHVybiBuLnNlbnQoKSx0aGlzLmlzUmVhZHk9ITAsWzJdfX0pfSl9LHQucHJvdG90eXBlLnJ1blF1ZXVlZEZ1bmN0aW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixsLGkscixvLGEsYyxkO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocyl7c3dpdGNoKHMubGFiZWwpe2Nhc2UgMDpuPXRoaXNbZV0sdGhpc1tlXT1bXSxzLmxhYmVsPTE7Y2FzZSAxOnMudHJ5cy5wdXNoKFsxLDgsOSwxMF0pLGw9RChuKSxpPWwubmV4dCgpLHMubGFiZWw9MjtjYXNlIDI6cmV0dXJuIGkuZG9uZT9bMyw3XToocj1pLnZhbHVlLG89cigpLG8mJiJwcm9taXNlImluIG8/WzQsby5wcm9taXNlXTpbMyw0XSk7Y2FzZSAzOnJldHVybiBzLnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsb107Y2FzZSA1OnMuc2VudCgpLHMubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGk9bC5uZXh0KCksWzMsMl07Y2FzZSA3OnJldHVyblszLDEwXTtjYXNlIDg6cmV0dXJuIGE9cy5zZW50KCksYz17ZXJyb3I6YX0sWzMsMTBdO2Nhc2UgOTp0cnl7aSYmIWkuZG9uZSYmKGQ9bC5yZXR1cm4pJiZkLmNhbGwobCl9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9cmV0dXJuWzddO2Nhc2UgMTA6cmV0dXJuIHRoaXNbZV0ubGVuZ3RoP1s0LHRoaXMucnVuUXVldWVkRnVuY3Rpb25zKGUpXTpbMywxMl07Y2FzZSAxMTpzLnNlbnQoKSxzLmxhYmVsPTEyO2Nhc2UgMTI6cmV0dXJuWzJdfX0pfSl9LHQucHJvdG90eXBlLnRyYWNrPWZ1bmN0aW9uKGUsbixsKXt2YXIgaT1jZyhlLG4sbCk7cmV0dXJuIE9lKHRoaXMuZGlzcGF0Y2goaSkpfSx0LnByb3RvdHlwZS5pZGVudGlmeT1mdW5jdGlvbihlLG4pe3ZhciBsPXZjKGUsbik7cmV0dXJuIE9lKHRoaXMuZGlzcGF0Y2gobCkpfSx0LnByb3RvdHlwZS5ncm91cElkZW50aWZ5PWZ1bmN0aW9uKGUsbixsLGkpe3ZhciByPWRnKGUsbixsLGkpO3JldHVybiBPZSh0aGlzLmRpc3BhdGNoKHIpKX0sdC5wcm90b3R5cGUuc2V0R3JvdXA9ZnVuY3Rpb24oZSxuLGwpe3ZhciBpPXNnKGUsbixsKTtyZXR1cm4gT2UodGhpcy5kaXNwYXRjaChpKSl9LHQucHJvdG90eXBlLnJldmVudWU9ZnVuY3Rpb24oZSxuKXt2YXIgbD11ZyhlLG4pO3JldHVybiBPZSh0aGlzLmRpc3BhdGNoKGwpKX0sdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzUmVhZHk/dGhpcy5fYWRkUGx1Z2luKGUpOih0aGlzLnEucHVzaCh0aGlzLl9hZGRQbHVnaW4uYmluZCh0aGlzLGUpKSxPZSgpKX0sdC5wcm90b3R5cGUuX2FkZFBsdWdpbj1mdW5jdGlvbihlKXtyZXR1cm4gT2UodGhpcy50aW1lbGluZS5yZWdpc3RlcihlLHRoaXMuY29uZmlnKSl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc1JlYWR5P3RoaXMuX3JlbW92ZVBsdWdpbihlKToodGhpcy5xLnB1c2godGhpcy5fcmVtb3ZlUGx1Z2luLmJpbmQodGhpcyxlKSksT2UoKSl9LHQucHJvdG90eXBlLl9yZW1vdmVQbHVnaW49ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMudGltZWxpbmUuZGVyZWdpc3RlcihlLHRoaXMuY29uZmlnKSl9LHQucHJvdG90eXBlLmRpc3BhdGNoV2l0aENhbGxiYWNrPWZ1bmN0aW9uKGUsbil7aWYoIXRoaXMuaXNSZWFkeSlyZXR1cm4gbihPdChlLDAscmcpKTt0aGlzLnByb2Nlc3MoZSkudGhlbihuKX0sdC5wcm90b3R5cGUuZGlzcGF0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3JldHVybiB0aGlzLmlzUmVhZHk/WzIsdGhpcy5wcm9jZXNzKGUpXTpbMixuZXcgUHJvbWlzZShmdW5jdGlvbihpKXtuLmRpc3BhdGNoUS5wdXNoKG4uZGlzcGF0Y2hXaXRoQ2FsbGJhY2suYmluZChuLGUsaSkpfSldfSl9KX0sdC5wcm90b3R5cGUuZ2V0T3BlcmF0aW9uQXBwbGllZFVzZXJQcm9wZXJ0aWVzPWZ1bmN0aW9uKGUpe3ZhciBuPXt9O2lmKGU9PT12b2lkIDApcmV0dXJuIG47dmFyIGw9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LnZhbHVlcyhEdCkuaW5jbHVkZXMoaSl8fChsW2ldPWVbaV0pfSksJHUuZm9yRWFjaChmdW5jdGlvbihpKXtpZihPYmplY3Qua2V5cyhlKS5pbmNsdWRlcyhpKSl7dmFyIHI9ZVtpXTtzd2l0Y2goaSl7Y2FzZSBEdC5DTEVBUl9BTEw6T2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihvKXtkZWxldGUgbltvXX0pO2JyZWFrO2Nhc2UgRHQuVU5TRVQ6T2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihvKXtkZWxldGUgbltvXX0pO2JyZWFrO2Nhc2UgRHQuU0VUOk9iamVjdC5hc3NpZ24obixyKTticmVha319fSksT2JqZWN0LmFzc2lnbihuLGwpLG59LHQucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scixsLGkscjtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG8udHJ5cy5wdXNoKFswLDIsLDNdKSx0aGlzLmNvbmZpZy5vcHRPdXQ/WzIsT3QoZSwwLG5nKV06KGUuZXZlbnRfdHlwZT09PVN0LklERU5USUZZJiYobj10aGlzLmdldE9wZXJhdGlvbkFwcGxpZWRVc2VyUHJvcGVydGllcyhlLnVzZXJfcHJvcGVydGllcyksdGhpcy50aW1lbGluZS5vbklkZW50aXR5Q2hhbmdlZCh7dXNlclByb3BlcnRpZXM6bn0pKSxbNCx0aGlzLnRpbWVsaW5lLnB1c2goZSldKTtjYXNlIDE6cmV0dXJuIHI9by5zZW50KCksci5jb2RlPT09MjAwP3RoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmxvZyhyLm1lc3NhZ2UpOnIuY29kZT09PTEwMD90aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci53YXJuKHIubWVzc2FnZSk6dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZXJyb3Ioci5tZXNzYWdlKSxbMixyXTtjYXNlIDI6cmV0dXJuIGw9by5zZW50KCksaT1TdHJpbmcobCksdGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZXJyb3IoaSkscj1PdChlLDAsaSksWzIscl07Y2FzZSAzOnJldHVyblsyXX19KX0pfSx0LnByb3RvdHlwZS5zZXRPcHRPdXQ9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaXNSZWFkeSl7dGhpcy5xLnB1c2godGhpcy5fc2V0T3B0T3V0LmJpbmQodGhpcywhIWUpKTtyZXR1cm59dGhpcy5fc2V0T3B0T3V0KGUpfSx0LnByb3RvdHlwZS5fc2V0T3B0T3V0PWZ1bmN0aW9uKGUpe3RoaXMuY29uZmlnLm9wdE91dCE9PWUmJih0aGlzLnRpbWVsaW5lLm9uT3B0T3V0Q2hhbmdlZChlKSx0aGlzLmNvbmZpZy5vcHRPdXQ9ISFlKX0sdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gT2UodGhpcy50aW1lbGluZS5mbHVzaCgpKX0sdC5wcm90b3R5cGUucGx1Z2luPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMudGltZWxpbmUucGx1Z2lucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLm5hbWU9PT1lfSk7aWYobj09PXZvaWQgMCl7dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZGVidWcoIkNhbm5vdCBmaW5kIHBsdWdpbiB3aXRoIG5hbWUgIi5jb25jYXQoZSkpO3JldHVybn1yZXR1cm4gbn0sdC5wcm90b3R5cGUucGx1Z2lucz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aW1lbGluZS5wbHVnaW5zLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIGV9KX0sdH0pKCksaGc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3RoaXMua2V5PSJBTVBfcmVtb3RlX2NvbmZpZ18iLmNvbmNhdChlLnN1YnN0cmluZygwLDEwKSksdGhpcy5sb2dnZXI9bn1yZXR1cm4gdC5wcm90b3R5cGUuZmV0Y2hDb25maWc9ZnVuY3Rpb24oKXt2YXIgZT1udWxsLG49e3JlbW90ZUNvbmZpZzpudWxsLGxhc3RGZXRjaDpuZXcgRGF0ZX07dHJ5e2U9bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXkpfWNhdGNoKGkpe3JldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBsb2NhbHN0b3JhZ2UgZmFpbGVkIHRvIGFjY2VzczogIixpKSxQcm9taXNlLnJlc29sdmUobil9aWYoZT09PW51bGwpcmV0dXJuIHRoaXMubG9nZ2VyLmRlYnVnKCJSZW1vdGUgY29uZmlnIGxvY2Fsc3RvcmFnZSBnZXRzIG51bGwgYmVjYXVzZSB0aGUga2V5IGRvZXMgbm90IGV4aXN0IiksUHJvbWlzZS5yZXNvbHZlKG4pO3RyeXt2YXIgbD1KU09OLnBhcnNlKGUpO3JldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBsb2NhbHN0b3JhZ2UgcGFyc2VkIHN1Y2Nlc3NmdWxseTogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkobCkpKSxQcm9taXNlLnJlc29sdmUoe3JlbW90ZUNvbmZpZzpsLnJlbW90ZUNvbmZpZyxsYXN0RmV0Y2g6bmV3IERhdGUobC5sYXN0RmV0Y2gpfSl9Y2F0Y2goaSl7cmV0dXJuIHRoaXMubG9nZ2VyLmRlYnVnKCJSZW1vdGUgY29uZmlnIGxvY2Fsc3RvcmFnZSBmYWlsZWQgdG8gcGFyc2U6ICIsaSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5rZXkpLFByb21pc2UucmVzb2x2ZShuKX19LHQucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5LEpTT04uc3RyaW5naWZ5KGUpKSx0aGlzLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBsb2NhbHN0b3JhZ2Ugc2V0IHN1Y2Nlc3NmdWxseS4iKSxQcm9taXNlLnJlc29sdmUoITApfWNhdGNoKG4pe3RoaXMubG9nZ2VyLmRlYnVnKCJSZW1vdGUgY29uZmlnIGxvY2Fsc3RvcmFnZSBmYWlsZWQgdG8gc2V0OiAiLG4pfXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpfSx0fSkoKSxiZz0iaHR0cHM6Ly9zci1jbGllbnQtY2ZnLmFtcGxpdHVkZS5jb20vY29uZmlnIixWZz0iaHR0cHM6Ly9zci1jbGllbnQtY2ZnLmV1LmFtcGxpdHVkZS5jb20vY29uZmlnIixtZz0zLGZnPTFlMyxBZz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixsKXtsPT09dm9pZCAwJiYobD0iVVMiKSx0aGlzLmNhbGxiYWNrSW5mb3M9W10sdGhpcy5hcGlLZXk9ZSx0aGlzLnNlcnZlclVybD1sPT09IlVTIj9iZzpWZyx0aGlzLmxvZ2dlcj1uLHRoaXMuc3RvcmFnZT1uZXcgaGcoZSxuKX1yZXR1cm4gdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsbixsKXt2YXIgaT1XdCgpLHI9e2lkOmksa2V5OmUsZGVsaXZlcnlNb2RlOm4sY2FsbGJhY2s6bH07cmV0dXJuIHRoaXMuY2FsbGJhY2tJbmZvcy5wdXNoKHIpLG49PT0iYWxsIj90aGlzLnN1YnNjcmliZUFsbChyKTp0aGlzLnN1YnNjcmliZVdhaXRGb3JSZW1vdGUocixuLnRpbWVvdXQpLGl9LHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMuY2FsbGJhY2tJbmZvcy5maW5kSW5kZXgoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1lfSk7cmV0dXJuIG49PT0tMT8odGhpcy5sb2dnZXIuZGVidWcoIlJlbW90ZSBjb25maWcgY2xpZW50IHVuc3Vic2NyaWJlIGZhaWxlZCBiZWNhdXNlIGNhbGxiYWNrIHdpdGggaWQgIi5jb25jYXQoZSwiIGRvZXNuJ3QgZXhpc3QuIikpLCExKToodGhpcy5jYWxsYmFja0luZm9zLnNwbGljZShuLDEpLHRoaXMubG9nZ2VyLmRlYnVnKCJSZW1vdGUgY29uZmlnIGNsaWVudCB1bnN1YnNjcmliZSBzdWNjZWVkZWQgcmVtb3ZpbmcgY2FsbGJhY2sgd2l0aCBpZCAiLmNvbmNhdChlLCIuIikpLCEwKX0sdC5wcm90b3R5cGUudXBkYXRlQ29uZmlncz1mdW5jdGlvbigpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG49dGhpcztyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3N3aXRjaChsLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaCgpXTtjYXNlIDE6cmV0dXJuIGU9bC5zZW50KCksdGhpcy5zdG9yYWdlLnNldENvbmZpZyhlKSx0aGlzLmNhbGxiYWNrSW5mb3MuZm9yRWFjaChmdW5jdGlvbihpKXtuLnNlbmRDYWxsYmFjayhpLGUsInJlbW90ZSIpfSksWzJdfX0pfSl9LHQucHJvdG90eXBlLnN1YnNjcmliZUFsbD1mdW5jdGlvbihlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixsLGkscj10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbj10aGlzLmZldGNoKCkudGhlbihmdW5jdGlvbihhKXtyLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBjbGllbnQgc3Vic2NyaXB0aW9uIGFsbCBtb2RlIGZldGNoZWQgZnJvbSByZW1vdGU6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGEpKSksci5zZW5kQ2FsbGJhY2soZSxhLCJyZW1vdGUiKSxyLnN0b3JhZ2Uuc2V0Q29uZmlnKGEpfSksbD10aGlzLnN0b3JhZ2UuZmV0Y2hDb25maWcoKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhfSksWzQsUHJvbWlzZS5yYWNlKFtuLGxdKV07Y2FzZSAxOnJldHVybiBpPW8uc2VudCgpLGkhPT12b2lkIDAmJih0aGlzLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBjbGllbnQgc3Vic2NyaXB0aW9uIGFsbCBtb2RlIGZldGNoZWQgZnJvbSBjYWNoZTogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoaSkpKSx0aGlzLnNlbmRDYWxsYmFjayhlLGksImNhY2hlIikpLFs0LG5dO2Nhc2UgMjpyZXR1cm4gby5zZW50KCksWzJdfX0pfSl9LHQucHJvdG90eXBlLnN1YnNjcmliZVdhaXRGb3JSZW1vdGU9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbCxpLGk7cmV0dXJuIEModGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmw9bmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiVGltZW91dCBleGNlZWRlZCIpfSxuKX0pLHIubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHIudHJ5cy5wdXNoKFsxLDMsLDVdKSxbNCxQcm9taXNlLnJhY2UoW3RoaXMuZmV0Y2goKSxsXSldO2Nhc2UgMjpyZXR1cm4gaT1yLnNlbnQoKSx0aGlzLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBjbGllbnQgc3Vic2NyaXB0aW9uIHdhaXQgZm9yIHJlbW90ZSBtb2RlIHJldHVybnMgZnJvbSByZW1vdGUuIiksdGhpcy5zZW5kQ2FsbGJhY2soZSxpLCJyZW1vdGUiKSx0aGlzLnN0b3JhZ2Uuc2V0Q29uZmlnKGkpLFszLDVdO2Nhc2UgMzpyZXR1cm4gci5zZW50KCksdGhpcy5sb2dnZXIuZGVidWcoIlJlbW90ZSBjb25maWcgY2xpZW50IHN1YnNjcmlwdGlvbiB3YWl0IGZvciByZW1vdGUgbW9kZSBleGNlZWRlZCB0aW1lb3V0LiBUcnkgdG8gZmV0Y2ggZnJvbSBjYWNoZS4iKSxbNCx0aGlzLnN0b3JhZ2UuZmV0Y2hDb25maWcoKV07Y2FzZSA0OnJldHVybiBpPXIuc2VudCgpLGkucmVtb3RlQ29uZmlnIT09bnVsbD8odGhpcy5sb2dnZXIuZGVidWcoIlJlbW90ZSBjb25maWcgY2xpZW50IHN1YnNjcmlwdGlvbiB3YWl0IGZvciByZW1vdGUgbW9kZSByZXR1cm5zIGEgY2FjaGVkIGNvcHkuIiksdGhpcy5zZW5kQ2FsbGJhY2soZSxpLCJjYWNoZSIpKToodGhpcy5sb2dnZXIuZGVidWcoIlJlbW90ZSBjb25maWcgY2xpZW50IHN1YnNjcmlwdGlvbiB3YWl0IGZvciByZW1vdGUgbW9kZSBmYWlsZWQgdG8gZmV0Y2ggY2FjaGUuIiksdGhpcy5zZW5kQ2FsbGJhY2soZSxpLCJyZW1vdGUiKSksWzMsNV07Y2FzZSA1OnJldHVyblsyXX19KX0pfSx0LnByb3RvdHlwZS5zZW5kQ2FsbGJhY2s9ZnVuY3Rpb24oZSxuLGwpe2UubGFzdENhbGxiYWNrPW5ldyBEYXRlO3ZhciBpO2Uua2V5P2k9ZS5rZXkuc3BsaXQoIi4iKS5yZWR1Y2UoZnVuY3Rpb24ocixvKXtyZXR1cm4gcj09PW51bGw/cjpvIGluIHI/cltvXTpudWxsfSxuLnJlbW90ZUNvbmZpZyk6aT1uLnJlbW90ZUNvbmZpZyxlLmNhbGxiYWNrKGksbCxuLmxhc3RGZXRjaCl9LHQucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGU9PT12b2lkIDAmJihlPW1nKSxuPT09dm9pZCAwJiYobj1mZyksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbCxpLHIsbyxhLGMsZD10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocyl7c3dpdGNoKHMubGFiZWwpe2Nhc2UgMDpsPW4vZSxpPXtyZW1vdGVDb25maWc6bnVsbCxsYXN0RmV0Y2g6bmV3IERhdGV9LHI9ZnVuY3Rpb24odSl7dmFyIGgsZyxiLG0sZixwO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oQSl7c3dpdGNoKEEubGFiZWwpe2Nhc2UgMDpoPW5ldyBBYm9ydENvbnRyb2xsZXIsZz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGguYWJvcnQoKX0sbiksQS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gQS50cnlzLnB1c2goWzEsNyw4LDldKSxbNCxmZXRjaChvLmdldFVybFBhcmFtcygpLHttZXRob2Q6IkdFVCIsaGVhZGVyczp7QWNjZXB0OiIqLyoifSxzaWduYWw6aC5zaWduYWx9KV07Y2FzZSAyOnJldHVybiBiPUEuc2VudCgpLGIub2s/WzMsNF06WzQsYi50ZXh0KCldO2Nhc2UgMzpyZXR1cm4gbT1BLnNlbnQoKSxvLmxvZ2dlci5kZWJ1ZygiUmVtb3RlIGNvbmZpZyBjbGllbnQgZmV0Y2ggd2l0aCByZXRyeSB0aW1lICIuY29uY2F0KGUsIiBmYWlsZWQgd2l0aCAiKS5jb25jYXQoYi5zdGF0dXMsIjogIikuY29uY2F0KG0pKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsYi5qc29uKCldO2Nhc2UgNTpyZXR1cm4gZj1BLnNlbnQoKSxbMix7dmFsdWU6e3JlbW90ZUNvbmZpZzpmLGxhc3RGZXRjaDpuZXcgRGF0ZX19XTtjYXNlIDY6cmV0dXJuWzMsOV07Y2FzZSA3OnJldHVybiBwPUEuc2VudCgpLHAgaW5zdGFuY2VvZiBFcnJvciYmcC5uYW1lPT09IkFib3J0RXJyb3IiP28ubG9nZ2VyLmRlYnVnKCJSZW1vdGUgY29uZmlnIGNsaWVudCBmZXRjaCB3aXRoIHJldHJ5IHRpbWUgIi5jb25jYXQoZSwiIHRpbWVkIG91dCBhZnRlciAiKS5jb25jYXQobiwibXMiKSk6by5sb2dnZXIuZGVidWcoIlJlbW90ZSBjb25maWcgY2xpZW50IGZldGNoIHdpdGggcmV0cnkgdGltZSAiLmNvbmNhdChlLCIgaXMgcmVqZWN0ZWQgYmVjYXVzZTogIikscCksWzMsOV07Y2FzZSA4OnJldHVybiBjbGVhclRpbWVvdXQoZyksWzddO2Nhc2UgOTpyZXR1cm4gdTxlLTE/WzQsbmV3IFByb21pc2UoZnVuY3Rpb24oWCl7cmV0dXJuIHNldFRpbWVvdXQoWCxkLmdldEppdHRlckRlbGF5KGwpKX0pXTpbMywxMV07Y2FzZSAxMDpBLnNlbnQoKSxBLmxhYmVsPTExO2Nhc2UgMTE6cmV0dXJuWzJdfX0pfSxvPXRoaXMsYT0wLHMubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGE8ZT9bNSxyKGEpXTpbMyw0XTtjYXNlIDI6aWYoYz1zLnNlbnQoKSx0eXBlb2YgYz09Im9iamVjdCIpcmV0dXJuWzIsYy52YWx1ZV07cy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gYSsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMixpXX19KX0pfSx0LnByb3RvdHlwZS5nZXRKaXR0ZXJEZWxheT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUpfSx0LnByb3RvdHlwZS5nZXRVcmxQYXJhbXM9ZnVuY3Rpb24oKXt2YXIgZT1lbmNvZGVVUklDb21wb25lbnQodGhpcy5hcGlLZXkpLG49bmV3IFVSTFNlYXJjaFBhcmFtcztyZXR1cm4gbi5hcHBlbmQoImNvbmZpZ19ncm91cCIsdC5DT05GSUdfR1JPVVApLCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiLyIpLmNvbmNhdChlLCI/IikuY29uY2F0KG4udG9TdHJpbmcoKSl9LHQuQ09ORklHX0dST1VQPSJicm93c2VyIix0fSkoKSxldDsoZnVuY3Rpb24odCl7dFt0Lk5vbmU9MF09Ik5vbmUiLHRbdC5FcnJvcj0xXT0iRXJyb3IiLHRbdC5XYXJuPTJdPSJXYXJuIix0W3QuVmVyYm9zZT0zXT0iVmVyYm9zZSIsdFt0LkRlYnVnPTRdPSJEZWJ1ZyJ9KShldHx8KGV0PXt9KSk7dmFyIEhuPSJBbXBsaXR1ZGUgTG9nZ2VyICIsU2M9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubG9nTGV2ZWw9ZXQuTm9uZX1yZXR1cm4gdC5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMubG9nTGV2ZWw9ZXQuTm9uZX0sdC5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPWV0Lldhcm4pLHRoaXMubG9nTGV2ZWw9ZX0sdC5wcm90b3R5cGUubG9nPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3RoaXMubG9nTGV2ZWw8ZXQuVmVyYm9zZXx8Y29uc29sZS5sb2coIiIuY29uY2F0KEhuLCJbTG9nXTogIikuY29uY2F0KGUuam9pbigiICIpKSl9LHQucHJvdG90eXBlLndhcm49ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07dGhpcy5sb2dMZXZlbDxldC5XYXJufHxjb25zb2xlLndhcm4oIiIuY29uY2F0KEhuLCJbV2Fybl06ICIpLmNvbmNhdChlLmpvaW4oIiAiKSkpfSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuXTt0aGlzLmxvZ0xldmVsPGV0LkVycm9yfHxjb25zb2xlLmVycm9yKCIiLmNvbmNhdChIbiwiW0Vycm9yXTogIikuY29uY2F0KGUuam9pbigiICIpKSl9LHQucHJvdG90eXBlLmRlYnVnPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3RoaXMubG9nTGV2ZWw8ZXQuRGVidWd8fGNvbnNvbGUubG9nKCIiLmNvbmNhdChIbiwiW0RlYnVnXTogIikuY29uY2F0KGUuam9pbigiICIpKSl9LHR9KSgpLHBnPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLnByb2R1Y3RJZD0iIix0aGlzLnF1YW50aXR5PTEsdGhpcy5wcmljZT0wfXJldHVybiB0LnByb3RvdHlwZS5zZXRQcm9kdWN0SWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJvZHVjdElkPWUsdGhpc30sdC5wcm90b3R5cGUuc2V0UXVhbnRpdHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+MCYmKHRoaXMucXVhbnRpdHk9ZSksdGhpc30sdC5wcm90b3R5cGUuc2V0UHJpY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJpY2U9ZSx0aGlzfSx0LnByb3RvdHlwZS5zZXRSZXZlbnVlVHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlbnVlVHlwZT1lLHRoaXN9LHQucHJvdG90eXBlLnNldEN1cnJlbmN5PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1cnJlbmN5PWUsdGhpc30sdC5wcm90b3R5cGUuc2V0UmV2ZW51ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlbnVlPWUsdGhpc30sdC5wcm90b3R5cGUuc2V0UmVjZWlwdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWNlaXB0PWUsdGhpc30sdC5wcm90b3R5cGUuc2V0UmVjZWlwdFNpZz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWNlaXB0U2lnPWUsdGhpc30sdC5wcm90b3R5cGUuc2V0RXZlbnRQcm9wZXJ0aWVzPWZ1bmN0aW9uKGUpe3JldHVybiBBaShlKSYmKHRoaXMucHJvcGVydGllcz1lKSx0aGlzfSx0LnByb3RvdHlwZS5nZXRFdmVudFByb3BlcnRpZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BlcnRpZXM/Tih7fSx0aGlzLnByb3BlcnRpZXMpOnt9O3JldHVybiBlW2d0LlJFVkVOVUVfUFJPRFVDVF9JRF09dGhpcy5wcm9kdWN0SWQsZVtndC5SRVZFTlVFX1FVQU5USVRZXT10aGlzLnF1YW50aXR5LGVbZ3QuUkVWRU5VRV9QUklDRV09dGhpcy5wcmljZSxlW2d0LlJFVkVOVUVfVFlQRV09dGhpcy5yZXZlbnVlVHlwZSxlW2d0LlJFVkVOVUVfQ1VSUkVOQ1ldPXRoaXMuY3VycmVuY3ksZVtndC5SRVZFTlVFXT10aGlzLnJldmVudWUsZVtndC5SRUNFSVBUXT10aGlzLnJlY2VpcHQsZVtndC5SRUNFSVBUX1NJR109dGhpcy5yZWNlaXB0U2lnLGV9LHR9KSgpLGd0OyhmdW5jdGlvbih0KXt0LlJFVkVOVUVfUFJPRFVDVF9JRD0iJHByb2R1Y3RJZCIsdC5SRVZFTlVFX1FVQU5USVRZPSIkcXVhbnRpdHkiLHQuUkVWRU5VRV9QUklDRT0iJHByaWNlIix0LlJFVkVOVUVfVFlQRT0iJHJldmVudWVUeXBlIix0LlJFVkVOVUVfQ1VSUkVOQ1k9IiRjdXJyZW5jeSIsdC5SRVZFTlVFPSIkcmV2ZW51ZSIsdC5SRUNFSVBUPSIkcmVjZWlwdCIsdC5SRUNFSVBUX1NJRz0iJHJlY2VpcHRTaWcifSkoZ3R8fChndD17fSkpO3ZhciBaZz1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWF4KGUsMSk7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKGwsaSxyKXt2YXIgbz1NYXRoLmZsb29yKHIvbik7cmV0dXJuIGxbb118fChsW29dPVtdKSxsW29dLnB1c2goaSksbH0sW10pfSxybD1mdW5jdGlvbigpe3JldHVybntmbHVzaE1heFJldHJpZXM6MTIsZmx1c2hRdWV1ZVNpemU6MjAwLGZsdXNoSW50ZXJ2YWxNaWxsaXM6MWU0LGluc3RhbmNlTmFtZTpSYyxsb2dMZXZlbDpldC5XYXJuLGxvZ2dlclByb3ZpZGVyOm5ldyBTYyxvZmZsaW5lOiExLG9wdE91dDohMSxzZXJ2ZXJVcmw6RWMsc2VydmVyWm9uZToiVVMiLHVzZUJhdGNoOiExfX0sR2c9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt2YXIgbixsLGkscjt0aGlzLl9vcHRPdXQ9ITE7dmFyIG89cmwoKTt0aGlzLmFwaUtleT1lLmFwaUtleSx0aGlzLmZsdXNoSW50ZXJ2YWxNaWxsaXM9KG49ZS5mbHVzaEludGVydmFsTWlsbGlzKSE9PW51bGwmJm4hPT12b2lkIDA/bjpvLmZsdXNoSW50ZXJ2YWxNaWxsaXMsdGhpcy5mbHVzaE1heFJldHJpZXM9ZS5mbHVzaE1heFJldHJpZXN8fG8uZmx1c2hNYXhSZXRyaWVzLHRoaXMuZmx1c2hRdWV1ZVNpemU9ZS5mbHVzaFF1ZXVlU2l6ZXx8by5mbHVzaFF1ZXVlU2l6ZSx0aGlzLmluc3RhbmNlTmFtZT1lLmluc3RhbmNlTmFtZXx8by5pbnN0YW5jZU5hbWUsdGhpcy5sb2dnZXJQcm92aWRlcj1lLmxvZ2dlclByb3ZpZGVyfHxvLmxvZ2dlclByb3ZpZGVyLHRoaXMubG9nTGV2ZWw9KGw9ZS5sb2dMZXZlbCkhPT1udWxsJiZsIT09dm9pZCAwP2w6by5sb2dMZXZlbCx0aGlzLm1pbklkTGVuZ3RoPWUubWluSWRMZW5ndGgsdGhpcy5wbGFuPWUucGxhbix0aGlzLmluZ2VzdGlvbk1ldGFkYXRhPWUuaW5nZXN0aW9uTWV0YWRhdGEsdGhpcy5vZmZsaW5lPWUub2ZmbGluZSE9PXZvaWQgMD9lLm9mZmxpbmU6by5vZmZsaW5lLHRoaXMub3B0T3V0PShpPWUub3B0T3V0KSE9PW51bGwmJmkhPT12b2lkIDA/aTpvLm9wdE91dCx0aGlzLnNlcnZlclVybD1lLnNlcnZlclVybCx0aGlzLnNlcnZlclpvbmU9ZS5zZXJ2ZXJab25lfHxvLnNlcnZlclpvbmUsdGhpcy5zdG9yYWdlUHJvdmlkZXI9ZS5zdG9yYWdlUHJvdmlkZXIsdGhpcy50cmFuc3BvcnRQcm92aWRlcj1lLnRyYW5zcG9ydFByb3ZpZGVyLHRoaXMudXNlQmF0Y2g9KHI9ZS51c2VCYXRjaCkhPT1udWxsJiZyIT09dm9pZCAwP3I6by51c2VCYXRjaCx0aGlzLmxvZ2dlclByb3ZpZGVyLmVuYWJsZSh0aGlzLmxvZ0xldmVsKTt2YXIgYT1DYyhlLnNlcnZlclVybCxlLnNlcnZlclpvbmUsZS51c2VCYXRjaCk7dGhpcy5zZXJ2ZXJab25lPWEuc2VydmVyWm9uZSx0aGlzLnNlcnZlclVybD1hLnNlcnZlclVybH1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJvcHRPdXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0T3V0fSxzZXQ6ZnVuY3Rpb24oZSl7dGhpcy5fb3B0T3V0PWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdH0pKCksWGc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PSJFVSI/ZT9LdTpRdTplP0x1OkVjfSxDYz1mdW5jdGlvbih0LGUsbil7aWYodD09PXZvaWQgMCYmKHQ9IiIpLGU9PT12b2lkIDAmJihlPXJsKCkuc2VydmVyWm9uZSksbj09PXZvaWQgMCYmKG49cmwoKS51c2VCYXRjaCksdClyZXR1cm57c2VydmVyVXJsOnQsc2VydmVyWm9uZTp2b2lkIDB9O3ZhciBsPVsiVVMiLCJFVSJdLmluY2x1ZGVzKGUpP2U6cmwoKS5zZXJ2ZXJab25lO3JldHVybntzZXJ2ZXJab25lOmwsc2VydmVyVXJsOlhnKGwsbil9fSxJZz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5zZGs9e21ldHJpY3M6e2hpc3RvZ3JhbTp7fX19fXJldHVybiB0LnByb3RvdHlwZS5yZWNvcmRIaXN0b2dyYW09ZnVuY3Rpb24oZSxuKXt0aGlzLnNkay5tZXRyaWNzLmhpc3RvZ3JhbVtlXT1ufSx0fSkoKTtmdW5jdGlvbiBSZyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVycm9yP3QubWVzc2FnZTpTdHJpbmcodCl9ZnVuY3Rpb24gRG4odCl7dmFyIGU9IiI7dHJ5eyJib2R5ImluIHQmJihlPUpTT04uc3RyaW5naWZ5KHQuYm9keSxudWxsLDIpKX1jYXRjaHt9cmV0dXJuIGV9dmFyIEVnPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLm5hbWU9ImFtcGxpdHVkZSIsdGhpcy50eXBlPSJkZXN0aW5hdGlvbiIsdGhpcy5yZXRyeVRpbWVvdXQ9MWUzLHRoaXMudGhyb3R0bGVUaW1lb3V0PTNlNCx0aGlzLnN0b3JhZ2VLZXk9IiIsdGhpcy5zY2hlZHVsZUlkPW51bGwsdGhpcy5zY2hlZHVsZWRUaW1lb3V0PTAsdGhpcy5mbHVzaElkPW51bGwsdGhpcy5xdWV1ZT1bXX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGwsaT10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25maWc9ZSx0aGlzLnN0b3JhZ2VLZXk9IiIuY29uY2F0KHp1LCJfIikuY29uY2F0KHRoaXMuY29uZmlnLmFwaUtleS5zdWJzdHJpbmcoMCwxMCkpLFs0LChuPXRoaXMuY29uZmlnLnN0b3JhZ2VQcm92aWRlcik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmdldCh0aGlzLnN0b3JhZ2VLZXkpXTtjYXNlIDE6cmV0dXJuIGw9ci5zZW50KCksbCYmbC5sZW5ndGg+MCYmUHJvbWlzZS5hbGwobC5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIGkuZXhlY3V0ZShvKX0pKS5jYXRjaCgpLFsyLFByb21pc2UucmVzb2x2ZSh2b2lkIDApXX19KX0pfSx0LnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIGUuaW5zZXJ0X2lkfHwoZS5pbnNlcnRfaWQ9V3QoKSksbmV3IFByb21pc2UoZnVuY3Rpb24obCl7dmFyIGk9e2V2ZW50OmUsYXR0ZW1wdHM6MCxjYWxsYmFjazpmdW5jdGlvbihyKXtyZXR1cm4gbChyKX0sdGltZW91dDowfTtuLnF1ZXVlLnB1c2goaSksbi5zY2hlZHVsZShuLmNvbmZpZy5mbHVzaEludGVydmFsTWlsbGlzKSxuLnNhdmVFdmVudHMoKX0pfSx0LnByb3RvdHlwZS5yZW1vdmVFdmVudHNFeGNlZWRGbHVzaE1heFJldHJpZXM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwuYXR0ZW1wdHMrPTEsbC5hdHRlbXB0czxuLmNvbmZpZy5mbHVzaE1heFJldHJpZXM/ITA6KG4uZnVsZmlsbFJlcXVlc3QoW2xdLDUwMCx0ZyksITEpfSl9LHQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRzPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7ZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe24uc2NoZWR1bGUobC50aW1lb3V0PT09MD9uLmNvbmZpZy5mbHVzaEludGVydmFsTWlsbGlzOmwudGltZW91dCl9KX0sdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZighdGhpcy5jb25maWcub2ZmbGluZSYmKHRoaXMuc2NoZWR1bGVJZD09PW51bGx8fHRoaXMuc2NoZWR1bGVJZCYmZT50aGlzLnNjaGVkdWxlZFRpbWVvdXQpKXt0aGlzLnNjaGVkdWxlSWQmJmNsZWFyVGltZW91dCh0aGlzLnNjaGVkdWxlSWQpLHRoaXMuc2NoZWR1bGVkVGltZW91dD1lLHRoaXMuc2NoZWR1bGVJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5xdWV1ZT1uLnF1ZXVlLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC50aW1lb3V0PTAsbH0pLG4uZmx1c2goITApfSxlKTtyZXR1cm59fSx0LnByb3RvdHlwZS5yZXNldFNjaGVkdWxlPWZ1bmN0aW9uKCl7dGhpcy5zY2hlZHVsZUlkPW51bGwsdGhpcy5zY2hlZHVsZWRUaW1lb3V0PTB9LHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0hMSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixsLGkscj10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25maWcub2ZmbGluZT8odGhpcy5yZXNldFNjaGVkdWxlKCksdGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZGVidWcoIlNraXBwaW5nIGZsdXNoIHdoaWxlIG9mZmxpbmUuIiksWzJdKTp0aGlzLmZsdXNoSWQ/KHRoaXMucmVzZXRTY2hlZHVsZSgpLHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJTa2lwcGluZyBmbHVzaCBiZWNhdXNlIHByZXZpb3VzIGZsdXNoIGhhcyBub3QgcmVzb2x2ZWQuIiksWzJdKToodGhpcy5mbHVzaElkPXRoaXMuc2NoZWR1bGVJZCx0aGlzLnJlc2V0U2NoZWR1bGUoKSxuPVtdLGw9W10sdGhpcy5xdWV1ZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhLnRpbWVvdXQ9PT0wP24ucHVzaChhKTpsLnB1c2goYSl9KSxpPVpnKG4sdGhpcy5jb25maWcuZmx1c2hRdWV1ZVNpemUpLFs0LGkucmVkdWNlKGZ1bmN0aW9uKGEsYyl7cmV0dXJuIFcocix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxmdW5jdGlvbihkKXtzd2l0Y2goZC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGFdO2Nhc2UgMTpyZXR1cm4gZC5zZW50KCksWzQsdGhpcy5zZW5kKGMsZSldO2Nhc2UgMjpyZXR1cm5bMixkLnNlbnQoKV19fSl9KX0sUHJvbWlzZS5yZXNvbHZlKCkpXSk7Y2FzZSAxOnJldHVybiBvLnNlbnQoKSx0aGlzLmZsdXNoSWQ9bnVsbCx0aGlzLnNjaGVkdWxlRXZlbnRzKHRoaXMucXVldWUpLFsyXX19KX0pfSx0LnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG49PT12b2lkIDAmJihuPSEwKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBsLGkscixvLGE7cmV0dXJuIEModGhpcyxmdW5jdGlvbihjKXtzd2l0Y2goYy5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLmNvbmZpZy5hcGlLZXkpcmV0dXJuWzIsdGhpcy5mdWxmaWxsUmVxdWVzdChlLDQwMCxsZyldO2w9e2FwaV9rZXk6dGhpcy5jb25maWcuYXBpS2V5LGV2ZW50czplLm1hcChmdW5jdGlvbihkKXt2YXIgcz1kLmV2ZW50O3MuZXh0cmE7dmFyIHU9ZmkocyxbImV4dHJhIl0pO3JldHVybiB1fSksb3B0aW9uczp7bWluX2lkX2xlbmd0aDp0aGlzLmNvbmZpZy5taW5JZExlbmd0aH0sY2xpZW50X3VwbG9hZF90aW1lOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxyZXF1ZXN0X21ldGFkYXRhOnRoaXMuY29uZmlnLnJlcXVlc3RNZXRhZGF0YX0sdGhpcy5jb25maWcucmVxdWVzdE1ldGFkYXRhPW5ldyBJZyxjLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjLnRyeXMucHVzaChbMSwzLCw0XSksaT1DYyh0aGlzLmNvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5jb25maWcuc2VydmVyWm9uZSx0aGlzLmNvbmZpZy51c2VCYXRjaCkuc2VydmVyVXJsLFs0LHRoaXMuY29uZmlnLnRyYW5zcG9ydFByb3ZpZGVyLnNlbmQoaSxsKV07Y2FzZSAyOnJldHVybiByPWMuc2VudCgpLHI9PT1udWxsPyh0aGlzLmZ1bGZpbGxSZXF1ZXN0KGUsMCxlZyksWzJdKTpuPyh0aGlzLmhhbmRsZVJlc3BvbnNlKHIsZSksWzMsNF0pOigiYm9keSJpbiByP3RoaXMuZnVsZmlsbFJlcXVlc3QoZSxyLnN0YXR1c0NvZGUsIiIuY29uY2F0KHIuc3RhdHVzLCI6ICIpLmNvbmNhdChEbihyKSkpOnRoaXMuZnVsZmlsbFJlcXVlc3QoZSxyLnN0YXR1c0NvZGUsci5zdGF0dXMpLFsyXSk7Y2FzZSAzOnJldHVybiBvPWMuc2VudCgpLGE9UmcobyksdGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZXJyb3IoYSksdGhpcy5oYW5kbGVSZXNwb25zZSh7c3RhdHVzOkllLkZhaWxlZCxzdGF0dXNDb2RlOjB9LGUpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sdC5wcm90b3R5cGUuaGFuZGxlUmVzcG9uc2U9ZnVuY3Rpb24oZSxuKXt2YXIgbD1lLnN0YXR1cztzd2l0Y2gobCl7Y2FzZSBJZS5TdWNjZXNzOnt0aGlzLmhhbmRsZVN1Y2Nlc3NSZXNwb25zZShlLG4pO2JyZWFrfWNhc2UgSWUuSW52YWxpZDp7dGhpcy5oYW5kbGVJbnZhbGlkUmVzcG9uc2UoZSxuKTticmVha31jYXNlIEllLlBheWxvYWRUb29MYXJnZTp7dGhpcy5oYW5kbGVQYXlsb2FkVG9vTGFyZ2VSZXNwb25zZShlLG4pO2JyZWFrfWNhc2UgSWUuUmF0ZUxpbWl0Ont0aGlzLmhhbmRsZVJhdGVMaW1pdFJlc3BvbnNlKGUsbik7YnJlYWt9ZGVmYXVsdDp7dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIud2Fybihge2NvZGU6IDAsIGVycm9yOiAiU3RhdHVzICdgLmNvbmNhdChsLCInIHByb3ZpZGVkIGZvciAiKS5jb25jYXQobi5sZW5ndGgsJyBldmVudHMifScpKSx0aGlzLmhhbmRsZU90aGVyUmVzcG9uc2Uobik7YnJlYWt9fX0sdC5wcm90b3R5cGUuaGFuZGxlU3VjY2Vzc1Jlc3BvbnNlPWZ1bmN0aW9uKGUsbil7dGhpcy5mdWxmaWxsUmVxdWVzdChuLGUuc3RhdHVzQ29kZSxxdSl9LHQucHJvdG90eXBlLmhhbmRsZUludmFsaWRSZXNwb25zZT1mdW5jdGlvbihlLG4pe3ZhciBsPXRoaXM7aWYoZS5ib2R5Lm1pc3NpbmdGaWVsZHx8ZS5ib2R5LmVycm9yLnN0YXJ0c1dpdGgoaWcpKXt0aGlzLmZ1bGZpbGxSZXF1ZXN0KG4sZS5zdGF0dXNDb2RlLGUuYm9keS5lcnJvcik7cmV0dXJufXZhciBpPWooaihqKGooW10sVShPYmplY3QudmFsdWVzKGUuYm9keS5ldmVudHNXaXRoSW52YWxpZEZpZWxkcykpLCExKSxVKE9iamVjdC52YWx1ZXMoZS5ib2R5LmV2ZW50c1dpdGhNaXNzaW5nRmllbGRzKSksITEpLFUoT2JqZWN0LnZhbHVlcyhlLmJvZHkuZXZlbnRzV2l0aEludmFsaWRJZExlbmd0aHMpKSwhMSksVShlLmJvZHkuc2lsZW5jZWRFdmVudHMpLCExKS5mbGF0KCkscj1uZXcgU2V0KGkpLG89bi5maWx0ZXIoZnVuY3Rpb24oYyxkKXtpZihyLmhhcyhkKSl7bC5mdWxmaWxsUmVxdWVzdChbY10sZS5zdGF0dXNDb2RlLGUuYm9keS5lcnJvcik7cmV0dXJufXJldHVybiEwfSk7by5sZW5ndGg+MCYmdGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIud2FybihEbihlKSk7dmFyIGE9dGhpcy5yZW1vdmVFdmVudHNFeGNlZWRGbHVzaE1heFJldHJpZXMobyk7dGhpcy5zY2hlZHVsZUV2ZW50cyhhKX0sdC5wcm90b3R5cGUuaGFuZGxlUGF5bG9hZFRvb0xhcmdlUmVzcG9uc2U9ZnVuY3Rpb24oZSxuKXtpZihuLmxlbmd0aD09PTEpe3RoaXMuZnVsZmlsbFJlcXVlc3QobixlLnN0YXR1c0NvZGUsZS5ib2R5LmVycm9yKTtyZXR1cm59dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIud2FybihEbihlKSksdGhpcy5jb25maWcuZmx1c2hRdWV1ZVNpemUvPTI7dmFyIGw9dGhpcy5yZW1vdmVFdmVudHNFeGNlZWRGbHVzaE1heFJldHJpZXMobik7dGhpcy5zY2hlZHVsZUV2ZW50cyhsKX0sdC5wcm90b3R5cGUuaGFuZGxlUmF0ZUxpbWl0UmVzcG9uc2U9ZnVuY3Rpb24oZSxuKXt2YXIgbD10aGlzLGk9T2JqZWN0LmtleXMoZS5ib2R5LmV4Y2VlZGVkRGFpbHlRdW90YVVzZXJzKSxyPU9iamVjdC5rZXlzKGUuYm9keS5leGNlZWRlZERhaWx5UXVvdGFEZXZpY2VzKSxvPWUuYm9keS50aHJvdHRsZWRFdmVudHMsYT1uZXcgU2V0KGkpLGM9bmV3IFNldChyKSxkPW5ldyBTZXQobykscz1uLmZpbHRlcihmdW5jdGlvbihoLGcpe2lmKGguZXZlbnQudXNlcl9pZCYmYS5oYXMoaC5ldmVudC51c2VyX2lkKXx8aC5ldmVudC5kZXZpY2VfaWQmJmMuaGFzKGguZXZlbnQuZGV2aWNlX2lkKSl7bC5mdWxmaWxsUmVxdWVzdChbaF0sZS5zdGF0dXNDb2RlLGUuYm9keS5lcnJvcik7cmV0dXJufXJldHVybiBkLmhhcyhnKSYmKGgudGltZW91dD1sLnRocm90dGxlVGltZW91dCksITB9KTtzLmxlbmd0aD4wJiZ0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci53YXJuKERuKGUpKTt2YXIgdT10aGlzLnJlbW92ZUV2ZW50c0V4Y2VlZEZsdXNoTWF4UmV0cmllcyhzKTt0aGlzLnNjaGVkdWxlRXZlbnRzKHUpfSx0LnByb3RvdHlwZS5oYW5kbGVPdGhlclJlc3BvbnNlPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMsbD1lLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci50aW1lb3V0PXIuYXR0ZW1wdHMqbi5yZXRyeVRpbWVvdXQscn0pLGk9dGhpcy5yZW1vdmVFdmVudHNFeGNlZWRGbHVzaE1heFJldHJpZXMobCk7dGhpcy5zY2hlZHVsZUV2ZW50cyhpKX0sdC5wcm90b3R5cGUuZnVsZmlsbFJlcXVlc3Q9ZnVuY3Rpb24oZSxuLGwpe3RoaXMucmVtb3ZlRXZlbnRzKGUpLGUuZm9yRWFjaChmdW5jdGlvbihpKXtyZXR1cm4gaS5jYWxsYmFjayhPdChpLmV2ZW50LG4sbCkpfSl9LHQucHJvdG90eXBlLnNhdmVFdmVudHM9ZnVuY3Rpb24oKXtpZih0aGlzLmNvbmZpZy5zdG9yYWdlUHJvdmlkZXIpe3ZhciBlPXRoaXMucXVldWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmV2ZW50fSk7dGhpcy5jb25maWcuc3RvcmFnZVByb3ZpZGVyLnNldCh0aGlzLnN0b3JhZ2VLZXksZSl9fSx0LnByb3RvdHlwZS5yZW1vdmVFdmVudHM9ZnVuY3Rpb24oZSl7dGhpcy5xdWV1ZT10aGlzLnF1ZXVlLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hZS5zb21lKGZ1bmN0aW9uKGwpe3JldHVybiBsLmV2ZW50Lmluc2VydF9pZD09PW4uZXZlbnQuaW5zZXJ0X2lkfSl9KSx0aGlzLnNhdmVFdmVudHMoKX0sdH0pKCkseWc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuZ2V0QXBwbGljYXRpb25Db250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJue3ZlcnNpb25OYW1lOnRoaXMudmVyc2lvbk5hbWUsbGFuZ3VhZ2U6dmcoKSxwbGF0Zm9ybToiV2ViIixvczp2b2lkIDAsZGV2aWNlTW9kZWw6dm9pZCAwfX0sdH0pKCksdmc9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJihuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHxuYXZpZ2F0b3IubGFuZ3VhZ2UpfHwiIn0sU2c9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMucXVldWU9W119cmV0dXJuIHQucHJvdG90eXBlLmxvZ0V2ZW50PWZ1bmN0aW9uKGUpe3RoaXMucmVjZWl2ZXI/dGhpcy5yZWNlaXZlcihlKTp0aGlzLnF1ZXVlLmxlbmd0aDw1MTImJnRoaXMucXVldWUucHVzaChlKX0sdC5wcm90b3R5cGUuc2V0RXZlbnRSZWNlaXZlcj1mdW5jdGlvbihlKXt0aGlzLnJlY2VpdmVyPWUsdGhpcy5xdWV1ZS5sZW5ndGg+MCYmKHRoaXMucXVldWUuZm9yRWFjaChmdW5jdGlvbihuKXtlKG4pfSksdGhpcy5xdWV1ZT1bXSl9LHR9KSgpLEV0PWZ1bmN0aW9uKCl7cmV0dXJuIEV0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgbixsPTEsaT1hcmd1bWVudHMubGVuZ3RoO2w8aTtsKyspe249YXJndW1lbnRzW2xdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sRXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBvbCh0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Isbj1lJiZ0W2VdLGw9MDtpZihuKXJldHVybiBuLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZsPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtsKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlPyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiB0byh0LGUpe3ZhciBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgbD1uLmNhbGwodCksaSxyPVtdLG87dHJ5e2Zvcig7KGU9PT12b2lkIDB8fGUtLSA+MCkmJiEoaT1sLm5leHQoKSkuZG9uZTspci5wdXNoKGkudmFsdWUpfWNhdGNoKGEpe289e2Vycm9yOmF9fWZpbmFsbHl7dHJ5e2kmJiFpLmRvbmUmJihuPWwucmV0dXJuKSYmbi5jYWxsKGwpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gcn12YXIgYWw9ZnVuY3Rpb24odCxlKXt2YXIgbixsLGk9WyJzdHJpbmciLCJudW1iZXIiLCJib29sZWFuIiwidW5kZWZpbmVkIl0scj10eXBlb2YgdCxvPXR5cGVvZiBlO2lmKHIhPT1vKXJldHVybiExO3RyeXtmb3IodmFyIGE9b2woaSksYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoZD09PXIpcmV0dXJuIHQ9PT1lfX1jYXRjaChmKXtuPXtlcnJvcjpmfX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobD1hLnJldHVybikmJmwuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19aWYodD09bnVsbCYmZT09bnVsbClyZXR1cm4hMDtpZih0PT1udWxsfHxlPT1udWxsfHx0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO3ZhciBzPUFycmF5LmlzQXJyYXkodCksdT1BcnJheS5pc0FycmF5KGUpO2lmKHMhPT11KXJldHVybiExO2lmKHMmJnUpe2Zvcih2YXIgaD0wO2g8dC5sZW5ndGg7aCsrKWlmKCFhbCh0W2hdLGVbaF0pKXJldHVybiExfWVsc2V7dmFyIGc9T2JqZWN0LmtleXModCkuc29ydCgpLGI9T2JqZWN0LmtleXMoZSkuc29ydCgpO2lmKCFhbChnLGIpKXJldHVybiExO3ZhciBtPSEwO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGYpe2FsKHRbZl0sZVtmXSl8fChtPSExKX0pLG19cmV0dXJuITB9LENnPSIkc2V0IixXZz0iJHVuc2V0IixCZz0iJGNsZWFyQWxsIjtPYmplY3QuZW50cmllc3x8KE9iamVjdC5lbnRyaWVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1PYmplY3Qua2V5cyh0KSxuPWUubGVuZ3RoLGw9bmV3IEFycmF5KG4pO24tLTspbFtuXT1bZVtuXSx0W2Vbbl1dXTtyZXR1cm4gbH0pO3ZhciBOZz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5pZGVudGl0eT17dXNlclByb3BlcnRpZXM6e319LHRoaXMubGlzdGVuZXJzPW5ldyBTZXR9cmV0dXJuIHQucHJvdG90eXBlLmVkaXRJZGVudGl0eT1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1FdCh7fSx0aGlzLmlkZW50aXR5LnVzZXJQcm9wZXJ0aWVzKSxsPUV0KEV0KHt9LHRoaXMuaWRlbnRpdHkpLHt1c2VyUHJvcGVydGllczpufSk7cmV0dXJue3NldFVzZXJJZDpmdW5jdGlvbihpKXtyZXR1cm4gbC51c2VySWQ9aSx0aGlzfSxzZXREZXZpY2VJZDpmdW5jdGlvbihpKXtyZXR1cm4gbC5kZXZpY2VJZD1pLHRoaXN9LHNldFVzZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKGkpe3JldHVybiBsLnVzZXJQcm9wZXJ0aWVzPWksdGhpc30sc2V0T3B0T3V0OmZ1bmN0aW9uKGkpe3JldHVybiBsLm9wdE91dD1pLHRoaXN9LHVwZGF0ZVVzZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKGkpe3ZhciByLG8sYSxjLGQscyx1PWwudXNlclByb3BlcnRpZXN8fHt9O3RyeXtmb3IodmFyIGg9b2woT2JqZWN0LmVudHJpZXMoaSkpLGc9aC5uZXh0KCk7IWcuZG9uZTtnPWgubmV4dCgpKXt2YXIgYj10byhnLnZhbHVlLDIpLG09YlswXSxmPWJbMV07c3dpdGNoKG0pe2Nhc2UgQ2c6dHJ5e2Zvcih2YXIgcD0oYT12b2lkIDAsb2woT2JqZWN0LmVudHJpZXMoZikpKSxBPXAubmV4dCgpOyFBLmRvbmU7QT1wLm5leHQoKSl7dmFyIFg9dG8oQS52YWx1ZSwyKSx5PVhbMF0sST1YWzFdO3VbeV09SX19Y2F0Y2goQil7YT17ZXJyb3I6Qn19ZmluYWxseXt0cnl7QSYmIUEuZG9uZSYmKGM9cC5yZXR1cm4pJiZjLmNhbGwocCl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fWJyZWFrO2Nhc2UgV2c6dHJ5e2Zvcih2YXIgUz0oZD12b2lkIDAsb2woT2JqZWN0LmtleXMoZikpKSxHPVMubmV4dCgpOyFHLmRvbmU7Rz1TLm5leHQoKSl7dmFyIHk9Ry52YWx1ZTtkZWxldGUgdVt5XX19Y2F0Y2goQil7ZD17ZXJyb3I6Qn19ZmluYWxseXt0cnl7RyYmIUcuZG9uZSYmKHM9Uy5yZXR1cm4pJiZzLmNhbGwoUyl9ZmluYWxseXtpZihkKXRocm93IGQuZXJyb3J9fWJyZWFrO2Nhc2UgQmc6dT17fTticmVha319fWNhdGNoKEIpe3I9e2Vycm9yOkJ9fWZpbmFsbHl7dHJ5e2cmJiFnLmRvbmUmJihvPWgucmV0dXJuKSYmby5jYWxsKGgpfWZpbmFsbHl7aWYocil0aHJvdyByLmVycm9yfX1yZXR1cm4gbC51c2VyUHJvcGVydGllcz11LHRoaXN9LGNvbW1pdDpmdW5jdGlvbigpe3JldHVybiBlLnNldElkZW50aXR5KGwpLHRoaXN9fX0sdC5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gRXQoe30sdGhpcy5pZGVudGl0eSl9LHQucHJvdG90eXBlLnNldElkZW50aXR5PWZ1bmN0aW9uKGUpe3ZhciBuPUV0KHt9LHRoaXMuaWRlbnRpdHkpO3RoaXMuaWRlbnRpdHk9RXQoe30sZSksYWwobix0aGlzLmlkZW50aXR5KXx8dGhpcy5saXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbihsKXtsKGUpfSl9LHQucHJvdG90eXBlLmFkZElkZW50aXR5TGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5saXN0ZW5lcnMuYWRkKGUpfSx0LnByb3RvdHlwZS5yZW1vdmVJZGVudGl0eUxpc3RlbmVyPWZ1bmN0aW9uKGUpe3RoaXMubGlzdGVuZXJzLmRlbGV0ZShlKX0sdH0pKCksc249dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnNlbGYsRmc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuaWRlbnRpdHlTdG9yZT1uZXcgTmcsdGhpcy5ldmVudEJyaWRnZT1uZXcgU2csdGhpcy5hcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj1uZXcgeWd9cmV0dXJuIHQuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHNuLmFuYWx5dGljc0Nvbm5lY3Rvckluc3RhbmNlc3x8KHNuLmFuYWx5dGljc0Nvbm5lY3Rvckluc3RhbmNlcz17fSksc24uYW5hbHl0aWNzQ29ubmVjdG9ySW5zdGFuY2VzW2VdfHwoc24uYW5hbHl0aWNzQ29ubmVjdG9ySW5zdGFuY2VzW2VdPW5ldyB0KSxzbi5hbmFseXRpY3NDb25uZWN0b3JJbnN0YW5jZXNbZV19LHR9KSgpLEVuPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1SYyksRmcuZ2V0SW5zdGFuY2UodCl9LFlnPWZ1bmN0aW9uKHQsZSl7RW4oZSkuaWRlbnRpdHlTdG9yZS5lZGl0SWRlbnRpdHkoKS5zZXRVc2VySWQodCkuY29tbWl0KCl9LFVnPWZ1bmN0aW9uKHQsZSl7RW4oZSkuaWRlbnRpdHlTdG9yZS5lZGl0SWRlbnRpdHkoKS5zZXREZXZpY2VJZCh0KS5jb21taXQoKX0sSmc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubmFtZT0iaWRlbnRpdHkiLHRoaXMudHlwZT0iYmVmb3JlIix0aGlzLmlkZW50aXR5U3RvcmU9RW4oKS5pZGVudGl0eVN0b3JlfXJldHVybiB0LnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obCl7cmV0dXJuIG49ZS51c2VyX3Byb3BlcnRpZXMsbiYmdGhpcy5pZGVudGl0eVN0b3JlLmVkaXRJZGVudGl0eSgpLnVwZGF0ZVVzZXJQcm9wZXJ0aWVzKG4pLmNvbW1pdCgpLFsyLGVdfSl9KX0sdC5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxmdW5jdGlvbihuKXtyZXR1cm4gZS5pbnN0YW5jZU5hbWUmJih0aGlzLmlkZW50aXR5U3RvcmU9RW4oZS5pbnN0YW5jZU5hbWUpLmlkZW50aXR5U3RvcmUpLFsyXX0pfSl9LHR9KSgpLFdjPWZ1bmN0aW9uKHQsZSl7ZT09PXZvaWQgMCYmKGU9RGF0ZS5ub3coKSk7dmFyIG49RGF0ZS5ub3coKSxsPW4tZTtyZXR1cm4gbD50fSxCYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9PT12b2lkIDAmJihlPSIiKSxuPT09dm9pZCAwJiYobj0xMCksW05sLGUsdC5zdWJzdHJpbmcoMCxuKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKX0seGc9ZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KE5sLnRvTG93ZXJDYXNlKCksIl8iKS5jb25jYXQodC5zdWJzdHJpbmcoMCw2KSl9LHdnPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGw7aWYodHlwZW9mIG5hdmlnYXRvcj4idSIpcmV0dXJuIiI7dmFyIGk9bmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtyZXR1cm4obD0obj0oZT0odD1uYXZpZ2F0b3IubGFuZ3VhZ2VzKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnRbMF0pIT09bnVsbCYmZSE9PXZvaWQgMD9lOm5hdmlnYXRvci5sYW5ndWFnZSkhPT1udWxsJiZuIT09dm9pZCAwP246aSkhPT1udWxsJiZsIT09dm9pZCAwP2w6IiJ9LGZsPWZ1bmN0aW9uKCl7dmFyIHQsZT1GZSgpO2lmKCEoISgodD1lPT1udWxsP3ZvaWQgMDplLmxvY2F0aW9uKT09PW51bGx8fHQ9PT12b2lkIDApJiZ0LnNlYXJjaCkpcmV0dXJue307dmFyIG49ZS5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIikuZmlsdGVyKEJvb2xlYW4pLGw9bi5yZWR1Y2UoZnVuY3Rpb24oaSxyKXt2YXIgbz1yLnNwbGl0KCI9IiwyKSxhPW5vKG9bMF0pLGM9bm8ob1sxXSk7cmV0dXJuIGMmJihpW2FdPWMpLGl9LHt9KTtyZXR1cm4gbH0sbm89ZnVuY3Rpb24odCl7dD09PXZvaWQgMCYmKHQ9IiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoe3JldHVybiIifX0sa2c9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEVycm9yKCkuc3RhY2t8fCIiO3JldHVybiBlLnNwbGl0KGAKYCkuc2xpY2UoMit0KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4udHJpbSgpfSl9LHVlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPU4oe30sdC5jb25maWcpLG49ZS5sb2dnZXJQcm92aWRlcixsPWUubG9nTGV2ZWw7cmV0dXJue2xvZ2dlcjpuLGxvZ0xldmVsOmx9fX0semc9ZnVuY3Rpb24odCxlKXt2YXIgbixsO2U9ZS5yZXBsYWNlKC9cWyhcdyspXF0vZywiLiQxIiksZT1lLnJlcGxhY2UoL15cLi8sIiIpO3RyeXtmb3IodmFyIGk9RChlLnNwbGl0KCIuIikpLHI9aS5uZXh0KCk7IXIuZG9uZTtyPWkubmV4dCgpKXt2YXIgbz1yLnZhbHVlO2lmKG8gaW4gdCl0PXRbb107ZWxzZSByZXR1cm59fWNhdGNoKGEpe249e2Vycm9yOmF9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihsPWkucmV0dXJuKSYmbC5jYWxsKGkpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gdH0sZ2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixsLGk9e307dHJ5e2Zvcih2YXIgcj1EKGUpLG89ci5uZXh0KCk7IW8uZG9uZTtvPXIubmV4dCgpKXt2YXIgYT1vLnZhbHVlO2lbYV09emcodCxhKX19Y2F0Y2goYyl7bj17ZXJyb3I6Y319ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKGw9ci5yZXR1cm4pJiZsLmNhbGwocil9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBpfX0saGU9ZnVuY3Rpb24odCxlLG4sbCxpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9bnVsbCksZnVuY3Rpb24oKXtmb3IodmFyIHI9W10sbz0wO288YXJndW1lbnRzLmxlbmd0aDtvKyspcltvXT1hcmd1bWVudHNbb107dmFyIGE9bigpLGM9YS5sb2dnZXIsZD1hLmxvZ0xldmVsO2lmKGQmJmQ8ZXQuRGVidWd8fCFkfHwhYylyZXR1cm4gdC5hcHBseShpLHIpO3ZhciBzPXt0eXBlOiJpbnZva2UgcHVibGljIG1ldGhvZCIsbmFtZTplLGFyZ3M6cixzdGFja3RyYWNlOmtnKDEpLHRpbWU6e3N0YXJ0Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0sc3RhdGVzOnt9fTtsJiZzLnN0YXRlcyYmKHMuc3RhdGVzLmJlZm9yZT1sKCkpO3ZhciB1PXQuYXBwbHkoaSxyKTtyZXR1cm4gdSYmdS5wcm9taXNlP3UucHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7bCYmcy5zdGF0ZXMmJihzLnN0YXRlcy5hZnRlcj1sKCkpLHMudGltZSYmKHMudGltZS5lbmQ9bmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjLmRlYnVnKEpTT04uc3RyaW5naWZ5KHMsbnVsbCwyKSl9KToobCYmcy5zdGF0ZXMmJihzLnN0YXRlcy5hZnRlcj1sKCkpLHMudGltZSYmKHMudGltZS5lbmQ9bmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjLmRlYnVnKEpTT04uc3RyaW5naWZ5KHMsbnVsbCwyKSkpLHV9fSxwaT1mdW5jdGlvbih0LGUpe3JldHVybiFlfHwhZS5sZW5ndGg/ITA6ZS5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09InN0cmluZyI/dD09PW46dC5tYXRjaChuKX0pfSxRZz1mdW5jdGlvbih0LGUpe3ZhciBuPXQ7dHJ5e249ZGVjb2RlVVJJKHQpfWNhdGNoe31yZXR1cm4gbn0sSGk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubWVtb3J5U3RvcmFnZT1uZXcgTWFwfXJldHVybiB0LnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVyblsyLCEwXX0pfSl9LHQucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKG4pe3JldHVyblsyLHRoaXMubWVtb3J5U3RvcmFnZS5nZXQoZSldfSl9KX0sdC5wcm90b3R5cGUuZ2V0UmF3PWZ1bmN0aW9uKGUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmdldChlKV07Y2FzZSAxOnJldHVybiBuPWwuc2VudCgpLFsyLG4/SlNPTi5zdHJpbmdpZnkobik6dm9pZCAwXX19KX0pfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3JldHVybiB0aGlzLm1lbW9yeVN0b3JhZ2Uuc2V0KGUsbiksWzJdfSl9KX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubWVtb3J5U3RvcmFnZS5kZWxldGUoZSksWzJdfSl9KX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm1lbW9yeVN0b3JhZ2UuY2xlYXIoKSxbMl19KX0pfSx0fSkoKSxaaT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMub3B0aW9ucz1OKHt9LGUpfXJldHVybiB0LnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLGw7cmV0dXJuIEModGhpcyxmdW5jdGlvbihpKXtzd2l0Y2goaS5sYWJlbCl7Y2FzZSAwOmlmKCFGZSgpKXJldHVyblsyLCExXTt0LnRlc3RWYWx1ZT1TdHJpbmcoRGF0ZS5ub3coKSksZT1uZXcgdCh0aGlzLm9wdGlvbnMpLG49IkFNUF9URVNUIixpLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBpLnRyeXMucHVzaChbMSw0LDUsN10pLFs0LGUuc2V0KG4sdC50ZXN0VmFsdWUpXTtjYXNlIDI6cmV0dXJuIGkuc2VudCgpLFs0LGUuZ2V0KG4pXTtjYXNlIDM6cmV0dXJuIGw9aS5zZW50KCksWzIsbD09PXQudGVzdFZhbHVlXTtjYXNlIDQ6cmV0dXJuIGkuc2VudCgpLFsyLCExXTtjYXNlIDU6cmV0dXJuWzQsZS5yZW1vdmUobildO2Nhc2UgNjpyZXR1cm4gaS5zZW50KCksWzddO2Nhc2UgNzpyZXR1cm5bMl19fSl9KX0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBsLGk7cmV0dXJuIEModGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0UmF3KGUpXTtjYXNlIDE6aWYobD1yLnNlbnQoKSwhbClyZXR1cm5bMix2b2lkIDBdO3RyeXtyZXR1cm4gaT0obj1MZyhsKSkhPT1udWxsJiZuIT09dm9pZCAwP246S2cobCksaT09PXZvaWQgMD8oY29uc29sZS5lcnJvcigiQW1wbGl0dWRlIExvZ2dlciBbRXJyb3JdOiBGYWlsZWQgdG8gZGVjb2RlIGNvb2tpZSB2YWx1ZSBmb3Iga2V5OiAiLmNvbmNhdChlLCIsIHZhbHVlOiAiKS5jb25jYXQobCkpLFsyLHZvaWQgMF0pOlsyLEpTT04ucGFyc2UoaSldfWNhdGNoe3JldHVybiBjb25zb2xlLmVycm9yKCJBbXBsaXR1ZGUgTG9nZ2VyIFtFcnJvcl06IEZhaWxlZCB0byBwYXJzZSBjb29raWUgdmFsdWUgZm9yIGtleTogIi5jb25jYXQoZSwiLCB2YWx1ZTogIikuY29uY2F0KGwpKSxbMix2b2lkIDBdfXJldHVyblsyXX19KX0pfSx0LnByb3RvdHlwZS5nZXRSYXc9ZnVuY3Rpb24oZSl7dmFyIG4sbDtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxyLG87cmV0dXJuIEModGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gaT1GZSgpLHI9KGw9KG49aT09bnVsbD92b2lkIDA6aS5kb2N1bWVudCk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNvb2tpZS5zcGxpdCgiOyAiKSkhPT1udWxsJiZsIT09dm9pZCAwP2w6W10sbz1yLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaW5kZXhPZihlKyI9Iik9PT0wfSksbz9bMixvLnN1YnN0cmluZyhlLmxlbmd0aCsxKV06WzIsdm9pZCAwXX0pfSl9LHQucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLG4pe3ZhciBsO3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBpLHIsbyxhLGMsZCxzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24odSl7dHJ5e2k9KGw9dGhpcy5vcHRpb25zLmV4cGlyYXRpb25EYXlzKSE9PW51bGwmJmwhPT12b2lkIDA/bDowLHI9biE9PW51bGw/aTotMSxvPXZvaWQgMCxyJiYoYT1uZXcgRGF0ZSxhLnNldFRpbWUoYS5nZXRUaW1lKCkrcioyNCo2MCo2MCoxZTMpLG89YSksYz0iIi5jb25jYXQoZSwiPSIpLmNvbmNhdChidG9hKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShuKSkpKSxvJiYoYys9IjsgZXhwaXJlcz0iLmNvbmNhdChvLnRvVVRDU3RyaW5nKCkpKSxjKz0iOyBwYXRoPS8iLHRoaXMub3B0aW9ucy5kb21haW4mJihjKz0iOyBkb21haW49Ii5jb25jYXQodGhpcy5vcHRpb25zLmRvbWFpbikpLHRoaXMub3B0aW9ucy5zZWN1cmUmJihjKz0iOyBTZWN1cmUiKSx0aGlzLm9wdGlvbnMuc2FtZVNpdGUmJihjKz0iOyBTYW1lU2l0ZT0iLmNvbmNhdCh0aGlzLm9wdGlvbnMuc2FtZVNpdGUpKSxkPUZlKCksZCYmKGQuZG9jdW1lbnQuY29va2llPWMpfWNhdGNoKGgpe3M9aCBpbnN0YW5jZW9mIEVycm9yP2gubWVzc2FnZTpTdHJpbmcoaCksY29uc29sZS5lcnJvcigiQW1wbGl0dWRlIExvZ2dlciBbRXJyb3JdOiBGYWlsZWQgdG8gc2V0IGNvb2tpZSBmb3Iga2V5OiAiLmNvbmNhdChlLCIuIEVycm9yOiAiKS5jb25jYXQocykpfXJldHVyblsyXX0pfSl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5zZXQoZSxudWxsKV07Y2FzZSAxOnJldHVybiBuLnNlbnQoKSxbMl19fSl9KX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVyblsyXX0pfSl9LHR9KSgpLExnPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IodCkpfWNhdGNoe3JldHVybn19LEtnPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IoZGVjb2RlVVJJQ29tcG9uZW50KHQpKSl9Y2F0Y2h7cmV0dXJufX0sbG89ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPT09dm9pZCAwJiYoZT0iIiksbj09PXZvaWQgMCYmKG49MTApLFtObCxlLHQuc3Vic3RyaW5nKDAsbildLmZpbHRlcihCb29sZWFuKS5qb2luKCJfIil9LE5jPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5zdG9yYWdlPWV9cmV0dXJuIHQucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4sbCxpO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDppZighdGhpcy5zdG9yYWdlKXJldHVyblsyLCExXTtlPVN0cmluZyhEYXRlLm5vdygpKSxuPW5ldyB0KHRoaXMuc3RvcmFnZSksbD0iQU1QX1RFU1QiLHIubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHIudHJ5cy5wdXNoKFsxLDQsNSw3XSksWzQsbi5zZXQobCxlKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbNCxuLmdldChsKV07Y2FzZSAzOnJldHVybiBpPXIuc2VudCgpLFsyLGk9PT1lXTtjYXNlIDQ6cmV0dXJuIHIuc2VudCgpLFsyLCExXTtjYXNlIDU6cmV0dXJuWzQsbi5yZW1vdmUobCldO2Nhc2UgNjpyZXR1cm4gci5zZW50KCksWzddO2Nhc2UgNzpyZXR1cm5bMl19fSl9KX0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbC50cnlzLnB1c2goWzAsMiwsM10pLFs0LHRoaXMuZ2V0UmF3KGUpXTtjYXNlIDE6cmV0dXJuIG49bC5zZW50KCksbj9bMixKU09OLnBhcnNlKG4pXTpbMix2b2lkIDBdO2Nhc2UgMjpyZXR1cm4gbC5zZW50KCksY29uc29sZS5lcnJvcigiW0FtcGxpdHVkZV0gRXJyb3I6IENvdWxkIG5vdCBnZXQgdmFsdWUgZnJvbSBzdG9yYWdlIiksWzIsdm9pZCAwXTtjYXNlIDM6cmV0dXJuWzJdfX0pfSl9LHQucHJvdG90eXBlLmdldFJhdz1mdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3JldHVyblsyLCgobj10aGlzLnN0b3JhZ2UpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRJdGVtKGUpKXx8dm9pZCAwXX0pfSl9LHQucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLG4pe3ZhciBsO3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24oaSl7dHJ5eyhsPXRoaXMuc3RvcmFnZSk9PT1udWxsfHxsPT09dm9pZCAwfHxsLnNldEl0ZW0oZSxKU09OLnN0cmluZ2lmeShuKSl9Y2F0Y2h7fXJldHVyblsyXX0pfSl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3RyeXsobj10aGlzLnN0b3JhZ2UpPT09bnVsbHx8bj09PXZvaWQgMHx8bi5yZW1vdmVJdGVtKGUpfWNhdGNoe31yZXR1cm5bMl19KX0pfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3ZhciBlO3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24obil7dHJ5eyhlPXRoaXMuc3RvcmFnZSk9PT1udWxsfHxlPT09dm9pZCAwfHxlLmNsZWFyKCl9Y2F0Y2h7fXJldHVyblsyXX0pfSl9LHR9KSgpLERpPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpfSx0LnByb3RvdHlwZS5idWlsZFJlc3BvbnNlPWZ1bmN0aW9uKGUpe3ZhciBuLGwsaSxyLG8sYSxjLGQscyx1LGgsZyxiLG0sZixwLEEsWCx5LEksUyxHO2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgQj1lLmNvZGV8fDAsdj10aGlzLmJ1aWxkU3RhdHVzKEIpO3N3aXRjaCh2KXtjYXNlIEllLlN1Y2Nlc3M6cmV0dXJue3N0YXR1czp2LHN0YXR1c0NvZGU6Qixib2R5OntldmVudHNJbmdlc3RlZDoobj1lLmV2ZW50c19pbmdlc3RlZCkhPT1udWxsJiZuIT09dm9pZCAwP246MCxwYXlsb2FkU2l6ZUJ5dGVzOihsPWUucGF5bG9hZF9zaXplX2J5dGVzKSE9PW51bGwmJmwhPT12b2lkIDA/bDowLHNlcnZlclVwbG9hZFRpbWU6KGk9ZS5zZXJ2ZXJfdXBsb2FkX3RpbWUpIT09bnVsbCYmaSE9PXZvaWQgMD9pOjB9fTtjYXNlIEllLkludmFsaWQ6cmV0dXJue3N0YXR1czp2LHN0YXR1c0NvZGU6Qixib2R5OntlcnJvcjoocj1lLmVycm9yKSE9PW51bGwmJnIhPT12b2lkIDA/cjoiIixtaXNzaW5nRmllbGQ6KG89ZS5taXNzaW5nX2ZpZWxkKSE9PW51bGwmJm8hPT12b2lkIDA/bzoiIixldmVudHNXaXRoSW52YWxpZEZpZWxkczooYT1lLmV2ZW50c193aXRoX2ludmFsaWRfZmllbGRzKSE9PW51bGwmJmEhPT12b2lkIDA/YTp7fSxldmVudHNXaXRoTWlzc2luZ0ZpZWxkczooYz1lLmV2ZW50c193aXRoX21pc3NpbmdfZmllbGRzKSE9PW51bGwmJmMhPT12b2lkIDA/Yzp7fSxldmVudHNXaXRoSW52YWxpZElkTGVuZ3RoczooZD1lLmV2ZW50c193aXRoX2ludmFsaWRfaWRfbGVuZ3RocykhPT1udWxsJiZkIT09dm9pZCAwP2Q6e30sZXBzVGhyZXNob2xkOihzPWUuZXBzX3RocmVzaG9sZCkhPT1udWxsJiZzIT09dm9pZCAwP3M6MCxleGNlZWRlZERhaWx5UXVvdGFEZXZpY2VzOih1PWUuZXhjZWVkZWRfZGFpbHlfcXVvdGFfZGV2aWNlcykhPT1udWxsJiZ1IT09dm9pZCAwP3U6e30sc2lsZW5jZWREZXZpY2VzOihoPWUuc2lsZW5jZWRfZGV2aWNlcykhPT1udWxsJiZoIT09dm9pZCAwP2g6W10sc2lsZW5jZWRFdmVudHM6KGc9ZS5zaWxlbmNlZF9ldmVudHMpIT09bnVsbCYmZyE9PXZvaWQgMD9nOltdLHRocm90dGxlZERldmljZXM6KGI9ZS50aHJvdHRsZWRfZGV2aWNlcykhPT1udWxsJiZiIT09dm9pZCAwP2I6e30sdGhyb3R0bGVkRXZlbnRzOihtPWUudGhyb3R0bGVkX2V2ZW50cykhPT1udWxsJiZtIT09dm9pZCAwP206W119fTtjYXNlIEllLlBheWxvYWRUb29MYXJnZTpyZXR1cm57c3RhdHVzOnYsc3RhdHVzQ29kZTpCLGJvZHk6e2Vycm9yOihmPWUuZXJyb3IpIT09bnVsbCYmZiE9PXZvaWQgMD9mOiIifX07Y2FzZSBJZS5SYXRlTGltaXQ6cmV0dXJue3N0YXR1czp2LHN0YXR1c0NvZGU6Qixib2R5OntlcnJvcjoocD1lLmVycm9yKSE9PW51bGwmJnAhPT12b2lkIDA/cDoiIixlcHNUaHJlc2hvbGQ6KEE9ZS5lcHNfdGhyZXNob2xkKSE9PW51bGwmJkEhPT12b2lkIDA/QTowLHRocm90dGxlZERldmljZXM6KFg9ZS50aHJvdHRsZWRfZGV2aWNlcykhPT1udWxsJiZYIT09dm9pZCAwP1g6e30sdGhyb3R0bGVkVXNlcnM6KHk9ZS50aHJvdHRsZWRfdXNlcnMpIT09bnVsbCYmeSE9PXZvaWQgMD95Ont9LGV4Y2VlZGVkRGFpbHlRdW90YURldmljZXM6KEk9ZS5leGNlZWRlZF9kYWlseV9xdW90YV9kZXZpY2VzKSE9PW51bGwmJkkhPT12b2lkIDA/STp7fSxleGNlZWRlZERhaWx5UXVvdGFVc2VyczooUz1lLmV4Y2VlZGVkX2RhaWx5X3F1b3RhX3VzZXJzKSE9PW51bGwmJlMhPT12b2lkIDA/Uzp7fSx0aHJvdHRsZWRFdmVudHM6KEc9ZS50aHJvdHRsZWRfZXZlbnRzKSE9PW51bGwmJkchPT12b2lkIDA/RzpbXX19O2Nhc2UgSWUuVGltZW91dDpkZWZhdWx0OnJldHVybntzdGF0dXM6dixzdGF0dXNDb2RlOkJ9fX0sdC5wcm90b3R5cGUuYnVpbGRTdGF0dXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDA/SWUuU3VjY2VzczplPT09NDI5P0llLlJhdGVMaW1pdDplPT09NDEzP0llLlBheWxvYWRUb29MYXJnZTplPT09NDA4P0llLlRpbWVvdXQ6ZT49NDAwJiZlPDUwMD9JZS5JbnZhbGlkOmU+PTUwMD9JZS5GYWlsZWQ6SWUuVW5rbm93bn0sdH0pKCksVGc9KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24obixsKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxyLG87cmV0dXJuIEModGhpcyxmdW5jdGlvbihhKXtzd2l0Y2goYS5sYWJlbCl7Y2FzZSAwOmlmKHR5cGVvZiBmZXRjaD4idSIpdGhyb3cgbmV3IEVycm9yKCJGZXRjaFRyYW5zcG9ydCBpcyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuIGk9e2hlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6IiovKiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkobCksbWV0aG9kOiJQT1NUIn0sWzQsZmV0Y2gobixpKV07Y2FzZSAxOnJldHVybiByPWEuc2VudCgpLFs0LHIudGV4dCgpXTtjYXNlIDI6bz1hLnNlbnQoKTt0cnl7cmV0dXJuWzIsdGhpcy5idWlsZFJlc3BvbnNlKEpTT04ucGFyc2UobykpXX1jYXRjaHtyZXR1cm5bMix0aGlzLmJ1aWxkUmVzcG9uc2Uoe2NvZGU6ci5zdGF0dXN9KV19cmV0dXJuWzJdfX0pfSl9LGV9KShEaSksTWc9bnVsbCxIZz1bImEiLCJidXR0b24iLCJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIiwibGFiZWwiLCJ2aWRlbyIsImF1ZGlvIiwnW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaV0nLCJbZGF0YS1hbXAtZGVmYXVsdC10cmFja10iLCIuYW1wLWRlZmF1bHQtdHJhY2siXSxGYz0iZGF0YS1hbXAtdHJhY2stIixEZz1bImRpdiIsInNwYW4iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxqZz1bImEiLCJidXR0b24iLCdbcm9sZT0iYnV0dG9uIl0nLCdbcm9sZT0ibGluayJdJywnW3JvbGU9Im1lbnVpdGVtIl0nLCdbcm9sZT0ibWVudWl0ZW1jaGVja2JveCJdJywnW3JvbGU9Im1lbnVpdGVtcmFkaW8iXScsJ1tyb2xlPSJvcHRpb24iXScsJ1tyb2xlPSJ0YWIiXScsJ1tyb2xlPSJ0cmVlaXRlbSJdJywnW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaV0nXSxfZz1qKFsnaW5wdXRbdHlwZT0iYnV0dG9uIl0nLCdpbnB1dFt0eXBlPSJzdWJtaXQiXScsJ2lucHV0W3R5cGU9InJlc2V0Il0nLCdpbnB1dFt0eXBlPSJpbWFnZSJdJywnaW5wdXRbdHlwZT0iZmlsZSJdJ10sVShqZyksITEpLE9nPVsiKiJdLFBnPTFlMywkZz00LHFnPTUwO2Z1bmN0aW9uIGVoKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fHR5cGVvZiB0PT0ibnVtYmVyInx8dHlwZW9mIHQ9PSJib29sZWFuInx8dD09PW51bGx8fHQ9PT12b2lkIDB9ZnVuY3Rpb24gWWModCxlLG4pe2lmKHQpe3ZhciBsPWUubWFwKGlvKSxpPW4ubWFwKGlvKTtVYyh7anNvbjp0LGFsbG93bGlzdDpsLGV4Y2x1ZGVsaXN0OmksYW5jZXN0b3JzOltdfSl9fWZ1bmN0aW9uIFVjKHQpe3ZhciBlLG4sbD10Lmpzb24saT10LnRhcmdldE9iamVjdCxyPXQuYWxsb3dsaXN0LG89dC5leGNsdWRlbGlzdCxhPXQuYW5jZXN0b3JzLGM9dC5wYXJlbnRPYmplY3QsZD10LnRhcmdldEtleTtpfHwoaT1sKTt2YXIgcz1PYmplY3Qua2V5cyhpKTt0cnl7Zm9yKHZhciB1PUQocyksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBnPWgudmFsdWUsYj1qKGooW10sVShhKSwhMSksW2ddLCExKTtlaChpW2ddKT8oIXJvKGIscil8fHJvKGIsbykpJiZkZWxldGUgaVtnXTpVYyh7anNvbjpsLHRhcmdldE9iamVjdDppW2ddLGFsbG93bGlzdDpyLGV4Y2x1ZGVsaXN0Om8sYW5jZXN0b3JzOmIscGFyZW50T2JqZWN0OmksdGFyZ2V0S2V5Omd9KX19Y2F0Y2gobSl7ZT17ZXJyb3I6bX19ZmluYWxseXt0cnl7aCYmIWguZG9uZSYmKG49dS5yZXR1cm4pJiZuLmNhbGwodSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fU9iamVjdC5rZXlzKGkpLmxlbmd0aD09PTAmJmMmJmQmJmRlbGV0ZSBjW2RdfWZ1bmN0aW9uIGlvKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoIi8iKSYmKHQ9dC5zbGljZSgxKSksdC5zcGxpdCgiLyIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9+MC9nLCJ+IikucmVwbGFjZSgvfjEvZywiLyIpfSl9ZnVuY3Rpb24gR2kodCxlLG4sbCl7aWYobj09PXZvaWQgMCYmKG49MCksbD09PXZvaWQgMCYmKGw9MCksbD09PWUubGVuZ3RoKXJldHVybiBuPT09dC5sZW5ndGg7aWYobj09PXQubGVuZ3RoKXtmb3IoO2w8ZS5sZW5ndGgmJmVbbF09PT0iKioiOylsKys7cmV0dXJuIGw9PT1lLmxlbmd0aH12YXIgaT1lW2xdO2lmKGk9PT0iKioiKXtpZihsKzE9PT1lLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIHI9bjtyPD10Lmxlbmd0aDtyKyspaWYoR2kodCxlLHIsbCsxKSlyZXR1cm4hMDtyZXR1cm4hMX1lbHNlIHJldHVybiBpPT09IioifHxpPT09dFtuXT9HaSh0LGUsbisxLGwrMSk6ITF9ZnVuY3Rpb24gcm8odCxlKXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiBHaSh0LG4pfSl9dmFyIHRoPTUwMCxKYz0xMDAsbmg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt0aGlzLnJlcXVlc3Q9ZX1yZXR1cm4gdC5wcm90b3R5cGUuaGVhZGVycz1mdW5jdGlvbihlKXt2YXIgbixsO2U9PT12b2lkIDAmJihlPVtdKTt2YXIgaT10aGlzLnJlcXVlc3QuaGVhZGVycyxyPXt9O2lmKEFycmF5LmlzQXJyYXkoaSkpaS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3ZhciBoPVUodSwyKSxnPWhbMF0sYj1oWzFdO3JbZ109Yn0pO2Vsc2UgaWYoaSBpbnN0YW5jZW9mIEhlYWRlcnMpaS5mb3JFYWNoKGZ1bmN0aW9uKHUsaCl7cltoXT11fSk7ZWxzZSBpZih0eXBlb2YgaT09Im9iamVjdCImJmkhPT1udWxsKXRyeXtmb3IodmFyIG89RChPYmplY3QuZW50cmllcyhpKSksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBjPVUoYS52YWx1ZSwyKSxkPWNbMF0scz1jWzFdO3JbZF09c319Y2F0Y2godSl7bj17ZXJyb3I6dX19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKGw9by5yZXR1cm4pJiZsLmNhbGwobyl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBGbChyLHthbGxvdzplfSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiYm9keVNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5fYm9keVNpemU9PSJudW1iZXIiKXJldHVybiB0aGlzLl9ib2R5U2l6ZTt2YXIgZT1GZSgpO2lmKGUhPW51bGwmJmUuVGV4dEVuY29kZXIpe3ZhciBuPXRoaXMucmVxdWVzdC5ib2R5O3JldHVybiB0aGlzLl9ib2R5U2l6ZT14YyhuLEpjKSx0aGlzLl9ib2R5U2l6ZX19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtZXRob2QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXF1ZXN0Lm1ldGhvZH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImJvZHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIHRoaXMucmVxdWVzdC5ib2R5PT0ic3RyaW5nIj90aGlzLnJlcXVlc3QuYm9keTpudWxsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmpzb249ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9W10pLG49PT12b2lkIDAmJihuPVtdKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBsO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oaSl7cmV0dXJuIGUubGVuZ3RoPT09MD9bMixudWxsXToobD10aGlzLmJvZHksWzIsamkobCxlLG4pXSl9KX0pfSx0fSkoKSxsaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dGhpcy5ib2R5UmF3PWUsdGhpcy5yZXF1ZXN0SGVhZGVycz1ufXJldHVybiB0LnByb3RvdHlwZS5oZWFkZXJzPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1bXSksRmwodGhpcy5yZXF1ZXN0SGVhZGVycyx7YWxsb3c6ZX0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImJvZHlTaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHhjKHRoaXMuYm9keVJhdyxKYyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJib2R5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiB0aGlzLmJvZHlSYXc9PSJzdHJpbmciP3RoaXMuYm9keVJhdzpudWxsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmpzb249ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9W10pLG49PT12b2lkIDAmJihuPVtdKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBsO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oaSl7cmV0dXJuIGUubGVuZ3RoPT09MD9bMixudWxsXToobD10aGlzLmJvZHksWzIsamkobCxlLG4pXSl9KX0pfSx0fSkoKTtmdW5jdGlvbiB4Yyh0LGUpe3ZhciBuLGwsaSxyPUZlKCksbz1yPT1udWxsP3ZvaWQgMDpyLlRleHRFbmNvZGVyO2lmKG8pe3ZhciBhO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilhPXQsaT1uZXcgbygpLmVuY29kZShhKS5sZW5ndGg7ZWxzZSBpZih0IGluc3RhbmNlb2YgQmxvYilhPXQsaT1hLnNpemU7ZWxzZSBpZih0IGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKWE9dCxpPW5ldyBvKCkuZW5jb2RlKGEudG9TdHJpbmcoKSkubGVuZ3RoO2Vsc2UgaWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKWE9dCxpPWEuYnl0ZUxlbmd0aDtlbHNlIGlmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilhPXQsaT1hLmJ5dGVMZW5ndGg7ZWxzZSBpZih0IGluc3RhbmNlb2YgRm9ybURhdGEpe3ZhciBjPXQsZD0wLHM9MDt0cnl7Zm9yKHZhciB1PUQoYy5lbnRyaWVzKCkpLGg9dS5uZXh0KCk7IWguZG9uZTtoPXUubmV4dCgpKXt2YXIgZz1VKGgudmFsdWUsMiksYj1nWzBdLG09Z1sxXTtpZihkKz1iLmxlbmd0aCx0eXBlb2YgbT09InN0cmluZyIpZCs9bmV3IG8oKS5lbmNvZGUobSkubGVuZ3RoO2Vsc2UgaWYobSBpbnN0YW5jZW9mIEJsb2IpZCs9bS5zaXplO2Vsc2UgcmV0dXJuO2lmKCsrcz49ZSlyZXR1cm59fWNhdGNoKGYpe249e2Vycm9yOmZ9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihsPXUucmV0dXJuKSYmbC5jYWxsKHUpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1pPWR9ZWxzZSBpZih0IGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW0pe2E9dDtyZXR1cm59cmV0dXJuIGl9fXZhciBpaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMucmVzcG9uc2U9ZX1yZXR1cm4gdC5wcm90b3R5cGUuaGVhZGVycz1mdW5jdGlvbihlKXt2YXIgbjtpZihlPT09dm9pZCAwJiYoZT1bXSksdGhpcy5yZXNwb25zZS5oZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycyl7dmFyIGw9dGhpcy5yZXNwb25zZS5oZWFkZXJzLGk9e307cmV0dXJuKG49bD09bnVsbD92b2lkIDA6bC5mb3JFYWNoKT09PW51bGx8fG49PT12b2lkIDB8fG4uY2FsbChsLGZ1bmN0aW9uKHIsbyl7aVtvXT1yfSksRmwoaSx7YWxsb3c6ZX0pfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJib2R5U2l6ZSIse2dldDpmdW5jdGlvbigpe3ZhciBlLG47aWYodGhpcy5fYm9keVNpemUhPT12b2lkIDApcmV0dXJuIHRoaXMuX2JvZHlTaXplO3ZhciBsPShuPShlPXRoaXMucmVzcG9uc2UuaGVhZGVycyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmdldCk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNhbGwoZSwiY29udGVudC1sZW5ndGgiKSxpPWw/cGFyc2VJbnQobCwxMCk6dm9pZCAwO3JldHVybiB0aGlzLl9ib2R5U2l6ZT1pLGl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJzdGF0dXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNwb25zZS5zdGF0dXN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUudGV4dD1mdW5jdGlvbigpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4sbDtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGkpe3N3aXRjaChpLmxhYmVsKXtjYXNlIDA6dGhpcy5jbG9uZWRSZXNwb25zZXx8KHRoaXMuY2xvbmVkUmVzcG9uc2U9dGhpcy5yZXNwb25zZS5jbG9uZSgpKSxpLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBpLnRyeXMucHVzaChbMSwzLCw0XSksZT10aGlzLmNsb25lZFJlc3BvbnNlLnRleHQoKSxuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIobnVsbCl9LHRoKX0pLFs0LFByb21pc2UucmFjZShbZSxuXSldO2Nhc2UgMjpyZXR1cm4gbD1pLnNlbnQoKSxbMixsXTtjYXNlIDM6cmV0dXJuIGkuc2VudCgpLFsyLG51bGxdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sdC5wcm90b3R5cGUuanNvbj1mdW5jdGlvbihlLG4pe3JldHVybiBlPT09dm9pZCAwJiYoZT1bXSksbj09PXZvaWQgMCYmKG49W10pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGw7cmV0dXJuIEModGhpcyxmdW5jdGlvbihpKXtzd2l0Y2goaS5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLmxlbmd0aD09PTA/WzIsbnVsbF06WzQsdGhpcy50ZXh0KCldO2Nhc2UgMTpyZXR1cm4gbD1pLnNlbnQoKSxbMixqaShsLGUsbildfX0pfSl9LHR9KSgpLHJoPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGwsaSl7dGhpcy5zdGF0dXNDb2RlPWUsdGhpcy5oZWFkZXJzU3RyaW5nPW4sdGhpcy5zaXplPWwsdGhpcy5nZXRKc29uPWl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiYm9keVNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwic3RhdHVzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdHVzQ29kZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5oZWFkZXJzPWZ1bmN0aW9uKGUpe3ZhciBuLGw7aWYoZT09PXZvaWQgMCYmKGU9W10pLCF0aGlzLmhlYWRlcnNTdHJpbmcpcmV0dXJue307dmFyIGk9e30scj10aGlzLmhlYWRlcnNTdHJpbmcuc3BsaXQoYFxyCmApO3RyeXtmb3IodmFyIG89RChyKSxhPW8ubmV4dCgpOyFhLmRvbmU7YT1vLm5leHQoKSl7dmFyIGM9YS52YWx1ZSxkPVUoYy5zcGxpdCgiOiAiKSwyKSxzPWRbMF0sdT1kWzFdO3MmJnUmJihpW3NdPXUpfX1jYXRjaChoKXtuPXtlcnJvcjpofX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobD1vLnJldHVybikmJmwuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuIEZsKGkse2FsbG93OmV9KX0sdC5wcm90b3R5cGUuanNvbj1mdW5jdGlvbihlLG4pe3JldHVybiBlPT09dm9pZCAwJiYoZT1bXSksbj09PXZvaWQgMCYmKG49W10pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGw7cmV0dXJuIEModGhpcyxmdW5jdGlvbihpKXtyZXR1cm4gZS5sZW5ndGg9PT0wP1syLG51bGxdOihsPXRoaXMuZ2V0SnNvbigpLGw/KFljKGwsZSxuKSxbMixsXSk6WzIsbnVsbF0pfSl9KX0sdH0pKCk7ZnVuY3Rpb24gamkodCxlLG4pe2lmKCF0KXJldHVybiBudWxsO3RyeXt2YXIgbD1KU09OLnBhcnNlKHQpO3JldHVybiBZYyhsLGUsbiksbH1jYXRjaHtyZXR1cm4gbnVsbH19dmFyIEFuOyhmdW5jdGlvbih0KXt0LlJFREFDVD0icmVkYWN0Iix0LlJFTU9WRT0icmVtb3ZlIn0pKEFufHwoQW49e30pKTt2YXIgb289IltSRURBQ1RFRF0iLEZsPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbCxpPWUuYWxsb3cscj1pPT09dm9pZCAwP1tdOmksbz1lLnN0cmF0ZWd5LGE9bz09PXZvaWQgMD9Bbi5SRU1PVkU6byxjPWooW10sVShPdSksITEpLGQ9e30scz1mdW5jdGlvbihiKXt2YXIgbT1iLnRvTG93ZXJDYXNlKCk7Yy5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBmLnRvTG93ZXJDYXNlKCk9PT1tfSk/YT09PUFuLlJFREFDVCYmKGRbYl09b28pOnIuZmluZChmdW5jdGlvbihmKXtyZXR1cm4gZi50b0xvd2VyQ2FzZSgpPT09bX0pP2RbYl09dFtiXTphPT09QW4uUkVEQUNUJiYoZFtiXT1vbyl9O3RyeXtmb3IodmFyIHU9RChPYmplY3Qua2V5cyh0KSksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBnPWgudmFsdWU7cyhnKX19Y2F0Y2goYil7bj17ZXJyb3I6Yn19ZmluYWxseXt0cnl7aCYmIWguZG9uZSYmKGw9dS5yZXR1cm4pJiZsLmNhbGwodSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBkfSxvaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixsLGkscixvLGEsYyxkLHMsdSl7YT09PXZvaWQgMCYmKGE9MCksdGhpcy50eXBlPWUsdGhpcy5tZXRob2Q9bix0aGlzLnRpbWVzdGFtcD1sLHRoaXMuc3RhcnRUaW1lPWksdGhpcy51cmw9cix0aGlzLnJlcXVlc3RXcmFwcGVyPW8sdGhpcy5zdGF0dXM9YSx0aGlzLmR1cmF0aW9uPWMsdGhpcy5yZXNwb25zZVdyYXBwZXI9ZCx0aGlzLmVycm9yPXMsdGhpcy5lbmRUaW1lPXV9cmV0dXJuIHQucHJvdG90eXBlLnRvU2VyaWFsaXphYmxlPWZ1bmN0aW9uKCl7dmFyIGUsbixsLGkscj17dHlwZTp0aGlzLnR5cGUsbWV0aG9kOnRoaXMubWV0aG9kLHVybDp0aGlzLnVybCx0aW1lc3RhbXA6dGhpcy50aW1lc3RhbXAsc3RhdHVzOnRoaXMuc3RhdHVzLGR1cmF0aW9uOnRoaXMuZHVyYXRpb24sZXJyb3I6dGhpcy5lcnJvcixzdGFydFRpbWU6dGhpcy5zdGFydFRpbWUsZW5kVGltZTp0aGlzLmVuZFRpbWUscmVxdWVzdEhlYWRlcnM6KGU9dGhpcy5yZXF1ZXN0V3JhcHBlcik9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmhlYWRlcnMoaihbXSxVKG1sKSwhMSkpLHJlcXVlc3RCb2R5U2l6ZToobj10aGlzLnJlcXVlc3RXcmFwcGVyKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uYm9keVNpemUscmVzcG9uc2VIZWFkZXJzOihsPXRoaXMucmVzcG9uc2VXcmFwcGVyKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuaGVhZGVycyhqKFtdLFUobWwpLCExKSkscmVzcG9uc2VCb2R5U2l6ZTooaT10aGlzLnJlc3BvbnNlV3JhcHBlcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmJvZHlTaXplfTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLmZpbHRlcihmdW5jdGlvbihvKXt2YXIgYT1VKG8sMik7YVswXTt2YXIgYz1hWzFdO3JldHVybiBjIT09dm9pZCAwfSkpfSx0fSkoKTtmdW5jdGlvbiBhaCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmInVybCJpbiB0JiYibWV0aG9kImluIHR9dmFyIGNoPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXtuPT09dm9pZCAwJiYobj1XdCgpKSx0aGlzLmNhbGxiYWNrPWUsdGhpcy5pZD1ufXJldHVybiB0fSkoKSxkaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuZXZlbnRDYWxsYmFja3M9bmV3IE1hcCx0aGlzLmlzT2JzZXJ2aW5nPSExLHRoaXMubG9nZ2VyPWU7dmFyIG49RmUoKTt0LmlzU3VwcG9ydGVkKCkmJih0aGlzLmdsb2JhbFNjb3BlPW4pfXJldHVybiB0LmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7dmFyIGU9RmUoKTtyZXR1cm4hIWUmJiEhZS5mZXRjaH0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsbil7dmFyIGwsaSxyLG8sYSxjLGQscyx1LGg7aWYodGhpcy5sb2dnZXJ8fCh0aGlzLmxvZ2dlcj1uKSx0aGlzLmV2ZW50Q2FsbGJhY2tzLnNldChlLmlkLGUpLCF0aGlzLmlzT2JzZXJ2aW5nKXt2YXIgZz0ocj0oaT0obD10aGlzLmdsb2JhbFNjb3BlKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuWE1MSHR0cFJlcXVlc3QpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5wcm90b3R5cGUpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5vcGVuLGI9KGM9KGE9KG89dGhpcy5nbG9iYWxTY29wZSk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLlhNTEh0dHBSZXF1ZXN0KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEucHJvdG90eXBlKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMuc2VuZCxtPSh1PShzPShkPXRoaXMuZ2xvYmFsU2NvcGUpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5YTUxIdHRwUmVxdWVzdCk9PT1udWxsfHxzPT09dm9pZCAwP3ZvaWQgMDpzLnByb3RvdHlwZSk9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1LnNldFJlcXVlc3RIZWFkZXI7ZyYmYiYmbSYmdGhpcy5vYnNlcnZlWGhyKGcsYixtKTt2YXIgZj0oaD10aGlzLmdsb2JhbFNjb3BlKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguZmV0Y2g7ZiYmdGhpcy5vYnNlcnZlRmV0Y2goZiksdGhpcy5pc09ic2VydmluZz0hMH19LHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RoaXMuZXZlbnRDYWxsYmFja3MuZGVsZXRlKGUuaWQpfSx0LnByb3RvdHlwZS50cmlnZ2VyRXZlbnRDYWxsYmFja3M9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0aGlzLmV2ZW50Q2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24obCl7dmFyIGk7dHJ5e2wuY2FsbGJhY2soZSl9Y2F0Y2gocil7KGk9bi5sb2dnZXIpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5kZWJ1ZygiYW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSB0cmlnZ2VyaW5nIGV2ZW50IGNhbGxiYWNrcyIscil9fSl9LHQucHJvdG90eXBlLmhhbmRsZU5ldHdvcmtSZXF1ZXN0RXZlbnQ9ZnVuY3Rpb24oZSxuLGwsaSxyLG8sYSl7dmFyIGMsZDtpZighKG89PT12b2lkIDB8fGE9PT12b2lkIDApKXt2YXIgcyx1PSJHRVQiO2lmKGFoKG4pPyhzPW4udXJsLHU9bi5tZXRob2QpOnM9KGM9bj09bnVsbD92b2lkIDA6bi50b1N0cmluZyk9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLmNhbGwobikscyl0cnl7dmFyIGg9bmV3IFVSTChzKTtzPSIiLmNvbmNhdChoLnByb3RvY29sLCIvLyIpLmNvbmNhdChoLmhvc3QpLmNvbmNhdChoLnBhdGhuYW1lKS5jb25jYXQoaC5zZWFyY2gpLmNvbmNhdChoLmhhc2gpfWNhdGNoKEEpeyhkPXRoaXMubG9nZ2VyKT09PW51bGx8fGQ9PT12b2lkIDB8fGQuZXJyb3IoImFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgcGFyc2luZyB0aGUgVVJMIixBKX11PShsPT1udWxsP3ZvaWQgMDpsLm1ldGhvZCl8fHU7dmFyIGcsYjtpJiYoZz1pLnN0YXR1cyksciYmKGI9e25hbWU6ci5uYW1lfHwiVW5rbm93bkVycm9yIixtZXNzYWdlOnIubWVzc2FnZXx8IkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQifSxnPTApO3ZhciBtPU1hdGguZmxvb3IocGVyZm9ybWFuY2Uubm93KCktYSksZj1NYXRoLmZsb29yKG8rbSkscD1uZXcgb2goZSx1LG8sbyxzLGwsZyxtLGksYixmKTt0aGlzLnRyaWdnZXJFdmVudENhbGxiYWNrcyhwKX19LHQucHJvdG90eXBlLmdldFRpbWVzdGFtcHM9ZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybntzdGFydFRpbWU6KGU9RGF0ZS5ub3cpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5jYWxsKERhdGUpLGR1cmF0aW9uU3RhcnQ6KG49cGVyZm9ybWFuY2U9PW51bGw/dm9pZCAwOnBlcmZvcm1hbmNlLm5vdyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNhbGwocGVyZm9ybWFuY2UpfX0sdC5wcm90b3R5cGUub2JzZXJ2ZUZldGNoPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7IXRoaXMuZ2xvYmFsU2NvcGV8fCFlfHwodGhpcy5nbG9iYWxTY29wZS5mZXRjaD1mdW5jdGlvbihsLGkpe3JldHVybiBXKG4sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciByLG8sYSxjLGQscztyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKHUpe3N3aXRjaCh1LmxhYmVsKXtjYXNlIDA6dHJ5e3I9dGhpcy5nZXRUaW1lc3RhbXBzKCl9Y2F0Y2goaCl7KGQ9dGhpcy5sb2dnZXIpPT09bnVsbHx8ZD09PXZvaWQgMHx8ZC5kZWJ1ZygiYW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRpbWVzdGFtcHMiLGgpfXUubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHUudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxlKGwsaSldO2Nhc2UgMjpyZXR1cm4gbz11LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGM9dS5zZW50KCksYT1jLFszLDRdO2Nhc2UgNDp0cnl7dGhpcy5oYW5kbGVOZXR3b3JrUmVxdWVzdEV2ZW50KCJmZXRjaCIsbCxpP25ldyBuaChpKTp2b2lkIDAsbz9uZXcgaWgobyk6dm9pZCAwLGEscj09bnVsbD92b2lkIDA6ci5zdGFydFRpbWUscj09bnVsbD92b2lkIDA6ci5kdXJhdGlvblN0YXJ0KX1jYXRjaChoKXsocz10aGlzLmxvZ2dlcik9PT1udWxsfHxzPT09dm9pZCAwfHxzLmRlYnVnKCJhbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIGhhbmRsaW5nIGZldGNoIixoKX1pZihvKXJldHVyblsyLG9dO3Rocm93IGF9fSl9KX0pfSx0LmNyZWF0ZVhockpzb25QYXJzZXI9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbCxpO3RyeXtpZihlLnJlc3BvbnNlVHlwZT09PSJqc29uIil7aWYoISgobD1uLmdsb2JhbFNjb3BlKT09PW51bGx8fGw9PT12b2lkIDApJiZsLnN0cnVjdHVyZWRDbG9uZSlyZXR1cm4gbi5nbG9iYWxTY29wZS5zdHJ1Y3R1cmVkQ2xvbmUoZS5yZXNwb25zZSl9ZWxzZSBpZihbInRleHQiLCIiXS5pbmNsdWRlcyhlLnJlc3BvbnNlVHlwZSkpcmV0dXJuIEpTT04ucGFyc2UoZS5yZXNwb25zZVRleHQpfWNhdGNoKHIpe3JldHVybiByIGluc3RhbmNlb2YgRXJyb3ImJnIubmFtZT09PSJJbnZhbGlkU3RhdGVFcnJvciImJigoaT1uLmxvZ2dlcik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmVycm9yKCJ1bmV4cGVjdGVkIGVycm9yIHdoZW4gcmV0cmlldmluZyByZXNwb25zZVRleHQuIHJlc3BvbnNlVHlwZT0nIi5jb25jYXQoZS5yZXNwb25zZVR5cGUsIiciKSkpLG51bGx9cmV0dXJuIG51bGx9fSx0LnByb3RvdHlwZS5vYnNlcnZlWGhyPWZ1bmN0aW9uKGUsbixsKXtpZighKCF0aGlzLmdsb2JhbFNjb3BlfHwhZXx8IW4pKXt2YXIgaT10aGlzLmdsb2JhbFNjb3BlLlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSxyPXRoaXM7aS5vcGVuPWZ1bmN0aW9uKCl7Zm9yKHZhciBvLGEsYz1bXSxkPTA7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKyljW2RdPWFyZ3VtZW50c1tkXTt2YXIgcz10aGlzLHU9VShjLDIpLGg9dVswXSxnPXVbMV07dHJ5e3MuJCRBbXBsaXR1ZGVBbmFseXRpY3NFdmVudD1OKHttZXRob2Q6aCx1cmw6KG89Zz09bnVsbD92b2lkIDA6Zy50b1N0cmluZyk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmNhbGwoZyksaGVhZGVyczp7fX0sci5nZXRUaW1lc3RhbXBzKCkpfWNhdGNoKGIpeyhhPXIubG9nZ2VyKT09PW51bGx8fGE9PT12b2lkIDB8fGEuZXJyb3IoImFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2FsbGluZyB4aHIgb3BlbiIsYil9cmV0dXJuIGUuYXBwbHkocyxjKX0saS5zZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPVtdLGE9MDthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKW9bYV09YXJndW1lbnRzW2FdO3ZhciBjPXRoaXMsZD1jLHM9dC5jcmVhdGVYaHJKc29uUGFyc2VyKGMsciksdT1vWzBdLGg9ZC4kJEFtcGxpdHVkZUFuYWx5dGljc0V2ZW50O3JldHVybiBkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGZ1bmN0aW9uKCl7dmFyIGc7dHJ5e3ZhciBiPWQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCksbT1kLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LWxlbmd0aCIpLGY9bmV3IHJoKGQuc3RhdHVzLGIsbT9wYXJzZUludChtLDEwKTp2b2lkIDAscykscD1kLiQkQW1wbGl0dWRlQW5hbHl0aWNzRXZlbnQuaGVhZGVycyxBPW5ldyBsaCh1LHApO2guc3RhdHVzPWQuc3RhdHVzLHIuaGFuZGxlTmV0d29ya1JlcXVlc3RFdmVudCgieGhyIix7dXJsOmgudXJsLG1ldGhvZDpoLm1ldGhvZH0sQSxmLHZvaWQgMCxoLnN0YXJ0VGltZSxoLmR1cmF0aW9uU3RhcnQpfWNhdGNoKFgpeyhnPXIubG9nZ2VyKT09PW51bGx8fGc9PT12b2lkIDB8fGcuZXJyb3IoImFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgaGFuZGxpbmcgeGhyIHNlbmQiLFgpfX0pLG4uYXBwbHkoZCxvKX0saS5zZXRSZXF1ZXN0SGVhZGVyPWZ1bmN0aW9uKG8sYSl7dmFyIGMsZD10aGlzO3RyeXtkLiQkQW1wbGl0dWRlQW5hbHl0aWNzRXZlbnQuaGVhZGVyc1tvXT1hfWNhdGNoKHMpeyhjPXIubG9nZ2VyKT09PW51bGx8fGM9PT12b2lkIDB8fGMuZXJyb3IoImFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2FsbGluZyB4aHIgc2V0UmVxdWVzdEhlYWRlciIscyl9bC5hcHBseShkLFtvLGFdKX19fSx0fSkoKSxhbz1uZXcgZGgsc2g9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVyblsyLE4oTihOKE4oe30sTWkpLHRoaXMuZ2V0VXRtUGFyYW0oKSksdGhpcy5nZXRSZWZlcnJlcigpKSx0aGlzLmdldENsaWNrSWRzKCkpXX0pfSl9LHQucHJvdG90eXBlLmdldFV0bVBhcmFtPWZ1bmN0aW9uKCl7dmFyIGU9ZmwoKSxuPWVbVHVdLGw9ZVtNdV0saT1lW0h1XSxyPWVbRHVdLG89ZVtqdV0sYT1lW191XTtyZXR1cm57dXRtX2NhbXBhaWduOm4sdXRtX2NvbnRlbnQ6bCx1dG1faWQ6aSx1dG1fbWVkaXVtOnIsdXRtX3NvdXJjZTpvLHV0bV90ZXJtOmF9fSx0LnByb3RvdHlwZS5nZXRSZWZlcnJlcj1mdW5jdGlvbigpe3ZhciBlLG4sbD17cmVmZXJyZXI6dm9pZCAwLHJlZmVycmluZ19kb21haW46dm9pZCAwfTt0cnl7bC5yZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcnx8dm9pZCAwLGwucmVmZXJyaW5nX2RvbWFpbj0obj0oZT1sLnJlZmVycmVyKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuc3BsaXQoIi8iKVsyXSkhPT1udWxsJiZuIT09dm9pZCAwP246dm9pZCAwfWNhdGNoe31yZXR1cm4gbH0sdC5wcm90b3R5cGUuZ2V0Q2xpY2tJZHM9ZnVuY3Rpb24oKXt2YXIgZSxuPWZsKCk7cmV0dXJuIGU9e30sZVtLcl09bltLcl0sZVtUcl09bltUcl0sZVtNcl09bltNcl0sZVtIcl09bltIcl0sZVtEcl09bltEcl0sZVtqcl09bltqcl0sZVtfcl09bltfcl0sZVtPcl09bltPcl0sZVtQcl09bltQcl0sZVskcl09blskcl0sZVtxcl09bltxcl0sZX0sdH0pKCksRm49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJib29sZWFuIj90Oih0PT1udWxsP3ZvaWQgMDp0W2VdKSE9PSExfSx3Yz1mdW5jdGlvbih0KXtyZXR1cm4gRm4odCwiYXR0cmlidXRpb24iKX0sdWg9ZnVuY3Rpb24odCl7cmV0dXJuIEZuKHQsImZpbGVEb3dubG9hZHMiKX0sZ2g9ZnVuY3Rpb24odCl7cmV0dXJuIEZuKHQsImZvcm1JbnRlcmFjdGlvbnMiKX0sa2M9ZnVuY3Rpb24odCl7cmV0dXJuIEZuKHQsInBhZ2VWaWV3cyIpfSxjbz1mdW5jdGlvbih0KXtyZXR1cm4gRm4odCwic2Vzc2lvbnMiKX0semM9ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmKHQubmV0d29ya1RyYWNraW5nPT09ITB8fHR5cGVvZiB0Lm5ldHdvcmtUcmFja2luZz09Im9iamVjdCIpfSxRYz1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJib29sZWFuIj90OnR5cGVvZiB0PT0ib2JqZWN0IiYmKHQuZWxlbWVudEludGVyYWN0aW9ucz09PSEwfHx0eXBlb2YgdC5lbGVtZW50SW50ZXJhY3Rpb25zPT0ib2JqZWN0Iil9LGhoPWZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQud2ViVml0YWxzPT09ITB9LExjPWZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09ImJvb2xlYW4iP3Q6dHlwZW9mIHQ9PSJvYmplY3QiJiYodC5mcnVzdHJhdGlvbkludGVyYWN0aW9ucz09PSEwfHx0eXBlb2YgdC5mcnVzdHJhdGlvbkludGVyYWN0aW9ucz09Im9iamVjdCIpfSxiaD1mdW5jdGlvbih0KXtpZihRYyh0LmF1dG9jYXB0dXJlKSYmdHlwZW9mIHQuYXV0b2NhcHR1cmU9PSJvYmplY3QiJiZ0eXBlb2YgdC5hdXRvY2FwdHVyZS5lbGVtZW50SW50ZXJhY3Rpb25zPT0ib2JqZWN0IilyZXR1cm4gdC5hdXRvY2FwdHVyZS5lbGVtZW50SW50ZXJhY3Rpb25zfSxWaD1mdW5jdGlvbih0KXtpZihMYyh0LmF1dG9jYXB0dXJlKSYmdHlwZW9mIHQuYXV0b2NhcHR1cmU9PSJvYmplY3QiJiZ0eXBlb2YgdC5hdXRvY2FwdHVyZS5mcnVzdHJhdGlvbkludGVyYWN0aW9ucz09Im9iamVjdCIpcmV0dXJuIHQuYXV0b2NhcHR1cmUuZnJ1c3RyYXRpb25JbnRlcmFjdGlvbnN9LG1oPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKHpjKHQuYXV0b2NhcHR1cmUpKXt2YXIgbj12b2lkIDA7cmV0dXJuIHR5cGVvZiB0LmF1dG9jYXB0dXJlPT0ib2JqZWN0IiYmdHlwZW9mIHQuYXV0b2NhcHR1cmUubmV0d29ya1RyYWNraW5nPT0ib2JqZWN0Ij9uPXQuYXV0b2NhcHR1cmUubmV0d29ya1RyYWNraW5nOnQubmV0d29ya1RyYWNraW5nT3B0aW9ucyYmKG49dC5uZXR3b3JrVHJhY2tpbmdPcHRpb25zKSxOKE4oe30sbikse2NhcHR1cmVSdWxlczooZT1uPT1udWxsP3ZvaWQgMDpuLmNhcHR1cmVSdWxlcyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLm1hcChmdW5jdGlvbihsKXt2YXIgaTtpZihsLnVybHMmJmwuaG9zdHMpe3ZhciByPUpTT04uc3RyaW5naWZ5KGwuaG9zdHMpLG89SlNPTi5zdHJpbmdpZnkobC51cmxzKTtyZXR1cm4oaT10LmxvZ2dlclByb3ZpZGVyKT09PW51bGx8fGk9PT12b2lkIDB8fGkud2FybigiRm91bmQgbmV0d29yayBjYXB0dXJlIHJ1bGUgd2l0aCBib3RoIHVybHM9JyIuY29uY2F0KG8sIicgYW5kIGhvc3RzPSciKS5jb25jYXQociwiJyBzZXQuICIpKyJEZWZpbml0aW9uIG9mIHVybHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGhvc3RzLCBzbyBpZ25vcmluZyBob3N0cy4iKSxOKE4oe30sbCkse2hvc3RzOnZvaWQgMH0pfXJldHVybiBsfSl9KX19LGZoPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LG49dm9pZCAwLGwsaT10LnBhZ2VDb3VudGVyLHI9a2ModC5kZWZhdWx0VHJhY2tpbmcpO3JldHVybiByJiYoZT12b2lkIDAsbD12b2lkIDAsdC5kZWZhdWx0VHJhY2tpbmcmJnR5cGVvZiB0LmRlZmF1bHRUcmFja2luZz09Im9iamVjdCImJnQuZGVmYXVsdFRyYWNraW5nLnBhZ2VWaWV3cyYmdHlwZW9mIHQuZGVmYXVsdFRyYWNraW5nLnBhZ2VWaWV3cz09Im9iamVjdCImJigidHJhY2tPbiJpbiB0LmRlZmF1bHRUcmFja2luZy5wYWdlVmlld3MmJihlPXQuZGVmYXVsdFRyYWNraW5nLnBhZ2VWaWV3cy50cmFja09uKSwidHJhY2tIaXN0b3J5Q2hhbmdlcyJpbiB0LmRlZmF1bHRUcmFja2luZy5wYWdlVmlld3MmJihuPXQuZGVmYXVsdFRyYWNraW5nLnBhZ2VWaWV3cy50cmFja0hpc3RvcnlDaGFuZ2VzKSwiZXZlbnRUeXBlImluIHQuZGVmYXVsdFRyYWNraW5nLnBhZ2VWaWV3cyYmdC5kZWZhdWx0VHJhY2tpbmcucGFnZVZpZXdzLmV2ZW50VHlwZSYmKGw9dC5kZWZhdWx0VHJhY2tpbmcucGFnZVZpZXdzLmV2ZW50VHlwZSkpKSx7dHJhY2tPbjplLHRyYWNrSGlzdG9yeUNoYW5nZXM6bixldmVudFR5cGU6bCxwYWdlQ291bnRlcjppfX0sQWg9ZnVuY3Rpb24odCl7cmV0dXJuIHdjKHQuZGVmYXVsdFRyYWNraW5nKSYmdC5kZWZhdWx0VHJhY2tpbmcmJnR5cGVvZiB0LmRlZmF1bHRUcmFja2luZz09Im9iamVjdCImJnQuZGVmYXVsdFRyYWNraW5nLmF0dHJpYnV0aW9uJiZ0eXBlb2YgdC5kZWZhdWx0VHJhY2tpbmcuYXR0cmlidXRpb249PSJvYmplY3QiP04oe30sdC5kZWZhdWx0VHJhY2tpbmcuYXR0cmlidXRpb24pOnt9fSxqbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbD1lW25dLGk9bC5uYW1lLHI9bC5hcmdzLG89bC5yZXNvbHZlLGE9dCYmdFtpXTtpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil7dmFyIGM9YS5hcHBseSh0LHIpO3R5cGVvZiBvPT0iZnVuY3Rpb24iJiZvKGM9PW51bGw/dm9pZCAwOmMucHJvbWlzZSl9fXJldHVybiB0fSxfbD1mdW5jdGlvbih0KXt2YXIgZT10O3JldHVybiBlJiZlLl9xIT09dm9pZCAwfSxLYz0iMi4yNC4xIixwaD0iYW1wbGl0dWRlLXRzIixaaD0iV2ViIixHaD0iJHJlbW90ZSIsWGg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubmFtZT0iQGFtcGxpdHVkZS9wbHVnaW4tY29udGV4dC1icm93c2VyIix0aGlzLnR5cGU9ImJlZm9yZSIsdGhpcy5saWJyYXJ5PSIiLmNvbmNhdChwaCwiLyIpLmNvbmNhdChLYyksdHlwZW9mIG5hdmlnYXRvcjwidSImJih0aGlzLnVzZXJBZ2VudD1uYXZpZ2F0b3IudXNlckFnZW50KX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY29uZmlnPWUsUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9LHQucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oZSl7dmFyIG4sbDtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxyLG8sYTtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGMpe3JldHVybiBpPW5ldyBEYXRlKCkuZ2V0VGltZSgpLHI9KG49dGhpcy5jb25maWcubGFzdEV2ZW50SWQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOi0xLG89KGw9ZS5ldmVudF9pZCkhPT1udWxsJiZsIT09dm9pZCAwP2w6cisxLHRoaXMuY29uZmlnLmxhc3RFdmVudElkPW8sZS50aW1lfHwodGhpcy5jb25maWcubGFzdEV2ZW50VGltZT1pKSxhPU4oTihOKE4oTihOKE4oTih7dXNlcl9pZDp0aGlzLmNvbmZpZy51c2VySWQsZGV2aWNlX2lkOnRoaXMuY29uZmlnLmRldmljZUlkLHNlc3Npb25faWQ6dGhpcy5jb25maWcuc2Vzc2lvbklkLHRpbWU6aX0sdGhpcy5jb25maWcuYXBwVmVyc2lvbiYme2FwcF92ZXJzaW9uOnRoaXMuY29uZmlnLmFwcFZlcnNpb259KSx0aGlzLmNvbmZpZy50cmFja2luZ09wdGlvbnMucGxhdGZvcm0mJntwbGF0Zm9ybTpaaH0pLHRoaXMuY29uZmlnLnRyYWNraW5nT3B0aW9ucy5sYW5ndWFnZSYme2xhbmd1YWdlOndnKCl9KSx0aGlzLmNvbmZpZy50cmFja2luZ09wdGlvbnMuaXBBZGRyZXNzJiZ7aXA6R2h9KSx7aW5zZXJ0X2lkOld0KCkscGFydG5lcl9pZDp0aGlzLmNvbmZpZy5wYXJ0bmVySWQscGxhbjp0aGlzLmNvbmZpZy5wbGFufSksdGhpcy5jb25maWcuaW5nZXN0aW9uTWV0YWRhdGEmJntpbmdlc3Rpb25fbWV0YWRhdGE6e3NvdXJjZV9uYW1lOnRoaXMuY29uZmlnLmluZ2VzdGlvbk1ldGFkYXRhLnNvdXJjZU5hbWUsc291cmNlX3ZlcnNpb246dGhpcy5jb25maWcuaW5nZXN0aW9uTWV0YWRhdGEuc291cmNlVmVyc2lvbn19KSxlKSx7ZXZlbnRfaWQ6byxsaWJyYXJ5OnRoaXMubGlicmFyeSx1c2VyX2FnZW50OnRoaXMudXNlckFnZW50fSksWzIsYV19KX0pfSx0fSkoKSxqbj0xZTMsVGM9KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZShuKXt2YXIgbD10aGlzLGkscixvO3RyeXtvPShpPUZlKCkpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5sb2NhbFN0b3JhZ2V9Y2F0Y2goYSl7KHI9bj09bnVsbD92b2lkIDA6bi5sb2dnZXJQcm92aWRlcik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmRlYnVnKCJGYWlsZWQgdG8gYWNjZXNzIGxvY2FsU3RvcmFnZS4gZXJyb3I9Ii5jb25jYXQoSlNPTi5zdHJpbmdpZnkoYSkpKSxvPXZvaWQgMH1yZXR1cm4gbD10LmNhbGwodGhpcyxvKXx8dGhpcyxsLmxvZ2dlclByb3ZpZGVyPW49PW51bGw/dm9pZCAwOm4ubG9nZ2VyUHJvdmlkZXIsbH1yZXR1cm4gZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKG4sbCl7dmFyIGk7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuIEModGhpcyxmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOnJldHVybiBBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD5qbj8ocj1sLmxlbmd0aC1qbixbNCx0LnByb3RvdHlwZS5zZXQuY2FsbCh0aGlzLG4sbC5zbGljZSgwLGpuKSldKTpbMywyXTtjYXNlIDE6cmV0dXJuIG8uc2VudCgpLChpPXRoaXMubG9nZ2VyUHJvdmlkZXIpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgIi5jb25jYXQociwiIGV2ZW50cyBiZWNhdXNlIHRoZSBxdWV1ZSBsZW5ndGggZXhjZWVkZWQgIikuY29uY2F0KGpuLCIuIikpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCx0LnByb3RvdHlwZS5zZXQuY2FsbCh0aGlzLG4sbCldO2Nhc2UgMzpvLnNlbnQoKSxvLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSxlfSkoTmMpLEloPShmdW5jdGlvbih0KXtNZShlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgbjtyZXR1cm4gdC5jYWxsKHRoaXMsKG49RmUoKSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnNlc3Npb25TdG9yYWdlKXx8dGhpc31yZXR1cm4gZX0pKE5jKSxSaD0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBuLnN0YXRlPXtkb25lOjR9LG59cmV0dXJuIGUucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24obixsKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaT10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocil7cmV0dXJuWzIsbmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXt0eXBlb2YgWE1MSHR0cFJlcXVlc3Q+InUiJiZhKG5ldyBFcnJvcigiWEhSVHJhbnNwb3J0IGlzIG5vdCBzdXBwb3J0ZWQuIikpO3ZhciBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oIlBPU1QiLG4sITApLGMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoYy5yZWFkeVN0YXRlPT09aS5zdGF0ZS5kb25lKXt2YXIgZD1jLnJlc3BvbnNlVGV4dDt0cnl7byhpLmJ1aWxkUmVzcG9uc2UoSlNPTi5wYXJzZShkKSkpfWNhdGNoe28oaS5idWlsZFJlc3BvbnNlKHtjb2RlOmMuc3RhdHVzfSkpfX19LGMuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpLGMuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IiwiKi8qIiksYy5zZW5kKEpTT04uc3RyaW5naWZ5KGwpKX0pXX0pfSl9LGV9KShEaSksRWg9KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24obixsKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaT10aGlzO3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocil7cmV0dXJuWzIsbmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXt2YXIgYz1GZSgpO2lmKCEoYyE9bnVsbCYmYy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbikpdGhyb3cgbmV3IEVycm9yKCJTZW5kQmVhY29uVHJhbnNwb3J0IGlzIG5vdCBzdXBwb3J0ZWQiKTt0cnl7dmFyIGQ9SlNPTi5zdHJpbmdpZnkobCkscz1jLm5hdmlnYXRvci5zZW5kQmVhY29uKG4sSlNPTi5zdHJpbmdpZnkobCkpO3JldHVybiBvKHM/aS5idWlsZFJlc3BvbnNlKHtjb2RlOjIwMCxldmVudHNfaW5nZXN0ZWQ6bC5ldmVudHMubGVuZ3RoLHBheWxvYWRfc2l6ZV9ieXRlczpkLmxlbmd0aCxzZXJ2ZXJfdXBsb2FkX3RpbWU6RGF0ZS5ub3coKX0pOmkuYnVpbGRSZXNwb25zZSh7Y29kZTo1MDB9KSl9Y2F0Y2godSl7YSh1KX19KV19KX0pfSxlfSkoRGkpLHloPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj09PXZvaWQgMCYmKG49ITApLFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbCxpLHIsbyxhLGMsZCxzLHU7cmV0dXJuIEModGhpcyxmdW5jdGlvbihoKXtzd2l0Y2goaC5sYWJlbCl7Y2FzZSAwOnJldHVybiBsPXhnKHQpLFs0LGUuZ2V0UmF3KGwpXTtjYXNlIDE6cmV0dXJuIGk9aC5zZW50KCksaT9uP1s0LGUucmVtb3ZlKGwpXTpbMywzXTpbMix7b3B0T3V0OiExfV07Y2FzZSAyOmguc2VudCgpLGgubGFiZWw9MztjYXNlIDM6cmV0dXJuIHI9VShpLnNwbGl0KCIuIiksNiksbz1yWzBdLGE9clsxXSxjPXJbMl0sZD1yWzNdLHM9cls0XSx1PXJbNV0sWzIse2RldmljZUlkOm8sdXNlcklkOnZoKGEpLHNlc3Npb25JZDpPbChkKSxsYXN0RXZlbnRJZDpPbCh1KSxsYXN0RXZlbnRUaW1lOk9sKHMpLG9wdE91dDohIWN9XX19KX0pfSxPbD1mdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LDMyKTtpZighaXNOYU4oZSkpcmV0dXJuIGV9LHZoPWZ1bmN0aW9uKHQpe2lmKCEoIWF0b2J8fCFlc2NhcGV8fCF0KSl0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoYXRvYih0KSkpfWNhdGNoe3JldHVybn19LHN0PSJbQW1wbGl0dWRlXSIsc289IiIuY29uY2F0KHN0LCIgRm9ybSBTdGFydGVkIiksU2g9IiIuY29uY2F0KHN0LCIgRm9ybSBTdWJtaXR0ZWQiKSxDaD0iIi5jb25jYXQoc3QsIiBGaWxlIERvd25sb2FkZWQiKSx1bz0ic2Vzc2lvbl9zdGFydCIsZ289InNlc3Npb25fZW5kIixXaD0iIi5jb25jYXQoc3QsIiBGaWxlIEV4dGVuc2lvbiIpLEJoPSIiLmNvbmNhdChzdCwiIEZpbGUgTmFtZSIpLE5oPSIiLmNvbmNhdChzdCwiIExpbmsgSUQiKSxGaD0iIi5jb25jYXQoc3QsIiBMaW5rIFRleHQiKSxZaD0iIi5jb25jYXQoc3QsIiBMaW5rIFVSTCIpLFBsPSIiLmNvbmNhdChzdCwiIEZvcm0gSUQiKSwkbD0iIi5jb25jYXQoc3QsIiBGb3JtIE5hbWUiKSxxbD0iIi5jb25jYXQoc3QsIiBGb3JtIERlc3RpbmF0aW9uIiksQWw9ImNvb2tpZSIsVWg9IlVTIixKaD0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKG4sbCxpLHIsbyxhLGMsZCxzLHUsaCxnLGIsbSxmLHAsQSxYLHksSSxTLEcsQix2LEosdyxMLCQscSxwZSxaZSxXZSxVZSx5ZSxCZSl7aT09PXZvaWQgMCYmKGk9bmV3IEhpKSxyPT09dm9pZCAwJiYocj17ZG9tYWluOiIiLGV4cGlyYXRpb246MzY1LHNhbWVTaXRlOiJMYXgiLHNlY3VyZTohMSx1cGdyYWRlOiEwfSksZD09PXZvaWQgMCYmKGQ9MWUzKSxzPT09dm9pZCAwJiYocz01KSx1PT09dm9pZCAwJiYodT0zMCksaD09PXZvaWQgMCYmKGg9QWwpLHA9PT12b2lkIDAmJihwPW5ldyBTYyksQT09PXZvaWQgMCYmKEE9ZXQuV2FybikseT09PXZvaWQgMCYmKHk9ITEpLEk9PT12b2lkIDAmJihJPSExKSxCPT09dm9pZCAwJiYoQj0iIiksdj09PXZvaWQgMCYmKHY9VWgpLHc9PT12b2lkIDAmJih3PTE4MDAqMWUzKSxMPT09dm9pZCAwJiYoTD1uZXcgVGMoe2xvZ2dlclByb3ZpZGVyOnB9KSksJD09PXZvaWQgMCYmKCQ9e2lwQWRkcmVzczohMCxsYW5ndWFnZTohMCxwbGF0Zm9ybTohMH0pLHE9PT12b2lkIDAmJihxPSJmZXRjaCIpLHBlPT09dm9pZCAwJiYocGU9ITEpLFplPT09dm9pZCAwJiYoWmU9ITApO3ZhciB4PXQuY2FsbCh0aGlzLHthcGlLZXk6bixzdG9yYWdlUHJvdmlkZXI6TCx0cmFuc3BvcnRQcm92aWRlcjpNYyhxKX0pfHx0aGlzO3JldHVybiB4LmFwaUtleT1uLHguYXBwVmVyc2lvbj1sLHguY29va2llT3B0aW9ucz1yLHguZGVmYXVsdFRyYWNraW5nPW8seC5hdXRvY2FwdHVyZT1hLHguZmx1c2hJbnRlcnZhbE1pbGxpcz1kLHguZmx1c2hNYXhSZXRyaWVzPXMseC5mbHVzaFF1ZXVlU2l6ZT11LHguaWRlbnRpdHlTdG9yYWdlPWgseC5pbmdlc3Rpb25NZXRhZGF0YT1nLHguaW5zdGFuY2VOYW1lPWIseC5sb2dnZXJQcm92aWRlcj1wLHgubG9nTGV2ZWw9QSx4Lm1pbklkTGVuZ3RoPVgseC5vZmZsaW5lPXkseC5wYXJ0bmVySWQ9Uyx4LnBsYW49Ryx4LnNlcnZlclVybD1CLHguc2VydmVyWm9uZT12LHguc2Vzc2lvblRpbWVvdXQ9dyx4LnN0b3JhZ2VQcm92aWRlcj1MLHgudHJhY2tpbmdPcHRpb25zPSQseC50cmFuc3BvcnQ9cSx4LnVzZUJhdGNoPXBlLHguZmV0Y2hSZW1vdGVDb25maWc9WmUseC5uZXR3b3JrVHJhY2tpbmdPcHRpb25zPUJlLHgudmVyc2lvbj1LYyx4Ll9vcHRPdXQ9ITEseC5fY29va2llU3RvcmFnZT1pLHguZGV2aWNlSWQ9Yyx4Lmxhc3RFdmVudElkPW0seC5sYXN0RXZlbnRUaW1lPWYseC5vcHRPdXQ9SSx4LnNlc3Npb25JZD1KLHgucGFnZUNvdW50ZXI9VWUseC51c2VySWQ9V2UseC5kZWJ1Z0xvZ3NFbmFibGVkPXllLHgubG9nZ2VyUHJvdmlkZXIuZW5hYmxlKHllP2V0LkRlYnVnOngubG9nTGV2ZWwpLHgubmV0d29ya1RyYWNraW5nT3B0aW9ucz1CZSx4fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImNvb2tpZVN0b3JhZ2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29va2llU3RvcmFnZX0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMuX2Nvb2tpZVN0b3JhZ2UhPT1uJiYodGhpcy5fY29va2llU3RvcmFnZT1uLHRoaXMudXBkYXRlU3RvcmFnZSgpKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRldmljZUlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RldmljZUlkfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy5fZGV2aWNlSWQhPT1uJiYodGhpcy5fZGV2aWNlSWQ9bix0aGlzLnVwZGF0ZVN0b3JhZ2UoKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ1c2VySWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXNlcklkfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy5fdXNlcklkIT09biYmKHRoaXMuX3VzZXJJZD1uLHRoaXMudXBkYXRlU3RvcmFnZSgpKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNlc3Npb25JZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXNzaW9uSWR9LHNldDpmdW5jdGlvbihuKXt0aGlzLl9zZXNzaW9uSWQhPT1uJiYodGhpcy5fc2Vzc2lvbklkPW4sdGhpcy51cGRhdGVTdG9yYWdlKCkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwib3B0T3V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdE91dH0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMuX29wdE91dCE9PW4mJih0aGlzLl9vcHRPdXQ9bix0aGlzLnVwZGF0ZVN0b3JhZ2UoKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsYXN0RXZlbnRUaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhc3RFdmVudFRpbWV9LHNldDpmdW5jdGlvbihuKXt0aGlzLl9sYXN0RXZlbnRUaW1lIT09biYmKHRoaXMuX2xhc3RFdmVudFRpbWU9bix0aGlzLnVwZGF0ZVN0b3JhZ2UoKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsYXN0RXZlbnRJZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXN0RXZlbnRJZH0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMuX2xhc3RFdmVudElkIT09biYmKHRoaXMuX2xhc3RFdmVudElkPW4sdGhpcy51cGRhdGVTdG9yYWdlKCkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicGFnZUNvdW50ZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGFnZUNvdW50ZXJ9LHNldDpmdW5jdGlvbihuKXt0aGlzLl9wYWdlQ291bnRlciE9PW4mJih0aGlzLl9wYWdlQ291bnRlcj1uLHRoaXMudXBkYXRlU3RvcmFnZSgpKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRlYnVnTG9nc0VuYWJsZWQiLHtzZXQ6ZnVuY3Rpb24obil7dGhpcy5fZGVidWdMb2dzRW5hYmxlZCE9PW4mJih0aGlzLl9kZWJ1Z0xvZ3NFbmFibGVkPW4sdGhpcy51cGRhdGVTdG9yYWdlKCkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnVwZGF0ZVN0b3JhZ2U9ZnVuY3Rpb24oKXt2YXIgbj17ZGV2aWNlSWQ6dGhpcy5fZGV2aWNlSWQsdXNlcklkOnRoaXMuX3VzZXJJZCxzZXNzaW9uSWQ6dGhpcy5fc2Vzc2lvbklkLG9wdE91dDp0aGlzLl9vcHRPdXQsbGFzdEV2ZW50VGltZTp0aGlzLl9sYXN0RXZlbnRUaW1lLGxhc3RFdmVudElkOnRoaXMuX2xhc3RFdmVudElkLHBhZ2VDb3VudGVyOnRoaXMuX3BhZ2VDb3VudGVyLGRlYnVnTG9nc0VuYWJsZWQ6dGhpcy5fZGVidWdMb2dzRW5hYmxlZH07dGhpcy5jb29raWVTdG9yYWdlLnNldChCYyh0aGlzLmFwaUtleSksbil9LGV9KShHZykseGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPT09dm9pZCAwJiYoZT17fSksVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBsLGkscixvLGEsYyxkLHMsdSxoLGcsYixtLGYscCxBLFgseSxJLFMsRyxCLHYsSix3LEwsJCxxLHBlLFplLFdlLFVlLHllLEJlLHgsVmUsZWUsRGUsJGUsbWUsbGUsTGUsb3QsamUsY247cmV0dXJuIEModGhpcyxmdW5jdGlvbih1dCl7c3dpdGNoKHV0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGw9ZS5pZGVudGl0eVN0b3JhZ2V8fEFsLEc9e30sbD09PUFsP1szLDFdOihyPSIiLFszLDVdKTtjYXNlIDE6cmV0dXJuKHY9KEI9ZS5jb29raWVPcHRpb25zKT09PW51bGx8fEI9PT12b2lkIDA/dm9pZCAwOkIuZG9tYWluKSE9PW51bGwmJnYhPT12b2lkIDA/KG89dixbMyw0XSk6WzMsMl07Y2FzZSAyOnJldHVybls0LGtoKCldO2Nhc2UgMzpvPXV0LnNlbnQoKSx1dC5sYWJlbD00O2Nhc2UgNDpyPW8sdXQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIGk9Ti5hcHBseSh2b2lkIDAsWyhHLmRvbWFpbj1yLEcuZXhwaXJhdGlvbj0zNjUsRy5zYW1lU2l0ZT0iTGF4IixHLnNlY3VyZT0hMSxHLnVwZ3JhZGU9ITAsRyksZS5jb29raWVPcHRpb25zXSksYT13aChlLmlkZW50aXR5U3RvcmFnZSxpKSxbNCx5aCh0LGEsKHc9KEo9ZS5jb29raWVPcHRpb25zKT09PW51bGx8fEo9PT12b2lkIDA/dm9pZCAwOkoudXBncmFkZSkhPT1udWxsJiZ3IT09dm9pZCAwP3c6ITApXTtjYXNlIDY6cmV0dXJuIGM9dXQuc2VudCgpLFs0LGEuZ2V0KEJjKHQpKV07Y2FzZSA3OnJldHVybiBkPXV0LnNlbnQoKSxzPWZsKCksdT1zLmFtcFRpbWVzdGFtcD9OdW1iZXIocy5hbXBUaW1lc3RhbXApOnZvaWQgMCxoPXU/RGF0ZS5ub3coKTx1OiEwLGc9KFplPShwZT0ocT0oTD1lLmRldmljZUlkKSE9PW51bGwmJkwhPT12b2lkIDA/TDpoPygkPXMuYW1wRGV2aWNlSWQpIT09bnVsbCYmJCE9PXZvaWQgMD8kOnMuZGV2aWNlSWQ6dm9pZCAwKSE9PW51bGwmJnEhPT12b2lkIDA/cTpkPT1udWxsP3ZvaWQgMDpkLmRldmljZUlkKSE9PW51bGwmJnBlIT09dm9pZCAwP3BlOmMuZGV2aWNlSWQpIT09bnVsbCYmWmUhPT12b2lkIDA/WmU6V3QoKSxiPShXZT1kPT1udWxsP3ZvaWQgMDpkLmxhc3RFdmVudElkKSE9PW51bGwmJldlIT09dm9pZCAwP1dlOmMubGFzdEV2ZW50SWQsbT0oVWU9ZD09bnVsbD92b2lkIDA6ZC5sYXN0RXZlbnRUaW1lKSE9PW51bGwmJlVlIT09dm9pZCAwP1VlOmMubGFzdEV2ZW50VGltZSxmPShCZT0oeWU9ZS5vcHRPdXQpIT09bnVsbCYmeWUhPT12b2lkIDA/eWU6ZD09bnVsbD92b2lkIDA6ZC5vcHRPdXQpIT09bnVsbCYmQmUhPT12b2lkIDA/QmU6Yy5vcHRPdXQscD0oeD1kPT1udWxsP3ZvaWQgMDpkLnNlc3Npb25JZCkhPT1udWxsJiZ4IT09dm9pZCAwP3g6Yy5zZXNzaW9uSWQsQT0oZWU9KFZlPWUudXNlcklkKSE9PW51bGwmJlZlIT09dm9pZCAwP1ZlOmQ9PW51bGw/dm9pZCAwOmQudXNlcklkKSE9PW51bGwmJmVlIT09dm9pZCAwP2VlOmMudXNlcklkLG4ucHJldmlvdXNTZXNzaW9uRGV2aWNlSWQ9KERlPWQ9PW51bGw/dm9pZCAwOmQuZGV2aWNlSWQpIT09bnVsbCYmRGUhPT12b2lkIDA/RGU6Yy5kZXZpY2VJZCxuLnByZXZpb3VzU2Vzc2lvblVzZXJJZD0oJGU9ZD09bnVsbD92b2lkIDA6ZC51c2VySWQpIT09bnVsbCYmJGUhPT12b2lkIDA/JGU6Yy51c2VySWQsWD17aXBBZGRyZXNzOihsZT0obWU9ZS50cmFja2luZ09wdGlvbnMpPT09bnVsbHx8bWU9PT12b2lkIDA/dm9pZCAwOm1lLmlwQWRkcmVzcykhPT1udWxsJiZsZSE9PXZvaWQgMD9sZTohMCxsYW5ndWFnZToob3Q9KExlPWUudHJhY2tpbmdPcHRpb25zKT09PW51bGx8fExlPT09dm9pZCAwP3ZvaWQgMDpMZS5sYW5ndWFnZSkhPT1udWxsJiZvdCE9PXZvaWQgMD9vdDohMCxwbGF0Zm9ybTooY249KGplPWUudHJhY2tpbmdPcHRpb25zKT09PW51bGx8fGplPT09dm9pZCAwP3ZvaWQgMDpqZS5wbGF0Zm9ybSkhPT1udWxsJiZjbiE9PXZvaWQgMD9jbjohMH0seT1kPT1udWxsP3ZvaWQgMDpkLnBhZ2VDb3VudGVyLEk9ZD09bnVsbD92b2lkIDA6ZC5kZWJ1Z0xvZ3NFbmFibGVkLGUuYXV0b2NhcHR1cmUhPT12b2lkIDAmJihlLmRlZmF1bHRUcmFja2luZz1lLmF1dG9jYXB0dXJlKSxTPW5ldyBKaCh0LGUuYXBwVmVyc2lvbixhLGksZS5kZWZhdWx0VHJhY2tpbmcsZS5hdXRvY2FwdHVyZSxnLGUuZmx1c2hJbnRlcnZhbE1pbGxpcyxlLmZsdXNoTWF4UmV0cmllcyxlLmZsdXNoUXVldWVTaXplLGwsZS5pbmdlc3Rpb25NZXRhZGF0YSxlLmluc3RhbmNlTmFtZSxiLG0sZS5sb2dnZXJQcm92aWRlcixlLmxvZ0xldmVsLGUubWluSWRMZW5ndGgsZS5vZmZsaW5lLGYsZS5wYXJ0bmVySWQsZS5wbGFuLGUuc2VydmVyVXJsLGUuc2VydmVyWm9uZSxwLGUuc2Vzc2lvblRpbWVvdXQsZS5zdG9yYWdlUHJvdmlkZXIsWCxlLnRyYW5zcG9ydCxlLnVzZUJhdGNoLGUuZmV0Y2hSZW1vdGVDb25maWcsQSx5LEksZS5uZXR3b3JrVHJhY2tpbmdPcHRpb25zKSxbNCxTLnN0b3JhZ2VQcm92aWRlci5pc0VuYWJsZWQoKV07Y2FzZSA4OnJldHVybiB1dC5zZW50KCl8fChTLmxvZ2dlclByb3ZpZGVyLndhcm4oIlN0b3JhZ2UgcHJvdmlkZXIgIi5jb25jYXQoUy5zdG9yYWdlUHJvdmlkZXIuY29uc3RydWN0b3IubmFtZSwiIGlzIG5vdCBlbmFibGVkLiBGYWxsaW5nIGJhY2sgdG8gTWVtb3J5U3RvcmFnZS4iKSksUy5zdG9yYWdlUHJvdmlkZXI9bmV3IEhpKSxbMixTXX19KX0pfSx3aD1mdW5jdGlvbih0LGUpe3N3aXRjaCh0PT09dm9pZCAwJiYodD1BbCksZT09PXZvaWQgMCYmKGU9e30pLHQpe2Nhc2UibG9jYWxTdG9yYWdlIjpyZXR1cm4gbmV3IFRjO2Nhc2Uic2Vzc2lvblN0b3JhZ2UiOnJldHVybiBuZXcgSWg7Y2FzZSJub25lIjpyZXR1cm4gbmV3IEhpO2Nhc2UiY29va2llIjpkZWZhdWx0OnJldHVybiBuZXcgWmkoTihOKHt9LGUpLHtleHBpcmF0aW9uRGF5czplLmV4cGlyYXRpb259KSl9fSxNYz1mdW5jdGlvbih0KXtyZXR1cm4gdD09PSJ4aHIiP25ldyBSaDp0PT09ImJlYWNvbiI/bmV3IEVoOm5ldyBUZ30sa2g9ZnVuY3Rpb24odCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLGwsaSxyLHIsbyxhLGMsZDtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKHMpe3N3aXRjaChzLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbmV3IFppKCkuaXNFbmFibGVkKCldO2Nhc2UgMTppZighcy5zZW50KCl8fHR5cGVvZiBsb2NhdGlvbj4idSJ8fCFsb2NhdGlvbi5ob3N0bmFtZSlyZXR1cm5bMiwiIl07Zm9yKGU9bG9jYXRpb24uaG9zdG5hbWUsbj1lLnNwbGl0KCIuIiksbD1bXSxpPSJBTVBfVExEVEVTVCIscj1uLmxlbmd0aC0yO3I+PTA7LS1yKWwucHVzaChuLnNsaWNlKHIpLmpvaW4oIi4iKSk7cj0wLHMubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHI8bC5sZW5ndGg/KG89bFtyXSxhPXtkb21haW46Ii4iK299LGM9bmV3IFppKGEpLFs0LGMuc2V0KGksMSldKTpbMyw3XTtjYXNlIDM6cmV0dXJuIHMuc2VudCgpLFs0LGMuZ2V0KGkpXTtjYXNlIDQ6cmV0dXJuIGQ9cy5zZW50KCksZD9bNCxjLnJlbW92ZShpKV06WzMsNl07Y2FzZSA1OnJldHVybiBzLnNlbnQoKSxbMiwiLiIrb107Y2FzZSA2OnJldHVybiByKyssWzMsMl07Y2FzZSA3OnJldHVyblsyLCIiXX19KX0pfSxIYz1mdW5jdGlvbigpe3ZhciB0PSJhbXBJbnRlZ3JhdGlvbkNvbnRleHQiO2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXNbdF08InUiKXJldHVybiBnbG9iYWxUaGlzW3RdO2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IilyZXR1cm4gZ2xvYmFsVGhpcztpZih0eXBlb2Ygd2luZG93PCJ1IilyZXR1cm4gd2luZG93O2lmKHR5cGVvZiBzZWxmPCJ1IilyZXR1cm4gc2VsZjtpZih0eXBlb2YgZ2xvYmFsPCJ1IilyZXR1cm4gZ2xvYmFsfSxobz1mdW5jdGlvbigpe3ZhciB0LGU9SGMoKTtpZighKCEoKHQ9ZT09bnVsbD92b2lkIDA6ZS5sb2NhdGlvbik9PT1udWxsfHx0PT09dm9pZCAwKSYmdC5zZWFyY2gpKXJldHVybnt9O3ZhciBuPWUubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLmZpbHRlcihCb29sZWFuKSxsPW4ucmVkdWNlKGZ1bmN0aW9uKGkscil7dmFyIG89ci5zcGxpdCgiPSIsMiksYT1ibyhvWzBdKSxjPWJvKG9bMV0pO3JldHVybiBjJiYoaVthXT1jKSxpfSx7fSk7cmV0dXJuIGx9LGJvPWZ1bmN0aW9uKHQpe3Q9PT12b2lkIDAmJih0PSIiKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX1jYXRjaHtyZXR1cm4iIn19LHpoPSJ1dG1fY2FtcGFpZ24iLFFoPSJ1dG1fY29udGVudCIsTGg9InV0bV9pZCIsS2g9InV0bV9tZWRpdW0iLFRoPSJ1dG1fc291cmNlIixNaD0idXRtX3Rlcm0iLFZvPSJkY2xpZCIsbW89ImZiY2xpZCIsZm89ImdicmFpZCIsQW89ImdjbGlkIixwbz0ia29fY2xpY2tfaWQiLFpvPSJsaV9mYXRfaWQiLEdvPSJtc2Nsa2lkIixYbz0icmR0X2NpZCIsSW89InR0Y2xpZCIsUm89InR3Y2xpZCIsRW89IndicmFpZCIsRGM9e3V0bV9jYW1wYWlnbjp2b2lkIDAsdXRtX2NvbnRlbnQ6dm9pZCAwLHV0bV9pZDp2b2lkIDAsdXRtX21lZGl1bTp2b2lkIDAsdXRtX3NvdXJjZTp2b2lkIDAsdXRtX3Rlcm06dm9pZCAwLHJlZmVycmVyOnZvaWQgMCxyZWZlcnJpbmdfZG9tYWluOnZvaWQgMCxkY2xpZDp2b2lkIDAsZ2JyYWlkOnZvaWQgMCxnY2xpZDp2b2lkIDAsZmJjbGlkOnZvaWQgMCxrb19jbGlja19pZDp2b2lkIDAsbGlfZmF0X2lkOnZvaWQgMCxtc2Nsa2lkOnZvaWQgMCxyZHRfY2lkOnZvaWQgMCx0dGNsaWQ6dm9pZCAwLHR3Y2xpZDp2b2lkIDAsd2JyYWlkOnZvaWQgMH0sSGg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVyblsyLE4oTihOKE4oe30sRGMpLHRoaXMuZ2V0VXRtUGFyYW0oKSksdGhpcy5nZXRSZWZlcnJlcigpKSx0aGlzLmdldENsaWNrSWRzKCkpXX0pfSl9LHQucHJvdG90eXBlLmdldFV0bVBhcmFtPWZ1bmN0aW9uKCl7dmFyIGU9aG8oKSxuPWVbemhdLGw9ZVtRaF0saT1lW0xoXSxyPWVbS2hdLG89ZVtUaF0sYT1lW01oXTtyZXR1cm57dXRtX2NhbXBhaWduOm4sdXRtX2NvbnRlbnQ6bCx1dG1faWQ6aSx1dG1fbWVkaXVtOnIsdXRtX3NvdXJjZTpvLHV0bV90ZXJtOmF9fSx0LnByb3RvdHlwZS5nZXRSZWZlcnJlcj1mdW5jdGlvbigpe3ZhciBlLG4sbD17cmVmZXJyZXI6dm9pZCAwLHJlZmVycmluZ19kb21haW46dm9pZCAwfTt0cnl7bC5yZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcnx8dm9pZCAwLGwucmVmZXJyaW5nX2RvbWFpbj0obj0oZT1sLnJlZmVycmVyKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuc3BsaXQoIi8iKVsyXSkhPT1udWxsJiZuIT09dm9pZCAwP246dm9pZCAwfWNhdGNoe31yZXR1cm4gbH0sdC5wcm90b3R5cGUuZ2V0Q2xpY2tJZHM9ZnVuY3Rpb24oKXt2YXIgZSxuPWhvKCk7cmV0dXJuIGU9e30sZVtWb109bltWb10sZVttb109blttb10sZVtmb109bltmb10sZVtBb109bltBb10sZVtwb109bltwb10sZVtab109bltab10sZVtHb109bltHb10sZVtYb109bltYb10sZVtJb109bltJb10sZVtSb109bltSb10sZVtFb109bltFb10sZX0sdH0pKCkscGw7KGZ1bmN0aW9uKHQpe3QuU0VUPSIkc2V0Iix0LlNFVF9PTkNFPSIkc2V0T25jZSIsdC5BREQ9IiRhZGQiLHQuQVBQRU5EPSIkYXBwZW5kIix0LlBSRVBFTkQ9IiRwcmVwZW5kIix0LlJFTU9WRT0iJHJlbW92ZSIsdC5QUkVJTlNFUlQ9IiRwcmVJbnNlcnQiLHQuUE9TVElOU0VSVD0iJHBvc3RJbnNlcnQiLHQuVU5TRVQ9IiR1bnNldCIsdC5DTEVBUl9BTEw9IiRjbGVhckFsbCJ9KShwbHx8KHBsPXt9KSk7dmFyIHlvOyhmdW5jdGlvbih0KXt0LlJFVkVOVUVfUFJPRFVDVF9JRD0iJHByb2R1Y3RJZCIsdC5SRVZFTlVFX1FVQU5USVRZPSIkcXVhbnRpdHkiLHQuUkVWRU5VRV9QUklDRT0iJHByaWNlIix0LlJFVkVOVUVfVFlQRT0iJHJldmVudWVUeXBlIix0LlJFVkVOVUVfQ1VSUkVOQ1k9IiRjdXJyZW5jeSIsdC5SRVZFTlVFPSIkcmV2ZW51ZSJ9KSh5b3x8KHlvPXt9KSk7dmFyIHZvOyhmdW5jdGlvbih0KXt0LklERU5USUZZPSIkaWRlbnRpZnkiLHQuR1JPVVBfSURFTlRJRlk9IiRncm91cGlkZW50aWZ5Iix0LlJFVkVOVUU9InJldmVudWVfYW1vdW50In0pKHZvfHwodm89e30pKTt2YXIgRGg9ZnVuY3Rpb24odCl7dmFyIGU9e307Zm9yKHZhciBuIGluIHQpe3ZhciBsPXRbbl07bCYmKGVbbl09bCl9cmV0dXJuIGV9LGpoPSJbQW1wbGl0dWRlXSBQYWdlIFZpZXdlZCIsX2g9ZnVuY3Rpb24odCl7dD09PXZvaWQgMCYmKHQ9e30pO3ZhciBlLG49SGMoKSxsPXZvaWQgMCxpPSExLHIsbz10LnRyYWNrT24sYT10LnRyYWNrSGlzdG9yeUNoYW5nZXMsYz10LmV2ZW50VHlwZSxkPWM9PT12b2lkIDA/amg6YyxzPWZ1bmN0aW9uKHApe3ZhciBBPXA7dHJ5e0E9ZGVjb2RlVVJJKHApfWNhdGNoKFgpe2w9PW51bGx8fGwuZXJyb3IoIk1hbGZvcm1lZCBVUkkgc2VxdWVuY2U6ICIsWCl9cmV0dXJuIEF9LHU9ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBwLEEsWDtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKHkpe3N3aXRjaCh5LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHA9cyh0eXBlb2YgbG9jYXRpb248InUiJiZsb2NhdGlvbi5ocmVmfHwiIiksWD17ZXZlbnRfdHlwZTpkfSxBPVt7fV0sWzQsT2goKV07Y2FzZSAxOnJldHVyblsyLChYLmV2ZW50X3Byb3BlcnRpZXM9Ti5hcHBseSh2b2lkIDAsW04uYXBwbHkodm9pZCAwLEEuY29uY2F0KFt5LnNlbnQoKV0pKSx7IltBbXBsaXR1ZGVdIFBhZ2UgRG9tYWluIjp0eXBlb2YgbG9jYXRpb248InUiJiZsb2NhdGlvbi5ob3N0bmFtZXx8IiIsIltBbXBsaXR1ZGVdIFBhZ2UgTG9jYXRpb24iOnAsIltBbXBsaXR1ZGVdIFBhZ2UgUGF0aCI6dHlwZW9mIGxvY2F0aW9uPCJ1IiYmcyhsb2NhdGlvbi5wYXRobmFtZSl8fCIiLCJbQW1wbGl0dWRlXSBQYWdlIFRpdGxlIjp0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC50aXRsZXx8IiIsIltBbXBsaXR1ZGVdIFBhZ2UgVVJMIjpwLnNwbGl0KCI/IilbMF19XSksWCldfX0pfSl9LGg9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIG8+InUifHx0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmbygpfSxnPXR5cGVvZiBsb2NhdGlvbjwidSI/bG9jYXRpb24uaHJlZjpudWxsLGI9ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBwLEEsWCx5O3JldHVybiBDKHRoaXMsZnVuY3Rpb24oSSl7c3dpdGNoKEkubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcD1sb2NhdGlvbi5ocmVmLEE9JGgoYSxwLGd8fCIiKSYmaCgpLGc9cCxBPyhsPT1udWxsfHxsLmxvZygiVHJhY2tpbmcgcGFnZSB2aWV3IGV2ZW50IiksZSE9bnVsbD9bMywxXTpbMywzXSk6WzMsNF07Y2FzZSAxOnJldHVybiB5PShYPWUpLnRyYWNrLFs0LHUoKV07Y2FzZSAyOnkuYXBwbHkoWCxbSS5zZW50KCldKSxJLmxhYmVsPTM7Y2FzZSAzOkkubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LG09ZnVuY3Rpb24oKXtiKCl9LGY9e25hbWU6IkBhbXBsaXR1ZGUvcGx1Z2luLXBhZ2Utdmlldy10cmFja2luZy1icm93c2VyIix0eXBlOiJlbnJpY2htZW50IixzZXR1cDpmdW5jdGlvbihwLEEpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFgseTtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKEkpe3N3aXRjaChJLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9QSxyPXAsbD1wLmxvZ2dlclByb3ZpZGVyLGwubG9nKCJJbnN0YWxsaW5nIEBhbXBsaXR1ZGUvcGx1Z2luLXBhZ2Utdmlldy10cmFja2luZy1icm93c2VyIiksaT0hMCxuJiYobi5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsbSksbi5oaXN0b3J5LnB1c2hTdGF0ZT1uZXcgUHJveHkobi5oaXN0b3J5LnB1c2hTdGF0ZSx7YXBwbHk6ZnVuY3Rpb24oUyxHLEIpe3ZhciB2PVUoQiwzKSxKPXZbMF0sdz12WzFdLEw9dlsyXTtTLmFwcGx5KEcsW0osdyxMXSksaSYmYigpfX0pKSxoKCk/KGwubG9nKCJUcmFja2luZyBwYWdlIHZpZXcgZXZlbnQiKSx5PShYPWUpLnRyYWNrLFs0LHUoKV0pOlszLDJdO2Nhc2UgMTp5LmFwcGx5KFgsW0kuc2VudCgpXSksSS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9KX0sZXhlY3V0ZTpmdW5jdGlvbihwKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBBO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oWCl7c3dpdGNoKFgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbz09PSJhdHRyaWJ1dGlvbiImJlBoKHApPyhsPT1udWxsfHxsLmxvZygiRW5yaWNoaW5nIGNhbXBhaWduIGV2ZW50IHRvIHBhZ2UgdmlldyBldmVudCB3aXRoIGNhbXBhaWduIHBhcmFtZXRlcnMiKSxbNCx1KCldKTpbMywyXTtjYXNlIDE6QT1YLnNlbnQoKSxwLmV2ZW50X3R5cGU9QS5ldmVudF90eXBlLHAuZXZlbnRfcHJvcGVydGllcz1OKE4oe30scC5ldmVudF9wcm9wZXJ0aWVzKSxBLmV2ZW50X3Byb3BlcnRpZXMpLFgubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHImJnAuZXZlbnRfdHlwZT09PWQmJihyLnBhZ2VDb3VudGVyPXIucGFnZUNvdW50ZXI/ci5wYWdlQ291bnRlcisxOjEscC5ldmVudF9wcm9wZXJ0aWVzPU4oTih7fSxwLmV2ZW50X3Byb3BlcnRpZXMpLHsiW0FtcGxpdHVkZV0gUGFnZSBDb3VudGVyIjpyLnBhZ2VDb3VudGVyfSkpLFsyLHBdfX0pfSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKHApe3JldHVybiBuJiYobi5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsbSksaT0hMSksWzJdfSl9KX19O3JldHVybiBmfSxPaD1mdW5jdGlvbigpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEModGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0PURoLFs0LG5ldyBIaCgpLnBhcnNlKCldO2Nhc2UgMTpyZXR1cm5bMix0LmFwcGx5KHZvaWQgMCxbZS5zZW50KCldKV19fSl9KX0sUGg9ZnVuY3Rpb24odCl7aWYodC5ldmVudF90eXBlPT09IiRpZGVudGlmeSImJnQudXNlcl9wcm9wZXJ0aWVzKXt2YXIgZT10LnVzZXJfcHJvcGVydGllcyxuPWVbcGwuU0VUXXx8e30sbD1lW3BsLlVOU0VUXXx8e30saT1qKGooW10sVShPYmplY3Qua2V5cyhuKSksITEpLFUoT2JqZWN0LmtleXMobCkpLCExKTtyZXR1cm4gT2JqZWN0LmtleXMoRGMpLmV2ZXJ5KGZ1bmN0aW9uKHIpe3JldHVybiBpLmluY2x1ZGVzKHIpfSl9cmV0dXJuITF9LCRoPWZ1bmN0aW9uKHQsZSxuKXtzd2l0Y2godCl7Y2FzZSJwYXRoT25seSI6e2lmKG49PSIiKXJldHVybiEwO3ZhciBsPW5ldyBVUkwoZSksaT1uZXcgVVJMKG4pLHI9bC5vcmlnaW4rbC5wYXRobmFtZSxvPWkub3JpZ2luK2kucGF0aG5hbWU7cmV0dXJuIHIhPT1vfWRlZmF1bHQ6cmV0dXJuIGUhPT1ufX0scWg9ZnVuY3Rpb24oKXt2YXIgdCxlPVtdLG49ZnVuY3Rpb24oZCxzLHUpe2QuYWRkRXZlbnRMaXN0ZW5lcihzLHUpLGUucHVzaCh7ZWxlbWVudDpkLHR5cGU6cyxoYW5kbGVyOnV9KX0sbD1mdW5jdGlvbigpe2UuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgcz1kLmVsZW1lbnQsdT1kLnR5cGUsaD1kLmhhbmRsZXI7cz09bnVsbHx8cy5yZW1vdmVFdmVudExpc3RlbmVyKHUsaCl9KSxlPVtdfSxpPSJAYW1wbGl0dWRlL3BsdWdpbi1mb3JtLWludGVyYWN0aW9uLXRyYWNraW5nLWJyb3dzZXIiLHI9ImVucmljaG1lbnQiLG89ZnVuY3Rpb24oZCxzKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB1LGg7cmV0dXJuIEModGhpcyxmdW5jdGlvbihnKXtyZXR1cm4gdT1mdW5jdGlvbigpe2lmKCFzKXtkLmxvZ2dlclByb3ZpZGVyLndhcm4oIkZvcm0gaW50ZXJhY3Rpb24gdHJhY2tpbmcgcmVxdWlyZXMgYSBsYXRlciB2ZXJzaW9uIG9mIEBhbXBsaXR1ZGUvYW5hbHl0aWNzLWJyb3dzZXIuIEZvcm0gaW50ZXJhY3Rpb24gZXZlbnRzIGFyZSBub3QgdHJhY2tlZC4iKTtyZXR1cm59aWYoISh0eXBlb2YgZG9jdW1lbnQ+InUiKSl7dmFyIGI9ZnVuY3Rpb24oZil7dmFyIHA9ITE7bihmLCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIEEsWD1TbyhmKTtwfHxzLnRyYWNrKHNvLChBPXt9LEFbUGxdPUt0KGYuaWQpLEFbJGxdPUt0KGYubmFtZSksQVtxbF09WCxBKSkscD0hMH0pLG4oZiwic3VibWl0IixmdW5jdGlvbigpe3ZhciBBLFgseT1TbyhmKTtwfHxzLnRyYWNrKHNvLChBPXt9LEFbUGxdPUt0KGYuaWQpLEFbJGxdPUt0KGYubmFtZSksQVtxbF09eSxBKSkscy50cmFjayhTaCwoWD17fSxYW1BsXT1LdChmLmlkKSxYWyRsXT1LdChmLm5hbWUpLFhbcWxdPXksWCkpLHA9ITF9KX0sbT1BcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmb3JtIikpO20uZm9yRWFjaChiKSx0eXBlb2YgTXV0YXRpb25PYnNlcnZlcjwidSImJih0PW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGYpe2YuZm9yRWFjaChmdW5jdGlvbihwKXtwLmFkZGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbihBKXtBLm5vZGVOYW1lPT09IkZPUk0iJiZiKEEpLCJxdWVyeVNlbGVjdG9yQWxsImluIEEmJnR5cGVvZiBBLnF1ZXJ5U2VsZWN0b3JBbGw9PSJmdW5jdGlvbiImJkFycmF5LmZyb20oQS5xdWVyeVNlbGVjdG9yQWxsKCJmb3JtIikpLm1hcChiKX0pfSl9KSx0Lm9ic2VydmUoZG9jdW1lbnQuYm9keSx7c3VidHJlZTohMCxjaGlsZExpc3Q6ITB9KSl9fSxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj91KCk6KGg9RmUoKSxoP2guYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdSk6ZC5sb2dnZXJQcm92aWRlci5kZWJ1ZygiRm9ybSBpbnRlcmFjdGlvbiB0cmFja2luZyBpcyBub3QgaW5zdGFsbGVkIGJlY2F1c2UgZ2xvYmFsIGlzIHVuZGVmaW5lZC4iKSksWzJdfSl9KX0sYT1mdW5jdGlvbihkKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuWzIsZF19KX0pfSxjPWZ1bmN0aW9uKCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGQpe3JldHVybiB0PT1udWxsfHx0LmRpc2Nvbm5lY3QoKSxsKCksWzJdfSl9KX07cmV0dXJue25hbWU6aSx0eXBlOnIsc2V0dXA6byxleGVjdXRlOmEsdGVhcmRvd246Y319LEt0PWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdH0sU289ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpO3RyeXtlPW5ldyBVUkwoZW5jb2RlVVJJKGU/PyIiKSx3aW5kb3cubG9jYXRpb24uaHJlZikuaHJlZn1jYXRjaHt9cmV0dXJuIGV9LGViPWZ1bmN0aW9uKCl7dmFyIHQsZT1bXSxuPWZ1bmN0aW9uKGQscyx1KXtkLmFkZEV2ZW50TGlzdGVuZXIocyx1KSxlLnB1c2goe2VsZW1lbnQ6ZCx0eXBlOnMsaGFuZGxlcjp1fSl9LGw9ZnVuY3Rpb24oKXtlLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIHM9ZC5lbGVtZW50LHU9ZC50eXBlLGg9ZC5oYW5kbGVyO3M9PW51bGx8fHMucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LGgpfSksZT1bXX0saT0iQGFtcGxpdHVkZS9wbHVnaW4tZmlsZS1kb3dubG9hZC10cmFja2luZy1icm93c2VyIixyPSJlbnJpY2htZW50IixvPWZ1bmN0aW9uKGQscyl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdSxoO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oZyl7cmV0dXJuIHU9ZnVuY3Rpb24oKXtpZighcyl7ZC5sb2dnZXJQcm92aWRlci53YXJuKCJGaWxlIGRvd25sb2FkIHRyYWNraW5nIHJlcXVpcmVzIGEgbGF0ZXIgdmVyc2lvbiBvZiBAYW1wbGl0dWRlL2FuYWx5dGljcy1icm93c2VyLiBGaWxlIGRvd25sb2FkIGV2ZW50cyBhcmUgbm90IHRyYWNrZWQuIik7cmV0dXJufWlmKCEodHlwZW9mIGRvY3VtZW50PiJ1Iikpe3ZhciBiPWZ1bmN0aW9uKHApe3ZhciBBO3RyeXtBPW5ldyBVUkwocC5ocmVmLHdpbmRvdy5sb2NhdGlvbi5ocmVmKX1jYXRjaHtyZXR1cm59dmFyIFg9bS5leGVjKEEuaHJlZikseT1YPT1udWxsP3ZvaWQgMDpYWzFdO3kmJm4ocCwiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIEk7eSYmcy50cmFjayhDaCwoST17fSxJW1doXT15LElbQmhdPUEucGF0aG5hbWUsSVtOaF09cC5pZCxJW0ZoXT1wLnRleHQsSVtZaF09cC5ocmVmLEkpKX0pfSxtPS9cLihwZGZ8eGxzeD98ZG9jeD98dHh0fHJ0Znxjc3Z8ZXhlfGtleXxwcChzfHR8dHgpfDd6fHBrZ3xyYXJ8Z3p8emlwfGF2aXxtb3Z8bXA0fG1wZT9nfHdtdnxtaWRpP3xtcDN8d2F2fHdtYSkoXD8uKyk/JC8sZj1BcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIikpO2YuZm9yRWFjaChiKSx0eXBlb2YgTXV0YXRpb25PYnNlcnZlcjwidSImJih0PW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHApe3AuZm9yRWFjaChmdW5jdGlvbihBKXtBLmFkZGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbihYKXtYLm5vZGVOYW1lPT09IkEiJiZiKFgpLCJxdWVyeVNlbGVjdG9yQWxsImluIFgmJnR5cGVvZiBYLnF1ZXJ5U2VsZWN0b3JBbGw9PSJmdW5jdGlvbiImJkFycmF5LmZyb20oWC5xdWVyeVNlbGVjdG9yQWxsKCJhIikpLm1hcChiKX0pfSl9KSx0Lm9ic2VydmUoZG9jdW1lbnQuYm9keSx7c3VidHJlZTohMCxjaGlsZExpc3Q6ITB9KSl9fSxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj91KCk6KGg9RmUoKSxoP2guYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdSk6ZC5sb2dnZXJQcm92aWRlci5kZWJ1ZygiRmlsZSBkb3dubG9hZCB0cmFja2luZyBpcyBub3QgaW5zdGFsbGVkIGJlY2F1c2UgZ2xvYmFsIGlzIHVuZGVmaW5lZC4iKSksWzJdfSl9KX0sYT1mdW5jdGlvbihkKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuWzIsZF19KX0pfSxjPWZ1bmN0aW9uKCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGQpe3JldHVybiB0PT1udWxsfHx0LmRpc2Nvbm5lY3QoKSxsKCksWzJdfSl9KX07cmV0dXJue25hbWU6aSx0eXBlOnIsc2V0dXA6byxleGVjdXRlOmEsdGVhcmRvd246Y319LENvPSExLHRiPWZ1bmN0aW9uKHQpe2lmKCEoQ298fHQuZGVmYXVsdFRyYWNraW5nIT09dm9pZCAwKSl7dmFyIGU9YFxgb3B0aW9ucy5kZWZhdWx0VHJhY2tpbmdcYCBpcyBzZXQgdG8gdW5kZWZpbmVkLiBUaGlzIGltcGxpY2l0bHkgY29uZmlndXJlcyB5b3VyIEFtcGxpdHVkZSBpbnN0YW5jZSB0byB0cmFjayBQYWdlIFZpZXdzLCBTZXNzaW9ucywgRmlsZSBEb3dubG9hZHMsIGFuZCBGb3JtIEludGVyYWN0aW9ucy4gWW91IGNhbiBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgYnkgZXhwbGljaXRseSBzZXR0aW5nIGEgdmFsdWUgdG8gXGBvcHRpb25zLmRlZmF1bHRUcmFja2luZ1xgLiBUaGUgdmFsdWUgbXVzdCBlaXRoZXIgYmUgYSBib29sZWFuLCB0byBlbmFibGUgYW5kIGRpc2FibGUgYWxsIGRlZmF1bHQgZXZlbnRzLCBvciBhbiBvYmplY3QsIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uLiBGb3IgZXhhbXBsZToKCmFtcGxpdHVkZS5pbml0KDxZT1VSX0FQSV9LRVk+LCB7CiAgZGVmYXVsdFRyYWNraW5nOiB0cnVlLAp9KTsKClZpc2l0IGh0dHBzOi8vd3d3LmRvY3MuZGV2ZWxvcGVycy5hbXBsaXR1ZGUuY29tL2RhdGEvc2Rrcy9icm93c2VyLTIvI3RyYWNraW5nLWRlZmF1bHQtZXZlbnRzIGZvciBtb3JlIGRldGFpbHMuYDt0LmxvZ2dlclByb3ZpZGVyLndhcm4oZSksQ289ITB9fSxuYj1mdW5jdGlvbigpe3ZhciB0PSJAYW1wbGl0dWRlL3BsdWdpbi1uZXR3b3JrLWNoZWNrZXItYnJvd3NlciIsZT0iYmVmb3JlIixuPUZlKCksbD1bXSxpPWZ1bmN0aW9uKGMsZCl7biE9bnVsbCYmbi5hZGRFdmVudExpc3RlbmVyJiYobj09bnVsbHx8bi5hZGRFdmVudExpc3RlbmVyKGMsZCksbC5wdXNoKHt0eXBlOmMsaGFuZGxlcjpkfSkpfSxyPWZ1bmN0aW9uKCl7bC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBkPWMudHlwZSxzPWMuaGFuZGxlcjtuPT1udWxsfHxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCxzKX0pLGw9W119LG89ZnVuY3Rpb24oYyxkKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3I+InUiPyhjLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJOZXR3b3JrIGNvbm5lY3Rpdml0eSBjaGVja2VyIHBsdWdpbiBpcyBkaXNhYmxlZCBiZWNhdXNlIG5hdmlnYXRvciBpcyBub3QgYXZhaWxhYmxlLiIpLGMub2ZmbGluZT0hMSxbMl0pOihjLm9mZmxpbmU9IW5hdmlnYXRvci5vbkxpbmUsaSgib25saW5lIixmdW5jdGlvbigpe2MubG9nZ2VyUHJvdmlkZXIuZGVidWcoIk5ldHdvcmsgY29ubmVjdGl2aXR5IGNoYW5nZWQgdG8gb25saW5lLiIpLGMub2ZmbGluZT0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZC5mbHVzaCgpfSxjLmZsdXNoSW50ZXJ2YWxNaWxsaXMpfSksaSgib2ZmbGluZSIsZnVuY3Rpb24oKXtjLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJOZXR3b3JrIGNvbm5lY3Rpdml0eSBjaGFuZ2VkIHRvIG9mZmxpbmUuIiksYy5vZmZsaW5lPSEwfSksWzJdKX0pfSl9LGE9ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24oYyl7cmV0dXJuIHIoKSxbMl19KX0pfTtyZXR1cm57bmFtZTp0LHR5cGU6ZSxzZXR1cDpvLHRlYXJkb3duOmF9fTtmdW5jdGlvbiBqYyh0KXt2YXIgZSxuLGwsaSxyLG8sYSxjLGQscztpZighKHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGwpJiYhQXJyYXkuaXNBcnJheSh0KSl7dmFyIHU9T2JqZWN0LmtleXModCk7dHJ5e2Zvcih2YXIgaD1EKHUpLGc9aC5uZXh0KCk7IWcuZG9uZTtnPWgubmV4dCgpKXt2YXIgYj1nLnZhbHVlO3RyeXt2YXIgbT10W2JdO3R5cGVvZihtPT1udWxsP3ZvaWQgMDptLmVuYWJsZWQpPT0iYm9vbGVhbiImJihtLmVuYWJsZWQ/KGRlbGV0ZSBtLmVuYWJsZWQsT2JqZWN0LmtleXMobSkubGVuZ3RoPT09MCYmKHRbYl09ITApKTp0W2JdPSExKSxqYyhtKX1jYXRjaHt9fX1jYXRjaCh2KXtlPXtlcnJvcjp2fX1maW5hbGx5e3RyeXtnJiYhZy5kb25lJiYobj1oLnJldHVybikmJm4uY2FsbChoKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19dHJ5e2lmKCEoKGQ9KGM9KGE9dC5hdXRvY2FwdHVyZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLm5ldHdvcmtUcmFja2luZyk9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLmNhcHR1cmVSdWxlcyk9PT1udWxsfHxkPT09dm9pZCAwKSYmZC5sZW5ndGgpdHJ5e2Zvcih2YXIgZj1EKHQuYXV0b2NhcHR1cmUubmV0d29ya1RyYWNraW5nLmNhcHR1cmVSdWxlcykscD1mLm5leHQoKTshcC5kb25lO3A9Zi5uZXh0KCkpe3ZhciBBPXAudmFsdWU7dHJ5e2Zvcih2YXIgWD0ocj12b2lkIDAsRChbInJlc3BvbnNlSGVhZGVycyIsInJlcXVlc3RIZWFkZXJzIl0pKSx5PVgubmV4dCgpOyF5LmRvbmU7eT1YLm5leHQoKSl7dmFyIEk9eS52YWx1ZSxTPShzPUFbSV0pIT09bnVsbCYmcyE9PXZvaWQgMD9zOnt9LEc9Uy5jYXB0dXJlU2FmZUhlYWRlcnMsQj1TLmFsbG93bGlzdDtpZighKCFHJiYhQikpe2lmKEIhPT12b2lkIDAmJiFBcnJheS5pc0FycmF5KEIpKXtkZWxldGUgQVtJXTtjb250aW51ZX1BW0ldPWooaihbXSxVKEc/bWw6W10pLCExKSxVKEI/P1tdKSwhMSl9fX1jYXRjaCh2KXtyPXtlcnJvcjp2fX1maW5hbGx5e3RyeXt5JiYheS5kb25lJiYobz1YLnJldHVybikmJm8uY2FsbChYKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19fX1jYXRjaCh2KXtsPXtlcnJvcjp2fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoaT1mLnJldHVybikmJmkuY2FsbChmKX1maW5hbGx5e2lmKGwpdGhyb3cgbC5lcnJvcn19fWNhdGNoe319fWZ1bmN0aW9uIFdvKHQsZSxuKXt2YXIgbCxpLHI9W107dHJ5e2Zvcih2YXIgbz1EKGU/P1tdKSxhPW8ubmV4dCgpOyFhLmRvbmU7YT1vLm5leHQoKSl7dmFyIGM9YS52YWx1ZTt0cnl7ci5wdXNoKG5ldyBSZWdFeHAoYykpfWNhdGNoKGQpe24ubG9nZ2VyUHJvdmlkZXIud2FybigiSW52YWxpZCByZWdleCBwYXR0ZXJuOiAiLmNvbmNhdChjKSxkKX19fWNhdGNoKGQpe2w9e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobCl0aHJvdyBsLmVycm9yfX1yZXR1cm4gdC5jb25jYXQocil9ZnVuY3Rpb24gbGIodCxlKXt2YXIgbixsLGkscixvLGEsYztpZih0KXtqYyh0KTt0cnl7ZS5sb2dnZXJQcm92aWRlci5kZWJ1ZygiVXBkYXRlIGJyb3dzZXIgY29uZmlnIHdpdGggcmVtb3RlIGNvbmZpZ3VyYXRpb246IixKU09OLnN0cmluZ2lmeSh0KSk7dmFyIGQ9dDtpZihkJiYiYXV0b2NhcHR1cmUiaW4gZCl7aWYodHlwZW9mIGQuYXV0b2NhcHR1cmU9PSJib29sZWFuIiYmKGUuYXV0b2NhcHR1cmU9ZC5hdXRvY2FwdHVyZSksdHlwZW9mIGQuYXV0b2NhcHR1cmU9PSJvYmplY3QiJiZkLmF1dG9jYXB0dXJlIT09bnVsbCl7dmFyIHM9Tih7fSxkLmF1dG9jYXB0dXJlKTtpZihlLmF1dG9jYXB0dXJlPT09dm9pZCAwJiYoZS5hdXRvY2FwdHVyZT1kLmF1dG9jYXB0dXJlKSx0eXBlb2YgZC5hdXRvY2FwdHVyZS5lbGVtZW50SW50ZXJhY3Rpb25zPT0ib2JqZWN0IiYmZC5hdXRvY2FwdHVyZS5lbGVtZW50SW50ZXJhY3Rpb25zIT09bnVsbCYmKCEoKGk9ZC5hdXRvY2FwdHVyZS5lbGVtZW50SW50ZXJhY3Rpb25zLnBhZ2VVcmxBbGxvd2xpc3RSZWdleCk9PT1udWxsfHxpPT09dm9pZCAwKSYmaS5sZW5ndGgpKXtzLmVsZW1lbnRJbnRlcmFjdGlvbnM9Tih7fSxkLmF1dG9jYXB0dXJlLmVsZW1lbnRJbnRlcmFjdGlvbnMpO3ZhciB1PXMuZWxlbWVudEludGVyYWN0aW9ucyxoPShyPXUucGFnZVVybEFsbG93bGlzdCkhPT1udWxsJiZyIT09dm9pZCAwP3I6W10sZz1kLmF1dG9jYXB0dXJlLmVsZW1lbnRJbnRlcmFjdGlvbnMucGFnZVVybEFsbG93bGlzdFJlZ2V4O3UucGFnZVVybEFsbG93bGlzdD1XbyhoLGcsZSksZGVsZXRlIHUucGFnZVVybEFsbG93bGlzdFJlZ2V4fWlmKHR5cGVvZiBkLmF1dG9jYXB0dXJlLm5ldHdvcmtUcmFja2luZz09Im9iamVjdCImJmQuYXV0b2NhcHR1cmUubmV0d29ya1RyYWNraW5nIT09bnVsbCYmKCEoKG89ZC5hdXRvY2FwdHVyZS5uZXR3b3JrVHJhY2tpbmcuY2FwdHVyZVJ1bGVzKT09PW51bGx8fG89PT12b2lkIDApJiZvLmxlbmd0aCkpe3MubmV0d29ya1RyYWNraW5nPU4oe30sZC5hdXRvY2FwdHVyZS5uZXR3b3JrVHJhY2tpbmcpO3ZhciBiPXMubmV0d29ya1RyYWNraW5nLG09KGE9Yi5jYXB0dXJlUnVsZXMpIT09bnVsbCYmYSE9PXZvaWQgMD9hOltdO3RyeXtmb3IodmFyIGY9RChtKSxwPWYubmV4dCgpOyFwLmRvbmU7cD1mLm5leHQoKSl7dmFyIEE9cC52YWx1ZTtBLnVybHM9V28oKGM9QS51cmxzKSE9PW51bGwmJmMhPT12b2lkIDA/YzpbXSxBLnVybHNSZWdleCxlKSxkZWxldGUgQS51cmxzUmVnZXh9fWNhdGNoKFgpe249e2Vycm9yOlh9fWZpbmFsbHl7dHJ5e3AmJiFwLmRvbmUmJihsPWYucmV0dXJuKSYmbC5jYWxsKGYpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19dHlwZW9mIGUuYXV0b2NhcHR1cmU9PSJib29sZWFuIiYmKGUuYXV0b2NhcHR1cmU9Tih7YXR0cmlidXRpb246ZS5hdXRvY2FwdHVyZSxmaWxlRG93bmxvYWRzOmUuYXV0b2NhcHR1cmUsZm9ybUludGVyYWN0aW9uczplLmF1dG9jYXB0dXJlLHBhZ2VWaWV3czplLmF1dG9jYXB0dXJlLHNlc3Npb25zOmUuYXV0b2NhcHR1cmUsZWxlbWVudEludGVyYWN0aW9uczplLmF1dG9jYXB0dXJlLHdlYlZpdGFsczplLmF1dG9jYXB0dXJlLGZydXN0cmF0aW9uSW50ZXJhY3Rpb25zOmUuYXV0b2NhcHR1cmV9LHMpKSx0eXBlb2YgZS5hdXRvY2FwdHVyZT09Im9iamVjdCImJihlLmF1dG9jYXB0dXJlPU4oTih7fSxlLmF1dG9jYXB0dXJlKSxzKSl9ZS5kZWZhdWx0VHJhY2tpbmc9ZS5hdXRvY2FwdHVyZX1lLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJCcm93c2VyIGNvbmZpZyBhZnRlciByZW1vdGUgY29uZmlnIHVwZGF0ZToiLEpTT04uc3RyaW5naWZ5KGUpKX1jYXRjaChYKXtlLmxvZ2dlclByb3ZpZGVyLmVycm9yKCJGYWlsZWQgdG8gYXBwbHkgcmVtb3RlIGNvbmZpZ3VyYXRpb24gYmVjYXVzZSBvZiBlcnJvcjogIixYKX19fXZhciBabDsoZnVuY3Rpb24odCl7dC5VUz0iVVMiLHQuRVU9IkVVIix0LlNUQUdJTkc9IlNUQUdJTkcifSkoWmx8fChabD17fSkpO3ZhciB4ZTsoZnVuY3Rpb24odCl7dC5Vbmtub3duPSJ1bmtub3duIix0LlNraXBwZWQ9InNraXBwZWQiLHQuU3VjY2Vzcz0ic3VjY2VzcyIsdC5SYXRlTGltaXQ9InJhdGVfbGltaXQiLHQuUGF5bG9hZFRvb0xhcmdlPSJwYXlsb2FkX3Rvb19sYXJnZSIsdC5JbnZhbGlkPSJpbnZhbGlkIix0LkZhaWxlZD0iZmFpbGVkIix0LlRpbWVvdXQ9IlRpbWVvdXQiLHQuU3lzdGVtRXJyb3I9IlN5c3RlbUVycm9yIn0pKHhlfHwoeGU9e30pKTt2YXIgaWI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLG4pe3JldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCl9LHQucHJvdG90eXBlLmJ1aWxkUmVzcG9uc2U9ZnVuY3Rpb24oZSl7dmFyIG4sbCxpLHIsbyxhLGMsZCxzLHUsaCxnLGIsbSxmLHAsQSxYLHksSSxTLEc7aWYodHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBCPWUuY29kZXx8MCx2PXRoaXMuYnVpbGRTdGF0dXMoQik7c3dpdGNoKHYpe2Nhc2UgeGUuU3VjY2VzczpyZXR1cm57c3RhdHVzOnYsc3RhdHVzQ29kZTpCLGJvZHk6e2V2ZW50c0luZ2VzdGVkOihuPWUuZXZlbnRzX2luZ2VzdGVkKSE9PW51bGwmJm4hPT12b2lkIDA/bjowLHBheWxvYWRTaXplQnl0ZXM6KGw9ZS5wYXlsb2FkX3NpemVfYnl0ZXMpIT09bnVsbCYmbCE9PXZvaWQgMD9sOjAsc2VydmVyVXBsb2FkVGltZTooaT1lLnNlcnZlcl91cGxvYWRfdGltZSkhPT1udWxsJiZpIT09dm9pZCAwP2k6MH19O2Nhc2UgeGUuSW52YWxpZDpyZXR1cm57c3RhdHVzOnYsc3RhdHVzQ29kZTpCLGJvZHk6e2Vycm9yOihyPWUuZXJyb3IpIT09bnVsbCYmciE9PXZvaWQgMD9yOiIiLG1pc3NpbmdGaWVsZDoobz1lLm1pc3NpbmdfZmllbGQpIT09bnVsbCYmbyE9PXZvaWQgMD9vOiIiLGV2ZW50c1dpdGhJbnZhbGlkRmllbGRzOihhPWUuZXZlbnRzX3dpdGhfaW52YWxpZF9maWVsZHMpIT09bnVsbCYmYSE9PXZvaWQgMD9hOnt9LGV2ZW50c1dpdGhNaXNzaW5nRmllbGRzOihjPWUuZXZlbnRzX3dpdGhfbWlzc2luZ19maWVsZHMpIT09bnVsbCYmYyE9PXZvaWQgMD9jOnt9LGV2ZW50c1dpdGhJbnZhbGlkSWRMZW5ndGhzOihkPWUuZXZlbnRzX3dpdGhfaW52YWxpZF9pZF9sZW5ndGhzKSE9PW51bGwmJmQhPT12b2lkIDA/ZDp7fSxlcHNUaHJlc2hvbGQ6KHM9ZS5lcHNfdGhyZXNob2xkKSE9PW51bGwmJnMhPT12b2lkIDA/czowLGV4Y2VlZGVkRGFpbHlRdW90YURldmljZXM6KHU9ZS5leGNlZWRlZF9kYWlseV9xdW90YV9kZXZpY2VzKSE9PW51bGwmJnUhPT12b2lkIDA/dTp7fSxzaWxlbmNlZERldmljZXM6KGg9ZS5zaWxlbmNlZF9kZXZpY2VzKSE9PW51bGwmJmghPT12b2lkIDA/aDpbXSxzaWxlbmNlZEV2ZW50czooZz1lLnNpbGVuY2VkX2V2ZW50cykhPT1udWxsJiZnIT09dm9pZCAwP2c6W10sdGhyb3R0bGVkRGV2aWNlczooYj1lLnRocm90dGxlZF9kZXZpY2VzKSE9PW51bGwmJmIhPT12b2lkIDA/Yjp7fSx0aHJvdHRsZWRFdmVudHM6KG09ZS50aHJvdHRsZWRfZXZlbnRzKSE9PW51bGwmJm0hPT12b2lkIDA/bTpbXX19O2Nhc2UgeGUuUGF5bG9hZFRvb0xhcmdlOnJldHVybntzdGF0dXM6dixzdGF0dXNDb2RlOkIsYm9keTp7ZXJyb3I6KGY9ZS5lcnJvcikhPT1udWxsJiZmIT09dm9pZCAwP2Y6IiJ9fTtjYXNlIHhlLlJhdGVMaW1pdDpyZXR1cm57c3RhdHVzOnYsc3RhdHVzQ29kZTpCLGJvZHk6e2Vycm9yOihwPWUuZXJyb3IpIT09bnVsbCYmcCE9PXZvaWQgMD9wOiIiLGVwc1RocmVzaG9sZDooQT1lLmVwc190aHJlc2hvbGQpIT09bnVsbCYmQSE9PXZvaWQgMD9BOjAsdGhyb3R0bGVkRGV2aWNlczooWD1lLnRocm90dGxlZF9kZXZpY2VzKSE9PW51bGwmJlghPT12b2lkIDA/WDp7fSx0aHJvdHRsZWRVc2VyczooeT1lLnRocm90dGxlZF91c2VycykhPT1udWxsJiZ5IT09dm9pZCAwP3k6e30sZXhjZWVkZWREYWlseVF1b3RhRGV2aWNlczooST1lLmV4Y2VlZGVkX2RhaWx5X3F1b3RhX2RldmljZXMpIT09bnVsbCYmSSE9PXZvaWQgMD9JOnt9LGV4Y2VlZGVkRGFpbHlRdW90YVVzZXJzOihTPWUuZXhjZWVkZWRfZGFpbHlfcXVvdGFfdXNlcnMpIT09bnVsbCYmUyE9PXZvaWQgMD9TOnt9LHRocm90dGxlZEV2ZW50czooRz1lLnRocm90dGxlZF9ldmVudHMpIT09bnVsbCYmRyE9PXZvaWQgMD9HOltdfX07Y2FzZSB4ZS5UaW1lb3V0OmRlZmF1bHQ6cmV0dXJue3N0YXR1czp2LHN0YXR1c0NvZGU6Qn19fSx0LnByb3RvdHlwZS5idWlsZFN0YXR1cz1mdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMD94ZS5TdWNjZXNzOmU9PT00Mjk/eGUuUmF0ZUxpbWl0OmU9PT00MTM/eGUuUGF5bG9hZFRvb0xhcmdlOmU9PT00MDg/eGUuVGltZW91dDplPj00MDAmJmU8NTAwP3hlLkludmFsaWQ6ZT49NTAwP3hlLkZhaWxlZDp4ZS5Vbmtub3dufSx0fSkoKSxyYj0iTmV0d29yayBlcnJvciBvY2N1cnJlZCwgcmVtb3RlIGNvbmZpZyBmZXRjaCBmYWlsZWQiLG9iPSJSZW1vdGUgY29uZmlnIHN1Y2Nlc3NmdWxseSBmZXRjaGVkIixhYj0iUmVtb3RlIGNvbmZpZyBmZXRjaCByZWplY3RlZCBkdWUgdG8gZXhjZWVkZWQgcmV0cnkgY291bnQiLEJvPSJSZW1vdGUgY29uZmlnIGZldGNoIHJlamVjdGVkIGR1ZSB0byB0aW1lb3V0IGFmdGVyIDUgc2Vjb25kcyIsTm89IlVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQiLGNiPSJodHRwczovL3NyLWNsaWVudC1jZmcuYW1wbGl0dWRlLmNvbS9jb25maWciLGRiPSJodHRwczovL3NyLWNsaWVudC1jZmcuc3RhZzIuYW1wbGl0dWRlLmNvbS9jb25maWciLHNiPSJodHRwczovL3NyLWNsaWVudC1jZmcuZXUuYW1wbGl0dWRlLmNvbS9jb25maWciLHViPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49ZS5sb2NhbENvbmZpZyxsPWUuY29uZmlnS2V5cyxpPXRoaXM7dGhpcy5yZXRyeVRpbWVvdXQ9MWUzLHRoaXMuYXR0ZW1wdHM9MCx0aGlzLnNlc3Npb25UYXJnZXRpbmdNYXRjaD0hMSx0aGlzLm1ldHJpY3M9e30sdGhpcy5nZXRSZW1vdGVOYW1lc3BhY2VDb25maWc9ZnVuY3Rpb24ocixvKXtyZXR1cm4gVyhpLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgYSxjLGQ7cmV0dXJuIEModGhpcyxmdW5jdGlvbihzKXtzd2l0Y2gocy5sYWJlbCl7Y2FzZSAwOnJldHVybiBhPURhdGUubm93KCksWzQsdGhpcy5mZXRjaFdpdGhUaW1lb3V0KG8pXTtjYXNlIDE6cmV0dXJuIGM9cy5zZW50KCksYyYmKGQ9Yy5jb25maWdzJiZjLmNvbmZpZ3Nbcl0sZCk/KHRoaXMubWV0cmljcy5mZXRjaFRpbWVBUElTdWNjZXNzPURhdGUubm93KCktYSxbMixkXSk6KHRoaXMubWV0cmljcy5mZXRjaFRpbWVBUElGYWlsPURhdGUubm93KCktYSxbMix2b2lkIDBdKX19KX0pfSx0aGlzLmdldFJlbW90ZUNvbmZpZz1mdW5jdGlvbihyLG8sYSl7cmV0dXJuIFcoaSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGM7cmV0dXJuIEModGhpcyxmdW5jdGlvbihkKXtzd2l0Y2goZC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0UmVtb3RlTmFtZXNwYWNlQ29uZmlnKHIsYSldO2Nhc2UgMTpyZXR1cm4gYz1kLnNlbnQoKSxbMixjPT1udWxsP3ZvaWQgMDpjW29dXX19KX0pfSx0aGlzLmZldGNoV2l0aFRpbWVvdXQ9ZnVuY3Rpb24ocil7cmV0dXJuIFcoaSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8sYSxjO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oZCl7c3dpdGNoKGQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbz1uZXcgQWJvcnRDb250cm9sbGVyLGE9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBvLmFib3J0KCl9LDVlMyksWzQsdGhpcy5mZXRjaFJlbW90ZUNvbmZpZyhvLnNpZ25hbCxyKV07Y2FzZSAxOnJldHVybiBjPWQuc2VudCgpLGNsZWFyVGltZW91dChhKSxbMixjXX19KX0pfSx0aGlzLmZldGNoUmVtb3RlQ29uZmlnPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIFcoaSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGEsYyxkLHMsdSxoLGcsYixtLGYscCxBLFg7cmV0dXJuIEModGhpcyxmdW5jdGlvbih5KXtzd2l0Y2goeS5sYWJlbCl7Y2FzZSAwOmlmKG89PT10aGlzLmxhc3RGZXRjaGVkU2Vzc2lvbklkJiZ0aGlzLmF0dGVtcHRzPj10aGlzLmxvY2FsQ29uZmlnLmZsdXNoTWF4UmV0cmllcylyZXR1cm5bMix0aGlzLmNvbXBsZXRlUmVxdWVzdCh7ZXJyOmFifSldO2lmKHIuYWJvcnRlZClyZXR1cm5bMix0aGlzLmNvbXBsZXRlUmVxdWVzdCh7ZXJyOkJvfSldO28hPT10aGlzLmxhc3RGZXRjaGVkU2Vzc2lvbklkJiYodGhpcy5sYXN0RmV0Y2hlZFNlc3Npb25JZD1vLHRoaXMuYXR0ZW1wdHM9MCkseS5sYWJlbD0xO2Nhc2UgMTp5LnRyeXMucHVzaChbMSwzLCw0XSksYT1uZXcgVVJMU2VhcmNoUGFyYW1zKHthcGlfa2V5OnRoaXMubG9jYWxDb25maWcuYXBpS2V5fSk7dHJ5e2ZvcihjPUQodGhpcy5jb25maWdLZXlzKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlzPWQudmFsdWUsYS5hcHBlbmQoImNvbmZpZ19rZXlzIixzKX1jYXRjaChJKXtwPXtlcnJvcjpJfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYoQT1jLnJldHVybikmJkEuY2FsbChjKX1maW5hbGx5e2lmKHApdGhyb3cgcC5lcnJvcn19cmV0dXJuIG8mJmEuc2V0KCJzZXNzaW9uX2lkIixTdHJpbmcobykpLHU9e2hlYWRlcnM6e0FjY2VwdDoiKi8qIn0sbWV0aG9kOiJHRVQifSxoPSIiLmNvbmNhdCh0aGlzLmdldFNlcnZlclVybCgpLCI/IikuY29uY2F0KGEudG9TdHJpbmcoKSksdGhpcy5hdHRlbXB0cys9MSxbNCxmZXRjaChoLE4oTih7fSx1KSx7c2lnbmFsOnJ9KSldO2Nhc2UgMjppZihnPXkuc2VudCgpLGc9PT1udWxsKXJldHVyblsyLHRoaXMuY29tcGxldGVSZXF1ZXN0KHtlcnI6Tm99KV07c3dpdGNoKGI9bmV3IGliKCkuYnVpbGRTdGF0dXMoZy5zdGF0dXMpLGIpe2Nhc2UgeGUuU3VjY2VzczpyZXR1cm4gdGhpcy5hdHRlbXB0cz0wLFsyLHRoaXMucGFyc2VBbmRTdG9yZUNvbmZpZyhnKV07Y2FzZSB4ZS5GYWlsZWQ6cmV0dXJuWzIsdGhpcy5yZXRyeUZldGNoKHIsbyldO2RlZmF1bHQ6cmV0dXJuWzIsdGhpcy5jb21wbGV0ZVJlcXVlc3Qoe2VycjpyYn0pXX1jYXNlIDM6cmV0dXJuIG09eS5zZW50KCksZj1tLHIuYWJvcnRlZD9bMix0aGlzLmNvbXBsZXRlUmVxdWVzdCh7ZXJyOkJvfSldOlsyLHRoaXMuY29tcGxldGVSZXF1ZXN0KHtlcnI6KFg9Zi5tZXNzYWdlKSE9PW51bGwmJlghPT12b2lkIDA/WDpOb30pXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LHRoaXMucmV0cnlGZXRjaD1mdW5jdGlvbihyLG8pe3JldHVybiBXKGksdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIEModGhpcyxmdW5jdGlvbihjKXtzd2l0Y2goYy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQpe3JldHVybiBzZXRUaW1lb3V0KGQsYS5hdHRlbXB0cyphLnJldHJ5VGltZW91dCl9KV07Y2FzZSAxOnJldHVybiBjLnNlbnQoKSxbMix0aGlzLmZldGNoUmVtb3RlQ29uZmlnKHIsbyldfX0pfSl9LHRoaXMucGFyc2VBbmRTdG9yZUNvbmZpZz1mdW5jdGlvbihyKXtyZXR1cm4gVyhpLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbztyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGEpe3N3aXRjaChhLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsci5qc29uKCldO2Nhc2UgMTpyZXR1cm4gbz1hLnNlbnQoKSx0aGlzLmNvbXBsZXRlUmVxdWVzdCh7c3VjY2VzczpvYn0pLFsyLG9dfX0pfSl9LHRoaXMubG9jYWxDb25maWc9bix0aGlzLmNvbmZpZ0tleXM9bH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0U2VydmVyVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9jYWxDb25maWcuY29uZmlnU2VydmVyVXJsP3RoaXMubG9jYWxDb25maWcuY29uZmlnU2VydmVyVXJsOnRoaXMubG9jYWxDb25maWcuc2VydmVyWm9uZT09PVpsLlNUQUdJTkc/ZGI6dGhpcy5sb2NhbENvbmZpZy5zZXJ2ZXJab25lPT09WmwuRVU/c2I6Y2J9LHQucHJvdG90eXBlLmNvbXBsZXRlUmVxdWVzdD1mdW5jdGlvbihlKXt2YXIgbj1lLmVycixsPWUuc3VjY2VzcztpZihuKXRocm93IG5ldyBFcnJvcihuKTtsJiZ0aGlzLmxvY2FsQ29uZmlnLmxvZ2dlclByb3ZpZGVyLmxvZyhsKX0sdH0pKCksZ2I9ZnVuY3Rpb24odCl7dmFyIGU9dC5sb2NhbENvbmZpZyxuPXQuY29uZmlnS2V5cztyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24obCl7cmV0dXJuWzIsbmV3IHViKHtsb2NhbENvbmZpZzplLGNvbmZpZ0tleXM6bn0pXX0pfSl9LGhiPWdiLGJiPSJAYW1wbGl0dWRlL3BsdWdpbi1hdXRvY2FwdHVyZS1icm93c2VyIixWYj0iQGFtcGxpdHVkZS9wbHVnaW4tZnJ1c3RyYXRpb24tYnJvd3NlciIsWGk9IltBbXBsaXR1ZGVdIEVsZW1lbnQgQ2xpY2tlZCIsbWI9IltBbXBsaXR1ZGVdIERlYWQgQ2xpY2siLEZvPSJbQW1wbGl0dWRlXSBSYWdlIENsaWNrIixmYj0iW0FtcGxpdHVkZV0gRWxlbWVudCBDaGFuZ2VkIixBYj0iW0FtcGxpdHVkZV0gRWxlbWVudCBJRCIscGI9IltBbXBsaXR1ZGVdIEVsZW1lbnQgQ2xhc3MiLFlvPSJbQW1wbGl0dWRlXSBFbGVtZW50IFRhZyIsVW89IltBbXBsaXR1ZGVdIEVsZW1lbnQgVGV4dCIsWmI9IltBbXBsaXR1ZGVdIEVsZW1lbnQgSGllcmFyY2h5IixHYj0iW0FtcGxpdHVkZV0gRWxlbWVudCBIcmVmIixYYj0iW0FtcGxpdHVkZV0gRWxlbWVudCBQb3NpdGlvbiBMZWZ0IixJYj0iW0FtcGxpdHVkZV0gRWxlbWVudCBQb3NpdGlvbiBUb3AiLFJiPSJbQW1wbGl0dWRlXSBFbGVtZW50IEFyaWEgTGFiZWwiLEViPSJbQW1wbGl0dWRlXSBFbGVtZW50IEF0dHJpYnV0ZXMiLHliPSJbQW1wbGl0dWRlXSBFbGVtZW50IFBhcmVudCBMYWJlbCIsSm89IltBbXBsaXR1ZGVdIFBhZ2UgVVJMIix2Yj0iW0FtcGxpdHVkZV0gUGFnZSBUaXRsZSIsU2I9IltBbXBsaXR1ZGVdIFZpZXdwb3J0IEhlaWdodCIsQ2I9IltBbXBsaXR1ZGVdIFZpZXdwb3J0IFdpZHRoIixjbD0iaHR0cHM6Ly9hcHAuYW1wbGl0dWRlLmNvbSIsV2I9Imh0dHBzOi8vYXBwLmV1LmFtcGxpdHVkZS5jb20iLEJiPSJodHRwczovL2FwcHMuc3RhZzIuYW1wbGl0dWRlLmNvbSIsTmI9e1VTOmNsLEVVOldiLFNUQUdJTkc6QmJ9LEZiPSJodHRwczovL2Nkbi5hbXBsaXR1ZGUuY29tL2xpYnMvdmlzdWFsLXRhZ2dpbmctc2VsZWN0b3ItMS4wLjAtYWxwaGEuanMuZ3oiLFliPSJhbXAtdmlzdWFsLXRhZ2dpbmctc2VsZWN0b3ItaGlnaGxpZ2h0IixfYz0iZGF0YS1hbXAtbWFzay1hdHRyaWJ1dGVzIixibj0iZGF0YS1hbXAtbWFzayIsUnQ9IioqKioqIixVYj0yNTtmdW5jdGlvbiBhZSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gX2kodCl7dmFyIGU9ZnVuY3Rpb24obCl7RXJyb3IuY2FsbChsKSxsLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrfSxuPXQoZSk7cmV0dXJuIG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uLG59dmFyIGVpPV9pKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXt0KHRoaXMpLHRoaXMubWVzc2FnZT1uP24ubGVuZ3RoK2AgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjoKYCtuLm1hcChmdW5jdGlvbihsLGkpe3JldHVybiBpKzErIikgIitsLnRvU3RyaW5nKCl9KS5qb2luKGAKICBgKToiIix0aGlzLm5hbWU9IlVuc3Vic2NyaXB0aW9uRXJyb3IiLHRoaXMuZXJyb3JzPW59fSk7ZnVuY3Rpb24gR2wodCxlKXtpZih0KXt2YXIgbj10LmluZGV4T2YoZSk7MDw9biYmdC5zcGxpY2UobiwxKX19dmFyIFluPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5pbml0aWFsVGVhcmRvd249ZSx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUsbixsLGkscjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgYT1EKG8pLGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2QucmVtb3ZlKHRoaXMpfX1jYXRjaChtKXtlPXtlcnJvcjptfX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19ZWxzZSBvLnJlbW92ZSh0aGlzKTt2YXIgcz10aGlzLmluaXRpYWxUZWFyZG93bjtpZihhZShzKSl0cnl7cygpfWNhdGNoKG0pe3I9bSBpbnN0YW5jZW9mIGVpP20uZXJyb3JzOlttXX12YXIgdT10aGlzLl9maW5hbGl6ZXJzO2lmKHUpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBoPUQodSksZz1oLm5leHQoKTshZy5kb25lO2c9aC5uZXh0KCkpe3ZhciBiPWcudmFsdWU7dHJ5e3hvKGIpfWNhdGNoKG0pe3I9cj8/W10sbSBpbnN0YW5jZW9mIGVpP3I9aihqKFtdLFUocikpLFUobS5lcnJvcnMpKTpyLnB1c2gobSl9fX1jYXRjaChtKXtsPXtlcnJvcjptfX1maW5hbGx5e3RyeXtnJiYhZy5kb25lJiYoaT1oLnJldHVybikmJmkuY2FsbChoKX1maW5hbGx5e2lmKGwpdGhyb3cgbC5lcnJvcn19fWlmKHIpdGhyb3cgbmV3IGVpKHIpfX0sdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3ZhciBuO2lmKGUmJmUhPT10aGlzKWlmKHRoaXMuY2xvc2VkKXhvKGUpO2Vsc2V7aWYoZSBpbnN0YW5jZW9mIHQpe2lmKGUuY2xvc2VkfHxlLl9oYXNQYXJlbnQodGhpcykpcmV0dXJuO2UuX2FkZFBhcmVudCh0aGlzKX0odGhpcy5fZmluYWxpemVycz0obj10aGlzLl9maW5hbGl6ZXJzKSE9PW51bGwmJm4hPT12b2lkIDA/bjpbXSkucHVzaChlKX19LHQucHJvdG90eXBlLl9oYXNQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5fcGFyZW50YWdlO3JldHVybiBuPT09ZXx8QXJyYXkuaXNBcnJheShuKSYmbi5pbmNsdWRlcyhlKX0sdC5wcm90b3R5cGUuX2FkZFBhcmVudD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl9wYXJlbnRhZ2U7dGhpcy5fcGFyZW50YWdlPUFycmF5LmlzQXJyYXkobik/KG4ucHVzaChlKSxuKTpuP1tuLGVdOmV9LHQucHJvdG90eXBlLl9yZW1vdmVQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5fcGFyZW50YWdlO249PT1lP3RoaXMuX3BhcmVudGFnZT1udWxsOkFycmF5LmlzQXJyYXkobikmJkdsKG4sZSl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl9maW5hbGl6ZXJzO24mJkdsKG4sZSksZSBpbnN0YW5jZW9mIHQmJmUuX3JlbW92ZVBhcmVudCh0aGlzKX0sdC5FTVBUWT0oZnVuY3Rpb24oKXt2YXIgZT1uZXcgdDtyZXR1cm4gZS5jbG9zZWQ9ITAsZX0pKCksdH0pKCksT2M9WW4uRU1QVFk7ZnVuY3Rpb24gUGModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBZbnx8dCYmImNsb3NlZCJpbiB0JiZhZSh0LnJlbW92ZSkmJmFlKHQuYWRkKSYmYWUodC51bnN1YnNjcmliZSl9ZnVuY3Rpb24geG8odCl7YWUodCk/dCgpOnQudW5zdWJzY3JpYmUoKX12YXIgSmI9e1Byb21pc2U6dm9pZCAwfSx4Yj17c2V0VGltZW91dDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXSxsPTI7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyluW2wtMl09YXJndW1lbnRzW2xdO3JldHVybiBzZXRUaW1lb3V0LmFwcGx5KHZvaWQgMCxqKFt0LGVdLFUobikpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKHQpe3JldHVybiBjbGVhclRpbWVvdXQodCl9LGRlbGVnYXRlOnZvaWQgMH07ZnVuY3Rpb24gJGModCl7eGIuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHR9KX1mdW5jdGlvbiBJaSgpe31mdW5jdGlvbiBkbCh0KXt0KCl9dmFyIE9pPShmdW5jdGlvbih0KXtNZShlLHQpO2Z1bmN0aW9uIGUobil7dmFyIGw9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBsLmlzU3RvcHBlZD0hMSxuPyhsLmRlc3RpbmF0aW9uPW4sUGMobikmJm4uYWRkKGwpKTpsLmRlc3RpbmF0aW9uPXpiLGx9cmV0dXJuIGUuY3JlYXRlPWZ1bmN0aW9uKG4sbCxpKXtyZXR1cm4gbmV3IHluKG4sbCxpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihuKXt0aGlzLmlzU3RvcHBlZHx8dGhpcy5fbmV4dChuKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24obil7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihuKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sZS5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24obil7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KG4pfSxlLnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24obil7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3Iobil9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxlLnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZX0pKFluKSx3Yj0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMucGFydGlhbE9ic2VydmVyPWV9cmV0dXJuIHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7aWYobi5uZXh0KXRyeXtuLm5leHQoZSl9Y2F0Y2gobCl7X24obCl9fSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt2YXIgbj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihuLmVycm9yKXRyeXtuLmVycm9yKGUpfWNhdGNoKGwpe19uKGwpfWVsc2UgX24oZSl9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7aWYoZS5jb21wbGV0ZSl0cnl7ZS5jb21wbGV0ZSgpfWNhdGNoKG4pe19uKG4pfX0sdH0pKCkseW49KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZShuLGwsaSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzLG87cmV0dXJuIGFlKG4pfHwhbj9vPXtuZXh0Om4/P3ZvaWQgMCxlcnJvcjpsPz92b2lkIDAsY29tcGxldGU6aT8/dm9pZCAwfTpvPW4sci5kZXN0aW5hdGlvbj1uZXcgd2Iobykscn1yZXR1cm4gZX0pKE9pKTtmdW5jdGlvbiBfbih0KXskYyh0KX1mdW5jdGlvbiBrYih0KXt0aHJvdyB0fXZhciB6Yj17Y2xvc2VkOiEwLG5leHQ6SWksZXJyb3I6a2IsY29tcGxldGU6SWl9LFBpPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSJ9KSgpO2Z1bmN0aW9uIHFjKHQpe3JldHVybiB0fWZ1bmN0aW9uIFFiKHQpe3JldHVybiB0Lmxlbmd0aD09PTA/cWM6dC5sZW5ndGg9PT0xP3RbMF06ZnVuY3Rpb24obil7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKGwsaSl7cmV0dXJuIGkobCl9LG4pfX12YXIgRWU9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtlJiYodGhpcy5fc3Vic2NyaWJlPWUpfXJldHVybiB0LnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyB0O3JldHVybiBuLnNvdXJjZT10aGlzLG4ub3BlcmF0b3I9ZSxufSx0LnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxuLGwpe3ZhciBpPXRoaXMscj1LYihlKT9lOm5ldyB5bihlLG4sbCk7cmV0dXJuIGRsKGZ1bmN0aW9uKCl7dmFyIG89aSxhPW8ub3BlcmF0b3IsYz1vLnNvdXJjZTtyLmFkZChhP2EuY2FsbChyLGMpOmM/aS5fc3Vic2NyaWJlKHIpOmkuX3RyeVN1YnNjcmliZShyKSl9KSxyfSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKG4pe2UuZXJyb3Iobil9fSx0LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsbil7dmFyIGw9dGhpcztyZXR1cm4gbj13byhuKSxuZXcgbihmdW5jdGlvbihpLHIpe3ZhciBvPW5ldyB5bih7bmV4dDpmdW5jdGlvbihhKXt0cnl7ZShhKX1jYXRjaChjKXtyKGMpLG8udW5zdWJzY3JpYmUoKX19LGVycm9yOnIsY29tcGxldGU6aX0pO2wuc3Vic2NyaWJlKG8pfSl9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuKG49dGhpcy5zb3VyY2UpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5zdWJzY3JpYmUoZSl9LHQucHJvdG90eXBlW1BpXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3JldHVybiBRYihlKSh0aGlzKX0sdC5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIGU9d28oZSksbmV3IGUoZnVuY3Rpb24obCxpKXt2YXIgcjtuLnN1YnNjcmliZShmdW5jdGlvbihvKXtyZXR1cm4gcj1vfSxmdW5jdGlvbihvKXtyZXR1cm4gaShvKX0sZnVuY3Rpb24oKXtyZXR1cm4gbChyKX0pfSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdH0pKCk7ZnVuY3Rpb24gd28odCl7dmFyIGU7cmV0dXJuKGU9dD8/SmIuUHJvbWlzZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6UHJvbWlzZX1mdW5jdGlvbiBMYih0KXtyZXR1cm4gdCYmYWUodC5uZXh0KSYmYWUodC5lcnJvcikmJmFlKHQuY29tcGxldGUpfWZ1bmN0aW9uIEtiKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2YgT2l8fExiKHQpJiZQYyh0KX1mdW5jdGlvbiBUYih0KXtyZXR1cm4gYWUodD09bnVsbD92b2lkIDA6dC5saWZ0KX1mdW5jdGlvbiBudCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoVGIoZSkpcmV0dXJuIGUubGlmdChmdW5jdGlvbihuKXt0cnl7cmV0dXJuIHQobix0aGlzKX1jYXRjaChsKXt0aGlzLmVycm9yKGwpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fWZ1bmN0aW9uIHplKHQsZSxuLGwsaSl7cmV0dXJuIG5ldyBNYih0LGUsbixsLGkpfXZhciBNYj0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKG4sbCxpLHIsbyxhKXt2YXIgYz10LmNhbGwodGhpcyxuKXx8dGhpcztyZXR1cm4gYy5vbkZpbmFsaXplPW8sYy5zaG91bGRVbnN1YnNjcmliZT1hLGMuX25leHQ9bD9mdW5jdGlvbihkKXt0cnl7bChkKX1jYXRjaChzKXtuLmVycm9yKHMpfX06dC5wcm90b3R5cGUuX25leHQsYy5fZXJyb3I9cj9mdW5jdGlvbihkKXt0cnl7cihkKX1jYXRjaChzKXtuLmVycm9yKHMpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2Vycm9yLGMuX2NvbXBsZXRlPWk/ZnVuY3Rpb24oKXt0cnl7aSgpfWNhdGNoKGQpe24uZXJyb3IoZCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTp0LnByb3RvdHlwZS5fY29tcGxldGUsY31yZXR1cm4gZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgbjtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXt2YXIgbD10aGlzLmNsb3NlZDt0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLCFsJiYoKG49dGhpcy5vbkZpbmFsaXplKT09PW51bGx8fG49PT12b2lkIDB8fG4uY2FsbCh0aGlzKSl9fSxlfSkoT2kpLEhiPV9pKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn19KSxlZD0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLmNsb3NlZD0hMSxuLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxuLm9ic2VydmVycz1bXSxuLmlzU3RvcHBlZD0hMSxuLmhhc0Vycm9yPSExLG4udGhyb3duRXJyb3I9bnVsbCxufXJldHVybiBlLnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKG4pe3ZhciBsPW5ldyBrbyh0aGlzLHRoaXMpO3JldHVybiBsLm9wZXJhdG9yPW4sbH0sZS5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgSGJ9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24obil7dmFyIGw9dGhpcztkbChmdW5jdGlvbigpe3ZhciBpLHI7aWYobC5fdGhyb3dJZkNsb3NlZCgpLCFsLmlzU3RvcHBlZCl7bC5jdXJyZW50T2JzZXJ2ZXJzfHwobC5jdXJyZW50T2JzZXJ2ZXJzPUFycmF5LmZyb20obC5vYnNlcnZlcnMpKTt0cnl7Zm9yKHZhciBvPUQobC5jdXJyZW50T2JzZXJ2ZXJzKSxhPW8ubmV4dCgpOyFhLmRvbmU7YT1vLm5leHQoKSl7dmFyIGM9YS52YWx1ZTtjLm5leHQobil9fWNhdGNoKGQpe2k9e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihyPW8ucmV0dXJuKSYmci5jYWxsKG8pfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX19fSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKG4pe3ZhciBsPXRoaXM7ZGwoZnVuY3Rpb24oKXtpZihsLl90aHJvd0lmQ2xvc2VkKCksIWwuaXNTdG9wcGVkKXtsLmhhc0Vycm9yPWwuaXNTdG9wcGVkPSEwLGwudGhyb3duRXJyb3I9bjtmb3IodmFyIGk9bC5vYnNlcnZlcnM7aS5sZW5ndGg7KWkuc2hpZnQoKS5lcnJvcihuKX19KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2RsKGZ1bmN0aW9uKCl7aWYobi5fdGhyb3dJZkNsb3NlZCgpLCFuLmlzU3RvcHBlZCl7bi5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBsPW4ub2JzZXJ2ZXJzO2wubGVuZ3RoOylsLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciBuO3JldHVybigobj10aGlzLm9ic2VydmVycyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsbil9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKG4pLHRoaXMuX2lubmVyU3Vic2NyaWJlKG4pfSxlLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24obil7dmFyIGw9dGhpcyxpPXRoaXMscj1pLmhhc0Vycm9yLG89aS5pc1N0b3BwZWQsYT1pLm9ic2VydmVycztyZXR1cm4gcnx8bz9PYzoodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsYS5wdXNoKG4pLG5ldyBZbihmdW5jdGlvbigpe2wuY3VycmVudE9ic2VydmVycz1udWxsLEdsKGEsbil9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKG4pe3ZhciBsPXRoaXMsaT1sLmhhc0Vycm9yLHI9bC50aHJvd25FcnJvcixvPWwuaXNTdG9wcGVkO2k/bi5lcnJvcihyKTpvJiZuLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBuPW5ldyBFZTtyZXR1cm4gbi5zb3VyY2U9dGhpcyxufSxlLmNyZWF0ZT1mdW5jdGlvbihuLGwpe3JldHVybiBuZXcga28obixsKX0sZX0pKEVlKSxrbz0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKG4sbCl7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLmRlc3RpbmF0aW9uPW4saS5zb3VyY2U9bCxpfXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKG4pe3ZhciBsLGk7KGk9KGw9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm5leHQpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKGwsbil9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKG4pe3ZhciBsLGk7KGk9KGw9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmVycm9yKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChsLG4pfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBuLGw7KGw9KG49dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmNvbXBsZXRlKT09PW51bGx8fGw9PT12b2lkIDB8fGwuY2FsbChuKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihuKXt2YXIgbCxpO3JldHVybihpPShsPXRoaXMuc291cmNlKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuc3Vic2NyaWJlKG4pKSE9PW51bGwmJmkhPT12b2lkIDA/aTpPY30sZX0pKGVkKSxEYj17bm93OmZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9fSxqYj0oZnVuY3Rpb24odCl7TWUoZSx0KTtmdW5jdGlvbiBlKG4sbCl7cmV0dXJuIHQuY2FsbCh0aGlzKXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24obixsKXtyZXR1cm4gdGhpc30sZX0pKFluKSx6bz17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10sbD0yO2w8YXJndW1lbnRzLmxlbmd0aDtsKyspbltsLTJdPWFyZ3VtZW50c1tsXTtyZXR1cm4gc2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLGooW3QsZV0sVShuKSkpfSxjbGVhckludGVydmFsOmZ1bmN0aW9uKHQpe3JldHVybiBjbGVhckludGVydmFsKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9LF9iPShmdW5jdGlvbih0KXtNZShlLHQpO2Z1bmN0aW9uIGUobixsKXt2YXIgaT10LmNhbGwodGhpcyxuLGwpfHx0aGlzO3JldHVybiBpLnNjaGVkdWxlcj1uLGkud29yaz1sLGkucGVuZGluZz0hMSxpfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihuLGwpe3ZhciBpO2lmKGw9PT12b2lkIDAmJihsPTApLHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9bjt2YXIgcj10aGlzLmlkLG89dGhpcy5zY2hlZHVsZXI7cmV0dXJuIHIhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobyxyLGwpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1sLHRoaXMuaWQ9KGk9dGhpcy5pZCkhPT1udWxsJiZpIT09dm9pZCAwP2k6dGhpcy5yZXF1ZXN0QXN5bmNJZChvLHRoaXMuaWQsbCksdGhpc30sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24obixsLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSx6by5zZXRJbnRlcnZhbChuLmZsdXNoLmJpbmQobix0aGlzKSxpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24obixsLGkpe2lmKGk9PT12b2lkIDAmJihpPTApLGkhPW51bGwmJnRoaXMuZGVsYXk9PT1pJiZ0aGlzLnBlbmRpbmc9PT0hMSlyZXR1cm4gbDtsIT1udWxsJiZ6by5jbGVhckludGVydmFsKGwpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKG4sbCl7aWYodGhpcy5jbG9zZWQpcmV0dXJuIG5ldyBFcnJvcigiZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbiIpO3RoaXMucGVuZGluZz0hMTt2YXIgaT10aGlzLl9leGVjdXRlKG4sbCk7aWYoaSlyZXR1cm4gaTt0aGlzLnBlbmRpbmc9PT0hMSYmdGhpcy5pZCE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24obixsKXt2YXIgaT0hMSxyO3RyeXt0aGlzLndvcmsobil9Y2F0Y2gobyl7aT0hMCxyPW98fG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpfWlmKGkpcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSxyfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe2lmKCF0aGlzLmNsb3NlZCl7dmFyIG49dGhpcyxsPW4uaWQsaT1uLnNjaGVkdWxlcixyPWkuYWN0aW9uczt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxHbChyLHRoaXMpLGwhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQoaSxsLG51bGwpKSx0aGlzLmRlbGF5PW51bGwsdC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKX19LGV9KShqYiksUW89KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe249PT12b2lkIDAmJihuPXQubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz1ufXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLG4sbCl7cmV0dXJuIG49PT12b2lkIDAmJihuPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShsLG4pfSx0Lm5vdz1EYi5ub3csdH0pKCksT2I9KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZShuLGwpe2w9PT12b2lkIDAmJihsPVFvLm5vdyk7dmFyIGk9dC5jYWxsKHRoaXMsbixsKXx8dGhpcztyZXR1cm4gaS5hY3Rpb25zPVtdLGkuX2FjdGl2ZT0hMSxpfXJldHVybiBlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihuKXt2YXIgbD10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKXtsLnB1c2gobik7cmV0dXJufXZhciBpO3RoaXMuX2FjdGl2ZT0hMDtkbyBpZihpPW4uZXhlY3V0ZShuLnN0YXRlLG4uZGVsYXkpKWJyZWFrO3doaWxlKG49bC5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsaSl7Zm9yKDtuPWwuc2hpZnQoKTspbi51bnN1YnNjcmliZSgpO3Rocm93IGl9fSxlfSkoUW8pLFVuPW5ldyBPYihfYiksUGI9VW4sJGk9bmV3IEVlKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbXBsZXRlKCl9KTtmdW5jdGlvbiB0ZCh0KXtyZXR1cm4gdCYmYWUodC5zY2hlZHVsZSl9ZnVuY3Rpb24gbmQodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gJGIodCl7cmV0dXJuIHRkKG5kKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBxYih0LGUpe3JldHVybiB0eXBlb2YgbmQodCk9PSJudW1iZXIiP3QucG9wKCk6ZX12YXIgcWk9KGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIn0pO2Z1bmN0aW9uIGxkKHQpe3JldHVybiBhZSh0PT1udWxsP3ZvaWQgMDp0LnRoZW4pfWZ1bmN0aW9uIGlkKHQpe3JldHVybiBhZSh0W1BpXSl9ZnVuY3Rpb24gcmQodCl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZhZSh0PT1udWxsP3ZvaWQgMDp0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9ZnVuY3Rpb24gb2QodCl7cmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiKyh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiPyJhbiBpbnZhbGlkIG9iamVjdCI6IiciK3QrIiciKSsiIHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRlIGFuIE9ic2VydmFibGUsIFByb21pc2UsIFJlYWRhYmxlU3RyZWFtLCBBcnJheSwgQXN5bmNJdGVyYWJsZSwgb3IgSXRlcmFibGUuIil9ZnVuY3Rpb24gZVYoKXtyZXR1cm4gdHlwZW9mIFN5bWJvbCE9ImZ1bmN0aW9uInx8IVN5bWJvbC5pdGVyYXRvcj8iQEBpdGVyYXRvciI6U3ltYm9sLml0ZXJhdG9yfXZhciBhZD1lVigpO2Z1bmN0aW9uIGNkKHQpe3JldHVybiBhZSh0PT1udWxsP3ZvaWQgMDp0W2FkXSl9ZnVuY3Rpb24gZGQodCl7cmV0dXJuIHd1KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKCl7dmFyIG4sbCxpLHI7cmV0dXJuIEModGhpcyxmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOm49dC5nZXRSZWFkZXIoKSxvLmxhYmVsPTE7Y2FzZSAxOm8udHJ5cy5wdXNoKFsxLCw5LDEwXSksby5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCxfdChuLnJlYWQoKSldO2Nhc2UgMzpyZXR1cm4gbD1vLnNlbnQoKSxpPWwudmFsdWUscj1sLmRvbmUscj9bNCxfdCh2b2lkIDApXTpbMyw1XTtjYXNlIDQ6cmV0dXJuWzIsby5zZW50KCldO2Nhc2UgNTpyZXR1cm5bNCxfdChpKV07Y2FzZSA2OnJldHVybls0LG8uc2VudCgpXTtjYXNlIDc6cmV0dXJuIG8uc2VudCgpLFszLDJdO2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OnJldHVybiBuLnJlbGVhc2VMb2NrKCksWzddO2Nhc2UgMTA6cmV0dXJuWzJdfX0pfSl9ZnVuY3Rpb24gc2QodCl7cmV0dXJuIGFlKHQ9PW51bGw/dm9pZCAwOnQuZ2V0UmVhZGVyKX1mdW5jdGlvbiBRZSh0KXtpZih0IGluc3RhbmNlb2YgRWUpcmV0dXJuIHQ7aWYodCE9bnVsbCl7aWYoaWQodCkpcmV0dXJuIHRWKHQpO2lmKHFpKHQpKXJldHVybiBuVih0KTtpZihsZCh0KSlyZXR1cm4gbFYodCk7aWYocmQodCkpcmV0dXJuIHVkKHQpO2lmKGNkKHQpKXJldHVybiBpVih0KTtpZihzZCh0KSlyZXR1cm4gclYodCl9dGhyb3cgb2QodCl9ZnVuY3Rpb24gdFYodCl7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihlKXt2YXIgbj10W1BpXSgpO2lmKGFlKG4uc3Vic2NyaWJlKSlyZXR1cm4gbi5zdWJzY3JpYmUoZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0pfWZ1bmN0aW9uIG5WKHQpe3JldHVybiBuZXcgRWUoZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmIWUuY2xvc2VkO24rKyllLm5leHQodFtuXSk7ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gbFYodCl7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihlKXt0LnRoZW4oZnVuY3Rpb24obil7ZS5jbG9zZWR8fChlLm5leHQobiksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24obil7cmV0dXJuIGUuZXJyb3Iobil9KS50aGVuKG51bGwsJGMpfSl9ZnVuY3Rpb24gaVYodCl7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihlKXt2YXIgbixsO3RyeXtmb3IodmFyIGk9RCh0KSxyPWkubmV4dCgpOyFyLmRvbmU7cj1pLm5leHQoKSl7dmFyIG89ci52YWx1ZTtpZihlLm5leHQobyksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChhKXtuPXtlcnJvcjphfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYobD1pLnJldHVybikmJmwuY2FsbChpKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gdWQodCl7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihlKXtvVih0LGUpLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBlLmVycm9yKG4pfSl9KX1mdW5jdGlvbiByVih0KXtyZXR1cm4gdWQoZGQodCkpfWZ1bmN0aW9uIG9WKHQsZSl7dmFyIG4sbCxpLHI7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8sYTtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6Yy50cnlzLnB1c2goWzAsNSw2LDExXSksbj1rdSh0KSxjLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LG4ubmV4dCgpXTtjYXNlIDI6aWYobD1jLnNlbnQoKSwhIWwuZG9uZSlyZXR1cm5bMyw0XTtpZihvPWwudmFsdWUsZS5uZXh0KG8pLGUuY2xvc2VkKXJldHVyblsyXTtjLmxhYmVsPTM7Y2FzZSAzOnJldHVyblszLDFdO2Nhc2UgNDpyZXR1cm5bMywxMV07Y2FzZSA1OnJldHVybiBhPWMuc2VudCgpLGk9e2Vycm9yOmF9LFszLDExXTtjYXNlIDY6cmV0dXJuIGMudHJ5cy5wdXNoKFs2LCw5LDEwXSksbCYmIWwuZG9uZSYmKHI9bi5yZXR1cm4pP1s0LHIuY2FsbChuKV06WzMsOF07Y2FzZSA3OmMuc2VudCgpLGMubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTppZihpKXRocm93IGkuZXJyb3I7cmV0dXJuWzddO2Nhc2UgMTA6cmV0dXJuWzddO2Nhc2UgMTE6cmV0dXJuIGUuY29tcGxldGUoKSxbMl19fSl9KX1mdW5jdGlvbiB2dCh0LGUsbixsLGkpe2w9PT12b2lkIDAmJihsPTApLGk9PT12b2lkIDAmJihpPSExKTt2YXIgcj1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7bigpLGk/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGwpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGwpO2lmKHQuYWRkKHIpLCFpKXJldHVybiByfWZ1bmN0aW9uIGdkKHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLG50KGZ1bmN0aW9uKG4sbCl7bi5zdWJzY3JpYmUoemUobCxmdW5jdGlvbihpKXtyZXR1cm4gdnQobCx0LGZ1bmN0aW9uKCl7cmV0dXJuIGwubmV4dChpKX0sZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZ0KGwsdCxmdW5jdGlvbigpe3JldHVybiBsLmNvbXBsZXRlKCl9LGUpfSxmdW5jdGlvbihpKXtyZXR1cm4gdnQobCx0LGZ1bmN0aW9uKCl7cmV0dXJuIGwuZXJyb3IoaSl9LGUpfSkpfSl9ZnVuY3Rpb24gaGQodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksbnQoZnVuY3Rpb24obixsKXtsLmFkZCh0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIG4uc3Vic2NyaWJlKGwpfSxlKSl9KX1mdW5jdGlvbiBhVih0LGUpe3JldHVybiBRZSh0KS5waXBlKGhkKGUpLGdkKGUpKX1mdW5jdGlvbiBjVih0LGUpe3JldHVybiBRZSh0KS5waXBlKGhkKGUpLGdkKGUpKX1mdW5jdGlvbiBkVih0LGUpe3JldHVybiBuZXcgRWUoZnVuY3Rpb24obil7dmFyIGw9MDtyZXR1cm4gZS5zY2hlZHVsZShmdW5jdGlvbigpe2w9PT10Lmxlbmd0aD9uLmNvbXBsZXRlKCk6KG4ubmV4dCh0W2wrK10pLG4uY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9KX1mdW5jdGlvbiBzVih0LGUpe3JldHVybiBuZXcgRWUoZnVuY3Rpb24obil7dmFyIGw7cmV0dXJuIHZ0KG4sZSxmdW5jdGlvbigpe2w9dFthZF0oKSx2dChuLGUsZnVuY3Rpb24oKXt2YXIgaSxyLG87dHJ5e2k9bC5uZXh0KCkscj1pLnZhbHVlLG89aS5kb25lfWNhdGNoKGEpe24uZXJyb3IoYSk7cmV0dXJufW8/bi5jb21wbGV0ZSgpOm4ubmV4dChyKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBhZShsPT1udWxsP3ZvaWQgMDpsLnJldHVybikmJmwucmV0dXJuKCl9fSl9ZnVuY3Rpb24gYmQodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihuKXt2dChuLGUsZnVuY3Rpb24oKXt2YXIgbD10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO3Z0KG4sZSxmdW5jdGlvbigpe2wubmV4dCgpLnRoZW4oZnVuY3Rpb24oaSl7aS5kb25lP24uY29tcGxldGUoKTpuLm5leHQoaS52YWx1ZSl9KX0sMCwhMCl9KX0pfWZ1bmN0aW9uIHVWKHQsZSl7cmV0dXJuIGJkKGRkKHQpLGUpfWZ1bmN0aW9uIGdWKHQsZSl7aWYodCE9bnVsbCl7aWYoaWQodCkpcmV0dXJuIGFWKHQsZSk7aWYocWkodCkpcmV0dXJuIGRWKHQsZSk7aWYobGQodCkpcmV0dXJuIGNWKHQsZSk7aWYocmQodCkpcmV0dXJuIGJkKHQsZSk7aWYoY2QodCkpcmV0dXJuIHNWKHQsZSk7aWYoc2QodCkpcmV0dXJuIHVWKHQsZSl9dGhyb3cgb2QodCl9ZnVuY3Rpb24gaFYodCxlKXtyZXR1cm4gZT9nVih0LGUpOlFlKHQpfWZ1bmN0aW9uIFZkKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfXZhciBiVj1faShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7bj09PXZvaWQgMCYmKG49bnVsbCksdCh0aGlzKSx0aGlzLm1lc3NhZ2U9IlRpbWVvdXQgaGFzIG9jY3VycmVkIix0aGlzLm5hbWU9IlRpbWVvdXRFcnJvciIsdGhpcy5pbmZvPW59fSk7ZnVuY3Rpb24gVlYodCxlKXt2YXIgbj1WZCh0KT97Zmlyc3Q6dH06dHlwZW9mIHQ9PSJudW1iZXIiP3tlYWNoOnR9OnQsbD1uLmZpcnN0LGk9bi5lYWNoLHI9bi53aXRoLG89cj09PXZvaWQgMD9tVjpyLGE9bi5zY2hlZHVsZXIsYz1hPT09dm9pZCAwP1VuOmEsZD1uLm1ldGEscz1kPT09dm9pZCAwP251bGw6ZDtpZihsPT1udWxsJiZpPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIG50KGZ1bmN0aW9uKHUsaCl7dmFyIGcsYixtPW51bGwsZj0wLHA9ZnVuY3Rpb24oQSl7Yj12dChoLGMsZnVuY3Rpb24oKXt0cnl7Zy51bnN1YnNjcmliZSgpLFFlKG8oe21ldGE6cyxsYXN0VmFsdWU6bSxzZWVuOmZ9KSkuc3Vic2NyaWJlKGgpfWNhdGNoKFgpe2guZXJyb3IoWCl9fSxBKX07Zz11LnN1YnNjcmliZSh6ZShoLGZ1bmN0aW9uKEEpe2I9PW51bGx8fGIudW5zdWJzY3JpYmUoKSxmKyssaC5uZXh0KG09QSksaT4wJiZwKGkpfSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7YiE9bnVsbCYmYi5jbG9zZWR8fGI9PW51bGx8fGIudW5zdWJzY3JpYmUoKSxtPW51bGx9KSksIWYmJnAobCE9bnVsbD90eXBlb2YgbD09Im51bWJlciI/bDorbC1jLm5vdygpOmkpfSl9ZnVuY3Rpb24gbVYodCl7dGhyb3cgbmV3IGJWKHQpfWZ1bmN0aW9uIE5lKHQsZSl7cmV0dXJuIG50KGZ1bmN0aW9uKG4sbCl7dmFyIGk9MDtuLnN1YnNjcmliZSh6ZShsLGZ1bmN0aW9uKHIpe2wubmV4dCh0LmNhbGwoZSxyLGkrKykpfSkpfSl9dmFyIGZWPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gQVYodCxlKXtyZXR1cm4gZlYoZSk/dC5hcHBseSh2b2lkIDAsaihbXSxVKGUpKSk6dChlKX1mdW5jdGlvbiBwVih0KXtyZXR1cm4gTmUoZnVuY3Rpb24oZSl7cmV0dXJuIEFWKHQsZSl9KX1mdW5jdGlvbiBaVih0LGUsbixsLGkscixvLGEpe3ZhciBjPVtdLGQ9MCxzPTAsdT0hMSxoPWZ1bmN0aW9uKCl7dSYmIWMubGVuZ3RoJiYhZCYmZS5jb21wbGV0ZSgpfSxnPWZ1bmN0aW9uKG0pe3JldHVybiBkPGw/YihtKTpjLnB1c2gobSl9LGI9ZnVuY3Rpb24obSl7ZCsrO3ZhciBmPSExO1FlKG4obSxzKyspKS5zdWJzY3JpYmUoemUoZSxmdW5jdGlvbihwKXtlLm5leHQocCl9LGZ1bmN0aW9uKCl7Zj0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYoZil0cnl7ZC0tO2Zvcih2YXIgcD1mdW5jdGlvbigpe3ZhciBBPWMuc2hpZnQoKTtvfHxiKEEpfTtjLmxlbmd0aCYmZDxsOylwKCk7aCgpfWNhdGNoKEEpe2UuZXJyb3IoQSl9fSkpfTtyZXR1cm4gdC5zdWJzY3JpYmUoemUoZSxnLGZ1bmN0aW9uKCl7dT0hMCxoKCl9KSksZnVuY3Rpb24oKXt9fWZ1bmN0aW9uIEpuKHQsZSxuKXtyZXR1cm4gbj09PXZvaWQgMCYmKG49MS8wKSxhZShlKT9KbihmdW5jdGlvbihsLGkpe3JldHVybiBOZShmdW5jdGlvbihyLG8pe3JldHVybiBlKGwscixpLG8pfSkoUWUodChsLGkpKSl9LG4pOih0eXBlb2YgZT09Im51bWJlciImJihuPWUpLG50KGZ1bmN0aW9uKGwsaSl7cmV0dXJuIFpWKGwsaSx0LG4pfSkpfWZ1bmN0aW9uIEdWKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0xLzApLEpuKHFjLHQpfXZhciBYVj1bImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiXSxJVj1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sUlY9WyJvbiIsIm9mZiJdO2Z1bmN0aW9uIGVuKHQsZSxuLGwpe2lmKGFlKG4pJiYobD1uLG49dm9pZCAwKSxsKXJldHVybiBlbih0LGUsbikucGlwZShwVihsKSk7dmFyIGk9VSh2Vih0KT9JVi5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiB0W2FdKGUsYyxuKX19KTpFVih0KT9YVi5tYXAoTG8odCxlKSk6eVYodCk/UlYubWFwKExvKHQsZSkpOltdLDIpLHI9aVswXSxvPWlbMV07aWYoIXImJnFpKHQpKXJldHVybiBKbihmdW5jdGlvbihhKXtyZXR1cm4gZW4oYSxlLG4pfSkoUWUodCkpO2lmKCFyKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBFZShmdW5jdGlvbihhKXt2YXIgYz1mdW5jdGlvbigpe2Zvcih2YXIgZD1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoO3MrKylkW3NdPWFyZ3VtZW50c1tzXTtyZXR1cm4gYS5uZXh0KDE8ZC5sZW5ndGg/ZDpkWzBdKX07cmV0dXJuIHIoYyksZnVuY3Rpb24oKXtyZXR1cm4gbyhjKX19KX1mdW5jdGlvbiBMbyh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIHRbbl0oZSxsKX19fWZ1bmN0aW9uIEVWKHQpe3JldHVybiBhZSh0LmFkZExpc3RlbmVyKSYmYWUodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24geVYodCl7cmV0dXJuIGFlKHQub24pJiZhZSh0Lm9mZil9ZnVuY3Rpb24gdlYodCl7cmV0dXJuIGFlKHQuYWRkRXZlbnRMaXN0ZW5lcikmJmFlKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcil9ZnVuY3Rpb24gbWQodCxlLG4pe3Q9PT12b2lkIDAmJih0PTApLG49PT12b2lkIDAmJihuPVBiKTt2YXIgbD0tMTtyZXR1cm4gZSE9bnVsbCYmKHRkKGUpP249ZTpsPWUpLG5ldyBFZShmdW5jdGlvbihpKXt2YXIgcj1WZCh0KT8rdC1uLm5vdygpOnQ7cjwwJiYocj0wKTt2YXIgbz0wO3JldHVybiBuLnNjaGVkdWxlKGZ1bmN0aW9uKCl7aS5jbG9zZWR8fChpLm5leHQobysrKSwwPD1sP3RoaXMuc2NoZWR1bGUodm9pZCAwLGwpOmkuY29tcGxldGUoKSl9LHIpfSl9ZnVuY3Rpb24gZXIoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49JGIodCksbD1xYih0LDEvMCksaT10O3JldHVybiBpLmxlbmd0aD9pLmxlbmd0aD09PTE/UWUoaVswXSk6R1YobCkoaFYoaSxuKSk6JGl9dmFyIFNWPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gQ1YodCl7cmV0dXJuIHQubGVuZ3RoPT09MSYmU1YodFswXSk/dFswXTp0fWZ1bmN0aW9uIGtlKHQsZSl7cmV0dXJuIG50KGZ1bmN0aW9uKG4sbCl7dmFyIGk9MDtuLnN1YnNjcmliZSh6ZShsLGZ1bmN0aW9uKHIpe3JldHVybiB0LmNhbGwoZSxyLGkrKykmJmwubmV4dChyKX0pKX0pfWZ1bmN0aW9uIFdWKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiB0PUNWKHQpLHQubGVuZ3RoPT09MT9RZSh0WzBdKTpuZXcgRWUoQlYodCkpfWZ1bmN0aW9uIEJWKHQpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49W10sbD1mdW5jdGlvbihyKXtuLnB1c2goUWUodFtyXSkuc3Vic2NyaWJlKHplKGUsZnVuY3Rpb24obyl7aWYobil7Zm9yKHZhciBhPTA7YTxuLmxlbmd0aDthKyspYSE9PXImJm5bYV0udW5zdWJzY3JpYmUoKTtuPW51bGx9ZS5uZXh0KG8pfSkpKX0saT0wO24mJiFlLmNsb3NlZCYmaTx0Lmxlbmd0aDtpKyspbChpKX19ZnVuY3Rpb24gTlYodCl7cmV0dXJuIG50KGZ1bmN0aW9uKGUsbil7dmFyIGw9W107cmV0dXJuIGUuc3Vic2NyaWJlKHplKG4sZnVuY3Rpb24oaSl7cmV0dXJuIGwucHVzaChpKX0sZnVuY3Rpb24oKXtuLm5leHQobCksbi5jb21wbGV0ZSgpfSkpLFFlKHQpLnN1YnNjcmliZSh6ZShuLGZ1bmN0aW9uKCl7dmFyIGk9bDtsPVtdLG4ubmV4dChpKX0sSWkpKSxmdW5jdGlvbigpe2w9bnVsbH19KX1mdW5jdGlvbiBGVih0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1VbiksbnQoZnVuY3Rpb24obixsKXt2YXIgaT1udWxsLHI9bnVsbCxvPW51bGwsYT1mdW5jdGlvbigpe2lmKGkpe2kudW5zdWJzY3JpYmUoKSxpPW51bGw7dmFyIGQ9cjtyPW51bGwsbC5uZXh0KGQpfX07ZnVuY3Rpb24gYygpe3ZhciBkPW8rdCxzPWUubm93KCk7aWYoczxkKXtpPXRoaXMuc2NoZWR1bGUodm9pZCAwLGQtcyksbC5hZGQoaSk7cmV0dXJufWEoKX1uLnN1YnNjcmliZSh6ZShsLGZ1bmN0aW9uKGQpe3I9ZCxvPWUubm93KCksaXx8KGk9ZS5zY2hlZHVsZShjLHQpLGwuYWRkKGkpKX0sZnVuY3Rpb24oKXthKCksbC5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyPWk9bnVsbH0pKX0pfWZ1bmN0aW9uIHRyKHQpe3JldHVybiB0PD0wP2Z1bmN0aW9uKCl7cmV0dXJuICRpfTpudChmdW5jdGlvbihlLG4pe3ZhciBsPTA7ZS5zdWJzY3JpYmUoemUobixmdW5jdGlvbihpKXsrK2w8PXQmJihuLm5leHQoaSksdDw9bCYmbi5jb21wbGV0ZSgpKX0pKX0pfWZ1bmN0aW9uIFlWKHQpe3JldHVybiBOZShmdW5jdGlvbigpe3JldHVybiB0fSl9ZnVuY3Rpb24gVVYodCxlKXtyZXR1cm4gSm4oZnVuY3Rpb24obixsKXtyZXR1cm4gUWUodChuLGwpKS5waXBlKHRyKDEpLFlWKG4pKX0pfWZ1bmN0aW9uIEpWKHQsZSl7ZT09PXZvaWQgMCYmKGU9VW4pO3ZhciBuPW1kKHQsZSk7cmV0dXJuIFVWKGZ1bmN0aW9uKCl7cmV0dXJuIG59KX1mdW5jdGlvbiB4Vigpe3JldHVybiBudChmdW5jdGlvbih0LGUpe3ZhciBuLGw9ITE7dC5zdWJzY3JpYmUoemUoZSxmdW5jdGlvbihpKXt2YXIgcj1uO249aSxsJiZlLm5leHQoW3IsaV0pLGw9ITB9KSl9KX1mdW5jdGlvbiB4dCh0KXt0PT09dm9pZCAwJiYodD17fSk7dmFyIGU9dC5jb25uZWN0b3Isbj1lPT09dm9pZCAwP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBlZH06ZSxsPXQucmVzZXRPbkVycm9yLGk9bD09PXZvaWQgMD8hMDpsLHI9dC5yZXNldE9uQ29tcGxldGUsbz1yPT09dm9pZCAwPyEwOnIsYT10LnJlc2V0T25SZWZDb3VudFplcm8sYz1hPT09dm9pZCAwPyEwOmE7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBzLHUsaCxnPTAsYj0hMSxtPSExLGY9ZnVuY3Rpb24oKXt1PT1udWxsfHx1LnVuc3Vic2NyaWJlKCksdT12b2lkIDB9LHA9ZnVuY3Rpb24oKXtmKCkscz1oPXZvaWQgMCxiPW09ITF9LEE9ZnVuY3Rpb24oKXt2YXIgWD1zO3AoKSxYPT1udWxsfHxYLnVuc3Vic2NyaWJlKCl9O3JldHVybiBudChmdW5jdGlvbihYLHkpe2crKywhbSYmIWImJmYoKTt2YXIgST1oPWg/P24oKTt5LmFkZChmdW5jdGlvbigpe2ctLSxnPT09MCYmIW0mJiFiJiYodT10aShBLGMpKX0pLEkuc3Vic2NyaWJlKHkpLCFzJiZnPjAmJihzPW5ldyB5bih7bmV4dDpmdW5jdGlvbihTKXtyZXR1cm4gSS5uZXh0KFMpfSxlcnJvcjpmdW5jdGlvbihTKXttPSEwLGYoKSx1PXRpKHAsaSxTKSxJLmVycm9yKFMpfSxjb21wbGV0ZTpmdW5jdGlvbigpe2I9ITAsZigpLHU9dGkocCxvKSxJLmNvbXBsZXRlKCl9fSksUWUoWCkuc3Vic2NyaWJlKHMpKX0pKGQpfX1mdW5jdGlvbiB0aSh0LGUpe2Zvcih2YXIgbj1bXSxsPTI7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyluW2wtMl09YXJndW1lbnRzW2xdO2lmKGU9PT0hMCl7dCgpO3JldHVybn1pZihlIT09ITEpe3ZhciBpPW5ldyB5bih7bmV4dDpmdW5jdGlvbigpe2kudW5zdWJzY3JpYmUoKSx0KCl9fSk7cmV0dXJuIFFlKGUuYXBwbHkodm9pZCAwLGooW10sVShuKSkpKS5zdWJzY3JpYmUoaSl9fWZ1bmN0aW9uIHdWKHQsZSl7cmV0dXJuIG50KGZ1bmN0aW9uKG4sbCl7dmFyIGk9bnVsbCxyPTAsbz0hMSxhPWZ1bmN0aW9uKCl7cmV0dXJuIG8mJiFpJiZsLmNvbXBsZXRlKCl9O24uc3Vic2NyaWJlKHplKGwsZnVuY3Rpb24oYyl7aT09bnVsbHx8aS51bnN1YnNjcmliZSgpO3ZhciBkPTAscz1yKys7UWUodChjLHMpKS5zdWJzY3JpYmUoaT16ZShsLGZ1bmN0aW9uKHUpe3JldHVybiBsLm5leHQoZT9lKGMsdSxzLGQrKyk6dSl9LGZ1bmN0aW9uKCl7aT1udWxsLGEoKX0pKX0sZnVuY3Rpb24oKXtvPSEwLGEoKX0pKX0pfWZ1bmN0aW9uIGtWKHQsZSl7cmV0dXJuIG50KGZ1bmN0aW9uKG4sbCl7dmFyIGk9ZT8/e30scj1pLmxlYWRpbmcsbz1yPT09dm9pZCAwPyEwOnIsYT1pLnRyYWlsaW5nLGM9YT09PXZvaWQgMD8hMTphLGQ9ITEscz1udWxsLHU9bnVsbCxoPSExLGc9ZnVuY3Rpb24oKXt1PT1udWxsfHx1LnVuc3Vic2NyaWJlKCksdT1udWxsLGMmJihmKCksaCYmbC5jb21wbGV0ZSgpKX0sYj1mdW5jdGlvbigpe3U9bnVsbCxoJiZsLmNvbXBsZXRlKCl9LG09ZnVuY3Rpb24ocCl7cmV0dXJuIHU9UWUodChwKSkuc3Vic2NyaWJlKHplKGwsZyxiKSl9LGY9ZnVuY3Rpb24oKXtpZihkKXtkPSExO3ZhciBwPXM7cz1udWxsLGwubmV4dChwKSwhaCYmbShwKX19O24uc3Vic2NyaWJlKHplKGwsZnVuY3Rpb24ocCl7ZD0hMCxzPXAsISh1JiYhdS5jbG9zZWQpJiYobz9mKCk6bShwKSl9LGZ1bmN0aW9uKCl7aD0hMCwhKGMmJmQmJnUmJiF1LmNsb3NlZCkmJmwuY29tcGxldGUoKX0pKX0pfWZ1bmN0aW9uIHpWKHQsZSxuKXtlPT09dm9pZCAwJiYoZT1Vbik7dmFyIGw9bWQodCxlKTtyZXR1cm4ga1YoZnVuY3Rpb24oKXtyZXR1cm4gbH0sbil9dmFyIFFWPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGZkPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbD0obj13aW5kb3c9PW51bGw/dm9pZCAwOndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY2FsbCh3aW5kb3csdCk7cmV0dXJuKGw9PW51bGw/dm9pZCAwOmwuZ2V0UHJvcGVydHlWYWx1ZSgiY3Vyc29yIikpPT09InBvaW50ZXIiJiZlPT09ImNsaWNrIn0scG49ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPT09dm9pZCAwJiYobj0hMSksZnVuY3Rpb24obCxpKXt2YXIgcixvLGE9dC5wYWdlVXJsQWxsb3dsaXN0LGM9dC5wYWdlVXJsRXhjbHVkZWxpc3QsZD10LnNob3VsZFRyYWNrRXZlbnRSZXNvbHZlcixzPShvPShyPWk9PW51bGw/dm9pZCAwOmkudGFnTmFtZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnRvTG93ZXJDYXNlKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY2FsbChyKTtpZighcylyZXR1cm4hMTtpZihkKXJldHVybiBkKGwsaSk7aWYoIXBpKHdpbmRvdy5sb2NhdGlvbi5ocmVmLGEpfHxjJiZjLmxlbmd0aD4wJiZwaSh3aW5kb3cubG9jYXRpb24uaHJlZixjKSlyZXR1cm4hMTt2YXIgdT1TdHJpbmcoaT09bnVsbD92b2lkIDA6aS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCIiO2lmKHR5cGVvZiB1PT0ic3RyaW5nIilzd2l0Y2godS50b0xvd2VyQ2FzZSgpKXtjYXNlImhpZGRlbiI6cmV0dXJuITE7Y2FzZSJwYXNzd29yZCI6cmV0dXJuITF9dmFyIGg9ZmQoaSxsKTtpZihuJiZoKXJldHVybiEwO2lmKGUpe3ZhciBnPWUuc29tZShmdW5jdGlvbihiKXt2YXIgbTtyZXR1cm4hISghKChtPWk9PW51bGw/dm9pZCAwOmkubWF0Y2hlcyk9PT1udWxsfHxtPT09dm9pZCAwKSYmbS5jYWxsKGksYikpfSk7aWYoIWcpcmV0dXJuITF9c3dpdGNoKHMpe2Nhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpyZXR1cm4gbD09PSJjaGFuZ2UifHxsPT09ImNsaWNrIjtkZWZhdWx0OnJldHVybiBoPyEwOmw9PT0iY2xpY2sifX19LExWPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbCxpPShuPShlPXQ9PW51bGw/dm9pZCAwOnQudGFnTmFtZSk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLnRvTG93ZXJDYXNlKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY2FsbChlKSxyPXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD8oKGw9dC5nZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwudG9Mb3dlckNhc2UoKSk9PT0idHJ1ZSI6ITE7cmV0dXJuIVFWLmluY2x1ZGVzKGkpJiYhcn0sS1Y9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjAmJmUhPT0iaWQiJiZlIT09ImNsYXNzIn0pOltdfSxUVj1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoZnVuY3Rpb24obixsKXt2YXIgaT1VKGwsMikscj1pWzBdLG89aVsxXTtpZihyLnN0YXJ0c1dpdGgoZSkpe3ZhciBhPXIucmVwbGFjZShlLCIiKTthJiYoblthXT1vfHwiIil9cmV0dXJuIG59LHt9KX0sTVY9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW51bGx8fHR5cGVvZiB0PT0ib2JqZWN0IiYmT2JqZWN0LmtleXModCkubGVuZ3RoPT09MHx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnRyaW0oKS5sZW5ndGg9PT0wfSxLbz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXModCkucmVkdWNlKGZ1bmN0aW9uKGUsbil7dmFyIGw9dFtuXTtyZXR1cm4gTVYobCl8fChlW25dPWwpLGV9LHt9KX0sbnI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD9lLnNvbWUoZnVuY3Rpb24obil7dmFyIGw7cmV0dXJuKGw9dD09bnVsbD92b2lkIDA6dC5tYXRjaGVzKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuY2FsbCh0LG4pfSk/dDpucih0PT1udWxsP3ZvaWQgMDp0LnBhcmVudEVsZW1lbnQsZSk6bnVsbH0sSFY9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dmFyIGw7dHJ5e3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2kudHlwZT0idGV4dC9qYXZhc2NyaXB0IixpLmFzeW5jPSEwLGkuc3JjPXQsaS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2Uoe3N0YXR1czohMH0pfSx7b25jZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7bih7c3RhdHVzOiExLG1lc3NhZ2U6IkZhaWxlZCB0byBsb2FkIHRoZSBzY3JpcHQgIi5jb25jYXQodCl9KX0pLChsPWRvY3VtZW50LmhlYWQpPT09bnVsbHx8bD09PXZvaWQgMHx8bC5hcHBlbmRDaGlsZChpKX1jYXRjaChyKXtuKHIpfX0pfTtmdW5jdGlvbiBEVigpe3JldHVybiIiLmNvbmNhdChEYXRlLm5vdygpLCItIikuY29uY2F0KE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpKX12YXIgeG49ZnVuY3Rpb24odCl7cmV0dXJuISh0LmV2ZW50LnRhcmdldD09PW51bGx8fCF0LmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpfTtmdW5jdGlvbiBqVih0KXtyZXR1cm4gdC50eXBlPT09ImNsaWNrInx8dC50eXBlPT09ImNoYW5nZSJ9dmFyIF9WPSIxLjEzLjAiLE9WPW5ldyBTZXQoWyJpZCIsImNsYXNzIiwic3R5bGUiLCJ2YWx1ZSIsIm9uY2xpY2siLCJvbmNoYW5nZSIsIm9uaW5wdXQiLCJvbmJsdXIiLCJvbnN1Ym1pdCIsIm9uZm9jdXMiLCJvbmtleWRvd24iLCJvbmtleXVwIiwib25rZXlwcmVzcyIsImRhdGEtcmVhY3RpZCIsImRhdGEtcmVhY3QtY2hlY2tzdW0iLCJkYXRhLXJlYWN0cm9vdCIsX2MsYm5dKSxQVj1bInR5cGUiXSwkVj1bInN2ZyIsInBhdGgiLCJnIl0scVY9WyJwYXNzd29yZCIsImhpZGRlbiJdLGUwPTEyODtmdW5jdGlvbiB0MCh0LGUpe3ZhciBuLGwsaSxyLG8sYTtpZih0PT09bnVsbClyZXR1cm4gbnVsbDt2YXIgYz1TdHJpbmcodC50YWdOYW1lKS50b0xvd2VyQ2FzZSgpLGQ9e3RhZzpjfSxzPUFycmF5LmZyb20oKHI9KGk9dC5wYXJlbnRFbGVtZW50KT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuY2hpbGRyZW4pIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKTtzLmxlbmd0aCYmKGQuaW5kZXg9cy5pbmRleE9mKHQpLGQuaW5kZXhPZlR5cGU9cy5maWx0ZXIoZnVuY3Rpb24oSSl7cmV0dXJuIEkudGFnTmFtZT09PXQudGFnTmFtZX0pLmluZGV4T2YodCkpO3ZhciB1PShhPShvPXQucHJldmlvdXNFbGVtZW50U2libGluZyk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLnRhZ05hbWUpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS50b0xvd2VyQ2FzZSgpO3UmJihkLnByZXZTaWI9U3RyaW5nKHUpKTt2YXIgaD10LmdldEF0dHJpYnV0ZSgiaWQiKTtoJiYoZC5pZD1TdHJpbmcoaCkpO3ZhciBnPUFycmF5LmZyb20odC5jbGFzc0xpc3QpO2cubGVuZ3RoJiYoZC5jbGFzc2VzPWcpO3ZhciBiPXt9LG09QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpLGY9bS5maWx0ZXIoZnVuY3Rpb24oSSl7cmV0dXJuIU9WLmhhcyhJLm5hbWUpfSkscD0hTFYodCk7aWYoIXFWLmluY2x1ZGVzKFN0cmluZyh0LmdldEF0dHJpYnV0ZSgidHlwZSIpKSkmJiEkVi5pbmNsdWRlcyhjKSl0cnl7Zm9yKHZhciBBPUQoZiksWD1BLm5leHQoKTshWC5kb25lO1g9QS5uZXh0KCkpe3ZhciB5PVgudmFsdWU7aWYoIShwJiYhUFYuaW5jbHVkZXMoeS5uYW1lKSkpe2lmKGUuaGFzKHkubmFtZSkpe2JbeS5uYW1lXT1SdDtjb250aW51ZX1iW3kubmFtZV09U3RyaW5nKHkudmFsdWUpLnN1YnN0cmluZygwLGUwKX19fWNhdGNoKEkpe249e2Vycm9yOkl9fWZpbmFsbHl7dHJ5e1gmJiFYLmRvbmUmJihsPUEucmV0dXJuKSYmbC5jYWxsKEEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gT2JqZWN0LmtleXMoYikubGVuZ3RoJiYoZC5hdHRycz1iKSxkfWZ1bmN0aW9uIG4wKHQpe3ZhciBlPVtdO2lmKCF0KXJldHVybiBlO2UucHVzaCh0KTtmb3IodmFyIG49dC5wYXJlbnRFbGVtZW50O24mJm4udGFnTmFtZSE9PSJIVE1MIjspZS5wdXNoKG4pLG49bi5wYXJlbnRFbGVtZW50O3JldHVybiBlfXZhciBsMD1mdW5jdGlvbih0LGUpe3RyeXtpZih0LnNvdXJjZVR5cGU9PT0iRE9NX0VMRU1FTlQiKXt2YXIgbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHQuc2NvcGUmJmUmJihuPWUuY2xvc2VzdCh0LnNjb3BlKSksbiYmdC5zZWxlY3Rvcj9uLnF1ZXJ5U2VsZWN0b3IodC5zZWxlY3Rvcik6bn19Y2F0Y2h7cmV0dXJufX0saTA9ZnVuY3Rpb24odCxlLG4pe3QuZm9yRWFjaChmdW5jdGlvbihsKXtpZih0eXBlb2YgbCE9InN0cmluZyImJmwuYWN0aW9uVHlwZT09PSJBVFRBQ0hfRVZFTlRfUFJPUEVSVFkiKXt2YXIgaT1uLmV4dHJhY3REYXRhRnJvbURhdGFTb3VyY2UobC5kYXRhU291cmNlLGUuY2xvc2VzdFRyYWNrZWRBbmNlc3Rvcik7ZS50YXJnZXRFbGVtZW50UHJvcGVydGllc1tsLmRlc3RpbmF0aW9uS2V5XT1pfX0pfSxyMD0vXGIoPzpcZFsgLV0qPyl7MTMsMTZ9XGIvLG8wPS8oXGR7M30tP1xkezJ9LT9cZHs0fSkvZyxhMD0vW15cc0BdK0BbXlxzQC5dK1wuW15cc0BdKy9nLGxyPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG4sbCxpPXRoaXMscjt0aGlzLnJlcGxhY2VTZW5zaXRpdmVTdHJpbmc9ZnVuY3Rpb24odSl7dmFyIGgsZztpZih0eXBlb2YgdSE9InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9dTtiPWIucmVwbGFjZShyMCxSdCksYj1iLnJlcGxhY2UobzAsUnQpLGI9Yi5yZXBsYWNlKGEwLFJ0KTt0cnl7Zm9yKHZhciBtPUQoaS5hZGRpdGlvbmFsTWFza1RleHRQYXR0ZXJucyksZj1tLm5leHQoKTshZi5kb25lO2Y9bS5uZXh0KCkpe3ZhciBwPWYudmFsdWU7dHJ5e2I9Yi5yZXBsYWNlKHAsUnQpfWNhdGNoe319fWNhdGNoKEEpe2g9e2Vycm9yOkF9fWZpbmFsbHl7dHJ5e2YmJiFmLmRvbmUmJihnPW0ucmV0dXJuKSYmZy5jYWxsKG0pfWZpbmFsbHl7aWYoaCl0aHJvdyBoLmVycm9yfX1yZXR1cm4gYn0sdGhpcy5nZXRIaWVyYXJjaHk9ZnVuY3Rpb24odSl7dmFyIGgsZyxiLG09W107aWYoIXUpcmV0dXJuW107Zm9yKHZhciBmPW4wKHUpLHA9bmV3IE1hcCxBPWYubGVuZ3RoLTE7QT49MDtBLS0pe3ZhciBYPWZbQV07aWYoWCl7dmFyIHk9S1YoWC5nZXRBdHRyaWJ1dGUoX2MpKSxJPUE9PT1mLmxlbmd0aC0xP1tdOihiPXAuZ2V0KGZbQSsxXSkpIT09bnVsbCYmYiE9PXZvaWQgMD9iOm5ldyBTZXQsUz1uZXcgU2V0KGooaihbXSxVKEkpLCExKSxVKHkpLCExKSk7cC5zZXQoWCxTKX19bT1mLm1hcChmdW5jdGlvbih3KXt2YXIgTDtyZXR1cm4gdDAodywoTD1wLmdldCh3KSkhPT1udWxsJiZMIT09dm9pZCAwP0w6bmV3IFNldCl9KTt2YXIgRz1mdW5jdGlvbih3KXt3IT1udWxsJiZ3LmF0dHJzJiZPYmplY3QuZW50cmllcyh3LmF0dHJzKS5mb3JFYWNoKGZ1bmN0aW9uKEwpe3ZhciAkPVUoTCwyKSxxPSRbMF0scGU9JFsxXTt3LmF0dHJzJiYody5hdHRyc1txXT1pLnJlcGxhY2VTZW5zaXRpdmVTdHJpbmcocGUpKX0pfTt0cnl7Zm9yKHZhciBCPUQobSksdj1CLm5leHQoKTshdi5kb25lO3Y9Qi5uZXh0KCkpe3ZhciBKPXYudmFsdWU7RyhKKX19Y2F0Y2godyl7aD17ZXJyb3I6d319ZmluYWxseXt0cnl7diYmIXYuZG9uZSYmKGc9Qi5yZXR1cm4pJiZnLmNhbGwoQil9ZmluYWxseXtpZihoKXRocm93IGguZXJyb3J9fXJldHVybiBtfSx0aGlzLmdldE5lYXJlc3RMYWJlbD1mdW5jdGlvbih1KXt2YXIgaD11LnBhcmVudEVsZW1lbnQ7aWYoIWgpcmV0dXJuIiI7dmFyIGc7dHJ5e2c9aC5xdWVyeVNlbGVjdG9yKCI6c2NvcGU+c3BhbixoMSxoMixoMyxoNCxoNSxoNiIpfWNhdGNoe2c9bnVsbH1yZXR1cm4gZz9pLmdldFRleHQoZyk6aS5nZXROZWFyZXN0TGFiZWwoaCl9LHRoaXMuZ2V0RXZlbnRQcm9wZXJ0aWVzPWZ1bmN0aW9uKHUsaCxnKXt2YXIgYixtLGYscCxBPShmPShtPWg9PW51bGw/dm9pZCAwOmgudGFnTmFtZSk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLnRvTG93ZXJDYXNlKT09PW51bGx8fGY9PT12b2lkIDA/dm9pZCAwOmYuY2FsbChtKSxYPXR5cGVvZiBoLmdldEJvdW5kaW5nQ2xpZW50UmVjdD09ImZ1bmN0aW9uIj9oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOntsZWZ0Om51bGwsdG9wOm51bGx9LHk9aS5nZXRIaWVyYXJjaHkoaCksST0ocD15WzBdKT09PW51bGx8fHA9PT12b2lkIDA/dm9pZCAwOnAuYXR0cnMsUz1pLmdldE5lYXJlc3RMYWJlbChoKSxHPVRWKEk/P3t9LGcpLEI9KGI9e30sYltaYl09eSxiW1lvXT1BLGJbVW9dPWkuZ2V0VGV4dChoKSxiW1hiXT1YLmxlZnQ9PW51bGw/bnVsbDpNYXRoLnJvdW5kKFgubGVmdCksYltJYl09WC50b3A9PW51bGw/bnVsbDpNYXRoLnJvdW5kKFgudG9wKSxiW0ViXT1HLGJbeWJdPVMsYltKb109UWcod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXSksYlt2Yl09aS5nZXRQYWdlVGl0bGUoKSxiW1NiXT13aW5kb3cuaW5uZXJIZWlnaHQsYltDYl09d2luZG93LmlubmVyV2lkdGgsYik7cmV0dXJuIEJbQWJdPWguZ2V0QXR0cmlidXRlKCJpZCIpfHwiIixCW3BiXT1oLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSxCW1JiXT1JPT1udWxsP3ZvaWQgMDpJWyJhcmlhLWxhYmVsIl0sQT09PSJhIiYmdT09PSJjbGljayImJmggaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmKEJbR2JdPWkucmVwbGFjZVNlbnNpdGl2ZVN0cmluZyhoLmhyZWYpKSxLbyhCKX0sdGhpcy5hZGRBZGRpdGlvbmFsRXZlbnRQcm9wZXJ0aWVzPWZ1bmN0aW9uKHUsaCxnLGIsbSl7bT09PXZvaWQgMCYmKG09ITEpO3ZhciBmPXtldmVudDp1LHRpbWVzdGFtcDpEYXRlLm5vdygpLHR5cGU6aH07aWYoalYoZikmJmYuZXZlbnQudGFyZ2V0IT09bnVsbCl7aWYobSl7dmFyIHA9ZmQoZi5ldmVudC50YXJnZXQsZi50eXBlKTtpZihwKXJldHVybiBmLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3I9Zi5ldmVudC50YXJnZXQsZi50YXJnZXRFbGVtZW50UHJvcGVydGllcz1pLmdldEV2ZW50UHJvcGVydGllcyhmLnR5cGUsZi5jbG9zZXN0VHJhY2tlZEFuY2VzdG9yLGIpLGZ9dmFyIEE9bnIoZi5ldmVudC50YXJnZXQsZyk7cmV0dXJuIEEmJihmLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3I9QSxmLnRhcmdldEVsZW1lbnRQcm9wZXJ0aWVzPWkuZ2V0RXZlbnRQcm9wZXJ0aWVzKGYudHlwZSxBLGIpKSxmfXJldHVybiBmfSx0aGlzLmV4dHJhY3REYXRhRnJvbURhdGFTb3VyY2U9ZnVuY3Rpb24odSxoKXtpZih1LnNvdXJjZVR5cGU9PT0iRE9NX0VMRU1FTlQiKXt2YXIgZz1sMCh1LGgpO3JldHVybiBnP3UuZWxlbWVudEV4dHJhY3RUeXBlPT09IlRFWFQiP2kuZ2V0VGV4dChnKTp1LmVsZW1lbnRFeHRyYWN0VHlwZT09PSJBVFRSSUJVVEUiJiZ1LmF0dHJpYnV0ZT9nLmdldEF0dHJpYnV0ZSh1LmF0dHJpYnV0ZSk6dm9pZCAwOnZvaWQgMH19LHRoaXMuZ2V0VGV4dD1mdW5jdGlvbih1KXt2YXIgaD11LmNsb3Nlc3QoIlsiLmNvbmNhdChibiwiXSIpKSE9PW51bGw7aWYoaClyZXR1cm4gUnQ7dmFyIGc9IiI7aWYoIXUucXVlcnlTZWxlY3RvcigiWyIuY29uY2F0KGJuLCJdLCBbY29udGVudGVkaXRhYmxlXSIpKSlnPXUuaW5uZXJUZXh0fHwiIjtlbHNle3ZhciBiPXUuY2xvbmVOb2RlKCEwKTtiLnF1ZXJ5U2VsZWN0b3JBbGwoIlsiLmNvbmNhdChibiwiXSwgW2NvbnRlbnRlZGl0YWJsZV0iKSkuZm9yRWFjaChmdW5jdGlvbihtKXttLmlubmVyVGV4dD1SdH0pLGc9Yi5pbm5lclRleHR8fCIifXJldHVybiBpLnJlcGxhY2VTZW5zaXRpdmVTdHJpbmcoZy5zdWJzdHJpbmcoMCwyNTUpKS5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKX0sdGhpcy5nZXRQYWdlVGl0bGU9ZnVuY3Rpb24oKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybiIiO3ZhciB1PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRpdGxlIik7cmV0dXJuIHUmJnUuaGFzQXR0cmlidXRlKGJuKT9SdDppLnJlcGxhY2VTZW5zaXRpdmVTdHJpbmcoZG9jdW1lbnQudGl0bGUpfSx0aGlzLmdldEV2ZW50VGFnUHJvcHM9ZnVuY3Rpb24odSl7dmFyIGgsZyxiO2lmKCF1KXJldHVybnt9O3ZhciBtPShiPShnPXU9PW51bGw/dm9pZCAwOnUudGFnTmFtZSk9PT1udWxsfHxnPT09dm9pZCAwP3ZvaWQgMDpnLnRvTG93ZXJDYXNlKT09PW51bGx8fGI9PT12b2lkIDA/dm9pZCAwOmIuY2FsbChnKSxmPShoPXt9LGhbWW9dPW0saFtVb109aS5nZXRUZXh0KHUpLGhbSm9dPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF0saCk7cmV0dXJuIEtvKGYpfTt2YXIgbz0ocj1lLm1hc2tUZXh0UmVnZXgpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdLGE9W107dHJ5e2Zvcih2YXIgYz1EKG8pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgcz1kLnZhbHVlO2lmKGEubGVuZ3RoPj1VYilicmVhaztpZihzIGluc3RhbmNlb2YgUmVnRXhwKWEucHVzaChzKTtlbHNlIGlmKCJwYXR0ZXJuImluIHMmJnR5cGVvZiBzLnBhdHRlcm49PSJzdHJpbmciKXRyeXthLnB1c2gobmV3IFJlZ0V4cChzLnBhdHRlcm4sImkiKSl9Y2F0Y2h7fX19Y2F0Y2godSl7bj17ZXJyb3I6dX19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKGw9Yy5yZXR1cm4pJiZsLmNhbGwoYyl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXRoaXMuYWRkaXRpb25hbE1hc2tUZXh0UGF0dGVybnM9YX1yZXR1cm4gdH0pKCksYzA9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt2YXIgbj1lPT09dm9pZCAwP3t9OmUsbD1uLm9yaWdpbixpPWw9PT12b2lkIDA/Y2w6bCxyPXRoaXM7dGhpcy5lbmRwb2ludD1jbCx0aGlzLnJlcXVlc3RDYWxsYmFja3M9e30sdGhpcy5vblNlbGVjdD1mdW5jdGlvbihvKXtyLm5vdGlmeSh7YWN0aW9uOiJlbGVtZW50LXNlbGVjdGVkIixkYXRhOm99KX0sdGhpcy5vblRyYWNrPWZ1bmN0aW9uKG8sYSl7bz09PSJzZWxlY3Rvci1tb2RlLWNoYW5nZWQiP3Iubm90aWZ5KHthY3Rpb246InRyYWNrLXNlbGVjdG9yLW1vZGUtY2hhbmdlZCIsZGF0YTphfSk6bz09PSJzZWxlY3Rvci1tb3ZlZCImJnIubm90aWZ5KHthY3Rpb246InRyYWNrLXNlbGVjdG9yLW1vdmVkIixkYXRhOmF9KX0sdGhpcy5lbmRwb2ludD1pfXJldHVybiB0LnByb3RvdHlwZS5ub3RpZnk9ZnVuY3Rpb24oZSl7dmFyIG4sbCxpLHI7KGw9KG49dGhpcy5sb2dnZXIpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5kZWJ1Zyk9PT1udWxsfHxsPT09dm9pZCAwfHxsLmNhbGwobiwiTWVzc2FnZSBzZW50OiAiLEpTT04uc3RyaW5naWZ5KGUpKSwocj0oaT13aW5kb3cub3BlbmVyKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkucG9zdE1lc3NhZ2UpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGksZSx0aGlzLmVuZHBvaW50KX0sdC5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oZSxuLGwpe3ZhciBpPXRoaXM7bD09PXZvaWQgMCYmKGw9e3RpbWVvdXQ6MTVlM30pO3ZhciByPURWKCksbz17aWQ6cixhY3Rpb246ZSxhcmdzOm59LGE9bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXtpLnJlcXVlc3RDYWxsYmFja3Nbcl09e3Jlc29sdmU6YyxyZWplY3Q6ZH0saS5ub3RpZnkobyksKGw9PW51bGw/dm9pZCAwOmwudGltZW91dCk+MCYmc2V0VGltZW91dChmdW5jdGlvbigpe2QobmV3IEVycm9yKCIiLmNvbmNhdChlLCIgdGltZWQgb3V0IChpZDogIikuY29uY2F0KHIsIikiKSkpLGRlbGV0ZSBpLnJlcXVlc3RDYWxsYmFja3Nbcl19LGwudGltZW91dCl9KTtyZXR1cm4gYX0sdC5wcm90b3R5cGUuaGFuZGxlUmVzcG9uc2U9ZnVuY3Rpb24oZSl7dmFyIG47aWYoIXRoaXMucmVxdWVzdENhbGxiYWNrc1tlLmlkXSl7KG49dGhpcy5sb2dnZXIpPT09bnVsbHx8bj09PXZvaWQgMHx8bi53YXJuKCJObyBjYWxsYmFjayBmb3VuZCBmb3IgcmVxdWVzdCBpZDogIi5jb25jYXQoZS5pZCkpO3JldHVybn10aGlzLnJlcXVlc3RDYWxsYmFja3NbZS5pZF0ucmVzb2x2ZShlLnJlc3BvbnNlRGF0YSksZGVsZXRlIHRoaXMucmVxdWVzdENhbGxiYWNrc1tlLmlkXX0sdC5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxsPWU9PT12b2lkIDA/e2RhdGFFeHRyYWN0b3I6bmV3IGxyKHt9KX06ZSxpPWwubG9nZ2VyLHI9bC5lbmRwb2ludCxvPWwuaXNFbGVtZW50U2VsZWN0YWJsZSxhPWwuY3NzU2VsZWN0b3JBbGxvd2xpc3QsYz1sLmFjdGlvbkNsaWNrQWxsb3dsaXN0LGQ9bC5kYXRhRXh0cmFjdG9yO3RoaXMubG9nZ2VyPWksciYmdGhpcy5lbmRwb2ludD09PWNsJiYodGhpcy5lbmRwb2ludD1yKTt2YXIgcz1udWxsO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbih1KXt2YXIgaCxnLGIsbSxmO2lmKChnPShoPW4ubG9nZ2VyKT09PW51bGx8fGg9PT12b2lkIDA/dm9pZCAwOmguZGVidWcpPT09bnVsbHx8Zz09PXZvaWQgMHx8Zy5jYWxsKGgsIk1lc3NhZ2UgcmVjZWl2ZWQ6ICIsSlNPTi5zdHJpbmdpZnkodSkpLG4uZW5kcG9pbnQ9PT11Lm9yaWdpbil7dmFyIHA9dT09bnVsbD92b2lkIDA6dS5kYXRhLEE9cD09bnVsbD92b2lkIDA6cC5hY3Rpb247aWYoQSlpZigiaWQiaW4gcCkobT0oYj1uLmxvZ2dlcik9PT1udWxsfHxiPT09dm9pZCAwP3ZvaWQgMDpiLmRlYnVnKT09PW51bGx8fG09PT12b2lkIDB8fG0uY2FsbChiLCJSZWNlaXZlZCBSZXNwb25zZSB0byBwcmV2aW91cyByZXF1ZXN0OiAiLEpTT04uc3RyaW5naWZ5KHUpKSxuLmhhbmRsZVJlc3BvbnNlKHApO2Vsc2UgaWYoQT09PSJwaW5nIiluLm5vdGlmeSh7YWN0aW9uOiJwb25nIn0pO2Vsc2UgaWYoQT09PSJpbml0aWFsaXplLXZpc3VhbC10YWdnaW5nLXNlbGVjdG9yIil7dmFyIFg9cD09bnVsbD92b2lkIDA6cC5kYXRhO0hWKEZiKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHk7cz0oeT13aW5kb3c9PW51bGw/dm9pZCAwOndpbmRvdy5hbXBsaXR1ZGVWaXN1YWxUYWdnaW5nU2VsZWN0b3IpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5jYWxsKHdpbmRvdyx7Z2V0RXZlbnRUYWdQcm9wczpkLmdldEV2ZW50VGFnUHJvcHMsaXNFbGVtZW50U2VsZWN0YWJsZTpmdW5jdGlvbihJKXtyZXR1cm4gbz9vKChYPT1udWxsP3ZvaWQgMDpYLmFjdGlvblR5cGUpfHwiY2xpY2siLEkpOiEwfSxvblRyYWNrOm4ub25UcmFjayxvblNlbGVjdDpuLm9uU2VsZWN0LHZpc3VhbEhpZ2hsaWdodENsYXNzOlliLG1lc3NlbmdlcjpuLGNzc1NlbGVjdG9yQWxsb3dsaXN0OmEsYWN0aW9uQ2xpY2tBbGxvd2xpc3Q6YyxleHRyYWN0RGF0YUZyb21EYXRhU291cmNlOmQuZXh0cmFjdERhdGFGcm9tRGF0YVNvdXJjZSxkYXRhRXh0cmFjdG9yOmQsZGlhZ25vc3RpY3M6e2F1dG9jYXB0dXJlOnt2ZXJzaW9uOl9WfX19KSxuLm5vdGlmeSh7YWN0aW9uOiJzZWxlY3Rvci1sb2FkZWQifSl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciB5Oyh5PW4ubG9nZ2VyKT09PW51bGx8fHk9PT12b2lkIDB8fHkud2FybigiRmFpbGVkIHRvIGluaXRpYWxpemUgdmlzdWFsIHRhZ2dpbmcgc2VsZWN0b3IiKX0pfWVsc2UgQT09PSJjbG9zZS12aXN1YWwtdGFnZ2luZy1zZWxlY3RvciImJigoZj1zPT1udWxsP3ZvaWQgMDpzLmNsb3NlKT09PW51bGx8fGY9PT12b2lkIDB8fGYuY2FsbChzKSl9fSksdGhpcy5ub3RpZnkoe2FjdGlvbjoicGFnZS1sb2FkZWQifSl9LHR9KSgpLGQwPTU7ZnVuY3Rpb24gczAodCl7dmFyIGU9dC5hbXBsaXR1ZGUsbj10LmFsbE9ic2VydmFibGVzLGw9dC5vcHRpb25zLGk9dC5zaG91bGRUcmFja0V2ZW50LHI9dC5ldmFsdWF0ZVRyaWdnZXJzLG89bi5jbGlja09ic2VydmFibGUsYT1vLnBpcGUoeFYoKSxrZShmdW5jdGlvbih1KXt2YXIgaD1VKHUsMiksZz1oWzBdLGI9aFsxXSxtPWcuZXZlbnQudGFyZ2V0IT09Yi5ldmVudC50YXJnZXQsZj1NYXRoLmFicyhiLmV2ZW50LnNjcmVlblgtZy5ldmVudC5zY3JlZW5YKTw9MjAmJk1hdGguYWJzKGIuZXZlbnQuc2NyZWVuWS1nLmV2ZW50LnNjcmVlblkpPD0yMDtyZXR1cm4gbSYmIWZ9KSksYz1vLnBpcGUoRlYobC5kZWJvdW5jZVRpbWUpLE5lKGZ1bmN0aW9uKCl7cmV0dXJuInRpbWVvdXQifSkpLGQ9ZXIoYSxjKSxzPW8ucGlwZShKVigwKSxrZSh4biksa2UoZnVuY3Rpb24odSl7cmV0dXJuIGkoImNsaWNrIix1LmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpfSksTmUoZnVuY3Rpb24odSl7cmV0dXJuIHIodSl9KSxOVihkKSk7cmV0dXJuIHMuc3Vic2NyaWJlKGZ1bmN0aW9uKHUpe3ZhciBoLGcsYj0odS5sZW5ndGg+PWQwLFhpKTt0cnl7Zm9yKHZhciBtPUQodSksZj1tLm5leHQoKTshZi5kb25lO2Y9bS5uZXh0KCkpe3ZhciBwPWYudmFsdWU7ZT09bnVsbHx8ZS50cmFjayhiLHAudGFyZ2V0RWxlbWVudFByb3BlcnRpZXMpfX1jYXRjaChBKXtoPXtlcnJvcjpBfX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYoZz1tLnJldHVybikmJmcuY2FsbChtKX1maW5hbGx5e2lmKGgpdGhyb3cgaC5lcnJvcn19fSl9ZnVuY3Rpb24gdTAodCl7dmFyIGU9dC5hbXBsaXR1ZGUsbj10LmFsbE9ic2VydmFibGVzLGw9dC5nZXRFdmVudFByb3BlcnRpZXMsaT10LnNob3VsZFRyYWNrRXZlbnQscj10LmV2YWx1YXRlVHJpZ2dlcnMsbz1uLmNoYW5nZU9ic2VydmFibGUsYT1vLnBpcGUoa2UoeG4pLGtlKGZ1bmN0aW9uKGMpe3JldHVybiBpKCJjaGFuZ2UiLGMuY2xvc2VzdFRyYWNrZWRBbmNlc3Rvcil9KSxOZShmdW5jdGlvbihjKXtyZXR1cm4gcihjKX0pKTtyZXR1cm4gYS5zdWJzY3JpYmUoZnVuY3Rpb24oYyl7ZT09bnVsbHx8ZS50cmFjayhmYixsKCJjaGFuZ2UiLGMuY2xvc2VzdFRyYWNrZWRBbmNlc3RvcikpfSl9ZnVuY3Rpb24gZzAodCl7dmFyIGU9dC5hbXBsaXR1ZGUsbj10LmFsbE9ic2VydmFibGVzLGw9dC5vcHRpb25zLGk9dC5nZXRFdmVudFByb3BlcnRpZXMscj10LnNob3VsZFRyYWNrRXZlbnQsbz10LnNob3VsZFRyYWNrQWN0aW9uQ2xpY2ssYT1uLmNsaWNrT2JzZXJ2YWJsZSxjPW4ubXV0YXRpb25PYnNlcnZhYmxlLGQ9bi5uYXZpZ2F0ZU9ic2VydmFibGUscz1hLnBpcGUoa2UoZnVuY3Rpb24oYil7cmV0dXJuIXIoImNsaWNrIixiLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpfSksTmUoZnVuY3Rpb24oYil7dmFyIG09bnIoYi5ldmVudC50YXJnZXQsbC5hY3Rpb25DbGlja0FsbG93bGlzdCk7cmV0dXJuIGIuY2xvc2VzdFRyYWNrZWRBbmNlc3Rvcj1tLGIuY2xvc2VzdFRyYWNrZWRBbmNlc3RvciE9PW51bGwmJihiLnRhcmdldEVsZW1lbnRQcm9wZXJ0aWVzPWkoYi50eXBlLGIuY2xvc2VzdFRyYWNrZWRBbmNlc3RvcikpLGJ9KSxrZSh4biksa2UoZnVuY3Rpb24oYil7cmV0dXJuIG8oImNsaWNrIixiLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpfSkpLHU9W2NdO2QmJnUucHVzaChkKTt2YXIgaD1lci5hcHBseSh2b2lkIDAsaihbXSxVKHUpLCExKSksZz1zLnBpcGUod1YoZnVuY3Rpb24oYil7cmV0dXJuIGgucGlwZSh0cigxKSxWVih7Zmlyc3Q6NTAwLHdpdGg6ZnVuY3Rpb24oKXtyZXR1cm4gJGl9fSksTmUoZnVuY3Rpb24oKXtyZXR1cm4gYn0pKX0pKTtyZXR1cm4gZy5zdWJzY3JpYmUoZnVuY3Rpb24oYil7ZT09bnVsbHx8ZS50cmFjayhYaSxpKCJjbGljayIsYi5jbG9zZXN0VHJhY2tlZEFuY2VzdG9yKSl9KX12YXIgQWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVlKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG4pe3QubmV4dChuKX0pO3JldHVybiBlLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSksZnVuY3Rpb24oKXtyZXR1cm4gZS5kaXNjb25uZWN0KCl9fSl9LHBkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0iY2xpY2siKSxlbihkb2N1bWVudCx0LHtjYXB0dXJlOiEwfSl9LGgwPWZ1bmN0aW9uKHQsZSl7dHJ5e2lmKGUuc3VicHJvcF9rZXk9PT0iW0FtcGxpdHVkZV0gRWxlbWVudCBUZXh0IilyZXR1cm4gZS5zdWJwcm9wX29wPT09ImlzIiYmZS5zdWJwcm9wX3ZhbHVlLmluY2x1ZGVzKHQudGFyZ2V0RWxlbWVudFByb3BlcnRpZXNbIltBbXBsaXR1ZGVdIEVsZW1lbnQgVGV4dCJdKTtpZihlLnN1YnByb3Bfa2V5PT09IltBbXBsaXR1ZGVdIEVsZW1lbnQgSGllcmFyY2h5IilyZXR1cm4gZS5zdWJwcm9wX29wPT09ImF1dG90cmFjayBjc3MgbWF0Y2giJiYhIXQuY2xvc2VzdFRyYWNrZWRBbmNlc3Rvci5jbG9zZXN0KGUuc3VicHJvcF92YWx1ZS50b1N0cmluZygpKX1jYXRjaChuKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRXJyb3IgbWF0Y2hpbmcgZXZlbnQgdG8gZmlsdGVyIixuKSwhMX1yZXR1cm4hMX0sUmk9eyJbQW1wbGl0dWRlXSBFbGVtZW50IENsaWNrZWQiOiJjbGljayIsIltBbXBsaXR1ZGVdIEVsZW1lbnQgQ2hhbmdlZCI6ImNoYW5nZSJ9LFRvPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbCxpLHI9T2JqZWN0LnZhbHVlcyhSaSkucmVkdWNlKGZ1bmN0aW9uKGcsYil7cmV0dXJuIGdbYl09bmV3IFNldCxnfSx7fSk7aWYoIXQpcmV0dXJuIHI7dHJ5e2Zvcih2YXIgbz1EKHQpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgYz1hLnZhbHVlO3RyeXt0cnl7Zm9yKHZhciBkPShsPXZvaWQgMCxEKGMuZGVmaW5pdGlvbikpLHM9ZC5uZXh0KCk7IXMuZG9uZTtzPWQubmV4dCgpKXt2YXIgdT1zLnZhbHVlLGg9UmlbdS5ldmVudF90eXBlXTtoJiZyW2hdLmFkZChjLmlkKX19Y2F0Y2goZyl7bD17ZXJyb3I6Z319ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKGk9ZC5yZXR1cm4pJiZpLmNhbGwoZCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fX1jYXRjaChnKXtjb25zb2xlLndhcm4oIlNraXBwaW5nIExhYmVsZWQgRXZlbnQgZHVlIHRvIG1hbGZvcm1lZCBkZWZpbml0aW9uIixjPT1udWxsP3ZvaWQgMDpjLmlkLGcpfX19Y2F0Y2goZyl7ZT17ZXJyb3I6Z319ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiByfSxNbz1mdW5jdGlvbih0KXt2YXIgZSxuLGwsaSxyPW5ldyBNYXA7dHJ5e2Zvcih2YXIgbz1EKHQpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgYz1hLnZhbHVlO3RyeXtmb3IodmFyIGQ9KGw9dm9pZCAwLEQoYy5jb25kaXRpb25zKSkscz1kLm5leHQoKTshcy5kb25lO3M9ZC5uZXh0KCkpe3ZhciB1PXMudmFsdWU7aWYodS50eXBlPT09IkxBQkVMRURfRVZFTlQiKXt2YXIgaD11Lm1hdGNoLmV2ZW50SWQsZz1yLmdldChoKTtnfHwoZz1bXSxyLnNldChoLGcpKSxnLnB1c2goYyl9fX1jYXRjaChiKXtsPXtlcnJvcjpifX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYoaT1kLnJldHVybikmJmkuY2FsbChkKX1maW5hbGx5e2lmKGwpdGhyb3cgbC5lcnJvcn19fX1jYXRjaChiKXtlPXtlcnJvcjpifX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIHJ9LGIwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmRlZmluaXRpb24uc29tZShmdW5jdGlvbihsKXtyZXR1cm4gUmlbbC5ldmVudF90eXBlXT09PXQudHlwZSYmbC5maWx0ZXJzLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBoMCh0LGkpfSl9KX0pfSxWMD1mdW5jdGlvbih0LGUpe3ZhciBuLGwsaSxyLG89bmV3IFNldDt0cnl7Zm9yKHZhciBhPUQodCksYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWMudmFsdWUscz1lLmdldChkLmlkKTtpZihzKXRyeXtmb3IodmFyIHU9KGk9dm9pZCAwLEQocykpLGg9dS5uZXh0KCk7IWguZG9uZTtoPXUubmV4dCgpKXt2YXIgZz1oLnZhbHVlO28uYWRkKGcpfX1jYXRjaChiKXtpPXtlcnJvcjpifX1maW5hbGx5e3RyeXtoJiYhaC5kb25lJiYocj11LnJldHVybikmJnIuY2FsbCh1KX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19fX1jYXRjaChiKXtuPXtlcnJvcjpifX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobD1hLnJldHVybikmJmwuY2FsbChhKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuIEFycmF5LmZyb20obyl9LG0wPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGwsaSl7dGhpcy5ncm91cGVkTGFiZWxlZEV2ZW50cz1lLHRoaXMubGFiZWxlZEV2ZW50VG9UcmlnZ2VyTWFwPW4sdGhpcy5kYXRhRXh0cmFjdG9yPWwsdGhpcy5vcHRpb25zPWl9cmV0dXJuIHQucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGUpe3ZhciBuLGwsaT10aGlzLm9wdGlvbnMucGFnZUFjdGlvbnM7aWYoIWkpcmV0dXJuIGU7dmFyIHI9YjAoZSxBcnJheS5mcm9tKHRoaXMuZ3JvdXBlZExhYmVsZWRFdmVudHNbZS50eXBlXSkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBpLmxhYmVsZWRFdmVudHNbc119KSksbz1WMChyLHRoaXMubGFiZWxlZEV2ZW50VG9UcmlnZ2VyTWFwKTt0cnl7Zm9yKHZhciBhPUQobyksYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aTAoZC5hY3Rpb25zLGUsdGhpcy5kYXRhRXh0cmFjdG9yKX19Y2F0Y2gocyl7bj17ZXJyb3I6c319ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKGw9YS5yZXR1cm4pJiZsLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBlfSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSxuLGwpe3RoaXMuZ3JvdXBlZExhYmVsZWRFdmVudHM9ZSx0aGlzLmxhYmVsZWRFdmVudFRvVHJpZ2dlck1hcD1uLHRoaXMub3B0aW9ucz1sfSx0fSkoKSxmMD1mdW5jdGlvbih0LGUsbixsKXtyZXR1cm4gbmV3IG0wKHQsZSxuLGwpfSxodDsoZnVuY3Rpb24odCl7dC5DbGlja09ic2VydmFibGU9ImNsaWNrT2JzZXJ2YWJsZSIsdC5DaGFuZ2VPYnNlcnZhYmxlPSJjaGFuZ2VPYnNlcnZhYmxlIix0Lk5hdmlnYXRlT2JzZXJ2YWJsZT0ibmF2aWdhdGVPYnNlcnZhYmxlIix0Lk11dGF0aW9uT2JzZXJ2YWJsZT0ibXV0YXRpb25PYnNlcnZhYmxlIn0pKGh0fHwoaHQ9e30pKTt2YXIgQTA9ZnVuY3Rpb24odCl7dmFyIGUsbixsLGkscixvLGEsYzt0PT09dm9pZCAwJiYodD17fSk7dmFyIGQ9dC5kYXRhQXR0cmlidXRlUHJlZml4LHM9ZD09PXZvaWQgMD9GYzpkLHU9dC52aXN1YWxUYWdnaW5nT3B0aW9ucyxoPXU9PT12b2lkIDA/e2VuYWJsZWQ6ITAsbWVzc2VuZ2VyOm5ldyBjMH06dTt0LmNzc1NlbGVjdG9yQWxsb3dsaXN0PShlPXQuY3NzU2VsZWN0b3JBbGxvd2xpc3QpIT09bnVsbCYmZSE9PXZvaWQgMD9lOkhnLHQuYWN0aW9uQ2xpY2tBbGxvd2xpc3Q9KG49dC5hY3Rpb25DbGlja0FsbG93bGlzdCkhPT1udWxsJiZuIT09dm9pZCAwP246RGcsdC5kZWJvdW5jZVRpbWU9KGw9dC5kZWJvdW5jZVRpbWUpIT09bnVsbCYmbCE9PXZvaWQgMD9sOjAsdC5wYWdlVXJsRXhjbHVkZWxpc3Q9KGk9dC5wYWdlVXJsRXhjbHVkZWxpc3QpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5yZWR1Y2UoZnVuY3Rpb24odixKKXtpZih0eXBlb2YgSj09InN0cmluZyImJnYucHVzaChKKSxKIGluc3RhbmNlb2YgUmVnRXhwJiZ2LnB1c2goSiksdHlwZW9mIEo9PSJvYmplY3QiJiZKIT09bnVsbCYmInBhdHRlcm4iaW4gSil0cnl7di5wdXNoKG5ldyBSZWdFeHAoSi5wYXR0ZXJuKSl9Y2F0Y2godyl7cmV0dXJuIGNvbnNvbGUud2FybigiSW52YWxpZCByZWdleCBwYXR0ZXJuOiAiLmNvbmNhdChKLnBhdHRlcm4pLHcpLHZ9cmV0dXJuIHZ9LFtdKTt2YXIgZz1iYixiPSJlbnJpY2htZW50IixtPVtdLGY9bmV3IGxyKHQpLHA9ZnVuY3Rpb24oKXt2YXIgdixKPXBkKCkucGlwZShOZShmdW5jdGlvbihxKXtyZXR1cm4gZi5hZGRBZGRpdGlvbmFsRXZlbnRQcm9wZXJ0aWVzKHEsImNsaWNrIix0LmNzc1NlbGVjdG9yQWxsb3dsaXN0LHMpfSkseHQoKSksdz1lbihkb2N1bWVudCwiY2hhbmdlIix7Y2FwdHVyZTohMH0pLnBpcGUoTmUoZnVuY3Rpb24ocSl7cmV0dXJuIGYuYWRkQWRkaXRpb25hbEV2ZW50UHJvcGVydGllcyhxLCJjaGFuZ2UiLHQuY3NzU2VsZWN0b3JBbGxvd2xpc3Qscyl9KSx4dCgpKSxMO3dpbmRvdy5uYXZpZ2F0aW9uJiYoTD1lbih3aW5kb3cubmF2aWdhdGlvbiwibmF2aWdhdGUiKS5waXBlKE5lKGZ1bmN0aW9uKHEpe3JldHVybiBmLmFkZEFkZGl0aW9uYWxFdmVudFByb3BlcnRpZXMocSwibmF2aWdhdGUiLHQuY3NzU2VsZWN0b3JBbGxvd2xpc3Qscyl9KSx4dCgpKSk7dmFyICQ9QWQoKS5waXBlKE5lKGZ1bmN0aW9uKHEpe3JldHVybiBmLmFkZEFkZGl0aW9uYWxFdmVudFByb3BlcnRpZXMocSwibXV0YXRpb24iLHQuY3NzU2VsZWN0b3JBbGxvd2xpc3Qscyl9KSx4dCgpKTtyZXR1cm4gdj17fSx2W2h0LkNsaWNrT2JzZXJ2YWJsZV09Six2W2h0LkNoYW5nZU9ic2VydmFibGVdPXcsdltodC5OYXZpZ2F0ZU9ic2VydmFibGVdPUwsdltodC5NdXRhdGlvbk9ic2VydmFibGVdPSQsdn0sQT1UbyhPYmplY3QudmFsdWVzKChvPShyPXQucGFnZUFjdGlvbnMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5sYWJlbGVkRXZlbnRzKSE9PW51bGwmJm8hPT12b2lkIDA/bzp7fSkpLFg9TW8oKGM9KGE9dC5wYWdlQWN0aW9ucyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnRyaWdnZXJzKSE9PW51bGwmJmMhPT12b2lkIDA/YzpbXSkseT1mMChBLFgsZix0KSxJPWZ1bmN0aW9uKHYpe3ZhciBKLHc7diYmKHQucGFnZUFjdGlvbnM9TihOKHt9LHQucGFnZUFjdGlvbnMpLHYpLEE9VG8oT2JqZWN0LnZhbHVlcygoSj10LnBhZ2VBY3Rpb25zLmxhYmVsZWRFdmVudHMpIT09bnVsbCYmSiE9PXZvaWQgMD9KOnt9KSksWD1Nbygodz10LnBhZ2VBY3Rpb25zLnRyaWdnZXJzKSE9PW51bGwmJnchPT12b2lkIDA/dzpbXSkseS51cGRhdGUoQSxYLHQpKX0sUz1mdW5jdGlvbih2LEope3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHcsTCwkLHEscGUsWmUsV2UsVWUseWUsQmU7cmV0dXJuIEModGhpcyxmdW5jdGlvbih4KXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PiJ1Ij9bMl06KHYuZmV0Y2hSZW1vdGVDb25maWcmJmhiKHtsb2NhbENvbmZpZzp2LGNvbmZpZ0tleXM6WyJhbmFseXRpY3NTREsucGFnZUFjdGlvbnMiXX0pLnRoZW4oZnVuY3Rpb24oVmUpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGVlLERlLCRlO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obWUpe3N3aXRjaChtZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBtZS50cnlzLnB1c2goWzAsMiwsM10pLFs0LFZlLmdldFJlbW90ZUNvbmZpZygiYW5hbHl0aWNzU0RLIiwicGFnZUFjdGlvbnMiKV07Y2FzZSAxOnJldHVybiBlZT1tZS5zZW50KCksSShlZSksWzMsM107Y2FzZSAyOnJldHVybiBEZT1tZS5zZW50KCksKCRlPXY9PW51bGw/dm9pZCAwOnYubG9nZ2VyUHJvdmlkZXIpPT09bnVsbHx8JGU9PT12b2lkIDB8fCRlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcmVtb3RlIGNvbmZpZzogIi5jb25jYXQoU3RyaW5nKERlKSkpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKFZlKXt2YXIgZWU7KGVlPXY9PW51bGw/dm9pZCAwOnYubG9nZ2VyUHJvdmlkZXIpPT09bnVsbHx8ZWU9PT12b2lkIDB8fGVlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIHJlbW90ZSBjb25maWcgZmV0Y2g6ICIuY29uY2F0KFN0cmluZyhWZSkpKX0pLHc9cG4odCx0LmNzc1NlbGVjdG9yQWxsb3dsaXN0KSxMPXBuKHQsdC5hY3Rpb25DbGlja0FsbG93bGlzdCksJD1wKCkscT1zMCh7YWxsT2JzZXJ2YWJsZXM6JCxvcHRpb25zOnQsYW1wbGl0dWRlOkosc2hvdWxkVHJhY2tFdmVudDp3LGV2YWx1YXRlVHJpZ2dlcnM6eS5ldmFsdWF0ZS5iaW5kKHkpfSksbS5wdXNoKHEpLHBlPXUwKHthbGxPYnNlcnZhYmxlczokLGdldEV2ZW50UHJvcGVydGllczpmdW5jdGlvbigpe2Zvcih2YXIgVmU9W10sZWU9MDtlZTxhcmd1bWVudHMubGVuZ3RoO2VlKyspVmVbZWVdPWFyZ3VtZW50c1tlZV07cmV0dXJuIGYuZ2V0RXZlbnRQcm9wZXJ0aWVzLmFwcGx5KGYsaihqKFtdLFUoVmUpLCExKSxbc10sITEpKX0sYW1wbGl0dWRlOkosc2hvdWxkVHJhY2tFdmVudDp3LGV2YWx1YXRlVHJpZ2dlcnM6eS5ldmFsdWF0ZS5iaW5kKHkpfSksbS5wdXNoKHBlKSxaZT1nMCh7YWxsT2JzZXJ2YWJsZXM6JCxvcHRpb25zOnQsZ2V0RXZlbnRQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7Zm9yKHZhciBWZT1bXSxlZT0wO2VlPGFyZ3VtZW50cy5sZW5ndGg7ZWUrKylWZVtlZV09YXJndW1lbnRzW2VlXTtyZXR1cm4gZi5nZXRFdmVudFByb3BlcnRpZXMuYXBwbHkoZixqKGooW10sVShWZSksITEpLFtzXSwhMSkpfSxhbXBsaXR1ZGU6SixzaG91bGRUcmFja0V2ZW50Oncsc2hvdWxkVHJhY2tBY3Rpb25DbGljazpMfSksbS5wdXNoKFplKSwoeWU9dj09bnVsbD92b2lkIDA6di5sb2dnZXJQcm92aWRlcik9PT1udWxsfHx5ZT09PXZvaWQgMHx8eWUubG9nKCIiLmNvbmNhdChnLCIgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkLiIpKSx3aW5kb3cub3BlbmVyJiZoLmVuYWJsZWQmJihXZT10LmNzc1NlbGVjdG9yQWxsb3dsaXN0LFVlPXQuYWN0aW9uQ2xpY2tBbGxvd2xpc3QsKEJlPWgubWVzc2VuZ2VyKT09PW51bGx8fEJlPT09dm9pZCAwfHxCZS5zZXR1cChOKE4oe2RhdGFFeHRyYWN0b3I6Zixsb2dnZXI6dj09bnVsbD92b2lkIDA6di5sb2dnZXJQcm92aWRlcn0sKHY9PW51bGw/dm9pZCAwOnYuc2VydmVyWm9uZSkmJntlbmRwb2ludDpOYlt2LnNlcnZlclpvbmVdfSkse2lzRWxlbWVudFNlbGVjdGFibGU6cG4odCxqKGooW10sVShXZSksITEpLFUoVWUpLCExKSksY3NzU2VsZWN0b3JBbGxvd2xpc3Q6V2UsYWN0aW9uQ2xpY2tBbGxvd2xpc3Q6VWV9KSkpLFsyXSl9KX0pfSxHPWZ1bmN0aW9uKHYpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxmdW5jdGlvbihKKXtyZXR1cm5bMix2XX0pfSl9LEI9ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB2LEosdyxMLCQ7cmV0dXJuIEModGhpcyxmdW5jdGlvbihxKXt0cnl7Zm9yKHY9RChtKSxKPXYubmV4dCgpOyFKLmRvbmU7Sj12Lm5leHQoKSl3PUoudmFsdWUsdy51bnN1YnNjcmliZSgpfWNhdGNoKHBlKXtMPXtlcnJvcjpwZX19ZmluYWxseXt0cnl7SiYmIUouZG9uZSYmKCQ9di5yZXR1cm4pJiYkLmNhbGwodil9ZmluYWxseXtpZihMKXRocm93IEwuZXJyb3J9fXJldHVyblsyXX0pfSl9O3JldHVybntuYW1lOmcsdHlwZTpiLHNldHVwOlMsZXhlY3V0ZTpHLHRlYXJkb3duOkJ9fSxIbz0zZTM7ZnVuY3Rpb24gcDAodCl7dmFyIGU9dC5hbXBsaXR1ZGUsbj10LmFsbE9ic2VydmFibGVzLGw9dC5nZXRFdmVudFByb3BlcnRpZXMsaT10LnNob3VsZFRyYWNrRGVhZENsaWNrLHI9bi5jbGlja09ic2VydmFibGUsbz1uLm11dGF0aW9uT2JzZXJ2YWJsZSxhPW4ubmF2aWdhdGVPYnNlcnZhYmxlLGM9ci5waXBlKGtlKHhuKSxrZShmdW5jdGlvbihoKXtyZXR1cm4gaSgiY2xpY2siLGguY2xvc2VzdFRyYWNrZWRBbmNlc3Rvcil9KSxrZShmdW5jdGlvbihoKXt2YXIgZz1oLmV2ZW50LnRhcmdldDtyZXR1cm4gZy5jbG9zZXN0KCdhW3RhcmdldD0iX2JsYW5rIl0nKT09PW51bGx9KSksZD1bb107YSYmZC5wdXNoKGEpO3ZhciBzPWVyLmFwcGx5KHZvaWQgMCxqKFtdLFUoZCksITEpKSx1PWMucGlwZShKbihmdW5jdGlvbihoKXt2YXIgZyxiPW5ldyBFZShmdW5jdGlvbihtKXtyZXR1cm4gZz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG0ubmV4dChoKX0sSG8pLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGcpfX0pO3JldHVybiBXVihiLHMucGlwZSh0cigxKSxOZShmdW5jdGlvbigpe3JldHVybiBudWxsfSkpKS5waXBlKGtlKGZ1bmN0aW9uKG0pe3JldHVybiBtIT09bnVsbH0pKX0pLHpWKEhvKSk7cmV0dXJuIHUuc3Vic2NyaWJlKGZ1bmN0aW9uKGgpe3ZhciBnPXsiW0FtcGxpdHVkZV0gWCI6aC5ldmVudC5jbGllbnRYLCJbQW1wbGl0dWRlXSBZIjpoLmV2ZW50LmNsaWVudFl9O2UudHJhY2sobWIsTihOKHt9LGwoImNsaWNrIixoLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpKSxnKSx7dGltZTpoLnRpbWVzdGFtcH0pfSl9dmFyIEVpPSRnLFpkPVBnLERvPXFnO2Z1bmN0aW9uIGpvKHQsZSl7dmFyIG4sbCxpLHIsbz1lLmV2ZW50LGE9by5jbGllbnRYLGM9by5jbGllbnRZO3QueU1pbj1NYXRoLm1pbigobj10LnlNaW4pIT09bnVsbCYmbiE9PXZvaWQgMD9uOmMsYyksdC55TWF4PU1hdGgubWF4KChsPXQueU1heCkhPT1udWxsJiZsIT09dm9pZCAwP2w6YyxjKSx0LnhNaW49TWF0aC5taW4oKGk9dC54TWluKSE9PW51bGwmJmkhPT12b2lkIDA/aTphLGEpLHQueE1heD1NYXRoLm1heCgocj10LnhNYXgpIT09bnVsbCYmciE9PXZvaWQgMD9yOmEsYSksdC5pc091dE9mQm91bmRzPXQueU1heC10LnlNaW4+RG98fHQueE1heC10LnhNaW4+RG99ZnVuY3Rpb24gX28odCl7dmFyIGU9dFswXSxuPXRbdC5sZW5ndGgtMV0sbD1OKHsiW0FtcGxpdHVkZV0gQmVnaW4gVGltZSI6bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksIltBbXBsaXR1ZGVdIEVuZCBUaW1lIjpuZXcgRGF0ZShuLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSwiW0FtcGxpdHVkZV0gRHVyYXRpb24iOm4udGltZXN0YW1wLWUudGltZXN0YW1wLCJbQW1wbGl0dWRlXSBDbGlja3MiOnQubWFwKGZ1bmN0aW9uKGkpe3JldHVybntYOmkuZXZlbnQuY2xpZW50WCxZOmkuZXZlbnQuY2xpZW50WSxUaW1lOmkudGltZXN0YW1wfX0pLCJbQW1wbGl0dWRlXSBDbGljayBDb3VudCI6dC5sZW5ndGh9LGUudGFyZ2V0RWxlbWVudFByb3BlcnRpZXMpO3JldHVybntyYWdlQ2xpY2tFdmVudDpsLHRpbWU6ZS50aW1lc3RhbXB9fWZ1bmN0aW9uIFowKHQsZSl7dmFyIG49TWF0aC5tYXgoMCx0Lmxlbmd0aC1FaSsxKSxsPXRbbl07cmV0dXJuIGUudGltZXN0YW1wLWwudGltZXN0YW1wPj1aZH1mdW5jdGlvbiBHMCh0LGUpe3JldHVybiB0Lmxlbmd0aD4wJiZ0W3QubGVuZ3RoLTFdLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IhPT1lLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3J9ZnVuY3Rpb24gWDAodCl7dmFyIGU9dC5hbXBsaXR1ZGUsbj10LmFsbE9ic2VydmFibGVzLGw9dC5zaG91bGRUcmFja1JhZ2VDbGljayxpPW4uY2xpY2tPYnNlcnZhYmxlLHI9W10sbz17fSxhO2Z1bmN0aW9uIGMoZCl7cj1bXSxvPXt9LGQmJihqbyhvLGQpLHIucHVzaChkKSl9cmV0dXJuIGkucGlwZShrZSh4biksa2UoZnVuY3Rpb24oZCl7cmV0dXJuIGwoImNsaWNrIixkLmNsb3Nlc3RUcmFja2VkQW5jZXN0b3IpfSksTmUoZnVuY3Rpb24oZCl7aWYoYSYmY2xlYXJUaW1lb3V0KGEpLGpvKG8sZCksci5sZW5ndGg9PT0wKXJldHVybiByLnB1c2goZCksbnVsbDtpZihHMChyLGQpfHxaMChyLGQpfHxvLmlzT3V0T2ZCb3VuZHMpe3ZhciBzPXIubGVuZ3RoPj1FaT9fbyhyKTpudWxsO3JldHVybiBjKGQpLHN9cmV0dXJuIHIucHVzaChkKSxyLmxlbmd0aD49RWkmJihhPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdT1fbyhyKSxoPXUucmFnZUNsaWNrRXZlbnQsZz11LnRpbWU7ZS50cmFjayhGbyxoLHt0aW1lOmd9KSxjKCl9LFpkKSksbnVsbH0pLGtlKGZ1bmN0aW9uKGQpe3JldHVybiBkIT09bnVsbH0pKS5zdWJzY3JpYmUoZnVuY3Rpb24oZCl7ZCE9PW51bGwmJmUudHJhY2soRm8sZC5yYWdlQ2xpY2tFdmVudCx7dGltZTpkLnRpbWV9KX0pfXZhciBJMD1mdW5jdGlvbih0KXt2YXIgZSxuLGwsaSxyO3Q9PT12b2lkIDAmJih0PXt9KTt2YXIgbz1WYixhPSJlbnJpY2htZW50IixjPVtdLGQ9KG49KGU9dC5yYWdlQ2xpY2tzKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuY3NzU2VsZWN0b3JBbGxvd2xpc3QpIT09bnVsbCYmbiE9PXZvaWQgMD9uOk9nLHM9KGk9KGw9dC5kZWFkQ2xpY2tzKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwuY3NzU2VsZWN0b3JBbGxvd2xpc3QpIT09bnVsbCYmaSE9PXZvaWQgMD9pOl9nLHU9KHI9dC5kYXRhQXR0cmlidXRlUHJlZml4KSE9PW51bGwmJnIhPT12b2lkIDA/cjpGYyxoPW5ldyBscih0KSxnPWooW10sVShuZXcgU2V0KGooaihbXSxVKGQpLCExKSxVKHMpLCExKSkpLCExKSxiPWZ1bmN0aW9uKCl7dmFyIEEsWD1wZCgicG9pbnRlcmRvd24iKS5waXBlKE5lKGZ1bmN0aW9uKFMpe3JldHVybiBoLmFkZEFkZGl0aW9uYWxFdmVudFByb3BlcnRpZXMoUywiY2xpY2siLGcsdSwhMCl9KSx4dCgpKSx5O3dpbmRvdy5uYXZpZ2F0aW9uJiYoeT1lbih3aW5kb3cubmF2aWdhdGlvbiwibmF2aWdhdGUiKS5waXBlKE5lKGZ1bmN0aW9uKFMpe3JldHVybiBoLmFkZEFkZGl0aW9uYWxFdmVudFByb3BlcnRpZXMoUywibmF2aWdhdGUiLGcsdSl9KSx4dCgpKSk7dmFyIEk9QWQoKS5waXBlKE5lKGZ1bmN0aW9uKFMpe3JldHVybiBoLmFkZEFkZGl0aW9uYWxFdmVudFByb3BlcnRpZXMoUywibXV0YXRpb24iLGcsdSl9KSx4dCgpKTtyZXR1cm4gQT17fSxBW2h0LkNsaWNrT2JzZXJ2YWJsZV09WCxBW2h0LkNoYW5nZU9ic2VydmFibGVdPW5ldyBFZSxBW2h0Lk5hdmlnYXRlT2JzZXJ2YWJsZV09eSxBW2h0Lk11dGF0aW9uT2JzZXJ2YWJsZV09SSxBfSxtPWZ1bmN0aW9uKEEsWCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeSxJLFMsRyxCLHY7cmV0dXJuIEModGhpcyxmdW5jdGlvbihKKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PiJ1Ij9bMl06KHk9cG4odCxkKSxJPXBuKHQscyksUz1iKCksRz1YMCh7YWxsT2JzZXJ2YWJsZXM6UyxhbXBsaXR1ZGU6WCxzaG91bGRUcmFja1JhZ2VDbGljazp5fSksYy5wdXNoKEcpLEI9cDAoe2FtcGxpdHVkZTpYLGFsbE9ic2VydmFibGVzOlMsZ2V0RXZlbnRQcm9wZXJ0aWVzOmZ1bmN0aW9uKHcsTCl7cmV0dXJuIGguZ2V0RXZlbnRQcm9wZXJ0aWVzKHcsTCx1KX0sc2hvdWxkVHJhY2tEZWFkQ2xpY2s6SX0pLGMucHVzaChCKSwodj1BPT1udWxsP3ZvaWQgMDpBLmxvZ2dlclByb3ZpZGVyKT09PW51bGx8fHY9PT12b2lkIDB8fHYubG9nKCIiLmNvbmNhdChvLCIgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkLiIpKSxbMl0pfSl9KX0sZj1mdW5jdGlvbihBKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24oWCl7cmV0dXJuWzIsQV19KX0pfSxwPWZ1bmN0aW9uKCl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQSxYLHksSSxTO3JldHVybiBDKHRoaXMsZnVuY3Rpb24oRyl7dHJ5e2ZvcihBPUQoYyksWD1BLm5leHQoKTshWC5kb25lO1g9QS5uZXh0KCkpeT1YLnZhbHVlLHkudW5zdWJzY3JpYmUoKX1jYXRjaChCKXtJPXtlcnJvcjpCfX1maW5hbGx5e3RyeXtYJiYhWC5kb25lJiYoUz1BLnJldHVybikmJlMuY2FsbChBKX1maW5hbGx5e2lmKEkpdGhyb3cgSS5lcnJvcn19cmV0dXJuWzJdfSl9KX07cmV0dXJue25hbWU6byx0eXBlOmEsc2V0dXA6bSxleGVjdXRlOmYsdGVhcmRvd246cH19LFIwPSJAYW1wbGl0dWRlL3BsdWdpbi1uZXR3b3JrLWNhcHR1cmUtYnJvd3NlciIsR2Q9IltBbXBsaXR1ZGVdIE5ldHdvcmsgUmVxdWVzdCIsWGQ9IjUwMC01OTkiO2Z1bmN0aW9uIHNsKHQsZSl7dmFyIG49ZS5yZXBsYWNlKC9bLVtcXXt9KCkrPy4sXFxeJHwjXHNdL2csIlxcJCYiKSxsPSJeIituLnJlcGxhY2UoL1wqL2csIi4qIikrIiQiLGk9bmV3IFJlZ0V4cChsKTtyZXR1cm4gaS50ZXN0KHQpfWZ1bmN0aW9uIElkKHQsZSl7dmFyIG4sbCxpPWUuc3BsaXQoIiwiKTt0cnl7Zm9yKHZhciByPUQoaSksbz1yLm5leHQoKTshby5kb25lO289ci5uZXh0KCkpe3ZhciBhPW8udmFsdWUsYz1VKGEuc3BsaXQoIi0iKS5tYXAoTnVtYmVyKSwyKSxkPWNbMF0scz1jWzFdO2lmKHQ9PT1kJiZzPT09dm9pZCAwfHx0Pj1kJiZ0PD1zKXJldHVybiEwfX1jYXRjaCh1KXtuPXtlcnJvcjp1fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobD1yLnJldHVybikmJmwuY2FsbChyKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuITF9ZnVuY3Rpb24gRTAodCxlLG4sbCxpKXtpZighKHQuaG9zdHMmJiF0Lmhvc3RzLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIHNsKGUsbyl9KSkmJiEobCYmdC51cmxzJiYhcGkobCx0LnVybHMpKSYmIShpJiZ0Lm1ldGhvZHMmJiF0Lm1ldGhvZHMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gaS50b0xvd2VyQ2FzZSgpPT09by50b0xvd2VyQ2FzZSgpfHxvPT09IioifSkpKXtpZihufHxuPT09MCl7dmFyIHI9dC5zdGF0dXNDb2RlUmFuZ2V8fFhkO2lmKCFJZChuLHIpKXJldHVybiExfXJldHVybiEwfX1mdW5jdGlvbiBSZCh0KXt2YXIgZTtpZih0KXRyeXt2YXIgbj0oZT1GZSgpKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUubG9jYXRpb24uaHJlZixsPW5ldyBVUkwodCxuKSxpPWwuc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCkscj1sLmhhc2gucmVwbGFjZSgiIyIsIiIpLG89bC5ocmVmLGE9bC5ob3N0O2wuaGFzaD0iIixsLnNlYXJjaD0iIjt2YXIgYz1sLmhyZWY7cmV0dXJue3F1ZXJ5OmksZnJhZ21lbnQ6cixocmVmOm8saHJlZldpdGhvdXRRdWVyeU9ySGFzaDpjLGhvc3Q6YX19Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiB5MCh0LGUpe2lmKHQuaW5jbHVkZXMoImFtcGxpdHVkZS5jb20iKSl0cnl7dmFyIG49ZS5ib2R5O2lmKHR5cGVvZiBuIT0ic3RyaW5nIilyZXR1cm4hMTt2YXIgbD1KU09OLnBhcnNlKG4pLGk9bC5ldmVudHM7aWYoaS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmV2ZW50X3R5cGU9PT1HZH0pKXJldHVybiEwfWNhdGNoe31yZXR1cm4hMX1mdW5jdGlvbiBPbyh0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXtpZih0KXJldHVybiBqKFtdLFUobWwpLCExKTtpZih0PT09dm9pZCAwKXt2YXIgZT12b2lkIDA7cmV0dXJuIGV9cmV0dXJufWlmKHQubGVuZ3RoIT09MClyZXR1cm4gdH1mdW5jdGlvbiBQbyh0KXt2YXIgZSxuO3JldHVybiEoISgoZT10PT1udWxsP3ZvaWQgMDp0LmFsbG93bGlzdCk9PT1udWxsfHxlPT09dm9pZCAwKSYmZS5sZW5ndGgpJiYhKCEoKG49dD09bnVsbD92b2lkIDA6dC5ibG9ja2xpc3QpPT09bnVsbHx8bj09PXZvaWQgMCkmJm4ubGVuZ3RoKX1mdW5jdGlvbiB2MCh0LGUpe3ZhciBuO2U9PT12b2lkIDAmJihlPXt9KTt2YXIgbD1SZCh0LnVybCk7aWYoIWwpcmV0dXJuITE7dmFyIGk9bC5ob3N0O2lmKGUuaWdub3JlQW1wbGl0dWRlUmVxdWVzdHMhPT0hMSYmKHNsKGksIiouYW1wbGl0dWRlLmNvbSIpfHxzbChpLCJhbXBsaXR1ZGUuY29tIikpfHwhKChuPWUuaWdub3JlSG9zdHMpPT09bnVsbHx8bj09PXZvaWQgMCkmJm4uZmluZChmdW5jdGlvbihvKXtyZXR1cm4gc2woaSxvKX0pfHwhZS5jYXB0dXJlUnVsZXMmJnQuc3RhdHVzIT09dm9pZCAwJiYhSWQodC5zdGF0dXMsWGQpKXJldHVybiExO2lmKGUuY2FwdHVyZVJ1bGVzKXt2YXIgcjtpZihqKFtdLFUoZS5jYXB0dXJlUnVsZXMpLCExKS5yZXZlcnNlKCkuZmluZChmdW5jdGlvbihvKXtpZihyPUUwKG8saSx0LnN0YXR1cyx0LnVybCx0Lm1ldGhvZCkscil7dmFyIGE9T28oby5yZXNwb25zZUhlYWRlcnMpO2lmKHQucmVzcG9uc2VXcmFwcGVyJiZhKXt2YXIgYz10LnJlc3BvbnNlV3JhcHBlci5oZWFkZXJzKGEpO2MmJih0LnJlc3BvbnNlSGVhZGVycz1jKX12YXIgZD1PbyhvLnJlcXVlc3RIZWFkZXJzKTtpZih0LnJlcXVlc3RXcmFwcGVyJiZkKXt2YXIgcz10LnJlcXVlc3RXcmFwcGVyLmhlYWRlcnMoZCk7cyYmKHQucmVxdWVzdEhlYWRlcnM9cyl9dC5yZXNwb25zZVdyYXBwZXImJm8ucmVzcG9uc2VCb2R5JiYhUG8oby5yZXNwb25zZUJvZHkpJiYodC5yZXNwb25zZUJvZHlKc29uPXQucmVzcG9uc2VXcmFwcGVyLmpzb24oby5yZXNwb25zZUJvZHkuYWxsb3dsaXN0LG8ucmVzcG9uc2VCb2R5LmJsb2NrbGlzdCkpLHQucmVxdWVzdFdyYXBwZXImJm8ucmVxdWVzdEJvZHkmJiFQbyhvLnJlcXVlc3RCb2R5KSYmKHQucmVxdWVzdEJvZHlKc29uPXQucmVxdWVzdFdyYXBwZXIuanNvbihvLnJlcXVlc3RCb2R5LmFsbG93bGlzdCxvLnJlcXVlc3RCb2R5LmJsb2NrbGlzdCkpfXJldHVybiByIT09dm9pZCAwfSksIXIpcmV0dXJuITF9cmV0dXJuISh0LnJlcXVlc3RXcmFwcGVyJiZ5MChpLHQucmVxdWVzdFdyYXBwZXIpKX1mdW5jdGlvbiBTMCh0LGUsbixsKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxyLG87cmV0dXJuIEModGhpcyxmdW5jdGlvbihhKXtzd2l0Y2goYS5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLnJlcXVlc3RCb2R5SnNvbnx8ZS5yZXNwb25zZUJvZHlKc29uP1s0LFByb21pc2UuYWxsKFtlLnJlcXVlc3RCb2R5SnNvbixlLnJlc3BvbnNlQm9keUpzb25dKV06WzMsMl07Y2FzZSAxOmlmKGk9VS5hcHBseSh2b2lkIDAsW2Euc2VudCgpLDJdKSxyPWlbMF0sbz1pWzFdLHIpdHJ5e3RbIltBbXBsaXR1ZGVdIFJlcXVlc3QgQm9keSJdPUpTT04uc3RyaW5naWZ5KHIpfWNhdGNoKGMpe2w9PW51bGx8fGwuZGVidWcoIkZhaWxlZCB0byBzdHJpbmdpZnkgcmVxdWVzdCBib2R5IixjKX1pZihvKXRyeXt0WyJbQW1wbGl0dWRlXSBSZXNwb25zZSBCb2R5Il09SlNPTi5zdHJpbmdpZnkobyl9Y2F0Y2h7bD09bnVsbHx8bC5kZWJ1ZygiRmFpbGVkIHRvIHN0cmluZ2lmeSByZXNwb25zZSBib2R5Iil9YS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gbj09bnVsbHx8bi50cmFjayhHZCx0KSxbMl19fSl9KX1mdW5jdGlvbiBDMCh0KXt2YXIgZT10LmFsbE9ic2VydmFibGVzLG49dC5uZXR3b3JrVHJhY2tpbmdPcHRpb25zLGw9dC5hbXBsaXR1ZGUsaT10LmxvZ2dlclByb3ZpZGVyLHI9ZS5uZXR3b3JrT2JzZXJ2YWJsZSxvPXIucGlwZShrZShmdW5jdGlvbihhKXtyZXR1cm4gdjAoYS5ldmVudCxuKX0pKTtyZXR1cm4gby5zdWJzY3JpYmUoZnVuY3Rpb24oYSl7dmFyIGMsZCxzLHU9YS5ldmVudCxoPVJkKHUudXJsKTtpZihoKXt2YXIgZz0oZD11LnJlc3BvbnNlV3JhcHBlcik9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmJvZHlTaXplLGI9KHM9dS5yZXF1ZXN0V3JhcHBlcik9PT1udWxsfHxzPT09dm9pZCAwP3ZvaWQgMDpzLmJvZHlTaXplLG09KGM9e30sY1siW0FtcGxpdHVkZV0gVVJMIl09aC5ocmVmV2l0aG91dFF1ZXJ5T3JIYXNoLGNbIltBbXBsaXR1ZGVdIFVSTCBRdWVyeSJdPWgucXVlcnksY1siW0FtcGxpdHVkZV0gVVJMIEZyYWdtZW50Il09aC5mcmFnbWVudCxjWyJbQW1wbGl0dWRlXSBSZXF1ZXN0IE1ldGhvZCJdPXUubWV0aG9kLGNbIltBbXBsaXR1ZGVdIFN0YXR1cyBDb2RlIl09dS5zdGF0dXMsY1siW0FtcGxpdHVkZV0gU3RhcnQgVGltZSJdPXUuc3RhcnRUaW1lLGNbIltBbXBsaXR1ZGVdIENvbXBsZXRpb24gVGltZSJdPXUuZW5kVGltZSxjWyJbQW1wbGl0dWRlXSBEdXJhdGlvbiJdPXUuZHVyYXRpb24sY1siW0FtcGxpdHVkZV0gUmVxdWVzdCBCb2R5IFNpemUiXT1iLGNbIltBbXBsaXR1ZGVdIFJlc3BvbnNlIEJvZHkgU2l6ZSJdPWcsY1siW0FtcGxpdHVkZV0gUmVxdWVzdCBUeXBlIl09dS50eXBlLGNbIltBbXBsaXR1ZGVdIFJlcXVlc3QgSGVhZGVycyJdPXUucmVxdWVzdEhlYWRlcnMsY1siW0FtcGxpdHVkZV0gUmVzcG9uc2UgSGVhZGVycyJdPXUucmVzcG9uc2VIZWFkZXJzLGMpO1MwKG0sdSxsLGkpfX0pfXZhciB5aTsoZnVuY3Rpb24odCl7dC5OZXR3b3JrT2JzZXJ2YWJsZT0ibmV0d29ya09ic2VydmFibGUifSkoeWl8fCh5aT17fSkpO3ZhciBXMD1mdW5jdGlvbih0KXt0PT09dm9pZCAwJiYodD17fSk7dmFyIGU9UjAsbj0iZW5yaWNobWVudCIsbCxpPVtdLHI9ZnVuY3Rpb24ocyx1KXt2YXIgaD17ZXZlbnQ6cyx0aW1lc3RhbXA6RGF0ZS5ub3coKSx0eXBlOnV9O3JldHVybiBofSxvPWZ1bmN0aW9uKCl7dmFyIHMsdT1uZXcgRWUoZnVuY3Rpb24oaCl7dmFyIGc9bmV3IGNoKGZ1bmN0aW9uKGIpe3ZhciBtPXIoYiwibmV0d29yayIpO2gubmV4dChtKX0pO3JldHVybiBhby5zdWJzY3JpYmUoZyxsKSxmdW5jdGlvbigpe2FvLnVuc3Vic2NyaWJlKGcpfX0pO3JldHVybiBzPXt9LHNbeWkuTmV0d29ya09ic2VydmFibGVdPXUsc30sYT1mdW5jdGlvbihzLHUpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGgsZztyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiP1syXTooaD1vKCksbD1zPT1udWxsP3ZvaWQgMDpzLmxvZ2dlclByb3ZpZGVyLGc9QzAoe2FsbE9ic2VydmFibGVzOmgsbmV0d29ya1RyYWNraW5nT3B0aW9uczp0LGFtcGxpdHVkZTp1LGxvZ2dlclByb3ZpZGVyOmx9KSxpLnB1c2goZyksbD09bnVsbHx8bC5sb2coIiIuY29uY2F0KGUsIiBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgYWRkZWQuIikpLFsyXSl9KX0pfSxjPWZ1bmN0aW9uKHMpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxmdW5jdGlvbih1KXtyZXR1cm5bMixzXX0pfSl9LGQ9ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzLHUsaCxnLGI7cmV0dXJuIEModGhpcyxmdW5jdGlvbihtKXt0cnl7Zm9yKHM9RChpKSx1PXMubmV4dCgpOyF1LmRvbmU7dT1zLm5leHQoKSloPXUudmFsdWUsaC51bnN1YnNjcmliZSgpfWNhdGNoKGYpe2c9e2Vycm9yOmZ9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihiPXMucmV0dXJuKSYmYi5jYWxsKHMpfWZpbmFsbHl7aWYoZyl0aHJvdyBnLmVycm9yfX1yZXR1cm5bMl19KX0pfTtyZXR1cm57bmFtZTplLHR5cGU6bixzZXR1cDphLGV4ZWN1dGU6Yyx0ZWFyZG93bjpkfX0sQjA9IndlYi12aXRhbHMtYnJvd3NlciIsTjA9IltBbXBsaXR1ZGVdIFdlYiBWaXRhbHMiO2xldCBFZD0tMTtjb25zdCBvbj10PT57YWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLChlPT57ZS5wZXJzaXN0ZWQmJihFZD1lLnRpbWVTdGFtcCx0KGUpKX0pLCEwKX0sbXQ9KHQsZSxuLGwpPT57bGV0IGkscjtyZXR1cm4gbz0+e2UudmFsdWU+PTAmJihvfHxsKSYmKHI9ZS52YWx1ZS0oaT8/MCksKHJ8fGk9PT12b2lkIDApJiYoaT1lLnZhbHVlLGUuZGVsdGE9cixlLnJhdGluZz0oKGEsYyk9PmE+Y1sxXT8icG9vciI6YT5jWzBdPyJuZWVkcy1pbXByb3ZlbWVudCI6Imdvb2QiKShlLnZhbHVlLG4pLHQoZSkpKX19LGlyPXQ9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50KCkpKSkpfSxycj0oKT0+e2NvbnN0IHQ9cGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdO2lmKHQmJnQucmVzcG9uc2VTdGFydD4wJiZ0LnJlc3BvbnNlU3RhcnQ8cGVyZm9ybWFuY2Uubm93KCkpcmV0dXJuIHR9LHduPSgpPT57Y29uc3QgdD1ycigpO3JldHVybih0PT1udWxsP3ZvaWQgMDp0LmFjdGl2YXRpb25TdGFydCk/PzB9LGZ0PSh0LGU9LTEpPT57Y29uc3Qgbj1ycigpO2xldCBsPSJuYXZpZ2F0ZSI7cmV0dXJuIEVkPj0wP2w9ImJhY2stZm9yd2FyZC1jYWNoZSI6biYmKGRvY3VtZW50LnByZXJlbmRlcmluZ3x8d24oKT4wP2w9InByZXJlbmRlciI6ZG9jdW1lbnQud2FzRGlzY2FyZGVkP2w9InJlc3RvcmUiOm4udHlwZSYmKGw9bi50eXBlLnJlcGxhY2UoL18vZywiLSIpKSkse25hbWU6dCx2YWx1ZTplLHJhdGluZzoiZ29vZCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2NS0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTJ9YCxuYXZpZ2F0aW9uVHlwZTpsfX0sbmk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gb3IodCxlKXtyZXR1cm4gbmkuZ2V0KHQpfHxuaS5zZXQodCxuZXcgZSksbmkuZ2V0KHQpfWxldCBGMD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3B0KHRoaXMsInQiKTtwdCh0aGlzLCJpIiwwKTtwdCh0aGlzLCJvIixbXSl9aChlKXt2YXIgaTtpZihlLmhhZFJlY2VudElucHV0KXJldHVybjtjb25zdCBuPXRoaXMub1swXSxsPXRoaXMuby5hdCgtMSk7dGhpcy5pJiZuJiZsJiZlLnN0YXJ0VGltZS1sLnN0YXJ0VGltZTwxZTMmJmUuc3RhcnRUaW1lLW4uc3RhcnRUaW1lPDVlMz8odGhpcy5pKz1lLnZhbHVlLHRoaXMuby5wdXNoKGUpKToodGhpcy5pPWUudmFsdWUsdGhpcy5vPVtlXSksKGk9dGhpcy50KT09bnVsbHx8aS5jYWxsKHRoaXMsZSl9fTtjb25zdCBrbj0odCxlLG49e30pPT57dHJ5e2lmKFBlcmZvcm1hbmNlT2JzZXJ2ZXIuc3VwcG9ydGVkRW50cnlUeXBlcy5pbmNsdWRlcyh0KSl7Y29uc3QgbD1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcigoaT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57ZShpLmdldEVudHJpZXMoKSl9KSl9KSk7cmV0dXJuIGwub2JzZXJ2ZSh7dHlwZTp0LGJ1ZmZlcmVkOiEwLC4uLm59KSxsfX1jYXRjaHt9fSxhcj10PT57bGV0IGU9ITE7cmV0dXJuKCk9PntlfHwodCgpLGU9ITApfX07bGV0IGp0PS0xO2NvbnN0IHlkPW5ldyBTZXQsJG89KCk9PmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSE9PSJoaWRkZW4ifHxkb2N1bWVudC5wcmVyZW5kZXJpbmc/MS8wOjAsdmk9dD0+e2lmKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iKXtpZih0LnR5cGU9PT0idmlzaWJpbGl0eWNoYW5nZSIpZm9yKGNvbnN0IGUgb2YgeWQpZSgpO2lzRmluaXRlKGp0KXx8KGp0PXQudHlwZT09PSJ2aXNpYmlsaXR5Y2hhbmdlIj90LnRpbWVTdGFtcDowLHJlbW92ZUV2ZW50TGlzdGVuZXIoInByZXJlbmRlcmluZ2NoYW5nZSIsdmksITApKX19LFlsPSgpPT57dmFyIHQ7aWYoanQ8MCl7Y29uc3QgZT13bigpO2p0PShkb2N1bWVudC5wcmVyZW5kZXJpbmd8fCh0PWdsb2JhbFRoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgidmlzaWJpbGl0eS1zdGF0ZSIpLmZpbHRlcigobD0+bC5uYW1lPT09ImhpZGRlbiImJmwuc3RhcnRUaW1lPmUpKVswXSk9PW51bGw/dm9pZCAwOnQuc3RhcnRUaW1lKT8/JG8oKSxhZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix2aSwhMCksYWRkRXZlbnRMaXN0ZW5lcigicHJlcmVuZGVyaW5nY2hhbmdlIix2aSwhMCksb24oKCgpPT57c2V0VGltZW91dCgoKCk9PntqdD0kbygpfSkpfSkpfXJldHVybntnZXQgZmlyc3RIaWRkZW5UaW1lKCl7cmV0dXJuIGp0fSxvbkhpZGRlbihlKXt5ZC5hZGQoZSl9fX0sVWw9dD0+e2RvY3VtZW50LnByZXJlbmRlcmluZz9hZGRFdmVudExpc3RlbmVyKCJwcmVyZW5kZXJpbmdjaGFuZ2UiLCgoKT0+dCgpKSwhMCk6dCgpfSxxbz1bMTgwMCwzZTNdLHZkPSh0LGU9e30pPT57VWwoKCgpPT57Y29uc3Qgbj1ZbCgpO2xldCBsLGk9ZnQoIkZDUCIpO2NvbnN0IHI9a24oInBhaW50Iiwobz0+e2Zvcihjb25zdCBhIG9mIG8pYS5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQiJiYoci5kaXNjb25uZWN0KCksYS5zdGFydFRpbWU8bi5maXJzdEhpZGRlblRpbWUmJihpLnZhbHVlPU1hdGgubWF4KGEuc3RhcnRUaW1lLXduKCksMCksaS5lbnRyaWVzLnB1c2goYSksbCghMCkpKX0pKTtyJiYobD1tdCh0LGkscW8sZS5yZXBvcnRBbGxDaGFuZ2VzKSxvbigobz0+e2k9ZnQoIkZDUCIpLGw9bXQodCxpLHFvLGUucmVwb3J0QWxsQ2hhbmdlcyksaXIoKCgpPT57aS52YWx1ZT1wZXJmb3JtYW5jZS5ub3coKS1vLnRpbWVTdGFtcCxsKCEwKX0pKX0pKSl9KSl9LGVhPVsuMSwuMjVdLFkwPSh0LGU9e30pPT57Y29uc3Qgbj1ZbCgpO3ZkKGFyKCgoKT0+e2xldCBsLGk9ZnQoIkNMUyIsMCk7Y29uc3Qgcj1vcihlLEYwKSxvPWM9Pntmb3IoY29uc3QgZCBvZiBjKXIuaChkKTtyLmk+aS52YWx1ZSYmKGkudmFsdWU9ci5pLGkuZW50cmllcz1yLm8sbCgpKX0sYT1rbigibGF5b3V0LXNoaWZ0IixvKTthJiYobD1tdCh0LGksZWEsZS5yZXBvcnRBbGxDaGFuZ2VzKSxuLm9uSGlkZGVuKCgoKT0+e28oYS50YWtlUmVjb3JkcygpKSxsKCEwKX0pKSxvbigoKCk9PntyLmk9MCxpPWZ0KCJDTFMiLDApLGw9bXQodCxpLGVhLGUucmVwb3J0QWxsQ2hhbmdlcyksaXIoKCgpPT5sKCkpKX0pKSxzZXRUaW1lb3V0KGwpKX0pKSl9O2xldCBTZD0wLGxpPTEvMCxPbj0wO2NvbnN0IFUwPXQ9Pntmb3IoY29uc3QgZSBvZiB0KWUuaW50ZXJhY3Rpb25JZCYmKGxpPU1hdGgubWluKGxpLGUuaW50ZXJhY3Rpb25JZCksT249TWF0aC5tYXgoT24sZS5pbnRlcmFjdGlvbklkKSxTZD1Pbj8oT24tbGkpLzcrMTowKX07bGV0IFNpO2NvbnN0IHRhPSgpPT5TaT9TZDpwZXJmb3JtYW5jZS5pbnRlcmFjdGlvbkNvdW50Pz8wLEowPSgpPT57ImludGVyYWN0aW9uQ291bnQiaW4gcGVyZm9ybWFuY2V8fFNpfHwoU2k9a24oImV2ZW50IixVMCx7dHlwZToiZXZlbnQiLGJ1ZmZlcmVkOiEwLGR1cmF0aW9uVGhyZXNob2xkOjB9KSl9O2xldCBuYT0wLHgwPWNsYXNze2NvbnN0cnVjdG9yKCl7cHQodGhpcywidSIsW10pO3B0KHRoaXMsImwiLG5ldyBNYXApO3B0KHRoaXMsIm0iKTtwdCh0aGlzLCJwIil9digpe25hPXRhKCksdGhpcy51Lmxlbmd0aD0wLHRoaXMubC5jbGVhcigpfUwoKXtjb25zdCBlPU1hdGgubWluKHRoaXMudS5sZW5ndGgtMSxNYXRoLmZsb29yKCh0YSgpLW5hKS81MCkpO3JldHVybiB0aGlzLnVbZV19aChlKXt2YXIgaSxyO2lmKChpPXRoaXMubSk9PW51bGx8fGkuY2FsbCh0aGlzLGUpLCFlLmludGVyYWN0aW9uSWQmJmUuZW50cnlUeXBlIT09ImZpcnN0LWlucHV0IilyZXR1cm47Y29uc3Qgbj10aGlzLnUuYXQoLTEpO2xldCBsPXRoaXMubC5nZXQoZS5pbnRlcmFjdGlvbklkKTtpZihsfHx0aGlzLnUubGVuZ3RoPDEwfHxlLmR1cmF0aW9uPm4uUCl7aWYobD9lLmR1cmF0aW9uPmwuUD8obC5lbnRyaWVzPVtlXSxsLlA9ZS5kdXJhdGlvbik6ZS5kdXJhdGlvbj09PWwuUCYmZS5zdGFydFRpbWU9PT1sLmVudHJpZXNbMF0uc3RhcnRUaW1lJiZsLmVudHJpZXMucHVzaChlKToobD17aWQ6ZS5pbnRlcmFjdGlvbklkLGVudHJpZXM6W2VdLFA6ZS5kdXJhdGlvbn0sdGhpcy5sLnNldChsLmlkLGwpLHRoaXMudS5wdXNoKGwpKSx0aGlzLnUuc29ydCgoKG8sYSk9PmEuUC1vLlApKSx0aGlzLnUubGVuZ3RoPjEwKXtjb25zdCBvPXRoaXMudS5zcGxpY2UoMTApO2Zvcihjb25zdCBhIG9mIG8pdGhpcy5sLmRlbGV0ZShhLmlkKX0ocj10aGlzLnApPT1udWxsfHxyLmNhbGwodGhpcyxsKX19fTtjb25zdCBDZD10PT57Y29uc3QgZT1nbG9iYWxUaGlzLnJlcXVlc3RJZGxlQ2FsbGJhY2t8fHNldFRpbWVvdXQ7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09ImhpZGRlbiI/dCgpOih0PWFyKHQpLGFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQse29uY2U6ITAsY2FwdHVyZTohMH0pLGUoKCgpPT57dCgpLHJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQse2NhcHR1cmU6ITB9KX0pKSl9LGxhPVsyMDAsNTAwXSx3MD0odCxlPXt9KT0+e2lmKCFnbG9iYWxUaGlzLlBlcmZvcm1hbmNlRXZlbnRUaW1pbmd8fCEoImludGVyYWN0aW9uSWQiaW4gUGVyZm9ybWFuY2VFdmVudFRpbWluZy5wcm90b3R5cGUpKXJldHVybjtjb25zdCBuPVlsKCk7VWwoKCgpPT57SjAoKTtsZXQgbCxpPWZ0KCJJTlAiKTtjb25zdCByPW9yKGUseDApLG89Yz0+e0NkKCgoKT0+e2Zvcihjb25zdCBzIG9mIGMpci5oKHMpO2NvbnN0IGQ9ci5MKCk7ZCYmZC5QIT09aS52YWx1ZSYmKGkudmFsdWU9ZC5QLGkuZW50cmllcz1kLmVudHJpZXMsbCgpKX0pKX0sYT1rbigiZXZlbnQiLG8se2R1cmF0aW9uVGhyZXNob2xkOmUuZHVyYXRpb25UaHJlc2hvbGQ/PzQwfSk7bD1tdCh0LGksbGEsZS5yZXBvcnRBbGxDaGFuZ2VzKSxhJiYoYS5vYnNlcnZlKHt0eXBlOiJmaXJzdC1pbnB1dCIsYnVmZmVyZWQ6ITB9KSxuLm9uSGlkZGVuKCgoKT0+e28oYS50YWtlUmVjb3JkcygpKSxsKCEwKX0pKSxvbigoKCk9PntyLnYoKSxpPWZ0KCJJTlAiKSxsPW10KHQsaSxsYSxlLnJlcG9ydEFsbENoYW5nZXMpfSkpKX0pKX07bGV0IGswPWNsYXNze2NvbnN0cnVjdG9yKCl7cHQodGhpcywibSIpfWgoZSl7dmFyIG47KG49dGhpcy5tKT09bnVsbHx8bi5jYWxsKHRoaXMsZSl9fTtjb25zdCBpYT1bMjUwMCw0ZTNdLHowPSh0LGU9e30pPT57VWwoKCgpPT57Y29uc3Qgbj1ZbCgpO2xldCBsLGk9ZnQoIkxDUCIpO2NvbnN0IHI9b3IoZSxrMCksbz1jPT57ZS5yZXBvcnRBbGxDaGFuZ2VzfHwoYz1jLnNsaWNlKC0xKSk7Zm9yKGNvbnN0IGQgb2YgYylyLmgoZCksZC5zdGFydFRpbWU8bi5maXJzdEhpZGRlblRpbWUmJihpLnZhbHVlPU1hdGgubWF4KGQuc3RhcnRUaW1lLXduKCksMCksaS5lbnRyaWVzPVtkXSxsKCkpfSxhPWtuKCJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnQiLG8pO2lmKGEpe2w9bXQodCxpLGlhLGUucmVwb3J0QWxsQ2hhbmdlcyk7Y29uc3QgYz1hcigoKCk9PntvKGEudGFrZVJlY29yZHMoKSksYS5kaXNjb25uZWN0KCksbCghMCl9KSksZD1zPT57cy5pc1RydXN0ZWQmJihDZChjKSxyZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxkLHtjYXB0dXJlOiEwfSkpfTtmb3IoY29uc3QgcyBvZlsia2V5ZG93biIsImNsaWNrIiwidmlzaWJpbGl0eWNoYW5nZSJdKWFkZEV2ZW50TGlzdGVuZXIocyxkLHtjYXB0dXJlOiEwfSk7b24oKHM9PntpPWZ0KCJMQ1AiKSxsPW10KHQsaSxpYSxlLnJlcG9ydEFsbENoYW5nZXMpLGlyKCgoKT0+e2kudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktcy50aW1lU3RhbXAsbCghMCl9KSl9KSl9fSkpfSxyYT1bODAwLDE4MDBdLENpPXQ9Pntkb2N1bWVudC5wcmVyZW5kZXJpbmc/VWwoKCgpPT5DaSh0KSkpOmRvY3VtZW50LnJlYWR5U3RhdGUhPT0iY29tcGxldGUiP2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgoKT0+Q2kodCkpLCEwKTpzZXRUaW1lb3V0KHQpfSxRMD0odCxlPXt9KT0+e2xldCBuPWZ0KCJUVEZCIiksbD1tdCh0LG4scmEsZS5yZXBvcnRBbGxDaGFuZ2VzKTtDaSgoKCk9Pntjb25zdCBpPXJyKCk7aSYmKG4udmFsdWU9TWF0aC5tYXgoaS5yZXNwb25zZVN0YXJ0LXduKCksMCksbi5lbnRyaWVzPVtpXSxsKCEwKSxvbigoKCk9PntuPWZ0KCJUVEZCIiwwKSxsPW10KHQsbixyYSxlLnJlcG9ydEFsbENoYW5nZXMpLGwoITApfSkpKX0pKX07ZnVuY3Rpb24gTDAodCl7dmFyIGUsbj0oKGU9dC5lbnRyaWVzWzBdKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuc3RhcnRUaW1lKXx8MDtyZXR1cm4gcGVyZm9ybWFuY2UudGltZU9yaWdpbitufWZ1bmN0aW9uIHVuKHQpe3JldHVybnt2YWx1ZTp0LnZhbHVlLHJhdGluZzp0LnJhdGluZyxkZWx0YTp0LmRlbHRhLG5hdmlnYXRpb25UeXBlOnQubmF2aWdhdGlvblR5cGUsaWQ6dC5pZCx0aW1lc3RhbXA6TWF0aC5mbG9vcihMMCh0KSksbmF2aWdhdGlvblN0YXJ0Ok1hdGguZmxvb3IocGVyZm9ybWFuY2UudGltZU9yaWdpbil9fXZhciBLMD1mdW5jdGlvbigpe3ZhciB0PW51bGwsZT1GZSgpLG49ZT09bnVsbD92b2lkIDA6ZS5kb2N1bWVudCxsPWU9PW51bGw/dm9pZCAwOmUubG9jYXRpb24saT1mdW5jdGlvbihhLGMpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGQscyx1O3JldHVybiBDKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuIGQ9ZnVuY3Rpb24oZyl7dmFyIGI7aWYoIWcpcmV0dXJuIiI7dmFyIG09Zzt0cnl7bT1kZWNvZGVVUkkoZyl9Y2F0Y2goZil7KGI9YS5sb2dnZXJQcm92aWRlcik9PT1udWxsfHxiPT09dm9pZCAwfHxiLmVycm9yKCJNYWxmb3JtZWQgVVJJIHNlcXVlbmNlOiAiLGYpfXJldHVybiBtfSxuPT09dm9pZCAwP1syXToocz1kKGw9PW51bGw/dm9pZCAwOmwuaHJlZiksdT17IltBbXBsaXR1ZGVdIFBhZ2UgRG9tYWluIjoobD09bnVsbD92b2lkIDA6bC5ob3N0bmFtZSl8fCIiLCJbQW1wbGl0dWRlXSBQYWdlIExvY2F0aW9uIjpzLCJbQW1wbGl0dWRlXSBQYWdlIFBhdGgiOmQobD09bnVsbD92b2lkIDA6bC5wYXRobmFtZSksIltBbXBsaXR1ZGVdIFBhZ2UgVGl0bGUiOnR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LnRpdGxlfHwiIiwiW0FtcGxpdHVkZV0gUGFnZSBVUkwiOnMuc3BsaXQoIj8iKVswXX0sejAoZnVuY3Rpb24oZyl7dVsiW0FtcGxpdHVkZV0gTENQIl09dW4oZyl9KSx2ZChmdW5jdGlvbihnKXt1WyJbQW1wbGl0dWRlXSBGQ1AiXT11bihnKX0pLHcwKGZ1bmN0aW9uKGcpe3VbIltBbXBsaXR1ZGVdIElOUCJdPXVuKGcpfSksWTAoZnVuY3Rpb24oZyl7dVsiW0FtcGxpdHVkZV0gQ0xTIl09dW4oZyl9KSxRMChmdW5jdGlvbihnKXt1WyJbQW1wbGl0dWRlXSBUVEZCIl09dW4oZyl9KSx0PWZ1bmN0aW9uKCl7bi52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIiYmdCYmKGMudHJhY2soTjAsdSksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0KSx0PW51bGwpfSxuLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQpLFsyXSl9KX0pfSxyPWZ1bmN0aW9uKGEpe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxmdW5jdGlvbihjKXtyZXR1cm5bMixhXX0pfSl9LG89ZnVuY3Rpb24oKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBDKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuIHQmJihuPT1udWxsfHxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQpKSxbMl19KX0pfTtyZXR1cm57bmFtZTpCMCx0eXBlOiJlbnJpY2htZW50IixzZXR1cDppLGV4ZWN1dGU6cix0ZWFyZG93bjpvfX0sb2E9ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiLiIpO3JldHVybiBlLmxlbmd0aDw9Mj90OmUuc2xpY2UoZS5sZW5ndGgtMixlLmxlbmd0aCkuam9pbigiLiIpfSxUMD1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0KS5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4hZX0pfSxNMD1mdW5jdGlvbih0LGUsbixsLGkpe2k9PT12b2lkIDAmJihpPSEwKSx0LnJlZmVycmVyO3ZhciByPXQucmVmZXJyaW5nX2RvbWFpbixvPWZpKHQsWyJyZWZlcnJlciIsInJlZmVycmluZ19kb21haW4iXSksYT1lfHx7fTthLnJlZmVycmVyO3ZhciBjPWEucmVmZXJyaW5nX2RvbWFpbixkPWZpKGEsWyJyZWZlcnJlciIsInJlZmVycmluZ19kb21haW4iXSk7aWYoSDAobi5leGNsdWRlUmVmZXJyZXJzLHQucmVmZXJyaW5nX2RvbWFpbikpcmV0dXJuIGwuZGVidWcoIlRoaXMgaXMgbm90IGEgbmV3IGNhbXBhaWduIGJlY2F1c2UgIi5jb25jYXQodC5yZWZlcnJpbmdfZG9tYWluLCIgaXMgaW4gdGhlIGV4Y2x1ZGUgcmVmZXJyZXIgbGlzdC4iKSksITE7aWYoIWkmJlQwKHQpJiZlKXJldHVybiBsLmRlYnVnKCJUaGlzIGlzIG5vdCBhIG5ldyBjYW1wYWlnbiBiZWNhdXNlIHRoaXMgaXMgYSBkaXJlY3QgdHJhZmZpYyBpbiB0aGUgc2FtZSBzZXNzaW9uLiIpLCExO3ZhciBzPUpTT04uc3RyaW5naWZ5KG8pIT09SlNPTi5zdHJpbmdpZnkoZCksdT1vYShyfHwiIikhPT1vYShjfHwiIiksaD0hZXx8c3x8dTtyZXR1cm4gaD9sLmRlYnVnKCJUaGlzIGlzIGEgbmV3IGNhbXBhaWduLiBBbiAkaWRlbnRpZnkgZXZlbnQgd2lsbCBiZSBzZW50LiIpOmwuZGVidWcoIlRoaXMgaXMgbm90IGEgbmV3IGNhbXBhaWduIGJlY2F1c2UgaXQncyB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgb25lLiIpLGh9LEgwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PVtdKSxlPT09dm9pZCAwJiYoZT0iIiksdC5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgUmVnRXhwP24udGVzdChlKTpuPT09ZX0pfSxEMD1mdW5jdGlvbih0LGUpe3ZhciBuPU4oTih7fSxNaSksdCksbD1PYmplY3QuZW50cmllcyhuKS5yZWR1Y2UoZnVuY3Rpb24oaSxyKXt2YXIgbyxhPVUociwyKSxjPWFbMF0sZD1hWzFdO3JldHVybiBpLnNldE9uY2UoImluaXRpYWxfIi5jb25jYXQoYyksKG89ZD8/ZS5pbml0aWFsRW1wdHlWYWx1ZSkhPT1udWxsJiZvIT09dm9pZCAwP286IkVNUFRZIiksZD9pLnNldChjLGQpOmkudW5zZXQoYyl9LG5ldyBxdCk7cmV0dXJuIHZjKGwpfSxqMD1mdW5jdGlvbih0KXt2YXIgZT10O3JldHVybiBlPyhlLnN0YXJ0c1dpdGgoIi4iKSYmKGU9ZS5zdWJzdHJpbmcoMSkpLFtuZXcgUmVnRXhwKCIiLmNvbmNhdChlLnJlcGxhY2UoIi4iLCJcXC4iKSwiJCIpKV0pOltdfSxfMD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7dmFyIGw7dGhpcy5zaG91bGRUcmFja05ld0NhbXBhaWduPSExLHRoaXMub3B0aW9ucz1OKHtpbml0aWFsRW1wdHlWYWx1ZToiRU1QVFkiLHJlc2V0U2Vzc2lvbk9uTmV3Q2FtcGFpZ246ITEsZXhjbHVkZVJlZmVycmVyczpqMCgobD1uLmNvb2tpZU9wdGlvbnMpPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC5kb21haW4pfSxlKSx0aGlzLnN0b3JhZ2U9bi5jb29raWVTdG9yYWdlLHRoaXMuc3RvcmFnZUtleT1sbyhuLmFwaUtleSwiTUtURyIpLHRoaXMud2ViRXhwU3RvcmFnZUtleT1sbyhuLmFwaUtleSwiTUtUR19PUklHSU5BTCIpLHRoaXMuY3VycmVudENhbXBhaWduPU1pLHRoaXMuc2Vzc2lvblRpbWVvdXQ9bi5zZXNzaW9uVGltZW91dCx0aGlzLmxhc3RFdmVudFRpbWU9bi5sYXN0RXZlbnRUaW1lLHRoaXMubG9nZ2VyPW4ubG9nZ2VyUHJvdmlkZXIsbi5sb2dnZXJQcm92aWRlci5sb2coIkluc3RhbGxpbmcgd2ViIGF0dHJpYnV0aW9uIHRyYWNraW5nLiIpfXJldHVybiB0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gQyh0aGlzLGZ1bmN0aW9uKGwpe3N3aXRjaChsLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaENhbXBhaWduKCldO2Nhc2UgMTpyZXR1cm4gbj1VLmFwcGx5KHZvaWQgMCxbbC5zZW50KCksMl0pLHRoaXMuY3VycmVudENhbXBhaWduPW5bMF0sdGhpcy5wcmV2aW91c0NhbXBhaWduPW5bMV0sZT10aGlzLmxhc3RFdmVudFRpbWU/V2ModGhpcy5zZXNzaW9uVGltZW91dCx0aGlzLmxhc3RFdmVudFRpbWUpOiEwLE0wKHRoaXMuY3VycmVudENhbXBhaWduLHRoaXMucHJldmlvdXNDYW1wYWlnbix0aGlzLm9wdGlvbnMsdGhpcy5sb2dnZXIsZSk/KHRoaXMuc2hvdWxkVHJhY2tOZXdDYW1wYWlnbj0hMCxbNCx0aGlzLnN0b3JhZ2Uuc2V0KHRoaXMuc3RvcmFnZUtleSx0aGlzLmN1cnJlbnRDYW1wYWlnbildKTpbMywzXTtjYXNlIDI6bC5zZW50KCksbC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0sdC5wcm90b3R5cGUuZmV0Y2hDYW1wYWlnbj1mdW5jdGlvbigpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnN0b3JhZ2UuZ2V0KHRoaXMud2ViRXhwU3RvcmFnZUtleSldO2Nhc2UgMTpyZXR1cm4gZT1uLnNlbnQoKSxlP1s0LHRoaXMuc3RvcmFnZS5yZW1vdmUodGhpcy53ZWJFeHBTdG9yYWdlS2V5KV06WzMsM107Y2FzZSAyOm4uc2VudCgpLG4ubGFiZWw9MztjYXNlIDM6cmV0dXJuWzQsUHJvbWlzZS5hbGwoW2V8fG5ldyBzaCgpLnBhcnNlKCksdGhpcy5zdG9yYWdlLmdldCh0aGlzLnN0b3JhZ2VLZXkpXSldO2Nhc2UgNDpyZXR1cm5bMixuLnNlbnQoKV19fSl9KX0sdC5wcm90b3R5cGUuZ2VuZXJhdGVDYW1wYWlnbkV2ZW50PWZ1bmN0aW9uKGUpe3RoaXMuc2hvdWxkVHJhY2tOZXdDYW1wYWlnbj0hMTt2YXIgbj1EMCh0aGlzLmN1cnJlbnRDYW1wYWlnbix0aGlzLm9wdGlvbnMpO3JldHVybiBlJiYobi5ldmVudF9pZD1lKSxufSx0LnByb3RvdHlwZS5zaG91bGRTZXRTZXNzaW9uSWRPbk5ld0NhbXBhaWduPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hvdWxkVHJhY2tOZXdDYW1wYWlnbiYmISF0aGlzLm9wdGlvbnMucmVzZXRTZXNzaW9uT25OZXdDYW1wYWlnbn0sdH0pKCksTzA9KGZ1bmN0aW9uKHQpe01lKGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24obixsLGkpe249PT12b2lkIDAmJihuPSIiKTt2YXIgcixvO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjI/KHI9bCxvPWkpOnR5cGVvZiBsPT0ic3RyaW5nIj8ocj1sLG89dm9pZCAwKToocj1sPT1udWxsP3ZvaWQgMDpsLnVzZXJJZCxvPWwpLE9lKHRoaXMuX2luaXQoTihOKHt9LG8pLHt1c2VySWQ6cixhcGlLZXk6bn0pKSl9LGUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKG4pe3ZhciBsLGkscjtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxhLGMsZCxzLHUsaCxnPXRoaXM7cmV0dXJuIEModGhpcyxmdW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmluaXRpYWxpemluZz9bMl06KHRoaXMuaW5pdGlhbGl6aW5nPSEwLFs0LHhoKG4uYXBpS2V5LG4sdGhpcyldKTtjYXNlIDE6cmV0dXJuIG89Yi5zZW50KCksby5mZXRjaFJlbW90ZUNvbmZpZz8odGhpcy5yZW1vdGVDb25maWdDbGllbnQ9bmV3IEFnKG8uYXBpS2V5LG8ubG9nZ2VyUHJvdmlkZXIsby5zZXJ2ZXJab25lKSxbNCxuZXcgUHJvbWlzZShmdW5jdGlvbihtKXt2YXIgZjsoZj1nLnJlbW90ZUNvbmZpZ0NsaWVudCk9PT1udWxsfHxmPT09dm9pZCAwfHxmLnN1YnNjcmliZSgiY29uZmlncy5hbmFseXRpY3NTREsuYnJvd3NlclNESyIsImFsbCIsZnVuY3Rpb24ocCxBLFgpe28ubG9nZ2VyUHJvdmlkZXIuZGVidWcoIlJlbW90ZSBjb25maWd1cmF0aW9uIHJlY2VpdmVkOiIsSlNPTi5zdHJpbmdpZnkoe3JlbW90ZUNvbmZpZzpwLHNvdXJjZTpBLGxhc3RGZXRjaDpYfSxudWxsLDIpKSxwJiZsYihwLG8pLG0oKX0pfSldKTpbMywzXTtjYXNlIDI6Yi5zZW50KCksYi5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bNCx0LnByb3RvdHlwZS5faW5pdC5jYWxsKHRoaXMsbyldO2Nhc2UgNDpyZXR1cm4gYi5zZW50KCksdGhpcy5sb2dCcm93c2VyT3B0aW9ucyhvKSx3Yyh0aGlzLmNvbmZpZy5kZWZhdWx0VHJhY2tpbmcpPyhhPUFoKHRoaXMuY29uZmlnKSx0aGlzLndlYkF0dHJpYnV0aW9uPW5ldyBfMChhLHRoaXMuY29uZmlnKSxbNCx0aGlzLndlYkF0dHJpYnV0aW9uLmluaXQoKV0pOlszLDZdO2Nhc2UgNTpiLnNlbnQoKSxiLmxhYmVsPTY7Y2FzZSA2OnJldHVybiBjPWZsKCksZD1jLmFtcFRpbWVzdGFtcD9OdW1iZXIoYy5hbXBUaW1lc3RhbXApOnZvaWQgMCxzPWQ/RGF0ZS5ub3coKTxkOiEwLHU9cyYmIU51bWJlci5pc05hTihOdW1iZXIoYy5hbXBTZXNzaW9uSWQpKT9OdW1iZXIoYy5hbXBTZXNzaW9uSWQpOnZvaWQgMCx0aGlzLnNldFNlc3Npb25JZCgocj0oaT0obD1uLnNlc3Npb25JZCkhPT1udWxsJiZsIT09dm9pZCAwP2w6dSkhPT1udWxsJiZpIT09dm9pZCAwP2k6dGhpcy5jb25maWcuc2Vzc2lvbklkKSE9PW51bGwmJnIhPT12b2lkIDA/cjpEYXRlLm5vdygpKSxoPUVuKG4uaW5zdGFuY2VOYW1lKSxoLmlkZW50aXR5U3RvcmUuc2V0SWRlbnRpdHkoe3VzZXJJZDp0aGlzLmNvbmZpZy51c2VySWQsZGV2aWNlSWQ6dGhpcy5jb25maWcuZGV2aWNlSWR9KSx0aGlzLmNvbmZpZy5vZmZsaW5lPT09TWc/WzMsOF06WzQsdGhpcy5hZGQobmIoKSkucHJvbWlzZV07Y2FzZSA3OmIuc2VudCgpLGIubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzQsdGhpcy5hZGQobmV3IEVnKS5wcm9taXNlXTtjYXNlIDk6cmV0dXJuIGIuc2VudCgpLFs0LHRoaXMuYWRkKG5ldyBYaCkucHJvbWlzZV07Y2FzZSAxMDpyZXR1cm4gYi5zZW50KCksWzQsdGhpcy5hZGQobmV3IEpnKS5wcm9taXNlXTtjYXNlIDExOnJldHVybiBiLnNlbnQoKSx0Yih0aGlzLmNvbmZpZyksdWgodGhpcy5jb25maWcuZGVmYXVsdFRyYWNraW5nKT8odGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZGVidWcoIkFkZGluZyBmaWxlIGRvd25sb2FkIHRyYWNraW5nIHBsdWdpbiIpLFs0LHRoaXMuYWRkKGViKCkpLnByb21pc2VdKTpbMywxM107Y2FzZSAxMjpiLnNlbnQoKSxiLmxhYmVsPTEzO2Nhc2UgMTM6cmV0dXJuIGdoKHRoaXMuY29uZmlnLmRlZmF1bHRUcmFja2luZyk/KHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJBZGRpbmcgZm9ybSBpbnRlcmFjdGlvbiBwbHVnaW4iKSxbNCx0aGlzLmFkZChxaCgpKS5wcm9taXNlXSk6WzMsMTVdO2Nhc2UgMTQ6Yi5zZW50KCksYi5sYWJlbD0xNTtjYXNlIDE1OnJldHVybiBrYyh0aGlzLmNvbmZpZy5kZWZhdWx0VHJhY2tpbmcpPyh0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5kZWJ1ZygiQWRkaW5nIHBhZ2UgdmlldyB0cmFja2luZyBwbHVnaW4iKSxbNCx0aGlzLmFkZChfaChmaCh0aGlzLmNvbmZpZykpKS5wcm9taXNlXSk6WzMsMTddO2Nhc2UgMTY6Yi5zZW50KCksYi5sYWJlbD0xNztjYXNlIDE3OnJldHVybiBRYyh0aGlzLmNvbmZpZy5hdXRvY2FwdHVyZSk/KHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJBZGRpbmcgdXNlciBpbnRlcmFjdGlvbnMgcGx1Z2luIChhdXRvY2FwdHVyZSBwbHVnaW4pIiksWzQsdGhpcy5hZGQoQTAoYmgodGhpcy5jb25maWcpKSkucHJvbWlzZV0pOlszLDE5XTtjYXNlIDE4OmIuc2VudCgpLGIubGFiZWw9MTk7Y2FzZSAxOTpyZXR1cm4gTGModGhpcy5jb25maWcuYXV0b2NhcHR1cmUpPyh0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5kZWJ1ZygiQWRkaW5nIGZydXN0cmF0aW9uIGludGVyYWN0aW9ucyBwbHVnaW4iKSxbNCx0aGlzLmFkZChJMChWaCh0aGlzLmNvbmZpZykpKS5wcm9taXNlXSk6WzMsMjFdO2Nhc2UgMjA6Yi5zZW50KCksYi5sYWJlbD0yMTtjYXNlIDIxOnJldHVybiB6Yyh0aGlzLmNvbmZpZy5hdXRvY2FwdHVyZSk/KHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJBZGRpbmcgbmV0d29yayB0cmFja2luZyBwbHVnaW4iKSxbNCx0aGlzLmFkZChXMChtaCh0aGlzLmNvbmZpZykpKS5wcm9taXNlXSk6WzMsMjNdO2Nhc2UgMjI6Yi5zZW50KCksYi5sYWJlbD0yMztjYXNlIDIzOnJldHVybiBoaCh0aGlzLmNvbmZpZy5hdXRvY2FwdHVyZSk/KHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJBZGRpbmcgd2ViIHZpdGFscyBwbHVnaW4iKSxbNCx0aGlzLmFkZChLMCgpKS5wcm9taXNlXSk6WzMsMjVdO2Nhc2UgMjQ6Yi5zZW50KCksYi5sYWJlbD0yNTtjYXNlIDI1OnJldHVybiB0aGlzLmluaXRpYWxpemluZz0hMSxbNCx0aGlzLnJ1blF1ZXVlZEZ1bmN0aW9ucygiZGlzcGF0Y2hRIildO2Nhc2UgMjY6cmV0dXJuIGIuc2VudCgpLGguZXZlbnRCcmlkZ2Uuc2V0RXZlbnRSZWNlaXZlcihmdW5jdGlvbihtKXtnLnRyYWNrKG0uZXZlbnRUeXBlLG0uZXZlbnRQcm9wZXJ0aWVzKX0pLFsyXX19KX0pfSxlLnByb3RvdHlwZS5nZXRVc2VySWQ9ZnVuY3Rpb24oKXt2YXIgbjtyZXR1cm4obj10aGlzLmNvbmZpZyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnVzZXJJZH0sZS5wcm90b3R5cGUuc2V0VXNlcklkPWZ1bmN0aW9uKG4pe2lmKCF0aGlzLmNvbmZpZyl7dGhpcy5xLnB1c2godGhpcy5zZXRVc2VySWQuYmluZCh0aGlzLG4pKTtyZXR1cm59dGhpcy5jb25maWcubG9nZ2VyUHJvdmlkZXIuZGVidWcoImZ1bmN0aW9uIHNldFVzZXJJZDogIixuKSwobiE9PXRoaXMuY29uZmlnLnVzZXJJZHx8bj09PXZvaWQgMCkmJih0aGlzLmNvbmZpZy51c2VySWQ9bix0aGlzLnRpbWVsaW5lLm9uSWRlbnRpdHlDaGFuZ2VkKHt1c2VySWQ6bn0pLFlnKG4sdGhpcy5jb25maWcuaW5zdGFuY2VOYW1lKSl9LGUucHJvdG90eXBlLmdldERldmljZUlkPWZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuKG49dGhpcy5jb25maWcpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5kZXZpY2VJZH0sZS5wcm90b3R5cGUuc2V0RGV2aWNlSWQ9ZnVuY3Rpb24obil7aWYoIXRoaXMuY29uZmlnKXt0aGlzLnEucHVzaCh0aGlzLnNldERldmljZUlkLmJpbmQodGhpcyxuKSk7cmV0dXJufXRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmRlYnVnKCJmdW5jdGlvbiBzZXREZXZpY2VJZDogIixuKSxuIT09dGhpcy5jb25maWcuZGV2aWNlSWQmJih0aGlzLmNvbmZpZy5kZXZpY2VJZD1uLHRoaXMudGltZWxpbmUub25JZGVudGl0eUNoYW5nZWQoe2RldmljZUlkOm59KSxVZyhuLHRoaXMuY29uZmlnLmluc3RhbmNlTmFtZSkpfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuc2V0RGV2aWNlSWQoV3QoKSksdGhpcy5zZXRVc2VySWQodm9pZCAwKX0sZS5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXt2YXIgbixsO3JldHVybntkZXZpY2VJZDoobj10aGlzLmNvbmZpZyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmRldmljZUlkLHVzZXJJZDoobD10aGlzLmNvbmZpZyk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnVzZXJJZCx1c2VyUHJvcGVydGllczp0aGlzLnVzZXJQcm9wZXJ0aWVzfX0sZS5wcm90b3R5cGUuZ2V0T3B0T3V0PWZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuKG49dGhpcy5jb25maWcpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vcHRPdXR9LGUucHJvdG90eXBlLmdldFNlc3Npb25JZD1mdW5jdGlvbigpe3ZhciBuO3JldHVybihuPXRoaXMuY29uZmlnKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uc2Vzc2lvbklkfSxlLnByb3RvdHlwZS5zZXRTZXNzaW9uSWQ9ZnVuY3Rpb24obil7dmFyIGwsaT1bXTtpZighdGhpcy5jb25maWcpcmV0dXJuIHRoaXMucS5wdXNoKHRoaXMuc2V0U2Vzc2lvbklkLmJpbmQodGhpcyxuKSksT2UoUHJvbWlzZS5yZXNvbHZlKCkpO2lmKG49PT10aGlzLmNvbmZpZy5zZXNzaW9uSWQpcmV0dXJuIE9lKFByb21pc2UucmVzb2x2ZSgpKTt0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5kZWJ1ZygiZnVuY3Rpb24gc2V0U2Vzc2lvbklkOiAiLG4pO3ZhciByPXRoaXMuZ2V0U2Vzc2lvbklkKCk7ciE9PW4mJnRoaXMudGltZWxpbmUub25TZXNzaW9uSWRDaGFuZ2VkKG4pO3ZhciBvPXRoaXMuY29uZmlnLmxhc3RFdmVudFRpbWUsYT0obD10aGlzLmNvbmZpZy5sYXN0RXZlbnRJZCkhPT1udWxsJiZsIT09dm9pZCAwP2w6LTE7dGhpcy5jb25maWcuc2Vzc2lvbklkPW4sdGhpcy5jb25maWcubGFzdEV2ZW50VGltZT12b2lkIDAsdGhpcy5jb25maWcucGFnZUNvdW50ZXI9MCxjbyh0aGlzLmNvbmZpZy5kZWZhdWx0VHJhY2tpbmcpJiYociYmbyYmaS5wdXNoKHRoaXMudHJhY2soZ28sdm9pZCAwLHtkZXZpY2VfaWQ6dGhpcy5wcmV2aW91c1Nlc3Npb25EZXZpY2VJZCxldmVudF9pZDorK2Esc2Vzc2lvbl9pZDpyLHRpbWU6bysxLHVzZXJfaWQ6dGhpcy5wcmV2aW91c1Nlc3Npb25Vc2VySWR9KS5wcm9taXNlKSx0aGlzLmNvbmZpZy5sYXN0RXZlbnRUaW1lPXRoaXMuY29uZmlnLnNlc3Npb25JZCk7dmFyIGM9dGhpcy50cmFja0NhbXBhaWduRXZlbnRJZk5lZWRlZCgrK2EsaSk7cmV0dXJuIGNvKHRoaXMuY29uZmlnLmRlZmF1bHRUcmFja2luZykmJmkucHVzaCh0aGlzLnRyYWNrKHVvLHZvaWQgMCx7ZXZlbnRfaWQ6Yz8rK2E6YSxzZXNzaW9uX2lkOnRoaXMuY29uZmlnLnNlc3Npb25JZCx0aW1lOnRoaXMuY29uZmlnLmxhc3RFdmVudFRpbWV9KS5wcm9taXNlKSx0aGlzLnByZXZpb3VzU2Vzc2lvbkRldmljZUlkPXRoaXMuY29uZmlnLmRldmljZUlkLHRoaXMucHJldmlvdXNTZXNzaW9uVXNlcklkPXRoaXMuY29uZmlnLnVzZXJJZCxPZShQcm9taXNlLmFsbChpKSl9LGUucHJvdG90eXBlLmV4dGVuZFNlc3Npb249ZnVuY3Rpb24oKXtpZighdGhpcy5jb25maWcpe3RoaXMucS5wdXNoKHRoaXMuZXh0ZW5kU2Vzc2lvbi5iaW5kKHRoaXMpKTtyZXR1cm59dGhpcy5jb25maWcubGFzdEV2ZW50VGltZT1EYXRlLm5vdygpfSxlLnByb3RvdHlwZS5zZXRUcmFuc3BvcnQ9ZnVuY3Rpb24obil7aWYoIXRoaXMuY29uZmlnKXt0aGlzLnEucHVzaCh0aGlzLnNldFRyYW5zcG9ydC5iaW5kKHRoaXMsbikpO3JldHVybn10aGlzLmNvbmZpZy50cmFuc3BvcnRQcm92aWRlcj1NYyhuKX0sZS5wcm90b3R5cGUuaWRlbnRpZnk9ZnVuY3Rpb24obixsKXtpZihfbChuKSl7dmFyIGk9bi5fcTtuLl9xPVtdLG49amwobmV3IHF0LGkpfXJldHVybiBsIT1udWxsJiZsLnVzZXJfaWQmJnRoaXMuc2V0VXNlcklkKGwudXNlcl9pZCksbCE9bnVsbCYmbC5kZXZpY2VfaWQmJnRoaXMuc2V0RGV2aWNlSWQobC5kZXZpY2VfaWQpLHQucHJvdG90eXBlLmlkZW50aWZ5LmNhbGwodGhpcyxuLGwpfSxlLnByb3RvdHlwZS5ncm91cElkZW50aWZ5PWZ1bmN0aW9uKG4sbCxpLHIpe2lmKF9sKGkpKXt2YXIgbz1pLl9xO2kuX3E9W10saT1qbChuZXcgcXQsbyl9cmV0dXJuIHQucHJvdG90eXBlLmdyb3VwSWRlbnRpZnkuY2FsbCh0aGlzLG4sbCxpLHIpfSxlLnByb3RvdHlwZS5yZXZlbnVlPWZ1bmN0aW9uKG4sbCl7aWYoX2wobikpe3ZhciBpPW4uX3E7bi5fcT1bXSxuPWpsKG5ldyBwZyxpKX1yZXR1cm4gdC5wcm90b3R5cGUucmV2ZW51ZS5jYWxsKHRoaXMsbixsKX0sZS5wcm90b3R5cGUudHJhY2tDYW1wYWlnbkV2ZW50SWZOZWVkZWQ9ZnVuY3Rpb24obixsKXtpZighdGhpcy53ZWJBdHRyaWJ1dGlvbnx8IXRoaXMud2ViQXR0cmlidXRpb24uc2hvdWxkVHJhY2tOZXdDYW1wYWlnbilyZXR1cm4hMTt2YXIgaT10aGlzLndlYkF0dHJpYnV0aW9uLmdlbmVyYXRlQ2FtcGFpZ25FdmVudChuKTtyZXR1cm4gbD9sLnB1c2godGhpcy50cmFjayhpKS5wcm9taXNlKTp0aGlzLnRyYWNrKGkpLHRoaXMuY29uZmlnLmxvZ2dlclByb3ZpZGVyLmxvZygiVHJhY2tpbmcgYXR0cmlidXRpb24uIiksITB9LGUucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24obil7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGwsaSxyO3JldHVybiBDKHRoaXMsZnVuY3Rpb24obyl7cmV0dXJuIGw9RGF0ZS5ub3coKSxpPVdjKHRoaXMuY29uZmlnLnNlc3Npb25UaW1lb3V0LHRoaXMuY29uZmlnLmxhc3RFdmVudFRpbWUpLHI9dGhpcy53ZWJBdHRyaWJ1dGlvbiYmdGhpcy53ZWJBdHRyaWJ1dGlvbi5zaG91bGRTZXRTZXNzaW9uSWRPbk5ld0NhbXBhaWduKCksbi5ldmVudF90eXBlIT09dW8mJm4uZXZlbnRfdHlwZSE9PWdvJiYoIW4uc2Vzc2lvbl9pZHx8bi5zZXNzaW9uX2lkPT09dGhpcy5nZXRTZXNzaW9uSWQoKSkmJihpfHxyPyh0aGlzLnNldFNlc3Npb25JZChsKSxyJiZ0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5sb2coIkNyZWF0ZWQgYSBuZXcgc2Vzc2lvbiBmb3IgbmV3IGNhbXBhaWduLiIpKTppfHx0aGlzLnRyYWNrQ2FtcGFpZ25FdmVudElmTmVlZGVkKCkpLG4uZXZlbnRfdHlwZT09PVN0LklERU5USUZZJiZuLnVzZXJfcHJvcGVydGllcyYmKHRoaXMudXNlclByb3BlcnRpZXM9dGhpcy5nZXRPcGVyYXRpb25BcHBsaWVkVXNlclByb3BlcnRpZXMobi51c2VyX3Byb3BlcnRpZXMpKSxbMix0LnByb3RvdHlwZS5wcm9jZXNzLmNhbGwodGhpcyxuKV19KX0pfSxlLnByb3RvdHlwZS5sb2dCcm93c2VyT3B0aW9ucz1mdW5jdGlvbihuKXt0cnl7dmFyIGw9TihOKHt9LG4pLHthcGlLZXk6bi5hcGlLZXkuc3Vic3RyaW5nKDAsMTApKyIqKioqKioqKiJ9KTt0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5kZWJ1ZygiSW5pdGlhbGl6ZWQgQW1wbGl0dWRlIHdpdGggQnJvd3NlckNvbmZpZzoiLEpTT04uc3RyaW5naWZ5KGwpKX1jYXRjaChpKXt0aGlzLmNvbmZpZy5sb2dnZXJQcm92aWRlci5lcnJvcigiRXJyb3IgbG9nZ2luZyBicm93c2VyIGNvbmZpZyIsaSl9fSxlfSkoZ2cpLFAwPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IE8wO3JldHVybntpbml0OmhlKHQuaW5pdC5iaW5kKHQpLCJpbml0Iix1ZSh0KSxnZSh0LFsiY29uZmlnIl0pKSxhZGQ6aGUodC5hZGQuYmluZCh0KSwiYWRkIix1ZSh0KSxnZSh0LFsiY29uZmlnLmFwaUtleSIsInRpbWVsaW5lLnBsdWdpbnMiXSkpLHJlbW92ZTpoZSh0LnJlbW92ZS5iaW5kKHQpLCJyZW1vdmUiLHVlKHQpLGdlKHQsWyJjb25maWcuYXBpS2V5IiwidGltZWxpbmUucGx1Z2lucyJdKSksdHJhY2s6aGUodC50cmFjay5iaW5kKHQpLCJ0cmFjayIsdWUodCksZ2UodCxbImNvbmZpZy5hcGlLZXkiLCJ0aW1lbGluZS5xdWV1ZS5sZW5ndGgiXSkpLGxvZ0V2ZW50OmhlKHQubG9nRXZlbnQuYmluZCh0KSwibG9nRXZlbnQiLHVlKHQpLGdlKHQsWyJjb25maWcuYXBpS2V5IiwidGltZWxpbmUucXVldWUubGVuZ3RoIl0pKSxpZGVudGlmeTpoZSh0LmlkZW50aWZ5LmJpbmQodCksImlkZW50aWZ5Iix1ZSh0KSxnZSh0LFsiY29uZmlnLmFwaUtleSIsInRpbWVsaW5lLnF1ZXVlLmxlbmd0aCJdKSksZ3JvdXBJZGVudGlmeTpoZSh0Lmdyb3VwSWRlbnRpZnkuYmluZCh0KSwiZ3JvdXBJZGVudGlmeSIsdWUodCksZ2UodCxbImNvbmZpZy5hcGlLZXkiLCJ0aW1lbGluZS5xdWV1ZS5sZW5ndGgiXSkpLHNldEdyb3VwOmhlKHQuc2V0R3JvdXAuYmluZCh0KSwic2V0R3JvdXAiLHVlKHQpLGdlKHQsWyJjb25maWcuYXBpS2V5IiwidGltZWxpbmUucXVldWUubGVuZ3RoIl0pKSxyZXZlbnVlOmhlKHQucmV2ZW51ZS5iaW5kKHQpLCJyZXZlbnVlIix1ZSh0KSxnZSh0LFsiY29uZmlnLmFwaUtleSIsInRpbWVsaW5lLnF1ZXVlLmxlbmd0aCJdKSksZmx1c2g6aGUodC5mbHVzaC5iaW5kKHQpLCJmbHVzaCIsdWUodCksZ2UodCxbImNvbmZpZy5hcGlLZXkiLCJ0aW1lbGluZS5xdWV1ZS5sZW5ndGgiXSkpLGdldFVzZXJJZDpoZSh0LmdldFVzZXJJZC5iaW5kKHQpLCJnZXRVc2VySWQiLHVlKHQpLGdlKHQsWyJjb25maWciLCJjb25maWcudXNlcklkIl0pKSxzZXRVc2VySWQ6aGUodC5zZXRVc2VySWQuYmluZCh0KSwic2V0VXNlcklkIix1ZSh0KSxnZSh0LFsiY29uZmlnIiwiY29uZmlnLnVzZXJJZCJdKSksZ2V0RGV2aWNlSWQ6aGUodC5nZXREZXZpY2VJZC5iaW5kKHQpLCJnZXREZXZpY2VJZCIsdWUodCksZ2UodCxbImNvbmZpZyIsImNvbmZpZy5kZXZpY2VJZCJdKSksc2V0RGV2aWNlSWQ6aGUodC5zZXREZXZpY2VJZC5iaW5kKHQpLCJzZXREZXZpY2VJZCIsdWUodCksZ2UodCxbImNvbmZpZyIsImNvbmZpZy5kZXZpY2VJZCJdKSkscmVzZXQ6aGUodC5yZXNldC5iaW5kKHQpLCJyZXNldCIsdWUodCksZ2UodCxbImNvbmZpZyIsImNvbmZpZy51c2VySWQiLCJjb25maWcuZGV2aWNlSWQiXSkpLGdldFNlc3Npb25JZDpoZSh0LmdldFNlc3Npb25JZC5iaW5kKHQpLCJnZXRTZXNzaW9uSWQiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLHNldFNlc3Npb25JZDpoZSh0LnNldFNlc3Npb25JZC5iaW5kKHQpLCJzZXRTZXNzaW9uSWQiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLGV4dGVuZFNlc3Npb246aGUodC5leHRlbmRTZXNzaW9uLmJpbmQodCksImV4dGVuZFNlc3Npb24iLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLHNldE9wdE91dDpoZSh0LnNldE9wdE91dC5iaW5kKHQpLCJzZXRPcHRPdXQiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLHNldFRyYW5zcG9ydDpoZSh0LnNldFRyYW5zcG9ydC5iaW5kKHQpLCJzZXRUcmFuc3BvcnQiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLGdldElkZW50aXR5OmhlKHQuZ2V0SWRlbnRpdHkuYmluZCh0KSwiZ2V0SWRlbnRpdHkiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpLGdldE9wdE91dDpoZSh0LmdldE9wdE91dC5iaW5kKHQpLCJnZXRPcHRPdXQiLHVlKHQpLGdlKHQsWyJjb25maWciXSkpfX07Y29uc3QgYW49UDAoKTt2YXIgJDA9YW4uYWRkLGFhPWFuLmlkZW50aWZ5LHEwPWFuLmluaXQsZW09YW4ucmVzZXQsdG09YW4uc2V0VXNlcklkLGNhPWFuLnRyYWNrO2NvbnN0IEduPWNsYXNzIEdue2NvbnN0cnVjdG9yKCl7dGhpcy5pbml0ZWQ9ITEsdGhpcy5zdG9yYWdlVXNlcklkPW51bGwsdGhpcy5zdG9yYWdlVXNlclByb3BlcnRpZXM9e30sdGhpcy5leHBlcmltZW50PW51bGx9c3RhdGljIGNyZWF0ZVBhZ2VWaWV3VHJhY2tpbmdFbnJpY2htZW50KCl7cmV0dXJue25hbWU6InBhZ2Utdmlldy10cmFja2luZy1lbnJpY2htZW50Iix0eXBlOiJlbnJpY2htZW50IixzZXR1cDphc3luYygpPT57fSxleGVjdXRlOmFzeW5jIGU9PntpZihlLmV2ZW50X3Byb3BlcnRpZXMmJnR5cGVvZiBlLmV2ZW50X3Byb3BlcnRpZXM9PSJvYmplY3QiKWZvcihjb25zdCBuIG9mIEduLlBST1BFUlRJRVNfVE9fUkVNT1ZFKWRlbGV0ZSBlLmV2ZW50X3Byb3BlcnRpZXNbbl07cmV0dXJuIGV9fX1pbml0KCl7dGhpcy5pbml0ZWR8fFNlLmFtcGxpdHVkZUtleSYmKHRoaXMuaW5pdGVkPSEwLCQwKEduLmNyZWF0ZVBhZ2VWaWV3VHJhY2tpbmdFbnJpY2htZW50KCkpLHEwKFNlLmFtcGxpdHVkZUtleSx7dHJhbnNwb3J0OiJiZWFjb24iLGlkZW50aXR5U3RvcmFnZToibm9uZSIsYXV0b2NhcHR1cmU6e2VsZW1lbnRJbnRlcmFjdGlvbnM6ITB9fSkpfXJlc2V0KCl7dGhpcy5pbml0ZWQ9ITEsdGhpcy5zdG9yYWdlVXNlcklkPW51bGwsdGhpcy5zdG9yYWdlVXNlclByb3BlcnRpZXM9e30sZW0oKX1zZXRVc2VySWQoZSl7IWV8fHRoaXMuc3RvcmFnZVVzZXJJZD09PWV8fCh0aGlzLmluaXRlZHx8dGhpcy5pbml0KCksdGhpcy5zdG9yYWdlVXNlcklkPWUsdG0oZSkpfXRyYWNrT25jZShlKXt0aGlzLmluaXRlZHx8dGhpcy5pbml0KCksY2EoZSl9YmF0Y2hUcmFjayhlKXt0aGlzLmluaXRlZHx8dGhpcy5pbml0KCk7Zm9yKGNvbnN0IG4gb2YgZSljYShuKX1jdXN0b21Vc2VyUHJvcGVydGllcyhlKXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MClyZXR1cm47dGhpcy5pbml0ZWR8fHRoaXMuaW5pdCgpO2xldCBuO3RoaXMuc3RvcmFnZVVzZXJQcm9wZXJ0aWVzP249dGhpcy5leHRyYWN0Q2hhbmdlZFZhbHVlcyh0aGlzLnN0b3JhZ2VVc2VyUHJvcGVydGllcyxlKTpuPWUsdGhpcy5zdG9yYWdlVXNlclByb3BlcnRpZXM9ZTtjb25zdCBsPW5ldyBxdDtPYmplY3QuZW50cmllcyhuKS5mb3JFYWNoKChbaSxyXSk9PntsLnNldChpLHR5cGVvZiByPT0ibnVtYmVyIj9gJHtyfWA6cil9KSxhYShsKX1jdXN0b21Vc2VyUHJvcGVydHlPbmUoZSxuKXtpZighZXx8KHRoaXMuaW5pdGVkfHx0aGlzLmluaXQoKSx0aGlzLnN0b3JhZ2VVc2VyUHJvcGVydGllc1tlXT09PW4pKXJldHVybjt0aGlzLnN0b3JhZ2VVc2VyUHJvcGVydGllc1tlXT1uO2NvbnN0IGw9bmV3IHF0O2wuc2V0KGUsbiksYWEobCl9ZXh0cmFjdENoYW5nZWRWYWx1ZXMoZSxuKXtjb25zdCBsPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGk9PnsoIShpIGluIGUpfHxlW2ldIT09bltpXSkmJihsW2ldPW5baV0pfSksbH1mb3JtYXRUb0FtcGxpdHVkZShlKXtjb25zdHtldmVudHM6bixjbGllbnRJbmZvOmx9PWU7cmV0dXJuIFZsKCJzZXJ2ZXIiLG4ubWFwKGk9Pntjb25zdHtldmVudE5hbWU6cixleHREYXRhOm99PWk7cmV0dXJue2V2ZW50X3R5cGU6cixldmVudF9wcm9wZXJ0aWVzOntleHRfZGF0YTpvLGNsaWVudF9pbmZvOmx9fX0pKX19O0duLlBST1BFUlRJRVNfVE9fUkVNT1ZFPVsicGFnZV90aXRsZSIsIltBbXBsaXR1ZGVdIFBhZ2UgVGl0bGUiXTtsZXQgV2k9R247Y29uc3QgZGE9bmV3IFdpO2Z1bmN0aW9uIGJ0KHQsZSxuLGwpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLHIpe2Z1bmN0aW9uIG8oZCl7dHJ5e2MobC5uZXh0KGQpKX1jYXRjaChzKXtyKHMpfX1mdW5jdGlvbiBhKGQpe3RyeXtjKGwudGhyb3coZCkpfWNhdGNoKHMpe3Iocyl9fWZ1bmN0aW9uIGMoZCl7dmFyIHM7ZC5kb25lP2koZC52YWx1ZSk6KHM9ZC52YWx1ZSxzIGluc3RhbmNlb2Ygbj9zOm5ldyBuKChmdW5jdGlvbih1KXt1KHMpfSkpKS50aGVuKG8sYSl9YygobD1sLmFwcGx5KHQsW10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIFZ0KHQsZSl7dmFyIG4sbCxpLHIsbz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gcj17bmV4dDphKDApLHRocm93OmEoMSkscmV0dXJuOmEoMil9LHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihyW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHI7ZnVuY3Rpb24gYShjKXtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGZ1bmN0aW9uKHMpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7ciYmKHI9MCxzWzBdJiYobz0wKSksbzspdHJ5e2lmKG49MSxsJiYoaT0yJnNbMF0/bC5yZXR1cm46c1swXT9sLnRocm93fHwoKGk9bC5yZXR1cm4pJiZpLmNhbGwobCksMCk6bC5uZXh0KSYmIShpPWkuY2FsbChsLHNbMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChsPTAsaSYmKHM9WzImc1swXSxpLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTppPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBvLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1Om8ubGFiZWwrKyxsPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9by5vcHMucG9wKCksby50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoaT1vLnRyeXMsISgoaT1pLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKXx8c1swXSE9PTYmJnNbMF0hPT0yKSl7bz0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWl8fHNbMV0+aVswXSYmc1sxXTxpWzNdKSl7by5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZvLmxhYmVsPGlbMV0pe28ubGFiZWw9aVsxXSxpPXM7YnJlYWt9aWYoaSYmby5sYWJlbDxpWzJdKXtvLmxhYmVsPWlbMl0sby5vcHMucHVzaChzKTticmVha31pWzJdJiZvLm9wcy5wb3AoKSxvLnRyeXMucG9wKCk7Y29udGludWV9cz1lLmNhbGwodCxvKX1jYXRjaCh1KXtzPVs2LHVdLGw9MH1maW5hbGx5e249aT0wfWlmKDUmc1swXSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fSkoW2MsZF0pfX19dmFyIFJlPXtleGNsdWRlOltdLGluY2x1ZGU6W10sbG9nZ2luZzohMCx0aW1lb3V0OjFlM307ZnVuY3Rpb24gaWkodCxlKXtpZighWyJpbmNsdWRlIiwiZXhjbHVkZSIsInBlcm1pc3Npb25zX3RvX2NoZWNrIiwicmV0cmllcyIsInRpbWVvdXQiLCJsb2dnaW5nIl0uaW5jbHVkZXModCkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK3QpO2lmKFsiaW5jbHVkZSIsImV4Y2x1ZGUiLCJwZXJtaXNzaW9uc190b19jaGVjayJdLmluY2x1ZGVzKHQpJiYoIUFycmF5LmlzQXJyYXkoZSl8fCFlLmV2ZXJ5KChmdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PSJzdHJpbmcifSkpKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB2YWx1ZSBvZiB0aGUgaW5jbHVkZSwgZXhjbHVkZSBhbmQgcGVybWlzc2lvbnNfdG9fY2hlY2sgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIik7aWYoWyJyZXRyaWVzIiwidGltZW91dCJdLmluY2x1ZGVzKHQpJiZ0eXBlb2YgZSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJUaGUgdmFsdWUgb2YgcmV0cmllcyBtdXN0IGJlIGEgbnVtYmVyIik7UmVbdF09ZX12YXIgV2Q9e30sbm09e3RpbWVvdXQ6InRydWUifSxhdD1mdW5jdGlvbih0LGUpe3R5cGVvZiB3aW5kb3c8InUiJiYoV2RbdF09ZSl9LGxtPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhXZCkuZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgZSxuPXRbMF07cmV0dXJuISghKChlPVJlPT1udWxsP3ZvaWQgMDpSZS5leGNsdWRlKT09PW51bGx8fGU9PT12b2lkIDApJiZlLmluY2x1ZGVzKG4pKX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlLG4sbCxpLHI9dFswXTtyZXR1cm4hKChlPVJlPT1udWxsP3ZvaWQgMDpSZS5pbmNsdWRlKT09PW51bGx8fGU9PT12b2lkIDApJiZlLnNvbWUoKGZ1bmN0aW9uKG8pe3JldHVybiBvLmluY2x1ZGVzKCIuIil9KSk/KG49UmU9PW51bGw/dm9pZCAwOlJlLmluY2x1ZGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5zb21lKChmdW5jdGlvbihvKXtyZXR1cm4gby5zdGFydHNXaXRoKHIpfSkpOigobD1SZT09bnVsbD92b2lkIDA6UmUuaW5jbHVkZSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmxlbmd0aCk9PT0wfHwoKGk9UmU9PW51bGw/dm9pZCAwOlJlLmluY2x1ZGUpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5pbmNsdWRlcyhyKSl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bdFswXSwoMCx0WzFdKSgpXX0pKSl9O2Z1bmN0aW9uIFBuKHQpe3JldHVybiB0Xj10Pj4+MTYsdD1NYXRoLmltdWwodCwyMjQ2ODIyNTA3KSx0Xj10Pj4+MTMsdD1NYXRoLmltdWwodCwzMjY2NDg5OTA5KSwodF49dD4+PjE2KT4+PjB9dmFyIEplPW5ldyBVaW50MzJBcnJheShbNTk3Mzk5MDY3LDI4Njk4NjAyMzMsOTUxMjc0MjEzLDI3MTYwNDQxNzldKTtmdW5jdGlvbiBsdCh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWZ1bmN0aW9uIGNyKHQsZSl7dmFyIG47aWYoZT09PXZvaWQgMCYmKGU9MCksZT1lPzB8ZTowLHR5cGVvZiB0PT0ic3RyaW5nIiYmKG49dCx0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShuKS5idWZmZXIpLCEodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBrZXkgdG8gYmUgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIik7dmFyIGw9bmV3IFVpbnQzMkFycmF5KFtlLGUsZSxlXSk7KGZ1bmN0aW9uKHIsbyl7Zm9yKHZhciBhPXIuYnl0ZUxlbmd0aC8xNnwwLGM9bmV3IFVpbnQzMkFycmF5KHIsMCw0KmEpLGQ9MDtkPGE7ZCsrKXt2YXIgcz1jLnN1YmFycmF5KDQqZCw0KihkKzEpKTtzWzBdPU1hdGguaW11bChzWzBdLEplWzBdKSxzWzBdPWx0KHNbMF0sMTUpLHNbMF09TWF0aC5pbXVsKHNbMF0sSmVbMV0pLG9bMF09b1swXV5zWzBdLG9bMF09bHQob1swXSwxOSksb1swXT1vWzBdK29bMV0sb1swXT1NYXRoLmltdWwob1swXSw1KSsxNDQ0NzI4MDkxLHNbMV09TWF0aC5pbXVsKHNbMV0sSmVbMV0pLHNbMV09bHQoc1sxXSwxNiksc1sxXT1NYXRoLmltdWwoc1sxXSxKZVsyXSksb1sxXT1vWzFdXnNbMV0sb1sxXT1sdChvWzFdLDE3KSxvWzFdPW9bMV0rb1syXSxvWzFdPU1hdGguaW11bChvWzFdLDUpKzE5NzgzMDQ3MSxzWzJdPU1hdGguaW11bChzWzJdLEplWzJdKSxzWzJdPWx0KHNbMl0sMTcpLHNbMl09TWF0aC5pbXVsKHNbMl0sSmVbM10pLG9bMl09b1syXV5zWzJdLG9bMl09bHQob1syXSwxNSksb1syXT1vWzJdK29bM10sb1syXT1NYXRoLmltdWwob1syXSw1KSsyNTMwMDI0NTAxLHNbM109TWF0aC5pbXVsKHNbM10sSmVbM10pLHNbM109bHQoc1szXSwxOCksc1szXT1NYXRoLmltdWwoc1szXSxKZVswXSksb1szXT1vWzNdXnNbM10sb1szXT1sdChvWzNdLDEzKSxvWzNdPW9bM10rb1swXSxvWzNdPU1hdGguaW11bChvWzNdLDUpKzg1MDE0ODExOX19KSh0LGwpLChmdW5jdGlvbihyLG8pe3ZhciBhPXIuYnl0ZUxlbmd0aC8xNnwwLGM9ci5ieXRlTGVuZ3RoJTE2LGQ9bmV3IFVpbnQzMkFycmF5KDQpLHM9bmV3IFVpbnQ4QXJyYXkociwxNiphLGMpO3N3aXRjaChjKXtjYXNlIDE1OmRbM109ZFszXV5zWzE0XTw8MTY7Y2FzZSAxNDpkWzNdPWRbM11ec1sxM108PDg7Y2FzZSAxMzpkWzNdPWRbM11ec1sxMl0sZFszXT1NYXRoLmltdWwoZFszXSxKZVszXSksZFszXT1sdChkWzNdLDE4KSxkWzNdPU1hdGguaW11bChkWzNdLEplWzBdKSxvWzNdPW9bM11eZFszXTtjYXNlIDEyOmRbMl09ZFsyXV5zWzExXTw8MjQ7Y2FzZSAxMTpkWzJdPWRbMl1ec1sxMF08PDE2O2Nhc2UgMTA6ZFsyXT1kWzJdXnNbOV08PDg7Y2FzZSA5OmRbMl09ZFsyXV5zWzhdLGRbMl09TWF0aC5pbXVsKGRbMl0sSmVbMl0pLGRbMl09bHQoZFsyXSwxNyksZFsyXT1NYXRoLmltdWwoZFsyXSxKZVszXSksb1syXT1vWzJdXmRbMl07Y2FzZSA4OmRbMV09ZFsxXV5zWzddPDwyNDtjYXNlIDc6ZFsxXT1kWzFdXnNbNl08PDE2O2Nhc2UgNjpkWzFdPWRbMV1ec1s1XTw8ODtjYXNlIDU6ZFsxXT1kWzFdXnNbNF0sZFsxXT1NYXRoLmltdWwoZFsxXSxKZVsxXSksZFsxXT1sdChkWzFdLDE2KSxkWzFdPU1hdGguaW11bChkWzFdLEplWzJdKSxvWzFdPW9bMV1eZFsxXTtjYXNlIDQ6ZFswXT1kWzBdXnNbM108PDI0O2Nhc2UgMzpkWzBdPWRbMF1ec1syXTw8MTY7Y2FzZSAyOmRbMF09ZFswXV5zWzFdPDw4O2Nhc2UgMTpkWzBdPWRbMF1ec1swXSxkWzBdPU1hdGguaW11bChkWzBdLEplWzBdKSxkWzBdPWx0KGRbMF0sMTUpLGRbMF09TWF0aC5pbXVsKGRbMF0sSmVbMV0pLG9bMF09b1swXV5kWzBdfX0pKHQsbCksKGZ1bmN0aW9uKHIsbyl7b1swXT1vWzBdXnIuYnl0ZUxlbmd0aCxvWzFdPW9bMV1eci5ieXRlTGVuZ3RoLG9bMl09b1syXV5yLmJ5dGVMZW5ndGgsb1szXT1vWzNdXnIuYnl0ZUxlbmd0aCxvWzBdPW9bMF0rb1sxXXwwLG9bMF09b1swXStvWzJdfDAsb1swXT1vWzBdK29bM118MCxvWzFdPW9bMV0rb1swXXwwLG9bMl09b1syXStvWzBdfDAsb1szXT1vWzNdK29bMF18MCxvWzBdPVBuKG9bMF0pLG9bMV09UG4ob1sxXSksb1syXT1QbihvWzJdKSxvWzNdPVBuKG9bM10pLG9bMF09b1swXStvWzFdfDAsb1swXT1vWzBdK29bMl18MCxvWzBdPW9bMF0rb1szXXwwLG9bMV09b1sxXStvWzBdfDAsb1syXT1vWzJdK29bMF18MCxvWzNdPW9bM10rb1swXXwwfSkodCxsKTt2YXIgaT1uZXcgVWludDhBcnJheShsLmJ1ZmZlcik7cmV0dXJuIEFycmF5LmZyb20oaSkubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gci50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpfSkpLmpvaW4oIiIpfWZ1bmN0aW9uIGltKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBuKGUpfSksdCl9KSl9ZnVuY3Rpb24gcm0odCxlLG4pe3JldHVybiBQcm9taXNlLmFsbCh0Lm1hcCgoZnVuY3Rpb24obCl7cmV0dXJuIFByb21pc2UucmFjZShbbCxpbShlLG4pXSl9KSkpfWZ1bmN0aW9uIEJkKCl7cmV0dXJuIGJ0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxlLG4sbCxpO3JldHVybiBWdCh0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiByLnRyeXMucHVzaChbMCwyLCwzXSksdD1sbSgpLGU9T2JqZWN0LmtleXModCksWzQscm0oT2JqZWN0LnZhbHVlcyh0KSwoUmU9PW51bGw/dm9pZCAwOlJlLnRpbWVvdXQpfHwxZTMsbm0pXTtjYXNlIDE6cmV0dXJuIG49ci5zZW50KCksbD1uLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIG8hPT12b2lkIDB9KSksaT17fSxsLmZvckVhY2goKGZ1bmN0aW9uKG8sYSl7aVtlW2FdXT1vfSkpLFsyLE5kKGksUmUuZXhjbHVkZXx8W10sUmUuaW5jbHVkZXx8W10sIiIpXTtjYXNlIDI6dGhyb3cgci5zZW50KCk7Y2FzZSAzOnJldHVyblsyXX19KSl9KSl9ZnVuY3Rpb24gTmQodCxlLG4sbCl7bD09PXZvaWQgMCYmKGw9IiIpO2Zvcih2YXIgaT17fSxyPWZ1bmN0aW9uKGQscyl7dmFyIHU9bCtkKyIuIjtpZih0eXBlb2YgcyE9Im9iamVjdCJ8fEFycmF5LmlzQXJyYXkocykpe3ZhciBoPWUuc29tZSgoZnVuY3Rpb24obSl7cmV0dXJuIHUuc3RhcnRzV2l0aChtKX0pKSxnPW4uc29tZSgoZnVuY3Rpb24obSl7cmV0dXJuIHUuc3RhcnRzV2l0aChtKX0pKTtoJiYhZ3x8KGlbZF09cyl9ZWxzZXt2YXIgYj1OZChzLGUsbix1KTtPYmplY3Qua2V5cyhiKS5sZW5ndGg+MCYmKGlbZF09Yil9fSxvPTAsYT1PYmplY3QuZW50cmllcyh0KTtvPGEubGVuZ3RoO28rKyl7dmFyIGM9YVtvXTtyKGNbMF0sY1sxXSl9cmV0dXJuIGl9ZnVuY3Rpb24gb20odCl7cmV0dXJuIGJ0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBWdCh0aGlzLChmdW5jdGlvbihsKXtzd2l0Y2gobC5sYWJlbCl7Y2FzZSAwOnJldHVybiBsLnRyeXMucHVzaChbMCwyLCwzXSksWzQsQmQoKV07Y2FzZSAxOnJldHVybiBlPWwuc2VudCgpLG49Y3IoSlNPTi5zdHJpbmdpZnkoZSkpLE1hdGgucmFuZG9tKCk8MWUtNSYmUmUubG9nZ2luZyYmKGZ1bmN0aW9uKGkscil7YnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBvLGE7cmV0dXJuIFZ0KHRoaXMsKGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6aWYobz0iaHR0cHM6Ly9sb2dnaW5nLnRodW1ibWFya2pzLmNvbS92MS9sb2ciLGE9e3RodW1ibWFyazppLGNvbXBvbmVudHM6cix2ZXJzaW9uOiIwLjIwLjYifSxzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJfdG1qc19sIikpcmV0dXJuWzMsNF07c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiX3RtanNfbCIsIjEiKSxjLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjLnRyeXMucHVzaChbMSwzLCw0XSksWzQsZmV0Y2gobyx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoYSl9KV07Y2FzZSAyOmNhc2UgMzpyZXR1cm4gYy5zZW50KCksWzMsNF07Y2FzZSA0OnJldHVyblsyXX19KSl9KSl9KShuLGUpLFsyLG4udG9TdHJpbmcoKV07Y2FzZSAyOnRocm93IGwuc2VudCgpO2Nhc2UgMzpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIFB0KCl7aWYodHlwZW9mIG5hdmlnYXRvcj4idSIpcmV0dXJue25hbWU6InVua25vd24iLHZlcnNpb246InVua25vd24ifTtmb3IodmFyIHQ9bmF2aWdhdG9yLnVzZXJBZ2VudCxlPXtlZGc6IkVkZ2UiLG9wcjoiT3BlcmEiLHNhbXN1bmc6IlNhbXN1bmdCcm93c2VyIn0sbj0wLGw9Wy8oPzxuYW1lPlNhbXN1bmdCcm93c2VyKVwvKD88dmVyc2lvbj5cZCsoPzpcLlxkKyk/KS8sLyg/PG5hbWU+RWRnZXxFZGcpXC8oPzx2ZXJzaW9uPlxkKyg/OlwuXGQrKT8pLywvKD88bmFtZT4oPzpDaHJvbWV8Q2hyb21pdW18T1BSfE9wZXJhfFZpdmFsZGl8QnJhdmUpKVwvKD88dmVyc2lvbj5cZCsoPzpcLlxkKyk/KS8sLyg/PG5hbWU+KD86RmlyZWZveHxXYXRlcmZveHxJY2V3ZWFzZWx8SWNlQ2F0KSlcLyg/PHZlcnNpb24+XGQrKD86XC5cZCspPykvLC8oPzxuYW1lPlNhZmFyaSlcLyg/PHZlcnNpb24+XGQrKD86XC5cZCspPykvLC8oPzxuYW1lPk1TSUV8VHJpZGVudHxJRU1vYmlsZSkuKz8oPzx2ZXJzaW9uPlxkKyg/OlwuXGQrKT8pLywvKD88bmFtZT5zYW1zdW5nKS4qVmVyc2lvblwvKD88dmVyc2lvbj5cZCsoPzpcLlxkKyk/KS9pLC8oPzxuYW1lPltBLVphLXpdKylcLyg/PHZlcnNpb24+XGQrKD86XC5cZCspPykvXTtuPGwubGVuZ3RoO24rKyl7dmFyIGk9bFtuXSxyPXQubWF0Y2goaSk7aWYociYmci5ncm91cHMpcmV0dXJue25hbWU6ZVtyLmdyb3Vwcy5uYW1lLnRvTG93ZXJDYXNlKCldfHxyLmdyb3Vwcy5uYW1lLHZlcnNpb246ci5ncm91cHMudmVyc2lvbn19cmV0dXJue25hbWU6InVua25vd24iLHZlcnNpb246InVua25vd24ifX1mdW5jdGlvbiBhbSh0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDsrK24pZSs9TWF0aC5hYnModFtuXSk7cmV0dXJuIGV9dmFyIGNtPVB0KCk7ZnVuY3Rpb24gRmQodCxlLG4pe2Zvcih2YXIgbD1bXSxpPTA7aTx0WzBdLmRhdGEubGVuZ3RoO2krKyl7Zm9yKHZhciByPVtdLG89MDtvPHQubGVuZ3RoO28rKylyLnB1c2godFtvXS5kYXRhW2ldKTtsLnB1c2goZG0ocikpfXZhciBhPW5ldyBVaW50OENsYW1wZWRBcnJheShsKTtyZXR1cm4gbmV3IEltYWdlRGF0YShhLGUsbil9ZnVuY3Rpb24gZG0odCl7aWYodC5sZW5ndGg9PT0wKXJldHVybiAwO2Zvcih2YXIgZT17fSxuPTAsbD10O248bC5sZW5ndGg7bisrKWVbcj1sW25dXT0oZVtyXXx8MCkrMTt2YXIgaT10WzBdO2Zvcih2YXIgciBpbiBlKWVbcl0+ZVtpXSYmKGk9cGFyc2VJbnQociwxMCkpO3JldHVybiBpfVsiU2Ftc3VuZ0Jyb3dzZXIiLCJTYWZhcmkiXS5pbmNsdWRlcyhjbS5uYW1lKXx8YXQoImF1ZGlvIiwoZnVuY3Rpb24oKXtyZXR1cm4gYnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBWdCh0aGlzLChmdW5jdGlvbih0KXtyZXR1cm5bMixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxuKXt0cnl7dmFyIGw9bmV3KHdpbmRvdy5PZmZsaW5lQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCkoMSw1ZTMsNDQxMDApLGk9bC5jcmVhdGVCdWZmZXJTb3VyY2UoKSxyPWwuY3JlYXRlT3NjaWxsYXRvcigpO3IuZnJlcXVlbmN5LnZhbHVlPTFlMzt2YXIgbyxhPWwuY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7YS50aHJlc2hvbGQudmFsdWU9LTUwLGEua25lZS52YWx1ZT00MCxhLnJhdGlvLnZhbHVlPTEyLGEuYXR0YWNrLnZhbHVlPTAsYS5yZWxlYXNlLnZhbHVlPS4yLHIuY29ubmVjdChhKSxhLmNvbm5lY3QobC5kZXN0aW5hdGlvbiksci5zdGFydCgpLGwub25jb21wbGV0ZT1mdW5jdGlvbihjKXtvPWMucmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCksZSh7c2FtcGxlSGFzaDphbShvKSxvc2NpbGxhdG9yOnIudHlwZSxtYXhDaGFubmVsczpsLmRlc3RpbmF0aW9uLm1heENoYW5uZWxDb3VudCxjaGFubmVsQ291bnRNb2RlOmkuY2hhbm5lbENvdW50TW9kZX0pfSxsLnN0YXJ0UmVuZGVyaW5nKCl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JlYXRpbmcgYXVkaW8gZmluZ2VycHJpbnQ6IixjKSxuKGMpfX0pKV19KSl9KSl9KSk7dmFyIFlkPVB0KCksc2E9WWQubmFtZS50b0xvd2VyQ2FzZSgpLHNtPVlkLnZlcnNpb24uc3BsaXQoIi4iKVswXXx8IjAiLHVtPXBhcnNlSW50KHNtLDEwKTtzYT09PSJmaXJlZm94Inx8c2E9PT0ic2FmYXJpIiYmdW09PT0xN3x8YXQoImNhbnZhcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiksbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciBlPUFycmF5LmZyb20oe2xlbmd0aDozfSwoZnVuY3Rpb24oKXtyZXR1cm4oZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxsPW4uZ2V0Q29udGV4dCgiMmQiKTtpZighbClyZXR1cm4gbmV3IEltYWdlRGF0YSgxLDEpO24ud2lkdGg9MjgwLG4uaGVpZ2h0PTIwO3ZhciBpPWwuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2kuYWRkQ29sb3JTdG9wKDAsInJlZCIpLGkuYWRkQ29sb3JTdG9wKC4xNjY2NjY2NjY2NjY2NjY2Niwib3JhbmdlIiksaS5hZGRDb2xvclN0b3AoLjMzMzMzMzMzMzMzMzMzMzMsInllbGxvdyIpLGkuYWRkQ29sb3JTdG9wKC41LCJncmVlbiIpLGkuYWRkQ29sb3JTdG9wKC42NjY2NjY2NjY2NjY2NjY2LCJibHVlIiksaS5hZGRDb2xvclN0b3AoLjgzMzMzMzMzMzMzMzMzMzQsImluZGlnbyIpLGkuYWRkQ29sb3JTdG9wKDEsInZpb2xldCIpLGwuZmlsbFN0eWxlPWksbC5maWxsUmVjdCgwLDAsbi53aWR0aCxuLmhlaWdodCk7dmFyIHI9IlJhbmRvbSBUZXh0IFdNd21pbDEwT28iO3JldHVybiBsLmZvbnQ9IjIzLjEyM3B4IEFyaWFsIixsLmZpbGxTdHlsZT0iYmxhY2siLGwuZmlsbFRleHQociwtNSwxNSksbC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMjU1LCAwLjUpIixsLmZpbGxUZXh0KHIsLTMuMywxNy43KSxsLmJlZ2luUGF0aCgpLGwubW92ZVRvKDAsMCksbC5saW5lVG8oMipuLndpZHRoLzcsbi5oZWlnaHQpLGwuc3Ryb2tlU3R5bGU9IndoaXRlIixsLmxpbmVXaWR0aD0yLGwuc3Ryb2tlKCksbC5nZXRJbWFnZURhdGEoMCwwLG4ud2lkdGgsbi5oZWlnaHQpfSkoKX0pKTt0KHtjb21tb25JbWFnZURhdGFIYXNoOmNyKEZkKGUsMjgwLDIwKS5kYXRhLnRvU3RyaW5nKCkpLnRvU3RyaW5nKCl9KX0pKX0pKTt2YXIgZ24sZ209WyJBcmlhbCIsIkFyaWFsIEJsYWNrIiwiQXJpYWwgTmFycm93IiwiQXJpYWwgUm91bmRlZCBNVCIsIkFyaW1vIiwiQXJjaGl2byIsIkJhcmxvdyIsIkJlYmFzIE5ldWUiLCJCaXR0ZXIiLCJCb29rbWFuIiwiQ2FsaWJyaSIsIkNhYmluIiwiQ2FuZGFyYSIsIkNlbnR1cnkiLCJDZW50dXJ5IEdvdGhpYyIsIkNvbWljIFNhbnMgTVMiLCJDb25zdGFudGlhIiwiQ291cmllciIsIkNvdXJpZXIgTmV3IiwiQ3JpbXNvbiBUZXh0IiwiRE0gTW9ubyIsIkRNIFNhbnMiLCJETSBTZXJpZiBEaXNwbGF5IiwiRE0gU2VyaWYgVGV4dCIsIkRvc2lzIiwiRHJvaWQgU2FucyIsIkV4byIsIkZpcmEgQ29kZSIsIkZpcmEgU2FucyIsIkZyYW5rbGluIEdvdGhpYyBNZWRpdW0iLCJHYXJhbW9uZCIsIkdlbmV2YSIsIkdlb3JnaWEiLCJHaWxsIFNhbnMiLCJIZWx2ZXRpY2EiLCJJbXBhY3QiLCJJbmNvbnNvbGF0YSIsIkluZGllIEZsb3dlciIsIkludGVyIiwiSm9zZWZpbiBTYW5zIiwiS2FybGEiLCJMYXRvIiwiTGV4ZW5kIiwiTHVjaWRhIEJyaWdodCIsIkx1Y2lkYSBDb25zb2xlIiwiTHVjaWRhIFNhbnMgVW5pY29kZSIsIk1hbnJvcGUiLCJNZXJyaXdlYXRoZXIiLCJNZXJyaXdlYXRoZXIgU2FucyIsIk1vbnRzZXJyYXQiLCJNeXJpYWQiLCJOb3RvIFNhbnMiLCJOdW5pdG8iLCJOdW5pdG8gU2FucyIsIk9wZW4gU2FucyIsIk9wdGltYSIsIk9yYml0cm9uIiwiT3N3YWxkIiwiUGFjaWZpY28iLCJQYWxhdGlubyIsIlBlcnBldHVhIiwiUFQgU2FucyIsIlBUIFNlcmlmIiwiUG9wcGlucyIsIlByb21wdCIsIlB1YmxpYyBTYW5zIiwiUXVpY2tzYW5kIiwiUmFqZGhhbmkiLCJSZWN1cnNpdmUiLCJSb2JvdG8iLCJSb2JvdG8gQ29uZGVuc2VkIiwiUm9ja3dlbGwiLCJSdWJpayIsIlNlZ29lIFByaW50IiwiU2Vnb2UgU2NyaXB0IiwiU2Vnb2UgVUkiLCJTb3JhIiwiU291cmNlIFNhbnMgUHJvIiwiU3BhY2UgTW9ubyIsIlRhaG9tYSIsIlRhdmlyYWoiLCJUaW1lcyIsIlRpbWVzIE5ldyBSb21hbiIsIlRpdGlsbGl1bSBXZWIiLCJUcmVidWNoZXQgTVMiLCJVYnVudHUiLCJWYXJlbGEgUm91bmQiLCJWZXJkYW5hIiwiV29yayBTYW5zIl0saG09WyJtb25vc3BhY2UiLCJzYW5zLXNlcmlmIiwic2VyaWYiXTtmdW5jdGlvbiB1YSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiQ2FudmFzIGNvbnRleHQgbm90IHN1cHBvcnRlZCIpO3JldHVybiB0LmZvbnQsdC5mb250PSI3MnB4ICIuY29uY2F0KGUpLHQubWVhc3VyZVRleHQoIld3TW1MbGkwT28iKS53aWR0aH1mdW5jdGlvbiBibSgpe3ZhciB0LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbj0odD1lLmdldENvbnRleHQoIndlYmdsIikpIT09bnVsbCYmdCE9PXZvaWQgMD90OmUuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIik7aWYobiYmImdldFBhcmFtZXRlciJpbiBuKXRyeXt2YXIgbD0obi5nZXRQYXJhbWV0ZXIobi5WRU5ET1IpfHwiIikudG9TdHJpbmcoKSxpPShuLmdldFBhcmFtZXRlcihuLlJFTkRFUkVSKXx8IiIpLnRvU3RyaW5nKCkscj17dmVuZG9yOmwscmVuZGVyZXI6aSx2ZXJzaW9uOihuLmdldFBhcmFtZXRlcihuLlZFUlNJT04pfHwiIikudG9TdHJpbmcoKSxzaGFkaW5nTGFuZ3VhZ2VWZXJzaW9uOihuLmdldFBhcmFtZXRlcihuLlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTil8fCIiKS50b1N0cmluZygpfTtpZighaS5sZW5ndGh8fCFsLmxlbmd0aCl7dmFyIG89bi5nZXRFeHRlbnNpb24oIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTtpZihvKXt2YXIgYT0obi5nZXRQYXJhbWV0ZXIoby5VTk1BU0tFRF9WRU5ET1JfV0VCR0wpfHwiIikudG9TdHJpbmcoKSxjPShuLmdldFBhcmFtZXRlcihvLlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMKXx8IiIpLnRvU3RyaW5nKCk7YSYmKHIudmVuZG9yVW5tYXNrZWQ9YSksYyYmKHIucmVuZGVyZXJVbm1hc2tlZD1jKX19cmV0dXJuIHJ9Y2F0Y2h7fXJldHVybiJ1bmRlZmluZWQifWZ1bmN0aW9uIFZtKCl7dmFyIHQ9bmV3IEZsb2F0MzJBcnJheSgxKSxlPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyKTtyZXR1cm4gdFswXT0xLzAsdFswXT10WzBdLXRbMF0sZVszXX1mdW5jdGlvbiBtbSh0LGUpe3ZhciBuPXt9O3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGwpe3ZhciBpPShmdW5jdGlvbihyKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIG51bGw7dmFyIG89e307ci5mb3JFYWNoKChmdW5jdGlvbihkKXt2YXIgcz1TdHJpbmcoZCk7b1tzXT0ob1tzXXx8MCkrMX0pKTt2YXIgYT1yWzBdLGM9MTtyZXR1cm4gT2JqZWN0LmtleXMobykuZm9yRWFjaCgoZnVuY3Rpb24oZCl7b1tkXT5jJiYoYT1kLGM9b1tkXSl9KSksYX0pKHQubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gbCBpbiByP3JbbF06dm9pZCAwfSkpLmZpbHRlcigoZnVuY3Rpb24ocil7cmV0dXJuIHIhPT12b2lkIDB9KSkpO2kmJihuW2xdPWkpfSkpLG59ZnVuY3Rpb24gZm0oKXt2YXIgdD1bXSxlPXsicHJlZmVycy1jb250cmFzdCI6WyJoaWdoIiwibW9yZSIsImxvdyIsImxlc3MiLCJmb3JjZWQiLCJuby1wcmVmZXJlbmNlIl0sImFueS1ob3ZlciI6WyJob3ZlciIsIm5vbmUiXSwiYW55LXBvaW50ZXIiOlsibm9uZSIsImNvYXJzZSIsImZpbmUiXSxwb2ludGVyOlsibm9uZSIsImNvYXJzZSIsImZpbmUiXSxob3ZlcjpbImhvdmVyIiwibm9uZSJdLHVwZGF0ZTpbImZhc3QiLCJzbG93Il0sImludmVydGVkLWNvbG9ycyI6WyJpbnZlcnRlZCIsIm5vbmUiXSwicHJlZmVycy1yZWR1Y2VkLW1vdGlvbiI6WyJyZWR1Y2UiLCJuby1wcmVmZXJlbmNlIl0sInByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3kiOlsicmVkdWNlIiwibm8tcHJlZmVyZW5jZSJdLHNjcmlwdGluZzpbIm5vbmUiLCJpbml0aWFsLW9ubHkiLCJlbmFibGVkIl0sImZvcmNlZC1jb2xvcnMiOlsiYWN0aXZlIiwibm9uZSJdfTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7ZVtuXS5mb3JFYWNoKChmdW5jdGlvbihsKXttYXRjaE1lZGlhKCIoIi5jb25jYXQobiwiOiAiKS5jb25jYXQobCwiKSIpKS5tYXRjaGVzJiZ0LnB1c2goIiIuY29uY2F0KG4sIjogIikuY29uY2F0KGwpKX0pKX0pKSx0fVB0KCkubmFtZSE9IkZpcmVmb3giJiZhdCgiZm9udHMiLChmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3RyeXsoZnVuY3Rpb24obCl7dmFyIGk7YnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciByLG8sYTtyZXR1cm4gVnQodGhpcywoZnVuY3Rpb24oYyl7c3dpdGNoKGMubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZG9jdW1lbnQuYm9keT9bMywyXTpbNCwoZD01MCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odSl7cmV0dXJuIHNldFRpbWVvdXQodSxkLHMpfSkpKV07Y2FzZSAxOnJldHVybiBjLnNlbnQoKSxbMywwXTtjYXNlIDI6aWYoKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLnNldEF0dHJpYnV0ZSgiZnJhbWVCb3JkZXIiLCIwIiksKG89ci5zdHlsZSkuc2V0UHJvcGVydHkoInBvc2l0aW9uIiwiZml4ZWQiKSxvLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKSxvLnNldFByb3BlcnR5KCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpLG8uc2V0UHJvcGVydHkoImJvcmRlciIsIjAiKSxvLnNldFByb3BlcnR5KCJvcGFjaXR5IiwiMCIpLHIuc3JjPSJhYm91dDpibGFuayIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKSwhKGE9ci5jb250ZW50RG9jdW1lbnR8fCgoaT1yLmNvbnRlbnRXaW5kb3cpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5kb2N1bWVudCkpKXRocm93IG5ldyBFcnJvcigiSWZyYW1lIGRvY3VtZW50IGlzIG5vdCBhY2Nlc3NpYmxlIik7cmV0dXJuIGwoe2lmcmFtZTphfSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHIpfSksMCksWzJdfXZhciBkLHN9KSl9KSl9KSgoZnVuY3Rpb24obCl7dmFyIGk9bC5pZnJhbWU7cmV0dXJuIGJ0KHQsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgcixvLGEsYztyZXR1cm4gVnQodGhpcywoZnVuY3Rpb24oZCl7cmV0dXJuIHI9aS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxvPXIuZ2V0Q29udGV4dCgiMmQiKSxhPWhtLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHVhKG8scyl9KSksYz17fSxnbS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgdT11YShvLHMpO2EuaW5jbHVkZXModSl8fChjW3NdPXUpfSkpLGUoYyksWzJdfSkpfSkpfSkpfWNhdGNoe24oe2Vycm9yOiJ1bnN1cHBvcnRlZCJ9KX19KSl9KSksYXQoImhhcmR3YXJlIiwoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsZSl7dmFyIG49bmF2aWdhdG9yLmRldmljZU1lbW9yeSE9PXZvaWQgMD9uYXZpZ2F0b3IuZGV2aWNlTWVtb3J5OjAsbD13aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnk/d2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeTowO3Qoe3ZpZGVvY2FyZDpibSgpLGFyY2hpdGVjdHVyZTpWbSgpLGRldmljZU1lbW9yeTpuLnRvU3RyaW5nKCl8fCJ1bmRlZmluZWQiLGpzSGVhcFNpemVMaW1pdDpsLmpzSGVhcFNpemVMaW1pdHx8MH0pfSkpfSkpLGF0KCJsb2NhbGVzIiwoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3Qoe2xhbmd1YWdlczpuYXZpZ2F0b3IubGFuZ3VhZ2UsdGltZXpvbmU6SW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lfSl9KSl9KSksYXQoInBlcm1pc3Npb25zIiwoZnVuY3Rpb24oKXtyZXR1cm4gYnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0O3JldHVybiBWdCh0aGlzLChmdW5jdGlvbihlKXtyZXR1cm4gZ249KFJlPT1udWxsP3ZvaWQgMDpSZS5wZXJtaXNzaW9uc190b19jaGVjayl8fFsiYWNjZWxlcm9tZXRlciIsImFjY2Vzc2liaWxpdHkiLCJhY2Nlc3NpYmlsaXR5LWV2ZW50cyIsImFtYmllbnQtbGlnaHQtc2Vuc29yIiwiYmFja2dyb3VuZC1mZXRjaCIsImJhY2tncm91bmQtc3luYyIsImJsdWV0b290aCIsImNhbWVyYSIsImNsaXBib2FyZC1yZWFkIiwiY2xpcGJvYXJkLXdyaXRlIiwiZGV2aWNlLWluZm8iLCJkaXNwbGF5LWNhcHR1cmUiLCJneXJvc2NvcGUiLCJnZW9sb2NhdGlvbiIsImxvY2FsLWZvbnRzIiwibWFnbmV0b21ldGVyIiwibWljcm9waG9uZSIsIm1pZGkiLCJuZmMiLCJub3RpZmljYXRpb25zIiwicGF5bWVudC1oYW5kbGVyIiwicGVyc2lzdGVudC1zdG9yYWdlIiwicHVzaCIsInNwZWFrZXIiLCJzdG9yYWdlLWFjY2VzcyIsInRvcC1sZXZlbC1zdG9yYWdlLWFjY2VzcyIsIndpbmRvdy1tYW5hZ2VtZW50IiwicXVlcnkiXSxQdCgpLm5hbWUudG9Mb3dlckNhc2UoKT09PSJzYWZhcmkiJiYoZ249Z24uZmlsdGVyKChmdW5jdGlvbihuKXtyZXR1cm4hWyJjYW1lcmEiLCJnZW9sb2NhdGlvbiIsIm1pY3JvcGhvbmUiXS5pbmNsdWRlcyhuKX0pKSksdD1BcnJheS5mcm9tKHtsZW5ndGg6KFJlPT1udWxsP3ZvaWQgMDpSZS5yZXRyaWVzKXx8M30sKGZ1bmN0aW9uKCl7cmV0dXJuKGZ1bmN0aW9uKCl7cmV0dXJuIGJ0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbixsLGkscixvO3JldHVybiBWdCh0aGlzLChmdW5jdGlvbihhKXtzd2l0Y2goYS5sYWJlbCl7Y2FzZSAwOm49e30sbD0wLGk9Z24sYS5sYWJlbD0xO2Nhc2UgMTppZighKGw8aS5sZW5ndGgpKXJldHVyblszLDZdO3I9aVtsXSxhLmxhYmVsPTI7Y2FzZSAyOnJldHVybiBhLnRyeXMucHVzaChbMiw0LCw1XSksWzQsbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHtuYW1lOnJ9KV07Y2FzZSAzOnJldHVybiBvPWEuc2VudCgpLG5bcl09by5zdGF0ZS50b1N0cmluZygpLFszLDVdO2Nhc2UgNDpyZXR1cm4gYS5zZW50KCksWzMsNV07Y2FzZSA1OnJldHVybiBsKyssWzMsMV07Y2FzZSA2OnJldHVyblsyLG5dfX0pKX0pKX0pKCl9KSksWzIsUHJvbWlzZS5hbGwodCkudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIG1tKG4sZ24pfSkpXX0pKX0pKX0pKSxhdCgicGx1Z2lucyIsKGZ1bmN0aW9uKCl7dmFyIHQ9W107aWYobmF2aWdhdG9yLnBsdWdpbnMpZm9yKHZhciBlPTA7ZTxuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGg7ZSsrKXt2YXIgbj1uYXZpZ2F0b3IucGx1Z2luc1tlXTt0LnB1c2goW24ubmFtZSxuLmZpbGVuYW1lLG4uZGVzY3JpcHRpb25dLmpvaW4oInwiKSl9cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihsKXtsKHtwbHVnaW5zOnR9KX0pKX0pKSxhdCgic2NyZWVuIiwoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3Qoe2lzX3RvdWNoc2NyZWVuOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4wLG1heFRvdWNoUG9pbnRzOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyxjb2xvckRlcHRoOnNjcmVlbi5jb2xvckRlcHRoLG1lZGlhTWF0Y2hlczpmbSgpfSl9KSl9KSksYXQoInN5c3RlbSIsKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXt2YXIgZT1QdCgpLG49e3BsYXRmb3JtOndpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0scHJvZHVjdFN1YjpuYXZpZ2F0b3IucHJvZHVjdFN1Yixwcm9kdWN0Om5hdmlnYXRvci5wcm9kdWN0LHVzZXJhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LGhhcmR3YXJlQ29uY3VycmVuY3k6bmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3ksYnJvd3Nlcjp7bmFtZTplLm5hbWUsdmVyc2lvbjplLnZlcnNpb259fTtlLm5hbWUudG9Mb3dlckNhc2UoKSE9PSJzYWZhcmkiJiYobi5hcHBsZVBheVZlcnNpb249KGZ1bmN0aW9uKCl7aWYod2luZG93LmxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiImJnR5cGVvZiB3aW5kb3cuQXBwbGVQYXlTZXNzaW9uPT0iZnVuY3Rpb24iKXRyeXtmb3IodmFyIGw9d2luZG93LkFwcGxlUGF5U2Vzc2lvbi5zdXBwb3J0c1ZlcnNpb24saT0xNTtpPjA7aS0tKWlmKGwoaSkpcmV0dXJuIGl9Y2F0Y2h7cmV0dXJuIDB9cmV0dXJuIDB9KSgpLG4uY29va2llRW5hYmxlZD13aW5kb3cubmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpLHQobil9KSl9KSk7dmFyIFRlLEFtPVB0KCkubmFtZSE9PSJTYW1zdW5nQnJvd3NlciI/MTozLGs9bnVsbDthdCgid2ViZ2wiLChmdW5jdGlvbigpe3JldHVybiBidCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIFZ0KHRoaXMsKGZ1bmN0aW9uKGUpe3R5cGVvZiBkb2N1bWVudDwidSImJigoVGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLndpZHRoPTIwMCxUZS5oZWlnaHQ9MTAwLGs9VGUuZ2V0Q29udGV4dCgid2ViZ2wiKSk7dHJ5e2lmKCFrKXRocm93IG5ldyBFcnJvcigiV2ViR0wgbm90IHN1cHBvcnRlZCIpO3JldHVybiB0PUFycmF5LmZyb20oe2xlbmd0aDpBbX0sKGZ1bmN0aW9uKCl7cmV0dXJuKGZ1bmN0aW9uKCl7dHJ5e2lmKCFrKXRocm93IG5ldyBFcnJvcigiV2ViR0wgbm90IHN1cHBvcnRlZCIpO3ZhciBuPWAKICAgICAgICAgIGF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uOwogICAgICAgICAgdm9pZCBtYWluKCkgewogICAgICAgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMC4wLCAxLjApOwogICAgICAgICAgfQogICAgICBgLGw9YAogICAgICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CiAgICAgICAgICB2b2lkIG1haW4oKSB7CiAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjgxMiwgMC4xOTUsIDAuNTUzLCAwLjkyMSk7IC8vIFNldCBsaW5lIGNvbG9yCiAgICAgICAgICB9CiAgICAgIGAsaT1rLmNyZWF0ZVNoYWRlcihrLlZFUlRFWF9TSEFERVIpLHI9ay5jcmVhdGVTaGFkZXIoay5GUkFHTUVOVF9TSEFERVIpO2lmKCFpfHwhcil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2hhZGVycyIpO2lmKGsuc2hhZGVyU291cmNlKGksbiksay5zaGFkZXJTb3VyY2UocixsKSxrLmNvbXBpbGVTaGFkZXIoaSksIWsuZ2V0U2hhZGVyUGFyYW1ldGVyKGksay5DT01QSUxFX1NUQVRVUykpdGhyb3cgbmV3IEVycm9yKCJWZXJ0ZXggc2hhZGVyIGNvbXBpbGF0aW9uIGZhaWxlZDogIitrLmdldFNoYWRlckluZm9Mb2coaSkpO2lmKGsuY29tcGlsZVNoYWRlcihyKSwhay5nZXRTaGFkZXJQYXJhbWV0ZXIocixrLkNPTVBJTEVfU1RBVFVTKSl0aHJvdyBuZXcgRXJyb3IoIkZyYWdtZW50IHNoYWRlciBjb21waWxhdGlvbiBmYWlsZWQ6ICIray5nZXRTaGFkZXJJbmZvTG9nKHIpKTt2YXIgbz1rLmNyZWF0ZVByb2dyYW0oKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2hhZGVyIHByb2dyYW0iKTtpZihrLmF0dGFjaFNoYWRlcihvLGkpLGsuYXR0YWNoU2hhZGVyKG8sciksay5saW5rUHJvZ3JhbShvKSwhay5nZXRQcm9ncmFtUGFyYW1ldGVyKG8say5MSU5LX1NUQVRVUykpdGhyb3cgbmV3IEVycm9yKCJTaGFkZXIgcHJvZ3JhbSBsaW5raW5nIGZhaWxlZDogIitrLmdldFByb2dyYW1JbmZvTG9nKG8pKTtrLnVzZVByb2dyYW0obyk7Zm9yKHZhciBhPTEzNyxjPW5ldyBGbG9hdDMyQXJyYXkoNCphKSxkPTIqTWF0aC5QSS9hLHM9MDtzPGE7cysrKXt2YXIgdT1zKmQ7Y1s0KnNdPTAsY1s0KnMrMV09MCxjWzQqcysyXT1NYXRoLmNvcyh1KSooVGUud2lkdGgvMiksY1s0KnMrM109TWF0aC5zaW4odSkqKFRlLmhlaWdodC8yKX12YXIgaD1rLmNyZWF0ZUJ1ZmZlcigpO2suYmluZEJ1ZmZlcihrLkFSUkFZX0JVRkZFUixoKSxrLmJ1ZmZlckRhdGEoay5BUlJBWV9CVUZGRVIsYyxrLlNUQVRJQ19EUkFXKTt2YXIgZz1rLmdldEF0dHJpYkxvY2F0aW9uKG8sInBvc2l0aW9uIik7ay5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShnKSxrLnZlcnRleEF0dHJpYlBvaW50ZXIoZywyLGsuRkxPQVQsITEsMCwwKSxrLnZpZXdwb3J0KDAsMCxUZS53aWR0aCxUZS5oZWlnaHQpLGsuY2xlYXJDb2xvcigwLDAsMCwxKSxrLmNsZWFyKGsuQ09MT1JfQlVGRkVSX0JJVCksay5kcmF3QXJyYXlzKGsuTElORVMsMCwyKmEpO3ZhciBiPW5ldyBVaW50OENsYW1wZWRBcnJheShUZS53aWR0aCpUZS5oZWlnaHQqNCk7cmV0dXJuIGsucmVhZFBpeGVscygwLDAsVGUud2lkdGgsVGUuaGVpZ2h0LGsuUkdCQSxrLlVOU0lHTkVEX0JZVEUsYiksbmV3IEltYWdlRGF0YShiLFRlLndpZHRoLFRlLmhlaWdodCl9Y2F0Y2h7cmV0dXJuIG5ldyBJbWFnZURhdGEoMSwxKX1maW5hbGx5e2smJihrLmJpbmRCdWZmZXIoay5BUlJBWV9CVUZGRVIsbnVsbCksay51c2VQcm9ncmFtKG51bGwpLGsudmlld3BvcnQoMCwwLGsuZHJhd2luZ0J1ZmZlcldpZHRoLGsuZHJhd2luZ0J1ZmZlckhlaWdodCksay5jbGVhckNvbG9yKDAsMCwwLDApKX19KSgpfSkpLFsyLHtjb21tb25JbWFnZUhhc2g6Y3IoRmQodCxUZS53aWR0aCxUZS5oZWlnaHQpLmRhdGEudG9TdHJpbmcoKSkudG9TdHJpbmcoKX1dfWNhdGNoe3JldHVyblsyLHt3ZWJnbDoidW5zdXBwb3J0ZWQifV19cmV0dXJuWzJdfSkpfSkpfSkpO3ZhciBGdD1mdW5jdGlvbih0LGUsbixsKXtmb3IodmFyIGk9KG4tZSkvbCxyPTAsbz0wO288bDtvKyspcis9dChlKyhvKy41KSppKTtyZXR1cm4gcippfTthdCgibWF0aCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGJ0KHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBWdCh0aGlzLChmdW5jdGlvbih0KXtyZXR1cm5bMix7YWNvczpNYXRoLmFjb3MoLjUpLGFzaW46RnQoTWF0aC5hc2luLC0xLDEsOTcpLGF0YW46RnQoTWF0aC5hdGFuLC0xLDEsOTcpLGNvczpGdChNYXRoLmNvcywwLE1hdGguUEksOTcpLGNvc2g6TWF0aC5jb3NoKDkvNyksZTpNYXRoLkUsbGFyZ2VDb3M6TWF0aC5jb3MoMWUyMCksbGFyZ2VTaW46TWF0aC5zaW4oMWUyMCksbGFyZ2VUYW46TWF0aC50YW4oMWUyMCksbG9nOk1hdGgubG9nKDFlMykscGk6TWF0aC5QSSxzaW46RnQoTWF0aC5zaW4sLU1hdGguUEksTWF0aC5QSSw5Nyksc2luaDpGdChNYXRoLnNpbmgsLTkvNyw3LzksOTcpLHNxcnQ6TWF0aC5zcXJ0KDIpLHRhbjpGdChNYXRoLnRhbiwwLDIqTWF0aC5QSSw5NyksdGFuaDpGdChNYXRoLnRhbmgsLTkvNyw3LzksOTcpfV19KSl9KSl9KSk7Y2xhc3MgcG17Y29uc3RydWN0b3IoKXt0aGlzLmRlZmF1bHRJbmNsdWRlT3B0aW9uPVsiYXVkaW8iLCJjYW52YXMiLCJmb250cyIsImhhcmR3YXJlIiwibG9jYWxlcyIsIm1hdGgiLCJwZXJtaXNzaW9ucyIsInBsdWdpbnMiLCJzY3JlZW4iLCJzeXN0ZW0iLCJ3ZWJnbCJdLHRoaXMuY3VycmVudEluY2x1ZGVPcHRpb249W10sdGhpcy5pbml0T3B0aW9uKCl9YXN5bmMgZ2V0SWQoKXtyZXR1cm4gYXdhaXQgb20oKX1hc3luYyBnZXRKc29uRGF0YSgpe3JldHVybiBhd2FpdCBCZCgpfWluaXRPcHRpb24oKXt0aGlzLmN1cnJlbnRJbmNsdWRlT3B0aW9uPVsuLi50aGlzLmRlZmF1bHRJbmNsdWRlT3B0aW9uXSxpaSgiZXhjbHVkZSIsWyJmb250cyIsImxvY2FsZXMiLCJwZXJtaXNzaW9ucyIsInBsdWdpbnMiLCJzeXN0ZW0uYnJvd3Nlci5uYW1lIiwic3lzdGVtLmJyb3dzZXIudmVyc2lvbiJdKX1jaGFuZ2VJbmNsdWRlT3B0aW9uKGUpe3R5cGVvZiBlPT0ic3RyaW5nIj8odGhpcy5jdXJyZW50SW5jbHVkZU9wdGlvbj10aGlzLmN1cnJlbnRJbmNsdWRlT3B0aW9uLmluY2x1ZGVzKGUpP3RoaXMuY3VycmVudEluY2x1ZGVPcHRpb24uZmlsdGVyKG49Pm4hPT1lKTpbLi4udGhpcy5jdXJyZW50SW5jbHVkZU9wdGlvbixlXSxpaSgiaW5jbHVkZSIsdGhpcy5jdXJyZW50SW5jbHVkZU9wdGlvbikpOih0aGlzLmN1cnJlbnRJbmNsdWRlT3B0aW9uPVsuLi5lXSxpaSgiaW5jbHVkZSIsdGhpcy5jdXJyZW50SW5jbHVkZU9wdGlvbikpfX1jb25zdCBabT1uZXcgcG07Y2xhc3MgR217Y29uc3RydWN0b3IoZSxuKXt0aGlzLmludGVydmFsPWUsdGhpcy5nZXRDbGllbnRJbmZvPW4sdGhpcy5ldmVudHM9W10sdGhpcy50aW1lcj1udWxsfXB1c2goZSl7ZS5leHREYXRhfHwoZS5leHREYXRhPXt9KSxlLmV4dERhdGEudXJsPXdpbmRvdy5sb2NhdGlvbi5ocmVmLHRoaXMuZXZlbnRzLnB1c2goZSksdGhpcy5kb0NoZWNraW5nKCl9ZG9DaGVja2luZygpe3RoaXMudGltZXImJnRoaXMuY2xlYXJUaW1lcigpLHRoaXMudGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuc2VuZCgpLHRoaXMuY2xlYXJUaW1lcigpfSx0aGlzLmludGVydmFsKX1jbGVhclRpbWVyKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9bnVsbH1hc3luYyBzZW5kKCl7dmFyIGk7Y29uc3QgZT17Li4udGhpcy5nZXRDbGllbnRJbmZvKCksdG1Ub2tlbjphd2FpdCBabS5nZXRJZCgpfSxuPXtldmVudHM6dGhpcy5ldmVudHMsY2xpZW50SW5mbzplfSxsPWRhLmZvcm1hdFRvQW1wbGl0dWRlKG4pO2RhLmJhdGNoVHJhY2sobCksKGk9bmF2aWdhdG9yPT1udWxsP3ZvaWQgMDpuYXZpZ2F0b3Iuc2VuZEJlYWNvbik9PW51bGx8fGkuY2FsbChuYXZpZ2F0b3IsYCR7U2UuYXBpSG9zdH0vYXBpL3VzZXJfYmVoYXZpb3IvYmF0Y2hfY3JlYXRlX2V2ZW50X3YyYCxKU09OLnN0cmluZ2lmeShWbCgic2VydmVyIixuKSkpLHRoaXMuZXZlbnRzPVtdfX1mdW5jdGlvbiBYbSgpe2NvbnN0IHQ9bmV3IERhdGU7cmV0dXJue2NsaWVudFR5cGU6IndlYiIsY2xpZW50VmVyc2lvbjoiIixwcm9kdWN0TmFtZToiTWFudXMiLHRpbWV6b25lOigoKT0+e3RyeXtyZXR1cm4gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lfWNhdGNoe3JldHVybn19KSgpLHRpbWV6b25lT2Zmc2V0OnQuZ2V0VGltZXpvbmVPZmZzZXQoKX19Y29uc3QgSW09bmV3IEdtKDIwMCxYbSk7ZnVuY3Rpb24gd3QodCl7KEFycmF5LmlzQXJyYXkodCk/dDpbdF0pLm1hcChuPT4oey4uLm4sZXh0RGF0YTp7Li4ubi5leHREYXRhfSxldmVudEF0Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pKS5mb3JFYWNoKG49PntJbS5wdXNoKG4pfSl9Y2xhc3MgUm17Z2V0Q29va2llKGUpe2lmKHR5cGVvZiBkb2N1bWVudD4idSIpcmV0dXJuIGNvbnNvbGUud2FybigiQ29va2llSGVscGVyOiBDYW5ub3QgZ2V0IGNvb2tpZSBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50LiIpLG51bGw7Y29uc3Qgbj1lKyI9IixsPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2ZvcihsZXQgaT0wO2k8bC5sZW5ndGg7aSsrKXtsZXQgcj1sW2ldO2Zvcig7ci5jaGFyQXQoMCk9PT0iICI7KXI9ci5zdWJzdHJpbmcoMSxyLmxlbmd0aCk7aWYoci5pbmRleE9mKG4pPT09MClyZXR1cm4gci5zdWJzdHJpbmcobi5sZW5ndGgsci5sZW5ndGgpfXJldHVybiBudWxsfXNldENvb2tpZShlLG4sbD17fSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1Iil7Y29uc29sZS53YXJuKCJDb29raWVIZWxwZXI6IENhbm5vdCBzZXQgY29va2llIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQuIik7cmV0dXJufWxldCBpPSIiO2lmKGwuZGF5c1RvRXhwaXJlKXtjb25zdCBkPW5ldyBEYXRlO2Quc2V0VGltZShkLmdldFRpbWUoKStsLmRheXNUb0V4cGlyZSoyNCo2MCo2MCoxZTMpLGk9IjsgZXhwaXJlcz0iK2QudG9VVENTdHJpbmcoKX1jb25zdCByPWwucGF0aD8iOyBwYXRoPSIrbC5wYXRoOiI7IHBhdGg9LyIsbz1sLmRvbWFpbj8iOyBkb21haW49IitsLmRvbWFpbjoiIixhPWwuc2VjdXJlPyI7IHNlY3VyZSI6IiIsYz1sLnNhbWVTaXRlPyI7IHNhbWVzaXRlPSIrbC5zYW1lU2l0ZToiIjtkb2N1bWVudC5jb29raWU9ZSsiPSIrKG58fCIiKStpK3IrbythK2N9ZGVsZXRlQ29va2llKGUsbj17fSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1Iil7Y29uc29sZS53YXJuKCJDb29raWVIZWxwZXI6IENhbm5vdCBkZWxldGUgY29va2llIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQuIik7cmV0dXJufXRoaXMuc2V0Q29va2llKGUsIiIse2RheXNUb0V4cGlyZTotMSxwYXRoOm4ucGF0aCxkb21haW46bi5kb21haW59KX19Y29uc3QgJG49bmV3IFJtLFE9e3NwYWNlRWRpdG9ySGlnaGxpZ2h0OiJfX21hbnVzX18tc3BhY2UtZWRpdG9yLWhpZ2hsaWdodCIsdmlydHVhbFRleHROb2RlOiJfX21hbnVzX192aXJ0dWFsLXRleHQtbm9kZSIsb25seVRleHROb2RlOiJfX21hbnVzX19vbmx5LXRleHQtbm9kZSIsdGV4dE5vZGVBY3RpdmU6Il9fbWFudXNfX3RleHQtbm9kZS1hY3RpdmUiLGVkaXRNb2RlQWN0aXZlOiJfX21hbnVzX19lZGl0LW1vZGUtYWN0aXZlIixzcGFjZUNvbnRyb2xWaWV3OiJfX21hbnVzX19zcGFjZS1lZGl0b3ItY29udHJvbC1wYW5lbCIsdGV4dEVkaXRvclBhbmVsVmlldzoiX19tYW51c19fc3BhY2UtZWRpdG9yLXRleHQtZWRpdG9yLW1vZGFsIixlbGVtZW50RWRpdG9yUGFuZWxWaWV3OiJfX21hbnVzX19zcGFjZS1lZGl0b3ItZWxlbWVudC1lZGl0b3ItbW9kYWwiLGZvb3RlclRvb2xiYXJWaWV3OiJfX21hbnVzX19zcGFjZS1mb290ZXItdG9vbGJhciIsY29sb3JQaWNrZXI6ImNsci1waWNrZXIiLGNvcHlOb2RlOiJfX21hbnVzX19jb3B5LW5vZGUiLGhpZGRlbjoiX19tYW51c19faGlkZGVuIn0sVm49e2FjY2Vzc1Rva2VuOiJhY2Nlc3NfdG9rZW4ifSxyaT17ZW1iZWRDbG9zZWQ6ImVtYmVkLWNsb3NlZCJ9O3ZhciBQOyhmdW5jdGlvbih0KXt0W3QuQ2FuY2VsZWQ9MV09IkNhbmNlbGVkIix0W3QuVW5rbm93bj0yXT0iVW5rbm93biIsdFt0LkludmFsaWRBcmd1bWVudD0zXT0iSW52YWxpZEFyZ3VtZW50Iix0W3QuRGVhZGxpbmVFeGNlZWRlZD00XT0iRGVhZGxpbmVFeGNlZWRlZCIsdFt0Lk5vdEZvdW5kPTVdPSJOb3RGb3VuZCIsdFt0LkFscmVhZHlFeGlzdHM9Nl09IkFscmVhZHlFeGlzdHMiLHRbdC5QZXJtaXNzaW9uRGVuaWVkPTddPSJQZXJtaXNzaW9uRGVuaWVkIix0W3QuUmVzb3VyY2VFeGhhdXN0ZWQ9OF09IlJlc291cmNlRXhoYXVzdGVkIix0W3QuRmFpbGVkUHJlY29uZGl0aW9uPTldPSJGYWlsZWRQcmVjb25kaXRpb24iLHRbdC5BYm9ydGVkPTEwXT0iQWJvcnRlZCIsdFt0Lk91dE9mUmFuZ2U9MTFdPSJPdXRPZlJhbmdlIix0W3QuVW5pbXBsZW1lbnRlZD0xMl09IlVuaW1wbGVtZW50ZWQiLHRbdC5JbnRlcm5hbD0xM109IkludGVybmFsIix0W3QuVW5hdmFpbGFibGU9MTRdPSJVbmF2YWlsYWJsZSIsdFt0LkRhdGFMb3NzPTE1XT0iRGF0YUxvc3MiLHRbdC5VbmF1dGhlbnRpY2F0ZWQ9MTZdPSJVbmF1dGhlbnRpY2F0ZWQifSkoUHx8KFA9e30pKTtmdW5jdGlvbiBkcih0LGUpe3JldHVybiB0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiJHR5cGVOYW1lImluIHQmJnR5cGVvZiB0LiR0eXBlTmFtZT09InN0cmluZyI/ZT09PXZvaWQgMD8hMDplLnR5cGVOYW1lPT09dC4kdHlwZU5hbWU6ITF9dmFyIFo7KGZ1bmN0aW9uKHQpe3RbdC5ET1VCTEU9MV09IkRPVUJMRSIsdFt0LkZMT0FUPTJdPSJGTE9BVCIsdFt0LklOVDY0PTNdPSJJTlQ2NCIsdFt0LlVJTlQ2ND00XT0iVUlOVDY0Iix0W3QuSU5UMzI9NV09IklOVDMyIix0W3QuRklYRUQ2ND02XT0iRklYRUQ2NCIsdFt0LkZJWEVEMzI9N109IkZJWEVEMzIiLHRbdC5CT09MPThdPSJCT09MIix0W3QuU1RSSU5HPTldPSJTVFJJTkciLHRbdC5CWVRFUz0xMl09IkJZVEVTIix0W3QuVUlOVDMyPTEzXT0iVUlOVDMyIix0W3QuU0ZJWEVEMzI9MTVdPSJTRklYRUQzMiIsdFt0LlNGSVhFRDY0PTE2XT0iU0ZJWEVENjQiLHRbdC5TSU5UMzI9MTddPSJTSU5UMzIiLHRbdC5TSU5UNjQ9MThdPSJTSU5UNjQifSkoWnx8KFo9e30pKTtmdW5jdGlvbiBFbSgpe2xldCB0PTAsZT0wO2ZvcihsZXQgbD0wO2w8Mjg7bCs9Nyl7bGV0IGk9dGhpcy5idWZbdGhpcy5wb3MrK107aWYodHw9KGkmMTI3KTw8bCwoaSYxMjgpPT0wKXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLFt0LGVdfWxldCBuPXRoaXMuYnVmW3RoaXMucG9zKytdO2lmKHR8PShuJjE1KTw8MjgsZT0obiYxMTIpPj40LChuJjEyOCk9PTApcmV0dXJuIHRoaXMuYXNzZXJ0Qm91bmRzKCksW3QsZV07Zm9yKGxldCBsPTM7bDw9MzE7bCs9Nyl7bGV0IGk9dGhpcy5idWZbdGhpcy5wb3MrK107aWYoZXw9KGkmMTI3KTw8bCwoaSYxMjgpPT0wKXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLFt0LGVdfXRocm93IG5ldyBFcnJvcigiaW52YWxpZCB2YXJpbnQiKX1mdW5jdGlvbiBvaSh0LGUsbil7Zm9yKGxldCByPTA7cjwyODtyPXIrNyl7Y29uc3Qgbz10Pj4+cixhPSEoIShvPj4+NykmJmU9PTApLGM9KGE/b3wxMjg6bykmMjU1O2lmKG4ucHVzaChjKSwhYSlyZXR1cm59Y29uc3QgbD10Pj4+MjgmMTV8KGUmNyk8PDQsaT1lPj4zIT0wO2lmKG4ucHVzaCgoaT9sfDEyODpsKSYyNTUpLCEhaSl7Zm9yKGxldCByPTM7cjwzMTtyPXIrNyl7Y29uc3Qgbz1lPj4+cixhPSEhKG8+Pj43KSxjPShhP298MTI4Om8pJjI1NTtpZihuLnB1c2goYyksIWEpcmV0dXJufW4ucHVzaChlPj4+MzEmMSl9fWNvbnN0IHVsPTQyOTQ5NjcyOTY7ZnVuY3Rpb24gZ2EodCl7Y29uc3QgZT10WzBdPT09Ii0iO2UmJih0PXQuc2xpY2UoMSkpO2NvbnN0IG49MWU2O2xldCBsPTAsaT0wO2Z1bmN0aW9uIHIobyxhKXtjb25zdCBjPU51bWJlcih0LnNsaWNlKG8sYSkpO2kqPW4sbD1sKm4rYyxsPj11bCYmKGk9aSsobC91bHwwKSxsPWwldWwpfXJldHVybiByKC0yNCwtMTgpLHIoLTE4LC0xMikscigtMTIsLTYpLHIoLTYpLGU/SmQobCxpKTpzcihsLGkpfWZ1bmN0aW9uIHltKHQsZSl7bGV0IG49c3IodCxlKTtjb25zdCBsPW4uaGkmMjE0NzQ4MzY0ODtsJiYobj1KZChuLmxvLG4uaGkpKTtjb25zdCBpPVVkKG4ubG8sbi5oaSk7cmV0dXJuIGw/Ii0iK2k6aX1mdW5jdGlvbiBVZCh0LGUpe2lmKHtsbzp0LGhpOmV9PXZtKHQsZSksZTw9MjA5NzE1MSlyZXR1cm4gU3RyaW5nKHVsKmUrdCk7Y29uc3Qgbj10JjE2Nzc3MjE1LGw9KHQ+Pj4yNHxlPDw4KSYxNjc3NzIxNSxpPWU+PjE2JjY1NTM1O2xldCByPW4rbCo2Nzc3MjE2K2kqNjcxMDY1NixvPWwraSo4MTQ3NDk3LGE9aSoyO2NvbnN0IGM9MWU3O3JldHVybiByPj1jJiYobys9TWF0aC5mbG9vcihyL2MpLHIlPWMpLG8+PWMmJihhKz1NYXRoLmZsb29yKG8vYyksbyU9YyksYS50b1N0cmluZygpK2hhKG8pK2hhKHIpfWZ1bmN0aW9uIHZtKHQsZSl7cmV0dXJue2xvOnQ+Pj4wLGhpOmU+Pj4wfX1mdW5jdGlvbiBzcih0LGUpe3JldHVybntsbzp0fDAsaGk6ZXwwfX1mdW5jdGlvbiBKZCh0LGUpe3JldHVybiBlPX5lLHQ/dD1+dCsxOmUrPTEsc3IodCxlKX1jb25zdCBoYT10PT57Y29uc3QgZT1TdHJpbmcodCk7cmV0dXJuIjAwMDAwMDAiLnNsaWNlKGUubGVuZ3RoKStlfTtmdW5jdGlvbiBCaSh0LGUpe2lmKHQ+PTApe2Zvcig7dD4xMjc7KWUucHVzaCh0JjEyN3wxMjgpLHQ9dD4+Pjc7ZS5wdXNoKHQpfWVsc2V7Zm9yKGxldCBuPTA7bjw5O24rKyllLnB1c2godCYxMjd8MTI4KSx0PXQ+Pjc7ZS5wdXNoKDEpfX1mdW5jdGlvbiBTbSgpe2xldCB0PXRoaXMuYnVmW3RoaXMucG9zKytdLGU9dCYxMjc7aWYoKHQmMTI4KT09MClyZXR1cm4gdGhpcy5hc3NlcnRCb3VuZHMoKSxlO2lmKHQ9dGhpcy5idWZbdGhpcy5wb3MrK10sZXw9KHQmMTI3KTw8NywodCYxMjgpPT0wKXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLGU7aWYodD10aGlzLmJ1Zlt0aGlzLnBvcysrXSxlfD0odCYxMjcpPDwxNCwodCYxMjgpPT0wKXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLGU7aWYodD10aGlzLmJ1Zlt0aGlzLnBvcysrXSxlfD0odCYxMjcpPDwyMSwodCYxMjgpPT0wKXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLGU7dD10aGlzLmJ1Zlt0aGlzLnBvcysrXSxlfD0odCYxNSk8PDI4O2ZvcihsZXQgbj01Oyh0JjEyOCkhPT0wJiZuPDEwO24rKyl0PXRoaXMuYnVmW3RoaXMucG9zKytdO2lmKCh0JjEyOCkhPTApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHZhcmludCIpO3JldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLGU+Pj4wfXZhciBiYT17fTtjb25zdCBkZT1DbSgpO2Z1bmN0aW9uIENtKCl7Y29uc3QgdD1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKTtpZih0eXBlb2YgQmlnSW50PT0iZnVuY3Rpb24iJiZ0eXBlb2YgdC5nZXRCaWdJbnQ2ND09ImZ1bmN0aW9uIiYmdHlwZW9mIHQuZ2V0QmlnVWludDY0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgdC5zZXRCaWdJbnQ2ND09ImZ1bmN0aW9uIiYmdHlwZW9mIHQuc2V0QmlnVWludDY0PT0iZnVuY3Rpb24iJiYoISFnbG9iYWxUaGlzLkRlbm98fHR5cGVvZiBwcm9jZXNzIT0ib2JqZWN0Inx8dHlwZW9mIGJhIT0ib2JqZWN0Inx8YmEuQlVGX0JJR0lOVF9ESVNBQkxFIT09IjEiKSl7Y29uc3Qgbj1CaWdJbnQoIi05MjIzMzcyMDM2ODU0Nzc1ODA4IiksbD1CaWdJbnQoIjkyMjMzNzIwMzY4NTQ3NzU4MDciKSxpPUJpZ0ludCgiMCIpLHI9QmlnSW50KCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpO3JldHVybnt6ZXJvOkJpZ0ludCgwKSxzdXBwb3J0ZWQ6ITAscGFyc2Uobyl7Y29uc3QgYT10eXBlb2Ygbz09ImJpZ2ludCI/bzpCaWdJbnQobyk7aWYoYT5sfHxhPG4pdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGludDY0OiAke299YCk7cmV0dXJuIGF9LHVQYXJzZShvKXtjb25zdCBhPXR5cGVvZiBvPT0iYmlnaW50Ij9vOkJpZ0ludChvKTtpZihhPnJ8fGE8aSl0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdWludDY0OiAke299YCk7cmV0dXJuIGF9LGVuYyhvKXtyZXR1cm4gdC5zZXRCaWdJbnQ2NCgwLHRoaXMucGFyc2UobyksITApLHtsbzp0LmdldEludDMyKDAsITApLGhpOnQuZ2V0SW50MzIoNCwhMCl9fSx1RW5jKG8pe3JldHVybiB0LnNldEJpZ0ludDY0KDAsdGhpcy51UGFyc2UobyksITApLHtsbzp0LmdldEludDMyKDAsITApLGhpOnQuZ2V0SW50MzIoNCwhMCl9fSxkZWMobyxhKXtyZXR1cm4gdC5zZXRJbnQzMigwLG8sITApLHQuc2V0SW50MzIoNCxhLCEwKSx0LmdldEJpZ0ludDY0KDAsITApfSx1RGVjKG8sYSl7cmV0dXJuIHQuc2V0SW50MzIoMCxvLCEwKSx0LnNldEludDMyKDQsYSwhMCksdC5nZXRCaWdVaW50NjQoMCwhMCl9fX1yZXR1cm57emVybzoiMCIsc3VwcG9ydGVkOiExLHBhcnNlKG4pe3JldHVybiB0eXBlb2YgbiE9InN0cmluZyImJihuPW4udG9TdHJpbmcoKSksVmEobiksbn0sdVBhcnNlKG4pe3JldHVybiB0eXBlb2YgbiE9InN0cmluZyImJihuPW4udG9TdHJpbmcoKSksbWEobiksbn0sZW5jKG4pe3JldHVybiB0eXBlb2YgbiE9InN0cmluZyImJihuPW4udG9TdHJpbmcoKSksVmEobiksZ2Eobil9LHVFbmMobil7cmV0dXJuIHR5cGVvZiBuIT0ic3RyaW5nIiYmKG49bi50b1N0cmluZygpKSxtYShuKSxnYShuKX0sZGVjKG4sbCl7cmV0dXJuIHltKG4sbCl9LHVEZWMobixsKXtyZXR1cm4gVWQobixsKX19fWZ1bmN0aW9uIFZhKHQpe2lmKCEvXi0/WzAtOV0rJC8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgaW50NjQ6ICIrdCl9ZnVuY3Rpb24gbWEodCl7aWYoIS9eWzAtOV0rJC8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdWludDY0OiAiK3QpfWZ1bmN0aW9uIEx0KHQsZSl7c3dpdGNoKHQpe2Nhc2UgWi5TVFJJTkc6cmV0dXJuIiI7Y2FzZSBaLkJPT0w6cmV0dXJuITE7Y2FzZSBaLkRPVUJMRTpjYXNlIFouRkxPQVQ6cmV0dXJuIDA7Y2FzZSBaLklOVDY0OmNhc2UgWi5VSU5UNjQ6Y2FzZSBaLlNGSVhFRDY0OmNhc2UgWi5GSVhFRDY0OmNhc2UgWi5TSU5UNjQ6cmV0dXJuIGU/IjAiOmRlLnplcm87Y2FzZSBaLkJZVEVTOnJldHVybiBuZXcgVWludDhBcnJheSgwKTtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBXbSh0LGUpe3N3aXRjaCh0KXtjYXNlIFouQk9PTDpyZXR1cm4gZT09PSExO2Nhc2UgWi5TVFJJTkc6cmV0dXJuIGU9PT0iIjtjYXNlIFouQllURVM6cmV0dXJuIGUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiYhZS5ieXRlTGVuZ3RoO2RlZmF1bHQ6cmV0dXJuIGU9PTB9fWNvbnN0IHhkPTIsR3Q9U3ltYm9sLmZvcigicmVmbGVjdCB1bnNhZmUgbG9jYWwiKTtmdW5jdGlvbiB3ZCh0LGUpe2NvbnN0IG49dFtlLmxvY2FsTmFtZV0uY2FzZTtyZXR1cm4gbj09PXZvaWQgMD9uOmUuZmllbGRzLmZpbmQobD0+bC5sb2NhbE5hbWU9PT1uKX1mdW5jdGlvbiBCbSh0LGUpe2NvbnN0IG49ZS5sb2NhbE5hbWU7aWYoZS5vbmVvZilyZXR1cm4gdFtlLm9uZW9mLmxvY2FsTmFtZV0uY2FzZT09PW47aWYoZS5wcmVzZW5jZSE9eGQpcmV0dXJuIHRbbl0hPT12b2lkIDAmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pO3N3aXRjaChlLmZpZWxkS2luZCl7Y2FzZSJsaXN0IjpyZXR1cm4gdFtuXS5sZW5ndGg+MDtjYXNlIm1hcCI6cmV0dXJuIE9iamVjdC5rZXlzKHRbbl0pLmxlbmd0aD4wO2Nhc2Uic2NhbGFyIjpyZXR1cm4hV20oZS5zY2FsYXIsdFtuXSk7Y2FzZSJlbnVtIjpyZXR1cm4gdFtuXSE9PWUuZW51bS52YWx1ZXNbMF0ubnVtYmVyfXRocm93IG5ldyBFcnJvcigibWVzc2FnZSBmaWVsZCB3aXRoIGltcGxpY2l0IHByZXNlbmNlIil9ZnVuY3Rpb24gdm4odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJnRbZV0hPT12b2lkIDB9ZnVuY3Rpb24ga2QodCxlKXtpZihlLm9uZW9mKXtjb25zdCBuPXRbZS5vbmVvZi5sb2NhbE5hbWVdO3JldHVybiBuLmNhc2U9PT1lLmxvY2FsTmFtZT9uLnZhbHVlOnZvaWQgMH1yZXR1cm4gdFtlLmxvY2FsTmFtZV19ZnVuY3Rpb24gemQodCxlLG4pe2Uub25lb2Y/dFtlLm9uZW9mLmxvY2FsTmFtZV09e2Nhc2U6ZS5sb2NhbE5hbWUsdmFsdWU6bn06dFtlLmxvY2FsTmFtZV09bn1mdW5jdGlvbiBObSh0LGUpe2NvbnN0IG49ZS5sb2NhbE5hbWU7aWYoZS5vbmVvZil7Y29uc3QgbD1lLm9uZW9mLmxvY2FsTmFtZTt0W2xdLmNhc2U9PT1uJiYodFtsXT17Y2FzZTp2b2lkIDB9KX1lbHNlIGlmKGUucHJlc2VuY2UhPXhkKWRlbGV0ZSB0W25dO2Vsc2Ugc3dpdGNoKGUuZmllbGRLaW5kKXtjYXNlIm1hcCI6dFtuXT17fTticmVhaztjYXNlImxpc3QiOnRbbl09W107YnJlYWs7Y2FzZSJlbnVtIjp0W25dPWUuZW51bS52YWx1ZXNbMF0ubnVtYmVyO2JyZWFrO2Nhc2Uic2NhbGFyIjp0W25dPUx0KGUuc2NhbGFyLGUubG9uZ0FzU3RyaW5nKTticmVha319ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIHVyKHQsZSl7dmFyIG4sbCxpLHI7aWYoQ3QodCkmJkd0IGluIHQmJiJhZGQiaW4gdCYmImZpZWxkImluIHQmJnR5cGVvZiB0LmZpZWxkPT0iZnVuY3Rpb24iKXtpZihlIT09dm9pZCAwKXtjb25zdCBvPWUsYT10LmZpZWxkKCk7cmV0dXJuIG8ubGlzdEtpbmQ9PWEubGlzdEtpbmQmJm8uc2NhbGFyPT09YS5zY2FsYXImJigobj1vLm1lc3NhZ2UpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi50eXBlTmFtZSk9PT0oKGw9YS5tZXNzYWdlKT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwudHlwZU5hbWUpJiYoKGk9by5lbnVtKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkudHlwZU5hbWUpPT09KChyPWEuZW51bSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnR5cGVOYW1lKX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBncih0LGUpe3ZhciBuLGwsaSxyO2lmKEN0KHQpJiZHdCBpbiB0JiYiaGFzImluIHQmJiJmaWVsZCJpbiB0JiZ0eXBlb2YgdC5maWVsZD09ImZ1bmN0aW9uIil7aWYoZSE9PXZvaWQgMCl7Y29uc3Qgbz1lLGE9dC5maWVsZCgpO3JldHVybiBvLm1hcEtleT09PWEubWFwS2V5JiZvLm1hcEtpbmQ9PWEubWFwS2luZCYmby5zY2FsYXI9PT1hLnNjYWxhciYmKChuPW8ubWVzc2FnZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLnR5cGVOYW1lKT09PSgobD1hLm1lc3NhZ2UpPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC50eXBlTmFtZSkmJigoaT1vLmVudW0pPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS50eXBlTmFtZSk9PT0oKHI9YS5lbnVtKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIudHlwZU5hbWUpfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGhyKHQsZSl7cmV0dXJuIEN0KHQpJiZHdCBpbiB0JiYiZGVzYyJpbiB0JiZDdCh0LmRlc2MpJiZ0LmRlc2Mua2luZD09PSJtZXNzYWdlIiYmKGU9PT12b2lkIDB8fHQuZGVzYy50eXBlTmFtZT09ZS50eXBlTmFtZSl9ZnVuY3Rpb24gRm0odCl7cmV0dXJuIFFkKHQuJHR5cGVOYW1lKX1mdW5jdGlvbiB6bih0KXtjb25zdCBlPXQuZmllbGRzWzBdO3JldHVybiBRZCh0LnR5cGVOYW1lKSYmZSE9PXZvaWQgMCYmZS5maWVsZEtpbmQ9PSJzY2FsYXIiJiZlLm5hbWU9PSJ2YWx1ZSImJmUubnVtYmVyPT0xfWZ1bmN0aW9uIFFkKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImdvb2dsZS5wcm90b2J1Zi4iKSYmWyJEb3VibGVWYWx1ZSIsIkZsb2F0VmFsdWUiLCJJbnQ2NFZhbHVlIiwiVUludDY0VmFsdWUiLCJJbnQzMlZhbHVlIiwiVUludDMyVmFsdWUiLCJCb29sVmFsdWUiLCJTdHJpbmdWYWx1ZSIsIkJ5dGVzVmFsdWUiXS5pbmNsdWRlcyh0LnN1YnN0cmluZygxNikpfWNvbnN0IFltPTk5OSxVbT05OTgsZ2w9MjtmdW5jdGlvbiBkdCh0LGUpe2lmKGRyKGUsdCkpcmV0dXJuIGU7Y29uc3Qgbj16bSh0KTtyZXR1cm4gZSE9PXZvaWQgMCYmSm0odCxuLGUpLG59ZnVuY3Rpb24gSm0odCxlLG4pe2Zvcihjb25zdCBsIG9mIHQubWVtYmVycyl7bGV0IGk9bltsLmxvY2FsTmFtZV07aWYoaT09bnVsbCljb250aW51ZTtsZXQgcjtpZihsLmtpbmQ9PSJvbmVvZiIpe2NvbnN0IG89d2QobixsKTtpZighbyljb250aW51ZTtyPW8saT1rZChuLG8pfWVsc2Ugcj1sO3N3aXRjaChyLmZpZWxkS2luZCl7Y2FzZSJtZXNzYWdlIjppPWJyKHIsaSk7YnJlYWs7Y2FzZSJzY2FsYXIiOmk9TGQocixpKTticmVhaztjYXNlImxpc3QiOmk9d20ocixpKTticmVhaztjYXNlIm1hcCI6aT14bShyLGkpO2JyZWFrfXpkKGUscixpKX1yZXR1cm4gZX1mdW5jdGlvbiBMZCh0LGUpe3JldHVybiB0LnNjYWxhcj09Wi5CWVRFUz9WcihlKTplfWZ1bmN0aW9uIHhtKHQsZSl7aWYoQ3QoZSkpe2lmKHQuc2NhbGFyPT1aLkJZVEVTKXJldHVybiBmYShlLFZyKTtpZih0Lm1hcEtpbmQ9PSJtZXNzYWdlIilyZXR1cm4gZmEoZSxuPT5icih0LG4pKX1yZXR1cm4gZX1mdW5jdGlvbiB3bSh0LGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2lmKHQuc2NhbGFyPT1aLkJZVEVTKXJldHVybiBlLm1hcChWcik7aWYodC5saXN0S2luZD09Im1lc3NhZ2UiKXJldHVybiBlLm1hcChuPT5icih0LG4pKX1yZXR1cm4gZX1mdW5jdGlvbiBicih0LGUpe2lmKHQuZmllbGRLaW5kPT0ibWVzc2FnZSImJiF0Lm9uZW9mJiZ6bih0Lm1lc3NhZ2UpKXJldHVybiBMZCh0Lm1lc3NhZ2UuZmllbGRzWzBdLGUpO2lmKEN0KGUpKXtpZih0Lm1lc3NhZ2UudHlwZU5hbWU9PSJnb29nbGUucHJvdG9idWYuU3RydWN0IiYmdC5wYXJlbnQudHlwZU5hbWUhPT0iZ29vZ2xlLnByb3RvYnVmLlZhbHVlIilyZXR1cm4gZTtpZighZHIoZSx0Lm1lc3NhZ2UpKXJldHVybiBkdCh0Lm1lc3NhZ2UsZSl9cmV0dXJuIGV9ZnVuY3Rpb24gVnIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/bmV3IFVpbnQ4QXJyYXkodCk6dH1mdW5jdGlvbiBmYSh0LGUpe2NvbnN0IG49e307Zm9yKGNvbnN0IGwgb2YgT2JqZWN0LmVudHJpZXModCkpbltsWzBdXT1lKGxbMV0pO3JldHVybiBufWNvbnN0IGttPVN5bWJvbCgpLEFhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHptKHQpe2xldCBlO2lmKFFtKHQpKXtjb25zdCBuPUFhLmdldCh0KTtsZXQgbCxpO2lmKG4pKHtwcm90b3R5cGU6bCxtZW1iZXJzOml9PW4pO2Vsc2V7bD17fSxpPW5ldyBTZXQ7Zm9yKGNvbnN0IHIgb2YgdC5tZW1iZXJzKXIua2luZCE9Im9uZW9mIiYmKHIuZmllbGRLaW5kIT0ic2NhbGFyIiYmci5maWVsZEtpbmQhPSJlbnVtInx8ci5wcmVzZW5jZSE9Z2wmJihpLmFkZChyKSxsW3IubG9jYWxOYW1lXT1haShyKSkpO0FhLnNldCh0LHtwcm90b3R5cGU6bCxtZW1iZXJzOml9KX1lPU9iamVjdC5jcmVhdGUobCksZS4kdHlwZU5hbWU9dC50eXBlTmFtZTtmb3IoY29uc3QgciBvZiB0Lm1lbWJlcnMpaS5oYXMocil8fHIua2luZD09ImZpZWxkIiYmKHIuZmllbGRLaW5kPT0ibWVzc2FnZSJ8fChyLmZpZWxkS2luZD09InNjYWxhciJ8fHIuZmllbGRLaW5kPT0iZW51bSIpJiZyLnByZXNlbmNlIT1nbCl8fChlW3IubG9jYWxOYW1lXT1haShyKSl9ZWxzZXtlPXskdHlwZU5hbWU6dC50eXBlTmFtZX07Zm9yKGNvbnN0IG4gb2YgdC5tZW1iZXJzKShuLmtpbmQ9PSJvbmVvZiJ8fG4ucHJlc2VuY2U9PWdsKSYmKGVbbi5sb2NhbE5hbWVdPWFpKG4pKX1yZXR1cm4gZX1mdW5jdGlvbiBRbSh0KXtzd2l0Y2godC5maWxlLmVkaXRpb24pe2Nhc2UgWW06cmV0dXJuITE7Y2FzZSBVbTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiB0LmZpZWxkcy5zb21lKGU9PmUucHJlc2VuY2UhPWdsJiZlLmZpZWxkS2luZCE9Im1lc3NhZ2UiJiYhZS5vbmVvZil9fWZ1bmN0aW9uIGFpKHQpe2lmKHQua2luZD09Im9uZW9mIilyZXR1cm57Y2FzZTp2b2lkIDB9O2lmKHQuZmllbGRLaW5kPT0ibGlzdCIpcmV0dXJuW107aWYodC5maWVsZEtpbmQ9PSJtYXAiKXJldHVybnt9O2lmKHQuZmllbGRLaW5kPT0ibWVzc2FnZSIpcmV0dXJuIGttO2NvbnN0IGU9dC5nZXREZWZhdWx0VmFsdWUoKTtyZXR1cm4gZSE9PXZvaWQgMD90LmZpZWxkS2luZD09InNjYWxhciImJnQubG9uZ0FzU3RyaW5nP2UudG9TdHJpbmcoKTplOnQuZmllbGRLaW5kPT0ic2NhbGFyIj9MdCh0LnNjYWxhcix0LmxvbmdBc1N0cmluZyk6dC5lbnVtLnZhbHVlc1swXS5udW1iZXJ9Y29uc3QgTG09WyJGaWVsZFZhbHVlSW52YWxpZEVycm9yIiwiRmllbGRMaXN0UmFuZ2VFcnJvciIsIkZvcmVpZ25GaWVsZEVycm9yIl07Y2xhc3MgUGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLG4sbD0iRmllbGRWYWx1ZUludmFsaWRFcnJvciIpe3N1cGVyKG4pLHRoaXMubmFtZT1sLHRoaXMuZmllbGQ9KCk9PmV9fWZ1bmN0aW9uIEttKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXJyb3ImJkxtLmluY2x1ZGVzKHQubmFtZSkmJiJmaWVsZCJpbiB0JiZ0eXBlb2YgdC5maWVsZD09ImZ1bmN0aW9uIn1jb25zdCBjaT1TeW1ib2wuZm9yKCJAYnVmYnVpbGQvcHJvdG9idWYvdGV4dC1lbmNvZGluZyIpO2Z1bmN0aW9uIG1yKCl7aWYoZ2xvYmFsVGhpc1tjaV09PW51bGwpe2NvbnN0IHQ9bmV3IGdsb2JhbFRoaXMuVGV4dEVuY29kZXIsZT1uZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcjtnbG9iYWxUaGlzW2NpXT17ZW5jb2RlVXRmOChuKXtyZXR1cm4gdC5lbmNvZGUobil9LGRlY29kZVV0Zjgobil7cmV0dXJuIGUuZGVjb2RlKG4pfSxjaGVja1V0Zjgobil7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQobiksITB9Y2F0Y2h7cmV0dXJuITF9fX19cmV0dXJuIGdsb2JhbFRoaXNbY2ldfXZhciBmZTsoZnVuY3Rpb24odCl7dFt0LlZhcmludD0wXT0iVmFyaW50Iix0W3QuQml0NjQ9MV09IkJpdDY0Iix0W3QuTGVuZ3RoRGVsaW1pdGVkPTJdPSJMZW5ndGhEZWxpbWl0ZWQiLHRbdC5TdGFydEdyb3VwPTNdPSJTdGFydEdyb3VwIix0W3QuRW5kR3JvdXA9NF09IkVuZEdyb3VwIix0W3QuQml0MzI9NV09IkJpdDMyIn0pKGZlfHwoZmU9e30pKTtjb25zdCBLZD0zNDAyODIzNDY2Mzg1Mjg4NmUyMixUZD0tMzQwMjgyMzQ2NjM4NTI4ODZlMjIsTWQ9NDI5NDk2NzI5NSxIZD0yMTQ3NDgzNjQ3LERkPS0yMTQ3NDgzNjQ4O2NsYXNzIGpke2NvbnN0cnVjdG9yKGU9bXIoKS5lbmNvZGVVdGY4KXt0aGlzLmVuY29kZVV0Zjg9ZSx0aGlzLnN0YWNrPVtdLHRoaXMuY2h1bmtzPVtdLHRoaXMuYnVmPVtdfWZpbmlzaCgpe3RoaXMuYnVmLmxlbmd0aCYmKHRoaXMuY2h1bmtzLnB1c2gobmV3IFVpbnQ4QXJyYXkodGhpcy5idWYpKSx0aGlzLmJ1Zj1bXSk7bGV0IGU9MDtmb3IobGV0IGk9MDtpPHRoaXMuY2h1bmtzLmxlbmd0aDtpKyspZSs9dGhpcy5jaHVua3NbaV0ubGVuZ3RoO2xldCBuPW5ldyBVaW50OEFycmF5KGUpLGw9MDtmb3IobGV0IGk9MDtpPHRoaXMuY2h1bmtzLmxlbmd0aDtpKyspbi5zZXQodGhpcy5jaHVua3NbaV0sbCksbCs9dGhpcy5jaHVua3NbaV0ubGVuZ3RoO3JldHVybiB0aGlzLmNodW5rcz1bXSxufWZvcmsoKXtyZXR1cm4gdGhpcy5zdGFjay5wdXNoKHtjaHVua3M6dGhpcy5jaHVua3MsYnVmOnRoaXMuYnVmfSksdGhpcy5jaHVua3M9W10sdGhpcy5idWY9W10sdGhpc31qb2luKCl7bGV0IGU9dGhpcy5maW5pc2goKSxuPXRoaXMuc3RhY2sucG9wKCk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHN0YXRlLCBmb3JrIHN0YWNrIGVtcHR5Iik7cmV0dXJuIHRoaXMuY2h1bmtzPW4uY2h1bmtzLHRoaXMuYnVmPW4uYnVmLHRoaXMudWludDMyKGUuYnl0ZUxlbmd0aCksdGhpcy5yYXcoZSl9dGFnKGUsbil7cmV0dXJuIHRoaXMudWludDMyKChlPDwzfG4pPj4+MCl9cmF3KGUpe3JldHVybiB0aGlzLmJ1Zi5sZW5ndGgmJih0aGlzLmNodW5rcy5wdXNoKG5ldyBVaW50OEFycmF5KHRoaXMuYnVmKSksdGhpcy5idWY9W10pLHRoaXMuY2h1bmtzLnB1c2goZSksdGhpc311aW50MzIoZSl7Zm9yKHBhKGUpO2U+MTI3Oyl0aGlzLmJ1Zi5wdXNoKGUmMTI3fDEyOCksZT1lPj4+NztyZXR1cm4gdGhpcy5idWYucHVzaChlKSx0aGlzfWludDMyKGUpe3JldHVybiBkaShlKSxCaShlLHRoaXMuYnVmKSx0aGlzfWJvb2woZSl7cmV0dXJuIHRoaXMuYnVmLnB1c2goZT8xOjApLHRoaXN9Ynl0ZXMoZSl7cmV0dXJuIHRoaXMudWludDMyKGUuYnl0ZUxlbmd0aCksdGhpcy5yYXcoZSl9c3RyaW5nKGUpe2xldCBuPXRoaXMuZW5jb2RlVXRmOChlKTtyZXR1cm4gdGhpcy51aW50MzIobi5ieXRlTGVuZ3RoKSx0aGlzLnJhdyhuKX1mbG9hdChlKXtUbShlKTtsZXQgbj1uZXcgVWludDhBcnJheSg0KTtyZXR1cm4gbmV3IERhdGFWaWV3KG4uYnVmZmVyKS5zZXRGbG9hdDMyKDAsZSwhMCksdGhpcy5yYXcobil9ZG91YmxlKGUpe2xldCBuPW5ldyBVaW50OEFycmF5KDgpO3JldHVybiBuZXcgRGF0YVZpZXcobi5idWZmZXIpLnNldEZsb2F0NjQoMCxlLCEwKSx0aGlzLnJhdyhuKX1maXhlZDMyKGUpe3BhKGUpO2xldCBuPW5ldyBVaW50OEFycmF5KDQpO3JldHVybiBuZXcgRGF0YVZpZXcobi5idWZmZXIpLnNldFVpbnQzMigwLGUsITApLHRoaXMucmF3KG4pfXNmaXhlZDMyKGUpe2RpKGUpO2xldCBuPW5ldyBVaW50OEFycmF5KDQpO3JldHVybiBuZXcgRGF0YVZpZXcobi5idWZmZXIpLnNldEludDMyKDAsZSwhMCksdGhpcy5yYXcobil9c2ludDMyKGUpe3JldHVybiBkaShlKSxlPShlPDwxXmU+PjMxKT4+PjAsQmkoZSx0aGlzLmJ1ZiksdGhpc31zZml4ZWQ2NChlKXtsZXQgbj1uZXcgVWludDhBcnJheSg4KSxsPW5ldyBEYXRhVmlldyhuLmJ1ZmZlciksaT1kZS5lbmMoZSk7cmV0dXJuIGwuc2V0SW50MzIoMCxpLmxvLCEwKSxsLnNldEludDMyKDQsaS5oaSwhMCksdGhpcy5yYXcobil9Zml4ZWQ2NChlKXtsZXQgbj1uZXcgVWludDhBcnJheSg4KSxsPW5ldyBEYXRhVmlldyhuLmJ1ZmZlciksaT1kZS51RW5jKGUpO3JldHVybiBsLnNldEludDMyKDAsaS5sbywhMCksbC5zZXRJbnQzMig0LGkuaGksITApLHRoaXMucmF3KG4pfWludDY0KGUpe2xldCBuPWRlLmVuYyhlKTtyZXR1cm4gb2kobi5sbyxuLmhpLHRoaXMuYnVmKSx0aGlzfXNpbnQ2NChlKXtjb25zdCBuPWRlLmVuYyhlKSxsPW4uaGk+PjMxLGk9bi5sbzw8MV5sLHI9KG4uaGk8PDF8bi5sbz4+PjMxKV5sO3JldHVybiBvaShpLHIsdGhpcy5idWYpLHRoaXN9dWludDY0KGUpe2NvbnN0IG49ZGUudUVuYyhlKTtyZXR1cm4gb2kobi5sbyxuLmhpLHRoaXMuYnVmKSx0aGlzfX1jbGFzcyBmcntjb25zdHJ1Y3RvcihlLG49bXIoKS5kZWNvZGVVdGY4KXt0aGlzLmRlY29kZVV0Zjg9bix0aGlzLnZhcmludDY0PUVtLHRoaXMudWludDMyPVNtLHRoaXMuYnVmPWUsdGhpcy5sZW49ZS5sZW5ndGgsdGhpcy5wb3M9MCx0aGlzLnZpZXc9bmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXRhZygpe2xldCBlPXRoaXMudWludDMyKCksbj1lPj4+MyxsPWUmNztpZihuPD0wfHxsPDB8fGw+NSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdGFnOiBmaWVsZCBubyAiK24rIiB3aXJlIHR5cGUgIitsKTtyZXR1cm5bbixsXX1za2lwKGUsbil7bGV0IGw9dGhpcy5wb3M7c3dpdGNoKGUpe2Nhc2UgZmUuVmFyaW50OmZvcig7dGhpcy5idWZbdGhpcy5wb3MrK10mMTI4Oyk7YnJlYWs7Y2FzZSBmZS5CaXQ2NDp0aGlzLnBvcys9NDtjYXNlIGZlLkJpdDMyOnRoaXMucG9zKz00O2JyZWFrO2Nhc2UgZmUuTGVuZ3RoRGVsaW1pdGVkOmxldCBpPXRoaXMudWludDMyKCk7dGhpcy5wb3MrPWk7YnJlYWs7Y2FzZSBmZS5TdGFydEdyb3VwOmZvcig7Oyl7Y29uc3RbcixvXT10aGlzLnRhZygpO2lmKG89PT1mZS5FbmRHcm91cCl7aWYobiE9PXZvaWQgMCYmciE9PW4pdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGVuZCBncm91cCB0YWciKTticmVha310aGlzLnNraXAobyxyKX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiY2FudCBza2lwIHdpcmUgdHlwZSAiK2UpfXJldHVybiB0aGlzLmFzc2VydEJvdW5kcygpLHRoaXMuYnVmLnN1YmFycmF5KGwsdGhpcy5wb3MpfWFzc2VydEJvdW5kcygpe2lmKHRoaXMucG9zPnRoaXMubGVuKXRocm93IG5ldyBSYW5nZUVycm9yKCJwcmVtYXR1cmUgRU9GIil9aW50MzIoKXtyZXR1cm4gdGhpcy51aW50MzIoKXwwfXNpbnQzMigpe2xldCBlPXRoaXMudWludDMyKCk7cmV0dXJuIGU+Pj4xXi0oZSYxKX1pbnQ2NCgpe3JldHVybiBkZS5kZWMoLi4udGhpcy52YXJpbnQ2NCgpKX11aW50NjQoKXtyZXR1cm4gZGUudURlYyguLi50aGlzLnZhcmludDY0KCkpfXNpbnQ2NCgpe2xldFtlLG5dPXRoaXMudmFyaW50NjQoKSxsPS0oZSYxKTtyZXR1cm4gZT0oZT4+PjF8KG4mMSk8PDMxKV5sLG49bj4+PjFebCxkZS5kZWMoZSxuKX1ib29sKCl7bGV0W2Usbl09dGhpcy52YXJpbnQ2NCgpO3JldHVybiBlIT09MHx8biE9PTB9Zml4ZWQzMigpe3JldHVybiB0aGlzLnZpZXcuZ2V0VWludDMyKCh0aGlzLnBvcys9NCktNCwhMCl9c2ZpeGVkMzIoKXtyZXR1cm4gdGhpcy52aWV3LmdldEludDMyKCh0aGlzLnBvcys9NCktNCwhMCl9Zml4ZWQ2NCgpe3JldHVybiBkZS51RGVjKHRoaXMuc2ZpeGVkMzIoKSx0aGlzLnNmaXhlZDMyKCkpfXNmaXhlZDY0KCl7cmV0dXJuIGRlLmRlYyh0aGlzLnNmaXhlZDMyKCksdGhpcy5zZml4ZWQzMigpKX1mbG9hdCgpe3JldHVybiB0aGlzLnZpZXcuZ2V0RmxvYXQzMigodGhpcy5wb3MrPTQpLTQsITApfWRvdWJsZSgpe3JldHVybiB0aGlzLnZpZXcuZ2V0RmxvYXQ2NCgodGhpcy5wb3MrPTgpLTgsITApfWJ5dGVzKCl7bGV0IGU9dGhpcy51aW50MzIoKSxuPXRoaXMucG9zO3JldHVybiB0aGlzLnBvcys9ZSx0aGlzLmFzc2VydEJvdW5kcygpLHRoaXMuYnVmLnN1YmFycmF5KG4sbitlKX1zdHJpbmcoKXtyZXR1cm4gdGhpcy5kZWNvZGVVdGY4KHRoaXMuYnl0ZXMoKSl9fWZ1bmN0aW9uIGRpKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil0PU51bWJlcih0KTtlbHNlIGlmKHR5cGVvZiB0IT0ibnVtYmVyIil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgaW50MzI6ICIrdHlwZW9mIHQpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PkhkfHx0PERkKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBpbnQzMjogIit0KX1mdW5jdGlvbiBwYSh0KXtpZih0eXBlb2YgdD09InN0cmluZyIpdD1OdW1iZXIodCk7ZWxzZSBpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHVpbnQzMjogIit0eXBlb2YgdCk7aWYoIU51bWJlci5pc0ludGVnZXIodCl8fHQ+TWR8fHQ8MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdWludDMyOiAiK3QpfWZ1bmN0aW9uIFRtKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7Y29uc3QgZT10O2lmKHQ9TnVtYmVyKHQpLE51bWJlci5pc05hTih0KSYmZSE9PSJOYU4iKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmbG9hdDMyOiAiK2UpfWVsc2UgaWYodHlwZW9mIHQhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmbG9hdDMyOiAiK3R5cGVvZiB0KTtpZihOdW1iZXIuaXNGaW5pdGUodCkmJih0PktkfHx0PFRkKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZmxvYXQzMjogIit0KX1mdW5jdGlvbiBZdCh0LGUpe2NvbnN0IG49dC5maWVsZEtpbmQ9PSJsaXN0Ij91cihlLHQpOnQuZmllbGRLaW5kPT0ibWFwIj9ncihlLHQpOkFyKHQsZSk7aWYobj09PSEwKXJldHVybjtsZXQgbDtzd2l0Y2godC5maWVsZEtpbmQpe2Nhc2UibGlzdCI6bD1gZXhwZWN0ZWQgJHtQZCh0KX0sIGdvdCAke0NlKGUpfWA7YnJlYWs7Y2FzZSJtYXAiOmw9YGV4cGVjdGVkICR7JGQodCl9LCBnb3QgJHtDZShlKX1gO2JyZWFrO2RlZmF1bHQ6bD1YbCh0LGUsbil9cmV0dXJuIG5ldyBQZSh0LGwpfWZ1bmN0aW9uIFphKHQsZSxuKXtjb25zdCBsPUFyKHQsbik7aWYobCE9PSEwKXJldHVybiBuZXcgUGUodCxgbGlzdCBpdGVtICMke2UrMX06ICR7WGwodCxuLGwpfWApfWZ1bmN0aW9uIE1tKHQsZSxuKXtjb25zdCBsPV9kKGUsdC5tYXBLZXkpO2lmKGwhPT0hMClyZXR1cm4gbmV3IFBlKHQsYGludmFsaWQgbWFwIGtleTogJHtYbCh7c2NhbGFyOnQubWFwS2V5fSxlLGwpfWApO2NvbnN0IGk9QXIodCxuKTtpZihpIT09ITApcmV0dXJuIG5ldyBQZSh0LGBtYXAgZW50cnkgJHtDZShlKX06ICR7WGwodCxuLGkpfWApfWZ1bmN0aW9uIEFyKHQsZSl7cmV0dXJuIHQuc2NhbGFyIT09dm9pZCAwP19kKGUsdC5zY2FsYXIpOnQuZW51bSE9PXZvaWQgMD90LmVudW0ub3Blbj9OdW1iZXIuaXNJbnRlZ2VyKGUpOnQuZW51bS52YWx1ZXMuc29tZShuPT5uLm51bWJlcj09PWUpOmhyKGUsdC5tZXNzYWdlKX1mdW5jdGlvbiBfZCh0LGUpe3N3aXRjaChlKXtjYXNlIFouRE9VQkxFOnJldHVybiB0eXBlb2YgdD09Im51bWJlciI7Y2FzZSBaLkZMT0FUOnJldHVybiB0eXBlb2YgdCE9Im51bWJlciI/ITE6TnVtYmVyLmlzTmFOKHQpfHwhTnVtYmVyLmlzRmluaXRlKHQpPyEwOnQ+S2R8fHQ8VGQ/YCR7dC50b0ZpeGVkKCl9IG91dCBvZiByYW5nZWA6ITA7Y2FzZSBaLklOVDMyOmNhc2UgWi5TRklYRUQzMjpjYXNlIFouU0lOVDMyOnJldHVybiB0eXBlb2YgdCE9Im51bWJlciJ8fCFOdW1iZXIuaXNJbnRlZ2VyKHQpPyExOnQ+SGR8fHQ8RGQ/YCR7dC50b0ZpeGVkKCl9IG91dCBvZiByYW5nZWA6ITA7Y2FzZSBaLkZJWEVEMzI6Y2FzZSBaLlVJTlQzMjpyZXR1cm4gdHlwZW9mIHQhPSJudW1iZXIifHwhTnVtYmVyLmlzSW50ZWdlcih0KT8hMTp0Pk1kfHx0PDA/YCR7dC50b0ZpeGVkKCl9IG91dCBvZiByYW5nZWA6ITA7Y2FzZSBaLkJPT0w6cmV0dXJuIHR5cGVvZiB0PT0iYm9vbGVhbiI7Y2FzZSBaLlNUUklORzpyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciPyExOm1yKCkuY2hlY2tVdGY4KHQpfHwiaW52YWxpZCBVVEY4IjtjYXNlIFouQllURVM6cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5O2Nhc2UgWi5JTlQ2NDpjYXNlIFouU0ZJWEVENjQ6Y2FzZSBaLlNJTlQ2NDppZih0eXBlb2YgdD09ImJpZ2ludCJ8fHR5cGVvZiB0PT0ibnVtYmVyInx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0Lmxlbmd0aD4wKXRyeXtyZXR1cm4gZGUucGFyc2UodCksITB9Y2F0Y2h7cmV0dXJuYCR7dH0gb3V0IG9mIHJhbmdlYH1yZXR1cm4hMTtjYXNlIFouRklYRUQ2NDpjYXNlIFouVUlOVDY0OmlmKHR5cGVvZiB0PT0iYmlnaW50Inx8dHlwZW9mIHQ9PSJudW1iZXIifHx0eXBlb2YgdD09InN0cmluZyImJnQubGVuZ3RoPjApdHJ5e3JldHVybiBkZS51UGFyc2UodCksITB9Y2F0Y2h7cmV0dXJuYCR7dH0gb3V0IG9mIHJhbmdlYH1yZXR1cm4hMX19ZnVuY3Rpb24gWGwodCxlLG4pe3JldHVybiBuPXR5cGVvZiBuPT0ic3RyaW5nIj9gOiAke259YDpgLCBnb3QgJHtDZShlKX1gLHQuc2NhbGFyIT09dm9pZCAwP2BleHBlY3RlZCAke0htKHQuc2NhbGFyKX1gK246dC5lbnVtIT09dm9pZCAwP2BleHBlY3RlZCAke3QuZW51bS50b1N0cmluZygpfWArbjpgZXhwZWN0ZWQgJHtPZCh0Lm1lc3NhZ2UpfWArbn1mdW5jdGlvbiBDZSh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2Uib2JqZWN0IjpyZXR1cm4gdD09PW51bGw/Im51bGwiOnQgaW5zdGFuY2VvZiBVaW50OEFycmF5P2BVaW50OEFycmF5KCR7dC5sZW5ndGh9KWA6QXJyYXkuaXNBcnJheSh0KT9gQXJyYXkoJHt0Lmxlbmd0aH0pYDp1cih0KT9QZCh0LmZpZWxkKCkpOmdyKHQpPyRkKHQuZmllbGQoKSk6aHIodCk/T2QodC5kZXNjKTpkcih0KT9gbWVzc2FnZSAke3QuJHR5cGVOYW1lfWA6Im9iamVjdCI7Y2FzZSJzdHJpbmciOnJldHVybiB0Lmxlbmd0aD4zMD8ic3RyaW5nIjpgIiR7dC5zcGxpdCgnIicpLmpvaW4oJ1xcIicpfSJgO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIFN0cmluZyh0KTtjYXNlIm51bWJlciI6cmV0dXJuIFN0cmluZyh0KTtjYXNlImJpZ2ludCI6cmV0dXJuIFN0cmluZyh0KSsibiI7ZGVmYXVsdDpyZXR1cm4gdHlwZW9mIHR9fWZ1bmN0aW9uIE9kKHQpe3JldHVybmBSZWZsZWN0TWVzc2FnZSAoJHt0LnR5cGVOYW1lfSlgfWZ1bmN0aW9uIFBkKHQpe3N3aXRjaCh0Lmxpc3RLaW5kKXtjYXNlIm1lc3NhZ2UiOnJldHVybmBSZWZsZWN0TGlzdCAoJHt0Lm1lc3NhZ2UudG9TdHJpbmcoKX0pYDtjYXNlImVudW0iOnJldHVybmBSZWZsZWN0TGlzdCAoJHt0LmVudW0udG9TdHJpbmcoKX0pYDtjYXNlInNjYWxhciI6cmV0dXJuYFJlZmxlY3RMaXN0ICgke1pbdC5zY2FsYXJdfSlgfX1mdW5jdGlvbiAkZCh0KXtzd2l0Y2godC5tYXBLaW5kKXtjYXNlIm1lc3NhZ2UiOnJldHVybmBSZWZsZWN0TWFwICgke1pbdC5tYXBLZXldfSwgJHt0Lm1lc3NhZ2UudG9TdHJpbmcoKX0pYDtjYXNlImVudW0iOnJldHVybmBSZWZsZWN0TWFwICgke1pbdC5tYXBLZXldfSwgJHt0LmVudW0udG9TdHJpbmcoKX0pYDtjYXNlInNjYWxhciI6cmV0dXJuYFJlZmxlY3RNYXAgKCR7Wlt0Lm1hcEtleV19LCAke1pbdC5zY2FsYXJdfSlgfX1mdW5jdGlvbiBIbSh0KXtzd2l0Y2godCl7Y2FzZSBaLlNUUklORzpyZXR1cm4ic3RyaW5nIjtjYXNlIFouQk9PTDpyZXR1cm4iYm9vbGVhbiI7Y2FzZSBaLklOVDY0OmNhc2UgWi5TSU5UNjQ6Y2FzZSBaLlNGSVhFRDY0OnJldHVybiJiaWdpbnQgKGludDY0KSI7Y2FzZSBaLlVJTlQ2NDpjYXNlIFouRklYRUQ2NDpyZXR1cm4iYmlnaW50ICh1aW50NjQpIjtjYXNlIFouQllURVM6cmV0dXJuIlVpbnQ4QXJyYXkiO2Nhc2UgWi5ET1VCTEU6cmV0dXJuIm51bWJlciAoZmxvYXQ2NCkiO2Nhc2UgWi5GTE9BVDpyZXR1cm4ibnVtYmVyIChmbG9hdDMyKSI7Y2FzZSBaLkZJWEVEMzI6Y2FzZSBaLlVJTlQzMjpyZXR1cm4ibnVtYmVyICh1aW50MzIpIjtjYXNlIFouSU5UMzI6Y2FzZSBaLlNGSVhFRDMyOmNhc2UgWi5TSU5UMzI6cmV0dXJuIm51bWJlciAoaW50MzIpIn19ZnVuY3Rpb24gcnQodCxlLG49ITApe3JldHVybiBuZXcgcWQodCxlLG4pfWNsYXNzIHFke2dldCBzb3J0ZWRGaWVsZHMoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl9zb3J0ZWRGaWVsZHMpIT09bnVsbCYmZSE9PXZvaWQgMD9lOnRoaXMuX3NvcnRlZEZpZWxkcz10aGlzLmRlc2MuZmllbGRzLmNvbmNhdCgpLnNvcnQoKG4sbCk9Pm4ubnVtYmVyLWwubnVtYmVyKX1jb25zdHJ1Y3RvcihlLG4sbD0hMCl7dGhpcy5saXN0cz1uZXcgTWFwLHRoaXMubWFwcz1uZXcgTWFwLHRoaXMuY2hlY2s9bCx0aGlzLmRlc2M9ZSx0aGlzLm1lc3NhZ2U9dGhpc1tHdF09bj8/ZHQoZSksdGhpcy5maWVsZHM9ZS5maWVsZHMsdGhpcy5vbmVvZnM9ZS5vbmVvZnMsdGhpcy5tZW1iZXJzPWUubWVtYmVyc31maW5kTnVtYmVyKGUpe3JldHVybiB0aGlzLl9maWVsZHNCeU51bWJlcnx8KHRoaXMuX2ZpZWxkc0J5TnVtYmVyPW5ldyBNYXAodGhpcy5kZXNjLmZpZWxkcy5tYXAobj0+W24ubnVtYmVyLG5dKSkpLHRoaXMuX2ZpZWxkc0J5TnVtYmVyLmdldChlKX1vbmVvZkNhc2UoZSl7cmV0dXJuIGhuKHRoaXMubWVzc2FnZSxlKSx3ZCh0aGlzLm1lc3NhZ2UsZSl9aXNTZXQoZSl7cmV0dXJuIGhuKHRoaXMubWVzc2FnZSxlKSxCbSh0aGlzLm1lc3NhZ2UsZSl9Y2xlYXIoZSl7aG4odGhpcy5tZXNzYWdlLGUpLE5tKHRoaXMubWVzc2FnZSxlKX1nZXQoZSl7aG4odGhpcy5tZXNzYWdlLGUpO2NvbnN0IG49a2QodGhpcy5tZXNzYWdlLGUpO3N3aXRjaChlLmZpZWxkS2luZCl7Y2FzZSJsaXN0IjpsZXQgbD10aGlzLmxpc3RzLmdldChlKTtyZXR1cm4oIWx8fGxbR3RdIT09bikmJnRoaXMubGlzdHMuc2V0KGUsbD1uZXcgRG0oZSxuLHRoaXMuY2hlY2spKSxsO2Nhc2UibWFwIjpsZXQgaT10aGlzLm1hcHMuZ2V0KGUpO3JldHVybighaXx8aVtHdF0hPT1uKSYmdGhpcy5tYXBzLnNldChlLGk9bmV3IGptKGUsbix0aGlzLmNoZWNrKSksaTtjYXNlIm1lc3NhZ2UiOnJldHVybiBacihlLG4sdGhpcy5jaGVjayk7Y2FzZSJzY2FsYXIiOnJldHVybiBuPT09dm9pZCAwP0x0KGUuc2NhbGFyLCExKTpHcihlLG4pO2Nhc2UiZW51bSI6cmV0dXJuIG4/P2UuZW51bS52YWx1ZXNbMF0ubnVtYmVyfX1zZXQoZSxuKXtpZihobih0aGlzLm1lc3NhZ2UsZSksdGhpcy5jaGVjayl7Y29uc3QgaT1ZdChlLG4pO2lmKGkpdGhyb3cgaX1sZXQgbDtlLmZpZWxkS2luZD09Im1lc3NhZ2UiP2w9cHIoZSxuKTpncihuKXx8dXIobik/bD1uW0d0XTpsPVhyKGUsbiksemQodGhpcy5tZXNzYWdlLGUsbCl9Z2V0VW5rbm93bigpe3JldHVybiB0aGlzLm1lc3NhZ2UuJHVua25vd259c2V0VW5rbm93bihlKXt0aGlzLm1lc3NhZ2UuJHVua25vd249ZX19ZnVuY3Rpb24gaG4odCxlKXtpZihlLnBhcmVudC50eXBlTmFtZSE9PXQuJHR5cGVOYW1lKXRocm93IG5ldyBQZShlLGBjYW5ub3QgdXNlICR7ZS50b1N0cmluZygpfSB3aXRoIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX1gLCJGb3JlaWduRmllbGRFcnJvciIpfWNsYXNzIERte2ZpZWxkKCl7cmV0dXJuIHRoaXMuX2ZpZWxkfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX2Fyci5sZW5ndGh9Y29uc3RydWN0b3IoZSxuLGwpe3RoaXMuX2ZpZWxkPWUsdGhpcy5fYXJyPXRoaXNbR3RdPW4sdGhpcy5jaGVjaz1sfWdldChlKXtjb25zdCBuPXRoaXMuX2FycltlXTtyZXR1cm4gbj09PXZvaWQgMD92b2lkIDA6c2kodGhpcy5fZmllbGQsbix0aGlzLmNoZWNrKX1zZXQoZSxuKXtpZihlPDB8fGU+PXRoaXMuX2Fyci5sZW5ndGgpdGhyb3cgbmV3IFBlKHRoaXMuX2ZpZWxkLGBsaXN0IGl0ZW0gIyR7ZSsxfTogb3V0IG9mIHJhbmdlYCk7aWYodGhpcy5jaGVjayl7Y29uc3QgbD1aYSh0aGlzLl9maWVsZCxlLG4pO2lmKGwpdGhyb3cgbH10aGlzLl9hcnJbZV09R2EodGhpcy5fZmllbGQsbil9YWRkKGUpe2lmKHRoaXMuY2hlY2spe2NvbnN0IG49WmEodGhpcy5fZmllbGQsdGhpcy5fYXJyLmxlbmd0aCxlKTtpZihuKXRocm93IG59dGhpcy5fYXJyLnB1c2goR2EodGhpcy5fZmllbGQsZSkpfWNsZWFyKCl7dGhpcy5fYXJyLnNwbGljZSgwLHRoaXMuX2Fyci5sZW5ndGgpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMudmFsdWVzKCl9a2V5cygpe3JldHVybiB0aGlzLl9hcnIua2V5cygpfSp2YWx1ZXMoKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9hcnIpeWllbGQgc2kodGhpcy5fZmllbGQsZSx0aGlzLmNoZWNrKX0qZW50cmllcygpe2ZvcihsZXQgZT0wO2U8dGhpcy5fYXJyLmxlbmd0aDtlKyspeWllbGRbZSxzaSh0aGlzLl9maWVsZCx0aGlzLl9hcnJbZV0sdGhpcy5jaGVjayldfX1jbGFzcyBqbXtjb25zdHJ1Y3RvcihlLG4sbD0hMCl7dGhpcy5vYmo9dGhpc1tHdF09bj8/e30sdGhpcy5jaGVjaz1sLHRoaXMuX2ZpZWxkPWV9ZmllbGQoKXtyZXR1cm4gdGhpcy5fZmllbGR9c2V0KGUsbil7aWYodGhpcy5jaGVjayl7Y29uc3QgbD1NbSh0aGlzLl9maWVsZCxlLG4pO2lmKGwpdGhyb3cgbH1yZXR1cm4gdGhpcy5vYmpbcW4oZSldPV9tKHRoaXMuX2ZpZWxkLG4pLHRoaXN9ZGVsZXRlKGUpe2NvbnN0IG49cW4oZSksbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5vYmosbik7cmV0dXJuIGwmJmRlbGV0ZSB0aGlzLm9ialtuXSxsfWNsZWFyKCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModGhpcy5vYmopKWRlbGV0ZSB0aGlzLm9ialtlXX1nZXQoZSl7bGV0IG49dGhpcy5vYmpbcW4oZSldO3JldHVybiBuIT09dm9pZCAwJiYobj11aSh0aGlzLl9maWVsZCxuLHRoaXMuY2hlY2spKSxufWhhcyhlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMub2JqLHFuKGUpKX0qa2V5cygpe2Zvcihjb25zdCBlIG9mIE9iamVjdC5rZXlzKHRoaXMub2JqKSl5aWVsZCBYYShlLHRoaXMuX2ZpZWxkLm1hcEtleSl9KmVudHJpZXMoKXtmb3IoY29uc3QgZSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm9iaikpeWllbGRbWGEoZVswXSx0aGlzLl9maWVsZC5tYXBLZXkpLHVpKHRoaXMuX2ZpZWxkLGVbMV0sdGhpcy5jaGVjayldfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZW50cmllcygpfWdldCBzaXplKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMub2JqKS5sZW5ndGh9KnZhbHVlcygpe2Zvcihjb25zdCBlIG9mIE9iamVjdC52YWx1ZXModGhpcy5vYmopKXlpZWxkIHVpKHRoaXMuX2ZpZWxkLGUsdGhpcy5jaGVjayl9Zm9yRWFjaChlLG4pe2Zvcihjb25zdCBsIG9mIHRoaXMuZW50cmllcygpKWUuY2FsbChuLGxbMV0sbFswXSx0aGlzKX19ZnVuY3Rpb24gcHIodCxlKXtyZXR1cm4gaHIoZSk/Rm0oZS5tZXNzYWdlKSYmIXQub25lb2YmJnQuZmllbGRLaW5kPT0ibWVzc2FnZSI/ZS5tZXNzYWdlLnZhbHVlOmUuZGVzYy50eXBlTmFtZT09Imdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiJiZ0LnBhcmVudC50eXBlTmFtZSE9Imdvb2dsZS5wcm90b2J1Zi5WYWx1ZSI/dHMoZS5tZXNzYWdlKTplLm1lc3NhZ2U6ZX1mdW5jdGlvbiBacih0LGUsbil7cmV0dXJuIGUhPT12b2lkIDAmJih6bih0Lm1lc3NhZ2UpJiYhdC5vbmVvZiYmdC5maWVsZEtpbmQ9PSJtZXNzYWdlIj9lPXskdHlwZU5hbWU6dC5tZXNzYWdlLnR5cGVOYW1lLHZhbHVlOkdyKHQubWVzc2FnZS5maWVsZHNbMF0sZSl9OnQubWVzc2FnZS50eXBlTmFtZT09Imdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiJiZ0LnBhcmVudC50eXBlTmFtZSE9Imdvb2dsZS5wcm90b2J1Zi5WYWx1ZSImJkN0KGUpJiYoZT1lcyhlKSkpLG5ldyBxZCh0Lm1lc3NhZ2UsZSxuKX1mdW5jdGlvbiBHYSh0LGUpe3JldHVybiB0Lmxpc3RLaW5kPT0ibWVzc2FnZSI/cHIodCxlKTpYcih0LGUpfWZ1bmN0aW9uIHNpKHQsZSxuKXtyZXR1cm4gdC5saXN0S2luZD09Im1lc3NhZ2UiP1pyKHQsZSxuKTpHcih0LGUpfWZ1bmN0aW9uIF9tKHQsZSl7cmV0dXJuIHQubWFwS2luZD09Im1lc3NhZ2UiP3ByKHQsZSk6WHIodCxlKX1mdW5jdGlvbiB1aSh0LGUsbil7cmV0dXJuIHQubWFwS2luZD09Im1lc3NhZ2UiP1pyKHQsZSxuKTplfWZ1bmN0aW9uIHFuKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fHR5cGVvZiB0PT0ibnVtYmVyIj90OlN0cmluZyh0KX1mdW5jdGlvbiBYYSh0LGUpe3N3aXRjaChlKXtjYXNlIFouU1RSSU5HOnJldHVybiB0O2Nhc2UgWi5JTlQzMjpjYXNlIFouRklYRUQzMjpjYXNlIFouVUlOVDMyOmNhc2UgWi5TRklYRUQzMjpjYXNlIFouU0lOVDMyOntjb25zdCBuPU51bWJlci5wYXJzZUludCh0KTtpZihOdW1iZXIuaXNGaW5pdGUobikpcmV0dXJuIG47YnJlYWt9Y2FzZSBaLkJPT0w6c3dpdGNoKHQpe2Nhc2UidHJ1ZSI6cmV0dXJuITA7Y2FzZSJmYWxzZSI6cmV0dXJuITF9YnJlYWs7Y2FzZSBaLlVJTlQ2NDpjYXNlIFouRklYRUQ2NDp0cnl7cmV0dXJuIGRlLnVQYXJzZSh0KX1jYXRjaHt9YnJlYWs7ZGVmYXVsdDp0cnl7cmV0dXJuIGRlLnBhcnNlKHQpfWNhdGNoe31icmVha31yZXR1cm4gdH1mdW5jdGlvbiBHcih0LGUpe3N3aXRjaCh0LnNjYWxhcil7Y2FzZSBaLklOVDY0OmNhc2UgWi5TRklYRUQ2NDpjYXNlIFouU0lOVDY0OiJsb25nQXNTdHJpbmciaW4gdCYmdC5sb25nQXNTdHJpbmcmJnR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9ZGUucGFyc2UoZSkpO2JyZWFrO2Nhc2UgWi5GSVhFRDY0OmNhc2UgWi5VSU5UNjQ6ImxvbmdBc1N0cmluZyJpbiB0JiZ0LmxvbmdBc1N0cmluZyYmdHlwZW9mIGU9PSJzdHJpbmciJiYoZT1kZS51UGFyc2UoZSkpO2JyZWFrfXJldHVybiBlfWZ1bmN0aW9uIFhyKHQsZSl7c3dpdGNoKHQuc2NhbGFyKXtjYXNlIFouSU5UNjQ6Y2FzZSBaLlNGSVhFRDY0OmNhc2UgWi5TSU5UNjQ6ImxvbmdBc1N0cmluZyJpbiB0JiZ0LmxvbmdBc1N0cmluZz9lPVN0cmluZyhlKToodHlwZW9mIGU9PSJzdHJpbmcifHx0eXBlb2YgZT09Im51bWJlciIpJiYoZT1kZS5wYXJzZShlKSk7YnJlYWs7Y2FzZSBaLkZJWEVENjQ6Y2FzZSBaLlVJTlQ2NDoibG9uZ0FzU3RyaW5nImluIHQmJnQubG9uZ0FzU3RyaW5nP2U9U3RyaW5nKGUpOih0eXBlb2YgZT09InN0cmluZyJ8fHR5cGVvZiBlPT0ibnVtYmVyIikmJihlPWRlLnVQYXJzZShlKSk7YnJlYWt9cmV0dXJuIGV9ZnVuY3Rpb24gZXModCl7Y29uc3QgZT17JHR5cGVOYW1lOiJnb29nbGUucHJvdG9idWYuU3RydWN0IixmaWVsZHM6e319O2lmKEN0KHQpKWZvcihjb25zdFtuLGxdb2YgT2JqZWN0LmVudHJpZXModCkpZS5maWVsZHNbbl09bHMobCk7cmV0dXJuIGV9ZnVuY3Rpb24gdHModCl7Y29uc3QgZT17fTtmb3IoY29uc3RbbixsXW9mIE9iamVjdC5lbnRyaWVzKHQuZmllbGRzKSllW25dPW5zKGwpO3JldHVybiBlfWZ1bmN0aW9uIG5zKHQpe3N3aXRjaCh0LmtpbmQuY2FzZSl7Y2FzZSJzdHJ1Y3RWYWx1ZSI6cmV0dXJuIHRzKHQua2luZC52YWx1ZSk7Y2FzZSJsaXN0VmFsdWUiOnJldHVybiB0LmtpbmQudmFsdWUudmFsdWVzLm1hcChucyk7Y2FzZSJudWxsVmFsdWUiOmNhc2Ugdm9pZCAwOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIHQua2luZC52YWx1ZX19ZnVuY3Rpb24gbHModCl7Y29uc3QgZT17JHR5cGVOYW1lOiJnb29nbGUucHJvdG9idWYuVmFsdWUiLGtpbmQ6e2Nhc2U6dm9pZCAwfX07c3dpdGNoKHR5cGVvZiB0KXtjYXNlIm51bWJlciI6ZS5raW5kPXtjYXNlOiJudW1iZXJWYWx1ZSIsdmFsdWU6dH07YnJlYWs7Y2FzZSJzdHJpbmciOmUua2luZD17Y2FzZToic3RyaW5nVmFsdWUiLHZhbHVlOnR9O2JyZWFrO2Nhc2UiYm9vbGVhbiI6ZS5raW5kPXtjYXNlOiJib29sVmFsdWUiLHZhbHVlOnR9O2JyZWFrO2Nhc2Uib2JqZWN0IjppZih0PT09bnVsbCllLmtpbmQ9e2Nhc2U6Im51bGxWYWx1ZSIsdmFsdWU6MH07ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBuPXskdHlwZU5hbWU6Imdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWUiLHZhbHVlczpbXX07aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgbCBvZiB0KW4udmFsdWVzLnB1c2gobHMobCkpO2Uua2luZD17Y2FzZToibGlzdFZhbHVlIix2YWx1ZTpufX1lbHNlIGUua2luZD17Y2FzZToic3RydWN0VmFsdWUiLHZhbHVlOmVzKHQpfTticmVha31yZXR1cm4gZX1mdW5jdGlvbiBJcih0KXtjb25zdCBlPU9tKCk7bGV0IG49dC5sZW5ndGgqMy80O3RbdC5sZW5ndGgtMl09PSI9Ij9uLT0yOnRbdC5sZW5ndGgtMV09PSI9IiYmKG4tPTEpO2xldCBsPW5ldyBVaW50OEFycmF5KG4pLGk9MCxyPTAsbyxhPTA7Zm9yKGxldCBjPTA7Yzx0Lmxlbmd0aDtjKyspe2lmKG89ZVt0LmNoYXJDb2RlQXQoYyldLG89PT12b2lkIDApc3dpdGNoKHRbY10pe2Nhc2UiPSI6cj0wO2Nhc2VgCmA6Y2FzZSJcciI6Y2FzZSIJIjpjYXNlIiAiOmNvbnRpbnVlO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImludmFsaWQgYmFzZTY0IHN0cmluZyIpfXN3aXRjaChyKXtjYXNlIDA6YT1vLHI9MTticmVhaztjYXNlIDE6bFtpKytdPWE8PDJ8KG8mNDgpPj40LGE9byxyPTI7YnJlYWs7Y2FzZSAyOmxbaSsrXT0oYSYxNSk8PDR8KG8mNjApPj4yLGE9byxyPTM7YnJlYWs7Y2FzZSAzOmxbaSsrXT0oYSYzKTw8NnxvLHI9MDticmVha319aWYocj09MSl0aHJvdyBFcnJvcigiaW52YWxpZCBiYXNlNjQgc3RyaW5nIik7cmV0dXJuIGwuc3ViYXJyYXkoMCxpKX1mdW5jdGlvbiBpcyh0LGU9InN0ZCIpe2NvbnN0IG49cnMoZSksbD1lPT0ic3RkIjtsZXQgaT0iIixyPTAsbyxhPTA7Zm9yKGxldCBjPTA7Yzx0Lmxlbmd0aDtjKyspc3dpdGNoKG89dFtjXSxyKXtjYXNlIDA6aSs9bltvPj4yXSxhPShvJjMpPDw0LHI9MTticmVhaztjYXNlIDE6aSs9blthfG8+PjRdLGE9KG8mMTUpPDwyLHI9MjticmVhaztjYXNlIDI6aSs9blthfG8+PjZdLGkrPW5bbyY2M10scj0wO2JyZWFrfXJldHVybiByJiYoaSs9blthXSxsJiYoaSs9Ij0iLHI9PTEmJihpKz0iPSIpKSksaX1sZXQgZWwsSWEsVHQ7ZnVuY3Rpb24gcnModCl7cmV0dXJuIGVsfHwoZWw9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLnNwbGl0KCIiKSxJYT1lbC5zbGljZSgwLC0yKS5jb25jYXQoIi0iLCJfIikpLHQ9PSJ1cmwiP0lhOmVsfWZ1bmN0aW9uIE9tKCl7aWYoIVR0KXtUdD1bXTtjb25zdCB0PXJzKCJzdGQiKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylUdFt0W2VdLmNoYXJDb2RlQXQoMCldPWU7VHRbNDVdPXQuaW5kZXhPZigiKyIpLFR0Wzk1XT10LmluZGV4T2YoIi8iKX1yZXR1cm4gVHR9ZnVuY3Rpb24gU24odCl7bGV0IGU9ITE7Y29uc3Qgbj1bXTtmb3IobGV0IGw9MDtsPHQubGVuZ3RoO2wrKyl7bGV0IGk9dC5jaGFyQXQobCk7c3dpdGNoKGkpe2Nhc2UiXyI6ZT0hMDticmVhaztjYXNlIjAiOmNhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOm4ucHVzaChpKSxlPSExO2JyZWFrO2RlZmF1bHQ6ZSYmKGU9ITEsaT1pLnRvVXBwZXJDYXNlKCkpLG4ucHVzaChpKTticmVha319cmV0dXJuIG4uam9pbigiIil9Y29uc3QgUG09bmV3IFNldChbImNvbnN0cnVjdG9yIiwidG9TdHJpbmciLCJ0b0pTT04iLCJ2YWx1ZU9mIl0pO2Z1bmN0aW9uIENuKHQpe3JldHVybiBQbS5oYXModCk/dCsiJCI6dH1mdW5jdGlvbiBScih0KXtmb3IoY29uc3QgZSBvZiB0LmZpZWxkKXZuKGUsImpzb25OYW1lIil8fChlLmpzb25OYW1lPVNuKGUubmFtZSkpO3QubmVzdGVkVHlwZS5mb3JFYWNoKFJyKX1mdW5jdGlvbiAkbSh0LGUpe2NvbnN0IG49dC52YWx1ZXMuZmluZChsPT5sLm5hbWU9PT1lKTtpZighbil0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBwYXJzZSAke3R9IGRlZmF1bHQgdmFsdWU6ICR7ZX1gKTtyZXR1cm4gbi5udW1iZXJ9ZnVuY3Rpb24gcW0odCxlKXtzd2l0Y2godCl7Y2FzZSBaLlNUUklORzpyZXR1cm4gZTtjYXNlIFouQllURVM6e2NvbnN0IG49ZWYoZSk7aWYobj09PSExKXRocm93IG5ldyBFcnJvcihgY2Fubm90IHBhcnNlICR7Wlt0XX0gZGVmYXVsdCB2YWx1ZTogJHtlfWApO3JldHVybiBufWNhc2UgWi5JTlQ2NDpjYXNlIFouU0ZJWEVENjQ6Y2FzZSBaLlNJTlQ2NDpyZXR1cm4gZGUucGFyc2UoZSk7Y2FzZSBaLlVJTlQ2NDpjYXNlIFouRklYRUQ2NDpyZXR1cm4gZGUudVBhcnNlKGUpO2Nhc2UgWi5ET1VCTEU6Y2FzZSBaLkZMT0FUOnN3aXRjaChlKXtjYXNlImluZiI6cmV0dXJuIE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtjYXNlIi1pbmYiOnJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Y2FzZSJuYW4iOnJldHVybiBOdW1iZXIuTmFOO2RlZmF1bHQ6cmV0dXJuIHBhcnNlRmxvYXQoZSl9Y2FzZSBaLkJPT0w6cmV0dXJuIGU9PT0idHJ1ZSI7Y2FzZSBaLklOVDMyOmNhc2UgWi5VSU5UMzI6Y2FzZSBaLlNJTlQzMjpjYXNlIFouRklYRUQzMjpjYXNlIFouU0ZJWEVEMzI6cmV0dXJuIHBhcnNlSW50KGUsMTApfX1mdW5jdGlvbiBlZih0KXtjb25zdCBlPVtdLG49e3RhaWw6dCxjOiIiLG5leHQoKXtyZXR1cm4gdGhpcy50YWlsLmxlbmd0aD09MD8hMToodGhpcy5jPXRoaXMudGFpbFswXSx0aGlzLnRhaWw9dGhpcy50YWlsLnN1YnN0cmluZygxKSwhMCl9LHRha2UobCl7aWYodGhpcy50YWlsLmxlbmd0aD49bCl7Y29uc3QgaT10aGlzLnRhaWwuc3Vic3RyaW5nKDAsbCk7cmV0dXJuIHRoaXMudGFpbD10aGlzLnRhaWwuc3Vic3RyaW5nKGwpLGl9cmV0dXJuITF9fTtmb3IoO24ubmV4dCgpOylzd2l0Y2gobi5jKXtjYXNlIlxcIjppZihuLm5leHQoKSlzd2l0Y2gobi5jKXtjYXNlIlxcIjplLnB1c2gobi5jLmNoYXJDb2RlQXQoMCkpO2JyZWFrO2Nhc2UiYiI6ZS5wdXNoKDgpO2JyZWFrO2Nhc2UiZiI6ZS5wdXNoKDEyKTticmVhaztjYXNlIm4iOmUucHVzaCgxMCk7YnJlYWs7Y2FzZSJyIjplLnB1c2goMTMpO2JyZWFrO2Nhc2UidCI6ZS5wdXNoKDkpO2JyZWFrO2Nhc2UidiI6ZS5wdXNoKDExKTticmVhaztjYXNlIjAiOmNhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6e2NvbnN0IGw9bi5jLGk9bi50YWtlKDIpO2lmKGk9PT0hMSlyZXR1cm4hMTtjb25zdCByPXBhcnNlSW50KGwraSw4KTtpZihOdW1iZXIuaXNOYU4ocikpcmV0dXJuITE7ZS5wdXNoKHIpO2JyZWFrfWNhc2UieCI6e2NvbnN0IGw9bi5jLGk9bi50YWtlKDIpO2lmKGk9PT0hMSlyZXR1cm4hMTtjb25zdCByPXBhcnNlSW50KGwraSwxNik7aWYoTnVtYmVyLmlzTmFOKHIpKXJldHVybiExO2UucHVzaChyKTticmVha31jYXNlInUiOntjb25zdCBsPW4uYyxpPW4udGFrZSg0KTtpZihpPT09ITEpcmV0dXJuITE7Y29uc3Qgcj1wYXJzZUludChsK2ksMTYpO2lmKE51bWJlci5pc05hTihyKSlyZXR1cm4hMTtjb25zdCBvPW5ldyBVaW50OEFycmF5KDQpO25ldyBEYXRhVmlldyhvLmJ1ZmZlcikuc2V0SW50MzIoMCxyLCEwKSxlLnB1c2gob1swXSxvWzFdLG9bMl0sb1szXSk7YnJlYWt9Y2FzZSJVIjp7Y29uc3QgbD1uLmMsaT1uLnRha2UoOCk7aWYoaT09PSExKXJldHVybiExO2NvbnN0IHI9ZGUudUVuYyhsK2kpLG89bmV3IFVpbnQ4QXJyYXkoOCksYT1uZXcgRGF0YVZpZXcoby5idWZmZXIpO2Euc2V0SW50MzIoMCxyLmxvLCEwKSxhLnNldEludDMyKDQsci5oaSwhMCksZS5wdXNoKG9bMF0sb1sxXSxvWzJdLG9bM10sb1s0XSxvWzVdLG9bNl0sb1s3XSk7YnJlYWt9fWJyZWFrO2RlZmF1bHQ6ZS5wdXNoKG4uYy5jaGFyQ29kZUF0KDApKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSl9ZnVuY3Rpb24qTmkodCl7c3dpdGNoKHQua2luZCl7Y2FzZSJmaWxlIjpmb3IoY29uc3QgZSBvZiB0Lm1lc3NhZ2VzKXlpZWxkIGUseWllbGQqTmkoZSk7eWllbGQqdC5lbnVtcyx5aWVsZCp0LnNlcnZpY2VzLHlpZWxkKnQuZXh0ZW5zaW9uczticmVhaztjYXNlIm1lc3NhZ2UiOmZvcihjb25zdCBlIG9mIHQubmVzdGVkTWVzc2FnZXMpeWllbGQgZSx5aWVsZCpOaShlKTt5aWVsZCp0Lm5lc3RlZEVudW1zLHlpZWxkKnQubmVzdGVkRXh0ZW5zaW9uczticmVha319ZnVuY3Rpb24gb3MoLi4udCl7Y29uc3QgZT10ZigpO2lmKCF0Lmxlbmd0aClyZXR1cm4gZTtpZigiJHR5cGVOYW1lImluIHRbMF0mJnRbMF0uJHR5cGVOYW1lPT0iZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yU2V0Iil7Zm9yKGNvbnN0IGwgb2YgdFswXS5maWxlKXZhKGwsZSk7cmV0dXJuIGV9aWYoIiR0eXBlTmFtZSJpbiB0WzBdKXtsZXQgbz1mdW5jdGlvbihhKXtjb25zdCBjPVtdO2Zvcihjb25zdCBkIG9mIGEuZGVwZW5kZW5jeSl7aWYoZS5nZXRGaWxlKGQpIT1udWxsfHxyLmhhcyhkKSljb250aW51ZTtjb25zdCBzPWkoZCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVzb2x2ZSAke2R9LCBpbXBvcnRlZCBieSAke2EubmFtZX1gKTsia2luZCJpbiBzP2UuYWRkRmlsZShzLCExLCEwKTooci5hZGQocy5uYW1lKSxjLnB1c2gocykpfXJldHVybiBjLmNvbmNhdCguLi5jLm1hcChvKSl9O3ZhciBuPW87Y29uc3QgbD10WzBdLGk9dFsxXSxyPW5ldyBTZXQ7Zm9yKGNvbnN0IGEgb2ZbbCwuLi5vKGwpXS5yZXZlcnNlKCkpdmEoYSxlKX1lbHNlIGZvcihjb25zdCBsIG9mIHQpZm9yKGNvbnN0IGkgb2YgbC5maWxlcyllLmFkZEZpbGUoaSk7cmV0dXJuIGV9ZnVuY3Rpb24gdGYoKXtjb25zdCB0PW5ldyBNYXAsZT1uZXcgTWFwLG49bmV3IE1hcDtyZXR1cm57a2luZDoicmVnaXN0cnkiLHR5cGVzOnQsZXh0ZW5kZWVzOmUsW1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdC52YWx1ZXMoKX0sZ2V0IGZpbGVzKCl7cmV0dXJuIG4udmFsdWVzKCl9LGFkZEZpbGUobCxpLHIpe2lmKG4uc2V0KGwucHJvdG8ubmFtZSxsKSwhaSlmb3IoY29uc3QgbyBvZiBOaShsKSl0aGlzLmFkZChvKTtpZihyKWZvcihjb25zdCBvIG9mIGwuZGVwZW5kZW5jaWVzKXRoaXMuYWRkRmlsZShvLGkscil9LGFkZChsKXtpZihsLmtpbmQ9PSJleHRlbnNpb24iKXtsZXQgaT1lLmdldChsLmV4dGVuZGVlLnR5cGVOYW1lKTtpfHxlLnNldChsLmV4dGVuZGVlLnR5cGVOYW1lLGk9bmV3IE1hcCksaS5zZXQobC5udW1iZXIsbCl9dC5zZXQobC50eXBlTmFtZSxsKX0sZ2V0KGwpe3JldHVybiB0LmdldChsKX0sZ2V0RmlsZShsKXtyZXR1cm4gbi5nZXQobCl9LGdldE1lc3NhZ2UobCl7Y29uc3QgaT10LmdldChsKTtyZXR1cm4oaT09bnVsbD92b2lkIDA6aS5raW5kKT09Im1lc3NhZ2UiP2k6dm9pZCAwfSxnZXRFbnVtKGwpe2NvbnN0IGk9dC5nZXQobCk7cmV0dXJuKGk9PW51bGw/dm9pZCAwOmkua2luZCk9PSJlbnVtIj9pOnZvaWQgMH0sZ2V0RXh0ZW5zaW9uKGwpe2NvbnN0IGk9dC5nZXQobCk7cmV0dXJuKGk9PW51bGw/dm9pZCAwOmkua2luZCk9PSJleHRlbnNpb24iP2k6dm9pZCAwfSxnZXRFeHRlbnNpb25Gb3IobCxpKXt2YXIgcjtyZXR1cm4ocj1lLmdldChsLnR5cGVOYW1lKSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmdldChpKX0sZ2V0U2VydmljZShsKXtjb25zdCBpPXQuZ2V0KGwpO3JldHVybihpPT1udWxsP3ZvaWQgMDppLmtpbmQpPT0ic2VydmljZSI/aTp2b2lkIDB9fX1jb25zdCBuZj05OTgsbGY9OTk5LHJmPTksV249MTAsWm49MTEsb2Y9MTIsUmE9MTQsRXI9MyxhZj0yLEVhPTEsY2Y9MCxnaT0xLHlhPTIsZGY9MyxzZj0xLHVmPTIsZ2Y9MSxhcz17OTk4OntmaWVsZFByZXNlbmNlOjEsZW51bVR5cGU6MixyZXBlYXRlZEZpZWxkRW5jb2Rpbmc6Mix1dGY4VmFsaWRhdGlvbjozLG1lc3NhZ2VFbmNvZGluZzoxLGpzb25Gb3JtYXQ6MixlbmZvcmNlTmFtaW5nU3R5bGU6MixkZWZhdWx0U3ltYm9sVmlzaWJpbGl0eToxfSw5OTk6e2ZpZWxkUHJlc2VuY2U6MixlbnVtVHlwZToxLHJlcGVhdGVkRmllbGRFbmNvZGluZzoxLHV0ZjhWYWxpZGF0aW9uOjIsbWVzc2FnZUVuY29kaW5nOjEsanNvbkZvcm1hdDoxLGVuZm9yY2VOYW1pbmdTdHlsZToyLGRlZmF1bHRTeW1ib2xWaXNpYmlsaXR5OjF9LDFlMzp7ZmllbGRQcmVzZW5jZToxLGVudW1UeXBlOjEscmVwZWF0ZWRGaWVsZEVuY29kaW5nOjEsdXRmOFZhbGlkYXRpb246MixtZXNzYWdlRW5jb2Rpbmc6MSxqc29uRm9ybWF0OjEsZW5mb3JjZU5hbWluZ1N0eWxlOjIsZGVmYXVsdFN5bWJvbFZpc2liaWxpdHk6MX0sMTAwMTp7ZmllbGRQcmVzZW5jZToxLGVudW1UeXBlOjEscmVwZWF0ZWRGaWVsZEVuY29kaW5nOjEsdXRmOFZhbGlkYXRpb246MixtZXNzYWdlRW5jb2Rpbmc6MSxqc29uRm9ybWF0OjEsZW5mb3JjZU5hbWluZ1N0eWxlOjEsZGVmYXVsdFN5bWJvbFZpc2liaWxpdHk6Mn19O2Z1bmN0aW9uIHZhKHQsZSl7dmFyIG4sbDtjb25zdCBpPXtraW5kOiJmaWxlIixwcm90bzp0LGRlcHJlY2F0ZWQ6KGw9KG49dC5vcHRpb25zKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uZGVwcmVjYXRlZCkhPT1udWxsJiZsIT09dm9pZCAwP2w6ITEsZWRpdGlvbjptZih0KSxuYW1lOnQubmFtZS5yZXBsYWNlKC9cLnByb3RvJC8sIiIpLGRlcGVuZGVuY2llczpmZih0LGUpLGVudW1zOltdLG1lc3NhZ2VzOltdLGV4dGVuc2lvbnM6W10sc2VydmljZXM6W10sdG9TdHJpbmcoKXtyZXR1cm5gZmlsZSAke3QubmFtZX1gfX0scj1uZXcgTWFwLG89e2dldChhKXtyZXR1cm4gci5nZXQoYSl9LGFkZChhKXt2YXIgYztjdCgoKGM9YS5wcm90by5vcHRpb25zKT09PW51bGx8fGM9PT12b2lkIDA/dm9pZCAwOmMubWFwRW50cnkpPT09ITApLHIuc2V0KGEudHlwZU5hbWUsYSl9fTtmb3IoY29uc3QgYSBvZiB0LmVudW1UeXBlKWNzKGEsaSx2b2lkIDAsZSk7Zm9yKGNvbnN0IGEgb2YgdC5tZXNzYWdlVHlwZSlkcyhhLGksdm9pZCAwLGUsbyk7Zm9yKGNvbnN0IGEgb2YgdC5zZXJ2aWNlKWhmKGEsaSxlKTtGaShpLGUpO2Zvcihjb25zdCBhIG9mIHIudmFsdWVzKCkpWWkoYSxlLG8pO2Zvcihjb25zdCBhIG9mIGkubWVzc2FnZXMpWWkoYSxlLG8pLEZpKGEsZSk7ZS5hZGRGaWxlKGksITApfWZ1bmN0aW9uIEZpKHQsZSl7c3dpdGNoKHQua2luZCl7Y2FzZSJmaWxlIjpmb3IoY29uc3QgbiBvZiB0LnByb3RvLmV4dGVuc2lvbil7Y29uc3QgbD1VaShuLHQsZSk7dC5leHRlbnNpb25zLnB1c2gobCksZS5hZGQobCl9YnJlYWs7Y2FzZSJtZXNzYWdlIjpmb3IoY29uc3QgbiBvZiB0LnByb3RvLmV4dGVuc2lvbil7Y29uc3QgbD1VaShuLHQsZSk7dC5uZXN0ZWRFeHRlbnNpb25zLnB1c2gobCksZS5hZGQobCl9Zm9yKGNvbnN0IG4gb2YgdC5uZXN0ZWRNZXNzYWdlcylGaShuLGUpO2JyZWFrfX1mdW5jdGlvbiBZaSh0LGUsbil7Y29uc3QgbD10LnByb3RvLm9uZW9mRGVjbC5tYXAocj0+VmYocix0KSksaT1uZXcgU2V0O2Zvcihjb25zdCByIG9mIHQucHJvdG8uZmllbGQpe2NvbnN0IG89WmYocixsKSxhPVVpKHIsdCxlLG8sbik7dC5maWVsZHMucHVzaChhKSx0LmZpZWxkW2EubG9jYWxOYW1lXT1hLG89PT12b2lkIDA/dC5tZW1iZXJzLnB1c2goYSk6KG8uZmllbGRzLnB1c2goYSksaS5oYXMobyl8fChpLmFkZChvKSx0Lm1lbWJlcnMucHVzaChvKSkpfWZvcihjb25zdCByIG9mIGwuZmlsdGVyKG89PmkuaGFzKG8pKSl0Lm9uZW9mcy5wdXNoKHIpO2Zvcihjb25zdCByIG9mIHQubmVzdGVkTWVzc2FnZXMpWWkocixlLG4pfWZ1bmN0aW9uIGNzKHQsZSxuLGwpe3ZhciBpLHIsbyxhLGM7Y29uc3QgZD1BZih0Lm5hbWUsdC52YWx1ZSkscz17a2luZDoiZW51bSIscHJvdG86dCxkZXByZWNhdGVkOihyPShpPXQub3B0aW9ucyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmRlcHJlY2F0ZWQpIT09bnVsbCYmciE9PXZvaWQgMD9yOiExLGZpbGU6ZSxwYXJlbnQ6bixvcGVuOiEwLG5hbWU6dC5uYW1lLHR5cGVOYW1lOkpsKHQsbixlKSx2YWx1ZTp7fSx2YWx1ZXM6W10sc2hhcmVkUHJlZml4OmQsdG9TdHJpbmcoKXtyZXR1cm5gZW51bSAke3RoaXMudHlwZU5hbWV9YH19O3Mub3Blbj1SZihzKSxsLmFkZChzKTtmb3IoY29uc3QgdSBvZiB0LnZhbHVlKXtjb25zdCBoPXUubmFtZTtzLnZhbHVlcy5wdXNoKHMudmFsdWVbdS5udW1iZXJdPXtraW5kOiJlbnVtX3ZhbHVlIixwcm90bzp1LGRlcHJlY2F0ZWQ6KGE9KG89dS5vcHRpb25zKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uZGVwcmVjYXRlZCkhPT1udWxsJiZhIT09dm9pZCAwP2E6ITEscGFyZW50OnMsbmFtZTpoLGxvY2FsTmFtZTpDbihkPT1udWxsP2g6aC5zdWJzdHJpbmcoZC5sZW5ndGgpKSxudW1iZXI6dS5udW1iZXIsdG9TdHJpbmcoKXtyZXR1cm5gZW51bSB2YWx1ZSAke3MudHlwZU5hbWV9LiR7aH1gfX0pfSgoYz1uPT1udWxsP3ZvaWQgMDpuLm5lc3RlZEVudW1zKSE9PW51bGwmJmMhPT12b2lkIDA/YzplLmVudW1zKS5wdXNoKHMpfWZ1bmN0aW9uIGRzKHQsZSxuLGwsaSl7dmFyIHIsbyxhLGM7Y29uc3QgZD17a2luZDoibWVzc2FnZSIscHJvdG86dCxkZXByZWNhdGVkOihvPShyPXQub3B0aW9ucyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmRlcHJlY2F0ZWQpIT09bnVsbCYmbyE9PXZvaWQgMD9vOiExLGZpbGU6ZSxwYXJlbnQ6bixuYW1lOnQubmFtZSx0eXBlTmFtZTpKbCh0LG4sZSksZmllbGRzOltdLGZpZWxkOnt9LG9uZW9mczpbXSxtZW1iZXJzOltdLG5lc3RlZEVudW1zOltdLG5lc3RlZE1lc3NhZ2VzOltdLG5lc3RlZEV4dGVuc2lvbnM6W10sdG9TdHJpbmcoKXtyZXR1cm5gbWVzc2FnZSAke3RoaXMudHlwZU5hbWV9YH19OygoYT10Lm9wdGlvbnMpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5tYXBFbnRyeSk9PT0hMD9pLmFkZChkKTooKChjPW49PW51bGw/dm9pZCAwOm4ubmVzdGVkTWVzc2FnZXMpIT09bnVsbCYmYyE9PXZvaWQgMD9jOmUubWVzc2FnZXMpLnB1c2goZCksbC5hZGQoZCkpO2Zvcihjb25zdCBzIG9mIHQuZW51bVR5cGUpY3MocyxlLGQsbCk7Zm9yKGNvbnN0IHMgb2YgdC5uZXN0ZWRUeXBlKWRzKHMsZSxkLGwsaSl9ZnVuY3Rpb24gaGYodCxlLG4pe3ZhciBsLGk7Y29uc3Qgcj17a2luZDoic2VydmljZSIscHJvdG86dCxkZXByZWNhdGVkOihpPShsPXQub3B0aW9ucyk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmRlcHJlY2F0ZWQpIT09bnVsbCYmaSE9PXZvaWQgMD9pOiExLGZpbGU6ZSxuYW1lOnQubmFtZSx0eXBlTmFtZTpKbCh0LHZvaWQgMCxlKSxtZXRob2RzOltdLG1ldGhvZDp7fSx0b1N0cmluZygpe3JldHVybmBzZXJ2aWNlICR7dGhpcy50eXBlTmFtZX1gfX07ZS5zZXJ2aWNlcy5wdXNoKHIpLG4uYWRkKHIpO2Zvcihjb25zdCBvIG9mIHQubWV0aG9kKXtjb25zdCBhPWJmKG8scixuKTtyLm1ldGhvZHMucHVzaChhKSxyLm1ldGhvZFthLmxvY2FsTmFtZV09YX19ZnVuY3Rpb24gYmYodCxlLG4pe3ZhciBsLGkscixvO2xldCBhO3QuY2xpZW50U3RyZWFtaW5nJiZ0LnNlcnZlclN0cmVhbWluZz9hPSJiaWRpX3N0cmVhbWluZyI6dC5jbGllbnRTdHJlYW1pbmc/YT0iY2xpZW50X3N0cmVhbWluZyI6dC5zZXJ2ZXJTdHJlYW1pbmc/YT0ic2VydmVyX3N0cmVhbWluZyI6YT0idW5hcnkiO2NvbnN0IGM9bi5nZXRNZXNzYWdlKFp0KHQuaW5wdXRUeXBlKSksZD1uLmdldE1lc3NhZ2UoWnQodC5vdXRwdXRUeXBlKSk7Y3QoYyxgaW52YWxpZCBNZXRob2REZXNjcmlwdG9yUHJvdG86IGlucHV0X3R5cGUgJHt0LmlucHV0VHlwZX0gbm90IGZvdW5kYCksY3QoZCxgaW52YWxpZCBNZXRob2REZXNjcmlwdG9yUHJvdG86IG91dHB1dF90eXBlICR7dC5pbnB1dFR5cGV9IG5vdCBmb3VuZGApO2NvbnN0IHM9dC5uYW1lO3JldHVybntraW5kOiJycGMiLHByb3RvOnQsZGVwcmVjYXRlZDooaT0obD10Lm9wdGlvbnMpPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC5kZXByZWNhdGVkKSE9PW51bGwmJmkhPT12b2lkIDA/aTohMSxwYXJlbnQ6ZSxuYW1lOnMsbG9jYWxOYW1lOkNuKHMubGVuZ3RoP0NuKHNbMF0udG9Mb3dlckNhc2UoKStzLnN1YnN0cmluZygxKSk6cyksbWV0aG9kS2luZDphLGlucHV0OmMsb3V0cHV0OmQsaWRlbXBvdGVuY3k6KG89KHI9dC5vcHRpb25zKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuaWRlbXBvdGVuY3lMZXZlbCkhPT1udWxsJiZvIT09dm9pZCAwP286Y2YsdG9TdHJpbmcoKXtyZXR1cm5gcnBjICR7ZS50eXBlTmFtZX0uJHtzfWB9fX1mdW5jdGlvbiBWZih0LGUpe3JldHVybntraW5kOiJvbmVvZiIscHJvdG86dCxkZXByZWNhdGVkOiExLHBhcmVudDplLGZpZWxkczpbXSxuYW1lOnQubmFtZSxsb2NhbE5hbWU6Q24oU24odC5uYW1lKSksdG9TdHJpbmcoKXtyZXR1cm5gb25lb2YgJHtlLnR5cGVOYW1lfS4ke3RoaXMubmFtZX1gfX19ZnVuY3Rpb24gVWkodCxlLG4sbCxpKXt2YXIgcixvLGE7Y29uc3QgYz1pPT09dm9pZCAwLGQ9e2tpbmQ6ImZpZWxkIixwcm90bzp0LGRlcHJlY2F0ZWQ6KG89KHI9dC5vcHRpb25zKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuZGVwcmVjYXRlZCkhPT1udWxsJiZvIT09dm9pZCAwP286ITEsbmFtZTp0Lm5hbWUsbnVtYmVyOnQubnVtYmVyLHNjYWxhcjp2b2lkIDAsbWVzc2FnZTp2b2lkIDAsZW51bTp2b2lkIDAscHJlc2VuY2U6R2YodCxsLGMsZSksbGlzdEtpbmQ6dm9pZCAwLG1hcEtpbmQ6dm9pZCAwLG1hcEtleTp2b2lkIDAsZGVsaW1pdGVkRW5jb2Rpbmc6dm9pZCAwLHBhY2tlZDp2b2lkIDAsbG9uZ0FzU3RyaW5nOiExLGdldERlZmF1bHRWYWx1ZTp2b2lkIDB9O2lmKGMpe2NvbnN0IGc9ZS5raW5kPT0iZmlsZSI/ZTplLmZpbGUsYj1lLmtpbmQ9PSJmaWxlIj92b2lkIDA6ZSxtPUpsKHQsYixnKTtkLmtpbmQ9ImV4dGVuc2lvbiIsZC5maWxlPWcsZC5wYXJlbnQ9YixkLm9uZW9mPXZvaWQgMCxkLnR5cGVOYW1lPW0sZC5qc29uTmFtZT1gWyR7bX1dYCxkLnRvU3RyaW5nPSgpPT5gZXh0ZW5zaW9uICR7bX1gO2NvbnN0IGY9bi5nZXRNZXNzYWdlKFp0KHQuZXh0ZW5kZWUpKTtjdChmLGBpbnZhbGlkIEZpZWxkRGVzY3JpcHRvclByb3RvOiBleHRlbmRlZSAke3QuZXh0ZW5kZWV9IG5vdCBmb3VuZGApLGQuZXh0ZW5kZWU9Zn1lbHNle2NvbnN0IGc9ZTtjdChnLmtpbmQ9PSJtZXNzYWdlIiksZC5wYXJlbnQ9ZyxkLm9uZW9mPWwsZC5sb2NhbE5hbWU9bD9Tbih0Lm5hbWUpOkNuKFNuKHQubmFtZSkpLGQuanNvbk5hbWU9dC5qc29uTmFtZSxkLnRvU3RyaW5nPSgpPT5gZmllbGQgJHtnLnR5cGVOYW1lfS4ke3QubmFtZX1gfWNvbnN0IHM9dC5sYWJlbCx1PXQudHlwZSxoPShhPXQub3B0aW9ucyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmpzdHlwZTtpZihzPT09RXIpe2NvbnN0IGc9dT09Wm4/aT09bnVsbD92b2lkIDA6aS5nZXQoWnQodC50eXBlTmFtZSkpOnZvaWQgMDtpZihnKXtkLmZpZWxkS2luZD0ibWFwIjtjb25zdHtrZXk6Yix2YWx1ZTptfT1JZihnKTtyZXR1cm4gZC5tYXBLZXk9Yi5zY2FsYXIsZC5tYXBLaW5kPW0uZmllbGRLaW5kLGQubWVzc2FnZT1tLm1lc3NhZ2UsZC5kZWxpbWl0ZWRFbmNvZGluZz0hMSxkLmVudW09bS5lbnVtLGQuc2NhbGFyPW0uc2NhbGFyLGR9c3dpdGNoKGQuZmllbGRLaW5kPSJsaXN0Iix1KXtjYXNlIFpuOmNhc2UgV246ZC5saXN0S2luZD0ibWVzc2FnZSIsZC5tZXNzYWdlPW4uZ2V0TWVzc2FnZShadCh0LnR5cGVOYW1lKSksY3QoZC5tZXNzYWdlKSxkLmRlbGltaXRlZEVuY29kaW5nPVNhKHQsZSk7YnJlYWs7Y2FzZSBSYTpkLmxpc3RLaW5kPSJlbnVtIixkLmVudW09bi5nZXRFbnVtKFp0KHQudHlwZU5hbWUpKSxjdChkLmVudW0pO2JyZWFrO2RlZmF1bHQ6ZC5saXN0S2luZD0ic2NhbGFyIixkLnNjYWxhcj11LGQubG9uZ0FzU3RyaW5nPWg9PUVhO2JyZWFrfXJldHVybiBkLnBhY2tlZD1YZih0LGUpLGR9c3dpdGNoKHUpe2Nhc2UgWm46Y2FzZSBXbjpkLmZpZWxkS2luZD0ibWVzc2FnZSIsZC5tZXNzYWdlPW4uZ2V0TWVzc2FnZShadCh0LnR5cGVOYW1lKSksY3QoZC5tZXNzYWdlLGBpbnZhbGlkIEZpZWxkRGVzY3JpcHRvclByb3RvOiB0eXBlX25hbWUgJHt0LnR5cGVOYW1lfSBub3QgZm91bmRgKSxkLmRlbGltaXRlZEVuY29kaW5nPVNhKHQsZSksZC5nZXREZWZhdWx0VmFsdWU9KCk9Pnt9O2JyZWFrO2Nhc2UgUmE6e2NvbnN0IGc9bi5nZXRFbnVtKFp0KHQudHlwZU5hbWUpKTtjdChnIT09dm9pZCAwLGBpbnZhbGlkIEZpZWxkRGVzY3JpcHRvclByb3RvOiB0eXBlX25hbWUgJHt0LnR5cGVOYW1lfSBub3QgZm91bmRgKSxkLmZpZWxkS2luZD0iZW51bSIsZC5lbnVtPW4uZ2V0RW51bShadCh0LnR5cGVOYW1lKSksZC5nZXREZWZhdWx0VmFsdWU9KCk9PnZuKHQsImRlZmF1bHRWYWx1ZSIpPyRtKGcsdC5kZWZhdWx0VmFsdWUpOnZvaWQgMDticmVha31kZWZhdWx0OntkLmZpZWxkS2luZD0ic2NhbGFyIixkLnNjYWxhcj11LGQubG9uZ0FzU3RyaW5nPWg9PUVhLGQuZ2V0RGVmYXVsdFZhbHVlPSgpPT52bih0LCJkZWZhdWx0VmFsdWUiKT9xbSh1LHQuZGVmYXVsdFZhbHVlKTp2b2lkIDA7YnJlYWt9fXJldHVybiBkfWZ1bmN0aW9uIG1mKHQpe3N3aXRjaCh0LnN5bnRheCl7Y2FzZSIiOmNhc2UicHJvdG8yIjpyZXR1cm4gbmY7Y2FzZSJwcm90bzMiOnJldHVybiBsZjtjYXNlImVkaXRpb25zIjppZih0LmVkaXRpb24gaW4gYXMpcmV0dXJuIHQuZWRpdGlvbjt0aHJvdyBuZXcgRXJyb3IoYCR7dC5uYW1lfTogdW5zdXBwb3J0ZWQgZWRpdGlvbmApO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke3QubmFtZX06IHVuc3VwcG9ydGVkIHN5bnRheCAiJHt0LnN5bnRheH0iYCl9fWZ1bmN0aW9uIGZmKHQsZSl7cmV0dXJuIHQuZGVwZW5kZW5jeS5tYXAobj0+e2NvbnN0IGw9ZS5nZXRGaWxlKG4pO2lmKCFsKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtufSwgaW1wb3J0ZWQgYnkgJHt0Lm5hbWV9YCk7cmV0dXJuIGx9KX1mdW5jdGlvbiBBZih0LGUpe2NvbnN0IG49cGYodCkrIl8iO2Zvcihjb25zdCBsIG9mIGUpe2lmKCFsLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG4pKXJldHVybjtjb25zdCBpPWwubmFtZS5zdWJzdHJpbmcobi5sZW5ndGgpO2lmKGkubGVuZ3RoPT0wfHwvXlxkLy50ZXN0KGkpKXJldHVybn1yZXR1cm4gbn1mdW5jdGlvbiBwZih0KXtyZXR1cm4odC5zdWJzdHJpbmcoMCwxKSt0LnN1YnN0cmluZygxKS5yZXBsYWNlKC9bQS1aXS9nLGU9PiJfIitlKSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBKbCh0LGUsbil7bGV0IGw7cmV0dXJuIGU/bD1gJHtlLnR5cGVOYW1lfS4ke3QubmFtZX1gOm4ucHJvdG8ucGFja2FnZS5sZW5ndGg+MD9sPWAke24ucHJvdG8ucGFja2FnZX0uJHt0Lm5hbWV9YDpsPWAke3QubmFtZX1gLGx9ZnVuY3Rpb24gWnQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgiLiIpP3Quc3Vic3RyaW5nKDEpOnR9ZnVuY3Rpb24gWmYodCxlKXtpZighdm4odCwib25lb2ZJbmRleCIpfHx0LnByb3RvM09wdGlvbmFsKXJldHVybjtjb25zdCBuPWVbdC5vbmVvZkluZGV4XTtyZXR1cm4gY3QobixgaW52YWxpZCBGaWVsZERlc2NyaXB0b3JQcm90bzogb25lb2YgIyR7dC5vbmVvZkluZGV4fSBmb3IgZmllbGQgIyR7dC5udW1iZXJ9IG5vdCBmb3VuZGApLG59ZnVuY3Rpb24gR2YodCxlLG4sbCl7aWYodC5sYWJlbD09YWYpcmV0dXJuIGRmO2lmKHQubGFiZWw9PUVyKXJldHVybiB5YTtpZihlfHx0LnByb3RvM09wdGlvbmFsfHxuKXJldHVybiBnaTtjb25zdCBpPXRuKCJmaWVsZFByZXNlbmNlIix7cHJvdG86dCxwYXJlbnQ6bH0pO3JldHVybiBpPT15YSYmKHQudHlwZT09Wm58fHQudHlwZT09V24pP2dpOml9ZnVuY3Rpb24gWGYodCxlKXtpZih0LmxhYmVsIT1FcilyZXR1cm4hMTtzd2l0Y2godC50eXBlKXtjYXNlIHJmOmNhc2Ugb2Y6Y2FzZSBXbjpjYXNlIFpuOnJldHVybiExfWNvbnN0IG49dC5vcHRpb25zO3JldHVybiBuJiZ2bihuLCJwYWNrZWQiKT9uLnBhY2tlZDpzZj09dG4oInJlcGVhdGVkRmllbGRFbmNvZGluZyIse3Byb3RvOnQscGFyZW50OmV9KX1mdW5jdGlvbiBJZih0KXtjb25zdCBlPXQuZmllbGRzLmZpbmQobD0+bC5udW1iZXI9PT0xKSxuPXQuZmllbGRzLmZpbmQobD0+bC5udW1iZXI9PT0yKTtyZXR1cm4gY3QoZSYmZS5maWVsZEtpbmQ9PSJzY2FsYXIiJiZlLnNjYWxhciE9Wi5CWVRFUyYmZS5zY2FsYXIhPVouRkxPQVQmJmUuc2NhbGFyIT1aLkRPVUJMRSYmbiYmbi5maWVsZEtpbmQhPSJsaXN0IiYmbi5maWVsZEtpbmQhPSJtYXAiKSx7a2V5OmUsdmFsdWU6bn19ZnVuY3Rpb24gUmYodCl7dmFyIGU7cmV0dXJuIGdmPT10bigiZW51bVR5cGUiLHtwcm90bzp0LnByb3RvLHBhcmVudDooZT10LnBhcmVudCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dC5maWxlfSl9ZnVuY3Rpb24gU2EodCxlKXtyZXR1cm4gdC50eXBlPT1Xbj8hMDp1Zj09dG4oIm1lc3NhZ2VFbmNvZGluZyIse3Byb3RvOnQscGFyZW50OmV9KX1mdW5jdGlvbiB0bih0LGUpe3ZhciBuLGw7Y29uc3QgaT0obj1lLnByb3RvLm9wdGlvbnMpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5mZWF0dXJlcztpZihpKXtjb25zdCByPWlbdF07aWYociE9MClyZXR1cm4gcn1pZigia2luZCJpbiBlKXtpZihlLmtpbmQ9PSJtZXNzYWdlIilyZXR1cm4gdG4odCwobD1lLnBhcmVudCkhPT1udWxsJiZsIT09dm9pZCAwP2w6ZS5maWxlKTtjb25zdCByPWFzW2UuZWRpdGlvbl07aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBmZWF0dXJlIGRlZmF1bHQgZm9yIGVkaXRpb24gJHtlLmVkaXRpb259IG5vdCBmb3VuZGApO3JldHVybiByW3RdfXJldHVybiB0bih0LGUucGFyZW50KX1mdW5jdGlvbiBjdCh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcihlKX1mdW5jdGlvbiBFZih0KXtjb25zdCBlPXlmKHQpO3JldHVybiBlLm1lc3NhZ2VUeXBlLmZvckVhY2goUnIpLG9zKGUsKCk9Pnt9KS5nZXRGaWxlKGUubmFtZSl9ZnVuY3Rpb24geWYodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh7c3ludGF4OiIiLGVkaXRpb246MH0pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7JHR5cGVOYW1lOiJnb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90byIsZGVwZW5kZW5jeTpbXSxwdWJsaWNEZXBlbmRlbmN5OltdLHdlYWtEZXBlbmRlbmN5OltdLG9wdGlvbkRlcGVuZGVuY3k6W10sc2VydmljZTpbXSxleHRlbnNpb246W119LHQpLHttZXNzYWdlVHlwZTp0Lm1lc3NhZ2VUeXBlLm1hcChzcyksZW51bVR5cGU6dC5lbnVtVHlwZS5tYXAodXMpfSkpfWZ1bmN0aW9uIHNzKHQpe3ZhciBlLG4sbCxpLHIsbyxhLGM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh7dmlzaWJpbGl0eTowfSkseyR0eXBlTmFtZToiZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90byIsbmFtZTp0Lm5hbWUsZmllbGQ6KG49KGU9dC5maWVsZCk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLm1hcCh2ZikpIT09bnVsbCYmbiE9PXZvaWQgMD9uOltdLGV4dGVuc2lvbjpbXSxuZXN0ZWRUeXBlOihpPShsPXQubmVzdGVkVHlwZSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm1hcChzcykpIT09bnVsbCYmaSE9PXZvaWQgMD9pOltdLGVudW1UeXBlOihvPShyPXQuZW51bVR5cGUpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5tYXAodXMpKSE9PW51bGwmJm8hPT12b2lkIDA/bzpbXSxleHRlbnNpb25SYW5nZTooYz0oYT10LmV4dGVuc2lvblJhbmdlKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubWFwKHM9Pk9iamVjdC5hc3NpZ24oeyR0eXBlTmFtZToiZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZSJ9LHMpKSkhPT1udWxsJiZjIT09dm9pZCAwP2M6W10sb25lb2ZEZWNsOltdLHJlc2VydmVkUmFuZ2U6W10scmVzZXJ2ZWROYW1lOltdfSl9ZnVuY3Rpb24gdmYodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh7bGFiZWw6MSx0eXBlTmFtZToiIixleHRlbmRlZToiIixkZWZhdWx0VmFsdWU6IiIsb25lb2ZJbmRleDowLGpzb25OYW1lOiIiLHByb3RvM09wdGlvbmFsOiExfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHskdHlwZU5hbWU6Imdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90byJ9LHQpLHtvcHRpb25zOnQub3B0aW9ucz9TZih0Lm9wdGlvbnMpOnZvaWQgMH0pKX1mdW5jdGlvbiBTZih0KXt2YXIgZSxuLGw7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh7Y3R5cGU6MCxwYWNrZWQ6ITEsanN0eXBlOjAsbGF6eTohMSx1bnZlcmlmaWVkTGF6eTohMSxkZXByZWNhdGVkOiExLHdlYWs6ITEsZGVidWdSZWRhY3Q6ITEscmV0ZW50aW9uOjB9KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyR0eXBlTmFtZToiZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucyJ9LHQpLHt0YXJnZXRzOihlPXQudGFyZ2V0cykhPT1udWxsJiZlIT09dm9pZCAwP2U6W10sZWRpdGlvbkRlZmF1bHRzOihsPShuPXQuZWRpdGlvbkRlZmF1bHRzKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ubWFwKHI9Pk9iamVjdC5hc3NpZ24oeyR0eXBlTmFtZToiZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5FZGl0aW9uRGVmYXVsdCJ9LHIpKSkhPT1udWxsJiZsIT09dm9pZCAwP2w6W10sdW5pbnRlcnByZXRlZE9wdGlvbjpbXX0pKX1mdW5jdGlvbiB1cyh0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHt2aXNpYmlsaXR5OjB9KSx7JHR5cGVOYW1lOiJnb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90byIsbmFtZTp0Lm5hbWUscmVzZXJ2ZWROYW1lOltdLHJlc2VydmVkUmFuZ2U6W10sdmFsdWU6dC52YWx1ZS5tYXAobj0+T2JqZWN0LmFzc2lnbih7JHR5cGVOYW1lOiJnb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvIn0sbikpfSl9ZnVuY3Rpb24gUW4odCxlLC4uLm4pe3JldHVybiBuLnJlZHVjZSgobCxpKT0+bC5uZXN0ZWRNZXNzYWdlc1tpXSx0Lm1lc3NhZ2VzW2VdKX1jb25zdCBncz1FZih7bmFtZToiZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iLHBhY2thZ2U6Imdvb2dsZS5wcm90b2J1ZiIsbWVzc2FnZVR5cGU6W3tuYW1lOiJGaWxlRGVzY3JpcHRvclNldCIsZmllbGQ6W3tuYW1lOiJmaWxlIixudW1iZXI6MSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90byJ9XSxleHRlbnNpb25SYW5nZTpbe3N0YXJ0OjUzNmU2LGVuZDo1MzYwMDAwMDF9XX0se25hbWU6IkZpbGVEZXNjcmlwdG9yUHJvdG8iLGZpZWxkOlt7bmFtZToibmFtZSIsbnVtYmVyOjEsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJwYWNrYWdlIixudW1iZXI6Mix0eXBlOjksbGFiZWw6MX0se25hbWU6ImRlcGVuZGVuY3kiLG51bWJlcjozLHR5cGU6OSxsYWJlbDozfSx7bmFtZToicHVibGljX2RlcGVuZGVuY3kiLG51bWJlcjoxMCx0eXBlOjUsbGFiZWw6M30se25hbWU6IndlYWtfZGVwZW5kZW5jeSIsbnVtYmVyOjExLHR5cGU6NSxsYWJlbDozfSx7bmFtZToib3B0aW9uX2RlcGVuZGVuY3kiLG51bWJlcjoxNSx0eXBlOjksbGFiZWw6M30se25hbWU6Im1lc3NhZ2VfdHlwZSIsbnVtYmVyOjQsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90byJ9LHtuYW1lOiJlbnVtX3R5cGUiLG51bWJlcjo1LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvIn0se25hbWU6InNlcnZpY2UiLG51bWJlcjo2LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvIn0se25hbWU6ImV4dGVuc2lvbiIsbnVtYmVyOjcsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvIn0se25hbWU6Im9wdGlvbnMiLG51bWJlcjo4LHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucyJ9LHtuYW1lOiJzb3VyY2VfY29kZV9pbmZvIixudW1iZXI6OSx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8ifSx7bmFtZToic3ludGF4IixudW1iZXI6MTIsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJlZGl0aW9uIixudW1iZXI6MTQsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkVkaXRpb24ifV19LHtuYW1lOiJEZXNjcmlwdG9yUHJvdG8iLGZpZWxkOlt7bmFtZToibmFtZSIsbnVtYmVyOjEsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJmaWVsZCIsbnVtYmVyOjIsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvIn0se25hbWU6ImV4dGVuc2lvbiIsbnVtYmVyOjYsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvIn0se25hbWU6Im5lc3RlZF90eXBlIixudW1iZXI6Myx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvIn0se25hbWU6ImVudW1fdHlwZSIsbnVtYmVyOjQsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8ifSx7bmFtZToiZXh0ZW5zaW9uX3JhbmdlIixudW1iZXI6NSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdlIn0se25hbWU6Im9uZW9mX2RlY2wiLG51bWJlcjo4LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90byJ9LHtuYW1lOiJvcHRpb25zIixudW1iZXI6Nyx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMifSx7bmFtZToicmVzZXJ2ZWRfcmFuZ2UiLG51bWJlcjo5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5nZSJ9LHtuYW1lOiJyZXNlcnZlZF9uYW1lIixudW1iZXI6MTAsdHlwZTo5LGxhYmVsOjN9LHtuYW1lOiJ2aXNpYmlsaXR5IixudW1iZXI6MTEsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLlN5bWJvbFZpc2liaWxpdHkifV0sbmVzdGVkVHlwZTpbe25hbWU6IkV4dGVuc2lvblJhbmdlIixmaWVsZDpbe25hbWU6InN0YXJ0IixudW1iZXI6MSx0eXBlOjUsbGFiZWw6MX0se25hbWU6ImVuZCIsbnVtYmVyOjIsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJvcHRpb25zIixudW1iZXI6Myx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zIn1dfSx7bmFtZToiUmVzZXJ2ZWRSYW5nZSIsZmllbGQ6W3tuYW1lOiJzdGFydCIsbnVtYmVyOjEsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJlbmQiLG51bWJlcjoyLHR5cGU6NSxsYWJlbDoxfV19XX0se25hbWU6IkV4dGVuc2lvblJhbmdlT3B0aW9ucyIsZmllbGQ6W3tuYW1lOiJ1bmludGVycHJldGVkX29wdGlvbiIsbnVtYmVyOjk5OSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiJ9LHtuYW1lOiJkZWNsYXJhdGlvbiIsbnVtYmVyOjIsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5EZWNsYXJhdGlvbiIsb3B0aW9uczp7cmV0ZW50aW9uOjJ9fSx7bmFtZToiZmVhdHVyZXMiLG51bWJlcjo1MCx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldCJ9LHtuYW1lOiJ2ZXJpZmljYXRpb24iLG51bWJlcjozLHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnMuVmVyaWZpY2F0aW9uU3RhdGUiLGRlZmF1bHRWYWx1ZToiVU5WRVJJRklFRCIsb3B0aW9uczp7cmV0ZW50aW9uOjJ9fV0sbmVzdGVkVHlwZTpbe25hbWU6IkRlY2xhcmF0aW9uIixmaWVsZDpbe25hbWU6Im51bWJlciIsbnVtYmVyOjEsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJmdWxsX25hbWUiLG51bWJlcjoyLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToidHlwZSIsbnVtYmVyOjMsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJyZXNlcnZlZCIsbnVtYmVyOjUsdHlwZTo4LGxhYmVsOjF9LHtuYW1lOiJyZXBlYXRlZCIsbnVtYmVyOjYsdHlwZTo4LGxhYmVsOjF9XX1dLGVudW1UeXBlOlt7bmFtZToiVmVyaWZpY2F0aW9uU3RhdGUiLHZhbHVlOlt7bmFtZToiREVDTEFSQVRJT04iLG51bWJlcjowfSx7bmFtZToiVU5WRVJJRklFRCIsbnVtYmVyOjF9XX1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6IkZpZWxkRGVzY3JpcHRvclByb3RvIixmaWVsZDpbe25hbWU6Im5hbWUiLG51bWJlcjoxLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToibnVtYmVyIixudW1iZXI6Myx0eXBlOjUsbGFiZWw6MX0se25hbWU6ImxhYmVsIixudW1iZXI6NCx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWwifSx7bmFtZToidHlwZSIsbnVtYmVyOjUsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUifSx7bmFtZToidHlwZV9uYW1lIixudW1iZXI6Nix0eXBlOjksbGFiZWw6MX0se25hbWU6ImV4dGVuZGVlIixudW1iZXI6Mix0eXBlOjksbGFiZWw6MX0se25hbWU6ImRlZmF1bHRfdmFsdWUiLG51bWJlcjo3LHR5cGU6OSxsYWJlbDoxfSx7bmFtZToib25lb2ZfaW5kZXgiLG51bWJlcjo5LHR5cGU6NSxsYWJlbDoxfSx7bmFtZToianNvbl9uYW1lIixudW1iZXI6MTAsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJvcHRpb25zIixudW1iZXI6OCx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zIn0se25hbWU6InByb3RvM19vcHRpb25hbCIsbnVtYmVyOjE3LHR5cGU6OCxsYWJlbDoxfV0sZW51bVR5cGU6W3tuYW1lOiJUeXBlIix2YWx1ZTpbe25hbWU6IlRZUEVfRE9VQkxFIixudW1iZXI6MX0se25hbWU6IlRZUEVfRkxPQVQiLG51bWJlcjoyfSx7bmFtZToiVFlQRV9JTlQ2NCIsbnVtYmVyOjN9LHtuYW1lOiJUWVBFX1VJTlQ2NCIsbnVtYmVyOjR9LHtuYW1lOiJUWVBFX0lOVDMyIixudW1iZXI6NX0se25hbWU6IlRZUEVfRklYRUQ2NCIsbnVtYmVyOjZ9LHtuYW1lOiJUWVBFX0ZJWEVEMzIiLG51bWJlcjo3fSx7bmFtZToiVFlQRV9CT09MIixudW1iZXI6OH0se25hbWU6IlRZUEVfU1RSSU5HIixudW1iZXI6OX0se25hbWU6IlRZUEVfR1JPVVAiLG51bWJlcjoxMH0se25hbWU6IlRZUEVfTUVTU0FHRSIsbnVtYmVyOjExfSx7bmFtZToiVFlQRV9CWVRFUyIsbnVtYmVyOjEyfSx7bmFtZToiVFlQRV9VSU5UMzIiLG51bWJlcjoxM30se25hbWU6IlRZUEVfRU5VTSIsbnVtYmVyOjE0fSx7bmFtZToiVFlQRV9TRklYRUQzMiIsbnVtYmVyOjE1fSx7bmFtZToiVFlQRV9TRklYRUQ2NCIsbnVtYmVyOjE2fSx7bmFtZToiVFlQRV9TSU5UMzIiLG51bWJlcjoxN30se25hbWU6IlRZUEVfU0lOVDY0IixudW1iZXI6MTh9XX0se25hbWU6IkxhYmVsIix2YWx1ZTpbe25hbWU6IkxBQkVMX09QVElPTkFMIixudW1iZXI6MX0se25hbWU6IkxBQkVMX1JFUEVBVEVEIixudW1iZXI6M30se25hbWU6IkxBQkVMX1JFUVVJUkVEIixudW1iZXI6Mn1dfV19LHtuYW1lOiJPbmVvZkRlc2NyaXB0b3JQcm90byIsZmllbGQ6W3tuYW1lOiJuYW1lIixudW1iZXI6MSx0eXBlOjksbGFiZWw6MX0se25hbWU6Im9wdGlvbnMiLG51bWJlcjoyLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMifV19LHtuYW1lOiJFbnVtRGVzY3JpcHRvclByb3RvIixmaWVsZDpbe25hbWU6Im5hbWUiLG51bWJlcjoxLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToidmFsdWUiLG51bWJlcjoyLHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8ifSx7bmFtZToib3B0aW9ucyIsbnVtYmVyOjMsdHlwZToxMSxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zIn0se25hbWU6InJlc2VydmVkX3JhbmdlIixudW1iZXI6NCx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90by5FbnVtUmVzZXJ2ZWRSYW5nZSJ9LHtuYW1lOiJyZXNlcnZlZF9uYW1lIixudW1iZXI6NSx0eXBlOjksbGFiZWw6M30se25hbWU6InZpc2liaWxpdHkiLG51bWJlcjo2LHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5TeW1ib2xWaXNpYmlsaXR5In1dLG5lc3RlZFR5cGU6W3tuYW1lOiJFbnVtUmVzZXJ2ZWRSYW5nZSIsZmllbGQ6W3tuYW1lOiJzdGFydCIsbnVtYmVyOjEsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJlbmQiLG51bWJlcjoyLHR5cGU6NSxsYWJlbDoxfV19XX0se25hbWU6IkVudW1WYWx1ZURlc2NyaXB0b3JQcm90byIsZmllbGQ6W3tuYW1lOiJuYW1lIixudW1iZXI6MSx0eXBlOjksbGFiZWw6MX0se25hbWU6Im51bWJlciIsbnVtYmVyOjIsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJvcHRpb25zIixudW1iZXI6Myx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucyJ9XX0se25hbWU6IlNlcnZpY2VEZXNjcmlwdG9yUHJvdG8iLGZpZWxkOlt7bmFtZToibmFtZSIsbnVtYmVyOjEsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJtZXRob2QiLG51bWJlcjoyLHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG8ifSx7bmFtZToib3B0aW9ucyIsbnVtYmVyOjMsdHlwZToxMSxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zIn1dfSx7bmFtZToiTWV0aG9kRGVzY3JpcHRvclByb3RvIixmaWVsZDpbe25hbWU6Im5hbWUiLG51bWJlcjoxLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToiaW5wdXRfdHlwZSIsbnVtYmVyOjIsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJvdXRwdXRfdHlwZSIsbnVtYmVyOjMsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJvcHRpb25zIixudW1iZXI6NCx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucyJ9LHtuYW1lOiJjbGllbnRfc3RyZWFtaW5nIixudW1iZXI6NSx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6InNlcnZlcl9zdHJlYW1pbmciLG51bWJlcjo2LHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifV19LHtuYW1lOiJGaWxlT3B0aW9ucyIsZmllbGQ6W3tuYW1lOiJqYXZhX3BhY2thZ2UiLG51bWJlcjoxLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToiamF2YV9vdXRlcl9jbGFzc25hbWUiLG51bWJlcjo4LHR5cGU6OSxsYWJlbDoxfSx7bmFtZToiamF2YV9tdWx0aXBsZV9maWxlcyIsbnVtYmVyOjEwLHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToiamF2YV9nZW5lcmF0ZV9lcXVhbHNfYW5kX2hhc2giLG51bWJlcjoyMCx0eXBlOjgsbGFiZWw6MSxvcHRpb25zOntkZXByZWNhdGVkOiEwfX0se25hbWU6ImphdmFfc3RyaW5nX2NoZWNrX3V0ZjgiLG51bWJlcjoyNyx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6Im9wdGltaXplX2ZvciIsbnVtYmVyOjksdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZSIsZGVmYXVsdFZhbHVlOiJTUEVFRCJ9LHtuYW1lOiJnb19wYWNrYWdlIixudW1iZXI6MTEsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJjY19nZW5lcmljX3NlcnZpY2VzIixudW1iZXI6MTYsdHlwZTo4LGxhYmVsOjEsZGVmYXVsdFZhbHVlOiJmYWxzZSJ9LHtuYW1lOiJqYXZhX2dlbmVyaWNfc2VydmljZXMiLG51bWJlcjoxNyx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6InB5X2dlbmVyaWNfc2VydmljZXMiLG51bWJlcjoxOCx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6ImRlcHJlY2F0ZWQiLG51bWJlcjoyMyx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6ImNjX2VuYWJsZV9hcmVuYXMiLG51bWJlcjozMSx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6InRydWUifSx7bmFtZToib2JqY19jbGFzc19wcmVmaXgiLG51bWJlcjozNix0eXBlOjksbGFiZWw6MX0se25hbWU6ImNzaGFycF9uYW1lc3BhY2UiLG51bWJlcjozNyx0eXBlOjksbGFiZWw6MX0se25hbWU6InN3aWZ0X3ByZWZpeCIsbnVtYmVyOjM5LHR5cGU6OSxsYWJlbDoxfSx7bmFtZToicGhwX2NsYXNzX3ByZWZpeCIsbnVtYmVyOjQwLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToicGhwX25hbWVzcGFjZSIsbnVtYmVyOjQxLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToicGhwX21ldGFkYXRhX25hbWVzcGFjZSIsbnVtYmVyOjQ0LHR5cGU6OSxsYWJlbDoxfSx7bmFtZToicnVieV9wYWNrYWdlIixudW1iZXI6NDUsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJmZWF0dXJlcyIsbnVtYmVyOjUwLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6InVuaW50ZXJwcmV0ZWRfb3B0aW9uIixudW1iZXI6OTk5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIn1dLGVudW1UeXBlOlt7bmFtZToiT3B0aW1pemVNb2RlIix2YWx1ZTpbe25hbWU6IlNQRUVEIixudW1iZXI6MX0se25hbWU6IkNPREVfU0laRSIsbnVtYmVyOjJ9LHtuYW1lOiJMSVRFX1JVTlRJTUUiLG51bWJlcjozfV19XSxleHRlbnNpb25SYW5nZTpbe3N0YXJ0OjFlMyxlbmQ6NTM2ODcwOTEyfV19LHtuYW1lOiJNZXNzYWdlT3B0aW9ucyIsZmllbGQ6W3tuYW1lOiJtZXNzYWdlX3NldF93aXJlX2Zvcm1hdCIsbnVtYmVyOjEsdHlwZTo4LGxhYmVsOjEsZGVmYXVsdFZhbHVlOiJmYWxzZSJ9LHtuYW1lOiJub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yIixudW1iZXI6Mix0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6ImRlcHJlY2F0ZWQiLG51bWJlcjozLHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToibWFwX2VudHJ5IixudW1iZXI6Nyx0eXBlOjgsbGFiZWw6MX0se25hbWU6ImRlcHJlY2F0ZWRfbGVnYWN5X2pzb25fZmllbGRfY29uZmxpY3RzIixudW1iZXI6MTEsdHlwZTo4LGxhYmVsOjEsb3B0aW9uczp7ZGVwcmVjYXRlZDohMH19LHtuYW1lOiJmZWF0dXJlcyIsbnVtYmVyOjEyLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6InVuaW50ZXJwcmV0ZWRfb3B0aW9uIixudW1iZXI6OTk5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIn1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6IkZpZWxkT3B0aW9ucyIsZmllbGQ6W3tuYW1lOiJjdHlwZSIsbnVtYmVyOjEsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZSIsZGVmYXVsdFZhbHVlOiJTVFJJTkcifSx7bmFtZToicGFja2VkIixudW1iZXI6Mix0eXBlOjgsbGFiZWw6MX0se25hbWU6ImpzdHlwZSIsbnVtYmVyOjYsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGUiLGRlZmF1bHRWYWx1ZToiSlNfTk9STUFMIn0se25hbWU6ImxhenkiLG51bWJlcjo1LHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToidW52ZXJpZmllZF9sYXp5IixudW1iZXI6MTUsdHlwZTo4LGxhYmVsOjEsZGVmYXVsdFZhbHVlOiJmYWxzZSJ9LHtuYW1lOiJkZXByZWNhdGVkIixudW1iZXI6Myx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6IndlYWsiLG51bWJlcjoxMCx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIixvcHRpb25zOntkZXByZWNhdGVkOiEwfX0se25hbWU6ImRlYnVnX3JlZGFjdCIsbnVtYmVyOjE2LHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToicmV0ZW50aW9uIixudW1iZXI6MTcsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25SZXRlbnRpb24ifSx7bmFtZToidGFyZ2V0cyIsbnVtYmVyOjE5LHR5cGU6MTQsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuT3B0aW9uVGFyZ2V0VHlwZSJ9LHtuYW1lOiJlZGl0aW9uX2RlZmF1bHRzIixudW1iZXI6MjAsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5FZGl0aW9uRGVmYXVsdCJ9LHtuYW1lOiJmZWF0dXJlcyIsbnVtYmVyOjIxLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6ImZlYXR1cmVfc3VwcG9ydCIsbnVtYmVyOjIyLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuRmVhdHVyZVN1cHBvcnQifSx7bmFtZToidW5pbnRlcnByZXRlZF9vcHRpb24iLG51bWJlcjo5OTksdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24ifV0sbmVzdGVkVHlwZTpbe25hbWU6IkVkaXRpb25EZWZhdWx0IixmaWVsZDpbe25hbWU6ImVkaXRpb24iLG51bWJlcjozLHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uIn0se25hbWU6InZhbHVlIixudW1iZXI6Mix0eXBlOjksbGFiZWw6MX1dfSx7bmFtZToiRmVhdHVyZVN1cHBvcnQiLGZpZWxkOlt7bmFtZToiZWRpdGlvbl9pbnRyb2R1Y2VkIixudW1iZXI6MSx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRWRpdGlvbiJ9LHtuYW1lOiJlZGl0aW9uX2RlcHJlY2F0ZWQiLG51bWJlcjoyLHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uIn0se25hbWU6ImRlcHJlY2F0aW9uX3dhcm5pbmciLG51bWJlcjozLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToiZWRpdGlvbl9yZW1vdmVkIixudW1iZXI6NCx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRWRpdGlvbiJ9XX1dLGVudW1UeXBlOlt7bmFtZToiQ1R5cGUiLHZhbHVlOlt7bmFtZToiU1RSSU5HIixudW1iZXI6MH0se25hbWU6IkNPUkQiLG51bWJlcjoxfSx7bmFtZToiU1RSSU5HX1BJRUNFIixudW1iZXI6Mn1dfSx7bmFtZToiSlNUeXBlIix2YWx1ZTpbe25hbWU6IkpTX05PUk1BTCIsbnVtYmVyOjB9LHtuYW1lOiJKU19TVFJJTkciLG51bWJlcjoxfSx7bmFtZToiSlNfTlVNQkVSIixudW1iZXI6Mn1dfSx7bmFtZToiT3B0aW9uUmV0ZW50aW9uIix2YWx1ZTpbe25hbWU6IlJFVEVOVElPTl9VTktOT1dOIixudW1iZXI6MH0se25hbWU6IlJFVEVOVElPTl9SVU5USU1FIixudW1iZXI6MX0se25hbWU6IlJFVEVOVElPTl9TT1VSQ0UiLG51bWJlcjoyfV19LHtuYW1lOiJPcHRpb25UYXJnZXRUeXBlIix2YWx1ZTpbe25hbWU6IlRBUkdFVF9UWVBFX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiVEFSR0VUX1RZUEVfRklMRSIsbnVtYmVyOjF9LHtuYW1lOiJUQVJHRVRfVFlQRV9FWFRFTlNJT05fUkFOR0UiLG51bWJlcjoyfSx7bmFtZToiVEFSR0VUX1RZUEVfTUVTU0FHRSIsbnVtYmVyOjN9LHtuYW1lOiJUQVJHRVRfVFlQRV9GSUVMRCIsbnVtYmVyOjR9LHtuYW1lOiJUQVJHRVRfVFlQRV9PTkVPRiIsbnVtYmVyOjV9LHtuYW1lOiJUQVJHRVRfVFlQRV9FTlVNIixudW1iZXI6Nn0se25hbWU6IlRBUkdFVF9UWVBFX0VOVU1fRU5UUlkiLG51bWJlcjo3fSx7bmFtZToiVEFSR0VUX1RZUEVfU0VSVklDRSIsbnVtYmVyOjh9LHtuYW1lOiJUQVJHRVRfVFlQRV9NRVRIT0QiLG51bWJlcjo5fV19XSxleHRlbnNpb25SYW5nZTpbe3N0YXJ0OjFlMyxlbmQ6NTM2ODcwOTEyfV19LHtuYW1lOiJPbmVvZk9wdGlvbnMiLGZpZWxkOlt7bmFtZToiZmVhdHVyZXMiLG51bWJlcjoxLHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6InVuaW50ZXJwcmV0ZWRfb3B0aW9uIixudW1iZXI6OTk5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIn1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6IkVudW1PcHRpb25zIixmaWVsZDpbe25hbWU6ImFsbG93X2FsaWFzIixudW1iZXI6Mix0eXBlOjgsbGFiZWw6MX0se25hbWU6ImRlcHJlY2F0ZWQiLG51bWJlcjozLHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToiZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMiLG51bWJlcjo2LHR5cGU6OCxsYWJlbDoxLG9wdGlvbnM6e2RlcHJlY2F0ZWQ6ITB9fSx7bmFtZToiZmVhdHVyZXMiLG51bWJlcjo3LHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6InVuaW50ZXJwcmV0ZWRfb3B0aW9uIixudW1iZXI6OTk5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIn1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6IkVudW1WYWx1ZU9wdGlvbnMiLGZpZWxkOlt7bmFtZToiZGVwcmVjYXRlZCIsbnVtYmVyOjEsdHlwZTo4LGxhYmVsOjEsZGVmYXVsdFZhbHVlOiJmYWxzZSJ9LHtuYW1lOiJmZWF0dXJlcyIsbnVtYmVyOjIsdHlwZToxMSxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQifSx7bmFtZToiZGVidWdfcmVkYWN0IixudW1iZXI6Myx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6ImZlYXR1cmVfc3VwcG9ydCIsbnVtYmVyOjQsdHlwZToxMSxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5GZWF0dXJlU3VwcG9ydCJ9LHtuYW1lOiJ1bmludGVycHJldGVkX29wdGlvbiIsbnVtYmVyOjk5OSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiJ9XSxleHRlbnNpb25SYW5nZTpbe3N0YXJ0OjFlMyxlbmQ6NTM2ODcwOTEyfV19LHtuYW1lOiJTZXJ2aWNlT3B0aW9ucyIsZmllbGQ6W3tuYW1lOiJmZWF0dXJlcyIsbnVtYmVyOjM0LHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In0se25hbWU6ImRlcHJlY2F0ZWQiLG51bWJlcjozMyx0eXBlOjgsbGFiZWw6MSxkZWZhdWx0VmFsdWU6ImZhbHNlIn0se25hbWU6InVuaW50ZXJwcmV0ZWRfb3B0aW9uIixudW1iZXI6OTk5LHR5cGU6MTEsbGFiZWw6Myx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIn1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6Ik1ldGhvZE9wdGlvbnMiLGZpZWxkOlt7bmFtZToiZGVwcmVjYXRlZCIsbnVtYmVyOjMzLHR5cGU6OCxsYWJlbDoxLGRlZmF1bHRWYWx1ZToiZmFsc2UifSx7bmFtZToiaWRlbXBvdGVuY3lfbGV2ZWwiLG51bWJlcjozNCx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsIixkZWZhdWx0VmFsdWU6IklERU1QT1RFTkNZX1VOS05PV04ifSx7bmFtZToiZmVhdHVyZXMiLG51bWJlcjozNSx0eXBlOjExLGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldCJ9LHtuYW1lOiJ1bmludGVycHJldGVkX29wdGlvbiIsbnVtYmVyOjk5OSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiJ9XSxlbnVtVHlwZTpbe25hbWU6IklkZW1wb3RlbmN5TGV2ZWwiLHZhbHVlOlt7bmFtZToiSURFTVBPVEVOQ1lfVU5LTk9XTiIsbnVtYmVyOjB9LHtuYW1lOiJOT19TSURFX0VGRkVDVFMiLG51bWJlcjoxfSx7bmFtZToiSURFTVBPVEVOVCIsbnVtYmVyOjJ9XX1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo1MzY4NzA5MTJ9XX0se25hbWU6IlVuaW50ZXJwcmV0ZWRPcHRpb24iLGZpZWxkOlt7bmFtZToibmFtZSIsbnVtYmVyOjIsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnQifSx7bmFtZToiaWRlbnRpZmllcl92YWx1ZSIsbnVtYmVyOjMsdHlwZTo5LGxhYmVsOjF9LHtuYW1lOiJwb3NpdGl2ZV9pbnRfdmFsdWUiLG51bWJlcjo0LHR5cGU6NCxsYWJlbDoxfSx7bmFtZToibmVnYXRpdmVfaW50X3ZhbHVlIixudW1iZXI6NSx0eXBlOjMsbGFiZWw6MX0se25hbWU6ImRvdWJsZV92YWx1ZSIsbnVtYmVyOjYsdHlwZToxLGxhYmVsOjF9LHtuYW1lOiJzdHJpbmdfdmFsdWUiLG51bWJlcjo3LHR5cGU6MTIsbGFiZWw6MX0se25hbWU6ImFnZ3JlZ2F0ZV92YWx1ZSIsbnVtYmVyOjgsdHlwZTo5LGxhYmVsOjF9XSxuZXN0ZWRUeXBlOlt7bmFtZToiTmFtZVBhcnQiLGZpZWxkOlt7bmFtZToibmFtZV9wYXJ0IixudW1iZXI6MSx0eXBlOjksbGFiZWw6Mn0se25hbWU6ImlzX2V4dGVuc2lvbiIsbnVtYmVyOjIsdHlwZTo4LGxhYmVsOjJ9XX1dfSx7bmFtZToiRmVhdHVyZVNldCIsZmllbGQ6W3tuYW1lOiJmaWVsZF9wcmVzZW5jZSIsbnVtYmVyOjEsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuRmllbGRQcmVzZW5jZSIsb3B0aW9uczp7cmV0ZW50aW9uOjEsdGFyZ2V0czpbNCwxXSxlZGl0aW9uRGVmYXVsdHM6W3t2YWx1ZToiRVhQTElDSVQiLGVkaXRpb246OTAwfSx7dmFsdWU6IklNUExJQ0lUIixlZGl0aW9uOjk5OX0se3ZhbHVlOiJFWFBMSUNJVCIsZWRpdGlvbjoxZTN9XX19LHtuYW1lOiJlbnVtX3R5cGUiLG51bWJlcjoyLHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LkVudW1UeXBlIixvcHRpb25zOntyZXRlbnRpb246MSx0YXJnZXRzOls2LDFdLGVkaXRpb25EZWZhdWx0czpbe3ZhbHVlOiJDTE9TRUQiLGVkaXRpb246OTAwfSx7dmFsdWU6Ik9QRU4iLGVkaXRpb246OTk5fV19fSx7bmFtZToicmVwZWF0ZWRfZmllbGRfZW5jb2RpbmciLG51bWJlcjozLHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlJlcGVhdGVkRmllbGRFbmNvZGluZyIsb3B0aW9uczp7cmV0ZW50aW9uOjEsdGFyZ2V0czpbNCwxXSxlZGl0aW9uRGVmYXVsdHM6W3t2YWx1ZToiRVhQQU5ERUQiLGVkaXRpb246OTAwfSx7dmFsdWU6IlBBQ0tFRCIsZWRpdGlvbjo5OTl9XX19LHtuYW1lOiJ1dGY4X3ZhbGlkYXRpb24iLG51bWJlcjo0LHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlV0ZjhWYWxpZGF0aW9uIixvcHRpb25zOntyZXRlbnRpb246MSx0YXJnZXRzOls0LDFdLGVkaXRpb25EZWZhdWx0czpbe3ZhbHVlOiJOT05FIixlZGl0aW9uOjkwMH0se3ZhbHVlOiJWRVJJRlkiLGVkaXRpb246OTk5fV19fSx7bmFtZToibWVzc2FnZV9lbmNvZGluZyIsbnVtYmVyOjUsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuTWVzc2FnZUVuY29kaW5nIixvcHRpb25zOntyZXRlbnRpb246MSx0YXJnZXRzOls0LDFdLGVkaXRpb25EZWZhdWx0czpbe3ZhbHVlOiJMRU5HVEhfUFJFRklYRUQiLGVkaXRpb246OTAwfV19fSx7bmFtZToianNvbl9mb3JtYXQiLG51bWJlcjo2LHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lkpzb25Gb3JtYXQiLG9wdGlvbnM6e3JldGVudGlvbjoxLHRhcmdldHM6WzMsNiwxXSxlZGl0aW9uRGVmYXVsdHM6W3t2YWx1ZToiTEVHQUNZX0JFU1RfRUZGT1JUIixlZGl0aW9uOjkwMH0se3ZhbHVlOiJBTExPVyIsZWRpdGlvbjo5OTl9XX19LHtuYW1lOiJlbmZvcmNlX25hbWluZ19zdHlsZSIsbnVtYmVyOjcsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuRW5mb3JjZU5hbWluZ1N0eWxlIixvcHRpb25zOntyZXRlbnRpb246Mix0YXJnZXRzOlsxLDIsMyw0LDUsNiw3LDgsOV0sZWRpdGlvbkRlZmF1bHRzOlt7dmFsdWU6IlNUWUxFX0xFR0FDWSIsZWRpdGlvbjo5MDB9LHt2YWx1ZToiU1RZTEUyMDI0IixlZGl0aW9uOjEwMDF9XX19LHtuYW1lOiJkZWZhdWx0X3N5bWJvbF92aXNpYmlsaXR5IixudW1iZXI6OCx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5WaXNpYmlsaXR5RmVhdHVyZS5EZWZhdWx0U3ltYm9sVmlzaWJpbGl0eSIsb3B0aW9uczp7cmV0ZW50aW9uOjIsdGFyZ2V0czpbMV0sZWRpdGlvbkRlZmF1bHRzOlt7dmFsdWU6IkVYUE9SVF9BTEwiLGVkaXRpb246OTAwfSx7dmFsdWU6IkVYUE9SVF9UT1BfTEVWRUwiLGVkaXRpb246MTAwMX1dfX1dLG5lc3RlZFR5cGU6W3tuYW1lOiJWaXNpYmlsaXR5RmVhdHVyZSIsZW51bVR5cGU6W3tuYW1lOiJEZWZhdWx0U3ltYm9sVmlzaWJpbGl0eSIsdmFsdWU6W3tuYW1lOiJERUZBVUxUX1NZTUJPTF9WSVNJQklMSVRZX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiRVhQT1JUX0FMTCIsbnVtYmVyOjF9LHtuYW1lOiJFWFBPUlRfVE9QX0xFVkVMIixudW1iZXI6Mn0se25hbWU6IkxPQ0FMX0FMTCIsbnVtYmVyOjN9LHtuYW1lOiJTVFJJQ1QiLG51bWJlcjo0fV19XX1dLGVudW1UeXBlOlt7bmFtZToiRmllbGRQcmVzZW5jZSIsdmFsdWU6W3tuYW1lOiJGSUVMRF9QUkVTRU5DRV9VTktOT1dOIixudW1iZXI6MH0se25hbWU6IkVYUExJQ0lUIixudW1iZXI6MX0se25hbWU6IklNUExJQ0lUIixudW1iZXI6Mn0se25hbWU6IkxFR0FDWV9SRVFVSVJFRCIsbnVtYmVyOjN9XX0se25hbWU6IkVudW1UeXBlIix2YWx1ZTpbe25hbWU6IkVOVU1fVFlQRV9VTktOT1dOIixudW1iZXI6MH0se25hbWU6Ik9QRU4iLG51bWJlcjoxfSx7bmFtZToiQ0xPU0VEIixudW1iZXI6Mn1dfSx7bmFtZToiUmVwZWF0ZWRGaWVsZEVuY29kaW5nIix2YWx1ZTpbe25hbWU6IlJFUEVBVEVEX0ZJRUxEX0VOQ09ESU5HX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiUEFDS0VEIixudW1iZXI6MX0se25hbWU6IkVYUEFOREVEIixudW1iZXI6Mn1dfSx7bmFtZToiVXRmOFZhbGlkYXRpb24iLHZhbHVlOlt7bmFtZToiVVRGOF9WQUxJREFUSU9OX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiVkVSSUZZIixudW1iZXI6Mn0se25hbWU6Ik5PTkUiLG51bWJlcjozfV19LHtuYW1lOiJNZXNzYWdlRW5jb2RpbmciLHZhbHVlOlt7bmFtZToiTUVTU0FHRV9FTkNPRElOR19VTktOT1dOIixudW1iZXI6MH0se25hbWU6IkxFTkdUSF9QUkVGSVhFRCIsbnVtYmVyOjF9LHtuYW1lOiJERUxJTUlURUQiLG51bWJlcjoyfV19LHtuYW1lOiJKc29uRm9ybWF0Iix2YWx1ZTpbe25hbWU6IkpTT05fRk9STUFUX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiQUxMT1ciLG51bWJlcjoxfSx7bmFtZToiTEVHQUNZX0JFU1RfRUZGT1JUIixudW1iZXI6Mn1dfSx7bmFtZToiRW5mb3JjZU5hbWluZ1N0eWxlIix2YWx1ZTpbe25hbWU6IkVORk9SQ0VfTkFNSU5HX1NUWUxFX1VOS05PV04iLG51bWJlcjowfSx7bmFtZToiU1RZTEUyMDI0IixudW1iZXI6MX0se25hbWU6IlNUWUxFX0xFR0FDWSIsbnVtYmVyOjJ9XX1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6MWUzLGVuZDo5OTk1fSx7c3RhcnQ6OTk5NSxlbmQ6MWU0fSx7c3RhcnQ6MWU0LGVuZDoxMDAwMX1dfSx7bmFtZToiRmVhdHVyZVNldERlZmF1bHRzIixmaWVsZDpbe25hbWU6ImRlZmF1bHRzIixudW1iZXI6MSx0eXBlOjExLGxhYmVsOjMsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldERlZmF1bHRzLkZlYXR1cmVTZXRFZGl0aW9uRGVmYXVsdCJ9LHtuYW1lOiJtaW5pbXVtX2VkaXRpb24iLG51bWJlcjo0LHR5cGU6MTQsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uIn0se25hbWU6Im1heGltdW1fZWRpdGlvbiIsbnVtYmVyOjUsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkVkaXRpb24ifV0sbmVzdGVkVHlwZTpbe25hbWU6IkZlYXR1cmVTZXRFZGl0aW9uRGVmYXVsdCIsZmllbGQ6W3tuYW1lOiJlZGl0aW9uIixudW1iZXI6Myx0eXBlOjE0LGxhYmVsOjEsdHlwZU5hbWU6Ii5nb29nbGUucHJvdG9idWYuRWRpdGlvbiJ9LHtuYW1lOiJvdmVycmlkYWJsZV9mZWF0dXJlcyIsbnVtYmVyOjQsdHlwZToxMSxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQifSx7bmFtZToiZml4ZWRfZmVhdHVyZXMiLG51bWJlcjo1LHR5cGU6MTEsbGFiZWw6MSx0eXBlTmFtZToiLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0In1dfV19LHtuYW1lOiJTb3VyY2VDb2RlSW5mbyIsZmllbGQ6W3tuYW1lOiJsb2NhdGlvbiIsbnVtYmVyOjEsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uIn1dLG5lc3RlZFR5cGU6W3tuYW1lOiJMb2NhdGlvbiIsZmllbGQ6W3tuYW1lOiJwYXRoIixudW1iZXI6MSx0eXBlOjUsbGFiZWw6MyxvcHRpb25zOntwYWNrZWQ6ITB9fSx7bmFtZToic3BhbiIsbnVtYmVyOjIsdHlwZTo1LGxhYmVsOjMsb3B0aW9uczp7cGFja2VkOiEwfX0se25hbWU6ImxlYWRpbmdfY29tbWVudHMiLG51bWJlcjozLHR5cGU6OSxsYWJlbDoxfSx7bmFtZToidHJhaWxpbmdfY29tbWVudHMiLG51bWJlcjo0LHR5cGU6OSxsYWJlbDoxfSx7bmFtZToibGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyIsbnVtYmVyOjYsdHlwZTo5LGxhYmVsOjN9XX1dLGV4dGVuc2lvblJhbmdlOlt7c3RhcnQ6NTM2ZTYsZW5kOjUzNjAwMDAwMX1dfSx7bmFtZToiR2VuZXJhdGVkQ29kZUluZm8iLGZpZWxkOlt7bmFtZToiYW5ub3RhdGlvbiIsbnVtYmVyOjEsdHlwZToxMSxsYWJlbDozLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24ifV0sbmVzdGVkVHlwZTpbe25hbWU6IkFubm90YXRpb24iLGZpZWxkOlt7bmFtZToicGF0aCIsbnVtYmVyOjEsdHlwZTo1LGxhYmVsOjMsb3B0aW9uczp7cGFja2VkOiEwfX0se25hbWU6InNvdXJjZV9maWxlIixudW1iZXI6Mix0eXBlOjksbGFiZWw6MX0se25hbWU6ImJlZ2luIixudW1iZXI6Myx0eXBlOjUsbGFiZWw6MX0se25hbWU6ImVuZCIsbnVtYmVyOjQsdHlwZTo1LGxhYmVsOjF9LHtuYW1lOiJzZW1hbnRpYyIsbnVtYmVyOjUsdHlwZToxNCxsYWJlbDoxLHR5cGVOYW1lOiIuZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24uU2VtYW50aWMifV0sZW51bVR5cGU6W3tuYW1lOiJTZW1hbnRpYyIsdmFsdWU6W3tuYW1lOiJOT05FIixudW1iZXI6MH0se25hbWU6IlNFVCIsbnVtYmVyOjF9LHtuYW1lOiJBTElBUyIsbnVtYmVyOjJ9XX1dfV19XSxlbnVtVHlwZTpbe25hbWU6IkVkaXRpb24iLHZhbHVlOlt7bmFtZToiRURJVElPTl9VTktOT1dOIixudW1iZXI6MH0se25hbWU6IkVESVRJT05fTEVHQUNZIixudW1iZXI6OTAwfSx7bmFtZToiRURJVElPTl9QUk9UTzIiLG51bWJlcjo5OTh9LHtuYW1lOiJFRElUSU9OX1BST1RPMyIsbnVtYmVyOjk5OX0se25hbWU6IkVESVRJT05fMjAyMyIsbnVtYmVyOjFlM30se25hbWU6IkVESVRJT05fMjAyNCIsbnVtYmVyOjEwMDF9LHtuYW1lOiJFRElUSU9OXzFfVEVTVF9PTkxZIixudW1iZXI6MX0se25hbWU6IkVESVRJT05fMl9URVNUX09OTFkiLG51bWJlcjoyfSx7bmFtZToiRURJVElPTl85OTk5N19URVNUX09OTFkiLG51bWJlcjo5OTk5N30se25hbWU6IkVESVRJT05fOTk5OThfVEVTVF9PTkxZIixudW1iZXI6OTk5OTh9LHtuYW1lOiJFRElUSU9OXzk5OTk5X1RFU1RfT05MWSIsbnVtYmVyOjk5OTk5fSx7bmFtZToiRURJVElPTl9NQVgiLG51bWJlcjoyMTQ3NDgzNjQ3fV19LHtuYW1lOiJTeW1ib2xWaXNpYmlsaXR5Iix2YWx1ZTpbe25hbWU6IlZJU0lCSUxJVFlfVU5TRVQiLG51bWJlcjowfSx7bmFtZToiVklTSUJJTElUWV9MT0NBTCIsbnVtYmVyOjF9LHtuYW1lOiJWSVNJQklMSVRZX0VYUE9SVCIsbnVtYmVyOjJ9XX1dfSksQ2Y9UW4oZ3MsMSk7dmFyIENhOyhmdW5jdGlvbih0KXt0W3QuREVDTEFSQVRJT049MF09IkRFQ0xBUkFUSU9OIix0W3QuVU5WRVJJRklFRD0xXT0iVU5WRVJJRklFRCJ9KShDYXx8KENhPXt9KSk7dmFyIFdhOyhmdW5jdGlvbih0KXt0W3QuRE9VQkxFPTFdPSJET1VCTEUiLHRbdC5GTE9BVD0yXT0iRkxPQVQiLHRbdC5JTlQ2ND0zXT0iSU5UNjQiLHRbdC5VSU5UNjQ9NF09IlVJTlQ2NCIsdFt0LklOVDMyPTVdPSJJTlQzMiIsdFt0LkZJWEVENjQ9Nl09IkZJWEVENjQiLHRbdC5GSVhFRDMyPTddPSJGSVhFRDMyIix0W3QuQk9PTD04XT0iQk9PTCIsdFt0LlNUUklORz05XT0iU1RSSU5HIix0W3QuR1JPVVA9MTBdPSJHUk9VUCIsdFt0Lk1FU1NBR0U9MTFdPSJNRVNTQUdFIix0W3QuQllURVM9MTJdPSJCWVRFUyIsdFt0LlVJTlQzMj0xM109IlVJTlQzMiIsdFt0LkVOVU09MTRdPSJFTlVNIix0W3QuU0ZJWEVEMzI9MTVdPSJTRklYRUQzMiIsdFt0LlNGSVhFRDY0PTE2XT0iU0ZJWEVENjQiLHRbdC5TSU5UMzI9MTddPSJTSU5UMzIiLHRbdC5TSU5UNjQ9MThdPSJTSU5UNjQifSkoV2F8fChXYT17fSkpO3ZhciBCYTsoZnVuY3Rpb24odCl7dFt0Lk9QVElPTkFMPTFdPSJPUFRJT05BTCIsdFt0LlJFUEVBVEVEPTNdPSJSRVBFQVRFRCIsdFt0LlJFUVVJUkVEPTJdPSJSRVFVSVJFRCJ9KShCYXx8KEJhPXt9KSk7dmFyIE5hOyhmdW5jdGlvbih0KXt0W3QuU1BFRUQ9MV09IlNQRUVEIix0W3QuQ09ERV9TSVpFPTJdPSJDT0RFX1NJWkUiLHRbdC5MSVRFX1JVTlRJTUU9M109IkxJVEVfUlVOVElNRSJ9KShOYXx8KE5hPXt9KSk7dmFyIEZhOyhmdW5jdGlvbih0KXt0W3QuU1RSSU5HPTBdPSJTVFJJTkciLHRbdC5DT1JEPTFdPSJDT1JEIix0W3QuU1RSSU5HX1BJRUNFPTJdPSJTVFJJTkdfUElFQ0UifSkoRmF8fChGYT17fSkpO3ZhciBZYTsoZnVuY3Rpb24odCl7dFt0LkpTX05PUk1BTD0wXT0iSlNfTk9STUFMIix0W3QuSlNfU1RSSU5HPTFdPSJKU19TVFJJTkciLHRbdC5KU19OVU1CRVI9Ml09IkpTX05VTUJFUiJ9KShZYXx8KFlhPXt9KSk7dmFyIFVhOyhmdW5jdGlvbih0KXt0W3QuUkVURU5USU9OX1VOS05PV049MF09IlJFVEVOVElPTl9VTktOT1dOIix0W3QuUkVURU5USU9OX1JVTlRJTUU9MV09IlJFVEVOVElPTl9SVU5USU1FIix0W3QuUkVURU5USU9OX1NPVVJDRT0yXT0iUkVURU5USU9OX1NPVVJDRSJ9KShVYXx8KFVhPXt9KSk7dmFyIEphOyhmdW5jdGlvbih0KXt0W3QuVEFSR0VUX1RZUEVfVU5LTk9XTj0wXT0iVEFSR0VUX1RZUEVfVU5LTk9XTiIsdFt0LlRBUkdFVF9UWVBFX0ZJTEU9MV09IlRBUkdFVF9UWVBFX0ZJTEUiLHRbdC5UQVJHRVRfVFlQRV9FWFRFTlNJT05fUkFOR0U9Ml09IlRBUkdFVF9UWVBFX0VYVEVOU0lPTl9SQU5HRSIsdFt0LlRBUkdFVF9UWVBFX01FU1NBR0U9M109IlRBUkdFVF9UWVBFX01FU1NBR0UiLHRbdC5UQVJHRVRfVFlQRV9GSUVMRD00XT0iVEFSR0VUX1RZUEVfRklFTEQiLHRbdC5UQVJHRVRfVFlQRV9PTkVPRj01XT0iVEFSR0VUX1RZUEVfT05FT0YiLHRbdC5UQVJHRVRfVFlQRV9FTlVNPTZdPSJUQVJHRVRfVFlQRV9FTlVNIix0W3QuVEFSR0VUX1RZUEVfRU5VTV9FTlRSWT03XT0iVEFSR0VUX1RZUEVfRU5VTV9FTlRSWSIsdFt0LlRBUkdFVF9UWVBFX1NFUlZJQ0U9OF09IlRBUkdFVF9UWVBFX1NFUlZJQ0UiLHRbdC5UQVJHRVRfVFlQRV9NRVRIT0Q9OV09IlRBUkdFVF9UWVBFX01FVEhPRCJ9KShKYXx8KEphPXt9KSk7dmFyIEppOyhmdW5jdGlvbih0KXt0W3QuSURFTVBPVEVOQ1lfVU5LTk9XTj0wXT0iSURFTVBPVEVOQ1lfVU5LTk9XTiIsdFt0Lk5PX1NJREVfRUZGRUNUUz0xXT0iTk9fU0lERV9FRkZFQ1RTIix0W3QuSURFTVBPVEVOVD0yXT0iSURFTVBPVEVOVCJ9KShKaXx8KEppPXt9KSk7dmFyIHhhOyhmdW5jdGlvbih0KXt0W3QuREVGQVVMVF9TWU1CT0xfVklTSUJJTElUWV9VTktOT1dOPTBdPSJERUZBVUxUX1NZTUJPTF9WSVNJQklMSVRZX1VOS05PV04iLHRbdC5FWFBPUlRfQUxMPTFdPSJFWFBPUlRfQUxMIix0W3QuRVhQT1JUX1RPUF9MRVZFTD0yXT0iRVhQT1JUX1RPUF9MRVZFTCIsdFt0LkxPQ0FMX0FMTD0zXT0iTE9DQUxfQUxMIix0W3QuU1RSSUNUPTRdPSJTVFJJQ1QifSkoeGF8fCh4YT17fSkpO3ZhciB3YTsoZnVuY3Rpb24odCl7dFt0LkZJRUxEX1BSRVNFTkNFX1VOS05PV049MF09IkZJRUxEX1BSRVNFTkNFX1VOS05PV04iLHRbdC5FWFBMSUNJVD0xXT0iRVhQTElDSVQiLHRbdC5JTVBMSUNJVD0yXT0iSU1QTElDSVQiLHRbdC5MRUdBQ1lfUkVRVUlSRUQ9M109IkxFR0FDWV9SRVFVSVJFRCJ9KSh3YXx8KHdhPXt9KSk7dmFyIGthOyhmdW5jdGlvbih0KXt0W3QuRU5VTV9UWVBFX1VOS05PV049MF09IkVOVU1fVFlQRV9VTktOT1dOIix0W3QuT1BFTj0xXT0iT1BFTiIsdFt0LkNMT1NFRD0yXT0iQ0xPU0VEIn0pKGthfHwoa2E9e30pKTt2YXIgemE7KGZ1bmN0aW9uKHQpe3RbdC5SRVBFQVRFRF9GSUVMRF9FTkNPRElOR19VTktOT1dOPTBdPSJSRVBFQVRFRF9GSUVMRF9FTkNPRElOR19VTktOT1dOIix0W3QuUEFDS0VEPTFdPSJQQUNLRUQiLHRbdC5FWFBBTkRFRD0yXT0iRVhQQU5ERUQifSkoemF8fCh6YT17fSkpO3ZhciBRYTsoZnVuY3Rpb24odCl7dFt0LlVURjhfVkFMSURBVElPTl9VTktOT1dOPTBdPSJVVEY4X1ZBTElEQVRJT05fVU5LTk9XTiIsdFt0LlZFUklGWT0yXT0iVkVSSUZZIix0W3QuTk9ORT0zXT0iTk9ORSJ9KShRYXx8KFFhPXt9KSk7dmFyIExhOyhmdW5jdGlvbih0KXt0W3QuTUVTU0FHRV9FTkNPRElOR19VTktOT1dOPTBdPSJNRVNTQUdFX0VOQ09ESU5HX1VOS05PV04iLHRbdC5MRU5HVEhfUFJFRklYRUQ9MV09IkxFTkdUSF9QUkVGSVhFRCIsdFt0LkRFTElNSVRFRD0yXT0iREVMSU1JVEVEIn0pKExhfHwoTGE9e30pKTt2YXIgS2E7KGZ1bmN0aW9uKHQpe3RbdC5KU09OX0ZPUk1BVF9VTktOT1dOPTBdPSJKU09OX0ZPUk1BVF9VTktOT1dOIix0W3QuQUxMT1c9MV09IkFMTE9XIix0W3QuTEVHQUNZX0JFU1RfRUZGT1JUPTJdPSJMRUdBQ1lfQkVTVF9FRkZPUlQifSkoS2F8fChLYT17fSkpO3ZhciBUYTsoZnVuY3Rpb24odCl7dFt0LkVORk9SQ0VfTkFNSU5HX1NUWUxFX1VOS05PV049MF09IkVORk9SQ0VfTkFNSU5HX1NUWUxFX1VOS05PV04iLHRbdC5TVFlMRTIwMjQ9MV09IlNUWUxFMjAyNCIsdFt0LlNUWUxFX0xFR0FDWT0yXT0iU1RZTEVfTEVHQUNZIn0pKFRhfHwoVGE9e30pKTt2YXIgTWE7KGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuU0VUPTFdPSJTRVQiLHRbdC5BTElBUz0yXT0iQUxJQVMifSkoTWF8fChNYT17fSkpO3ZhciBIYTsoZnVuY3Rpb24odCl7dFt0LkVESVRJT05fVU5LTk9XTj0wXT0iRURJVElPTl9VTktOT1dOIix0W3QuRURJVElPTl9MRUdBQ1k9OTAwXT0iRURJVElPTl9MRUdBQ1kiLHRbdC5FRElUSU9OX1BST1RPMj05OThdPSJFRElUSU9OX1BST1RPMiIsdFt0LkVESVRJT05fUFJPVE8zPTk5OV09IkVESVRJT05fUFJPVE8zIix0W3QuRURJVElPTl8yMDIzPTFlM109IkVESVRJT05fMjAyMyIsdFt0LkVESVRJT05fMjAyND0xMDAxXT0iRURJVElPTl8yMDI0Iix0W3QuRURJVElPTl8xX1RFU1RfT05MWT0xXT0iRURJVElPTl8xX1RFU1RfT05MWSIsdFt0LkVESVRJT05fMl9URVNUX09OTFk9Ml09IkVESVRJT05fMl9URVNUX09OTFkiLHRbdC5FRElUSU9OXzk5OTk3X1RFU1RfT05MWT05OTk5N109IkVESVRJT05fOTk5OTdfVEVTVF9PTkxZIix0W3QuRURJVElPTl85OTk5OF9URVNUX09OTFk9OTk5OThdPSJFRElUSU9OXzk5OTk4X1RFU1RfT05MWSIsdFt0LkVESVRJT05fOTk5OTlfVEVTVF9PTkxZPTk5OTk5XT0iRURJVElPTl85OTk5OV9URVNUX09OTFkiLHRbdC5FRElUSU9OX01BWD0yMTQ3NDgzNjQ3XT0iRURJVElPTl9NQVgifSkoSGF8fChIYT17fSkpO3ZhciBEYTsoZnVuY3Rpb24odCl7dFt0LlZJU0lCSUxJVFlfVU5TRVQ9MF09IlZJU0lCSUxJVFlfVU5TRVQiLHRbdC5WSVNJQklMSVRZX0xPQ0FMPTFdPSJWSVNJQklMSVRZX0xPQ0FMIix0W3QuVklTSUJJTElUWV9FWFBPUlQ9Ml09IlZJU0lCSUxJVFlfRVhQT1JUIn0pKERhfHwoRGE9e30pKTtjb25zdCBqYT17cmVhZFVua25vd25GaWVsZHM6ITB9O2Z1bmN0aW9uIFdmKHQpe3JldHVybiB0P09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqYSksdCk6amF9ZnVuY3Rpb24geGwodCxlLG4pe2NvbnN0IGw9cnQodCx2b2lkIDAsITEpO3JldHVybiBocyhsLG5ldyBmcihlKSxXZihuKSwhMSxlLmJ5dGVMZW5ndGgpLGwubWVzc2FnZX1mdW5jdGlvbiBocyh0LGUsbixsLGkpe3ZhciByO2NvbnN0IG89bD9lLmxlbjplLnBvcytpO2xldCBhLGM7Y29uc3QgZD0ocj10LmdldFVua25vd24oKSkhPT1udWxsJiZyIT09dm9pZCAwP3I6W107Zm9yKDtlLnBvczxvJiYoW2EsY109ZS50YWcoKSwhKGwmJmM9PWZlLkVuZEdyb3VwKSk7KXtjb25zdCBzPXQuZmluZE51bWJlcihhKTtpZighcyl7Y29uc3QgdT1lLnNraXAoYyxhKTtuLnJlYWRVbmtub3duRmllbGRzJiZkLnB1c2goe25vOmEsd2lyZVR5cGU6YyxkYXRhOnV9KTtjb250aW51ZX1icyh0LGUscyxjLG4pfWlmKGwmJihjIT1mZS5FbmRHcm91cHx8YSE9PWkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBlbmQgZ3JvdXAgdGFnIik7ZC5sZW5ndGg+MCYmdC5zZXRVbmtub3duKGQpfWZ1bmN0aW9uIGJzKHQsZSxuLGwsaSl7dmFyIHI7c3dpdGNoKG4uZmllbGRLaW5kKXtjYXNlInNjYWxhciI6dC5zZXQobixubihlLG4uc2NhbGFyKSk7YnJlYWs7Y2FzZSJlbnVtIjpjb25zdCBvPW5uKGUsWi5JTlQzMik7aWYobi5lbnVtLm9wZW4pdC5zZXQobixvKTtlbHNlIGlmKG4uZW51bS52YWx1ZXMuc29tZShjPT5jLm51bWJlcj09PW8pKXQuc2V0KG4sbyk7ZWxzZSBpZihpLnJlYWRVbmtub3duRmllbGRzKXtjb25zdCBjPVtdO0JpKG8sYyk7Y29uc3QgZD0ocj10LmdldFVua25vd24oKSkhPT1udWxsJiZyIT09dm9pZCAwP3I6W107ZC5wdXNoKHtubzpuLm51bWJlcix3aXJlVHlwZTpsLGRhdGE6bmV3IFVpbnQ4QXJyYXkoYyl9KSx0LnNldFVua25vd24oZCl9YnJlYWs7Y2FzZSJtZXNzYWdlIjp0LnNldChuLHlyKGUsaSxuLHQuZ2V0KG4pKSk7YnJlYWs7Y2FzZSJsaXN0IjpOZihlLGwsdC5nZXQobiksaSk7YnJlYWs7Y2FzZSJtYXAiOkJmKGUsdC5nZXQobiksaSk7YnJlYWt9fWZ1bmN0aW9uIEJmKHQsZSxuKXtjb25zdCBsPWUuZmllbGQoKTtsZXQgaSxyO2NvbnN0IG89dC51aW50MzIoKSxhPXQucG9zK287Zm9yKDt0LnBvczxhOyl7Y29uc3RbY109dC50YWcoKTtzd2l0Y2goYyl7Y2FzZSAxOmk9bm4odCxsLm1hcEtleSk7YnJlYWs7Y2FzZSAyOnN3aXRjaChsLm1hcEtpbmQpe2Nhc2Uic2NhbGFyIjpyPW5uKHQsbC5zY2FsYXIpO2JyZWFrO2Nhc2UiZW51bSI6cj10LmludDMyKCk7YnJlYWs7Y2FzZSJtZXNzYWdlIjpyPXlyKHQsbixsKTticmVha31icmVha319aWYoaT09PXZvaWQgMCYmKGk9THQobC5tYXBLZXksITEpKSxyPT09dm9pZCAwKXN3aXRjaChsLm1hcEtpbmQpe2Nhc2Uic2NhbGFyIjpyPUx0KGwuc2NhbGFyLCExKTticmVhaztjYXNlImVudW0iOnI9bC5lbnVtLnZhbHVlc1swXS5udW1iZXI7YnJlYWs7Y2FzZSJtZXNzYWdlIjpyPXJ0KGwubWVzc2FnZSx2b2lkIDAsITEpO2JyZWFrfWUuc2V0KGkscil9ZnVuY3Rpb24gTmYodCxlLG4sbCl7dmFyIGk7Y29uc3Qgcj1uLmZpZWxkKCk7aWYoci5saXN0S2luZD09PSJtZXNzYWdlIil7bi5hZGQoeXIodCxsLHIpKTtyZXR1cm59Y29uc3Qgbz0oaT1yLnNjYWxhcikhPT1udWxsJiZpIT09dm9pZCAwP2k6Wi5JTlQzMjtpZighKGU9PWZlLkxlbmd0aERlbGltaXRlZCYmbyE9Wi5TVFJJTkcmJm8hPVouQllURVMpKXtuLmFkZChubih0LG8pKTtyZXR1cm59Y29uc3QgYz10LnVpbnQzMigpK3QucG9zO2Zvcig7dC5wb3M8Yzspbi5hZGQobm4odCxvKSl9ZnVuY3Rpb24geXIodCxlLG4sbCl7Y29uc3QgaT1uLmRlbGltaXRlZEVuY29kaW5nLHI9bD8/cnQobi5tZXNzYWdlLHZvaWQgMCwhMSk7cmV0dXJuIGhzKHIsdCxlLGksaT9uLm51bWJlcjp0LnVpbnQzMigpKSxyfWZ1bmN0aW9uIG5uKHQsZSl7c3dpdGNoKGUpe2Nhc2UgWi5TVFJJTkc6cmV0dXJuIHQuc3RyaW5nKCk7Y2FzZSBaLkJPT0w6cmV0dXJuIHQuYm9vbCgpO2Nhc2UgWi5ET1VCTEU6cmV0dXJuIHQuZG91YmxlKCk7Y2FzZSBaLkZMT0FUOnJldHVybiB0LmZsb2F0KCk7Y2FzZSBaLklOVDMyOnJldHVybiB0LmludDMyKCk7Y2FzZSBaLklOVDY0OnJldHVybiB0LmludDY0KCk7Y2FzZSBaLlVJTlQ2NDpyZXR1cm4gdC51aW50NjQoKTtjYXNlIFouRklYRUQ2NDpyZXR1cm4gdC5maXhlZDY0KCk7Y2FzZSBaLkJZVEVTOnJldHVybiB0LmJ5dGVzKCk7Y2FzZSBaLkZJWEVEMzI6cmV0dXJuIHQuZml4ZWQzMigpO2Nhc2UgWi5TRklYRUQzMjpyZXR1cm4gdC5zZml4ZWQzMigpO2Nhc2UgWi5TRklYRUQ2NDpyZXR1cm4gdC5zZml4ZWQ2NCgpO2Nhc2UgWi5TSU5UNjQ6cmV0dXJuIHQuc2ludDY0KCk7Y2FzZSBaLlVJTlQzMjpyZXR1cm4gdC51aW50MzIoKTtjYXNlIFouU0lOVDMyOnJldHVybiB0LnNpbnQzMigpfX1mdW5jdGlvbiB6KHQsZSl7dmFyIG47Y29uc3QgbD14bChDZixJcih0KSk7cmV0dXJuIGwubWVzc2FnZVR5cGUuZm9yRWFjaChSciksbC5kZXBlbmRlbmN5PShuPWU9PW51bGw/dm9pZCAwOmUubWFwKHI9PnIucHJvdG8ubmFtZSkpIT09bnVsbCYmbiE9PXZvaWQgMD9uOltdLG9zKGwscj0+ZT09bnVsbD92b2lkIDA6ZS5maW5kKG89Pm8ucHJvdG8ubmFtZT09PXIpKS5nZXRGaWxlKGwubmFtZSl9Y29uc3QgdGU9eigiQ2g5bmIyOW5iR1V2Y0hKdmRHOWlkV1l2ZEdsdFpYTjBZVzF3TG5CeWIzUnZFZzluYjI5bmJHVXVjSEp2ZEc5aWRXWWlLd29KVkdsdFpYTjBZVzF3RWc4S0IzTmxZMjl1WkhNWUFTQUJLQU1TRFFvRmJtRnViM01ZQWlBQktBVkNoUUVLRTJOdmJTNW5iMjluYkdVdWNISnZkRzlpZFdaQ0RsUnBiV1Z6ZEdGdGNGQnliM1J2VUFGYU1tZHZiMmRzWlM1bmIyeGhibWN1YjNKbkwzQnliM1J2WW5WbUwzUjVjR1Z6TDJ0dWIzZHVMM1JwYldWemRHRnRjSEJpK0FFQm9nSURSMUJDcWdJZVIyOXZaMnhsTGxCeWIzUnZZblZtTGxkbGJHeExibTkzYmxSNWNHVnpZZ1p3Y205MGJ6TSIpLFZzPXooIkNobG5iMjluYkdVdmNISnZkRzlpZFdZdllXNTVMbkJ5YjNSdkVnOW5iMjluYkdVdWNISnZkRzlpZFdZaUpnb0RRVzU1RWhBS0NIUjVjR1ZmZFhKc0dBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ01RbllLRTJOdmJTNW5iMjluYkdVdWNISnZkRzlpZFdaQ0NFRnVlVkJ5YjNSdlVBRmFMR2R2YjJkc1pTNW5iMnhoYm1jdWIzSm5MM0J5YjNSdlluVm1MM1I1Y0dWekwydHViM2R1TDJGdWVYQmlvZ0lEUjFCQ3FnSWVSMjl2WjJ4bExsQnliM1J2WW5WbUxsZGxiR3hMYm05M2JsUjVjR1Z6WWdad2NtOTBiek0iKSxGZj1RbihWcywwKSxZZj0zLF9hPXt3cml0ZVVua25vd25GaWVsZHM6ITB9O2Z1bmN0aW9uIFVmKHQpe3JldHVybiB0P09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxfYSksdCk6X2F9ZnVuY3Rpb24gbXModCxlLG4pe3JldHVybiBJbChuZXcgamQsVWYobikscnQodCxlKSkuZmluaXNoKCl9ZnVuY3Rpb24gSWwodCxlLG4pe3ZhciBsO2Zvcihjb25zdCBpIG9mIG4uc29ydGVkRmllbGRzKXtpZighbi5pc1NldChpKSl7aWYoaS5wcmVzZW5jZT09WWYpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZW5jb2RlICR7aX0gdG8gYmluYXJ5OiByZXF1aXJlZCBmaWVsZCBub3Qgc2V0YCk7Y29udGludWV9ZnModCxlLG4saSl9aWYoZS53cml0ZVVua25vd25GaWVsZHMpZm9yKGNvbnN0e25vOmksd2lyZVR5cGU6cixkYXRhOm99b2YobD1uLmdldFVua25vd24oKSkhPT1udWxsJiZsIT09dm9pZCAwP2w6W10pdC50YWcoaSxyKS5yYXcobyk7cmV0dXJuIHR9ZnVuY3Rpb24gZnModCxlLG4sbCl7dmFyIGk7c3dpdGNoKGwuZmllbGRLaW5kKXtjYXNlInNjYWxhciI6Y2FzZSJlbnVtIjpSbCh0LG4uZGVzYy50eXBlTmFtZSxsLm5hbWUsKGk9bC5zY2FsYXIpIT09bnVsbCYmaSE9PXZvaWQgMD9pOlouSU5UMzIsbC5udW1iZXIsbi5nZXQobCkpO2JyZWFrO2Nhc2UibGlzdCI6SmYodCxlLGwsbi5nZXQobCkpO2JyZWFrO2Nhc2UibWVzc2FnZSI6QXModCxlLGwsbi5nZXQobCkpO2JyZWFrO2Nhc2UibWFwIjpmb3IoY29uc3RbcixvXW9mIG4uZ2V0KGwpKXhmKHQsZSxsLHIsbyk7YnJlYWt9fWZ1bmN0aW9uIFJsKHQsZSxuLGwsaSxyKXtwcyh0LnRhZyhpLHdmKGwpKSxlLG4sbCxyKX1mdW5jdGlvbiBBcyh0LGUsbixsKXtuLmRlbGltaXRlZEVuY29kaW5nP0lsKHQudGFnKG4ubnVtYmVyLGZlLlN0YXJ0R3JvdXApLGUsbCkudGFnKG4ubnVtYmVyLGZlLkVuZEdyb3VwKTpJbCh0LnRhZyhuLm51bWJlcixmZS5MZW5ndGhEZWxpbWl0ZWQpLmZvcmsoKSxlLGwpLmpvaW4oKX1mdW5jdGlvbiBKZih0LGUsbixsKXt2YXIgaTtpZihuLmxpc3RLaW5kPT0ibWVzc2FnZSIpe2Zvcihjb25zdCBvIG9mIGwpQXModCxlLG4sbyk7cmV0dXJufWNvbnN0IHI9KGk9bi5zY2FsYXIpIT09bnVsbCYmaSE9PXZvaWQgMD9pOlouSU5UMzI7aWYobi5wYWNrZWQpe2lmKCFsLnNpemUpcmV0dXJuO3QudGFnKG4ubnVtYmVyLGZlLkxlbmd0aERlbGltaXRlZCkuZm9yaygpO2Zvcihjb25zdCBvIG9mIGwpcHModCxuLnBhcmVudC50eXBlTmFtZSxuLm5hbWUscixvKTt0LmpvaW4oKTtyZXR1cm59Zm9yKGNvbnN0IG8gb2YgbClSbCh0LG4ucGFyZW50LnR5cGVOYW1lLG4ubmFtZSxyLG4ubnVtYmVyLG8pfWZ1bmN0aW9uIHhmKHQsZSxuLGwsaSl7dmFyIHI7c3dpdGNoKHQudGFnKG4ubnVtYmVyLGZlLkxlbmd0aERlbGltaXRlZCkuZm9yaygpLFJsKHQsbi5wYXJlbnQudHlwZU5hbWUsbi5uYW1lLG4ubWFwS2V5LDEsbCksbi5tYXBLaW5kKXtjYXNlInNjYWxhciI6Y2FzZSJlbnVtIjpSbCh0LG4ucGFyZW50LnR5cGVOYW1lLG4ubmFtZSwocj1uLnNjYWxhcikhPT1udWxsJiZyIT09dm9pZCAwP3I6Wi5JTlQzMiwyLGkpO2JyZWFrO2Nhc2UibWVzc2FnZSI6SWwodC50YWcoMixmZS5MZW5ndGhEZWxpbWl0ZWQpLmZvcmsoKSxlLGkpLmpvaW4oKTticmVha310LmpvaW4oKX1mdW5jdGlvbiBwcyh0LGUsbixsLGkpe3RyeXtzd2l0Y2gobCl7Y2FzZSBaLlNUUklORzp0LnN0cmluZyhpKTticmVhaztjYXNlIFouQk9PTDp0LmJvb2woaSk7YnJlYWs7Y2FzZSBaLkRPVUJMRTp0LmRvdWJsZShpKTticmVhaztjYXNlIFouRkxPQVQ6dC5mbG9hdChpKTticmVhaztjYXNlIFouSU5UMzI6dC5pbnQzMihpKTticmVhaztjYXNlIFouSU5UNjQ6dC5pbnQ2NChpKTticmVhaztjYXNlIFouVUlOVDY0OnQudWludDY0KGkpO2JyZWFrO2Nhc2UgWi5GSVhFRDY0OnQuZml4ZWQ2NChpKTticmVhaztjYXNlIFouQllURVM6dC5ieXRlcyhpKTticmVhaztjYXNlIFouRklYRUQzMjp0LmZpeGVkMzIoaSk7YnJlYWs7Y2FzZSBaLlNGSVhFRDMyOnQuc2ZpeGVkMzIoaSk7YnJlYWs7Y2FzZSBaLlNGSVhFRDY0OnQuc2ZpeGVkNjQoaSk7YnJlYWs7Y2FzZSBaLlNJTlQ2NDp0LnNpbnQ2NChpKTticmVhaztjYXNlIFouVUlOVDMyOnQudWludDMyKGkpO2JyZWFrO2Nhc2UgWi5TSU5UMzI6dC5zaW50MzIoaSk7YnJlYWt9fWNhdGNoKHIpe3Rocm93IHIgaW5zdGFuY2VvZiBFcnJvcj9uZXcgRXJyb3IoYGNhbm5vdCBlbmNvZGUgZmllbGQgJHtlfS4ke259IHRvIGJpbmFyeTogJHtyLm1lc3NhZ2V9YCk6cn19ZnVuY3Rpb24gd2YodCl7c3dpdGNoKHQpe2Nhc2UgWi5CWVRFUzpjYXNlIFouU1RSSU5HOnJldHVybiBmZS5MZW5ndGhEZWxpbWl0ZWQ7Y2FzZSBaLkRPVUJMRTpjYXNlIFouRklYRUQ2NDpjYXNlIFouU0ZJWEVENjQ6cmV0dXJuIGZlLkJpdDY0O2Nhc2UgWi5GSVhFRDMyOmNhc2UgWi5TRklYRUQzMjpjYXNlIFouRkxPQVQ6cmV0dXJuIGZlLkJpdDMyO2RlZmF1bHQ6cmV0dXJuIGZlLlZhcmludH19ZnVuY3Rpb24ga2YodCxlLG4pe2xldCBsPSExO3JldHVybiBufHwobj1kdChGZiksbD0hMCksbi52YWx1ZT1tcyh0LGUpLG4udHlwZVVybD1MZihlLiR0eXBlTmFtZSksbD9uOnZvaWQgMH1mdW5jdGlvbiB6Zih0LGUpe2lmKHQudHlwZVVybD09PSIiKXJldHVybiExO2NvbnN0IG49dHlwZW9mIGU9PSJzdHJpbmciP2U6ZS50eXBlTmFtZSxsPVpzKHQudHlwZVVybCk7cmV0dXJuIG49PT1sfWZ1bmN0aW9uIFFmKHQsZSl7aWYodC50eXBlVXJsPT09IiIpcmV0dXJuO2NvbnN0IG49ZS5raW5kPT0ibWVzc2FnZSI/ZTplLmdldE1lc3NhZ2UoWnModC50eXBlVXJsKSk7aWYoISghbnx8IXpmKHQsbikpKXJldHVybiB4bChuLHQudmFsdWUpfWZ1bmN0aW9uIExmKHQpe3JldHVybmB0eXBlLmdvb2dsZWFwaXMuY29tLyR7dH1gfWZ1bmN0aW9uIFpzKHQpe2NvbnN0IGU9dC5sYXN0SW5kZXhPZigiLyIpLG49ZT49MD90LnN1YnN0cmluZyhlKzEpOnQ7aWYoIW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgaW52YWxpZCB0eXBlIHVybDogJHt0fWApO3JldHVybiBufWNvbnN0IEtmPXooIkNoNW5iMjluYkdVdmNISnZkRzlpZFdZdlpIVnlZWFJwYjI0dWNISnZkRzhTRDJkdmIyZHNaUzV3Y205MGIySjFaaUlxQ2doRWRYSmhkR2x2YmhJUENnZHpaV052Ym1SekdBRWdBU2dERWcwS0JXNWhibTl6R0FJZ0FTZ0ZRb01CQ2hOamIyMHVaMjl2WjJ4bExuQnliM1J2WW5WbVFnMUVkWEpoZEdsdmJsQnliM1J2VUFGYU1XZHZiMmRzWlM1bmIyeGhibWN1YjNKbkwzQnliM1J2WW5WbUwzUjVjR1Z6TDJ0dWIzZHVMMlIxY21GMGFXOXVjR0w0QVFHaUFnTkhVRUtxQWg1SGIyOW5iR1V1VUhKdmRHOWlkV1l1VjJWc2JFdHViM2R1Vkhsd1pYTmlCbkJ5YjNSdk13IiksVGY9eigiQ2h0bmIyOW5iR1V2Y0hKdmRHOWlkV1l2Wlcxd2RIa3VjSEp2ZEc4U0QyZHZiMmRzWlM1d2NtOTBiMkoxWmlJSENnVkZiWEIwZVVKOUNoTmpiMjB1WjI5dloyeGxMbkJ5YjNSdlluVm1RZ3BGYlhCMGVWQnliM1J2VUFGYUxtZHZiMmRzWlM1bmIyeGhibWN1YjNKbkwzQnliM1J2WW5WbUwzUjVjR1Z6TDJ0dWIzZHVMMlZ0Y0hSNWNHTDRBUUdpQWdOSFVFS3FBaDVIYjI5bmJHVXVVSEp2ZEc5aWRXWXVWMlZzYkV0dWIzZHVWSGx3WlhOaUJuQnliM1J2TXciKSxIZT16KCJDaHhuYjI5bmJHVXZjSEp2ZEc5aWRXWXZjM1J5ZFdOMExuQnliM1J2RWc5bmIyOW5iR1V1Y0hKdmRHOWlkV1lpaEFFS0JsTjBjblZqZEJJekNnWm1hV1ZzWkhNWUFTQURLQXN5SXk1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VTNSeWRXTjBMa1pwWld4a2MwVnVkSEo1R2tVS0MwWnBaV3hrYzBWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJbENnVjJZV3gxWlJnQ0lBRW9DeklXTG1kdmIyZHNaUzV3Y205MGIySjFaaTVXWVd4MVpUb0NPQUVpNmdFS0JWWmhiSFZsRWpBS0NtNTFiR3hmZG1Gc2RXVVlBU0FCS0E0eUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVRuVnNiRlpoYkhWbFNBQVNGZ29NYm5WdFltVnlYM1poYkhWbEdBSWdBU2dCU0FBU0Znb01jM1J5YVc1blgzWmhiSFZsR0FNZ0FTZ0pTQUFTRkFvS1ltOXZiRjkyWVd4MVpSZ0VJQUVvQ0VnQUVpOEtESE4wY25WamRGOTJZV3gxWlJnRklBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUklBQkl3Q2dwc2FYTjBYM1poYkhWbEdBWWdBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGt4cGMzUldZV3gxWlVnQVFnWUtCR3RwYm1RaU13b0pUR2x6ZEZaaGJIVmxFaVlLQm5aaGJIVmxjeGdCSUFNb0N6SVdMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVdZV3gxWlNvYkNnbE9kV3hzVm1Gc2RXVVNEZ29LVGxWTVRGOVdRVXhWUlJBQVFuOEtFMk52YlM1bmIyOW5iR1V1Y0hKdmRHOWlkV1pDQzFOMGNuVmpkRkJ5YjNSdlVBRmFMMmR2YjJkc1pTNW5iMnhoYm1jdWIzSm5MM0J5YjNSdlluVm1MM1I1Y0dWekwydHViM2R1TDNOMGNuVmpkSEJpK0FFQm9nSURSMUJDcWdJZVIyOXZaMnhsTGxCeWIzUnZZblZtTGxkbGJHeExibTkzYmxSNWNHVnpZZ1p3Y205MGJ6TSIpLE1mPVFuKEhlLDApLEdzPVFuKEhlLDEpLEhmPVFuKEhlLDIpO3ZhciB4aTsoZnVuY3Rpb24odCl7dFt0Lk5VTExfVkFMVUU9MF09Ik5VTExfVkFMVUUifSkoeGl8fCh4aT17fSkpO2Z1bmN0aW9uIERmKHQsZSl7WHMoZSx0KTtjb25zdCBuPV9mKHQuJHVua25vd24sZSksW2wsaSxyXT13bChlKTtmb3IoY29uc3QgbyBvZiBuKWJzKGwsbmV3IGZyKG8uZGF0YSksaSxvLndpcmVUeXBlLHtyZWFkVW5rbm93bkZpZWxkczohMH0pO3JldHVybiByKCl9ZnVuY3Rpb24gamYodCxlLG4pe3ZhciBsO1hzKGUsdCk7Y29uc3QgaT0oKGw9dC4kdW5rbm93bikhPT1udWxsJiZsIT09dm9pZCAwP2w6W10pLmZpbHRlcihkPT5kLm5vIT09ZS5udW1iZXIpLFtyLG9dPXdsKGUsbiksYT1uZXcgamQ7ZnMoYSx7d3JpdGVVbmtub3duRmllbGRzOiEwfSxyLG8pO2NvbnN0IGM9bmV3IGZyKGEuZmluaXNoKCkpO2Zvcig7Yy5wb3M8Yy5sZW47KXtjb25zdFtkLHNdPWMudGFnKCksdT1jLnNraXAocyxkKTtpLnB1c2goe25vOmQsd2lyZVR5cGU6cyxkYXRhOnV9KX10LiR1bmtub3duPWl9ZnVuY3Rpb24gX2YodCxlKXtpZih0PT09dm9pZCAwKXJldHVybltdO2lmKGUuZmllbGRLaW5kPT09ImVudW0ifHxlLmZpZWxkS2luZD09PSJzY2FsYXIiKXtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wOy0tbilpZih0W25dLm5vPT1lLm51bWJlcilyZXR1cm5bdFtuXV07cmV0dXJuW119cmV0dXJuIHQuZmlsdGVyKG49Pm4ubm89PT1lLm51bWJlcil9ZnVuY3Rpb24gd2wodCxlKXtjb25zdCBuPXQudHlwZU5hbWUsbD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2tpbmQ6ImZpZWxkIixwYXJlbnQ6dC5leHRlbmRlZSxsb2NhbE5hbWU6bn0pLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXh0ZW5kZWUpLHtmaWVsZHM6W2xdLG1lbWJlcnM6W2xdLG9uZW9mczpbXX0pLHI9ZHQoaSxlIT09dm9pZCAwP3tbbl06ZX06dm9pZCAwKTtyZXR1cm5bcnQoaSxyKSxsLCgpPT57Y29uc3Qgbz1yW25dO2lmKG89PT12b2lkIDApe2NvbnN0IGE9dC5tZXNzYWdlO3JldHVybiB6bihhKT9MdChhLmZpZWxkc1swXS5zY2FsYXIsYS5maWVsZHNbMF0ubG9uZ0FzU3RyaW5nKTpkdChhKX1yZXR1cm4gb31dfWZ1bmN0aW9uIFhzKHQsZSl7aWYodC5leHRlbmRlZS50eXBlTmFtZSE9ZS4kdHlwZU5hbWUpdGhyb3cgbmV3IEVycm9yKGBleHRlbnNpb24gJHt0LnR5cGVOYW1lfSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIG1lc3NhZ2UgJHt0LmV4dGVuZGVlLnR5cGVOYW1lfWApfWNvbnN0IE9mPTMsUGY9MixPYT17YWx3YXlzRW1pdEltcGxpY2l0OiExLGVudW1Bc0ludGVnZXI6ITEsdXNlUHJvdG9GaWVsZE5hbWU6ITF9O2Z1bmN0aW9uICRmKHQpe3JldHVybiB0P09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxPYSksdCk6T2F9ZnVuY3Rpb24gcWYodCxlLG4pe3JldHVybiBMbihydCh0LGUpLCRmKG4pKX1mdW5jdGlvbiBlQSh0LGUsbil7dmFyIGw7Y29uc3QgaT1xZih0LGUsbik7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGksbnVsbCwobD1uPT1udWxsP3ZvaWQgMDpuLnByZXR0eVNwYWNlcykhPT1udWxsJiZsIT09dm9pZCAwP2w6MCl9ZnVuY3Rpb24gTG4odCxlKXt2YXIgbjtjb25zdCBsPWlBKHQsZSk7aWYobCE9PXZvaWQgMClyZXR1cm4gbDtjb25zdCBpPXt9O2Zvcihjb25zdCByIG9mIHQuc29ydGVkRmllbGRzKXtpZighdC5pc1NldChyKSl7aWYoci5wcmVzZW5jZT09T2YpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZW5jb2RlICR7cn0gdG8gSlNPTjogcmVxdWlyZWQgZmllbGQgbm90IHNldGApO2lmKCFlLmFsd2F5c0VtaXRJbXBsaWNpdHx8ci5wcmVzZW5jZSE9PVBmKWNvbnRpbnVlfWNvbnN0IG89UGEocix0LmdldChyKSxlKTtvIT09dm9pZCAwJiYoaVtsQShyLGUpXT1vKX1pZihlLnJlZ2lzdHJ5KXtjb25zdCByPW5ldyBTZXQ7Zm9yKGNvbnN0e25vOm99b2Yobj10LmdldFVua25vd24oKSkhPT1udWxsJiZuIT09dm9pZCAwP246W10paWYoIXIuaGFzKG8pKXtyLmFkZChvKTtjb25zdCBhPWUucmVnaXN0cnkuZ2V0RXh0ZW5zaW9uRm9yKHQuZGVzYyxvKTtpZighYSljb250aW51ZTtjb25zdCBjPURmKHQubWVzc2FnZSxhKSxbZCxzXT13bChhLGMpLHU9UGEocyxkLmdldChzKSxlKTt1IT09dm9pZCAwJiYoaVthLmpzb25OYW1lXT11KX19cmV0dXJuIGl9ZnVuY3Rpb24gUGEodCxlLG4pe3N3aXRjaCh0LmZpZWxkS2luZCl7Y2FzZSJzY2FsYXIiOnJldHVybiBrbCh0LGUpO2Nhc2UibWVzc2FnZSI6cmV0dXJuIExuKGUsbik7Y2FzZSJlbnVtIjpyZXR1cm4gdnIodC5lbnVtLGUsbi5lbnVtQXNJbnRlZ2VyKTtjYXNlImxpc3QiOnJldHVybiBuQShlLG4pO2Nhc2UibWFwIjpyZXR1cm4gdEEoZSxuKX19ZnVuY3Rpb24gdEEodCxlKXtjb25zdCBuPXQuZmllbGQoKSxsPXt9O3N3aXRjaChuLm1hcEtpbmQpe2Nhc2Uic2NhbGFyIjpmb3IoY29uc3RbaSxyXW9mIHQpbFtpXT1rbChuLHIpO2JyZWFrO2Nhc2UibWVzc2FnZSI6Zm9yKGNvbnN0W2kscl1vZiB0KWxbaV09TG4ocixlKTticmVhaztjYXNlImVudW0iOmZvcihjb25zdFtpLHJdb2YgdClsW2ldPXZyKG4uZW51bSxyLGUuZW51bUFzSW50ZWdlcik7YnJlYWt9cmV0dXJuIGUuYWx3YXlzRW1pdEltcGxpY2l0fHx0LnNpemU+MD9sOnZvaWQgMH1mdW5jdGlvbiBuQSh0LGUpe2NvbnN0IG49dC5maWVsZCgpLGw9W107c3dpdGNoKG4ubGlzdEtpbmQpe2Nhc2Uic2NhbGFyIjpmb3IoY29uc3QgaSBvZiB0KWwucHVzaChrbChuLGkpKTticmVhaztjYXNlImVudW0iOmZvcihjb25zdCBpIG9mIHQpbC5wdXNoKHZyKG4uZW51bSxpLGUuZW51bUFzSW50ZWdlcikpO2JyZWFrO2Nhc2UibWVzc2FnZSI6Zm9yKGNvbnN0IGkgb2YgdClsLnB1c2goTG4oaSxlKSk7YnJlYWt9cmV0dXJuIGUuYWx3YXlzRW1pdEltcGxpY2l0fHxsLmxlbmd0aD4wP2w6dm9pZCAwfWZ1bmN0aW9uIHZyKHQsZSxuKXt2YXIgbDtpZih0eXBlb2YgZSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZW5jb2RlICR7dH0gdG8gSlNPTjogZXhwZWN0ZWQgbnVtYmVyLCBnb3QgJHtDZShlKX1gKTtpZih0LnR5cGVOYW1lPT0iZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZSIpcmV0dXJuIG51bGw7aWYobilyZXR1cm4gZTtjb25zdCBpPXQudmFsdWVbZV07cmV0dXJuKGw9aT09bnVsbD92b2lkIDA6aS5uYW1lKSE9PW51bGwmJmwhPT12b2lkIDA/bDplfWZ1bmN0aW9uIGtsKHQsZSl7dmFyIG4sbCxpLHIsbyxhO3N3aXRjaCh0LnNjYWxhcil7Y2FzZSBaLklOVDMyOmNhc2UgWi5TRklYRUQzMjpjYXNlIFouU0lOVDMyOmNhc2UgWi5GSVhFRDMyOmNhc2UgWi5VSU5UMzI6aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSAke3R9IHRvIEpTT046ICR7KG49WXQodCxlKSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLm1lc3NhZ2V9YCk7cmV0dXJuIGU7Y2FzZSBaLkZMT0FUOmNhc2UgWi5ET1VCTEU6aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSAke3R9IHRvIEpTT046ICR7KGw9WXQodCxlKSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm1lc3NhZ2V9YCk7cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjplPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPyJJbmZpbml0eSI6ZT09PU51bWJlci5ORUdBVElWRV9JTkZJTklUWT8iLUluZmluaXR5IjplO2Nhc2UgWi5TVFJJTkc6aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSAke3R9IHRvIEpTT046ICR7KGk9WXQodCxlKSk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm1lc3NhZ2V9YCk7cmV0dXJuIGU7Y2FzZSBaLkJPT0w6aWYodHlwZW9mIGUhPSJib29sZWFuIil0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBlbmNvZGUgJHt0fSB0byBKU09OOiAkeyhyPVl0KHQsZSkpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5tZXNzYWdlfWApO3JldHVybiBlO2Nhc2UgWi5VSU5UNjQ6Y2FzZSBaLkZJWEVENjQ6Y2FzZSBaLklOVDY0OmNhc2UgWi5TRklYRUQ2NDpjYXNlIFouU0lOVDY0OmlmKHR5cGVvZiBlIT0iYmlnaW50IiYmdHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSAke3R9IHRvIEpTT046ICR7KG89WXQodCxlKSk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLm1lc3NhZ2V9YCk7cmV0dXJuIGUudG9TdHJpbmcoKTtjYXNlIFouQllURVM6aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIGlzKGUpO3Rocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSAke3R9IHRvIEpTT046ICR7KGE9WXQodCxlKSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLm1lc3NhZ2V9YCl9fWZ1bmN0aW9uIGxBKHQsZSl7cmV0dXJuIGUudXNlUHJvdG9GaWVsZE5hbWU/dC5uYW1lOnQuanNvbk5hbWV9ZnVuY3Rpb24gaUEodCxlKXtpZih0LmRlc2MudHlwZU5hbWUuc3RhcnRzV2l0aCgiZ29vZ2xlLnByb3RvYnVmLiIpKXN3aXRjaCh0LmRlc2MudHlwZU5hbWUpe2Nhc2UiZ29vZ2xlLnByb3RvYnVmLkFueSI6cmV0dXJuIHJBKHQubWVzc2FnZSxlKTtjYXNlImdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiOnJldHVybiBjQSh0Lm1lc3NhZ2UpO2Nhc2UiZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjpyZXR1cm4gb0EodC5tZXNzYWdlKTtjYXNlImdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siOnJldHVybiBhQSh0Lm1lc3NhZ2UpO2Nhc2UiZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI6cmV0dXJuIElzKHQubWVzc2FnZSk7Y2FzZSJnb29nbGUucHJvdG9idWYuVmFsdWUiOnJldHVybiBTcih0Lm1lc3NhZ2UpO2Nhc2UiZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZSI6cmV0dXJuIFJzKHQubWVzc2FnZSk7ZGVmYXVsdDppZih6bih0LmRlc2MpKXtjb25zdCBuPXQuZGVzYy5maWVsZHNbMF07cmV0dXJuIGtsKG4sdC5nZXQobikpfXJldHVybn19ZnVuY3Rpb24gckEodCxlKXtpZih0LnR5cGVVcmw9PT0iIilyZXR1cm57fTtjb25zdHtyZWdpc3RyeTpufT1lO2xldCBsLGk7aWYobiYmKGw9UWYodCxuKSxsJiYoaT1uLmdldE1lc3NhZ2UobC4kdHlwZU5hbWUpKSksIWl8fCFsKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IHRvIEpTT046ICIke3QudHlwZVVybH0iIGlzIG5vdCBpbiB0aGUgdHlwZSByZWdpc3RyeWApO2xldCByPUxuKHJ0KGksbCksZSk7cmV0dXJuKGkudHlwZU5hbWUuc3RhcnRzV2l0aCgiZ29vZ2xlLnByb3RvYnVmLiIpfHxyPT09bnVsbHx8QXJyYXkuaXNBcnJheShyKXx8dHlwZW9mIHIhPSJvYmplY3QiKSYmKHI9e3ZhbHVlOnJ9KSxyWyJAdHlwZSJdPXQudHlwZVVybCxyfWZ1bmN0aW9uIG9BKHQpe2lmKE51bWJlcih0LnNlY29uZHMpPjMxNTU3NmU2fHxOdW1iZXIodC5zZWNvbmRzKTwtMzE1NTc2ZTYpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZW5jb2RlIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX0gdG8gSlNPTjogdmFsdWUgb3V0IG9mIHJhbmdlYCk7bGV0IGU9dC5zZWNvbmRzLnRvU3RyaW5nKCk7aWYodC5uYW5vcyE9PTApe2xldCBuPU1hdGguYWJzKHQubmFub3MpLnRvU3RyaW5nKCk7bj0iMCIucmVwZWF0KDktbi5sZW5ndGgpK24sbi5zdWJzdHJpbmcoMyk9PT0iMDAwMDAwIj9uPW4uc3Vic3RyaW5nKDAsMyk6bi5zdWJzdHJpbmcoNik9PT0iMDAwIiYmKG49bi5zdWJzdHJpbmcoMCw2KSksZSs9Ii4iK24sdC5uYW5vczwwJiZOdW1iZXIodC5zZWNvbmRzKT09MCYmKGU9Ii0iK2UpfXJldHVybiBlKyJzIn1mdW5jdGlvbiBhQSh0KXtyZXR1cm4gdC5wYXRocy5tYXAoZT0+e2lmKGUubWF0Y2goL19bMC05XT9fL2cpfHxlLm1hdGNoKC9bQS1aXS9nKSl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBlbmNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSB0byBKU09OOiBsb3dlckNhbWVsQ2FzZSBvZiBwYXRoIG5hbWUgImArZSsnIiBpcyBpcnJldmVyc2libGUnKTtyZXR1cm4gU24oZSl9KS5qb2luKCIsIil9ZnVuY3Rpb24gSXModCl7Y29uc3QgZT17fTtmb3IoY29uc3RbbixsXW9mIE9iamVjdC5lbnRyaWVzKHQuZmllbGRzKSllW25dPVNyKGwpO3JldHVybiBlfWZ1bmN0aW9uIFNyKHQpe3N3aXRjaCh0LmtpbmQuY2FzZSl7Y2FzZSJudWxsVmFsdWUiOnJldHVybiBudWxsO2Nhc2UibnVtYmVyVmFsdWUiOmlmKCFOdW1iZXIuaXNGaW5pdGUodC5raW5kLnZhbHVlKSl0aHJvdyBuZXcgRXJyb3IoYCR7dC4kdHlwZU5hbWV9IGNhbm5vdCBiZSBOYU4gb3IgSW5maW5pdHlgKTtyZXR1cm4gdC5raW5kLnZhbHVlO2Nhc2UiYm9vbFZhbHVlIjpyZXR1cm4gdC5raW5kLnZhbHVlO2Nhc2Uic3RyaW5nVmFsdWUiOnJldHVybiB0LmtpbmQudmFsdWU7Y2FzZSJzdHJ1Y3RWYWx1ZSI6cmV0dXJuIElzKHQua2luZC52YWx1ZSk7Y2FzZSJsaXN0VmFsdWUiOnJldHVybiBScyh0LmtpbmQudmFsdWUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke3QuJHR5cGVOYW1lfSBtdXN0IGhhdmUgYSB2YWx1ZWApfX1mdW5jdGlvbiBScyh0KXtyZXR1cm4gdC52YWx1ZXMubWFwKFNyKX1mdW5jdGlvbiBjQSh0KXtjb25zdCBlPU51bWJlcih0LnNlY29uZHMpKjFlMztpZihlPERhdGUucGFyc2UoIjAwMDEtMDEtMDFUMDA6MDA6MDBaIil8fGU+RGF0ZS5wYXJzZSgiOTk5OS0xMi0zMVQyMzo1OTo1OVoiKSl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBlbmNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSB0byBKU09OOiBtdXN0IGJlIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlYCk7aWYodC5uYW5vczwwKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGVuY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IHRvIEpTT046IG5hbm9zIG11c3Qgbm90IGJlIG5lZ2F0aXZlYCk7bGV0IG49IloiO2lmKHQubmFub3M+MCl7Y29uc3QgbD0odC5uYW5vcysxZTkpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDEpO2wuc3Vic3RyaW5nKDMpPT09IjAwMDAwMCI/bj0iLiIrbC5zdWJzdHJpbmcoMCwzKSsiWiI6bC5zdWJzdHJpbmcoNik9PT0iMDAwIj9uPSIuIitsLnN1YnN0cmluZygwLDYpKyJaIjpuPSIuIitsKyJaIn1yZXR1cm4gbmV3IERhdGUoZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKCIuMDAwWiIsbil9Y29uc3QgJGE9e2lnbm9yZVVua25vd25GaWVsZHM6ITF9O2Z1bmN0aW9uIGRBKHQpe3JldHVybiB0P09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwkYSksdCk6JGF9ZnVuY3Rpb24gc0EodCxlLG4pe3JldHVybiBFcyh0LGZBKGUsdC50eXBlTmFtZSksbil9ZnVuY3Rpb24gRXModCxlLG4pe2NvbnN0IGw9cnQodCk7dHJ5e2xuKGwsZSxkQShuKSl9Y2F0Y2goaSl7dGhyb3cgS20oaSk/bmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlICR7aS5maWVsZCgpfSBmcm9tIEpTT046ICR7aS5tZXNzYWdlfWAse2NhdXNlOml9KTppfXJldHVybiBsLm1lc3NhZ2V9ZnVuY3Rpb24gbG4odCxlLG4pe3ZhciBsO2lmKEFBKHQsZSxuKSlyZXR1cm47aWYoZT09bnVsbHx8QXJyYXkuaXNBcnJheShlKXx8dHlwZW9mIGUhPSJvYmplY3QiKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSAke3QuZGVzY30gZnJvbSBKU09OOiAke0NlKGUpfWApO2NvbnN0IGk9bmV3IE1hcCxyPW5ldyBNYXA7Zm9yKGNvbnN0IG8gb2YgdC5kZXNjLmZpZWxkcylyLnNldChvLm5hbWUsbykuc2V0KG8uanNvbk5hbWUsbyk7Zm9yKGNvbnN0W28sYV1vZiBPYmplY3QuZW50cmllcyhlKSl7Y29uc3QgYz1yLmdldChvKTtpZihjKXtpZihjLm9uZW9mKXtpZihhPT09bnVsbCYmYy5maWVsZEtpbmQ9PSJzY2FsYXIiKWNvbnRpbnVlO2NvbnN0IGQ9aS5nZXQoYy5vbmVvZik7aWYoZCE9PXZvaWQgMCl0aHJvdyBuZXcgUGUoYy5vbmVvZixgb25lb2Ygc2V0IG11bHRpcGxlIHRpbWVzIGJ5ICR7ZC5uYW1lfSBhbmQgJHtjLm5hbWV9YCk7aS5zZXQoYy5vbmVvZixjKX1xYSh0LGMsYSxuKX1lbHNle2xldCBkO2lmKG8uc3RhcnRzV2l0aCgiWyIpJiZvLmVuZHNXaXRoKCJdIikmJihkPShsPW4ucmVnaXN0cnkpPT09bnVsbHx8bD09PXZvaWQgMD92b2lkIDA6bC5nZXRFeHRlbnNpb24oby5zdWJzdHJpbmcoMSxvLmxlbmd0aC0xKSkpJiZkLmV4dGVuZGVlLnR5cGVOYW1lPT09dC5kZXNjLnR5cGVOYW1lKXtjb25zdFtzLHUsaF09d2woZCk7cWEocyx1LGEsbiksamYodC5tZXNzYWdlLGQsaCgpKX1pZighZCYmIW4uaWdub3JlVW5rbm93bkZpZWxkcyl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgJHt0LmRlc2N9IGZyb20gSlNPTjoga2V5ICIke299IiBpcyB1bmtub3duYCl9fX1mdW5jdGlvbiBxYSh0LGUsbixsKXtzd2l0Y2goZS5maWVsZEtpbmQpe2Nhc2Uic2NhbGFyIjpWQSh0LGUsbik7YnJlYWs7Y2FzZSJlbnVtIjpiQSh0LGUsbixsKTticmVhaztjYXNlIm1lc3NhZ2UiOmhBKHQsZSxuLGwpO2JyZWFrO2Nhc2UibGlzdCI6Z0EodC5nZXQoZSksbixsKTticmVhaztjYXNlIm1hcCI6dUEodC5nZXQoZSksbixsKTticmVha319ZnVuY3Rpb24gdUEodCxlLG4pe2lmKGU9PT1udWxsKXJldHVybjtjb25zdCBsPXQuZmllbGQoKTtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fEFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFBlKGwsImV4cGVjdGVkIG9iamVjdCwgZ290ICIrQ2UoZSkpO2Zvcihjb25zdFtpLHJdb2YgT2JqZWN0LmVudHJpZXMoZSkpe2lmKHI9PT1udWxsKXRocm93IG5ldyBQZShsLCJtYXAgdmFsdWUgbXVzdCBub3QgYmUgbnVsbCIpO2xldCBvO3N3aXRjaChsLm1hcEtpbmQpe2Nhc2UibWVzc2FnZSI6Y29uc3QgYz1ydChsLm1lc3NhZ2UpO2xuKGMscixuKSxvPWM7YnJlYWs7Y2FzZSJlbnVtIjppZihvPUNyKGwuZW51bSxyLG4uaWdub3JlVW5rbm93bkZpZWxkcywhMCksbz09PXpsKXJldHVybjticmVhaztjYXNlInNjYWxhciI6bz1MbChsLHIsITApO2JyZWFrfWNvbnN0IGE9bUEobC5tYXBLZXksaSk7dC5zZXQoYSxvKX19ZnVuY3Rpb24gZ0EodCxlLG4pe2lmKGU9PT1udWxsKXJldHVybjtjb25zdCBsPXQuZmllbGQoKTtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgUGUobCwiZXhwZWN0ZWQgQXJyYXksIGdvdCAiK0NlKGUpKTtmb3IoY29uc3QgaSBvZiBlKXtpZihpPT09bnVsbCl0aHJvdyBuZXcgUGUobCwibGlzdCBpdGVtIG11c3Qgbm90IGJlIG51bGwiKTtzd2l0Y2gobC5saXN0S2luZCl7Y2FzZSJtZXNzYWdlIjpjb25zdCByPXJ0KGwubWVzc2FnZSk7bG4ocixpLG4pLHQuYWRkKHIpO2JyZWFrO2Nhc2UiZW51bSI6Y29uc3Qgbz1DcihsLmVudW0saSxuLmlnbm9yZVVua25vd25GaWVsZHMsITApO28hPT16bCYmdC5hZGQobyk7YnJlYWs7Y2FzZSJzY2FsYXIiOnQuYWRkKExsKGwsaSwhMCkpO2JyZWFrfX19ZnVuY3Rpb24gaEEodCxlLG4sbCl7aWYobj09PW51bGwmJmUubWVzc2FnZS50eXBlTmFtZSE9Imdvb2dsZS5wcm90b2J1Zi5WYWx1ZSIpe3QuY2xlYXIoZSk7cmV0dXJufWNvbnN0IGk9dC5pc1NldChlKT90LmdldChlKTpydChlLm1lc3NhZ2UpO2xuKGksbixsKSx0LnNldChlLGkpfWZ1bmN0aW9uIGJBKHQsZSxuLGwpe2NvbnN0IGk9Q3IoZS5lbnVtLG4sbC5pZ25vcmVVbmtub3duRmllbGRzLCExKTtpPT09UWw/dC5jbGVhcihlKTppIT09emwmJnQuc2V0KGUsaSl9ZnVuY3Rpb24gVkEodCxlLG4pe2NvbnN0IGw9TGwoZSxuLCExKTtsPT09UWw/dC5jbGVhcihlKTp0LnNldChlLGwpfWNvbnN0IHpsPVN5bWJvbCgpO2Z1bmN0aW9uIENyKHQsZSxuLGwpe2lmKGU9PT1udWxsKXJldHVybiB0LnR5cGVOYW1lPT0iZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZSI/MDpsP3QudmFsdWVzWzBdLm51bWJlcjpRbDtzd2l0Y2godHlwZW9mIGUpe2Nhc2UibnVtYmVyIjppZihOdW1iZXIuaXNJbnRlZ2VyKGUpKXJldHVybiBlO2JyZWFrO2Nhc2Uic3RyaW5nIjpjb25zdCBpPXQudmFsdWVzLmZpbmQocj0+ci5uYW1lPT09ZSk7aWYoaSE9PXZvaWQgMClyZXR1cm4gaS5udW1iZXI7aWYobilyZXR1cm4gemw7YnJlYWt9dGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlICR7dH0gZnJvbSBKU09OOiAke0NlKGUpfWApfWNvbnN0IFFsPVN5bWJvbCgpO2Z1bmN0aW9uIExsKHQsZSxuKXtpZihlPT09bnVsbClyZXR1cm4gbj9MdCh0LnNjYWxhciwhMSk6UWw7c3dpdGNoKHQuc2NhbGFyKXtjYXNlIFouRE9VQkxFOmNhc2UgWi5GTE9BVDppZihlPT09Ik5hTiIpcmV0dXJuIE5hTjtpZihlPT09IkluZmluaXR5IilyZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2lmKGU9PT0iLUluZmluaXR5IilyZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2lmKHR5cGVvZiBlPT0ibnVtYmVyIil7aWYoTnVtYmVyLmlzTmFOKGUpKXRocm93IG5ldyBQZSh0LCJ1bmV4cGVjdGVkIE5hTiBudW1iZXIiKTtpZighTnVtYmVyLmlzRmluaXRlKGUpKXRocm93IG5ldyBQZSh0LCJ1bmV4cGVjdGVkIGluZmluaXRlIG51bWJlciIpO2JyZWFrfWlmKHR5cGVvZiBlPT0ic3RyaW5nIil7aWYoZT09PSIifHxlLnRyaW0oKS5sZW5ndGghPT1lLmxlbmd0aClicmVhaztjb25zdCBsPU51bWJlcihlKTtpZighTnVtYmVyLmlzRmluaXRlKGwpKWJyZWFrO3JldHVybiBsfWJyZWFrO2Nhc2UgWi5JTlQzMjpjYXNlIFouRklYRUQzMjpjYXNlIFouU0ZJWEVEMzI6Y2FzZSBaLlNJTlQzMjpjYXNlIFouVUlOVDMyOnJldHVybiB5cyhlKTtjYXNlIFouQllURVM6aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZihlPT09IiIpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3RyeXtyZXR1cm4gSXIoZSl9Y2F0Y2gobCl7Y29uc3QgaT1sIGluc3RhbmNlb2YgRXJyb3I/bC5tZXNzYWdlOlN0cmluZyhsKTt0aHJvdyBuZXcgUGUodCxpKX19YnJlYWt9cmV0dXJuIGV9ZnVuY3Rpb24gbUEodCxlKXtzd2l0Y2godCl7Y2FzZSBaLkJPT0w6c3dpdGNoKGUpe2Nhc2UidHJ1ZSI6cmV0dXJuITA7Y2FzZSJmYWxzZSI6cmV0dXJuITF9cmV0dXJuIGU7Y2FzZSBaLklOVDMyOmNhc2UgWi5GSVhFRDMyOmNhc2UgWi5VSU5UMzI6Y2FzZSBaLlNGSVhFRDMyOmNhc2UgWi5TSU5UMzI6cmV0dXJuIHlzKGUpO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIHlzKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYodD09PSIifHx0LnRyaW0oKS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4gdDtjb25zdCBlPU51bWJlcih0KTtyZXR1cm4gTnVtYmVyLmlzTmFOKGUpP3Q6ZX1yZXR1cm4gdH1mdW5jdGlvbiBmQSh0LGUpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChuKXtjb25zdCBsPW4gaW5zdGFuY2VvZiBFcnJvcj9uLm1lc3NhZ2U6U3RyaW5nKG4pO3Rocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7ZX0gZnJvbSBKU09OOiAke2x9YCx7Y2F1c2U6bn0pfX1mdW5jdGlvbiBBQSh0LGUsbil7aWYoIXQuZGVzYy50eXBlTmFtZS5zdGFydHNXaXRoKCJnb29nbGUucHJvdG9idWYuIikpcmV0dXJuITE7c3dpdGNoKHQuZGVzYy50eXBlTmFtZSl7Y2FzZSJnb29nbGUucHJvdG9idWYuQW55IjpyZXR1cm4gcEEodC5tZXNzYWdlLGUsbiksITA7Y2FzZSJnb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjpyZXR1cm4gWkEodC5tZXNzYWdlLGUpLCEwO2Nhc2UiZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjpyZXR1cm4gR0EodC5tZXNzYWdlLGUpLCEwO2Nhc2UiZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayI6cmV0dXJuIFhBKHQubWVzc2FnZSxlKSwhMDtjYXNlImdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiOnJldHVybiB2cyh0Lm1lc3NhZ2UsZSksITA7Y2FzZSJnb29nbGUucHJvdG9idWYuVmFsdWUiOnJldHVybiBXcih0Lm1lc3NhZ2UsZSksITA7Y2FzZSJnb29nbGUucHJvdG9idWYuTGlzdFZhbHVlIjpyZXR1cm4gU3ModC5tZXNzYWdlLGUpLCEwO2RlZmF1bHQ6aWYoem4odC5kZXNjKSl7Y29uc3QgbD10LmRlc2MuZmllbGRzWzBdO3JldHVybiBlPT09bnVsbD90LmNsZWFyKGwpOnQuc2V0KGwsTGwobCxlLCEwKSksITB9cmV0dXJuITF9fWZ1bmN0aW9uIHBBKHQsZSxuKXt2YXIgbDtpZihlPT09bnVsbHx8QXJyYXkuaXNBcnJheShlKXx8dHlwZW9mIGUhPSJvYmplY3QiKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogZXhwZWN0ZWQgb2JqZWN0IGJ1dCBnb3QgJHtDZShlKX1gKTtpZihPYmplY3Qua2V5cyhlKS5sZW5ndGg9PTApcmV0dXJuO2NvbnN0IGk9ZVsiQHR5cGUiXTtpZih0eXBlb2YgaSE9InN0cmluZyJ8fGk9PSIiKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogIkB0eXBlIiBpcyBlbXB0eWApO2NvbnN0IHI9aS5pbmNsdWRlcygiLyIpP2kuc3Vic3RyaW5nKGkubGFzdEluZGV4T2YoIi8iKSsxKTppO2lmKCFyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSBmcm9tIEpTT046ICJAdHlwZSIgaXMgaW52YWxpZGApO2NvbnN0IG89KGw9bi5yZWdpc3RyeSk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmdldE1lc3NhZ2Uocik7aWYoIW8pdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX0gZnJvbSBKU09OOiAke2l9IGlzIG5vdCBpbiB0aGUgdHlwZSByZWdpc3RyeWApO2NvbnN0IGE9cnQobyk7aWYoci5zdGFydHNXaXRoKCJnb29nbGUucHJvdG9idWYuIikmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJ2YWx1ZSIpKXtjb25zdCBjPWUudmFsdWU7bG4oYSxjLG4pfWVsc2V7Y29uc3QgYz1PYmplY3QuYXNzaWduKHt9LGUpO2RlbGV0ZSBjWyJAdHlwZSJdLGxuKGEsYyxuKX1rZihhLmRlc2MsYS5tZXNzYWdlLHQpfWZ1bmN0aW9uIFpBKHQsZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogJHtDZShlKX1gKTtjb25zdCBuPWUubWF0Y2goL14oWzAtOV17NH0pLShbMC05XXsyfSktKFswLTldezJ9KVQoWzAtOV17Mn0pOihbMC05XXsyfSk6KFswLTldezJ9KSg/OlwuKFswLTldezEsOX0pKT8oPzpafChbKy1dWzAtOV1bMC05XTpbMC05XVswLTldKSkkLyk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX0gZnJvbSBKU09OOiBpbnZhbGlkIFJGQyAzMzM5IHN0cmluZ2ApO2NvbnN0IGw9RGF0ZS5wYXJzZShuWzFdKyItIituWzJdKyItIituWzNdKyJUIituWzRdKyI6IituWzVdKyI6IituWzZdKyhuWzhdP25bOF06IloiKSk7aWYoTnVtYmVyLmlzTmFOKGwpKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogaW52YWxpZCBSRkMgMzMzOSBzdHJpbmdgKTtpZihsPERhdGUucGFyc2UoIjAwMDEtMDEtMDFUMDA6MDA6MDBaIil8fGw+RGF0ZS5wYXJzZSgiOTk5OS0xMi0zMVQyMzo1OTo1OVoiKSl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSBmcm9tIEpTT046IG11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmVgKTt0LnNlY29uZHM9ZGUucGFyc2UobC8xZTMpLHQubmFub3M9MCxuWzddJiYodC5uYW5vcz1wYXJzZUludCgiMSIrbls3XSsiMCIucmVwZWF0KDktbls3XS5sZW5ndGgpKS0xZTkpfWZ1bmN0aW9uIEdBKHQsZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogJHtDZShlKX1gKTtjb25zdCBuPWUubWF0Y2goL14oLT9bMC05XSspKD86XC4oWzAtOV0rKSk/cy8pO2lmKG49PT1udWxsKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTjogJHtDZShlKX1gKTtjb25zdCBsPU51bWJlcihuWzFdKTtpZihsPjMxNTU3NmU2fHxsPC0zMTU1NzZlNil0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSBmcm9tIEpTT046ICR7Q2UoZSl9YCk7aWYodC5zZWNvbmRzPWRlLnBhcnNlKGwpLHR5cGVvZiBuWzJdIT0ic3RyaW5nIilyZXR1cm47Y29uc3QgaT1uWzJdKyIwIi5yZXBlYXQoOS1uWzJdLmxlbmd0aCk7dC5uYW5vcz1wYXJzZUludChpKSwobDwwfHxPYmplY3QuaXMobCwtMCkpJiYodC5uYW5vcz0tdC5uYW5vcyl9ZnVuY3Rpb24gWEEodCxlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX0gZnJvbSBKU09OOiAke0NlKGUpfWApO2lmKGU9PT0iIilyZXR1cm47ZnVuY3Rpb24gbihsKXtpZihsLmluY2x1ZGVzKCJfIikpdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVjb2RlIG1lc3NhZ2UgJHt0LiR0eXBlTmFtZX0gZnJvbSBKU09OOiBwYXRoIG5hbWVzIG11c3QgYmUgbG93ZXJDYW1lbENhc2VgKTtjb25zdCBpPWwucmVwbGFjZSgvW0EtWl0vZyxyPT4iXyIrci50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gaVswXT09PSJfIj9pLnN1YnN0cmluZygxKTppfXQucGF0aHM9ZS5zcGxpdCgiLCIpLm1hcChuKX1mdW5jdGlvbiB2cyh0LGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09bnVsbHx8QXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSBmcm9tIEpTT04gJHtDZShlKX1gKTtmb3IoY29uc3RbbixsXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBpPWR0KEdzKTtXcihpLGwpLHQuZmllbGRzW25dPWl9fWZ1bmN0aW9uIFdyKHQsZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlIm51bWJlciI6dC5raW5kPXtjYXNlOiJudW1iZXJWYWx1ZSIsdmFsdWU6ZX07YnJlYWs7Y2FzZSJzdHJpbmciOnQua2luZD17Y2FzZToic3RyaW5nVmFsdWUiLHZhbHVlOmV9O2JyZWFrO2Nhc2UiYm9vbGVhbiI6dC5raW5kPXtjYXNlOiJib29sVmFsdWUiLHZhbHVlOmV9O2JyZWFrO2Nhc2Uib2JqZWN0IjppZihlPT09bnVsbCl0LmtpbmQ9e2Nhc2U6Im51bGxWYWx1ZSIsdmFsdWU6eGkuTlVMTF9WQUxVRX07ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCBuPWR0KEhmKTtTcyhuLGUpLHQua2luZD17Y2FzZToibGlzdFZhbHVlIix2YWx1ZTpufX1lbHNle2NvbnN0IG49ZHQoTWYpO3ZzKG4sZSksdC5raW5kPXtjYXNlOiJzdHJ1Y3RWYWx1ZSIsdmFsdWU6bn19YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZWNvZGUgbWVzc2FnZSAke3QuJHR5cGVOYW1lfSBmcm9tIEpTT04gJHtDZShlKX1gKX1yZXR1cm4gdH1mdW5jdGlvbiBTcyh0LGUpe2lmKCFBcnJheS5pc0FycmF5KGUpKXRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlY29kZSBtZXNzYWdlICR7dC4kdHlwZU5hbWV9IGZyb20gSlNPTiAke0NlKGUpfWApO2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IGw9ZHQoR3MpO1dyKGwsbiksdC52YWx1ZXMucHVzaChsKX19ZnVuY3Rpb24gd2kodCl7Y29uc3QgZT1QW3RdO3JldHVybiB0eXBlb2YgZSE9InN0cmluZyI/dC50b1N0cmluZygpOmVbMF0udG9Mb3dlckNhc2UoKStlLnN1YnN0cmluZygxKS5yZXBsYWNlKC9bQS1aXS9nLG49PiJfIituLnRvTG93ZXJDYXNlKCkpfWxldCB0bDtmdW5jdGlvbiBJQSh0KXtpZighdGwpe3RsPXt9O2Zvcihjb25zdCBlIG9mIE9iamVjdC52YWx1ZXMoUCkpdHlwZW9mIGUhPSJzdHJpbmciJiYodGxbd2koZSldPWUpfXJldHVybiB0bFt0XX1jbGFzcyBzZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsbj1QLlVua25vd24sbCxpLHIpe3N1cGVyKFJBKGUsbikpLHRoaXMubmFtZT0iQ29ubmVjdEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSksdGhpcy5yYXdNZXNzYWdlPWUsdGhpcy5jb2RlPW4sdGhpcy5tZXRhZGF0YT1uZXcgSGVhZGVycyhsPz97fSksdGhpcy5kZXRhaWxzPWk/P1tdLHRoaXMuY2F1c2U9cn1zdGF0aWMgZnJvbShlLG49UC5Vbmtub3duKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHNlP2U6ZSBpbnN0YW5jZW9mIEVycm9yP2UubmFtZT09IkFib3J0RXJyb3IifHxlLm5hbWU9PSJUaW1lb3V0RXJyb3IiP25ldyBzZShlLm1lc3NhZ2UsUC5DYW5jZWxlZCk6bmV3IHNlKGUubWVzc2FnZSxuLHZvaWQgMCx2b2lkIDAsZSk6bmV3IHNlKFN0cmluZyhlKSxuLHZvaWQgMCx2b2lkIDAsZSl9c3RhdGljW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1zZS5wcm90b3R5cGU/ITA6ZS5uYW1lPT09IkNvbm5lY3RFcnJvciImJiJjb2RlImluIGUmJnR5cGVvZiBlLmNvZGU9PSJudW1iZXIiJiYibWV0YWRhdGEiaW4gZSYmImRldGFpbHMiaW4gZSYmQXJyYXkuaXNBcnJheShlLmRldGFpbHMpJiYicmF3TWVzc2FnZSJpbiBlJiZ0eXBlb2YgZS5yYXdNZXNzYWdlPT0ic3RyaW5nIiYmImNhdXNlImluIGU6ITF9ZmluZERldGFpbHMoZSl7Y29uc3Qgbj1lLmtpbmQ9PT0ibWVzc2FnZSI/e2dldE1lc3NhZ2U6aT0+aT09PWUudHlwZU5hbWU/ZTp2b2lkIDB9OmUsbD1bXTtmb3IoY29uc3QgaSBvZiB0aGlzLmRldGFpbHMpe2lmKCJkZXNjImluIGkpe24uZ2V0TWVzc2FnZShpLmRlc2MudHlwZU5hbWUpJiZsLnB1c2goZHQoaS5kZXNjLGkudmFsdWUpKTtjb250aW51ZX1jb25zdCByPW4uZ2V0TWVzc2FnZShpLnR5cGUpO2lmKHIpdHJ5e2wucHVzaCh4bChyLGkudmFsdWUpKX1jYXRjaHt9fXJldHVybiBsfX1mdW5jdGlvbiBSQSh0LGUpe3JldHVybiB0Lmxlbmd0aD9gWyR7d2koZSl9XSAke3R9YDpgWyR7d2koZSl9XWB9ZnVuY3Rpb24gRUEoLi4udCl7Y29uc3QgZT1uZXcgSGVhZGVycztmb3IoY29uc3QgbiBvZiB0KW4uZm9yRWFjaCgobCxpKT0+e2UuYXBwZW5kKGksbCl9KTtyZXR1cm4gZX1mdW5jdGlvbiB5QSh0LGUpe2NvbnN0IG49e307Zm9yKGNvbnN0IGwgb2YgdC5tZXRob2RzKXtjb25zdCBpPWUobCk7aSE9bnVsbCYmKG5bbC5sb2NhbE5hbWVdPWkpfXJldHVybiBufWNvbnN0IGVjPTE7ZnVuY3Rpb24gdkEodCxlLG49ITEpe2lmKGU+dCl7bGV0IGw9YG1lc3NhZ2Ugc2l6ZSBpcyBsYXJnZXIgdGhhbiBjb25maWd1cmVkIHJlYWRNYXhCeXRlcyAke3R9YDt0aHJvdyBuJiYobD1gbWVzc2FnZSBzaXplICR7ZX0gaXMgbGFyZ2VyIHRoYW4gY29uZmlndXJlZCByZWFkTWF4Qnl0ZXMgJHt0fWApLG5ldyBzZShsLFAuUmVzb3VyY2VFeGhhdXN0ZWQpfX1mdW5jdGlvbiBTQSh0KXtyZXR1cm4gbmV3IENBKHQpfWNsYXNzIENBe2NvbnN0cnVjdG9yKGUpe3RoaXMucmVhZE1heEJ5dGVzPWUsdGhpcy5oZWFkZXI9bmV3IFVpbnQ4QXJyYXkoNSksdGhpcy5oZWFkZXJWaWV3PW5ldyBEYXRhVmlldyh0aGlzLmhlYWRlci5idWZmZXIpLHRoaXMuYnVmPVtdfWdldCBieXRlTGVuZ3RoKCl7cmV0dXJuIHRoaXMuYnVmLnJlZHVjZSgoZSxuKT0+ZStuLmJ5dGVMZW5ndGgsMCl9ZGVjb2RlKGUpe3RoaXMuYnVmLnB1c2goZSk7Y29uc3Qgbj1bXTtmb3IoOzspe2xldCBsPXRoaXMucG9wKCk7aWYoIWwpYnJlYWs7bi5wdXNoKGwpfXJldHVybiBufXBvcCgpe2lmKCEoIXRoaXMuZW52JiYodGhpcy5lbnY9dGhpcy5oZWFkKCksIXRoaXMuZW52KSkmJnRoaXMuY29ucyh0aGlzLmVudi5kYXRhKSl7Y29uc3QgZT10aGlzLmVudjtyZXR1cm4gdGhpcy5lbnY9dm9pZCAwLGV9fWhlYWQoKXtpZighdGhpcy5jb25zKHRoaXMuaGVhZGVyKSlyZXR1cm47Y29uc3QgZT10aGlzLmhlYWRlclZpZXcuZ2V0VWludDgoMCksbj10aGlzLmhlYWRlclZpZXcuZ2V0VWludDMyKDEpO3JldHVybiB2QSh0aGlzLnJlYWRNYXhCeXRlcyxuLCEwKSx7ZmxhZ3M6ZSxkYXRhOm5ldyBVaW50OEFycmF5KG4pfX1jb25zKGUpe2NvbnN0IG49ZS5ieXRlTGVuZ3RoO2lmKHRoaXMuYnl0ZUxlbmd0aDxuKXJldHVybiExO2xldCBsPTA7Zm9yKDtsPG47KXtjb25zdCBpPXRoaXMuYnVmLnNoaWZ0KCk7aS5ieXRlTGVuZ3RoPm4tbD8oZS5zZXQoaS5zdWJhcnJheSgwLG4tbCksbCksdGhpcy5idWYudW5zaGlmdChpLnN1YmFycmF5KG4tbCkpLGwrPW4tbCk6KGUuc2V0KGksbCksbCs9aS5ieXRlTGVuZ3RoKX1yZXR1cm4hMH19ZnVuY3Rpb24gV0EodCl7bGV0IGU7Y29uc3Qgbj1TQSg0Mjk0OTY3Mjk1KTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydCgpe2U9dC5nZXRSZWFkZXIoKX0sYXN5bmMgcHVsbChsKXtsZXQgaT0hMTtmb3IoOyFpOyl7Y29uc3Qgcj1hd2FpdCBlLnJlYWQoKTtpZihyLmRvbmUpbi5ieXRlTGVuZ3RoPjAmJmwuZXJyb3IobmV3IHNlKCJwcm90b2NvbCBlcnJvcjogaW5jb21wbGV0ZSBlbnZlbG9wZSIsUC5JbnZhbGlkQXJndW1lbnQpKSxsLmNsb3NlKCk7ZWxzZSBmb3IoY29uc3QgbyBvZiBuLmRlY29kZShyLnZhbHVlKSlsLmVucXVldWUobyksaT0hMH19fSl9ZnVuY3Rpb24gQkEodCxlKXtjb25zdCBuPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzUpO24uc2V0KGUsNSk7Y29uc3QgbD1uZXcgRGF0YVZpZXcobi5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aCk7cmV0dXJuIGwuc2V0VWludDgoMCx0KSxsLnNldFVpbnQzMigxLGUubGVuZ3RoKSxufXZhciBOQT1mdW5jdGlvbih0KXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGU9dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0sbjtyZXR1cm4gZT9lLmNhbGwodCk6KHQ9dHlwZW9mIF9fdmFsdWVzPT0iZnVuY3Rpb24iP19fdmFsdWVzKHQpOnRbU3ltYm9sLml0ZXJhdG9yXSgpLG49e30sbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIiksbltTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbik7ZnVuY3Rpb24gbChyKXtuW3JdPXRbcl0mJmZ1bmN0aW9uKG8pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLGMpe289dFtyXShvKSxpKGEsYyxvLmRvbmUsby52YWx1ZSl9KX19ZnVuY3Rpb24gaShyLG8sYSxjKXtQcm9taXNlLnJlc29sdmUoYykudGhlbihmdW5jdGlvbihkKXtyKHt2YWx1ZTpkLGRvbmU6YX0pfSxvKX19LEJuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgQm4/KHRoaXMudj10LHRoaXMpOm5ldyBCbih0KX0sRkE9ZnVuY3Rpb24odCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgbD1uLmFwcGx5KHQsZXx8W10pLGkscj1bXTtyZXR1cm4gaT1PYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvcj09ImZ1bmN0aW9uIj9Bc3luY0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iLG8pLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gbyhnKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKS50aGVuKGcsdSl9fWZ1bmN0aW9uIGEoZyxiKXtsW2ddJiYoaVtnXT1mdW5jdGlvbihtKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZixwKXtyLnB1c2goW2csbSxmLHBdKT4xfHxjKGcsbSl9KX0sYiYmKGlbZ109YihpW2ddKSkpfWZ1bmN0aW9uIGMoZyxiKXt0cnl7ZChsW2ddKGIpKX1jYXRjaChtKXtoKHJbMF1bM10sbSl9fWZ1bmN0aW9uIGQoZyl7Zy52YWx1ZSBpbnN0YW5jZW9mIEJuP1Byb21pc2UucmVzb2x2ZShnLnZhbHVlLnYpLnRoZW4ocyx1KTpoKHJbMF1bMl0sZyl9ZnVuY3Rpb24gcyhnKXtjKCJuZXh0IixnKX1mdW5jdGlvbiB1KGcpe2MoInRocm93IixnKX1mdW5jdGlvbiBoKGcsYil7ZyhiKSxyLnNoaWZ0KCksci5sZW5ndGgmJmMoclswXVswXSxyWzBdWzFdKX19LFlBPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIGU9e30sbCgibmV4dCIpLGwoInRocm93IixmdW5jdGlvbihpKXt0aHJvdyBpfSksbCgicmV0dXJuIiksZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGU7ZnVuY3Rpb24gbChpLHIpe2VbaV09dFtpXT9mdW5jdGlvbihvKXtyZXR1cm4obj0hbik/e3ZhbHVlOkJuKHRbaV0obykpLGRvbmU6ITF9OnI/cihvKTpvfTpyfX07ZnVuY3Rpb24gVUEodCl7cmV0dXJuIEZBKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKigpe3lpZWxkIEJuKHlpZWxkKllBKE5BKHQpKSl9KX12YXIgQ3M9ZnVuY3Rpb24odCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLG47cmV0dXJuIGU/ZS5jYWxsKHQpOih0PXR5cGVvZiBfX3ZhbHVlcz09ImZ1bmN0aW9uIj9fX3ZhbHVlcyh0KTp0W1N5bWJvbC5pdGVyYXRvcl0oKSxuPXt9LGwoIm5leHQiKSxsKCJ0aHJvdyIpLGwoInJldHVybiIpLG5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG4pO2Z1bmN0aW9uIGwocil7bltyXT10W3JdJiZmdW5jdGlvbihvKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSxjKXtvPXRbcl0obyksaShhLGMsby5kb25lLG8udmFsdWUpfSl9fWZ1bmN0aW9uIGkocixvLGEsYyl7UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4oZnVuY3Rpb24oZCl7cih7dmFsdWU6ZCxkb25lOmF9KX0sbyl9fSxybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHJuPyh0aGlzLnY9dCx0aGlzKTpuZXcgcm4odCl9LEpBPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIGU9e30sbCgibmV4dCIpLGwoInRocm93IixmdW5jdGlvbihpKXt0aHJvdyBpfSksbCgicmV0dXJuIiksZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGU7ZnVuY3Rpb24gbChpLHIpe2VbaV09dFtpXT9mdW5jdGlvbihvKXtyZXR1cm4obj0hbik/e3ZhbHVlOnJuKHRbaV0obykpLGRvbmU6ITF9OnI/cihvKTpvfTpyfX0seEE9ZnVuY3Rpb24odCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgbD1uLmFwcGx5KHQsZXx8W10pLGkscj1bXTtyZXR1cm4gaT1PYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvcj09ImZ1bmN0aW9uIj9Bc3luY0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iLG8pLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gbyhnKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKS50aGVuKGcsdSl9fWZ1bmN0aW9uIGEoZyxiKXtsW2ddJiYoaVtnXT1mdW5jdGlvbihtKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZixwKXtyLnB1c2goW2csbSxmLHBdKT4xfHxjKGcsbSl9KX0sYiYmKGlbZ109YihpW2ddKSkpfWZ1bmN0aW9uIGMoZyxiKXt0cnl7ZChsW2ddKGIpKX1jYXRjaChtKXtoKHJbMF1bM10sbSl9fWZ1bmN0aW9uIGQoZyl7Zy52YWx1ZSBpbnN0YW5jZW9mIHJuP1Byb21pc2UucmVzb2x2ZShnLnZhbHVlLnYpLnRoZW4ocyx1KTpoKHJbMF1bMl0sZyl9ZnVuY3Rpb24gcyhnKXtjKCJuZXh0IixnKX1mdW5jdGlvbiB1KGcpe2MoInRocm93IixnKX1mdW5jdGlvbiBoKGcsYil7ZyhiKSxyLnNoaWZ0KCksci5sZW5ndGgmJmMoclswXVswXSxyWzBdWzFdKX19O2Z1bmN0aW9uIFQodCxlKXtyZXR1cm4geUEodCxuPT57c3dpdGNoKG4ubWV0aG9kS2luZCl7Y2FzZSJ1bmFyeSI6cmV0dXJuIHdBKGUsbik7Y2FzZSJzZXJ2ZXJfc3RyZWFtaW5nIjpyZXR1cm4ga0EoZSxuKTtjYXNlImNsaWVudF9zdHJlYW1pbmciOnJldHVybiB6QShlLG4pO2Nhc2UiYmlkaV9zdHJlYW1pbmciOnJldHVybiBRQShlLG4pO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSl9ZnVuY3Rpb24gd0EodCxlKXtyZXR1cm4gYXN5bmMobixsKT0+e3ZhciBpLHI7Y29uc3Qgbz1hd2FpdCB0LnVuYXJ5KGUsbD09bnVsbD92b2lkIDA6bC5zaWduYWwsbD09bnVsbD92b2lkIDA6bC50aW1lb3V0TXMsbD09bnVsbD92b2lkIDA6bC5oZWFkZXJzLG4sbD09bnVsbD92b2lkIDA6bC5jb250ZXh0VmFsdWVzKTtyZXR1cm4oaT1sPT1udWxsP3ZvaWQgMDpsLm9uSGVhZGVyKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChsLG8uaGVhZGVyKSwocj1sPT1udWxsP3ZvaWQgMDpsLm9uVHJhaWxlcik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwobCxvLnRyYWlsZXIpLG8ubWVzc2FnZX19ZnVuY3Rpb24ga0EodCxlKXtyZXR1cm4obixsKT0+V3ModC5zdHJlYW0oZSxsPT1udWxsP3ZvaWQgMDpsLnNpZ25hbCxsPT1udWxsP3ZvaWQgMDpsLnRpbWVvdXRNcyxsPT1udWxsP3ZvaWQgMDpsLmhlYWRlcnMsVUEoW25dKSxsPT1udWxsP3ZvaWQgMDpsLmNvbnRleHRWYWx1ZXMpLGwpfWZ1bmN0aW9uIHpBKHQsZSl7cmV0dXJuIGFzeW5jKG4sbCk9Pnt2YXIgaSxyLG8sYSxjLGQ7Y29uc3Qgcz1hd2FpdCB0LnN0cmVhbShlLGw9PW51bGw/dm9pZCAwOmwuc2lnbmFsLGw9PW51bGw/dm9pZCAwOmwudGltZW91dE1zLGw9PW51bGw/dm9pZCAwOmwuaGVhZGVycyxuLGw9PW51bGw/dm9pZCAwOmwuY29udGV4dFZhbHVlcyk7KGM9bD09bnVsbD92b2lkIDA6bC5vbkhlYWRlcik9PT1udWxsfHxjPT09dm9pZCAwfHxjLmNhbGwobCxzLmhlYWRlcik7bGV0IHUsaD0wO3RyeXtmb3IodmFyIGc9ITAsYj1DcyhzLm1lc3NhZ2UpLG07bT1hd2FpdCBiLm5leHQoKSxpPW0uZG9uZSwhaTtnPSEwKWE9bS52YWx1ZSxnPSExLHU9YSxoKyt9Y2F0Y2goZil7cj17ZXJyb3I6Zn19ZmluYWxseXt0cnl7IWcmJiFpJiYobz1iLnJldHVybikmJmF3YWl0IG8uY2FsbChiKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19aWYoIXUpdGhyb3cgbmV3IHNlKCJwcm90b2NvbCBlcnJvcjogbWlzc2luZyByZXNwb25zZSBtZXNzYWdlIixQLlVuaW1wbGVtZW50ZWQpO2lmKGg+MSl0aHJvdyBuZXcgc2UoInByb3RvY29sIGVycm9yOiByZWNlaXZlZCBleHRyYSBtZXNzYWdlcyBmb3IgY2xpZW50IHN0cmVhbWluZyBtZXRob2QiLFAuVW5pbXBsZW1lbnRlZCk7cmV0dXJuKGQ9bD09bnVsbD92b2lkIDA6bC5vblRyYWlsZXIpPT09bnVsbHx8ZD09PXZvaWQgMHx8ZC5jYWxsKGwscy50cmFpbGVyKSx1fX1mdW5jdGlvbiBRQSh0LGUpe3JldHVybihuLGwpPT5Xcyh0LnN0cmVhbShlLGw9PW51bGw/dm9pZCAwOmwuc2lnbmFsLGw9PW51bGw/dm9pZCAwOmwudGltZW91dE1zLGw9PW51bGw/dm9pZCAwOmwuaGVhZGVycyxuLGw9PW51bGw/dm9pZCAwOmwuY29udGV4dFZhbHVlcyksbCl9ZnVuY3Rpb24gV3ModCxlKXtjb25zdCBuPShmdW5jdGlvbigpe3JldHVybiB4QSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbiooKXt2YXIgbCxpO2NvbnN0IHI9eWllbGQgcm4odCk7KGw9ZT09bnVsbD92b2lkIDA6ZS5vbkhlYWRlcik9PT1udWxsfHxsPT09dm9pZCAwfHxsLmNhbGwoZSxyLmhlYWRlcikseWllbGQgcm4oeWllbGQqSkEoQ3Moci5tZXNzYWdlKSkpLChpPWU9PW51bGw/dm9pZCAwOmUub25UcmFpbGVyKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChlLHIudHJhaWxlcil9KX0pKClbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7cmV0dXJue1tTeW1ib2wuYXN5bmNJdGVyYXRvcl06KCk9Pih7bmV4dDooKT0+bi5uZXh0KCl9KX19ZnVuY3Rpb24gTEEoLi4udCl7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLG49dC5maWx0ZXIoaT0+aSE9PXZvaWQgMCkuY29uY2F0KGUuc2lnbmFsKTtmb3IoY29uc3QgaSBvZiBuKXtpZihpLmFib3J0ZWQpe2wuYXBwbHkoaSk7YnJlYWt9aS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbCl9ZnVuY3Rpb24gbCgpe2Uuc2lnbmFsLmFib3J0ZWR8fGUuYWJvcnQoQnModGhpcykpO2Zvcihjb25zdCBpIG9mIG4paS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbCl9cmV0dXJuIGV9ZnVuY3Rpb24gS0EodCl7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLG49KCk9PntlLmFib3J0KG5ldyBzZSgidGhlIG9wZXJhdGlvbiB0aW1lZCBvdXQiLFAuRGVhZGxpbmVFeGNlZWRlZCkpfTtsZXQgbDtyZXR1cm4gdCE9PXZvaWQgMCYmKHQ8PTA/bigpOmw9c2V0VGltZW91dChuLHQpKSx7c2lnbmFsOmUuc2lnbmFsLGNsZWFudXA6KCk9PmNsZWFyVGltZW91dChsKX19ZnVuY3Rpb24gQnModCl7aWYoIXQuYWJvcnRlZClyZXR1cm47aWYodC5yZWFzb24hPT12b2lkIDApcmV0dXJuIHQucmVhc29uO2NvbnN0IGU9bmV3IEVycm9yKCJUaGlzIG9wZXJhdGlvbiB3YXMgYWJvcnRlZCIpO3JldHVybiBlLm5hbWU9IkFib3J0RXJyb3IiLGV9ZnVuY3Rpb24gdGMoKXtyZXR1cm57Z2V0KHQpe3JldHVybiB0LmlkIGluIHRoaXM/dGhpc1t0LmlkXTp0LmRlZmF1bHRWYWx1ZX0sc2V0KHQsZSl7cmV0dXJuIHRoaXNbdC5pZF09ZSx0aGlzfSxkZWxldGUodCl7cmV0dXJuIGRlbGV0ZSB0aGlzW3QuaWRdLHRoaXN9fX1mdW5jdGlvbiBuYyh0LGUpe3JldHVybiB0LnRvU3RyaW5nKCkucmVwbGFjZSgvXC8/JC8sYC8ke2UucGFyZW50LnR5cGVOYW1lfS8ke2UubmFtZX1gKX1mdW5jdGlvbiBOcyh0LGUpe3JldHVybiBkdCh0LGUpfWZ1bmN0aW9uIFRBKHQsZSl7ZnVuY3Rpb24gbihsKXtyZXR1cm4gbC5kb25lPT09ITA/bDp7ZG9uZTpsLmRvbmUsdmFsdWU6TnModCxsLnZhbHVlKX19cmV0dXJue1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtjb25zdCBsPWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCksaT17bmV4dDooKT0+bC5uZXh0KCkudGhlbihuKX07cmV0dXJuIGwudGhyb3chPT12b2lkIDAmJihpLnRocm93PXI9PmwudGhyb3cocikudGhlbihuKSksbC5yZXR1cm4hPT12b2lkIDAmJihpLnJldHVybj1yPT5sLnJldHVybihyKS50aGVuKG4pKSxpfX19ZnVuY3Rpb24gRnModCxlKXtpZighZSlyZXR1cm4gdDtmb3IoY29uc3QgbiBvZiBlLmNvbmNhdCgpLnJldmVyc2UoKSl0PW4odCk7cmV0dXJuIHR9ZnVuY3Rpb24gWXModCl7dmFyIGU7Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQpO3JldHVybihlPW4uaWdub3JlVW5rbm93bkZpZWxkcykhPT1udWxsJiZlIT09dm9pZCAwfHwobi5pZ25vcmVVbmtub3duRmllbGRzPSEwKSxufWZ1bmN0aW9uIGxjKHQsZSxuLGwpe2NvbnN0IGk9ZT9pYyh0LmlucHV0LGwpOnJjKHQuaW5wdXQsbik7cmV0dXJue3BhcnNlOihlP2ljKHQub3V0cHV0LGwpOnJjKHQub3V0cHV0LG4pKS5wYXJzZSxzZXJpYWxpemU6aS5zZXJpYWxpemV9fWZ1bmN0aW9uIGljKHQsZSl7cmV0dXJue3BhcnNlKG4pe3RyeXtyZXR1cm4geGwodCxuLGUpfWNhdGNoKGwpe2NvbnN0IGk9bCBpbnN0YW5jZW9mIEVycm9yP2wubWVzc2FnZTpTdHJpbmcobCk7dGhyb3cgbmV3IHNlKGBwYXJzZSBiaW5hcnk6ICR7aX1gLFAuSW50ZXJuYWwpfX0sc2VyaWFsaXplKG4pe3RyeXtyZXR1cm4gbXModCxuLGUpfWNhdGNoKGwpe2NvbnN0IGk9bCBpbnN0YW5jZW9mIEVycm9yP2wubWVzc2FnZTpTdHJpbmcobCk7dGhyb3cgbmV3IHNlKGBzZXJpYWxpemUgYmluYXJ5OiAke2l9YCxQLkludGVybmFsKX19fX1mdW5jdGlvbiByYyh0LGUpe3ZhciBuLGw7Y29uc3QgaT0obj1lPT1udWxsP3ZvaWQgMDplLnRleHRFbmNvZGVyKSE9PW51bGwmJm4hPT12b2lkIDA/bjpuZXcgVGV4dEVuY29kZXIscj0obD1lPT1udWxsP3ZvaWQgMDplLnRleHREZWNvZGVyKSE9PW51bGwmJmwhPT12b2lkIDA/bDpuZXcgVGV4dERlY29kZXIsbz1ZcyhlKTtyZXR1cm57cGFyc2UoYSl7dHJ5e2NvbnN0IGM9ci5kZWNvZGUoYSk7cmV0dXJuIHNBKHQsYyxvKX1jYXRjaChjKXt0aHJvdyBzZS5mcm9tKGMsUC5JbnZhbGlkQXJndW1lbnQpfX0sc2VyaWFsaXplKGEpe3RyeXtjb25zdCBjPWVBKHQsYSxvKTtyZXR1cm4gaS5lbmNvZGUoYyl9Y2F0Y2goYyl7dGhyb3cgc2UuZnJvbShjLFAuSW50ZXJuYWwpfX19fWNvbnN0IE1BPS9eYXBwbGljYXRpb25cLyhjb25uZWN0XCspPyg/Oihqc29uKSg/OjsgP2NoYXJzZXQ9dXRmLT84KT98KHByb3RvKSkkL2ksSEE9ImFwcGxpY2F0aW9uL3Byb3RvIixEQT0iYXBwbGljYXRpb24vanNvbiIsakE9ImFwcGxpY2F0aW9uL2Nvbm5lY3QrcHJvdG8iLF9BPSJhcHBsaWNhdGlvbi9jb25uZWN0K2pzb24iO2Z1bmN0aW9uIE9BKHQpe2NvbnN0IGU9dD09bnVsbD92b2lkIDA6dC5tYXRjaChNQSk7aWYoIWUpcmV0dXJuO2NvbnN0IG49ISFlWzFdLGw9ISFlWzNdO3JldHVybntzdHJlYW06bixiaW5hcnk6bH19ZnVuY3Rpb24gVXModCxlLG4pe3ZhciBsO2lmKGUmJm5ldyBIZWFkZXJzKGUpLmZvckVhY2goKGEsYyk9Pm4ubWV0YWRhdGEuYXBwZW5kKGMsYSkpLHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09bnVsbHx8QXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuO2xldCBpPW4uY29kZTsiY29kZSJpbiB0JiZ0eXBlb2YgdC5jb2RlPT0ic3RyaW5nIiYmKGk9KGw9SUEodC5jb2RlKSkhPT1udWxsJiZsIT09dm9pZCAwP2w6aSk7Y29uc3Qgcj10Lm1lc3NhZ2U7aWYociE9bnVsbCYmdHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG47Y29uc3Qgbz1uZXcgc2Uocj8/IiIsaSxlKTtpZigiZGV0YWlscyJpbiB0JiZBcnJheS5pc0FycmF5KHQuZGV0YWlscykpZm9yKGNvbnN0IGEgb2YgdC5kZXRhaWxzKXtpZihhPT09bnVsbHx8dHlwZW9mIGEhPSJvYmplY3QifHxBcnJheS5pc0FycmF5KGEpfHx0eXBlb2YgYS50eXBlIT0ic3RyaW5nInx8dHlwZW9mIGEudmFsdWUhPSJzdHJpbmciKXRocm93IG47dHJ5e28uZGV0YWlscy5wdXNoKHt0eXBlOmEudHlwZSx2YWx1ZTpJcihhLnZhbHVlKSxkZWJ1ZzphLmRlYnVnfSl9Y2F0Y2h7dGhyb3cgbn19cmV0dXJuIG99Y29uc3Qgb2M9MjtmdW5jdGlvbiBQQSh0KXtjb25zdCBlPW5ldyBzZSgiaW52YWxpZCBlbmQgc3RyZWFtIixQLlVua25vd24pO2xldCBuO3RyeXtuPUpTT04ucGFyc2UodHlwZW9mIHQ9PSJzdHJpbmciP3Q6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHQpKX1jYXRjaHt0aHJvdyBlfWlmKHR5cGVvZiBuIT0ib2JqZWN0Inx8bj09bnVsbHx8QXJyYXkuaXNBcnJheShuKSl0aHJvdyBlO2NvbnN0IGw9bmV3IEhlYWRlcnM7aWYoIm1ldGFkYXRhImluIG4pe2lmKHR5cGVvZiBuLm1ldGFkYXRhIT0ib2JqZWN0Inx8bi5tZXRhZGF0YT09bnVsbHx8QXJyYXkuaXNBcnJheShuLm1ldGFkYXRhKSl0aHJvdyBlO2Zvcihjb25zdFtyLG9db2YgT2JqZWN0LmVudHJpZXMobi5tZXRhZGF0YSkpe2lmKCFBcnJheS5pc0FycmF5KG8pfHxvLnNvbWUoYT0+dHlwZW9mIGEhPSJzdHJpbmciKSl0aHJvdyBlO2Zvcihjb25zdCBhIG9mIG8pbC5hcHBlbmQocixhKX19Y29uc3QgaT0iZXJyb3IiaW4gbiYmbi5lcnJvciE9bnVsbD9VcyhuLmVycm9yLGwsZSk6dm9pZCAwO3JldHVybnttZXRhZGF0YTpsLGVycm9yOml9fWNvbnN0IEVsPSJDb250ZW50LVR5cGUiLCRBPSJDb250ZW50LUxlbmd0aCIsYWM9IkNvbnRlbnQtRW5jb2RpbmciLHFBPSJBY2NlcHQtRW5jb2RpbmciLGUyPSJDb25uZWN0LVRpbWVvdXQtTXMiLEpzPSJDb25uZWN0LVByb3RvY29sLVZlcnNpb24iLHQyPSJVc2VyLUFnZW50IjtmdW5jdGlvbiBuMih0KXtzd2l0Y2godCl7Y2FzZSA0MDA6cmV0dXJuIFAuSW50ZXJuYWw7Y2FzZSA0MDE6cmV0dXJuIFAuVW5hdXRoZW50aWNhdGVkO2Nhc2UgNDAzOnJldHVybiBQLlBlcm1pc3Npb25EZW5pZWQ7Y2FzZSA0MDQ6cmV0dXJuIFAuVW5pbXBsZW1lbnRlZDtjYXNlIDQyOTpyZXR1cm4gUC5VbmF2YWlsYWJsZTtjYXNlIDUwMjpyZXR1cm4gUC5VbmF2YWlsYWJsZTtjYXNlIDUwMzpyZXR1cm4gUC5VbmF2YWlsYWJsZTtjYXNlIDUwNDpyZXR1cm4gUC5VbmF2YWlsYWJsZTtkZWZhdWx0OnJldHVybiBQLlVua25vd259fWZ1bmN0aW9uIGNjKHQpe2NvbnN0IGU9bmV3IEhlYWRlcnMsbj1uZXcgSGVhZGVycztyZXR1cm4gdC5mb3JFYWNoKChsLGkpPT57aS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInRyYWlsZXItIik/bi5hcHBlbmQoaS5zdWJzdHJpbmcoOCksbCk6ZS5hcHBlbmQoaSxsKX0pLFtlLG5dfWNvbnN0IHhzPSIxIjtmdW5jdGlvbiBkYyh0LGUsbixsLGkpe2NvbnN0IHI9bmV3IEhlYWRlcnMobD8/e30pO3JldHVybiBuIT09dm9pZCAwJiZyLnNldChlMixgJHtufWApLHIuc2V0KEVsLHQ9PSJ1bmFyeSI/ZT9IQTpEQTplP2pBOl9BKSxyLnNldChKcyx4cyksci5oYXModDIpLHJ9ZnVuY3Rpb24gc2ModCxlLG4sbCl7Y29uc3QgaT1sLmdldChFbCkscj1PQShpKTtpZihuIT09MjAwKXtjb25zdCBhPW5ldyBzZShgSFRUUCAke259YCxuMihuKSxsKTtpZih0PT0idW5hcnkiJiZyJiYhci5iaW5hcnkpcmV0dXJue2lzVW5hcnlFcnJvcjohMCx1bmFyeUVycm9yOmF9O3Rocm93IGF9Y29uc3Qgbz17YmluYXJ5OmUsc3RyZWFtOnQhPT0idW5hcnkifTtpZigocj09bnVsbD92b2lkIDA6ci5iaW5hcnkpIT09by5iaW5hcnl8fHIuc3RyZWFtIT09by5zdHJlYW0pdGhyb3cgbmV3IHNlKGB1bnN1cHBvcnRlZCBjb250ZW50IHR5cGUgJHtpfWAscj09PXZvaWQgMD9QLlVua25vd246UC5JbnRlcm5hbCxsKTtyZXR1cm57aXNVbmFyeUVycm9yOiExfX1jb25zdCB1Yz0iYXBwbGljYXRpb24vIjtmdW5jdGlvbiBsMih0LGUpe3JldHVybiBlP2lzKHQsInVybCIpOmVuY29kZVVSSUNvbXBvbmVudChuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUodCkpfWZ1bmN0aW9uIGkyKHQsZSxuKXtsZXQgbD1gP2Nvbm5lY3Q9diR7eHN9YDtjb25zdCBpPXQuaGVhZGVyLmdldChFbCk7KGk9PW51bGw/dm9pZCAwOmkuaW5kZXhPZih1YykpPT09MCYmKGwrPSImZW5jb2Rpbmc9IitlbmNvZGVVUklDb21wb25lbnQoaS5zbGljZSh1Yy5sZW5ndGgpKSk7Y29uc3Qgcj10LmhlYWRlci5nZXQoYWMpO3IhPT1udWxsJiZyIT09ImlkZW50aXR5IiYmKGwrPSImY29tcHJlc3Npb249IitlbmNvZGVVUklDb21wb25lbnQociksbj0hMCksbiYmKGwrPSImYmFzZTY0PTEiKSxsKz0iJm1lc3NhZ2U9IitsMihlLG4pO2NvbnN0IG89dC51cmwrbCxhPW5ldyBIZWFkZXJzKHQuaGVhZGVyKTtmb3IoY29uc3QgYyBvZltKcyxFbCwkQSxhYyxxQV0pYS5kZWxldGUoYyk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVxdWVzdE1ldGhvZDoiR0VUIix1cmw6byxoZWFkZXI6YX0pfWZ1bmN0aW9uIHIyKHQpe2NvbnN0IGU9RnModC5uZXh0LHQuaW50ZXJjZXB0b3JzKSxbbixsLGldPXdzKHQpLHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucmVxKSx7bWVzc2FnZTpOcyh0LnJlcS5tZXRob2QuaW5wdXQsdC5yZXEubWVzc2FnZSksc2lnbmFsOm59KTtyZXR1cm4gZShyKS50aGVuKG89PihpKCksbyksbCl9ZnVuY3Rpb24gbzIodCl7Y29uc3QgZT1Gcyh0Lm5leHQsdC5pbnRlcmNlcHRvcnMpLFtuLGwsaV09d3ModCkscj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5yZXEpLHttZXNzYWdlOlRBKHQucmVxLm1ldGhvZC5pbnB1dCx0LnJlcS5tZXNzYWdlKSxzaWduYWw6bn0pO2xldCBvPSExO3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixmdW5jdGlvbigpe3ZhciBhLGM7Y29uc3QgZD10LnJlcS5tZXNzYWdlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO298fChhPWQudGhyb3cpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGQsdGhpcy5yZWFzb24pLmNhdGNoKCgpPT57fSksKGM9ZC5yZXR1cm4pPT09bnVsbHx8Yz09PXZvaWQgMHx8Yy5jYWxsKGQpLmNhdGNoKCgpPT57fSl9KSxlKHIpLnRoZW4oYT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHttZXNzYWdlOntbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7Y29uc3QgYz1hLm1lc3NhZ2VbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7cmV0dXJue25leHQoKXtyZXR1cm4gYy5uZXh0KCkudGhlbihkPT4oZC5kb25lPT0hMCYmKG89ITAsaSgpKSxkKSxsKX19fX19KSxsKX1mdW5jdGlvbiB3cyh0KXtjb25zdHtzaWduYWw6ZSxjbGVhbnVwOm59PUtBKHQudGltZW91dE1zKSxsPUxBKHQuc2lnbmFsLGUpO3JldHVybltsLnNpZ25hbCxmdW5jdGlvbihyKXtjb25zdCBvPXNlLmZyb20oZS5hYm9ydGVkP0JzKGUpOnIpO3JldHVybiBsLmFib3J0KG8pLG4oKSxQcm9taXNlLnJlamVjdChvKX0sZnVuY3Rpb24oKXtuKCksbC5hYm9ydCgpfV19ZnVuY3Rpb24gYTIoKXt0cnl7bmV3IEhlYWRlcnN9Y2F0Y2h7dGhyb3cgbmV3IEVycm9yKCJjb25uZWN0LXdlYiByZXF1aXJlcyB0aGUgZmV0Y2ggQVBJLiBBcmUgeW91IHJ1bm5pbmcgb24gYW4gb2xkIHZlcnNpb24gb2YgTm9kZS5qcz8gTm9kZS5qcyBpcyBub3Qgc3VwcG9ydGVkIGluIENvbm5lY3QgZm9yIFdlYiAtIHBsZWFzZSBzdGF5IHR1bmVkIGZvciBDb25uZWN0IGZvciBOb2RlLiIpfX12YXIgTm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBObj8odGhpcy52PXQsdGhpcyk6bmV3IE5uKHQpfSxjMj1mdW5jdGlvbih0LGUsbil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBsPW4uYXBwbHkodCxlfHxbXSksaSxyPVtdO3JldHVybiBpPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBBc3luY0l0ZXJhdG9yPT0iZnVuY3Rpb24iP0FzeW5jSXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpLGEoIm5leHQiKSxhKCJ0aHJvdyIpLGEoInJldHVybiIsbyksaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30saTtmdW5jdGlvbiBvKGcpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIpLnRoZW4oZyx1KX19ZnVuY3Rpb24gYShnLGIpe2xbZ10mJihpW2ddPWZ1bmN0aW9uKG0pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLHApe3IucHVzaChbZyxtLGYscF0pPjF8fGMoZyxtKX0pfSxiJiYoaVtnXT1iKGlbZ10pKSl9ZnVuY3Rpb24gYyhnLGIpe3RyeXtkKGxbZ10oYikpfWNhdGNoKG0pe2goclswXVszXSxtKX19ZnVuY3Rpb24gZChnKXtnLnZhbHVlIGluc3RhbmNlb2YgTm4/UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUudikudGhlbihzLHUpOmgoclswXVsyXSxnKX1mdW5jdGlvbiBzKGcpe2MoIm5leHQiLGcpfWZ1bmN0aW9uIHUoZyl7YygidGhyb3ciLGcpfWZ1bmN0aW9uIGgoZyxiKXtnKGIpLHIuc2hpZnQoKSxyLmxlbmd0aCYmYyhyWzBdWzBdLHJbMF1bMV0pfX07Y29uc3QgZ2M9e3JlZGlyZWN0OiJlcnJvciJ9O2Z1bmN0aW9uIGQyKHQpe3ZhciBlO2EyKCk7Y29uc3Qgbj0oZT10LnVzZUJpbmFyeUZvcm1hdCkhPT1udWxsJiZlIT09dm9pZCAwP2U6ITE7cmV0dXJue2FzeW5jIHVuYXJ5KGwsaSxyLG8sYSxjKXtjb25zdHtzZXJpYWxpemU6ZCxwYXJzZTpzfT1sYyhsLG4sdC5qc29uT3B0aW9ucyx0LmJpbmFyeU9wdGlvbnMpO3JldHVybiByPXI9PT12b2lkIDA/dC5kZWZhdWx0VGltZW91dE1zOnI8PTA/dm9pZCAwOnIsYXdhaXQgcjIoe2ludGVyY2VwdG9yczp0LmludGVyY2VwdG9ycyxzaWduYWw6aSx0aW1lb3V0TXM6cixyZXE6e3N0cmVhbTohMSxzZXJ2aWNlOmwucGFyZW50LG1ldGhvZDpsLHJlcXVlc3RNZXRob2Q6IlBPU1QiLHVybDpuYyh0LmJhc2VVcmwsbCksaGVhZGVyOmRjKGwubWV0aG9kS2luZCxuLHIsbywhMSksY29udGV4dFZhbHVlczpjPz90YygpLG1lc3NhZ2U6YX0sbmV4dDphc3luYyB1PT57dmFyIGg7Y29uc3QgZz10LnVzZUh0dHBHZXQ9PT0hMCYmbC5pZGVtcG90ZW5jeT09PUppLk5PX1NJREVfRUZGRUNUUztsZXQgYj1udWxsO2c/dT1pMih1LGQodS5tZXNzYWdlKSxuKTpiPWQodS5tZXNzYWdlKTtjb25zdCBmPWF3YWl0KChoPXQuZmV0Y2gpIT09bnVsbCYmaCE9PXZvaWQgMD9oOmdsb2JhbFRoaXMuZmV0Y2gpKHUudXJsLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnYykse21ldGhvZDp1LnJlcXVlc3RNZXRob2QsaGVhZGVyczp1LmhlYWRlcixzaWduYWw6dS5zaWduYWwsYm9keTpifSkpLHtpc1VuYXJ5RXJyb3I6cCx1bmFyeUVycm9yOkF9PXNjKGwubWV0aG9kS2luZCxuLGYuc3RhdHVzLGYuaGVhZGVycyk7aWYocCl0aHJvdyBVcyhhd2FpdCBmLmpzb24oKSxFQSguLi5jYyhmLmhlYWRlcnMpKSxBKTtjb25zdFtYLHldPWNjKGYuaGVhZGVycyk7cmV0dXJue3N0cmVhbTohMSxzZXJ2aWNlOmwucGFyZW50LG1ldGhvZDpsLGhlYWRlcjpYLG1lc3NhZ2U6bj9zKG5ldyBVaW50OEFycmF5KGF3YWl0IGYuYXJyYXlCdWZmZXIoKSkpOkVzKGwub3V0cHV0LGF3YWl0IGYuanNvbigpLFlzKHQuanNvbk9wdGlvbnMpKSx0cmFpbGVyOnl9fX0pfSxhc3luYyBzdHJlYW0obCxpLHIsbyxhLGMpe2NvbnN0e3NlcmlhbGl6ZTpkLHBhcnNlOnN9PWxjKGwsbix0Lmpzb25PcHRpb25zLHQuYmluYXJ5T3B0aW9ucyk7ZnVuY3Rpb24gdShnLGIsbSxmKXtyZXR1cm4gYzIodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24qKCl7Y29uc3QgQT1XQShnKS5nZXRSZWFkZXIoKTtsZXQgWD0hMTtmb3IoOzspe2NvbnN0IHk9eWllbGQgTm4oQS5yZWFkKCkpO2lmKHkuZG9uZSlicmVhaztjb25zdHtmbGFnczpJLGRhdGE6U309eS52YWx1ZTtpZigoSSZlYyk9PT1lYyl0aHJvdyBuZXcgc2UoInByb3RvY29sIGVycm9yOiByZWNlaXZlZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIG91dHB1dCIsUC5JbnRlcm5hbCk7aWYoKEkmb2MpPT09b2Mpe1g9ITA7Y29uc3QgRz1QQShTKTtpZihHLmVycm9yKXtjb25zdCBCPUcuZXJyb3I7dGhyb3cgbS5mb3JFYWNoKCh2LEopPT57Qi5tZXRhZGF0YS5hcHBlbmQoSix2KX0pLEJ9Ry5tZXRhZGF0YS5mb3JFYWNoKChCLHYpPT5iLnNldCh2LEIpKTtjb250aW51ZX15aWVsZCB5aWVsZCBObihzKFMpKX1pZigidGhyb3dJZkFib3J0ZWQiaW4gZiYmZi50aHJvd0lmQWJvcnRlZCgpLCFYKXRocm93Im1pc3NpbmcgRW5kU3RyZWFtUmVzcG9uc2UifSl9YXN5bmMgZnVuY3Rpb24gaChnKXtpZihsLm1ldGhvZEtpbmQhPSJzZXJ2ZXJfc3RyZWFtaW5nIil0aHJvdyJUaGUgZmV0Y2ggQVBJIGRvZXMgbm90IHN1cHBvcnQgc3RyZWFtaW5nIHJlcXVlc3QgYm9kaWVzIjtjb25zdCBiPWF3YWl0IGdbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCkubmV4dCgpO2lmKGIuZG9uZT09ITApdGhyb3cibWlzc2luZyByZXF1ZXN0IG1lc3NhZ2UiO3JldHVybiBCQSgwLGQoYi52YWx1ZSkpfXJldHVybiByPXI9PT12b2lkIDA/dC5kZWZhdWx0VGltZW91dE1zOnI8PTA/dm9pZCAwOnIsYXdhaXQgbzIoe2ludGVyY2VwdG9yczp0LmludGVyY2VwdG9ycyx0aW1lb3V0TXM6cixzaWduYWw6aSxyZXE6e3N0cmVhbTohMCxzZXJ2aWNlOmwucGFyZW50LG1ldGhvZDpsLHJlcXVlc3RNZXRob2Q6IlBPU1QiLHVybDpuYyh0LmJhc2VVcmwsbCksaGVhZGVyOmRjKGwubWV0aG9kS2luZCxuLHIsbywhMSksY29udGV4dFZhbHVlczpjPz90YygpLG1lc3NhZ2U6YX0sbmV4dDphc3luYyBnPT57dmFyIGI7Y29uc3QgZj1hd2FpdCgoYj10LmZldGNoKSE9PW51bGwmJmIhPT12b2lkIDA/YjpnbG9iYWxUaGlzLmZldGNoKShnLnVybCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2MpLHttZXRob2Q6Zy5yZXF1ZXN0TWV0aG9kLGhlYWRlcnM6Zy5oZWFkZXIsc2lnbmFsOmcuc2lnbmFsLGJvZHk6YXdhaXQgaChnLm1lc3NhZ2UpfSkpO2lmKHNjKGwubWV0aG9kS2luZCxuLGYuc3RhdHVzLGYuaGVhZGVycyksZi5ib2R5PT09bnVsbCl0aHJvdyJtaXNzaW5nIHJlc3BvbnNlIGJvZHkiO2NvbnN0IHA9bmV3IEhlYWRlcnM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aGVhZGVyOmYuaGVhZGVycyx0cmFpbGVyOnAsbWVzc2FnZTp1KGYuYm9keSxwLGYuaGVhZGVycyxnLnNpZ25hbCl9KX19KX19fWZ1bmN0aW9uIEgodCxlLC4uLm4pe2lmKG4ubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yO3JldHVybiB0LnNlcnZpY2VzW2VdfWNvbnN0IGtzPXooIkNoeHZjR1Z5WVhScGIyNHZkakV2Y0d4aGVWOWpZWEprTG5CeWIzUnZFZ3h2Y0dWeVlYUnBiMjR1ZGpFaU9Bb1ZSMlYwUTNWeVVHeGhlVU5oY21SU1pYRjFaWE4wRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtTRGdvR2JHOWpZV3hsR0FJZ0FTZ0pJa3dLRmtkbGRFTjFjbEJzWVhsRFlYSmtVbVZ6Y0c5dWMyVVNNZ29PY0d4aGVWOWpZWEprWDJsdVptOFlBU0FCS0FzeUdpNXZjR1Z5WVhScGIyNHVkakV1VUd4aGVVTmhjbVJKYm1adklyb0RDZ3hRYkdGNVEyRnlaRWx1Wm04U0Nnb0NhV1FZQVNBQktBTVNEQW9FYm1GdFpSZ0NJQUVvQ1JJTkNnVjBhWFJzWlJnRElBRW9DUklNQ2dSa1pYTmpHQVFnQVNnSkVpNEtDMkZqZEdsdmJsOTBlWEJsR0FVZ0FTZ09NaGt1YjNCbGNtRjBhVzl1TG5ZeExrRkRWRWxQVGw5VVdWQkZFaElLQ21WNGRISmhYMlJoZEdFWUJpQUJLQWtTTGdvS1kzSmxZWFJsWkY5aGRCZ0hJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0xnb0tkWEJrWVhSbFpGOWhkQmdJSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNMZ29HYzNSaGRIVnpHQWtnQVNnT01oNHViM0JsY21GMGFXOXVMbll4TGxCTVFWbGZRMEZTUkY5VFZFRlVWVk1TTFFvSWNHeGhkR1p2Y20wWUNpQUJLQTR5R3k1dmNHVnlZWFJwYjI0dWRqRXVVRXhCVkVaUFVrMWZWRmxRUlJJMENnVnBiV0ZuWlJnTElBTW9DeklsTG05d1pYSmhkR2x2Ymk1Mk1TNVFiR0Y1UTJGeVpFbHVabTh1U1cxaFoyVkZiblJ5ZVJJTUNnUkpNVGh1R0F3Z0FTZ0pHaXdLQ2tsdFlXZGxSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBU3AyQ2cxUVRFRlVSazlTVFY5VVdWQkZFaDBLR1ZCTVFWUkdUMUpOWDFSWlVFVmZWVTVUVUVWRFNVWkpSVVFRQUJJVkNoRlFURUZVUms5U1RWOVVXVkJGWDBGTVRCQUJFaGdLRkZCTVFWUkdUMUpOWDFSWlVFVmZUVTlDU1V4RkVBSVNGUW9SVUV4QlZFWlBVazFmVkZsUVJWOVhSVUlRQXlwV0NndEJRMVJKVDA1ZlZGbFFSUkliQ2hkQlExUkpUMDVmVkZsUVJWOVZUbE5RUlVOSlJrbEZSQkFBRWhVS0VVRkRWRWxQVGw5VVdWQkZYMUJQVUZWUUVBRVNFd29QUVVOVVNVOU9YMVJaVUVWZlZWSk1FQUlxWndvUVVFeEJXVjlEUVZKRVgxTlVRVlJWVXhJZ0NoeFFURUZaWDBOQlVrUmZVMVJCVkZWVFgxVk9VMUJGUTBsR1NVVkVFQUFTRndvVFVFeEJXVjlEUVZKRVgxTlVRVlJWVTE5UFRoQUJFaGdLRkZCTVFWbGZRMEZTUkY5VFZFRlVWVk5mVDBaR0VBSXlhUW9JVUd4aGVVTmhjbVFTWFFvT1IyVjBRM1Z5VUd4aGVVTmhjbVFTSXk1dmNHVnlZWFJwYjI0dWRqRXVSMlYwUTNWeVVHeGhlVU5oY21SU1pYRjFaWE4wR2lRdWIzQmxjbUYwYVc5dUxuWXhMa2RsZEVOMWNsQnNZWGxEWVhKa1VtVnpjRzl1YzJVaUFFSzNBUW9RWTI5dExtOXdaWEpoZEdsdmJpNTJNVUlOVUd4aGVVTmhjbVJRY205MGIxQUJXa05uYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZiM0JsY21GMGFXOXVMM1l4TzI5d1pYSmhkR2x2Ym5ZeG9nSURUMWhZcWdJTVQzQmxjbUYwYVc5dUxsWXh5Z0lNVDNCbGNtRjBhVzl1WEZZeDRnSVlUM0JsY21GMGFXOXVYRll4WEVkUVFrMWxkR0ZrWVhSaDZnSU5UM0JsY21GMGFXOXVPanBXTVdJR2NISnZkRzh6IixbdGVdKSxzMj1IKGtzLDApLHUyPXooIkNpSnZjR1Z5WVhScGIyNHZkakV2Y0d4aGVWOWpZWEprWDJGa2JXbHVMbkJ5YjNSdkVneHZjR1Z5WVhScGIyNHVkakVpNmdJS0ZVTnlaV0YwWlZCc1lYbERZWEprVW1WeGRXVnpkQklNQ2dSdVlXMWxHQUVnQVNnSkVnMEtCWFJwZEd4bEdBSWdBU2dKRWd3S0JHUmxjMk1ZQXlBQktBa1NMZ29MWVdOMGFXOXVYM1I1Y0dVWUJDQUJLQTR5R1M1dmNHVnlZWFJwYjI0dWRqRXVRVU5VU1U5T1gxUlpVRVVTRWdvS1pYaDBjbUZmWkdGMFlSZ0ZJQUVvQ1JJdUNnWnpkR0YwZFhNWUJpQUJLQTR5SGk1dmNHVnlZWFJwYjI0dWRqRXVVRXhCV1Y5RFFWSkVYMU5VUVZSVlV4SXRDZ2h3YkdGMFptOXliUmdJSUFFb0RqSWJMbTl3WlhKaGRHbHZiaTUyTVM1UVRFRlVSazlTVFY5VVdWQkZFajBLQldsdFlXZGxHQWtnQXlnTE1pNHViM0JsY21GMGFXOXVMbll4TGtOeVpXRjBaVkJzWVhsRFlYSmtVbVZ4ZFdWemRDNUpiV0ZuWlVWdWRISjVFaFlLRG5SeVlXNXpiR0YwWlY5cWMyOXVHQW9nQVNnSkdpd0tDa2x0WVdkbFJXNTBjbmtTQ3dvRGEyVjVHQUVnQVNnSkVnMEtCWFpoYkhWbEdBSWdBU2dKT2dJNEFTSTJDaFpEY21WaGRHVlFiR0Y1UTJGeVpGSmxjM0J2Ym5ObEVnOEtCM04xWTJObGMzTVlBU0FCS0FnU0N3b0RiWE5uR0FJZ0FTZ0pJb1FFQ2hWVmNHUmhkR1ZRYkdGNVEyRnlaRkpsY1hWbGMzUVNDZ29DYVdRWUFTQUJLQU1TRVFvRWJtRnRaUmdDSUFFb0NVZ0FpQUVCRWhJS0JYUnBkR3hsR0FNZ0FTZ0pTQUdJQVFFU0VRb0VaR1Z6WXhnRUlBRW9DVWdDaUFFQkVqTUtDMkZqZEdsdmJsOTBlWEJsR0FVZ0FTZ09NaGt1YjNCbGNtRjBhVzl1TG5ZeExrRkRWRWxQVGw5VVdWQkZTQU9JQVFFU0Z3b0taWGgwY21GZlpHRjBZUmdISUFFb0NVZ0VpQUVCRWpNS0JuTjBZWFIxY3hnSUlBRW9EakllTG05d1pYSmhkR2x2Ymk1Mk1TNVFURUZaWDBOQlVrUmZVMVJCVkZWVFNBV0lBUUVTTWdvSWNHeGhkR1p2Y20wWUNpQUJLQTR5R3k1dmNHVnlZWFJwYjI0dWRqRXVVRXhCVkVaUFVrMWZWRmxRUlVnR2lBRUJFajBLQldsdFlXZGxHQXNnQXlnTE1pNHViM0JsY21GMGFXOXVMbll4TGxWd1pHRjBaVkJzWVhsRFlYSmtVbVZ4ZFdWemRDNUpiV0ZuWlVWdWRISjVFaHNLRG5SeVlXNXpiR0YwWlY5cWMyOXVHQXdnQVNnSlNBZUlBUUVhTEFvS1NXMWhaMlZGYm5SeWVSSUxDZ05yWlhrWUFTQUJLQWtTRFFvRmRtRnNkV1VZQWlBQktBazZBamdCUWdjS0JWOXVZVzFsUWdnS0JsOTBhWFJzWlVJSENnVmZaR1Z6WTBJT0NneGZZV04wYVc5dVgzUjVjR1ZDRFFvTFgyVjRkSEpoWDJSaGRHRkNDUW9IWDNOMFlYUjFjMElMQ2dsZmNHeGhkR1p2Y20xQ0VRb1BYM1J5WVc1emJHRjBaVjlxYzI5dUlqWUtGbFZ3WkdGMFpWQnNZWGxEWVhKa1VtVnpjRzl1YzJVU0R3b0hjM1ZqWTJWemN4Z0JJQUVvQ0JJTENnTnRjMmNZQWlBQktBa2lJd29WUkdWc1pYUmxVR3hoZVVOaGNtUlNaWEYxWlhOMEVnb0tBbWxrR0FFZ0FTZ0RJallLRmtSbGJHVjBaVkJzWVhsRFlYSmtVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NCSUxDZ050YzJjWUFpQUJLQWtpL2dFS0UweHBjM1JRYkdGNVEyRnlaRkpsY1hWbGMzUVNEQW9FY0dGblpSZ0JJQUVvQlJJUkNnbHdZV2RsWDNOcGVtVVlBaUFCS0FVU0ZBb0hhMlY1ZDI5eVpCZ0RJQUVvQ1VnQWlBRUJFaE1LQm14dlkyRnNaUmdFSUFFb0NVZ0JpQUVCRWpJS0NIQnNZWFJtYjNKdEdBVWdBU2dPTWhzdWIzQmxjbUYwYVc5dUxuWXhMbEJNUVZSR1QxSk5YMVJaVUVWSUFvZ0JBUkl6Q2d0aFkzUnBiMjVmZEhsd1pSZ0dJQUVvRGpJWkxtOXdaWEpoZEdsdmJpNTJNUzVCUTFSSlQwNWZWRmxRUlVnRGlBRUJRZ29LQ0Y5clpYbDNiM0prUWdrS0IxOXNiMk5oYkdWQ0N3b0pYM0JzWVhSbWIzSnRRZzRLREY5aFkzUnBiMjVmZEhsd1pTSnpDaFJNYVhOMFVHeGhlVU5oY21SU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJRWdzS0EyMXpaeGdDSUFFb0NSSXVDZ3B3YkdGNVgyTmhjbVJ6R0FNZ0F5Z0xNaG91YjNCbGNtRjBhVzl1TG5ZeExsQnNZWGxEWVhKa1NXNW1ieElOQ2dWMGIzUmhiQmdFSUFFb0F6S0ZBd29OVUd4aGVVTmhjbVJCWkcxcGJoSmRDZzVEY21WaGRHVlFiR0Y1UTJGeVpCSWpMbTl3WlhKaGRHbHZiaTUyTVM1RGNtVmhkR1ZRYkdGNVEyRnlaRkpsY1hWbGMzUWFKQzV2Y0dWeVlYUnBiMjR1ZGpFdVEzSmxZWFJsVUd4aGVVTmhjbVJTWlhOd2IyNXpaU0lBRWwwS0RsVndaR0YwWlZCc1lYbERZWEprRWlNdWIzQmxjbUYwYVc5dUxuWXhMbFZ3WkdGMFpWQnNZWGxEWVhKa1VtVnhkV1Z6ZEJva0xtOXdaWEpoZEdsdmJpNTJNUzVWY0dSaGRHVlFiR0Y1UTJGeVpGSmxjM0J2Ym5ObElnQVNYUW9PUkdWc1pYUmxVR3hoZVVOaGNtUVNJeTV2Y0dWeVlYUnBiMjR1ZGpFdVJHVnNaWFJsVUd4aGVVTmhjbVJTWlhGMVpYTjBHaVF1YjNCbGNtRjBhVzl1TG5ZeExrUmxiR1YwWlZCc1lYbERZWEprVW1WemNHOXVjMlVpQUJKWENneE1hWE4wVUd4aGVVTmhjbVFTSVM1dmNHVnlZWFJwYjI0dWRqRXVUR2x6ZEZCc1lYbERZWEprVW1WeGRXVnpkQm9pTG05d1pYSmhkR2x2Ymk1Mk1TNU1hWE4wVUd4aGVVTmhjbVJTWlhOd2IyNXpaU0lBUXJ3QkNoQmpiMjB1YjNCbGNtRjBhVzl1TG5ZeFFoSlFiR0Y1UTJGeVpFRmtiV2x1VUhKdmRHOVFBVnBEWjJsMGJHRmlMbTF2Ym1sallTNWpiaTkyYVdSaEwzTmtheTlpYVhwelpYSjJaWEl0WjI4dVoybDBMMjl3WlhKaGRHbHZiaTkyTVR0dmNHVnlZWFJwYjI1Mk1hSUNBMDlZV0tvQ0RFOXdaWEpoZEdsdmJpNVdNY29DREU5d1pYSmhkR2x2Ymx4V01lSUNHRTl3WlhKaGRHbHZibHhXTVZ4SFVFSk5aWFJoWkdGMFllb0NEVTl3WlhKaGRHbHZiam82VmpGaUJuQnliM1J2TXciLFt0ZSxrc10pLGcyPUgodTIsMCksWWU9eigiQ2h0aWRXWXZkbUZzYVdSaGRHVXZkbUZzYVdSaGRHVXVjSEp2ZEc4U0RHSjFaaTUyWVd4cFpHRjBaU0k5Q2dwRGIyNXpkSEpoYVc1MEVnb0tBbWxrR0FFZ0FTZ0pFZzhLQjIxbGMzTmhaMlVZQWlBQktBa1NFZ29LWlhod2NtVnpjMmx2YmhnRElBRW9DU0pOQ2hKTlpYTnpZV2RsUTI5dWMzUnlZV2x1ZEhNU0VBb0laR2x6WVdKc1pXUVlBU0FCS0FnU0pRb0RZMlZzR0FNZ0F5Z0xNaGd1WW5WbUxuWmhiR2xrWVhSbExrTnZibk4wY21GcGJuUWlKQW9RVDI1bGIyWkRiMjV6ZEhKaGFXNTBjeElRQ2doeVpYRjFhWEpsWkJnQklBRW9DQ0xYQ0FvUVJtbGxiR1JEYjI1emRISmhhVzUwY3hJbENnTmpaV3dZRnlBREtBc3lHQzVpZFdZdWRtRnNhV1JoZEdVdVEyOXVjM1J5WVdsdWRCSVFDZ2h5WlhGMWFYSmxaQmdaSUFFb0NCSWtDZ1pwWjI1dmNtVVlHeUFCS0E0eUZDNWlkV1l1ZG1Gc2FXUmhkR1V1U1dkdWIzSmxFaWtLQldac2IyRjBHQUVnQVNnTE1oZ3VZblZtTG5aaGJHbGtZWFJsTGtac2IyRjBVblZzWlhOSUFCSXJDZ1prYjNWaWJHVVlBaUFCS0FzeUdTNWlkV1l1ZG1Gc2FXUmhkR1V1Ukc5MVlteGxVblZzWlhOSUFCSXBDZ1ZwYm5Rek1oZ0RJQUVvQ3pJWUxtSjFaaTUyWVd4cFpHRjBaUzVKYm5Rek1sSjFiR1Z6U0FBU0tRb0ZhVzUwTmpRWUJDQUJLQXN5R0M1aWRXWXVkbUZzYVdSaGRHVXVTVzUwTmpSU2RXeGxjMGdBRWlzS0JuVnBiblF6TWhnRklBRW9DeklaTG1KMVppNTJZV3hwWkdGMFpTNVZTVzUwTXpKU2RXeGxjMGdBRWlzS0JuVnBiblEyTkJnR0lBRW9DeklaTG1KMVppNTJZV3hwWkdGMFpTNVZTVzUwTmpSU2RXeGxjMGdBRWlzS0JuTnBiblF6TWhnSElBRW9DeklaTG1KMVppNTJZV3hwWkdGMFpTNVRTVzUwTXpKU2RXeGxjMGdBRWlzS0JuTnBiblEyTkJnSUlBRW9DeklaTG1KMVppNTJZV3hwWkdGMFpTNVRTVzUwTmpSU2RXeGxjMGdBRWkwS0IyWnBlR1ZrTXpJWUNTQUJLQXN5R2k1aWRXWXVkbUZzYVdSaGRHVXVSbWw0WldRek1sSjFiR1Z6U0FBU0xRb0habWw0WldRMk5CZ0tJQUVvQ3pJYUxtSjFaaTUyWVd4cFpHRjBaUzVHYVhobFpEWTBVblZzWlhOSUFCSXZDZ2h6Wm1sNFpXUXpNaGdMSUFFb0N6SWJMbUoxWmk1MllXeHBaR0YwWlM1VFJtbDRaV1F6TWxKMWJHVnpTQUFTTHdvSWMyWnBlR1ZrTmpRWURDQUJLQXN5R3k1aWRXWXVkbUZzYVdSaGRHVXVVMFpwZUdWa05qUlNkV3hsYzBnQUVpY0tCR0p2YjJ3WURTQUJLQXN5Rnk1aWRXWXVkbUZzYVdSaGRHVXVRbTl2YkZKMWJHVnpTQUFTS3dvR2MzUnlhVzVuR0E0Z0FTZ0xNaGt1WW5WbUxuWmhiR2xrWVhSbExsTjBjbWx1WjFKMWJHVnpTQUFTS1FvRllubDBaWE1ZRHlBQktBc3lHQzVpZFdZdWRtRnNhV1JoZEdVdVFubDBaWE5TZFd4bGMwZ0FFaWNLQkdWdWRXMFlFQ0FCS0FzeUZ5NWlkV1l1ZG1Gc2FXUmhkR1V1Ulc1MWJWSjFiR1Z6U0FBU0x3b0ljbVZ3WldGMFpXUVlFaUFCS0FzeUd5NWlkV1l1ZG1Gc2FXUmhkR1V1VW1Wd1pXRjBaV1JTZFd4bGMwZ0FFaVVLQTIxaGNCZ1RJQUVvQ3pJV0xtSjFaaTUyWVd4cFpHRjBaUzVOWVhCU2RXeGxjMGdBRWlVS0EyRnVlUmdVSUFFb0N6SVdMbUoxWmk1MllXeHBaR0YwWlM1QmJubFNkV3hsYzBnQUVpOEtDR1IxY21GMGFXOXVHQlVnQVNnTE1oc3VZblZtTG5aaGJHbGtZWFJsTGtSMWNtRjBhVzl1VW5Wc1pYTklBQkl4Q2dsMGFXMWxjM1JoYlhBWUZpQUJLQXN5SEM1aWRXWXVkbUZzYVdSaGRHVXVWR2x0WlhOMFlXMXdVblZzWlhOSUFCSVRDZ2R6YTJsd2NHVmtHQmdnQVNnSVFnSVlBUklZQ2d4cFoyNXZjbVZmWlcxd2RIa1lHaUFCS0FoQ0FoZ0JRZ1lLQkhSNWNHVWlQZ29WVUhKbFpHVm1hVzVsWkVOdmJuTjBjbUZwYm5SekVpVUtBMk5sYkJnQklBTW9DeklZTG1KMVppNTJZV3hwWkdGMFpTNURiMjV6ZEhKaGFXNTBJclVYQ2dwR2JHOWhkRkoxYkdWekVta0tCV052Ym5OMEdBRWdBU2dDUWxyQ1NGY0tWUW9MWm14dllYUXVZMjl1YzNRYVJuUm9hWE1nSVQwZ2NuVnNaWE11WTI5dWMzUWdQeUFuZG1Gc2RXVWdiWFZ6ZENCbGNYVmhiQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVqYjI1emRGMHBJRG9nSnljU253RUtBbXgwR0FJZ0FTZ0NRcEFCd2tpTUFRcUpBUW9JWm14dllYUXViSFFhZlNGb1lYTW9jblZzWlhNdVozUmxLU0FtSmlBaGFHRnpLSEoxYkdWekxtZDBLU0FtSmlBb2RHaHBjeTVwYzA1aGJpZ3BJSHg4SUhSb2FYTWdQajBnY25Wc1pYTXViSFFwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JzWlhOeklIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11YkhSZEtTQTZJQ2NuU0FBU3J3RUtBMngwWlJnRElBRW9Ba0tmQWNKSW13RUttQUVLQ1dac2IyRjBMbXgwWlJxS0FTRm9ZWE1vY25Wc1pYTXVaM1JsS1NBbUppQWhhR0Z6S0hKMWJHVnpMbWQwS1NBbUppQW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE1nUGlCeWRXeGxjeTVzZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXViSFJsWFNrZ09pQW5KMGdBRXU4SENnSm5kQmdFSUFFb0FrTGdCOEpJM0FjS2pRRUtDR1pzYjJGMExtZDBHb0FCSVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUNoMGFHbHpMbWx6VG1GdUtDa2dmSHdnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRGMHBJRG9nSnljS3d3RUtDMlpzYjJGMExtZDBYMngwR3JNQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBK1BTQnlkV3hsY3k1bmRDQW1KaUFvZEdocGN5NXBjMDVoYmlncElIeDhJSFJvYVhNZ1BqMGdjblZzWlhNdWJIUWdmSHdnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RGMHBJRG9nSnljS3pRRUtGV1pzYjJGMExtZDBYMngwWDJWNFkyeDFjMmwyWlJxekFXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ2NuVnNaWE11YkhRZ1BDQnlkV3hsY3k1bmRDQW1KaUFvZEdocGN5NXBjMDVoYmlncElIeDhJQ2h5ZFd4bGN5NXNkQ0E4UFNCMGFHbHpJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpJRzl5SUd4bGMzTWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRDd2djblZzWlhNdWJIUmRLU0E2SUNjbkN0TUJDZ3htYkc5aGRDNW5kRjlzZEdVYXdnRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQnlkV3hsY3k1c2RHVWdQajBnY25Wc1pYTXVaM1FnSmlZZ0tIUm9hWE11YVhOT1lXNG9LU0I4ZkNCMGFHbHpJRDRnY25Wc1pYTXViSFJsSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSbFhTa2dPaUFuSndyZEFRb1dabXh2WVhRdVozUmZiSFJsWDJWNFkyeDFjMmwyWlJyQ0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpMbWx6VG1GdUtDa2dmSHdnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FFU3VnZ0tBMmQwWlJnRklBRW9Ba0txQ01KSXBnZ0ttd0VLQ1dac2IyRjBMbWQwWlJxTkFTRm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlDRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbFhTa2dPaUFuSndyU0FRb01abXh2WVhRdVozUmxYMngwR3NFQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBK1BTQnlkV3hsY3k1bmRHVWdKaVlnS0hSb2FYTXVhWE5PWVc0b0tTQjhmQ0IwYUdseklENDlJSEoxYkdWekxteDBJSHg4SUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1VzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3JjQVFvV1pteHZZWFF1WjNSbFgyeDBYMlY0WTJ4MWMybDJaUnJCQVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUENCeWRXeGxjeTVuZEdVZ0ppWWdLSFJvYVhNdWFYTk9ZVzRvS1NCOGZDQW9jblZzWlhNdWJIUWdQRDBnZEdocGN5QW1KaUIwYUdseklEd2djblZzWlhNdVozUmxLU2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeUJ2Y2lCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkRjBwSURvZ0p5Y0s0Z0VLRFdac2IyRjBMbWQwWlY5c2RHVWEwQUZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUJ5ZFd4bGN5NXNkR1VnUGowZ2NuVnNaWE11WjNSbElDWW1JQ2gwYUdsekxtbHpUbUZ1S0NrZ2ZId2dkR2hwY3lBK0lISjFiR1Z6TG14MFpTQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3V3QkNoZG1iRzloZEM1bmRHVmZiSFJsWDJWNFkyeDFjMmwyWlJyUUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBaU0FtSmlBb2RHaHBjeTVwYzA1aGJpZ3BJSHg4SUNoeWRXeGxjeTVzZEdVZ1BDQjBhR2x6SUNZbUlIUm9hWE1nUENCeWRXeGxjeTVuZEdVcEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5ZElBUkoxQ2dKcGJoZ0dJQU1vQWtKcHdraG1DbVFLQ0dac2IyRjBMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5ZS0JtNXZkRjlwYmhnSElBTW9Ba0ptd2toakNtRUtER1pzYjJGMExtNXZkRjlwYmhwUmRHaHBjeUJwYmlCeWRXeGxjeTV1YjNSZmFXNGdQeUFuZG1Gc2RXVWdiWFZ6ZENCdWIzUWdZbVVnYVc0Z2JHbHpkQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTV1YjNSZmFXNWRLU0E2SUNjbkVuVUtCbVpwYm1sMFpSZ0lJQUVvQ0VKbHdraGlDbUFLREdac2IyRjBMbVpwYm1sMFpScFFjblZzWlhNdVptbHVhWFJsSUQ4Z0tIUm9hWE11YVhOT1lXNG9LU0I4ZkNCMGFHbHpMbWx6U1c1bUtDa2dQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm1hVzVwZEdVbklEb2dKeWNwSURvZ0p5Y1NLd29IWlhoaGJYQnNaUmdKSUFNb0FrSWF3a2dYQ2hVS0RXWnNiMkYwTG1WNFlXMXdiR1VhQkhSeWRXVXFDUWpvQnhDQWdJQ0FBa0lMQ2dsc1pYTnpYM1JvWVc1Q0Rnb01aM0psWVhSbGNsOTBhR0Z1SXNjWENndEViM1ZpYkdWU2RXeGxjeEpxQ2dWamIyNXpkQmdCSUFFb0FVSmJ3a2hZQ2xZS0RHUnZkV0pzWlM1amIyNXpkQnBHZEdocGN5QWhQU0J5ZFd4bGN5NWpiMjV6ZENBL0lDZDJZV3gxWlNCdGRYTjBJR1Z4ZFdGc0lDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtTnZibk4wWFNrZ09pQW5KeEtnQVFvQ2JIUVlBaUFCS0FGQ2tRSENTSTBCQ29vQkNnbGtiM1ZpYkdVdWJIUWFmU0ZvWVhNb2NuVnNaWE11WjNSbEtTQW1KaUFoYUdGektISjFiR1Z6TG1kMEtTQW1KaUFvZEdocGN5NXBjMDVoYmlncElIeDhJSFJvYVhNZ1BqMGdjblZzWlhNdWJIUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXViSFJkS1NBNklDY25TQUFTc0FFS0EyeDBaUmdESUFFb0FVS2dBY0pJbkFFS21RRUtDbVJ2ZFdKc1pTNXNkR1VhaWdFaGFHRnpLSEoxYkdWekxtZDBaU2tnSmlZZ0lXaGhjeWh5ZFd4bGN5NW5kQ2tnSmlZZ0tIUm9hWE11YVhOT1lXNG9LU0I4ZkNCMGFHbHpJRDRnY25Wc1pYTXViSFJsS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxteDBaVjBwSURvZ0p5ZElBQkwwQndvQ1ozUVlCQ0FCS0FGQzVRZkNTT0VIQ280QkNnbGtiM1ZpYkdVdVozUWFnQUVoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnS0hSb2FYTXVhWE5PWVc0b0tTQjhmQ0IwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFhTa2dPaUFuSndyRUFRb01aRzkxWW14bExtZDBYMngwR3JNQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBK1BTQnlkV3hsY3k1bmRDQW1KaUFvZEdocGN5NXBjMDVoYmlncElIeDhJSFJvYVhNZ1BqMGdjblZzWlhNdWJIUWdmSHdnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RGMHBJRG9nSnljS3pnRUtGbVJ2ZFdKc1pTNW5kRjlzZEY5bGVHTnNkWE5wZG1VYXN3Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElEd2djblZzWlhNdVozUWdKaVlnS0hSb2FYTXVhWE5PWVc0b0tTQjhmQ0FvY25Wc1pYTXViSFFnUEQwZ2RHaHBjeUFtSmlCMGFHbHpJRHc5SUhKMWJHVnpMbWQwS1NrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJ2Y2lCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUXNJSEoxYkdWekxteDBYU2tnT2lBbkp3clVBUW9OWkc5MVlteGxMbWQwWDJ4MFpSckNBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0ErUFNCeWRXeGxjeTVuZENBbUppQW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE1nUGlCeWRXeGxjeTVzZEdVZ2ZId2dkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCaGJtUWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjbkN0NEJDaGRrYjNWaWJHVXVaM1JmYkhSbFgyVjRZMngxYzJsMlpSckNBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0E4SUhKMWJHVnpMbWQwSUNZbUlDaDBhR2x6TG1selRtRnVLQ2tnZkh3Z0tISjFiR1Z6TG14MFpTQThJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDa3BQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVN2d2dLQTJkMFpSZ0ZJQUVvQVVLdkNNSklxd2dLbkFFS0NtUnZkV0pzWlM1bmRHVWFqUUVoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnS0hSb2FYTXVhWE5PWVc0b0tTQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaVjBwSURvZ0p5Y0swd0VLRFdSdmRXSnNaUzVuZEdWZmJIUWF3UUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE1nUGowZ2NuVnNaWE11YkhRZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmRLU0E2SUNjbkN0MEJDaGRrYjNWaWJHVXVaM1JsWDJ4MFgyVjRZMngxYzJsMlpSckJBV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdjblZzWlhNdWJIUWdQQ0J5ZFd4bGN5NW5kR1VnSmlZZ0tIUm9hWE11YVhOT1lXNG9LU0I4ZkNBb2NuVnNaWE11YkhRZ1BEMGdkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QnZjaUJzWlhOeklIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RGMHBJRG9nSnljSzR3RUtEbVJ2ZFdKc1pTNW5kR1ZmYkhSbEd0QUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE1nUGlCeWRXeGxjeTVzZEdVZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJsWFNrZ09pQW5Kd3J0QVFvWVpHOTFZbXhsTG1kMFpWOXNkR1ZmWlhoamJIVnphWFpsR3RBQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElEd2djblZzWlhNdVozUmxJQ1ltSUNoMGFHbHpMbWx6VG1GdUtDa2dmSHdnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmxYU2tnT2lBbkowZ0JFbllLQW1sdUdBWWdBeWdCUW1yQ1NHY0taUW9KWkc5MVlteGxMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5jS0JtNXZkRjlwYmhnSElBTW9BVUpud2toa0NtSUtEV1J2ZFdKc1pTNXViM1JmYVc0YVVYUm9hWE1nYVc0Z2NuVnNaWE11Ym05MFgybHVJRDhnSjNaaGJIVmxJRzExYzNRZ2JtOTBJR0psSUdsdUlHeHBjM1FnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11Ym05MFgybHVYU2tnT2lBbkp4SjJDZ1ptYVc1cGRHVVlDQ0FCS0FoQ1pzSklZd3BoQ2cxa2IzVmliR1V1Wm1sdWFYUmxHbEJ5ZFd4bGN5NW1hVzVwZEdVZ1B5QW9kR2hwY3k1cGMwNWhiaWdwSUh4OElIUm9hWE11YVhOSmJtWW9LU0EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR1pwYm1sMFpTY2dPaUFuSnlrZ09pQW5KeElzQ2dkbGVHRnRjR3hsR0FrZ0F5Z0JRaHZDU0JnS0Znb09aRzkxWW14bExtVjRZVzF3YkdVYUJIUnlkV1VxQ1Fqb0J4Q0FnSUNBQWtJTENnbHNaWE56WDNSb1lXNUNEZ29NWjNKbFlYUmxjbDkwYUdGdUl1Y1VDZ3BKYm5Rek1sSjFiR1Z6RW1rS0JXTnZibk4wR0FFZ0FTZ0ZRbHJDU0ZjS1ZRb0xhVzUwTXpJdVkyOXVjM1FhUm5Sb2FYTWdJVDBnY25Wc1pYTXVZMjl1YzNRZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JsY1hWaGJDQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NWpiMjV6ZEYwcElEb2dKeWNTaWdFS0FteDBHQUlnQVNnRlFuekNTSGtLZHdvSWFXNTBNekl1YkhRYWF5Rm9ZWE1vY25Wc1pYTXVaM1JsS1NBbUppQWhhR0Z6S0hKMWJHVnpMbWQwS1NBbUppQjBhR2x6SUQ0OUlISjFiR1Z6TG14MFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdWJIUmRLU0E2SUNjblNBQVNuQUVLQTJ4MFpSZ0RJQUVvQlVLTUFjSklpQUVLaFFFS0NXbHVkRE15TG14MFpScDRJV2hoY3loeWRXeGxjeTVuZEdVcElDWW1JQ0ZvWVhNb2NuVnNaWE11WjNRcElDWW1JSFJvYVhNZ1BpQnlkV3hsY3k1c2RHVS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FBU2x3Y0tBbWQwR0FRZ0FTZ0ZRb2dId2tpRUJ3cDZDZ2hwYm5Rek1pNW5kQnB1SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRGMHBJRG9nSnljS3N3RUtDMmx1ZERNeUxtZDBYMngwR3FNQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBK1BTQnlkV3hsY3k1bmRDQW1KaUFvZEdocGN5QStQU0J5ZFd4bGN5NXNkQ0I4ZkNCMGFHbHpJRHc5SUhKMWJHVnpMbWQwS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUXNJSEoxYkdWekxteDBYU2tnT2lBbkp3cTdBUW9WYVc1ME16SXVaM1JmYkhSZlpYaGpiSFZ6YVhabEdxRUJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQThJSEoxYkdWekxtZDBJQ1ltSUNoeWRXeGxjeTVzZENBOFBTQjBhR2x6SUNZbUlIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBMQ0J5ZFd4bGN5NXNkRjBwSURvZ0p5Y0t3d0VLREdsdWRETXlMbWQwWDJ4MFpScXlBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0ErUFNCeWRXeGxjeTVuZENBbUppQW9kR2hwY3lBK0lISjFiR1Z6TG14MFpTQjhmQ0IwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWeklHRnVaQ0JzWlhOeklIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUXNJSEoxYkdWekxteDBaVjBwSURvZ0p5Y0t5d0VLRm1sdWRETXlMbWQwWDJ4MFpWOWxlR05zZFhOcGRtVWFzQUZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUJ5ZFd4bGN5NXNkR1VnUENCeWRXeGxjeTVuZENBbUppQW9jblZzWlhNdWJIUmxJRHdnZEdocGN5QW1KaUIwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRDd2djblZzWlhNdWJIUmxYU2tnT2lBbkowZ0JFdU1IQ2dObmRHVVlCU0FCS0FWQzB3ZkNTTThIQ29nQkNnbHBiblF6TWk1bmRHVWFleUZvWVhNb2NuVnNaWE11YkhRcElDWW1JQ0ZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUIwYUdseklEd2djblZzWlhNdVozUmxQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxYU2tnT2lBbkp3ckNBUW9NYVc1ME16SXVaM1JsWDJ4MEdyRUJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQStQU0J5ZFd4bGN5NW5kR1VnSmlZZ0tIUm9hWE1nUGowZ2NuVnNaWE11YkhRZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmRLU0E2SUNjbkNzb0JDaFpwYm5Rek1pNW5kR1ZmYkhSZlpYaGpiSFZ6YVhabEdxOEJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhRZ1BEMGdkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFhTa2dPaUFuSndyU0FRb05hVzUwTXpJdVozUmxYMngwWlJyQUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQStQU0J5ZFd4bGN5NW5kR1VnSmlZZ0tIUm9hWE1nUGlCeWRXeGxjeTVzZEdVZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJsWFNrZ09pQW5Kd3JhQVFvWGFXNTBNekl1WjNSbFgyeDBaVjlsZUdOc2RYTnBkbVVhdmdGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVNkUW9DYVc0WUJpQURLQVZDYWNKSVpncGtDZ2hwYm5Rek1pNXBiaHBZSVNoMGFHbHpJR2x1SUdSNWJpaHlkV3hsY3lsYkoybHVKMTBwSUQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnYVc0Z2JHbHpkQ0FsY3ljdVptOXliV0YwS0Z0a2VXNG9jblZzWlhNcFd5ZHBiaWRkWFNrZ09pQW5KeEoyQ2dadWIzUmZhVzRZQnlBREtBVkNac0pJWXdwaENneHBiblF6TWk1dWIzUmZhVzRhVVhSb2FYTWdhVzRnY25Wc1pYTXVibTkwWDJsdUlEOGdKM1poYkhWbElHMTFjM1FnYm05MElHSmxJR2x1SUd4cGMzUWdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVibTkwWDJsdVhTa2dPaUFuSnhJckNnZGxlR0Z0Y0d4bEdBZ2dBeWdGUWhyQ1NCY0tGUW9OYVc1ME16SXVaWGhoYlhCc1pSb0VkSEoxWlNvSkNPZ0hFSUNBZ0lBQ1Fnc0tDV3hsYzNOZmRHaGhia0lPQ2d4bmNtVmhkR1Z5WDNSb1lXNGk1eFFLQ2tsdWREWTBVblZzWlhNU2FRb0ZZMjl1YzNRWUFTQUJLQU5DV3NKSVZ3cFZDZ3RwYm5RMk5DNWpiMjV6ZEJwR2RHaHBjeUFoUFNCeWRXeGxjeTVqYjI1emRDQS9JQ2QyWVd4MVpTQnRkWE4wSUdWeGRXRnNJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbU52Ym5OMFhTa2dPaUFuSnhLS0FRb0NiSFFZQWlBQktBTkNmTUpJZVFwM0NnaHBiblEyTkM1c2RCcHJJV2hoY3loeWRXeGxjeTVuZEdVcElDWW1JQ0ZvWVhNb2NuVnNaWE11WjNRcElDWW1JSFJvYVhNZ1BqMGdjblZzWlhNdWJIUS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NXNkRjBwSURvZ0p5ZElBQktjQVFvRGJIUmxHQU1nQVNnRFFvd0J3a2lJQVFxRkFRb0phVzUwTmpRdWJIUmxHbmdoYUdGektISjFiR1Z6TG1kMFpTa2dKaVlnSVdoaGN5aHlkV3hsY3k1bmRDa2dKaVlnZEdocGN5QStJSEoxYkdWekxteDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFCS1hCd29DWjNRWUJDQUJLQU5DaUFmQ1NJUUhDbm9LQ0dsdWREWTBMbWQwR200aGFHRnpLSEoxYkdWekxteDBLU0FtSmlBaGFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZEQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBYU2tnT2lBbkp3cXpBUW9MYVc1ME5qUXVaM1JmYkhRYW93Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25DcnNCQ2hWcGJuUTJOQzVuZEY5c2RGOWxlR05zZFhOcGRtVWFvUUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRHdnY25Wc1pYTXVaM1FnSmlZZ0tISjFiR1Z6TG14MElEdzlJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCdmNpQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3JEQVFvTWFXNTBOalF1WjNSZmJIUmxHcklCYUdGektISjFiR1Z6TG14MFpTa2dKaVlnY25Wc1pYTXViSFJsSUQ0OUlISjFiR1Z6TG1kMElDWW1JQ2gwYUdseklENGdjblZzWlhNdWJIUmxJSHg4SUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTWdZVzVrSUd4bGMzTWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJsWFNrZ09pQW5Kd3JMQVFvV2FXNTBOalF1WjNSZmJIUmxYMlY0WTJ4MWMybDJaUnF3QVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhKMWJHVnpMbXgwWlNBOElISjFiR1Z6TG1kMElDWW1JQ2h5ZFd4bGN5NXNkR1VnUENCMGFHbHpJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTWdiM0lnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBMQ0J5ZFd4bGN5NXNkR1ZkS1NBNklDY25TQUVTNHdjS0EyZDBaUmdGSUFFb0EwTFRCOEpJendjS2lBRUtDV2x1ZERZMExtZDBaUnA3SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1UvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1ZkS1NBNklDY25Dc0lCQ2d4cGJuUTJOQzVuZEdWZmJIUWFzUUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3lBK1BTQnlkV3hsY3k1c2RDQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkRjBwSURvZ0p5Y0t5Z0VLRm1sdWREWTBMbWQwWlY5c2RGOWxlR05zZFhOcGRtVWFyd0ZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRHdnY25Wc1pYTXVaM1JsSUNZbUlDaHlkV3hsY3k1c2RDQThQU0IwYUdseklDWW1JSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTWdiM0lnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmRLU0E2SUNjbkN0SUJDZzFwYm5RMk5DNW5kR1ZmYkhSbEdzQUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3lBK0lISjFiR1Z6TG14MFpTQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3RvQkNoZHBiblEyTkM1bmRHVmZiSFJsWDJWNFkyeDFjMmwyWlJxK0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhSbElEd2dkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5ZElBUkoxQ2dKcGJoZ0dJQU1vQTBKcHdraG1DbVFLQ0dsdWREWTBMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5ZS0JtNXZkRjlwYmhnSElBTW9BMEptd2toakNtRUtER2x1ZERZMExtNXZkRjlwYmhwUmRHaHBjeUJwYmlCeWRXeGxjeTV1YjNSZmFXNGdQeUFuZG1Gc2RXVWdiWFZ6ZENCdWIzUWdZbVVnYVc0Z2JHbHpkQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTV1YjNSZmFXNWRLU0E2SUNjbkVpc0tCMlY0WVcxd2JHVVlDU0FES0FOQ0dzSklGd29WQ2cxcGJuUTJOQzVsZUdGdGNHeGxHZ1IwY25WbEtna0k2QWNRZ0lDQWdBSkNDd29KYkdWemMxOTBhR0Z1UWc0S0RHZHlaV0YwWlhKZmRHaGhiaUw0RkFvTFZVbHVkRE15VW5Wc1pYTVNhZ29GWTI5dWMzUVlBU0FCS0ExQ1c4SklXQXBXQ2d4MWFXNTBNekl1WTI5dWMzUWFSblJvYVhNZ0lUMGdjblZzWlhNdVkyOXVjM1FnUHlBbmRtRnNkV1VnYlhWemRDQmxjWFZoYkNBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1amIyNXpkRjBwSURvZ0p5Y1Npd0VLQW14MEdBSWdBU2dOUW4zQ1NIb0tlQW9KZFdsdWRETXlMbXgwR21zaGFHRnpLSEoxYkdWekxtZDBaU2tnSmlZZ0lXaGhjeWh5ZFd4bGN5NW5kQ2tnSmlZZ2RHaHBjeUErUFNCeWRXeGxjeTVzZEQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14MFhTa2dPaUFuSjBnQUVwMEJDZ05zZEdVWUF5QUJLQTFDalFIQ1NJa0JDb1lCQ2dwMWFXNTBNekl1YkhSbEduZ2hhR0Z6S0hKMWJHVnpMbWQwWlNrZ0ppWWdJV2hoY3loeWRXeGxjeTVuZENrZ0ppWWdkR2hwY3lBK0lISjFiR1Z6TG14MFpUOGdKM1poYkhWbElHMTFjM1FnWW1VZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbXgwWlYwcElEb2dKeWRJQUJLY0J3b0NaM1FZQkNBQktBMUNqUWZDU0lrSENuc0tDWFZwYm5Rek1pNW5kQnB1SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRGMHBJRG9nSnljS3RBRUtESFZwYm5Rek1pNW5kRjlzZEJxakFXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ2NuVnNaWE11YkhRZ1BqMGdjblZzWlhNdVozUWdKaVlnS0hSb2FYTWdQajBnY25Wc1pYTXViSFFnZkh3Z2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJoYm1RZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBMQ0J5ZFd4bGN5NXNkRjBwSURvZ0p5Y0t2QUVLRm5WcGJuUXpNaTVuZEY5c2RGOWxlR05zZFhOcGRtVWFvUUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRHdnY25Wc1pYTXVaM1FnSmlZZ0tISjFiR1Z6TG14MElEdzlJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCdmNpQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3JFQVFvTmRXbHVkRE15TG1kMFgyeDBaUnF5QVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhKMWJHVnpMbXgwWlNBK1BTQnlkV3hsY3k1bmRDQW1KaUFvZEdocGN5QStJSEoxYkdWekxteDBaU0I4ZkNCMGFHbHpJRHc5SUhKMWJHVnpMbWQwS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWlYwcElEb2dKeWNLekFFS0YzVnBiblF6TWk1bmRGOXNkR1ZmWlhoamJIVnphWFpsR3JBQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElEd2djblZzWlhNdVozUWdKaVlnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJ2Y2lCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWlYwcElEb2dKeWRJQVJMb0J3b0RaM1JsR0FVZ0FTZ05RdGdId2tqVUJ3cUpBUW9LZFdsdWRETXlMbWQwWlJwN0lXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ0lXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlIUm9hWE1nUENCeWRXeGxjeTVuZEdVL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdWZEtTQTZJQ2NuQ3NNQkNnMTFhVzUwTXpJdVozUmxYMngwR3JFQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBK1BTQnlkV3hsY3k1bmRHVWdKaVlnS0hSb2FYTWdQajBnY25Wc1pYTXViSFFnZkh3Z2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCaGJtUWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwWlN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3NzQkNoZDFhVzUwTXpJdVozUmxYMngwWDJWNFkyeDFjMmwyWlJxdkFXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ2NuVnNaWE11YkhRZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwSUR3OUlIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLMHdFS0RuVnBiblF6TWk1bmRHVmZiSFJsR3NBQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElENDlJSEoxYkdWekxtZDBaU0FtSmlBb2RHaHBjeUErSUhKMWJHVnpMbXgwWlNCOGZDQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHRnVaQ0JzWlhOeklIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkR1ZkS1NBNklDY25DdHNCQ2hoMWFXNTBNekl1WjNSbFgyeDBaVjlsZUdOc2RYTnBkbVVhdmdGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVNkZ29DYVc0WUJpQURLQTFDYXNKSVp3cGxDZ2wxYVc1ME16SXVhVzRhV0NFb2RHaHBjeUJwYmlCa2VXNG9jblZzWlhNcFd5ZHBiaWRkS1NBL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdsdUlHeHBjM1FnSlhNbkxtWnZjbTFoZENoYlpIbHVLSEoxYkdWektWc25hVzRuWFYwcElEb2dKeWNTZHdvR2JtOTBYMmx1R0FjZ0F5Z05RbWZDU0dRS1lnb05kV2x1ZERNeUxtNXZkRjlwYmhwUmRHaHBjeUJwYmlCeWRXeGxjeTV1YjNSZmFXNGdQeUFuZG1Gc2RXVWdiWFZ6ZENCdWIzUWdZbVVnYVc0Z2JHbHpkQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTV1YjNSZmFXNWRLU0E2SUNjbkVpd0tCMlY0WVcxd2JHVVlDQ0FES0ExQ0c4SklHQW9XQ2c1MWFXNTBNekl1WlhoaGJYQnNaUm9FZEhKMVpTb0pDT2dIRUlDQWdJQUNRZ3NLQ1d4bGMzTmZkR2hoYmtJT0NneG5jbVZoZEdWeVgzUm9ZVzRpK0JRS0MxVkpiblEyTkZKMWJHVnpFbW9LQldOdmJuTjBHQUVnQVNnRVFsdkNTRmdLVmdvTWRXbHVkRFkwTG1OdmJuTjBHa1owYUdseklDRTlJSEoxYkdWekxtTnZibk4wSUQ4Z0ozWmhiSFZsSUcxMWMzUWdaWEYxWVd3Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVkyOXVjM1JkS1NBNklDY25Fb3NCQ2dKc2RCZ0NJQUVvQkVKOXdraDZDbmdLQ1hWcGJuUTJOQzVzZEJwcklXaGhjeWh5ZFd4bGN5NW5kR1VwSUNZbUlDRm9ZWE1vY25Wc1pYTXVaM1FwSUNZbUlIUm9hWE1nUGowZ2NuVnNaWE11YkhRL0lDZDJZV3gxWlNCdGRYTjBJR0psSUd4bGMzTWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1c2RGMHBJRG9nSnlkSUFCS2RBUW9EYkhSbEdBTWdBU2dFUW8wQndraUpBUXFHQVFvS2RXbHVkRFkwTG14MFpScDRJV2hoY3loeWRXeGxjeTVuZEdVcElDWW1JQ0ZvWVhNb2NuVnNaWE11WjNRcElDWW1JSFJvYVhNZ1BpQnlkV3hsY3k1c2RHVS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FBU25BY0tBbWQwR0FRZ0FTZ0VRbzBId2tpSkJ3cDdDZ2wxYVc1ME5qUXVaM1FhYmlGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUNGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCMGFHbHpJRHc5SUhKMWJHVnpMbWQwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmRLU0E2SUNjbkNyUUJDZ3gxYVc1ME5qUXVaM1JmYkhRYW93Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25DcndCQ2haMWFXNTBOalF1WjNSZmJIUmZaWGhqYkhWemFYWmxHcUVCYUdGektISjFiR1Z6TG14MEtTQW1KaUJ5ZFd4bGN5NXNkQ0E4SUhKMWJHVnpMbWQwSUNZbUlDaHlkV3hsY3k1c2RDQThQU0IwYUdseklDWW1JSFJvYVhNZ1BEMGdjblZzWlhNdVozUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLeEFFS0RYVnBiblEyTkM1bmRGOXNkR1Vhc2dGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BqMGdjblZzWlhNdVozUWdKaVlnS0hSb2FYTWdQaUJ5ZFd4bGN5NXNkR1VnZkh3Z2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJoYm1RZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3N3QkNoZDFhVzUwTmpRdVozUmZiSFJsWDJWNFkyeDFjMmwyWlJxd0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBJQ1ltSUNoeWRXeGxjeTVzZEdVZ1BDQjBhR2x6SUNZbUlIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FFUzZBY0tBMmQwWlJnRklBRW9CRUxZQjhKSTFBY0tpUUVLQ25WcGJuUTJOQzVuZEdVYWV5Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlDRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbFhTa2dPaUFuSndyREFRb05kV2x1ZERZMExtZDBaVjlzZEJxeEFXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ2NuVnNaWE11YkhRZ1BqMGdjblZzWlhNdVozUmxJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ1lXNWtJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFhTa2dPaUFuSndyTEFRb1hkV2x1ZERZMExtZDBaVjlzZEY5bGVHTnNkWE5wZG1VYXJ3Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElEd2djblZzWlhNdVozUmxJQ1ltSUNoeWRXeGxjeTVzZENBOFBTQjBhR2x6SUNZbUlIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwWlN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3RNQkNnNTFhVzUwTmpRdVozUmxYMngwWlJyQUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQStQU0J5ZFd4bGN5NW5kR1VnSmlZZ0tIUm9hWE1nUGlCeWRXeGxjeTVzZEdVZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJsWFNrZ09pQW5Kd3JiQVFvWWRXbHVkRFkwTG1kMFpWOXNkR1ZmWlhoamJIVnphWFpsR3I0QmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElEd2djblZzWlhNdVozUmxJQ1ltSUNoeWRXeGxjeTVzZEdVZ1BDQjBhR2x6SUNZbUlIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmxYU2tnT2lBbkowZ0JFbllLQW1sdUdBWWdBeWdFUW1yQ1NHY0taUW9KZFdsdWREWTBMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5jS0JtNXZkRjlwYmhnSElBTW9CRUpud2toa0NtSUtEWFZwYm5RMk5DNXViM1JmYVc0YVVYUm9hWE1nYVc0Z2NuVnNaWE11Ym05MFgybHVJRDhnSjNaaGJIVmxJRzExYzNRZ2JtOTBJR0psSUdsdUlHeHBjM1FnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11Ym05MFgybHVYU2tnT2lBbkp4SXNDZ2RsZUdGdGNHeGxHQWdnQXlnRVFodkNTQmdLRmdvT2RXbHVkRFkwTG1WNFlXMXdiR1VhQkhSeWRXVXFDUWpvQnhDQWdJQ0FBa0lMQ2dsc1pYTnpYM1JvWVc1Q0Rnb01aM0psWVhSbGNsOTBhR0Z1SXZnVUNndFRTVzUwTXpKU2RXeGxjeEpxQ2dWamIyNXpkQmdCSUFFb0VVSmJ3a2hZQ2xZS0RITnBiblF6TWk1amIyNXpkQnBHZEdocGN5QWhQU0J5ZFd4bGN5NWpiMjV6ZENBL0lDZDJZV3gxWlNCdGRYTjBJR1Z4ZFdGc0lDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtTnZibk4wWFNrZ09pQW5KeEtMQVFvQ2JIUVlBaUFCS0JGQ2ZjSkllZ3A0Q2dsemFXNTBNekl1YkhRYWF5Rm9ZWE1vY25Wc1pYTXVaM1JsS1NBbUppQWhhR0Z6S0hKMWJHVnpMbWQwS1NBbUppQjBhR2x6SUQ0OUlISjFiR1Z6TG14MFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdWJIUmRLU0E2SUNjblNBQVNuUUVLQTJ4MFpSZ0RJQUVvRVVLTkFjSklpUUVLaGdFS0NuTnBiblF6TWk1c2RHVWFlQ0ZvWVhNb2NuVnNaWE11WjNSbEtTQW1KaUFoYUdGektISjFiR1Z6TG1kMEtTQW1KaUIwYUdseklENGdjblZzWlhNdWJIUmxQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11YkhSbFhTa2dPaUFuSjBnQUVwd0hDZ0puZEJnRUlBRW9FVUtOQjhKSWlRY0tld29KYzJsdWRETXlMbWQwR200aGFHRnpLSEoxYkdWekxteDBLU0FtSmlBaGFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZEQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBYU2tnT2lBbkp3cTBBUW9NYzJsdWRETXlMbWQwWDJ4MEdxTUJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQStQU0J5ZFd4bGN5NW5kQ0FtSmlBb2RHaHBjeUErUFNCeWRXeGxjeTVzZENCOGZDQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3E4QVFvV2MybHVkRE15TG1kMFgyeDBYMlY0WTJ4MWMybDJaUnFoQVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUENCeWRXeGxjeTVuZENBbUppQW9jblZzWlhNdWJIUWdQRDBnZEdocGN5QW1KaUIwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3NRQkNnMXphVzUwTXpJdVozUmZiSFJsR3JJQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDRnY25Wc1pYTXViSFJsSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSbFhTa2dPaUFuSndyTUFRb1hjMmx1ZERNeUxtZDBYMngwWlY5bGVHTnNkWE5wZG1VYXNBRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQnlkV3hsY3k1c2RHVWdQQ0J5ZFd4bGN5NW5kQ0FtSmlBb2NuVnNaWE11YkhSbElEd2dkR2hwY3lBbUppQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUc5eUlHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSbFhTa2dPaUFuSjBnQkV1Z0hDZ05uZEdVWUJTQUJLQkZDMkFmQ1NOUUhDb2tCQ2dwemFXNTBNekl1WjNSbEduc2hhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQWhhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdkR2hwY3lBOElISjFiR1Z6TG1kMFpUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpWMHBJRG9nSnljS3d3RUtEWE5wYm5Rek1pNW5kR1ZmYkhRYXNRRm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBaU0FtSmlBb2RHaHBjeUErUFNCeWRXeGxjeTVzZENCOGZDQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHRnVaQ0JzWlhOeklIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RGMHBJRG9nSnljS3l3RUtGM05wYm5Rek1pNW5kR1ZmYkhSZlpYaGpiSFZ6YVhabEdxOEJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhRZ1BEMGdkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFhTa2dPaUFuSndyVEFRb09jMmx1ZERNeUxtZDBaVjlzZEdVYXdBRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQnlkV3hsY3k1c2RHVWdQajBnY25Wc1pYTXVaM1JsSUNZbUlDaDBhR2x6SUQ0Z2NuVnNaWE11YkhSbElIeDhJSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTWdZVzVrSUd4bGMzTWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1VzSUhKMWJHVnpMbXgwWlYwcElEb2dKeWNLMndFS0dITnBiblF6TWk1bmRHVmZiSFJsWDJWNFkyeDFjMmwyWlJxK0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhSbElEd2dkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5ZElBUkoyQ2dKcGJoZ0dJQU1vRVVKcXdraG5DbVVLQ1hOcGJuUXpNaTVwYmhwWUlTaDBhR2x6SUdsdUlHUjViaWh5ZFd4bGN5bGJKMmx1SjEwcElEOGdKM1poYkhWbElHMTFjM1FnWW1VZ2FXNGdiR2x6ZENBbGN5Y3VabTl5YldGMEtGdGtlVzRvY25Wc1pYTXBXeWRwYmlkZFhTa2dPaUFuSnhKM0NnWnViM1JmYVc0WUJ5QURLQkZDWjhKSVpBcGlDZzF6YVc1ME16SXVibTkwWDJsdUdsRjBhR2x6SUdsdUlISjFiR1Z6TG01dmRGOXBiaUEvSUNkMllXeDFaU0J0ZFhOMElHNXZkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG01dmRGOXBibDBwSURvZ0p5Y1NMQW9IWlhoaGJYQnNaUmdJSUFNb0VVSWJ3a2dZQ2hZS0RuTnBiblF6TWk1bGVHRnRjR3hsR2dSMGNuVmxLZ2tJNkFjUWdJQ0FnQUpDQ3dvSmJHVnpjMTkwYUdGdVFnNEtER2R5WldGMFpYSmZkR2hoYmlMNEZBb0xVMGx1ZERZMFVuVnNaWE1TYWdvRlkyOXVjM1FZQVNBQktCSkNXOEpJV0FwV0NneHphVzUwTmpRdVkyOXVjM1FhUm5Sb2FYTWdJVDBnY25Wc1pYTXVZMjl1YzNRZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JsY1hWaGJDQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NWpiMjV6ZEYwcElEb2dKeWNTaXdFS0FteDBHQUlnQVNnU1FuM0NTSG9LZUFvSmMybHVkRFkwTG14MEdtc2hhR0Z6S0hKMWJHVnpMbWQwWlNrZ0ppWWdJV2hoY3loeWRXeGxjeTVuZENrZ0ppWWdkR2hwY3lBK1BTQnlkV3hsY3k1c2REOGdKM1poYkhWbElHMTFjM1FnWW1VZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxteDBYU2tnT2lBbkowZ0FFcDBCQ2dOc2RHVVlBeUFCS0JKQ2pRSENTSWtCQ29ZQkNncHphVzUwTmpRdWJIUmxHbmdoYUdGektISjFiR1Z6TG1kMFpTa2dKaVlnSVdoaGN5aHlkV3hsY3k1bmRDa2dKaVlnZEdocGN5QStJSEoxYkdWekxteDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFCS2NCd29DWjNRWUJDQUJLQkpDalFmQ1NJa0hDbnNLQ1hOcGJuUTJOQzVuZEJwdUlXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ0lXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlIUm9hWE1nUEQwZ2NuVnNaWE11WjNRL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kRjBwSURvZ0p5Y0t0QUVLREhOcGJuUTJOQzVuZEY5c2RCcWpBV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdjblZzWlhNdWJIUWdQajBnY25Wc1pYTXVaM1FnSmlZZ0tIUm9hWE1nUGowZ2NuVnNaWE11YkhRZ2ZId2dkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCaGJtUWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLdkFFS0ZuTnBiblEyTkM1bmRGOXNkRjlsZUdOc2RYTnBkbVVhb1FGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUR3Z2NuVnNaWE11WjNRZ0ppWWdLSEoxYkdWekxteDBJRHc5SUhSb2FYTWdKaVlnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5QnZjaUJzWlhOeklIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFhTa2dPaUFuSndyRUFRb05jMmx1ZERZMExtZDBYMngwWlJxeUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQStQU0J5ZFd4bGN5NW5kQ0FtSmlBb2RHaHBjeUErSUhKMWJHVnpMbXgwWlNCOGZDQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFpWMHBJRG9nSnljS3pBRUtGM05wYm5RMk5DNW5kRjlzZEdWZlpYaGpiSFZ6YVhabEdyQUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRHdnY25Wc1pYTXVaM1FnSmlZZ0tISjFiR1Z6TG14MFpTQThJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFSTG9Cd29EWjNSbEdBVWdBU2dTUXRnSHdralVCd3FKQVFvS2MybHVkRFkwTG1kMFpScDdJV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdJV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVmRLU0E2SUNjbkNzTUJDZzF6YVc1ME5qUXVaM1JsWDJ4MEdyRUJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQStQU0J5ZFd4bGN5NW5kR1VnSmlZZ0tIUm9hWE1nUGowZ2NuVnNaWE11YkhRZ2ZId2dkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMFpTd2djblZzWlhNdWJIUmRLU0E2SUNjbkNzc0JDaGR6YVc1ME5qUXVaM1JsWDJ4MFgyVjRZMngxYzJsMlpScXZBV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdjblZzWlhNdWJIUWdQQ0J5ZFd4bGN5NW5kR1VnSmlZZ0tISjFiR1Z6TG14MElEdzlJSFJvYVhNZ0ppWWdkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QnZjaUJzWlhOeklIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RGMHBJRG9nSnljSzB3RUtEbk5wYm5RMk5DNW5kR1ZmYkhSbEdzQUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3lBK0lISjFiR1Z6TG14MFpTQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3RzQkNoaHphVzUwTmpRdVozUmxYMngwWlY5bGVHTnNkWE5wZG1VYXZnRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQnlkV3hsY3k1c2RHVWdQQ0J5ZFd4bGN5NW5kR1VnSmlZZ0tISjFiR1Z6TG14MFpTQThJSFJvYVhNZ0ppWWdkR2hwY3lBOElISjFiR1Z6TG1kMFpTay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5QnZjaUJzWlhOeklIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkR1ZkS1NBNklDY25TQUVTZGdvQ2FXNFlCaUFES0JKQ2FzSklad3BsQ2dsemFXNTBOalF1YVc0YVdDRW9kR2hwY3lCcGJpQmtlVzRvY25Wc1pYTXBXeWRwYmlkZEtTQS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHbHVJR3hwYzNRZ0pYTW5MbVp2Y20xaGRDaGJaSGx1S0hKMWJHVnpLVnNuYVc0blhWMHBJRG9nSnljU2R3b0dibTkwWDJsdUdBY2dBeWdTUW1mQ1NHUUtZZ29OYzJsdWREWTBMbTV2ZEY5cGJocFJkR2hwY3lCcGJpQnlkV3hsY3k1dWIzUmZhVzRnUHlBbmRtRnNkV1VnYlhWemRDQnViM1FnWW1VZ2FXNGdiR2x6ZENBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1dWIzUmZhVzVkS1NBNklDY25FaXdLQjJWNFlXMXdiR1VZQ0NBREtCSkNHOEpJR0FvV0NnNXphVzUwTmpRdVpYaGhiWEJzWlJvRWRISjFaU29KQ09nSEVJQ0FnSUFDUWdzS0NXeGxjM05mZEdoaGJrSU9DZ3huY21WaGRHVnlYM1JvWVc0aWlSVUtERVpwZUdWa016SlNkV3hsY3hKckNnVmpiMjV6ZEJnQklBRW9CMEpjd2toWkNsY0tEV1pwZUdWa016SXVZMjl1YzNRYVJuUm9hWE1nSVQwZ2NuVnNaWE11WTI5dWMzUWdQeUFuZG1Gc2RXVWdiWFZ6ZENCbGNYVmhiQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVqYjI1emRGMHBJRG9nSnljU2pBRUtBbXgwR0FJZ0FTZ0hRbjdDU0hzS2VRb0tabWw0WldRek1pNXNkQnBySVdoaGN5aHlkV3hsY3k1bmRHVXBJQ1ltSUNGb1lYTW9jblZzWlhNdVozUXBJQ1ltSUhSb2FYTWdQajBnY25Wc1pYTXViSFEvSUNkMllXeDFaU0J0ZFhOMElHSmxJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEYwcElEb2dKeWRJQUJLZUFRb0RiSFJsR0FNZ0FTZ0hRbzRCd2tpS0FRcUhBUW9MWm1sNFpXUXpNaTVzZEdVYWVDRm9ZWE1vY25Wc1pYTXVaM1JsS1NBbUppQWhhR0Z6S0hKMWJHVnpMbWQwS1NBbUppQjBhR2x6SUQ0Z2NuVnNaWE11YkhSbFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXViSFJsWFNrZ09pQW5KMGdBRXFFSENnSm5kQmdFSUFFb0IwS1NCOEpJamdjS2ZBb0tabWw0WldRek1pNW5kQnB1SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRGMHBJRG9nSnljS3RRRUtEV1pwZUdWa016SXVaM1JmYkhRYW93Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25DcjBCQ2hkbWFYaGxaRE15TG1kMFgyeDBYMlY0WTJ4MWMybDJaUnFoQVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUENCeWRXeGxjeTVuZENBbUppQW9jblZzWlhNdWJIUWdQRDBnZEdocGN5QW1KaUIwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3NVQkNnNW1hWGhsWkRNeUxtZDBYMngwWlJxeUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQStQU0J5ZFd4bGN5NW5kQ0FtSmlBb2RHaHBjeUErSUhKMWJHVnpMbXgwWlNCOGZDQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFpWMHBJRG9nSnljS3pRRUtHR1pwZUdWa016SXVaM1JmYkhSbFgyVjRZMngxYzJsMlpScXdBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0E4SUhKMWJHVnpMbWQwSUNZbUlDaHlkV3hsY3k1c2RHVWdQQ0IwYUdseklDWW1JSFJvYVhNZ1BEMGdjblZzWlhNdVozUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVM3UWNLQTJkMFpSZ0ZJQUVvQjBMZEI4SkkyUWNLaWdFS0MyWnBlR1ZrTXpJdVozUmxHbnNoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnZEdocGN5QThJSEoxYkdWekxtZDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaVjBwSURvZ0p5Y0t4QUVLRG1acGVHVmtNekl1WjNSbFgyeDBHckVCYUdGektISjFiR1Z6TG14MEtTQW1KaUJ5ZFd4bGN5NXNkQ0ErUFNCeWRXeGxjeTVuZEdVZ0ppWWdLSFJvYVhNZ1BqMGdjblZzWlhNdWJIUWdmSHdnZEdocGN5QThJSEoxYkdWekxtZDBaU2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeUJoYm1RZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJkS1NBNklDY25Dc3dCQ2hobWFYaGxaRE15TG1kMFpWOXNkRjlsZUdOc2RYTnBkbVVhcndGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUR3Z2NuVnNaWE11WjNSbElDWW1JQ2h5ZFd4bGN5NXNkQ0E4UFNCMGFHbHpJQ1ltSUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJkS1NBNklDY25DdFFCQ2c5bWFYaGxaRE15TG1kMFpWOXNkR1Vhd0FGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BqMGdjblZzWlhNdVozUmxJQ1ltSUNoMGFHbHpJRDRnY25Wc1pYTXViSFJsSUh4OElIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ1lXNWtJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5Y0szQUVLR1dacGVHVmtNekl1WjNSbFgyeDBaVjlsZUdOc2RYTnBkbVVhdmdGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVNkd29DYVc0WUJpQURLQWRDYThKSWFBcG1DZ3BtYVhobFpETXlMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5nS0JtNXZkRjlwYmhnSElBTW9CMEpvd2tobENtTUtEbVpwZUdWa016SXVibTkwWDJsdUdsRjBhR2x6SUdsdUlISjFiR1Z6TG01dmRGOXBiaUEvSUNkMllXeDFaU0J0ZFhOMElHNXZkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG01dmRGOXBibDBwSURvZ0p5Y1NMUW9IWlhoaGJYQnNaUmdJSUFNb0IwSWN3a2daQ2hjS0QyWnBlR1ZrTXpJdVpYaGhiWEJzWlJvRWRISjFaU29KQ09nSEVJQ0FnSUFDUWdzS0NXeGxjM05mZEdoaGJrSU9DZ3huY21WaGRHVnlYM1JvWVc0aWlSVUtERVpwZUdWa05qUlNkV3hsY3hKckNnVmpiMjV6ZEJnQklBRW9Ca0pjd2toWkNsY0tEV1pwZUdWa05qUXVZMjl1YzNRYVJuUm9hWE1nSVQwZ2NuVnNaWE11WTI5dWMzUWdQeUFuZG1Gc2RXVWdiWFZ6ZENCbGNYVmhiQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVqYjI1emRGMHBJRG9nSnljU2pBRUtBbXgwR0FJZ0FTZ0dRbjdDU0hzS2VRb0tabWw0WldRMk5DNXNkQnBySVdoaGN5aHlkV3hsY3k1bmRHVXBJQ1ltSUNGb1lYTW9jblZzWlhNdVozUXBJQ1ltSUhSb2FYTWdQajBnY25Wc1pYTXViSFEvSUNkMllXeDFaU0J0ZFhOMElHSmxJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEYwcElEb2dKeWRJQUJLZUFRb0RiSFJsR0FNZ0FTZ0dRbzRCd2tpS0FRcUhBUW9MWm1sNFpXUTJOQzVzZEdVYWVDRm9ZWE1vY25Wc1pYTXVaM1JsS1NBbUppQWhhR0Z6S0hKMWJHVnpMbWQwS1NBbUppQjBhR2x6SUQ0Z2NuVnNaWE11YkhSbFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXViSFJsWFNrZ09pQW5KMGdBRXFFSENnSm5kQmdFSUFFb0JrS1NCOEpJamdjS2ZBb0tabWw0WldRMk5DNW5kQnB1SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRGMHBJRG9nSnljS3RRRUtEV1pwZUdWa05qUXVaM1JmYkhRYW93Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25DcjBCQ2hkbWFYaGxaRFkwTG1kMFgyeDBYMlY0WTJ4MWMybDJaUnFoQVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUENCeWRXeGxjeTVuZENBbUppQW9jblZzWlhNdWJIUWdQRDBnZEdocGN5QW1KaUIwYUdseklEdzlJSEoxYkdWekxtZDBLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3NVQkNnNW1hWGhsWkRZMExtZDBYMngwWlJxeUFXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQStQU0J5ZFd4bGN5NW5kQ0FtSmlBb2RHaHBjeUErSUhKMWJHVnpMbXgwWlNCOGZDQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFpWMHBJRG9nSnljS3pRRUtHR1pwZUdWa05qUXVaM1JmYkhSbFgyVjRZMngxYzJsMlpScXdBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0E4SUhKMWJHVnpMbWQwSUNZbUlDaHlkV3hsY3k1c2RHVWdQQ0IwYUdseklDWW1JSFJvYVhNZ1BEMGdjblZzWlhNdVozUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVM3UWNLQTJkMFpSZ0ZJQUVvQmtMZEI4SkkyUWNLaWdFS0MyWnBlR1ZrTmpRdVozUmxHbnNoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnZEdocGN5QThJSEoxYkdWekxtZDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaVjBwSURvZ0p5Y0t4QUVLRG1acGVHVmtOalF1WjNSbFgyeDBHckVCYUdGektISjFiR1Z6TG14MEtTQW1KaUJ5ZFd4bGN5NXNkQ0ErUFNCeWRXeGxjeTVuZEdVZ0ppWWdLSFJvYVhNZ1BqMGdjblZzWlhNdWJIUWdmSHdnZEdocGN5QThJSEoxYkdWekxtZDBaU2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeUJoYm1RZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJkS1NBNklDY25Dc3dCQ2hobWFYaGxaRFkwTG1kMFpWOXNkRjlsZUdOc2RYTnBkbVVhcndGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUR3Z2NuVnNaWE11WjNSbElDWW1JQ2h5ZFd4bGN5NXNkQ0E4UFNCMGFHbHpJQ1ltSUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJkS1NBNklDY25DdFFCQ2c5bWFYaGxaRFkwTG1kMFpWOXNkR1Vhd0FGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BqMGdjblZzWlhNdVozUmxJQ1ltSUNoMGFHbHpJRDRnY25Wc1pYTXViSFJsSUh4OElIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ1lXNWtJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5Y0szQUVLR1dacGVHVmtOalF1WjNSbFgyeDBaVjlsZUdOc2RYTnBkbVVhdmdGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwWlNBOElIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSbExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVNkd29DYVc0WUJpQURLQVpDYThKSWFBcG1DZ3BtYVhobFpEWTBMbWx1R2xnaEtIUm9hWE1nYVc0Z1pIbHVLSEoxYkdWektWc25hVzRuWFNrZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1cyUjViaWh5ZFd4bGN5bGJKMmx1SjExZEtTQTZJQ2NuRW5nS0JtNXZkRjlwYmhnSElBTW9Ca0pvd2tobENtTUtEbVpwZUdWa05qUXVibTkwWDJsdUdsRjBhR2x6SUdsdUlISjFiR1Z6TG01dmRGOXBiaUEvSUNkMllXeDFaU0J0ZFhOMElHNXZkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG01dmRGOXBibDBwSURvZ0p5Y1NMUW9IWlhoaGJYQnNaUmdJSUFNb0JrSWN3a2daQ2hjS0QyWnBlR1ZrTmpRdVpYaGhiWEJzWlJvRWRISjFaU29KQ09nSEVJQ0FnSUFDUWdzS0NXeGxjM05mZEdoaGJrSU9DZ3huY21WaGRHVnlYM1JvWVc0aW1oVUtEVk5HYVhobFpETXlVblZzWlhNU2JBb0ZZMjl1YzNRWUFTQUJLQTlDWGNKSVdncFlDZzV6Wm1sNFpXUXpNaTVqYjI1emRCcEdkR2hwY3lBaFBTQnlkV3hsY3k1amIyNXpkQ0EvSUNkMllXeDFaU0J0ZFhOMElHVnhkV0ZzSUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1OdmJuTjBYU2tnT2lBbkp4S05BUW9DYkhRWUFpQUJLQTlDZjhKSWZBcDZDZ3R6Wm1sNFpXUXpNaTVzZEJwcklXaGhjeWh5ZFd4bGN5NW5kR1VwSUNZbUlDRm9ZWE1vY25Wc1pYTXVaM1FwSUNZbUlIUm9hWE1nUGowZ2NuVnNaWE11YkhRL0lDZDJZV3gxWlNCdGRYTjBJR0psSUd4bGMzTWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1c2RGMHBJRG9nSnlkSUFCS2ZBUW9EYkhSbEdBTWdBU2dQUW84QndraUxBUXFJQVFvTWMyWnBlR1ZrTXpJdWJIUmxHbmdoYUdGektISjFiR1Z6TG1kMFpTa2dKaVlnSVdoaGN5aHlkV3hsY3k1bmRDa2dKaVlnZEdocGN5QStJSEoxYkdWekxteDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFCS21Cd29DWjNRWUJDQUJLQTlDbHdmQ1NKTUhDbjBLQzNObWFYaGxaRE15TG1kMEdtNGhhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQWhhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmREOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwWFNrZ09pQW5Kd3EyQVFvT2MyWnBlR1ZrTXpJdVozUmZiSFFhb3dGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUQ0OUlISjFiR1Z6TG1kMElDWW1JQ2gwYUdseklENDlJSEoxYkdWekxteDBJSHg4SUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTWdZVzVrSUd4bGMzTWdkR2hoYmlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRDd2djblZzWlhNdWJIUmRLU0E2SUNjbkNyNEJDaGh6Wm1sNFpXUXpNaTVuZEY5c2RGOWxlR05zZFhOcGRtVWFvUUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRHdnY25Wc1pYTXVaM1FnSmlZZ0tISjFiR1Z6TG14MElEdzlJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCdmNpQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1FzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3JHQVFvUGMyWnBlR1ZrTXpJdVozUmZiSFJsR3JJQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDRnY25Wc1pYTXViSFJsSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSbFhTa2dPaUFuSndyT0FRb1pjMlpwZUdWa016SXVaM1JmYkhSbFgyVjRZMngxYzJsMlpScXdBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0E4SUhKMWJHVnpMbWQwSUNZbUlDaHlkV3hsY3k1c2RHVWdQQ0IwYUdseklDWW1JSFJvYVhNZ1BEMGdjblZzWlhNdVozUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RHVmRLU0E2SUNjblNBRVM4Z2NLQTJkMFpSZ0ZJQUVvRDBMaUI4SkkzZ2NLaXdFS0RITm1hWGhsWkRNeUxtZDBaUnA3SVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnSVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1UvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1ZkS1NBNklDY25Dc1VCQ2c5elptbDRaV1F6TWk1bmRHVmZiSFFhc1FGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUQ0OUlISjFiR1Z6TG1kMFpTQW1KaUFvZEdocGN5QStQU0J5ZFd4bGN5NXNkQ0I4ZkNCMGFHbHpJRHdnY25Wc1pYTXVaM1JsS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLelFFS0dYTm1hWGhsWkRNeUxtZDBaVjlzZEY5bGVHTnNkWE5wZG1VYXJ3Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElEd2djblZzWlhNdVozUmxJQ1ltSUNoeWRXeGxjeTVzZENBOFBTQjBhR2x6SUNZbUlIUm9hWE1nUENCeWRXeGxjeTVuZEdVcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNZ2IzSWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwWlN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3RVQkNoQnpabWw0WldRek1pNW5kR1ZmYkhSbEdzQUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3lBK0lISjFiR1Z6TG14MFpTQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3QwQkNocHpabWw0WldRek1pNW5kR1ZmYkhSbFgyVjRZMngxYzJsMlpScStBV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSEoxYkdWekxteDBaU0E4SUhKMWJHVnpMbWQwWlNBbUppQW9jblZzWlhNdWJIUmxJRHdnZEdocGN5QW1KaUIwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJRzl5SUd4bGMzTWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1VzSUhKMWJHVnpMbXgwWlYwcElEb2dKeWRJQVJKNENnSnBiaGdHSUFNb0QwSnN3a2hwQ21jS0MzTm1hWGhsWkRNeUxtbHVHbGdoS0hSb2FYTWdhVzRnWkhsdUtISjFiR1Z6S1ZzbmFXNG5YU2tnUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JwYmlCc2FYTjBJQ1Z6Snk1bWIzSnRZWFFvVzJSNWJpaHlkV3hsY3lsYkoybHVKMTFkS1NBNklDY25FbmtLQm01dmRGOXBiaGdISUFNb0QwSnB3a2htQ21RS0QzTm1hWGhsWkRNeUxtNXZkRjlwYmhwUmRHaHBjeUJwYmlCeWRXeGxjeTV1YjNSZmFXNGdQeUFuZG1Gc2RXVWdiWFZ6ZENCdWIzUWdZbVVnYVc0Z2JHbHpkQ0FsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTV1YjNSZmFXNWRLU0E2SUNjbkVpNEtCMlY0WVcxd2JHVVlDQ0FES0E5Q0hjSklHZ29ZQ2hCelptbDRaV1F6TWk1bGVHRnRjR3hsR2dSMGNuVmxLZ2tJNkFjUWdJQ0FnQUpDQ3dvSmJHVnpjMTkwYUdGdVFnNEtER2R5WldGMFpYSmZkR2hoYmlLYUZRb05VMFpwZUdWa05qUlNkV3hsY3hKc0NnVmpiMjV6ZEJnQklBRW9FRUpkd2toYUNsZ0tEbk5tYVhobFpEWTBMbU52Ym5OMEdrWjBhR2x6SUNFOUlISjFiR1Z6TG1OdmJuTjBJRDhnSjNaaGJIVmxJRzExYzNRZ1pYRjFZV3dnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WTI5dWMzUmRLU0E2SUNjbkVvMEJDZ0pzZEJnQ0lBRW9FRUovd2toOENub0tDM05tYVhobFpEWTBMbXgwR21zaGFHRnpLSEoxYkdWekxtZDBaU2tnSmlZZ0lXaGhjeWh5ZFd4bGN5NW5kQ2tnSmlZZ2RHaHBjeUErUFNCeWRXeGxjeTVzZEQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14MFhTa2dPaUFuSjBnQUVwOEJDZ05zZEdVWUF5QUJLQkJDandIQ1NJc0JDb2dCQ2d4elptbDRaV1EyTkM1c2RHVWFlQ0ZvWVhNb2NuVnNaWE11WjNSbEtTQW1KaUFoYUdGektISjFiR1Z6TG1kMEtTQW1KaUIwYUdseklENGdjblZzWlhNdWJIUmxQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11YkhSbFhTa2dPaUFuSjBnQUVxWUhDZ0puZEJnRUlBRW9FRUtYQjhKSWt3Y0tmUW9MYzJacGVHVmtOalF1WjNRYWJpRm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlDRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQjBhR2x6SUR3OUlISjFiR1Z6TG1kMFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JkS1NBNklDY25DcllCQ2c1elptbDRaV1EyTkM1bmRGOXNkQnFqQVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUGowZ2NuVnNaWE11WjNRZ0ppWWdLSFJvYVhNZ1BqMGdjblZzWlhNdWJIUWdmSHdnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RGMHBJRG9nSnljS3ZnRUtHSE5tYVhobFpEWTBMbWQwWDJ4MFgyVjRZMngxYzJsMlpScWhBV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdjblZzWlhNdWJIUWdQQ0J5ZFd4bGN5NW5kQ0FtSmlBb2NuVnNaWE11YkhRZ1BEMGdkR2hwY3lBbUppQjBhR2x6SUR3OUlISjFiR1Z6TG1kMEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJQ1Z6SUc5eUlHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25Dc1lCQ2c5elptbDRaV1EyTkM1bmRGOXNkR1Vhc2dGb1lYTW9jblZzWlhNdWJIUmxLU0FtSmlCeWRXeGxjeTVzZEdVZ1BqMGdjblZzWlhNdVozUWdKaVlnS0hSb2FYTWdQaUJ5ZFd4bGN5NXNkR1VnZkh3Z2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJoYm1RZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuQ3M0QkNobHpabWw0WldRMk5DNW5kRjlzZEdWZlpYaGpiSFZ6YVhabEdyQUJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRHdnY25Wc1pYTXVaM1FnSmlZZ0tISjFiR1Z6TG14MFpTQThJSFJvYVhNZ0ppWWdkR2hwY3lBOFBTQnlkV3hsY3k1bmRDay9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUFsY3lCdmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNRc0lISjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFSTHlCd29EWjNSbEdBVWdBU2dRUXVJSHdramVCd3FMQVFvTWMyWnBlR1ZrTmpRdVozUmxHbnNoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnZEdocGN5QThJSEoxYkdWekxtZDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaVjBwSURvZ0p5Y0t4UUVLRDNObWFYaGxaRFkwTG1kMFpWOXNkQnF4QVdoaGN5aHlkV3hsY3k1c2RDa2dKaVlnY25Wc1pYTXViSFFnUGowZ2NuVnNaWE11WjNSbElDWW1JQ2gwYUdseklENDlJSEoxYkdWekxteDBJSHg4SUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1VzSUhKMWJHVnpMbXgwWFNrZ09pQW5Kd3JOQVFvWmMyWnBlR1ZrTmpRdVozUmxYMngwWDJWNFkyeDFjMmwyWlJxdkFXaGhjeWh5ZFd4bGN5NXNkQ2tnSmlZZ2NuVnNaWE11YkhRZ1BDQnlkV3hsY3k1bmRHVWdKaVlnS0hKMWJHVnpMbXgwSUR3OUlIUm9hWE1nSmlZZ2RHaHBjeUE4SUhKMWJHVnpMbWQwWlNrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3lCdmNpQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLMVFFS0VITm1hWGhsWkRZMExtZDBaVjlzZEdVYXdBRm9ZWE1vY25Wc1pYTXViSFJsS1NBbUppQnlkV3hsY3k1c2RHVWdQajBnY25Wc1pYTXVaM1JsSUNZbUlDaDBhR2x6SUQ0Z2NuVnNaWE11YkhSbElIeDhJSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTWdZVzVrSUd4bGMzTWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kR1VzSUhKMWJHVnpMbXgwWlYwcElEb2dKeWNLM1FFS0duTm1hWGhsWkRZMExtZDBaVjlzZEdWZlpYaGpiSFZ6YVhabEdyNEJhR0Z6S0hKMWJHVnpMbXgwWlNrZ0ppWWdjblZzWlhNdWJIUmxJRHdnY25Wc1pYTXVaM1JsSUNZbUlDaHlkV3hsY3k1c2RHVWdQQ0IwYUdseklDWW1JSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTWdiM0lnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJsWFNrZ09pQW5KMGdCRW5nS0FtbHVHQVlnQXlnUVFtekNTR2tLWndvTGMyWnBlR1ZrTmpRdWFXNGFXQ0VvZEdocGN5QnBiaUJrZVc0b2NuVnNaWE1wV3lkcGJpZGRLU0EvSUNkMllXeDFaU0J0ZFhOMElHSmxJR2x1SUd4cGMzUWdKWE1uTG1admNtMWhkQ2hiWkhsdUtISjFiR1Z6S1ZzbmFXNG5YVjBwSURvZ0p5Y1NlUW9HYm05MFgybHVHQWNnQXlnUVFtbkNTR1lLWkFvUGMyWnBlR1ZrTmpRdWJtOTBYMmx1R2xGMGFHbHpJR2x1SUhKMWJHVnpMbTV2ZEY5cGJpQS9JQ2QyWVd4MVpTQnRkWE4wSUc1dmRDQmlaU0JwYmlCc2FYTjBJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbTV2ZEY5cGJsMHBJRG9nSnljU0xnb0haWGhoYlhCc1pSZ0lJQU1vRUVJZHdrZ2FDaGdLRUhObWFYaGxaRFkwTG1WNFlXMXdiR1VhQkhSeWRXVXFDUWpvQnhDQWdJQ0FBa0lMQ2dsc1pYTnpYM1JvWVc1Q0Rnb01aM0psWVhSbGNsOTBhR0Z1SXF3QkNnbENiMjlzVW5Wc1pYTVNhQW9GWTI5dWMzUVlBU0FCS0FoQ1djSklWZ3BVQ2dwaWIyOXNMbU52Ym5OMEdrWjBhR2x6SUNFOUlISjFiR1Z6TG1OdmJuTjBJRDhnSjNaaGJIVmxJRzExYzNRZ1pYRjFZV3dnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WTI5dWMzUmRLU0E2SUNjbkVpb0tCMlY0WVcxd2JHVVlBaUFES0FoQ0djSklGZ29VQ2d4aWIyOXNMbVY0WVcxd2JHVWFCSFJ5ZFdVcUNRam9CeENBZ0lDQUFpTGdOZ29MVTNSeWFXNW5VblZzWlhNU2JBb0ZZMjl1YzNRWUFTQUJLQWxDWGNKSVdncFlDZ3h6ZEhKcGJtY3VZMjl1YzNRYVNIUm9hWE1nSVQwZ2NuVnNaWE11WTI5dWMzUWdQeUFuZG1Gc2RXVWdiWFZ6ZENCbGNYVmhiQ0JnSlhOZ0p5NW1iM0p0WVhRb1czSjFiR1Z6TG1OdmJuTjBYU2tnT2lBbkp4SitDZ05zWlc0WUV5QUJLQVJDY2NKSWJncHNDZ3B6ZEhKcGJtY3ViR1Z1R2w1MWFXNTBLSFJvYVhNdWMybDZaU2dwS1NBaFBTQnlkV3hsY3k1c1pXNGdQeUFuZG1Gc2RXVWdiR1Z1WjNSb0lHMTFjM1FnWW1VZ0pYTWdZMmhoY21GamRHVnljeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NXNaVzVkS1NBNklDY25FcGtCQ2dkdGFXNWZiR1Z1R0FJZ0FTZ0VRb2NCd2tpREFRcUFBUW9PYzNSeWFXNW5MbTFwYmw5c1pXNGFiblZwYm5Rb2RHaHBjeTV6YVhwbEtDa3BJRHdnY25Wc1pYTXViV2x1WDJ4bGJpQS9JQ2QyWVd4MVpTQnNaVzVuZEdnZ2JYVnpkQ0JpWlNCaGRDQnNaV0Z6ZENBbGN5QmphR0Z5WVdOMFpYSnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtMXBibDlzWlc1ZEtTQTZJQ2NuRXBjQkNnZHRZWGhmYkdWdUdBTWdBU2dFUW9VQndraUJBUXAvQ2c1emRISnBibWN1YldGNFgyeGxiaHB0ZFdsdWRDaDBhR2x6TG5OcGVtVW9LU2tnUGlCeWRXeGxjeTV0WVhoZmJHVnVJRDhnSjNaaGJIVmxJR3hsYm1kMGFDQnRkWE4wSUdKbElHRjBJRzF2YzNRZ0pYTWdZMmhoY21GamRHVnljeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NXRZWGhmYkdWdVhTa2dPaUFuSnhLYkFRb0piR1Z1WDJKNWRHVnpHQlFnQVNnRVFvY0J3a2lEQVFxQUFRb1FjM1J5YVc1bkxteGxibDlpZVhSbGN4cHNkV2x1ZENoaWVYUmxjeWgwYUdsektTNXphWHBsS0NrcElDRTlJSEoxYkdWekxteGxibDlpZVhSbGN5QS9JQ2QyWVd4MVpTQnNaVzVuZEdnZ2JYVnpkQ0JpWlNBbGN5QmllWFJsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzWlc1ZllubDBaWE5kS1NBNklDY25FcU1CQ2dsdGFXNWZZbmwwWlhNWUJDQUJLQVJDandIQ1NJc0JDb2dCQ2hCemRISnBibWN1YldsdVgySjVkR1Z6R25SMWFXNTBLR0o1ZEdWektIUm9hWE1wTG5OcGVtVW9LU2tnUENCeWRXeGxjeTV0YVc1ZllubDBaWE1nUHlBbmRtRnNkV1VnYkdWdVozUm9JRzExYzNRZ1ltVWdZWFFnYkdWaGMzUWdKWE1nWW5sMFpYTW5MbVp2Y20xaGRDaGJjblZzWlhNdWJXbHVYMko1ZEdWelhTa2dPaUFuSnhLaUFRb0piV0Y0WDJKNWRHVnpHQVVnQVNnRVFvNEJ3a2lLQVFxSEFRb1FjM1J5YVc1bkxtMWhlRjlpZVhSbGN4cHpkV2x1ZENoaWVYUmxjeWgwYUdsektTNXphWHBsS0NrcElENGdjblZzWlhNdWJXRjRYMko1ZEdWeklEOGdKM1poYkhWbElHeGxibWQwYUNCdGRYTjBJR0psSUdGMElHMXZjM1FnSlhNZ1lubDBaWE1uTG1admNtMWhkQ2hiY25Wc1pYTXViV0Y0WDJKNWRHVnpYU2tnT2lBbkp4S05BUW9IY0dGMGRHVnliaGdHSUFFb0NVSjh3a2g1Q25jS0RuTjBjbWx1Wnk1d1lYUjBaWEp1R21VaGRHaHBjeTV0WVhSamFHVnpLSEoxYkdWekxuQmhkSFJsY200cElEOGdKM1poYkhWbElHUnZaWE1nYm05MElHMWhkR05vSUhKbFoyVjRJSEJoZEhSbGNtNGdZQ1Z6WUNjdVptOXliV0YwS0Z0eWRXeGxjeTV3WVhSMFpYSnVYU2tnT2lBbkp4S0VBUW9HY0hKbFptbDRHQWNnQVNnSlFuVENTSEVLYndvTmMzUnlhVzVuTG5CeVpXWnBlQnBlSVhSb2FYTXVjM1JoY25SelYybDBhQ2h5ZFd4bGN5NXdjbVZtYVhncElEOGdKM1poYkhWbElHUnZaWE1nYm05MElHaGhkbVVnY0hKbFptbDRJR0FsYzJBbkxtWnZjbTFoZENoYmNuVnNaWE11Y0hKbFptbDRYU2tnT2lBbkp4S0NBUW9HYzNWbVptbDRHQWdnQVNnSlFuTENTRzhLYlFvTmMzUnlhVzVuTG5OMVptWnBlQnBjSVhSb2FYTXVaVzVrYzFkcGRHZ29jblZzWlhNdWMzVm1abWw0S1NBL0lDZDJZV3gxWlNCa2IyVnpJRzV2ZENCb1lYWmxJSE4xWm1acGVDQmdKWE5nSnk1bWIzSnRZWFFvVzNKMWJHVnpMbk4xWm1acGVGMHBJRG9nSnljU2tBRUtDR052Ym5SaGFXNXpHQWtnQVNnSlFuN0NTSHNLZVFvUGMzUnlhVzVuTG1OdmJuUmhhVzV6R21ZaGRHaHBjeTVqYjI1MFlXbHVjeWh5ZFd4bGN5NWpiMjUwWVdsdWN5a2dQeUFuZG1Gc2RXVWdaRzlsY3lCdWIzUWdZMjl1ZEdGcGJpQnpkV0p6ZEhKcGJtY2dZQ1Z6WUNjdVptOXliV0YwS0Z0eWRXeGxjeTVqYjI1MFlXbHVjMTBwSURvZ0p5Y1NtQUVLREc1dmRGOWpiMjUwWVdsdWN4Z1hJQUVvQ1VLQkFjSklmZ3A4Q2hOemRISnBibWN1Ym05MFgyTnZiblJoYVc1ekdtVjBhR2x6TG1OdmJuUmhhVzV6S0hKMWJHVnpMbTV2ZEY5amIyNTBZV2x1Y3lrZ1B5QW5kbUZzZFdVZ1kyOXVkR0ZwYm5NZ2MzVmljM1J5YVc1bklHQWxjMkFuTG1admNtMWhkQ2hiY25Wc1pYTXVibTkwWDJOdmJuUmhhVzV6WFNrZ09pQW5KeEoyQ2dKcGJoZ0tJQU1vQ1VKcXdraG5DbVVLQ1hOMGNtbHVaeTVwYmhwWUlTaDBhR2x6SUdsdUlHUjViaWh5ZFd4bGN5bGJKMmx1SjEwcElEOGdKM1poYkhWbElHMTFjM1FnWW1VZ2FXNGdiR2x6ZENBbGN5Y3VabTl5YldGMEtGdGtlVzRvY25Wc1pYTXBXeWRwYmlkZFhTa2dPaUFuSnhKM0NnWnViM1JmYVc0WUN5QURLQWxDWjhKSVpBcGlDZzF6ZEhKcGJtY3VibTkwWDJsdUdsRjBhR2x6SUdsdUlISjFiR1Z6TG01dmRGOXBiaUEvSUNkMllXeDFaU0J0ZFhOMElHNXZkQ0JpWlNCcGJpQnNhWE4wSUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG01dmRGOXBibDBwSURvZ0p5Y1Mzd0VLQldWdFlXbHNHQXdnQVNnSVFzMEJ3a2pKQVFwaENneHpkSEpwYm1jdVpXMWhhV3dTSTNaaGJIVmxJRzExYzNRZ1ltVWdZU0IyWVd4cFpDQmxiV0ZwYkNCaFpHUnlaWE56R2l3aGNuVnNaWE11WlcxaGFXd2dmSHdnZEdocGN5QTlQU0FuSnlCOGZDQjBhR2x6TG1selJXMWhhV3dvS1Fwa0NoSnpkSEpwYm1jdVpXMWhhV3hmWlcxd2RIa1NNblpoYkhWbElHbHpJR1Z0Y0hSNUxDQjNhR2xqYUNCcGN5QnViM1FnWVNCMllXeHBaQ0JsYldGcGJDQmhaR1J5WlhOekdob2hjblZzWlhNdVpXMWhhV3dnZkh3Z2RHaHBjeUFoUFNBbkowZ0FFdWNCQ2dob2IzTjBibUZ0WlJnTklBRW9DRUxTQWNKSXpnRUtaUW9QYzNSeWFXNW5MbWh2YzNSdVlXMWxFaDUyWVd4MVpTQnRkWE4wSUdKbElHRWdkbUZzYVdRZ2FHOXpkRzVoYldVYU1pRnlkV3hsY3k1b2IzTjBibUZ0WlNCOGZDQjBhR2x6SUQwOUlDY25JSHg4SUhSb2FYTXVhWE5JYjNOMGJtRnRaU2dwQ21VS0ZYTjBjbWx1Wnk1b2IzTjBibUZ0WlY5bGJYQjBlUkl0ZG1Gc2RXVWdhWE1nWlcxd2RIa3NJSGRvYVdOb0lHbHpJRzV2ZENCaElIWmhiR2xrSUdodmMzUnVZVzFsR2gwaGNuVnNaWE11YUc5emRHNWhiV1VnZkh3Z2RHaHBjeUFoUFNBbkowZ0FFc2NCQ2dKcGNCZ09JQUVvQ0VLNEFjSkl0QUVLVlFvSmMzUnlhVzVuTG1sd0VpQjJZV3gxWlNCdGRYTjBJR0psSUdFZ2RtRnNhV1FnU1ZBZ1lXUmtjbVZ6Y3hvbUlYSjFiR1Z6TG1sd0lIeDhJSFJvYVhNZ1BUMGdKeWNnZkh3Z2RHaHBjeTVwYzBsd0tDa0tXd29QYzNSeWFXNW5MbWx3WDJWdGNIUjVFaTkyWVd4MVpTQnBjeUJsYlhCMGVTd2dkMmhwWTJnZ2FYTWdibTkwSUdFZ2RtRnNhV1FnU1ZBZ1lXUmtjbVZ6Y3hvWElYSjFiR1Z6TG1sd0lIeDhJSFJvYVhNZ0lUMGdKeWRJQUJMV0FRb0VhWEIyTkJnUElBRW9DRUxGQWNKSXdRRUtYQW9MYzNSeWFXNW5MbWx3ZGpRU0luWmhiSFZsSUcxMWMzUWdZbVVnWVNCMllXeHBaQ0JKVUhZMElHRmtaSEpsYzNNYUtTRnlkV3hsY3k1cGNIWTBJSHg4SUhSb2FYTWdQVDBnSnljZ2ZId2dkR2hwY3k1cGMwbHdLRFFwQ21FS0VYTjBjbWx1Wnk1cGNIWTBYMlZ0Y0hSNUVqRjJZV3gxWlNCcGN5QmxiWEIwZVN3Z2QyaHBZMmdnYVhNZ2JtOTBJR0VnZG1Gc2FXUWdTVkIyTkNCaFpHUnlaWE56R2hraGNuVnNaWE11YVhCMk5DQjhmQ0IwYUdseklDRTlJQ2NuU0FBUzFnRUtCR2x3ZGpZWUVDQUJLQWhDeFFIQ1NNRUJDbHdLQzNOMGNtbHVaeTVwY0hZMkVpSjJZV3gxWlNCdGRYTjBJR0psSUdFZ2RtRnNhV1FnU1ZCMk5pQmhaR1J5WlhOekdpa2hjblZzWlhNdWFYQjJOaUI4ZkNCMGFHbHpJRDA5SUNjbklIeDhJSFJvYVhNdWFYTkpjQ2cyS1FwaENoRnpkSEpwYm1jdWFYQjJObDlsYlhCMGVSSXhkbUZzZFdVZ2FYTWdaVzF3ZEhrc0lIZG9hV05vSUdseklHNXZkQ0JoSUhaaGJHbGtJRWxRZGpZZ1lXUmtjbVZ6Y3hvWklYSjFiR1Z6TG1sd2RqWWdmSHdnZEdocGN5QWhQU0FuSjBnQUVyOEJDZ04xY21rWUVTQUJLQWhDcndIQ1NLc0JDbEVLQ25OMGNtbHVaeTUxY21rU0dYWmhiSFZsSUcxMWMzUWdZbVVnWVNCMllXeHBaQ0JWVWtrYUtDRnlkV3hsY3k1MWNta2dmSHdnZEdocGN5QTlQU0FuSnlCOGZDQjBhR2x6TG1selZYSnBLQ2tLVmdvUWMzUnlhVzVuTG5WeWFWOWxiWEIwZVJJb2RtRnNkV1VnYVhNZ1pXMXdkSGtzSUhkb2FXTm9JR2x6SUc1dmRDQmhJSFpoYkdsa0lGVlNTUm9ZSVhKMWJHVnpMblZ5YVNCOGZDQjBhR2x6SUNFOUlDY25TQUFTWmdvSGRYSnBYM0psWmhnU0lBRW9DRUpUd2toUUNrNEtEbk4wY21sdVp5NTFjbWxmY21WbUVobDJZV3gxWlNCdGRYTjBJR0psSUdFZ2RtRnNhV1FnVlZKSkdpRWhjblZzWlhNdWRYSnBYM0psWmlCOGZDQjBhR2x6TG1selZYSnBVbVZtS0NsSUFCS1FBZ29IWVdSa2NtVnpjeGdWSUFFb0NFTDhBY0pJK0FFS2dRRUtEbk4wY21sdVp5NWhaR1J5WlhOekVpMTJZV3gxWlNCdGRYTjBJR0psSUdFZ2RtRnNhV1FnYUc5emRHNWhiV1VzSUc5eUlHbHdJR0ZrWkhKbGMzTWFRQ0Z5ZFd4bGN5NWhaR1J5WlhOeklIeDhJSFJvYVhNZ1BUMGdKeWNnZkh3Z2RHaHBjeTVwYzBodmMzUnVZVzFsS0NrZ2ZId2dkR2hwY3k1cGMwbHdLQ2tLY2dvVWMzUnlhVzVuTG1Ga1pISmxjM05mWlcxd2RIa1NQSFpoYkhWbElHbHpJR1Z0Y0hSNUxDQjNhR2xqYUNCcGN5QnViM1FnWVNCMllXeHBaQ0JvYjNOMGJtRnRaU3dnYjNJZ2FYQWdZV1JrY21WemN4b2NJWEoxYkdWekxtRmtaSEpsYzNNZ2ZId2dkR2hwY3lBaFBTQW5KMGdBRXBnQ0NnUjFkV2xrR0JZZ0FTZ0lRb2NDd2tpREFncWxBUW9MYzNSeWFXNW5MblYxYVdRU0duWmhiSFZsSUcxMWMzUWdZbVVnWVNCMllXeHBaQ0JWVlVsRUdub2hjblZzWlhNdWRYVnBaQ0I4ZkNCMGFHbHpJRDA5SUNjbklIeDhJSFJvYVhNdWJXRjBZMmhsY3lnblhsc3dMVGxoTFdaQkxVWmRlemg5TFZzd0xUbGhMV1pCTFVaZGV6UjlMVnN3TFRsaExXWkJMVVpkZXpSOUxWc3dMVGxoTFdaQkxVWmRlelI5TFZzd0xUbGhMV1pCTFVaZGV6RXlmU1FuS1FwWkNoRnpkSEpwYm1jdWRYVnBaRjlsYlhCMGVSSXBkbUZzZFdVZ2FYTWdaVzF3ZEhrc0lIZG9hV05vSUdseklHNXZkQ0JoSUhaaGJHbGtJRlZWU1VRYUdTRnlkV3hsY3k1MWRXbGtJSHg4SUhSb2FYTWdJVDBnSnlkSUFCTHdBUW9GZEhWMWFXUVlJU0FCS0FoQzNnSENTTm9CQ25NS0RITjBjbWx1Wnk1MGRYVnBaQklpZG1Gc2RXVWdiWFZ6ZENCaVpTQmhJSFpoYkdsa0lIUnlhVzF0WldRZ1ZWVkpSQm8vSVhKMWJHVnpMblIxZFdsa0lIeDhJSFJvYVhNZ1BUMGdKeWNnZkh3Z2RHaHBjeTV0WVhSamFHVnpLQ2RlV3pBdE9XRXRaa0V0UmwxN016SjlKQ2NwQ21NS0VuTjBjbWx1Wnk1MGRYVnBaRjlsYlhCMGVSSXhkbUZzZFdVZ2FYTWdaVzF3ZEhrc0lIZG9hV05vSUdseklHNXZkQ0JoSUhaaGJHbGtJSFJ5YVcxdFpXUWdWVlZKUkJvYUlYSjFiR1Z6TG5SMWRXbGtJSHg4SUhSb2FYTWdJVDBnSnlkSUFCS1dBZ29SYVhCZmQybDBhRjl3Y21WbWFYaHNaVzRZR2lBQktBaEMrQUhDU1BRQkNuZ0tHSE4wY21sdVp5NXBjRjkzYVhSb1gzQnlaV1pwZUd4bGJoSWZkbUZzZFdVZ2JYVnpkQ0JpWlNCaElIWmhiR2xrSUVsUUlIQnlaV1pwZUJvN0lYSjFiR1Z6TG1sd1gzZHBkR2hmY0hKbFptbDRiR1Z1SUh4OElIUm9hWE1nUFQwZ0p5Y2dmSHdnZEdocGN5NXBjMGx3VUhKbFptbDRLQ2tLZUFvZWMzUnlhVzVuTG1sd1gzZHBkR2hmY0hKbFptbDRiR1Z1WDJWdGNIUjVFaTUyWVd4MVpTQnBjeUJsYlhCMGVTd2dkMmhwWTJnZ2FYTWdibTkwSUdFZ2RtRnNhV1FnU1ZBZ2NISmxabWw0R2lZaGNuVnNaWE11YVhCZmQybDBhRjl3Y21WbWFYaHNaVzRnZkh3Z2RHaHBjeUFoUFNBbkowZ0FFczhDQ2hOcGNIWTBYM2RwZEdoZmNISmxabWw0YkdWdUdCc2dBU2dJUXE4Q3draXJBZ3FUQVFvYWMzUnlhVzVuTG1sd2RqUmZkMmwwYUY5d2NtVm1hWGhzWlc0U05YWmhiSFZsSUcxMWMzUWdZbVVnWVNCMllXeHBaQ0JKVUhZMElHRmtaSEpsYzNNZ2QybDBhQ0J3Y21WbWFYZ2diR1Z1WjNSb0dqNGhjblZzWlhNdWFYQjJORjkzYVhSb1gzQnlaV1pwZUd4bGJpQjhmQ0IwYUdseklEMDlJQ2NuSUh4OElIUm9hWE11YVhOSmNGQnlaV1pwZUNnMEtRcVNBUW9nYzNSeWFXNW5MbWx3ZGpSZmQybDBhRjl3Y21WbWFYaHNaVzVmWlcxd2RIa1NSSFpoYkhWbElHbHpJR1Z0Y0hSNUxDQjNhR2xqYUNCcGN5QnViM1FnWVNCMllXeHBaQ0JKVUhZMElHRmtaSEpsYzNNZ2QybDBhQ0J3Y21WbWFYZ2diR1Z1WjNSb0dpZ2hjblZzWlhNdWFYQjJORjkzYVhSb1gzQnlaV1pwZUd4bGJpQjhmQ0IwYUdseklDRTlJQ2NuU0FBU3p3SUtFMmx3ZGpaZmQybDBhRjl3Y21WbWFYaHNaVzRZSENBQktBaENyd0xDU0tzQ0NwTUJDaHB6ZEhKcGJtY3VhWEIyTmw5M2FYUm9YM0J5WldacGVHeGxiaEkxZG1Gc2RXVWdiWFZ6ZENCaVpTQmhJSFpoYkdsa0lFbFFkallnWVdSa2NtVnpjeUIzYVhSb0lIQnlaV1pwZUNCc1pXNW5kR2dhUGlGeWRXeGxjeTVwY0hZMlgzZHBkR2hmY0hKbFptbDRiR1Z1SUh4OElIUm9hWE1nUFQwZ0p5Y2dmSHdnZEdocGN5NXBjMGx3VUhKbFptbDRLRFlwQ3BJQkNpQnpkSEpwYm1jdWFYQjJObDkzYVhSb1gzQnlaV1pwZUd4bGJsOWxiWEIwZVJKRWRtRnNkV1VnYVhNZ1pXMXdkSGtzSUhkb2FXTm9JR2x6SUc1dmRDQmhJSFpoYkdsa0lFbFFkallnWVdSa2NtVnpjeUIzYVhSb0lIQnlaV1pwZUNCc1pXNW5kR2dhS0NGeWRXeGxjeTVwY0hZMlgzZHBkR2hmY0hKbFptbDRiR1Z1SUh4OElIUm9hWE1nSVQwZ0p5ZElBQkx5QVFvSmFYQmZjSEpsWm1sNEdCMGdBU2dJUXR3QndrallBUXBzQ2hCemRISnBibWN1YVhCZmNISmxabWw0RWg5MllXeDFaU0J0ZFhOMElHSmxJR0VnZG1Gc2FXUWdTVkFnY0hKbFptbDRHamNoY25Wc1pYTXVhWEJmY0hKbFptbDRJSHg4SUhSb2FYTWdQVDBnSnljZ2ZId2dkR2hwY3k1cGMwbHdVSEpsWm1sNEtIUnlkV1VwQ21nS0ZuTjBjbWx1Wnk1cGNGOXdjbVZtYVhoZlpXMXdkSGtTTG5aaGJIVmxJR2x6SUdWdGNIUjVMQ0IzYUdsamFDQnBjeUJ1YjNRZ1lTQjJZV3hwWkNCSlVDQndjbVZtYVhnYUhpRnlkV3hsY3k1cGNGOXdjbVZtYVhnZ2ZId2dkR2hwY3lBaFBTQW5KMGdBRW9NQ0NndHBjSFkwWDNCeVpXWnBlQmdlSUFFb0NFTHJBY0pJNXdFS2RRb1NjM1J5YVc1bkxtbHdkalJmY0hKbFptbDRFaUYyWVd4MVpTQnRkWE4wSUdKbElHRWdkbUZzYVdRZ1NWQjJOQ0J3Y21WbWFYZ2FQQ0Z5ZFd4bGN5NXBjSFkwWDNCeVpXWnBlQ0I4ZkNCMGFHbHpJRDA5SUNjbklIeDhJSFJvYVhNdWFYTkpjRkJ5WldacGVDZzBMQ0IwY25WbEtRcHVDaGh6ZEhKcGJtY3VhWEIyTkY5d2NtVm1hWGhmWlcxd2RIa1NNSFpoYkhWbElHbHpJR1Z0Y0hSNUxDQjNhR2xqYUNCcGN5QnViM1FnWVNCMllXeHBaQ0JKVUhZMElIQnlaV1pwZUJvZ0lYSjFiR1Z6TG1sd2RqUmZjSEpsWm1sNElIeDhJSFJvYVhNZ0lUMGdKeWRJQUJLREFnb0xhWEIyTmw5d2NtVm1hWGdZSHlBQktBaEM2d0hDU09jQkNuVUtFbk4wY21sdVp5NXBjSFkyWDNCeVpXWnBlQkloZG1Gc2RXVWdiWFZ6ZENCaVpTQmhJSFpoYkdsa0lFbFFkallnY0hKbFptbDRHandoY25Wc1pYTXVhWEIyTmw5d2NtVm1hWGdnZkh3Z2RHaHBjeUE5UFNBbkp5QjhmQ0IwYUdsekxtbHpTWEJRY21WbWFYZ29OaXdnZEhKMVpTa0tiZ29ZYzNSeWFXNW5MbWx3ZGpaZmNISmxabWw0WDJWdGNIUjVFakIyWVd4MVpTQnBjeUJsYlhCMGVTd2dkMmhwWTJnZ2FYTWdibTkwSUdFZ2RtRnNhV1FnU1ZCMk5pQndjbVZtYVhnYUlDRnlkV3hsY3k1cGNIWTJYM0J5WldacGVDQjhmQ0IwYUdseklDRTlJQ2NuU0FBU3RRSUtEV2h2YzNSZllXNWtYM0J2Y25RWUlDQUJLQWhDbXdMQ1NKY0NDcGtCQ2hSemRISnBibWN1YUc5emRGOWhibVJmY0c5eWRCSkJkbUZzZFdVZ2JYVnpkQ0JpWlNCaElIWmhiR2xrSUdodmMzUWdLR2h2YzNSdVlXMWxJRzl5SUVsUUlHRmtaSEpsYzNNcElHRnVaQ0J3YjNKMElIQmhhWElhUGlGeWRXeGxjeTVvYjNOMFgyRnVaRjl3YjNKMElIeDhJSFJvYVhNZ1BUMGdKeWNnZkh3Z2RHaHBjeTVwYzBodmMzUkJibVJRYjNKMEtIUnlkV1VwQ25rS0duTjBjbWx1Wnk1b2IzTjBYMkZ1WkY5d2IzSjBYMlZ0Y0hSNUVqZDJZV3gxWlNCcGN5QmxiWEIwZVN3Z2QyaHBZMmdnYVhNZ2JtOTBJR0VnZG1Gc2FXUWdhRzl6ZENCaGJtUWdjRzl5ZENCd1lXbHlHaUloY25Wc1pYTXVhRzl6ZEY5aGJtUmZjRzl5ZENCOGZDQjBhR2x6SUNFOUlDY25TQUFTcUFVS0VIZGxiR3hmYTI1dmQyNWZjbVZuWlhnWUdDQUJLQTR5R0M1aWRXWXVkbUZzYVdSaGRHVXVTMjV2ZDI1U1pXZGxlRUx4Qk1KSTdRUUs4QUVLSTNOMGNtbHVaeTUzWld4c1gydHViM2R1WDNKbFoyVjRMbWhsWVdSbGNsOXVZVzFsRWlaMllXeDFaU0J0ZFhOMElHSmxJR0VnZG1Gc2FXUWdTRlJVVUNCb1pXRmtaWElnYm1GdFpScWdBWEoxYkdWekxuZGxiR3hmYTI1dmQyNWZjbVZuWlhnZ0lUMGdNU0I4ZkNCMGFHbHpJRDA5SUNjbklIeDhJSFJvYVhNdWJXRjBZMmhsY3lnaGFHRnpLSEoxYkdWekxuTjBjbWxqZENrZ2ZId2djblZzWlhNdWMzUnlhV04wSUQ4blhqby9XekF0T1dFdGVrRXRXaUVqSkNVbVhDY3FLeTB1WGw5OGZseDROakJkS3lRbklEb25YbHRlWEhVd01EQXdYSFV3TURCQlhIVXdNREJFWFNza0p5a0tqUUVLS1hOMGNtbHVaeTUzWld4c1gydHViM2R1WDNKbFoyVjRMbWhsWVdSbGNsOXVZVzFsWDJWdGNIUjVFalYyWVd4MVpTQnBjeUJsYlhCMGVTd2dkMmhwWTJnZ2FYTWdibTkwSUdFZ2RtRnNhV1FnU0ZSVVVDQm9aV0ZrWlhJZ2JtRnRaUm9wY25Wc1pYTXVkMlZzYkY5cmJtOTNibDl5WldkbGVDQWhQU0F4SUh4OElIUm9hWE1nSVQwZ0p5Y0s1d0VLSkhOMGNtbHVaeTUzWld4c1gydHViM2R1WDNKbFoyVjRMbWhsWVdSbGNsOTJZV3gxWlJJbmRtRnNkV1VnYlhWemRDQmlaU0JoSUhaaGJHbGtJRWhVVkZBZ2FHVmhaR1Z5SUhaaGJIVmxHcFVCY25Wc1pYTXVkMlZzYkY5cmJtOTNibDl5WldkbGVDQWhQU0F5SUh4OElIUm9hWE11YldGMFkyaGxjeWdoYUdGektISjFiR1Z6TG5OMGNtbGpkQ2tnZkh3Z2NuVnNaWE11YzNSeWFXTjBJRDhuWGx0ZVhIVXdNREF3TFZ4MU1EQXdPRngxTURBd1FTMWNkVEF3TVVaY2RUQXdOMFpkS2lRbklEb25YbHRlWEhVd01EQXdYSFV3TURCQlhIVXdNREJFWFNva0p5bElBQklPQ2daemRISnBZM1FZR1NBQktBZ1NMQW9IWlhoaGJYQnNaUmdpSUFNb0NVSWJ3a2dZQ2hZS0RuTjBjbWx1Wnk1bGVHRnRjR3hsR2dSMGNuVmxLZ2tJNkFjUWdJQ0FnQUpDREFvS2QyVnNiRjlyYm05M2JpSy9FQW9LUW5sMFpYTlNkV3hsY3hKbUNnVmpiMjV6ZEJnQklBRW9ERUpYd2toVUNsSUtDMko1ZEdWekxtTnZibk4wR2tOMGFHbHpJQ0U5SUhKMWJHVnpMbU52Ym5OMElEOGdKM1poYkhWbElHMTFjM1FnWW1VZ0pYZ25MbVp2Y20xaGRDaGJjblZzWlhNdVkyOXVjM1JkS1NBNklDY25FbmdLQTJ4bGJoZ05JQUVvQkVKcndraG9DbVlLQ1dKNWRHVnpMbXhsYmhwWmRXbHVkQ2gwYUdsekxuTnBlbVVvS1NrZ0lUMGdjblZzWlhNdWJHVnVJRDhnSjNaaGJIVmxJR3hsYm1kMGFDQnRkWE4wSUdKbElDVnpJR0o1ZEdWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG14bGJsMHBJRG9nSnljU2tBRUtCMjFwYmw5c1pXNFlBaUFCS0FSQ2Y4SklmQXA2Q2cxaWVYUmxjeTV0YVc1ZmJHVnVHbWwxYVc1MEtIUm9hWE11YzJsNlpTZ3BLU0E4SUhKMWJHVnpMbTFwYmw5c1pXNGdQeUFuZG1Gc2RXVWdiR1Z1WjNSb0lHMTFjM1FnWW1VZ1lYUWdiR1ZoYzNRZ0pYTWdZbmwwWlhNbkxtWnZjbTFoZENoYmNuVnNaWE11YldsdVgyeGxibDBwSURvZ0p5Y1NpQUVLQjIxaGVGOXNaVzRZQXlBQktBUkNkOEpJZEFweUNnMWllWFJsY3k1dFlYaGZiR1Z1R21GMWFXNTBLSFJvYVhNdWMybDZaU2dwS1NBK0lISjFiR1Z6TG0xaGVGOXNaVzRnUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JoZENCdGIzTjBJQ1Z6SUdKNWRHVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtMWhlRjlzWlc1ZEtTQTZJQ2NuRXBBQkNnZHdZWFIwWlhKdUdBUWdBU2dKUW4vQ1NId0tlZ29OWW5sMFpYTXVjR0YwZEdWeWJocHBJWE4wY21sdVp5aDBhR2x6S1M1dFlYUmphR1Z6S0hKMWJHVnpMbkJoZEhSbGNtNHBJRDhnSjNaaGJIVmxJRzExYzNRZ2JXRjBZMmdnY21WblpYZ2djR0YwZEdWeWJpQmdKWE5nSnk1bWIzSnRZWFFvVzNKMWJHVnpMbkJoZEhSbGNtNWRLU0E2SUNjbkVvRUJDZ1p3Y21WbWFYZ1lCU0FCS0F4Q2NjSkliZ3BzQ2d4aWVYUmxjeTV3Y21WbWFYZ2FYQ0YwYUdsekxuTjBZWEowYzFkcGRHZ29jblZzWlhNdWNISmxabWw0S1NBL0lDZDJZV3gxWlNCa2IyVnpJRzV2ZENCb1lYWmxJSEJ5WldacGVDQWxlQ2N1Wm05eWJXRjBLRnR5ZFd4bGN5NXdjbVZtYVhoZEtTQTZJQ2NuRW44S0JuTjFabVpwZUJnR0lBRW9ERUp2d2toc0Ntb0tER0o1ZEdWekxuTjFabVpwZUJwYUlYUm9hWE11Wlc1a2MxZHBkR2dvY25Wc1pYTXVjM1ZtWm1sNEtTQS9JQ2QyWVd4MVpTQmtiMlZ6SUc1dmRDQm9ZWFpsSUhOMVptWnBlQ0FsZUNjdVptOXliV0YwS0Z0eWRXeGxjeTV6ZFdabWFYaGRLU0E2SUNjbkVvTUJDZ2hqYjI1MFlXbHVjeGdISUFFb0RFSnh3a2h1Q213S0RtSjVkR1Z6TG1OdmJuUmhhVzV6R2xvaGRHaHBjeTVqYjI1MFlXbHVjeWh5ZFd4bGN5NWpiMjUwWVdsdWN5a2dQeUFuZG1Gc2RXVWdaRzlsY3lCdWIzUWdZMjl1ZEdGcGJpQWxlQ2N1Wm05eWJXRjBLRnR5ZFd4bGN5NWpiMjUwWVdsdWMxMHBJRG9nSnljU2x3RUtBbWx1R0FnZ0F5Z01Rb29Cd2tpR0FRcURBUW9JWW5sMFpYTXVhVzRhZDJSNWJpaHlkV3hsY3lsYkoybHVKMTB1YzJsNlpTZ3BJRDRnTUNBbUppQWhLSFJvYVhNZ2FXNGdaSGx1S0hKMWJHVnpLVnNuYVc0blhTa2dQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQnBiaUJzYVhOMElDVnpKeTVtYjNKdFlYUW9XMlI1YmloeWRXeGxjeWxiSjJsdUoxMWRLU0E2SUNjbkVuWUtCbTV2ZEY5cGJoZ0pJQU1vREVKbXdraGpDbUVLREdKNWRHVnpMbTV2ZEY5cGJocFJkR2hwY3lCcGJpQnlkV3hsY3k1dWIzUmZhVzRnUHlBbmRtRnNkV1VnYlhWemRDQnViM1FnWW1VZ2FXNGdiR2x6ZENBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1dWIzUmZhVzVkS1NBNklDY25FdXNCQ2dKcGNCZ0tJQUVvQ0VMY0FjSkkyQUVLZEFvSVlubDBaWE11YVhBU0lIWmhiSFZsSUcxMWMzUWdZbVVnWVNCMllXeHBaQ0JKVUNCaFpHUnlaWE56R2tZaGNuVnNaWE11YVhBZ2ZId2dkR2hwY3k1emFYcGxLQ2tnUFQwZ01DQjhmQ0IwYUdsekxuTnBlbVVvS1NBOVBTQTBJSHg4SUhSb2FYTXVjMmw2WlNncElEMDlJREUyQ21BS0RtSjVkR1Z6TG1sd1gyVnRjSFI1RWk5MllXeDFaU0JwY3lCbGJYQjBlU3dnZDJocFkyZ2dhWE1nYm05MElHRWdkbUZzYVdRZ1NWQWdZV1JrY21WemN4b2RJWEoxYkdWekxtbHdJSHg4SUhSb2FYTXVjMmw2WlNncElDRTlJREJJQUJMa0FRb0VhWEIyTkJnTElBRW9DRUxUQWNKSXp3RUtaUW9LWW5sMFpYTXVhWEIyTkJJaWRtRnNkV1VnYlhWemRDQmlaU0JoSUhaaGJHbGtJRWxRZGpRZ1lXUmtjbVZ6Y3hveklYSjFiR1Z6TG1sd2RqUWdmSHdnZEdocGN5NXphWHBsS0NrZ1BUMGdNQ0I4ZkNCMGFHbHpMbk5wZW1Vb0tTQTlQU0EwQ21ZS0VHSjVkR1Z6TG1sd2RqUmZaVzF3ZEhrU01YWmhiSFZsSUdseklHVnRjSFI1TENCM2FHbGphQ0JwY3lCdWIzUWdZU0IyWVd4cFpDQkpVSFkwSUdGa1pISmxjM01hSHlGeWRXeGxjeTVwY0hZMElIeDhJSFJvYVhNdWMybDZaU2dwSUNFOUlEQklBQkxsQVFvRWFYQjJOaGdNSUFFb0NFTFVBY0pJMEFFS1pnb0tZbmwwWlhNdWFYQjJOaElpZG1Gc2RXVWdiWFZ6ZENCaVpTQmhJSFpoYkdsa0lFbFFkallnWVdSa2NtVnpjeG8wSVhKMWJHVnpMbWx3ZGpZZ2ZId2dkR2hwY3k1emFYcGxLQ2tnUFQwZ01DQjhmQ0IwYUdsekxuTnBlbVVvS1NBOVBTQXhOZ3BtQ2hCaWVYUmxjeTVwY0hZMlgyVnRjSFI1RWpGMllXeDFaU0JwY3lCbGJYQjBlU3dnZDJocFkyZ2dhWE1nYm05MElHRWdkbUZzYVdRZ1NWQjJOaUJoWkdSeVpYTnpHaDhoY25Wc1pYTXVhWEIyTmlCOGZDQjBhR2x6TG5OcGVtVW9LU0FoUFNBd1NBQVNLd29IWlhoaGJYQnNaUmdPSUFNb0RFSWF3a2dYQ2hVS0RXSjVkR1Z6TG1WNFlXMXdiR1VhQkhSeWRXVXFDUWpvQnhDQWdJQ0FBa0lNQ2dwM1pXeHNYMnR1YjNkdUlxOERDZ2xGYm5WdFVuVnNaWE1TYUFvRlkyOXVjM1FZQVNBQktBVkNXY0pJVmdwVUNncGxiblZ0TG1OdmJuTjBHa1owYUdseklDRTlJSEoxYkdWekxtTnZibk4wSUQ4Z0ozWmhiSFZsSUcxMWMzUWdaWEYxWVd3Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVkyOXVjM1JkS1NBNklDY25FaFFLREdSbFptbHVaV1JmYjI1c2VSZ0NJQUVvQ0JKMENnSnBiaGdESUFNb0JVSm93a2hsQ21NS0IyVnVkVzB1YVc0YVdDRW9kR2hwY3lCcGJpQmtlVzRvY25Wc1pYTXBXeWRwYmlkZEtTQS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHbHVJR3hwYzNRZ0pYTW5MbVp2Y20xaGRDaGJaSGx1S0hKMWJHVnpLVnNuYVc0blhWMHBJRG9nSnljU2RRb0dibTkwWDJsdUdBUWdBeWdGUW1YQ1NHSUtZQW9MWlc1MWJTNXViM1JmYVc0YVVYUm9hWE1nYVc0Z2NuVnNaWE11Ym05MFgybHVJRDhnSjNaaGJIVmxJRzExYzNRZ2JtOTBJR0psSUdsdUlHeHBjM1FnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11Ym05MFgybHVYU2tnT2lBbkp4SXFDZ2RsZUdGdGNHeGxHQVVnQXlnRlFobkNTQllLRkFvTVpXNTFiUzVsZUdGdGNHeGxHZ1IwY25WbEtna0k2QWNRZ0lDQWdBSWlnUVFLRFZKbGNHVmhkR1ZrVW5Wc1pYTVNuZ0VLQ1cxcGJsOXBkR1Z0Y3hnQklBRW9CRUtLQWNKSWhnRUtnd0VLRW5KbGNHVmhkR1ZrTG0xcGJsOXBkR1Z0Y3hwdGRXbHVkQ2gwYUdsekxuTnBlbVVvS1NrZ1BDQnlkV3hsY3k1dGFXNWZhWFJsYlhNZ1B5QW5kbUZzZFdVZ2JYVnpkQ0JqYjI1MFlXbHVJR0YwSUd4bFlYTjBJQ1ZrSUdsMFpXMG9jeWtuTG1admNtMWhkQ2hiY25Wc1pYTXViV2x1WDJsMFpXMXpYU2tnT2lBbkp4S2lBUW9KYldGNFgybDBaVzF6R0FJZ0FTZ0VRbzRCd2tpS0FRcUhBUW9TY21Wd1pXRjBaV1F1YldGNFgybDBaVzF6R25GMWFXNTBLSFJvYVhNdWMybDZaU2dwS1NBK0lISjFiR1Z6TG0xaGVGOXBkR1Z0Y3lBL0lDZDJZV3gxWlNCdGRYTjBJR052Ym5SaGFXNGdibThnYlc5eVpTQjBhR0Z1SUNWeklHbDBaVzBvY3lrbkxtWnZjbTFoZENoYmNuVnNaWE11YldGNFgybDBaVzF6WFNrZ09pQW5KeEp3Q2daMWJtbHhkV1VZQXlBQktBaENZTUpJWFFwYkNnOXlaWEJsWVhSbFpDNTFibWx4ZFdVU0tISmxjR1ZoZEdWa0lIWmhiSFZsSUcxMWMzUWdZMjl1ZEdGcGJpQjFibWx4ZFdVZ2FYUmxiWE1hSGlGeWRXeGxjeTUxYm1seGRXVWdmSHdnZEdocGN5NTFibWx4ZFdVb0tSSXRDZ1ZwZEdWdGN4Z0VJQUVvQ3pJZUxtSjFaaTUyWVd4cFpHRjBaUzVHYVdWc1pFTnZibk4wY21GcGJuUnpLZ2tJNkFjUWdJQ0FnQUlpbGdNS0NFMWhjRkoxYkdWekVvOEJDZ2x0YVc1ZmNHRnBjbk1ZQVNBQktBUkNmTUpJZVFwM0NnMXRZWEF1YldsdVgzQmhhWEp6R21aMWFXNTBLSFJvYVhNdWMybDZaU2dwS1NBOElISjFiR1Z6TG0xcGJsOXdZV2x5Y3lBL0lDZHRZWEFnYlhWemRDQmlaU0JoZENCc1pXRnpkQ0FsWkNCbGJuUnlhV1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbTFwYmw5d1lXbHljMTBwSURvZ0p5Y1NqZ0VLQ1cxaGVGOXdZV2x5Y3hnQ0lBRW9CRUo3d2toNENuWUtEVzFoY0M1dFlYaGZjR0ZwY25NYVpYVnBiblFvZEdocGN5NXphWHBsS0NrcElENGdjblZzWlhNdWJXRjRYM0JoYVhKeklEOGdKMjFoY0NCdGRYTjBJR0psSUdGMElHMXZjM1FnSldRZ1pXNTBjbWxsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTV0WVhoZmNHRnBjbk5kS1NBNklDY25FaXdLQkd0bGVYTVlCQ0FCS0FzeUhpNWlkV1l1ZG1Gc2FXUmhkR1V1Um1sbGJHUkRiMjV6ZEhKaGFXNTBjeEl1Q2daMllXeDFaWE1ZQlNBQktBc3lIaTVpZFdZdWRtRnNhV1JoZEdVdVJtbGxiR1JEYjI1emRISmhhVzUwY3lvSkNPZ0hFSUNBZ0lBQ0lpWUtDRUZ1ZVZKMWJHVnpFZ29LQW1sdUdBSWdBeWdKRWc0S0JtNXZkRjlwYmhnRElBTW9DU0wxRmdvTlJIVnlZWFJwYjI1U2RXeGxjeEtIQVFvRlkyOXVjM1FZQWlBQktBc3lHUzVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVSSFZ5WVhScGIyNUNYY0pJV2dwWUNnNWtkWEpoZEdsdmJpNWpiMjV6ZEJwR2RHaHBjeUFoUFNCeWRXeGxjeTVqYjI1emRDQS9JQ2QyWVd4MVpTQnRkWE4wSUdWeGRXRnNJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbU52Ym5OMFhTa2dPaUFuSnhLb0FRb0NiSFFZQXlBQktBc3lHUzVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVSSFZ5WVhScGIyNUNmOEpJZkFwNkNndGtkWEpoZEdsdmJpNXNkQnBySVdoaGN5aHlkV3hsY3k1bmRHVXBJQ1ltSUNGb1lYTW9jblZzWlhNdVozUXBJQ1ltSUhSb2FYTWdQajBnY25Wc1pYTXViSFEvSUNkMllXeDFaU0J0ZFhOMElHSmxJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEYwcElEb2dKeWRJQUJLNkFRb0RiSFJsR0FRZ0FTZ0xNaGt1WjI5dloyeGxMbkJ5YjNSdlluVm1Ma1IxY21GMGFXOXVRbzhCd2tpTEFRcUlBUW9NWkhWeVlYUnBiMjR1YkhSbEduZ2hhR0Z6S0hKMWJHVnpMbWQwWlNrZ0ppWWdJV2hoY3loeWRXeGxjeTVuZENrZ0ppWWdkR2hwY3lBK0lISjFiR1Z6TG14MFpUOGdKM1poYkhWbElHMTFjM1FnWW1VZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbXgwWlYwcElEb2dKeWRJQUJMQkJ3b0NaM1FZQlNBQktBc3lHUzVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVSSFZ5WVhScGIyNUNsd2ZDU0pNSENuMEtDMlIxY21GMGFXOXVMbWQwR200aGFHRnpLSEoxYkdWekxteDBLU0FtSmlBaGFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZEQ4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBYU2tnT2lBbkp3cTJBUW9PWkhWeVlYUnBiMjR1WjNSZmJIUWFvd0ZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRDQ5SUhKMWJHVnpMbWQwSUNZbUlDaDBhR2x6SUQ0OUlISjFiR1Z6TG14MElIeDhJSFJvYVhNZ1BEMGdjblZzWlhNdVozUXBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNZ1lXNWtJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEN3Z2NuVnNaWE11YkhSZEtTQTZJQ2NuQ3I0QkNoaGtkWEpoZEdsdmJpNW5kRjlzZEY5bGVHTnNkWE5wZG1VYW9RRm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElEd2djblZzWlhNdVozUWdKaVlnS0hKMWJHVnpMbXgwSUR3OUlIUm9hWE1nSmlZZ2RHaHBjeUE4UFNCeWRXeGxjeTVuZENrL0lDZDJZV3gxWlNCdGRYTjBJR0psSUdkeVpXRjBaWElnZEdoaGJpQWxjeUJ2Y2lCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUXNJSEoxYkdWekxteDBYU2tnT2lBbkp3ckdBUW9QWkhWeVlYUnBiMjR1WjNSZmJIUmxHcklCYUdGektISjFiR1Z6TG14MFpTa2dKaVlnY25Wc1pYTXViSFJsSUQ0OUlISjFiR1Z6TG1kMElDWW1JQ2gwYUdseklENGdjblZzWlhNdWJIUmxJSHg4SUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTWdZVzVrSUd4bGMzTWdkR2hoYmlCdmNpQmxjWFZoYkNCMGJ5QWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJsWFNrZ09pQW5Kd3JPQVFvWlpIVnlZWFJwYjI0dVozUmZiSFJsWDJWNFkyeDFjMmwyWlJxd0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBJQ1ltSUNoeWRXeGxjeTVzZEdVZ1BDQjBhR2x6SUNZbUlIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FFU2pRZ0tBMmQwWlJnR0lBRW9DeklaTG1kdmIyZHNaUzV3Y205MGIySjFaaTVFZFhKaGRHbHZia0xpQjhKSTNnY0tpd0VLREdSMWNtRjBhVzl1TG1kMFpScDdJV2hoY3loeWRXeGxjeTVzZENrZ0ppWWdJV2hoY3loeWRXeGxjeTVzZEdVcElDWW1JSFJvYVhNZ1BDQnlkV3hsY3k1bmRHVS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVmRLU0E2SUNjbkNzVUJDZzlrZFhKaGRHbHZiaTVuZEdWZmJIUWFzUUZvWVhNb2NuVnNaWE11YkhRcElDWW1JSEoxYkdWekxteDBJRDQ5SUhKMWJHVnpMbWQwWlNBbUppQW9kR2hwY3lBK1BTQnlkV3hsY3k1c2RDQjhmQ0IwYUdseklEd2djblZzWlhNdVozUmxLVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpJR0Z1WkNCc1pYTnpJSFJvWVc0Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkRjBwSURvZ0p5Y0t6UUVLR1dSMWNtRjBhVzl1TG1kMFpWOXNkRjlsZUdOc2RYTnBkbVVhcndGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUR3Z2NuVnNaWE11WjNSbElDWW1JQ2h5ZFd4bGN5NXNkQ0E4UFNCMGFHbHpJQ1ltSUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaU3dnY25Wc1pYTXViSFJkS1NBNklDY25DdFVCQ2hCa2RYSmhkR2x2Ymk1bmRHVmZiSFJsR3NBQmFHRnpLSEoxYkdWekxteDBaU2tnSmlZZ2NuVnNaWE11YkhSbElENDlJSEoxYkdWekxtZDBaU0FtSmlBb2RHaHBjeUErSUhKMWJHVnpMbXgwWlNCOGZDQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHRnVaQ0JzWlhOeklIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVozUmxMQ0J5ZFd4bGN5NXNkR1ZkS1NBNklDY25DdDBCQ2hwa2RYSmhkR2x2Ymk1bmRHVmZiSFJsWDJWNFkyeDFjMmwyWlJxK0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhSbElEd2dkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlBbGN5Y3VabTl5YldGMEtGdHlkV3hsY3k1bmRHVXNJSEoxYkdWekxteDBaVjBwSURvZ0p5ZElBUktUQVFvQ2FXNFlCeUFES0FzeUdTNW5iMjluYkdVdWNISnZkRzlpZFdZdVJIVnlZWFJwYjI1Q2JNSklhUXBuQ2d0a2RYSmhkR2x2Ymk1cGJocFlJU2gwYUdseklHbHVJR1I1YmloeWRXeGxjeWxiSjJsdUoxMHBJRDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdhVzRnYkdsemRDQWxjeWN1Wm05eWJXRjBLRnRrZVc0b2NuVnNaWE1wV3lkcGJpZGRYU2tnT2lBbkp4S1VBUW9HYm05MFgybHVHQWdnQXlnTE1oa3VaMjl2WjJ4bExuQnliM1J2WW5WbUxrUjFjbUYwYVc5dVFtbkNTR1lLWkFvUFpIVnlZWFJwYjI0dWJtOTBYMmx1R2xGMGFHbHpJR2x1SUhKMWJHVnpMbTV2ZEY5cGJpQS9JQ2QyWVd4MVpTQnRkWE4wSUc1dmRDQmlaU0JwYmlCc2FYTjBJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbTV2ZEY5cGJsMHBJRG9nSnljU1NRb0haWGhoYlhCc1pSZ0pJQU1vQ3pJWkxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1RWRYSmhkR2x2YmtJZHdrZ2FDaGdLRUdSMWNtRjBhVzl1TG1WNFlXMXdiR1VhQkhSeWRXVXFDUWpvQnhDQWdJQ0FBa0lMQ2dsc1pYTnpYM1JvWVc1Q0Rnb01aM0psWVhSbGNsOTBhR0Z1SXZnWENnNVVhVzFsYzNSaGJYQlNkV3hsY3hLSkFRb0ZZMjl1YzNRWUFpQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3UWw3Q1NGc0tXUW9QZEdsdFpYTjBZVzF3TG1OdmJuTjBHa1owYUdseklDRTlJSEoxYkdWekxtTnZibk4wSUQ4Z0ozWmhiSFZsSUcxMWMzUWdaWEYxWVd3Z0pYTW5MbVp2Y20xaGRDaGJjblZzWlhNdVkyOXVjM1JkS1NBNklDY25FcXNCQ2dKc2RCZ0RJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhCQ2dBSENTSDBLZXdvTWRHbHRaWE4wWVcxd0xteDBHbXNoYUdGektISjFiR1Z6TG1kMFpTa2dKaVlnSVdoaGN5aHlkV3hsY3k1bmRDa2dKaVlnZEdocGN5QStQU0J5ZFd4bGN5NXNkRDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdiR1Z6Y3lCMGFHRnVJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbXgwWFNrZ09pQW5KMGdBRXJ3QkNnTnNkR1VZQkNBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdRcEFCd2tpTUFRcUpBUW9OZEdsdFpYTjBZVzF3TG14MFpScDRJV2hoY3loeWRXeGxjeTVuZEdVcElDWW1JQ0ZvWVhNb2NuVnNaWE11WjNRcElDWW1JSFJvYVhNZ1BpQnlkV3hsY3k1c2RHVS9JQ2QyWVd4MVpTQnRkWE4wSUdKbElHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FBU2JBb0diSFJmYm05M0dBY2dBU2dJUWxyQ1NGY0tWUW9RZEdsdFpYTjBZVzF3TG14MFgyNXZkeHBCS0hKMWJHVnpMbXgwWDI1dmR5QW1KaUIwYUdseklENGdibTkzS1NBL0lDZDJZV3gxWlNCdGRYTjBJR0psSUd4bGMzTWdkR2hoYmlCdWIzY25JRG9nSnlkSUFCTEhCd29DWjNRWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3UXB3SHdraVlCd3ArQ2d4MGFXMWxjM1JoYlhBdVozUWFiaUZvWVhNb2NuVnNaWE11YkhRcElDWW1JQ0ZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUIwYUdseklEdzlJSEoxYkdWekxtZDBQeUFuZG1Gc2RXVWdiWFZ6ZENCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnSlhNbkxtWnZjbTFoZENoYmNuVnNaWE11WjNSZEtTQTZJQ2NuQ3JjQkNnOTBhVzFsYzNSaGJYQXVaM1JmYkhRYW93Rm9ZWE1vY25Wc1pYTXViSFFwSUNZbUlISjFiR1Z6TG14MElENDlJSEoxYkdWekxtZDBJQ1ltSUNoMGFHbHpJRDQ5SUhKMWJHVnpMbXgwSUh4OElIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQWxjeWN1Wm05eWJXRjBLRnR5ZFd4bGN5NW5kQ3dnY25Wc1pYTXViSFJkS1NBNklDY25DcjhCQ2hsMGFXMWxjM1JoYlhBdVozUmZiSFJmWlhoamJIVnphWFpsR3FFQmFHRnpLSEoxYkdWekxteDBLU0FtSmlCeWRXeGxjeTVzZENBOElISjFiR1Z6TG1kMElDWW1JQ2h5ZFd4bGN5NXNkQ0E4UFNCMGFHbHpJQ1ltSUhSb2FYTWdQRDBnY25Wc1pYTXVaM1FwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z0pYTWdiM0lnYkdWemN5QjBhR0Z1SUNWekp5NW1iM0p0WVhRb1czSjFiR1Z6TG1kMExDQnlkV3hsY3k1c2RGMHBJRG9nSnljS3h3RUtFSFJwYldWemRHRnRjQzVuZEY5c2RHVWFzZ0ZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUJ5ZFd4bGN5NXNkR1VnUGowZ2NuVnNaWE11WjNRZ0ppWWdLSFJvYVhNZ1BpQnlkV3hsY3k1c2RHVWdmSHdnZEdocGN5QThQU0J5ZFd4bGN5NW5kQ2svSUNkMllXeDFaU0J0ZFhOMElHSmxJR2R5WldGMFpYSWdkR2hoYmlBbGN5QmhibVFnYkdWemN5QjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBMQ0J5ZFd4bGN5NXNkR1ZkS1NBNklDY25DczhCQ2hwMGFXMWxjM1JoYlhBdVozUmZiSFJsWDJWNFkyeDFjMmwyWlJxd0FXaGhjeWh5ZFd4bGN5NXNkR1VwSUNZbUlISjFiR1Z6TG14MFpTQThJSEoxYkdWekxtZDBJQ1ltSUNoeWRXeGxjeTVzZEdVZ1BDQjBhR2x6SUNZbUlIUm9hWE1nUEQwZ2NuVnNaWE11WjNRcFB5QW5kbUZzZFdVZ2JYVnpkQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdKWE1nYjNJZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6Snk1bWIzSnRZWFFvVzNKMWJHVnpMbWQwTENCeWRXeGxjeTVzZEdWZEtTQTZJQ2NuU0FFU2t3Z0tBMmQwWlJnR0lBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEJDNXdmQ1NPTUhDb3dCQ2cxMGFXMWxjM1JoYlhBdVozUmxHbnNoYUdGektISjFiR1Z6TG14MEtTQW1KaUFoYUdGektISjFiR1Z6TG14MFpTa2dKaVlnZEdocGN5QThJSEoxYkdWekxtZDBaVDhnSjNaaGJIVmxJRzExYzNRZ1ltVWdaM0psWVhSbGNpQjBhR0Z1SUc5eUlHVnhkV0ZzSUhSdklDVnpKeTVtYjNKdFlYUW9XM0oxYkdWekxtZDBaVjBwSURvZ0p5Y0t4Z0VLRUhScGJXVnpkR0Z0Y0M1bmRHVmZiSFFhc1FGb1lYTW9jblZzWlhNdWJIUXBJQ1ltSUhKMWJHVnpMbXgwSUQ0OUlISjFiR1Z6TG1kMFpTQW1KaUFvZEdocGN5QStQU0J5ZFd4bGN5NXNkQ0I4ZkNCMGFHbHpJRHdnY25Wc1pYTXVaM1JsS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6SUdGdVpDQnNaWE56SUhSb1lXNGdKWE1uTG1admNtMWhkQ2hiY25Wc1pYTXVaM1JsTENCeWRXeGxjeTVzZEYwcElEb2dKeWNLemdFS0duUnBiV1Z6ZEdGdGNDNW5kR1ZmYkhSZlpYaGpiSFZ6YVhabEdxOEJhR0Z6S0hKMWJHVnpMbXgwS1NBbUppQnlkV3hsY3k1c2RDQThJSEoxYkdWekxtZDBaU0FtSmlBb2NuVnNaWE11YkhRZ1BEMGdkR2hwY3lBbUppQjBhR2x6SUR3Z2NuVnNaWE11WjNSbEtUOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUNWeklHOXlJR3hsYzNNZ2RHaGhiaUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFhTa2dPaUFuSndyV0FRb1JkR2x0WlhOMFlXMXdMbWQwWlY5c2RHVWF3QUZvWVhNb2NuVnNaWE11YkhSbEtTQW1KaUJ5ZFd4bGN5NXNkR1VnUGowZ2NuVnNaWE11WjNSbElDWW1JQ2gwYUdseklENGdjblZzWlhNdWJIUmxJSHg4SUhSb2FYTWdQQ0J5ZFd4bGN5NW5kR1VwUHlBbmRtRnNkV1VnYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdKWE1nWVc1a0lHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFpWMHBJRG9nSnljSzNnRUtHM1JwYldWemRHRnRjQzVuZEdWZmJIUmxYMlY0WTJ4MWMybDJaUnErQVdoaGN5aHlkV3hsY3k1c2RHVXBJQ1ltSUhKMWJHVnpMbXgwWlNBOElISjFiR1Z6TG1kMFpTQW1KaUFvY25Wc1pYTXViSFJsSUR3Z2RHaHBjeUFtSmlCMGFHbHpJRHdnY25Wc1pYTXVaM1JsS1Q4Z0ozWmhiSFZsSUcxMWMzUWdZbVVnWjNKbFlYUmxjaUIwYUdGdUlHOXlJR1Z4ZFdGc0lIUnZJQ1Z6SUc5eUlHeGxjM01nZEdoaGJpQnZjaUJsY1hWaGJDQjBieUFsY3ljdVptOXliV0YwS0Z0eWRXeGxjeTVuZEdVc0lISjFiR1Z6TG14MFpWMHBJRG9nSnlkSUFSSnZDZ1puZEY5dWIzY1lDQ0FCS0FoQ1hjSklXZ3BZQ2hCMGFXMWxjM1JoYlhBdVozUmZibTkzR2tRb2NuVnNaWE11WjNSZmJtOTNJQ1ltSUhSb2FYTWdQQ0J1YjNjcElEOGdKM1poYkhWbElHMTFjM1FnWW1VZ1ozSmxZWFJsY2lCMGFHRnVJRzV2ZHljZ09pQW5KMGdCRXJnQkNnWjNhWFJvYVc0WUNTQUJLQXN5R1M1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1UkhWeVlYUnBiMjVDakFIQ1NJZ0JDb1VCQ2hCMGFXMWxjM1JoYlhBdWQybDBhR2x1R25GMGFHbHpJRHdnYm05M0xYSjFiR1Z6TG5kcGRHaHBiaUI4ZkNCMGFHbHpJRDRnYm05M0szSjFiR1Z6TG5kcGRHaHBiaUEvSUNkMllXeDFaU0J0ZFhOMElHSmxJSGRwZEdocGJpQWxjeUJ2WmlCdWIzY25MbVp2Y20xaGRDaGJjblZzWlhNdWQybDBhR2x1WFNrZ09pQW5KeEpMQ2dkbGVHRnRjR3hsR0FvZ0F5Z0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjRUlld2tnYkNoa0tFWFJwYldWemRHRnRjQzVsZUdGdGNHeGxHZ1IwY25WbEtna0k2QWNRZ0lDQWdBSkNDd29KYkdWemMxOTBhR0Z1UWc0S0RHZHlaV0YwWlhKZmRHaGhiaUk1Q2dwV2FXOXNZWFJwYjI1ekVpc0tDblpwYjJ4aGRHbHZibk1ZQVNBREtBc3lGeTVpZFdZdWRtRnNhV1JoZEdVdVZtbHZiR0YwYVc5dUlxc0JDZ2xXYVc5c1lYUnBiMjRTSmdvRlptbGxiR1FZQlNBQktBc3lGeTVpZFdZdWRtRnNhV1JoZEdVdVJtbGxiR1JRWVhSb0VpVUtCSEoxYkdVWUJpQUJLQXN5Rnk1aWRXWXVkbUZzYVdSaGRHVXVSbWxsYkdSUVlYUm9FaFlLQ21acFpXeGtYM0JoZEdnWUFTQUJLQWxDQWhnQkVoVUtEV052Ym5OMGNtRnBiblJmYVdRWUFpQUJLQWtTRHdvSGJXVnpjMkZuWlJnRElBRW9DUklQQ2dkbWIzSmZhMlY1R0FRZ0FTZ0lJajBLQ1VacFpXeGtVR0YwYUJJd0NnaGxiR1Z0Wlc1MGN4Z0JJQU1vQ3pJZUxtSjFaaTUyWVd4cFpHRjBaUzVHYVdWc1pGQmhkR2hGYkdWdFpXNTBJdWtDQ2hCR2FXVnNaRkJoZEdoRmJHVnRaVzUwRWhRS0RHWnBaV3hrWDI1MWJXSmxjaGdCSUFFb0JSSVNDZ3BtYVdWc1pGOXVZVzFsR0FJZ0FTZ0pFajRLQ21acFpXeGtYM1I1Y0dVWUF5QUJLQTR5S2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1Um1sbGJHUkVaWE5qY21sd2RHOXlVSEp2ZEc4dVZIbHdaUkk4Q2doclpYbGZkSGx3WlJnRUlBRW9EaklxTG1kdmIyZHNaUzV3Y205MGIySjFaaTVHYVdWc1pFUmxjMk55YVhCMGIzSlFjbTkwYnk1VWVYQmxFajRLQ25aaGJIVmxYM1I1Y0dVWUJTQUJLQTR5S2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1Um1sbGJHUkVaWE5qY21sd2RHOXlVSEp2ZEc4dVZIbHdaUklQQ2dWcGJtUmxlQmdHSUFFb0JFZ0FFaElLQ0dKdmIyeGZhMlY1R0FjZ0FTZ0lTQUFTRVFvSGFXNTBYMnRsZVJnSUlBRW9BMGdBRWhJS0NIVnBiblJmYTJWNUdBa2dBU2dFU0FBU0ZBb0tjM1J5YVc1blgydGxlUmdLSUFFb0NVZ0FRZ3NLQ1hOMVluTmpjbWx3ZENxZEFRb0dTV2R1YjNKbEVoWUtFa2xIVGs5U1JWOVZUbE5RUlVOSlJrbEZSQkFBRWhrS0ZVbEhUazlTUlY5SlJsOVZUbEJQVUZWTVFWUkZSQkFCRWhzS0YwbEhUazlTUlY5SlJsOUVSVVpCVlV4VVgxWkJURlZGRUFJU0VRb05TVWRPVDFKRlgwRk1WMEZaVXhBREVoUUtERWxIVGs5U1JWOUZUVkJVV1JBQkdnSUlBUklXQ2c1SlIwNVBVa1ZmUkVWR1FWVk1WQkFDR2dJSUFSb0NFQUVxYmdvS1MyNXZkMjVTWldkbGVCSWJDaGRMVGs5WFRsOVNSVWRGV0Y5VlRsTlFSVU5KUmtsRlJCQUFFaUFLSEV0T1QxZE9YMUpGUjBWWVgwaFVWRkJmU0VWQlJFVlNYMDVCVFVVUUFSSWhDaDFMVGs5WFRsOVNSVWRGV0Y5SVZGUlFYMGhGUVVSRlVsOVdRVXhWUlJBQ09sd0tCMjFsYzNOaFoyVVNIeTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVUV1Z6YzJGblpVOXdkR2x2Ym5NWWh3a2dBU2dMTWlBdVluVm1MblpoYkdsa1lYUmxMazFsYzNOaFoyVkRiMjV6ZEhKaGFXNTBjMUlIYldWemMyRm5aVHBVQ2dWdmJtVnZaaElkTG1kdmIyZHNaUzV3Y205MGIySjFaaTVQYm1WdlprOXdkR2x2Ym5NWWh3a2dBU2dMTWg0dVluVm1MblpoYkdsa1lYUmxMazl1Wlc5bVEyOXVjM1J5WVdsdWRITlNCVzl1Wlc5bU9sUUtCV1pwWld4a0VoMHVaMjl2WjJ4bExuQnliM1J2WW5WbUxrWnBaV3hrVDNCMGFXOXVjeGlIQ1NBQktBc3lIaTVpZFdZdWRtRnNhV1JoZEdVdVJtbGxiR1JEYjI1emRISmhhVzUwYzFJRlptbGxiR1E2WXdvS2NISmxaR1ZtYVc1bFpCSWRMbWR2YjJkc1pTNXdjbTkwYjJKMVppNUdhV1ZzWkU5d2RHbHZibk1ZaUFrZ0FTZ0xNaU11WW5WbUxuWmhiR2xrWVhSbExsQnlaV1JsWm1sdVpXUkRiMjV6ZEhKaGFXNTBjMUlLY0hKbFpHVm1hVzVsWkVKdUNoSmlkV2xzWkM1aWRXWXVkbUZzYVdSaGRHVkNEVlpoYkdsa1lYUmxVSEp2ZEc5UUFWcEhZblZtTG1KMWFXeGtMMmRsYmk5bmJ5OWlkV1ppZFdsc1pDOXdjbTkwYjNaaGJHbGtZWFJsTDNCeWIzUnZZMjlzWW5WbVptVnljeTluYnk5aWRXWXZkbUZzYVdSaGRHVSIsW2dzLEtmLHRlXSksaDI9eigiQ2lwcE1UaHVYM1JsYlhCc1lYUmxMM1l4TDJreE9HNWZkR1Z0Y0d4aGRHVmZZV1J0YVc0dWNISnZkRzhTRUdreE9HNWZkR1Z0Y0d4aGRHVXVkakVpSFFvYlIyVjBWR1Z0Y0d4aGRHVkdhV1ZzWkVsdVptOVNaWEYxWlhOMElsY0tIRWRsZEZSbGJYQnNZWFJsUm1sbGJHUkpibVp2VW1WemNHOXVjMlVTTndvT2RHRnphMTkwWlcxd2JHRjBaWE1ZQVNBREtBc3lIeTVwTVRodVgzUmxiWEJzWVhSbExuWXhMbFJoYzJ0VVpXMXdiR0YwWlhNaWNBb05WR0Z6YTFSbGJYQnNZWFJsY3hJS0NnSnBaQmdCSUFFb0NSSU1DZ1J1WVcxbEdBSWdBU2dKRWhNS0MyUmxjMk55YVhCMGFXOXVHQU1nQVNnSkVqQUtDMlpwWld4a1gybHVabTl6R0FRZ0F5Z0xNaHN1YVRFNGJsOTBaVzF3YkdGMFpTNTJNUzVHYVdWc1pFbHVabThpY3dvSlJtbGxiR1JKYm1adkVoQUtDR2t4T0c1ZmEyVjVHQUVnQVNnSkVoSUtDbWt4T0c1ZmRtRnNkV1VZQWlBQktBa1NEQW9FWkdWell4Z0RJQUVvQ1JJV0NnNXVaV1ZrWDNSeVlXNXpiR0YwWlJnRUlBRW9DUklNQ2dSMGVYQmxHQVVnQVNnSkVnd0tCR1Z1ZFcwWUJpQUJLQWtpSWdvUlRXRnlhMlYwYVc1blEyRnlaRXhwYm1zU0RRb0ZkR2wwYkdVWUFTQUJLQWtpaWdNS0ZrMWhjbXRsZEdsdVowTmhjbVJRYjNCMWNFWnBkbVVTRFFvRmRHbDBiR1VZQVNBQktBa1NFd29MY0c5d2RYQmZkR2wwYkdVWUFpQUJLQWtTRkFvTWNHRm5aVjh4WDNScGRHeGxHQU1nQVNnSkVob0tFbkJoWjJWZk1WOWtaWE5qY21sd2RHbHZiaGdFSUFFb0NSSVVDZ3h3WVdkbFh6SmZkR2wwYkdVWUJTQUJLQWtTR2dvU2NHRm5aVjh5WDJSbGMyTnlhWEIwYVc5dUdBWWdBU2dKRWhRS0RIQmhaMlZmTTE5MGFYUnNaUmdISUFFb0NSSWFDaEp3WVdkbFh6TmZaR1Z6WTNKcGNIUnBiMjRZQ0NBQktBa1NGQW9NY0dGblpWODBYM1JwZEd4bEdBa2dBU2dKRWhvS0VuQmhaMlZmTkY5a1pYTmpjbWx3ZEdsdmJoZ0tJQUVvQ1JJVUNneHdZV2RsWHpWZmRHbDBiR1VZQ3lBQktBa1NHZ29TY0dGblpWODFYMlJsYzJOeWFYQjBhVzl1R0F3Z0FTZ0pFaElLQ21KMGJsOHhYM1JsZUhRWURTQUJLQWtTRkFvTVluUnVYekZmY0hKdmJYQjBHQTRnQVNnSkVoSUtDbUowYmw4eVgzUmxlSFFZRHlBQktBa1NGQW9NWW5SdVh6SmZjSEp2YlhCMEdCQWdBU2dKTXBFQkNoaEpNVGh1VkdWdGNHeGhkR1ZCWkcxcGJsTmxjblpwWTJVU2RRb1VSMlYwVkdWdGNHeGhkR1ZHYVdWc1pFbHVabThTTFM1cE1UaHVYM1JsYlhCc1lYUmxMbll4TGtkbGRGUmxiWEJzWVhSbFJtbGxiR1JKYm1adlVtVnhkV1Z6ZEJvdUxta3hPRzVmZEdWdGNHeGhkR1V1ZGpFdVIyVjBWR1Z0Y0d4aGRHVkdhV1ZzWkVsdVptOVNaWE53YjI1elpVTFlBUW9VWTI5dExta3hPRzVmZEdWdGNHeGhkR1V1ZGpGQ0Zra3hPRzVVWlcxd2JHRjBaVUZrYldsdVVISnZkRzlRQVZwTFoybDBiR0ZpTG0xdmJtbGpZUzVqYmk5MmFXUmhMM05rYXk5aWFYcHpaWEoyWlhJdFoyOHVaMmwwTDJreE9HNWZkR1Z0Y0d4aGRHVXZkakU3YVRFNGJsOTBaVzF3YkdGMFpYWXhvZ0lEU1ZoWXFnSVBTVEU0YmxSbGJYQnNZWFJsTGxZeHlnSVBTVEU0YmxSbGJYQnNZWFJsWEZZeDRnSWJTVEU0YmxSbGJYQnNZWFJsWEZZeFhFZFFRazFsZEdGa1lYUmg2Z0lRU1RFNGJsUmxiWEJzWVhSbE9qcFdNV0lHY0hKdmRHOHoiLFtZZSxWcyxIZSx0ZV0pLGIyPUgoaDIsMCksVjI9eigiQ2hKbWFXeGxMM1l4TDJacGJHVXVjSEp2ZEc4U0IyWnBiR1V1ZGpFaVNnb09VMmxuYmxWeWJGSmxjWFZsYzNRU0VBb0labWxzWlc1aGJXVVlBU0FCS0FrU0pnb0diVzlrZFd4bEdBSWdBU2dPTWhZdVptbHNaUzUyTVM1UWNtVlRhV2R1VFc5a2RXeGxJbDRLRDFOcFoyNVZjbXhTWlhOd2IyNXpaUklVQ2d4d2NtVmZjMmxuYmw5MWNtd1lBU0FCS0FrU0Vnb0tiMkpxWldOMFgzVnliQmdDSUFFb0NSSVBDZ2RqWkc1ZmRYSnNHQU1nQVNnSkVoQUtDR1pwYkdWdVlXMWxHQVFnQVNnSklqd0tFMEpoZEdOb1UybG5ibFZ5YkZKbGNYVmxjM1FTSlFvRWRYSnNjeGdCSUFNb0N6SVhMbVpwYkdVdWRqRXVVMmxuYmxWeWJGSmxjWFZsYzNRaVJ3b1VRbUYwWTJoVGFXZHVWWEpzVW1WemNHOXVjMlVTTHdvTmMybG5ibDkxY214ZmJHbHpkQmdCSUFNb0N6SVlMbVpwYkdVdWRqRXVVMmxuYmxWeWJGSmxjM0J2Ym5ObEtwWUJDZzFRY21WVGFXZHVUVzlrZFd4bEVoOEtHMUJTUlY5VFNVZE9YMDFQUkZWTVJWOVZUbE5RUlVOSlJrbEZSQkFBRWlBS0hGQlNSVjlUU1VkT1gwMVBSRlZNUlY5VFJWTlRTVTlPWDBaSlRFVVFBUklrQ2lCUVVrVmZVMGxIVGw5TlQwUlZURVZmVTBWVFUwbFBUbDlHUlVWRVFrRkRTeEFDRWh3S0dGQlNSVjlUU1VkT1gwMVBSRlZNUlY5TlFWSkxSRTlYVGhBRE1wZ0JDZ3RHYVd4bFUyVnlkbWxqWlJJOENnZFRhV2R1VlhKc0VoY3VabWxzWlM1Mk1TNVRhV2R1VlhKc1VtVnhkV1Z6ZEJvWUxtWnBiR1V1ZGpFdVUybG5ibFZ5YkZKbGMzQnZibk5sRWtzS0RFSmhkR05vVTJsbmJsVnliQkljTG1acGJHVXVkakV1UW1GMFkyaFRhV2R1VlhKc1VtVnhkV1Z6ZEJvZExtWnBiR1V1ZGpFdVFtRjBZMmhUYVdkdVZYSnNVbVZ6Y0c5dWMyVkNrQUVLQzJOdmJTNW1hV3hsTG5ZeFFnbEdhV3hsVUhKdmRHOVFBVm81WjJsMGJHRmlMbTF2Ym1sallTNWpiaTkyYVdSaEwzTmtheTlpYVhwelpYSjJaWEl0WjI4dVoybDBMMlpwYkdVdmRqRTdabWxzWlhZeG9nSURSbGhZcWdJSFJtbHNaUzVXTWNvQ0IwWnBiR1ZjVmpIaUFoTkdhV3hsWEZZeFhFZFFRazFsZEdGa1lYUmg2Z0lJUm1sc1pUbzZWakZpQm5CeWIzUnZNdyIpLG0yPUgoVjIsMCksZjI9eigiQ2hobWFXeGxMM1l4TDJGa2JXbHVYMlpwYkdVdWNISnZkRzhTQjJacGJHVXVkakVpVkFvVFFXUnRhVzVUYVdkdVZYSnNVbVZ4ZFdWemRCSVFDZ2htYVd4bGJtRnRaUmdCSUFFb0NSSXJDZ1p0YjJSMWJHVVlBaUFCS0E0eUd5NW1hV3hsTG5ZeExrRmtiV2x1VUhKbFUybG5iazF2WkhWc1pTSmpDaFJCWkcxcGJsTnBaMjVWY214U1pYTndiMjV6WlJJVUNneHdjbVZmYzJsbmJsOTFjbXdZQVNBQktBa1NFZ29LYjJKcVpXTjBYM1Z5YkJnQ0lBRW9DUklQQ2dkalpHNWZkWEpzR0FNZ0FTZ0pFaEFLQ0dacGJHVnVZVzFsR0FRZ0FTZ0pJa1lLR0VGa2JXbHVRbUYwWTJoVGFXZHVWWEpzVW1WeGRXVnpkQklxQ2dSMWNteHpHQUVnQXlnTE1od3VabWxzWlM1Mk1TNUJaRzFwYmxOcFoyNVZjbXhTWlhGMVpYTjBJbEVLR1VGa2JXbHVRbUYwWTJoVGFXZHVWWEpzVW1WemNHOXVjMlVTTkFvTmMybG5ibDkxY214ZmJHbHpkQmdCSUFNb0N6SWRMbVpwYkdVdWRqRXVRV1J0YVc1VGFXZHVWWEpzVW1WemNHOXVjMlVxbUFFS0VrRmtiV2x1VUhKbFUybG5iazF2WkhWc1pSSWxDaUZCUkUxSlRsOVFVa1ZmVTBsSFRsOU5UMFJWVEVWZlZVNVRVRVZEU1VaSlJVUVFBQkl1Q2lwQlJFMUpUbDlRVWtWZlUwbEhUbDlOVDBSVlRFVmZRVkJRWDBoUFRVVmZVa1ZEVDAxTlJVNUVSVVFRQVJJckNpZEJSRTFKVGw5UVVrVmZVMGxIVGw5TlQwUlZURVZmVGs5VVNVWkpRMEZVU1U5T1gwWkpURVVRQWpLN0FRb1FRV1J0YVc1R2FXeGxVMlZ5ZG1salpSSkxDZ3hCWkcxcGJsTnBaMjVWY213U0hDNW1hV3hsTG5ZeExrRmtiV2x1VTJsbmJsVnliRkpsY1hWbGMzUWFIUzVtYVd4bExuWXhMa0ZrYldsdVUybG5ibFZ5YkZKbGMzQnZibk5sRWxvS0VVRmtiV2x1UW1GMFkyaFRhV2R1VlhKc0VpRXVabWxzWlM1Mk1TNUJaRzFwYmtKaGRHTm9VMmxuYmxWeWJGSmxjWFZsYzNRYUlpNW1hV3hsTG5ZeExrRmtiV2x1UW1GMFkyaFRhV2R1VlhKc1VtVnpjRzl1YzJWQ2xRRUtDMk52YlM1bWFXeGxMbll4UWc1QlpHMXBia1pwYkdWUWNtOTBiMUFCV2psbmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2Wm1sc1pTOTJNVHRtYVd4bGRqR2lBZ05HV0ZpcUFnZEdhV3hsTGxZeHlnSUhSbWxzWlZ4V01lSUNFMFpwYkdWY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWdoR2FXeGxPanBXTVdJR2NISnZkRzh6IiksQTI9SChmMiwwKSxwMj16KCJDaHB1YjNScFptbGxjaTkyTVM5dWIzUnBabWxsY2k1d2NtOTBieElMYm05MGFXWnBaWEl1ZGpFaUt3b05URzluYjNWMFVtVnhkV1Z6ZEJJYUNnbGtaWFpwWTJWZmFXUVlBU0FCS0FsQ0I3cElCSElDRUFFaUVBb09URzluYjNWMFVtVnpjRzl1YzJVaWpBSUtGVkpsWjJsemRHVnlSR1YyYVdObFVtVnhkV1Z6ZEJJWUNnZDFjMlZ5WDJsa0dBRWdBU2dKUWdlNlNBUnlBaEFCRWhvS0NXUmxkbWxqWlY5cFpCZ0NJQUVvQ1VJSHVrZ0VjZ0lRQVJJeENndGtaWFpwWTJWZmRIbHdaUmdESUFFb0NVSWN1a2daY2hkU0IwSlNUMWRUUlZKU0IwRk9SRkpQU1VSU0EwbFBVeElZQ2dkdmMxOTBlWEJsR0FRZ0FTZ0pRZ2U2U0FSeUFoQUJFaHdLQzJOc2FXVnVkRjkwZVhCbEdBVWdBU2dKUWdlNlNBUnlBaEFCRWg4S0RtTnNhV1Z1ZEY5MlpYSnphVzl1R0FZZ0FTZ0pRZ2U2U0FSeUFoQUJFaDRLRFdOc2FXVnVkRjlzYjJOaGJHVVlCeUFCS0FsQ0I3cElCSElDRUFFU0VRb0pabU50WDNSdmEyVnVHQWdnQVNnSkloZ0tGbEpsWjJsemRHVnlSR1YyYVdObFVtVnpjRzl1YzJVaU5Rb1hSR1Z5WldkcGMzUmxja1JsZG1salpWSmxjWFZsYzNRU0dnb0paR1YyYVdObFgybGtHQUVnQVNnSlFnZTZTQVJ5QWhBQklob0tHRVJsY21WbmFYTjBaWEpFWlhacFkyVlNaWE53YjI1elpUS1dBZ29QVG05MGFXWnBaWEpUWlhKMmFXTmxFbHNLRGxKbFoybHpkR1Z5UkdWMmFXTmxFaUl1Ym05MGFXWnBaWEl1ZGpFdVVtVm5hWE4wWlhKRVpYWnBZMlZTWlhGMVpYTjBHaU11Ym05MGFXWnBaWEl1ZGpFdVVtVm5hWE4wWlhKRVpYWnBZMlZTWlhOd2IyNXpaU0lBRW1FS0VFUmxjbVZuYVhOMFpYSkVaWFpwWTJVU0pDNXViM1JwWm1sbGNpNTJNUzVFWlhKbFoybHpkR1Z5UkdWMmFXTmxVbVZ4ZFdWemRCb2xMbTV2ZEdsbWFXVnlMbll4TGtSbGNtVm5hWE4wWlhKRVpYWnBZMlZTWlhOd2IyNXpaU0lBRWtNS0JreHZaMjkxZEJJYUxtNXZkR2xtYVdWeUxuWXhMa3h2WjI5MWRGSmxjWFZsYzNRYUd5NXViM1JwWm1sbGNpNTJNUzVNYjJkdmRYUlNaWE53YjI1elpTSUFRckFCQ2c5amIyMHVibTkwYVdacFpYSXVkakZDRFU1dmRHbG1hV1Z5VUhKdmRHOVFBVnBCWjJsMGJHRmlMbTF2Ym1sallTNWpiaTkyYVdSaEwzTmtheTlpYVhwelpYSjJaWEl0WjI4dVoybDBMMjV2ZEdsbWFXVnlMM1l4TzI1dmRHbG1hV1Z5ZGpHaUFnTk9XRmlxQWd0T2IzUnBabWxsY2k1V01jb0NDMDV2ZEdsbWFXVnlYRll4NGdJWFRtOTBhV1pwWlhKY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWd4T2IzUnBabWxsY2pvNlZqRmlCbkJ5YjNSdk13IixbWWVdKSxaMj1IKHAyLDApLHpzPXooIkNoNXViM1JwWm1sbGNpOTJNUzl1YjNScFptbGpZWFJwYjI0dWNISnZkRzhTQzI1dmRHbG1hV1Z5TG5ZeEl1VUJDaEJPYjNScFptbGpZWFJwYjI1SmRHVnRFZ3NLQTNWcFpCZ0JJQUVvQ1JJNUNnWmtaWFJoYVd3WUF5QURLQXN5S1M1dWIzUnBabWxsY2k1Mk1TNU9iM1JwWm1sallYUnBiMjVKZEdWdExrUmxkR0ZwYkVWdWRISjVFaXNLQkhSNWNHVVlCQ0FCS0E0eUhTNXViM1JwWm1sbGNpNTJNUzVPYjNScFptbGpZWFJwYjI1VWVYQmxFaTBLQ1dOeVpXRjBaVjloZEJnSElBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFhTFFvTFJHVjBZV2xzUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVNKZUNocEhaWFJPYjNScFptbGpZWFJwYjI1TWFYTjBVbVZ4ZFdWemRCSVhDZ3BzWVhSbGMzUmZkV2xrR0FFZ0FTZ0pTQUNJQVFFU0dBb0ZiR2x0YVhRWUFpQUJLQVZDQ2JwSUJob0VHQW9vQVVJTkNndGZiR0YwWlhOMFgzVnBaQ0o4Q2h0SFpYUk9iM1JwWm1sallYUnBiMjVNYVhOMFVtVnpjRzl1YzJVU0R3b0hjM1ZqWTJWemN4Z0JJQUVvQ0JJckNnUmtZWFJoR0FJZ0F5Z0xNaDB1Ym05MGFXWnBaWEl1ZGpFdVRtOTBhV1pwWTJGMGFXOXVTWFJsYlJJTkNnVjBiM1JoYkJnRElBRW9BeElRQ2dob1lYTmZibVY0ZEJnRUlBRW9DQ0x4QVFvV1RtOTBhV1pwWTJGMGFXOXVTWFJsYlVSbGRHRnBiQklOQ2dWMGFYUnNaUmdCSUFFb0NSSVBDZ2RqYjI1MFpXNTBHQUlnQVNnSkVpY0tCbUoxZEhSdmJoZ0RJQUVvQ3pJWExtNXZkR2xtYVdWeUxuWXhMa0oxZEhSdmJrbHVabThTSlFvRmJXVmthV0VZQkNBQktBc3lGaTV1YjNScFptbGxjaTUyTVM1TlpXUnBZVWx1Wm04U01Rb01iVzlpYVd4bFgyMWxaR2xoR0FVZ0FTZ0xNaFl1Ym05MGFXWnBaWEl1ZGpFdVRXVmthV0ZKYm1adlNBQ0lBUUVTSXdvRVpHRjBZUmdHSUFNb0N6SVZMbTV2ZEdsbWFXVnlMbll4TGxCaFoyVkVZWFJoUWc4S0RWOXRiMkpwYkdWZmJXVmthV0VpSmdvSVVHRm5aVVJoZEdFU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSklqOEtDa0oxZEhSdmJrbHVabThTRXdvTFluVjBkRzl1WDNSbGVIUVlBU0FCS0FrU0RBb0VkSGx3WlJnQ0lBRW9DUklPQ2daMFlYSm5aWFFZQXlBQktBa2lUQW9KVFdWa2FXRkpibVp2RWd3S0JIUjVjR1VZQVNBQktBa1NDd29EZFhKc0dBSWdBU2dKRWhZS0NXTnZkbVZ5WDNWeWJCZ0RJQUVvQ1VnQWlBRUJRZ3dLQ2w5amIzWmxjbDkxY213aXNnRUtFazV2ZEdsbWFXTmhkR2x2YmtsMFpXMVdNaElMQ2dOMWFXUVlBU0FCS0FrU013b0daR1YwWVdsc0dBTWdBU2dMTWlNdWJtOTBhV1pwWlhJdWRqRXVUbTkwYVdacFkyRjBhVzl1U1hSbGJVUmxkR0ZwYkJJckNnUjBlWEJsR0FRZ0FTZ09NaDB1Ym05MGFXWnBaWEl1ZGpFdVRtOTBhV1pwWTJGMGFXOXVWSGx3WlJJdENnbGpjbVZoZEdWZllYUVlCeUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0lvQUJDaDFIWlhST2IzUnBabWxqWVhScGIyNU1hWE4wVW1WemNHOXVjMlZXTWhJUENnZHpkV05qWlhOekdBRWdBU2dJRWkwS0JHUmhkR0VZQWlBREtBc3lIeTV1YjNScFptbGxjaTUyTVM1T2IzUnBabWxqWVhScGIyNUpkR1Z0VmpJU0RRb0ZkRzkwWVd3WUF5QUJLQU1TRUFvSWFHRnpYMjVsZUhRWUJDQUJLQWdxZ1FFS0VrNXZkR2xtYVdOaGRHbHZibE4wWVhSMWN4SWpDaDlPVDFSSlJrbERRVlJKVDA1ZlUxUkJWRlZUWDFWT1UxQkZRMGxHU1VWRUVBQVNJUW9kVGs5VVNVWkpRMEZVU1U5T1gxTlVRVlJWVTE5UVZVSk1TVk5JUlVRUUFSSWpDaDlPVDFSSlJrbERRVlJKVDA1ZlUxUkJWRlZUWDFWT1VGVkNURWxUU0VWRUVBSXFrZ0VLRUU1dmRHbG1hV05oZEdsdmJsUjVjR1VTSVFvZFRrOVVTVVpKUTBGVVNVOU9YMVJaVUVWZlZVNVRVRVZEU1VaSlJVUVFBQkljQ2hoT1QxUkpSa2xEUVZSSlQwNWZWRmxRUlY5VFdWTlVSVTBRQVJJYUNoWk9UMVJKUmtsRFFWUkpUMDVmVkZsUVJWOVZVMFZTRUFJU0lRb2RUazlVU1VaSlEwRlVTVTlPWDFSWlVFVmZUa1ZYWDFaRlVsTkpUMDRRQXpMdEFRb1RUbTkwYVdacFkyRjBhVzl1VTJWeWRtbGpaUkpvQ2hOSFpYUk9iM1JwWm1sallYUnBiMjVNYVhOMEVpY3VibTkwYVdacFpYSXVkakV1UjJWMFRtOTBhV1pwWTJGMGFXOXVUR2x6ZEZKbGNYVmxjM1FhS0M1dWIzUnBabWxsY2k1Mk1TNUhaWFJPYjNScFptbGpZWFJwYjI1TWFYTjBVbVZ6Y0c5dWMyVVNiQW9WUjJWMFRtOTBhV1pwWTJGMGFXOXVUR2x6ZEZZeUVpY3VibTkwYVdacFpYSXVkakV1UjJWMFRtOTBhV1pwWTJGMGFXOXVUR2x6ZEZKbGNYVmxjM1FhS2k1dWIzUnBabWxsY2k1Mk1TNUhaWFJPYjNScFptbGpZWFJwYjI1TWFYTjBVbVZ6Y0c5dWMyVldNa0swQVFvUFkyOXRMbTV2ZEdsbWFXVnlMbll4UWhGT2IzUnBabWxqWVhScGIyNVFjbTkwYjFBQldrRm5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmJtOTBhV1pwWlhJdmRqRTdibTkwYVdacFpYSjJNYUlDQTA1WVdLb0NDMDV2ZEdsbWFXVnlMbFl4eWdJTFRtOTBhV1pwWlhKY1ZqSGlBaGRPYjNScFptbGxjbHhXTVZ4SFVFSk5aWFJoWkdGMFllb0NERTV2ZEdsbWFXVnlPanBXTVdJR2NISnZkRzh6IixbWWUsdGVdKSxHMj1IKHpzLDApLFgyPXooIkNpUnViM1JwWm1sbGNpOTJNUzl1YjNScFptbGpZWFJwYjI1ZllXUnRhVzR1Y0hKdmRHOFNDMjV2ZEdsbWFXVnlMbll4SXR3QkNpQkJaR1JPWlhkV1pYSnphVzl1VG05MGFXWnBZMkYwYVc5dVVtVnhkV1Z6ZEJJTkNnVjBhWFJzWlJnQklBRW9DUklUQ2d0MFpXMXdiR0YwWlY5cFpCZ0RJQUVvQ1JKY0NoQndiR0ZqWldodmJHUmxjbDlrWVhSaEdBUWdBeWdMTWtJdWJtOTBhV1pwWlhJdWRqRXVRV1JrVG1WM1ZtVnljMmx2Yms1dmRHbG1hV05oZEdsdmJsSmxjWFZsYzNRdVVHeGhZMlZvYjJ4a1pYSkVZWFJoUlc1MGNua2FOZ29VVUd4aFkyVm9iMnhrWlhKRVlYUmhSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBU0kwQ2lGQlpHUk9aWGRXWlhKemFXOXVUbTkwYVdacFkyRjBhVzl1VW1WemNHOXVjMlVTRHdvSGMzVmpZMlZ6Y3hnQklBRW9DQ0thQVFvZlZYQmtZWFJsVTNsemRHVnRUbTkwYVdacFkyRjBhVzl1VW1WeGRXVnpkQklZQ2hCdWIzUnBabWxqWVhScGIyNWZkV2xrR0FFZ0FTZ0pFalFLQm5OMFlYUjFjeGdDSUFFb0RqSWZMbTV2ZEdsbWFXVnlMbll4TGs1dmRHbG1hV05oZEdsdmJsTjBZWFIxYzBnQWlBRUJFaElLQlhScGRHeGxHQU1nQVNnSlNBR0lBUUZDQ1FvSFgzTjBZWFIxYzBJSUNnWmZkR2wwYkdVaU13b2dWWEJrWVhSbFUzbHpkR1Z0VG05MGFXWnBZMkYwYVc5dVVtVnpjRzl1YzJVU0R3b0hjM1ZqWTJWemN4Z0JJQUVvQ0NMM0FRb1ZRV1J0YVc1T2IzUnBabWxqWVhScGIyNUpkR1Z0RWdzS0EzVnBaQmdCSUFFb0NSSU5DZ1YwYVhSc1pSZ0NJQUVvQ1JJTUNnUmtaWE5qR0FNZ0FTZ0pFaWNLQm1SbGRHRnBiQmdFSUFFb0N6SVhMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVRkSEoxWTNRU0t3b0VkSGx3WlJnRklBRW9EaklkTG01dmRHbG1hV1Z5TG5ZeExrNXZkR2xtYVdOaGRHbHZibFI1Y0dVU0x3b0djM1JoZEhWekdBWWdBU2dPTWg4dWJtOTBhV1pwWlhJdWRqRXVUbTkwYVdacFkyRjBhVzl1VTNSaGRIVnpFaTBLQ1dOeVpXRjBaVjloZEJnSElBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFpN2dJS0cxQmhaMlZPYjNScFptbGpZWFJwYjI1TWFYTjBVbVZ4ZFdWemRCSVZDZ1J3WVdkbEdBRWdBU2dGUWdlNlNBUWFBaWdCRWh3S0NYQmhaMlZmYzJsNlpSZ0NJQUVvQlVJSnVrZ0dHZ1FZWkNnQkVqMEtFVzV2ZEdsbWFXTmhkR2x2Ymw5MGVYQmxHQU1nQVNnT01oMHVibTkwYVdacFpYSXVkakV1VG05MGFXWnBZMkYwYVc5dVZIbHdaVWdBaUFFQkVrRUtFMjV2ZEdsbWFXTmhkR2x2Ymw5emRHRjBkWE1ZQkNBQktBNHlIeTV1YjNScFptbGxjaTUyTVM1T2IzUnBabWxqWVhScGIyNVRkR0YwZFhOSUFZZ0JBUklkQ2hCdWIzUnBabWxqWVhScGIyNWZkV2xrR0FVZ0FTZ0pTQUtJQVFFU0h3b1NibTkwYVdacFkyRjBhVzl1WDNScGRHeGxHQVlnQVNnSlNBT0lBUUZDRkFvU1gyNXZkR2xtYVdOaGRHbHZibDkwZVhCbFFoWUtGRjl1YjNScFptbGpZWFJwYjI1ZmMzUmhkSFZ6UWhNS0VWOXViM1JwWm1sallYUnBiMjVmZFdsa1FoVUtFMTl1YjNScFptbGpZWFJwYjI1ZmRHbDBiR1VpY0FvY1VHRm5aVTV2ZEdsbWFXTmhkR2x2Ymt4cGMzUlNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVqQUtCR1JoZEdFWUFpQURLQXN5SWk1dWIzUnBabWxsY2k1Mk1TNUJaRzFwYms1dmRHbG1hV05oZEdsdmJrbDBaVzBTRFFvRmRHOTBZV3dZQXlBQktBTWkxQUVLSEVGa1pGTjVjM1JsYlU1dmRHbG1hV05oZEdsdmJsSmxjWFZsYzNRU0RRb0ZkR2wwYkdVWUFTQUJLQWtTRXdvTGRHVnRjR3hoZEdWZmFXUVlBeUFCS0FrU1dBb1FjR3hoWTJWb2IyeGtaWEpmWkdGMFlSZ0VJQU1vQ3pJK0xtNXZkR2xtYVdWeUxuWXhMa0ZrWkZONWMzUmxiVTV2ZEdsbWFXTmhkR2x2YmxKbGNYVmxjM1F1VUd4aFkyVm9iMnhrWlhKRVlYUmhSVzUwY25rYU5nb1VVR3hoWTJWb2IyeGtaWEpFWVhSaFJXNTBjbmtTQ3dvRGEyVjVHQUVnQVNnSkVnMEtCWFpoYkhWbEdBSWdBU2dKT2dJNEFTSXdDaDFCWkdSVGVYTjBaVzFPYjNScFptbGpZWFJwYjI1U1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJSWlrS0VrZGxkRlJsYlhCc1lYUmxVbVZ4ZFdWemRCSVRDZ3QwWlcxd2JHRjBaVjlwWkJnQklBRW9DU0tKQVFvVFIyVjBWR1Z0Y0d4aGRHVlNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVpb0tDV2t4T0c1ZlpHRjBZUmdDSUFFb0N6SVhMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVRkSEoxWTNRU05Rb0lkR1Z0Y0d4aGRHVVlCU0FCS0FzeUl5NXViM1JwWm1sbGNpNTJNUzVPYjNScFptbGpZWFJwYjI1SmRHVnRSR1YwWVdsc0l0a0JDaEpCWkdSVVpXMXdiR0YwWlZKbGNYVmxjM1FTREFvRWJtRnRaUmdCSUFFb0NSSVRDZ3RrWlhOamNtbHdkR2x2YmhnQ0lBRW9DUklxQ2dscE1UaHVYMlJoZEdFWUF5QUJLQXN5Rnk1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VTNSeWRXTjBFZ3NLQTNWcFpCZ0VJQUVvQ1JJMUNnaDBaVzF3YkdGMFpSZ0ZJQUVvQ3pJakxtNXZkR2xtYVdWeUxuWXhMazV2ZEdsbWFXTmhkR2x2YmtsMFpXMUVaWFJoYVd3U01Bb05kR1Z0Y0d4aGRHVmZkSGx3WlJnR0lBRW9EaklaTG01dmRHbG1hV1Z5TG5ZeExsUmxiWEJzWVhSbFZIbHdaU0t6QVFvZVFXUmtUbTkwYVdacFkyRjBhVzl1VkdWdGNHeGhkR1ZTWlhGMVpYTjBFZ3dLQkc1aGJXVVlBU0FCS0FrU0V3b0xaR1Z6WTNKcGNIUnBiMjRZQWlBQktBa1NLZ29KYVRFNGJsOWtZWFJoR0FNZ0FTZ0xNaGN1WjI5dloyeGxMbkJ5YjNSdlluVm1MbE4wY25WamRCSUxDZ04xYVdRWUJDQUJLQWtTTlFvSWRHVnRjR3hoZEdVWUJTQUJLQXN5SXk1dWIzUnBabWxsY2k1Mk1TNU9iM1JwWm1sallYUnBiMjVKZEdWdFJHVjBZV2xzSWpzS0UwRmtaRlJsYlhCc1lYUmxVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NCSVRDZ3QwWlcxd2JHRjBaVjlwWkJnQ0lBRW9DU0toQVFvTVZHVnRjR3hoZEdWSmRHVnRFZ3NLQTNWcFpCZ0JJQUVvQ1JJTUNnUnVZVzFsR0FJZ0FTZ0pFaE1LQzJSbGMyTnlhWEIwYVc5dUdBTWdBU2dKRWlvS0NXa3hPRzVmWkdGMFlSZ0VJQUVvQ3pJWExtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VGRISjFZM1FTTlFvSWRHVnRjR3hoZEdVWUJTQUJLQXN5SXk1dWIzUnBabWxsY2k1Mk1TNU9iM1JwWm1sallYUnBiMjVKZEdWdFJHVjBZV2xzSXBzQkNoWkhaWFJVWlcxd2JHRjBaVXhwYzNSU1pYRjFaWE4wRWhVS0JIQmhaMlVZQVNBQktBVkNCN3BJQkJvQ0tBRVNIQW9KY0dGblpWOXphWHBsR0FJZ0FTZ0ZRZ202U0FZYUJCaGtLQUVTRVFvRWJtRnRaUmdESUFFb0NVZ0FpQUVCRWpBS0RYUmxiWEJzWVhSbFgzUjVjR1VZQkNBQktBNHlHUzV1YjNScFptbGxjaTUyTVM1VVpXMXdiR0YwWlZSNWNHVkNCd29GWDI1aGJXVWlZZ29YUjJWMFZHVnRjR3hoZEdWTWFYTjBVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NCSW5DZ1JrWVhSaEdBSWdBeWdMTWhrdWJtOTBhV1pwWlhJdWRqRXVWR1Z0Y0d4aGRHVkpkR1Z0RWcwS0JYUnZkR0ZzR0FNZ0FTZ0RJdTBTQ2hCVVpXMXdiR0YwWlVreE9HNUVZWFJoRWpFS0FtRnlHQUVnQXlnTE1pVXVibTkwYVdacFpYSXVkakV1VkdWdGNHeGhkR1ZKTVRodVJHRjBZUzVCY2tWdWRISjVFakVLQW1OekdBSWdBeWdMTWlVdWJtOTBhV1pwWlhJdWRqRXVWR1Z0Y0d4aGRHVkpNVGh1UkdGMFlTNURjMFZ1ZEhKNUVqRUtBbVJsR0FNZ0F5Z0xNaVV1Ym05MGFXWnBaWEl1ZGpFdVZHVnRjR3hoZEdWSk1UaHVSR0YwWVM1RVpVVnVkSEo1RWpFS0FtVnVHQVFnQXlnTE1pVXVibTkwYVdacFpYSXVkakV1VkdWdGNHeGhkR1ZKTVRodVJHRjBZUzVGYmtWdWRISjVFakVLQW1WekdBVWdBeWdMTWlVdWJtOTBhV1pwWlhJdWRqRXVWR1Z0Y0d4aGRHVkpNVGh1UkdGMFlTNUZjMFZ1ZEhKNUVqZ0tCbVZ6WHpReE9SZ0dJQU1vQ3pJb0xtNXZkR2xtYVdWeUxuWXhMbFJsYlhCc1lYUmxTVEU0YmtSaGRHRXVSWE0wTVRsRmJuUnllUkl4Q2dKbVlSZ0hJQU1vQ3pJbExtNXZkR2xtYVdWeUxuWXhMbFJsYlhCc1lYUmxTVEU0YmtSaGRHRXVSbUZGYm5SeWVSSXhDZ0ptY2hnSUlBTW9DeklsTG01dmRHbG1hV1Z5TG5ZeExsUmxiWEJzWVhSbFNURTRia1JoZEdFdVJuSkZiblJ5ZVJJeENnSm9hUmdKSUFNb0N6SWxMbTV2ZEdsbWFXVnlMbll4TGxSbGJYQnNZWFJsU1RFNGJrUmhkR0V1U0dsRmJuUnllUkl4Q2dKcFpCZ0tJQU1vQ3pJbExtNXZkR2xtYVdWeUxuWXhMbFJsYlhCc1lYUmxTVEU0YmtSaGRHRXVTV1JGYm5SeWVSSXhDZ0pwZEJnTElBTW9DeklsTG01dmRHbG1hV1Z5TG5ZeExsUmxiWEJzWVhSbFNURTRia1JoZEdFdVNYUkZiblJ5ZVJJeENnSnFZUmdNSUFNb0N6SWxMbTV2ZEdsbWFXVnlMbll4TGxSbGJYQnNZWFJsU1RFNGJrUmhkR0V1U21GRmJuUnllUkl4Q2dKcmJ4Z05JQU1vQ3pJbExtNXZkR2xtYVdWeUxuWXhMbFJsYlhCc1lYUmxTVEU0YmtSaGRHRXVTMjlGYm5SeWVSSXhDZ0p1YkJnT0lBTW9DeklsTG01dmRHbG1hV1Z5TG5ZeExsUmxiWEJzWVhSbFNURTRia1JoZEdFdVRteEZiblJ5ZVJJeENnSndiQmdQSUFNb0N6SWxMbTV2ZEdsbWFXVnlMbll4TGxSbGJYQnNZWFJsU1RFNGJrUmhkR0V1VUd4RmJuUnllUkkyQ2dWd2RGOUNVaGdRSUFNb0N6SW5MbTV2ZEdsbWFXVnlMbll4TGxSbGJYQnNZWFJsU1RFNGJrUmhkR0V1VUhSQ1VrVnVkSEo1RWpZS0JYQjBYMUJVR0JFZ0F5Z0xNaWN1Ym05MGFXWnBaWEl1ZGpFdVZHVnRjR3hoZEdWSk1UaHVSR0YwWVM1UWRGQlVSVzUwY25rU01Rb0NjblVZRWlBREtBc3lKUzV1YjNScFptbGxjaTUyTVM1VVpXMXdiR0YwWlVreE9HNUVZWFJoTGxKMVJXNTBjbmtTTVFvQ2RHZ1lFeUFES0FzeUpTNXViM1JwWm1sbGNpNTJNUzVVWlcxd2JHRjBaVWt4T0c1RVlYUmhMbFJvUlc1MGNua1NNUW9DZEhJWUZDQURLQXN5SlM1dWIzUnBabWxsY2k1Mk1TNVVaVzF3YkdGMFpVa3hPRzVFWVhSaExsUnlSVzUwY25rU01Rb0NkV3NZRlNBREtBc3lKUzV1YjNScFptbGxjaTUyTVM1VVpXMXdiR0YwWlVreE9HNUVZWFJoTGxWclJXNTBjbmtTTVFvQ2Rta1lGaUFES0FzeUpTNXViM1JwWm1sbGNpNTJNUzVVWlcxd2JHRjBaVWt4T0c1RVlYUmhMbFpwUlc1MGNua1NOZ29GZW1oZlEwNFlGeUFES0FzeUp5NXViM1JwWm1sbGNpNTJNUzVVWlcxd2JHRjBaVWt4T0c1RVlYUmhMbHBvUTA1RmJuUnllUkkyQ2dWNmFGOUlTeGdZSUFNb0N6SW5MbTV2ZEdsbWFXVnlMbll4TGxSbGJYQnNZWFJsU1RFNGJrUmhkR0V1V21oSVMwVnVkSEo1RWpZS0JYcG9YMVJYR0JrZ0F5Z0xNaWN1Ym05MGFXWnBaWEl1ZGpFdVZHVnRjR3hoZEdWSk1UaHVSR0YwWVM1YWFGUlhSVzUwY25rYUtRb0hRWEpGYm5SeWVSSUxDZ05yWlhrWUFTQUJLQWtTRFFvRmRtRnNkV1VZQWlBQktBazZBamdCR2lrS0IwTnpSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBUm9wQ2dkRVpVVnVkSEo1RWdzS0EydGxlUmdCSUFFb0NSSU5DZ1YyWVd4MVpSZ0NJQUVvQ1RvQ09BRWFLUW9IUlc1RmJuUnllUklMQ2dOclpYa1lBU0FCS0FrU0RRb0ZkbUZzZFdVWUFpQUJLQWs2QWpnQkdpa0tCMFZ6Ulc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVJvc0NncEZjelF4T1VWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJTkNnVjJZV3gxWlJnQ0lBRW9DVG9DT0FFYUtRb0hSbUZGYm5SeWVSSUxDZ05yWlhrWUFTQUJLQWtTRFFvRmRtRnNkV1VZQWlBQktBazZBamdCR2lrS0IwWnlSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBUm9wQ2dkSWFVVnVkSEo1RWdzS0EydGxlUmdCSUFFb0NSSU5DZ1YyWVd4MVpSZ0NJQUVvQ1RvQ09BRWFLUW9IU1dSRmJuUnllUklMQ2dOclpYa1lBU0FCS0FrU0RRb0ZkbUZzZFdVWUFpQUJLQWs2QWpnQkdpa0tCMGwwUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVJvcENnZEtZVVZ1ZEhKNUVnc0tBMnRsZVJnQklBRW9DUklOQ2dWMllXeDFaUmdDSUFFb0NUb0NPQUVhS1FvSFMyOUZiblJ5ZVJJTENnTnJaWGtZQVNBQktBa1NEUW9GZG1Gc2RXVVlBaUFCS0FrNkFqZ0JHaWtLQjA1c1JXNTBjbmtTQ3dvRGEyVjVHQUVnQVNnSkVnMEtCWFpoYkhWbEdBSWdBU2dKT2dJNEFSb3BDZ2RRYkVWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJTkNnVjJZV3gxWlJnQ0lBRW9DVG9DT0FFYUt3b0pVSFJDVWtWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJTkNnVjJZV3gxWlJnQ0lBRW9DVG9DT0FFYUt3b0pVSFJRVkVWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJTkNnVjJZV3gxWlJnQ0lBRW9DVG9DT0FFYUtRb0hVblZGYm5SeWVSSUxDZ05yWlhrWUFTQUJLQWtTRFFvRmRtRnNkV1VZQWlBQktBazZBamdCR2lrS0IxUm9SVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBUm9wQ2dkVWNrVnVkSEo1RWdzS0EydGxlUmdCSUFFb0NSSU5DZ1YyWVd4MVpSZ0NJQUVvQ1RvQ09BRWFLUW9IVld0RmJuUnllUklMQ2dOclpYa1lBU0FCS0FrU0RRb0ZkbUZzZFdVWUFpQUJLQWs2QWpnQkdpa0tCMVpwUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVJvckNnbGFhRU5PUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVJvckNnbGFhRWhMUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVJvckNnbGFhRlJYUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVNKRUNpUkVaV3hsZEdWT2IzUnBabWxqWVhScGIyNUJibVJVWlcxd2JHRjBaVkpsY1hWbGMzUVNIQW9MZEdWdGNHeGhkR1ZmYVdRWUFTQUJLQWxDQjdwSUJISUNFQUVpT0FvbFJHVnNaWFJsVG05MGFXWnBZMkYwYVc5dVFXNWtWR1Z0Y0d4aGRHVlNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUtsc0tERlJsYlhCc1lYUmxWSGx3WlJJWkNoVlVSVTFRVEVGVVJWOVVXVkJGWDFWT1MwNVBWMDRRQUJJWUNoUlVSVTFRVEVGVVJWOVVXVkJGWDFOWlUxUkZUUkFCRWhZS0VsUkZUVkJNUVZSRlgxUlpVRVZmVlZORlVoQUNNdllHQ2hoT2IzUnBabWxqWVhScGIyNUJaRzFwYmxObGNuWnBZMlVTYmdvVlFXUmtVM2x6ZEdWdFRtOTBhV1pwWTJGMGFXOXVFaWt1Ym05MGFXWnBaWEl1ZGpFdVFXUmtVM2x6ZEdWdFRtOTBhV1pwWTJGMGFXOXVVbVZ4ZFdWemRCb3FMbTV2ZEdsbWFXVnlMbll4TGtGa1pGTjVjM1JsYlU1dmRHbG1hV05oZEdsdmJsSmxjM0J2Ym5ObEVtb0tFMGRsZEU1dmRHbG1hV05oZEdsdmJreHBjM1FTS0M1dWIzUnBabWxsY2k1Mk1TNVFZV2RsVG05MGFXWnBZMkYwYVc5dVRHbHpkRkpsY1hWbGMzUWFLUzV1YjNScFptbGxjaTUyTVM1UVlXZGxUbTkwYVdacFkyRjBhVzl1VEdsemRGSmxjM0J2Ym5ObEVuY0tHRlZ3WkdGMFpWTjVjM1JsYlU1dmRHbG1hV05oZEdsdmJoSXNMbTV2ZEdsbWFXVnlMbll4TGxWd1pHRjBaVk41YzNSbGJVNXZkR2xtYVdOaGRHbHZibEpsY1hWbGMzUWFMUzV1YjNScFptbGxjaTUyTVM1VmNHUmhkR1ZUZVhOMFpXMU9iM1JwWm1sallYUnBiMjVTWlhOd2IyNXpaUko2Q2hsQlpHUk9aWGRXWlhKemFXOXVUbTkwYVdacFkyRjBhVzl1RWkwdWJtOTBhV1pwWlhJdWRqRXVRV1JrVG1WM1ZtVnljMmx2Yms1dmRHbG1hV05oZEdsdmJsSmxjWFZsYzNRYUxpNXViM1JwWm1sbGNpNTJNUzVCWkdST1pYZFdaWEp6YVc5dVRtOTBhV1pwWTJGMGFXOXVVbVZ6Y0c5dWMyVVNVQW9MUVdSa1ZHVnRjR3hoZEdVU0h5NXViM1JwWm1sbGNpNTJNUzVCWkdSVVpXMXdiR0YwWlZKbGNYVmxjM1FhSUM1dWIzUnBabWxsY2k1Mk1TNUJaR1JVWlcxd2JHRjBaVkpsYzNCdmJuTmxFbHdLRDBkbGRGUmxiWEJzWVhSbFRHbHpkQklqTG01dmRHbG1hV1Z5TG5ZeExrZGxkRlJsYlhCc1lYUmxUR2x6ZEZKbGNYVmxjM1FhSkM1dWIzUnBabWxsY2k1Mk1TNUhaWFJVWlcxd2JHRjBaVXhwYzNSU1pYTndiMjV6WlJKUUNndEhaWFJVWlcxd2JHRjBaUklmTG01dmRHbG1hV1Z5TG5ZeExrZGxkRlJsYlhCc1lYUmxVbVZ4ZFdWemRCb2dMbTV2ZEdsbWFXVnlMbll4TGtkbGRGUmxiWEJzWVhSbFVtVnpjRzl1YzJVU2hnRUtIVVJsYkdWMFpVNXZkR2xtYVdOaGRHbHZia0Z1WkZSbGJYQnNZWFJsRWpFdWJtOTBhV1pwWlhJdWRqRXVSR1ZzWlhSbFRtOTBhV1pwWTJGMGFXOXVRVzVrVkdWdGNHeGhkR1ZTWlhGMVpYTjBHakl1Ym05MGFXWnBaWEl1ZGpFdVJHVnNaWFJsVG05MGFXWnBZMkYwYVc5dVFXNWtWR1Z0Y0d4aGRHVlNaWE53YjI1elpVSzVBUW9QWTI5dExtNXZkR2xtYVdWeUxuWXhRaFpPYjNScFptbGpZWFJwYjI1QlpHMXBibEJ5YjNSdlVBRmFRV2RwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOXViM1JwWm1sbGNpOTJNVHR1YjNScFptbGxjbll4b2dJRFRsaFlxZ0lMVG05MGFXWnBaWEl1VmpIS0FndE9iM1JwWm1sbGNseFdNZUlDRjA1dmRHbG1hV1Z5WEZZeFhFZFFRazFsZEdGa1lYUmg2Z0lNVG05MGFXWnBaWEk2T2xZeFlnWndjbTkwYnpNIixbWWUsdGUsSGUsenNdKSxJMj1IKFgyLDApLFIyPXooIkNoWmpiMjVtYVdjdmRqRXZZMjl1Wm1sbkxuQnliM1J2RWdsamIyNW1hV2N1ZGpFaWRBb0pSVEpDUTI5dVptbG5FaElLQ21Oc2RYTjBaWEpmYVdRWUFTQUJLQWtTRXdvTFpUSmlYMkZ3YVY5clpYa1lBaUFCS0FrU0Vnb0taVEppWDJSdmJXRnBiaGdESUFFb0NSSU9DZ1ozWldsbmFIUVlCU0FCS0EwU0dnb1NibTl5YldGc1gzVnpaWEpmZDJWcFoyaDBHQVlnQVNnTklpc0tGVWRsZEVKNVEyeDFjM1JsY2tsRVVtVnhkV1Z6ZEJJU0NncGpiSFZ6ZEdWeVgybGtHQUVnQVNnSkltb0tGa2RsZEVKNVEyeDFjM1JsY2tsRVVtVnpjRzl1YzJVU0tBb0taVEppWDJOdmJtWnBaeGdCSUFFb0N6SVVMbU52Ym1acFp5NTJNUzVGTWtKRGIyNW1hV2NTRHdvSGMzVmpZMlZ6Y3hnQ0lBRW9DQklWQ2cxbGNuSnZjbDl0WlhOellXZGxHQU1nQVNnSklpd0tFMGRsZEVGMllXbHNZV0pzWlZKbGNYVmxjM1FTRlFvTmFYTmZiV1Z0WW1WeWMyaHBjQmdCSUFFb0NDSm9DaFJIWlhSQmRtRnBiR0ZpYkdWU1pYTndiMjV6WlJJb0NncGxNbUpmWTI5dVptbG5HQUVnQVNnTE1oUXVZMjl1Wm1sbkxuWXhMa1V5UWtOdmJtWnBaeElQQ2dkemRXTmpaWE56R0FJZ0FTZ0lFaFVLRFdWeWNtOXlYMjFsYzNOaFoyVVlBeUFCS0FraUVBb09UR2x6ZEVGc2JGSmxjWFZsYzNRaVpBb1BUR2x6ZEVGc2JGSmxjM0J2Ym5ObEVpa0tDMlV5WWw5amIyNW1hV2R6R0FFZ0F5Z0xNaFF1WTI5dVptbG5Mbll4TGtVeVFrTnZibVpwWnhJUENnZHpkV05qWlhOekdBSWdBU2dJRWhVS0RXVnljbTl5WDIxbGMzTmhaMlVZQXlBQktBa3kvQUVLRUVVeVFrTnZibVpwWjFObGNuWnBZMlVTVlFvT1IyVjBRbmxEYkhWemRHVnlTVVFTSUM1amIyNW1hV2N1ZGpFdVIyVjBRbmxEYkhWemRHVnlTVVJTWlhGMVpYTjBHaUV1WTI5dVptbG5Mbll4TGtkbGRFSjVRMngxYzNSbGNrbEVVbVZ6Y0c5dWMyVVNUd29NUjJWMFFYWmhhV3hoWW14bEVoNHVZMjl1Wm1sbkxuWXhMa2RsZEVGMllXbHNZV0pzWlZKbGNYVmxjM1FhSHk1amIyNW1hV2N1ZGpFdVIyVjBRWFpoYVd4aFlteGxVbVZ6Y0c5dWMyVVNRQW9IVEdsemRFRnNiQklaTG1OdmJtWnBaeTUyTVM1TWFYTjBRV3hzVW1WeGRXVnpkQm9hTG1OdmJtWnBaeTUyTVM1TWFYTjBRV3hzVW1WemNHOXVjMlZDb0FFS0RXTnZiUzVqYjI1bWFXY3VkakZDQzBOdmJtWnBaMUJ5YjNSdlVBRmFQV2RwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOWpiMjVtYVdjdmRqRTdZMjl1Wm1sbmRqR2lBZ05EV0ZpcUFnbERiMjVtYVdjdVZqSEtBZ2xEYjI1bWFXZGNWakhpQWhWRGIyNW1hV2RjVmpGY1IxQkNUV1YwWVdSaGRHSHFBZ3BEYjI1bWFXYzZPbFl4WWdad2NtOTBiek0iKSxFMj1IKFIyLDApLFFzPXooIkNoOWhZM1JwZG1sMGVTOTJNUzloWTNScGRtbDBlVjlpWVhObExuQnliM1J2RWd0aFkzUnBkbWwwZVM1Mk1TS3NBUW9OVlhObGNrTnZkVzUwU1c1bWJ4SU5DZ1YwYjNSaGJCZ0JJQUVvQXhKQkNneGtiMjFoYVc1ZlkyOTFiblFZQWlBREtBc3lLeTVoWTNScGRtbDBlUzUyTVM1VmMyVnlRMjkxYm5SSmJtWnZMa1J2YldGcGJrTnZkVzUwUlc1MGNua1NGUW9OWW14dlkydGxaRjlqYjNWdWRCZ0RJQUVvQXhveUNoQkViMjFoYVc1RGIzVnVkRVZ1ZEhKNUVnc0tBMnRsZVJnQklBRW9DUklOQ2dWMllXeDFaUmdDSUFFb0F6b0NPQUVpeHdRS0ZFRmpkR2wyYVhSNVQzSm5ZVzVwZW1GMGFXOXVFZ29LQW1sa0dBRWdBU2dERWdzS0EzVnBaQmdDSUFFb0NSSU1DZ1J1WVcxbEdBTWdBU2dKRWc0S0JtRjJZWFJoY2hnRUlBRW9DUklOQ2dWMGFYUnNaUmdGSUFFb0NSSVRDZ3RrWlhOamNtbHdkR2x2YmhnR0lBRW9DUkl2Q2dodmNtZGZkSGx3WlJnSElBRW9EaklkTG1GamRHbDJhWFI1TG5ZeExrOXlaMkZ1YVhwaGRHbHZibFI1Y0dVU0l3b0djM1JoZEhWekdBZ2dBU2dPTWhNdVlXTjBhWFpwZEhrdWRqRXVVM1JoZEhWekVoNEtGbkpsWTI5dGJXVnVaRjkxYzJWallYTmxYMnhwYzNRWUNTQURLQWtTR1FvUlpXMWhhV3hmWkc5dFlXbHVYMnhwYzNRWUNpQURLQWtTRGdvR2JHOWpZV3hsR0FzZ0FTZ0pFaElLQ21WNGRISmhYMlJoZEdFWURTQUJLQWtTRXdvTGRXNXBjWFZsWDI1aGJXVVlEaUFCS0FrU0xnb0tZM0psWVhSbFpGOWhkQmdQSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNMZ29LZFhCa1lYUmxaRjloZEJnUUlBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTTGdvS1pHVnNaWFJsWkY5aGRCZ1JJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0Vnb0tkWE5sY2w5MGIzUmhiQmdTSUFFb0F4SVpDaEZ5WldOdmJXMWxibVJmWTNKbFpHbDBjeGdUSUFFb0JSSVlDaEJ5WldkcGMzUmxjbDlqY21Wa2FYUnpHQlFnQVNnRkVnOEtCMk52ZFc1MGNua1lGU0FCS0FrU0RBb0VZMmwwZVJnV0lBRW9DUklTQ2dwaGJHbGhjMTlzYVhOMEdCY2dBeWdKSXRnQkNoTkJZM1JwZG1sMGVVVnRZV2xzUkc5dFlXbHVFZ29LQW1sa0dBRWdBU2dERWc4S0IyOXlaMTkxYVdRWUFpQUJLQWtTRkFvTVpXMWhhV3hmWkc5dFlXbHVHQU1nQVNnSkVpNEtDbU55WldGMFpXUmZZWFFZQkNBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaTRLQ25Wd1pHRjBaV1JmWVhRWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NtUmxiR1YwWldSZllYUVlCaUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0l2NEJDZ3hCWTNScGRtbDBlVlZ6WlhJU0Nnb0NhV1FZQVNBQktBTVNEd29IYjNKblgzVnBaQmdDSUFFb0NSSVBDZ2QxYzJWeVgybGtHQU1nQVNnSkVqQUtEV0ZqZEdsMmFYUjVYM1I1Y0dVWUJDQUJLQTR5R1M1aFkzUnBkbWwwZVM1Mk1TNUJZM1JwZG1sMGVWUjVjR1VTTGdvS1kzSmxZWFJsWkY5aGRCZ0ZJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0xnb0tkWEJrWVhSbFpGOWhkQmdHSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNMZ29LWkdWc1pYUmxaRjloZEJnSElBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFpZ3dRS0VFRmpkR2wyYVhSNVZYTmxja2x1Wm04U0R3b0hkWE5sY2w5cFpCZ0JJQUVvQ1JJTkNnVmxiV0ZwYkJnQ0lBRW9DUklSQ2dsbWFYSnpkRzVoYldVWUF5QUJLQWtTRUFvSWJHRnpkRzVoYldVWUJDQUJLQWtTRXdvTFpHbHpjR3hoZVc1aGJXVVlCU0FCS0FrU0VBb0libWxqYTI1aGJXVVlCaUFCS0FrU0Rnb0dZWFpoZEdGeUdBY2dBU2dKRWhBS0NHbHpYMkZzY0doaEdBZ2dBU2dJRWhNS0MybHVYM2RoYVhSc2FYTjBHQWtnQVNnSUVoTUtDM1pwY0Y5MlpYSnphVzl1R0FvZ0FTZ0pFaFFLREhacGNGOXBiblJsY25aaGJCZ0xJQUVvQ1JJYUNoSmpkWEp5Wlc1MFgzQmxjbWx2WkY5bGJtUVlEQ0FCS0FNU0hBb1VZMkZ1WTJWc1gyRjBYM0JsY21sdlpGOWxibVFZRFNBQktBZ1NEd29IYVhOZlltVjBZUmdPSUFFb0NCSVlDaEJ3WVhsdFpXNTBYM0JzWVhSbWIzSnRHQThnQVNnSkVnc0tBM1ZwWkJnUUlBRW9DUkliQ2hOamIyNWpkWEp5Wlc1MFgzTmxjM05wYjI1ekdCRWdBU2dGRWhVS0RYQnNZWFJtYjNKdFgyeHBjM1FZRWlBREtBa1NHZ29TYldWdFltVnljMmhwY0Y5MlpYSnphVzl1R0I0Z0FTZ0pFaHNLRTIxbGJXSmxjbk5vYVhCZmFXNTBaWEoyWVd3WUh5QUJLQWtTRWdvS2FYTmZZbXh2WTJ0bFpCZ2dJQUVvQ0JJdUNncGpjbVZoZEdWa1gyRjBHQ01nQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNDS1hBUW9iVEdsemRFOXlaMkZ1YVhwaGRHbHZibFZ6WlhKU1pYRjFaWE4wRWd3S0JIQmhaMlVZQVNBQktBVVNFUW9KY0dGblpWOXphWHBsR0FJZ0FTZ0ZFaFFLQjI5eVoxOTFhV1FZQXlBQktBbElBSWdCQVJJUkNnUjFjMlZ5R0FRZ0FTZ0pTQUdJQVFFU0dRb1JaVzFoYVd4ZlpHOXRZV2x1WDJ4cGMzUVlCU0FES0FsQ0Nnb0lYMjl5WjE5MWFXUkNCd29GWDNWelpYSWlXZ29jVEdsemRFOXlaMkZ1YVhwaGRHbHZibFZ6WlhKU1pYTndiMjV6WlJJTkNnVjBiM1JoYkJnQklBRW9CUklyQ2dSc2FYTjBHQUlnQXlnTE1oMHVZV04wYVhacGRIa3VkakV1UVdOMGFYWnBkSGxWYzJWeVNXNW1ieUtnQXdvZlRHbHpkRUZqZEdsMmFYUjVUM0puWVc1cGVtRjBhVzl1VW1WeGRXVnpkQklNQ2dSd1lXZGxHQUVnQVNnRkVoRUtDWEJoWjJWZmMybDZaUmdDSUFFb0JSSVBDZ0pwWkJnRElBRW9BMGdBaUFFQkVoQUtBM1ZwWkJnRUlBRW9DVWdCaUFFQkVoRUtCRzVoYldVWUJTQUJLQWxJQW9nQkFSSTBDZ2h2Y21kZmRIbHdaUmdHSUFFb0RqSWRMbUZqZEdsMmFYUjVMbll4TGs5eVoyRnVhWHBoZEdsdmJsUjVjR1ZJQTRnQkFSSVRDZ1pzYjJOaGJHVVlCeUFCS0FsSUJJZ0JBUklaQ2d4bGJXRnBiRjlrYjIxaGFXNFlDQ0FCS0FsSUJZZ0JBUklvQ2daemRHRjBkWE1ZQ1NBQktBNHlFeTVoWTNScGRtbDBlUzUyTVM1VGRHRjBkWE5JQm9nQkFSSVVDZ2RyWlhsM2IzSmtHQW9nQVNnSlNBZUlBUUVTR0FvTGRXNXBjWFZsWDI1aGJXVVlDeUFCS0FsSUNJZ0JBVUlGQ2dOZmFXUkNCZ29FWDNWcFpFSUhDZ1ZmYm1GdFpVSUxDZ2xmYjNKblgzUjVjR1ZDQ1FvSFgyeHZZMkZzWlVJUENnMWZaVzFoYVd4ZlpHOXRZV2x1UWdrS0IxOXpkR0YwZFhOQ0Nnb0lYMnRsZVhkdmNtUkNEZ29NWDNWdWFYRjFaVjl1WVcxbEltSUtJRXhwYzNSQlkzUnBkbWwwZVU5eVoyRnVhWHBoZEdsdmJsSmxjM0J2Ym5ObEVnMEtCWFJ2ZEdGc0dBRWdBU2dGRWk4S0JHUmhkR0VZQWlBREtBc3lJUzVoWTNScGRtbDBlUzUyTVM1QlkzUnBkbWwwZVU5eVoyRnVhWHBoZEdsdmJpcE5DZ3hCWTNScGRtbDBlVlI1Y0dVU0hRb1pRVU5VU1ZaSlZGbGZWRmxRUlY5VlRsTlFSVU5KUmtsRlJCQUFFaDRLR2tGRFZFbFdTVlJaWDFSWlVFVmZUMUpIUVU1SldrRlVTVTlPRUFFcWt3RUtFRTl5WjJGdWFYcGhkR2x2YmxSNWNHVVNJUW9kVDFKSFFVNUpXa0ZVU1U5T1gxUlpVRVZmVlU1VFVFVkRTVVpKUlVRUUFCSWRDaGxQVWtkQlRrbGFRVlJKVDA1ZlZGbFFSVjlEVDAxUVFVNVpFQUVTSEFvWVQxSkhRVTVKV2tGVVNVOU9YMVJaVUVWZlUwTklUMDlNRUFJU0h3b2JUMUpIUVU1SldrRlVTVTlPWDFSWlVFVmZRMDlOVFZWT1NWUlpFQU1xU0FvR1UzUmhkSFZ6RWhZS0VsTlVRVlJWVTE5VlRsTlFSVU5KUmtsRlJCQUFFaEVLRFZOVVFWUlZVMTlCUTFSSlZrVVFBUklUQ2c5VFZFRlVWVk5mU1U1QlExUkpWa1VRQWlwaUNnOVZjMlZ5UW14dlkydGxaRlI1Y0dVU0hBb1lRa3hQUTB0RlJGOVVXVkJGWDFWT1UxQkZRMGxHU1VWRUVBQVNHQW9VUWt4UFEwdEZSRjlVV1ZCRlgwRkRRMDlWVGxRUUFSSVhDaE5DVEU5RFMwVkVYMVJaVUVWZlUwaFZWRlZRRUFKQ3RBRUtEMk52YlM1aFkzUnBkbWwwZVM1Mk1VSVJRV04wYVhacGRIbENZWE5sVUhKdmRHOVFBVnBCWjJsMGJHRmlMbTF2Ym1sallTNWpiaTkyYVdSaEwzTmtheTlpYVhwelpYSjJaWEl0WjI4dVoybDBMMkZqZEdsMmFYUjVMM1l4TzJGamRHbDJhWFI1ZGpHaUFnTkJXRmlxQWd0QlkzUnBkbWwwZVM1V01jb0NDMEZqZEdsMmFYUjVYRll4NGdJWFFXTjBhWFpwZEhsY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWd4QlkzUnBkbWwwZVRvNlZqRmlCbkJ5YjNSdk13IixbSGUsdGVdKSx5Mj16KCJDaHBoWTNScGRtbDBlUzkyTVM5aFkzUnBkbWwwZVM1d2NtOTBieElMWVdOMGFYWnBkSGt1ZGpFaU1nb2ZSMlYwVDNKbllXNXBlbUYwYVc5dVNXNW1iMEo1VlVsRVVtVnhkV1Z6ZEJJUENnZHZjbWRmZFdsa0dBRWdBU2dKSWxjS0lFZGxkRTl5WjJGdWFYcGhkR2x2YmtsdVptOUNlVlZKUkZKbGMzQnZibk5sRWpNS0NHOXlaMTlwYm1adkdBRWdBU2dMTWlFdVlXTjBhWFpwZEhrdWRqRXVRV04wYVhacGRIbFBjbWRoYm1sNllYUnBiMjRpTWdvaFIyVjBUM0puWVc1cGVtRjBhVzl1U1c1bWIwSjVSVzFoYVd4U1pYRjFaWE4wRWcwS0JXVnRZV2xzR0FFZ0FTZ0pJbGtLSWtkbGRFOXlaMkZ1YVhwaGRHbHZia2x1Wm05Q2VVVnRZV2xzVW1WemNHOXVjMlVTTXdvSWIzSm5YMmx1Wm04WUFTQUJLQXN5SVM1aFkzUnBkbWwwZVM1Mk1TNUJZM1JwZG1sMGVVOXlaMkZ1YVhwaGRHbHZiaUk5Q2laSFpYUlBjbWRoYm1sNllYUnBiMjVKYm1adlFubFZibWx4ZFdWT1lXMWxVbVZ4ZFdWemRCSVRDZ3QxYm1seGRXVmZibUZ0WlJnQklBRW9DU0plQ2lkSFpYUlBjbWRoYm1sNllYUnBiMjVKYm1adlFubFZibWx4ZFdWT1lXMWxVbVZ6Y0c5dWMyVVNNd29JYjNKblgybHVabThZQVNBQktBc3lJUzVoWTNScGRtbDBlUzUyTVM1QlkzUnBkbWwwZVU5eVoyRnVhWHBoZEdsdmJqS1hCQW9WVUhWaWJHbGpRV04wYVhacGRIbFRaWEoyYVdObEVuY0tHRWRsZEU5eVoyRnVhWHBoZEdsdmJrbHVabTlDZVZWSlJCSXNMbUZqZEdsMmFYUjVMbll4TGtkbGRFOXlaMkZ1YVhwaGRHbHZia2x1Wm05Q2VWVkpSRkpsY1hWbGMzUWFMUzVoWTNScGRtbDBlUzUyTVM1SFpYUlBjbWRoYm1sNllYUnBiMjVKYm1adlFubFZTVVJTWlhOd2IyNXpaUkozQ2hoTWFYTjBRV04wYVhacGRIbFBjbWRoYm1sNllYUnBiMjRTTEM1aFkzUnBkbWwwZVM1Mk1TNU1hWE4wUVdOMGFYWnBkSGxQY21kaGJtbDZZWFJwYjI1U1pYRjFaWE4wR2kwdVlXTjBhWFpwZEhrdWRqRXVUR2x6ZEVGamRHbDJhWFI1VDNKbllXNXBlbUYwYVc5dVVtVnpjRzl1YzJVU2ZRb2FSMlYwVDNKbllXNXBlbUYwYVc5dVNXNW1iMEo1UlcxaGFXd1NMaTVoWTNScGRtbDBlUzUyTVM1SFpYUlBjbWRoYm1sNllYUnBiMjVKYm1adlFubEZiV0ZwYkZKbGNYVmxjM1FhTHk1aFkzUnBkbWwwZVM1Mk1TNUhaWFJQY21kaGJtbDZZWFJwYjI1SmJtWnZRbmxGYldGcGJGSmxjM0J2Ym5ObEVvd0JDaDlIWlhSUGNtZGhibWw2WVhScGIyNUpibVp2UW5sVmJtbHhkV1ZPWVcxbEVqTXVZV04wYVhacGRIa3VkakV1UjJWMFQzSm5ZVzVwZW1GMGFXOXVTVzVtYjBKNVZXNXBjWFZsVG1GdFpWSmxjWFZsYzNRYU5DNWhZM1JwZG1sMGVTNTJNUzVIWlhSUGNtZGhibWw2WVhScGIyNUpibVp2UW5sVmJtbHhkV1ZPWVcxbFVtVnpjRzl1YzJWQ3NBRUtEMk52YlM1aFkzUnBkbWwwZVM1Mk1VSU5RV04wYVhacGRIbFFjbTkwYjFBQldrRm5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdllXTjBhWFpwZEhrdmRqRTdZV04wYVhacGRIbDJNYUlDQTBGWVdLb0NDMEZqZEdsMmFYUjVMbFl4eWdJTFFXTjBhWFpwZEhsY1ZqSGlBaGRCWTNScGRtbDBlVnhXTVZ4SFVFSk5aWFJoWkdGMFllb0NERUZqZEdsMmFYUjVPanBXTVdJR2NISnZkRzh6IixbUXMsSGUsdGVdKSx2Mj1IKHkyLDApLFMyPXooIkNpQmhZM1JwZG1sMGVTOTJNUzloWTNScGRtbDBlVjloWkcxcGJpNXdjbTkwYnhJTFlXTjBhWFpwZEhrdWRqRWlsQVVLSVZWd1pHRjBaVUZqZEdsMmFYUjVUM0puWVc1cGVtRjBhVzl1VW1WeGRXVnpkQklLQ2dKcFpCZ0JJQUVvQXhJWUNndDFibWx4ZFdWZmJtRnRaUmdDSUFFb0NVZ0FpQUVCRWhFS0JHNWhiV1VZQXlBQktBbElBWWdCQVJJMENnaHZjbWRmZEhsd1pSZ0VJQUVvRGpJZExtRmpkR2wyYVhSNUxuWXhMazl5WjJGdWFYcGhkR2x2YmxSNWNHVklBb2dCQVJJVENnWnNiMk5oYkdVWUJTQUJLQWxJQTRnQkFSSVNDZ1YwYVhSc1pSZ0dJQUVvQ1VnRWlBRUJFaGdLQzJSbGMyTnlhWEIwYVc5dUdBY2dBU2dKU0FXSUFRRVNFd29HWVhaaGRHRnlHQWdnQVNnSlNBYUlBUUVTR1FvUlpXMWhhV3hmWkc5dFlXbHVYMnhwYzNRWUNTQURLQWtTS0FvR2MzUmhkSFZ6R0FvZ0FTZ09NaE11WVdOMGFYWnBkSGt1ZGpFdVUzUmhkSFZ6U0FlSUFRRVNIZ29XY21WamIyMXRaVzVrWDNWelpXTmhjMlZmYkdsemRCZ0xJQU1vQ1JJWENncGxlSFJ5WVY5a1lYUmhHQXdnQVNnSlNBaUlBUUVTSGdvUmNtVmpiMjF0Wlc1a1gyTnlaV1JwZEhNWURTQUJLQVZJQ1lnQkFSSWRDaEJ5WldkcGMzUmxjbDlqY21Wa2FYUnpHQTRnQVNnRlNBcUlBUUVTRkFvSFkyOTFiblJ5ZVJnUElBRW9DVWdMaUFFQkVoRUtCR05wZEhrWUVDQUJLQWxJRElnQkFSSVNDZ3BoYkdsaGMxOXNhWE4wR0JFZ0F5Z0pRZzRLREY5MWJtbHhkV1ZmYm1GdFpVSUhDZ1ZmYm1GdFpVSUxDZ2xmYjNKblgzUjVjR1ZDQ1FvSFgyeHZZMkZzWlVJSUNnWmZkR2wwYkdWQ0Rnb01YMlJsYzJOeWFYQjBhVzl1UWdrS0IxOWhkbUYwWVhKQ0NRb0hYM04wWVhSMWMwSU5DZ3RmWlhoMGNtRmZaR0YwWVVJVUNoSmZjbVZqYjIxdFpXNWtYMk55WldScGRITkNFd29SWDNKbFoybHpkR1Z5WDJOeVpXUnBkSE5DQ2dvSVgyTnZkVzUwY25sQ0J3b0ZYMk5wZEhraVJnb2lWWEJrWVhSbFFXTjBhWFpwZEhsUGNtZGhibWw2WVhScGIyNVNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVnOEtCMjFsYzNOaFoyVVlBaUFCS0FraXB3TUtJVU55WldGMFpVRmpkR2wyYVhSNVQzSm5ZVzVwZW1GMGFXOXVVbVZ4ZFdWemRCSVRDZ3QxYm1seGRXVmZibUZ0WlJnQklBRW9DUklNQ2dSdVlXMWxHQUlnQVNnSkVoTUtCbUYyWVhSaGNoZ0RJQUVvQ1VnQWlBRUJFZzBLQlhScGRHeGxHQVFnQVNnSkVoTUtDMlJsYzJOeWFYQjBhVzl1R0FVZ0FTZ0pFaThLQ0c5eVoxOTBlWEJsR0FZZ0FTZ09NaDB1WVdOMGFYWnBkSGt1ZGpFdVQzSm5ZVzVwZW1GMGFXOXVWSGx3WlJJakNnWnpkR0YwZFhNWUJ5QUJLQTR5RXk1aFkzUnBkbWwwZVM1Mk1TNVRkR0YwZFhNU0hnb1djbVZqYjIxdFpXNWtYM1Z6WldOaGMyVmZiR2x6ZEJnSUlBTW9DUklaQ2hGbGJXRnBiRjlrYjIxaGFXNWZiR2x6ZEJnSklBTW9DUklPQ2dac2IyTmhiR1VZQ2lBQktBa1NFZ29LWlhoMGNtRmZaR0YwWVJnTElBRW9DUklaQ2hGeVpXTnZiVzFsYm1SZlkzSmxaR2wwY3hnTUlBRW9CUklZQ2hCeVpXZHBjM1JsY2w5amNtVmthWFJ6R0EwZ0FTZ0ZFZzhLQjJOdmRXNTBjbmtZRGlBQktBa1NEQW9FWTJsMGVSZ1BJQUVvQ1JJU0NncGhiR2xoYzE5c2FYTjBHQkFnQXlnSlFna0tCMTloZG1GMFlYSWlkd29pUTNKbFlYUmxRV04wYVhacGRIbFBjbWRoYm1sNllYUnBiMjVTWlhOd2IyNXpaUklQQ2dkemRXTmpaWE56R0FFZ0FTZ0lFZzhLQjIxbGMzTmhaMlVZQWlBQktBa1NMd29FWkdGMFlSZ0RJQUVvQ3pJaExtRmpkR2wyYVhSNUxuWXhMa0ZqZEdsMmFYUjVUM0puWVc1cGVtRjBhVzl1SWg0S0VFUmxiR1YwWlU5eVoxSmxjWFZsYzNRU0Nnb0NhV1FZQVNBQktBTWlOQW9RUkdWc1pYUmxUM0puVW1WemIyNXpaUklQQ2dkemRXTmpaWE56R0FFZ0FTZ0lFZzhLQjIxbGMzTmhaMlVZQWlBQktBa2lMUW9hUjJWMFQzSm5WWE5sY2tOdmRXNTBTVzVtYjFKbGNYVmxjM1FTRHdvSGIzSm5YM1ZwWkJnQklBRW9DU0xlQVFvYlIyVjBUM0puVlhObGNrTnZkVzUwU1c1bWIxSmxjM0J2Ym5ObEVnMEtCWFJ2ZEdGc0dBRWdBU2dERWs4S0RHUnZiV0ZwYmw5amIzVnVkQmdDSUFNb0N6STVMbUZqZEdsMmFYUjVMbll4TGtkbGRFOXlaMVZ6WlhKRGIzVnVkRWx1Wm05U1pYTndiMjV6WlM1RWIyMWhhVzVEYjNWdWRFVnVkSEo1RWhVS0RXSnNiMk5yWldSZlkyOTFiblFZQXlBQktBTVNGQW9NWVdOMGFYWmxYMk52ZFc1MEdBUWdBU2dER2pJS0VFUnZiV0ZwYmtOdmRXNTBSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnRE9nSTRBU0lwQ2haSmJYQnZjblJFWVhSaFFubERjM1pTWlhGMVpYTjBFZzhLQjJOemRsOXpkSElZQVNBQktBa2lmUW9YU1cxd2IzSjBSR0YwWVVKNVEzTjJVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NCSVBDZ2R0WlhOellXZGxHQUlnQVNnSkVoVUtEWE4xWTJObGMzTmZZMjkxYm5RWUJDQUJLQU1TRkFvTVptRnBiR1ZrWDJOdmRXNTBHQVVnQVNnREVoTUtDMlpoYVd4bFpGOXNhWE4wR0FZZ0F5Z0pNbzBHQ2hSQlkzUnBkbWwwZVVGa2JXbHVVMlZ5ZG1salpSSjNDaGhNYVhOMFFXTjBhWFpwZEhsUGNtZGhibWw2WVhScGIyNFNMQzVoWTNScGRtbDBlUzUyTVM1TWFYTjBRV04wYVhacGRIbFBjbWRoYm1sNllYUnBiMjVTWlhGMVpYTjBHaTB1WVdOMGFYWnBkSGt1ZGpFdVRHbHpkRUZqZEdsMmFYUjVUM0puWVc1cGVtRjBhVzl1VW1WemNHOXVjMlVTZlFvYVZYQmtZWFJsUVdOMGFYWnBkSGxQY21kaGJtbDZZWFJwYjI0U0xpNWhZM1JwZG1sMGVTNTJNUzVWY0dSaGRHVkJZM1JwZG1sMGVVOXlaMkZ1YVhwaGRHbHZibEpsY1hWbGMzUWFMeTVoWTNScGRtbDBlUzUyTVM1VmNHUmhkR1ZCWTNScGRtbDBlVTl5WjJGdWFYcGhkR2x2YmxKbGMzQnZibk5sRW4wS0drTnlaV0YwWlVGamRHbDJhWFI1VDNKbllXNXBlbUYwYVc5dUVpNHVZV04wYVhacGRIa3VkakV1UTNKbFlYUmxRV04wYVhacGRIbFBjbWRoYm1sNllYUnBiMjVTWlhGMVpYTjBHaTh1WVdOMGFYWnBkSGt1ZGpFdVEzSmxZWFJsUVdOMGFYWnBkSGxQY21kaGJtbDZZWFJwYjI1U1pYTndiMjV6WlJKckNoUk1hWE4wVDNKbllXNXBlbUYwYVc5dVZYTmxjaElvTG1GamRHbDJhWFI1TG5ZeExreHBjM1JQY21kaGJtbDZZWFJwYjI1VmMyVnlVbVZ4ZFdWemRCb3BMbUZqZEdsMmFYUjVMbll4TGt4cGMzUlBjbWRoYm1sNllYUnBiMjVWYzJWeVVtVnpjRzl1YzJVU2FBb1RSMlYwVDNKblZYTmxja052ZFc1MFNXNW1ieEluTG1GamRHbDJhWFI1TG5ZeExrZGxkRTl5WjFWelpYSkRiM1Z1ZEVsdVptOVNaWEYxWlhOMEdpZ3VZV04wYVhacGRIa3VkakV1UjJWMFQzSm5WWE5sY2tOdmRXNTBTVzVtYjFKbGMzQnZibk5sRWtrS0NVUmxiR1YwWlU5eVp4SWRMbUZqZEdsMmFYUjVMbll4TGtSbGJHVjBaVTl5WjFKbGNYVmxjM1FhSFM1aFkzUnBkbWwwZVM1Mk1TNUVaV3hsZEdWUGNtZFNaWE52Ym5ObEVsd0tEMGx0Y0c5eWRFUmhkR0ZDZVVOemRoSWpMbUZqZEdsMmFYUjVMbll4TGtsdGNHOXlkRVJoZEdGQ2VVTnpkbEpsY1hWbGMzUWFKQzVoWTNScGRtbDBlUzUyTVM1SmJYQnZjblJFWVhSaFFubERjM1pTWlhOd2IyNXpaVUsxQVFvUFkyOXRMbUZqZEdsMmFYUjVMbll4UWhKQlkzUnBkbWwwZVVGa2JXbHVVSEp2ZEc5UUFWcEJaMmwwYkdGaUxtMXZibWxqWVM1amJpOTJhV1JoTDNOa2F5OWlhWHB6WlhKMlpYSXRaMjh1WjJsMEwyRmpkR2wyYVhSNUwzWXhPMkZqZEdsMmFYUjVkakdpQWdOQldGaXFBZ3RCWTNScGRtbDBlUzVXTWNvQ0MwRmpkR2wyYVhSNVhGWXg0Z0lYUVdOMGFYWnBkSGxjVmpGY1IxQkNUV1YwWVdSaGRHSHFBZ3hCWTNScGRtbDBlVG82VmpGaUJuQnliM1J2TXciLFtRcyxIZSx0ZV0pLEMyPUgoUzIsMCksTHM9eigiQ2lOc2FYWmxYMlYyWlc1MEwzWXhMMnhwZG1WZlpYWmxiblJmWW1GelpTNXdjbTkwYnhJTmJHbDJaVjlsZG1WdWRDNTJNU3B0Q2cxUWRXSnNhWE5vVTNSaGRIVnpFaDRLR2xCVlFreEpVMGhmVTFSQlZGVlRYMVZPVTFCRlEwbEdTVVZFRUFBU0hnb2FVRlZDVEVsVFNGOVRWRUZVVlZOZlZVNVFWVUpNU1ZOSVJVUVFBUkljQ2hoUVZVSk1TVk5JWDFOVVFWUlZVMTlRVlVKTVNWTklSVVFRQWtLL0FRb1JZMjl0TG14cGRtVmZaWFpsYm5RdWRqRkNFa3hwZG1WRmRtVnVkRUpoYzJWUWNtOTBiMUFCV2tWbmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2YkdsMlpWOWxkbVZ1ZEM5Mk1UdHNhWFpsWDJWMlpXNTBkakdpQWdOTVdGaXFBZ3hNYVhabFJYWmxiblF1VmpIS0FneE1hWFpsUlhabGJuUmNWakhpQWhoTWFYWmxSWFpsYm5SY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWcxTWFYWmxSWFpsYm5RNk9sWXhZZ1p3Y205MGJ6TSIpLFcyPXooIkNpUnNhWFpsWDJWMlpXNTBMM1l4TDJ4cGRtVmZaWFpsYm5SZllXUnRhVzR1Y0hKdmRHOFNEV3hwZG1WZlpYWmxiblF1ZGpFaXJBTUtFa055WldGMFpVVjJaVzUwVW1WeGRXVnpkQklRQ2dobGRtVnVkRjlwWkJnQklBRW9DUklTQ2dwbGRtVnVkRjl1WVcxbEdBSWdBU2dKRWd3S0JHaHZjM1FZQXlBQktBa1NMZ29LYzNSaGNuUmZkR2x0WlJnRUlBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTTEFvSVpXNWtYM1JwYldVWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWc4S0IyTnZkVzUwY25rWUJpQUJLQWtTRGdvR2NtVm5hVzl1R0FjZ0FTZ0pFZzhLQjJGa1pISmxjM01ZQ0NBQktBa1NId29YWVd4c2IzZGZabkpsWlY5eVpXZHBjM1J5WVhScGIyNFlDU0FCS0FnU0lRb1paMmwyWlY5MFpXMXdiM0poY25sZmJXVnRZbVZ5YzJocGNCZ0tJQUVvQ0JJVUNneG1jbVZsWDJOeVpXUnBkSE1ZQ3lBQktBVVNGUW9OWlhabGJuUmZZM0psWkdsMGN4Z01JQUVvQlJJWUNoQnRZWGhmY0dGeWRHbGphWEJoYm5SekdBMGdBU2dGRWhnS0VHZHBablJmYVc1MmFYUmxYMk52WkdVWURpQUJLQVVTRndvUFkyOTFiblJ5ZVY5a2FYTndiR0Y1R0E4Z0FTZ0pFaFFLREdOcGRIbGZaR2x6Y0d4aGVSZ1FJQUVvQ1NJVkNoTkRjbVZoZEdWRmRtVnVkRkpsYzNCdmJuTmxJdTREQ2hKVmNHUmhkR1ZGZG1WdWRGSmxjWFZsYzNRU0Nnb0NhV1FZQVNBQktBVVNFQW9JWlhabGJuUmZhV1FZQWlBQktBa1NFZ29LWlhabGJuUmZibUZ0WlJnRElBRW9DUklNQ2dSb2IzTjBHQVFnQVNnSkVpNEtDbk4wWVhKMFgzUnBiV1VZQlNBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaXdLQ0dWdVpGOTBhVzFsR0FZZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklQQ2dkamIzVnVkSEo1R0FjZ0FTZ0pFZzRLQm5KbFoybHZiaGdJSUFFb0NSSVBDZ2RoWkdSeVpYTnpHQWtnQVNnSkVoOEtGMkZzYkc5M1gyWnlaV1ZmY21WbmFYTjBjbUYwYVc5dUdBb2dBU2dJRWlFS0dXZHBkbVZmZEdWdGNHOXlZWEo1WDIxbGJXSmxjbk5vYVhBWUN5QUJLQWdTRkFvTVpuSmxaVjlqY21Wa2FYUnpHQXdnQVNnRkVoVUtEV1YyWlc1MFgyTnlaV1JwZEhNWURTQUJLQVVTR0FvUWJXRjRYM0JoY25ScFkybHdZVzUwY3hnT0lBRW9CUkkwQ2c1d2RXSnNhWE5vWDNOMFlYUjFjeGdQSUFFb0RqSWNMbXhwZG1WZlpYWmxiblF1ZGpFdVVIVmliR2x6YUZOMFlYUjFjeElZQ2hCbmFXWjBYMmx1ZG1sMFpWOWpiMlJsR0JBZ0FTZ0ZFaGNLRDJOdmRXNTBjbmxmWkdsemNHeGhlUmdSSUFFb0NSSVVDZ3hqYVhSNVgyUnBjM0JzWVhrWUVpQUJLQWtpRlFvVFZYQmtZWFJsUlhabGJuUlNaWE53YjI1elpTSnlDaEZNYVhOMFJYWmxiblJ6VW1WeGRXVnpkQklRQ2dobGRtVnVkRjlwWkJnQklBRW9DUklxQ2daemRHRjBkWE1ZQWlBQktBNHlHaTVzYVhabFgyVjJaVzUwTG5ZeExrVjJaVzUwVTNSaGRIVnpFZ3dLQkhCaFoyVVlBeUFCS0FVU0VRb0pjR0ZuWlY5emFYcGxHQVFnQVNnRklrMEtFa3hwYzNSRmRtVnVkSE5TWlhOd2IyNXpaUklvQ2dabGRtVnVkSE1ZQVNBREtBc3lHQzVzYVhabFgyVjJaVzUwTG5ZeExrVjJaVzUwU1c1bWJ4SU5DZ1YwYjNSaGJCZ0NJQUVvQlNJbUNoSkVaV3hsZEdWRmRtVnVkRkpsY1hWbGMzUVNFQW9JWlhabGJuUmZhV1FZQVNBQktBa2lKZ29UUkdWc1pYUmxSWFpsYm5SU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJSWlzS0YwZGxkRVYyWlc1MFQzWmxjblpwWlhkU1pYRjFaWE4wRWhBS0NHVjJaVzUwWDJsa0dBRWdBU2dKSXBvQkNoaEhaWFJGZG1WdWRFOTJaWEoyYVdWM1VtVnpjRzl1YzJVU0dnb1NkRzkwWVd4ZmNHRnlkR2xqYVhCaGJuUnpHQUVnQVNnRkVoWUtEbTVsZDE5MWMyVnlYMk52ZFc1MEdBSWdBU2dGRWhzS0UyVjRhWE4wYVc1blgzVnpaWEpmWTI5MWJuUVlBeUFCS0FVU0ZRb05jMlZ6YzJsdmJsOWpiM1Z1ZEJnRUlBRW9CUklXQ2c1amNtVmthWFJ6WDJOdmMzUmxaQmdGSUFFb0JTSnNDaFZNYVhOMFJYWmxiblJWYzJWeWMxSmxjWFZsYzNRU0VBb0laWFpsYm5SZmFXUVlBU0FCS0FrU0ZBb0hkWE5sY2w5cFpCZ0NJQUVvQ1VnQWlBRUJFZ3dLQkhCaFoyVVlBeUFCS0FVU0VRb0pjR0ZuWlY5emFYcGxHQVFnQVNnRlFnb0tDRjkxYzJWeVgybGtJbEFLRmt4cGMzUkZkbVZ1ZEZWelpYSnpVbVZ6Y0c5dWMyVVNKd29GZFhObGNuTVlBU0FES0FzeUdDNXNhWFpsWDJWMlpXNTBMbll4TGtWMlpXNTBWWE5sY2hJTkNnVjBiM1JoYkJnQ0lBRW9CU0tSQVFvWVRHbHpkRVYyWlc1MFUyVnpjMmx2Ym5OU1pYRjFaWE4wRWhBS0NHVjJaVzUwWDJsa0dBRWdBU2dKRWhjS0NuTmxjM05wYjI1ZmFXUVlBaUFCS0FsSUFJZ0JBUklNQ2dSd1lXZGxHQU1nQVNnRkVoRUtDWEJoWjJWZmMybDZaUmdFSUFFb0JSSVJDZ1IxYzJWeUdBVWdBU2dKU0FHSUFRRkNEUW9MWDNObGMzTnBiMjVmYVdSQ0J3b0ZYM1Z6WlhJaVdRb1pUR2x6ZEVWMlpXNTBVMlZ6YzJsdmJuTlNaWE53YjI1elpSSXRDZ2h6WlhOemFXOXVjeGdCSUFNb0N6SWJMbXhwZG1WZlpYWmxiblF1ZGpFdVJYWmxiblJUWlhOemFXOXVFZzBLQlhSdmRHRnNHQUlnQVNnRklwOEZDZ2xGZG1WdWRFbHVabThTQ2dvQ2FXUVlBU0FCS0FVU0VBb0laWFpsYm5SZmFXUVlBaUFCS0FrU0Vnb0taWFpsYm5SZmJtRnRaUmdESUFFb0NSSU1DZ1JvYjNOMEdBUWdBU2dKRWk0S0NuTjBZWEowWDNScGJXVVlCU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0Vpd0tDR1Z1WkY5MGFXMWxHQVlnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNCSVBDZ2RqYjNWdWRISjVHQWNnQVNnSkVnNEtCbkpsWjJsdmJoZ0lJQUVvQ1JJUENnZGhaR1J5WlhOekdBa2dBU2dKRWg4S0YyRnNiRzkzWDJaeVpXVmZjbVZuYVhOMGNtRjBhVzl1R0FvZ0FTZ0lFaUVLR1dkcGRtVmZkR1Z0Y0c5eVlYSjVYMjFsYldKbGNuTm9hWEFZQ3lBQktBZ1NGQW9NWm5KbFpWOWpjbVZrYVhSekdBd2dBU2dGRWhVS0RXVjJaVzUwWDJOeVpXUnBkSE1ZRFNBQktBVVNHQW9RYldGNFgzQmhjblJwWTJsd1lXNTBjeGdPSUFFb0JSSWNDaFJqZFhKeVpXNTBYM0JoY25ScFkybHdZVzUwY3hnUElBRW9CUklxQ2daemRHRjBkWE1ZRUNBQktBNHlHaTVzYVhabFgyVjJaVzUwTG5ZeExrVjJaVzUwVTNSaGRIVnpFalFLRG5CMVlteHBjMmhmYzNSaGRIVnpHQkVnQVNnT01od3ViR2wyWlY5bGRtVnVkQzUyTVM1UWRXSnNhWE5vVTNSaGRIVnpFaTRLQ21OeVpXRjBaV1JmWVhRWUVpQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NuVndaR0YwWldSZllYUVlFeUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VnNEtCbkZ5WTI5a1pSZ1VJQUVvQ1JJWUNoQm5hV1owWDJsdWRtbDBaVjlqYjJSbEdCVWdBU2dGRWhjS0QyTnZkVzUwY25sZlpHbHpjR3hoZVJnV0lBRW9DUklVQ2d4amFYUjVYMlJwYzNCc1lYa1lGeUFCS0FraWdBRUtDVVYyWlc1MFZYTmxjaElQQ2dkMWMyVnlYMmxrR0FFZ0FTZ0pFZzBLQldWdFlXbHNHQUlnQVNnSkVoQUtDSFZ6WlhKdVlXMWxHQU1nQVNnSkVqRUtEWEpsWjJsemRHVnlYM1JwYldVWUJDQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWc0S0JtbHpYMjVsZHhnRklBRW9DQ0tkQVFvTVJYWmxiblJUWlhOemFXOXVFaElLQ25ObGMzTnBiMjVmYVdRWUFTQUJLQWtTRFFvRmRHbDBiR1VZQWlBQktBa1NGZ29PWTNKbFpHbDBjMTlqYjNOMFpXUVlBeUFCS0FVU0xnb0tZM0psWVhSbFpGOWhkQmdFSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNFUW9KYVhOZmMyaGhjbVZrR0FVZ0FTZ0lFZzhLQjNWelpYSmZhV1FZQmlBQktBa3FlQW9MUlhabGJuUlRkR0YwZFhNU0hBb1lSVlpGVGxSZlUxUkJWRlZUWDFWT1UxQkZRMGxHU1VWRUVBQVNHUW9WUlZaRlRsUmZVMVJCVkZWVFgxVlFRMDlOU1U1SEVBRVNHQW9VUlZaRlRsUmZVMVJCVkZWVFgwOU9SMDlKVGtjUUFoSVdDaEpGVmtWT1ZGOVRWRUZVVlZOZlJVNUVSVVFRQXpLbUJRb1ZUR2wyWlVWMlpXNTBRV1J0YVc1VFpYSjJhV05sRWxZS0MwTnlaV0YwWlVWMlpXNTBFaUV1YkdsMlpWOWxkbVZ1ZEM1Mk1TNURjbVZoZEdWRmRtVnVkRkpsY1hWbGMzUWFJaTVzYVhabFgyVjJaVzUwTG5ZeExrTnlaV0YwWlVWMlpXNTBVbVZ6Y0c5dWMyVWlBQkpXQ2d0VmNHUmhkR1ZGZG1WdWRCSWhMbXhwZG1WZlpYWmxiblF1ZGpFdVZYQmtZWFJsUlhabGJuUlNaWEYxWlhOMEdpSXViR2wyWlY5bGRtVnVkQzUyTVM1VmNHUmhkR1ZGZG1WdWRGSmxjM0J2Ym5ObElnQVNVd29LVEdsemRFVjJaVzUwY3hJZ0xteHBkbVZmWlhabGJuUXVkakV1VEdsemRFVjJaVzUwYzFKbGNYVmxjM1FhSVM1c2FYWmxYMlYyWlc1MExuWXhMa3hwYzNSRmRtVnVkSE5TWlhOd2IyNXpaU0lBRWxZS0MwUmxiR1YwWlVWMlpXNTBFaUV1YkdsMlpWOWxkbVZ1ZEM1Mk1TNUVaV3hsZEdWRmRtVnVkRkpsY1hWbGMzUWFJaTVzYVhabFgyVjJaVzUwTG5ZeExrUmxiR1YwWlVWMlpXNTBVbVZ6Y0c5dWMyVWlBQkpsQ2hCSFpYUkZkbVZ1ZEU5MlpYSjJhV1YzRWlZdWJHbDJaVjlsZG1WdWRDNTJNUzVIWlhSRmRtVnVkRTkyWlhKMmFXVjNVbVZ4ZFdWemRCb25MbXhwZG1WZlpYWmxiblF1ZGpFdVIyVjBSWFpsYm5SUGRtVnlkbWxsZDFKbGMzQnZibk5sSWdBU1h3b09UR2x6ZEVWMlpXNTBWWE5sY25NU0pDNXNhWFpsWDJWMlpXNTBMbll4TGt4cGMzUkZkbVZ1ZEZWelpYSnpVbVZ4ZFdWemRCb2xMbXhwZG1WZlpYWmxiblF1ZGpFdVRHbHpkRVYyWlc1MFZYTmxjbk5TWlhOd2IyNXpaU0lBRW1nS0VVeHBjM1JGZG1WdWRGTmxjM05wYjI1ekVpY3ViR2wyWlY5bGRtVnVkQzUyTVM1TWFYTjBSWFpsYm5SVFpYTnphVzl1YzFKbGNYVmxjM1FhS0M1c2FYWmxYMlYyWlc1MExuWXhMa3hwYzNSRmRtVnVkRk5sYzNOcGIyNXpVbVZ6Y0c5dWMyVWlBRUxBQVFvUlkyOXRMbXhwZG1WZlpYWmxiblF1ZGpGQ0UweHBkbVZGZG1WdWRFRmtiV2x1VUhKdmRHOVFBVnBGWjJsMGJHRmlMbTF2Ym1sallTNWpiaTkyYVdSaEwzTmtheTlpYVhwelpYSjJaWEl0WjI4dVoybDBMMnhwZG1WZlpYWmxiblF2ZGpFN2JHbDJaVjlsZG1WdWRIWXhvZ0lEVEZoWXFnSU1UR2wyWlVWMlpXNTBMbFl4eWdJTVRHbDJaVVYyWlc1MFhGWXg0Z0lZVEdsMlpVVjJaVzUwWEZZeFhFZFFRazFsZEdGa1lYUmg2Z0lOVEdsMlpVVjJaVzUwT2pwV01XSUdjSEp2ZEc4eiIsW3RlLExzXSksQjI9SChXMiwwKSxOMj16KCJDaDVzYVhabFgyVjJaVzUwTDNZeEwyeHBkbVZmWlhabGJuUXVjSEp2ZEc4U0RXeHBkbVZmWlhabGJuUXVkakVpUVFvVlEyaGxZMnRNYVhabFJYWmxiblJTWlhGMVpYTjBFaFVLRFd4cGRtVmZaWFpsYm5SZmFXUVlBU0FCS0FrU0VRb0paR1YyYVdObFgybGtHQUlnQVNnSkloZ0tGa05vWldOclRHbDJaVVYyWlc1MFVtVnpjRzl1YzJVeWN3b1FUR2wyWlVWMlpXNTBVMlZ5ZG1salpSSmZDZzVEYUdWamEweHBkbVZGZG1WdWRCSWtMbXhwZG1WZlpYWmxiblF1ZGpFdVEyaGxZMnRNYVhabFJYWmxiblJTWlhGMVpYTjBHaVV1YkdsMlpWOWxkbVZ1ZEM1Mk1TNURhR1ZqYTB4cGRtVkZkbVZ1ZEZKbGMzQnZibk5sSWdCQ3V3RUtFV052YlM1c2FYWmxYMlYyWlc1MExuWXhRZzVNYVhabFJYWmxiblJRY205MGIxQUJXa1ZuYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZiR2wyWlY5bGRtVnVkQzkyTVR0c2FYWmxYMlYyWlc1MGRqR2lBZ05NV0ZpcUFneE1hWFpsUlhabGJuUXVWakhLQWd4TWFYWmxSWFpsYm5SY1ZqSGlBaGhNYVhabFJYWmxiblJjVmpGY1IxQkNUV1YwWVdSaGRHSHFBZzFNYVhabFJYWmxiblE2T2xZeFlnWndjbTkwYnpNIiksRjI9SChOMiwwKSxZMj16KCJDaVZzYVhabFgyVjJaVzUwTDNZeEwyeHBkbVZmWlhabGJuUmZjSFZpYkdsakxuQnliM1J2RWcxc2FYWmxYMlYyWlc1MExuWXhJaWNLRTBkbGRFeHBkbVZGZG1WdWRGSmxjWFZsYzNRU0VBb0laWFpsYm5SZmFXUVlBU0FCS0FraXFRTUtGRWRsZEV4cGRtVkZkbVZ1ZEZKbGMzQnZibk5sRWhBS0NHVjJaVzUwWDJsa0dBRWdBU2dKRWhJS0NtVjJaVzUwWDI1aGJXVVlBaUFCS0FrU0RBb0VhRzl6ZEJnRElBRW9DUkl1Q2dwemRHRnlkRjkwYVcxbEdBUWdBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJc0NnaGxibVJmZEdsdFpSZ0ZJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0R3b0hZV1JrY21WemN4Z0dJQUVvQ1JJZkNoZGhiR3h2ZDE5bWNtVmxYM0psWjJsemRISmhkR2x2YmhnSElBRW9DQkloQ2hsbmFYWmxYM1JsYlhCdmNtRnllVjl0WlcxaVpYSnphR2x3R0FnZ0FTZ0lFaFFLREdaeVpXVmZZM0psWkdsMGN4Z0pJQUVvQlJJVkNnMWxkbVZ1ZEY5amNtVmthWFJ6R0FvZ0FTZ0ZFaGdLRUcxaGVGOXdZWEowYVdOcGNHRnVkSE1ZQ3lBQktBVVNOQW9PY0hWaWJHbHphRjl6ZEdGMGRYTVlEQ0FCS0E0eUhDNXNhWFpsWDJWMlpXNTBMbll4TGxCMVlteHBjMmhUZEdGMGRYTVNGd29QWTI5MWJuUnllVjlrYVhOd2JHRjVHQTBnQVNnSkVoUUtER05wZEhsZlpHbHpjR3hoZVJnT0lBRW9DVEp6Q2haTWFYWmxSWFpsYm5SUWRXSnNhV05UWlhKMmFXTmxFbGtLREVkbGRFeHBkbVZGZG1WdWRCSWlMbXhwZG1WZlpYWmxiblF1ZGpFdVIyVjBUR2wyWlVWMlpXNTBVbVZ4ZFdWemRCb2pMbXhwZG1WZlpYWmxiblF1ZGpFdVIyVjBUR2wyWlVWMlpXNTBVbVZ6Y0c5dWMyVWlBRUxCQVFvUlkyOXRMbXhwZG1WZlpYWmxiblF1ZGpGQ0ZFeHBkbVZGZG1WdWRGQjFZbXhwWTFCeWIzUnZVQUZhUldkcGRHeGhZaTV0YjI1cFkyRXVZMjR2ZG1sa1lTOXpaR3N2WW1sNmMyVnlkbVZ5TFdkdkxtZHBkQzlzYVhabFgyVjJaVzUwTDNZeE8yeHBkbVZmWlhabGJuUjJNYUlDQTB4WVdLb0NERXhwZG1WRmRtVnVkQzVXTWNvQ0RFeHBkbVZGZG1WdWRGeFdNZUlDR0V4cGRtVkZkbVZ1ZEZ4V01WeEhVRUpOWlhSaFpHRjBZZW9DRFV4cGRtVkZkbVZ1ZERvNlZqRmlCbkJ5YjNSdk13IixbdGUsTHNdKSxVMj1IKFkyLDApLEtzPXooIkNoZDFjMlZ5TDNZeEwzVnpaWEpmWVhWMGFDNXdjbTkwYnhJSGRYTmxjaTUyTVNKRENoVlZjR1JoZEdWUVlYTnpkMjl5WkZKbGNYVmxjM1FTRkFvTWIyeGtYM0JoYzNOM2IzSmtHQUVnQVNnSkVoUUtERzVsZDE5d1lYTnpkMjl5WkJnQ0lBRW9DU0lZQ2haVmNHUmhkR1ZRWVhOemQyOXlaRkpsYzNCdmJuTmxJZzhLRFV4dloyOTFkRkpsY1hWbGMzUWlFQW9PVEc5bmIzVjBVbVZ6Y0c5dWMyVWlLQW9SUkdWc1pYUmxWWE5sY2xKbGNYVmxjM1FTRXdvTGRtVnlhV1o1WDJOdlpHVVlBU0FCS0FraUZBb1NSR1ZzWlhSbFZYTmxjbEpsYzNCdmJuTmxJazRLSWxObGJtUkZiV0ZwYkZabGNtbG1lVU52WkdWWGFYUm9RWFYwYUZKbGNYVmxjM1FTS0FvR1lXTjBhVzl1R0FFZ0FTZ09NaGd1ZFhObGNpNTJNUzVUWlc1a1JXMWhhV3hCWTNScGIyNGlKUW9qVTJWdVpFVnRZV2xzVm1WeWFXWjVRMjlrWlZkcGRHaEJkWFJvVW1WemNHOXVjMlVpUlFvY1VtVnpaWFJRWVhOemQyOXlaRmRwZEdoQmRYUm9VbVZ4ZFdWemRCSVRDZ3QyWlhKcFpubGZZMjlrWlJnQklBRW9DUklRQ2dod1lYTnpkMjl5WkJnQ0lBRW9DU0lmQ2gxU1pYTmxkRkJoYzNOM2IzSmtWMmwwYUVGMWRHaFNaWE53YjI1elpTSWRDaHRIWlc1bGNtRjBaVlJsYlhCQmRYUm9RMjlrWlZKbGNYVmxjM1FpTFFvY1IyVnVaWEpoZEdWVVpXMXdRWFYwYUVOdlpHVlNaWE53YjI1elpSSU5DZ1YwYjJ0bGJoZ0JJQUVvQ1NxOEFRb1BVMlZ1WkVWdFlXbHNRV04wYVc5dUVpRUtIVk5GVGtSZlJVMUJTVXhmUVVOVVNVOU9YMVZPVTFCRlEwbEdTVVZFRUFBU0hnb2FVMFZPUkY5RlRVRkpURjlCUTFSSlQwNWZVa1ZIU1ZOVVJWSVFBUklrQ2lCVFJVNUVYMFZOUVVsTVgwRkRWRWxQVGw5U1JWTkZWRjlRUVZOVFYwOVNSQkFDRWh3S0dGTkZUa1JmUlUxQlNVeGZRVU5VU1U5T1gweFBSMDlHUmhBREVpSUtIbE5GVGtSZlJVMUJTVXhmUVVOVVNVOU9YMFJKVTAxSlUxTmZWRVZCVFJBRU10b0RDZzlWYzJWeVFYVjBhRk5sY25acFkyVVNPUW9HVEc5bmIzVjBFaFl1ZFhObGNpNTJNUzVNYjJkdmRYUlNaWEYxWlhOMEdoY3VkWE5sY2k1Mk1TNU1iMmR2ZFhSU1pYTndiMjV6WlJKRkNncEVaV3hsZEdWVmMyVnlFaG91ZFhObGNpNTJNUzVFWld4bGRHVlZjMlZ5VW1WeGRXVnpkQm9iTG5WelpYSXVkakV1UkdWc1pYUmxWWE5sY2xKbGMzQnZibk5sRW5nS0cxTmxibVJGYldGcGJGWmxjbWxtZVVOdlpHVlhhWFJvUVhWMGFCSXJMblZ6WlhJdWRqRXVVMlZ1WkVWdFlXbHNWbVZ5YVdaNVEyOWtaVmRwZEdoQmRYUm9VbVZ4ZFdWemRCb3NMblZ6WlhJdWRqRXVVMlZ1WkVWdFlXbHNWbVZ5YVdaNVEyOWtaVmRwZEdoQmRYUm9VbVZ6Y0c5dWMyVVNaZ29WVW1WelpYUlFZWE56ZDI5eVpGZHBkR2hCZFhSb0VpVXVkWE5sY2k1Mk1TNVNaWE5sZEZCaGMzTjNiM0prVjJsMGFFRjFkR2hTWlhGMVpYTjBHaVl1ZFhObGNpNTJNUzVTWlhObGRGQmhjM04zYjNKa1YybDBhRUYxZEdoU1pYTndiMjV6WlJKakNoUkhaVzVsY21GMFpWUmxiWEJCZFhSb1EyOWtaUklrTG5WelpYSXVkakV1UjJWdVpYSmhkR1ZVWlcxd1FYVjBhRU52WkdWU1pYRjFaWE4wR2lVdWRYTmxjaTUyTVM1SFpXNWxjbUYwWlZSbGJYQkJkWFJvUTI5a1pWSmxjM0J2Ym5ObFFwUUJDZ3RqYjIwdWRYTmxjaTUyTVVJTlZYTmxja0YxZEdoUWNtOTBiMUFCV2psbmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2ZFhObGNpOTJNVHQxYzJWeWRqR2lBZ05WV0ZpcUFnZFZjMlZ5TGxZeHlnSUhWWE5sY2x4V01lSUNFMVZ6WlhKY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWdoVmMyVnlPanBXTVdJR2NISnZkRzh6IiksSjI9SChLcywwKSxCcj16KCJDaGQxYzJWeUwzWXhMM1Z6WlhKZlltRnpaUzV3Y205MGJ4SUhkWE5sY2k1Mk1TcUpBUW9QVFdGdWRYTldhWEJXWlhKemFXOXVFaUVLSFUxQlRsVlRYMVpKVUY5V1JWSlRTVTlPWDFWT1UxQkZRMGxHU1VWRUVBQVNHZ29XVFVGT1ZWTmZWa2xRWDFaRlVsTkpUMDVmUmxKRlJSQUJFaHdLR0UxQlRsVlRYMVpKVUY5V1JWSlRTVTlPWDBOQlUxVkJUQkFDRWhrS0ZVMUJUbFZUWDFaSlVGOVdSVkpUU1U5T1gxQlNUeEFES3VVQ0NoSkpiblpwZEdGMGFXOXVRMjlrWlV0cGJtUVNKQW9nU1U1V1NWUkJWRWxQVGw5RFQwUkZYMHRKVGtSZlZVNVRVRVZEU1VaSlJVUVFBQklnQ2h4SlRsWkpWRUZVU1U5T1gwTlBSRVZmUzBsT1JGOUNWVWxNVkVsT0VBRVNIUW9aU1U1V1NWUkJWRWxQVGw5RFQwUkZYMHRKVGtSZlZWTkZVaEFDRWlJS0hrbE9Wa2xVUVZSSlQwNWZRMDlFUlY5TFNVNUVYMHhKVGt0ZlJrOVNUUkFERWlJS0hrbE9Wa2xVUVZSSlQwNWZRMDlFUlY5TFNVNUVYMHhKVGt0ZlZWTkZVaEFFRWlVS0lVbE9Wa2xVUVZSSlQwNWZRMDlFUlY5TFNVNUVYMHhKVGt0ZlEwaEJUazVGVEJBRkVpWUtJa2xPVmtsVVFWUkpUMDVmUTA5RVJWOUxTVTVFWDB4SlRrdGZWMEZKVkV4SlUxUVFCaElrQ2lCSlRsWkpWRUZVU1U5T1gwTlBSRVZmUzBsT1JGOUdTVk5UU1U5T1FVSk1SUkFIRWlzS0owbE9Wa2xVUVZSSlQwNWZRMDlFUlY5TFNVNUVYME5CVFZCVlUxOUdTVk5UU1U5T1FVSk1SUkFJS2w0S0MwSnNiMk5yWldSVWVYQmxFaHdLR0VKTVQwTkxSVVJmVkZsUVJWOVZUbE5RUlVOSlJrbEZSQkFBRWhnS0ZFSk1UME5MUlVSZlZGbFFSVjlCUTBOUFZVNVVFQUVTRndvVFFreFBRMHRGUkY5VVdWQkZYMU5JVlZSVlVCQUNLcVlFQ2c5Q2JHOWphMUpsWVhOdmJsUjVjR1VTSVFvZFFreFBRMHRmVWtWQlUwOU9YMVJaVUVWZlZVNVRVRVZEU1VaSlJVUVFBQkliQ2hkQ1RFOURTMTlTUlVGVFQwNWZWRmxRUlY5UFZFaEZVaEFCRWlFS0hVSk1UME5MWDFKRlFWTlBUbDlVV1ZCRlgxQlBVazVQUjFKQlVFaFpFQUlTSGdvYVFreFBRMHRmVWtWQlUwOU9YMVJaVUVWZlVFOU1TVlJKUTFNUUF4SWZDaHRDVEU5RFMxOVNSVUZUVDA1ZlZGbFFSVjlVUlZKU1QxSkpVMDBRQkJJYkNoZENURTlEUzE5U1JVRlRUMDVmVkZsUVJWOUVVbFZIVXhBRkVpTUtIMEpNVDBOTFgxSkZRVk5QVGw5VVdWQkZYMEZVVkVGRFMxOVRXVk5VUlUwUUJoSWhDaDFDVEU5RFMxOVNSVUZUVDA1ZlZGbFFSVjlTUlZCUFVsUmZUVUZPV1JBSEVpSUtIa0pNVDBOTFgxSkZRVk5QVGw5VVdWQkZYMU5GVEV4ZlFVTkRUMVZPVkJBSUVoc0tGMEpNVDBOTFgxSkZRVk5QVGw5VVdWQkZYMFpTUVZWRUVBa1NHZ29XUWt4UFEwdGZVa1ZCVTA5T1gxUlpVRVZmVTFCQlRSQUtFaVFLSUVKTVQwTkxYMUpGUVZOUFRsOVVXVkJGWDBsTVRFVkhRVXhmVWtWSFNVOU9FQXNTSndvalFreFBRMHRmVWtWQlUwOU9YMVJaVUVWZlNVeE1SVWRCVEY5VVNVMUZYMXBQVGtVUURCSWdDaHhDVEU5RFMxOVNSVUZUVDA1ZlZGbFFSVjlKVEV4RlIwRk1YMVZCRUEwU0lBb2NRa3hQUTB0ZlVrVkJVMDlPWDFSWlVFVmZTVXhNUlVkQlRGOUpVQkFPRWhvS0ZrSk1UME5MWDFKRlFWTlBUbDlVV1ZCRlgxSkpVMHNRRHlxbUF3b09UR2x6ZEZKbFkyOXlaRlI1Y0dVU0lBb2NURWxUVkY5U1JVTlBVa1JmVkZsUVJWOVZUbE5RUlVOSlJrbEZSQkFBRWhrS0ZVeEpVMVJmVWtWRFQxSkVYMVJaVUVWZlIwbEdWQkFCRWhzS0YweEpVMVJmVWtWRFQxSkVYMVJaVUVWZlJFVkVWVU5VRUFJU0d3b1hURWxUVkY5U1JVTlBVa1JmVkZsUVJWOURTRUZTUjBVUUF4SWhDaDFNU1ZOVVgxSkZRMDlTUkY5VVdWQkZYMVZUUlZKZlJFbFRVRXhCV1JBRUVpSUtIa3hKVTFSZlVrVkRUMUpFWDFSWlVFVmZRVVJOU1U1ZlJFbFRVRXhCV1JBRkVoa0tGVXhKVTFSZlVrVkRUMUpFWDFSWlVFVmZRMDlUVkJBR0VoMEtHVXhKVTFSZlVrVkRUMUpFWDFSWlVFVmZVazlNVEVKQlEwc1FCeEllQ2hwTVNWTlVYMUpGUTA5U1JGOVVXVkJGWDFKQlZFVmZSMGxHVkJBSUVoc0tGMHhKVTFSZlVrVkRUMUpFWDFSWlVFVmZVa1ZHVlU1RUVBa1NJQW9jVEVsVFZGOVNSVU5QVWtSZlZGbFFSVjlKVGxaSlZFVmZSMGxHVkJBS0VoOEtHMHhKVTFSZlVrVkRUMUpFWDFSWlVFVmZURWxXUlY5RlZrVk9WQkFMRWh3S0dFeEpVMVJmVWtWRFQxSkVYMVJaVUVWZlVrVkdVa1ZUU0JBTUtxQUJDZ3BEY21Wa2FYUlVlWEJsRWhzS0YwTlNSVVJKVkY5VVdWQkZYMVZPVTFCRlEwbEdTVVZFRUFBU0ZBb1FRMUpGUkVsVVgxUlpVRVZmUmxKRlJSQUJFaGdLRkVOU1JVUkpWRjlVV1ZCRlgxQkZVa2xQUkVsREVBSVNGUW9SUTFKRlJFbFVYMVJaVUVWZlFVUkVUMDRRQXhJVkNoRkRVa1ZFU1ZSZlZGbFFSVjlGVmtWT1ZCQUVFaGNLRTBOU1JVUkpWRjlVV1ZCRlgxSkZSbEpGVTBnUUJTcnpBZ29OUTNKbFpHbDBURzluVkhsd1pSSWZDaHREVWtWRVNWUmZURTlIWDFSWlVFVmZWVTVUVUVWRFNVWkpSVVFRQUJJWUNoUkRVa1ZFU1ZSZlRFOUhYMVJaVUVWZlEwOVRWQkFCRWh3S0dFTlNSVVJKVkY5TVQwZGZWRmxRUlY5U1QweE1Ra0ZEU3hBQ0VpUUtJRU5TUlVSSlZGOU1UMGRmVkZsUVJWOVRWVUpUUTFKSlFrVmZRMEZUVlVGTUVBTVNJUW9kUTFKRlJFbFVYMHhQUjE5VVdWQkZYMU5WUWxORFVrbENSVjlRVWs4UUJCSWZDaHREVWtWRVNWUmZURTlIWDFSWlVFVmZWVkJIVWtGRVJWOVFVazhRQlJJZUNocERVa1ZFU1ZSZlRFOUhYMVJaVUVWZlFVUkVUMDVmTVRrd01CQUdFaDRLR2tOU1JVUkpWRjlNVDBkZlZGbFFSVjlCUkVSUFRsODVPVEF3RUFjU0hRb1pRMUpGUkVsVVgweFBSMTlVV1ZCRlgwRkVUVWxPWDBGRVJCQUlFaUFLSEVOU1JVUkpWRjlNVDBkZlZGbFFSVjlCUkUxSlRsOUVSVVJWUTFRUUNSSWVDaHBEVWtWRVNWUmZURTlIWDFSWlVFVmZRMUpGUkVsVVgwRk1UQkFLS2tZS0RFRmpkR2wyYVhSNVZIbHdaUklkQ2hsQlExUkpWa2xVV1Y5VVdWQkZYMVZPVTFCRlEwbEdTVVZFRUFBU0Z3b1RRVU5VU1ZaSlZGbGZWRmxRUlY5UVJWSkxVeEFCS2xVS0RGVnpaWEpVZVhCbFJXNTFiUklaQ2hWVlUwVlNYMVJaVUVWZlZVNVRVRVZEU1VaSlJVUVFBQklXQ2hKVlUwVlNYMVJaVUVWZlVFVlNVMDlPUVV3UUFSSVNDZzVWVTBWU1gxUlpVRVZmVkVWQlRSQUNRcFFCQ2d0amIyMHVkWE5sY2k1Mk1VSU5WWE5sY2tKaGMyVlFjbTkwYjFBQldqbG5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmRYTmxjaTkyTVR0MWMyVnlkakdpQWdOVldGaXFBZ2RWYzJWeUxsWXh5Z0lIVlhObGNseFdNZUlDRTFWelpYSmNWakZjUjFCQ1RXVjBZV1JoZEdIcUFnaFZjMlZ5T2pwV01XSUdjSEp2ZEc4eiIpLHgyPXooIkNoaDFjMlZ5TDNZeEwzVnpaWEpmWVdSdGFXNHVjSEp2ZEc4U0IzVnpaWEl1ZGpFaWlRRUtJa3h2YjNCVmNHUmhkR1ZWYzJWeVEzSmxaR2wwVTNSaGRIVnpVbVZ6Y0c5dWMyVVNEUW9GWTI5MWJuUVlBU0FCS0FVU0RRb0ZkRzkwWVd3WUFpQUJLQVVTTHdvR2MzUmhkSFZ6R0FNZ0FTZ09NaDh1ZFhObGNpNTJNUzVWY0dSaGRHVlZjMlZ5UTNKbFpHbDBVM1JoZEhWekVoUUtER1poYVd4bFpGOTFjMlZ5Y3hnRUlBTW9DU0kwQ2lGTWIyOXdWWEJrWVhSbFZYTmxja055WldScGRGTjBZWFIxYzFKbGNYVmxjM1FTRHdvSGRHRnphMTlwWkJnQklBRW9DU0pKQ2hWTWFYTjBWWE5sY2xacGNFeHZaMUpsY1hWbGMzUVNEd29IZFhObGNsOXBaQmdCSUFFb0NSSU1DZ1J3WVdkbEdBSWdBU2dGRWhFS0NYQmhaMlZmYzJsNlpSZ0RJQUVvQlNKR0NoWk1hWE4wVlhObGNsWnBjRXh2WjFKbGMzQnZibk5sRWgwS0JHeHZaM01ZQVNBREtBc3lEeTUxYzJWeUxuWXhMbFpwY0V4dlp4SU5DZ1YwYjNSaGJCZ0NJQUVvQlNKNkNnWldhWEJNYjJjU0R3b0hkWE5sY2w5cFpCZ0JJQUVvQ1JJVENndDJhWEJmZG1WeWMybHZiaGdDSUFFb0NSSVVDZ3h3WlhKcGIyUmZjM1JoY25RWUF5QUJLQVVTRWdvS2NHVnlhVzlrWDJWdVpCZ0VJQUVvQlJJUUNnaHZjR1Z5WVhSdmNoZ0ZJQUVvQ1JJT0NnWnlaV0Z6YjI0WUJpQUJLQWtpY2dvRVZYTmxjaElLQ2dKcFpCZ0JJQUVvQ1JJTUNnUnVZVzFsR0FJZ0FTZ0pFZzBLQldWdFlXbHNHQU1nQVNnSkVoTUtDM1pwY0Y5MlpYSnphVzl1R0FRZ0FTZ0pFaG9LRW1OMWNuSmxiblJmY0dWeWFXOWtYMlZ1WkJnRklBRW9BeElRQ2docGMxOTBjbWxoYkJnR0lBRW9DQ0kvQ2hCTWFYTjBWWE5sY2xKbGMzQnZibk5sRWh3S0JYVnpaWEp6R0FFZ0F5Z0xNZzB1ZFhObGNpNTJNUzVWYzJWeUVnMEtCWFJ2ZEdGc0dBSWdBU2dGSWtNS0QweHBjM1JWYzJWeVVtVnhkV1Z6ZEJJUENnZDFjMlZ5WDJsa0dBRWdBU2dKRWd3S0JIQmhaMlVZQWlBQktBVVNFUW9KY0dGblpWOXphWHBsR0FNZ0FTZ0ZJaFlLRkVGa2JXbHVSMmxtZEZacGNGSmxjM0J2Ym5ObElvRUJDaE5CWkcxcGJrZHBablJXYVhCU1pYRjFaWE4wRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtTTFFvTGRtbHdYM1psY25OcGIyNFlBaUFCS0E0eUdDNTFjMlZ5TG5ZeExrMWhiblZ6Vm1sd1ZtVnljMmx2YmhJYUNoSmpkWEp5Wlc1MFgzQmxjbWx2WkY5bGJtUVlBeUFCS0FNU0Rnb0djbVZoYzI5dUdBUWdBU2dKSWpjS0ZFZGxkRlZ6WlhKUmRXOTBZVkpsYzNCdmJuTmxFaElLQ214bFpuUmZjWFZ2ZEdFWUFTQUJLQVVTQ3dvRGRIUnNHQUlnQVNnRElpWUtFMGRsZEZWelpYSlJkVzkwWVZKbGNYVmxjM1FTRHdvSGRYTmxjbDlwWkJnQklBRW9DU0paQ2h4TWFYTjBWWE5sY2tOeVpXUnBkRkpsWTI5eVpGSmxjM0J2Ym5ObEVpb0tCM0psWTI5eVpITVlBU0FES0FzeUdTNTFjMlZ5TG5ZeExsVnpaWEpEY21Wa2FYUlNaV052Y21RU0RRb0ZkRzkwWVd3WUFpQUJLQVVpNHdJS0VGVnpaWEpEY21Wa2FYUlNaV052Y21RU0R3b0hkWE5sY2w5cFpCZ0JJQUVvQ1JJTUNnUnVZVzFsR0FJZ0FTZ0pFZzhLQjJOeVpXUnBkSE1ZQlNBQktBVVNLQW9MWTNKbFpHbDBYM1I1Y0dVWUJpQUJLQTR5RXk1MWMyVnlMbll4TGtOeVpXUnBkRlI1Y0dVU0RRb0ZaVzFoYVd3WUJ5QUJLQWtTRUFvSWIzQmxjbUYwYjNJWUNDQUJLQWtTTGdvS1kzSmxZWFJsWkY5aGRCZ0pJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0tnb0VkSGx3WlJnS0lBRW9EakljTG5WelpYSXVkakV1VlhCa1lYUmxRM0psWkdsMFQzQmxjbUYwWlJJT0NnWnlaV0Z6YjI0WUN5QUJLQWtTRkFvTWMyVnpjMmx2YmxScGRHeGxHQXdnQVNnSkVoRUtDWE5sYzNOcGIyNUpaQmdOSUFFb0NSSWZDaGR6ZVhOMFpXMWZjbTlzYkdKaFkydGZZM0psWkdsMGN4Z09JQUVvQlJJZUNoWmhaRzFwYmw5eWIyeHNZbUZqYTE5amNtVmthWFJ6R0E4Z0FTZ0ZJcFFCQ2h0TWFYTjBWWE5sY2tOeVpXUnBkRkpsWTI5eVpGSmxjWFZsYzNRU0ZBb0hkWE5sY2w5cFpCZ0JJQUVvQ1VnQWlBRUJFaklLREhKbFkyOXlaRjkwZVhCbGN4Z0NJQU1vRGpJY0xuVnpaWEl1ZGpFdVZYQmtZWFJsUTNKbFpHbDBUM0JsY21GMFpSSU1DZ1J3WVdkbEdBTWdBU2dGRWhFS0NYQmhaMlZmYzJsNlpSZ0VJQUVvQlVJS0NnaGZkWE5sY2w5cFpDSTRDaGhWY0dSaGRHVlZjMlZ5UTNKbFpHbDBVbVZ6Y0c5dWMyVVNDd29EYlhObkdBRWdBU2dKRWc4S0IzUmhjMnRmYVdRWUFpQUJLQWtpdXdFS0YxVndaR0YwWlZWelpYSkRjbVZrYVhSU1pYRjFaWE4wRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtTRHdvSFkzSmxaR2wwY3hnQ0lBRW9CUkloQ2dSMGVYQmxHQU1nQVNnT01oTXVkWE5sY2k1Mk1TNURjbVZrYVhSVWVYQmxFZzRLQm5KbFlYTnZiaGdFSUFFb0NSSXRDZ2R2Y0dWeVlYUmxHQVVnQVNnT01od3VkWE5sY2k1Mk1TNVZjR1JoZEdWRGNtVmthWFJQY0dWeVlYUmxFZzBLQlhWelpYSnpHQVlnQXlnSkVnMEtCV1Z0WVdsc0dBc2dBU2dKSWxZS0ZreHBjM1JWYzJWeVEzSmxaR2wwVW1WemNHOXVjMlVTTFFvTWRYTmxjbDlqY21Wa2FYUnpHQUVnQXlnTE1oY3VkWE5sY2k1Mk1TNVZjMlZ5UTNKbFpHbDBTVzVtYnhJTkNnVjBiM1JoYkJnQ0lBRW9CU0xLQVFvT1ZYTmxja055WldScGRFbHVabThTRHdvSGRYTmxjbDlwWkJnQklBRW9DUklNQ2dSdVlXMWxHQUlnQVNnSkVoUUtER1p5WldWZlkzSmxaR2wwY3hnRElBRW9CUklZQ2hCd1pYSnBiMlJwWTE5amNtVmthWFJ6R0FRZ0FTZ0ZFaFVLRFdGa1pHOXVYMk55WldScGRITVlCU0FCS0FVU0ZRb05kRzkwWVd4ZlkzSmxaR2wwY3hnR0lBRW9CUklOQ2dWbGJXRnBiQmdISUFFb0NSSVRDZ3QyYVhCZmRtVnljMmx2YmhnSUlBRW9DUklYQ2c5eVpXWnlaWE5vWDJOeVpXUnBkSE1ZQ1NBQktBVWlld29WVEdsemRGVnpaWEpEY21Wa2FYUlNaWEYxWlhOMEVoUUtCM1Z6WlhKZmFXUVlBU0FCS0FsSUFJZ0JBUklSQ2dSd1lXZGxHQUlnQVNnRlNBR0lBUUVTRmdvSmNHRm5aVjl6YVhwbEdBTWdBU2dGU0FLSUFRRkNDZ29JWDNWelpYSmZhV1JDQndvRlgzQmhaMlZDREFvS1gzQmhaMlZmYzJsNlpTSzZBZ29iUTNKbFlYUmxTVzUyYVhSaGRHbHZia052WkdWU1pYRjFaWE4wRWk0S0JHdHBibVFZQVNBQktBNHlHeTUxYzJWeUxuWXhMa2x1ZG1sMFlYUnBiMjVEYjJSbFMybHVaRWdBaUFFQkVoQUtDRzFoZUY5MWMyVnpHQUlnQVNnRkVoZ0tCV052ZFc1MEdBTWdBU2dGUWdtNlNBWWFCQmhrS0FFU0dRb0ZkWE5sY25NWUJDQURLQWxDQ3JwSUI1SUJCQkRRaGdNU0ZBb0RkR0ZuR0FVZ0FTZ0pRZ2U2U0FSeUFoaEFFaU1LQzJsdWRtbDBaVjlqYjJSbEdBWWdBU2dKUWdtNlNBWnlCQkFHR0NCSUFZZ0JBUklPQ2daeVpXMWhjbXNZQ0NBQktBa1NIZ29OWm1semMybHZibDlqYjNWdWRCZ0pJQUVvQlVJSHVrZ0VHZ0lZWkJJVUNnZGpjbVZrYVhSekdBb2dBU2dGU0FLSUFRRkNCd29GWDJ0cGJtUkNEZ29NWDJsdWRtbDBaVjlqYjJSbFFnb0tDRjlqY21Wa2FYUnpJbFVLSEVOeVpXRjBaVWx1ZG1sMFlYUnBiMjVEYjJSbFVtVnpjRzl1YzJVU05Rb1FhVzUyYVhSaGRHbHZibDlqYjJSbGN4Z0JJQU1vQ3pJYkxuVnpaWEl1ZGpFdVNXNTJhWFJoZEdsdmJrTnZaR1ZKYm1adklyWUNDaEpKYm5acGRHRjBhVzl1UTI5a1pVbHVabThTQ2dvQ2FXUVlBU0FCS0FNU0R3b0hkWE5sY2w5cFpCZ0NJQUVvQ1JJVENndHBiblpwZEdWZlkyOWtaUmdESUFFb0NSSXBDZ1JyYVc1a0dBUWdBU2dPTWhzdWRYTmxjaTUyTVM1SmJuWnBkR0YwYVc5dVEyOWtaVXRwYm1RU0ZBb01hWE5mWVdOMGFYWmhkR1ZrR0FVZ0FTZ0lFaEFLQ0cxaGVGOTFjMlZ6R0FZZ0FTZ0ZFaElLQ25WelpXUmZZMjkxYm5RWUJ5QUJLQVVTRWdvS1kzSmxZWFJsWkY5aWVSZ0lJQUVvQ1JJdUNncGpjbVZoZEdWa1gyRjBHQWtnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNCSUxDZ04wWVdjWUNpQUJLQWtTRGdvR2NtVnRZWEpyR0FzZ0FTZ0pFaFVLRFdacGMzTnBiMjVmWTI5MWJuUVlEQ0FCS0FVU0R3b0hZM0psWkdsMGN4Z05JQUVvQlNLd0FRb2FUR2x6ZEVsdWRtbDBZWFJwYjI1RGIyUmxjMUpsY1hWbGMzUVNGUW9FY0dGblpSZ0JJQUVvQlVJSHVrZ0VHZ0lnQUJJY0NnbHdZV2RsWDNOcGVtVVlBaUFCS0FWQ0NicElCaG9FR0dRZ0FCSXFDZ1ZyYVc1a2N4Z0RJQU1vRGpJYkxuVnpaWEl1ZGpFdVNXNTJhWFJoZEdsdmJrTnZaR1ZMYVc1a0VnOEtCM1Z6WlhKZmFXUVlCQ0FCS0FrU0V3b0xhVzUyYVhSbFgyTnZaR1VZQlNBQktBa1NDd29EZEdGbkdBWWdBU2dKSW1NS0cweHBjM1JKYm5acGRHRjBhVzl1UTI5a1pYTlNaWE53YjI1elpSSTFDaEJwYm5acGRHRjBhVzl1WDJOdlpHVnpHQUVnQXlnTE1oc3VkWE5sY2k1Mk1TNUpiblpwZEdGMGFXOXVRMjlrWlVsdVptOFNEUW9GZEc5MFlXd1lBaUFCS0FNaU53b2RSMlYwU1c1MmFYUmhkR2x2YmtOdlpHVlZjMkZuWlZKbGNYVmxjM1FTRmdvT2FXNTJhWFJsWDJOdlpHVmZhV1FZQWlBQktBTWlrUUVLRmtsdWRtbDBZWFJwYjI1U1pXeGhkR2x2YmtsdVptOFNDZ29DYVdRWUFTQUJLQU1TRWdvS2FXNTJhWFJsY2w5cFpCZ0NJQUVvQ1JJU0NncHBiblpwZEdWbFgybGtHQU1nQVNnSkVoTUtDMmx1ZG1sMFpWOWpiMlJsR0FRZ0FTZ0pFaTRLQ21OeVpXRjBaV1JmWVhRWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3SW9vQkNoNUhaWFJKYm5acGRHRjBhVzl1UTI5a1pWVnpZV2RsVW1WemNHOXVjMlVTTkFvUGFXNTJhWFJoZEdsdmJsOWpiMlJsR0FFZ0FTZ0xNaHN1ZFhObGNpNTJNUzVKYm5acGRHRjBhVzl1UTI5a1pVbHVabThTTWdvSmNtVnNZWFJwYjI1ekdBSWdBeWdMTWg4dWRYTmxjaTUyTVM1SmJuWnBkR0YwYVc5dVVtVnNZWFJwYjI1SmJtWnZJdHdDQ2h0VmNHUmhkR1ZKYm5acGRHRjBhVzl1UTI5a1pWSmxjWFZsYzNRU01nb0djM1JoZEhWekdBSWdBU2dPTWgwdWRYTmxjaTUyTVM1SmJuWnBkR0YwYVc5dVEyOWtaVk4wWVhSMWMwZ0FpQUVCRWlJS0NHMWhlRjkxYzJWekdBTWdBU2dGUWd1NlNBZ2FCaGlnalFZb0FFZ0JpQUVCRWhZS0RtbHVkbWwwWlY5amIyUmxYMmxrR0FRZ0FTZ0RFZzRLQm5KbGJXRnlheGdGSUFFb0NSSWxDZzFtYVhOemFXOXVYMk52ZFc1MEdBWWdBU2dGUWdtNlNBWWFCQmhrSUFCSUFvZ0JBUkl1Q2dScmFXNWtHQWNnQVNnT01oc3VkWE5sY2k1Mk1TNUpiblpwZEdGMGFXOXVRMjlrWlV0cGJtUklBNGdCQVJJVUNnZGpjbVZrYVhSekdBZ2dBU2dGU0FTSUFRRkNDUW9IWDNOMFlYUjFjMElMQ2dsZmJXRjRYM1Z6WlhOQ0VBb09YMlpwYzNOcGIyNWZZMjkxYm5SQ0J3b0ZYMnRwYm1SQ0Nnb0lYMk55WldScGRITktCQWdCRUFKU0MybHVkbWwwWlY5amIyUmxJaDRLSEZWd1pHRjBaVWx1ZG1sMFlYUnBiMjVEYjJSbFVtVnpjRzl1YzJVaXpBSUtIa2RsZEVsdWRtbDBZWFJwYjI1VGRHRjBhWE4wYVdOelVtVnhkV1Z6ZEJJdUNncHpkR0Z5ZEY5MGFXMWxHQUVnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNCSXNDZ2hsYm1SZmRHbHRaUmdDSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNGQW9NYVc1MmFYUmxYMk52WkdWekdBTWdBeWdKRWt3S0MyZHlZVzUxYkdGeWFYUjVHQVFnQVNnT01qY3VkWE5sY2k1Mk1TNUhaWFJKYm5acGRHRjBhVzl1VTNSaGRHbHpkR2xqYzFKbGNYVmxjM1F1VkdsdFpVZHlZVzUxYkdGeWFYUjVJbWdLRDFScGJXVkhjbUZ1ZFd4aGNtbDBlUklnQ2h4VVNVMUZYMGRTUVU1VlRFRlNTVlJaWDFWT1UxQkZRMGxHU1VWRUVBQVNHQW9VVkVsTlJWOUhVa0ZPVlV4QlVrbFVXVjlFUVZrUUFSSVpDaFZVU1UxRlgwZFNRVTVWVEVGU1NWUlpYMGhQVlZJUUFpTE1BUW9VU1c1MmFYUmhkR2x2YmxOMFlYUnBjM1JwWTNNU0V3b0xkRzkwWVd4ZlkyOWtaWE1ZQVNBQktBTVNFZ29LZFhObFpGOWpiMlJsY3hnQ0lBRW9BeElVQ2d4MWJuVnpaV1JmWTI5a1pYTVlBeUFCS0FNU0Znb09kRzkwWVd4ZmFXNTJhWFJsWlhNWUJDQUJLQU1TTVFvTFpHRnBiSGxmYzNSaGRITVlCU0FES0FzeUhDNTFjMlZ5TG5ZeExrUmhhV3g1U1c1MmFYUmhkR2x2YmxOMFlYUVNLZ29NZEc5d1gybHVkbWwwWlhKekdBWWdBeWdMTWhRdWRYTmxjaTUyTVM1SmJuWnBkR1Z5VTNSaGRDSnJDaE5FWVdsc2VVbHVkbWwwWVhScGIyNVRkR0YwRWd3S0JHUmhkR1VZQVNBQktBa1NGUW9OYVc1MmFYUmxaVjlqYjNWdWRCZ0NJQUVvQlJJYUNoSmpiMlJsWDJOeVpXRjBaV1JmWTI5MWJuUVlBeUFCS0FVU0V3b0xhVzUyYVhSbFgyTnZaR1VZQkNBQktBa2lTZ29MU1c1MmFYUmxjbE4wWVhRU0Vnb0thVzUyYVhSbGNsOXBaQmdCSUFFb0NSSVFDZ2h1YVdOcmJtRnRaUmdDSUFFb0NSSVZDZzFwYm5acGRHVmxYMk52ZFc1MEdBTWdBU2dGSWxRS0gwZGxkRWx1ZG1sMFlYUnBiMjVUZEdGMGFYTjBhV056VW1WemNHOXVjMlVTTVFvS2MzUmhkR2x6ZEdsamN4Z0JJQUVvQ3pJZExuVnpaWEl1ZGpFdVNXNTJhWFJoZEdsdmJsTjBZWFJwYzNScFkzTWltd1FLREZkaGFYUnNhWE4wU1c1bWJ4SUtDZ0pwWkJnQklBRW9BeElVQ2d4amIyNTBZV04wWDNSNWNHVVlBaUFCS0FrU0ZRb05ZMjl1ZEdGamRGOTJZV3gxWlJnRElBRW9DUklPQ2daeVpXRnpiMjRZQkNBQktBa1NLd29LWlhoMGNtRmZaR0YwWVJnRklBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUVNKd29HYzNSaGRIVnpHQVlnQVNnT01oY3VkWE5sY2k1Mk1TNVhZV2wwYkdsemRGTjBZWFIxY3hJUENnZDFjMlZ5WDJsa0dBY2dBU2dKRWk0S0NtTnlaV0YwWldSZllYUVlDQ0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQ1NBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaGNLRDJGd2NISnZkbVZmZFhObGNsOXBaQmdLSUFFb0NSSVRDZ3RqYjNWdWRISjVYMmx6YnhnTElBRW9DUkl2Q2d0aGNIQnliM1psWkY5aGRCZ01JQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0Vnb0tkMjl5YTE5bGJXRnBiQmdOSUFFb0NSSVNDZ3B3Y205bVpYTnphVzl1R0E0Z0FTZ0pFaHdLRkhOdlkybGhiRjl0WldScFlWOWhZMk52ZFc1MEdBOGdBU2dKRWhBS0NHbHVaSFZ6ZEhKNUdCQWdBU2dKRWhjS0QybHVkbWwwWVhScGIyNWZZMjlrWlJnUklBRW9DUklSQ2dsMGFXMWxYM3B2Ym1VWUVpQUJLQWtTR0FvUWRHbHRaVjk2YjI1bFgyOW1abk5sZEJnVElBRW9DU0tBQXdvVFRHbHpkRmRoYVhSc2FYTjBVbVZ4ZFdWemRCSVZDZ1J3WVdkbEdBRWdBU2dGUWdlNlNBUWFBaWdCRWh3S0NYQmhaMlZmYzJsNlpSZ0NJQUVvQlVJSnVrZ0dHZ1FZWkNnQkVpd0tCbk4wWVhSMWN4Z0RJQUVvRGpJWExuVnpaWEl1ZGpFdVYyRnBkR3hwYzNSVGRHRjBkWE5JQUlnQkFSSVZDZzFqYjI1MFlXTjBYM1poYkhWbEdBUWdBU2dKRWhVS0RXeGhibWQxWVdkbFgyeHBjM1FZQlNBREtBa1NJQW9UWlhoamJIVmtaVjk2YUY5amJsOTFjMlZ5Y3hnR0lBRW9DRWdCaUFFQkVoa0tFV1Z0WVdsc1gyUnZiV0ZwYmw5c2FYTjBHQWNnQXlnSkVoZ0tFR052ZFc1MGNubGZhWE52WDJ4cGMzUVlDQ0FES0FrU0hnb1dkMjl5YTE5bGJXRnBiRjlrYjIxaGFXNWZiR2x6ZEJnSklBTW9DUklqQ2habGVHTnNkV1JsWDJOb2FXNWxjMlZmY21WaGMyOXVHQW9nQVNnSVNBS0lBUUZDQ1FvSFgzTjBZWFIxYzBJV0NoUmZaWGhqYkhWa1pWOTZhRjlqYmw5MWMyVnljMElaQ2hkZlpYaGpiSFZrWlY5amFHbHVaWE5sWDNKbFlYTnZiaUpVQ2hSTWFYTjBWMkZwZEd4cGMzUlNaWE53YjI1elpSSXRDZzUzWVdsMGJHbHpkRjlwZEdWdGN4Z0JJQU1vQ3pJVkxuVnpaWEl1ZGpFdVYyRnBkR3hwYzNSSmJtWnZFZzBLQlhSdmRHRnNHQUlnQVNnREluSUtHMVZ3WkdGMFpWZGhhWFJzYVhOMFUzUmhkSFZ6VW1WeGRXVnpkQkl6Q2daemRHRjBkWE1ZQWlBQktBNHlGeTUxYzJWeUxuWXhMbGRoYVhSc2FYTjBVM1JoZEhWelFncTZTQWVDQVFRUUFTQUFFaDRLREhkaGFYUnNhWE4wWDJsa2N4Z0RJQU1vQTBJSXVrZ0ZrZ0VDRUdRaUhnb2NWWEJrWVhSbFYyRnBkR3hwYzNSVGRHRjBkWE5TWlhOd2IyNXpaU0k1Q2hOSFpYUkJaRzFwYmtsdVptOVNaWEYxWlhOMEVoVUtDR0ZrYldsdVgybGtHQUVnQVNnSlNBQ0lBUUZDQ3dvSlgyRmtiV2x1WDJsa0lwZ0NDZ2xCWkcxcGJrbHVabThTRHdvSGRYTmxjbDlwWkJnQklBRW9DUklNQ2dSdVlXMWxHQUlnQVNnSkVnMEtCV1Z0WVdsc0dBTWdBU2dKRWhFS0NYSnZiR1ZmYTJWNWN4Z0VJQU1vQ1JJT0NnWmhkbUYwWVhJWUJTQUJLQWtTTXdvUGJHRnpkRjlzYjJkcGJsOTBhVzFsR0FZZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwamNtVmhkR1ZrWDJGMEdBY2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJckNncGxlSFJ5WVY5a1lYUmhHQWdnQVNnTE1oY3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsTjBjblZqZEJJb0NndHdaWEp0YVhOemFXOXVjeGdKSUFNb0N6SVRMblZ6WlhJdWRqRXVVR1Z5YldsemMybHZiaUtxQVFvS1VHVnliV2x6YzJsdmJoSW1DZ1J5YjJ4bEdBRWdBU2dPTWhndWRYTmxjaTUyTVM1UVpYSnRhWE56YVc5dUxsSnZiR1VTRkFvTWNISnZaSFZqZEY5dVlXMWxHQUlnQVNnSkVnNEtCbTF2WkhWc1pSZ0RJQUVvQ1NKT0NnUlNiMnhsRWhRS0VGSlBURVZmVlU1VFVFVkRTVVpKUlVRUUFCSU9DZ3BTVDB4RlgwRkVUVWxPRUFFU0R3b0xVazlNUlY5RlJFbFVUMUlRQWhJUENndFNUMHhGWDFaSlJWZEZVaEFESWo0S0ZFZGxkRUZrYldsdVNXNW1iMUpsYzNCdmJuTmxFaVlLQ21Ga2JXbHVYMmx1Wm04WUFTQUJLQXN5RWk1MWMyVnlMbll4TGtGa2JXbHVTVzVtYnlLbUFRb01WMkZwZEd4cGMzUlNkV3hsRWljS0JIUjVjR1VZQVNBQktBNHlHUzUxYzJWeUxuWXhMbGRoYVhSc2FYTjBVblZzWlZSNWNHVVNGUW9OYzNSeWFXNW5YM1poYkhWbGN4Z0NJQU1vQ1JJUkNnbHBiblJmZG1Gc2RXVVlBeUFCS0FVU0xnb0tkR2x0WlY5MllXeDFaUmdFSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNFd29MWm14dllYUmZkbUZzZFdVWUJTQUJLQUVpcndJS0hVTnlaV0YwWlZkaGFYUnNhWE4wUVhWMGIxUmhjMnRTWlhGMVpYTjBFZzhLQW1sa0dBRWdBU2dEU0FDSUFRRVNGd29FYm1GdFpSZ0NJQUVvQ1VJSnVrZ0djZ1FRQVJoQUVpUUtCWEoxYkdWekdBTWdBeWdMTWhVdWRYTmxjaTUyTVM1WFlXbDBiR2x6ZEZKMWJHVVNLd29HWVdOMGFXOXVHQVFnQVNnT01oc3VkWE5sY2k1Mk1TNVhZV2wwYkdsemRFRjFkRzlCWTNScGIyNFNMd29HYzNSaGRIVnpHQVVnQVNnT01oOHVkWE5sY2k1Mk1TNVhZV2wwYkdsemRFRjFkRzlVWVhOclUzUmhkSFZ6RWhVS0RXRndjSEp2ZG1Gc1gzSmhkR1VZQmlBQktBVVNJUW9aWVhCd2NtOTJZV3hmYVc1MFpYSjJZV3hmYldsdWRYUmxjeGdISUFFb0JSSWZDaGR2Y21SbGNsOWllVjlqY21WaGRHVmtYMkYwWDJGell4Z0lJQUVvQ0VJRkNnTmZhV1FpTEFvZVEzSmxZWFJsVjJGcGRHeHBjM1JCZFhSdlZHRnphMUpsYzNCdmJuTmxFZ29LQW1sa0dBRWdBU2dESXB3RENoUlhZV2wwYkdsemRFRjFkRzlVWVhOclNXNW1ieElLQ2dKcFpCZ0JJQUVvQXhJTUNnUnVZVzFsR0FJZ0FTZ0pFaVFLQlhKMWJHVnpHQU1nQXlnTE1oVXVkWE5sY2k1Mk1TNVhZV2wwYkdsemRGSjFiR1VTS3dvR1lXTjBhVzl1R0FRZ0FTZ09NaHN1ZFhObGNpNTJNUzVYWVdsMGJHbHpkRUYxZEc5QlkzUnBiMjRTTHdvR2MzUmhkSFZ6R0FVZ0FTZ09NaDh1ZFhObGNpNTJNUzVYWVdsMGJHbHpkRUYxZEc5VVlYTnJVM1JoZEhWekVoVUtEV0Z3Y0hKdmRtRnNYM0poZEdVWUJpQUJLQVVTSVFvWllYQndjbTkyWVd4ZmFXNTBaWEoyWVd4ZmJXbHVkWFJsY3hnSElBRW9CUklTQ2dwamNtVmhkR1ZrWDJKNUdBZ2dBU2dKRWk0S0NtTnlaV0YwWldSZllYUVlDU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQ2lBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaGNLRDNCeWIyTmxjM05sWkY5amIzVnVkQmdMSUFFb0F4SWZDaGR2Y21SbGNsOWllVjlqY21WaGRHVmtYMkYwWDJGell4Z01JQUVvQ0NMUUFRb2JUR2x6ZEZkaGFYUnNhWE4wUVhWMGIxUmhjMnRTWlhGMVpYTjBFaFVLQkhCaFoyVVlBU0FCS0FWQ0I3cElCQm9DS0FFU0hBb0pjR0ZuWlY5emFYcGxHQUlnQVNnRlFnbTZTQVlhQkJoa0tBRVNOQW9HYzNSaGRIVnpHQU1nQVNnT01oOHVkWE5sY2k1Mk1TNVhZV2wwYkdsemRFRjFkRzlVWVhOclUzUmhkSFZ6U0FDSUFRRVNNQW9HWVdOMGFXOXVHQVFnQVNnT01oc3VkWE5sY2k1Mk1TNVhZV2wwYkdsemRFRjFkRzlCWTNScGIyNUlBWWdCQVVJSkNnZGZjM1JoZEhWelFna0tCMTloWTNScGIyNGlXd29jVEdsemRGZGhhWFJzYVhOMFFYVjBiMVJoYzJ0U1pYTndiMjV6WlJJc0NnVjBZWE5yY3hnQklBTW9DeklkTG5WelpYSXVkakV1VjJGcGRHeHBjM1JCZFhSdlZHRnphMGx1Wm04U0RRb0ZkRzkwWVd3WUFpQUJLQU1pd3dJS0VWRjFaWE4wYVc5dWJtRnBjbVZKYm1adkVnb0tBbWxrR0FFZ0FTZ0RFZzhLQjNWelpYSmZhV1FZQWlBQktBa1NEUW9GWlcxaGFXd1lBeUFCS0FrU0Rnb0djbVZoYzI5dUdBUWdBU2dKRWhJS0NuQnliMlpsYzNOcGIyNFlCU0FCS0FrU0hBb1VjMjlqYVdGc1gyMWxaR2xoWDJGalkyOTFiblFZQmlBQktBa1NFQW9JYVc1a2RYTjBjbmtZQnlBQktBa1NEQW9FYm1GdFpSZ0lJQUVvQ1JJVENndGpiM1Z1ZEhKNVgybHpieGdKSUFFb0NSSXJDZ3BsZUhSeVlWOWtZWFJoR0FvZ0FTZ0xNaGN1WjI5dloyeGxMbkJ5YjNSdlluVm1MbE4wY25WamRCSXVDZ3BqY21WaGRHVmtYMkYwR0FzZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwMWNHUmhkR1ZrWDJGMEdBd2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0NLVkFnb1lUR2x6ZEZGMVpYTjBhVzl1Ym1GcGNtVlNaWEYxWlhOMEVoVUtCSEJoWjJVWUFTQUJLQVZDQjdwSUJCb0NLQUVTSEFvSmNHRm5aVjl6YVhwbEdBSWdBU2dGUWdtNlNBWWFCQmhrS0FFU0ZBb0hkWE5sY2w5cFpCZ0RJQUVvQ1VnQWlBRUJFaElLQldWdFlXbHNHQVFnQVNnSlNBR0lBUUVTR1FvUlpXMWhhV3hmWkc5dFlXbHVYMnhwYzNRWUJTQURLQWtTRlFvTmJHRnVaM1ZoWjJWZmJHbHpkQmdHSUFNb0NSSWdDaE5sZUdOc2RXUmxYM3BvWDJOdVgzVnpaWEp6R0FjZ0FTZ0lTQUtJQVFFU0dBb1FZMjkxYm5SeWVWOXBjMjlmYkdsemRCZ0lJQU1vQ1VJS0NnaGZkWE5sY2w5cFpFSUlDZ1pmWlcxaGFXeENGZ29VWDJWNFkyeDFaR1ZmZW1oZlkyNWZkWE5sY25NaVZRb1pUR2x6ZEZGMVpYTjBhVzl1Ym1GcGNtVlNaWE53YjI1elpSSXBDZ1ZwZEdWdGN4Z0JJQU1vQ3pJYUxuVnpaWEl1ZGpFdVVYVmxjM1JwYjI1dVlXbHlaVWx1Wm04U0RRb0ZkRzkwWVd3WUFpQUJLQU1pSGdvY1IyVjBVM2x6ZEdWdFRtOTBhV1pwWTJGMGFXOXVVbVZ4ZFdWemRDSzdBUW9kUjJWMFUzbHpkR1Z0VG05MGFXWnBZMkYwYVc5dVVtVnpjRzl1YzJVU0Nnb0NhV1FZQVNBQktBVVNEd29IZG1WeWMybHZiaGdDSUFFb0JSSVRDZ3RoYkd4dmQxOWpiRzl6WlJnRElBRW9DQklzQ2doemRHRnlkRjloZEJnRUlBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTS2dvR1pXNWtYMkYwR0FVZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklPQ2dabGJtRmliR1VZQmlBQktBZ2lvUUlLSDFWd1pHRjBaVk41YzNSbGJVNXZkR2xtYVdOaGRHbHZibEpsY1hWbGMzUVNEd29DYVdRWUFTQUJLQVZJQUlnQkFSSVVDZ2QyWlhKemFXOXVHQUlnQVNnRlNBR0lBUUVTR0FvTFlXeHNiM2RmWTJ4dmMyVVlBeUFCS0FoSUFvZ0JBUkl4Q2doemRHRnlkRjloZEJnRUlBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEJJQTRnQkFSSXZDZ1psYm1SZllYUVlCU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd1NBU0lBUUVTRXdvR1pXNWhZbXhsR0FZZ0FTZ0lTQVdJQVFGQ0JRb0RYMmxrUWdvS0NGOTJaWEp6YVc5dVFnNEtERjloYkd4dmQxOWpiRzl6WlVJTENnbGZjM1JoY25SZllYUkNDUW9IWDJWdVpGOWhkRUlKQ2dkZlpXNWhZbXhsSWlJS0lGVndaR0YwWlZONWMzUmxiVTV2ZEdsbWFXTmhkR2x2YmxKbGMzQnZibk5sSWhzS0dVZGxkRkJoZVcxbGJuUlRaWFIwYVc1bmMxSmxjWFZsYzNRaU9Bb2FSMlYwVUdGNWJXVnVkRk5sZEhScGJtZHpVbVZ6Y0c5dWMyVVNHZ29TWkdsellXSnNhVzVuWDNCaGVXMWxiblJ6R0FFZ0FTZ0lJam9LSEZWd1pHRjBaVkJoZVcxbGJuUlRaWFIwYVc1bmMxSmxjWFZsYzNRU0dnb1NaR2x6WVdKc2FXNW5YM0JoZVcxbGJuUnpHQUVnQVNnSUloOEtIVlZ3WkdGMFpWQmhlVzFsYm5SVFpYUjBhVzVuYzFKbGMzQnZibk5sSWhvS0dFZGxkRU5PVkdsdFpWcHZibVZNYVhOMFVtVnhkV1Z6ZENKU0NobEhaWFJEVGxScGJXVmFiMjVsVEdsemRGSmxjM0J2Ym5ObEVob0tFbVJsWm1GMWJIUmZkR2x0WlY5NmIyNWxjeGdCSUFNb0NSSVpDaEZsWkdsMFpXUmZkR2x0WlY5NmIyNWxjeGdDSUFNb0NTSXhDaHRWY0dSaGRHVkRUbFJwYldWYWIyNWxUR2x6ZEZKbGNYVmxjM1FTRWdvS2RHbHRaVjk2YjI1bGN4Z0JJQU1vQ1NJZUNoeFZjR1JoZEdWRFRsUnBiV1ZhYjI1bFRHbHpkRkpsYzNCdmJuTmxJa0lLSFVKaGJrbHVkbWwwWVhScGIyNURiMlJsYzBKNVNWQlNaWEYxWlhOMEVpRUtER2x3WDJGa1pISmxjM05sY3hnQklBTW9DVUlMdWtnSWtnRUZDQUVRNkFjaVRBb2VRbUZ1U1c1MmFYUmhkR2x2YmtOdlpHVnpRbmxKVUZKbGMzQnZibk5sRWhRS0RHSmhibTVsWkY5amIyUmxjeGdCSUFNb0NSSVVDZ3hpWVc1dVpXUmZZMjkxYm5RWUFpQUJLQVVpRndvVlIyVjBTVkJDYkdGamEyeHBjM1JTWlhGMVpYTjBJaTRLRmtkbGRFbFFRbXhoWTJ0c2FYTjBVbVZ6Y0c5dWMyVVNGQW9NYVhCZllXUmtjbVZ6YzJWekdBRWdBeWdKSWpzS0dGVndaR0YwWlVsUVFteGhZMnRzYVhOMFVtVnhkV1Z6ZEJJZkNneHBjRjloWkdSeVpYTnpaWE1ZQVNBREtBbENDYnBJQnBJQkF4RG9CeUliQ2hsVmNHUmhkR1ZKVUVKc1lXTnJiR2x6ZEZKbGMzQnZibk5sSXZ3Q0NnOUNiRzlqYTJWa1ZYTmxja2x1Wm04U0Nnb0NhV1FZQVNBQktBTVNEd29IZFhObGNsOXBaQmdDSUFFb0NSSU9DZ1p5WldGemIyNFlBeUFCS0FrU0RRb0ZaVzFoYVd3WUJDQUJLQWtTRndvUFlYQndjbTkyWlY5MWMyVnlYMmxrR0FVZ0FTZ0pFaTRLQ21OeVpXRjBaV1JmWVhRWUJpQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NuVndaR0YwWldSZllYUVlCeUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0Vpb0tER0pzYjJOclpXUmZkSGx3WlJnSUlBRW9EaklVTG5WelpYSXVkakV1UW14dlkydGxaRlI1Y0dVU013b1JZbXh2WTJ0ZmNtVmhjMjl1WDNSNWNHVVlDU0FCS0E0eUdDNTFjMlZ5TG5ZeExrSnNiMk5yVW1WaGMyOXVWSGx3WlJJbUNnWnpkR0YwZFhNWUNpQUJLQTR5Rmk1MWMyVnlMbll4TGtKc2IyTnJaV1JUZEdGMGRYTVNLd29LWlhoMGNtRmZaR0YwWVJnTElBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUWk1UUVLSUVOeVpXRjBaVTl5VlhCa1lYUmxRbXh2WTJ0bFpGVnpaWEpTWlhGMVpYTjBFaGdLQlhWelpYSnpHQUVnQXlnSlFnbTZTQWFTQVFNUWlDY1NKZ29HYzNSaGRIVnpHQUlnQVNnT01oWXVkWE5sY2k1Mk1TNUNiRzlqYTJWa1UzUmhkSFZ6RWhNS0JuSmxZWE52YmhnRElBRW9DVWdBaUFFQkVpb0tER0pzYjJOclpXUmZkSGx3WlJnRUlBRW9EaklVTG5WelpYSXVkakV1UW14dlkydGxaRlI1Y0dVU013b1JZbXh2WTJ0ZmNtVmhjMjl1WDNSNWNHVVlCU0FCS0E0eUdDNTFjMlZ5TG5ZeExrSnNiMk5yVW1WaGMyOXVWSGx3WlVJSkNnZGZjbVZoYzI5dUlra0tJVU55WldGMFpVOXlWWEJrWVhSbFFteHZZMnRsWkZWelpYSlNaWE53YjI1elpSSVZDZzF6ZFdOalpYTnpYM1Z6WlhKekdBRWdBeWdKRWcwS0JYUnZkR0ZzR0FJZ0FTZ0ZJcWdCQ2hkTWFYTjBRbXh2WTJ0bFpGVnpaWEp6VW1WeGRXVnpkQklWQ2dSd1lXZGxHQUVnQVNnRlFnZTZTQVFhQWlnQkVod0tDWEJoWjJWZmMybDZaUmdDSUFFb0JVSUp1a2dHR2dRWVpDZ0JFaFFLQjNWelpYSmZhV1FZQXlBQktBbElBSWdCQVJJckNnWnpkR0YwZFhNWUJDQUJLQTR5Rmk1MWMyVnlMbll4TGtKc2IyTnJaV1JUZEdGMGRYTklBWWdCQVVJS0NnaGZkWE5sY2w5cFpFSUpDZ2RmYzNSaGRIVnpJbG9LR0V4cGMzUkNiRzlqYTJWa1ZYTmxjbk5TWlhOd2IyNXpaUkl2Q2cxaWJHOWphMlZrWDNWelpYSnpHQUVnQXlnTE1oZ3VkWE5sY2k1Mk1TNUNiRzlqYTJWa1ZYTmxja2x1Wm04U0RRb0ZkRzkwWVd3WUFpQUJLQU1pS2dvWFFXUnRhVzVIWlhSVmMyVnlTVzVtYjFKbGNYVmxjM1FTRHdvSGRYTmxjbDlwWkJnQklBRW9DU0tPQXdvWVFXUnRhVzVIWlhSVmMyVnlTVzVtYjFKbGMzQnZibk5sRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtTRFFvRlpXMWhhV3dZQWlBQktBa1NFUW9KWm1seWMzUnVZVzFsR0FNZ0FTZ0pFaEFLQ0d4aGMzUnVZVzFsR0FRZ0FTZ0pFaE1LQzJScGMzQnNZWGx1WVcxbEdBVWdBU2dKRWhBS0NHNXBZMnR1WVcxbEdBWWdBU2dKRWc0S0JtRjJZWFJoY2hnSElBRW9DUklRQ2docGMxOWhiSEJvWVJnSUlBRW9DQklUQ2d0cGJsOTNZV2wwYkdsemRCZ0pJQUVvQ0JJVENndDJhWEJmZG1WeWMybHZiaGdLSUFFb0NSSVVDZ3gyYVhCZmFXNTBaWEoyWVd3WUN5QUJLQWtTR2dvU1kzVnljbVZ1ZEY5d1pYSnBiMlJmWlc1a0dBd2dBU2dERWh3S0ZHTmhibU5sYkY5aGRGOXdaWEpwYjJSZlpXNWtHQTBnQVNnSUVnOEtCMmx6WDJKbGRHRVlEaUFCS0FnU0dBb1FjR0Y1YldWdWRGOXdiR0YwWm05eWJSZ1BJQUVvQ1JJTENnTjFhV1FZRUNBQktBa1NHd29UWTI5dVkzVnljbVZ1ZEY5elpYTnphVzl1Y3hnUklBRW9CUklWQ2cxd2JHRjBabTl5YlY5c2FYTjBHQklnQXlnSklrb0tHa2RsZEZWelpYSk1iMmR2Wm1aVGRHRjBkWE5TWlhGMVpYTjBFZ3NLQTJsa2N4Z0JJQU1vQ1JJTUNnUndZV2RsR0FJZ0FTZ0ZFaEVLQ1hCaFoyVmZjMmw2WlJnRElBRW9CU0tCQVFvUVZYTmxja3h2WjI5bVpsTjBZWFIxY3hJS0NnSnBaQmdCSUFFb0NSSU5DZ1ZsYldGcGJCZ0NJQUVvQ1JJakNnWnpkR0YwZFhNWUF5QUJLQTR5RXk1MWMyVnlMbll4TGxWelpYSlRkR0YwZFhNU0xRb0pkWEJrWVhSbFgyRjBHQVFnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNDSldDaHRIWlhSVmMyVnlURzluYjJabVUzUmhkSFZ6VW1WemNHOXVjMlVTS0FvRmRYTmxjbk1ZQVNBREtBc3lHUzUxYzJWeUxuWXhMbFZ6WlhKTWIyZHZabVpUZEdGMGRYTVNEUW9GZEc5MFlXd1lBaUFCS0FVaWJRb3VRbUYwWTJoQlpHUkJZM1JwZG1sMGVWRjFaWE4wYVc5dWJtRnBjbVZRWlhKdGFYTnphVzl1VW1WeGRXVnpkQklzQ2cxaFkzUnBkbWwwZVY5MGVYQmxHQUVnQVNnT01oVXVkWE5sY2k1Mk1TNUJZM1JwZG1sMGVWUjVjR1VTRFFvRmRYTmxjbk1ZQWlBREtBa2lYZ292UW1GMFkyaEJaR1JCWTNScGRtbDBlVkYxWlhOMGFXOXVibUZwY21WUVpYSnRhWE56YVc5dVVtVnpjRzl1YzJVU0Znb09ZV1JrWldSZmRYTmxjbDlwWkhNWUFTQURLQWtTRXdvTFlXUmtaV1JmWTI5MWJuUVlBaUFCS0FVaTlBRUtFRkpwYzJ0SmJuUmxiR3hwWjJWdVkyVVNDZ29DYVdRWUFTQUJLQU1TRHdvSGRYTmxjbDlwWkJnQ0lBRW9DUkl4Q2dwcGJuUmxiRjkwZVhCbEdBTWdBU2dPTWgwdWRYTmxjaTUyTVM1U2FYTnJTVzUwWld4c2FXZGxibU5sVkhsd1pSSVNDZ3BwYm5SbGJGOWtZWFJoR0FRZ0FTZ0pFaThLQm5OMFlYUjFjeGdGSUFFb0RqSWZMblZ6WlhJdWRqRXVVbWx6YTBsdWRHVnNiR2xuWlc1alpWTjBZWFIxY3hJT0NnWnpiM1Z5WTJVWUJpQUJLQWtTQ3dvRGRHRm5HQWNnQVNnSkVpNEtDbU55WldGMFpXUmZZWFFZQ0NBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdJckVCQ2hwQlpHUlNhWE5yU1c1MFpXeHNhV2RsYm1ObFVtVnhkV1Z6ZEJJeENncHBiblJsYkY5MGVYQmxHQUVnQVNnT01oMHVkWE5sY2k1Mk1TNVNhWE5yU1c1MFpXeHNhV2RsYm1ObFZIbHdaUklTQ2dwcGJuUmxiRjlrWVhSaEdBSWdBeWdKRWk4S0JuTjBZWFIxY3hnRElBRW9EaklmTG5WelpYSXVkakV1VW1semEwbHVkR1ZzYkdsblpXNWpaVk4wWVhSMWN4SU9DZ1p6YjNWeVkyVVlCQ0FCS0FrU0N3b0RkR0ZuR0FVZ0FTZ0pJaDBLRzBGa1pGSnBjMnRKYm5SbGJHeHBaMlZ1WTJWU1pYTndiMjV6WlNMZUFnb2JUR2x6ZEZKcGMydEpiblJsYkd4cFoyVnVZMlZTWlhGMVpYTjBFallLQ21sdWRHVnNYM1I1Y0dVWUFTQUJLQTR5SFM1MWMyVnlMbll4TGxKcGMydEpiblJsYkd4cFoyVnVZMlZVZVhCbFNBQ0lBUUVTTkFvR2MzUmhkSFZ6R0FJZ0FTZ09NaDh1ZFhObGNpNTJNUzVTYVhOclNXNTBaV3hzYVdkbGJtTmxVM1JoZEhWelNBR0lBUUVTRXdvR2MyOTFjbU5sR0FNZ0FTZ0pTQUtJQVFFU0ZBb0hkWE5sY2w5cFpCZ0VJQUVvQ1VnRGlBRUJFaEFLQTNSaFp4Z0ZJQUVvQ1VnRWlBRUJFaGNLQ21sdWRHVnNYMlJoZEdFWUJpQUJLQWxJQllnQkFSSVZDZ1J3WVdkbEdBY2dBU2dGUWdlNlNBUWFBaWdCRWh3S0NYQmhaMlZmYzJsNlpSZ0lJQUVvQlVJSnVrZ0dHZ1FZWkNnQlFnMEtDMTlwYm5SbGJGOTBlWEJsUWdrS0IxOXpkR0YwZFhOQ0NRb0hYM052ZFhKalpVSUtDZ2hmZFhObGNsOXBaRUlHQ2dSZmRHRm5RZzBLQzE5cGJuUmxiRjlrWVhSaElsNEtIRXhwYzNSU2FYTnJTVzUwWld4c2FXZGxibU5sVW1WemNHOXVjMlVTTHdvTWFXNTBaV3hzYVdkbGJtTmxHQUVnQXlnTE1oa3VkWE5sY2k1Mk1TNVNhWE5yU1c1MFpXeHNhV2RsYm1ObEVnMEtCWFJ2ZEdGc0dBSWdBU2dGSXFVQ0NoMVZjR1JoZEdWU2FYTnJTVzUwWld4c2FXZGxibU5sVW1WeGRXVnpkQklLQ2dKcFpCZ0JJQUVvQXhJMENnWnpkR0YwZFhNWUFpQUJLQTR5SHk1MWMyVnlMbll4TGxKcGMydEpiblJsYkd4cFoyVnVZMlZUZEdGMGRYTklBSWdCQVJJUUNnTjBZV2NZQXlBQktBbElBWWdCQVJJVENnWnpiM1Z5WTJVWUJDQUJLQWxJQW9nQkFSSVhDZ3BwYm5SbGJGOWtZWFJoR0FVZ0FTZ0pTQU9JQVFFU05nb0thVzUwWld4ZmRIbHdaUmdHSUFFb0RqSWRMblZ6WlhJdWRqRXVVbWx6YTBsdWRHVnNiR2xuWlc1alpWUjVjR1ZJQklnQkFSSU9DZ1p5WldGemIyNFlCeUFCS0FsQ0NRb0hYM04wWVhSMWMwSUdDZ1JmZEdGblFna0tCMTl6YjNWeVkyVkNEUW9MWDJsdWRHVnNYMlJoZEdGQ0RRb0xYMmx1ZEdWc1gzUjVjR1VpSUFvZVZYQmtZWFJsVW1semEwbHVkR1ZzYkdsblpXNWpaVkpsYzNCdmJuTmxJaklLSTBScGMyRmliR1ZTYVhOclNXNTBaV3hzYVdkbGJtTmxRbmxVWVdkU1pYRjFaWE4wRWdzS0EzUmhaeGdCSUFFb0NTSW1DaVJFYVhOaFlteGxVbWx6YTBsdWRHVnNiR2xuWlc1alpVSjVWR0ZuVW1WemNHOXVjMlVxaUFFS0ZsVndaR0YwWlZWelpYSkRjbVZrYVhSVGRHRjBkWE1TSWdvZVZYQmtZWFJsVlhObGNrTnlaV1JwZEZOMFlYUjFjMTlWYm10dWIzZHVFQUFTSlFvaFZYQmtZWFJsVlhObGNrTnlaV1JwZEZOMFlYUjFjMTlRY205alpYTnphVzVuRUFFU0l3b2ZWWEJrWVhSbFZYTmxja055WldScGRGTjBZWFIxYzE5R2FXNXBjMmhsWkJBQ0twc0RDaE5WY0dSaGRHVkRjbVZrYVhSUGNHVnlZWFJsRWlVS0lWVlFSRUZVUlY5RFVrVkVTVlJmVDFCRlVrRlVSVjlWVGxOUVJVTkpSa2xGUkJBQUVoNEtHbFZRUkVGVVJWOURVa1ZFU1ZSZlQxQkZVa0ZVUlY5SFNVWlVFQUVTSUFvY1ZWQkVRVlJGWDBOU1JVUkpWRjlQVUVWU1FWUkZYMFJGUkZWRFZCQUNFaUFLSEZWUVJFRlVSVjlEVWtWRVNWUmZUMUJGVWtGVVJWOURTRUZTUjBVUUF4SWVDaHBWVUVSQlZFVmZRMUpGUkVsVVgwOVFSVkpCVkVWZlEwOVRWQkFFRWlJS0hsVlFSRUZVUlY5RFVrVkVTVlJmVDFCRlVrRlVSVjlTVDB4TVFrRkRTeEFGRWlNS0gxVlFSRUZVUlY5RFVrVkVTVlJmVDFCRlVrRlVSVjlTUVZSRlgwZEpSbFFRQmhJZ0NoeFZVRVJCVkVWZlExSkZSRWxVWDA5UVJWSkJWRVZmVWtWR1ZVNUVFQWNTSlFvaFZWQkVRVlJGWDBOU1JVUkpWRjlQVUVWU1FWUkZYMGxPVmtsVVJWOUhTVVpVRUFnU0pBb2dWVkJFUVZSRlgwTlNSVVJKVkY5UFVFVlNRVlJGWDB4SlZrVmZSVlpGVGxRUUNSSWhDaDFWVUVSQlZFVmZRMUpGUkVsVVgwOVFSVkpCVkVWZlVrVkdVa1ZUU0JBS0tvWUJDaFJKYm5acGRHRjBhVzl1UTI5a1pWTjBZWFIxY3hJbUNpSkpUbFpKVkVGVVNVOU9YME5QUkVWZlUxUkJWRlZUWDFWT1UxQkZRMGxHU1VWRUVBQVNJUW9kU1U1V1NWUkJWRWxQVGw5RFQwUkZYMU5VUVZSVlUxOUJRMVJKVmtVUUFSSWpDaDlKVGxaSlZFRlVTVTlPWDBOUFJFVmZVMVJCVkZWVFgwUkpVMEZDVEVWRUVBSXFpZ0VLRGxkaGFYUnNhWE4wVTNSaGRIVnpFaDhLRzFkQlNWUk1TVk5VWDFOVVFWUlZVMTlWVGxOUVJVTkpSa2xGUkJBQUVoc0tGMWRCU1ZSTVNWTlVYMU5VUVZSVlUxOVFSVTVFU1U1SEVBRVNIQW9ZVjBGSlZFeEpVMVJmVTFSQlZGVlRYMEZRVUZKUFZrVkVFQUlTSEFvWVYwRkpWRXhKVTFSZlUxUkJWRlZUWDFKRlNrVkRWRVZFRUFNcW1nTUtFRmRoYVhSc2FYTjBVblZzWlZSNWNHVVNJZ29lVjBGSlZFeEpVMVJmVWxWTVJWOVVXVkJGWDFWT1UxQkZRMGxHU1VWRUVBQVNJd29mVjBGSlZFeEpVMVJmVWxWTVJWOVVXVkJGWDBKU1QxZFRSVkpmVEVGT1J4QUJFaU1LSDFkQlNWUk1TVk5VWDFKVlRFVmZWRmxRUlY5RlRVRkpURjlFVDAxQlNVNFFBaElpQ2g1WFFVbFVURWxUVkY5U1ZVeEZYMVJaVUVWZlEwOVZUbFJTV1Y5SlUwOFFBeElrQ2lCWFFVbFVURWxUVkY5U1ZVeEZYMVJaVUVWZlVrVkJVMDlPWDB4RlRrZFVTQkFFRWkwS0tWZEJTVlJNU1ZOVVgxSlZURVZmVkZsUVJWOUZXRU5NVlVSRlgwTklTVTVGVTBWZlVrVkJVMDlPRUFVU0tBb2tWMEZKVkV4SlUxUmZVbFZNUlY5VVdWQkZYMFZZUTB4VlJFVmZWRWxOUlY5YVQwNUZFQVlTSndvalYwRkpWRXhKVTFSZlVsVk1SVjlVV1ZCRlgxSkZVVlZGVTFSZlZFbE5SVjlIVkVVUUJ4SW5DaU5YUVVsVVRFbFRWRjlTVlV4RlgxUlpVRVZmVWtWUlZVVlRWRjlVU1UxRlgweFVSUkFJRWlNS0gxZEJTVlJNU1ZOVVgxSlZURVZmVkZsUVJWOUJTVjlUUTA5U1JWOUhWRVVRQ1NwOUNoSlhZV2wwYkdsemRFRjFkRzlCWTNScGIyNFNKQW9nVjBGSlZFeEpVMVJmUVZWVVQxOUJRMVJKVDA1ZlZVNVRVRVZEU1VaSlJVUVFBQklnQ2h4WFFVbFVURWxUVkY5QlZWUlBYMEZEVkVsUFRsOUJVRkJTVDFaRkVBRVNId29iVjBGSlZFeEpVMVJmUVZWVVQxOUJRMVJKVDA1ZlVrVktSVU5VRUFJcWtnRUtGbGRoYVhSc2FYTjBRWFYwYjFSaGMydFRkR0YwZFhNU0tRb2xWMEZKVkV4SlUxUmZRVlZVVDE5VVFWTkxYMU5VUVZSVlUxOVZUbE5RUlVOSlJrbEZSQkFBRWlVS0lWZEJTVlJNU1ZOVVgwRlZWRTlmVkVGVFMxOVRWRUZVVlZOZlJVNUJRa3hGUkJBQkVpWUtJbGRCU1ZSTVNWTlVYMEZWVkU5ZlZFRlRTMTlUVkVGVVZWTmZSRWxUUVVKTVJVUVFBaXBwQ2cxQ2JHOWphMlZrVTNSaGRIVnpFaDRLR2tKTVQwTkxSVVJmVTFSQlZGVlRYMVZPVTFCRlEwbEdTVVZFRUFBU0dnb1dRa3hQUTB0RlJGOVRWRUZVVlZOZlFreFBRMHRGUkJBQkVod0tHRUpNVDBOTFJVUmZVMVJCVkZWVFgxVk9Ra3hQUTB0RlJCQUNLbkVLQ2xWelpYSlRkR0YwZFhNU0d3b1hWVk5GVWw5VFZFRlVWVk5mVlU1VFVFVkRTVVpKUlVRUUFCSVdDaEpWVTBWU1gxTlVRVlJWVTE5QlExUkpWa1VRQVJJV0NoSlZVMFZTWDFOVVFWUlZVMTlDUVU1T1JVUVFBaElXQ2hKVlUwVlNYMU5VUVZSVlUxOU1UMGRQUmtZUUF5clRBUW9VVW1semEwbHVkR1ZzYkdsblpXNWpaVlI1Y0dVU0pnb2lWVk5GVWw5SlRsUkZURXhKUjBWT1EwVmZWRmxRUlY5VlRsTlFSVU5KUmtsRlJCQUFFaDBLR1ZWVFJWSmZTVTVVUlV4TVNVZEZUa05GWDFSWlVFVmZTVkFRQVJJcENpVlZVMFZTWDBsT1ZFVk1URWxIUlU1RFJWOVVXVkJGWDBWTlFVbE1YMUJTVDFaSlJFVlNFQUlTSndvalZWTkZVbDlKVGxSRlRFeEpSMFZPUTBWZlZGbFFSVjlGVFVGSlRGOVRWVVpHU1ZnUUF4SWdDaHhWVTBWU1gwbE9WRVZNVEVsSFJVNURSVjlVV1ZCRlgxQklUMDVGRUFRcWtBRUtGbEpwYzJ0SmJuUmxiR3hwWjJWdVkyVlRkR0YwZFhNU0tBb2tWVk5GVWw5SlRsUkZURXhKUjBWT1EwVmZVMVJCVkZWVFgxVk9VMUJGUTBsR1NVVkVFQUFTSmdvaVZWTkZVbDlKVGxSRlRFeEpSMFZPUTBWZlUxUkJWRlZUWDBWR1JrVkRWRWxXUlJBQkVpUUtJRlZUUlZKZlNVNVVSVXhNU1VkRlRrTkZYMU5VUVZSVlUxOUpUbFpCVEVsRUVBSXlqaHdLRUZWelpYSkJaRzFwYmxObGNuWnBZMlVTWXdvVVEzSmxZWFJsU1c1MmFYUmhkR2x2YmtOdlpHVVNKQzUxYzJWeUxuWXhMa055WldGMFpVbHVkbWwwWVhScGIyNURiMlJsVW1WeGRXVnpkQm9sTG5WelpYSXVkakV1UTNKbFlYUmxTVzUyYVhSaGRHbHZia052WkdWU1pYTndiMjV6WlJKZ0NoTk1hWE4wU1c1MmFYUmhkR2x2YmtOdlpHVnpFaU11ZFhObGNpNTJNUzVNYVhOMFNXNTJhWFJoZEdsdmJrTnZaR1Z6VW1WeGRXVnpkQm9rTG5WelpYSXVkakV1VEdsemRFbHVkbWwwWVhScGIyNURiMlJsYzFKbGMzQnZibk5sRW1rS0ZrZGxkRWx1ZG1sMFlYUnBiMjVEYjJSbFZYTmhaMlVTSmk1MWMyVnlMbll4TGtkbGRFbHVkbWwwWVhScGIyNURiMlJsVlhOaFoyVlNaWEYxWlhOMEdpY3VkWE5sY2k1Mk1TNUhaWFJKYm5acGRHRjBhVzl1UTI5a1pWVnpZV2RsVW1WemNHOXVjMlVTWXdvVVZYQmtZWFJsU1c1MmFYUmhkR2x2YmtOdlpHVVNKQzUxYzJWeUxuWXhMbFZ3WkdGMFpVbHVkbWwwWVhScGIyNURiMlJsVW1WeGRXVnpkQm9sTG5WelpYSXVkakV1VlhCa1lYUmxTVzUyYVhSaGRHbHZia052WkdWU1pYTndiMjV6WlJKc0NoZEhaWFJKYm5acGRHRjBhVzl1VTNSaGRHbHpkR2xqY3hJbkxuVnpaWEl1ZGpFdVIyVjBTVzUyYVhSaGRHbHZibE4wWVhScGMzUnBZM05TWlhGMVpYTjBHaWd1ZFhObGNpNTJNUzVIWlhSSmJuWnBkR0YwYVc5dVUzUmhkR2x6ZEdsamMxSmxjM0J2Ym5ObEVrc0tERXhwYzNSWFlXbDBiR2x6ZEJJY0xuVnpaWEl1ZGpFdVRHbHpkRmRoYVhSc2FYTjBVbVZ4ZFdWemRCb2RMblZ6WlhJdWRqRXVUR2x6ZEZkaGFYUnNhWE4wVW1WemNHOXVjMlVTWXdvVVZYQmtZWFJsVjJGcGRHeHBjM1JUZEdGMGRYTVNKQzUxYzJWeUxuWXhMbFZ3WkdGMFpWZGhhWFJzYVhOMFUzUmhkSFZ6VW1WeGRXVnpkQm9sTG5WelpYSXVkakV1VlhCa1lYUmxWMkZwZEd4cGMzUlRkR0YwZFhOU1pYTndiMjV6WlJKcENoWkRjbVZoZEdWWFlXbDBiR2x6ZEVGMWRHOVVZWE5yRWlZdWRYTmxjaTUyTVM1RGNtVmhkR1ZYWVdsMGJHbHpkRUYxZEc5VVlYTnJVbVZ4ZFdWemRCb25MblZ6WlhJdWRqRXVRM0psWVhSbFYyRnBkR3hwYzNSQmRYUnZWR0Z6YTFKbGMzQnZibk5sRW1NS0ZFeHBjM1JYWVdsMGJHbHpkRUYxZEc5VVlYTnJFaVF1ZFhObGNpNTJNUzVNYVhOMFYyRnBkR3hwYzNSQmRYUnZWR0Z6YTFKbGNYVmxjM1FhSlM1MWMyVnlMbll4TGt4cGMzUlhZV2wwYkdsemRFRjFkRzlVWVhOclVtVnpjRzl1YzJVU1dnb1JUR2x6ZEZGMVpYTjBhVzl1Ym1GcGNtVVNJUzUxYzJWeUxuWXhMa3hwYzNSUmRXVnpkR2x2Ym01aGFYSmxVbVZ4ZFdWemRCb2lMblZ6WlhJdWRqRXVUR2x6ZEZGMVpYTjBhVzl1Ym1GcGNtVlNaWE53YjI1elpSSm1DaFZIWlhSVGVYTjBaVzFPYjNScFptbGpZWFJwYjI0U0pTNTFjMlZ5TG5ZeExrZGxkRk41YzNSbGJVNXZkR2xtYVdOaGRHbHZibEpsY1hWbGMzUWFKaTUxYzJWeUxuWXhMa2RsZEZONWMzUmxiVTV2ZEdsbWFXTmhkR2x2YmxKbGMzQnZibk5sRW04S0dGVndaR0YwWlZONWMzUmxiVTV2ZEdsbWFXTmhkR2x2YmhJb0xuVnpaWEl1ZGpFdVZYQmtZWFJsVTNsemRHVnRUbTkwYVdacFkyRjBhVzl1VW1WeGRXVnpkQm9wTG5WelpYSXVkakV1VlhCa1lYUmxVM2x6ZEdWdFRtOTBhV1pwWTJGMGFXOXVVbVZ6Y0c5dWMyVVNYUW9TUjJWMFVHRjViV1Z1ZEZObGRIUnBibWR6RWlJdWRYTmxjaTUyTVM1SFpYUlFZWGx0Wlc1MFUyVjBkR2x1WjNOU1pYRjFaWE4wR2lNdWRYTmxjaTUyTVM1SFpYUlFZWGx0Wlc1MFUyVjBkR2x1WjNOU1pYTndiMjV6WlJKbUNoVlZjR1JoZEdWUVlYbHRaVzUwVTJWMGRHbHVaM01TSlM1MWMyVnlMbll4TGxWd1pHRjBaVkJoZVcxbGJuUlRaWFIwYVc1bmMxSmxjWFZsYzNRYUppNTFjMlZ5TG5ZeExsVndaR0YwWlZCaGVXMWxiblJUWlhSMGFXNW5jMUpsYzNCdmJuTmxFbG9LRVVkbGRFTk9WR2x0WlZwdmJtVk1hWE4wRWlFdWRYTmxjaTUyTVM1SFpYUkRUbFJwYldWYWIyNWxUR2x6ZEZKbGNYVmxjM1FhSWk1MWMyVnlMbll4TGtkbGRFTk9WR2x0WlZwdmJtVk1hWE4wVW1WemNHOXVjMlVTWXdvVVZYQmtZWFJsUTA1VWFXMWxXbTl1WlV4cGMzUVNKQzUxYzJWeUxuWXhMbFZ3WkdGMFpVTk9WR2x0WlZwdmJtVk1hWE4wVW1WeGRXVnpkQm9sTG5WelpYSXVkakV1VlhCa1lYUmxRMDVVYVcxbFdtOXVaVXhwYzNSU1pYTndiMjV6WlJKcENoWkNZVzVKYm5acGRHRjBhVzl1UTI5a1pYTkNlVWxRRWlZdWRYTmxjaTUyTVM1Q1lXNUpiblpwZEdGMGFXOXVRMjlrWlhOQ2VVbFFVbVZ4ZFdWemRCb25MblZ6WlhJdWRqRXVRbUZ1U1c1MmFYUmhkR2x2YmtOdlpHVnpRbmxKVUZKbGMzQnZibk5sRWxFS0RrZGxkRWxRUW14aFkydHNhWE4wRWg0dWRYTmxjaTUyTVM1SFpYUkpVRUpzWVdOcmJHbHpkRkpsY1hWbGMzUWFIeTUxYzJWeUxuWXhMa2RsZEVsUVFteGhZMnRzYVhOMFVtVnpjRzl1YzJVU1dnb1JWWEJrWVhSbFNWQkNiR0ZqYTJ4cGMzUVNJUzUxYzJWeUxuWXhMbFZ3WkdGMFpVbFFRbXhoWTJ0c2FYTjBVbVZ4ZFdWemRCb2lMblZ6WlhJdWRqRXVWWEJrWVhSbFNWQkNiR0ZqYTJ4cGMzUlNaWE53YjI1elpSSlJDZzVNYVhOMFZYTmxja055WldScGRCSWVMblZ6WlhJdWRqRXVUR2x6ZEZWelpYSkRjbVZrYVhSU1pYRjFaWE4wR2g4dWRYTmxjaTUyTVM1TWFYTjBWWE5sY2tOeVpXUnBkRkpsYzNCdmJuTmxFbGNLRUZWd1pHRjBaVlZ6WlhKRGNtVmthWFFTSUM1MWMyVnlMbll4TGxWd1pHRjBaVlZ6WlhKRGNtVmthWFJTWlhGMVpYTjBHaUV1ZFhObGNpNTJNUzVWY0dSaGRHVlZjMlZ5UTNKbFpHbDBVbVZ6Y0c5dWMyVVNkUW9hVEc5dmNGVndaR0YwWlZWelpYSkRjbVZrYVhSVGRHRjBkWE1TS2k1MWMyVnlMbll4TGt4dmIzQlZjR1JoZEdWVmMyVnlRM0psWkdsMFUzUmhkSFZ6VW1WeGRXVnpkQm9yTG5WelpYSXVkakV1VEc5dmNGVndaR0YwWlZWelpYSkRjbVZrYVhSVGRHRjBkWE5TWlhOd2IyNXpaUkpqQ2hSTWFYTjBWWE5sY2tOeVpXUnBkRkpsWTI5eVpCSWtMblZ6WlhJdWRqRXVUR2x6ZEZWelpYSkRjbVZrYVhSU1pXTnZjbVJTWlhGMVpYTjBHaVV1ZFhObGNpNTJNUzVNYVhOMFZYTmxja055WldScGRGSmxZMjl5WkZKbGMzQnZibk5sRWxjS0VFeHBjM1JDYkc5amEyVmtWWE5sY25NU0lDNTFjMlZ5TG5ZeExreHBjM1JDYkc5amEyVmtWWE5sY25OU1pYRjFaWE4wR2lFdWRYTmxjaTUyTVM1TWFYTjBRbXh2WTJ0bFpGVnpaWEp6VW1WemNHOXVjMlVTY2dvWlEzSmxZWFJsVDNKVmNHUmhkR1ZDYkc5amEyVmtWWE5sY2hJcExuVnpaWEl1ZGpFdVEzSmxZWFJsVDNKVmNHUmhkR1ZDYkc5amEyVmtWWE5sY2xKbGNYVmxjM1FhS2k1MWMyVnlMbll4TGtOeVpXRjBaVTl5VlhCa1lYUmxRbXh2WTJ0bFpGVnpaWEpTWlhOd2IyNXpaUkpMQ2d4SFpYUlZjMlZ5VVhWdmRHRVNIQzUxYzJWeUxuWXhMa2RsZEZWelpYSlJkVzkwWVZKbGNYVmxjM1FhSFM1MWMyVnlMbll4TGtkbGRGVnpaWEpSZFc5MFlWSmxjM0J2Ym5ObEVsa0tFRUZrYldsdVIyVjBWWE5sY2tsdVptOFNJQzUxYzJWeUxuWXhMa0ZrYldsdVIyVjBWWE5sY2tsdVptOVNaWEYxWlhOMEdpRXVkWE5sY2k1Mk1TNUJaRzFwYmtkbGRGVnpaWEpKYm1adlVtVnpjRzl1YzJVaUFCSmdDaE5IWlhSVmMyVnlURzluYjJabVUzUmhkSFZ6RWlNdWRYTmxjaTUyTVM1SFpYUlZjMlZ5VEc5bmIyWm1VM1JoZEhWelVtVnhkV1Z6ZEJva0xuVnpaWEl1ZGpFdVIyVjBWWE5sY2t4dloyOW1abE4wWVhSMWMxSmxjM0J2Ym5ObEVrRUtDRXhwYzNSVmMyVnlFaGd1ZFhObGNpNTJNUzVNYVhOMFZYTmxjbEpsY1hWbGMzUWFHUzUxYzJWeUxuWXhMa3hwYzNSVmMyVnlVbVZ6Y0c5dWMyVWlBQkpUQ2c1TWFYTjBWWE5sY2xacGNFeHZaeEllTG5WelpYSXVkakV1VEdsemRGVnpaWEpXYVhCTWIyZFNaWEYxWlhOMEdoOHVkWE5sY2k1Mk1TNU1hWE4wVlhObGNsWnBjRXh2WjFKbGMzQnZibk5sSWdBU1RRb01RV1J0YVc1SGFXWjBWbWx3RWh3dWRYTmxjaTUyTVM1QlpHMXBia2RwWm5SV2FYQlNaWEYxWlhOMEdoMHVkWE5sY2k1Mk1TNUJaRzFwYmtkcFpuUldhWEJTWlhOd2IyNXpaU0lBRXA0QkNpZENZWFJqYUVGa1pFRmpkR2wyYVhSNVVYVmxjM1JwYjI1dVlXbHlaVkJsY20xcGMzTnBiMjRTTnk1MWMyVnlMbll4TGtKaGRHTm9RV1JrUVdOMGFYWnBkSGxSZFdWemRHbHZibTVoYVhKbFVHVnliV2x6YzJsdmJsSmxjWFZsYzNRYU9DNTFjMlZ5TG5ZeExrSmhkR05vUVdSa1FXTjBhWFpwZEhsUmRXVnpkR2x2Ym01aGFYSmxVR1Z5YldsemMybHZibEpsYzNCdmJuTmxJZ0FTWWdvVFFXUmtVbWx6YTBsdWRHVnNiR2xuWlc1alpSSWpMblZ6WlhJdWRqRXVRV1JrVW1semEwbHVkR1ZzYkdsblpXNWpaVkpsY1hWbGMzUWFKQzUxYzJWeUxuWXhMa0ZrWkZKcGMydEpiblJsYkd4cFoyVnVZMlZTWlhOd2IyNXpaU0lBRW1VS0ZFeHBjM1JTYVhOclNXNTBaV3hzYVdkbGJtTmxFaVF1ZFhObGNpNTJNUzVNYVhOMFVtbHphMGx1ZEdWc2JHbG5aVzVqWlZKbGNYVmxjM1FhSlM1MWMyVnlMbll4TGt4cGMzUlNhWE5yU1c1MFpXeHNhV2RsYm1ObFVtVnpjRzl1YzJVaUFCSnJDaFpWY0dSaGRHVlNhWE5yU1c1MFpXeHNhV2RsYm1ObEVpWXVkWE5sY2k1Mk1TNVZjR1JoZEdWU2FYTnJTVzUwWld4c2FXZGxibU5sVW1WeGRXVnpkQm9uTG5WelpYSXVkakV1VlhCa1lYUmxVbWx6YTBsdWRHVnNiR2xuWlc1alpWSmxjM0J2Ym5ObElnQVNmUW9jUkdsellXSnNaVkpwYzJ0SmJuUmxiR3hwWjJWdVkyVkNlVlJoWnhJc0xuVnpaWEl1ZGpFdVJHbHpZV0pzWlZKcGMydEpiblJsYkd4cFoyVnVZMlZDZVZSaFoxSmxjWFZsYzNRYUxTNTFjMlZ5TG5ZeExrUnBjMkZpYkdWU2FYTnJTVzUwWld4c2FXZGxibU5sUW5sVVlXZFNaWE53YjI1elpTSUFRcFVCQ2d0amIyMHVkWE5sY2k1Mk1VSU9WWE5sY2tGa2JXbHVVSEp2ZEc5UUFWbzVaMmwwYkdGaUxtMXZibWxqWVM1amJpOTJhV1JoTDNOa2F5OWlhWHB6WlhKMlpYSXRaMjh1WjJsMEwzVnpaWEl2ZGpFN2RYTmxjbll4b2dJRFZWaFlxZ0lIVlhObGNpNVdNY29DQjFWelpYSmNWakhpQWhOVmMyVnlYRll4WEVkUVFrMWxkR0ZrWVhSaDZnSUlWWE5sY2pvNlZqRmlCbkJ5YjNSdk13IixbWWUsSGUsdGUsQnJdKSx3Mj1IKHgyLDApLFRzPXooIkNocDFjMlZ5TDNZeEwzTjFZbk5qY21sd2RHbHZiaTV3Y205MGJ4SUhkWE5sY2k1Mk1TSkVDaDFNYjI5d1ZHVmhiVlZ3WjNKaFpHVlRkR0YwZFhOU1pYTndiMjV6WlJJakNnWnpkR0YwZFhNWUFTQUJLQTR5RXk1MWMyVnlMbll4TGt4dmIzQlRkR0YwZFhNaVJBb2NURzl2Y0ZSbFlXMVZjR2R5WVdSbFUzUmhkSFZ6VW1WeGRXVnpkQklRQ2doMFpXRnRYM1ZwWkJnQklBRW9DUklTQ2dwcGJuWnZhV05sWDJsa0dBSWdBU2dKSWtBS0QxQnlaWFpwWlhkU1pYTndiMjV6WlJJUkNnbHpkV0pmZEc5MFlXd1lBU0FCS0FrU0N3b0RkR0Y0R0FJZ0FTZ0pFZzBLQlhSdmRHRnNHQU1nQVNnSklqVUtEbEJ5WlhacFpYZFNaWEYxWlhOMEVpTUtDSEJzWVc1ZmEyVjVHQUVnQVNnT01oRXVkWE5sY2k1Mk1TNVFiR0Z1WDB0bGVTSVFDZzVWY0dSaGRHVlNaWE53YjI1elpTSTBDZzFWY0dSaGRHVlNaWEYxWlhOMEVpTUtDSEJzWVc1ZmEyVjVHQUVnQVNnT01oRXVkWE5sY2k1Mk1TNVFiR0Z1WDB0bGVTSldDaDFVWldGdFUzVmljMk55YVhCMGFXOXVWWEJrWVhSbFVtVnhkV1Z6ZEJJakNnaHdiR0Z1WDJ0bGVSZ0JJQUVvRGpJUkxuVnpaWEl1ZGpFdVVHeGhibDlMWlhrU0VBb0ljWFZoYm5ScGRIa1lBaUFCS0FVaVNBb2VWR1ZoYlZOMVluTmpjbWx3ZEdsdmJsVndaR0YwWlZKbGMzQnZibk5sRWhJS0NrbHpYM1Z3WjNKaFpHVVlBU0FCS0FnU0Vnb0thVzUyYjJsalpWOXBaQmdDSUFFb0NTSlhDaDVVWldGdFUzVmljMk55YVhCMGFXOXVVSEpsZG1sbGQxSmxjWFZsYzNRU0l3b0ljR3hoYmw5clpYa1lBU0FCS0E0eUVTNTFjMlZ5TG5ZeExsQnNZVzVmUzJWNUVoQUtDSEYxWVc1MGFYUjVHQUlnQVNnRklxd0JDaDlVWldGdFUzVmljMk55YVhCMGFXOXVVSEpsZG1sbGQxSmxjM0J2Ym5ObEVoRUtDWE4xWWw5MGIzUmhiQmdCSUFFb0NSSUxDZ04wWVhnWUFpQUJLQWtTRFFvRmRHOTBZV3dZQXlBQktBa1NIQW9VYm1WNGRGOXdZWGx0Wlc1MFgyRjBkR1Z0Y0hRWUJDQUJLQU1TRmdvT2JtVjRkRjl6ZFdKZmRHOTBZV3dZQlNBQktBa1NFQW9JYm1WNGRGOTBZWGdZQmlBQktBa1NFZ29LYm1WNGRGOTBiM1JoYkJnSElBRW9DU0p6Q2c5RGFHVmphMjkxZEZKbGNYVmxjM1FTSXdvSWNHeGhibDlyWlhrWUFTQUJLQTR5RVM1MWMyVnlMbll4TGxCc1lXNWZTMlY1RWhJS0NtTmhibU5sYkY5MWNtd1lBaUFCS0FrU0V3b0xjM1ZqWTJWemMxOTFjbXdZQXlBQktBa1NFZ29LYlc5MGFYWmhkR2x2YmhnRUlBRW9DU0k4Q2hCRGFHVmphMjkxZEZKbGMzQnZibk5sRWhJS0NuTmxjM05wYjI1ZmFXUVlBU0FCS0FrU0ZBb01ZMmhsWTJ0dmRYUmZkWEpzR0FJZ0FTZ0pJcE1CQ2g5VVpXRnRVM1ZpYzJOeWFYQjBhVzl1UTJobFkydHZkWFJTWlhGMVpYTjBFaEFLQ0hSbFlXMWZkV2xrR0FFZ0FTZ0pFaU1LQ0hCc1lXNWZhMlY1R0FJZ0FTZ09NaEV1ZFhObGNpNTJNUzVRYkdGdVgwdGxlUklRQ2doeGRXRnVkR2wwZVJnRElBRW9CUklTQ2dwallXNWpaV3hmZFhKc0dBUWdBU2dKRWhNS0MzTjFZMk5sYzNOZmRYSnNHQVVnQVNnSklrd0tJRlJsWVcxVGRXSnpZM0pwY0hScGIyNURhR1ZqYTI5MWRGSmxjM0J2Ym5ObEVoSUtDbk5sYzNOcGIyNWZhV1FZQVNBQktBa1NGQW9NWTJobFkydHZkWFJmZFhKc0dBSWdBU2dKSWs0S0RVTmhibU5sYkZKbGNYVmxjM1FTTEFvTlkyRnVZMlZzWDNKbFlYTnZiaGdCSUFFb0RqSVZMblZ6WlhJdWRqRXVRMkZ1WTJWc1VtVmhjMjl1RWc4S0IyTnZiVzFsYm5RWUFpQUJLQWtpRUFvT1EyRnVZMlZzVW1WemNHOXVjMlVpRHdvTlVtVnpkVzFsVW1WeGRXVnpkQ0lRQ2c1U1pYTjFiV1ZTWlhOd2IyNXpaU0lpQ2d4UmRXVnllVkpsY1hWbGMzUVNFZ29LYzJWemMybHZibDlwWkJnQklBRW9DU0k2Q2cxUmRXVnllVkpsYzNCdmJuTmxFaGNLRDNOMVluTmpjbWx3ZEdsdmJsOXBaQmdCSUFFb0NSSVFDZ2gwWldGdFgzVnBaQmdDSUFFb0NTSVVDaEpDYVd4c2FXNW5VR0ZuWlZKbGNYVmxjM1FpSWdvVFFtbHNiR2x1WjFCaFoyVlNaWE53YjI1elpSSUxDZ04xY213WUFTQUJLQWtpSUFvZVVtVjJaVzUxWldOaGRGTjVibU5EZFhOMGIyMWxjbEpsY1hWbGMzUmZJaUVLSDFKbGRtVnVkV1ZqWVhSVGVXNWpRM1Z6ZEc5dFpYSlNaWE53YjI1elpWOHFiZ29LVEc5dmNGTjBZWFIxY3hJV0NoSk1iMjl3VTNSaGRIVnpYMVZ1YTI1dmQyNFFBQklaQ2hWTWIyOXdVM1JoZEhWelgxQnliMk5sYzNOcGJtY1FBUklXQ2hKTWIyOXdVM1JoZEhWelgxTjFZMk5sYzNNUUFoSVZDaEZNYjI5d1UzUmhkSFZ6WDBaaGFXeGxaQkFES29VQ0NnaFFiR0Z1WDB0bGVSSUxDZ2RWVGt0T1QxZE9FQUFTRHdvTFVGSlBYMDFQVGxSSVRGa1FBUklTQ2c1RFFWTlZRVXhmVFU5T1ZFaE1XUkFDRWc0S0NsQlNUMTlaUlVGU1RGa1FBeElSQ2cxRFFWTlZRVXhmV1VWQlVreFpFQVFTRUFvTVRFbFVSVjlOVDA1VVNFeFpFQVVTRHdvTFRFbFVSVjlaUlVGU1RGa1FCaElRQ2d4RFVrVkVTVlJUWHpJd01EQVFaUklSQ2cxRFVrVkVTVlJUWHpFd01EQXdFR1lTRVFvTlExSkZSRWxVVTE4eE9Ua3dNQkJuRWhFS0RGUkZRVTFmVFU5T1ZFaE1XUkRKQVJJUUNndFVSVUZOWDFsRlFWSk1XUkRLQVJJUENncFVSVUZOWDBGRVJFOU9FTXNCRWhNS0RsUkZRVTFmUkVWRVZVTlVTVTlPRU13Qktzb0NDZ3hEWVc1alpXeFNaV0Z6YjI0U0dBb1VRMkZ1WTJWc1VtVmhjMjl1WDFWdWEyNXZkMjRRQUJJZENobERZVzVqWld4U1pXRnpiMjVmVkc5dlJYaHdaVzV6YVhabEVBRVNId29iUTJGdVkyVnNVbVZoYzI5dVgwNXZURzl1WjJWeVRtVmxaRWwwRUFJU0l3b2ZRMkZ1WTJWc1VtVmhjMjl1WDBadmRXNWtRVzVCYkhSbGNtNWhkR2wyWlJBREVoOEtHME5oYm1ObGJGSmxZWE52Ymw5RWFXWm1hV04xYkhSVWIxVnpaUkFFRWlZS0lrTmhibU5sYkZKbFlYTnZibDlFYVdSdWRFMWxaWFJGZUhCbFkzUmhkR2x2Ym5NUUJSSWNDaGhEWVc1alpXeFNaV0Z6YjI1ZlQzUm9aWEpTWldGemIyNFFCaEl2Q2l0RFlXNWpaV3hTWldGemIyNWZVM1JwYkd4RVpXTnBaR2x1WjBGMmIybGthVzVuUVhWMGIxSmxibVYzRUFjU0l3b2ZRMkZ1WTJWc1VtVmhjMjl1WDBSaGRHRlFjbWwyWVdONVEyOXVZMlZ5YmhBSU12NEhDaE5UZFdKelkzSnBjSFJwYjI1VFpYSjJhV05sRWpnS0JWRjFaWEo1RWhVdWRYTmxjaTUyTVM1UmRXVnllVkpsY1hWbGMzUWFGaTUxYzJWeUxuWXhMbEYxWlhKNVVtVnpjRzl1YzJVaUFCSTdDZ1pWY0dSaGRHVVNGaTUxYzJWeUxuWXhMbFZ3WkdGMFpWSmxjWFZsYzNRYUZ5NTFjMlZ5TG5ZeExsVndaR0YwWlZKbGMzQnZibk5sSWdBU1Bnb0hVSEpsZG1sbGR4SVhMblZ6WlhJdWRqRXVVSEpsZG1sbGQxSmxjWFZsYzNRYUdDNTFjMlZ5TG5ZeExsQnlaWFpwWlhkU1pYTndiMjV6WlNJQUVrRUtDRU5vWldOcmIzVjBFaGd1ZFhObGNpNTJNUzVEYUdWamEyOTFkRkpsY1hWbGMzUWFHUzUxYzJWeUxuWXhMa05vWldOcmIzVjBVbVZ6Y0c5dWMyVWlBQkp4Q2hoVVpXRnRVM1ZpYzJOeWFYQjBhVzl1UTJobFkydHZkWFFTS0M1MWMyVnlMbll4TGxSbFlXMVRkV0p6WTNKcGNIUnBiMjVEYUdWamEyOTFkRkpsY1hWbGMzUWFLUzUxYzJWeUxuWXhMbFJsWVcxVGRXSnpZM0pwY0hScGIyNURhR1ZqYTI5MWRGSmxjM0J2Ym5ObElnQVNhd29XVkdWaGJWTjFZbk5qY21sd2RHbHZibFZ3WkdGMFpSSW1MblZ6WlhJdWRqRXVWR1ZoYlZOMVluTmpjbWx3ZEdsdmJsVndaR0YwWlZKbGNYVmxjM1FhSnk1MWMyVnlMbll4TGxSbFlXMVRkV0p6WTNKcGNIUnBiMjVWY0dSaGRHVlNaWE53YjI1elpTSUFFbTRLRjFSbFlXMVRkV0p6WTNKcGNIUnBiMjVRY21WMmFXVjNFaWN1ZFhObGNpNTJNUzVVWldGdFUzVmljMk55YVhCMGFXOXVVSEpsZG1sbGQxSmxjWFZsYzNRYUtDNTFjMlZ5TG5ZeExsUmxZVzFUZFdKelkzSnBjSFJwYjI1UWNtVjJhV1YzVW1WemNHOXVjMlVpQUJJN0NnWkRZVzVqWld3U0ZpNTFjMlZ5TG5ZeExrTmhibU5sYkZKbGNYVmxjM1FhRnk1MWMyVnlMbll4TGtOaGJtTmxiRkpsYzNCdmJuTmxJZ0FTT3dvR1VtVnpkVzFsRWhZdWRYTmxjaTUyTVM1U1pYTjFiV1ZTWlhGMVpYTjBHaGN1ZFhObGNpNTJNUzVTWlhOMWJXVlNaWE53YjI1elpTSUFFa29LQzBKcGJHeHBibWRRWVdkbEVoc3VkWE5sY2k1Mk1TNUNhV3hzYVc1blVHRm5aVkpsY1hWbGMzUWFIQzUxYzJWeUxuWXhMa0pwYkd4cGJtZFFZV2RsVW1WemNHOXVjMlVpQUJKdENoWlNaWFpsYm5WbFkyRjBVM2x1WTBOMWMzUnZiV1Z5RWljdWRYTmxjaTUyTVM1U1pYWmxiblZsWTJGMFUzbHVZME4xYzNSdmJXVnlVbVZ4ZFdWemRGOGFLQzUxYzJWeUxuWXhMbEpsZG1WdWRXVmpZWFJUZVc1alEzVnpkRzl0WlhKU1pYTndiMjV6WlY4aUFCSm9DaFZNYjI5d1ZHVmhiVlZ3WjNKaFpHVlRkR0YwZFhNU0pTNTFjMlZ5TG5ZeExreHZiM0JVWldGdFZYQm5jbUZrWlZOMFlYUjFjMUpsY1hWbGMzUWFKaTUxYzJWeUxuWXhMa3h2YjNCVVpXRnRWWEJuY21Ga1pWTjBZWFIxYzFKbGMzQnZibk5sSWdCQ21BRUtDMk52YlM1MWMyVnlMbll4UWhGVGRXSnpZM0pwY0hScGIyNVFjbTkwYjFBQldqbG5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmRYTmxjaTkyTVR0MWMyVnlkakdpQWdOVldGaXFBZ2RWYzJWeUxsWXh5Z0lIVlhObGNseFdNZUlDRTFWelpYSmNWakZjUjFCQ1RXVjBZV1JoZEdIcUFnaFZjMlZ5T2pwV01XSUdjSEp2ZEc4eiIpLGsyPUgoVHMsMCksejI9eigiQ2hsMWMyVnlMM1l4TDNWelpYSmZjSFZpYkdsakxuQnliM1J2RWdkMWMyVnlMbll4SW53S0YwZGxkRVY0WTJoaGJtZGxTVzVtYjFKbGMzQnZibk5sRWk4S0RXRmtaRzl1WDJOeVpXUnBkSE1ZQVNBREtBc3lHQzUxYzJWeUxuWXhMa0ZrWkc5dVEzSmxaR2wwU1c1bWJ4SXdDZzF6ZFdKelkzSnBjSFJwYjI1ekdBSWdBeWdMTWhrdWRYTmxjaTUyTVM1VGRXSnpZM0pwY0hScGIyNUpibVp2SW1zS0VGTjFZbk5qY21sd2RHbHZia2x1Wm04U0h3b0VjR3hoYmhnQklBRW9EaklSTG5WelpYSXVkakV1VUd4aGJsOUxaWGtTRFFvRmNISnBZMlVZQWlBQktBVVNGZ29PWkdselkyOTFiblJmY0hKcFkyVVlBeUFCS0FVU0R3b0hZM0psWkdsMGN4Z0VJQUVvQlNKU0NnOUJaR1J2YmtOeVpXUnBkRWx1Wm04U0h3b0VjR3hoYmhnQklBRW9EaklSTG5WelpYSXVkakV1VUd4aGJsOUxaWGtTRFFvRmNISnBZMlVZQWlBQktBVVNEd29IWTNKbFpHbDBjeGdESUFFb0JTSVlDaFpIWlhSRmVHTm9ZVzVuWlVsdVptOVNaWEYxWlhOMEl2SUNDaE5LYjJsdVYyRnBkR3hwYzNSU1pYRjFaWE4wRWlvS0JXVnRZV2xzR0FFZ0FTZ0pRaHU2U0JoeUZqSVVYbHRlUUYwclFGdGVRRjByWEM1YlhrQmRLeVFTRGdvR2NtVmhjMjl1R0FJZ0FTZ0pFaXNLQ21WNGRISmhYMlJoZEdFWUF5QUJLQXN5Rnk1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VTNSeWRXTjBFaDBLRldObVgyTm9ZV3hzWlc1blpWOXlaWE53YjI1elpSZ0VJQUVvQ1JJakNodG9ZMkZ3ZEdOb1lWOWphR0ZzYkdWdVoyVmZjbVZ6Y0c5dWMyVVlCU0FCS0FrU0Z3b0tkMjl5YTE5bGJXRnBiQmdHSUFFb0NVZ0FpQUVCRWhjS0NuQnliMlpsYzNOcGIyNFlCeUFCS0FsSUFZZ0JBUkloQ2hSemIyTnBZV3hmYldWa2FXRmZZV05qYjNWdWRCZ0lJQUVvQ1VnQ2lBRUJFaFVLQ0dsdVpIVnpkSEo1R0FrZ0FTZ0pTQU9JQVFGQ0RRb0xYM2R2Y210ZlpXMWhhV3hDRFFvTFgzQnliMlpsYzNOcGIyNUNGd29WWDNOdlkybGhiRjl0WldScFlWOWhZMk52ZFc1MFFnc0tDVjlwYm1SMWMzUnllU0pQQ2hSS2IybHVWMkZwZEd4cGMzUlNaWE53YjI1elpSSVZDZzFoZFhSdlgyRndjSEp2ZG1Wa0dBRWdBU2dJRWhRS0IyOXlaMTkxYVdRWUFpQUJLQWxJQUlnQkFVSUtDZ2hmYjNKblgzVnBaQ0p0Q2hGVGRHRnlkRTloZFhSb1VtVnhkV1Z6ZEJJWkNnWnBaSEJmYVdRWUFpQUJLQWxDQ2JwSUJuSUVFQUVZSUJJZkNndHpkV05qWlhOelgzVnliQmdESUFFb0NVSUt1a2dIY2dVUUFSaUFDQkljQ2dobVlXbHNYM1Z5YkJnRUlBRW9DVUlLdWtnSGNnVVFBUmlBQ0NJaENoSlRkR0Z5ZEU5aGRYUm9VbVZ6Y0c5dWMyVVNDd29EZFhKc0dBRWdBU2dKSW5NS0UwOWhkWFJvVTNWalkyVnpjMUpsY1hWbGMzUVNDZ29DYVdRWUFTQUJLQWtTRFFvRmRHOXJaVzRZQWlBQktBa1NEd29IZFhObGNsOXBaQmdESUFFb0NSSWNDZzloZFhSb1gzSmxjWFZsYzNSZmFXUVlCQ0FCS0FsSUFJZ0JBVUlTQ2hCZllYVjBhRjl5WlhGMVpYTjBYMmxrSWlVS0ZFOWhkWFJvVTNWalkyVnpjMUpsYzNCdmJuTmxFZzBLQlhSdmEyVnVHQUVnQVNnSklrQUtDa0YwZEdGamFHMWxiblFTRVFvSlptbHNaVjl1WVcxbEdBRWdBU2dKRWhFS0NXMXBiV1ZmZEhsd1pSZ0NJQUVvQ1JJTUNnUmtZWFJoR0FNZ0FTZ0pJcEVDQ2hWVGRXSnRhWFJHWldWa1ltRmphMUpsY1hWbGMzUVNJd29FZEhsd1pSZ0JJQUVvRGpJVkxuVnpaWEl1ZGpFdVJtVmxaR0poWTJ0VWVYQmxFZzBLQlhScGRHeGxHQUlnQVNnSkVoc0tCMk52Ym5SbGJuUVlBeUFCS0FsQ0NycElCM0lGRUFFWWtFNFNLZ29GWlcxaGFXd1lCQ0FCS0FsQ0c3cElHSElXTWhSZVcxNUFYU3RBVzE1QVhTdGNMbHRlUUYwckpCSU5DZ1Z5WldabGNoZ0ZJQUVvQ1JJVkNnMXZjbWxuYVc1ZlpHOXRZV2x1R0FZZ0FTZ0pFaXNLQ21WNGRISmhYMlJoZEdFWUJ5QUJLQXN5Rnk1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VTNSeWRXTjBFaWdLQzJGMGRHRmphRzFsYm5SekdBZ2dBeWdMTWhNdWRYTmxjaTUyTVM1QmRIUmhZMmh0Wlc1MElpMEtGbE4xWW0xcGRFWmxaV1JpWVdOclVtVnpjRzl1YzJVU0V3b0xabVZsWkdKaFkydGZhV1FZQVNBQktBTWlmQW9kVUhKbFEyaGxZMnRKYm5acGRHRjBhVzl1UTI5a1pWSmxjWFZsYzNRU0Z3b0VZMjlrWlJnQklBRW9DVUlKdWtnR2NnUVFCaGdnRWgwS0ZXTm1YMk5vWVd4c1pXNW5aVjl5WlhOd2IyNXpaUmdDSUFFb0NSSWpDaHRvWTJGd2RHTm9ZVjlqYUdGc2JHVnVaMlZmY21WemNHOXVjMlVZQXlBQktBa2lJQW9lVUhKbFEyaGxZMnRKYm5acGRHRjBhVzl1UTI5a1pWSmxjM0J2Ym5ObEloUUtFa05vWldOclVtVm5hVzl1VW1WeGRXVnpkQ0pqQ2hORGFHVmphMUpsWjJsdmJsSmxjM0J2Ym5ObEVoWUtEbWx6WDNWdWMzVndjRzl5ZEdWa0dBRWdBU2dJRWhrS0VXbHpYM1Z1YzNWd2NHOXlkR1ZrWDNZeUdBSWdBU2dJRWdzS0EybHpieGdESUFFb0NSSU1DZ1JqYjJSbEdBUWdBU2dKSWpzS0lVTm9aV05yU1c1MmFYUmhkR2x2YmtOdlpHVlNaVzFoYVc1elVtVnhkV1Z6ZEJJV0NnNXBiblpwZEdWZlkyOWtaVjlwWkJnQklBRW9DU0x3QVFvaVEyaGxZMnRKYm5acGRHRjBhVzl1UTI5a1pWSmxiV0ZwYm5OU1pYTndiMjV6WlJJUUNnaHRZWGhmZFhObGN4Z0JJQUVvQXhJUENnZHlaVzFoYVc1ekdBSWdBU2dERWc0S0JuSmxiV0Z5YXhnRElBRW9DUklNQ2dScmFXNWtHQVFnQVNnRkVoRUtDWFZ6WlhKZmJtRnRaUmdGSUFFb0NSSVdDZzVsWkhWZlpXMWhhV3hmYkdsemRCZ0hJQU1vQ1JJUUNnaGxaSFZmYm1GdFpSZ0lJQUVvQ1JJWENnOWxaSFZmZFc1cGNYVmxYMjVoYldVWUNTQUJLQWtTR1FvUmNtVmpiMjF0Wlc1a1gyTnlaV1JwZEhNWUNpQUJLQVVTR0FvUWNtVm5hWE4wWlhKZlkzSmxaR2wwY3hnTElBRW9CU0lhQ2hoSFpYUkhiRzlpWVd4VFpYUjBhVzVuYzFKbGNYVmxjM1FpblFFS0QwZHNiMkpoYkVWeWNtOXlTVzVtYnhJS0NnSnBaQmdCSUFFb0JSSVBDZ2QyWlhKemFXOXVHQUlnQVNnRkVoTUtDMkZzYkc5M1gyTnNiM05sR0FNZ0FTZ0lFaXdLQ0hOMFlYSjBYMkYwR0FRZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklxQ2dabGJtUmZZWFFZQlNBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdJbWNLR1VkbGRFZHNiMkpoYkZObGRIUnBibWR6VW1WemNHOXVjMlVTR2dvU1pHbHpZV0pzYVc1blgzQmhlVzFsYm5SekdBRWdBU2dJRWk0S0RHZHNiMkpoYkY5bGNuSnZjaGdDSUFFb0N6SVlMblZ6WlhJdWRqRXVSMnh2WW1Gc1JYSnliM0pKYm1adklsb0tIbFpsY21sbWVVOXlaMkZ1YVhwaGRHbHZia1Z0WVdsc1VtVnhkV1Z6ZEJJU0NnVmxiV0ZwYkJnQ0lBRW9DVWdBaUFFQkVoRUtCR052WkdVWUF5QUJLQWxJQVlnQkFVSUlDZ1pmWlcxaGFXeENCd29GWDJOdlpHVWlYZ29mVm1WeWFXWjVUM0puWVc1cGVtRjBhVzl1UlcxaGFXeFNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVnc0tBMjF6WnhnQ0lBRW9DUklQQ2dkdmNtZGZkV2xrR0FNZ0FTZ0pFZ3dLQkdOdlpHVVlCQ0FCS0FVaVZBb2pSMlYwUTJGdGNIVnpTVzUyYVhSaGRHbHZia052WkdWVmMyRm5aVkpsY1hWbGMzUVNEQW9FY0dGblpSZ0JJQUVvQlJJUkNnbHdZV2RsWDNOcGVtVVlBaUFCS0FVU0RBb0VZMjlrWlJnRElBRW9DU0syQVFva1IyVjBRMkZ0Y0hWelNXNTJhWFJoZEdsdmJrTnZaR1ZWYzJGblpWSmxjM0J2Ym5ObEVpOEtCR052WkdVWUFTQUJLQXN5SVM1MWMyVnlMbll4TGtOaGJYQjFjMGx1ZG1sMFlYUnBiMjVEYjJSbFNXNW1ieEk0Q2dseVpXeGhkR2x2Ym5NWUFpQURLQXN5SlM1MWMyVnlMbll4TGtOaGJYQjFjMGx1ZG1sMFlYUnBiMjVTWld4aGRHbHZia2x1Wm04U0RRb0ZkRzkwWVd3WUF5QUJLQVVTRkFvTWRHOTBZV3hmWldGeWJtVmtHQVFnQVNnRklxc0NDaGhEWVcxd2RYTkpiblpwZEdGMGFXOXVRMjlrWlVsdVptOFNDZ29DYVdRWUFTQUJLQU1TRHdvSGRYTmxjbDlwWkJnQ0lBRW9DUklUQ2d0cGJuWnBkR1ZmWTI5a1pSZ0RJQUVvQ1JJcENnUnJhVzVrR0FRZ0FTZ09NaHN1ZFhObGNpNTJNUzVKYm5acGRHRjBhVzl1UTI5a1pVdHBibVFTRkFvTWFYTmZZV04wYVhaaGRHVmtHQVVnQVNnSUVoQUtDRzFoZUY5MWMyVnpHQVlnQVNnRkVoSUtDblZ6WldSZlkyOTFiblFZQnlBQktBVVNFZ29LWTNKbFlYUmxaRjlpZVJnSUlBRW9DUkl1Q2dwamNtVmhkR1ZrWDJGMEdBa2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJTENnTjBZV2NZQ2lBQktBa1NEZ29HY21WdFlYSnJHQXNnQVNnSkVoVUtEV1pwYzNOcGIyNWZZMjkxYm5RWURDQUJLQVVpaEFJS0hFTmhiWEIxYzBsdWRtbDBZWFJwYjI1U1pXeGhkR2x2YmtsdVptOFNDZ29DYVdRWUFTQUJLQU1TRWdvS2FXNTJhWFJsY2w5cFpCZ0NJQUVvQ1JJVkNnMXBiblpwZEdWbFgyVnRZV2xzR0FNZ0FTZ0pFaE1LQzJsdWRtbDBaVjlqYjJSbEdBUWdBU2dKRWpjS0JuTjBZWFIxY3hnRklBRW9EakluTG5WelpYSXVkakV1UTJGdGNIVnpTVzUyYVhSaGRHbHZibEpsYkdGMGFXOXVVM1JoZEhWekVpNEtDbU55WldGMFpXUmZZWFFZQmlBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaThLQzJGalkyVndkR1ZrWDJGMEdBY2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0NJNUNpaFRaVzVrUTJGdGNIVnpSVzFoYVd4V1pYSnBabmxEYjJSbFYybDBhRUYxZEdoU1pYRjFaWE4wRWcwS0JXVnRZV2xzR0FJZ0FTZ0pJa2tLS1ZObGJtUkRZVzF3ZFhORmJXRnBiRlpsY21sbWVVTnZaR1ZYYVhSb1FYVjBhRkpsYzNCdmJuTmxFZzhLQjNOMVkyTmxjM01ZQVNBQktBZ1NDd29EYlhObkdBSWdBU2dKS3FZQ0NneEdaV1ZrWW1GamExUjVjR1VTSFFvWlJrVkZSRUpCUTB0ZlZGbFFSVjlWVGxOUVJVTkpSa2xGUkJBQUVoVUtFVVpGUlVSQ1FVTkxYMVJaVUVWZlFsVkhFQUVTS0Fva1JrVkZSRUpCUTB0ZlZGbFFSVjlHUlVGVVZWSkZYMVpKVUY5UFVsOVFRVmxOUlU1VUVBSVNId29iUmtWRlJFSkJRMHRmVkZsUVJWOUJRME5QVlU1VVgwbFRVMVZGRUFNU0hBb1lSa1ZGUkVKQlEwdGZWRmxRUlY5VVJVRk5YMGxUVTFWRkVBUVNJZ29lUmtWRlJFSkJRMHRmVkZsUVJWOVRUVk5mVmtWU1NVWkpRMEZVU1U5T0VBVVNJUW9kUmtWRlJFSkJRMHRmVkZsUVJWOUdSVUZVVlZKRlgxSkZVVlZGVTFRUUJoSVhDaE5HUlVWRVFrRkRTMTlVV1ZCRlgwOVVTRVZTRUFjU0Z3b1RSa1ZGUkVKQlEwdGZWRmxRUlY5RlRVRkpUQkFJS2pzS0hrTmhiWEIxYzBsdWRtbDBZWFJwYjI1U1pXeGhkR2x2YmxOMFlYUjFjeElMQ2dkUVJVNUVTVTVIRUFBU0RBb0lRV05qWlhCMFpXUVFBVEtYQ1FvUlZYTmxjbEIxWW14cFkxTmxjblpwWTJVU1N3b01TbTlwYmxkaGFYUnNhWE4wRWh3dWRYTmxjaTUyTVM1S2IybHVWMkZwZEd4cGMzUlNaWEYxWlhOMEdoMHVkWE5sY2k1Mk1TNUtiMmx1VjJGcGRHeHBjM1JTWlhOd2IyNXpaUkpGQ2dwVGRHRnlkRTloZFhSb0Vob3VkWE5sY2k1Mk1TNVRkR0Z5ZEU5aGRYUm9VbVZ4ZFdWemRCb2JMblZ6WlhJdWRqRXVVM1JoY25SUFlYVjBhRkpsYzNCdmJuTmxFa3NLREU5aGRYUm9VM1ZqWTJWemN4SWNMblZ6WlhJdWRqRXVUMkYxZEdoVGRXTmpaWE56VW1WeGRXVnpkQm9kTG5WelpYSXVkakV1VDJGMWRHaFRkV05qWlhOelVtVnpjRzl1YzJVU1VRb09VM1ZpYldsMFJtVmxaR0poWTJzU0hpNTFjMlZ5TG5ZeExsTjFZbTFwZEVabFpXUmlZV05yVW1WeGRXVnpkQm9mTG5WelpYSXVkakV1VTNWaWJXbDBSbVZsWkdKaFkydFNaWE53YjI1elpSSnBDaFpRY21WRGFHVmphMGx1ZG1sMFlYUnBiMjVEYjJSbEVpWXVkWE5sY2k1Mk1TNVFjbVZEYUdWamEwbHVkbWwwWVhScGIyNURiMlJsVW1WeGRXVnpkQm9uTG5WelpYSXVkakV1VUhKbFEyaGxZMnRKYm5acGRHRjBhVzl1UTI5a1pWSmxjM0J2Ym5ObEVrZ0tDME5vWldOclVtVm5hVzl1RWhzdWRYTmxjaTUyTVM1RGFHVmphMUpsWjJsdmJsSmxjWFZsYzNRYUhDNTFjMlZ5TG5ZeExrTm9aV05yVW1WbmFXOXVVbVZ6Y0c5dWMyVVNkUW9hUTJobFkydEpiblpwZEdGMGFXOXVRMjlrWlZKbGJXRnBibk1TS2k1MWMyVnlMbll4TGtOb1pXTnJTVzUyYVhSaGRHbHZia052WkdWU1pXMWhhVzV6VW1WeGRXVnpkQm9yTG5WelpYSXVkakV1UTJobFkydEpiblpwZEdGMGFXOXVRMjlrWlZKbGJXRnBibk5TWlhOd2IyNXpaUkphQ2hGSFpYUkhiRzlpWVd4VFpYUjBhVzVuY3hJaExuVnpaWEl1ZGpFdVIyVjBSMnh2WW1Gc1UyVjBkR2x1WjNOU1pYRjFaWE4wR2lJdWRYTmxjaTUyTVM1SFpYUkhiRzlpWVd4VFpYUjBhVzVuYzFKbGMzQnZibk5sRWxRS0QwZGxkRVY0WTJoaGJtZGxTVzVtYnhJZkxuVnpaWEl1ZGpFdVIyVjBSWGhqYUdGdVoyVkpibVp2VW1WeGRXVnpkQm9nTG5WelpYSXVkakV1UjJWMFJYaGphR0Z1WjJWSmJtWnZVbVZ6Y0c5dWMyVVNaZ29SVm1WeWFXWjVRMkZ0Y0hWelJXMWhhV3dTSnk1MWMyVnlMbll4TGxabGNtbG1lVTl5WjJGdWFYcGhkR2x2YmtWdFlXbHNVbVZ4ZFdWemRCb29MblZ6WlhJdWRqRXVWbVZ5YVdaNVQzSm5ZVzVwZW1GMGFXOXVSVzFoYVd4U1pYTndiMjV6WlJKN0NoeEhaWFJEWVcxd2RYTkpiblpwZEdGMGFXOXVRMjlrWlZWellXZGxFaXd1ZFhObGNpNTJNUzVIWlhSRFlXMXdkWE5KYm5acGRHRjBhVzl1UTI5a1pWVnpZV2RsVW1WeGRXVnpkQm90TG5WelpYSXVkakV1UjJWMFEyRnRjSFZ6U1c1MmFYUmhkR2x2YmtOdlpHVlZjMkZuWlZKbGMzQnZibk5sRW9vQkNpRlRaVzVrUTJGdGNIVnpSVzFoYVd4V1pYSnBabmxEYjJSbFYybDBhRUYxZEdnU01TNTFjMlZ5TG5ZeExsTmxibVJEWVcxd2RYTkZiV0ZwYkZabGNtbG1lVU52WkdWWGFYUm9RWFYwYUZKbGNYVmxjM1FhTWk1MWMyVnlMbll4TGxObGJtUkRZVzF3ZFhORmJXRnBiRlpsY21sbWVVTnZaR1ZYYVhSb1FYVjBhRkpsYzNCdmJuTmxRcFlCQ2d0amIyMHVkWE5sY2k1Mk1VSVBWWE5sY2xCMVlteHBZMUJ5YjNSdlVBRmFPV2RwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOTFjMlZ5TDNZeE8zVnpaWEoyTWFJQ0ExVllXS29DQjFWelpYSXVWakhLQWdkVmMyVnlYRll4NGdJVFZYTmxjbHhXTVZ4SFVFSk5aWFJoWkdGMFllb0NDRlZ6WlhJNk9sWXhZZ1p3Y205MGJ6TSIsW0JyLFllLEhlLHRlLFRzXSksUTI9SCh6MiwwKSxMMj16KCJDaUYxYzJWeUwzWXhMM1Z6WlhKZlptVmxaR0poWTJ0ZllXUnRhVzR1Y0hKdmRHOFNCM1Z6WlhJdWRqRWl4d0VLR2t4cGMzUlZjMlZ5Um1WbFpFSmhZMnRVWVdkU1pYRjFaWE4wRWhRS0IydGxlWGR2Y21RWUFTQUJLQWxJQUlnQkFSSVVDZ2RwYzE5d2RYTm9HQUlnQVNnSVNBR0lBUUVTRXdvR2MzUmhkSFZ6R0FNZ0FTZ0lTQUtJQVFFU0RBb0VjR0ZuWlJnRUlBRW9CUklSQ2dsd1lXZGxYM05wZW1VWUJTQUJLQVVTRmdvSmIyNXNlVjl5YjI5MEdBWWdBU2dJU0FPSUFRRkNDZ29JWDJ0bGVYZHZjbVJDQ2dvSVgybHpYM0IxYzJoQ0NRb0hYM04wWVhSMWMwSU1DZ3BmYjI1c2VWOXliMjkwSWxRS0cweHBjM1JWYzJWeVJtVmxaRUpoWTJ0VVlXZFNaWE53YjI1elpSSW1DZ1IwWVdkekdBRWdBeWdMTWhndWRYTmxjaTUyTVM1VmMyVnlSbVZsWkVKaFkydFVZV2NTRFFvRmRHOTBZV3dZQWlBQktBVWlZQW9hVEdsemRFWmxhWE5vZFVkeWIzVndTVzVtYjFKbGNYVmxjM1FTRkFvSFkyaGhkRjlwWkJnQklBRW9DVWdBaUFFQkVoUUtCMnRsZVhkdmNtUVlBaUFCS0FsSUFZZ0JBVUlLQ2doZlkyaGhkRjlwWkVJS0NnaGZhMlY1ZDI5eVpDSkhDaHRNYVhOMFJtVnBjMmgxUjNKdmRYQkpibVp2VW1WemNHOXVjMlVTS0FvR1ozSnZkWEJ6R0FFZ0F5Z0xNaGd1ZFhObGNpNTJNUzVHWldsemFIVkhjbTkxY0VsdVptOGlUQW9RUVhWMGIxSmxjR3g1UTI5dWRHVnVkQklRQ2doMWMyVmZkMmhsYmhnQklBRW9DUklTQ2dwbGJsOWpiMjUwWlc1MEdBSWdBU2dKRWhJS0NtTnVYMk52Ym5SbGJuUVlBeUFCS0FraXp3SUtHVUZrWkZWelpYSkdaV1ZrUW1GamExUmhaMUpsY1hWbGMzUVNGd29QZEc5d2FXTmZaM0p2ZFhCZmRXbGtHQVVnQVNnSkVnOEtCMmx6WDNCMWMyZ1lCaUFCS0FnU0VBb0ljSEpwYjNKcGRIa1lCeUFCS0FVU0Rnb0djM1JoZEhWekdBZ2dBU2dJRWhFS0NYQmhjbVZ1ZEY5cFpCZ0pJQUVvQXhJWkNoRmxibUZpYkdWZllYVjBiMTl5WlhCc2VSZ0tJQUVvQ0JJMUNoSmhkWFJ2WDNKbGNHeDVYMk52Ym5SbGJuUVlDeUFES0FzeUdTNTFjMlZ5TG5ZeExrRjFkRzlTWlhCc2VVTnZiblJsYm5RU0dBb1FaVzVoWW14bFgyRjFkRzlmYm05MFpSZ01JQUVvQ0JJWUNoQmhkWFJ2WDI1dmRHVmZabWxsYkdSekdBMGdBeWdKRWc0S0JuQnliMjF3ZEJnT0lBRW9DUklYQ2dSdVlXMWxHQThnQVNnSlFnbTZTQVp5QkJBREdCNFNFd29MWkdWelkzSnBjSFJwYjI0WUVDQUJLQWtTRHdvSGFYTmZjbTl2ZEJnUklBRW9DQ0krQ2hwQlpHUlZjMlZ5Um1WbFpFSmhZMnRVWVdkU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJRWc4S0IyMWxjM05oWjJVWUFpQUJLQWtpWlFvY1JHVnNaWFJsVlhObGNrWmxaV1JDWVdOclZHRm5VbVZ4ZFdWemRCSUtDZ0pwWkJnQklBRW9BeElSQ2dsbWFYSnpkRjkwWVdjWUFpQUJLQWtTRndvS2MyVmpiMjVrWDNSaFp4Z0RJQUVvQ1VnQWlBRUJRZzBLQzE5elpXTnZibVJmZEdGbklrRUtIVVJsYkdWMFpWVnpaWEpHWldWa1FtRmphMVJoWjFKbGMzQnZibk5sRWc4S0IzTjFZMk5sYzNNWUFTQUJLQWdTRHdvSGJXVnpjMkZuWlJnQ0lBRW9DU0tHQkFvY1ZYQmtZWFJsVlhObGNrWmxaV1JDWVdOclZHRm5VbVZ4ZFdWemRCSUtDZ0pwWkJnQklBRW9BeEljQ2c5MGIzQnBZMTluY205MWNGOTFhV1FZQmlBQktBbElBSWdCQVJJVUNnZHBjMTl3ZFhOb0dBY2dBU2dJU0FHSUFRRVNGUW9JY0hKcGIzSnBkSGtZQ0NBQktBVklBb2dCQVJJVENnWnpkR0YwZFhNWUNTQUJLQWhJQTRnQkFSSVdDZ2x3WVhKbGJuUmZhV1FZQ2lBQktBTklCSWdCQVJJZUNoRmxibUZpYkdWZllYVjBiMTl5WlhCc2VSZ0xJQUVvQ0VnRmlBRUJFalVLRW1GMWRHOWZjbVZ3YkhsZlkyOXVkR1Z1ZEJnTUlBTW9DeklaTG5WelpYSXVkakV1UVhWMGIxSmxjR3g1UTI5dWRHVnVkQklkQ2hCbGJtRmliR1ZmWVhWMGIxOXViM1JsR0EwZ0FTZ0lTQWFJQVFFU0dBb1FZWFYwYjE5dWIzUmxYMlpwWld4a2N4Z09JQU1vQ1JJVENnWndjbTl0Y0hRWUR5QUJLQWxJQjRnQkFSSVhDZ1J1WVcxbEdCQWdBU2dKUWdtNlNBWnlCQkFER0I0U0dBb0xaR1Z6WTNKcGNIUnBiMjRZRVNBQktBbElDSWdCQVVJU0NoQmZkRzl3YVdOZlozSnZkWEJmZFdsa1Fnb0tDRjlwYzE5d2RYTm9RZ3NLQ1Y5d2NtbHZjbWwwZVVJSkNnZGZjM1JoZEhWelFnd0tDbDl3WVhKbGJuUmZhV1JDRkFvU1gyVnVZV0pzWlY5aGRYUnZYM0psY0d4NVFoTUtFVjlsYm1GaWJHVmZZWFYwYjE5dWIzUmxRZ2tLQjE5d2NtOXRjSFJDRGdvTVgyUmxjMk55YVhCMGFXOXVJa0VLSFZWd1pHRjBaVlZ6WlhKR1pXVmtRbUZqYTFSaFoxSmxjM0J2Ym5ObEVnOEtCM04xWTJObGMzTVlBU0FCS0FnU0R3b0hiV1Z6YzJGblpSZ0NJQUVvQ1NKakNobEJaR1JHWldsemFIVkhjbTkxY0VsdVptOVNaWEYxWlhOMEVoSUtDbWR5YjNWd1gzUjVjR1VZQVNBQktBVVNFZ29LWjNKdmRYQmZibUZ0WlJnQ0lBRW9DUklOQ2dWdmQyNWxjaGdESUFFb0NSSVBDZ2RqYUdGMFgybGtHQVFnQVNnSklqNEtHa0ZrWkVabGFYTm9kVWR5YjNWd1NXNW1iMUpsYzNCdmJuTmxFZzhLQjNOMVkyTmxjM01ZQVNBQktBZ1NEd29IYldWemMyRm5aUmdDSUFFb0NTSzZBUW9jVlhCa1lYUmxSbVZwYzJoMVIzSnZkWEJKYm1adlVtVnhkV1Z6ZEJJS0NnSnBaQmdCSUFFb0F4SVhDZ3BuY205MWNGOTBlWEJsR0FNZ0FTZ0ZTQUNJQVFFU0Z3b0taM0p2ZFhCZmJtRnRaUmdFSUFFb0NVZ0JpQUVCRWhJS0JXOTNibVZ5R0FVZ0FTZ0pTQUtJQVFFU0ZBb0hZMmhoZEY5cFpCZ0dJQUVvQ1VnRGlBRUJRZzBLQzE5bmNtOTFjRjkwZVhCbFFnMEtDMTluY205MWNGOXVZVzFsUWdnS0JsOXZkMjVsY2tJS0NnaGZZMmhoZEY5cFpDSkJDaDFWY0dSaGRHVkdaV2x6YUhWSGNtOTFjRWx1Wm05U1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJRWc4S0IyMWxjM05oWjJVWUFpQUJLQWtpS2dvY1JHVnNaWFJsUm1WcGMyaDFSM0p2ZFhCSmJtWnZVbVZ4ZFdWemRCSUtDZ0pwWkJnQklBRW9BeUpCQ2gxRVpXeGxkR1ZHWldsemFIVkhjbTkxY0VsdVptOVNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVnOEtCMjFsYzNOaFoyVVlBaUFCS0FraTl3TUtEMVZ6WlhKR1pXVmtRbUZqYTFSaFp4SUtDZ0pwWkJnQklBRW9BeElYQ2c5MGIzQnBZMTluY205MWNGOTFhV1FZQmlBQktBa1NEd29IYVhOZmNIVnphQmdISUFFb0NCSVFDZ2h3Y21sdmNtbDBlUmdJSUFFb0JSSXVDZ3BqY21WaGRHVmtYMkYwR0FrZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwMWNHUmhkR1ZrWDJGMEdBb2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJT0NnWnpkR0YwZFhNWUN5QUJLQWdTRWdvS1ozSnZkWEJmYm1GdFpSZ01JQUVvQ1JJUENnZGphR0YwWDJsa0dBMGdBU2dKRWhFS0NYQmhjbVZ1ZEY5cFpCZ09JQUVvQXhJUENnZHBjMTl5YjI5MEdBOGdBU2dJRWhrS0VXVnVZV0pzWlY5aGRYUnZYM0psY0d4NUdCQWdBU2dJRWpVS0VtRjFkRzlmY21Wd2JIbGZZMjl1ZEdWdWRCZ1JJQU1vQ3pJWkxuVnpaWEl1ZGpFdVFYVjBiMUpsY0d4NVEyOXVkR1Z1ZEJJWUNoQmxibUZpYkdWZllYVjBiMTl1YjNSbEdCSWdBU2dJRWhnS0VHRjFkRzlmYm05MFpWOW1hV1ZzWkhNWUV5QURLQWtTRGdvR2NISnZiWEIwR0JRZ0FTZ0pFaW9LQ0dOb2FXeGtjbVZ1R0JVZ0F5Z0xNaGd1ZFhObGNpNTJNUzVWYzJWeVJtVmxaRUpoWTJ0VVlXY1NEQW9FYm1GdFpSZ1dJQUVvQ1JJVENndGtaWE5qY21sd2RHbHZiaGdYSUFFb0NTTFNBUW9QUm1WcGMyaDFSM0p2ZFhCSmJtWnZFZ29LQW1sa0dBRWdBU2dERWk0S0NtTnlaV0YwWldSZllYUVlBaUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQXlBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFZ3NLQTNWcFpCZ0ZJQUVvQ1JJU0NncG5jbTkxY0Y5MGVYQmxHQVlnQVNnRkVoSUtDbWR5YjNWd1gyNWhiV1VZQnlBQktBa1NEUW9GYjNkdVpYSVlDQ0FCS0FrU0R3b0hZMmhoZEY5cFpCZ0pJQUVvQ1NJM0NoTk1hWE4wUm1seWMzUlVZV2RTWlhGMVpYTjBFaFFLQjJ0bGVYZHZjbVFZQXlBQktBbElBSWdCQVVJS0NnaGZhMlY1ZDI5eVpDSXpDaFJNYVhOMFJtbHljM1JVWVdkU1pYTndiMjV6WlJJTUNnUjBZV2R6R0FFZ0F5Z0pFZzBLQlhSdmRHRnNHQUlnQVNnRklqNEtGRXhwYzNSU2IyOTBWR0ZuYzFKbGMzQnZibk5sRWlZS0JIUmhaM01ZQVNBREtBc3lHQzUxYzJWeUxuWXhMbFZ6WlhKR1pXVmtRbUZqYTFSaFp5SXRDaDlIWlhSVmMyVnlSbVZsWkVKaFkydFVZV2RFWlhSaGFXeFNaWEYxWlhOMEVnb0tBbWxrR0FFZ0FTZ0RJa2tLSUVkbGRGVnpaWEpHWldWa1FtRmphMVJoWjBSbGRHRnBiRkpsYzNCdmJuTmxFaVVLQTNSaFp4Z0JJQUVvQ3pJWUxuVnpaWEl1ZGpFdVZYTmxja1psWldSQ1lXTnJWR0ZuTXRNSUNoUlZjMlZ5Um1WbFpFSmhZMnRVWVdkQlpHMXBiaEppQ2hOTWFYTjBWWE5sY2tabFpXUkNZV05yVkdGbkVpTXVkWE5sY2k1Mk1TNU1hWE4wVlhObGNrWmxaV1JDWVdOclZHRm5VbVZ4ZFdWemRCb2tMblZ6WlhJdWRqRXVUR2x6ZEZWelpYSkdaV1ZrUW1GamExUmhaMUpsYzNCdmJuTmxJZ0FTWWdvVFRHbHpkRVpsYVhOb2RVZHliM1Z3U1c1bWJ4SWpMblZ6WlhJdWRqRXVUR2x6ZEVabGFYTm9kVWR5YjNWd1NXNW1iMUpsY1hWbGMzUWFKQzUxYzJWeUxuWXhMa3hwYzNSR1pXbHphSFZIY205MWNFbHVabTlTWlhOd2IyNXpaU0lBRWw4S0VrRmtaRlZ6WlhKR1pXVmtRbUZqYTFSaFp4SWlMblZ6WlhJdWRqRXVRV1JrVlhObGNrWmxaV1JDWVdOclZHRm5VbVZ4ZFdWemRCb2pMblZ6WlhJdWRqRXVRV1JrVlhObGNrWmxaV1JDWVdOclZHRm5VbVZ6Y0c5dWMyVWlBQkpvQ2hWVmNHUmhkR1ZWYzJWeVJtVmxaRUpoWTJ0VVlXY1NKUzUxYzJWeUxuWXhMbFZ3WkdGMFpWVnpaWEpHWldWa1FtRmphMVJoWjFKbGNYVmxjM1FhSmk1MWMyVnlMbll4TGxWd1pHRjBaVlZ6WlhKR1pXVmtRbUZqYTFSaFoxSmxjM0J2Ym5ObElnQVNhQW9WUkdWc1pYUmxWWE5sY2tabFpXUkNZV05yVkdGbkVpVXVkWE5sY2k1Mk1TNUVaV3hsZEdWVmMyVnlSbVZsWkVKaFkydFVZV2RTWlhGMVpYTjBHaVl1ZFhObGNpNTJNUzVFWld4bGRHVlZjMlZ5Um1WbFpFSmhZMnRVWVdkU1pYTndiMjV6WlNJQUVsOEtFa0ZrWkVabGFYTm9kVWR5YjNWd1NXNW1ieElpTG5WelpYSXVkakV1UVdSa1JtVnBjMmgxUjNKdmRYQkpibVp2VW1WeGRXVnpkQm9qTG5WelpYSXVkakV1UVdSa1JtVnBjMmgxUjNKdmRYQkpibVp2VW1WemNHOXVjMlVpQUJKb0NoVlZjR1JoZEdWR1pXbHphSFZIY205MWNFbHVabThTSlM1MWMyVnlMbll4TGxWd1pHRjBaVVpsYVhOb2RVZHliM1Z3U1c1bWIxSmxjWFZsYzNRYUppNTFjMlZ5TG5ZeExsVndaR0YwWlVabGFYTm9kVWR5YjNWd1NXNW1iMUpsYzNCdmJuTmxJZ0FTYUFvVlJHVnNaWFJsUm1WcGMyaDFSM0p2ZFhCSmJtWnZFaVV1ZFhObGNpNTJNUzVFWld4bGRHVkdaV2x6YUhWSGNtOTFjRWx1Wm05U1pYRjFaWE4wR2lZdWRYTmxjaTUyTVM1RVpXeGxkR1ZHWldsemFIVkhjbTkxY0VsdVptOVNaWE53YjI1elpTSUFFazBLREV4cGMzUkdhWEp6ZEZSaFp4SWNMblZ6WlhJdWRqRXVUR2x6ZEVacGNuTjBWR0ZuVW1WeGRXVnpkQm9kTG5WelpYSXVkakV1VEdsemRFWnBjbk4wVkdGblVtVnpjRzl1YzJVaUFCSkhDZ3hNYVhOMFVtOXZkRlJoWjNNU0ZpNW5iMjluYkdVdWNISnZkRzlpZFdZdVJXMXdkSGthSFM1MWMyVnlMbll4TGt4cGMzUlNiMjkwVkdGbmMxSmxjM0J2Ym5ObElnQVNjUW9ZUjJWMFZYTmxja1psWldSQ1lXTnJWR0ZuUkdWMFlXbHNFaWd1ZFhObGNpNTJNUzVIWlhSVmMyVnlSbVZsWkVKaFkydFVZV2RFWlhSaGFXeFNaWEYxWlhOMEdpa3VkWE5sY2k1Mk1TNUhaWFJWYzJWeVJtVmxaRUpoWTJ0VVlXZEVaWFJoYVd4U1pYTndiMjV6WlNJQVFwMEJDZ3RqYjIwdWRYTmxjaTUyTVVJV1ZYTmxja1psWldSaVlXTnJRV1J0YVc1UWNtOTBiMUFCV2psbmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2ZFhObGNpOTJNVHQxYzJWeWRqR2lBZ05WV0ZpcUFnZFZjMlZ5TGxZeHlnSUhWWE5sY2x4V01lSUNFMVZ6WlhKY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWdoVmMyVnlPanBXTVdJR2NISnZkRzh6IixbWWUsVGYsdGVdKSxLMj1IKEwyLDApLFQyPXooIkNoSjFjMlZ5TDNZeEwzVnpaWEl1Y0hKdmRHOFNCM1Z6WlhJdWRqRWlXQW9hVEdsemRGVnpaWEpEY21Wa2FYUnpURzluVW1WemNHOXVjMlVTS3dvRWJHOW5jeGdCSUFNb0N6SWRMblZ6WlhJdWRqRXVWWE5sY2xObGMzTnBiMjVEY21Wa2FYUk1iMmNTRFFvRmRHOTBZV3dZQWlBQktBVWl2Z0VLRkZWelpYSlRaWE56YVc5dVEzSmxaR2wwVEc5bkVoSUtDbk5sYzNOcGIyNWZhV1FZQVNBQktBa1NEUW9GZEdsMGJHVVlBaUFCS0FrU0VRb0pZM0psWVhSbFgyRjBHQU1nQVNnRkVnOEtCMk55WldScGRITVlCQ0FCS0FVU0pBb0VkSGx3WlJnRklBRW9EaklXTG5WelpYSXVkakV1UTNKbFpHbDBURzluVkhsd1pSSTVDaEZqYjJ4c1lXSnZjbUYwWlY5cGJtWnZjeGdHSUFNb0N6SWVMblZ6WlhJdWRqRXVRM0psWkdsMFEyOXNiR0ZpYjNKaGRHVkpibVp2SW1FS0ZVTnlaV1JwZEVOdmJHeGhZbTl5WVhSbFNXNW1ieElQQ2dkMWMyVnlYMmxrR0FFZ0FTZ0pFaEVLQ1hWelpYSmZibUZ0WlJnQ0lBRW9DUklUQ2d0MWMyVnlYMkYyWVhSaGNoZ0RJQUVvQ1JJUENnZGpjbVZrYVhSekdBUWdBU2dGSWp3S0dVeHBjM1JWYzJWeVEzSmxaR2wwYzB4dloxSmxjWFZsYzNRU0RBb0VjR0ZuWlJnQklBRW9CUklSQ2dsd1lXZGxYM05wZW1VWUFpQUJLQVVpRlFvVFIyVjBSbkpsWlZGMWIzUmhVbVZ4ZFdWemRDSTNDaFJIWlhSR2NtVmxVWFZ2ZEdGU1pYTndiMjV6WlJJU0NncHNaV1owWDNGMWIzUmhHQUVnQVNnRkVnc0tBM1IwYkJnQ0lBRW9BeUp5Q2doVVpXRnRTVzVtYnhJTkNnVmpiM1Z1ZEJnQklBRW9CUklWQ2doMFpXRnRYM1ZwWkJnQ0lBRW9DVWdBaUFFQkVoZ0tFRzl5YVdkcGJtRnNYM1Z6WlhKZmFXUVlBeUFCS0FrU0dRb1JiM0pwWjJsdVlXeGZkWE5sY2w5MWFXUVlCQ0FCS0FsQ0N3b0pYM1JsWVcxZmRXbGtJaEVLRDFWelpYSkpibVp2VW1WeGRXVnpkQ0xnQmdvUVZYTmxja2x1Wm05U1pYTndiMjV6WlJJUENnZDFjMlZ5WDJsa0dBRWdBU2dKRWcwS0JXVnRZV2xzR0FJZ0FTZ0pFaEVLQ1dacGNuTjBibUZ0WlJnRElBRW9DUklRQ2doc1lYTjBibUZ0WlJnRUlBRW9DUklUQ2d0a2FYTndiR0Y1Ym1GdFpSZ0ZJQUVvQ1JJUUNnaHVhV05yYm1GdFpSZ0dJQUVvQ1JJT0NnWmhkbUYwWVhJWUJ5QUJLQWtTRUFvSWFYTmZZV3h3YUdFWUNDQUJLQWdTRXdvTGFXNWZkMkZwZEd4cGMzUVlDU0FCS0FnU0dnb1NZM1Z5Y21WdWRGOXdaWEpwYjJSZlpXNWtHQXdnQVNnREVod0tGR05oYm1ObGJGOWhkRjl3WlhKcGIyUmZaVzVrR0EwZ0FTZ0lFZzhLQjJselgySmxkR0VZRGlBQktBZ1NHQW9RY0dGNWJXVnVkRjl3YkdGMFptOXliUmdQSUFFb0NSSUxDZ04xYVdRWUVDQUJLQWtTR3dvVFkyOXVZM1Z5Y21WdWRGOXpaWE56YVc5dWN4Z1JJQUVvQlJJVkNnMXdiR0YwWm05eWJWOXNhWE4wR0JJZ0F5Z0pFaThLSjJOaGJsOXlaV05sYVhabFgyVjRkSEpoWDJOeVpXUnBkSE5mWm05eVgzTjFZbk5qY21saVpSZ1RJQUVvQ0JJdENpVmpZVzVmY21WalpXbDJaVjlsZUhSeVlWOWpjbVZrYVhSelgyWnZjbDkxY0dkeVlXUmxHQlFnQVNnSUVqZ0tFM04xWW5OamNtbHdkR2x2Ymw5emRHRjBkWE1ZRlNBQktBNHlHeTUxYzJWeUxuWXhMbE4xWW5OamNtbHdkR2x2YmxOMFlYUjFjeElhQ2hKdFpXMWlaWEp6YUdsd1gzWmxjbk5wYjI0WUhpQUJLQWtTR3dvVGJXVnRZbVZ5YzJocGNGOXBiblJsY25aaGJCZ2ZJQUVvQ1JJZkNoZHVaWGgwWDIxbGJXSmxjbk5vYVhCZmRtVnljMmx2YmhnZ0lBRW9DUklvQ2dsMWMyVnlYM1I1Y0dVWUtDQUJLQTR5RlM1MWMyVnlMbll4TGxWelpYSlVlWEJsUlc1MWJSSWtDZ2wwWldGdFgybHVabThZS1NBQktBc3lFUzUxYzJWeUxuWXhMbFJsWVcxSmJtWnZFaHNLRTJselgyMWxiV0psY25Ob2FYQmZkSEpwWVd3WUlTQUJLQWdTSndvSVpXUjFYMmx1Wm04WUlpQUJLQXN5RUM1MWMyVnlMbll4TGtWa2RVbHVabTlJQUlnQkFSSVVDZ3h6YlhOZmRtVnlhV1pwWldRWUl5QUJLQWdTSUFvWWJtVjRkRjl0WlcxaVpYSnphR2x3WDJsdWRHVnlkbUZzR0NRZ0FTZ0pFZzBLQlhCbGNtdHpHQ1VnQVNnSVFnc0tDVjlsWkhWZmFXNW1iMG9FQ0FvUUMwb0VDQXNRREZJTGRtbHdYM1psY25OcGIyNVNESFpwY0Y5cGJuUmxjblpoYkNLV0FRb0hSV1IxU1c1bWJ4SUxDZ04xYVdRWUFTQUJLQWtTREFvRWJtRnRaUmdDSUFFb0NSSVJDZ2xsWkhWZlpXMWhhV3dZQXlBQktBa1NHUW9SY21WamIyMXRaVzVrWDJOeVpXUnBkSE1ZQkNBQktBVVNHQW9RY21WbmFYTjBaWEpmWTNKbFpHbDBjeGdGSUFFb0JSSVRDZ3RsWkhWZlpHOXRZV2x1Y3hnR0lBTW9DUklUQ2d0MWJtbHhkV1ZmYm1GdFpSZ0hJQUVvQ1NKL0NocERhR1ZqYTBsdWRtbDBZWFJwYjI1RGIyUmxVbVZ4ZFdWemRCSVhDZ1JqYjJSbEdBRWdBU2dKUWdtNlNBWnlCQkFHR0NBU0tBb2JhR05oY0hSamFHRmZZMmhoYkd4bGJtZGxYM0psYzNCdmJuTmxHQUlnQVNnSlNBQ0lBUUZDSGdvY1gyaGpZWEIwWTJoaFgyTm9ZV3hzWlc1blpWOXlaWE53YjI1elpTSWRDaHREYUdWamEwbHVkbWwwWVhScGIyNURiMlJsVW1WemNHOXVjMlVpUEFvR1FYWmhkR0Z5RWhFS0NXWnBiR1ZmYm1GdFpSZ0JJQUVvQ1JJUkNnbHRhVzFsWDNSNWNHVVlBaUFCS0FrU0RBb0VaR0YwWVJnRElBRW9DU0oyQ2hoVmNHUmhkR1ZWYzJWeVVISnZabWxzWlZKbGNYVmxjM1FTSkFvTWJtVjNYMjVwWTJ0dVlXMWxHQUlnQVNnSlFnbTZTQVp5QkJBQkdDQklBSWdCQVJJakNncHVaWGRmWVhaaGRHRnlHQU1nQVNnTE1nOHVkWE5sY2k1Mk1TNUJkbUYwWVhKQ0R3b05YMjVsZDE5dWFXTnJibUZ0WlNJYkNobFZjR1JoZEdWVmMyVnlVSEp2Wm1sc1pWSmxjM0J2Ym5ObEl1RUJDaHBEY21WaGRHVlJkV1Z6ZEdsdmJtNWhhWEpsVW1WeGRXVnpkQklPQ2daeVpXRnpiMjRZQVNBQktBa1NLd29LWlhoMGNtRmZaR0YwWVJnQ0lBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUVNGd29LY0hKdlptVnpjMmx2YmhnRElBRW9DVWdBaUFFQkVpRUtGSE52WTJsaGJGOXRaV1JwWVY5aFkyTnZkVzUwR0FRZ0FTZ0pTQUdJQVFFU0ZRb0lhVzVrZFhOMGNua1lCU0FCS0FsSUFvZ0JBVUlOQ2d0ZmNISnZabVZ6YzJsdmJrSVhDaFZmYzI5amFXRnNYMjFsWkdsaFgyRmpZMjkxYm5SQ0N3b0pYMmx1WkhWemRISjVJaDBLRzBOeVpXRjBaVkYxWlhOMGFXOXVibUZwY21WU1pYTndiMjV6WlNKUENocEhaWFJWYzJWeVEyeHBaVzUwUTI5dVptbG5VbVZ4ZFdWemRCSXhDZ3RqYjI1bWFXZGZhMlY1Y3hnQklBTW9EakljTG5WelpYSXVkakV1VlhObGNrTnNhV1Z1ZEVOdmJtWnBaMHRsZVNMb0Fnb2JSMlYwVlhObGNrTnNhV1Z1ZEVOdmJtWnBaMUpsYzNCdmJuTmxFaUVLRkhKbFkzWmZiV0Z5YTJWMGFXNW5YMlZ0WVdsc0dBRWdBU2dJU0FDSUFRRVNHUW9NYUdGelgybHVkR1Z5WlhOMEdBSWdBU2dJU0FHSUFRRVNKQW9YYzJWemMybHZibDkzWVdsMFgyUnZibVZmWlcxaGFXd1lCeUFCS0FoSUFvZ0JBUkk2Q2hKaFoyVnVkRjlrWlhCc2IzbGZjM0JoWTJVWUNpQUJLQTR5R1M1MWMyVnlMbll4TGtGblpXNTBSR1Z3Ykc5NVUzQmhZMlZJQTRnQkFSSXFDaDFvWVhOZmMyaHZkMjVmWldSMVgzUmxZVzFmYW05cGJsOXdiM0IxY0JnUElBRW9DRWdFaUFFQlFoY0tGVjl5WldOMlgyMWhjbXRsZEdsdVoxOWxiV0ZwYkVJUENnMWZhR0Z6WDJsdWRHVnlaWE4wUWhvS0dGOXpaWE56YVc5dVgzZGhhWFJmWkc5dVpWOWxiV0ZwYkVJVkNoTmZZV2RsYm5SZlpHVndiRzk1WDNOd1lXTmxRaUFLSGw5b1lYTmZjMmh2ZDI1ZlpXUjFYM1JsWVcxZmFtOXBibDl3YjNCMWNDTG5BZ29hVTJWMFZYTmxja05zYVdWdWRFTnZibVpwWjFKbGNYVmxjM1FTSVFvVWNtVmpkbDl0WVhKclpYUnBibWRmWlcxaGFXd1lBU0FCS0FoSUFJZ0JBUklaQ2d4b1lYTmZhVzUwWlhKbGMzUVlBaUFCS0FoSUFZZ0JBUklrQ2hkelpYTnphVzl1WDNkaGFYUmZaRzl1WlY5bGJXRnBiQmdISUFFb0NFZ0NpQUVCRWpvS0VtRm5aVzUwWDJSbGNHeHZlVjl6Y0dGalpSZ0tJQUVvRGpJWkxuVnpaWEl1ZGpFdVFXZGxiblJFWlhCc2IzbFRjR0ZqWlVnRGlBRUJFaW9LSFdoaGMxOXphRzkzYmw5bFpIVmZkR1ZoYlY5cWIybHVYM0J2Y0hWd0dBOGdBU2dJU0FTSUFRRkNGd29WWDNKbFkzWmZiV0Z5YTJWMGFXNW5YMlZ0WVdsc1FnOEtEVjlvWVhOZmFXNTBaWEpsYzNSQ0dnb1lYM05sYzNOcGIyNWZkMkZwZEY5a2IyNWxYMlZ0WVdsc1FoVUtFMTloWjJWdWRGOWtaWEJzYjNsZmMzQmhZMlZDSUFvZVgyaGhjMTl6YUc5M2JsOWxaSFZmZEdWaGJWOXFiMmx1WDNCdmNIVndJaDBLRzFObGRGVnpaWEpEYkdsbGJuUkRiMjVtYVdkU1pYTndiMjV6WlNJZUNoeEhaWFJWYzJWeVIyeHZZbUZzVTJWMGRHbHVaM05TWlhGMVpYTjBJak1LSFVkbGRGVnpaWEpIYkc5aVlXeFRaWFIwYVc1bmMxSmxjM0J2Ym5ObEVoSUtDbk4xWW5OamNtbGlaV1FZQVNBQktBZ2lIQW9hUjJWMFFYWmhhV3hoWW14bFEzSmxaR2wwYzFKbGNYVmxjM1FpdGdJS0cwZGxkRUYyWVdsc1lXSnNaVU55WldScGRITlNaWE53YjI1elpSSVZDZzEwYjNSaGJGOWpjbVZrYVhSekdBRWdBU2dGRWhRS0RHWnlaV1ZmWTNKbFpHbDBjeGdDSUFFb0JSSVlDaEJ3WlhKcGIyUnBZMTlqY21Wa2FYUnpHQU1nQVNnRkVoVUtEV0ZrWkc5dVgyTnlaV1JwZEhNWUJDQUJLQVVTR3dvVGNISnZYMjF2Ym5Sb2JIbGZZM0psWkdsMGN4Z0ZJQUVvQlJJVkNnMWxkbVZ1ZEY5amNtVmthWFJ6R0FZZ0FTZ0ZFaGNLRDNKbFpuSmxjMmhmWTNKbFpHbDBjeGdVSUFFb0JSSWJDaE50WVhoZmNtVm1jbVZ6YUY5amNtVmthWFJ6R0JVZ0FTZ0ZFalVLRVc1bGVIUmZjbVZtY21WemFGOTBhVzFsR0JZZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklZQ2hCeVpXWnlaWE5vWDJsdWRHVnlkbUZzR0JjZ0FTZ0pJczhCQ2hwUVpYSnpiMjVoYkVsdWRtbDBZWFJwYjI1RGIyUmxTVzVtYnhJS0NnSnBaQmdCSUFFb0F4SXBDZ1JyYVc1a0dBSWdBU2dPTWhzdWRYTmxjaTUyTVM1SmJuWnBkR0YwYVc5dVEyOWtaVXRwYm1RU0V3b0xhVzUyYVhSbFgyTnZaR1VZQXlBQktBa1NFQW9JYldGNFgzVnpaWE1ZQkNBQktBVVNFZ29LZFhObFpGOWpiM1Z1ZEJnRklBRW9CUkl1Q2dwamNtVmhkR1ZrWDJGMEdBY2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJUENnZHdaVzVrYVc1bkdBZ2dBU2dJSWlNS0lVZGxkRkJsY25OdmJtRnNTVzUyYVhSaGRHbHZia052WkdWelVtVnhkV1Z6ZENKakNpSkhaWFJRWlhKemIyNWhiRWx1ZG1sMFlYUnBiMjVEYjJSbGMxSmxjM0J2Ym5ObEVqMEtFR2x1ZG1sMFlYUnBiMjVmWTI5a1pYTVlBU0FES0FzeUl5NTFjMlZ5TG5ZeExsQmxjbk52Ym1Gc1NXNTJhWFJoZEdsdmJrTnZaR1ZKYm1adklsQUtGMU5sZEZWelpYSkpiblJsY21WemRITlNaWEYxWlhOMEVpTUtCSFJoWjNNWUFTQURLQTR5RlM1MWMyVnlMbll4TGxWelpYSkpiblJsY21WemRCSVFDZ2htWldWa1ltRmpheGdDSUFFb0NTSWFDaGhUWlhSVmMyVnlTVzUwWlhKbGMzUnpVbVZ6Y0c5dWMyVWlFZ29RUjJWMFEyOXVibVZqZEVGUVVGSmxjU0p2Q2d0RGIyNXVaV04wU1c1bWJ4SU5DZ1YwYjJ0bGJoZ0JJQUVvQ1JJdkNndGxlSEJwY21WZmRHbHRaUmdESUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNGQW9IZDJWaVgzVnliQmdFSUFFb0NVZ0FpQUVCUWdvS0NGOTNaV0pmZFhKc0ltOEtDa052Ym01bFkzUkJVRkFTREFvRWRIbHdaUmdCSUFFb0NSSVJDZ2xqYjI1dVpXTjBaV1FZQWlBQktBZ1NMd29NWTI5dWJtVmpkRjlwYm1adkdBTWdBU2dMTWhRdWRYTmxjaTUyTVM1RGIyNXVaV04wU1c1bWIwZ0FpQUVCUWc4S0RWOWpiMjV1WldOMFgybHVabThpUGdvU1EyOXVibVZqZEVGUVVGSmxjM0J2Ym5ObEVpZ0tDMk52Ym01bFkzUmZZWEJ3R0FFZ0F5Z0xNaE11ZFhObGNpNTJNUzVEYjI1dVpXTjBRVkJRSWpVS0dFZGxkRWR2YjJkc1pVUnlhWFpsUVhWMGFGVnliRkpsY1JJWkNoRmpZV3hzWW1GamExOXlaV1JwY21WamRCZ0JJQUVvQ1NJc0NoMUhaWFJIYjI5bmJHVkVjbWwyWlVGMWRHaFZjbXhTWlhOd2IyNXpaUklMQ2dOMWNtd1lBU0FCS0FraUlBb1FSR2x6WTI5dWJtVmpkRUZRVUZKbGNSSU1DZ1IwZVhCbEdBRWdBU2dKSWhjS0ZVUnBjMk52Ym01bFkzUkJVRkJTWlhOd2IyNXpaU0tSQVFvZ1UyVnVaRkJvYjI1bFZtVnlhV1pwWTJGMGFXOXVRMjlrWlZKbGNYVmxjM1FTRkFvTWNHaHZibVZmYm5WdFltVnlHQUVnQVNnSkVoTUtDM0psWjJsdmJsOWpiMlJsR0FJZ0FTZ0pFZzRLQm14dlkyRnNaUmdESUFFb0NSSXlDZ2RqYUdGdWJtVnNHQVFnQVNnT01pRXVkWE5sY2k1Mk1TNVFhRzl1WlZabGNtbG1hV05oZEdsdmJrTm9ZVzV1Wld3aUl3b2hVMlZ1WkZCb2IyNWxWbVZ5YVdacFkyRjBhVzl1UTI5a1pWSmxjM0J2Ym5ObElsMEtGVUpwYm1SUWFHOXVaVlJ5WVdsMFVtVnhkV1Z6ZEJJVUNneHdhRzl1WlY5dWRXMWlaWElZQVNBQktBa1NFd29MY21WbmFXOXVYMk52WkdVWUFpQUJLQWtTR1FvUmNHaHZibVZmZG1WeWFXWjVYMk52WkdVWUF5QUJLQWtpR0FvV1FtbHVaRkJvYjI1bFZISmhhWFJTWlhOd2IyNXpaU0lYQ2hWTWFYTjBVbVZuYVc5dVEyOWtaVkpsY1hWbGMzUWlKd29LVW1WbmFXOXVRMjlrWlJJTENnTnBjMjhZQVNBQktBa1NEQW9FWTI5a1pSZ0NJQUVvQ1NKRENoWk1hWE4wVW1WbmFXOXVRMjlrWlZKbGMzQnZibk5sRWlrS0RISmxaMmx2Ymw5amIyUmxjeGdCSUFNb0N6SVRMblZ6WlhJdWRqRXVVbVZuYVc5dVEyOWtaU0xpQVFvVlFXTjBhWFpwZEhsVWVYQmxVR1Z5YTNORVlYUmhFaEVLQ1daMWJHeGZibUZ0WlJnQklBRW9DUklOQ2dWd2FHOXVaUmdDSUFFb0NSSU5DZ1ZsYldGcGJCZ0RJQUVvQ1JJUENnZGhaR1J5WlhOekdBUWdBU2dKRWgwS0VHRmtaSEpsYzNOZmIzQjBhVzl1WVd3WUJTQUJLQWxJQUlnQkFSSVRDZ3RqYjNWdWRISjVYMmx6YnhnSElBRW9DUklNQ2dSamFYUjVHQWdnQVNnSkVnMEtCWE4wWVhSbEdBa2dBU2dKRWdzS0EzcHBjQmdLSUFFb0NSSVVDZ3gwWDNOb2FYSjBYM05wZW1VWUN5QUJLQWxDRXdvUlgyRmtaSEpsYzNOZmIzQjBhVzl1WVd3aVd3b3JRMmhsWTJ0QlkzUnBkbWwwZVZGMVpYTjBhVzl1Ym1GcGNtVlFaWEp0YVhOemFXOXVVbVZ4ZFdWemRCSXNDZzFoWTNScGRtbDBlVjkwZVhCbEdBRWdBU2dPTWhVdWRYTmxjaTUyTVM1QlkzUnBkbWwwZVZSNWNHVWlSZ29zUTJobFkydEJZM1JwZG1sMGVWRjFaWE4wYVc5dWJtRnBjbVZRWlhKdGFYTnphVzl1VW1WemNHOXVjMlVTRmdvT2FHRnpYM0JsY20xcGMzTnBiMjRZQVNBQktBZ2ltQUVLS2tOeVpXRjBaVTl5VlhCa1lYUmxRV04wYVhacGRIbFJkV1Z6ZEdsdmJtNWhhWEpsVW1WeGRXVnpkQklzQ2cxaFkzUnBkbWwwZVY5MGVYQmxHQUVnQVNnT01oVXVkWE5sY2k1Mk1TNUJZM1JwZG1sMGVWUjVjR1VTTkFvS2NHVnlhM05mWkdGMFlSZ0NJQUVvQ3pJZUxuVnpaWEl1ZGpFdVFXTjBhWFpwZEhsVWVYQmxVR1Z5YTNORVlYUmhTQUJDQmdvRVpHRjBZU0k2Q2l0RGNtVmhkR1ZQY2xWd1pHRjBaVUZqZEdsMmFYUjVVWFZsYzNScGIyNXVZV2x5WlZKbGMzQnZibk5sRWdzS0EzVnBaQmdCSUFFb0NTSlBDaDlIWlhSQlkzUnBkbWwwZVZGMVpYTjBhVzl1Ym1GcGNtVlNaWEYxWlhOMEVpd0tEV0ZqZEdsMmFYUjVYM1I1Y0dVWUFTQUJLQTR5RlM1MWMyVnlMbll4TGtGamRHbDJhWFI1Vkhsd1pTS2RBUW9nUjJWMFFXTjBhWFpwZEhsUmRXVnpkR2x2Ym01aGFYSmxVbVZ6Y0c5dWMyVVNEUW9GZG1Gc2FXUVlBU0FCS0FnU0xBb05ZV04wYVhacGRIbGZkSGx3WlJnQ0lBRW9EaklWTG5WelpYSXVkakV1UVdOMGFYWnBkSGxVZVhCbEVqUUtDbkJsY210elgyUmhkR0VZQXlBQktBc3lIaTUxYzJWeUxuWXhMa0ZqZEdsMmFYUjVWSGx3WlZCbGNtdHpSR0YwWVVnQVFnWUtCR1JoZEdFaU9Rb2FVMlZ1WkVsdWRtbDBZWFJwYjI1RmJXRnBiRkpsY1hWbGMzUVNEUW9GWlcxaGFXd1lBU0FCS0FrU0RBb0VZMjlrWlJnQ0lBRW9DU0l1Q2h0VFpXNWtTVzUyYVhSaGRHbHZia1Z0WVdsc1VtVnpjRzl1YzJVU0R3b0hjR1Z1WkdsdVp4Z0JJQUVvQ0NJNkNoMUhaWFJQYm1WRWNtbDJaVkJsY25OdmJtRnNRWFYwYUZWeWJGSmxjUklaQ2hGallXeHNZbUZqYTE5eVpXUnBjbVZqZEJnQklBRW9DU0l4Q2lKSFpYUlBibVZFY21sMlpWQmxjbk52Ym1Gc1FYVjBhRlZ5YkZKbGMzQnZibk5sRWdzS0EzVnliQmdCSUFFb0NTSTZDaDFIWlhSUGJtVkVjbWwyWlVKMWMybHVaWE56UVhWMGFGVnliRkpsY1JJWkNoRmpZV3hzWW1GamExOXlaV1JwY21WamRCZ0JJQUVvQ1NJeENpSkhaWFJQYm1WRWNtbDJaVUoxYzJsdVpYTnpRWFYwYUZWeWJGSmxjM0J2Ym5ObEVnc0tBM1Z5YkJnQklBRW9DU0pNQ2hoSmJrVjRjR1Z5YVcxbGJuUkhjbTkxY0ZKbGNYVmxjM1FTTUFvUFpYaHdaWEpwYldWdWRGOTBlWEJsR0FFZ0FTZ09NaGN1ZFhObGNpNTJNUzVGZUhCbGNtbHRaVzUwVkhsd1pTSTRDaGxKYmtWNGNHVnlhVzFsYm5SSGNtOTFjRkpsYzNCdmJuTmxFaHNLRTJsdVgyVjRjR1Z5YVcxbGJuUmZaM0p2ZFhBWUFTQUJLQWdpTWdvaFIyVjBUMjVsUkhKcGRtVkNkWE5wYm1WemMxTmpiM0JsWkZSdmEyVnVVbVZ4RWcwS0JYTmpiM0JsR0FFZ0FTZ0pJa3NLSmtkbGRFOXVaVVJ5YVhabFFuVnphVzVsYzNOVFkyOXdaV1JVYjJ0bGJsSmxjM0J2Ym5ObEVnMEtCWFJ2YTJWdUdBRWdBU2dKRWhJS0NtVjRjR2x5WlhOZmFXNFlBaUFCS0FVcTB3RUtFbE4xWW5OamNtbHdkR2x2YmxOMFlYUjFjeEliQ2hkUGRHaGxjbE4xWW5OamNtbHdkR2x2YmxOMFlYUjFjeEFBRWhvS0ZrbHVhWFJUZFdKelkzSnBjSFJwYjI1VGRHRjBkWE1RQVJJY0NoaEJZM1JwZG1WVGRXSnpZM0pwY0hScGIyNVRkR0YwZFhNUUFoSWRDaGxRWVhOMFJIVmxVM1ZpYzJOeWFYQjBhVzl1VTNSaGRIVnpFQU1TSndvalNXNWpiMjF3YkdWMFpVVjRjR2x5WldSVGRXSnpZM0pwY0hScGIyNVRkR0YwZFhNUUJCSWVDaHBEWVc1alpXeGxaRk4xWW5OamNtbHdkR2x2YmxOMFlYUjFjeEFGS29jRUNoTlZjMlZ5UTJ4cFpXNTBRMjl1Wm1sblMyVjVFaVlLSWxWVFJWSmZRMHhKUlU1VVgwTlBUa1pKUjE5TFJWbGZWVTVUVUVWRFNVWkpSVVFRQUJJdkNpdFZVMFZTWDBOTVNVVk9WRjlEVDA1R1NVZGZTMFZaWDFKRlExWmZUVUZTUzBWVVNVNUhYMFZOUVVsTUVBRVNKd29qVlZORlVsOURURWxGVGxSZlEwOU9Sa2xIWDB0RldWOUlRVk5mU1U1VVJWSkZVMVFRQWhJdUNpcFZVMFZTWDBOTVNVVk9WRjlEVDA1R1NVZGZTMFZaWDA5UVJWSkJWRWxQVGw5UVRFRlpYME5CVWtRUUF4SW5DaU5WVTBWU1gwTk1TVVZPVkY5RFQwNUdTVWRmUzBWWlgxWkZVa2xHV1Y5UVNFOU9SUkFFRWlRS0lGVlRSVkpmUTB4SlJVNVVYME5QVGtaSlIxOUxSVmxmVkVsTlJWOWFUMDVGRUFVU0t3b25WVk5GVWw5RFRFbEZUbFJmUTA5T1JrbEhYMHRGV1Y5VVNVMUZYMXBQVGtWZlQwWkdVMFZVRUFZU01nb3VWVk5GVWw5RFRFbEZUbFJmUTA5T1JrbEhYMHRGV1Y5VFJWTlRTVTlPWDFkQlNWUmZSRTlPUlY5RlRVRkpUQkFIRWlVS0lWVlRSVkpmUTB4SlJVNVVYME5QVGtaSlIxOUxSVmxmVDA1Q1QwRlNSRWxPUnhBSUVpMEtLVlZUUlZKZlEweEpSVTVVWDBOUFRrWkpSMTlMUlZsZlFVZEZUbFJmUkVWUVRFOVpYMU5RUVVORkVBb1NPQW8wVlZORlVsOURURWxGVGxSZlEwOU9Sa2xIWDB0RldWOUlRVk5mVTBoUFYwNWZSVVJWWDFSRlFVMWZTazlKVGw5UVQxQlZVQkFQS29JQkNoQkJaMlZ1ZEVSbGNHeHZlVk53WVdObEVpSUtIa0ZIUlU1VVgwUkZVRXhQV1Y5VFVFRkRSVjlWVGxOUVJVTkpSa2xGUkJBQUVpVUtJVUZIUlU1VVgwUkZVRXhQV1Y5VFVFRkRSVjlCVTB0ZlJWWkZVbGxmVkVsTlJSQUJFaU1LSDBGSFJVNVVYMFJGVUV4UFdWOVRVRUZEUlY5QlRGZEJXVk5mUVV4TVQxY1FBaXIrQmdvTVZYTmxja2x1ZEdWeVpYTjBFaDBLR1ZWVFJWSmZTVTVVUlZKRlUxUmZWVTVUVUVWRFNVWkpSVVFRQUJJakNoOVZVMFZTWDBsT1ZFVlNSVk5VWDBsT1JGVlRWRkpaWDBGT1FVeFpVMGxURUFFU0lRb2RWVk5GVWw5SlRsUkZVa1ZUVkY5UVQweEpRMWxmVWtWVFJVRlNRMGdRQWhJa0NpQlZVMFZTWDBsT1ZFVlNSVk5VWDFCRlVsTlBUa0ZmVUZKUFJrbE1URWxPUnhBREVoOEtHMVZUUlZKZlNVNVVSVkpGVTFSZlJFRlVRVjlKVGxOSlIwaFVVeEFFRWlVS0lWVlRSVkpmU1U1VVJWSkZVMVJmVjBWQ1UwbFVSVjlRVWs5VVQxUlpVRWxPUnhBS0VpSUtIbFZUUlZKZlNVNVVSVkpGVTFSZlIwRk5SVjlFUlZaRlRFOVFUVVZPVkJBTEVod0tHRlZUUlZKZlNVNVVSVkpGVTFSZlFWQlFYMFJGVTBsSFRoQU1FaU1LSDFWVFJWSmZTVTVVUlZKRlUxUmZTVTVVUlZKQlExUkpWa1ZmVUVGSFJWTVFEUklnQ2h4VlUwVlNYMGxPVkVWU1JWTlVYMEZIUlU1VVgwSlZTVXhFU1U1SEVCUVNJZ29lVlZORlVsOUpUbFJGVWtWVFZGOVVUMDlNWDFCU1QxUlBWRmxRU1U1SEVCVVNJUW9kVlZORlVsOUpUbFJGVWtWVFZGOUJWVlJQVFVGVVNVOU9YMFpNVDFjUUZoSWdDaHhWVTBWU1gwbE9WRVZTUlZOVVgwRkpYMGxPVkVWSFVrRlVTVTlPRUJjU0lRb2RWVk5GVWw5SlRsUkZVa1ZUVkY5RFQxVlNVMFZmUTFKRlFWUkpUMDRRSGhJZ0NoeFZVMFZTWDBsT1ZFVlNSVk5VWDB4RlFWSk9TVTVIWDFSUFQweFRFQjhTSXdvZlZWTkZVbDlKVGxSRlVrVlRWRjlMVGs5WFRFVkVSMFZmVFVGUVVFbE9SeEFnRWlJS0hsVlRSVkpmU1U1VVJWSkZVMVJmVkVWQlEwaEpUa2RmUTA5T1ZFVk9WQkFoRWlBS0hGVlRSVkpmU1U1VVJWSkZVMVJmVWtWUVQxSlVYMWRTU1ZSSlRrY1FLQklnQ2h4VlUwVlNYMGxPVkVWU1JWTlVYMU5VVDFKWlgwTlNSVUZVU1U5T0VDa1NJUW9kVlZORlVsOUpUbFJGVWtWVFZGOVdTVVJGVDE5VFExSkpVRlJKVGtjUUtoSWdDaHhWVTBWU1gwbE9WRVZTUlZOVVgwMUZSRWxCWDFCTVFVNU9TVTVIRUNzU0lRb2RWVk5GVWw5SlRsUkZVa1ZUVkY5TlFWSkxSVlJmVWtWVFJVRlNRMGdRTWhJbENpRlZVMFZTWDBsT1ZFVlNSVk5VWDBsT1ZrVlRWRTFGVGxSZlFVNUJURmxUU1ZNUU14SWtDaUJWVTBWU1gwbE9WRVZTUlZOVVgwWkpUa0ZPUTBsQlRGOU5UMFJGVEVsT1J4QTBFaUFLSEZWVFJWSmZTVTVVUlZKRlUxUmZSRUZVUVY5U1JWQlBVbFJKVGtjUU5TcTVBUW9ZVUdodmJtVldaWEpwWm1sallYUnBiMjVEYUdGdWJtVnNFaW9LSmxCSVQwNUZYMVpGVWtsR1NVTkJWRWxQVGw5RFNFRk9Ua1ZNWDFWT1UxQkZRMGxHU1VWRUVBQVNJZ29lVUVoUFRrVmZWa1ZTU1VaSlEwRlVTVTlPWDBOSVFVNU9SVXhmVTAxVEVBRVNKd29qVUVoUFRrVmZWa1ZTU1VaSlEwRlVTVTlPWDBOSVFVNU9SVXhmVjBoQlZGTkJVRkFRQWhJa0NpQlFTRTlPUlY5V1JWSkpSa2xEUVZSSlQwNWZRMGhCVGs1RlRGOVdUMGxEUlJBREtsRUtEa1Y0Y0dWeWFXMWxiblJVZVhCbEVoOEtHMFZZVUVWU1NVMUZUbFJmVkZsUVJWOVZUbE5RUlVOSlJrbEZSQkFBRWg0S0drVllVRVZTU1UxRlRsUmZWRmxRUlY5UFRrSlBRVkpFU1U1SEVBRXl6QlFLQzFWelpYSlRaWEoyYVdObEVrRUtDRlZ6WlhKSmJtWnZFaGd1ZFhObGNpNTJNUzVWYzJWeVNXNW1iMUpsY1hWbGMzUWFHUzUxYzJWeUxuWXhMbFZ6WlhKSmJtWnZVbVZ6Y0c5dWMyVWlBQkpnQ2hORGFHVmphMGx1ZG1sMFlYUnBiMjVEYjJSbEVpTXVkWE5sY2k1Mk1TNURhR1ZqYTBsdWRtbDBZWFJwYjI1RGIyUmxVbVZ4ZFdWemRCb2tMblZ6WlhJdWRqRXVRMmhsWTJ0SmJuWnBkR0YwYVc5dVEyOWtaVkpsYzNCdmJuTmxFbG9LRVZWd1pHRjBaVlZ6WlhKUWNtOW1hV3hsRWlFdWRYTmxjaTUyTVM1VmNHUmhkR1ZWYzJWeVVISnZabWxzWlZKbGNYVmxjM1FhSWk1MWMyVnlMbll4TGxWd1pHRjBaVlZ6WlhKUWNtOW1hV3hsVW1WemNHOXVjMlVTWUFvVFEzSmxZWFJsVVhWbGMzUnBiMjV1WVdseVpSSWpMblZ6WlhJdWRqRXVRM0psWVhSbFVYVmxjM1JwYjI1dVlXbHlaVkpsY1hWbGMzUWFKQzUxYzJWeUxuWXhMa055WldGMFpWRjFaWE4wYVc5dWJtRnBjbVZTWlhOd2IyNXpaUkpMQ2d4SFpYUkdjbVZsVVhWdmRHRVNIQzUxYzJWeUxuWXhMa2RsZEVaeVpXVlJkVzkwWVZKbGNYVmxjM1FhSFM1MWMyVnlMbll4TGtkbGRFWnlaV1ZSZFc5MFlWSmxjM0J2Ym5ObEVtQUtFMGRsZEZWelpYSkRiR2xsYm5SRGIyNW1hV2NTSXk1MWMyVnlMbll4TGtkbGRGVnpaWEpEYkdsbGJuUkRiMjVtYVdkU1pYRjFaWE4wR2lRdWRYTmxjaTUyTVM1SFpYUlZjMlZ5UTJ4cFpXNTBRMjl1Wm1sblVtVnpjRzl1YzJVU1lBb1RVMlYwVlhObGNrTnNhV1Z1ZEVOdmJtWnBaeElqTG5WelpYSXVkakV1VTJWMFZYTmxja05zYVdWdWRFTnZibVpwWjFKbGNYVmxjM1FhSkM1MWMyVnlMbll4TGxObGRGVnpaWEpEYkdsbGJuUkRiMjVtYVdkU1pYTndiMjV6WlJKZENoSk1hWE4wVlhObGNrTnlaV1JwZEhOTWIyY1NJaTUxYzJWeUxuWXhMa3hwYzNSVmMyVnlRM0psWkdsMGMweHZaMUpsY1hWbGMzUWFJeTUxYzJWeUxuWXhMa3hwYzNSVmMyVnlRM0psWkdsMGMweHZaMUpsYzNCdmJuTmxFbVlLRlVkbGRGVnpaWEpIYkc5aVlXeFRaWFIwYVc1bmN4SWxMblZ6WlhJdWRqRXVSMlYwVlhObGNrZHNiMkpoYkZObGRIUnBibWR6VW1WeGRXVnpkQm9tTG5WelpYSXVkakV1UjJWMFZYTmxja2RzYjJKaGJGTmxkSFJwYm1kelVtVnpjRzl1YzJVU1lBb1RSMlYwUVhaaGFXeGhZbXhsUTNKbFpHbDBjeElqTG5WelpYSXVkakV1UjJWMFFYWmhhV3hoWW14bFEzSmxaR2wwYzFKbGNYVmxjM1FhSkM1MWMyVnlMbll4TGtkbGRFRjJZV2xzWVdKc1pVTnlaV1JwZEhOU1pYTndiMjV6WlJKMUNocEhaWFJRWlhKemIyNWhiRWx1ZG1sMFlYUnBiMjVEYjJSbGN4SXFMblZ6WlhJdWRqRXVSMlYwVUdWeWMyOXVZV3hKYm5acGRHRjBhVzl1UTI5a1pYTlNaWEYxWlhOMEdpc3VkWE5sY2k1Mk1TNUhaWFJRWlhKemIyNWhiRWx1ZG1sMFlYUnBiMjVEYjJSbGMxSmxjM0J2Ym5ObEVsY0tFRk5sZEZWelpYSkpiblJsY21WemRITVNJQzUxYzJWeUxuWXhMbE5sZEZWelpYSkpiblJsY21WemRITlNaWEYxWlhOMEdpRXVkWE5sY2k1Mk1TNVRaWFJWYzJWeVNXNTBaWEpsYzNSelVtVnpjRzl1YzJVU1J3b05SMlYwUTI5dWJtVmpkRUZRVUJJWkxuVnpaWEl1ZGpFdVIyVjBRMjl1Ym1WamRFRlFVRkpsY1JvYkxuVnpaWEl1ZGpFdVEyOXVibVZqZEVGUVVGSmxjM0J2Ym5ObEVrb0tEVVJwYzJOdmJtNWxZM1JCVUZBU0dTNTFjMlZ5TG5ZeExrUnBjMk52Ym01bFkzUkJVRkJTWlhFYUhpNTFjMlZ5TG5ZeExrUnBjMk52Ym01bFkzUkJVRkJTWlhOd2IyNXpaUkppQ2hWSFpYUkhiMjluYkdWRWNtbDJaVUYxZEdoVmNtd1NJUzUxYzJWeUxuWXhMa2RsZEVkdmIyZHNaVVJ5YVhabFFYVjBhRlZ5YkZKbGNSb21MblZ6WlhJdWRqRXVSMlYwUjI5dloyeGxSSEpwZG1WQmRYUm9WWEpzVW1WemNHOXVjMlVTY1FvYVIyVjBUMjVsUkhKcGRtVlFaWEp6YjI1aGJFRjFkR2hWY213U0ppNTFjMlZ5TG5ZeExrZGxkRTl1WlVSeWFYWmxVR1Z5YzI5dVlXeEJkWFJvVlhKc1VtVnhHaXN1ZFhObGNpNTJNUzVIWlhSUGJtVkVjbWwyWlZCbGNuTnZibUZzUVhWMGFGVnliRkpsYzNCdmJuTmxFbkVLR2tkbGRFOXVaVVJ5YVhabFFuVnphVzVsYzNOQmRYUm9WWEpzRWlZdWRYTmxjaTUyTVM1SFpYUlBibVZFY21sMlpVSjFjMmx1WlhOelFYVjBhRlZ5YkZKbGNSb3JMblZ6WlhJdWRqRXVSMlYwVDI1bFJISnBkbVZDZFhOcGJtVnpjMEYxZEdoVmNteFNaWE53YjI1elpSSjlDaDVIWlhSUGJtVkVjbWwyWlVKMWMybHVaWE56VTJOdmNHVmtWRzlyWlc0U0tpNTFjMlZ5TG5ZeExrZGxkRTl1WlVSeWFYWmxRblZ6YVc1bGMzTlRZMjl3WldSVWIydGxibEpsY1JvdkxuVnpaWEl1ZGpFdVIyVjBUMjVsUkhKcGRtVkNkWE5wYm1WemMxTmpiM0JsWkZSdmEyVnVVbVZ6Y0c5dWMyVVNZQW9UVTJWdVpFbHVkbWwwWVhScGIyNUZiV0ZwYkJJakxuVnpaWEl1ZGpFdVUyVnVaRWx1ZG1sMFlYUnBiMjVGYldGcGJGSmxjWFZsYzNRYUpDNTFjMlZ5TG5ZeExsTmxibVJKYm5acGRHRjBhVzl1UlcxaGFXeFNaWE53YjI1elpSS1RBUW9rUTJobFkydEJZM1JwZG1sMGVWRjFaWE4wYVc5dWJtRnBjbVZRWlhKdGFYTnphVzl1RWpRdWRYTmxjaTUyTVM1RGFHVmphMEZqZEdsMmFYUjVVWFZsYzNScGIyNXVZV2x5WlZCbGNtMXBjM05wYjI1U1pYRjFaWE4wR2pVdWRYTmxjaTUyTVM1RGFHVmphMEZqZEdsMmFYUjVVWFZsYzNScGIyNXVZV2x5WlZCbGNtMXBjM05wYjI1U1pYTndiMjV6WlJLUUFRb2pRM0psWVhSbFQzSlZjR1JoZEdWQlkzUnBkbWwwZVZGMVpYTjBhVzl1Ym1GcGNtVVNNeTUxYzJWeUxuWXhMa055WldGMFpVOXlWWEJrWVhSbFFXTjBhWFpwZEhsUmRXVnpkR2x2Ym01aGFYSmxVbVZ4ZFdWemRCbzBMblZ6WlhJdWRqRXVRM0psWVhSbFQzSlZjR1JoZEdWQlkzUnBkbWwwZVZGMVpYTjBhVzl1Ym1GcGNtVlNaWE53YjI1elpSSnZDaGhIWlhSQlkzUnBkbWwwZVZGMVpYTjBhVzl1Ym1GcGNtVVNLQzUxYzJWeUxuWXhMa2RsZEVGamRHbDJhWFI1VVhWbGMzUnBiMjV1WVdseVpWSmxjWFZsYzNRYUtTNTFjMlZ5TG5ZeExrZGxkRUZqZEdsMmFYUjVVWFZsYzNScGIyNXVZV2x5WlZKbGMzQnZibk5sRW5JS0dWTmxibVJRYUc5dVpWWmxjbWxtYVdOaGRHbHZia052WkdVU0tTNTFjMlZ5TG5ZeExsTmxibVJRYUc5dVpWWmxjbWxtYVdOaGRHbHZia052WkdWU1pYRjFaWE4wR2lvdWRYTmxjaTUyTVM1VFpXNWtVR2h2Ym1WV1pYSnBabWxqWVhScGIyNURiMlJsVW1WemNHOXVjMlVTVVFvT1FtbHVaRkJvYjI1bFZISmhhWFFTSGk1MWMyVnlMbll4TGtKcGJtUlFhRzl1WlZSeVlXbDBVbVZ4ZFdWemRCb2ZMblZ6WlhJdWRqRXVRbWx1WkZCb2IyNWxWSEpoYVhSU1pYTndiMjV6WlJKUkNnNU1hWE4wVW1WbmFXOXVRMjlrWlJJZUxuVnpaWEl1ZGpFdVRHbHpkRkpsWjJsdmJrTnZaR1ZTWlhGMVpYTjBHaDh1ZFhObGNpNTJNUzVNYVhOMFVtVm5hVzl1UTI5a1pWSmxjM0J2Ym5ObEVsd0tFVWx1Ulhod1pYSnBiV1Z1ZEVkeWIzVndFaUV1ZFhObGNpNTJNUzVKYmtWNGNHVnlhVzFsYm5SSGNtOTFjRkpsY1hWbGMzUWFJaTUxYzJWeUxuWXhMa2x1Ulhod1pYSnBiV1Z1ZEVkeWIzVndVbVZ6Y0c5dWMyVWlBRUtRQVFvTFkyOXRMblZ6WlhJdWRqRkNDVlZ6WlhKUWNtOTBiMUFCV2psbmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2ZFhObGNpOTJNVHQxYzJWeWRqR2lBZ05WV0ZpcUFnZFZjMlZ5TGxZeHlnSUhWWE5sY2x4V01lSUNFMVZ6WlhKY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWdoVmMyVnlPanBXTVdJR2NISnZkRzh6IixbWWUsSGUsdGUsQnJdKSxNMj1IKFQyLDApLEgyPXooIkNoNTFjMlZ5TDNZeEwzVnpaWEpmWVhWMGFGOXdkV0pzYVdNdWNISnZkRzhTQjNWelpYSXVkakVpNXdNS0MwRjFkR2hEYjIxdFlXNWtFaEFLQTNWMGJSZ0JJQUVvQ1VnQWlBRUJFaElLQlhKbFptVnlHQUlnQVNnSlNBR0lBUUVTR0FvTFptbHljM1JmWlc1MGNua1lBeUFCS0FsSUFvZ0JBUklnQ2hObWFYSnpkRjltY205dFgzQnNZWFJtYjNKdEdBUWdBU2dKU0FPSUFRRVNHUW9NYVc1emRHRnNiRjltY205dEdBVWdBU2dKU0FTSUFRRVNFd29HYkc5allXeGxHQVlnQVNnSlNBV0lBUUVTRmdvSlozQnpYMkZrWDJsa0dBY2dBU2dKU0FhSUFRRVNFUW9FYVdSbVlSZ0lJQUVvQ1VnSGlBRUJFaElLQldGa1gybGtHQWtnQVNnSlNBaUlBUUVTRndvS2RYUnRYM052ZFhKalpSZ0tJQUVvQ1VnSmlBRUJFaGtLREhWMGJWOWpZVzF3WVdsbmJoZ0xJQUVvQ1VnS2lBRUJFZzhLQW5SNkdBd2dBU2dKU0F1SUFRRVNGZ29KZEhwZmIyWm1jMlYwR0EwZ0FTZ0pTQXlJQVFGQ0Jnb0VYM1YwYlVJSUNnWmZjbVZtWlhKQ0Rnb01YMlpwY25OMFgyVnVkSEo1UWhZS0ZGOW1hWEp6ZEY5bWNtOXRYM0JzWVhSbWIzSnRRZzhLRFY5cGJuTjBZV3hzWDJaeWIyMUNDUW9IWDJ4dlkyRnNaVUlNQ2dwZlozQnpYMkZrWDJsa1FnY0tCVjlwWkdaaFFnZ0tCbDloWkY5cFpFSU5DZ3RmZFhSdFgzTnZkWEpqWlVJUENnMWZkWFJ0WDJOaGJYQmhhV2R1UWdVS0ExOTBla0lNQ2dwZmRIcGZiMlptYzJWMElyc0JDaFpTWldkcGMzUmxja0o1UlcxaGFXeFNaWEYxWlhOMEVqTUtFR0YxZEdoZlkyOXRiV0Z1WkY5amJXUVlBU0FCS0FzeUZDNTFjMlZ5TG5ZeExrRjFkR2hEYjIxdFlXNWtTQUNJQVFFU0RRb0ZaVzFoYVd3WUFpQUJLQWtTRXdvTGRtVnlhV1o1WDJOdlpHVVlBeUFCS0FrU0RBb0VibUZ0WlJnRUlBRW9DUklRQ2dod1lYTnpkMjl5WkJnRklBRW9DUklUQ2d0cGJuWnBkR1ZmWTI5a1pSZ0dJQUVvQ1VJVENoRmZZWFYwYUY5amIyMXRZVzVrWDJOdFpDSW9DaGRTWldkcGMzUmxja0o1UlcxaGFXeFNaWE53YjI1elpSSU5DZ1YwYjJ0bGJoZ0JJQUVvQ1NLb0FRb1dUMkYxZEdneVFYVjBhRzl5YVhwbFVtVnhkV1Z6ZEJJdkNneGhkWFJvWDJOdmJXMWhibVFZQVNBQktBc3lGQzUxYzJWeUxuWXhMa0YxZEdoRGIyMXRZVzVrU0FDSUFRRVNGQW9NY21Wa2FYSmxZM1JmZFhKc0dBSWdBU2dKRWhNS0MybHVkbWwwWlY5amIyUmxHQU1nQVNnSkVpRUtCSFI1Y0dVWUJDQUJLQTR5RXk1MWMyVnlMbll4TGs5QmRYUm9NbFI1Y0dWQ0R3b05YMkYxZEdoZlkyOXRiV0Z1WkNJdkNoZFBZWFYwYURKQmRYUm9iM0pwZW1WU1pYTndiMjV6WlJJVUNneHlaV1JwY21WamRGOTFjbXdZQVNBQktBa2lUQW9UVEc5bmFXNUNlVVZ0WVdsc1VtVnhkV1Z6ZEJJTkNnVmxiV0ZwYkJnQklBRW9DUklRQ2dod1lYTnpkMjl5WkJnQ0lBRW9DUklVQ2d4allYQjBZMmhoWDJOdlpHVVlBeUFCS0FraUpRb1VURzluYVc1Q2VVVnRZV2xzVW1WemNHOXVjMlVTRFFvRmRHOXJaVzRZQVNBQktBa2liUW9mVW1WelpYUlFZWE56ZDI5eVpGZHBkR2hEWVhCMFkyaGhVbVZ4ZFdWemRCSU5DZ1ZsYldGcGJCZ0JJQUVvQ1JJVENndDJaWEpwWm5sZlkyOWtaUmdDSUFFb0NSSVFDZ2h3WVhOemQyOXlaQmdESUFFb0NSSVVDZ3hqWVhCMFkyaGhYMk52WkdVWUJDQUJLQWtpSWdvZ1VtVnpaWFJRWVhOemQyOXlaRmRwZEdoRFlYQjBZMmhoVW1WemNHOXVjMlVpTGdvZFNXNTBaWEp1WVd4SFpYUlZjMlZ5UW5sRmJXRnBiRkpsY1hWbGMzUVNEUW9GWlcxaGFXd1lBU0FCS0FraU1Rb2VTVzUwWlhKdVlXeEhaWFJWYzJWeVFubEZiV0ZwYkZKbGMzQnZibk5sRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtpZGdvbFUyVnVaRVZ0WVdsc1ZtVnlhV1o1UTI5a1pWZHBkR2hEWVhCMFkyaGhVbVZ4ZFdWemRCSVVDZ3hqWVhCMFkyaGhYMk52WkdVWUFTQUJLQWtTRFFvRlpXMWhhV3dZQWlBQktBa1NLQW9HWVdOMGFXOXVHQU1nQVNnT01oZ3VkWE5sY2k1Mk1TNVRaVzVrUlcxaGFXeEJZM1JwYjI0aVNnb21VMlZ1WkVWdFlXbHNWbVZ5YVdaNVEyOWtaVmRwZEdoRFlYQjBZMmhoVW1WemNHOXVjMlVTSUFvWWNtVm5hWE4wWlhKbFpGOXdiR0YwWm05eWJWOXNhWE4wR0FFZ0F5Z0pJb29CQ2gxSGIyOW5iR1ZCY0hCUFlYVjBhRU5oYkd4aVlXTnJVbVZ4ZFdWemRCSVJDZ2xuYjI5bmJHVmZhV1FZQVNBQktBa1NGQW9NWVdOalpYTnpYM1J2YTJWdUdBSWdBU2dKRWk4S0RHRjFkR2hmWTI5dGJXRnVaQmdESUFFb0N6SVVMblZ6WlhJdWRqRXVRWFYwYUVOdmJXMWhibVJJQUlnQkFVSVBDZzFmWVhWMGFGOWpiMjF0WVc1a0lpOEtIa2R2YjJkc1pVRndjRTloZFhSb1EyRnNiR0poWTJ0U1pYTndiMjV6WlJJTkNnVjBiMnRsYmhnQklBRW9DU0l0Q2hkQmNIQnNaVk53WldOcFlXeEJkWFJvVW1WeGRXVnpkQklTQ2dwemNHVmphV0ZzWDJsa0dBRWdBU2dKSWlrS0dFRndjR3hsVTNCbFkybGhiRUYxZEdoU1pYTndiMjV6WlJJTkNnVjBiMnRsYmhnQklBRW9DU0tRQVFvTlFYQndiR1ZWYzJWeVNXNW1ieElwQ2dSdVlXMWxHQUVnQVNnTE1oc3VkWE5sY2k1Mk1TNUJjSEJzWlZWelpYSkpibVp2TGs1aGJXVVNEUW9GWlcxaGFXd1lBaUFCS0FrU0Znb09hV1JsYm5ScGRIbGZkRzlyWlc0WUF5QUJLQWthTFFvRVRtRnRaUklTQ2dwbWFYSnpkRjl1WVcxbEdBRWdBU2dKRWhFS0NXeGhjM1JmYm1GdFpSZ0NJQUVvQ1NKd0NoMVhaV0pCY0hCc1pVOWhkWFJvTWtOaGJHeGlZV05yVW1WeGRXVnpkQklNQ2dSamIyUmxHQUVnQVNnSkVnMEtCWE4wWVhSbEdBSWdBU2dKRWlrS0JIVnpaWElZQXlBQktBc3lGaTUxYzJWeUxuWXhMa0Z3Y0d4bFZYTmxja2x1Wm05SUFJZ0JBVUlIQ2dWZmRYTmxjaUpKQ2g1WFpXSkJjSEJzWlU5aGRYUm9Na05oYkd4aVlXTnJVbVZ6Y0c5dWMyVVNGQW9NY21Wa2FYSmxZM1JmZFhKc0dBRWdBU2dKRWhFS0NXcDNkRjkwYjJ0bGJoZ0NJQUVvQ1NMS0FRb2NTVzl6UVhCd2JHVlBZWFYwYUVOaGJHeGlZV05yVW1WeGRXVnpkQkl6Q2hCaGRYUm9YMk52YlcxaGJtUmZZMjFrR0FFZ0FTZ0xNaFF1ZFhObGNpNTJNUzVCZFhSb1EyOXRiV0Z1WkVnQWlBRUJFZzBLQldWdFlXbHNHQUlnQVNnSkVoSUtDbWRwZG1WdVgyNWhiV1VZQXlBQktBa1NFd29MWm1GdGFXeDVYMjVoYldVWUJDQUJLQWtTRlFvTllYVjBhRjloY0hCc1pWOXBaQmdGSUFFb0NSSVJDZ2xoZFhSb1gyTnZaR1VZQmlBQktBbENFd29SWDJGMWRHaGZZMjl0YldGdVpGOWpiV1FpTGdvZFNXOXpRWEJ3YkdWUFlYVjBhRU5oYkd4aVlXTnJVbVZ6Y0c5dWMyVVNEUW9GZEc5clpXNFlBU0FCS0FraUpBb1JVM2RwZEdOb1ZYTmxjbEpsY1hWbGMzUVNEd29IZFhObGNsOXBaQmdCSUFFb0NTSWpDaEpUZDJsMFkyaFZjMlZ5VW1WemNHOXVjMlVTRFFvRmRHOXJaVzRZQVNBQktBa2lLd29hUlhoamFHRnVaMlZVYjJ0bGJrSjVRMjlrWlZKbGNYVmxjM1FTRFFvRmRHOXJaVzRZQVNBQktBa2lIUW9iUlhoamFHRnVaMlZVYjJ0bGJrSjVRMjlrWlZKbGMzQnZibk5sS2xzS0NrOUJkWFJvTWxSNWNHVVNIQW9ZVDE5QlZWUklNbDlVV1ZCRlgxVk9VMUJGUTBsR1NVVkVFQUFTRndvVFQxOUJWVlJJTWw5VVdWQkZYMGRQVDBkTVJSQUJFaFlLRWs5ZlFWVlVTREpmVkZsUVJWOUJVRkJNUlJBQ011d0hDaFZWYzJWeVFYVjBhRkIxWW14cFkxTmxjblpwWTJVU1ZBb1BVbVZuYVhOMFpYSkNlVVZ0WVdsc0VoOHVkWE5sY2k1Mk1TNVNaV2RwYzNSbGNrSjVSVzFoYVd4U1pYRjFaWE4wR2lBdWRYTmxjaTUyTVM1U1pXZHBjM1JsY2tKNVJXMWhhV3hTWlhOd2IyNXpaUkpVQ2c5UFlYVjBhREpCZFhSb2IzSnBlbVVTSHk1MWMyVnlMbll4TGs5aGRYUm9Na0YxZEdodmNtbDZaVkpsY1hWbGMzUWFJQzUxYzJWeUxuWXhMazloZFhSb01rRjFkR2h2Y21sNlpWSmxjM0J2Ym5ObEVrc0tERXh2WjJsdVFubEZiV0ZwYkJJY0xuVnpaWEl1ZGpFdVRHOW5hVzVDZVVWdFlXbHNVbVZ4ZFdWemRCb2RMblZ6WlhJdWRqRXVURzluYVc1Q2VVVnRZV2xzVW1WemNHOXVjMlVTYndvWVVtVnpaWFJRWVhOemQyOXlaRmRwZEdoRFlYQjBZMmhoRWlndWRYTmxjaTUyTVM1U1pYTmxkRkJoYzNOM2IzSmtWMmwwYUVOaGNIUmphR0ZTWlhGMVpYTjBHaWt1ZFhObGNpNTJNUzVTWlhObGRGQmhjM04zYjNKa1YybDBhRU5oY0hSamFHRlNaWE53YjI1elpSS0JBUW9lVTJWdVpFVnRZV2xzVm1WeWFXWjVRMjlrWlZkcGRHaERZWEIwWTJoaEVpNHVkWE5sY2k1Mk1TNVRaVzVrUlcxaGFXeFdaWEpwWm5sRGIyUmxWMmwwYUVOaGNIUmphR0ZTWlhGMVpYTjBHaTh1ZFhObGNpNTJNUzVUWlc1a1JXMWhhV3hXWlhKcFpubERiMlJsVjJsMGFFTmhjSFJqYUdGU1pYTndiMjV6WlJKcENoWkhiMjluYkdWQmNIQlBZWFYwYUVOaGJHeGlZV05yRWlZdWRYTmxjaTUyTVM1SGIyOW5iR1ZCY0hCUFlYVjBhRU5oYkd4aVlXTnJVbVZ4ZFdWemRCb25MblZ6WlhJdWRqRXVSMjl2WjJ4bFFYQndUMkYxZEdoRFlXeHNZbUZqYTFKbGMzQnZibk5sRW1rS0ZsZGxZa0Z3Y0d4bFQyRjFkR2d5UTJGc2JHSmhZMnNTSmk1MWMyVnlMbll4TGxkbFlrRndjR3hsVDJGMWRHZ3lRMkZzYkdKaFkydFNaWEYxWlhOMEdpY3VkWE5sY2k1Mk1TNVhaV0pCY0hCc1pVOWhkWFJvTWtOaGJHeGlZV05yVW1WemNHOXVjMlVTWmdvVlNXOXpRWEJ3YkdWUFlYVjBhRU5oYkd4aVlXTnJFaVV1ZFhObGNpNTJNUzVKYjNOQmNIQnNaVTloZFhSb1EyRnNiR0poWTJ0U1pYRjFaWE4wR2lZdWRYTmxjaTUyTVM1SmIzTkJjSEJzWlU5aGRYUm9RMkZzYkdKaFkydFNaWE53YjI1elpSSkZDZ3BUZDJsMFkyaFZjMlZ5RWhvdWRYTmxjaTUyTVM1VGQybDBZMmhWYzJWeVVtVnhkV1Z6ZEJvYkxuVnpaWEl1ZGpFdVUzZHBkR05vVlhObGNsSmxjM0J2Ym5ObEVtQUtFMFY0WTJoaGJtZGxWRzlyWlc1Q2VVTnZaR1VTSXk1MWMyVnlMbll4TGtWNFkyaGhibWRsVkc5clpXNUNlVU52WkdWU1pYRjFaWE4wR2lRdWRYTmxjaTUyTVM1RmVHTm9ZVzVuWlZSdmEyVnVRbmxEYjJSbFVtVnpjRzl1YzJWQ21nRUtDMk52YlM1MWMyVnlMbll4UWhOVmMyVnlRWFYwYUZCMVlteHBZMUJ5YjNSdlVBRmFPV2RwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOTFjMlZ5TDNZeE8zVnpaWEoyTWFJQ0ExVllXS29DQjFWelpYSXVWakhLQWdkVmMyVnlYRll4NGdJVFZYTmxjbHhXTVZ4SFVFSk5aWFJoWkdGMFllb0NDRlZ6WlhJNk9sWXhZZ1p3Y205MGJ6TSIsW0tzXSksRDI9SChIMiwwKSxqMj16KCJDaWRrWVhOb1ltOWhjbVJmZEc5dmJITXZkakV2WkdGemFHSnZZWEprWDNSdmIyd3VjSEp2ZEc4U0VtUmhjMmhpYjJGeVpGOTBiMjlzY3k1Mk1TS1NBUW9pUTNKbFlYUmxUM0pWY0dSaGRHVlVjbUZ1YzJ4aGRHVlVZWE5yVW1WeGRXVnpkQklVQ2dkMFlYTnJYMmxrR0FFZ0FTZ0RTQUNJQVFFU0Rnb0diVzlrZFd4bEdBSWdBU2dKRWhNS0MyUmxjMk55YVhCMGFXOXVHQU1nQVNnSkVpVUtCR1JoZEdFWUJDQUJLQXN5Rnk1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VTNSeWRXTjBRZ29LQ0Y5MFlYTnJYMmxrSWlVS0kwTnlaV0YwWlU5eVZYQmtZWFJsVkhKaGJuTnNZWFJsVkdGemExSmxjM0J2Ym5ObElsOEtGRlJ5WVc1emJHRjBaVlJoYzJ0U1pYRjFaWE4wRWhRS0IzUmhjMnRmYVdRWUFTQUJLQU5JQUlnQkFSSWxDZ1JrWVhSaEdBSWdBU2dMTWhjdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxOMGNuVmpkRUlLQ2doZmRHRnphMTlwWkNJK0NoVlVjbUZ1YzJ4aGRHVlVZWE5yVW1WemNHOXVjMlVTSlFvRVpHRjBZUmdCSUFFb0N6SVhMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVRkSEoxWTNRaVlRb1pUR2x6ZEZSeVlXNXpiR0YwWlZSaGMydHpVbVZ4ZFdWemRCSVBDZ2R0YjJSMWJHVnpHQUVnQXlnSkVoVUtCSEJoWjJVWUFpQUJLQVZDQjdwSUJCb0NLQUVTSEFvSmNHRm5aVjl6YVhwbEdBTWdBU2dGUWdtNlNBWWFCQmhrS0FFaXpBRUtEVlJ5WVc1emJHRjBaVlJoYzJzU0R3b0hkR0Z6YTE5cFpCZ0JJQUVvQXhJT0NnWnRiMlIxYkdVWUFpQUJLQWtTRXdvTFpHVnpZM0pwY0hScGIyNFlBeUFCS0FrU0pRb0VaR0YwWVJnRUlBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUVNMZ29LWTNKbFlYUmxaRjloZEJnRklBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTTGdvS2RYQmtZWFJsWkY5aGRCZ0dJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBaVhRb2FUR2x6ZEZSeVlXNXpiR0YwWlZSaGMydHpVbVZ6Y0c5dWMyVVNNQW9GZEdGemEzTVlBU0FES0FzeUlTNWtZWE5vWW05aGNtUmZkRzl2YkhNdWRqRXVWSEpoYm5Oc1lYUmxWR0Z6YXhJTkNnVjBiM1JoYkJnQ0lBRW9BeUk3Q2hkSFpYUlVjbUZ1YzJ4aGRHVlVZWE5yVW1WeGRXVnpkQklVQ2dkMFlYTnJYMmxrR0FFZ0FTZ0RTQUNJQVFGQ0Nnb0lYM1JoYzJ0ZmFXUWlTd29ZUjJWMFZISmhibk5zWVhSbFZHRnphMUpsYzNCdmJuTmxFaThLQkhSaGMyc1lBU0FCS0FzeUlTNWtZWE5vWW05aGNtUmZkRzl2YkhNdWRqRXVWSEpoYm5Oc1lYUmxWR0Z6YXlJdENocEVaV3hsZEdWVWNtRnVjMnhoZEdWVVlYTnJVbVZ4ZFdWemRCSVBDZ2QwWVhOclgybGtHQUVnQVNnREloMEtHMFJsYkdWMFpWUnlZVzV6YkdGMFpWUmhjMnRTWlhOd2IyNXpaVEx6QkFvVVJHRnphR0p2WVhKa1ZHOXZiRk5sY25acFkyVVNrQUVLRzBOeVpXRjBaVTl5VlhCa1lYUmxWSEpoYm5Oc1lYUmxWR0Z6YXhJMkxtUmhjMmhpYjJGeVpGOTBiMjlzY3k1Mk1TNURjbVZoZEdWUGNsVndaR0YwWlZSeVlXNXpiR0YwWlZSaGMydFNaWEYxWlhOMEdqY3VaR0Z6YUdKdllYSmtYM1J2YjJ4ekxuWXhMa055WldGMFpVOXlWWEJrWVhSbFZISmhibk5zWVhSbFZHRnphMUpsYzNCdmJuTmxJZ0FTWmdvTlZISmhibk5zWVhSbFZHRnpheElvTG1SaGMyaGliMkZ5WkY5MGIyOXNjeTUyTVM1VWNtRnVjMnhoZEdWVVlYTnJVbVZ4ZFdWemRCb3BMbVJoYzJoaWIyRnlaRjkwYjI5c2N5NTJNUzVVY21GdWMyeGhkR1ZVWVhOclVtVnpjRzl1YzJVaUFCSjFDaEpNYVhOMFZISmhibk5zWVhSbFZHRnphM01TTFM1a1lYTm9ZbTloY21SZmRHOXZiSE11ZGpFdVRHbHpkRlJ5WVc1emJHRjBaVlJoYzJ0elVtVnhkV1Z6ZEJvdUxtUmhjMmhpYjJGeVpGOTBiMjlzY3k1Mk1TNU1hWE4wVkhKaGJuTnNZWFJsVkdGemEzTlNaWE53YjI1elpTSUFFbThLRUVkbGRGUnlZVzV6YkdGMFpWUmhjMnNTS3k1a1lYTm9ZbTloY21SZmRHOXZiSE11ZGpFdVIyVjBWSEpoYm5Oc1lYUmxWR0Z6YTFKbGNYVmxjM1FhTEM1a1lYTm9ZbTloY21SZmRHOXZiSE11ZGpFdVIyVjBWSEpoYm5Oc1lYUmxWR0Z6YTFKbGMzQnZibk5sSWdBU2VBb1RSR1ZzWlhSbFZISmhibk5zWVhSbFZHRnpheEl1TG1SaGMyaGliMkZ5WkY5MGIyOXNjeTUyTVM1RVpXeGxkR1ZVY21GdWMyeGhkR1ZVWVhOclVtVnhkV1Z6ZEJvdkxtUmhjMmhpYjJGeVpGOTBiMjlzY3k1Mk1TNUVaV3hsZEdWVWNtRnVjMnhoZEdWVVlYTnJVbVZ6Y0c5dWMyVWlBRUxpQVFvV1kyOXRMbVJoYzJoaWIyRnlaRjkwYjI5c2N5NTJNVUlTUkdGemFHSnZZWEprVkc5dmJGQnliM1J2VUFGYVQyZHBkR3hoWWk1dGIyNXBZMkV1WTI0dmRtbGtZUzl6WkdzdlltbDZjMlZ5ZG1WeUxXZHZMbWRwZEM5a1lYTm9ZbTloY21SZmRHOXZiSE12ZGpFN1pHRnphR0p2WVhKa1gzUnZiMnh6ZGpHaUFnTkVXRmlxQWhGRVlYTm9ZbTloY21SVWIyOXNjeTVXTWNvQ0VVUmhjMmhpYjJGeVpGUnZiMnh6WEZZeDRnSWRSR0Z6YUdKdllYSmtWRzl2YkhOY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWhKRVlYTm9ZbTloY21SVWIyOXNjem82VmpGaUJuQnliM1J2TXciLFtIZSx0ZSxZZV0pLF8yPUgoajIsMCksTnI9eigiQ2gxMFpXRnRMM1l4TDNSbFlXMWZiV0Z1WVdkbGJXVnVkQzV3Y205MGJ4SUhkR1ZoYlM1Mk1TSThDZ1pCZG1GMFlYSVNFUW9KWm1sc1pWOXVZVzFsR0FFZ0FTZ0pFaEVLQ1cxcGJXVmZkSGx3WlJnQ0lBRW9DUklNQ2dSa1lYUmhHQU1nQVNnSklxc0JDaEZEY21WaGRHVlVaV0Z0VW1WeGRXVnpkQklNQ2dSdVlXMWxHQUVnQVNnSkVnMEtCWE5sWVhSekdBSWdBU2dGRWg4S0JtRjJZWFJoY2hnRElBRW9DeklQTG5SbFlXMHVkakV1UVhaaGRHRnlFaFlLRG1GMWRHOWZaR1ZrZFdOMGFXOXVHQVFnQVNnSUVoOEtGM05wYm1kc1pWOWtaV1IxWTNScGIyNWZZVzF2ZFc1MEdBVWdBU2dGRWg4S0YyMXZiblJvYkhsZlpHVmtkV04wYVc5dVgyeHBiV2wwR0FZZ0FTZ0ZJbllLRWtOeVpXRjBaVlJsWVcxU1pYTndiMjV6WlJJUUNnaDBaV0Z0WDNWcFpCZ0JJQUVvQ1JJUENnZDFjMlZ5WDJsa0dBSWdBU2dKRWd3S0JHNWhiV1VZQXlBQktBa1NEZ29HWVhaaGRHRnlHQVFnQVNnSkVoOEtCSE4wWlhBWUJTQUJLQTR5RVM1MFpXRnRMbll4TGxSbFlXMVRkR1Z3SWtZS0ZWVndaR0YwWlZSbFlXMUpibVp2VW1WeGRXVnpkQklNQ2dSdVlXMWxHQUVnQVNnSkVoOEtCbUYyWVhSaGNoZ0NJQUVvQ3pJUExuUmxZVzB1ZGpFdVFYWmhkR0Z5SW5NS0ZsVndaR0YwWlZSbFlXMUpibVp2VW1WemNHOXVjMlVTRUFvSWRHVmhiVjkxYVdRWUFTQUJLQWtTRVFvSmRHVmhiVjl1WVcxbEdBSWdBU2dKRWhNS0MzUmxZVzFmWVhaaGRHRnlHQU1nQVNnSkVoOEtCSE4wWlhBWUJDQUJLQTR5RVM1MFpXRnRMbll4TGxSbFlXMVRkR1Z3SWtJS0NrbHVkbWwwWlZWelpYSVNEUW9GWlcxaGFXd1lBU0FCS0FrU0pRb0VjbTlzWlJnQ0lBRW9EaklYTG5SbFlXMHVkakV1VkdWaGJVMWxiV0psY2xKdmJHVWlVZ29XUW1GMFkyaEpiblpwZEdWVmMyVnlVbVZ4ZFdWemRCSVVDZ3hwYzE5eVpWOXBiblpwZEdVWUFTQUJLQWdTSWdvRmRYTmxjbk1ZQWlBREtBc3lFeTUwWldGdExuWXhMa2x1ZG1sMFpWVnpaWElpR1FvWFFtRjBZMmhKYm5acGRHVlZjMlZ5VW1WemNHOXVjMlVpS1FvU1JHbHpiV2x6YzFSbFlXMVNaWEYxWlhOMEVoTUtDM1psY21sbWVWOWpiMlJsR0FFZ0FTZ0pJaVlLRTBScGMyMXBjM05VWldGdFVtVnpjRzl1YzJVU0R3b0hkWE5sY2w5cFpCZ0JJQUVvQ1NJa0NoTlVjbUZ1YzJabGNsUmxZVzFTWlhGMVpYTjBFZzBLQldWdFlXbHNHQUVnQVNnSkloWUtGRlJ5WVc1elptVnlWR1ZoYlZKbGMzQnZibk5sSWtFS0dFSmhkR05vVW1WdGIzWmxUV1Z0WW1WeVVtVnhkV1Z6ZEJJVkNnMTBaV0Z0WDNWelpYSmZhV1J6R0FFZ0F5Z0pFZzRLQm1WdFlXbHNjeGdDSUFNb0NTSWJDaGxDWVhSamFGSmxiVzkyWlUxbGJXSmxjbEpsYzNCdmJuTmxJbFlLRjFWd1pHRjBaVTFsYldKbGNsSnZiR1ZTWlhGMVpYTjBFaFFLREhSbFlXMWZkWE5sY2w5cFpCZ0JJQUVvQ1JJbENnUnliMnhsR0FJZ0FTZ09NaGN1ZEdWaGJTNTJNUzVVWldGdFRXVnRZbVZ5VW05c1pTSWFDaGhWY0dSaGRHVk5aVzFpWlhKU2IyeGxVbVZ6Y0c5dWMyVWlPQW9WVlhCa1lYUmxWR1ZoYlZOMFpYQlNaWEYxWlhOMEVoOEtCSE4wWlhBWUFTQUJLQTR5RVM1MFpXRnRMbll4TGxSbFlXMVRkR1Z3SWhnS0ZsVndaR0YwWlZSbFlXMVRkR1Z3VW1WemNHOXVjMlVpVHdvWFZYQmtZWFJsU1c1MmFYUmxVbTlzWlZKbGNYVmxjM1FTRFFvRlpXMWhhV3dZQVNBQktBa1NKUW9FY205c1pSZ0NJQUVvRGpJWExuUmxZVzB1ZGpFdVZHVmhiVTFsYldKbGNsSnZiR1VpR2dvWVZYQmtZWFJsU1c1MmFYUmxVbTlzWlZKbGMzQnZibk5sSW4wS0lWVndaR0YwWlZSbFlXMUVaV1IxWTNScGIyNVRaWFIwYVc1blVtVnhkV1Z6ZEJJV0NnNWhkWFJ2WDJSbFpIVmpkR2x2YmhnQklBRW9DQklmQ2hkemFXNW5iR1ZmWkdWa2RXTjBhVzl1WDJGdGIzVnVkQmdDSUFFb0JSSWZDaGR0YjI1MGFHeDVYMlJsWkhWamRHbHZibDlzYVcxcGRCZ0RJQUVvQlNJa0NpSlZjR1JoZEdWVVpXRnRSR1ZrZFdOMGFXOXVVMlYwZEdsdVoxSmxjM0J2Ym5ObEtrNEtDRlJsWVcxVWVYQmxFaGtLRlZSRlFVMWZWRmxRUlY5VlRsTlFSVU5KUmtsRlJCQUFFaFFLRUZSRlFVMWZWRmxRUlY5T1QxSk5RVXdRQVJJUkNnMVVSVUZOWDFSWlVFVmZSVVJWRUFJcWlRRUtDRlJsWVcxVGRHVndFaGtLRlZSRlFVMWZVMVJGVUY5VlRsTlFSVU5KUmtsRlJCQUFFaDRLR2xSRlFVMWZVMVJGVUY5RFNFOVBVMFZmVTFWQ1UwTlNTVUpGRUFFU0dRb1ZWRVZCVFY5VFZFVlFYMVZRUkVGVVJWOUpUa1pQRUFJU0VRb05WRVZCVFY5VFZFVlFYMUJCV1JBREVoUUtFRlJGUVUxZlUxUkZVRjlHU1U1SlUwZ1FCQ3FIQVFvT1ZHVmhiVTFsYldKbGNsSnZiR1VTSUFvY1ZFVkJUVjlOUlUxQ1JWSmZVazlNUlY5VlRsTlFSVU5KUmtsRlJCQUFFaG9LRmxSRlFVMWZUVVZOUWtWU1gxSlBURVZmVDFkT1JWSVFBUklhQ2haVVJVRk5YMDFGVFVKRlVsOVNUMHhGWDBGRVRVbE9FQUlTR3dvWFZFVkJUVjlOUlUxQ1JWSmZVazlNUlY5TlJVMUNSVklRQXpMMkJnb1ZWR1ZoYlUxaGJtRm5aVzFsYm5SVFpYSjJhV05sRWtVS0NrTnlaV0YwWlZSbFlXMFNHaTUwWldGdExuWXhMa055WldGMFpWUmxZVzFTWlhGMVpYTjBHaHN1ZEdWaGJTNTJNUzVEY21WaGRHVlVaV0Z0VW1WemNHOXVjMlVTVVFvT1ZYQmtZWFJsVkdWaGJVbHVabThTSGk1MFpXRnRMbll4TGxWd1pHRjBaVlJsWVcxSmJtWnZVbVZ4ZFdWemRCb2ZMblJsWVcwdWRqRXVWWEJrWVhSbFZHVmhiVWx1Wm05U1pYTndiMjV6WlJKVUNnOUNZWFJqYUVsdWRtbDBaVlZ6WlhJU0h5NTBaV0Z0TG5ZeExrSmhkR05vU1c1MmFYUmxWWE5sY2xKbGNYVmxjM1FhSUM1MFpXRnRMbll4TGtKaGRHTm9TVzUyYVhSbFZYTmxjbEpsYzNCdmJuTmxFa2dLQzBScGMyMXBjM05VWldGdEVoc3VkR1ZoYlM1Mk1TNUVhWE50YVhOelZHVmhiVkpsY1hWbGMzUWFIQzUwWldGdExuWXhMa1JwYzIxcGMzTlVaV0Z0VW1WemNHOXVjMlVTU3dvTVZISmhibk5tWlhKVVpXRnRFaHd1ZEdWaGJTNTJNUzVVY21GdWMyWmxjbFJsWVcxU1pYRjFaWE4wR2gwdWRHVmhiUzUyTVM1VWNtRnVjMlpsY2xSbFlXMVNaWE53YjI1elpSSmFDaEZDWVhSamFGSmxiVzkyWlUxbGJXSmxjaEloTG5SbFlXMHVkakV1UW1GMFkyaFNaVzF2ZG1WTlpXMWlaWEpTWlhGMVpYTjBHaUl1ZEdWaGJTNTJNUzVDWVhSamFGSmxiVzkyWlUxbGJXSmxjbEpsYzNCdmJuTmxFbGNLRUZWd1pHRjBaVTFsYldKbGNsSnZiR1VTSUM1MFpXRnRMbll4TGxWd1pHRjBaVTFsYldKbGNsSnZiR1ZTWlhGMVpYTjBHaUV1ZEdWaGJTNTJNUzVWY0dSaGRHVk5aVzFpWlhKU2IyeGxVbVZ6Y0c5dWMyVVNVUW9PVlhCa1lYUmxWR1ZoYlZOMFpYQVNIaTUwWldGdExuWXhMbFZ3WkdGMFpWUmxZVzFUZEdWd1VtVnhkV1Z6ZEJvZkxuUmxZVzB1ZGpFdVZYQmtZWFJsVkdWaGJWTjBaWEJTWlhOd2IyNXpaUkpYQ2hCVmNHUmhkR1ZKYm5acGRHVlNiMnhsRWlBdWRHVmhiUzUyTVM1VmNHUmhkR1ZKYm5acGRHVlNiMnhsVW1WeGRXVnpkQm9oTG5SbFlXMHVkakV1VlhCa1lYUmxTVzUyYVhSbFVtOXNaVkpsYzNCdmJuTmxFblVLR2xWd1pHRjBaVlJsWVcxRVpXUjFZM1JwYjI1VFpYUjBhVzVuRWlvdWRHVmhiUzUyTVM1VmNHUmhkR1ZVWldGdFJHVmtkV04wYVc5dVUyVjBkR2x1WjFKbGNYVmxjM1FhS3k1MFpXRnRMbll4TGxWd1pHRjBaVlJsWVcxRVpXUjFZM1JwYjI1VFpYUjBhVzVuVW1WemNHOXVjMlZDbWdFS0MyTnZiUzUwWldGdExuWXhRaE5VWldGdFRXRnVZV2RsYldWdWRGQnliM1J2VUFGYU9XZHBkR3hoWWk1dGIyNXBZMkV1WTI0dmRtbGtZUzl6WkdzdlltbDZjMlZ5ZG1WeUxXZHZMbWRwZEM5MFpXRnRMM1l4TzNSbFlXMTJNYUlDQTFSWVdLb0NCMVJsWVcwdVZqSEtBZ2RVWldGdFhGWXg0Z0lUVkdWaGJWeFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0NGUmxZVzA2T2xZeFlnWndjbTkwYnpNIiksTzI9SChOciwwKSxQMj16KCJDaEowWldGdEwzWXhMM1JsWVcwdWNISnZkRzhTQjNSbFlXMHVkakVpVVFvWVRHbHpkRlJsWVcxSmJuWnZhV05sYzFKbGMzQnZibk5sRWlZS0NHbHVkbTlwWTJWekdBRWdBeWdMTWhRdWRHVmhiUzUyTVM1VVpXRnRTVzUyYjJsalpSSU5DZ1YwYjNSaGJCZ0NJQUVvQlNLREFRb0xWR1ZoYlVsdWRtOXBZMlVTRWdvS2FXNTJiMmxqWlY5cFpCZ0JJQUVvQ1JJT0NnWmhiVzkxYm5RWUFpQUJLQU1TRVFvSmNIVnlZMmhoYzJWeUdBTWdBU2dKRWhNS0MybHVkbTlwWTJWZmRYSnNHQVFnQVNnSkVpZ0tCR1JoZEdVWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3SWpvS0YweHBjM1JVWldGdFNXNTJiMmxqWlhOU1pYRjFaWE4wRWd3S0JIQmhaMlVZQVNBQktBVVNFUW9KY0dGblpWOXphWHBsR0FJZ0FTZ0ZJaklLRDB4cGMzUlVaV0Z0VW1WeGRXVnpkQklNQ2dSd1lXZGxHQUVnQVNnRkVoRUtDWEJoWjJWZmMybDZaUmdDSUFFb0JTSzBBUW9FVkdWaGJSSVFDZ2gwWldGdFgzVnBaQmdCSUFFb0NSSU1DZ1J1WVcxbEdBSWdBU2dKRWc0S0JtRjJZWFJoY2hnRElBRW9DUklQQ2dkMWMyVnlYMmxrR0FRZ0FTZ0pFaU1LQm5OMFlYUjFjeGdGSUFFb0RqSVRMblJsWVcwdWRqRXVWR1ZoYlZOMFlYUjFjeElsQ2dSeWIyeGxHQVlnQVNnT01oY3VkR1ZoYlM1Mk1TNVVaV0Z0VFdWdFltVnlVbTlzWlJJZkNnUjBlWEJsR0FjZ0FTZ09NaEV1ZEdWaGJTNTJNUzVVWldGdFZIbHdaU0orQ2hCTWFYTjBWR1ZoYlZKbGMzQnZibk5sRWh3S0JYUmxZVzF6R0FFZ0F5Z0xNZzB1ZEdWaGJTNTJNUzVVWldGdEVoTUtDM1J2ZEdGc1gyTnZkVzUwR0FJZ0FTZ0ZFZzhLQjNWelpYSmZhV1FZQXlBQktBa1NFUW9KZFhObGNsOXVZVzFsR0FRZ0FTZ0pFaE1LQzNWelpYSmZZWFpoZEdGeUdBVWdBU2dKSWlvS0QwcHZhVzVVWldGdFVtVnhkV1Z6ZEJJWENnOXBiblpwZEdGMGFXOXVYMk52WkdVWUFTQUJLQWtpZEFvUVNtOXBibFJsWVcxU1pYTndiMjV6WlJJUENnZDFjMlZ5WDJsa0dBRWdBU2dKRWhBS0NIUmxZVzFmZFdsa0dBSWdBU2dKRWd3S0JHNWhiV1VZQXlBQktBa1NEZ29HWVhaaGRHRnlHQVFnQVNnSkVoOEtCSFI1Y0dVWUJTQUJLQTR5RVM1MFpXRnRMbll4TGxSbFlXMVVlWEJsSWhFS0QwVjRhWFJVWldGdFVtVnhkV1Z6ZENJU0NoQkZlR2wwVkdWaGJWSmxjM0J2Ym5ObElpWUtFa2RsZEZSbFlXMUpibVp2VW1WeGRXVnpkQklRQ2doMFpXRnRYM1ZwWkJnQklBRW9DU0xMQXdvVFIyVjBWR1ZoYlVsdVptOVNaWE53YjI1elpSSVFDZ2gwWldGdFgzVnBaQmdCSUFFb0NSSU1DZ1J1WVcxbEdBSWdBU2dKRWc0S0JtRjJZWFJoY2hnRElBRW9DUklOQ2dWelpXRjBjeGdFSUFFb0JSSXVDZ3BqY21WaGRHVmtYMkYwR0FVZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklXQ2c1aGRYUnZYMlJsWkhWamRHbHZiaGdHSUFFb0NCSWZDaGR6YVc1bmJHVmZaR1ZrZFdOMGFXOXVYMkZ0YjNWdWRCZ0hJQUVvQlJJZkNoZHRiMjUwYUd4NVgyUmxaSFZqZEdsdmJsOXNhVzFwZEJnSUlBRW9CUklmQ2dSemRHVndHQWtnQVNnT01oRXVkR1ZoYlM1Mk1TNVVaV0Z0VTNSbGNCSWxDZ1J5YjJ4bEdBb2dBU2dPTWhjdWRHVmhiUzUyTVM1VVpXRnRUV1Z0WW1WeVVtOXNaUklVQ2d4dFpXMWlaWEpmWTI5MWJuUVlDeUFCS0FVU0V3b0xkbWx3WDNabGNuTnBiMjRZRENBQktBa1NHZ29TWTNWeWNtVnVkRjl3WlhKcGIyUmZaVzVrR0EwZ0FTZ0RFaEVLQ1dselgzbGxZWEpzZVJnT0lBRW9DQklVQ2d4MFpXRnRYM1Z6WlhKZmFXUVlEeUFCS0FrU0Vnb0tibVY0ZEY5elpXRjBjeGdRSUFFb0JSSWZDZ1IwZVhCbEdCRWdBU2dPTWhFdWRHVmhiUzUyTVM1VVpXRnRWSGx3WlNMQUFRb1pUR2x6ZEZSbFlXMURjbVZrYVhSelRHOW5VbVZ4ZFdWemRCSXpDZ3B6ZEdGeWRGOWtZWFJsR0FFZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjRWdBaUFFQkVqRUtDR1Z1WkY5a1lYUmxHQUlnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNFZ0JpQUVCRWd3S0JIQmhaMlVZQXlBQktBVVNFUW9KY0dGblpWOXphWHBsR0FRZ0FTZ0ZRZzBLQzE5emRHRnlkRjlrWVhSbFFnc0tDVjlsYm1SZlpHRjBaU0pSQ2hwTWFYTjBWR1ZoYlVOeVpXUnBkSE5NYjJkU1pYTndiMjV6WlJJa0NnUnNiMmR6R0FFZ0F5Z0xNaFl1ZEdWaGJTNTJNUzVVWldGdFEzSmxaR2wwVEc5bkVnMEtCWFJ2ZEdGc0dBSWdBU2dGSW9nQkNnMVVaV0Z0UTNKbFpHbDBURzluRWc4S0IzVnpaWEpmYVdRWUFTQUJLQWtTRVFvSmRYTmxjbDl1WVcxbEdBSWdBU2dKRWhNS0MzVnpaWEpmWVhaaGRHRnlHQU1nQVNnSkVnOEtCMk55WldScGRITVlCQ0FCS0FVU0xRb0pZM0psWVhSbFgyRjBHQVVnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNDS2xBUW9mVEdsemRGUmxZVzFEY21Wa2FYUnpVM1JoZEdsemRHbGpVbVZ4ZFdWemRCSXpDZ3B6ZEdGeWRGOWtZWFJsR0FFZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjRWdBaUFFQkVqRUtDR1Z1WkY5a1lYUmxHQUlnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNFZ0JpQUVCUWcwS0MxOXpkR0Z5ZEY5a1lYUmxRZ3NLQ1Y5bGJtUmZaR0YwWlNKYUNpQk1hWE4wVkdWaGJVTnlaV1JwZEhOVGRHRjBhWE4wYVdOU1pYTndiMjV6WlJJMkNnbHpkR0YwYVhOMGFXTVlBU0FES0FzeUl5NTBaV0Z0TG5ZeExsUmxZVzFUWlhOemFXOXVRM0psWkdsMFUzUmhkR2x6ZEdsaklsY0tHbFJsWVcxVFpYTnphVzl1UTNKbFpHbDBVM1JoZEdsemRHbGpFaWdLQkdSaGRHVVlBU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VnOEtCMk55WldScGRITVlBaUFCS0FVaWlnRUtGVXhwYzNSVVpXRnRUV1Z0WW1WeVVtVnhkV1Z6ZEJJTUNnUndZV2RsR0FFZ0FTZ0ZFaEVLQ1hCaFoyVmZjMmw2WlJnQ0lBRW9CUklYQ2dwelpXRnlZMmhmYTJWNUdBTWdBU2dKU0FDSUFRRVNLQW9MWm1sc2RHVnlYM1I1Y0dVWUJDQUJLQTR5RXk1MFpXRnRMbll4TGtacGJIUmxjbFI1Y0dWQ0RRb0xYM05sWVhKamFGOXJaWGtpbXdFS0NsUmxZVzFOWlcxaVpYSVNFQW9JZFhObGNsOTFhV1FZQVNBQktBa1NEQW9FYm1GdFpSZ0NJQUVvQ1JJTkNnVmxiV0ZwYkJnRElBRW9DUklPQ2daaGRtRjBZWElZQkNBQktBa1NKd29HYzNSaGRIVnpHQVVnQVNnT01oY3VkR1ZoYlM1Mk1TNVVaV0Z0VlhObGNsTjBZWFIxY3hJbENnUnliMnhsR0FZZ0FTZ09NaGN1ZEdWaGJTNTJNUzVVWldGdFRXVnRZbVZ5VW05c1pTSlRDaFpNYVhOMFZHVmhiVTFsYldKbGNsSmxjM0J2Ym5ObEVpUUtCMjFsYldKbGNuTVlBU0FES0FzeUV5NTBaV0Z0TG5ZeExsUmxZVzFOWlcxaVpYSVNFd29MZEc5MFlXeGZZMjkxYm5RWUFpQUJLQVVxbmdFS0NsUmxZVzFUZEdGMGRYTVNHd29YVkVWQlRWOVRWRUZVVlZOZlZVNVRVRVZEU1VaSlJVUVFBQklYQ2hOVVJVRk5YMU5VUVZSVlUxOUJRMVJKVmtWRUVBRVNGd29UVkVWQlRWOVRWRUZVVlZOZlJWaFFTVkpGUkJBQ0Vod0tHRlJGUVUxZlUxUkJWRlZUWDA1UFgxTlZRbE5EVWtsQ1JSQURFaU1LSDFSRlFVMWZVMVJCVkZWVFgxTlZRbE5EVWtsQ1JWOURRVTVEUlV4TVJVUVFCQ3BiQ2dwR2FXeDBaWEpVZVhCbEVoc0tGMFpKVEZSRlVsOVVXVkJGWDFWT1UxQkZRMGxHU1VWRUVBQVNGd29UUmtsTVZFVlNYMVJaVUVWZlFVeE1WVk5GVWhBQkVoY0tFMFpKVEZSRlVsOVVXVkJGWDFCRlRrUkpUa2NRQWlxcEFRb09WR1ZoYlZWelpYSlRkR0YwZFhNU0lBb2NWRVZCVFY5VlUwVlNYMU5VUVZSVlUxOVZUbE5RUlVOSlJrbEZSQkFBRWh3S0dGUkZRVTFmVlZORlVsOVRWRUZVVlZOZlVFVk9SRWxPUnhBQkVoMEtHVlJGUVUxZlZWTkZVbDlUVkVGVVZWTmZRVU5EUlZCVVJVUVFBaEliQ2hkVVJVRk5YMVZUUlZKZlUxUkJWRlZUWDBWWVNWUkZSQkFERWhzS0YxUkZRVTFmVlZORlVsOVRWRUZVVlZOZlMwbERTMFZFRUFReWxnVUtDMVJsWVcxVFpYSjJhV05sRWo4S0NFeHBjM1JVWldGdEVoZ3VkR1ZoYlM1Mk1TNU1hWE4wVkdWaGJWSmxjWFZsYzNRYUdTNTBaV0Z0TG5ZeExreHBjM1JVWldGdFVtVnpjRzl1YzJVU1B3b0lTbTlwYmxSbFlXMFNHQzUwWldGdExuWXhMa3B2YVc1VVpXRnRVbVZ4ZFdWemRCb1pMblJsWVcwdWRqRXVTbTlwYmxSbFlXMVNaWE53YjI1elpSSS9DZ2hGZUdsMFZHVmhiUklZTG5SbFlXMHVkakV1UlhocGRGUmxZVzFTWlhGMVpYTjBHaGt1ZEdWaGJTNTJNUzVGZUdsMFZHVmhiVkpsYzNCdmJuTmxFa2dLQzBkbGRGUmxZVzFKYm1adkVoc3VkR1ZoYlM1Mk1TNUhaWFJVWldGdFNXNW1iMUpsY1hWbGMzUWFIQzUwWldGdExuWXhMa2RsZEZSbFlXMUpibVp2VW1WemNHOXVjMlVTVVFvT1RHbHpkRlJsWVcxTlpXMWlaWElTSGk1MFpXRnRMbll4TGt4cGMzUlVaV0Z0VFdWdFltVnlVbVZ4ZFdWemRCb2ZMblJsWVcwdWRqRXVUR2x6ZEZSbFlXMU5aVzFpWlhKU1pYTndiMjV6WlJKZENoSk1hWE4wVkdWaGJVTnlaV1JwZEhOTWIyY1NJaTUwWldGdExuWXhMa3hwYzNSVVpXRnRRM0psWkdsMGMweHZaMUpsY1hWbGMzUWFJeTUwWldGdExuWXhMa3hwYzNSVVpXRnRRM0psWkdsMGMweHZaMUpsYzNCdmJuTmxFbThLR0V4cGMzUlVaV0Z0UTNKbFpHbDBjMU4wWVhScGMzUnBZeElvTG5SbFlXMHVkakV1VEdsemRGUmxZVzFEY21Wa2FYUnpVM1JoZEdsemRHbGpVbVZ4ZFdWemRCb3BMblJsWVcwdWRqRXVUR2x6ZEZSbFlXMURjbVZrYVhSelUzUmhkR2x6ZEdsalVtVnpjRzl1YzJVU1Z3b1FUR2x6ZEZSbFlXMUpiblp2YVdObGN4SWdMblJsWVcwdWRqRXVUR2x6ZEZSbFlXMUpiblp2YVdObGMxSmxjWFZsYzNRYUlTNTBaV0Z0TG5ZeExreHBjM1JVWldGdFNXNTJiMmxqWlhOU1pYTndiMjV6WlVLUUFRb0xZMjl0TG5SbFlXMHVkakZDQ1ZSbFlXMVFjbTkwYjFBQldqbG5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmRHVmhiUzkyTVR0MFpXRnRkakdpQWdOVVdGaXFBZ2RVWldGdExsWXh5Z0lIVkdWaGJWeFdNZUlDRTFSbFlXMWNWakZjUjFCQ1RXVjBZV1JoZEdIcUFnaFVaV0Z0T2pwV01XSUdjSEp2ZEc4eiIsW3RlLE5yXSksJDI9SChQMiwwKSxxMj16KCJDaHgwWldGdEwzWXhMMlZrZFY5MFpXRnRYMkZrYldsdUxuQnliM1J2RWdkMFpXRnRMbll4SW1FS0ZFTnlaV0YwWlVWa2RWUmxZVzFTWlhGMVpYTjBFZ3dLQkc1aGJXVVlBU0FCS0FrU0Rnb0dZWFpoZEdGeUdBSWdBU2dKRWhRS0RHVnRZV2xzWDNOMVptWnBlQmdESUFNb0NSSVZDZzF6WlhOemFXOXVYMnhwYldsMEdBUWdBU2dGSWhjS0ZVTnlaV0YwWlVWa2RWUmxZVzFTWlhOd2IyNXpaU0pyQ2hoVmNHUmhkR1ZGWkhWVVpXRnRTVzVtYjFKbGNYVmxjM1FTQ3dvRGRXbGtHQUVnQVNnSkVnd0tCRzVoYldVWUFpQUJLQWtTRGdvR1lYWmhkR0Z5R0FNZ0FTZ0pFZzBLQlhObFlYUnpHQVFnQVNnRkVoVUtEWE5sYzNOcGIyNWZiR2x0YVhRWUJTQUJLQVVpR3dvWlZYQmtZWFJsUldSMVZHVmhiVWx1Wm05U1pYTndiMjV6WlNLWUFRb1RUR2x6ZEVWa2RWUmxZVzF6VW1WeGRXVnpkQklRQ2dOMWFXUVlBU0FCS0FsSUFJZ0JBUklSQ2dSdVlXMWxHQUlnQVNnSlNBR0lBUUVTR1FvTVpXMWhhV3hmYzNWbVptbDRHQU1nQVNnSlNBS0lBUUVTREFvRWNHRm5aUmdFSUFFb0JSSVJDZ2x3WVdkbFgzTnBlbVVZQlNBQktBVkNCZ29FWDNWcFpFSUhDZ1ZmYm1GdFpVSVBDZzFmWlcxaGFXeGZjM1ZtWm1sNElxOEJDZ2RGWkhWVVpXRnRFZ3NLQTNWcFpCZ0JJQUVvQ1JJTUNnUnVZVzFsR0FJZ0FTZ0pFZzRLQm1GMllYUmhjaGdESUFFb0NSSVVDZ3hsYldGcGJGOXpkV1ptYVhnWUJDQURLQWtTRlFvTmMyVnpjMmx2Ymw5c2FXMXBkQmdGSUFFb0JSSWNDaFJqZFhKeVpXNTBYMjFsYldKbGNsOWpiM1Z1ZEJnR0lBRW9CUkl1Q2dwamNtVmhkR1ZrWDJGMEdBY2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0NKR0NoUk1hWE4wUldSMVZHVmhiWE5TWlhOd2IyNXpaUklmQ2dWMFpXRnRjeGdCSUFNb0N6SVFMblJsWVcwdWRqRXVSV1IxVkdWaGJSSU5DZ1YwYjNSaGJCZ0NJQUVvQlNLSUFRb1pUR2x6ZEVWa2RWUmxZVzFOWlcxaVpYSnpVbVZ4ZFdWemRCSVFDZ2gwWldGdFgzVnBaQmdCSUFFb0NSSVNDZ1ZsYldGcGJCZ0NJQUVvQ1VnQWlBRUJFaEVLQkc1aGJXVVlBeUFCS0FsSUFZZ0JBUklNQ2dSd1lXZGxHQVFnQVNnRkVoRUtDWEJoWjJWZmMybDZaUmdGSUFFb0JVSUlDZ1pmWlcxaGFXeENCd29GWDI1aGJXVWlnUUVLRFVWa2RWUmxZVzFOWlcxaVpYSVNEd29IZFhObGNsOXBaQmdCSUFFb0NSSU1DZ1J1WVcxbEdBSWdBU2dKRWcwS0JXVnRZV2xzR0FNZ0FTZ0pFaElLQ25acGNGOXpkR0YwZFhNWUJDQUJLQWtTTGdvS1kzSmxZWFJsWkY5aGRCZ0ZJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBaVZBb2FUR2x6ZEVWa2RWUmxZVzFOWlcxaVpYSnpVbVZ6Y0c5dWMyVVNKd29IYldWdFltVnljeGdCSUFNb0N6SVdMblJsWVcwdWRqRXVSV1IxVkdWaGJVMWxiV0psY2hJTkNnVjBiM1JoYkJnQ0lBRW9CU0l2Q2h0SFpYUkZaSFZVWldGdFUzUmhkR2x6ZEdsamMxSmxjWFZsYzNRU0VBb0lkR1ZoYlY5MWFXUVlBU0FCS0FraWd3RUtIRWRsZEVWa2RWUmxZVzFUZEdGMGFYTjBhV056VW1WemNHOXVjMlVTSEFvVVkzVnljbVZ1ZEY5dFpXMWlaWEpmWTI5MWJuUVlBU0FCS0FVU0ZRb05jMlZ6YzJsdmJsOWpiM1Z1ZEJnQ0lBRW9CUklXQ2c1eVpYTnZkWEpqWlY5MWMyRm5aUmdESUFFb0JSSVdDZzV5WlhOdmRYSmpaVjl4ZFc5MFlSZ0VJQUVvQlNKM0NocE1hWE4wUldSMVZHVmhiVk5sYzNOcGIyNXpVbVZ4ZFdWemRCSVFDZ2gwWldGdFgzVnBaQmdCSUFFb0NSSVhDZ3B6WlhOemFXOXVYMmxrR0FJZ0FTZ0pTQUNJQVFFU0RBb0VjR0ZuWlJnRElBRW9CUklSQ2dsd1lXZGxYM05wZW1VWUJDQUJLQVZDRFFvTFgzTmxjM05wYjI1ZmFXUWlod0VLRGtWa2RWUmxZVzFUWlhOemFXOXVFaElLQ25ObGMzTnBiMjVmYVdRWUFTQUJLQWtTRFFvRmRHbDBiR1VZQWlBQktBa1NFZ29LWTNKbFlYUmxjbDlwWkJnRElBRW9DUklXQ2c1amIyNXpkVzFsWDNCdmFXNTBjeGdFSUFFb0JSSVJDZ2xwYzE5emFHRnlaV1FZQlNBQktBZ1NFd29MWTNKbFlYUmxYM1JwYldVWUJpQUJLQU1pVndvYlRHbHpkRVZrZFZSbFlXMVRaWE56YVc5dWMxSmxjM0J2Ym5ObEVpa0tDSE5sYzNOcGIyNXpHQUVnQXlnTE1oY3VkR1ZoYlM1Mk1TNUZaSFZVWldGdFUyVnpjMmx2YmhJTkNnVjBiM1JoYkJnQ0lBRW9CU0lvQ2hSRVpXeGxkR1ZGWkhWVVpXRnRVbVZ4ZFdWemRCSVFDZ2gwWldGdFgzVnBaQmdCSUFFb0NTSVhDaFZFWld4bGRHVkZaSFZVWldGdFVtVnpjRzl1YzJVeWhBVUtFMFZrZFZSbFlXMUJaRzFwYmxObGNuWnBZMlVTVGdvTlEzSmxZWFJsUldSMVZHVmhiUklkTG5SbFlXMHVkakV1UTNKbFlYUmxSV1IxVkdWaGJWSmxjWFZsYzNRYUhpNTBaV0Z0TG5ZeExrTnlaV0YwWlVWa2RWUmxZVzFTWlhOd2IyNXpaUkphQ2hGVmNHUmhkR1ZGWkhWVVpXRnRTVzVtYnhJaExuUmxZVzB1ZGpFdVZYQmtZWFJsUldSMVZHVmhiVWx1Wm05U1pYRjFaWE4wR2lJdWRHVmhiUzUyTVM1VmNHUmhkR1ZGWkhWVVpXRnRTVzVtYjFKbGMzQnZibk5sRWtzS0RFeHBjM1JGWkhWVVpXRnRjeEljTG5SbFlXMHVkakV1VEdsemRFVmtkVlJsWVcxelVtVnhkV1Z6ZEJvZExuUmxZVzB1ZGpFdVRHbHpkRVZrZFZSbFlXMXpVbVZ6Y0c5dWMyVVNYUW9TVEdsemRFVmtkVlJsWVcxTlpXMWlaWEp6RWlJdWRHVmhiUzUyTVM1TWFYTjBSV1IxVkdWaGJVMWxiV0psY25OU1pYRjFaWE4wR2lNdWRHVmhiUzUyTVM1TWFYTjBSV1IxVkdWaGJVMWxiV0psY25OU1pYTndiMjV6WlJKakNoUkhaWFJGWkhWVVpXRnRVM1JoZEdsemRHbGpjeElrTG5SbFlXMHVkakV1UjJWMFJXUjFWR1ZoYlZOMFlYUnBjM1JwWTNOU1pYRjFaWE4wR2lVdWRHVmhiUzUyTVM1SFpYUkZaSFZVWldGdFUzUmhkR2x6ZEdsamMxSmxjM0J2Ym5ObEVtQUtFMHhwYzNSRlpIVlVaV0Z0VTJWemMybHZibk1TSXk1MFpXRnRMbll4TGt4cGMzUkZaSFZVWldGdFUyVnpjMmx2Ym5OU1pYRjFaWE4wR2lRdWRHVmhiUzUyTVM1TWFYTjBSV1IxVkdWaGJWTmxjM05wYjI1elVtVnpjRzl1YzJVU1Rnb05SR1ZzWlhSbFJXUjFWR1ZoYlJJZExuUmxZVzB1ZGpFdVJHVnNaWFJsUldSMVZHVmhiVkpsY1hWbGMzUWFIaTUwWldGdExuWXhMa1JsYkdWMFpVVmtkVlJsWVcxU1pYTndiMjV6WlVLWUFRb0xZMjl0TG5SbFlXMHVkakZDRVVWa2RWUmxZVzFCWkcxcGJsQnliM1J2VUFGYU9XZHBkR3hoWWk1dGIyNXBZMkV1WTI0dmRtbGtZUzl6WkdzdlltbDZjMlZ5ZG1WeUxXZHZMbWRwZEM5MFpXRnRMM1l4TzNSbFlXMTJNYUlDQTFSWVdLb0NCMVJsWVcwdVZqSEtBZ2RVWldGdFhGWXg0Z0lUVkdWaGJWeFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0NGUmxZVzA2T2xZeFlnWndjbTkwYnpNIixbdGVdKSxlcD1IKHEyLDApLHRwPXooIkNobDBaV0Z0TDNZeEwzUmxZVzFmY0hWaWJHbGpMbkJ5YjNSdkVnZDBaV0Z0TG5ZeElqY0tIRWRsZEZSbFlXMUpiblpwZEdGMGFXOXVTVzVtYjFKbGNYVmxjM1FTRndvUGFXNTJhWFJoZEdsdmJsOWpiMlJsR0FFZ0FTZ0pJcVVCQ2gxSFpYUlVaV0Z0U1c1MmFYUmhkR2x2YmtsdVptOVNaWE53YjI1elpSSVVDZ3hwYm5acGRHVnlYMjVoYldVWUFTQUJLQWtTRmdvT2FXNTJhWFJsY2w5aGRtRjBZWElZQWlBQktBa1NFUW9KZEdWaGJWOXVZVzFsR0FNZ0FTZ0pFaE1LQzNSbFlXMWZZWFpoZEdGeUdBUWdBU2dKRWcwS0JXVnRZV2xzR0FVZ0FTZ0pFaDhLQkhSNWNHVVlCaUFCS0E0eUVTNTBaV0Z0TG5ZeExsUmxZVzFVZVhCbE1uc0tFVlJsWVcxUWRXSnNhV05UWlhKMmFXTmxFbVlLRlVkbGRGUmxZVzFKYm5acGRHRjBhVzl1U1c1bWJ4SWxMblJsWVcwdWRqRXVSMlYwVkdWaGJVbHVkbWwwWVhScGIyNUpibVp2VW1WeGRXVnpkQm9tTG5SbFlXMHVkakV1UjJWMFZHVmhiVWx1ZG1sMFlYUnBiMjVKYm1adlVtVnpjRzl1YzJWQ2xnRUtDMk52YlM1MFpXRnRMbll4UWc5VVpXRnRVSFZpYkdsalVISnZkRzlRQVZvNVoybDBiR0ZpTG0xdmJtbGpZUzVqYmk5MmFXUmhMM05rYXk5aWFYcHpaWEoyWlhJdFoyOHVaMmwwTDNSbFlXMHZkakU3ZEdWaGJYWXhvZ0lEVkZoWXFnSUhWR1ZoYlM1V01jb0NCMVJsWVcxY1ZqSGlBaE5VWldGdFhGWXhYRWRRUWsxbGRHRmtZWFJoNmdJSVZHVmhiVG82VmpGaUJuQnliM1J2TXciLFtOcl0pLG5wPUgodHAsMCksTXM9eigiQ2h4cmJtOTNiR1ZrWjJVdmRqRXZhMjV2ZDJ4bFpHZGxMbkJ5YjNSdkVneHJibTkzYkdWa1oyVXVkakVpOWdJS0NVdHViM2RzWldSblpSSUxDZ04xYVdRWUFTQUJLQWtTREFvRWJtRnRaUmdDSUFFb0NSSVBDZ2RqYjI1MFpXNTBHQU1nQVNnSkVnOEtCM1J5YVdkblpYSVlCQ0FCS0FrU0R3b0haVzVoWW14bFpCZ0ZJQUVvQ0JJVENndHpaWE56YVc5dVgzVnBaQmdHSUFFb0NSSVpDaEZ6WlhOemFXOXVYMlYyWlc1MFgzVnBaQmdISUFFb0NSSXVDZ3BqY21WaGRHVmtYMkYwR0FnZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwMWNHUmhkR1ZrWDJGMEdBa2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJcENnUnJhVzVrR0FvZ0FTZ09NaHN1YTI1dmQyeGxaR2RsTG5ZeExrdHViM2RzWldSblpVdHBibVFTRUFvSWMyaHZjblJmYVdRWUN5QUJLQWtTTkFvS2RYTmhaMlZmZEhsd1pSZ01JQUVvRGpJZ0xtdHViM2RzWldSblpTNTJNUzVMYm05M2JHVmtaMlZWYzJGblpWUjVjR1VTR0FvUWRXNXBjWFZsWDJsdVkxOXBibVJsZUJnTklBRW9BeUxUQXdvT1MyNXZkMnhsWkdkbFJYWmxiblFTQ3dvRGRXbGtHQUVnQVNnSkVnd0tCRzVoYldVWUFpQUJLQWtTRHdvSFkyOXVkR1Z1ZEJnRElBRW9DUklQQ2dkMGNtbG5aMlZ5R0FRZ0FTZ0pFaklLQm5OMFlYUjFjeGdGSUFFb0RqSWlMbXR1YjNkc1pXUm5aUzUyTVM1TGJtOTNiR1ZrWjJWRmRtVnVkRk4wWVhSMWN4SVRDZ3R6WlhOemFXOXVYM1ZwWkJnR0lBRW9DUklaQ2hGelpYTnphVzl1WDJWMlpXNTBYM1ZwWkJnSElBRW9DUkl1Q2dwamNtVmhkR1ZrWDJGMEdBZ2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJdUNncDFjR1JoZEdWa1gyRjBHQWtnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNCSXVDZ1JyYVc1a0dBb2dBU2dPTWlBdWEyNXZkMnhsWkdkbExuWXhMa3R1YjNkc1pXUm5aVVYyWlc1MFMybHVaQklmQ2hKcmJtOTNiR1ZrWjJWZmMyaHZjblJmYVdRWUN5QUJLQWxJQUlnQkFSSVZDZ2h6YUc5eWRGOXBaQmdNSUFFb0NVZ0JpQUVCRWpRS0NuVnpZV2RsWDNSNWNHVVlEU0FCS0E0eUlDNXJibTkzYkdWa1oyVXVkakV1UzI1dmQyeGxaR2RsVlhOaFoyVlVlWEJsUWhVS0UxOXJibTkzYkdWa1oyVmZjMmh2Y25SZmFXUkNDd29KWDNOb2IzSjBYMmxrSXRjRENoSlRkV2RuWlhOMFpXUkxibTkzYkdWa1oyVVNDd29EZFdsa0dBRWdBU2dKRWd3S0JHNWhiV1VZQWlBQktBa1NEd29IWTI5dWRHVnVkQmdESUFFb0NSSVBDZ2QwY21sbloyVnlHQVFnQVNnSkVqSUtCbk4wWVhSMWN4Z0ZJQUVvRGpJaUxtdHViM2RzWldSblpTNTJNUzVMYm05M2JHVmtaMlZGZG1WdWRGTjBZWFIxY3hJVENndHpaWE56YVc5dVgzVnBaQmdHSUFFb0NSSVpDaEZ6WlhOemFXOXVYMlYyWlc1MFgzVnBaQmdISUFFb0NSSXVDZ3BqY21WaGRHVmtYMkYwR0FnZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwMWNHUmhkR1ZrWDJGMEdBa2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJdUNnUnJhVzVrR0FvZ0FTZ09NaUF1YTI1dmQyeGxaR2RsTG5ZeExrdHViM2RzWldSblpVVjJaVzUwUzJsdVpCSWZDaEpyYm05M2JHVmtaMlZmYzJodmNuUmZhV1FZQ3lBQktBbElBSWdCQVJJVkNnaHphRzl5ZEY5cFpCZ01JQUVvQ1VnQmlBRUJFalFLQ25WellXZGxYM1I1Y0dVWURTQUJLQTR5SUM1cmJtOTNiR1ZrWjJVdWRqRXVTMjV2ZDJ4bFpHZGxWWE5oWjJWVWVYQmxRaFVLRTE5cmJtOTNiR1ZrWjJWZmMyaHZjblJmYVdSQ0N3b0pYM05vYjNKMFgybGtJdElCQ2hSTWFYTjBTMjV2ZDJ4bFpHZGxVbVZ4ZFdWemRCSU9DZ1p2Wm1aelpYUVlBU0FCS0FVU0RRb0ZiR2x0YVhRWUFpQUJLQVVTRXdvTGMyVnpjMmx2Ymw5MWFXUVlBeUFCS0FrU0ZBb0haVzVoWW14bFpCZ0VJQUVvQ0VnQWlBRUJFaG9LRW5KbFkyOXRiV1Z1WkY5MWFXUmZiR2x6ZEJnRklBTW9DUkk1Q2dwMWMyRm5aVjkwZVhCbEdBWWdBU2dPTWlBdWEyNXZkMnhsWkdkbExuWXhMa3R1YjNkc1pXUm5aVlZ6WVdkbFZIbHdaVWdCaUFFQlFnb0tDRjlsYm1GaWJHVmtRZzBLQzE5MWMyRm5aVjkwZVhCbElwMEJDaFZNYVhOMFMyNXZkMnhsWkdkbFVtVnpjRzl1YzJVU0tnb0phMjV2ZDJ4bFpHZGxHQUVnQXlnTE1oY3VhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlJJTkNnVjBiM1JoYkJnQ0lBRW9BeElRQ2dob1lYTmZibVY0ZEJnRElBRW9DQklhQ2hKeVpXTnZiVzFsYm1SZmRXbGtYMnhwYzNRWUJTQURLQWtTR3dvVGJXRjRYMnR1YjNkc1pXUm5aVjlzYVcxcGRCZ0dJQUVvQlNLRUFRb2FUR2x6ZEV0dWIzZHNaV1JuWlVWMlpXNTBjMUpsY1hWbGMzUVNEZ29HYjJabWMyVjBHQUVnQVNnRkVnMEtCV3hwYldsMEdBSWdBU2dGRWpJS0JuTjBZWFIxY3hnRElBRW9EaklpTG10dWIzZHNaV1JuWlM1Mk1TNUxibTkzYkdWa1oyVkZkbVZ1ZEZOMFlYUjFjeElUQ2d0elpYTnphVzl1WDNWcFpCZ0VJQUVvQ1NKc0NodE1hWE4wUzI1dmQyeGxaR2RsUlhabGJuUnpVbVZ6Y0c5dWMyVVNMQW9HWlhabGJuUnpHQUVnQXlnTE1od3VhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlVWMlpXNTBFZzBLQlhSdmRHRnNHQUlnQVNnREVoQUtDR2hoYzE5dVpYaDBHQU1nQVNnSUltb0tJVlZ3WkdGMFpVdHViM2RzWldSblpVVjJaVzUwVTNSaGRIVnpVbVZ4ZFdWemRCSVJDZ2xsZG1WdWRGOTFhV1FZQVNBQktBa1NNZ29HYzNSaGRIVnpHQUlnQVNnT01pSXVhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlVWMlpXNTBVM1JoZEhWeklqVUtJbFZ3WkdGMFpVdHViM2RzWldSblpVVjJaVzUwVTNSaGRIVnpVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NDTEpBUW9XUTNKbFlYUmxTMjV2ZDJ4bFpHZGxVbVZ4ZFdWemRCSVlDZ1J1WVcxbEdBRWdBU2dKUWdxNlNBZHlCUkFCR1A4QkVnOEtCMk52Ym5SbGJuUVlBaUFCS0FrU0R3b0hkSEpwWjJkbGNoZ0RJQUVvQ1JJUENnZGxibUZpYkdWa0dBUWdBU2dJRWhvS0RYSmxZMjl0YldWdVpGOTFhV1FZQlNBQktBbElBSWdCQVJJMENncDFjMkZuWlY5MGVYQmxHQVlnQVNnT01pQXVhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlZWellXZGxWSGx3WlVJUUNnNWZjbVZqYjIxdFpXNWtYM1ZwWkNKRkNoZERjbVZoZEdWTGJtOTNiR1ZrWjJWU1pYTndiMjV6WlJJcUNnbHJibTkzYkdWa1oyVVlBU0FCS0FzeUZ5NXJibTkzYkdWa1oyVXVkakV1UzI1dmQyeGxaR2RsSXRVQkNoWlZjR1JoZEdWTGJtOTNiR1ZrWjJWU1pYRjFaWE4wRWhVS0RXdHViM2RzWldSblpWOTFhV1FZQVNBQktBa1NGZ29FYm1GdFpSZ0NJQUVvQ1VJSXVrZ0ZjZ01ZL3dFU0R3b0hZMjl1ZEdWdWRCZ0RJQUVvQ1JJUENnZDBjbWxuWjJWeUdBUWdBU2dKRWhRS0IyVnVZV0pzWldRWUJTQUJLQWhJQUlnQkFSSTVDZ3AxYzJGblpWOTBlWEJsR0FZZ0FTZ09NaUF1YTI1dmQyeGxaR2RsTG5ZeExrdHViM2RzWldSblpWVnpZV2RsVkhsd1pVZ0JpQUVCUWdvS0NGOWxibUZpYkdWa1FnMEtDMTkxYzJGblpWOTBlWEJsSWtVS0YxVndaR0YwWlV0dWIzZHNaV1JuWlZKbGMzQnZibk5sRWlvS0NXdHViM2RzWldSblpSZ0JJQUVvQ3pJWExtdHViM2RzWldSblpTNTJNUzVMYm05M2JHVmtaMlVpTHdvV1JHVnNaWFJsUzI1dmQyeGxaR2RsVW1WeGRXVnpkQklWQ2cxcmJtOTNiR1ZrWjJWZmRXbGtHQUVnQVNnSklpb0tGMFJsYkdWMFpVdHViM2RzWldSblpWSmxjM0J2Ym5ObEVnOEtCM04xWTJObGMzTVlBU0FCS0FnaVJ3b2RWWEJrWVhSbFMyNXZkMnhsWkdkbFJXNWhZbXhsWkZKbGNYVmxjM1FTRlFvTmEyNXZkMnhsWkdkbFgzVnBaQmdCSUFFb0NSSVBDZ2RsYm1GaWJHVmtHQUlnQVNnSUlqRUtIbFZ3WkdGMFpVdHViM2RzWldSblpVVnVZV0pzWldSU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJSWs0S0dVZGxkRXR1YjNkc1pXUm5aVVJsZEdGcGJGSmxjWFZsYzNRU0ZRb05hMjV2ZDJ4bFpHZGxYM1ZwWkJnQklBRW9DUklhQ2hKcmJtOTNiR1ZrWjJWZmMyaHZjblJmYVdRWUFpQUJLQWtpU0FvYVIyVjBTMjV2ZDJ4bFpHZGxSR1YwWVdsc1VtVnpjRzl1YzJVU0tnb0phMjV2ZDJ4bFpHZGxHQUVnQVNnTE1oY3VhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlNMYUFRb2JWWEJrWVhSbFMyNXZkMnhsWkdkbFJYWmxiblJTWlhGMVpYTjBFaEVLQ1dWMlpXNTBYM1ZwWkJnQklBRW9DUklSQ2dSdVlXMWxHQUlnQVNnSlNBQ0lBUUVTRkFvSFkyOXVkR1Z1ZEJnRElBRW9DVWdCaUFFQkVoUUtCM1J5YVdkblpYSVlCQ0FCS0FsSUFvZ0JBUkk1Q2dwMWMyRm5aVjkwZVhCbEdBVWdBU2dPTWlBdWEyNXZkMnhsWkdkbExuWXhMa3R1YjNkc1pXUm5aVlZ6WVdkbFZIbHdaVWdEaUFFQlFnY0tCVjl1WVcxbFFnb0tDRjlqYjI1MFpXNTBRZ29LQ0Y5MGNtbG5aMlZ5UWcwS0MxOTFjMkZuWlY5MGVYQmxJa3NLSEZWd1pHRjBaVXR1YjNkc1pXUm5aVVYyWlc1MFVtVnpjRzl1YzJVU0t3b0ZaWFpsYm5RWUFTQUJLQXN5SEM1cmJtOTNiR1ZrWjJVdWRqRXVTMjV2ZDJ4bFpHZGxSWFpsYm5RaUxnb2FSMlYwUW5WcGJIUnBia3R1YjNkc1pXUm5aVkpsY1hWbGMzUVNFQW9JYzJodmNuUmZhV1FZQVNBQktBa2lTUW9iUjJWMFFuVnBiSFJwYmt0dWIzZHNaV1JuWlZKbGMzQnZibk5sRWlvS0NXdHViM2RzWldSblpSZ0JJQUVvQ3pJWExtdHViM2RzWldSblpTNTJNUzVMYm05M2JHVmtaMlVxckFFS0ZFdHViM2RzWldSblpVVjJaVzUwVTNSaGRIVnpFaVlLSWt0T1QxZE1SVVJIUlY5RlZrVk9WRjlUVkVGVVZWTmZWVTVUVUVWRFNVWkpSVVFRQUJJaUNoNUxUazlYVEVWRVIwVmZSVlpGVGxSZlUxUkJWRlZUWDFCRlRrUkpUa2NRQVJJakNoOUxUazlYVEVWRVIwVmZSVlpGVGxSZlUxUkJWRlZUWDBGRFEwVlFWRVZFRUFJU0l3b2ZTMDVQVjB4RlJFZEZYMFZXUlU1VVgxTlVRVlJWVTE5U1JVcEZRMVJGUkJBREttUUtEVXR1YjNkc1pXUm5aVXRwYm1RU0hnb2FTMDVQVjB4RlJFZEZYMHRKVGtSZlZVNVRVRVZEU1VaSlJVUVFBQklYQ2hOTFRrOVhURVZFUjBWZlMwbE9SRjlWVTBWU0VBRVNHZ29XUzA1UFYweEZSRWRGWDB0SlRrUmZRbFZKVEZSSlRoQUNLb0lCQ2hKTGJtOTNiR1ZrWjJWVmMyRm5aVlI1Y0dVU0pBb2dTMDVQVjB4RlJFZEZYMVZUUVVkRlgxUlpVRVZmVlU1VFVFVkRTVVpKUlVRUUFCSWhDaDFMVGs5WFRFVkVSMFZmVlZOQlIwVmZWRmxRUlY5VlUwVmZWMGhGVGhBQkVpTUtIMHRPVDFkTVJVUkhSVjlWVTBGSFJWOVVXVkJGWDBGTVYwRlpVMTlWVTBVUUFpcWRBUW9TUzI1dmQyeGxaR2RsUlhabGJuUkxhVzVrRWlRS0lFdE9UMWRNUlVSSFJWOUZWa1ZPVkY5TFNVNUVYMVZPVTFCRlEwbEdTVVZFRUFBU0h3b2JTMDVQVjB4RlJFZEZYMFZXUlU1VVgwdEpUa1JmUTFKRlFWUkZFQUVTSHdvYlMwNVBWMHhGUkVkRlgwVldSVTVVWDB0SlRrUmZWVkJFUVZSRkVBSVNId29iUzA1UFYweEZSRWRGWDBWV1JVNVVYMHRKVGtSZlJFVk1SVlJGRUFNeXNnZ0tFRXR1YjNkc1pXUm5aVk5sY25acFkyVVNXQW9OVEdsemRFdHViM2RzWldSblpSSWlMbXR1YjNkc1pXUm5aUzUyTVM1TWFYTjBTMjV2ZDJ4bFpHZGxVbVZ4ZFdWemRCb2pMbXR1YjNkc1pXUm5aUzUyTVM1TWFYTjBTMjV2ZDJ4bFpHZGxVbVZ6Y0c5dWMyVVNhZ29UVEdsemRFdHViM2RzWldSblpVVjJaVzUwY3hJb0xtdHViM2RzWldSblpTNTJNUzVNYVhOMFMyNXZkMnhsWkdkbFJYWmxiblJ6VW1WeGRXVnpkQm9wTG10dWIzZHNaV1JuWlM1Mk1TNU1hWE4wUzI1dmQyeGxaR2RsUlhabGJuUnpVbVZ6Y0c5dWMyVVNmd29hVlhCa1lYUmxTMjV2ZDJ4bFpHZGxSWFpsYm5SVGRHRjBkWE1TTHk1cmJtOTNiR1ZrWjJVdWRqRXVWWEJrWVhSbFMyNXZkMnhsWkdkbFJYWmxiblJUZEdGMGRYTlNaWEYxWlhOMEdqQXVhMjV2ZDJ4bFpHZGxMbll4TGxWd1pHRjBaVXR1YjNkc1pXUm5aVVYyWlc1MFUzUmhkSFZ6VW1WemNHOXVjMlVTWGdvUFEzSmxZWFJsUzI1dmQyeGxaR2RsRWlRdWEyNXZkMnhsWkdkbExuWXhMa055WldGMFpVdHViM2RzWldSblpWSmxjWFZsYzNRYUpTNXJibTkzYkdWa1oyVXVkakV1UTNKbFlYUmxTMjV2ZDJ4bFpHZGxVbVZ6Y0c5dWMyVVNYZ29QVlhCa1lYUmxTMjV2ZDJ4bFpHZGxFaVF1YTI1dmQyeGxaR2RsTG5ZeExsVndaR0YwWlV0dWIzZHNaV1JuWlZKbGNYVmxjM1FhSlM1cmJtOTNiR1ZrWjJVdWRqRXVWWEJrWVhSbFMyNXZkMnhsWkdkbFVtVnpjRzl1YzJVU1hnb1BSR1ZzWlhSbFMyNXZkMnhsWkdkbEVpUXVhMjV2ZDJ4bFpHZGxMbll4TGtSbGJHVjBaVXR1YjNkc1pXUm5aVkpsY1hWbGMzUWFKUzVyYm05M2JHVmtaMlV1ZGpFdVJHVnNaWFJsUzI1dmQyeGxaR2RsVW1WemNHOXVjMlVTY3dvV1ZYQmtZWFJsUzI1dmQyeGxaR2RsUlc1aFlteGxaQklyTG10dWIzZHNaV1JuWlM1Mk1TNVZjR1JoZEdWTGJtOTNiR1ZrWjJWRmJtRmliR1ZrVW1WeGRXVnpkQm9zTG10dWIzZHNaV1JuWlM1Mk1TNVZjR1JoZEdWTGJtOTNiR1ZrWjJWRmJtRmliR1ZrVW1WemNHOXVjMlVTWndvU1IyVjBTMjV2ZDJ4bFpHZGxSR1YwWVdsc0VpY3VhMjV2ZDJ4bFpHZGxMbll4TGtkbGRFdHViM2RzWldSblpVUmxkR0ZwYkZKbGNYVmxjM1FhS0M1cmJtOTNiR1ZrWjJVdWRqRXVSMlYwUzI1dmQyeGxaR2RsUkdWMFlXbHNVbVZ6Y0c5dWMyVVNiUW9VVlhCa1lYUmxTMjV2ZDJ4bFpHZGxSWFpsYm5RU0tTNXJibTkzYkdWa1oyVXVkakV1VlhCa1lYUmxTMjV2ZDJ4bFpHZGxSWFpsYm5SU1pYRjFaWE4wR2lvdWEyNXZkMnhsWkdkbExuWXhMbFZ3WkdGMFpVdHViM2RzWldSblpVVjJaVzUwVW1WemNHOXVjMlVTYWdvVFIyVjBRblZwYkhScGJrdHViM2RzWldSblpSSW9MbXR1YjNkc1pXUm5aUzUyTVM1SFpYUkNkV2xzZEdsdVMyNXZkMnhsWkdkbFVtVnhkV1Z6ZEJvcExtdHViM2RzWldSblpTNTJNUzVIWlhSQ2RXbHNkR2x1UzI1dmQyeGxaR2RsVW1WemNHOXVjMlZDdUFFS0VHTnZiUzVyYm05M2JHVmtaMlV1ZGpGQ0RrdHViM2RzWldSblpWQnliM1J2VUFGYVEyZHBkR3hoWWk1dGIyNXBZMkV1WTI0dmRtbGtZUzl6WkdzdlltbDZjMlZ5ZG1WeUxXZHZMbWRwZEM5cmJtOTNiR1ZrWjJVdmRqRTdhMjV2ZDJ4bFpHZGxkakdpQWdOTFdGaXFBZ3hMYm05M2JHVmtaMlV1VmpIS0FneExibTkzYkdWa1oyVmNWakhpQWhoTGJtOTNiR1ZrWjJWY1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWcxTGJtOTNiR1ZrWjJVNk9sWXhZZ1p3Y205MGJ6TSIsW1llLHRlXSksbHA9SChNcywwKSxpcD16KCJDaUpyYm05M2JHVmtaMlV2ZGpFdmEyNXZkMnhsWkdkbFgyRmtiV2x1TG5CeWIzUnZFZ3hyYm05M2JHVmtaMlV1ZGpFaU93b2FUR2x6ZEZONWMzUmxiVXR1YjNkc1pXUm5aVkpsY1hWbGMzUVNEZ29HYjJabWMyVjBHQUVnQVNnRkVnMEtCV3hwYldsMEdBSWdBU2dGSW1vS0cweHBjM1JUZVhOMFpXMUxibTkzYkdWa1oyVlNaWE53YjI1elpSSXFDZ2xyYm05M2JHVmtaMlVZQVNBREtBc3lGeTVyYm05M2JHVmtaMlV1ZGpFdVMyNXZkMnhsWkdkbEVnMEtCWFJ2ZEdGc0dBSWdBU2dERWhBS0NHaGhjMTl1WlhoMEdBTWdBU2dJSXBnQkNoeERjbVZoZEdWVGVYTjBaVzFMYm05M2JHVmtaMlZTWlhGMVpYTjBFZ3dLQkc1aGJXVVlBU0FCS0FrU0R3b0hZMjl1ZEdWdWRCZ0NJQUVvQ1JJUENnZDBjbWxuWjJWeUdBTWdBU2dKRWprS0NuVnpZV2RsWDNSNWNHVVlCQ0FCS0E0eUlDNXJibTkzYkdWa1oyVXVkakV1UzI1dmQyeGxaR2RsVlhOaFoyVlVlWEJsU0FDSUFRRkNEUW9MWDNWellXZGxYM1I1Y0dVaVN3b2RRM0psWVhSbFUzbHpkR1Z0UzI1dmQyeGxaR2RsVW1WemNHOXVjMlVTS2dvSmEyNXZkMnhsWkdkbEdBRWdBU2dMTWhjdWEyNXZkMnhsWkdkbExuWXhMa3R1YjNkc1pXUm5aU0svQWdvY1ZYQmtZWFJsVTNsemRHVnRTMjV2ZDJ4bFpHZGxVbVZ4ZFdWemRCSVZDZzFyYm05M2JHVmtaMlZmZFdsa0dBRWdBU2dKRWhFS0JHNWhiV1VZQWlBQktBbElBSWdCQVJJVUNnZGpiMjUwWlc1MEdBTWdBU2dKU0FHSUFRRVNGQW9IZEhKcFoyZGxjaGdFSUFFb0NVZ0NpQUVCRWprS0NuVnpZV2RsWDNSNWNHVVlCU0FCS0E0eUlDNXJibTkzYkdWa1oyVXVkakV1UzI1dmQyeGxaR2RsVlhOaFoyVlVlWEJsU0FPSUFRRVNHUW9NYVdSZlptOXlYMjFoYm5WekdBWWdBU2dGU0FTSUFRRVNIUW9RZFc1cGNYVmxYMmx1WTE5cGJtUmxlQmdISUFFb0JVZ0ZpQUVCUWdjS0JWOXVZVzFsUWdvS0NGOWpiMjUwWlc1MFFnb0tDRjkwY21sbloyVnlRZzBLQzE5MWMyRm5aVjkwZVhCbFFnOEtEVjlwWkY5bWIzSmZiV0Z1ZFhOQ0V3b1JYM1Z1YVhGMVpWOXBibU5mYVc1a1pYZ2lTd29kVlhCa1lYUmxVM2x6ZEdWdFMyNXZkMnhsWkdkbFVtVnpjRzl1YzJVU0tnb0phMjV2ZDJ4bFpHZGxHQUVnQVNnTE1oY3VhMjV2ZDJ4bFpHZGxMbll4TGt0dWIzZHNaV1JuWlNJMUNoeEVaV3hsZEdWVGVYTjBaVzFMYm05M2JHVmtaMlZTWlhGMVpYTjBFaFVLRFd0dWIzZHNaV1JuWlY5MWFXUVlBU0FCS0FraU1Bb2RSR1ZzWlhSbFUzbHpkR1Z0UzI1dmQyeGxaR2RsVW1WemNHOXVjMlVTRHdvSGMzVmpZMlZ6Y3hnQklBRW9DRExaQXdvVlMyNXZkMnhsWkdkbFFXUnRhVzVUWlhKMmFXTmxFbW9LRTB4cGMzUlRlWE4wWlcxTGJtOTNiR1ZrWjJVU0tDNXJibTkzYkdWa1oyVXVkakV1VEdsemRGTjVjM1JsYlV0dWIzZHNaV1JuWlZKbGNYVmxjM1FhS1M1cmJtOTNiR1ZrWjJVdWRqRXVUR2x6ZEZONWMzUmxiVXR1YjNkc1pXUm5aVkpsYzNCdmJuTmxFbkFLRlVOeVpXRjBaVk41YzNSbGJVdHViM2RzWldSblpSSXFMbXR1YjNkc1pXUm5aUzUyTVM1RGNtVmhkR1ZUZVhOMFpXMUxibTkzYkdWa1oyVlNaWEYxWlhOMEdpc3VhMjV2ZDJ4bFpHZGxMbll4TGtOeVpXRjBaVk41YzNSbGJVdHViM2RzWldSblpWSmxjM0J2Ym5ObEVuQUtGVlZ3WkdGMFpWTjVjM1JsYlV0dWIzZHNaV1JuWlJJcUxtdHViM2RzWldSblpTNTJNUzVWY0dSaGRHVlRlWE4wWlcxTGJtOTNiR1ZrWjJWU1pYRjFaWE4wR2lzdWEyNXZkMnhsWkdkbExuWXhMbFZ3WkdGMFpWTjVjM1JsYlV0dWIzZHNaV1JuWlZKbGMzQnZibk5sRW5BS0ZVUmxiR1YwWlZONWMzUmxiVXR1YjNkc1pXUm5aUklxTG10dWIzZHNaV1JuWlM1Mk1TNUVaV3hsZEdWVGVYTjBaVzFMYm05M2JHVmtaMlZTWlhGMVpYTjBHaXN1YTI1dmQyeGxaR2RsTG5ZeExrUmxiR1YwWlZONWMzUmxiVXR1YjNkc1pXUm5aVkpsYzNCdmJuTmxRcjBCQ2hCamIyMHVhMjV2ZDJ4bFpHZGxMbll4UWhOTGJtOTNiR1ZrWjJWQlpHMXBibEJ5YjNSdlVBRmFRMmRwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOXJibTkzYkdWa1oyVXZkakU3YTI1dmQyeGxaR2RsZGpHaUFnTkxXRmlxQWd4TGJtOTNiR1ZrWjJVdVZqSEtBZ3hMYm05M2JHVmtaMlZjVmpIaUFoaExibTkzYkdWa1oyVmNWakZjUjFCQ1RXVjBZV1JoZEdIcUFnMUxibTkzYkdWa1oyVTZPbFl4WWdad2NtOTBiek0iLFtNc10pLHJwPUgoaXAsMCksRnI9eigiQ2hSemNHRmpaUzkyTVM5emNHRmpaUzV3Y205MGJ4SUljM0JoWTJVdWRqRWlaZ29WVTJWMFUzQmhZMlZUZEdGMGRYTlNaWEYxWlhOMEVoTUtDM05sYzNOcGIyNWZkV2xrR0FFZ0FTZ0pFaEVLQ1dWMlpXNTBYM1ZwWkJnQ0lBRW9DUklsQ2daemRHRjBkWE1ZQXlBQktBNHlGUzV6Y0dGalpTNTJNUzVUY0dGalpWTjBZWFIxY3lJcENoWlRaWFJUY0dGalpWTjBZWFIxYzFKbGMzQnZibk5sRWc4S0IxTjFZMk5sYzNNWUFTQUJLQWdpa2dRS0QxTndZV05sVTNSaGRIVnpTVzVtYnhJcUNnWnpkR0YwZFhNWUFTQUJLQTR5RlM1emNHRmpaUzUyTVM1VGNHRmpaVk4wWVhSMWMwZ0FpQUVCRWhFS0NYTndZV05sWDNWcFpCZ0NJQUVvQ1JJUkNnbHpjR0ZqWlY5VmNtd1lBeUFCS0FrU0hnb1djSFZpYkdsemFHVmtYM1J2WDJOdmJXMTFibWwwZVJnRUlBRW9DQkpBQ2hkemRXSmZaRzl0WVdsdVgyRjFaR2wwWDNOMFlYUjFjeGdGSUFFb0RqSWFMbk53WVdObExuWXhMbE53WVdObFFYVmthWFJUZEdGMGRYTklBWWdCQVJJeENnMWtaWEJzYjNsbFpGOTBhVzFsR0FZZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklYQ2dwemRXSmZaRzl0WVdsdUdBY2dBU2dKU0FLSUFRRVNEUW9GZEdsMGJHVVlDQ0FCS0FrU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQ1NBQktBa1NFUW9KWlhabGJuUmZkV2xrR0FvZ0FTZ0pFaDBLRUhOMVlsOWtiMjFoYVc1ZllYVmthWFFZQ3lBQktBbElBNGdCQVJJckNneGhkV1JwZEY5emRHRjBkWE1ZRENBQktBNHlGUzV6Y0dGalpTNTJNUzVCZFdScGRGTjBZWFIxY3hJeENneFNhWE5yUTJGMFpXZHZjbmtZRFNBREtBNHlHeTV6Y0dGalpTNTJNUzVUY0dGalpWSnBjMnREWVhSbFoyOXllVUlKQ2dkZmMzUmhkSFZ6UWhvS0dGOXpkV0pmWkc5dFlXbHVYMkYxWkdsMFgzTjBZWFIxYzBJTkNndGZjM1ZpWDJSdmJXRnBia0lUQ2hGZmMzVmlYMlJ2YldGcGJsOWhkV1JwZENKWkNobFFZV2RsUjJWMFZYTmxjbE53WVdObGMxSmxjM0J2Ym5ObEVpMEtDbk53WVdObFgybHVabThZQWlBREtBc3lHUzV6Y0dGalpTNTJNUzVUY0dGalpWTjBZWFIxYzBsdVptOFNEUW9GZEc5MFlXd1lBeUFCS0FVaUxBb1ZSMlYwVTNCaFkyVlRkR0YwZFhOU1pYRjFaWE4wRWhNS0MzTmxjM05wYjI1ZmRXbGtHQUVnQVNnSklsOEtGa2RsZEZOd1lXTmxVM1JoZEhWelVtVnpjRzl1YzJVU0R3b0hjM1ZqWTJWemN4Z0JJQUVvQ0JJMENoRnpjR0ZqWlY5emRHRjBkWE5mYVc1bWJ4Z0NJQU1vQ3pJWkxuTndZV05sTG5ZeExsTndZV05sVTNSaGRIVnpTVzVtYnlJMUNoUlFZV2RsUjJWMFZYTmxjbE53WVdObGMxSmxjUklPQ2dadlptWnpaWFFZQVNBQktBVVNEUW9GYkdsdGFYUVlBaUFCS0FVaVBnb1ZSV1JwZEZOd1lXTmxVM1ZpUkc5dFlXbHVVbVZ4RWhFS0NYTndZV05sWDNWcFpCZ0JJQUVvQ1JJU0NncHpkV0pmWkc5dFlXbHVHQUlnQVNnSklod0tHa1ZrYVhSVGNHRmpaVk4xWWtSdmJXRnBibEpsYzNCdmJuTmxJaGtLRjBkbGRFVmthWFJUY0dGalpWTnBkR1ZEYjJSbFVtVnhJazhLSEVkbGRFVmthWFJUY0dGalpWTnBkR1ZEYjJSbFVtVnpjRzl1YzJVU0Z3b1BaV1JwZEY5emNHRmpaVjlqYjJSbEdBRWdBU2dKRWhZS0RuWmhiR2xrWDJSMWNtRjBhVzl1R0FJZ0FTZ0RJakVLSFVoaGMxTndZV05sUldScGRGQmxjbTFwYzNOcGIyNVNaWEYxWlhOMEVoQUtDSE53WVdObFgybGtHQUVnQVNnSklqSUtIa2hoYzFOd1lXTmxSV1JwZEZCbGNtMXBjM05wYjI1U1pYTndiMjV6WlJJUUNnaGpZVzVmWldScGRCZ0JJQUVvQ0NJdkNocFNaWE4wYjNKbFQzSnBaMmx1WVd4VGFYUmxVbVZ4ZFdWemRCSVJDZ2x6Y0dGalpWOTFhV1FZQVNBQktBa2lMZ29iVW1WemRHOXlaVTl5YVdkcGJtRnNVMmwwWlZKbGMzQnZibk5sRWc4S0IzTjFZMk5sYzNNWUFTQUJLQWdpUmdvYlUyRjJaVk53WVdObFUybDBaVkpoZDBSaGRHRlNaWEYxWlhOMEVoRUtDWE53WVdObFgzVnBaQmdCSUFFb0NSSVVDZ3gzWldKZmNtRjNYMlJoZEdFWUFpQUJLQWtpTHdvY1UyRjJaVk53WVdObFUybDBaVkpoZDBSaGRHRlNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUtsa0tDMU53WVdObFUzUmhkSFZ6RWhvS0ZsTlFRVU5GWDFOVVFWUlZVMTlKVGxaSlUwbENURVVRQUJJWUNoUlRVRUZEUlY5VFZFRlVWVk5mVmtsVFNVSk1SUkFCRWhRS0VGTlFRVU5GWDFOVVFWUlZVMTlDUVU0UUFpcEhDZzVUY0dGalpWTjVjMU4wWVhSMWN4SWJDaGRUVUVGRFJWOVRXVk5mVTFSQlZGVlRYMDVQVWsxQlRCQUFFaGdLRkZOUVFVTkZYMU5aVTE5VFZFRlVWVk5mUWtGT0VBRXFYUW9MUVhWa2FYUlRkR0YwZFhNU0dBb1VRVlZFU1ZSZlUxUkJWRlZUWDFCRlRrUkpUa2NRQUJJWkNoVkJWVVJKVkY5VFZFRlVWVk5mUVZCUVVrOVdSVVFRQVJJWkNoVkJWVVJKVkY5VFZFRlVWVk5mVWtWS1JVTlVSVVFRQWlxWUFRb1FVM0JoWTJWQmRXUnBkRk4wWVhSMWN4SWRDaGxUVUVGRFJWOUJWVVJKVkY5VFZFRlVWVk5mUTA5TlRVbFVFQUFTR3dvWFUxQkJRMFZmUVZWRVNWUmZVMVJCVkZWVFgxQkJVMU1RQVJJZENobFRVRUZEUlY5QlZVUkpWRjlUVkVGVVZWTmZVa1ZLUlVOVUVBSVNLUW9sVTFCQlEwVmZRVlZFU1ZSZlUxUkJWRlZUWDA1RlJVUmZUVUZPVlVGTVgxSkZWa2xGVnhBRUtwSUlDaEZUY0dGalpWSnBjMnREWVhSbFoyOXllUklsQ2lGRFQwNVVSVTVVWDFKSlUwdGZRMEZVUlVkUFVsbGZWVTVUVUVWRFNVWkpSVVFRQUJJUENndFRXVk5VUlUxZlVFRlVTQkFCRWhVS0VVTlBUVTFCVGtSZlNVNUtSVU5VU1U5T0VBSVNGZ29TVTFCRlEwbEJURjlEU0VGU1gwRkNWVk5GRUFNU0ZBb1FVa1ZUUlZKV1JVUmZTMFZaVjA5U1JCQUVFZzRLQ2tKU1FVNUVYMDVCVFVVUUJSSU5DZ2xEVDFCWlVrbEhTRlFRQmhJU0NnNURSVXhGUWxKSlZGbGZUa0ZOUlJBSEVoUUtFRkJTVDFSRlExUkZSRjlFVDAxQlNVNFFDQklPQ2dwTVJVZEJURjlTU1ZOTEVBa1NFd29QUTA5T1ZGSlBURXhGUkY5SlZFVk5FQW9TRXdvUFJrbE9RVTVEU1VGTVgwWlNRVlZFRUFzU0ZRb1JSa0ZNVTBWZlFVUldSVkpVU1ZOSlRrY1FEQklXQ2hKU1JVZEpUMDVCVEY5VFJVNVRTVlJKVmtVUURSSVNDZzVRVWs5R1FVNUpWRmxmVFVsTVJCQU9FaFlLRWxCU1QwWkJUa2xVV1Y5TlQwUkZVa0ZVUlJBUEVoUUtFRkJTVDBaQlRrbFVXVjlUUlZaRlVrVVFFQklaQ2hWRVNWTkRVa2xOU1U1QlZFbFBUbDlTUVVOSlFVd1FFUklaQ2hWRVNWTkRVa2xOU1U1QlZFbFBUbDlIUlU1RVJWSVFFaEljQ2hoRVNWTkRVa2xOU1U1QlZFbFBUbDlTUlV4SlIwbFBWVk1RRXhJV0NoSkVTVk5EVWtsTlNVNUJWRWxQVGw5QlIwVVFGQklkQ2hsRVNWTkRVa2xOU1U1QlZFbFBUbDlFU1ZOQlFrbE1TVlJaRUJVU0ZRb1JVMFZZVlVGTVgxTlZSMGRGVTFSSlZrVVFGaElUQ2c5VFJWaFZRVXhmUlZoUVRFbERTVlFRRnhJUUNneFRSVmhWUVV4ZlRVbE9UMUlRR0JJVUNoQldTVTlNUlU1RFJWOUhSVTVGVWtGTUVCa1NGQW9RVmtsUFRFVk9RMFZmUlZoVVVrVk5SUkFhRWhRS0VGWkpUMHhGVGtORlgxZEZRVkJQVGxNUUd4SVdDaEpXU1U5TVJVNURSVjlVUlZKU1QxSkpVMDBRSEJJU0NnNU5TVk5KVGtaUFVrMUJWRWxQVGhBZEVnd0tDRkJJU1ZOSVNVNUhFQjRTRVFvTlNVMVFSVkpUVDA1QlZFbFBUaEFmRWhRS0VFUkZRMFZRVkVsV1JWOUVUMDFCU1U0UUlCSVNDZzVEVlV4VVZWSkJURjlVUVVKUFR4QWhFaFFLRUUxVlRGUkpURWxPUjFWQlRGOVFWVTRRSWhJV0NoSkpUVkJNU1VOSlZGOVNSVVpGVWtWT1EwVVFJeElTQ2c1RlRVVlNSMGxPUjE5VFRFRk9SeEFrRWdnS0JGTlFRVTBRSlJJV0NoSk5SVUZPU1U1SFRFVlRVMTlUVkZKSlRrY1FKaElZQ2hSRldFTkZVMU5KVmtWZlVrVlFSVlJKVkVsUFRoQW5FaEFLREZOUVJVTkpRVXhmUTBGVFJSQW9FaElLRGtWV1FWTkpUMDVmVUVsT1dVbE9FQ2tTRndvVFJWWkJVMGxQVGw5UVNVNVpTVTVmUVVKQ1VoQXFFaGdLRkVWV1FWTkpUMDVmVFVsWVJVUmZVME5TU1ZCVUVDc1NGUW9SUlZaQlUwbFBUbDlJVDAxUFIxSkJVRWdRTEJJY0NoaEZWa0ZUU1U5T1gwTklRVkpmVWtWUVRFRkRSVTFGVGxRUUxUS0tCZ29NVTNCaFkyVlRaWEoyYVdObEVsTUtEbE5sZEZOd1lXTmxVM1JoZEhWekVoOHVjM0JoWTJVdWRqRXVVMlYwVTNCaFkyVlRkR0YwZFhOU1pYRjFaWE4wR2lBdWMzQmhZMlV1ZGpFdVUyVjBVM0JoWTJWVGRHRjBkWE5TWlhOd2IyNXpaUkpUQ2c1SFpYUlRjR0ZqWlZOMFlYUjFjeElmTG5Od1lXTmxMbll4TGtkbGRGTndZV05sVTNSaGRIVnpVbVZ4ZFdWemRCb2dMbk53WVdObExuWXhMa2RsZEZOd1lXTmxVM1JoZEhWelVtVnpjRzl1YzJVU1dBb1JVR0ZuWlVkbGRGVnpaWEpUY0dGalpYTVNIaTV6Y0dGalpTNTJNUzVRWVdkbFIyVjBWWE5sY2xOd1lXTmxjMUpsY1JvakxuTndZV05sTG5ZeExsQmhaMlZIWlhSVmMyVnlVM0JoWTJWelVtVnpjRzl1YzJVU1d3b1NSV1JwZEZOd1lXTmxVM1ZpUkc5dFlXbHVFaDh1YzNCaFkyVXVkakV1UldScGRGTndZV05sVTNWaVJHOXRZV2x1VW1WeEdpUXVjM0JoWTJVdWRqRXVSV1JwZEZOd1lXTmxVM1ZpUkc5dFlXbHVVbVZ6Y0c5dWMyVVNZUW9VUjJWMFJXUnBkRk53WVdObFUybDBaVU52WkdVU0lTNXpjR0ZqWlM1Mk1TNUhaWFJGWkdsMFUzQmhZMlZUYVhSbFEyOWtaVkpsY1JvbUxuTndZV05sTG5ZeExrZGxkRVZrYVhSVGNHRmpaVk5wZEdWRGIyUmxVbVZ6Y0c5dWMyVVNhd29XU0dGelUzQmhZMlZGWkdsMFVHVnliV2x6YzJsdmJoSW5Mbk53WVdObExuWXhMa2hoYzFOd1lXTmxSV1JwZEZCbGNtMXBjM05wYjI1U1pYRjFaWE4wR2lndWMzQmhZMlV1ZGpFdVNHRnpVM0JoWTJWRlpHbDBVR1Z5YldsemMybHZibEpsYzNCdmJuTmxFbVVLRkZOaGRtVlRjR0ZqWlZOcGRHVlNZWGRFWVhSaEVpVXVjM0JoWTJVdWRqRXVVMkYyWlZOd1lXTmxVMmwwWlZKaGQwUmhkR0ZTWlhGMVpYTjBHaVl1YzNCaFkyVXVkakV1VTJGMlpWTndZV05sVTJsMFpWSmhkMFJoZEdGU1pYTndiMjV6WlJKaUNoTlNaWE4wYjNKbFQzSnBaMmx1WVd4VGFYUmxFaVF1YzNCaFkyVXVkakV1VW1WemRHOXlaVTl5YVdkcGJtRnNVMmwwWlZKbGNYVmxjM1FhSlM1emNHRmpaUzUyTVM1U1pYTjBiM0psVDNKcFoybHVZV3hUYVhSbFVtVnpjRzl1YzJWQ21BRUtER052YlM1emNHRmpaUzUyTVVJS1UzQmhZMlZRY205MGIxQUJXanRuYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZjM0JoWTJVdmRqRTdjM0JoWTJWMk1hSUNBMU5ZV0tvQ0NGTndZV05sTGxZeHlnSUlVM0JoWTJWY1ZqSGlBaFJUY0dGalpWeFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0NWTndZV05sT2pwV01XSUdjSEp2ZEc4eiIsW3RlXSksb3A9SChGciwwKSxhcD16KCJDaHR6Y0dGalpTOTJNUzl6Y0dGalpWOXdkV0pzYVdNdWNISnZkRzhTQ0hOd1lXTmxMbll4SWlvS0ZVZGxkRk53WVdObFJHVjBZV2xzVW1WeGRXVnpkQklSQ2dsemNHRmpaVjkxYVdRWUFTQUJLQWtpbmdFS0ZrZGxkRk53WVdObFJHVjBZV2xzVW1WemNHOXVjMlVTS2dvR2MzUmhkSFZ6R0FFZ0FTZ09NaFV1YzNCaFkyVXVkakV1VTNCaFkyVlRkR0YwZFhOSUFJZ0JBUklSQ2dsemNHRmpaVjkxY213WUFpQUJLQWtTSVFvVWMybDBaVjl5WVhkZlpHRjBZVjl6TTE5MWNtd1lBeUFCS0FsSUFZZ0JBVUlKQ2dkZmMzUmhkSFZ6UWhjS0ZWOXphWFJsWDNKaGQxOWtZWFJoWDNNelgzVnliQ0kzQ2h4SFpYUkZaR2wwVTNCaFkyVlRhWFJsVkc5clpXNVNaWEYxWlhOMEVoY0tEMlZrYVhSZmMzQmhZMlZmWTI5a1pSZ0JJQUVvQ1NJMUNoMUhaWFJGWkdsMFUzQmhZMlZUYVhSbFZHOXJaVzVTWlhOd2IyNXpaUklVQ2d4aFkyTmxjM05mZEc5clpXNFlBU0FCS0FreXFBSUtFbE53WVdObFVIVmliR2xqVTJWeWRtbGpaUkpUQ2c1SFpYUlRjR0ZqWlVSbGRHRnBiQklmTG5Od1lXTmxMbll4TGtkbGRGTndZV05sUkdWMFlXbHNVbVZ4ZFdWemRCb2dMbk53WVdObExuWXhMa2RsZEZOd1lXTmxSR1YwWVdsc1VtVnpjRzl1YzJVU1V3b09SMlYwVTNCaFkyVlRkR0YwZFhNU0h5NXpjR0ZqWlM1Mk1TNUhaWFJUY0dGalpWTjBZWFIxYzFKbGNYVmxjM1FhSUM1emNHRmpaUzUyTVM1SFpYUlRjR0ZqWlZOMFlYUjFjMUpsYzNCdmJuTmxFbWdLRlVkbGRFVmthWFJUY0dGalpWTnBkR1ZVYjJ0bGJoSW1Mbk53WVdObExuWXhMa2RsZEVWa2FYUlRjR0ZqWlZOcGRHVlViMnRsYmxKbGNYVmxjM1FhSnk1emNHRmpaUzUyTVM1SFpYUkZaR2wwVTNCaFkyVlRhWFJsVkc5clpXNVNaWE53YjI1elpVS2VBUW9NWTI5dExuTndZV05sTG5ZeFFoQlRjR0ZqWlZCMVlteHBZMUJ5YjNSdlVBRmFPMmRwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOXpjR0ZqWlM5Mk1UdHpjR0ZqWlhZeG9nSURVMWhZcWdJSVUzQmhZMlV1VmpIS0FnaFRjR0ZqWlZ4V01lSUNGRk53WVdObFhGWXhYRWRRUWsxbGRHRmtZWFJoNmdJSlUzQmhZMlU2T2xZeFlnWndjbTkwYnpNIixbWWUsdGUsRnJdKSxjcD1IKGFwLDApLGRwPXooIkNocHpjR0ZqWlM5Mk1TOXpjR0ZqWlY5aFpHMXBiaTV3Y205MGJ4SUljM0JoWTJVdWRqRWlOZ29SUW14dlkydFRjR0ZqWlZKbGNYVmxjM1FTRVFvSmMzQmhZMlZmZFdsa0dBRWdBU2dKRWc0S0JuSmxiV0Z5YXhnQ0lBRW9DU0lsQ2hKQ2JHOWphMU53WVdObFVtVnpjRzl1YzJVU0R3b0hVM1ZqWTJWemN4Z0JJQUVvQ0NLQkFRb09VM0JoWTJWQ2JHOWphMGx1Wm04U0Nnb0NhV1FZQVNBQktBTVNFUW9KYzNCaFkyVmZkV2xrR0FJZ0FTZ0pFZzRLQm5KbGJXRnlheGdESUFFb0NSSVFDZ2h2Y0dWeVlYUnZjaGdFSUFFb0NSSXVDZ3BqY21WaGRHVmtYMkYwR0FVZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQ0lwQ2hSVmJtSnNiMk5yVTNCaFkyVnpVbVZ4ZFdWemRCSVJDZ2x6Y0dGalpWOTFhV1FZQVNBQktBa2lKd29VVlc1aWJHOWphMU53WVdObFVtVnpjRzl1YzJVU0R3b0hjM1ZqWTJWemN4Z0JJQUVvQ0NKeUNoVlRjR0ZqWlVKc2IyTnJUR2x6ZEZKbGNYVmxjM1FTRlFvRWNHRm5aUmdCSUFFb0JVSUh1a2dFR2dJb0FSSWNDZ2x3WVdkbFgzTnBlbVVZQWlBQktBVkNDYnBJQmhvRUdHUW9BUklXQ2dsemNHRmpaVjkxYVdRWUF5QUJLQWxJQUlnQkFVSU1DZ3BmYzNCaFkyVmZkV2xrSWxzS0ZsTndZV05sUW14dlkydE1hWE4wVW1WemNHOXVjMlVTTWdvUWMzQmhZMlZmWW14dlkydGZiR2x6ZEJnQklBTW9DeklZTG5Od1lXTmxMbll4TGxOd1lXTmxRbXh2WTJ0SmJtWnZFZzBLQlhSdmRHRnNHQUlnQVNnRElwRUNDaFpCZFdScGRGTndZV05sVTNWaVJHOXRZV2x1VW1WeEVnb0tBbWxrR0FFZ0FTZ0RFaEVLQ1hOd1lXTmxYM1ZwWkJnQ0lBRW9DUklTQ2dwemRXSmZaRzl0WVdsdUdBTWdBU2dKRWlvS0JuTjBZWFIxY3hnRUlBRW9EaklhTG5Od1lXTmxMbll4TGxOd1lXTmxRWFZrYVhSVGRHRjBkWE1TR2dvTmNtVnFaV04wWDNKbFlYTnZiaGdGSUFFb0NVZ0FpQUVCRWg0S0VXRmtaRjlpYkc5amExOWpiMjUwWlc1MEdBWWdBU2dKU0FHSUFRRVNOQW9QY21semExOWpZWFJsWjI5eWFXVnpHQWNnQXlnT01oc3VjM0JoWTJVdWRqRXVVM0JoWTJWU2FYTnJRMkYwWldkdmNubENFQW9PWDNKbGFtVmpkRjl5WldGemIyNUNGQW9TWDJGa1pGOWliRzlqYTE5amIyNTBaVzUwSWgwS0cwRjFaR2wwVTNCaFkyVlRkV0pFYjIxaGFXNVNaWE53YjI1elpTS2dBUW9kVUdGblpVZGxkRUYxWkdsMFUzQmhZMlZUZFdKRWIyMWhhVzVTWlhFU0Rnb0diMlptYzJWMEdBRWdBU2dGRWcwS0JXeHBiV2wwR0FJZ0FTZ0ZFaFlLQ1hOd1lXTmxYM1ZwWkJnRElBRW9DVWdBaUFFQkVpOEtCbk4wWVhSMWN4Z0VJQUVvRGpJYUxuTndZV05sTG5ZeExsTndZV05sUVhWa2FYUlRkR0YwZFhOSUFZZ0JBVUlNQ2dwZmMzQmhZMlZmZFdsa1Fna0tCMTl6ZEdGMGRYTWl0UU1LRjBGMVpHbDBVM0JoWTJWVGRXSkViMjFoYVc1SmJtWnZFZ29LQW1sa0dBRWdBU2dERWhFS0NYTndZV05sWDNWcFpCZ0NJQUVvQ1JJU0NncHpkV0pmWkc5dFlXbHVHQU1nQVNnSkVpb0tCbk4wWVhSMWN4Z0VJQUVvRGpJYUxuTndZV05sTG5ZeExsTndZV05sUVhWa2FYUlRkR0YwZFhNU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQlNBQktBa1NFUW9KWlhabGJuUmZkV2xrR0FZZ0FTZ0pFZzhLQjNWelpYSmZhV1FZQnlBQktBa1NMZ29LWTNKbFlYUmxaRjloZEJnSUlBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTRWdvS1lYVmthWFJ2Y2w5cFpCZ0pJQUVvQ1JJVkNnMXlaV3BsWTNSZmNtVmhjMjl1R0FvZ0FTZ0pFaTRLQ25Wd1pHRjBaV1JmWVhRWUN5QUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWpBS0RITndZV05sWDNOMFlYUjFjeGdNSUFFb0RqSVZMbk53WVdObExuWXhMbE53WVdObFUzUmhkSFZ6U0FDSUFRRVNOQW9QY21semExOWpZWFJsWjI5eWFXVnpHQTBnQXlnT01oc3VjM0JoWTJVdWRqRXVVM0JoWTJWU2FYTnJRMkYwWldkdmNubENEd29OWDNOd1lXTmxYM04wWVhSMWN5SjdDaUpRWVdkbFIyVjBRWFZrYVhSVGNHRmpaVk4xWWtSdmJXRnBibEpsYzNCdmJuTmxFa1lLRzJGMVpHbDBYM053WVdObFgzTjFZbDlrYjIxaGFXNWZhVzVtYnhnQklBTW9DekloTG5Od1lXTmxMbll4TGtGMVpHbDBVM0JoWTJWVGRXSkViMjFoYVc1SmJtWnZFZzBLQlhSdmRHRnNHQUlnQVNnRklqOEtIbEJoWjJWVGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaRkpsY1JJT0NnWnZabVp6WlhRWUFTQUJLQVVTRFFvRmJHbHRhWFFZQWlBQktBVWlYUW9qVUdGblpWTndZV05sVTNWaVJHOXRZV2x1UW14dlkydFhiM0prVW1WemNHOXVjMlVTSndvS1lteHZZMnRmZDI5eVpCZ0JJQU1vQ3pJVExuTndZV05sTG5ZeExrSnNiMk5yVjI5eVpCSU5DZ1YwYjNSaGJCZ0NJQUVvQlNLakFRb0pRbXh2WTJ0WGIzSmtFZ29LQW1sa0dBRWdBU2dGRWhJS0NtSnNiMk5yWDNkdmNtUVlBaUFCS0FrU0xnb0tZM0psWVhSbFpGOWhkQmdESUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQVNFQW9JYjNCbGNtRjBiM0lZQkNBQktBa1NOQW9QY21semExOWpZWFJsWjI5eWFXVnpHQWNnQXlnT01oc3VjM0JoWTJVdWRqRXVVM0JoWTJWU2FYTnJRMkYwWldkdmNua2lhUW9kUVdSa1UzQmhZMlZUZFdKRWIyMWhhVzVDYkc5amExZHZjbVJTWlhFU0Vnb0tZbXh2WTJ0ZmQyOXlaQmdCSUFFb0NSSTBDZzl5YVhOclgyTmhkR1ZuYjNKcFpYTVlCeUFES0E0eUd5NXpjR0ZqWlM1Mk1TNVRjR0ZqWlZKcGMydERZWFJsWjI5eWVTSXpDaDFFWld4VGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaRkpsY1JJU0NncGliRzlqYTE5M2IzSmtHQUVnQVNnSklpUUtJa0ZrWkZOd1lXTmxVM1ZpUkc5dFlXbHVRbXh2WTJ0WGIzSmtVbVZ6Y0c5dWMyVWlKQW9pUkdWc1UzQmhZMlZUZFdKRWIyMWhhVzVDYkc5amExZHZjbVJTWlhOd2IyNXpaVEs0QmdvUlUzQmhZMlZCWkcxcGJsTmxjblpwWTJVU1J3b0tRbXh2WTJ0VGNHRmpaUkliTG5Od1lXTmxMbll4TGtKc2IyTnJVM0JoWTJWU1pYRjFaWE4wR2h3dWMzQmhZMlV1ZGpFdVFteHZZMnRUY0dGalpWSmxjM0J2Ym5ObEVrNEtERlZ1WW14dlkydFRjR0ZqWlJJZUxuTndZV05sTG5ZeExsVnVZbXh2WTJ0VGNHRmpaWE5TWlhGMVpYTjBHaDR1YzNCaFkyVXVkakV1Vlc1aWJHOWphMU53WVdObFVtVnpjRzl1YzJVU1V3b09VM0JoWTJWQ2JHOWphMHhwYzNRU0h5NXpjR0ZqWlM1Mk1TNVRjR0ZqWlVKc2IyTnJUR2x6ZEZKbGNYVmxjM1FhSUM1emNHRmpaUzUyTVM1VGNHRmpaVUpzYjJOclRHbHpkRkpsYzNCdmJuTmxFbk1LR2xCaFoyVkhaWFJCZFdScGRGTndZV05sVTNWaVJHOXRZV2x1RWljdWMzQmhZMlV1ZGpFdVVHRm5aVWRsZEVGMVpHbDBVM0JoWTJWVGRXSkViMjFoYVc1U1pYRWFMQzV6Y0dGalpTNTJNUzVRWVdkbFIyVjBRWFZrYVhSVGNHRmpaVk4xWWtSdmJXRnBibEpsYzNCdmJuTmxFbDRLRTBGMVpHbDBVM0JoWTJWVGRXSkViMjFoYVc0U0lDNXpjR0ZqWlM1Mk1TNUJkV1JwZEZOd1lXTmxVM1ZpUkc5dFlXbHVVbVZ4R2lVdWMzQmhZMlV1ZGpFdVFYVmthWFJUY0dGalpWTjFZa1J2YldGcGJsSmxjM0J2Ym5ObEVuWUtHMUJoWjJWVGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaQklvTG5Od1lXTmxMbll4TGxCaFoyVlRjR0ZqWlZOMVlrUnZiV0ZwYmtKc2IyTnJWMjl5WkZKbGNSb3RMbk53WVdObExuWXhMbEJoWjJWVGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaRkpsYzNCdmJuTmxFbk1LR2tSbGJGTndZV05sVTNWaVJHOXRZV2x1UW14dlkydFhiM0prRWljdWMzQmhZMlV1ZGpFdVJHVnNVM0JoWTJWVGRXSkViMjFoYVc1Q2JHOWphMWR2Y21SU1pYRWFMQzV6Y0dGalpTNTJNUzVFWld4VGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaRkpsYzNCdmJuTmxFbk1LR2tGa1pGTndZV05sVTNWaVJHOXRZV2x1UW14dlkydFhiM0prRWljdWMzQmhZMlV1ZGpFdVFXUmtVM0JoWTJWVGRXSkViMjFoYVc1Q2JHOWphMWR2Y21SU1pYRWFMQzV6Y0dGalpTNTJNUzVCWkdSVGNHRmpaVk4xWWtSdmJXRnBia0pzYjJOclYyOXlaRkpsYzNCdmJuTmxRcDBCQ2d4amIyMHVjM0JoWTJVdWRqRkNEMU53WVdObFFXUnRhVzVRY205MGIxQUJXanRuYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZjM0JoWTJVdmRqRTdjM0JoWTJWMk1hSUNBMU5ZV0tvQ0NGTndZV05sTGxZeHlnSUlVM0JoWTJWY1ZqSGlBaFJUY0dGalpWeFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0NWTndZV05sT2pwV01XSUdjSEp2ZEc4eiIsW3RlLFllLEZyXSksc3A9SChkcCwwKSx1cD16KCJDaDloY0dsd2NtOTRlUzkyTVM5aGNHbHdjbTk0ZVY5aVlYTmxMbkJ5YjNSdkVndGhjR2x3Y205NGVTNTJNU0t4QWdvS1FYQnBSWGhoYlhCc1pSSU1DZ1J1WVcxbEdBRWdBU2dKRWc0S0JtRndhVjlwWkJnQ0lBRW9DUkl4Q2dWeGRXVnllUmdESUFNb0N6SWlMbUZ3YVhCeWIzaDVMbll4TGtGd2FVVjRZVzF3YkdVdVVYVmxjbmxGYm5SeWVSSXFDZ1JpYjJSNUdBUWdBU2dMTWhjdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxOMGNuVmpkRWdBaUFFQkVqd0tDM0JoZEdoZmNHRnlZVzF6R0FZZ0F5Z0xNaWN1WVhCcGNISnZlSGt1ZGpFdVFYQnBSWGhoYlhCc1pTNVFZWFJvVUdGeVlXMXpSVzUwY25rYUxBb0tVWFZsY25sRmJuUnllUklMQ2dOclpYa1lBU0FCS0FrU0RRb0ZkbUZzZFdVWUFpQUJLQWs2QWpnQkdqRUtEMUJoZEdoUVlYSmhiWE5GYm5SeWVSSUxDZ05yWlhrWUFTQUJLQWtTRFFvRmRtRnNkV1VZQWlBQktBazZBamdCUWdjS0JWOWliMlI1SWwwS0NVRndhVVJsZEdGcGJCSVFDZ2h6YUc5eWRGOXBaQmdCSUFFb0NSSU1DZ1J1WVcxbEdBSWdBU2dKRWd3S0JHUnZZM01ZQXlBQktBa1NFQW9JWVhCcFgyNWhiV1VZQkNBQktBa1NFQW9JZFhObFgzZG9aVzRZQlNBQktBa2l1d0lLRGtGd2FWSmxjWFZsYzNSSmJtWnZFZ3dLQkdodmMzUVlBU0FCS0FrU0RBb0VjR0YwYUJnQ0lBRW9DUklPQ2dadFpYUm9iMlFZQXlBQktBa1NTQW9QWkdWbVlYVnNkRjlvWldGa1pYSnpHQVVnQXlnTE1pOHVZWEJwY0hKdmVIa3VkakV1UVhCcFVtVnhkV1Z6ZEVsdVptOHVSR1ZtWVhWc2RFaGxZV1JsY25ORmJuUnllUkpHQ2c1a1pXWmhkV3gwWDNCaGNtRnRjeGdHSUFNb0N6SXVMbUZ3YVhCeWIzaDVMbll4TGtGd2FWSmxjWFZsYzNSSmJtWnZMa1JsWm1GMWJIUlFZWEpoYlhORmJuUnllUm8xQ2hORVpXWmhkV3gwU0dWaFpHVnljMFZ1ZEhKNUVnc0tBMnRsZVJnQklBRW9DUklOQ2dWMllXeDFaUmdDSUFFb0NUb0NPQUVhTkFvU1JHVm1ZWFZzZEZCaGNtRnRjMFZ1ZEhKNUVnc0tBMnRsZVJnQklBRW9DUklOQ2dWMllXeDFaUmdDSUFFb0NUb0NPQUVpdUFFS0IwRndhVWx1Wm04U0RBb0VibUZ0WlJnQklBRW9DUklRQ2doaGNHbGZibUZ0WlJnQ0lBRW9DUklRQ2dod2NtOTJhV1JsY2hnRElBRW9DUklRQ2doMWMyVmZkMmhsYmhnRUlBRW9DUklMQ2dOa2IyTVlCU0FCS0FrU01Rb01jbVZ4ZFdWemRGOXBibVp2R0FZZ0FTZ0xNaHN1WVhCcGNISnZlSGt1ZGpFdVFYQnBVbVZ4ZFdWemRFbHVabThTS1FvSVpYaGhiWEJzWlhNWUJ5QURLQXN5Rnk1aGNHbHdjbTk0ZVM1Mk1TNUJjR2xGZUdGdGNHeGxJcEVGQ2dsQmNHbFRaV055WlhRU01nb0pZWFYwYUY5MGVYQmxHQUVnQVNnT01oOHVZWEJwY0hKdmVIa3VkakV1UVhCcFUyVmpjbVYwTGtGMWRHaFVlWEJsRWpJS0IyRndhVjlyWlhrWUFpQUJLQXN5SVM1aGNHbHdjbTk0ZVM1Mk1TNUJjR2xUWldOeVpYUXVRWEJwUzJWNVFYVjBhQkl2Q2dWaVlYTnBZeGdESUFFb0N6SWdMbUZ3YVhCeWIzaDVMbll4TGtGd2FWTmxZM0psZEM1Q1lYTnBZMEYxZEdnU01Rb0diMkYxZEdneUdBUWdBU2dMTWlFdVlYQnBjSEp2ZUhrdWRqRXVRWEJwVTJWamNtVjBMazlCZFhSb01rRjFkR2dhT1FvS1FYQnBTMlY1UVhWMGFCSUxDZ05yWlhrWUFTQUJLQWtTREFvRWJtRnRaUmdDSUFFb0NSSVFDZ2hwYmw5eGRXVnllUmdESUFFb0NCb3ZDZ2xDWVhOcFkwRjFkR2dTRUFvSWRYTmxjbTVoYldVWUFTQUJLQWtTRUFvSWNHRnpjM2R2Y21RWUFpQUJLQWthM1FFS0NrOUJkWFJvTWtGMWRHZ1NFUW9KWTJ4cFpXNTBYMmxrR0FFZ0FTZ0pFaFVLRFdOc2FXVnVkRjl6WldOeVpYUVlBaUFCS0FrU0VRb0pkRzlyWlc1ZmRYSnNHQU1nQVNnSkVoUUtER0ZqWTJWemMxOTBiMnRsYmhnRUlBRW9DUkpJQ2d4bGVIUnlZVjl3WVhKaGJYTVlCU0FES0FzeU1pNWhjR2x3Y205NGVTNTJNUzVCY0dsVFpXTnlaWFF1VDBGMWRHZ3lRWFYwYUM1RmVIUnlZVkJoY21GdGMwVnVkSEo1R2pJS0VFVjRkSEpoVUdGeVlXMXpSVzUwY25rU0N3b0RhMlY1R0FFZ0FTZ0pFZzBLQlhaaGJIVmxHQUlnQVNnSk9nSTRBU0pzQ2doQmRYUm9WSGx3WlJJWkNoVkJWVlJJWDFSWlVFVmZWVTVUVUVWRFNVWkpSVVFRQUJJVkNoRkJWVlJJWDFSWlVFVmZRVkJKWDB0RldSQUJFaGdLRkVGVlZFaGZWRmxRUlY5Q1FWTkpRMTlCVlZSSUVBSVNGQW9RUVZWVVNGOVVXVkJGWDA5QlZWUklNaEFEUXJRQkNnOWpiMjB1WVhCcGNISnZlSGt1ZGpGQ0VVRndhWEJ5YjNoNVFtRnpaVkJ5YjNSdlVBRmFRV2RwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOWhjR2x3Y205NGVTOTJNVHRoY0dsd2NtOTRlWFl4b2dJRFFWaFlxZ0lMUVhCcGNISnZlSGt1VmpIS0FndEJjR2x3Y205NGVWeFdNZUlDRjBGd2FYQnliM2g1WEZZeFhFZFFRazFsZEdGa1lYUmg2Z0lNUVhCcGNISnZlSGs2T2xZeFlnWndjbTkwYnpNIixbSGVdKSxIcz16KCJDaHBoY0dsd2NtOTRlUzkyTVM5aGNHbHdjbTk0ZVM1d2NtOTBieElMWVhCcGNISnZlSGt1ZGpFaXJ3SUtEa05oYkd4QmNHbFNaWEYxWlhOMEVnNEtCbUZ3YVY5cFpCZ0JJQUVvQ1JJMUNnVnhkV1Z5ZVJnQ0lBTW9DekltTG1Gd2FYQnliM2g1TG5ZeExrTmhiR3hCY0dsU1pYRjFaWE4wTGxGMVpYSjVSVzUwY25rU0tnb0VZbTlrZVJnRElBRW9DeklYTG1kdmIyZHNaUzV3Y205MGIySjFaaTVUZEhKMVkzUklBSWdCQVJKQUNndHdZWFJvWDNCaGNtRnRjeGdGSUFNb0N6SXJMbUZ3YVhCeWIzaDVMbll4TGtOaGJHeEJjR2xTWlhGMVpYTjBMbEJoZEdoUVlYSmhiWE5GYm5SeWVSb3NDZ3BSZFdWeWVVVnVkSEo1RWdzS0EydGxlUmdCSUFFb0NSSU5DZ1YyWVd4MVpSZ0NJQUVvQ1RvQ09BRWFNUW9QVUdGMGFGQmhjbUZ0YzBWdWRISjVFZ3NLQTJ0bGVSZ0JJQUVvQ1JJTkNnVjJZV3gxWlJnQ0lBRW9DVG9DT0FGQ0J3b0ZYMkp2WkhraWp3RUtEME5oYkd4QmNHbFNaWE53YjI1elpSSVJDZ2xxYzI5dVgyUmhkR0VZQVNBQktBa1NLZ29FWkdGMFlSZ0NJQUVvQ3pJWExtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VGRISjFZM1JJQUlnQkFSSVJDZ1JqYjJSbEdBTWdBU2dGU0FHSUFRRVNFQW9EYlhObkdBUWdBU2dKU0FLSUFRRkNCd29GWDJSaGRHRkNCd29GWDJOdlpHVkNCZ29FWDIxelp6SlpDZzlCY0dsUWNtOTRlVk5sY25acFkyVVNSZ29IUTJGc2JFRndhUkliTG1Gd2FYQnliM2g1TG5ZeExrTmhiR3hCY0dsU1pYRjFaWE4wR2h3dVlYQnBjSEp2ZUhrdWRqRXVRMkZzYkVGd2FWSmxjM0J2Ym5ObElnQkNzQUVLRDJOdmJTNWhjR2x3Y205NGVTNTJNVUlOUVhCcGNISnZlSGxRY205MGIxQUJXa0ZuYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZZWEJwY0hKdmVIa3ZkakU3WVhCcGNISnZlSGwyTWFJQ0EwRllXS29DQzBGd2FYQnliM2g1TGxZeHlnSUxRWEJwY0hKdmVIbGNWakhpQWhkQmNHbHdjbTk0ZVZ4V01WeEhVRUpOWlhSaFpHRjBZZW9DREVGd2FYQnliM2g1T2pwV01XSUdjSEp2ZEc4eiIsW0hlXSksZ3A9SChIcywwKSxocD16KCJDaUJoY0dsd2NtOTRlUzkyTVM5aGNHbHdjbTk0ZVY5aFpHMXBiaTV3Y205MGJ4SUxZWEJwY0hKdmVIa3VkakVpalFFS0VFTnlaV0YwWlVGd2FWSmxjWFZsYzNRU0pnb0lZWEJwWDJsdVptOFlBU0FCS0FzeUZDNWhjR2x3Y205NGVTNTJNUzVCY0dsSmJtWnZFaVlLQm5ObFkzSmxkQmdDSUFFb0N6SVdMbUZ3YVhCeWIzaDVMbll4TGtGd2FWTmxZM0psZEJJcENnaGxlR0Z0Y0d4bGN4Z0RJQU1vQ3pJWExtRndhWEJ5YjNoNUxuWXhMa0Z3YVVWNFlXMXdiR1VpSXdvUlEzSmxZWFJsUVhCcFVtVnpjRzl1YzJVU0Rnb0dZWEJwWDJsa0dBRWdBU2dKSXAwQkNoQlZjR1JoZEdWQmNHbFNaWEYxWlhOMEVnNEtCbUZ3YVY5cFpCZ0JJQUVvQ1JJbUNnaGhjR2xmYVc1bWJ4Z0NJQUVvQ3pJVUxtRndhWEJ5YjNoNUxuWXhMa0Z3YVVsdVptOFNKZ29HYzJWamNtVjBHQU1nQVNnTE1oWXVZWEJwY0hKdmVIa3VkakV1UVhCcFUyVmpjbVYwRWlrS0NHVjRZVzF3YkdWekdBUWdBeWdMTWhjdVlYQnBjSEp2ZUhrdWRqRXVRWEJwUlhoaGJYQnNaU0lrQ2hGVmNHUmhkR1ZCY0dsU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJSWlJS0VFUmxiR1YwWlVGd2FWSmxjWFZsYzNRU0Rnb0dZWEJwWDJsa0dBRWdBU2dKSWlRS0VVUmxiR1YwWlVGd2FWSmxjM0J2Ym5ObEVnOEtCM04xWTJObGMzTVlBU0FCS0FnaUh3b05SMlYwUVhCcFVtVnhkV1Z6ZEJJT0NnWmhjR2xmYVdRWUFTQUJLQWtpK3dFS0RrZGxkRUZ3YVZKbGMzQnZibk5sRWc0S0JtRndhVjlwWkJnQklBRW9DUkltQ2doaGNHbGZhVzVtYnhnQ0lBRW9DeklVTG1Gd2FYQnliM2g1TG5ZeExrRndhVWx1Wm04U0pnb0djMlZqY21WMEdBTWdBU2dMTWhZdVlYQnBjSEp2ZUhrdWRqRXVRWEJwVTJWamNtVjBFaTRLQ21OeVpXRjBaV1JmWVhRWUJDQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NuVndaR0YwWldSZllYUVlCU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0Vpa0tDR1Y0WVcxd2JHVnpHQVlnQXlnTE1oY3VZWEJwY0hKdmVIa3VkakV1UVhCcFJYaGhiWEJzWlNKUkNnNU1hWE4wUVhCcFVtVnhkV1Z6ZEJJT0NnWnZabVp6WlhRWUFTQUJLQVVTRFFvRmJHbHRhWFFZQWlBQktBVVNGQW9IYTJWNWQyOXlaQmdESUFFb0NVZ0FpQUVCUWdvS0NGOXJaWGwzYjNKa0lrc0tEMHhwYzNSQmNHbFNaWE53YjI1elpSSU5DZ1YwYjNSaGJCZ0JJQUVvQlJJcENnUmhjR2x6R0FJZ0F5Z0xNaHN1WVhCcGNISnZlSGt1ZGpFdVIyVjBRWEJwVW1WemNHOXVjMlVpVlFvWVZYQmtZWFJsUVhCcFJYaGhiWEJzWlhOU1pYRjFaWE4wRWc0S0JtRndhVjlwWkJnQklBRW9DUklwQ2dobGVHRnRjR3hsY3hnQ0lBTW9DeklYTG1Gd2FYQnliM2g1TG5ZeExrRndhVVY0WVcxd2JHVWlMQW9aVlhCa1lYUmxRWEJwUlhoaGJYQnNaWE5TWlhOd2IyNXpaUklQQ2dkemRXTmpaWE56R0FFZ0FTZ0lNcjBFQ2hSQmNHbFFjbTk0ZVVGa2JXbHVVMlZ5ZG1salpSSk1DZ2xEY21WaGRHVkJjR2tTSFM1aGNHbHdjbTk0ZVM1Mk1TNURjbVZoZEdWQmNHbFNaWEYxWlhOMEdoNHVZWEJwY0hKdmVIa3VkakV1UTNKbFlYUmxRWEJwVW1WemNHOXVjMlVpQUJKTUNnbFZjR1JoZEdWQmNHa1NIUzVoY0dsd2NtOTRlUzUyTVM1VmNHUmhkR1ZCY0dsU1pYRjFaWE4wR2g0dVlYQnBjSEp2ZUhrdWRqRXVWWEJrWVhSbFFYQnBVbVZ6Y0c5dWMyVWlBQkpNQ2dsRVpXeGxkR1ZCY0drU0hTNWhjR2x3Y205NGVTNTJNUzVFWld4bGRHVkJjR2xTWlhGMVpYTjBHaDR1WVhCcGNISnZlSGt1ZGpFdVJHVnNaWFJsUVhCcFVtVnpjRzl1YzJVaUFCSkRDZ1pIWlhSQmNHa1NHaTVoY0dsd2NtOTRlUzUyTVM1SFpYUkJjR2xTWlhGMVpYTjBHaHN1WVhCcGNISnZlSGt1ZGpFdVIyVjBRWEJwVW1WemNHOXVjMlVpQUJKR0NnZE1hWE4wUVhCcEVoc3VZWEJwY0hKdmVIa3VkakV1VEdsemRFRndhVkpsY1hWbGMzUWFIQzVoY0dsd2NtOTRlUzUyTVM1TWFYTjBRWEJwVW1WemNHOXVjMlVpQUJKa0NoRlZjR1JoZEdWQmNHbEZlR0Z0Y0d4bGN4SWxMbUZ3YVhCeWIzaDVMbll4TGxWd1pHRjBaVUZ3YVVWNFlXMXdiR1Z6VW1WeGRXVnpkQm9tTG1Gd2FYQnliM2g1TG5ZeExsVndaR0YwWlVGd2FVVjRZVzF3YkdWelVtVnpjRzl1YzJVaUFCSklDZ2xRY205NGVVTmhiR3dTR3k1aGNHbHdjbTk0ZVM1Mk1TNURZV3hzUVhCcFVtVnhkV1Z6ZEJvY0xtRndhWEJ5YjNoNUxuWXhMa05oYkd4QmNHbFNaWE53YjI1elpTSUFRclVCQ2c5amIyMHVZWEJwY0hKdmVIa3VkakZDRWtGd2FYQnliM2g1UVdSdGFXNVFjbTkwYjFBQldrRm5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdllYQnBjSEp2ZUhrdmRqRTdZWEJwY0hKdmVIbDJNYUlDQTBGWVdLb0NDMEZ3YVhCeWIzaDVMbFl4eWdJTFFYQnBjSEp2ZUhsY1ZqSGlBaGRCY0dsd2NtOTRlVnhXTVZ4SFVFSk5aWFJoWkdGMFllb0NERUZ3YVhCeWIzaDVPanBXTVdJR2NISnZkRzh6IixbdXAsSHMsdGVdKSxicD1IKGhwLDApLFZwPXooIkNoNXpaWE56YVc5dUwzWXhMM05sYzNOcGIyNWZZV1J0YVc0dWNISnZkRzhTQ25ObGMzTnBiMjR1ZGpFaUlBb2VVbTlzYkdKaFkydFRaWE56YVc5dVEzSmxaR2wwYzFKbGMzQnZibk5sSWtRS0hWSnZiR3hpWVdOclUyVnpjMmx2YmtOeVpXUnBkSE5TWlhGMVpYTjBFaElLQ25ObGMzTnBiMjVmYVdRWUFTQUJLQWtTRHdvSFkzSmxaR2wwY3hnQ0lBRW9CU0pVQ2hOTWFYTjBVMlZ6YzJsdmJsSmxjM0J2Ym5ObEVpNEtDSE5sYzNOcGIyNXpHQUVnQXlnTE1od3VjMlZ6YzJsdmJpNTJNUzVCWkcxcGJsTmxjM05wYjI1SmJtWnZFZzBLQlhSdmRHRnNHQUlnQVNnRklwSUNDaEJCWkcxcGJsTmxjM05wYjI1SmJtWnZFaElLQ25ObGMzTnBiMjVmYVdRWUFTQUJLQWtTRmdvT1kyOXpkR1ZrWDJOeVpXUnBkSE1ZQWlBQktBVVNPUW9QY205c2JHSmhZMnRmYzNSaGRIVnpHQU1nQVNnT01pQXVjMlZ6YzJsdmJpNTJNUzVEY21Wa2FYUlNiMnhzWW1GamExTjBZWFIxY3hJV0NnNWliRzlqYTJWa1gzTjBZWFIxY3hnRUlBRW9DQklQQ2dkMWMyVnlYMmxrR0FVZ0FTZ0pFZzBLQldWdFlXbHNHQVlnQVNnSkVoRUtDV2x6WDNOb1lYSmxaQmdISUFFb0NCSXVDZ3BqY21WaGRHVmtYMkYwR0FnZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkljQ2hSallXNWZjbTlzYkdKaFkydGZZM0psWkdsMGN4Z0pJQUVvQlNLbUFRb1NUR2x6ZEZObGMzTnBiMjVTWlhGMVpYTjBFaFVLQkhCaFoyVVlBU0FCS0FWQ0I3cElCQm9DS0FFU0VRb0pjR0ZuWlY5emFYcGxHQUlnQVNnRkVnd0tCSFZ6WlhJWUF5QUJLQWtTRXdvTGMyVnpjMmx2Ymw5MWFXUVlCQ0FCS0FrU01nb01ZM0psWkdsMFgzSmhibWRsR0FrZ0FTZ0xNaGN1YzJWemMybHZiaTUyTVM1RGNtVmthWFJTWVc1blpVZ0FpQUVCUWc4S0RWOWpjbVZrYVhSZmNtRnVaMlVpSlFvalZYQmtZWFJsVTJWemMybHZia1psWldSaVlXTnJVM1JoZEhWelVtVnpjRzl1YzJVaWJBb2lWWEJrWVhSbFUyVnpjMmx2YmtabFpXUmlZV05yVTNSaGRIVnpVbVZ4ZFdWemRCSVRDZ3R6WlhOemFXOXVYM1ZwWkJnQklBRW9DUkl4Q2daemRHRjBkWE1ZQWlBQktBNHlJUzV6WlhOemFXOXVMbll4TGxObGMzTnBiMjVHWldWa1ltRmphMU4wWVhSMWN5SW5DaVZTYjJ4c1ltRmphMU5sYzNOcGIyNUdaV1ZrWW1GamEwTnlaV1JwZEZKbGMzQnZibk5sSWt3S0pGSnZiR3hpWVdOclUyVnpjMmx2YmtabFpXUmlZV05yUTNKbFpHbDBVbVZ4ZFdWemRCSVRDZ3R6WlhOemFXOXVYM1ZwWkJnQklBRW9DUklQQ2dkamNtVmthWFJ6R0FJZ0FTZ0ZJcmNEQ2d0VmMyVmpZWE5sU1c1bWJ4SUtDZ0pwWkJnQklBRW9BeElQQ2dkMWMyVnlYMmxrR0FJZ0FTZ0pFZzBLQldWdFlXbHNHQU1nQVNnSkVnOEtCMk52Ym5SbGJuUVlCQ0FCS0FrU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQlNBQktBa1NGUW9OYzJodmQxOW9iMjFsY0dGblpSZ0dJQUVvQ0JJV0NnNXZjbVJsY2w5b2IyMWxjR0ZuWlJnSElBRW9CUklVQ2d4emFHOTNYM1Z6WldOaGMyVVlDQ0FCS0FnU0ZRb05iM0prWlhKZmRYTmxZMkZ6WlJnSklBRW9CUklwQ2daemRHRjBkWE1ZQ2lBQktBNHlHUzV6WlhOemFXOXVMbll4TGxWelpXTmhjMlZUZEdGMGRYTVNEZ29HY21WdFlYSnJHQXNnQVNnSkVpa0tCbk52ZFhKalpSZ01JQUVvRGpJWkxuTmxjM05wYjI0dWRqRXVVMlZ6YzJsdmJsTnZkWEpqWlJJY0NoUnpaWE56YVc5dVgyWnliMjFmZFhObGNsOXBaQmdOSUFFb0NSSXVDZ3BqY21WaGRHVmtYMkYwR0E0Z0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQkl1Q2dwMWNHUmhkR1ZrWDJGMEdBOGdBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJV0NnNXNZVzVuZFdGblpWOW5jbTkxY0JnUUlBRW9DU0xZQXdvU1RHbHpkRlZ6WldOaGMyVlNaWEYxWlhOMEVoVUtCSEJoWjJVWUFTQUJLQVZDQjdwSUJCb0NLQUVTSEFvSmNHRm5aVjl6YVhwbEdBSWdBU2dGUWdtNlNBWWFCQmhrS0FFU0ZBb0hkWE5sY2w5cFpCZ0RJQUVvQ1VnQWlBRUJFaElLQldWdFlXbHNHQVFnQVNnSlNBR0lBUUVTR2dvTmMyaHZkMTlvYjIxbGNHRm5aUmdGSUFFb0NFZ0NpQUVCRWhrS0RITm9iM2RmZFhObFkyRnpaUmdHSUFFb0NFZ0RpQUVCRWk0S0MzTjBZWFIxYzE5c2FYTjBHQWNnQXlnT01oa3VjMlZ6YzJsdmJpNTJNUzVWYzJWallYTmxVM1JoZEhWekVpNEtCbk52ZFhKalpSZ0lJQUVvRGpJWkxuTmxjM05wYjI0dWRqRXVVMlZ6YzJsdmJsTnZkWEpqWlVnRWlBRUJFaUVLRkhObGMzTnBiMjVmWm5KdmJWOTFjMlZ5WDJsa0dBa2dBU2dKU0FXSUFRRVNHd29PYkdGdVozVmhaMlZmWjNKdmRYQVlDaUFCS0FsSUJvZ0JBUkljQ2hSdGRYTjBYM2RwZEdoZmMyVnpjMmx2Ymw5cFpCZ0xJQUVvQ0VJS0NnaGZkWE5sY2w5cFpFSUlDZ1pmWlcxaGFXeENFQW9PWDNOb2IzZGZhRzl0WlhCaFoyVkNEd29OWDNOb2IzZGZkWE5sWTJGelpVSUpDZ2RmYzI5MWNtTmxRaGNLRlY5elpYTnphVzl1WDJaeWIyMWZkWE5sY2w5cFpFSVJDZzlmYkdGdVozVmhaMlZmWjNKdmRYQWlUd29UVEdsemRGVnpaV05oYzJWU1pYTndiMjV6WlJJcENnaDFjMlZqWVhObGN4Z0JJQU1vQ3pJWExuTmxjM05wYjI0dWRqRXVWWE5sWTJGelpVbHVabThTRFFvRmRHOTBZV3dZQWlBQktBTWlsd1FLRkZWd1pHRjBaVlZ6WldOaGMyVlNaWEYxWlhOMEVoc0tDblZ6WldOaGMyVmZhV1FZQVNBQktBTkNCN3BJQkNJQ0lBQVNHQW9MYzJWemMybHZibDkxYVdRWUFpQUJLQWxJQUlnQkFSSWFDZzF6YUc5M1gyaHZiV1Z3WVdkbEdBTWdBU2dJU0FHSUFRRVNHd29PYjNKa1pYSmZhRzl0WlhCaFoyVVlCQ0FCS0FWSUFvZ0JBUklaQ2d4emFHOTNYM1Z6WldOaGMyVVlCU0FCS0FoSUE0Z0JBUklhQ2cxdmNtUmxjbDkxYzJWallYTmxHQVlnQVNnRlNBU0lBUUVTRXdvR2NtVnRZWEpyR0FjZ0FTZ0pTQVdJQVFFU0xnb0djM1JoZEhWekdBZ2dBU2dPTWhrdWMyVnpjMmx2Ymk1Mk1TNVZjMlZqWVhObFUzUmhkSFZ6U0FhSUFRRVNMZ29HYzI5MWNtTmxHQWtnQVNnT01oa3VjMlZ6YzJsdmJpNTJNUzVUWlhOemFXOXVVMjkxY21ObFNBZUlBUUVTSVFvVWMyVnpjMmx2Ymw5bWNtOXRYM1Z6WlhKZmFXUVlDaUFCS0FsSUNJZ0JBUkliQ2c1c1lXNW5kV0ZuWlY5bmNtOTFjQmdMSUFFb0NVZ0ppQUVCUWc0S0RGOXpaWE56YVc5dVgzVnBaRUlRQ2c1ZmMyaHZkMTlvYjIxbGNHRm5aVUlSQ2c5ZmIzSmtaWEpmYUc5dFpYQmhaMlZDRHdvTlgzTm9iM2RmZFhObFkyRnpaVUlRQ2c1ZmIzSmtaWEpmZFhObFkyRnpaVUlKQ2dkZmNtVnRZWEpyUWdrS0IxOXpkR0YwZFhOQ0NRb0hYM052ZFhKalpVSVhDaFZmYzJWemMybHZibDltY205dFgzVnpaWEpmYVdSQ0VRb1BYMnhoYm1kMVlXZGxYMmR5YjNWd0loY0tGVlZ3WkdGMFpWVnpaV05oYzJWU1pYTndiMjV6WlNLMkFRb1NRbXh2WTJ0bFpGTmxjM05wYjI1SmJtWnZFZ29LQW1sa0dBRWdBU2dERWhNS0MzTmxjM05wYjI1ZmRXbGtHQUlnQVNnSkVnOEtCM1Z6WlhKZmFXUVlBeUFCS0FrU0Rnb0djbVZoYzI5dUdBUWdBU2dKRWk0S0NtTnlaV0YwWldSZllYUVlCU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQmlBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdJcDBCQ2hwTWFYTjBRbXh2WTJ0bFpGTmxjM05wYjI1elVtVnhkV1Z6ZEJJVkNnUndZV2RsR0FFZ0FTZ0ZRZ2U2U0FRYUFpZ0JFaHdLQ1hCaFoyVmZjMmw2WlJnQ0lBRW9CVUlKdWtnR0dnUVlaQ2dCRWhnS0MzTmxjM05wYjI1ZmRXbGtHQU1nQVNnSlNBQ0lBUUVTRkFvSGRYTmxjbDlwWkJnRUlBRW9DVWdCaUFFQlFnNEtERjl6WlhOemFXOXVYM1ZwWkVJS0NnaGZkWE5sY2w5cFpDSm1DaHRNYVhOMFFteHZZMnRsWkZObGMzTnBiMjV6VW1WemNHOXVjMlVTT0FvUVlteHZZMnRsWkY5elpYTnphVzl1Y3hnQklBTW9DekllTG5ObGMzTnBiMjR1ZGpFdVFteHZZMnRsWkZObGMzTnBiMjVKYm1adkVnMEtCWFJ2ZEdGc0dBSWdBU2dESW5NS0gxVndaR0YwWlZObGMzTnBiMjVDYkc5amExTjBZWFIxYzFKbGNYVmxjM1FTSEFvTGMyVnpjMmx2Ymw5MWFXUVlBU0FCS0FsQ0I3cElCSElDRUFFU0Vnb0thWE5mWW14dlkydGxaQmdDSUFFb0NCSVRDZ1p5WldGemIyNFlBeUFCS0FsSUFJZ0JBVUlKQ2dkZmNtVmhjMjl1SWlJS0lGVndaR0YwWlZObGMzTnBiMjVDYkc5amExTjBZWFIxYzFKbGMzQnZibk5sSWhzS0dVZGxkRTVsZDFObGMzTnBiMjVNYVcxcGRGSmxjWFZsYzNRaU1Bb1BUbVYzVTJWemMybHZia052ZFc1MEVnNEtCbTFwYm5WMFpSZ0JJQUVvQ1JJTkNnVmpiM1Z1ZEJnQ0lBRW9BeUtLQVFvYVIyVjBUbVYzVTJWemMybHZia3hwYldsMFVtVnpjRzl1YzJVU0d3b1RibVYzWDNObGMzTnBiMjVmY0dWeVgyMXBiaGdCSUFFb0F4SVdDZzUzYUdsMFpWOTFjMlZ5WDJsa2N4Z0NJQU1vQ1JJM0NoSnVaWGRmYzJWemMybHZibDlqYjNWdWRITVlBeUFES0FzeUd5NXpaWE56YVc5dUxuWXhMazVsZDFObGMzTnBiMjVEYjNWdWRDSlFDaHhWY0dSaGRHVk9aWGRUWlhOemFXOXVUR2x0YVhSU1pYRjFaWE4wRWhzS0UyNWxkMTl6WlhOemFXOXVYM0JsY2w5dGFXNFlBU0FCS0FNU0V3b0xkMmhwZEdWZmRYTmxjbk1ZQWlBREtBa2lId29kVlhCa1lYUmxUbVYzVTJWemMybHZia3hwYldsMFVtVnpjRzl1YzJVaUZRb1RSMlYwVVhWbGRXVkpibVp2VW1WeGRXVnpkQ0psQ2dsUmRXVjFaVWx1Wm04U0tRb0tjWFZsZFdWZmRIbHdaUmdCSUFFb0RqSVZMbk5sYzNOcGIyNHVkakV1VVhWbGRXVlVlWEJsRWhRS0RIRjFaWFZsWDJ4bGJtZDBhQmdDSUFFb0F4SVhDZzl0WVhoZlkyOXVZM1Z5Y21WdVkyVVlBeUFCS0FNaU1Rb1BVWFZsZFdWRGIyNW1hV2RKYm1adkVoNEtGbWRzYjJKaGJGOXRZWGhmWTI5dVkzVnljbVZ1WTJVWUFTQUJLQU1pZEFvVVIyVjBVWFZsZFdWSmJtWnZVbVZ6Y0c5dWMyVVNLUW9LY1hWbGRXVmZhVzVtYnhnQklBTW9DeklWTG5ObGMzTnBiMjR1ZGpFdVVYVmxkV1ZKYm1adkVqRUtESEYxWlhWbFgyTnZibVpwWnhnQ0lBRW9DekliTG5ObGMzTnBiMjR1ZGpFdVVYVmxkV1ZEYjI1bWFXZEpibVp2SW13S0hWTmxkRkYxWlhWbFRXRjRRMjl1WTNWeWNtVnVZMlZTWlhGMVpYTjBFaWtLQ25GMVpYVmxYM1I1Y0dVWUFTQUJLQTR5RlM1elpYTnphVzl1TG5ZeExsRjFaWFZsVkhsd1pSSWdDZzl0WVhoZlkyOXVZM1Z5Y21WdVkyVVlBaUFCS0FOQ0I3cElCQ0lDSUFBaVV3b2VVMlYwVVhWbGRXVk5ZWGhEYjI1amRYSnlaVzVqWlZKbGMzQnZibk5sRWpFS0RIRjFaWFZsWDJOdmJtWnBaeGdCSUFFb0N6SWJMbk5sYzNOcGIyNHVkakV1VVhWbGRXVkRiMjVtYVdkSmJtWnZJa2tLSGxObGRFZHNiMkpoYkUxaGVFTnZibU4xY25KbGJtTmxVbVZ4ZFdWemRCSW5DaFpuYkc5aVlXeGZiV0Y0WDJOdmJtTjFjbkpsYm1ObEdBRWdBU2dEUWdlNlNBUWlBaUFBSWxRS0gxTmxkRWRzYjJKaGJFMWhlRU52Ym1OMWNuSmxibU5sVW1WemNHOXVjMlVTTVFvTWNYVmxkV1ZmWTI5dVptbG5HQUVnQVNnTE1oc3VjMlZ6YzJsdmJpNTJNUzVSZFdWMVpVTnZibVpwWjBsdVptOGlQZ29SUTJ4bFlYSlJkV1YxWlZKbGNYVmxjM1FTS1FvS2NYVmxkV1ZmZEhsd1pSZ0JJQUVvRGpJVkxuTmxjM05wYjI0dWRqRXVVWFZsZFdWVWVYQmxJbDRLRWtOc1pXRnlVWFZsZFdWU1pYTndiMjV6WlJJVkNnMTBZWE5yYzE5eVpXMXZkbVZrR0FFZ0FTZ0RFakVLREhGMVpYVmxYMk52Ym1acFp4Z0NJQUVvQ3pJYkxuTmxjM05wYjI0dWRqRXVVWFZsZFdWRGIyNW1hV2RKYm1adkltRUtKVUpoZEdOb1ZYQmtZWFJsVVhWbGRXVk5ZWGhEYjI1amRYSnlaVzVqWlZKbGNYVmxjM1FTT0FvTmNYVmxkV1ZmZFhCa1lYUmxjeGdCSUFNb0N6SVhMbk5sYzNOcGIyNHVkakV1VVhWbGRXVlZjR1JoZEdWQ0NMcElCWklCQWdnQklsb0tDMUYxWlhWbFZYQmtZWFJsRWlrS0NuRjFaWFZsWDNSNWNHVVlBU0FCS0E0eUZTNXpaWE56YVc5dUxuWXhMbEYxWlhWbFZIbHdaUklnQ2c5dFlYaGZZMjl1WTNWeWNtVnVZMlVZQWlBQktBTkNCN3BJQkNJQ0lBQWlVd29tUW1GMFkyaFZjR1JoZEdWUmRXVjFaVTFoZUVOdmJtTjFjbkpsYm1ObFVtVnpjRzl1YzJVU0tRb0tjWFZsZFdWZmFXNW1ieGdCSUFNb0N6SVZMbk5sYzNOcGIyNHVkakV1VVhWbGRXVkpibVp2SWhrS0YwZGxkRkYxWlhWbFUyVjBkR2x1WjNOU1pYRjFaWE4wSW5vS0RGRjFaWFZsVTJWMGRHbHVaeElwQ2dweGRXVjFaVjkwZVhCbEdBRWdBU2dPTWhVdWMyVnpjMmx2Ymk1Mk1TNVJkV1YxWlZSNWNHVVNKZ29lWTI5dWMzVnRjSFJwYjI1ZmMzQmxaV1JmZEdGemExOXdaWEpmYldsdUdBSWdBU2dCRWhjS0QyMWhlRjkzWVdsMGFXNW5YMjFwYmhnRElBRW9CU0pNQ2hoSFpYUlJkV1YxWlZObGRIUnBibWR6VW1WemNHOXVjMlVTTUFvT2NYVmxkV1ZmYzJWMGRHbHVaM01ZQVNBREtBc3lHQzV6WlhOemFXOXVMbll4TGxGMVpYVmxVMlYwZEdsdVp5SkxDaGRUWlhSUmRXVjFaVk5sZEhScGJtZHpVbVZ4ZFdWemRCSXdDZzV4ZFdWMVpWOXpaWFIwYVc1bmN4Z0JJQU1vQ3pJWUxuTmxjM05wYjI0dWRqRXVVWFZsZFdWVFpYUjBhVzVuSWhvS0dGTmxkRkYxWlhWbFUyVjBkR2x1WjNOU1pYTndiMjV6WlNLWEF3b2FUR2x6ZEZObGMzTnBiMjVHWldWa1ltRmphMUpsY1hWbGMzUVNGUW9FY0dGblpSZ0JJQUVvQlVJSHVrZ0VHZ0lvQVJJY0NnbHdZV2RsWDNOcGVtVVlBaUFCS0FWQ0NicElCaG9FR0dRb0JSSU5DZ1Z6WTI5eVpSZ0RJQU1vQlJJTUNnUjFjMlZ5R0FRZ0FTZ0pFaE1LQzNObGMzTnBiMjVmZFdsa0dBVWdBU2dKRWpZS0JuTjBZWFIxY3hnR0lBRW9EakloTG5ObGMzTnBiMjR1ZGpFdVUyVnpjMmx2YmtabFpXUmlZV05yVTNSaGRIVnpTQUNJQVFFU0h3b1NZV3hzYjNkZlkyOXNiR1ZqZEY5cGJtWnZHQWNnQVNnSVNBR0lBUUVTUGdvUGNtOXNiR0poWTJ0ZmMzUmhkSFZ6R0FnZ0FTZ09NaUF1YzJWemMybHZiaTUyTVM1RGNtVmthWFJTYjJ4c1ltRmphMU4wWVhSMWMwZ0NpQUVCRWpJS0RHTnlaV1JwZEY5eVlXNW5aUmdKSUFFb0N6SVhMbk5sYzNOcGIyNHVkakV1UTNKbFpHbDBVbUZ1WjJWSUE0Z0JBVUlKQ2dkZmMzUmhkSFZ6UWhVS0UxOWhiR3h2ZDE5amIyeHNaV04wWDJsdVptOUNFZ29RWDNKdmJHeGlZV05yWDNOMFlYUjFjMElQQ2cxZlkzSmxaR2wwWDNKaGJtZGxJa0VLQzBOeVpXUnBkRkpoYm1kbEVoQUtBMjFwYmhnQklBRW9CVWdBaUFFQkVoQUtBMjFoZUJnQ0lBRW9CVWdCaUFFQlFnWUtCRjl0YVc1Q0Jnb0VYMjFoZUNKYkNodE1hWE4wVTJWemMybHZia1psWldSaVlXTnJVbVZ6Y0c5dWMyVVNMUW9JWm1WbFpHSmhZMnNZQVNBREtBc3lHeTV6WlhOemFXOXVMbll4TGxObGMzTnBiMjVHWldWa1ltRmpheElOQ2dWMGIzUmhiQmdDSUFFb0F5Sy9Bd29QVTJWemMybHZia1psWldSaVlXTnJFZzBLQlhOamIzSmxHQUVnQVNnRkVnOEtCMk52Ym5SbGJuUVlBaUFCS0FrU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQXlBQktBa1NHZ29TWVd4c2IzZGZZMjlzYkdWamRGOXBibVp2R0FRZ0FTZ0lFakVLQm5OMFlYUjFjeGdGSUFFb0RqSWhMbk5sYzNOcGIyNHVkakV1VTJWemMybHZia1psWldSaVlXTnJVM1JoZEhWekVnOEtCM1Z6WlhKZmFXUVlCaUFCS0FrU0VRb0pkWE5sY2w5dVlXMWxHQWNnQVNnSkVnMEtCV1Z0WVdsc0dBZ2dBU2dKRWk0S0NtTnlaV0YwWldSZllYUVlDU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQ2lBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaFlLQ1dselgzTm9ZWEpsWkJnTElBRW9DRWdBaUFFQkVqa0tEM0p2Ykd4aVlXTnJYM04wWVhSMWN4Z01JQUVvRGpJZ0xuTmxjM05wYjI0dWRqRXVRM0psWkdsMFVtOXNiR0poWTJ0VGRHRjBkWE1TRmdvT1kyOXpkR1ZrWDJOeVpXUnBkSE1ZRFNBQktBVVNIQW9VWTJGdVgzSnZiR3hpWVdOclgyTnlaV1JwZEhNWURpQUJLQVZDREFvS1gybHpYM05vWVhKbFpDSXVDaGRUYVdkdVlYUjFjbVZUWlhOemFXOXVVbVZ4ZFdWemRCSVRDZ3R6WlhOemFXOXVYM1ZwWkJnQklBRW9DU0lwQ2hoVGFXZHVZWFIxY21WVFpYTnphVzl1VW1WemNHOXVjMlVTRFFvRmRHOXJaVzRZQVNBQktBa3FlZ29OVlhObFkyRnpaVk4wWVhSMWN4SWVDaHBWVTBWRFFWTkZYMU5VUVZSVlUxOVZUbE5RUlVOSlJrbEZSQkFBRWhjS0UxVlRSVU5CVTBWZlUxUkJWRlZUWDFCQlUxTVFBUklYQ2hOVlUwVkRRVk5GWDFOVVFWUlZVMTlFUlU1WkVBSVNGd29UVlZORlEwRlRSVjlUVkVGVVZWTmZWRTlFVHhBREttVUtEVk5sYzNOcGIyNVRiM1Z5WTJVU0hnb2FVMFZUVTBsUFRsOVRUMVZTUTBWZlZVNVRVRVZEU1VaSlJVUVFBQklYQ2hOVFJWTlRTVTlPWDFOUFZWSkRSVjlWVTBWU0VBRVNHd29YVTBWVFUwbFBUbDlUVDFWU1EwVmZUMFpHU1VOSlFVd1FBaXFYQVFvSlVYVmxkV1ZVZVhCbEVob0tGbEZWUlZWRlgxUlpVRVZmVlU1VFVFVkRTVVpKUlVRUUFCSVNDZzVSVlVWVlJWOVVXVkJGWDBGTVRCQUJFaFlLRWxGVlJWVkZYMVJaVUVWZlJFVkdRVlZNVkJBQ0VoSUtEbEZWUlZWRlgxUlpVRVZmVmtsUUVBTVNGUW9SVVZWRlZVVmZWRmxRUlY5Q1ZVWkdSVklRQkJJWENoTlJWVVZWUlY5VVdWQkZYMFZFVlY5VVJVRk5FQVVxWUFvVVEzSmxaR2wwVW05c2JHSmhZMnRUZEdGMGRYTVNJZ29lUTFKRlJFbFVYMUpQVEV4Q1FVTkxYMU5VUVZSVlUxOVFSVTVFU1U1SEVBQVNKQW9nUTFKRlJFbFVYMUpQVEV4Q1FVTkxYMU5VUVZSVlUxOVFVazlEUlZOVFJVUVFBU3F1QVFvVlUyVnpjMmx2YmtabFpXUmlZV05yVTNSaGRIVnpFaU1LSDFORlUxTkpUMDVmUmtWRlJFSkJRMHRmVTFSQlZGVlRYMUJGVGtSSlRrY1FBQkltQ2lKVFJWTlRTVTlPWDBaRlJVUkNRVU5MWDFOVVFWUlZVMTlRVWs5RFJWTlRTVTVIRUFFU0pBb2dVMFZUVTBsUFRsOUdSVVZFUWtGRFMxOVRWRUZVVlZOZlVrVlRUMHhXUlVRUUFoSWlDaDVUUlZOVFNVOU9YMFpGUlVSQ1FVTkxYMU5VUVZSVlUxOURURTlUUlVRUUF6TEpEd29UVTJWemMybHZia0ZrYldsdVUyVnlkbWxqWlJKT0NndE1hWE4wVlhObFkyRnpaUkllTG5ObGMzTnBiMjR1ZGpFdVRHbHpkRlZ6WldOaGMyVlNaWEYxWlhOMEdoOHVjMlZ6YzJsdmJpNTJNUzVNYVhOMFZYTmxZMkZ6WlZKbGMzQnZibk5sRWxRS0RWVndaR0YwWlZWelpXTmhjMlVTSUM1elpYTnphVzl1TG5ZeExsVndaR0YwWlZWelpXTmhjMlZTWlhGMVpYTjBHaUV1YzJWemMybHZiaTUyTVM1VmNHUmhkR1ZWYzJWallYTmxVbVZ6Y0c5dWMyVVNaZ29UVEdsemRFSnNiMk5yWldSVFpYTnphVzl1Y3hJbUxuTmxjM05wYjI0dWRqRXVUR2x6ZEVKc2IyTnJaV1JUWlhOemFXOXVjMUpsY1hWbGMzUWFKeTV6WlhOemFXOXVMbll4TGt4cGMzUkNiRzlqYTJWa1UyVnpjMmx2Ym5OU1pYTndiMjV6WlJKMUNoaFZjR1JoZEdWVFpYTnphVzl1UW14dlkydFRkR0YwZFhNU0t5NXpaWE56YVc5dUxuWXhMbFZ3WkdGMFpWTmxjM05wYjI1Q2JHOWphMU4wWVhSMWMxSmxjWFZsYzNRYUxDNXpaWE56YVc5dUxuWXhMbFZ3WkdGMFpWTmxjM05wYjI1Q2JHOWphMU4wWVhSMWMxSmxjM0J2Ym5ObEVtTUtFa2RsZEU1bGQxTmxjM05wYjI1TWFXMXBkQklsTG5ObGMzTnBiMjR1ZGpFdVIyVjBUbVYzVTJWemMybHZia3hwYldsMFVtVnhkV1Z6ZEJvbUxuTmxjM05wYjI0dWRqRXVSMlYwVG1WM1UyVnpjMmx2Ymt4cGJXbDBVbVZ6Y0c5dWMyVVNiQW9WVlhCa1lYUmxUbVYzVTJWemMybHZia3hwYldsMEVpZ3VjMlZ6YzJsdmJpNTJNUzVWY0dSaGRHVk9aWGRUWlhOemFXOXVUR2x0YVhSU1pYRjFaWE4wR2lrdWMyVnpjMmx2Ymk1Mk1TNVZjR1JoZEdWT1pYZFRaWE56YVc5dVRHbHRhWFJTWlhOd2IyNXpaUkpSQ2d4SFpYUlJkV1YxWlVsdVptOFNIeTV6WlhOemFXOXVMbll4TGtkbGRGRjFaWFZsU1c1bWIxSmxjWFZsYzNRYUlDNXpaWE56YVc5dUxuWXhMa2RsZEZGMVpYVmxTVzVtYjFKbGMzQnZibk5sRW04S0ZsTmxkRkYxWlhWbFRXRjRRMjl1WTNWeWNtVnVZMlVTS1M1elpYTnphVzl1TG5ZeExsTmxkRkYxWlhWbFRXRjRRMjl1WTNWeWNtVnVZMlZTWlhGMVpYTjBHaW91YzJWemMybHZiaTUyTVM1VFpYUlJkV1YxWlUxaGVFTnZibU4xY25KbGJtTmxVbVZ6Y0c5dWMyVVNjZ29YVTJWMFIyeHZZbUZzVFdGNFEyOXVZM1Z5Y21WdVkyVVNLaTV6WlhOemFXOXVMbll4TGxObGRFZHNiMkpoYkUxaGVFTnZibU4xY25KbGJtTmxVbVZ4ZFdWemRCb3JMbk5sYzNOcGIyNHVkakV1VTJWMFIyeHZZbUZzVFdGNFEyOXVZM1Z5Y21WdVkyVlNaWE53YjI1elpSS0hBUW9lUW1GMFkyaFZjR1JoZEdWUmRXVjFaVTFoZUVOdmJtTjFjbkpsYm1ObEVqRXVjMlZ6YzJsdmJpNTJNUzVDWVhSamFGVndaR0YwWlZGMVpYVmxUV0Y0UTI5dVkzVnljbVZ1WTJWU1pYRjFaWE4wR2pJdWMyVnpjMmx2Ymk1Mk1TNUNZWFJqYUZWd1pHRjBaVkYxWlhWbFRXRjRRMjl1WTNWeWNtVnVZMlZTWlhOd2IyNXpaUkpMQ2dwRGJHVmhjbEYxWlhWbEVoMHVjMlZ6YzJsdmJpNTJNUzVEYkdWaGNsRjFaWFZsVW1WeGRXVnpkQm9lTG5ObGMzTnBiMjR1ZGpFdVEyeGxZWEpSZFdWMVpWSmxjM0J2Ym5ObEVsMEtFRWRsZEZGMVpYVmxVMlYwZEdsdVozTVNJeTV6WlhOemFXOXVMbll4TGtkbGRGRjFaWFZsVTJWMGRHbHVaM05TWlhGMVpYTjBHaVF1YzJWemMybHZiaTUyTVM1SFpYUlJkV1YxWlZObGRIUnBibWR6VW1WemNHOXVjMlVTWFFvUVUyVjBVWFZsZFdWVFpYUjBhVzVuY3hJakxuTmxjM05wYjI0dWRqRXVVMlYwVVhWbGRXVlRaWFIwYVc1bmMxSmxjWFZsYzNRYUpDNXpaWE56YVc5dUxuWXhMbE5sZEZGMVpYVmxVMlYwZEdsdVozTlNaWE53YjI1elpSSm1DaE5NYVhOMFUyVnpjMmx2YmtabFpXUmlZV05yRWlZdWMyVnpjMmx2Ymk1Mk1TNU1hWE4wVTJWemMybHZia1psWldSaVlXTnJVbVZ4ZFdWemRCb25Mbk5sYzNOcGIyNHVkakV1VEdsemRGTmxjM05wYjI1R1pXVmtZbUZqYTFKbGMzQnZibk5sRWs0S0MweHBjM1JUWlhOemFXOXVFaDR1YzJWemMybHZiaTUyTVM1TWFYTjBVMlZ6YzJsdmJsSmxjWFZsYzNRYUh5NXpaWE56YVc5dUxuWXhMa3hwYzNSVFpYTnphVzl1VW1WemNHOXVjMlVTYndvV1VtOXNiR0poWTJ0VFpYTnphVzl1UTNKbFpHbDBjeElwTG5ObGMzTnBiMjR1ZGpFdVVtOXNiR0poWTJ0VFpYTnphVzl1UTNKbFpHbDBjMUpsY1hWbGMzUWFLaTV6WlhOemFXOXVMbll4TGxKdmJHeGlZV05yVTJWemMybHZia055WldScGRITlNaWE53YjI1elpSS0VBUW9kVW05c2JHSmhZMnRUWlhOemFXOXVSbVZsWkdKaFkydERjbVZrYVhRU01DNXpaWE56YVc5dUxuWXhMbEp2Ykd4aVlXTnJVMlZ6YzJsdmJrWmxaV1JpWVdOclEzSmxaR2wwVW1WeGRXVnpkQm94TG5ObGMzTnBiMjR1ZGpFdVVtOXNiR0poWTJ0VFpYTnphVzl1Um1WbFpHSmhZMnREY21Wa2FYUlNaWE53YjI1elpSSitDaHRWY0dSaGRHVlRaWE56YVc5dVJtVmxaR0poWTJ0VGRHRjBkWE1TTGk1elpYTnphVzl1TG5ZeExsVndaR0YwWlZObGMzTnBiMjVHWldWa1ltRmphMU4wWVhSMWMxSmxjWFZsYzNRYUx5NXpaWE56YVc5dUxuWXhMbFZ3WkdGMFpWTmxjM05wYjI1R1pXVmtZbUZqYTFOMFlYUjFjMUpsYzNCdmJuTmxFbDBLRUZOcFoyNWhkSFZ5WlZObGMzTnBiMjRTSXk1elpYTnphVzl1TG5ZeExsTnBaMjVoZEhWeVpWTmxjM05wYjI1U1pYRjFaWE4wR2lRdWMyVnpjMmx2Ymk1Mk1TNVRhV2R1WVhSMWNtVlRaWE56YVc5dVVtVnpjRzl1YzJWQ3JRRUtEbU52YlM1elpYTnphVzl1TG5ZeFFoRlRaWE56YVc5dVFXUnRhVzVRY205MGIxQUJXajluYVhSc1lXSXViVzl1YVdOaExtTnVMM1pwWkdFdmMyUnJMMkpwZW5ObGNuWmxjaTFuYnk1bmFYUXZjMlZ6YzJsdmJpOTJNVHR6WlhOemFXOXVkakdpQWdOVFdGaXFBZ3BUWlhOemFXOXVMbFl4eWdJS1UyVnpjMmx2Ymx4V01lSUNGbE5sYzNOcGIyNWNWakZjUjFCQ1RXVjBZV1JoZEdIcUFndFRaWE56YVc5dU9qcFdNV0lHY0hKdmRHOHoiLFtZZSx0ZV0pLG1wPUgoVnAsMCksZnA9eigiQ2laelpYTnphVzl1TDNZeEwyTnZiVzExYm1sMGVWOUpiblJsY21GamRHbHZiaTV3Y205MGJ4SUtjMlZ6YzJsdmJpNTJNU0pzQ2h0RGIyMXRkVzVwZEhsVmMyVmpZWE5sVEdsclpWSmxjWFZsYzNRU0VRb0pZMnhwWlc1MFgybGtHQUVnQVNnSkVoRUtDWEpsWTI5eVpGOXBaQmdDSUFFb0NSSW5DZ2xzYVd0bFgzUjVjR1VZQXlBQktBNHlGQzV6WlhOemFXOXVMbll4TGt4cGEyVlVlWEJsSWs4S0hFTnZiVzExYm1sMGVWVnpaV05oYzJWTWFXdGxVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NCSVBDZ2R0WlhOellXZGxHQUlnQVNnSkVnMEtCV052ZFc1MEdBTWdBU2dES2xBS0NFeHBhMlZVZVhCbEVoa0tGVXhKUzBWZlZGbFFSVjlWVGxOUVJVTkpSa2xGUkJBQUVoSUtEa3hKUzBWZlZGbFFSVjlNU1V0RkVBRVNGUW9SVEVsTFJWOVVXVkJGWDBSSlUweEpTMFVRQWpKNENodERiMjF0ZFc1cGRIbEpiblJsY21GamRHbHZibE5sY25acFkyVVNXUW9FVEdsclpSSW5Mbk5sYzNOcGIyNHVkakV1UTI5dGJYVnVhWFI1VlhObFkyRnpaVXhwYTJWU1pYRjFaWE4wR2lndWMyVnpjMmx2Ymk1Mk1TNURiMjF0ZFc1cGRIbFZjMlZqWVhObFRHbHJaVkpsYzNCdmJuTmxRclVCQ2c1amIyMHVjMlZ6YzJsdmJpNTJNVUlaUTI5dGJYVnVhWFI1U1c1MFpYSmhZM1JwYjI1UWNtOTBiMUFCV2o5bmFYUnNZV0l1Ylc5dWFXTmhMbU51TDNacFpHRXZjMlJyTDJKcGVuTmxjblpsY2kxbmJ5NW5hWFF2YzJWemMybHZiaTkyTVR0elpYTnphVzl1ZGpHaUFnTlRXRmlxQWdwVFpYTnphVzl1TGxZeHlnSUtVMlZ6YzJsdmJseFdNZUlDRmxObGMzTnBiMjVjVmpGY1IxQkNUV1YwWVdSaGRHSHFBZ3RUWlhOemFXOXVPanBXTVdJR2NISnZkRzh6IixbdGVdKSxBcD1IKGZwLDApLEtuPXooIkNoMXpaWE56YVc5dUwzWXhMM05sYzNOcGIyNWZZbUZ6WlM1d2NtOTBieElLYzJWemMybHZiaTUyTVNJekNndFRaWE56YVc5dVNXNW1ieElOQ2dWMGFYUnNaUmdCSUFFb0NSSVZDZzExYzJWeVgzRjFaWE4wYVc5dUdBSWdBU2dKSWx3S0NWTndZV05sU1c1bWJ4SU5DZ1YwYVhSc1pSZ0JJQUVvQ1JJU0NncHpZM0psWlc1emFHOTBHQUlnQVNnSkVoRUtDWE53WVdObFgzVnliQmdESUFFb0NSSVpDaEZwYzE5elpYTnphVzl1WDNCMVlteHBZeGdFSUFFb0NDSnlDZ2REY21WaGRHOXlFZ3dLQkc1aGJXVVlBU0FCS0FrU0RRb0ZaVzFoYVd3WUFpQUJLQWtTRGdvR1lYWmhkR0Z5R0FNZ0FTZ0pFaXdLQ1hWelpYSmZkSGx3WlJnRUlBRW9EaklVTG5ObGMzTnBiMjR1ZGpFdVZYTmxjbFI1Y0dWSUFJZ0JBVUlNQ2dwZmRYTmxjbDkwZVhCbElxOERDaFJEYjIxdGRXNXBkSGxWYzJWallYTmxTVzVtYnhJa0NnZGpjbVZoZEc5eUdBRWdBU2dMTWhNdWMyVnpjMmx2Ymk1Mk1TNURjbVZoZEc5eUVoSUtDbkpsWTI5eVpGOTFhV1FZQWlBQktBa1NFd29MYzJWemMybHZibDkxYVdRWUF5QUJLQWtTTHdvTmNtVnpiM1Z5WTJWZmRIbHdaUmdFSUFFb0RqSVlMbk5sYzNOcGIyNHVkakV1VW1WemIzVnlZMlZVZVhCbEVoTUtDM0psYzI5MWNtTmxYMmxrR0FVZ0FTZ0pFZzBLQldkeWIzVndHQVlnQVNnSkVnNEtCbXh2WTJGc1pSZ0hJQUVvQ1JJekNnOXlaWE52ZFhKalpWOXpiM1Z5WTJVWUNDQUJLQTR5R2k1elpYTnphVzl1TG5ZeExsSmxjMjkxY21ObFUyOTFjbU5sRWhZS0RtWmhkbTl5YVhSbFgyTnZkVzUwR0FrZ0FTZ0RFaklLREhObGMzTnBiMjVmYVc1bWJ4Z0tJQUVvQ3pJWExuTmxjM05wYjI0dWRqRXVVMlZ6YzJsdmJrbHVabTlJQUlnQkFSSXVDZ3B6Y0dGalpWOXBibVp2R0FzZ0FTZ0xNaFV1YzJWemMybHZiaTUyTVM1VGNHRmpaVWx1Wm05SUFZZ0JBUklTQ2dwc2FXdGxYMk52ZFc1MEdBd2dBU2dEUWc4S0RWOXpaWE56YVc5dVgybHVabTlDRFFvTFgzTndZV05sWDJsdVptOGk5UUVLREVOdmJHeGhZbTl5WVhSdmNoSVVDZ2QxYzJWeVgybGtHQUVnQVNnSlNBQ0lBUUVTRFFvRlpXMWhhV3dZQWlBQktBa1NFUW9FYm1GdFpSZ0RJQUVvQ1VnQmlBRUJFaE1LQm1GMllYUmhjaGdFSUFFb0NVZ0NpQUVCRWpZS0NuQmxjbTFwYzNOcGIyNFlCU0FCS0E0eUlpNXpaWE56YVc5dUxuWXhMa052Ykd4aFltOXlZWFJ2Y2xCbGNtMXBjM05wYjI0U0VBb0lhWE5mYjNkdVpYSVlCaUFCS0FnU0xnb0djM1JoZEhWekdBY2dBU2dPTWg0dWMyVnpjMmx2Ymk1Mk1TNURiMnhzWVdKdmNtRjBiM0pUZEdGMGRYTkNDZ29JWDNWelpYSmZhV1JDQndvRlgyNWhiV1ZDQ1FvSFgyRjJZWFJoY2lMMkFRb1BVMlZ6YzJsdmJrWnBiR1ZKZEdWdEVoUUtESE5oYm1SaWIzaGZjR0YwYUJnQklBRW9DUklRQ2dobWFXeGxYM1Z5YkJnQ0lBRW9DUkl3Q2dwbWFXeGxYM04wWVdkbEdBUWdBU2dPTWh3dWMyVnpjMmx2Ymk1Mk1TNVRaWE56YVc5dVJtbHNaVk4wWVdkbEVpNEtDV1pwYkdWZmRIbHdaUmdGSUFFb0RqSWJMbk5sYzNOcGIyNHVkakV1VTJWemMybHZia1pwYkdWVWVYQmxFaklLQzJacGJHVmZaV1JwZEc5eUdBWWdBU2dPTWgwdWMyVnpjMmx2Ymk1Mk1TNVRaWE56YVc5dVJtbHNaVVZrYVhSdmNoSVRDZ3R6WlhOemFXOXVYM1ZwWkJnSElBRW9DUklRQ2dobGRtVnVkRjlwWkJnSUlBRW9DU0t2QWdvZlUyVnpjMmx2YmtacGJHVkpkR1Z0VjJsMGFGTmxjM05wYjI1VWFYUnNaUkl1Q2dsbWFXeGxYMmwwWlcwWUFTQUJLQXN5R3k1elpYTnphVzl1TG5ZeExsTmxjM05wYjI1R2FXeGxTWFJsYlJJVkNnMXpaWE56YVc5dVgzUnBkR3hsR0FJZ0FTZ0pFaFVLQ0hOb1lYSmxYMmxrR0FNZ0FTZ0pTQUNJQVFFU013b1BiR0Z6ZEY5MWNHUmhkR1ZrWDJGMEdBUWdBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJUkNnbG1hV3hsWDI1aGJXVVlCU0FCS0FrU0V3b0xkbVZ5YzJsdmJsOTFhV1FZQmlBQktBa1NHZ29TYVhOZmJHOWhaRjkwYjE5ellXNWtZbTk0R0FjZ0FTZ0lFaGdLQzNOb1lYSmxYM1JwZEd4bEdBZ2dBU2dKU0FHSUFRRkNDd29KWDNOb1lYSmxYMmxrUWc0S0RGOXphR0Z5WlY5MGFYUnNaU3FtQVFvTlFXZGxiblJVWVhOclRXOWtaUklmQ2h0QlIwVk9WRjlVUVZOTFgwMVBSRVZmVlU1VFVFVkRTVVpKUlVRUUFCSWNDaGhCUjBWT1ZGOVVRVk5MWDAxUFJFVmZVMVJCVGtSQlVrUVFBUklmQ2h0QlIwVk9WRjlVUVZOTFgwMVBSRVZmU0VsSFNGOUZSa1pQVWxRUUFoSVlDaFJCUjBWT1ZGOVVRVk5MWDAxUFJFVmZURWxVUlJBREVoc0tGMEZIUlU1VVgxUkJVMHRmVFU5RVJWOUVTVk5EVlZOVEVBUXFYUW9MUVhWa2FYUlRkR0YwZFhNU0dBb1VRVlZFU1ZSZlUxUkJWRlZUWDFCRlRrUkpUa2NRQUJJWkNoVkJWVVJKVkY5VFZFRlVWVk5mUVZCUVVrOVdSVVFRQVJJWkNoVkJWVVJKVkY5VFZFRlVWVk5mVWtWS1JVTlVSVVFRQWlwaENneFNaWE52ZFhKalpWUjVjR1VTSFFvWlVrVlRUMVZTUTBWZlZGbFFSVjlWVGxOUVJVTkpSa2xGUkJBQUVoa0tGVkpGVTA5VlVrTkZYMVJaVUVWZlUwVlRVMGxQVGhBQkVoY0tFMUpGVTA5VlVrTkZYMVJaVUVWZlUxQkJRMFVRQWlwcENnNVNaWE52ZFhKalpWTnZkWEpqWlJJZkNodFNSVk5QVlZKRFJWOVRUMVZTUTBWZlZVNVRVRVZEU1VaSlJVUVFBQkljQ2hoU1JWTlBWVkpEUlY5VFQxVlNRMFZmVDBaR1NVTkpRVXdRQVJJWUNoUlNSVk5QVlZKRFJWOVRUMVZTUTBWZlZWTkZVaEFDS2xFS0NGVnpaWEpVZVhCbEVoa0tGVlZUUlZKZlZGbFFSVjlWVGxOUVJVTkpSa2xGUkJBQUVoWUtFbFZUUlZKZlZGbFFSVjlQUmtaSlEwbEJUQkFCRWhJS0RsVlRSVkpmVkZsUVJWOVZVMFZTRUFJcWV3b1NRMjlzYkdGaWIzSmhkRzl5VTNSaGRIVnpFaU1LSDBOUFRFeEJRazlTUVZSUFVsOVRWRUZVVlZOZlZVNVRVRVZEU1VaSlJVUVFBQklmQ2h0RFQweE1RVUpQVWtGVVQxSmZVMVJCVkZWVFgxSkZUVTlXUlVRUUFSSWZDaHREVDB4TVFVSlBVa0ZVVDFKZlUxUkJWRlZUWDBSRlRFVlVSVVFRQWlxUUFRb1dRMjlzYkdGaWIzSmhkRzl5VUdWeWJXbHpjMmx2YmhJbkNpTkRUMHhNUVVKUFVrRlVUMUpmVUVWU1RVbFRVMGxQVGw5VlRsTlFSVU5KUmtsRlJCQUFFaVVLSVVOUFRFeEJRazlTUVZSUFVsOVFSVkpOU1ZOVFNVOU9YMUpGUVVSZlQwNU1XUkFCRWlZS0lrTlBURXhCUWs5U1FWUlBVbDlRUlZKTlNWTlRTVTlPWDFKRlFVUmZWMUpKVkVVUUFpcFJDZzVGZUhCbGNtbHRaVzUwVkhsd1pSSWZDaHRGV0ZCRlVrbE5SVTVVWDFSWlVFVmZWVTVUVUVWRFNVWkpSVVFRQUJJZUNocEZXRkJGVWtsTlJVNVVYMVJaVUVWZlQwNUNUMEZTUkVsT1J4QUJLb29CQ2c5VFpYTnphVzl1Um1sc1pWUjVjR1VTSVFvZFUwVlRVMGxQVGw5R1NVeEZYMVJaVUVWZlZVNVRVRVZEU1VaSlJVUVFBQklhQ2haVFJWTlRTVTlPWDBaSlRFVmZWRmxRUlY5R1NVeEZFQUVTR3dvWFUwVlRVMGxQVGw5R1NVeEZYMVJaVUVWZlNVMUJSMFVRQWhJYkNoZFRSVk5UU1U5T1gwWkpURVZmVkZsUVJWOVRURWxFUlJBREtuWUtFRk5sYzNOcGIyNUdhV3hsVTNSaFoyVVNJZ29lVTBWVFUwbFBUbDlHU1V4RlgxTlVRVWRGWDFWT1UxQkZRMGxHU1VWRUVBQVNIZ29hVTBWVFUwbFBUbDlHU1V4RlgxTlVRVWRGWDFCU1QwTkZVMU1RQVJJZUNocFRSVk5UU1U5T1gwWkpURVZmVTFSQlIwVmZVRkpQUkZWRFZCQUNLbmdLRVZObGMzTnBiMjVHYVd4bFJXUnBkRzl5RWlNS0gxTkZVMU5KVDA1ZlJrbE1SVjlGUkVsVVQxSmZWVTVUVUVWRFNVWkpSVVFRQUJJYUNoWlRSVk5UU1U5T1gwWkpURVZmUlVSSlZFOVNYMEZKRUFFU0lnb2VVMFZUVTBsUFRsOUdTVXhGWDBWRVNWUlBVbDlWVTBWU1gwOVhUa1ZTRUFJcW1RRUtGbE5sYzNOcGIyNUdhV3hsUTI5dWRtVnlkRlI1Y0dVU0tRb2xVMFZUVTBsUFRsOUdTVXhGWDBOUFRsWkZVbFJmVkZsUVJWOVZUbE5RUlVOSlJrbEZSQkFBRWlrS0pWTkZVMU5KVDA1ZlJrbE1SVjlEVDA1V1JWSlVYMVJaVUVWZlNGUk5URjlVVDE5UVJFWVFBUklwQ2lWVFJWTlRTVTlPWDBaSlRFVmZRMDlPVmtWU1ZGOVVXVkJGWDBoVVRVeGZWRTlmVUZCVUVBSXE3UUVLR0ZObGMzTnBiMjVHYVd4bFEyOXVkbVZ5ZEZOMFlYUjFjeElyQ2lkVFJWTlRTVTlPWDBaSlRFVmZRMDlPVmtWU1ZGOVRWRUZVVlZOZlZVNVRVRVZEU1VaSlJVUVFBQkluQ2lOVFJWTlRTVTlPWDBaSlRFVmZRMDlPVmtWU1ZGOVRWRUZVVlZOZlVFVk9SRWxPUnhBQkVpb0tKbE5GVTFOSlQwNWZSa2xNUlY5RFQwNVdSVkpVWDFOVVFWUlZVMTlEVDA1V1JWSlVTVTVIRUFJU0p3b2pVMFZUVTBsUFRsOUdTVXhGWDBOUFRsWkZVbFJmVTFSQlZGVlRYMU5WUTBORlUxTVFBeEltQ2lKVFJWTlRTVTlPWDBaSlRFVmZRMDlPVmtWU1ZGOVRWRUZVVlZOZlJrRkpURVZFRUFSQ3JBRUtEbU52YlM1elpYTnphVzl1TG5ZeFFoQlRaWE56YVc5dVFtRnpaVkJ5YjNSdlVBRmFQMmRwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOXpaWE56YVc5dUwzWXhPM05sYzNOcGIyNTJNYUlDQTFOWVdLb0NDbE5sYzNOcGIyNHVWakhLQWdwVFpYTnphVzl1WEZZeDRnSVdVMlZ6YzJsdmJseFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0MxTmxjM05wYjI0Nk9sWXhZZ1p3Y205MGJ6TSIsW3RlXSkscHA9eigiQ2lSelpYTnphVzl1TDNZeEwzTmxjM05wYjI1ZlkyOXNiR0ZpYjNKaGRHVXVjSEp2ZEc4U0NuTmxjM05wYjI0dWRqRWlUUW9ZVEdsemRFTnZiR3hoWW05eVlYUnZjbk5TWlhGMVpYTjBFaUVLQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKUWdlNlNBUnlBaEFCU0FDSUFRRkNEZ29NWDNObGMzTnBiMjVmZFdsa0lrd0tHVXhwYzNSRGIyeHNZV0p2Y21GMGIzSnpVbVZ6Y0c5dWMyVVNMd29OWTI5c2JHRmliM0poZEc5eWN4Z0JJQU1vQ3pJWUxuTmxjM05wYjI0dWRqRXVRMjlzYkdGaWIzSmhkRzl5SWpJS0dFTm9aV05yUVd4d2FHRkNlVVZ0WVdsc1VtVnhkV1Z6ZEJJV0NnVmxiV0ZwYkJnQklBRW9DVUlIdWtnRWNnSVFBU0l0Q2hsRGFHVmphMEZzY0doaFFubEZiV0ZwYkZKbGMzQnZibk5sRWhBS0NHbHpYMkZzY0doaEdBRWdBU2dJSW1nS0ZGTmxibVJXYVdWM1JXMWhhV3hTWlhGMVpYTjBFaHdLQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKUWdlNlNBUnlBaEFCRWhZS0JXVnRZV2xzR0FJZ0FTZ0pRZ2U2U0FSeUFoQUJFaG9LQ1hacFpYZGZiR2x1YXhnRElBRW9DVUlIdWtnRWNnSVFBU0lYQ2hWVFpXNWtWbWxsZDBWdFlXbHNVbVZ6Y0c5dWMyVWlwd0VLR1VsdWRtbDBaVU52Ykd4aFltOXlZWFJ2Y2xKbGNYVmxjM1FTSEFvTGMyVnpjMmx2Ymw5MWFXUVlBU0FCS0FsQ0I3cElCSElDRUFFU0Znb0ZaVzFoYVd3WUFpQUJLQWxDQjdwSUJISUNFQUVTTmdvS2NHVnliV2x6YzJsdmJoZ0RJQUVvRGpJaUxuTmxjM05wYjI0dWRqRXVRMjlzYkdGaWIzSmhkRzl5VUdWeWJXbHpjMmx2YmhJY0NndHBiblpwZEdWZmJHbHVheGdFSUFFb0NVSUh1a2dFY2dJUUFTSmpDaHBKYm5acGRHVkRiMnhzWVdKdmNtRjBiM0pTWlhOd2IyNXpaUklWQ2cxcGMxOWhiSEJvWVY5MWMyVnlHQUVnQVNnSUVpNEtER052Ykd4aFltOXlZWFJ2Y2hnQ0lBRW9DeklZTG5ObGMzTnBiMjR1ZGpFdVEyOXNiR0ZpYjNKaGRHOXlJa2NLR1ZKbGJXOTJaVU52Ykd4aFltOXlZWFJ2Y2xKbGNYVmxjM1FTSEFvTGMyVnpjMmx2Ymw5MWFXUVlBU0FCS0FsQ0I3cElCSElDRUFFU0RBb0VkWE5sY2hnQ0lBRW9DU0ljQ2hwU1pXMXZkbVZEYjJ4c1lXSnZjbUYwYjNKU1pYTndiMjV6WlNLSkFRb2pWWEJrWVhSbFEyOXNiR0ZpYjNKaGRHOXlVR1Z5YldsemMybHZibEpsY1hWbGMzUVNIQW9MYzJWemMybHZibDkxYVdRWUFTQUJLQWxDQjdwSUJISUNFQUVTREFvRWRYTmxjaGdDSUFFb0NSSTJDZ3B3WlhKdGFYTnphVzl1R0FNZ0FTZ09NaUl1YzJWemMybHZiaTUyTVM1RGIyeHNZV0p2Y21GMGIzSlFaWEp0YVhOemFXOXVJaVlLSkZWd1pHRjBaVU52Ykd4aFltOXlZWFJ2Y2xCbGNtMXBjM05wYjI1U1pYTndiMjV6WlNJekNoTkJZMk5sY0hSSmJuWnBkR1ZTWlhGMVpYTjBFaHdLQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKUWdlNlNBUnlBaEFCSWhZS0ZFRmpZMlZ3ZEVsdWRtbDBaVkpsYzNCdmJuTmxJak1LRTFKbGFtVmpkRWx1ZG1sMFpWSmxjWFZsYzNRU0hBb0xjMlZ6YzJsdmJsOTFhV1FZQVNBQktBbENCN3BJQkhJQ0VBRWlGZ29VVW1WcVpXTjBTVzUyYVhSbFVtVnpjRzl1YzJVeXVRWUtHVk5sYzNOcGIyNURiMnhzWVdKdmNtRjBaVk5sY25acFkyVVNZZ29SVEdsemRFTnZiR3hoWW05eVlYUnZjbk1TSkM1elpYTnphVzl1TG5ZeExreHBjM1JEYjJ4c1lXSnZjbUYwYjNKelVtVnhkV1Z6ZEJvbExuTmxjM05wYjI0dWRqRXVUR2x6ZEVOdmJHeGhZbTl5WVhSdmNuTlNaWE53YjI1elpTSUFFbUlLRVVOb1pXTnJRV3h3YUdGQ2VVVnRZV2xzRWlRdWMyVnpjMmx2Ymk1Mk1TNURhR1ZqYTBGc2NHaGhRbmxGYldGcGJGSmxjWFZsYzNRYUpTNXpaWE56YVc5dUxuWXhMa05vWldOclFXeHdhR0ZDZVVWdFlXbHNVbVZ6Y0c5dWMyVWlBQkpXQ2cxVFpXNWtWbWxsZDBWdFlXbHNFaUF1YzJWemMybHZiaTUyTVM1VFpXNWtWbWxsZDBWdFlXbHNVbVZ4ZFdWemRCb2hMbk5sYzNOcGIyNHVkakV1VTJWdVpGWnBaWGRGYldGcGJGSmxjM0J2Ym5ObElnQVNaUW9TU1c1MmFYUmxRMjlzYkdGaWIzSmhkRzl5RWlVdWMyVnpjMmx2Ymk1Mk1TNUpiblpwZEdWRGIyeHNZV0p2Y21GMGIzSlNaWEYxWlhOMEdpWXVjMlZ6YzJsdmJpNTJNUzVKYm5acGRHVkRiMnhzWVdKdmNtRjBiM0pTWlhOd2IyNXpaU0lBRW1VS0VsSmxiVzkyWlVOdmJHeGhZbTl5WVhSdmNoSWxMbk5sYzNOcGIyNHVkakV1VW1WdGIzWmxRMjlzYkdGaWIzSmhkRzl5VW1WeGRXVnpkQm9tTG5ObGMzTnBiMjR1ZGpFdVVtVnRiM1psUTI5c2JHRmliM0poZEc5eVVtVnpjRzl1YzJVaUFCS0RBUW9jVlhCa1lYUmxRMjlzYkdGaWIzSmhkRzl5VUdWeWJXbHpjMmx2YmhJdkxuTmxjM05wYjI0dWRqRXVWWEJrWVhSbFEyOXNiR0ZpYjNKaGRHOXlVR1Z5YldsemMybHZibEpsY1hWbGMzUWFNQzV6WlhOemFXOXVMbll4TGxWd1pHRjBaVU52Ykd4aFltOXlZWFJ2Y2xCbGNtMXBjM05wYjI1U1pYTndiMjV6WlNJQUVsTUtERUZqWTJWd2RFbHVkbWwwWlJJZkxuTmxjM05wYjI0dWRqRXVRV05qWlhCMFNXNTJhWFJsVW1WeGRXVnpkQm9nTG5ObGMzTnBiMjR1ZGpFdVFXTmpaWEIwU1c1MmFYUmxVbVZ6Y0c5dWMyVWlBQkpUQ2d4U1pXcGxZM1JKYm5acGRHVVNIeTV6WlhOemFXOXVMbll4TGxKbGFtVmpkRWx1ZG1sMFpWSmxjWFZsYzNRYUlDNXpaWE56YVc5dUxuWXhMbEpsYW1WamRFbHVkbWwwWlZKbGMzQnZibk5sSWdCQ3N3RUtEbU52YlM1elpYTnphVzl1TG5ZeFFoZFRaWE56YVc5dVEyOXNiR0ZpYjNKaGRHVlFjbTkwYjFBQldqOW5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmMyVnpjMmx2Ymk5Mk1UdHpaWE56YVc5dWRqR2lBZ05UV0ZpcUFncFRaWE56YVc5dUxsWXh5Z0lLVTJWemMybHZibHhXTWVJQ0ZsTmxjM05wYjI1Y1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWd0VFpYTnphVzl1T2pwV01XSUdjSEp2ZEc4eiIsW1llLEtuXSksWnA9SChwcCwwKSxHcD16KCJDaDl6WlhOemFXOXVMM1l4TDNObGMzTnBiMjVmY0hWaWJHbGpMbkJ5YjNSdkVncHpaWE56YVc5dUxuWXhJb2tCQ2hSVGRXSnRhWFJWYzJWallYTmxVbVZ4ZFdWemRCSXFDZ1ZsYldGcGJCZ0JJQUVvQ1VJYnVrZ1ljaFl5RkY1YlhrQmRLMEJiWGtCZEsxd3VXMTVBWFNza0Voc0tCMk52Ym5SbGJuUVlBaUFCS0FsQ0NycElCM0lGRUFFWWtFNFNHQW9MYzJWemMybHZibDkxYVdRWUF5QUJLQWxJQUlnQkFVSU9DZ3hmYzJWemMybHZibDkxYVdRaUt3b1ZVM1ZpYldsMFZYTmxZMkZ6WlZKbGMzQnZibk5sRWhJS0NuVnpaV05oYzJWZmFXUVlBU0FCS0FNaTJ3RUtFbFZ6WldOaGMyVlRaWE56YVc5dVNXNW1ieElUQ2d0elpYTnphVzl1WDNWcFpCZ0JJQUVvQ1JJVkNnMXpaWE56YVc5dVgzUnBkR3hsR0FJZ0FTZ0pFaFFLREhObGMzTnBiMjVmYVdOdmJoZ0RJQUVvQ1JJUENnZDFjMlZ5WDJsa0dBUWdBU2dKRWhJS0NuVnpaWEpmWlcxaGFXd1lCU0FCS0FrU0R3b0hZMjl1ZEdWdWRCZ0dJQUVvQ1JJTkNnVnZjbVJsY2hnSElBRW9CUkl1Q2dwamNtVmhkR1ZrWDJGMEdBZ2dBU2dMTWhvdVoyOXZaMnhsTG5CeWIzUnZZblZtTGxScGJXVnpkR0Z0Y0JJT0NnWnNiMk5oYkdVWUNTQUJLQWtpZUFvYVRHbHpkRlZ6WldOaGMyVlRaWE56YVc5dWMxSmxjWFZsYzNRU0ZRb05jMmh2ZDE5b2IyMWxjR0ZuWlJnQklBRW9DQklVQ2d4emFHOTNYM1Z6WldOaGMyVVlBaUFCS0FnU0Rnb0diRzlqWVd4bEdBTWdBU2dKRWcwS0JXeHBiV2wwR0FRZ0FTZ0RFZzRLQm05bVpuTmxkQmdGSUFFb0F5SlBDaHRNYVhOMFZYTmxZMkZ6WlZObGMzTnBiMjV6VW1WemNHOXVjMlVTTUFvSWMyVnpjMmx2Ym5NWUFTQURLQXN5SGk1elpYTnphVzl1TG5ZeExsVnpaV05oYzJWVFpYTnphVzl1U1c1bWJ5Sy9BZ29jVEdsemRFTnZiVzExYm1sMGVWVnpaV05oYzJWelVtVnhkV1Z6ZEJJWUNnVnNhVzFwZEJnQklBRW9BMElKdWtnR0lnUVlaQ0FBRWhjS0JtOW1abk5sZEJnQ0lBRW9BMElIdWtnRUlnSW9BQkkwQ2cxeVpYTnZkWEpqWlY5MGVYQmxHQU1nQVNnT01oZ3VjMlZ6YzJsdmJpNTJNUzVTWlhOdmRYSmpaVlI1Y0dWSUFJZ0JBUkk0Q2c5eVpYTnZkWEpqWlY5emIzVnlZMlVZQkNBQktBNHlHaTV6WlhOemFXOXVMbll4TGxKbGMyOTFjbU5sVTI5MWNtTmxTQUdJQVFFU0V3b0diRzlqWVd4bEdBVWdBU2dKU0FLSUFRRVNFZ29GWjNKdmRYQVlCaUFCS0FsSUE0Z0JBUklRQ2dOMFlXY1lCeUFCS0FsSUJJZ0JBVUlRQ2c1ZmNtVnpiM1Z5WTJWZmRIbHdaVUlTQ2hCZmNtVnpiM1Z5WTJWZmMyOTFjbU5sUWdrS0IxOXNiMk5oYkdWQ0NBb0dYMmR5YjNWd1FnWUtCRjkwWVdjaVlnb2RUR2x6ZEVOdmJXMTFibWwwZVZWelpXTmhjMlZ6VW1WemNHOXVjMlVTTWdvSWRYTmxZMkZ6WlhNWUFTQURLQXN5SUM1elpYTnphVzl1TG5ZeExrTnZiVzExYm1sMGVWVnpaV05oYzJWSmJtWnZFZzBLQlhSdmRHRnNHQUlnQVNnRElqb0tIMEpoZEdOb1IyVjBRMjl0YlhWdWFYUjVWWE5sWTJGelpWSmxjWFZsYzNRU0Z3b1BjbVZqYjNKa1gzVnBaRjlzYVhOMEdBRWdBeWdKSWxvS0lFSmhkR05vUjJWMFEyOXRiWFZ1YVhSNVZYTmxZMkZ6WlZKbGMzQnZibk5sRWpZS0RIVnpaV05oYzJWZmJHbHpkQmdCSUFNb0N6SWdMbk5sYzNOcGIyNHVkakV1UTI5dGJYVnVhWFI1VlhObFkyRnpaVWx1Wm04aUx3b2JSMlYwVTJoaGNtVmtVMlZ6YzJsdmJrWnBiR1ZTWlhGMVpYTjBFaEFLQ0hOb1lYSmxYMmxrR0FFZ0FTZ0pJcFVCQ2h4SFpYUlRhR0Z5WldSVFpYTnphVzl1Um1sc1pWSmxjM0J2Ym5ObEVoTUtDM05sYzNOcGIyNWZkV2xrR0FFZ0FTZ0pFaFFLREhOaGJtUmliM2hmY0dGMGFCZ0NJQUVvQ1JJUUNnaG1hV3hsWDNWeWJCZ0RJQUVvQ1JJUkNnbG1hV3hsWDI1aGJXVVlCQ0FCS0FrU0VBb0laV1JwZEdGaWJHVVlCU0FCS0FnU0V3b0xjMmhoY21WZmRHbDBiR1VZQmlBQktBa3lwZ1FLRkZObGMzTnBiMjVRZFdKc2FXTlRaWEoyYVdObEVsUUtEVk4xWW0xcGRGVnpaV05oYzJVU0lDNXpaWE56YVc5dUxuWXhMbE4xWW0xcGRGVnpaV05oYzJWU1pYRjFaWE4wR2lFdWMyVnpjMmx2Ymk1Mk1TNVRkV0p0YVhSVmMyVmpZWE5sVW1WemNHOXVjMlVTWmdvVFRHbHpkRlZ6WldOaGMyVlRaWE56YVc5dWN4SW1Mbk5sYzNOcGIyNHVkakV1VEdsemRGVnpaV05oYzJWVFpYTnphVzl1YzFKbGNYVmxjM1FhSnk1elpYTnphVzl1TG5ZeExreHBjM1JWYzJWallYTmxVMlZ6YzJsdmJuTlNaWE53YjI1elpSSnNDaFZNYVhOMFEyOXRiWFZ1YVhSNVZYTmxZMkZ6WlhNU0tDNXpaWE56YVc5dUxuWXhMa3hwYzNSRGIyMXRkVzVwZEhsVmMyVmpZWE5sYzFKbGNYVmxjM1FhS1M1elpYTnphVzl1TG5ZeExreHBjM1JEYjIxdGRXNXBkSGxWYzJWallYTmxjMUpsYzNCdmJuTmxFblVLR0VKaGRHTm9SMlYwUTI5dGJYVnVhWFI1VlhObFkyRnpaUklyTG5ObGMzTnBiMjR1ZGpFdVFtRjBZMmhIWlhSRGIyMXRkVzVwZEhsVmMyVmpZWE5sVW1WeGRXVnpkQm9zTG5ObGMzTnBiMjR1ZGpFdVFtRjBZMmhIWlhSRGIyMXRkVzVwZEhsVmMyVmpZWE5sVW1WemNHOXVjMlVTYXdvVVIyVjBVMmhoY21Wa1UyVnpjMmx2YmtacGJHVVNKeTV6WlhOemFXOXVMbll4TGtkbGRGTm9ZWEpsWkZObGMzTnBiMjVHYVd4bFVtVnhkV1Z6ZEJvb0xuTmxjM05wYjI0dWRqRXVSMlYwVTJoaGNtVmtVMlZ6YzJsdmJrWnBiR1ZTWlhOd2IyNXpaU0lBUXE0QkNnNWpiMjB1YzJWemMybHZiaTUyTVVJU1UyVnpjMmx2YmxCMVlteHBZMUJ5YjNSdlVBRmFQMmRwZEd4aFlpNXRiMjVwWTJFdVkyNHZkbWxrWVM5elpHc3ZZbWw2YzJWeWRtVnlMV2R2TG1kcGRDOXpaWE56YVc5dUwzWXhPM05sYzNOcGIyNTJNYUlDQTFOWVdLb0NDbE5sYzNOcGIyNHVWakhLQWdwVFpYTnphVzl1WEZZeDRnSVdVMlZ6YzJsdmJseFdNVnhIVUVKTlpYUmhaR0YwWWVvQ0MxTmxjM05wYjI0Nk9sWXhZZ1p3Y205MGJ6TSIsW1llLHRlLEtuXSksWHA9SChHcCwwKSxJcD16KCJDaXB6WlhOemFXOXVMM1l4TDNObGMzTnBiMjVmWTI5c2JHRmliM0poZEY5d2RXSnNhV011Y0hKdmRHOFNDbk5sYzNOcGIyNHVkakVpVXdvZVRHbHpkRkIxWW14cFkwTnZiR3hoWW05eVlYUnZjbk5TWlhGMVpYTjBFaUVLQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKUWdlNlNBUnlBaEFCU0FDSUFRRkNEZ29NWDNObGMzTnBiMjVmZFdsa0lvVUJDaEpRZFdKc2FXTkRiMnhzWVdKdmNtRjBiM0lTRHdvSGRYTmxjbDlwWkJnQklBRW9DUklNQ2dSdVlXMWxHQU1nQVNnSkVnNEtCbUYyWVhSaGNoZ0VJQUVvQ1JJUUNnaHBjMTl2ZDI1bGNoZ0dJQUVvQ0JJdUNnWnpkR0YwZFhNWUJ5QUJLQTR5SGk1elpYTnphVzl1TG5ZeExrTnZiR3hoWW05eVlYUnZjbE4wWVhSMWN5SllDaDlNYVhOMFVIVmliR2xqUTI5c2JHRmliM0poZEc5eWMxSmxjM0J2Ym5ObEVqVUtEV052Ykd4aFltOXlZWFJ2Y25NWUFTQURLQXN5SGk1elpYTnphVzl1TG5ZeExsQjFZbXhwWTBOdmJHeGhZbTl5WVhSdmNqS1hBUW9mVTJWemMybHZia052Ykd4aFltOXlZWFJsVUhWaWJHbGpVMlZ5ZG1salpSSjBDaGRNYVhOMFVIVmliR2xqUTI5c2JHRmliM0poZEc5eWN4SXFMbk5sYzNOcGIyNHVkakV1VEdsemRGQjFZbXhwWTBOdmJHeGhZbTl5WVhSdmNuTlNaWEYxWlhOMEdpc3VjMlZ6YzJsdmJpNTJNUzVNYVhOMFVIVmliR2xqUTI5c2JHRmliM0poZEc5eWMxSmxjM0J2Ym5ObElnQkN1QUVLRG1OdmJTNXpaWE56YVc5dUxuWXhRaHhUWlhOemFXOXVRMjlzYkdGaWIzSmhkRkIxWW14cFkxQnliM1J2VUFGYVAyZHBkR3hoWWk1dGIyNXBZMkV1WTI0dmRtbGtZUzl6WkdzdlltbDZjMlZ5ZG1WeUxXZHZMbWRwZEM5elpYTnphVzl1TDNZeE8zTmxjM05wYjI1Mk1hSUNBMU5ZV0tvQ0NsTmxjM05wYjI0dVZqSEtBZ3BUWlhOemFXOXVYRll4NGdJV1UyVnpjMmx2Ymx4V01WeEhVRUpOWlhSaFpHRjBZZW9DQzFObGMzTnBiMjQ2T2xZeFlnWndjbTkwYnpNIixbWWUsS25dKSxScD1IKElwLDApLEVwPXooIkNpQnpaWE56YVc5dUwzWXhMMk52YlcxMWJtbDBlVjloWkcxcGJpNXdjbTkwYnhJS2MyVnpjMmx2Ymk1Mk1TTC9CQW9WUVhWa2FYUkRiMjF0ZFc1cGRIbFZjMlZqWVhObEVpY0tCbk4wWVhSMWN4Z0JJQUVvRGpJWExuTmxjM05wYjI0dWRqRXVRWFZrYVhSVGRHRjBkWE1TRGdvR2NtVnRZWEpyR0FJZ0FTZ0pFaE1LQzNKbGRtbGxkMlZ5WDJsa0dBTWdBU2dKRWk4S0MzSmxkbWxsZDJWa1gyRjBHQVFnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNCSU1DZ1IwWVdkekdBVWdBeWdKRWdvS0FtbGtHQVlnQVNnREVpNEtDbU55WldGMFpXUmZZWFFZQnlBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaTRLQ25Wd1pHRjBaV1JmWVhRWUNDQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NtUmxiR1YwWldSZllYUVlDU0FCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VnOEtCM1Z6WlhKZmFXUVlDaUFCS0FrU0RRb0ZaVzFoYVd3WUN5QUJLQWtTRWdvS2NtVmpiM0prWDNWcFpCZ01JQUVvQ1JJdkNnMXlaWE52ZFhKalpWOTBlWEJsR0EwZ0FTZ09NaGd1YzJWemMybHZiaTUyTVM1U1pYTnZkWEpqWlZSNWNHVVNFd29MY21WemIzVnlZMlZmYVdRWURpQUJLQWtTRFFvRlozSnZkWEFZRHlBQktBa1NEZ29HYkc5allXeGxHQkFnQVNnSkVnNEtCbUYyWVhSaGNoZ1JJQUVvQ1JJTkNnVjBhWFJzWlJnU0lBRW9DUklUQ2d0a1pYTmpjbWx3ZEdsdmJoZ1RJQUVvQ1JJekNnOXlaWE52ZFhKalpWOXpiM1Z5WTJVWUZDQUJLQTR5R2k1elpYTnphVzl1TG5ZeExsSmxjMjkxY21ObFUyOTFjbU5sRWcwS0JXOXlaR1Z5R0JVZ0FTZ0ZFaElLQ21selgzQjFZbXhwYzJnWUZpQUJLQWdTR0FvUWNtVmpiMjF0Wlc1a1gzSmxZWE52YmhnWElBRW9DU0xiQXdvWlVtVmpiMjF0Wlc1a1EyOXRiWFZ1YVhSNVZYTmxZMkZ6WlJJS0NnSnBaQmdCSUFFb0F4SU1DZ1IwWVdkekdBSWdBeWdKRWk0S0NtTnlaV0YwWldSZllYUVlBeUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0VpNEtDblZ3WkdGMFpXUmZZWFFZQkNBQktBc3lHaTVuYjI5bmJHVXVjSEp2ZEc5aWRXWXVWR2x0WlhOMFlXMXdFaTRLQ21SbGJHVjBaV1JmWVhRWUJTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWc4S0IzVnpaWEpmYVdRWUJpQUJLQWtTRWdvS2NtVmpiM0prWDNWcFpCZ0lJQUVvQ1JJdkNnMXlaWE52ZFhKalpWOTBlWEJsR0FrZ0FTZ09NaGd1YzJWemMybHZiaTUyTVM1U1pYTnZkWEpqWlZSNWNHVVNFd29MY21WemIzVnlZMlZmYVdRWUNpQUJLQWtTRFFvRlozSnZkWEFZQ3lBQktBa1NEZ29HYkc5allXeGxHQXdnQVNnSkVnNEtCbUYyWVhSaGNoZ05JQUVvQ1JJTkNnVjBhWFJzWlJnT0lBRW9DUklUQ2d0a1pYTmpjbWx3ZEdsdmJoZ1BJQUVvQ1JJekNnOXlaWE52ZFhKalpWOXpiM1Z5WTJVWUVDQUJLQTR5R2k1elpYTnphVzl1TG5ZeExsSmxjMjkxY21ObFUyOTFjbU5sRWcwS0JXOXlaR1Z5R0JFZ0FTZ0ZFaElLQ21selgzQjFZbXhwYzJnWUVpQUJLQWdpSndvS1ZYTmxZMkZ6WlZSaFp4SUxDZ04xYVdRWUFTQUJLQWtTREFvRWJtRnRaUmdDSUFFb0NTSXBDZ3hWYzJWallYTmxSM0p2ZFhBU0N3b0RkV2xrR0FFZ0FTZ0pFZ3dLQkc1aGJXVVlBaUFCS0FraXR3TUtJRXhwYzNSQmRXUnBkRU52YlcxMWJtbDBlVlZ6WldOaGMyVlNaWEYxWlhOMEVnd0tCSEJoWjJVWUFTQUJLQVVTRVFvSmNHRm5aVjl6YVhwbEdBSWdBU2dGRWl3S0JuTjBZWFIxY3hnRElBRW9EaklYTG5ObGMzTnBiMjR1ZGpFdVFYVmthWFJUZEdGMGRYTklBSWdCQVJJMENnMXlaWE52ZFhKalpWOTBlWEJsR0FRZ0FTZ09NaGd1YzJWemMybHZiaTUyTVM1U1pYTnZkWEpqWlZSNWNHVklBWWdCQVJJWUNndHlaWE52ZFhKalpWOXBaQmdGSUFFb0NVZ0NpQUVCRWhFS0JIVnpaWElZQmlBQktBbElBNGdCQVJJTUNnUjBZV2R6R0FjZ0F5Z0pFaElLQldkeWIzVndHQWdnQVNnSlNBU0lBUUVTTGdvS2IzSmtaWEpmZEhsd1pSZ0pJQUVvRGpJVkxuTmxjM05wYjI0dWRqRXVUM0prWlhKVWVYQmxTQVdJQVFFU0ZBb0hhMlY1ZDI5eVpCZ0tJQUVvQ1VnR2lBRUJFaE1LQm14dlkyRnNaUmdMSUFFb0NVZ0hpQUVCUWdrS0IxOXpkR0YwZFhOQ0VBb09YM0psYzI5MWNtTmxYM1I1Y0dWQ0Rnb01YM0psYzI5MWNtTmxYMmxrUWdjS0JWOTFjMlZ5UWdnS0JsOW5jbTkxY0VJTkNndGZiM0prWlhKZmRIbHdaVUlLQ2doZmEyVjVkMjl5WkVJSkNnZGZiRzlqWVd4bEltTUtJVXhwYzNSQmRXUnBkRU52YlcxMWJtbDBlVlZ6WldOaGMyVlNaWE53YjI1elpSSXZDZ1JzYVhOMEdBRWdBeWdMTWlFdWMyVnpjMmx2Ymk1Mk1TNUJkV1JwZEVOdmJXMTFibWwwZVZWelpXTmhjMlVTRFFvRmRHOTBZV3dZQWlBQktBVWkxQU1LSkV4cGMzUlNaV052YlcxbGJtUkRiMjF0ZFc1cGRIbFZjMlZqWVhObFVtVnhkV1Z6ZEJJTUNnUndZV2RsR0FFZ0FTZ0ZFaEVLQ1hCaFoyVmZjMmw2WlJnQ0lBRW9CUkkwQ2cxeVpYTnZkWEpqWlY5MGVYQmxHQU1nQVNnT01oZ3VjMlZ6YzJsdmJpNTJNUzVTWlhOdmRYSmpaVlI1Y0dWSUFJZ0JBUklZQ2d0eVpYTnZkWEpqWlY5cFpCZ0VJQUVvQ1VnQmlBRUJFaEVLQkhWelpYSVlCU0FCS0FsSUFvZ0JBUklNQ2dSMFlXZHpHQVlnQXlnSkVoSUtCV2R5YjNWd0dBY2dBU2dKU0FPSUFRRVNGd29LYVhOZmNIVmliR2x6YUJnSUlBRW9DRWdFaUFFQkVoZ0tDMmx6WDJabFlYUjFjbVZrR0FrZ0FTZ0lTQVdJQVFFU0xnb0tiM0prWlhKZmRIbHdaUmdLSUFFb0RqSVZMbk5sYzNOcGIyNHVkakV1VDNKa1pYSlVlWEJsU0FhSUFRRVNGQW9IYTJWNWQyOXlaQmdMSUFFb0NVZ0hpQUVCRWhNS0JteHZZMkZzWlJnTUlBRW9DVWdJaUFFQlFoQUtEbDl5WlhOdmRYSmpaVjkwZVhCbFFnNEtERjl5WlhOdmRYSmpaVjlwWkVJSENnVmZkWE5sY2tJSUNnWmZaM0p2ZFhCQ0RRb0xYMmx6WDNCMVlteHBjMmhDRGdvTVgybHpYMlpsWVhSMWNtVmtRZzBLQzE5dmNtUmxjbDkwZVhCbFFnb0tDRjlyWlhsM2IzSmtRZ2tLQjE5c2IyTmhiR1VpYXdvbFRHbHpkRkpsWTI5dGJXVnVaRU52YlcxMWJtbDBlVlZ6WldOaGMyVlNaWE53YjI1elpSSXpDZ1JzYVhOMEdBRWdBeWdMTWlVdWMyVnpjMmx2Ymk1Mk1TNVNaV052YlcxbGJtUkRiMjF0ZFc1cGRIbFZjMlZqWVhObEVnMEtCWFJ2ZEdGc0dBSWdBU2dGSXF3Q0NpWlZjR1JoZEdWU1pXTnZiVzFsYm1SRGIyMXRkVzVwZEhsVmMyVmpZWE5sVW1WeGRXVnpkQklLQ2dKcFpCZ0JJQUVvQXhJU0NnVm5jbTkxY0JnRklBRW9DVWdBaUFFQkVnd0tCSFJoWjNNWUJpQURLQWtTRndvS2FYTmZjSFZpYkdsemFCZ0hJQUVvQ0VnQmlBRUJFaElLQlc5eVpHVnlHQWdnQVNnRlNBS0lBUUVTRWdvRmFXMWhaMlVZQ1NBQktBbElBNGdCQVJJVENnWnNiMk5oYkdVWUNpQUJLQWxJQklnQkFSSVNDZ1YwYVhSc1pSZ0xJQUVvQ1VnRmlBRUJFaGdLQzJSbGMyTnlhWEIwYVc5dUdBd2dBU2dKU0FhSUFRRkNDQW9HWDJkeWIzVndRZzBLQzE5cGMxOXdkV0pzYVhOb1FnZ0tCbDl2Y21SbGNrSUlDZ1pmYVcxaFoyVkNDUW9IWDJ4dlkyRnNaVUlJQ2daZmRHbDBiR1ZDRGdvTVgyUmxjMk55YVhCMGFXOXVJa3NLSjFWd1pHRjBaVkpsWTI5dGJXVnVaRU52YlcxMWJtbDBlVlZ6WldOaGMyVlNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUVnOEtCMjFsYzNOaFoyVVlBaUFCS0FraXF3TUtJbFZ3WkdGMFpVRjFaR2wwUTI5dGJYVnVhWFI1VlhObFkyRnpaVkpsY1hWbGMzUVNDZ29DYVdRWUFTQUJLQU1TTEFvR2MzUmhkSFZ6R0FJZ0FTZ09NaGN1YzJWemMybHZiaTUyTVM1QmRXUnBkRk4wWVhSMWMwZ0FpQUVCRWhNS0JuSmxiV0Z5YXhnRElBRW9DVWdCaUFFQkVoZ0tDM0psZG1sbGQyVnlYMmxrR0FRZ0FTZ0pTQUtJQVFFU0Vnb0ZaM0p2ZFhBWUJTQUJLQWxJQTRnQkFSSU1DZ1IwWVdkekdBWWdBeWdKRWhjS0NtbHpYM0IxWW14cGMyZ1lCeUFCS0FoSUJJZ0JBUklTQ2dWdmNtUmxjaGdJSUFFb0JVZ0ZpQUVCRWhJS0JXbHRZV2RsR0FrZ0FTZ0pTQWFJQVFFU0V3b0diRzlqWVd4bEdBb2dBU2dKU0FlSUFRRVNFZ29GZEdsMGJHVVlDeUFCS0FsSUNJZ0JBUklZQ2d0a1pYTmpjbWx3ZEdsdmJoZ01JQUVvQ1VnSmlBRUJRZ2tLQjE5emRHRjBkWE5DQ1FvSFgzSmxiV0Z5YTBJT0NneGZjbVYyYVdWM1pYSmZhV1JDQ0FvR1gyZHliM1Z3UWcwS0MxOXBjMTl3ZFdKc2FYTm9RZ2dLQmw5dmNtUmxja0lJQ2daZmFXMWhaMlZDQ1FvSFgyeHZZMkZzWlVJSUNnWmZkR2wwYkdWQ0Rnb01YMlJsYzJOeWFYQjBhVzl1SWtjS0kxVndaR0YwWlVGMVpHbDBRMjl0YlhWdWFYUjVWWE5sWTJGelpWSmxjM0J2Ym5ObEVnOEtCM04xWTJObGMzTVlBU0FCS0FnU0R3b0hiV1Z6YzJGblpSZ0NJQUVvQ1NJZUNnNU1hWE4wVkdGblVtVnhkV1Z6ZEJJTUNnUjBZV2R6R0FFZ0F5Z0pJamNLRDB4cGMzUlVZV2RTWlhOd2IyNXpaUklrQ2dSMFlXZHpHQUVnQXlnTE1oWXVjMlZ6YzJsdmJpNTJNUzVWYzJWallYTmxWR0ZuSWhJS0VFeHBjM1JIY205MWNGSmxjWFZsYzNRaVBRb1JUR2x6ZEVkeWIzVndVbVZ6Y0c5dWMyVVNLQW9HWjNKdmRYQnpHQUVnQXlnTE1oZ3VjMlZ6YzJsdmJpNTJNUzVWYzJWallYTmxSM0p2ZFhBaUxnb1pSMlZ1WlhKaGRHVlRZM0psWlc1emFHOTBVbVZ4ZFdWemRCSVJDZ2x6Y0dGalpWOTFhV1FZQVNBQktBa2lLUW9hUjJWdVpYSmhkR1ZUWTNKbFpXNXphRzkwVW1WemNHOXVjMlVTQ3dvRGRYSnNHQUVnQVNnSklpc0tIVVJsYkdWMFpVTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYRjFaWE4wRWdvS0FtbGtHQUVnQVNnRElrSUtIa1JsYkdWMFpVTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJRWc4S0IyMWxjM05oWjJVWUFpQUJLQWtxUEFvSlQzSmtaWEpVZVhCbEVoa0tGVTlTUkVWU1gxUlpVRVZmUTFKRlFWUkZSRjlCVkJBQUVoUUtFRTlTUkVWU1gxUlpVRVZmVDFKRVJWSVFBVEtKQndvVlEyOXRiWFZ1YVhSNVFXUnRhVzVUWlhKMmFXTmxFb1FCQ2gxTWFYTjBVbVZqYjIxdFpXNWtRMjl0YlhWdWFYUjVWWE5sWTJGelpSSXdMbk5sYzNOcGIyNHVkakV1VEdsemRGSmxZMjl0YldWdVpFTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYRjFaWE4wR2pFdWMyVnpjMmx2Ymk1Mk1TNU1hWE4wVW1WamIyMXRaVzVrUTI5dGJYVnVhWFI1VlhObFkyRnpaVkpsYzNCdmJuTmxFbmdLR1V4cGMzUkJkV1JwZEVOdmJXMTFibWwwZVZWelpXTmhjMlVTTEM1elpYTnphVzl1TG5ZeExreHBjM1JCZFdScGRFTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYRjFaWE4wR2kwdWMyVnpjMmx2Ymk1Mk1TNU1hWE4wUVhWa2FYUkRiMjF0ZFc1cGRIbFZjMlZqWVhObFVtVnpjRzl1YzJVU2lnRUtIMVZ3WkdGMFpWSmxZMjl0YldWdVpFTnZiVzExYm1sMGVWVnpaV05oYzJVU01pNXpaWE56YVc5dUxuWXhMbFZ3WkdGMFpWSmxZMjl0YldWdVpFTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYRjFaWE4wR2pNdWMyVnpjMmx2Ymk1Mk1TNVZjR1JoZEdWU1pXTnZiVzFsYm1SRGIyMXRkVzVwZEhsVmMyVmpZWE5sVW1WemNHOXVjMlVTZmdvYlZYQmtZWFJsUVhWa2FYUkRiMjF0ZFc1cGRIbFZjMlZqWVhObEVpNHVjMlZ6YzJsdmJpNTJNUzVWY0dSaGRHVkJkV1JwZEVOdmJXMTFibWwwZVZWelpXTmhjMlZTWlhGMVpYTjBHaTh1YzJWemMybHZiaTUyTVM1VmNHUmhkR1ZCZFdScGRFTnZiVzExYm1sMGVWVnpaV05oYzJWU1pYTndiMjV6WlJKQ0NnZE1hWE4wVkdGbkVob3VjMlZ6YzJsdmJpNTJNUzVNYVhOMFZHRm5VbVZ4ZFdWemRCb2JMbk5sYzNOcGIyNHVkakV1VEdsemRGUmhaMUpsYzNCdmJuTmxFbU1LRWtkbGJtVnlZWFJsVTJOeVpXVnVjMmh2ZEJJbExuTmxjM05wYjI0dWRqRXVSMlZ1WlhKaGRHVlRZM0psWlc1emFHOTBVbVZ4ZFdWemRCb21Mbk5sYzNOcGIyNHVkakV1UjJWdVpYSmhkR1ZUWTNKbFpXNXphRzkwVW1WemNHOXVjMlVTU0FvSlRHbHpkRWR5YjNWd0Vod3VjMlZ6YzJsdmJpNTJNUzVNYVhOMFIzSnZkWEJTWlhGMVpYTjBHaDB1YzJWemMybHZiaTUyTVM1TWFYTjBSM0p2ZFhCU1pYTndiMjV6WlJKdkNoWkVaV3hsZEdWRGIyMXRkVzVwZEhsVmMyVmpZWE5sRWlrdWMyVnpjMmx2Ymk1Mk1TNUVaV3hsZEdWRGIyMXRkVzVwZEhsVmMyVmpZWE5sVW1WeGRXVnpkQm9xTG5ObGMzTnBiMjR1ZGpFdVJHVnNaWFJsUTI5dGJYVnVhWFI1VlhObFkyRnpaVkpsYzNCdmJuTmxRcThCQ2c1amIyMHVjMlZ6YzJsdmJpNTJNVUlUUTI5dGJYVnVhWFI1UVdSdGFXNVFjbTkwYjFBQldqOW5hWFJzWVdJdWJXOXVhV05oTG1OdUwzWnBaR0V2YzJSckwySnBlbk5sY25abGNpMW5ieTVuYVhRdmMyVnpjMmx2Ymk5Mk1UdHpaWE56YVc5dWRqR2lBZ05UV0ZpcUFncFRaWE56YVc5dUxsWXh5Z0lLVTJWemMybHZibHhXTWVJQ0ZsTmxjM05wYjI1Y1ZqRmNSMUJDVFdWMFlXUmhkR0hxQWd0VFpYTnphVzl1T2pwV01XSUdjSEp2ZEc4eiIsW3RlLEtuXSkseXA9SChFcCwwKSx2cD16KCJDaGh6WlhOemFXOXVMM1l4TDNObGMzTnBiMjR1Y0hKdmRHOFNDbk5sYzNOcGIyNHVkakVpbkFFS0JGUmhjMnNTRHdvSGRHRnphMTlwWkJnQklBRW9DUklUQ2d0a1pYTmpjbWx3ZEdsdmJoZ0NJQUVvQ1JJT0NnWnpkR0YwZFhNWUF5QUJLQWtTTGdvS1kzSmxZWFJsWkY5aGRCZ0VJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0xnb0tkWEJrWVhSbFpGOWhkQmdGSUFFb0N6SWFMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVVhVzFsYzNSaGJYQWltd0VLQzFOaGJtUmliM2hKYm1adkVoSUtDbk5oYm1SaWIzaGZhV1FZQVNBQktBa1NEZ29HYzNSaGRIVnpHQUlnQVNnSkVqY0tDRzFsZEdGa1lYUmhHQU1nQXlnTE1pVXVjMlZ6YzJsdmJpNTJNUzVUWVc1a1ltOTRTVzVtYnk1TlpYUmhaR0YwWVVWdWRISjVHaThLRFUxbGRHRmtZWFJoUlc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWcwS0JYWmhiSFZsR0FJZ0FTZ0pPZ0k0QVNKVkNnaFRkR1Z3VUd4aGJoSVBDZ2R3YkdGdVgybGtHQUVnQVNnSkVoTUtDMlJsYzJOeWFYQjBhVzl1R0FJZ0FTZ0pFZzBLQlhOMFpYQnpHQU1nQXlnSkVoUUtER04xY25KbGJuUmZjM1JsY0JnRUlBRW9CU0tGQXdvVFFXZGxiblJUWlhOemFXOXVVblZ1ZEdsdFpSSUxDZ04xYVdRWUFTQUJLQWtTRHdvSGRYTmxjbDlwWkJnQ0lBRW9DUkl2Q2c1b1lXNWtiR1Z5WDNOMGIzSmxjeGdESUFFb0N6SVhMbWR2YjJkc1pTNXdjbTkwYjJKMVppNVRkSEoxWTNRU0h3b0ZkR0Z6YTNNWUJDQURLQXN5RUM1elpYTnphVzl1TG5ZeExsUmhjMnNTSndvSmMzUmxjRjl3YkdGdUdBVWdBU2dMTWhRdWMyVnpjMmx2Ymk1Mk1TNVRkR1Z3VUd4aGJoSWVDaFpwYm5OMFlXeHNaV1JmWkdGMFlWOWhjR2xmYVdSekdBWWdBeWdKRWlZS0htbHVjM1JoYkd4bFpGOXplWE4wWlcxZmEyNXZkMnhsWkdkbFgybGtjeGdISUFNb0NSSXRDZ3h6WVc1a1ltOTRYMmx1Wm04WUNDQUJLQXN5Rnk1elpYTnphVzl1TG5ZeExsTmhibVJpYjNoSmJtWnZFaTRLQ21OeVpXRjBaV1JmWVhRWUNTQUJLQXN5R2k1bmIyOW5iR1V1Y0hKdmRHOWlkV1l1VkdsdFpYTjBZVzF3RWk0S0NuVndaR0YwWldSZllYUVlDaUFCS0FzeUdpNW5iMjluYkdVdWNISnZkRzlpZFdZdVZHbHRaWE4wWVcxd0lrWUtDRWxqYjI1SmJtWnZFZ3NLQTNWeWJCZ0JJQUVvQ1JJV0NnNWlaMTlqYjJ4dmNsOXNhV2RvZEJnQ0lBRW9DUklWQ2cxaVoxOWpiMnh2Y2w5a1lYSnJHQU1nQVNnSkl0MEdDZ3hCWjJWdWRGTmxjM05wYjI0U0N3b0RkV2xrR0FFZ0FTZ0pFZzhLQjNWelpYSmZhV1FZQWlBQktBa1NEUW9GZEdsMGJHVVlBeUFCS0FrU0RBb0VhV052YmhnRUlBRW9DUkkxQ2hGc1lYTjBYMjFsYzNOaFoyVmZkR2x0WlJnRklBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTSEFvVWJHRnpkRjlrYVhOd2JHRjVYMjFsYzNOaFoyVVlCaUFCS0FrU01Bb01iR0Z6ZEY5eVpXRmtYMkYwR0FjZ0FTZ0xNaG91WjI5dloyeGxMbkJ5YjNSdlluVm1MbFJwYldWemRHRnRjQklwQ2daemRHRjBkWE1ZQ1NBQktBNHlHUzV6WlhOemFXOXVMbll4TGxObGMzTnBiMjVUZEdGMGRYTVNMZ29LWTNKbFlYUmxaRjloZEJnS0lBRW9DeklhTG1kdmIyZHNaUzV3Y205MGIySjFaaTVVYVcxbGMzUmhiWEFTTGdvS2RYQmtZWFJsWkY5aGRCZ0xJQUVvQ3pJYUxtZHZiMmRzWlM1d2NtOTBiMkoxWmk1VWFXMWxjM1JoYlhBU0hBb1VkVzV5WldGa1gyMWxjM05oWjJWZlkyOTFiblFZRENBQktBVVNFd29MYVhOZlptRjJiM0pwZEdVWURTQUJLQWdTSndvSmFXTnZibDlwYm1adkdBNGdBU2dMTWhRdWMyVnpjMmx2Ymk1Mk1TNUpZMjl1U1c1bWJ4SVJDZ2xwYzE5emFHRnlaV1FZRHlBQktBZ1NNZ29QWVdkbGJuUmZkR0Z6YTE5dGIyUmxHQkFnQVNnT01oa3VjMlZ6YzJsdmJpNTJNUzVCWjJWdWRGUmhjMnROYjJSbEVoWUtEbU52YzNSbFpGOWpjbVZrYVhSekdCRWdBU2dGRWhvS0VtWmxaV1JpWVdOclgzTjFZbTFwZEhSbFpCZ1NJQUVvQ0JJZUNoWndkV0pzYVhOb1pXUmZkRzlmWTI5dGJYVnVhWFI1R0JZZ0FTZ0lFaHdLRDJScGMzQnNZWGxmWTI5dWRHVnVkQmdUSUFFb0NVZ0FpQUVCRWgwS0VHUnBjM0JzWVhsZlpYWmxiblJmYVdRWUZDQUJLQWxJQVlnQkFSSWFDZzFrYVhOd2JHRjVYM1JwZEd4bEdCVWdBU2dKU0FLSUFRRVNMd29OWTI5c2JHRmliM0poZEc5eWN4Z1hJQU1vQ3pJWUxuTmxjM05wYjI0dWRqRXVRMjlzYkdGaWIzSmhkRzl5RWkwS0RHRjFaR2wwWDNOMFlYUjFjeGdZSUFFb0RqSVhMbk5sYzNOcGIyNHVkakV1UVhWa2FYUlRkR0YwZFhOQ0Vnb1FYMlJwYzNCc1lYbGZZMjl1ZEdWdWRFSVRDaEZmWkdsemNHeGhlVjlsZG1WdWRGOXBaRUlRQ2c1ZlpHbHpjR3hoZVY5MGFYUnNaVW9FQ0FnUUNWSVBiR0Z6ZEY5eVpXRmtYMmx1WkdWNElpZ0tFVWRsZEZObGMzTnBiMjVTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKSW5FS0VrZGxkRk5sYzNOcGIyNVNaWE53YjI1elpSSXBDZ2R6WlhOemFXOXVHQUVnQVNnTE1oZ3VjMlZ6YzJsdmJpNTJNUzVCWjJWdWRGTmxjM05wYjI0U01Bb0hjblZ1ZEdsdFpSZ0NJQUVvQ3pJZkxuTmxjM05wYjI0dWRqRXVRV2RsYm5SVFpYTnphVzl1VW5WdWRHbHRaU0xxQVFvVFRHbHpkRk5sYzNOcGIyNXpVbVZ4ZFdWemRCSU5DZ1ZzYVcxcGRCZ0JJQUVvQlJJT0NnWnZabVp6WlhRWUFpQUJLQVVTRHdvSGEyVjVkMjl5WkJnRElBRW9DUklwQ2daemRHRjBkWE1ZQkNBREtBNHlHUzV6WlhOemFXOXVMbll4TGxObGMzTnBiMjVUZEdGMGRYTVNHQW9MYVhOZlptRjJiM0pwZEdVWUJTQUJLQWhJQUlnQkFSSVdDZ2xwYzE5emFHRnlaV1FZQmlBQktBaElBWWdCQVJJb0NnVnRiMlJsY3hnSElBTW9EaklaTG5ObGMzTnBiMjR1ZGpFdVFXZGxiblJVWVhOclRXOWtaVUlPQ2d4ZmFYTmZabUYyYjNKcGRHVkNEQW9LWDJselgzTm9ZWEpsWkNKakNoUk1hWE4wVTJWemMybHZibk5TWlhOd2IyNXpaUklxQ2doelpYTnphVzl1Y3hnQklBTW9DeklZTG5ObGMzTnBiMjR1ZGpFdVFXZGxiblJUWlhOemFXOXVFaEFLQ0doaGMxOXVaWGgwR0FJZ0FTZ0lFZzBLQlhSdmRHRnNHQU1nQVNnREltSUtHVlZ3WkdGMFpWSmxZV1JRYjNOcGRHbHZibEpsY1hWbGMzUVNFd29MYzJWemMybHZibDkxYVdRWUFTQUJLQWtTTUFvTWJHRnpkRjl5WldGa1gyRjBHQUlnQVNnTE1ob3VaMjl2WjJ4bExuQnliM1J2WW5WbUxsUnBiV1Z6ZEdGdGNDSXRDaHBWY0dSaGRHVlNaV0ZrVUc5emFYUnBiMjVTWlhOd2IyNXpaUklQQ2dkemRXTmpaWE56R0FFZ0FTZ0lJanNLRmtaaGRtOXlhWFJsVTJWemMybHZibEpsY1hWbGMzUVNFd29MYzJWemMybHZibDkxYVdRWUFTQUJLQWtTREFvRWJtOTBaUmdDSUFFb0NTSXFDaGRHWVhadmNtbDBaVk5sYzNOcGIyNVNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUlpOEtHRlZ1Um1GMmIzSnBkR1ZUWlhOemFXOXVVbVZ4ZFdWemRCSVRDZ3R6WlhOemFXOXVYM1ZwWkJnQklBRW9DU0lzQ2hsVmJrWmhkbTl5YVhSbFUyVnpjMmx2YmxKbGMzQnZibk5sRWc4S0IzTjFZMk5sYzNNWUFTQUJLQWdpcndFS0ZGVndaR0YwWlZObGMzTnBiMjVTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKRWcwS0JYUnBkR3hsR0FJZ0FTZ0pFZ3dLQkdsamIyNFlBeUFCS0FrU0tRb0djM1JoZEhWekdBUWdBU2dPTWhrdWMyVnpjMmx2Ymk1Mk1TNVRaWE56YVc5dVUzUmhkSFZ6RWl3S0NXbGpiMjVmYVc1bWJ4Z0ZJQUVvQ3pJVUxuTmxjM05wYjI0dWRqRXVTV052YmtsdVptOUlBSWdCQVVJTUNncGZhV052Ymw5cGJtWnZJaWdLRlZWd1pHRjBaVk5sYzNOcGIyNVNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUlpc0tGRVJsYkdWMFpWTmxjM05wYjI1U1pYRjFaWE4wRWhNS0MzTmxjM05wYjI1ZmRXbGtHQUVnQVNnSklpZ0tGVVJsYkdWMFpWTmxjM05wYjI1U1pYTndiMjV6WlJJUENnZHpkV05qWlhOekdBRWdBU2dJSWlvS0UxTm9ZWEpsVTJWemMybHZibEpsY1hWbGMzUVNFd29MYzJWemMybHZibDkxYVdRWUFTQUJLQWtpSndvVVUyaGhjbVZUWlhOemFXOXVVbVZ6Y0c5dWMyVVNEd29IYzNWalkyVnpjeGdCSUFFb0NDSXNDaFZWYm5Ob1lYSmxVMlZ6YzJsdmJsSmxjWFZsYzNRU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQVNBQktBa2lLUW9XVlc1emFHRnlaVk5sYzNOcGIyNVNaWE53YjI1elpSSVBDZ2R6ZFdOalpYTnpHQUVnQVNnSUlvUUJDaFpUWlhOemFXOXVSbVZsWkdKaFkydFNaWEYxWlhOMEVoNEtCWE5qYjNKbEdBRWdBU2dGUWcrNlNBd2FDakFCTUFJd0F6QUVNQVVTR1FvSFkyOXVkR1Z1ZEJnQ0lBRW9DVUlJdWtnRmNnTVkwQThTRXdvTGMyVnpjMmx2Ymw5MWFXUVlBeUFCS0FrU0dnb1NZV3hzYjNkZlkyOXNiR1ZqZEY5cGJtWnZHQVFnQVNnSUlpNEtGMU5sYzNOcGIyNUdaV1ZrWW1GamExSmxjM0J2Ym5ObEVoTUtDMlpsWldSaVlXTnJYMmxrR0FFZ0FTZ0RJajhLRjBkbGRGUmhjMnRSZFdWMVpVbHVabTlTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKRWc4S0IzVnpaWEpmYVdRWUFpQUJLQWtpcFFFS0dFZGxkRlJoYzJ0UmRXVjFaVWx1Wm05U1pYTndiMjV6WlJJakNodGxjM1JwYldGMFpXUmZkMkZwZEY5MGFXMWxYMjFwYm5WMFpYTVlBU0FCS0FVU0ZBb0hiV1Z6YzJGblpSZ0NJQUVvQ1VnQWlBRUJFaU1LRzJWemRHbHRZWFJsWkY5M1lXbDBYM1JwYldWZmMyVmpiMjVrY3hnRElBRW9CUklkQ2hWdVpYaDBYMmx1ZEdWeWRtRnNYM05sWTI5dVpITVlCQ0FCS0FWQ0Nnb0lYMjFsYzNOaFoyVWlwUUlLSEV4cGMzUlNaV052YlcxbGJtUlZjMlZqWVhObGMxSmxjWFZsYzNRU0dBb0ZiR2x0YVhRWUFTQUJLQU5DQ2JwSUJpSUVHR1FnQUJJWENnWnZabVp6WlhRWUFpQUJLQU5DQjdwSUJDSUNLQUFTTkFvTmNtVnpiM1Z5WTJWZmRIbHdaUmdESUFFb0RqSVlMbk5sYzNOcGIyNHVkakV1VW1WemIzVnlZMlZVZVhCbFNBQ0lBUUVTT0FvUGNtVnpiM1Z5WTJWZmMyOTFjbU5sR0FRZ0FTZ09NaG91YzJWemMybHZiaTUyTVM1U1pYTnZkWEpqWlZOdmRYSmpaVWdCaUFFQkVoTUtCbXh2WTJGc1pSZ0ZJQUVvQ1VnQ2lBRUJFaElLQldkeWIzVndHQVlnQVNnSlNBT0lBUUZDRUFvT1gzSmxjMjkxY21ObFgzUjVjR1ZDRWdvUVgzSmxjMjkxY21ObFgzTnZkWEpqWlVJSkNnZGZiRzlqWVd4bFFnZ0tCbDluY205MWNDSmlDaDFNYVhOMFVtVmpiMjF0Wlc1a1ZYTmxZMkZ6WlhOU1pYTndiMjV6WlJJeUNnaDFjMlZqWVhObGN4Z0JJQU1vQ3pJZ0xuTmxjM05wYjI0dWRqRXVRMjl0YlhWdWFYUjVWWE5sWTJGelpVbHVabThTRFFvRmRHOTBZV3dZQWlBQktBTWluZ0VLSGxOb1lYSmxVMlZ6YzJsdmJsUnZRMjl0YlhWdWFYUjVVbVZ4ZFdWemRCSWNDZ3R6WlhOemFXOXVYM1ZwWkJnQklBRW9DVUlIdWtnRWNnSVFBUklaQ2dWMGFYUnNaUmdDSUFFb0NVSUt1a2dIY2dVUUFSai9BUklmQ2cxMWMyVnlYM0YxWlhOMGFXOXVHQU1nQVNnSlFnaTZTQVZ5QXhpUVRoSWlDaEJ5WldOdmJXMWxibVJmY21WaGMyOXVHQVFnQVNnSlFnaTZTQVZ5QXhpUVRpSTFDaDlUYUdGeVpWTmxjM05wYjI1VWIwTnZiVzExYm1sMGVWSmxjM0J2Ym5ObEVoSUtDbkpsWTI5eVpGOTFhV1FZQVNBQktBa2lRZ29pVlc1emFHRnlaVk5sYzNOcGIyNUdjbTl0UTI5dGJYVnVhWFI1VW1WeGRXVnpkQkljQ2d0elpYTnphVzl1WDNWcFpCZ0JJQUVvQ1VJSHVrZ0VjZ0lRQVNJbENpTlZibk5vWVhKbFUyVnpjMmx2YmtaeWIyMURiMjF0ZFc1cGRIbFNaWE53YjI1elpTS3FBUW9jVTJoaGNtVlRjR0ZqWlZSdlEyOXRiWFZ1YVhSNVVtVnhkV1Z6ZEJJYUNnbHpjR0ZqWlY5MWFXUVlBU0FCS0FsQ0I3cElCSElDRUFFU0hBb0xjMlZ6YzJsdmJsOTFhV1FZQWlBQktBbENCN3BJQkhJQ0VBRVNHUW9GZEdsMGJHVVlBeUFCS0FsQ0NycElCM0lGRUFFWS93RVNFUW9KYzNCaFkyVmZkWEpzR0FRZ0FTZ0pFaUlLRUhKbFkyOXRiV1Z1WkY5eVpXRnpiMjRZQlNBQktBbENDTHBJQlhJREdKQk9Jak1LSFZOb1lYSmxVM0JoWTJWVWIwTnZiVzExYm1sMGVWSmxjM0J2Ym5ObEVoSUtDbkpsWTI5eVpGOTFhV1FZQVNBQktBa2lYQW9nVlc1emFHRnlaVk53WVdObFJuSnZiVU52YlcxMWJtbDBlVkpsY1hWbGMzUVNHZ29KYzNCaFkyVmZkV2xrR0FFZ0FTZ0pRZ2U2U0FSeUFoQUJFaHdLQzNObGMzTnBiMjVmZFdsa0dBSWdBU2dKUWdlNlNBUnlBaEFCSWlNS0lWVnVjMmhoY21WVGNHRmpaVVp5YjIxRGIyMXRkVzVwZEhsU1pYTndiMjV6WlNJOUNnMVRaV0Z5WTJoU1pYRjFaWE4wRWh3S0MzTmxjM05wYjI1ZmRXbGtHQUVnQVNnSlFnZTZTQVJ5QWhBQkVnNEtCbkYxWlhKNWN4Z0NJQU1vQ1NMQkFRb01VMlZoY21Ob1VtVnpkV3gwRWhBS0NIQnZjMmwwYVc5dUdBRWdBU2dERWhVS0RYSmxaR2x5WldOMFgyeHBibXNZQWlBQktBa1NJUW9aYzI1cGNIQmxkRjlvYVdkb2JHbG5hSFJsWkY5M2IzSmtjeGdESUFNb0NSSU5DZ1YwYVhSc1pSZ0VJQUVvQ1JJTUNnUnNhVzVyR0FVZ0FTZ0pFaFlLRG1ScGMzQnNZWGxsWkY5c2FXNXJHQVlnQVNnSkVnOEtCMlpoZG1samIyNFlCeUFCS0FrU0R3b0hjMjVwY0hCbGRCZ0lJQUVvQ1JJT0NnWnpiM1Z5WTJVWUNTQUJLQWtpUEFvUlUyVmhjbU5vVW1WemRXeDBSM0p2ZFhBU0p3b0ZhWFJsYlhNWUFTQURLQXN5R0M1elpYTnphVzl1TG5ZeExsTmxZWEpqYUZKbGMzVnNkQ0t2QVFvT1UyVmhjbU5vVW1WemNHOXVjMlVTUndvUGIzSm5ZVzVwWTE5eVpYTjFiSFJ6R0FFZ0F5Z0xNaTR1YzJWemMybHZiaTUyTVM1VFpXRnlZMmhTWlhOd2IyNXpaUzVQY21kaGJtbGpVbVZ6ZFd4MGMwVnVkSEo1R2xRS0UwOXlaMkZ1YVdOU1pYTjFiSFJ6Ulc1MGNua1NDd29EYTJWNUdBRWdBU2dKRWl3S0JYWmhiSFZsR0FJZ0FTZ0xNaDB1YzJWemMybHZiaTUyTVM1VFpXRnlZMmhTWlhOMWJIUkhjbTkxY0RvQ09BRWlPd29rUTI5dGJYVnVhWFI1VTJWemMybHZibE5vWVhKbFpGQnlaWFpwWlhkU1pYRjFaWE4wRWhNS0MzTmxjM05wYjI1ZmRXbGtHQUVnQVNnSklyY0JDaVZEYjIxdGRXNXBkSGxUWlhOemFXOXVVMmhoY21Wa1VISmxkbWxsZDFKbGMzQnZibk5sRWhJS0NuSmxZMjl5WkY5MWFXUVlBU0FCS0FrU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQWlBQktBa1NEUW9GZEdsMGJHVVlBeUFCS0FrU0dBb1FjbVZqYjIxdFpXNWtYM0psWVhOdmJoZ0VJQUVvQ1JJVENndGtaWE5qY21sd2RHbHZiaGdGSUFFb0NSSW5DZ1p6ZEdGMGRYTVlCaUFCS0E0eUZ5NXpaWE56YVc5dUxuWXhMa0YxWkdsMFUzUmhkSFZ6SWt3S0lrTnZiVzExYm1sMGVWTndZV05sVTJoaGNtVmtVSEpsZG1sbGQxSmxjWFZsYzNRU0V3b0xjMlZ6YzJsdmJsOTFhV1FZQVNBQktBa1NFUW9KYzNCaFkyVmZkV2xrR0FJZ0FTZ0pJck1CQ2lORGIyMXRkVzVwZEhsVGNHRmpaVk5vWVhKbFpGQnlaWFpwWlhkU1pYTndiMjV6WlJJU0NncHlaV052Y21SZmRXbGtHQUVnQVNnSkVoRUtDWE53WVdObFgzVnBaQmdDSUFFb0NSSU5DZ1YwYVhSc1pSZ0RJQUVvQ1JJWUNoQnlaV052YlcxbGJtUmZjbVZoYzI5dUdBUWdBU2dKRWhNS0MyUmxjMk55YVhCMGFXOXVHQVVnQVNnSkVpY0tCbk4wWVhSMWN4Z0dJQUVvRGpJWExuTmxjM05wYjI0dWRqRXVRWFZrYVhSVGRHRjBkWE1pUXdvV1UzbHVZMU5sYzNOcGIyNUdhV3hsVW1WeGRXVnpkQklwQ2dSbWFXeGxHQUVnQVNnTE1oc3VjMlZ6YzJsdmJpNTJNUzVUWlhOemFXOXVSbWxzWlVsMFpXMGlHUW9YVTNsdVkxTmxjM05wYjI1R2FXeGxVbVZ6Y0c5dWMyVWlWd29ZVlhCa1lYUmxVMlZ6YzJsdmJrWnBiR1ZTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKRWhRS0RITmhibVJpYjNoZmNHRjBhQmdDSUFFb0NSSVFDZ2htYVd4bFgzVnliQmdESUFFb0NTSWJDaGxWY0dSaGRHVlRaWE56YVc5dVJtbHNaVkpsYzNCdmJuTmxJb0FCQ2hkTWFYTjBVMlZ6YzJsdmJrWnBiR1Z6VW1WeGRXVnpkQklYQ2dwelpYTnphVzl1WDJsa0dBRWdBU2dKU0FDSUFRRVNFd29HYzJoaGNtVmtHQUlnQVNnSVNBR0lBUUVTRGdvR2IyWm1jMlYwR0FNZ0FTZ0ZFZzBLQld4cGJXbDBHQVFnQVNnRlFnMEtDMTl6WlhOemFXOXVYMmxrUWdrS0IxOXphR0Z5WldRaVpRb1lUR2x6ZEZObGMzTnBiMjVHYVd4bGMxSmxjM0J2Ym5ObEVqb0tCV1pwYkdWekdBRWdBeWdMTWlzdWMyVnpjMmx2Ymk1Mk1TNVRaWE56YVc5dVJtbHNaVWwwWlcxWGFYUm9VMlZ6YzJsdmJsUnBkR3hsRWcwS0JYUnZkR0ZzR0FJZ0FTZ0RJbGtLRjFOb1lYSmxVMlZ6YzJsdmJrWnBiR1ZTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKRWhRS0RITmhibVJpYjNoZmNHRjBhQmdDSUFFb0NSSVRDZ3R6YUdGeVpWOTBhWFJzWlJnRElBRW9DU0lzQ2hoVGFHRnlaVk5sYzNOcGIyNUdhV3hsVW1WemNHOXVjMlVTRUFvSWMyaGhjbVZmYVdRWUFTQUJLQWtpUmdvWlZXNXphR0Z5WlZObGMzTnBiMjVHYVd4bFVtVnhkV1Z6ZEJJVENndHpaWE56YVc5dVgzVnBaQmdCSUFFb0NSSVVDZ3h6WVc1a1ltOTRYM0JoZEdnWUFpQUJLQWtpSEFvYVZXNXphR0Z5WlZObGMzTnBiMjVHYVd4bFVtVnpjRzl1YzJVaVN3b2VSMlYwVTJWemMybHZia1pwYkdWVmNHeHZZV1JWY214U1pYRjFaWE4wRWhNS0MzTmxjM05wYjI1ZmRXbGtHQUVnQVNnSkVoUUtESE5oYm1SaWIzaGZjR0YwYUJnQ0lBRW9DU0pHQ2g5SFpYUlRaWE56YVc5dVJtbHNaVlZ3Ykc5aFpGVnliRkpsYzNCdmJuTmxFaElLQ25Wd2JHOWhaRjkxY213WUFTQUJLQWtTRHdvSFkyUnVYM1Z5YkJnQ0lBRW9DU0pEQ2haSFpYUlBjbWxuYVc1aGJFWnBiR1ZTWlhGMVpYTjBFaE1LQzNObGMzTnBiMjVmZFdsa0dBRWdBU2dKRWhRS0RITmhibVJpYjNoZmNHRjBhQmdDSUFFb0NTSXJDaGRIWlhSUGNtbG5hVzVoYkVacGJHVlNaWE53YjI1elpSSVFDZ2htYVd4bFgzVnliQmdCSUFFb0NTSkhDaHBTWlhOMGIzSmxUM0pwWjJsdVlXeEdhV3hsVW1WeGRXVnpkQklUQ2d0elpYTnphVzl1WDNWcFpCZ0JJQUVvQ1JJVUNneHpZVzVrWW05NFgzQmhkR2dZQWlBQktBa2lIUW9iVW1WemRHOXlaVTl5YVdkcGJtRnNSbWxzWlZKbGMzQnZibk5sSW5JS0kwTnlaV0YwWlZObGMzTnBiMjVHYVd4bFEyOXVkbVZ5ZEZSaGMydFNaWEYxWlhOMEVqZ0tER052Ym5abGNuUmZkSGx3WlJnQklBRW9EaklpTG5ObGMzTnBiMjR1ZGpFdVUyVnpjMmx2YmtacGJHVkRiMjUyWlhKMFZIbHdaUklSQ2dsbWNtOXRYM1Z5YkhNWUFpQURLQWtpYmdva1EzSmxZWFJsVTJWemMybHZia1pwYkdWRGIyNTJaWEowVkdGemExSmxjM0J2Ym5ObEVoQUtDSFJoYzJ0ZmRXbGtHQUVnQVNnSkVqUUtCbk4wWVhSMWN4Z0NJQUVvRGpJa0xuTmxjM05wYjI0dWRqRXVVMlZ6YzJsdmJrWnBiR1ZEYjI1MlpYSjBVM1JoZEhWeklqVUtJVXh2YjNCVFpYTnphVzl1Um1sc1pVTnZiblpsY25SVVlYTnJVbVZ4ZFdWemRCSVFDZ2gwWVhOclgzVnBaQmdCSUFFb0NTTElBUW9pVEc5dmNGTmxjM05wYjI1R2FXeGxRMjl1ZG1WeWRGUmhjMnRTWlhOd2IyNXpaUklRQ2doMFlYTnJYM1ZwWkJnQklBRW9DUkkwQ2daemRHRjBkWE1ZQWlBQktBNHlKQzV6WlhOemFXOXVMbll4TGxObGMzTnBiMjVHYVd4bFEyOXVkbVZ5ZEZOMFlYUjFjeElaQ2d4emRHRjBkWE5mWlhKeWIzSVlBeUFCS0FsSUFJZ0JBUklQQ2dkMGIxOTFjbXh6R0FRZ0F5Z0pFaDBLRlc1bGVIUmZhVzUwWlhKMllXeGZjMlZqYjI1a2N4Z0ZJQUVvQlVJUENnMWZjM1JoZEhWelgyVnljbTl5S3BFRENnMVRaWE56YVc5dVUzUmhkSFZ6RWg0S0dsTkZVMU5KVDA1ZlUxUkJWRlZUWDFWT1UxQkZRMGxHU1VWRUVBQVNHZ29XVTBWVFUwbFBUbDlUVkVGVVZWTmZRMUpGUVZSRlJCQUJFaHNLRjFORlUxTkpUMDVmVTFSQlZGVlRYMEZTUTBoSlZrVkVFQUlTR2dvV1UwVlRVMGxQVGw5VFZFRlVWVk5mUkVWTVJWUkZSQkFERWhvS0ZsTkZVMU5KVDA1ZlUxUkJWRlZUWDFkQlNWUkpUa2NRQlJJYUNoWlRSVk5UU1U5T1gxTlVRVlJWVTE5U1ZVNU9TVTVIRUFZU0dnb1dVMFZUVTBsUFRsOVRWRUZVVlZOZlUxUlBVRkJGUkJBSEVoZ0tGRk5GVTFOSlQwNWZVMVJCVkZWVFgwVlNVazlTRUFnU0d3b1hVMFZUVTBsUFRsOVRWRUZVVlZOZlNVNWZVVlZGVlVVUUNSSXpDaTlUUlZOVFNVOU9YMU5VUVZSVlUxOURUMHhNUVVKUFVrRlVTVTlPWDFCRlVrMUpVMU5KVDA1ZlEwaEJUa2RGUkJBS0VpTUtIMU5GVTFOSlQwNWZVMVJCVkZWVFgwNUZWMTlEVDB4TVFVSlBVa0ZVVDFJUUN4SW1DaUpUUlZOVFNVOU9YMU5VUVZSVlUxOVNSVTFQVmtWZlEwOU1URUZDVDFKQlZFOVNFQXd5eWhjS0RsTmxjM05wYjI1VFpYSjJhV05sRWswS0NrZGxkRk5sYzNOcGIyNFNIUzV6WlhOemFXOXVMbll4TGtkbGRGTmxjM05wYjI1U1pYRjFaWE4wR2g0dWMyVnpjMmx2Ymk1Mk1TNUhaWFJUWlhOemFXOXVVbVZ6Y0c5dWMyVWlBQkpUQ2d4TWFYTjBVMlZ6YzJsdmJuTVNIeTV6WlhOemFXOXVMbll4TGt4cGMzUlRaWE56YVc5dWMxSmxjWFZsYzNRYUlDNXpaWE56YVc5dUxuWXhMa3hwYzNSVFpYTnphVzl1YzFKbGMzQnZibk5sSWdBU1pRb1NWWEJrWVhSbFVtVmhaRkJ2YzJsMGFXOXVFaVV1YzJWemMybHZiaTUyTVM1VmNHUmhkR1ZTWldGa1VHOXphWFJwYjI1U1pYRjFaWE4wR2lZdWMyVnpjMmx2Ymk1Mk1TNVZjR1JoZEdWU1pXRmtVRzl6YVhScGIyNVNaWE53YjI1elpTSUFFbHdLRDBaaGRtOXlhWFJsVTJWemMybHZiaElpTG5ObGMzTnBiMjR1ZGpFdVJtRjJiM0pwZEdWVFpYTnphVzl1VW1WeGRXVnpkQm9qTG5ObGMzTnBiMjR1ZGpFdVJtRjJiM0pwZEdWVFpYTnphVzl1VW1WemNHOXVjMlVpQUJKaUNoRlZia1poZG05eWFYUmxVMlZ6YzJsdmJoSWtMbk5sYzNOcGIyNHVkakV1Vlc1R1lYWnZjbWwwWlZObGMzTnBiMjVTWlhGMVpYTjBHaVV1YzJWemMybHZiaTUyTVM1VmJrWmhkbTl5YVhSbFUyVnpjMmx2YmxKbGMzQnZibk5sSWdBU1Znb05WWEJrWVhSbFUyVnpjMmx2YmhJZ0xuTmxjM05wYjI0dWRqRXVWWEJrWVhSbFUyVnpjMmx2YmxKbGNYVmxjM1FhSVM1elpYTnphVzl1TG5ZeExsVndaR0YwWlZObGMzTnBiMjVTWlhOd2IyNXpaU0lBRWxZS0RVUmxiR1YwWlZObGMzTnBiMjRTSUM1elpYTnphVzl1TG5ZeExrUmxiR1YwWlZObGMzTnBiMjVTWlhGMVpYTjBHaUV1YzJWemMybHZiaTUyTVM1RVpXeGxkR1ZUWlhOemFXOXVVbVZ6Y0c5dWMyVWlBQkpUQ2d4VGFHRnlaVk5sYzNOcGIyNFNIeTV6WlhOemFXOXVMbll4TGxOb1lYSmxVMlZ6YzJsdmJsSmxjWFZsYzNRYUlDNXpaWE56YVc5dUxuWXhMbE5vWVhKbFUyVnpjMmx2YmxKbGMzQnZibk5sSWdBU1dRb09WVzV6YUdGeVpWTmxjM05wYjI0U0lTNXpaWE56YVc5dUxuWXhMbFZ1YzJoaGNtVlRaWE56YVc5dVVtVnhkV1Z6ZEJvaUxuTmxjM05wYjI0dWRqRXVWVzV6YUdGeVpWTmxjM05wYjI1U1pYTndiMjV6WlNJQUVsb0tEMU5sYzNOcGIyNUdaV1ZrWW1GamF4SWlMbk5sYzNOcGIyNHVkakV1VTJWemMybHZia1psWldSaVlXTnJVbVZ4ZFdWemRCb2pMbk5sYzNOcGIyNHVkakV1VTJWemMybHZia1psWldSaVlXTnJVbVZ6Y0c5dWMyVVNYd29RUjJWMFZHRnphMUYxWlhWbFNXNW1ieElqTG5ObGMzTnBiMjR1ZGpFdVIyVjBWR0Z6YTFGMVpYVmxTVzVtYjFKbGNYVmxjM1FhSkM1elpYTnphVzl1TG5ZeExrZGxkRlJoYzJ0UmRXVjFaVWx1Wm05U1pYTndiMjV6WlNJQUVtd0tGVXhwYzNSU1pXTnZiVzFsYm1SVmMyVmpZWE5sY3hJb0xuTmxjM05wYjI0dWRqRXVUR2x6ZEZKbFkyOXRiV1Z1WkZWelpXTmhjMlZ6VW1WeGRXVnpkQm9wTG5ObGMzTnBiMjR1ZGpFdVRHbHpkRkpsWTI5dGJXVnVaRlZ6WldOaGMyVnpVbVZ6Y0c5dWMyVVNkQW9YVTJoaGNtVlRaWE56YVc5dVZHOURiMjF0ZFc1cGRIa1NLaTV6WlhOemFXOXVMbll4TGxOb1lYSmxVMlZ6YzJsdmJsUnZRMjl0YlhWdWFYUjVVbVZ4ZFdWemRCb3JMbk5sYzNOcGIyNHVkakV1VTJoaGNtVlRaWE56YVc5dVZHOURiMjF0ZFc1cGRIbFNaWE53YjI1elpTSUFFb0FCQ2h0VmJuTm9ZWEpsVTJWemMybHZia1p5YjIxRGIyMXRkVzVwZEhrU0xpNXpaWE56YVc5dUxuWXhMbFZ1YzJoaGNtVlRaWE56YVc5dVJuSnZiVU52YlcxMWJtbDBlVkpsY1hWbGMzUWFMeTV6WlhOemFXOXVMbll4TGxWdWMyaGhjbVZUWlhOemFXOXVSbkp2YlVOdmJXMTFibWwwZVZKbGMzQnZibk5sSWdBU2Jnb1ZVMmhoY21WVGNHRmpaVlJ2UTI5dGJYVnVhWFI1RWlndWMyVnpjMmx2Ymk1Mk1TNVRhR0Z5WlZOd1lXTmxWRzlEYjIxdGRXNXBkSGxTWlhGMVpYTjBHaWt1YzJWemMybHZiaTUyTVM1VGFHRnlaVk53WVdObFZHOURiMjF0ZFc1cGRIbFNaWE53YjI1elpTSUFFbm9LR1ZWdWMyaGhjbVZUY0dGalpVWnliMjFEYjIxdGRXNXBkSGtTTEM1elpYTnphVzl1TG5ZeExsVnVjMmhoY21WVGNHRmpaVVp5YjIxRGIyMXRkVzVwZEhsU1pYRjFaWE4wR2kwdWMyVnpjMmx2Ymk1Mk1TNVZibk5vWVhKbFUzQmhZMlZHY205dFEyOXRiWFZ1YVhSNVVtVnpjRzl1YzJVaUFCSkJDZ1pUWldGeVkyZ1NHUzV6WlhOemFXOXVMbll4TGxObFlYSmphRkpsY1hWbGMzUWFHaTV6WlhOemFXOXVMbll4TGxObFlYSmphRkpsYzNCdmJuTmxJZ0FTaGdFS0hVTnZiVzExYm1sMGVWVnpaVU5oYzJWVGFHRnlaV1JRY21WMmFXVjNFakF1YzJWemMybHZiaTUyTVM1RGIyMXRkVzVwZEhsVFpYTnphVzl1VTJoaGNtVmtVSEpsZG1sbGQxSmxjWFZsYzNRYU1TNXpaWE56YVc5dUxuWXhMa052YlcxMWJtbDBlVk5sYzNOcGIyNVRhR0Z5WldSUWNtVjJhV1YzVW1WemNHOXVjMlVpQUJLQUFRb2JRMjl0YlhWdWFYUjVVM0JoWTJWVGFHRnlaV1JRY21WMmFXVjNFaTR1YzJWemMybHZiaTUyTVM1RGIyMXRkVzVwZEhsVGNHRmpaVk5vWVhKbFpGQnlaWFpwWlhkU1pYRjFaWE4wR2k4dWMyVnpjMmx2Ymk1Mk1TNURiMjF0ZFc1cGRIbFRjR0ZqWlZOb1lYSmxaRkJ5WlhacFpYZFNaWE53YjI1elpTSUFFbHdLRDFONWJtTlRaWE56YVc5dVJtbHNaUklpTG5ObGMzTnBiMjR1ZGpFdVUzbHVZMU5sYzNOcGIyNUdhV3hsVW1WeGRXVnpkQm9qTG5ObGMzTnBiMjR1ZGpFdVUzbHVZMU5sYzNOcGIyNUdhV3hsVW1WemNHOXVjMlVpQUJKaUNoRlZjR1JoZEdWVFpYTnphVzl1Um1sc1pSSWtMbk5sYzNOcGIyNHVkakV1VlhCa1lYUmxVMlZ6YzJsdmJrWnBiR1ZTWlhGMVpYTjBHaVV1YzJWemMybHZiaTUyTVM1VmNHUmhkR1ZUWlhOemFXOXVSbWxzWlZKbGMzQnZibk5sSWdBU1h3b1FUR2x6ZEZObGMzTnBiMjVHYVd4bGN4SWpMbk5sYzNOcGIyNHVkakV1VEdsemRGTmxjM05wYjI1R2FXeGxjMUpsY1hWbGMzUWFKQzV6WlhOemFXOXVMbll4TGt4cGMzUlRaWE56YVc5dVJtbHNaWE5TWlhOd2IyNXpaU0lBRWw4S0VGTm9ZWEpsVTJWemMybHZia1pwYkdVU0l5NXpaWE56YVc5dUxuWXhMbE5vWVhKbFUyVnpjMmx2YmtacGJHVlNaWEYxWlhOMEdpUXVjMlZ6YzJsdmJpNTJNUzVUYUdGeVpWTmxjM05wYjI1R2FXeGxVbVZ6Y0c5dWMyVWlBQkpsQ2hKVmJuTm9ZWEpsVTJWemMybHZia1pwYkdVU0pTNXpaWE56YVc5dUxuWXhMbFZ1YzJoaGNtVlRaWE56YVc5dVJtbHNaVkpsY1hWbGMzUWFKaTV6WlhOemFXOXVMbll4TGxWdWMyaGhjbVZUWlhOemFXOXVSbWxzWlZKbGMzQnZibk5sSWdBU2RBb1hSMlYwVTJWemMybHZia1pwYkdWVmNHeHZZV1JWY213U0tpNXpaWE56YVc5dUxuWXhMa2RsZEZObGMzTnBiMjVHYVd4bFZYQnNiMkZrVlhKc1VtVnhkV1Z6ZEJvckxuTmxjM05wYjI0dWRqRXVSMlYwVTJWemMybHZia1pwYkdWVmNHeHZZV1JWY214U1pYTndiMjV6WlNJQUVsd0tEMGRsZEU5eWFXZHBibUZzUm1sc1pSSWlMbk5sYzNOcGIyNHVkakV1UjJWMFQzSnBaMmx1WVd4R2FXeGxVbVZ4ZFdWemRCb2pMbk5sYzNOcGIyNHVkakV1UjJWMFQzSnBaMmx1WVd4R2FXeGxVbVZ6Y0c5dWMyVWlBQkpvQ2hOU1pYTjBiM0psVDNKcFoybHVZV3hHYVd4bEVpWXVjMlZ6YzJsdmJpNTJNUzVTWlhOMGIzSmxUM0pwWjJsdVlXeEdhV3hsVW1WeGRXVnpkQm9uTG5ObGMzTnBiMjR1ZGpFdVVtVnpkRzl5WlU5eWFXZHBibUZzUm1sc1pWSmxjM0J2Ym5ObElnQVNnd0VLSEVOeVpXRjBaVk5sYzNOcGIyNUdhV3hsUTI5dWRtVnlkRlJoYzJzU0x5NXpaWE56YVc5dUxuWXhMa055WldGMFpWTmxjM05wYjI1R2FXeGxRMjl1ZG1WeWRGUmhjMnRTWlhGMVpYTjBHakF1YzJWemMybHZiaTUyTVM1RGNtVmhkR1ZUWlhOemFXOXVSbWxzWlVOdmJuWmxjblJVWVhOclVtVnpjRzl1YzJVaUFCSjlDaHBNYjI5d1UyVnpjMmx2YmtacGJHVkRiMjUyWlhKMFZHRnpheEl0TG5ObGMzTnBiMjR1ZGpFdVRHOXZjRk5sYzNOcGIyNUdhV3hsUTI5dWRtVnlkRlJoYzJ0U1pYRjFaWE4wR2k0dWMyVnpjMmx2Ymk1Mk1TNU1iMjl3VTJWemMybHZia1pwYkdWRGIyNTJaWEowVkdGemExSmxjM0J2Ym5ObElnQkNxQUVLRG1OdmJTNXpaWE56YVc5dUxuWXhRZ3hUWlhOemFXOXVVSEp2ZEc5UUFWby9aMmwwYkdGaUxtMXZibWxqWVM1amJpOTJhV1JoTDNOa2F5OWlhWHB6WlhKMlpYSXRaMjh1WjJsMEwzTmxjM05wYjI0dmRqRTdjMlZ6YzJsdmJuWXhvZ0lEVTFoWXFnSUtVMlZ6YzJsdmJpNVdNY29DQ2xObGMzTnBiMjVjVmpIaUFoWlRaWE56YVc5dVhGWXhYRWRRUWsxbGRHRmtZWFJoNmdJTFUyVnpjMmx2YmpvNlZqRmlCbkJ5YjNSdk13IixbWWUsSGUsdGUsS25dKSxTcD1IKHZwLDApLENwPSh0LHtoYW5kbGVVbmF1dGg6ZSxiZWZvcmVSZXF1ZXN0Om4saGFuZGxlUGVybWlzc2lvbkRlbmllZDpsfT17fSk9PmQyKHtiYXNlVXJsOnQsaW50ZXJjZXB0b3JzOltpPT5hc3luYyByPT57dHJ5e3JldHVybiBhd2FpdChuPT1udWxsP3ZvaWQgMDpuKHIuaGVhZGVyKSksYXdhaXQgaShyKX1jYXRjaChvKXt0aHJvdyBvIGluc3RhbmNlb2Ygc2UmJm8uY29kZT09PVAuVW5hdXRoZW50aWNhdGVkJiYoZT09bnVsbHx8ZSgpKSxvIGluc3RhbmNlb2Ygc2UmJm8uY29kZT09PVAuUGVybWlzc2lvbkRlbmllZCYmKGw9PW51bGx8fGwobykpLG99fV19KSxXcD0odCxlKT0+e2NvbnN0IG49Q3AodCxlKTtyZXR1cm57UGxheUNhcmQ6VChzMixuKSxQbGF5Q2FyZEFkbWluOlQoZzIsbiksSTE4blRlbXBsYXRlQWRtaW5TZXJ2aWNlOlQoYjIsbiksRmlsZVNlcnZpY2U6VChtMixuKSxBZG1pbkZpbGVTZXJ2aWNlOlQoQTIsbiksTm90aWZpZXJTZXJ2aWNlOlQoWjIsbiksTm90aWZpY2F0aW9uU2VydmljZTpUKEcyLG4pLE5vdGlmaWNhdGlvbkFkbWluU2VydmljZTpUKEkyLG4pLEUyQkNvbmZpZ1NlcnZpY2U6VChFMixuKSxQdWJsaWNBY3Rpdml0eVNlcnZpY2U6VCh2MixuKSxBY3Rpdml0eUFkbWluU2VydmljZTpUKEMyLG4pLExpdmVFdmVudEFkbWluU2VydmljZTpUKEIyLG4pLExpdmVFdmVudFNlcnZpY2U6VChGMixuKSxMaXZlRXZlbnRQdWJsaWNTZXJ2aWNlOlQoVTIsbiksVXNlckF1dGhTZXJ2aWNlOlQoSjIsbiksVXNlckFkbWluU2VydmljZTpUKHcyLG4pLFVzZXJQdWJsaWNTZXJ2aWNlOlQoUTIsbiksVXNlckZlZWRCYWNrVGFnQWRtaW46VChLMixuKSxTdWJzY3JpcHRpb25TZXJ2aWNlOlQoazIsbiksVXNlclNlcnZpY2U6VChNMixuKSxVc2VyQXV0aFB1YmxpY1NlcnZpY2U6VChEMixuKSxEYXNoYm9hcmRUb29sU2VydmljZTpUKF8yLG4pLFRlYW1NYW5hZ2VtZW50U2VydmljZTpUKE8yLG4pLFRlYW1TZXJ2aWNlOlQoJDIsbiksRWR1VGVhbUFkbWluU2VydmljZTpUKGVwLG4pLFRlYW1QdWJsaWNTZXJ2aWNlOlQobnAsbiksS25vd2xlZGdlQWRtaW5TZXJ2aWNlOlQocnAsbiksS25vd2xlZGdlU2VydmljZTpUKGxwLG4pLFNwYWNlUHVibGljU2VydmljZTpUKGNwLG4pLFNwYWNlQWRtaW5TZXJ2aWNlOlQoc3AsbiksU3BhY2VTZXJ2aWNlOlQob3AsbiksQXBpUHJveHlBZG1pblNlcnZpY2U6VChicCxuKSxBcGlQcm94eVNlcnZpY2U6VChncCxuKSxTZXNzaW9uQWRtaW5TZXJ2aWNlOlQobXAsbiksQ29tbXVuaXR5SW50ZXJhY3Rpb25TZXJ2aWNlOlQoQXAsbiksU2Vzc2lvbkNvbGxhYm9yYXRlU2VydmljZTpUKFpwLG4pLFNlc3Npb25QdWJsaWNTZXJ2aWNlOlQoWHAsbiksU2Vzc2lvbkNvbGxhYm9yYXRlUHVibGljU2VydmljZTpUKFJwLG4pLENvbW11bml0eUFkbWluU2VydmljZTpUKHlwLG4pLFNlc3Npb25TZXJ2aWNlOlQoU3Asbil9fSxCcD1TZS5hcGlIb3N0LEh0PUJ1KCk7bGV0IFV0LE5wPW5ldyBQcm9taXNlKHQ9PntVdD10fSk7Y29uc3QgeWw9V3AoQnAse2JlZm9yZVJlcXVlc3Q6YXN5bmMgdD0+e2NvbnN0IGU9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7bGV0IG49IiI7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspe2NvbnN0IGk9ZVtsXSxbcixvXT1pLnNwbGl0KCI9Iik7aWYoKHI9PW51bGw/dm9pZCAwOnIudHJpbSgpKT09PVZuLmFjY2Vzc1Rva2VuKXtuPW87YnJlYWt9fW4mJih0LnNldCgiYXV0aG9yaXphdGlvbiIsYEJlYXJlciAke259YCksdC5zZXQoIlgtQXBpLUtleSIsbikpLHQuc2V0KCJ4LWNsaWVudC10eXBlIiwic3BhY2UiKX19KTthc3luYyBmdW5jdGlvbiBGcCgpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zLmdldCgiY29kZSIpO1ZpKFsiY29kZSJdKTtjb25zdCBuPWFzeW5jIGk9Pnt0cnl7Y29uc3R7YWNjZXNzVG9rZW46cn09YXdhaXQgeWwuU3BhY2VQdWJsaWNTZXJ2aWNlLmdldEVkaXRTcGFjZVNpdGVUb2tlbih7ZWRpdFNwYWNlQ29kZTppfSksbz1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtsZXQgYTtjb25zdCBjPW8uaG9zdG5hbWUuc3BsaXQoIi4iKTtjLnNoaWZ0KCksYy5sZW5ndGg+MCYmKGE9Ii4iK2Muam9pbigiLiIpKSwkbi5zZXRDb29raWUoVm4uYWNjZXNzVG9rZW4scix7ZGF5c1RvRXhwaXJlOjM2NSxkb21haW46YX0pLFV0KCEwKX1jYXRjaHskbi5kZWxldGVDb29raWUoVm4uYWNjZXNzVG9rZW4pLFV0KCExKTtyZXR1cm59ZmluYWxseXtIdC5tYXJrUmVhZHkoKX19O2lmKCRuLmdldENvb2tpZShWbi5hY2Nlc3NUb2tlbikpdHJ5e2NvbnN0e2NhbkVkaXQ6aX09YXdhaXQgeWwuU3BhY2VTZXJ2aWNlLmhhc1NwYWNlRWRpdFBlcm1pc3Npb24oe3NwYWNlSWQ6U2Uuc3BhY2VJZH0pO2k/KEh0Lm1hcmtSZWFkeSgpLFV0KCEwKSk6ZT9hd2FpdCBuKGUpOihIdC5tYXJrUmVhZHkoKSxVdCghMSkpfWNhdGNoeyRuLmRlbGV0ZUNvb2tpZShWbi5hY2Nlc3NUb2tlbiksZT9hd2FpdCBuKGUpOihIdC5tYXJrUmVhZHkoKSxVdCghMSkpfWVsc2UgZT9hd2FpdCBuKGUpOihIdC5tYXJrUmVhZHkoKSxVdCghMSkpfXZhciBubD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnt9O2Z1bmN0aW9uIFlwKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LCJkZWZhdWx0Iik/dC5kZWZhdWx0OnR9dmFyIGhpLGhjO2Z1bmN0aW9uIFVwKCl7aWYoaGMpcmV0dXJuIGhpO2hjPTE7dmFyIHQ9IkV4cGVjdGVkIGEgZnVuY3Rpb24iLGU9TmFOLG49IltvYmplY3QgU3ltYm9sXSIsbD0vXlxzK3xccyskL2csaT0vXlstK10weFswLTlhLWZdKyQvaSxyPS9eMGJbMDFdKyQvaSxvPS9eMG9bMC03XSskL2ksYT1wYXJzZUludCxjPXR5cGVvZiBubD09Im9iamVjdCImJm5sJiZubC5PYmplY3Q9PT1PYmplY3QmJm5sLGQ9dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixzPWN8fGR8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdT1PYmplY3QucHJvdG90eXBlLGg9dS50b1N0cmluZyxnPU1hdGgubWF4LGI9TWF0aC5taW4sbT1mdW5jdGlvbigpe3JldHVybiBzLkRhdGUubm93KCl9O2Z1bmN0aW9uIGYoSSxTLEcpe3ZhciBCLHYsSix3LEwsJCxxPTAscGU9ITEsWmU9ITEsV2U9ITA7aWYodHlwZW9mIEkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcih0KTtTPXkoUyl8fDAscChHKSYmKHBlPSEhRy5sZWFkaW5nLFplPSJtYXhXYWl0ImluIEcsSj1aZT9nKHkoRy5tYXhXYWl0KXx8MCxTKTpKLFdlPSJ0cmFpbGluZyJpbiBHPyEhRy50cmFpbGluZzpXZSk7ZnVuY3Rpb24gVWUobGUpe3ZhciBMZT1CLG90PXY7cmV0dXJuIEI9dj12b2lkIDAscT1sZSx3PUkuYXBwbHkob3QsTGUpLHd9ZnVuY3Rpb24geWUobGUpe3JldHVybiBxPWxlLEw9c2V0VGltZW91dChWZSxTKSxwZT9VZShsZSk6d31mdW5jdGlvbiBCZShsZSl7dmFyIExlPWxlLSQsb3Q9bGUtcSxqZT1TLUxlO3JldHVybiBaZT9iKGplLEotb3QpOmplfWZ1bmN0aW9uIHgobGUpe3ZhciBMZT1sZS0kLG90PWxlLXE7cmV0dXJuICQ9PT12b2lkIDB8fExlPj1TfHxMZTwwfHxaZSYmb3Q+PUp9ZnVuY3Rpb24gVmUoKXt2YXIgbGU9bSgpO2lmKHgobGUpKXJldHVybiBlZShsZSk7TD1zZXRUaW1lb3V0KFZlLEJlKGxlKSl9ZnVuY3Rpb24gZWUobGUpe3JldHVybiBMPXZvaWQgMCxXZSYmQj9VZShsZSk6KEI9dj12b2lkIDAsdyl9ZnVuY3Rpb24gRGUoKXtMIT09dm9pZCAwJiZjbGVhclRpbWVvdXQoTCkscT0wLEI9JD12PUw9dm9pZCAwfWZ1bmN0aW9uICRlKCl7cmV0dXJuIEw9PT12b2lkIDA/dzplZShtKCkpfWZ1bmN0aW9uIG1lKCl7dmFyIGxlPW0oKSxMZT14KGxlKTtpZihCPWFyZ3VtZW50cyx2PXRoaXMsJD1sZSxMZSl7aWYoTD09PXZvaWQgMClyZXR1cm4geWUoJCk7aWYoWmUpcmV0dXJuIEw9c2V0VGltZW91dChWZSxTKSxVZSgkKX1yZXR1cm4gTD09PXZvaWQgMCYmKEw9c2V0VGltZW91dChWZSxTKSksd31yZXR1cm4gbWUuY2FuY2VsPURlLG1lLmZsdXNoPSRlLG1lfWZ1bmN0aW9uIHAoSSl7dmFyIFM9dHlwZW9mIEk7cmV0dXJuISFJJiYoUz09Im9iamVjdCJ8fFM9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIEEoSSl7cmV0dXJuISFJJiZ0eXBlb2YgST09Im9iamVjdCJ9ZnVuY3Rpb24gWChJKXtyZXR1cm4gdHlwZW9mIEk9PSJzeW1ib2wifHxBKEkpJiZoLmNhbGwoSSk9PW59ZnVuY3Rpb24geShJKXtpZih0eXBlb2YgST09Im51bWJlciIpcmV0dXJuIEk7aWYoWChJKSlyZXR1cm4gZTtpZihwKEkpKXt2YXIgUz10eXBlb2YgSS52YWx1ZU9mPT0iZnVuY3Rpb24iP0kudmFsdWVPZigpOkk7ST1wKFMpP1MrIiI6U31pZih0eXBlb2YgSSE9InN0cmluZyIpcmV0dXJuIEk9PT0wP0k6K0k7ST1JLnJlcGxhY2UobCwiIik7dmFyIEc9ci50ZXN0KEkpO3JldHVybiBHfHxvLnRlc3QoSSk/YShJLnNsaWNlKDIpLEc/Mjo4KTppLnRlc3QoSSk/ZTorSX1yZXR1cm4gaGk9ZixoaX12YXIgSnA9VXAoKTtjb25zdCB4cD1ZcChKcCksRHM9YC5jbHItcGlja2VyIHsKICBkaXNwbGF5OiBub25lOwogIGZsZXgtd3JhcDogd3JhcDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDIwMHB4OwogIHotaW5kZXg6IDEwMDA7CiAgYm9yZGVyLXJhZGl1czogMTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgZGlyZWN0aW9uOiBsdHI7CiAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsMCwwLC4wNSksIDAgNXB4IDIwcHggcmdiYSgwLDAsMCwuMSk7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIHVzZXItc2VsZWN0OiBub25lOwp9CgouY2xyLXBpY2tlci5jbHItb3BlbiwKLmNsci1waWNrZXJbZGF0YS1pbmxpbmU9InRydWUiXSB7CiAgZGlzcGxheTogZmxleDsKfQoKLmNsci1waWNrZXJbZGF0YS1pbmxpbmU9InRydWUiXSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouY2xyLWdyYWRpZW50IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDBweDsKICBtYXJnaW4tYm90dG9tOiAxNXB4OwogIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLCAjMDAwKSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZmZmLCBjdXJyZW50Q29sb3IpOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKLmNsci1tYXJrZXIgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTJweDsKICBoZWlnaHQ6IDEycHg7CiAgbWFyZ2luOiAtNnB4IDAgMCAtNnB4OwogIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5jbHItcGlja2VyIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDE2cHg7Cn0KCi5jbHItcGlja2VyIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICB3aWR0aDogMTZweDsKICBoZWlnaHQ6IDE2cHg7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwp9CgouY2xyLXBpY2tlciBpbnB1dFt0eXBlPSJyYW5nZSJdOjotbW96LXJhbmdlLXRyYWNrIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDE2cHg7CiAgYm9yZGVyOiAwOwp9CgouY2xyLXBpY2tlciBpbnB1dFt0eXBlPSJyYW5nZSJdOjotbW96LXJhbmdlLXRodW1iIHsKICB3aWR0aDogMTZweDsKICBoZWlnaHQ6IDE2cHg7CiAgYm9yZGVyOiAwOwp9CgouY2xyLWh1ZSB7CiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjAwIDAlLCAjZmYwIDE2LjY2JSwgIzBmMCAzMy4zMyUsICMwZmYgNTAlLCAjMDBmIDY2LjY2JSwgI2YwZiA4My4zMyUsICNmMDAgMTAwJSk7Cn0KCi5jbHItaHVlLAouY2xyLWFscGhhIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpOwogIGhlaWdodDogOHB4OwogIG1hcmdpbjogNXB4IDIwcHg7CiAgYm9yZGVyLXJhZGl1czogNHB4Owp9CgouY2xyLWFscGhhIHNwYW4gewogIGRpc3BsYXk6IGJsb2NrOwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogMTAwJTsKICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLDAsMCwwKSwgY3VycmVudENvbG9yKTsKfQoKLmNsci1odWUgaW5wdXRbdHlwZT0icmFuZ2UiXSwKLmNsci1hbHBoYSBpbnB1dFt0eXBlPSJyYW5nZSJdIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IGNhbGMoMTAwJSArIDMycHgpOwogIGhlaWdodDogMTZweDsKICBsZWZ0OiAtMTZweDsKICB0b3A6IC00cHg7CiAgbWFyZ2luOiAwOwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIG9wYWNpdHk6IDA7CiAgY3Vyc29yOiBwb2ludGVyOwogIGFwcGVhcmFuY2U6IG5vbmU7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwp9CgouY2xyLWh1ZSBkaXYsCi5jbHItYWxwaGEgZGl2IHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDE2cHg7CiAgaGVpZ2h0OiAxNnB4OwogIGxlZnQ6IDA7CiAgdG9wOiA1MCU7CiAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsKICBib3gtc2hhZG93OiAwIDAgMXB4ICM4ODg7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi5jbHItYWxwaGEgZGl2OmJlZm9yZSB7CiAgY29udGVudDogJyc7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogMTAwJTsKICBsZWZ0OiAwOwogIHRvcDogMDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOwp9CgouY2xyLWZvcm1hdCB7CiAgZGlzcGxheTogbm9uZTsKICBvcmRlcjogMTsKICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7CiAgbWFyZ2luOiAwIDIwcHggMjBweDsKfQoKLmNsci1zZWdtZW50ZWQgewogIGRpc3BsYXk6IGZsZXg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHdpZHRoOiAxMDAlOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgYm9yZGVyLXJhZGl1czogMTVweDsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiAjOTk5OwogIGZvbnQtc2l6ZTogMTJweDsKfQoKLmNsci1zZWdtZW50ZWQgaW5wdXQsCi5jbHItc2VnbWVudGVkIGxlZ2VuZCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgb3BhY2l0eTogMDsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLmNsci1zZWdtZW50ZWQgbGFiZWwgewogIGZsZXgtZ3JvdzogMTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogNHB4IDA7CiAgZm9udC1zaXplOiBpbmhlcml0OwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKLmNsci1zZWdtZW50ZWQgbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7CiAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMTBweDsKfQoKLmNsci1zZWdtZW50ZWQgbGFiZWw6bGFzdC1vZi10eXBlIHsKICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwOwp9CgouY2xyLXNlZ21lbnRlZCBpbnB1dDpjaGVja2VkICsgbGFiZWwgewogIGNvbG9yOiAjZmZmOwogIGJhY2tncm91bmQtY29sb3I6ICM2NjY7Cn0KCi5jbHItc3dhdGNoZXMgewogIG9yZGVyOiAyOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICBtYXJnaW46IDAgMTZweDsKfQoKLmNsci1zd2F0Y2hlcyBkaXYgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwogIHBhZGRpbmctYm90dG9tOiAxMnB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9CgouY2xyLXN3YXRjaGVzIGJ1dHRvbiB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHdpZHRoOiAyMHB4OwogIGhlaWdodDogMjBweDsKICBtYXJnaW46IDAgNHB4IDZweCA0cHg7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGNvbG9yOiBpbmhlcml0OwogIHRleHQtaW5kZW50OiAtMTAwMHB4OwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5jbHItc3dhdGNoZXMgYnV0dG9uOmFmdGVyIHsKICBjb250ZW50OiAnJzsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwogIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xKTsKfQoKaW5wdXQuY2xyLWNvbG9yIHsKICBvcmRlcjogMTsKICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7CiAgaGVpZ2h0OiAzMnB4OwogIG1hcmdpbjogMTVweCAyMHB4IDIwcHggYXV0bzsKICBwYWRkaW5nOiAwIDEwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICBib3JkZXItcmFkaXVzOiAxNnB4OwogIGNvbG9yOiAjNDQ0OwogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAxNHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBib3gtc2hhZG93OiBub25lOwp9CgppbnB1dC5jbHItY29sb3I6Zm9jdXMgewogIG91dGxpbmU6IG5vbmU7CiAgYm9yZGVyOiAxcHggc29saWQgIzFlOTBmZjsKfQoKLmNsci1jbG9zZSwKLmNsci1jbGVhciB7CiAgZGlzcGxheTogbm9uZTsKICBvcmRlcjogMjsKICBoZWlnaHQ6IDI0cHg7CiAgbWFyZ2luOiAwIDIwcHggMjBweDsKICBwYWRkaW5nOiAwIDIwcHg7CiAgYm9yZGVyOiAwOwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjsKICBmb250LWZhbWlseTogaW5oZXJpdDsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5jbHItY2xvc2UgewogIGRpc3BsYXk6IGJsb2NrOwogIG1hcmdpbjogMCAyMHB4IDIwcHggYXV0bzsKfQoKLmNsci1wcmV2aWV3IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2lkdGg6IDMycHg7CiAgaGVpZ2h0OiAzMnB4OwogIG1hcmdpbjogMTVweCAwIDIwcHggMjBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLmNsci1wcmV2aWV3OmJlZm9yZSwKLmNsci1wcmV2aWV3OmFmdGVyIHsKICBjb250ZW50OiAnJzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAxMDAlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwogIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7CiAgYm9yZGVyLXJhZGl1czogNTAlOwp9CgouY2xyLXByZXZpZXc6YWZ0ZXIgewogIGJvcmRlcjogMDsKICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjEpOwp9CgouY2xyLXByZXZpZXcgYnV0dG9uIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHotaW5kZXg6IDE7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgYm9yZGVyOiAwOwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBvdXRsaW5lLW9mZnNldDogLTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICB0ZXh0LWluZGVudDogLTk5OTlweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLmNsci1tYXJrZXIsCi5jbHItaHVlIGRpdiwKLmNsci1hbHBoYSBkaXYsCi5jbHItY29sb3IgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCi5jbHItZmllbGQgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgY29sb3I6IHRyYW5zcGFyZW50Owp9CgouY2xyLWZpZWxkIGlucHV0IHsKICBtYXJnaW46IDA7CiAgZGlyZWN0aW9uOiBsdHI7Cn0KCi5jbHItZmllbGQuY2xyLXJ0bCBpbnB1dCB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCi5jbHItZmllbGQgYnV0dG9uIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDMwcHg7CiAgaGVpZ2h0OiAxMDAlOwogIHJpZ2h0OiAwOwogIHRvcDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgY29sb3I6IGluaGVyaXQ7CiAgdGV4dC1pbmRlbnQ6IC0xMDAwcHg7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgouY2xyLWZpZWxkLmNsci1ydGwgYnV0dG9uIHsKICByaWdodDogYXV0bzsKICBsZWZ0OiAwOwp9CgouY2xyLWZpZWxkIGJ1dHRvbjphZnRlciB7CiAgY29udGVudDogJyc7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBsZWZ0OiAwOwogIHRvcDogMDsKICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4IHJnYmEoMCwwLDAsLjUpOwp9CgouY2xyLWFscGhhLAouY2xyLWFscGhhIGRpdiwKLmNsci1zd2F0Y2hlcyBidXR0b24sCi5jbHItcHJldmlldzpiZWZvcmUsCi5jbHItZmllbGQgYnV0dG9uIHsKICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjYWFhIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA3NSUsICNhYWEgNzUlLCAjYWFhKSwgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgI2FhYSAyNSUsICNmZmYgMjUlLCAjZmZmIDc1JSwgI2FhYSA3NSUsICNhYWEpOwogIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgNHB4IDRweDsKICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7Cn0KCi5jbHItbWFya2VyOmZvY3VzIHsKICBvdXRsaW5lOiBub25lOwp9CgouY2xyLWtleWJvYXJkLW5hdiAuY2xyLW1hcmtlcjpmb2N1cywKLmNsci1rZXlib2FyZC1uYXYgLmNsci1odWUgaW5wdXQ6Zm9jdXMgKyBkaXYsCi5jbHIta2V5Ym9hcmQtbmF2IC5jbHItYWxwaGEgaW5wdXQ6Zm9jdXMgKyBkaXYsCi5jbHIta2V5Ym9hcmQtbmF2IC5jbHItc2VnbWVudGVkIGlucHV0OmZvY3VzICsgbGFiZWwgewogIG91dGxpbmU6IG5vbmU7CiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMxZTkwZmYsIDAgMCAycHggMnB4ICNmZmY7Cn0KCi5jbHItcGlja2VyW2RhdGEtYWxwaGE9ImZhbHNlIl0gLmNsci1hbHBoYSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLmNsci1waWNrZXJbZGF0YS1taW5pbWFsPSJ0cnVlIl0gewogIHBhZGRpbmctdG9wOiAxNnB4Owp9CgouY2xyLXBpY2tlcltkYXRhLW1pbmltYWw9InRydWUiXSAuY2xyLWdyYWRpZW50LAouY2xyLXBpY2tlcltkYXRhLW1pbmltYWw9InRydWUiXSAuY2xyLWh1ZSwKLmNsci1waWNrZXJbZGF0YS1taW5pbWFsPSJ0cnVlIl0gLmNsci1hbHBoYSwKLmNsci1waWNrZXJbZGF0YS1taW5pbWFsPSJ0cnVlIl0gLmNsci1jb2xvciwKLmNsci1waWNrZXJbZGF0YS1taW5pbWFsPSJ0cnVlIl0gLmNsci1wcmV2aWV3IHsKICBkaXNwbGF5OiBub25lOwp9CgovKiogRGFyayB0aGVtZSAqKi8KCi5jbHItZGFyayB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKfQoKLmNsci1kYXJrIC5jbHItc2VnbWVudGVkIHsKICBib3JkZXItY29sb3I6ICM3Nzc7Cn0KCi5jbHItZGFyayAuY2xyLXN3YXRjaGVzIGJ1dHRvbjphZnRlciB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpOwp9CgouY2xyLWRhcmsgaW5wdXQuY2xyLWNvbG9yIHsKICBjb2xvcjogI2ZmZjsKICBib3JkZXItY29sb3I6ICM3Nzc7CiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTsKfQoKLmNsci1kYXJrIGlucHV0LmNsci1jb2xvcjpmb2N1cyB7CiAgYm9yZGVyLWNvbG9yOiAjMWU5MGZmOwp9CgouY2xyLWRhcmsgLmNsci1wcmV2aWV3OmFmdGVyIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7Cn0KCi5jbHItZGFyayAuY2xyLWFscGhhLAouY2xyLWRhcmsgLmNsci1hbHBoYSBkaXYsCi5jbHItZGFyayAuY2xyLXN3YXRjaGVzIGJ1dHRvbiwKLmNsci1kYXJrIC5jbHItcHJldmlldzpiZWZvcmUgewogIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICM2NjYgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgIzg4OCA3NSUsICM4ODgpLCByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjODg4IDI1JSwgIzQ0NCAyNSUsICM0NDQgNzUlLCAjODg4IDc1JSwgIzg4OCk7Cn0KCi8qKiBQb2xhcm9pZCB0aGVtZSAqKi8KCi5jbHItcGlja2VyLmNsci1wb2xhcm9pZCB7CiAgYm9yZGVyLXJhZGl1czogNnB4OwogIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLDAsMCwuMSksIDAgNXB4IDMwcHggcmdiYSgwLDAsMCwuMik7Cn0KCi5jbHItcGlja2VyLmNsci1wb2xhcm9pZDpiZWZvcmUgewogIGNvbnRlbnQ6ICcnOwogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTZweDsKICBoZWlnaHQ6IDEwcHg7CiAgbGVmdDogMjBweDsKICB0b3A6IC0xMHB4OwogIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLXdpZHRoOiAwIDhweCAxMHB4IDhweDsKICBib3JkZXItYm90dG9tLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBjb2xvcjogI2ZmZjsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgLTRweCAzcHggcmdiYSgwLDAsMCwuMSkpOwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgouY2xyLXBpY2tlci5jbHItcG9sYXJvaWQuY2xyLWRhcms6YmVmb3JlIHsKICBjb2xvcjogIzQ0NDsKfQoKLmNsci1waWNrZXIuY2xyLXBvbGFyb2lkLmNsci1sZWZ0OmJlZm9yZSB7CiAgbGVmdDogYXV0bzsKICByaWdodDogMjBweDsKfQoKLmNsci1waWNrZXIuY2xyLXBvbGFyb2lkLmNsci10b3A6YmVmb3JlIHsKICB0b3A6IGF1dG87CiAgYm90dG9tOiAtMTBweDsKICB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTsKfQoKLmNsci1wb2xhcm9pZCAuY2xyLWdyYWRpZW50IHsKICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7CiAgaGVpZ2h0OiAxMjBweDsKICBtYXJnaW46IDEwcHg7CiAgYm9yZGVyLXJhZGl1czogM3B4Owp9CgouY2xyLXBvbGFyb2lkIC5jbHItaHVlLAouY2xyLXBvbGFyb2lkIC5jbHItYWxwaGEgewogIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTsKICBoZWlnaHQ6IDEwcHg7CiAgbWFyZ2luOiA2cHggMTVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7Cn0KCi5jbHItcG9sYXJvaWQgLmNsci1odWUgZGl2LAouY2xyLXBvbGFyb2lkIC5jbHItYWxwaGEgZGl2IHsKICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwwLDAsLjIpOwp9CgouY2xyLXBvbGFyb2lkIC5jbHItZm9ybWF0IHsKICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7CiAgbWFyZ2luOiAwIDEwcHggMTVweDsKfQoKLmNsci1wb2xhcm9pZCAuY2xyLXN3YXRjaGVzIHsKICB3aWR0aDogY2FsYygxMDAlIC0gMTJweCk7CiAgbWFyZ2luOiAwIDZweDsKfQouY2xyLXBvbGFyb2lkIC5jbHItc3dhdGNoZXMgZGl2IHsKICBwYWRkaW5nLWJvdHRvbTogMTBweDsKfQoKLmNsci1wb2xhcm9pZCAuY2xyLXN3YXRjaGVzIGJ1dHRvbiB7CiAgd2lkdGg6IDIycHg7CiAgaGVpZ2h0OiAyMnB4Owp9CgouY2xyLXBvbGFyb2lkIGlucHV0LmNsci1jb2xvciB7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpOwogIG1hcmdpbjogMTBweCAxMHB4IDE1cHggYXV0bzsKfQoKLmNsci1wb2xhcm9pZCAuY2xyLWNsZWFyIHsKICBtYXJnaW46IDAgMTBweCAxNXB4IDEwcHg7Cn0KCi5jbHItcG9sYXJvaWQgLmNsci1jbG9zZSB7CiAgbWFyZ2luOiAwIDEwcHggMTVweCBhdXRvOwp9CgouY2xyLXBvbGFyb2lkIC5jbHItcHJldmlldyB7CiAgbWFyZ2luOiAxMHB4IDAgMTVweCAxMHB4Owp9CgovKiogTGFyZ2UgdGhlbWUgKiovCgouY2xyLXBpY2tlci5jbHItbGFyZ2UgewogIHdpZHRoOiAyNzVweDsKfQoKLmNsci1sYXJnZSAuY2xyLWdyYWRpZW50IHsKICBoZWlnaHQ6IDE1MHB4Owp9CgouY2xyLWxhcmdlIC5jbHItc3dhdGNoZXMgYnV0dG9uIHsKICB3aWR0aDogMjJweDsKICBoZWlnaHQ6IDIycHg7Cn0KCi8qKiBQaWxsIChob3Jpem9udGFsKSB0aGVtZSAqKi8KCi5jbHItcGlja2VyLmNsci1waWxsIHsKICB3aWR0aDogMzgwcHg7CiAgcGFkZGluZy1sZWZ0OiAxODBweDsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgouY2xyLXBpbGwgLmNsci1ncmFkaWVudCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxODBweDsKICBoZWlnaHQ6IDEwMCU7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgbWFyZ2luLWJvdHRvbTogMDsKICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDsKfQoKLmNsci1waWxsIC5jbHItaHVlIHsKICBtYXJnaW4tdG9wOiAyMHB4Owp9YCxNdD10PT57dmFyIGU7cmV0dXJuKGU9dC50ZXh0Q29udGVudCk9PW51bGw/dm9pZCAwOmUudHJpbSgpfSx3cD1bInZpZGVvIiwiaWZyYW1lIiwiYXVkaW8iXSxiYz0iX19tYW51c19zdHlsZS1pZCI7Y2xhc3Mga3B7Y29uc3RydWN0b3IoKXt0aGlzLmRlYnVnTW9kZT0hMSx0aGlzLmVkaXRNb2RlPSJub3JtYWwiLHRoaXMuZGVib3VuY2VkQWRkUGF0Y2hlZD14cChlPT57ZS5mb3JFYWNoKG49Pnt0aGlzLmFkZFBhdGNoKG4pfSl9LDFlMyx7bGVhZGluZzohMH0pLHRoaXMub3JpZ2luYWxFbGVtZW50U3R5bGU9bmV3IE1hcCx0aGlzLnBhdGNoTGlzdD1bXSx0aGlzLnRleHRTcGxpdE1vZGU9ITAsdGhpcy5fYm91bmRIYW5kbGVQcmVFZGl0SG92ZXI9KCk9Pnt9LHRoaXMuX2JvdW5kSGFuZGxlUHJlRWRpdE91dD0oKT0+e30sdGhpcy5fYm91bmRIYW5kbGVFZGl0U2VsZWN0PSgpPT57fSx0aGlzLl9ib3VuZEhhbmRsZUtleWRvd249KCk9Pnt9LHRoaXMuaG92ZXJpbmdFbGVtZW50PW51bGwsdGhpcy5hY3RpdmVFbGVtZW50PW51bGwsdGhpcy5zYXZlZEVsZW1lbnRzPW5ldyBNYXAsdGhpcy5maWx0ZXJDbGFzc2VzPVtRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0LFEudmlydHVhbFRleHROb2RlLFEub25seVRleHROb2RlLFEudGV4dE5vZGVBY3RpdmUsUS5jb2xvclBpY2tlcl0sdGhpcy5yZXRyeVBhdGNoSW5kZXhMaXN0PVtdfWluaXQoKXt0aGlzLmluamVjdEdsb2JhbFN0eWxlKCksdGhpcy5wYXRjaExpc3Q9U2UucGF0Y2hMaXN0Pz9bXSx0aGlzLmFwcGx5UGF0Y2hlcygpfWluaXRXaXRob3V0QXBwbHlQYXRjaGVzKCl7dGhpcy5pbmplY3RHbG9iYWxTdHlsZSgpLHRoaXMucGF0Y2hMaXN0PVNlLnBhdGNoTGlzdD8/W119ZGVzdHJveSgpe3ZhciBlOyhlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiK2JjKSk9PW51bGx8fGUucmVtb3ZlKCksdGhpcy5vbkV4aXRFZGl0KCl9cmVnaXN0ZXJWaWV3cyhlKXtlLnRleHRFZGl0UGFuZWxWaWV3JiYodGhpcy50ZXh0RWRpdFBhbmVsVmlldz1lLnRleHRFZGl0UGFuZWxWaWV3KSxlLmVsZW1lbnRFZGl0UGFuZWxWaWV3JiYodGhpcy5lbGVtZW50RWRpdFBhbmVsVmlldz1lLmVsZW1lbnRFZGl0UGFuZWxWaWV3KX1jcmVhdGVQYXRjaChlLG4pe2NvbnN0IGw9ZS5jbGFzc0xpc3QuY29udGFpbnMoUS52aXJ0dWFsVGV4dE5vZGUpO2xldCBpPVtdO2NvbnN0IHI9RGF0ZS5ub3coKTtpZihsKXtjb25zdCBvPXRoaXMuZ2V0Tm9kZVRvRWxlbWVudFNlbGVjdG9yKGUpO2lmKG8mJiF0aGlzLnBhdGNoTGlzdC5zb21lKGM9PmMudHlwZT09PSJub2RlVG9FbGVtZW50IiYmYy5zZWxlY3Rvcj09PW8uc2VsZWN0b3ImJmMubm9kZUluZGV4PT09by5ub2RlSW5kZXgpKXtjb25zdCBjPXt0eXBlOiJub2RlVG9FbGVtZW50Iixub2RlSW5kZXg6by5ub2RlSW5kZXgsc2VsZWN0b3I6by5zZWxlY3Rvcix0aW1lc3RhbXA6cn07aS5wdXNoKGMpfX1pZihuPT09ImNvcHkiKXtjb25zdCBvPWUuY2xvbmVOb2RlKCEwKTt0aGlzLmZpbHRlckNsYXNzZXMuZm9yRWFjaChjPT57by5jbGFzc0xpc3QucmVtb3ZlKGMpfSksby5jbGFzc0xpc3QuYWRkKFEuY29weU5vZGUpO2NvbnN0IGE9e3R5cGU6ImNvcHkiLHNlbGVjdG9yOnRoaXMuZ2VuZXJhdGVTZWxlY3RvcihlKSx0aW1lc3RhbXA6RGF0ZS5ub3coKSxvdXRlckh0bWw6by5vdXRlckhUTUx9O2kucHVzaChhKX1lbHNle2NvbnN0IG89e3R5cGU6InN0eWxlIixzZWxlY3Rvcjp0aGlzLmdlbmVyYXRlU2VsZWN0b3IoZSksZWxlbWVudFR5cGU6ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCksaW5uZXJUZXh0Omw/ZS50ZXh0Q29udGVudD8/dm9pZCAwOmUuaW5uZXJIVE1MLHN0eWxlOmUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpfHwiIix0aW1lc3RhbXA6cn07aS5wdXNoKG8pfXJldHVybiBpfWdldE5vZGVUb0VsZW1lbnRTZWxlY3RvcihlKXtpZighZS5jbGFzc0xpc3QuY29udGFpbnMoUS52aXJ0dWFsVGV4dE5vZGUpKXJldHVybiBudWxsO2NvbnN0IG49ZS5wYXJlbnRFbGVtZW50O2lmKCFuKXJldHVybiBudWxsO2NvbnN0IGw9dGhpcy5nZW5lcmF0ZVNlbGVjdG9yKG4pO2xldCBpPS0xO3JldHVybiBBcnJheS5mcm9tKG4uY2hpbGROb2RlcykuZm9yRWFjaCgocixvKT0+e3I9PT1lJiYoaT1vKX0pLGk9PT0tMT9udWxsOntzZWxlY3RvcjpsLG5vZGVJbmRleDppfX1nZW5lcmF0ZVNlbGVjdG9yKGUpe2lmKGUuaWQpcmV0dXJuYCMke2UuaWR9YDtmdW5jdGlvbiBuKHIpe3JldHVybiByLnJlcGxhY2UoLzovZywiXFw6IikucmVwbGFjZSgvXC8vZywiXFwvIikucmVwbGFjZSgvXFsvZywiXFxbIikucmVwbGFjZSgvXF0vZywiXFxdIikucmVwbGFjZSgvJS9nLCJcXCUiKS5yZXBsYWNlKC9cLi9nLCJcXC4iKX1sZXQgbD1bXSxpPWU7Zm9yKDtpJiZpIT09ZG9jdW1lbnQuYm9keSYmaSE9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDspe2xldCByPWkudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKGkuY2xhc3NOYW1lJiZ0eXBlb2YgaS5jbGFzc05hbWU9PSJzdHJpbmciKXtjb25zdCBvPWkuY2xhc3NOYW1lLnNwbGl0KCIgIikuZmlsdGVyKGE9PmEmJnRoaXMuZmlsdGVyQ2xhc3Nlcy5ldmVyeShjPT5jIT09YSkpLm1hcChhPT5gLiR7bihhKX1gKS5qb2luKCIiKTtvJiYocis9byl9aWYoaS5wYXJlbnROb2RlKXtjb25zdCBvPUFycmF5LmZyb20oaS5wYXJlbnROb2RlLmNoaWxkcmVuKS5maWx0ZXIoYz0+IWMuY2xvc2VzdChgLiR7US52aXJ0dWFsVGV4dE5vZGV9YCkpLGE9by5pbmRleE9mKGkpKzE7by5sZW5ndGg+MSYmKHIrPWA6bnRoLWNoaWxkKCR7YX0pYCl9bC51bnNoaWZ0KHIpLGk9aS5wYXJlbnROb2RlfXJldHVybiBpJiZsLnVuc2hpZnQoaS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLGwuam9pbigiID4gIil9YWRkUGF0Y2goZSl7dGhpcy5wYXRjaExpc3QucHVzaChlKSx0aGlzLnNhdmVQYXRjaGVzVG9TZXJ2ZXIoKSxSbi5lbWl0KCJwYXRjaExpc3RDaGFuZ2UiLHt9KX11bmRvUGF0Y2goKXtpZih0aGlzLnBhdGNoTGlzdC5sZW5ndGg+MCl7Y29uc3QgZT10aGlzLnBhdGNoTGlzdC5wb3AoKTtpZihlKXtjb25zdCBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZS5zZWxlY3Rvcik7aWYobil7aWYoZS50eXBlPT09Im5vZGVUb0VsZW1lbnQiKXtjb25zdCBsPW4uY2hpbGROb2Rlc1tlLm5vZGVJbmRleF07aWYobCYmbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZsLmNsYXNzTGlzdC5jb250YWlucyhRLnZpcnR1YWxUZXh0Tm9kZSkpe2NvbnN0IGk9bC50ZXh0Q29udGVudDtpZihpKXtjb25zdCByPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGkpO24ucmVwbGFjZUNoaWxkKGwscil9fX1lbHNlIGlmKChlPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09InN0eWxlIil7bGV0IGw7Zm9yKGxldCByPXRoaXMucGF0Y2hMaXN0Lmxlbmd0aC0xO3I+PTA7ci0tKXtjb25zdCBvPXRoaXMucGF0Y2hMaXN0W3JdO2lmKG8udHlwZT09PSJzdHlsZSImJm8uc2VsZWN0b3I9PT1lLnNlbGVjdG9yKXtsPW87YnJlYWt9fWNvbnN0IGk9dGhpcy5vcmlnaW5hbEVsZW1lbnRTdHlsZS5nZXQobik7bD8obi5zZXRBdHRyaWJ1dGUoInN0eWxlIixsLnN0eWxlKSxuLnRleHRDb250ZW50PWwuaW5uZXJUZXh0Pz8iIik6aSYmKG4uc2V0QXR0cmlidXRlKCJzdHlsZSIsaS5zdHlsZSksbi50ZXh0Q29udGVudD1pLnRleHRDb250ZW50KX1lbHNlIGlmKChlPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09ImNvcHkiKXtjb25zdCBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZS5zZWxlY3Rvcik7bCYmbC5uZXh0RWxlbWVudFNpYmxpbmcgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKGwubmV4dEVsZW1lbnRTaWJsaW5nLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX19fXRoaXMuc2F2ZVBhdGNoZXNUb1NlcnZlcigpfVJuLmVtaXQoInBhdGNoTGlzdENoYW5nZSIse30pfXNhdmVQYXRjaGVzVG9TZXJ2ZXIoKXt0cnl7Y29uc3QgZT10aGlzLm9wdGltaXplUGF0Y2hlcygpO3lsLlNwYWNlU2VydmljZS5zYXZlU3BhY2VTaXRlUmF3RGF0YSh7d2ViUmF3RGF0YTpKU09OLnN0cmluZ2lmeShlKSxzcGFjZVVpZDpTZS5zcGFjZUlkfSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19YXBwbHlQYXRjaGVzKCl7aWYodGhpcy5wYXRjaExpc3QubGVuZ3RoIT09MCl7dGhpcy5yZXRyeVBhdGNoSW5kZXhMaXN0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5wYXRjaExpc3QubGVuZ3RoO2UrKyl0aGlzLmFwcGx5UGF0Y2goZSksdGhpcy5yZXRyeVBhdGNoTGlzdCgpfX1yZXRyeVBhdGNoTGlzdCgpe2lmKHRoaXMucmV0cnlQYXRjaEluZGV4TGlzdC5sZW5ndGg9PT0wKXJldHVybjtjb25zdCBlPW5ldyBNdXRhdGlvbk9ic2VydmVyKG49Pntjb25zdCBsPVsuLi50aGlzLnJldHJ5UGF0Y2hJbmRleExpc3RdO3RoaXMucmV0cnlQYXRjaEluZGV4TGlzdD1bXSxsLmZvckVhY2goaT0+e3RoaXMuYXBwbHlQYXRjaChpKX0pLHRoaXMucmV0cnlQYXRjaEluZGV4TGlzdC5sZW5ndGg9PT0wJiZlLmRpc2Nvbm5lY3QoKX0pO2Uub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtzdWJ0cmVlOiEwLGNoaWxkTGlzdDohMH0pfWFwcGx5UGF0Y2goZSl7aWYoZTwwfHxlPj10aGlzLnBhdGNoTGlzdC5sZW5ndGgpcmV0dXJuO2NvbnN0IG49dGhpcy5wYXRjaExpc3RbZV07aWYobil0cnl7Y29uc3QgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG4uc2VsZWN0b3IpO2lmKCFsKXtjb25zb2xlLndhcm4oYFBhdGNoIHRhcmdldCBub3QgZm91bmQuICR7bi5zZWxlY3Rvcn1gKSx0aGlzLnJldHJ5UGF0Y2hJbmRleExpc3QucHVzaChlKTtyZXR1cm59aWYobi50eXBlPT09InN0eWxlIiYmKHRoaXMuc2V0T3JpZ2luU3R5bGUobCksbi5pbm5lclRleHQmJihsLmNsYXNzTGlzdCYmbC5jbGFzc0xpc3QuY29udGFpbnMoUS52aXJ0dWFsVGV4dE5vZGUpP2wudGV4dENvbnRlbnQhPT1uLmlubmVyVGV4dCYmKGwudGV4dENvbnRlbnQ9bi5pbm5lclRleHQpOmwuaW5uZXJIVE1MIT09bi5pbm5lclRleHQmJihsLmlubmVySFRNTD1uLmlubmVyVGV4dCkpLG4uc3R5bGU/KGwuZ2V0QXR0cmlidXRlKCJzdHlsZSIpIT09bi5zdHlsZSYmbC5zZXRBdHRyaWJ1dGUoInN0eWxlIixuLnN0eWxlKSxuLnN0eWxlLmluY2x1ZGVzKCJkaXNwbGF5OiBub25lIikmJmwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKGwuc3R5bGUuZGlzcGxheT0ibm9uZSIpKTpsLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSksbi50eXBlPT09ImNvcHkiKXtjb25zdCBpPWwucGFyZW50Tm9kZTtpZihpKXtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuaW5uZXJIVE1MPW4ub3V0ZXJIdG1sO2NvbnN0IG89ci5jaGlsZHJlblswXTtpJiZvJiZpLmluc2VydEJlZm9yZShvLGwubmV4dFNpYmxpbmcpfX1pZihuLnR5cGU9PT0ibm9kZVRvRWxlbWVudCIpe2NvbnN0IGk9bC5jaGlsZE5vZGVzLml0ZW0obi5ub2RlSW5kZXgpO2lmKGkmJmkubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ci5jbGFzc05hbWU9US52aXJ0dWFsVGV4dE5vZGUsci50ZXh0Q29udGVudD1pLnRleHRDb250ZW50LGwucmVwbGFjZUNoaWxkKHIsaSl9fX1jYXRjaChsKXtjb25zb2xlLmVycm9yKGwpfX1yZXN0b3JlVG9PcmlnaW5hbCgpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX10b2dnbGVFZGl0TW9kZSgpe3RoaXMuZWRpdE1vZGU9PT0ibm9ybWFsIj90aGlzLnRvZ2dsZVRvRWRpdE1vZGUoKTp0aGlzLnRvZ2dsZVRvRWRpdE1vZGUoKX10b2dnbGVUb0VkaXRNb2RlKCl7dGhpcy5lZGl0TW9kZT0iZWRpdCIsdGhpcy5lZGl0SW5pdCgpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChRLmVkaXRNb2RlQWN0aXZlKX10b2dnbGVUb1ByZXZpZXdNb2RlKCl7dGhpcy5lZGl0TW9kZT0ibm9ybWFsIix0aGlzLm9uRXhpdEVkaXQoKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoUS5lZGl0TW9kZUFjdGl2ZSl9ZWRpdEluaXQoKXt0aGlzLl9ib3VuZEhhbmRsZVByZUVkaXRIb3Zlcj1lPT50aGlzLmhhbmRsZVByZUVkaXRIb3ZlcihlKSx0aGlzLl9ib3VuZEhhbmRsZVByZUVkaXRPdXQ9ZT0+dGhpcy5oYW5kbGVQcmVFZGl0T3V0KGUpLHRoaXMuX2JvdW5kSGFuZGxlRWRpdFNlbGVjdD1lPT50aGlzLmhhbmRsZUVkaXRTZWxlY3QoZSksdGhpcy5fYm91bmRIYW5kbGVLZXlkb3duPWU9PnRoaXMuaGFuZGxlS2V5ZG93bihlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuX2JvdW5kSGFuZGxlUHJlRWRpdEhvdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsdGhpcy5fYm91bmRIYW5kbGVQcmVFZGl0T3V0KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fYm91bmRIYW5kbGVFZGl0U2VsZWN0KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9ib3VuZEhhbmRsZUtleWRvd24pLHRoaXMudGV4dFNwbGl0TW9kZSYmdGhpcy53cmFwcGVyVGV4dE5vZGUoKX1oYW5kbGVLZXlkb3duKGUpe2NvbnN0IG49ZS5jb21wb3NlZFBhdGgoKVswXTtuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnRoaXMuaXNFZGl0b3JVSUVsZW1lbnQobil8fFd1KGUpJiZ0aGlzLnVuZG9QYXRjaCgpfW9uRXhpdEVkaXQoKXt2YXIgZSxuO2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5fYm91bmRIYW5kbGVQcmVFZGl0SG92ZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLl9ib3VuZEhhbmRsZVByZUVkaXRPdXQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9ib3VuZEhhbmRsZUVkaXRTZWxlY3QpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2JvdW5kSGFuZGxlS2V5ZG93biksKGU9dGhpcy50ZXh0RWRpdFBhbmVsVmlldyk9PW51bGx8fGUuZGVzdHJveSgpLChuPXRoaXMuZWxlbWVudEVkaXRQYW5lbFZpZXcpPT1udWxsfHxuLmRlc3Ryb3koKSx0aGlzLmhvdmVyaW5nRWxlbWVudD1udWxsLHRoaXMuYWN0aXZlRWxlbWVudD1udWxsfW9wdGltaXplUGF0Y2hlcygpe2lmKHRoaXMucGF0Y2hMaXN0Lmxlbmd0aDw9MSlyZXR1cm4gdGhpcy5wYXRjaExpc3Q7Y29uc3QgZT1bXTtyZXR1cm4gdGhpcy5wYXRjaExpc3QuZm9yRWFjaChuPT57aWYobi50eXBlIT09InN0eWxlIillLnB1c2gobik7ZWxzZXtjb25zdCBsPWUuZmluZEluZGV4KGk9Pmkuc2VsZWN0b3I9PT1uLnNlbGVjdG9yKTtsPT09LTE/ZS5wdXNoKG4pOmVbbF09bn19KSxlfWlzRWRpdG9yVUlFbGVtZW50KGUpe3JldHVybltgLiR7US5zcGFjZUNvbnRyb2xWaWV3fWAsYC4ke1EudGV4dEVkaXRvclBhbmVsVmlld31gLGAuJHtRLmVsZW1lbnRFZGl0b3JQYW5lbFZpZXd9YCxgLiR7US5mb290ZXJUb29sYmFyVmlld31gLGAuJHtRLmNvbG9yUGlja2VyfWBdLnNvbWUoaT0+ZS5jbG9zZXN0KGkpKX1oYW5kbGVQcmVFZGl0SG92ZXIoZSl7aWYodGhpcy5lZGl0TW9kZSE9PSJlZGl0IilyZXR1cm47Y29uc3Qgbj1lLmNvbXBvc2VkUGF0aCgpLGw9bi5mbGF0TWFwKHI9PnIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD9bcl06W10pLGk9blswXTtpZighaXx8IShpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpfHxpPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxpPT09ZG9jdW1lbnQuYm9keSlyZXR1cm4gbnVsbDtsLnNvbWUocj0+dGhpcy5pc0VkaXRvclVJRWxlbWVudChyKSl8fCh0aGlzLmhvdmVyaW5nRWxlbWVudCYmdGhpcy5ob3ZlcmluZ0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0KSx0aGlzLmVsZW1lbnRFZGl0UGFuZWxWaWV3LmRlc3Ryb3koKSx0aGlzLmhvdmVyaW5nRWxlbWVudD1pLHRoaXMuZWxlbWVudEVkaXRQYW5lbFZpZXcuc2hvdyhpLGUpLHRoaXMuc2V0T3JpZ2luU3R5bGUoaSkpfWhhbmRsZVByZUVkaXRPdXQoZSl7aWYodGhpcy5lZGl0TW9kZSE9PSJlZGl0IilyZXR1cm47Y29uc3Qgbj1lLmNvbXBvc2VkUGF0aCgpLGw9bi5mbGF0TWFwKG89Pm8gaW5zdGFuY2VvZiBIVE1MRWxlbWVudD9bb106W10pLGk9blswXTtpZighaXx8IShpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpfHxsLnNvbWUobz0+dGhpcy5pc0VkaXRvclVJRWxlbWVudChvKSkpcmV0dXJuO2NvbnN0IHI9ZS5yZWxhdGVkVGFyZ2V0OyhyPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxyPT09ZG9jdW1lbnQuYm9keSkmJnRoaXMuZWxlbWVudEVkaXRQYW5lbFZpZXcuZGVzdHJveSgpfWhhbmRsZUVkaXRTZWxlY3QoZSl7aWYodGhpcy5lZGl0TW9kZSE9PSJlZGl0IilyZXR1cm47Y29uc3Qgbj1lLnRhcmdldDtpZighbnx8IShuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtjb25zdCBsPW4udGFnTmFtZS50b0xvd2VyQ2FzZSgpO3dwLmluY2x1ZGVzKGwpfHx0aGlzLmlzRWRpdG9yVUlFbGVtZW50KG4pfHx0aGlzLmhhc0RpcmVjdFRleHRDb250ZW50KG4pJiYoZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVFbGVtZW50JiZ0aGlzLmFjdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0KSx0aGlzLmFjdGl2ZUVsZW1lbnQ9bix0aGlzLnNldE9yaWdpblN0eWxlKG4pLHRoaXMudGV4dEVkaXRQYW5lbFZpZXcuc2hvdyhuLGUpKX13cmFwcGVyVGV4dE5vZGUoKXtjb25zdCBlPW5ldyBTZXQsbj1vPT57bGV0IGE9ITE7Zm9yKGxldCBjPTA7YzxvLmNoaWxkTm9kZXMubGVuZ3RoO2MrKyl7Y29uc3QgZD1vLmNoaWxkTm9kZXNbY107aWYoZC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiExO2Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmTXQoZCkmJihhPSEwKX1yZXR1cm4gYX0sbD1vPT57bGV0IGE9ITEsYz0hMTtmb3IobGV0IGQ9MDtkPG8uY2hpbGROb2Rlcy5sZW5ndGg7ZCsrKXtjb25zdCBzPW8uY2hpbGROb2Rlc1tkXTtpZihzLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJk10KHMpP2E9ITA6cy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiYoYz0hMCksYSYmYylyZXR1cm4hMH1yZXR1cm4hMX0saT1vPT5bIlNUUk9ORyIsIkVNIiwiVSIsIkIiLCJJIiwiTUFSSyIsIlNQQU4iXS5pbmNsdWRlcyhvLnRhZ05hbWUpLHI9bz0+e2lmKCEoby5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZvIGluc3RhbmNlb2YgRWxlbWVudCYmdGhpcy5pc0VkaXRvclVJRWxlbWVudChvKSkpe2lmKG8ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmTXQobykpe2lmKG8ucGFyZW50Tm9kZSYmby5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe2NvbnN0IGE9by5wYXJlbnROb2RlO2lmKCEoYSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXx8aShhKXx8bihhKSlyZXR1cm47aWYobChhKSl7ZS5hZGQoYSk7Y29uc3QgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5jbGFzc05hbWU9US52aXJ0dWFsVGV4dE5vZGUsYy50ZXh0Q29udGVudD1vLnRleHRDb250ZW50LGEucmVwbGFjZUNoaWxkKGMsbyl9fX1lbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbyBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKG8uY2xhc3NMaXN0JiZvLmNsYXNzTGlzdC5jb250YWlucyhRLnZpcnR1YWxUZXh0Tm9kZSkpcmV0dXJuO0FycmF5LmZyb20oby5jaGlsZE5vZGVzKS5mb3JFYWNoKGM9PnIoYykpfX19O3IoZG9jdW1lbnQuYm9keSksZS5mb3JFYWNoKG89Pnt0aGlzLnNhdmVkRWxlbWVudHMuaGFzKG8pfHx0aGlzLnNhdmVkRWxlbWVudHMuc2V0KG8sby5pbm5lckhUTUwpfSl9c2V0T3JpZ2luU3R5bGUoZSl7aWYoIXRoaXMub3JpZ2luYWxFbGVtZW50U3R5bGUuaGFzKGUpKXtjb25zdCBuPWUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpfHwiIixsPWUudGV4dENvbnRlbnR8fCIiO3RoaXMub3JpZ2luYWxFbGVtZW50U3R5bGUuc2V0KGUse3N0eWxlOm4sdGV4dENvbnRlbnQ6bH0pfX1oYXNEaXJlY3RUZXh0Q29udGVudChlKXt2YXIgaSxyLG8sYTtpZihbIkJSIiwiSFIiLCJJTUciLCJJTlBVVCIsIlRFWFRBUkVBIiwiU0VMRUNUIiwiQlVUVE9OIl0uaW5jbHVkZXMoZS50YWdOYW1lKSlyZXR1cm4hMTtpZihlLmNsYXNzTGlzdC5jb250YWlucyhRLnZpcnR1YWxUZXh0Tm9kZSkpcmV0dXJuISFNdChlKTtsZXQgbD0hMTtmb3IobGV0IGM9MDtjPGUuY2hpbGROb2Rlcy5sZW5ndGg7YysrKXtjb25zdCBkPWUuY2hpbGROb2Rlc1tjXTtpZihkLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJk10KGQpKXtsPSEwO2JyZWFrfX1pZihsfHxlLmNoaWxkcmVuLmxlbmd0aD09PTAmJk10KGUpKXJldHVybiEwO2lmKGUuY2hpbGRyZW4ubGVuZ3RoPjApe2NvbnN0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGMuaW5uZXJIVE1MPWUuaW5uZXJIVE1MO2MuZmlyc3RFbGVtZW50Q2hpbGQ7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdEVsZW1lbnRDaGlsZCk7aWYoKCgoaT1jLnRleHRDb250ZW50KT09bnVsbD92b2lkIDA6aS50cmltKCkpPz8iIikhPT0iIilyZXR1cm4hMDtsZXQgcz0hMSx1PSExLGg9ITE7Zm9yKGxldCBnPTA7ZzxlLmNoaWxkTm9kZXMubGVuZ3RoO2crKyl7Y29uc3QgYj1lLmNoaWxkTm9kZXNbZ107aWYoYi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYoKHI9Yi50ZXh0Q29udGVudCkhPW51bGwmJnIudHJpbSgpKT91PSEwOmIubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGg9ITApLHUmJmgpe3M9ITA7YnJlYWt9fXJldHVybiBzPyEwOihbIkRJViIsIlNFQ1RJT04iLCJBUlRJQ0xFIiwiQVNJREUiLCJOQVYiLCJNQUlOIiwiSEVBREVSIiwiRk9PVEVSIl0uaW5jbHVkZXMoZS50YWdOYW1lKSYmISgobz1lLnRleHRDb250ZW50KSE9bnVsbCYmby50cmltKCkpLCExKX1yZXR1cm4hISgoYT1lLnRleHRDb250ZW50KSE9bnVsbCYmYS50cmltKCkpfWluamVjdEdsb2JhbFN0eWxlKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2UuaWQ9YmMsZS50ZXh0Q29udGVudD1gCiAgICAgIC4ke1Euc3BhY2VFZGl0b3JIaWdobGlnaHR9IHsKICAgICAgICBvdXRsaW5lOiAxcHggZGFzaGVkICMwMDgxRjI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwoJCQkJYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoJCQkuJHtRLnZpcnR1YWxUZXh0Tm9kZX0uJHtRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0fXsKCQkJCW91dGxpbmU6IG5vbmU7CgkJCQl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCQkJCWJvcmRlci1yYWRpdXM6dW5zZXQ7CgkJCX0KCQkJLiR7US5vbmx5VGV4dE5vZGV9ewoJCQkJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CgkJCQljdXJzb3I6IHBvaW50ZXIhaW1wb3J0YW50OwoJCQkJYm9yZGVyLXJhZGl1czogMTJweDsKCQkJCW91dGxpbmU6IDFweCBkYXNoZWQgIzAwODFGMjsKCQkJfQoJCQkuJHtRLnRleHROb2RlQWN0aXZlfXsKCQkJCWJvcmRlci1yYWRpdXM6IDZweDsKCQkJCW91dGxpbmU6IDFweCBzb2xpZCAgIzAwODFGMjsKCQkJCWJhY2tncm91bmQ6IHJnYmEoMCwgMTI5LCAyNDIsIDAuMDgpOwoJCQkJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCQl9CiAgICAgIC8qIOe8lui+keaooeW8j+S4i+mAmueUqOWFieagh+agt+W8jyAqLwogICAgICBib2R5LiR7US5lZGl0TW9kZUFjdGl2ZX0gKiB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIC8qIOWPr+e8lui+keWFg+e0oOeahOWFieagh+agt+W8jyAqLwogICAgICBib2R5LiR7US5lZGl0TW9kZUFjdGl2ZX0gLiR7US52aXJ0dWFsVGV4dE5vZGV9LAogICAgICBib2R5LiR7US5lZGl0TW9kZUFjdGl2ZX0gLiR7US5zcGFjZUVkaXRvckhpZ2hsaWdodH0gewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKCQkJLiR7US5oaWRkZW59ewoJCQlvcGFjaXR5OjAKCQkJfQoKCSR7RHN9CiAgICBgLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9bG9nRWxlbWVudEluZm8oZSxuKXt2YXIgbCxpO2NvbnNvbGUubG9nKGBbRWxlbWVudCBJbmZvXSAke259YCx7dGFnTmFtZTplLnRhZ05hbWUsaWQ6ZS5pZHx8IuaXoCIsY2xhc3M6ZS5jbGFzc05hbWV8fCLml6AiLGNoaWxkRWxlbWVudENvdW50OmUuY2hpbGRFbGVtZW50Q291bnQsaGFzQ2hpbGROb2RlczplLmhhc0NoaWxkTm9kZXMoKSx0ZXh0Q29udGVudDooKChsPWUudGV4dENvbnRlbnQpPT1udWxsP3ZvaWQgMDpsLmxlbmd0aCk/PzApPjUwPygoaT1lLnRleHRDb250ZW50KT09bnVsbD92b2lkIDA6aS5zdWJzdHJpbmcoMCw0NykpKyIuLi4iOmUudGV4dENvbnRlbnR9KX19LyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi9jb25zdCBqcz0iaW1wb3J0YW50Iix6cD0iICEiK2pzLFFwPUtpKGNsYXNzIGV4dGVuZHMgVGl7Y29uc3RydWN0b3IodCl7dmFyIGU7aWYoc3VwZXIodCksdC50eXBlIT09TGkuQVRUUklCVVRFfHx0Lm5hbWUhPT0ic3R5bGUifHwoKGU9dC5zdHJpbmdzKT09bnVsbD92b2lkIDA6ZS5sZW5ndGgpPjIpdGhyb3cgRXJyb3IoIlRoZSBgc3R5bGVNYXBgIGRpcmVjdGl2ZSBtdXN0IGJlIHVzZWQgaW4gdGhlIGBzdHlsZWAgYXR0cmlidXRlIGFuZCBtdXN0IGJlIHRoZSBvbmx5IHBhcnQgaW4gdGhlIGF0dHJpYnV0ZS4iKX1yZW5kZXIodCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKGUsbik9Pntjb25zdCBsPXRbbl07cmV0dXJuIGw9PW51bGw/ZTplK2Ake249bi5pbmNsdWRlcygiLSIpP246bi5yZXBsYWNlKC8oPzpeKHdlYmtpdHxtb3p8bXN8byl8KSg/PVtBLVpdKS9nLCItJCYiKS50b0xvd2VyQ2FzZSgpfToke2x9O2B9KSwiIil9dXBkYXRlKHQsW2VdKXtjb25zdHtzdHlsZTpufT10LmVsZW1lbnQ7aWYodGhpcy5mdD09PXZvaWQgMClyZXR1cm4gdGhpcy5mdD1uZXcgU2V0KE9iamVjdC5rZXlzKGUpKSx0aGlzLnJlbmRlcihlKTtmb3IoY29uc3QgbCBvZiB0aGlzLmZ0KWVbbF09PW51bGwmJih0aGlzLmZ0LmRlbGV0ZShsKSxsLmluY2x1ZGVzKCItIik/bi5yZW1vdmVQcm9wZXJ0eShsKTpuW2xdPW51bGwpO2Zvcihjb25zdCBsIGluIGUpe2NvbnN0IGk9ZVtsXTtpZihpIT1udWxsKXt0aGlzLmZ0LmFkZChsKTtjb25zdCByPXR5cGVvZiBpPT0ic3RyaW5nIiYmaS5lbmRzV2l0aCh6cCk7bC5pbmNsdWRlcygiLSIpfHxyP24uc2V0UHJvcGVydHkobCxyP2kuc2xpY2UoMCwtMTEpOmkscj9qczoiIik6bltsXT1pfX1yZXR1cm4genR9fSk7dmFyIHdlPSh0PT4odC5CT0xEPSJib2xkIix0LklUQUxJQz0iaXRhbGljIix0LlVOREVSTElORT0idW5kZXJsaW5lIix0LkNPTE9SPSJjb2xvciIsdC5DT1BZPSJjb3B5Iix0LkRFTEVURT0iZGVsZXRlIix0KSkod2V8fHt9KTtjb25zdCBMcD1be3R5cGU6ImJvbGQiLGxhYmVsOiJCb2xkIn0se3R5cGU6Iml0YWxpYyIsbGFiZWw6Ikl0YWxpYyJ9LHt0eXBlOiJ1bmRlcmxpbmUiLGxhYmVsOiJVbmRlcmxpbmUifSx7dHlwZToiY29sb3IifSx7dHlwZToiY29weSJ9LHt0eXBlOiJkZWxldGUifV07Y2xhc3MgdmV7Y29uc3RydWN0b3IoZSxuKXt0aGlzLnRhcmdldEVsZW1lbnQ9ZSx0aGlzLnNlPW59c3RhdGljIGlzVGV4dEJvbGRlZChlKXtyZXR1cm4gZT09PSJib2xkInx8ZT09PSI3MDAifXN0YXRpYyBpc1RleHRVbmRlcmxpbmVkKGUpe3JldHVybiBlPT09InVuZGVybGluZSJ9c3RhdGljIGlzVGV4dEl0YWxpYyhlKXtyZXR1cm4gZT09PSJpdGFsaWMifXN0YXRpYyBpc0RvbURlbGV0ZWQoZSl7cmV0dXJuIGU9PT0ibm9uZSJ9aGFuZGxlUXVpY2tBY3Rpb25DbGljayhlLG4pe2NvbnN0IGw9YT0+e3ZhciBkO2NvbnN0IGM9KGQ9dGhpcy5zZS5vcmlnaW5hbEVsZW1lbnRTdHlsZS5nZXQodGhpcy50YXJnZXRFbGVtZW50KSk9PW51bGw/dm9pZCAwOmQuc3R5bGU7aWYoYyl7Y29uc3Qgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gcy5zdHlsZS5jc3NUZXh0PWMscy5zdHlsZVthXX1yZXR1cm4gbnVsbH0saT1nZXRDb21wdXRlZFN0eWxlKHRoaXMudGFyZ2V0RWxlbWVudCkscj10aGlzLnRhcmdldEVsZW1lbnQuY2xvbmVOb2RlKCk7ci5zdHlsZT0iIjtjb25zdCBvPWdldENvbXB1dGVkU3R5bGUocik7c3dpdGNoKGUpe2Nhc2UiYm9sZCI6e2lmKHZlLmlzVGV4dEJvbGRlZChpLmZvbnRXZWlnaHQpKXtjb25zdCBhPWwoImZvbnRXZWlnaHQiKTthP3ZlLmlzVGV4dEJvbGRlZChhKT90aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZm9udFdlaWdodD0ibm9ybWFsIjp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZm9udFdlaWdodD1hOnZlLmlzVGV4dEJvbGRlZChvLmZvbnRXZWlnaHQpP3RoaXMudGFyZ2V0RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZm9udC13ZWlnaHQiKTp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZm9udFdlaWdodD0ibm9ybWFsIn1lbHNlIHRoaXMudGFyZ2V0RWxlbWVudC5zdHlsZS5mb250V2VpZ2h0PSJib2xkIjticmVha31jYXNlInVuZGVybGluZSI6e2lmKHZlLmlzVGV4dFVuZGVybGluZWQoaS50ZXh0RGVjb3JhdGlvbkxpbmUpKXtjb25zdCBhPWwoInRleHREZWNvcmF0aW9uTGluZSIpO2E/dmUuaXNUZXh0VW5kZXJsaW5lZChhKT90aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUudGV4dERlY29yYXRpb25MaW5lPSJub25lIjp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUudGV4dERlY29yYXRpb25MaW5lPWE6dmUuaXNUZXh0VW5kZXJsaW5lZChvLnRleHREZWNvcmF0aW9uTGluZSk/dGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0ZXh0LWRlY29yYXRpb24tbGluZSIpOnRoaXMudGFyZ2V0RWxlbWVudC5zdHlsZS50ZXh0RGVjb3JhdGlvbkxpbmU9Im5vbmUifWVsc2UgdGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLnRleHREZWNvcmF0aW9uTGluZT0idW5kZXJsaW5lIjticmVha31jYXNlIml0YWxpYyI6e2lmKHZlLmlzVGV4dEl0YWxpYyhpLmZvbnRTdHlsZSkpe2NvbnN0IGE9bCgiZm9udFN0eWxlIik7YT92ZS5pc1RleHRJdGFsaWMoYSk/dGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLmZvbnRTdHlsZT0ibm9ybWFsIjp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZm9udFN0eWxlPWE6dmUuaXNUZXh0SXRhbGljKG8uZm9udFN0eWxlKT90aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoImZvbnQtc3R5bGUiKTp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZm9udFN0eWxlPSJub3JtYWwifWVsc2UgdGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLmZvbnRTdHlsZT0iaXRhbGljIjticmVha31jYXNlImRlbGV0ZSI6e2lmKHZlLmlzRG9tRGVsZXRlZChpLmRpc3BsYXkpKXtjb25zdCBhPWwoImRpc3BsYXkiKTthP3ZlLmlzRG9tRGVsZXRlZChhKT90aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZGlzcGxheT0iIjp0aGlzLnRhcmdldEVsZW1lbnQuc3R5bGUuZGlzcGxheT1hOnZlLmlzRG9tRGVsZXRlZChvLmRpc3BsYXkpP3RoaXMudGFyZ2V0RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZGlzcGxheSIpOnRoaXMudGFyZ2V0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSIifWVsc2UgdGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiO2JyZWFrfWNhc2UiY29sb3IiOntuJiYodGhpcy50YXJnZXRFbGVtZW50LnN0eWxlLmNvbG9yPW4pO2JyZWFrfX19dXBkYXRlVGV4dENvbnRlbnQoZSl7Y29uc3Qgbj10aGlzLnRhcmdldEVsZW1lbnQ7bi5jbGFzc0xpc3QuY29udGFpbnMoUS52aXJ0dWFsVGV4dE5vZGUpP24udGV4dENvbnRlbnQ9ZTp0aGlzLnVwZGF0ZUVsZW1lbnRUZXh0V2l0aEZvcm1hdHRpbmdQcmVzZXJ2ZWQobixlKSxlLnRyaW0oKSYmbi5zdHlsZS5kaXNwbGF5PT09Im5vbmUiJiYobi5zdHlsZS5kaXNwbGF5PSIiKX1jb3B5RWxlbWVudChlKXtpZihlKXRyeXtjb25zdCBuPWUucGFyZW50Tm9kZTtpZighbil7Y29uc29sZS5lcnJvcigi5peg5rOV5aSN5Yi25YWD57SgOiDmnKrmib7liLDniLblhYPntKAiKTtyZXR1cm59Y29uc3QgbD1lLmNsb25lTm9kZSghMCk7cmV0dXJuIGwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD8obC5pZCYmbC5yZW1vdmVBdHRyaWJ1dGUoImlkIiksbC5zdHlsZS5kaXNwbGF5PT09Im5vbmUiJiYobC5zdHlsZS5kaXNwbGF5PSIiKSxsLmNsYXNzTGlzdC5hZGQoUS5jb3B5Tm9kZSksZS5uZXh0U2libGluZz9uLmluc2VydEJlZm9yZShsLGUubmV4dFNpYmxpbmcpOm4uYXBwZW5kQ2hpbGQobCksbCk6dm9pZCAwfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3Iobil9fXJlbW92ZUZvcm1hdHRpbmcoZSxuKXtmb3IoY29uc3QgbCBvZiBuKWUucXVlcnlTZWxlY3RvckFsbChsKS5mb3JFYWNoKHI9Pnt2YXIgZDtjb25zdCBvPXIuaW5uZXJIVE1MLGE9ci5nZXRBdHRyaWJ1dGUoInN0eWxlIil8fCIiLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2lmKGMuaW5uZXJIVE1MPW8sbC50b0xvd2VyQ2FzZSgpPT09InN0cm9uZyJ8fGwudG9Mb3dlckNhc2UoKT09PSJiIj9jLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQiOmwudG9Mb3dlckNhc2UoKT09PSJlbSJ8fGwudG9Mb3dlckNhc2UoKT09PSJpIj9jLnN0eWxlLmZvbnRTdHlsZT0iaXRhbGljIjpsLnRvTG93ZXJDYXNlKCk9PT0idSImJihjLnN0eWxlLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiKSxhKXtjb25zdCBzPWMuZ2V0QXR0cmlidXRlKCJzdHlsZSIpfHwiIjtjLnNldEF0dHJpYnV0ZSgic3R5bGUiLGAke3N9OyAke2F9YCl9KGQ9ci5wYXJlbnROb2RlKT09bnVsbHx8ZC5yZXBsYWNlQ2hpbGQoYyxyKX0pfXVwZGF0ZUVsZW1lbnRUZXh0V2l0aEZvcm1hdHRpbmdQcmVzZXJ2ZWQoZSxuKXtlLnF1ZXJ5U2VsZWN0b3IoInN0cm9uZywgZW0sIHUsIGIsIGkiKSYmdGhpcy5yZW1vdmVGb3JtYXR0aW5nKGUsWyJzdHJvbmciLCJlbSIsInUiLCJiIiwiaSJdKSxlLnRleHRDb250ZW50PW59fWNvbnN0IEtwPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTQuNSA5SDExLjI1QzEyLjA0NTYgOSAxMi44MDg3IDkuMzE2MDcgMTMuMzcxMyA5Ljg3ODY4QzEzLjkzMzkgMTAuNDQxMyAxNC4yNSAxMS4yMDQ0IDE0LjI1IDEyQzE0LjI1IDEyLjc5NTYgMTMuOTMzOSAxMy41NTg3IDEzLjM3MTMgMTQuMTIxM0MxMi44MDg3IDE0LjY4MzkgMTIuMDQ1NiAxNSAxMS4yNSAxNUg1LjI1QzUuMDUxMDkgMTUgNC44NjAzMiAxNC45MjEgNC43MTk2NyAxNC43ODAzQzQuNTc5MDIgMTQuNjM5NyA0LjUgMTQuNDQ4OSA0LjUgMTQuMjVWMy43NUM0LjUgMy41NTEwOSA0LjU3OTAyIDMuMzYwMzIgNC43MTk2NyAzLjIxOTY3QzQuODYwMzIgMy4wNzkwMiA1LjA1MTA5IDMgNS4yNSAzSDEwLjVDMTEuMjk1NiAzIDEyLjA1ODcgMy4zMTYwNyAxMi42MjEzIDMuODc4NjhDMTMuMTgzOSA0LjQ0MTI5IDEzLjUgNS4yMDQzNSAxMy41IDZDMTMuNSA2Ljc5NTY1IDEzLjE4MzkgNy41NTg3MSAxMi42MjEzIDguMTIxMzJDMTIuMDU4NyA4LjY4MzkzIDExLjI5NTYgOSAxMC41IDkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPmAsVHA9QWVgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNC41IDNWNy41QzQuNSA4LjY5MzQ3IDQuOTc0MTEgOS44MzgwNyA1LjgxODAyIDEwLjY4MkM2LjY2MTkzIDExLjUyNTkgNy44MDY1MyAxMiA5IDEyQzEwLjE5MzUgMTIgMTEuMzM4MSAxMS41MjU5IDEyLjE4MiAxMC42ODJDMTMuMDI1OSA5LjgzODA3IDEzLjUgOC42OTM0NyAxMy41IDcuNVYzIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogIDxwYXRoIGQ9Ik0zIDE1SDE1IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz5gLE1wPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTE0LjI1IDNINy41IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogIDxwYXRoIGQ9Ik0xMC41IDE1SDMuNzUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPHBhdGggZD0iTTExLjI1IDNMNi43NSAxNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+YCxIcD10PT5BZWA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMTggMTgiIGZpbGw9Im5vbmUiPgogIDxwYXRoIGQ9Ik00LjUgMTJMOSAzTDEzLjUgMTIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPHBhdGggZD0iTTUuOTk5NTEgOUgxMS45OTk1IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogIDxyZWN0IHg9IjIuMjUiIHk9IjE0LjYyNSIgd2lkdGg9IjEzLjUiIGhlaWdodD0iMy4zNzUiIHJ4PSIxLjEyNSIgZmlsbD0ke3R9Lz4KPC9zdmc+YCxEcD1BZWA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiPgogIDxwYXRoIGQ9Ik0xMi4yNDgyIDUuODM1OTRDMTIuMjQ4MiA1LjUxMzc3IDExLjk4NyA1LjI1MjYgMTEuNjY0OSA1LjI1MjZINS44MzE1NEM1LjUwOTM4IDUuMjUyNiA1LjI0ODIxIDUuNTEzNzcgNS4yNDgyMSA1LjgzNTk0VjExLjY2OTNDNS4yNDgyMSAxMS45OTE0IDUuNTA5MzggMTIuMjUyNiA1LjgzMTU0IDEyLjI1MjZIMTEuNjY0OUMxMS45ODcgMTIuMjUyNiAxMi4yNDgyIDExLjk5MTQgMTIuMjQ4MiAxMS42NjkzVjUuODM1OTRaTTguNzQ4MjEgMi4zMzU5NEM4Ljc0ODIxIDIuMDE2NDQgOC40ODQzOCAxLjc1MjYgOC4xNjQ4OCAxLjc1MjZIMi4zMzE1NEMyLjAxMjA0IDEuNzUyNiAxLjc0ODIxIDIuMDE2NDQgMS43NDgyMSAyLjMzNTk0VjguMTY5MjdDMS43NDgyMSA4LjQ2ODggMS45ODAwNiA4LjcxOTU5IDIuMjcyMyA4Ljc0OTc2TDIuMzkxMzYgOC43NTU0NUMyLjY4NTQzIDguNzg1NCAyLjkxNDg4IDkuMDMzOTYgMi45MTQ4OCA5LjMzNTk0QzIuOTE0ODggOS42Mzc5MiAyLjY4NTQzIDkuODg2NDggMi4zOTEzNiA5LjkxNjQyTDIuMzMxNTQgOS45MTkyN0wyLjI0MTU0IDkuOTE2OTlDMS4zMTkyNCA5Ljg2OTg3IDAuNTgxNTQzIDkuMTAyOTIgMC41ODE1NDMgOC4xNjkyN1YyLjMzNTk0QzAuNTgxNTQzIDEuMzcyMSAxLjM2NzcxIDAuNTg1OTM4IDIuMzMxNTQgMC41ODU5MzhIOC4xNjQ4OEM5LjEyODcxIDAuNTg1OTM4IDkuOTE0ODggMS4zNzIxIDkuOTE0ODggMi4zMzU5NEM5LjkxNDg4IDIuNjU4MSA5LjY1MzcxIDIuOTE5MjcgOS4zMzE1NCAyLjkxOTI3QzkuMDA5MzggMi45MTkyNyA4Ljc0ODIxIDIuNjU4MSA4Ljc0ODIxIDIuMzM1OTRaTTEzLjQxNDkgMTEuNjY5M0MxMy40MTQ5IDEyLjYzNTggMTIuNjMxNCAxMy40MTkzIDExLjY2NDkgMTMuNDE5M0g1LjgzMTU0QzQuODY1MDQgMTMuNDE5MyA0LjA4MTU0IDEyLjYzNTggNC4wODE1NCAxMS42NjkzVjUuODM1OTRDNC4wODE1NCA0Ljg2OTQ0IDQuODY1MDQgNC4wODU5NCA1LjgzMTU0IDQuMDg1OTRIMTEuNjY0OUMxMi42MzE0IDQuMDg1OTQgMTMuNDE0OSA0Ljg2OTQ0IDEzLjQxNDkgNS44MzU5NFYxMS42NjkzWiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPmAsanA9QWVgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgc3R5bGU9Im1pbi13aWR0aDoxNHB4O21pbi1oZWlnaHQ6MTRweDsiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTEwLjQ5OTggNC4wODU5NEgzLjQ5OTg0VjExLjY2OTNDMy40OTk4NCAxMS43NzEyIDMuNTU2NjQgMTEuOTIyIDMuNjkzNTIgMTIuMDU4OUMzLjgzMDQgMTIuMTk1OCAzLjk4MTIyIDEyLjI1MjYgNC4wODMxNyAxMi4yNTI2SDkuOTE2NUMxMC4wMTg1IDEyLjI1MjYgMTAuMTY5MyAxMi4xOTU3IDEwLjMwNjIgMTIuMDU4OUMxMC40NDI5IDExLjkyMjEgMTAuNDk5OCAxMS43NzEyIDEwLjQ5OTggMTEuNjY5M1Y0LjA4NTk0Wk01LjI0OTg0IDkuOTE5MjdWNi40MTkyN0M1LjI0OTg0IDYuMDk3MTUgNS41MTEwNiA1LjgzNjAxIDUuODMzMTcgNS44MzU5NEM2LjE1NTM0IDUuODM1OTQgNi40MTY1IDYuMDk3MTEgNi40MTY1IDYuNDE5MjdWOS45MTkyN0M2LjQxNjUgMTAuMjQxNCA2LjE1NTM0IDEwLjUwMjYgNS44MzMxNyAxMC41MDI2QzUuNTExMDYgMTAuNTAyNSA1LjI0OTg0IDEwLjI0MTQgNS4yNDk4NCA5LjkxOTI3Wk03LjU4MzE3IDkuOTE5MjdWNi40MTkyN0M3LjU4MzE3IDYuMDk3MTEgNy44NDQzNCA1LjgzNTk0IDguMTY2NSA1LjgzNTk0QzguNDg4NjEgNS44MzYwMSA4Ljc0OTg0IDYuMDk3MTUgOC43NDk4NCA2LjQxOTI3VjkuOTE5MjdDOC43NDk4NCAxMC4yNDE0IDguNDg4NjEgMTAuNTAyNSA4LjE2NjUgMTAuNTAyNkM3Ljg0NDM0IDEwLjUwMjYgNy41ODMxNyAxMC4yNDE0IDcuNTgzMTcgOS45MTkyN1pNOC43NDk4NCAyLjMzNTk0QzguNzQ5ODQgMi4yMzM5OSA4LjY5MzAzIDIuMDgzMTcgOC41NTYxNSAxLjk0NjI5QzguNDE5MyAxLjgwOTQ5IDguMjY4NDIgMS43NTI2IDguMTY2NSAxLjc1MjZINS44MzMxN0M1LjczMTIzIDEuNzUyNjkgNS41ODAzIDEuODA5NTEgNS40NDM1MiAxLjk0NjI5QzUuMzA2NzIgMi4wODMxNCA1LjI0OTg0IDIuMjM0MDIgNS4yNDk4NCAyLjMzNTk0VjIuOTE5MjdIOC43NDk4NFYyLjMzNTk0Wk05LjkxNjUgMi45MTkyN0gxMi4yNDk4TDEyLjMwOTcgMi45MjI2OUMxMi42MDM3IDIuOTUyNjUgMTIuODMzMSAzLjIwMDcgMTIuODMzMiAzLjUwMjZDMTIuODMzMiAzLjgwNDU4IDEyLjYwMzcgNC4wNTMxNCAxMi4zMDk3IDQuMDgzMDlMMTIuMjQ5OCA0LjA4NTk0SDExLjY2NjVWMTEuNjY5M0MxMS42NjY1IDEyLjE1MDYgMTEuNDMxNiAxMi41ODMyIDExLjEzMSAxMi44ODM4QzEwLjgzMDQgMTMuMTg0NCAxMC4zOTc4IDEzLjQxOTIgOS45MTY1IDEzLjQxOTNINC4wODMxN0MzLjYwMTc5IDEzLjQxOTMgMy4xNjkyNyAxMy4xODQ0IDIuODY4NjUgMTIuODgzOEMyLjU2ODAzIDEyLjU4MzIgMi4zMzMxNyAxMi4xNTA3IDIuMzMzMTcgMTEuNjY5M1Y0LjA4NTk0SDEuNzQ5ODRDMS40Mjc2NyA0LjA4NTk0IDEuMTY2NSAzLjgyNDc3IDEuMTY2NSAzLjUwMjZDMS4xNjY1NyAzLjE4MDUgMS40Mjc3MSAyLjkxOTI3IDEuNzQ5ODQgMi45MTkyN0g0LjA4MzE3VjIuMzM1OTRDNC4wODMxNyAxLjg1NDYxIDQuMzE4MDkgMS40MjIwMyA0LjYxODY1IDEuMTIxNDJDNC45MTkyMiAwLjgyMDg0NyA1LjM1MTg3IDAuNTg2MDEgNS44MzMxNyAwLjU4NTkzOEg4LjE2NjVDOC42NDc4MyAwLjU4NTkzOCA5LjA4MDQxIDAuODIwODU0IDkuMzgxMDIgMS4xMjE0MkM5LjY4MTY0IDEuNDIyMDQgOS45MTY1IDEuODU0NTUgOS45MTY1IDIuMzM1OTRWMi45MTkyN1oiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz5gLHZsPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+CgkJCQkJCQkJCQk8cGF0aAoJCQkJCQkJCQkJCWQ9Ik0xMy4yMjUxIDE2LjkzNzlDMTQuNDcxNyAxNi4xNDcgMTUuMzMzNiAxMS45MDUyIDE1LjE0NCAxMC42NDIxQzE1LjE0NCAxMC42NDIxIDE0Ljk0NjQgOS45NjM5NiAxNC40NjQzIDkuOTYzOTRDMTMuOTgyMSA5Ljk2MzkxIDEzLjc4MTUgMTAuNDcxOSAxMy43ODE1IDEwLjQ3MTlDMTMuNzgxNSAxMC40NzE5IDEzLjY1NDYgMTAuOTQwOSAxMy40NTU1IDExLjUzMTNDMTMuMTQ3NCAxMi40NDQ3IDEzLjAxNzggMTMuNTcxOCAxMi4yMTQzIDEzLjg1NzFDMTEuNDEwNyAxNC4xNDI1IDEwLjYwNzEgMTMuODcyNSAxMC42MDcxIDEzLjg3MjVDMTEuMTUzNSAxNS45NDQ4IDExLjk3ODUgMTcuNzI4OCAxMy4yMjUxIDE2LjkzNzlaIgoJCQkJCQkJCQkJCWZpbGw9IndoaXRlIgoJCQkJCQkJCQkJLz4KCQkJCQkJCQkJCTxwYXRoCgkJCQkJCQkJCQkJZmlsbC1ydWxlPSJldmVub2RkIgoJCQkJCQkJCQkJCWNsaXAtcnVsZT0iZXZlbm9kZCIKCQkJCQkJCQkJCQlkPSJNNy4wNDgyNiA5LjE3Njg5QzYuNTkwMjkgOS4yMjgyNCA2LjM0OTA2IDkuNDAxMzYgNi4yNjc2OCA5LjQ4Mjc0QzUuOTQ2MjUgOS44MDQxNyA1Ljc4NTU0IDEwLjEyNTYgNS43ODU1NCAxMC4yODYzQzUuNzg1NTQgMTAuNDQ3IDUuNDA3NDUgOS41MzM5MyA1LjMyNDM3IDkuNDQ4MzdDNS4wNzcwMyA5LjE5MzY2IDUuMDgzIDguNzg2NjcgNS4zMzc3MSA4LjUzOTMzQzUuNjk1MjcgOC4xOTIxMiA2LjI4MDAzIDcuOTY5MjUgNi45MDUwMiA3Ljg5OTE4QzcuNTUzMjMgNy44MjY1MSA4LjMyMTkgNy45MDc1IDkuMDk5NzEgOC4yNTIwNUMxMC4wMDc1IDguNjU0MTUgMTAuNDkzNyA5LjUwMTk5IDEwLjY3NzMgMTAuMjc2OEMxMC43NzA1IDEwLjY3MDEgMTAuNzk0MyAxMS4wNzQzIDEwLjc0NjYgMTEuNDQyNkMxMC43MDAyIDExLjgwMDIgMTAuNTc4MSAxMi4xODI2IDEwLjMyNDIgMTIuNDczNkM5Ljc5NTI1IDEzLjA3OTkgOS4wMTUwOCAxMy4wMTE2IDguNTkzIDEyLjkyMjFDOC4zNTUxOCAxMi44NzE2IDguMTQ1NDIgMTIuNzk3NSA3Ljk5Nzg2IDEyLjczOEM3LjkyMzAzIDEyLjcwNzkgNy44NjE1OCAxMi42ODA0IDcuODE3NDcgMTIuNjU5N0M3Ljc5NTM1IDEyLjY0OTMgNy43Nzc0MyAxMi42NDA2IDcuNzY0MiAxMi42MzQxQzcuNzU3NTcgMTIuNjMwOCA3Ljc1MjExIDEyLjYyOCA3Ljc0Nzg2IDEyLjYyNTlMNy43NDI0IDEyLjYyMzFMNy43NDAzNyAxMi42MjJMNy43MzkxNSAxMi42MjE0QzcuNzM5MTUgMTIuNjIxNCA3LjczODggMTIuNjIxMiA4LjAzNTY4IDEyLjA1MUw3LjczODggMTIuNjIxMkM3LjQyMzg5IDEyLjQ1NzMgNy4zMDE1MiAxMi4wNjkgNy40NjU0OCAxMS43NTQxQzcuNjI5MTIgMTEuNDM5OCA4LjAxNjEyIDExLjMxNzMgOC4zMzA3IDExLjQ3OThNOC4zMzA3IDExLjQ3OThMOC4zMzE0NSAxMS40ODAyTDguMzMwNyAxMS40Nzk4Wk04LjMzMDcgMTEuNDc5OEw4LjMzNTMxIDExLjQ4MjJDOC4zNDA1MiAxMS40ODQ3IDguMzQ5OCAxMS40ODkzIDguMzYyNzEgMTEuNDk1M0M4LjM4ODY0IDExLjUwNzUgOC40Mjg1MiAxMS41MjU0IDguNDc4OCAxMS41NDU3QzguNTgxNDYgMTEuNTg3MSA4LjcxNzA1IDExLjYzNDEgOC44NTk4MiAxMS42NjQ0QzkuMTk4OTIgMTEuNzM2MyA5LjMyMDgxIDExLjY2OCA5LjM1NTQgMTEuNjI4NEM5LjM4MzI1IDExLjU5NjUgOS40NDM5NiAxMS40ODk5IDkuNDcxNTQgMTEuMjc3M0M5LjQ5NzcxIDExLjA3NTUgOS40ODY2MyAxMC44MjgxIDkuNDI2MjUgMTAuNTczM0M5LjMwMjY3IDEwLjA1MTkgOS4wMDY4NSA5LjYxNzEyIDguNTc4OTkgOS40Mjc1OUM4LjAyMTE3IDkuMTgwNSA3LjQ4MzAxIDkuMTI4MTUgNy4wNDgyNiA5LjE3Njg5IgoJCQkJCQkJCQkJCWZpbGw9IndoaXRlIgoJCQkJCQkJCQkJLz4KCQkJCQkJCQkJCTxwYXRoCgkJCQkJCQkJCQkJZmlsbC1ydWxlPSJldmVub2RkIgoJCQkJCQkJCQkJCWNsaXAtcnVsZT0iZXZlbm9kZCIKCQkJCQkJCQkJCQlkPSJNMi43OTgxMiAyLjUzMzQ4QzIuNjQxNzYgMi44NTIyNCAyLjc3MzQgMy4yMzc0IDMuMDkyMTYgMy4zOTM3NkMzLjU1IDMuNjE4MzQgMy45NDczMSAzLjgzOTc5IDQuMzQwNjggNC4yODMzMUM0LjU3NjI3IDQuNTQ4OTIgNC45ODI1OCA0LjU3MzI2IDUuMjQ4MiA0LjMzNzY3QzUuNTEzODEgNC4xMDIwOCA1LjUzODE1IDMuNjk1NzcgNS4zMDI1NiAzLjQzMDE2QzQuNzQyIDIuNzk4MTUgNC4xNjQ5OSAyLjQ4Nzk0IDMuNjU4MzkgMi4yMzk0NEMzLjMzOTYzIDIuMDgzMDggMi45NTQ0OCAyLjIxNDczIDIuNzk4MTIgMi41MzM0OFoiCgkJCQkJCQkJCQkJZmlsbD0id2hpdGUiCgkJCQkJCQkJCQkvPgoJCQkJCQkJCQkJPHBhdGgKCQkJCQkJCQkJCQlmaWxsLXJ1bGU9ImV2ZW5vZGQiCgkJCQkJCQkJCQkJY2xpcC1ydWxlPSJldmVub2RkIgoJCQkJCQkJCQkJCWQ9Ik02LjI3Mjc1IDAuNjYyNTE5QzUuOTI4MzEgMC43NDg2MjkgNS43MTg4OSAxLjA5NzY2IDUuODA1IDEuNDQyMUM1Ljg2NTE2IDEuNjgyNzQgNS45MjEyNyAxLjg4ODUgNS45NzI2MyAyLjA3Njg2QzYuMDcwOTMgMi40MzczOCA2LjE1MTg1IDIuNzM0MTUgNi4yMTA1NCAzLjA4OTY5QzYuMjY4MzcgMy40Mzk5OSA2LjU5OTIzIDMuNjc3MDggNi45NDk1MiAzLjYxOTI2QzcuMjk5ODIgMy41NjE0MyA3LjUzNjkyIDMuMjMwNTggNy40NzkwOSAyLjg4MDI4QzcuNDA5NzIgMi40NjAwNiA3LjMwMTcgMi4wNjI0NiA3LjE5MzI4IDEuNjYzMzhDNy4xNDUyNiAxLjQ4NjY2IDcuMDk3MTcgMS4zMDk2NiA3LjA1MjMzIDEuMTMwMjdDNi45NjYyMiAwLjc4NTgyNyA2LjYxNzE5IDAuNTc2NDEgNi4yNzI3NSAwLjY2MjUxOVoiCgkJCQkJCQkJCQkJZmlsbD0id2hpdGUiCgkJCQkJCQkJCQkvPgoJCQkJCQkJCQkJPHBhdGgKCQkJCQkJCQkJCQlkPSJNOC45OTk3OSAzLjIxNDU2QzkuMTYwNTEgMi41NzE3MSA5LjMyMTIyIDIuMDg5NTYgOS42MTM3NyAxLjYwNzQyIgoJCQkJCQkJCQkJCXN0cm9rZT0id2hpdGUiCgkJCQkJCQkJCQkJc3Ryb2tlLXdpZHRoPSIxLjI4NTcxIgoJCQkJCQkJCQkJCXN0cm9rZS1taXRlcmxpbWl0PSIxMCIKCQkJCQkJCQkJCQlzdHJva2UtbGluZWNhcD0icm91bmQiCgkJCQkJCQkJCQkvPgoJCQkJCQkJCQkJPHBhdGgKCQkJCQkJCQkJCQlmaWxsLXJ1bGU9ImV2ZW5vZGQiCgkJCQkJCQkJCQkJY2xpcC1ydWxlPSJldmVub2RkIgoJCQkJCQkJCQkJCWQ9Ik0xMS4zNjEzIDYuMjY4MzJDMTIuNjM2NiA2LjUyMzE2IDEyLjYzNjggNi41MjIyMSAxMi42MzY4IDYuNTIyMjFMMTIuNjM3IDYuNTIxMjZMMTIuNjM3MyA2LjUxOTMxTDEyLjYzODEgNi41MTUyN0wxMi42Mzk2IDYuNTA2NThDMTIuNjQwNyA2LjUwMDU0IDEyLjY0MTggNi40OTM5NSAxMi42NDI5IDYuNDg2ODdDMTIuNjQ1MiA2LjQ3MjcxIDEyLjY0NzYgNi40NTY0MSAxMi42NSA2LjQzODE2QzEyLjY1NDggNi40MDE5MSAxMi42NTk2IDYuMzU2NjIgMTIuNjYyOCA2LjMwNDE5QzEyLjY2ODkgNi4yMDMxNSAxMi42NzAyIDYuMDU2MzUgMTIuNjQ0MyA1Ljg4NjA4QzEyLjU5NTQgNS41NjM1NCAxMi40MDc1IDQuOTUyMTUgMTEuNzQ1NSA0LjU5Nzc0TDExLjYxNDYgNC41Mjc2MkwxMS40NzE1IDQuNDg4MDFMMTEuMTQyNCA1LjcxNDRDMTEuNDM1OCA1Ljg3MTUgMTEuMzYxMyA2LjI2ODMyIDExLjM2MTMgNi4yNjgzMlpNMTEuMTU3MyA3LjA3NzQyTDExLjM2MTMgNi4yNjgzMkwxMi42MzY2IDYuNTIzMTZMMTIuNjI5NiA2LjU2MDQ5TDEyLjQyMzcgNy4zNzczMkMxMi4zODQxIDcuNTc4MDcgMTIuMzc4OSA3LjY5Mjg1IDEyLjM4MSA3Ljc1MzQ5QzEyLjM4MjggNy44MDI4NCAxMi4zODkyIDcuODE5MDQgMTIuMzkyNCA3LjgyNjk4TDEyLjM5MjcgNy44Mjc5QzEyLjQwMDggNy44NDg0MSAxMi40MjE2IDcuODkyODkgMTIuNDk3NyA4LjAwODMyQzEyLjUyODcgOC4wNTUzNyAxMi41NjEgOC4xMDI1MiAxMi42MDIxIDguMTYyNkMxMi42MTMgOC4xNzg1IDEyLjYyNDUgOC4xOTUzMSAxMi42MzY3IDguMjEzMjdDMTIuNjkxOSA4LjI5NDE2IDEyLjc1NjUgOC4zODk1MyAxMi44MjUgOC40OTYyMUMxMy4yNTI3IDkuMTYyODEgMTMuMjk0NyA5LjgwMjU5IDEzLjI5MjUgMTAuMjEyNkMxMy4yOTI0IDEwLjIxODYgMTMuMjkyNCAxMC4yMjQ2IDEzLjI5MjMgMTAuMjMwNUMxMy4zNDM1IDEwLjI0ODEgMTMuMzk3OCAxMC4yNjU4IDEzLjQ1NTUgMTAuMjg0MUMxMy40NzQ1IDEwLjI5MDIgMTMuNDk5NyAxMC4yOTgyIDEzLjUyNjIgMTAuMzA2NUMxMy41NjM0IDEwLjMxODMgMTMuNjAzMSAxMC4zMzA4IDEzLjYzMTQgMTAuMzM5OUMxMy42ODcyIDEwLjM1NzcgMTMuNzU4NCAxMC4zODEgMTMuODI3MiAxMC40MDY3QzEzLjg3NTEgMTAuNDI0NSAxMy45MjExIDEwLjQ0MjMgMTMuOTY0NCAxMC40NjAzQzE0LjAwNTkgMTAuNDc3NSAxNC4wNTY2IDEwLjQ5OTUgMTQuMTA5OSAxMC41MjY0QzE0LjE1MTMgMTAuNTQ3MyAxNC4yMTg2IDEwLjU4MzEgMTQuMjk0OCAxMC42MzU5TDE0Ljk2NDcgMTAuOTI0MkwxNC45NTUgMTEuNzgyM0MxNC45NDkzIDEyLjI4NjggMTQuNzQ2MyAxMi44MTg3IDE0LjYwMjMgMTMuMTQ4QzE0LjQ0MzYgMTMuNTExMSAxNC4yMzM5IDEzLjg5ODMgMTQuMDQwOCAxNC4xNTU2QzEzLjc3MTIgMTQuNTE1IDEzLjQ2NTcgMTQuODk0NSAxMy4wOTgxIDE1LjEzNzJDMTIuODgxNSAxNS4yODAyIDEyLjYxOTggMTUuMzk0IDEyLjMxMTEgMTUuNDMxM0MxMi4wMzYxIDE1LjQ2NDUgMTEuNzk4MSAxNS40Mjc3IDExLjYyMzIgMTUuMzg1MUwxMS41NzE3IDE1LjM3NDVDMTEuNTE5OSAxNS4zNjM5IDExLjQ0NTYgMTUuMzQ4NiAxMS4zNTUzIDE1LjMyOThDMTEuMTc0OCAxNS4yOTIyIDEwLjkyODcgMTUuMjQwNCAxMC42Njc4IDE1LjE4MzdDMTAuMTg2NyAxNS4wNzkzIDkuNTM0NzEgMTQuOTMzMSA5LjIyNzE1IDE0LjgzMTFMOS4yMDQ5MiAxNC44MjM3TDkuMTgyOTYgMTQuODE1NUM5LjA0NjU1IDE0Ljc2NDkgOC44MTU5MSAxNC43MDgxIDguNDMzODcgMTQuNjIxQzguNDEwNzcgMTQuNjE1NyA4LjM4NzIyIDE0LjYxMDMgOC4zNjMyOCAxNC42MDQ5QzguMDMzNzEgMTQuNTI5OSA3LjYyODEgMTQuNDM3NiA3LjI0NDAxIDE0LjMyMTJDNi44NDYyIDE0LjIwMDggNi4zNTQxOCAxNC4wMjE2IDUuOTM2NCAxMy43Mjk2QzUuNDk3OSAxMy40MjMyIDQuOTk5MzYgMTIuODgyOSA0Ljk3MTYgMTIuMDcyM0M0Ljk2NzQ0IDExLjk1MSA0Ljk3MDIzIDExLjgzMzcgNC45Nzc3NCAxMS43MjI0QzQuNzgwMjcgMTEuNTA4NCA0LjYxNDU0IDExLjIyODYgNC41MzA3OCAxMC44NzAzQzQuNDQ5MTggMTAuNTIxMiA0LjQ5NDMxIDEwLjIxMTggNC41NTE1NiA5Ljk5NDU5QzQuNjA4OTcgOS43NzY4IDQuNjk2MTcgOS41ODY0MyA0Ljc2OTA0IDkuNDQ0MTNDNC43OTM2NCA5LjM5NjEgNC44MTkxNSA5LjM0ODc0IDQuODQ0NiA5LjMwMjk4QzQuNjAzNTYgOS4yMjY5MiA0LjMzMTMgOS4xMzI5NCA0LjA2NjMxIDkuMDE5OTlDMy43MjAyMyA4Ljg3MjQ2IDMuMjI5MTggOC42MjkwOCAyLjg2MjU4IDguMjM2MkMyLjY2NTE0IDguMDI0NiAyLjQ1ODQgNy43MjEzMiAyLjM3NDgxIDcuMzI0OEMyLjI4NzMzIDYuOTA5ODUgMi4zNjAwMiA2LjUxMTcxIDIuNTMwMzYgNi4xNzA4QzIuOTQ1MDIgNS4zNDA5MyAzLjczNzA2IDUuMDQ3NzMgNC40NDE1MiA1LjAyMjM3QzUuMDc3NjIgNC45OTk0NiA1Ljc1NDQ5IDUuMTc3NDUgNi4zNjA5NyA1LjM5MDE2QzYuOTEzNTUgNS41ODM5NyA3LjcwNDQzIDUuOTQ0NDQgOC4zNzYzIDYuMjU4NDJDOC41OTc2IDUuODk1NTQgOC44ODkzMiA1LjQ4NTQ5IDkuMTY1NDggNS4xNTQzMkw5LjIyMDM0IDUuMDg4NTRMOS4yODM4MiA1LjAzMDc1QzkuNzU4OTYgNC41OTgyOCAxMC4yOTI3IDQuNDUyODggMTAuNjk5NCA0LjQyMTY5QzEwLjg5ODggNC40MDY0IDExLjA3MDUgNC40MTc4MSAxMS4xOTg5IDQuNDM0NDhDMTEuMjYzOCA0LjQ0MjkxIDExLjMxOTggNC40NTI5NSAxMS4zNjUyIDQuNDYyNDVDMTEuMzg4IDQuNDY3MjEgMTEuNDA4MyA0LjQ3MTg4IDExLjQyNiA0LjQ3NjJDMTEuNDM0OSA0LjQ3ODM3IDExLjQ0MzEgNC40ODA0NSAxMS40NTA3IDQuNDgyNDNMMTEuNDYxNiA0LjQ4NTMxTDExLjQ2NjYgNC40ODY2OEwxMS40NjkxIDQuNDg3MzVMMTEuNDcwMyA0LjQ4NzY4QzExLjQ3MDMgNC40ODc2OCAxMS40NzE1IDQuNDg4MDEgMTEuMTQyNCA1LjcxNDRDMTEuMTQyNCA1LjcxNDQgMTAuNjI5MiA1LjU3MjMyIDEwLjE4OCA1Ljk2MTc1QzEwLjE4MzYgNS45NjU2NyAxMC4xNzkyIDUuOTY5NjUgMTAuMTc0NyA1Ljk3MzY4QzEwLjE2MSA1Ljk5MDA5IDEwLjE0NzMgNi4wMDY3IDEwLjEzMzYgNi4wMjM1MUMxMC4xMTM5IDYuMDQ3NjggMTAuMDk0MSA2LjA3MjI0IDEwLjA3NDMgNi4wOTcxMUMxMC4wNjg1IDYuMTA0NDEgMTAuMDYyNyA2LjExMTc0IDEwLjA1NjkgNi4xMTkxQzkuNjE2NjYgNi42Nzc2OCA5LjY0Mjc3IDYuOTExMDMgOC44MzkxNCA3Ljg3NTQzQzguODM5MTQgNy44NzU0MyA4LjQyMDUgNy42ODE1NyA4LjE3MDEgNy41NjM4NkM3Ljk5ODMgNy40ODMxMSA3LjgxNjY5IDcuMzk3NzQgNy42MzE2NCA3LjMxMTY5QzcuMDM0NjQgNy4wMzQxMSA2LjQwMTczIDYuNzQ5NDYgNS45NDYyOCA2LjU4OTcyQzQuODI0OTQgNi4xOTY0MyAzLjk5ODIxIDYuMTQ2NTEgMy42OTY0NSA2Ljc1MDQyQzMuMjk4MzkgNy41NDcwNyA0LjkxNDggOC4wMDg2NiA1LjcyNzA1IDguMjQwNjFDNS44OTgxIDguMjg5NDUgNi4wMzM0OSA4LjMyODExIDYuMTA2ODkgOC4zNTc1OEM2LjUyMzQ4IDguNTI0NzkgNi41NTI1NSA4Ljg2MDMxIDYuNDI4NDggOS4xNjEwM0M2LjM1NjA5IDkuMzM2NTEgNi4zMTQ4MiA5LjQzNTQxIDYuMTA3MDYgOS42NDMxN0M1Ljc4NTYzIDkuOTY0NiA1LjczMjkyIDEwLjM0NTIgNS43OTQzIDEwLjYwNzhDNS44MjUwMyAxMC43MzkyIDUuODg1ODIgMTAuODM0OCA1Ljk1ODA5IDEwLjkwNDRDNi4xNTE5NyAxMS4wOTA5IDYuNDI4NDIgMTEuMDg5NyA2LjQyODQyIDExLjA4OTdDNi40Mjg0MiAxMS4wODk3IDYuMjUwMTYgMTEuNTQ1MyA2LjI2NzU5IDEyLjA1NDFDNi4yNzE0MyAxMi4xNjYxIDYuMzAxNTUgMTIuMjY4IDYuMzUzNDYgMTIuMzYxMkM2LjY2MTYzIDEyLjkxNDUgNy43Mzc3NCAxMy4xNTk2IDguNjQxODkgMTMuMzY1NUM5LjAyMTYyIDEzLjQ1MiA5LjM3MTAyIDEzLjUzMTYgOS42MjA0NiAxMy42MjQyQzEwLjA2NzYgMTMuNzcyNiAxMS44OTI1IDE0LjE0MzMgMTEuODkyNSAxNC4xNDMzQzEyLjIyOTIgMTQuMjMxNyAxMi40MzggMTQuMTI0NyAxMi45OTE5IDEzLjM4NjRDMTMuMjIxOSAxMy4wNzk3IDEzLjY1MyAxMi4yMTIzIDEzLjY1ODMgMTEuNzQzNUMxMy41ODg0IDExLjcxMzQgMTMuNTgzNSAxMS43MDI5IDEzLjU3ODYgMTEuNjkyNEMxMy41NzE4IDExLjY3NzkgMTMuNTY1IDExLjY2MzMgMTMuMzg4MiAxMS41OTc0QzEzLjMyOSAxMS41NzU0IDEzLjI0OTkgMTEuNTUwNCAxMy4xNTkzIDExLjUyMThDMTIuNzgyMiAxMS40MDI5IDEyLjIwNzEgMTEuMjIxNSAxMi4wNTM0IDEwLjkyOUMxMS45Nzg4IDEwLjc4NyAxMS45ODQ2IDEwLjU5NjQgMTEuOTkxNSAxMC4zNzM2QzEyLjAwMjIgMTAuMDI3MSAxMi4wMTUzIDkuNjAyNjEgMTEuNzMyIDkuMTYxMTVDMTEuNjYyNCA5LjA1Mjc2IDExLjU5NTcgOC45NTUyMyAxMS41MzMzIDguODY0QzExLjE3ODEgOC4zNDQ2OSAxMC45NjI2IDguMDI5NiAxMS4xNTczIDcuMDc3NDJaTTUuMjE3MzYgOC42NDU3NEM1LjIxODE4IDguNjQzNDEgNS4yMTc4NyA4LjY0Mzk0IDUuMjE2ODQgOC42NDcxN0w1LjIxNzM2IDguNjQ1NzRaTTEzLjI4NTkgMTAuNjIxNEMxMy4yODU5IDEwLjYyMTQgMTMuMjg1OSAxMC42MTY0IDEzLjI4NDkgMTAuNjA3N0MxMy4yODUyIDEwLjYxNzMgMTMuMjg1OSAxMC42MjE0IDEzLjI4NTkgMTAuNjIxNFoiCgkJCQkJCQkJCQkJZmlsbD0id2hpdGUiCgkJCQkJCQkJCQkvPgoJCQkJCQkJCQk8L3N2Zz5gO0FlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTE3LjYzMzQgMjIuNTgzOEMxOS4yOTU2IDIxLjUyOTMgMjAuNDQ0OCAxNS44NzM2IDIwLjE5MiAxNC4xODk0QzIwLjE5MiAxNC4xODk0IDE5LjkyODUgMTMuMjg1MyAxOS4yODU3IDEzLjI4NTNDMTguNjQyOCAxMy4yODUyIDE4LjM3NTQgMTMuOTYyNSAxOC4zNzU0IDEzLjk2MjVDMTguMzc1NCAxMy45NjI1IDE4LjIwNjIgMTQuNTg3OCAxNy45NDA2IDE1LjM3NTFDMTcuNTI5OCAxNi41OTMgMTcuMzU3MSAxOC4wOTU3IDE2LjI4NTcgMTguNDc2MkMxNS4yMTQzIDE4Ljg1NjYgMTQuMTQyOSAxOC40OTY2IDE0LjE0MjkgMTguNDk2NkMxNC44NzE0IDIxLjI1OTcgMTUuOTcxMyAyMy42Mzg0IDE3LjYzMzQgMjIuNTgzOFoiIGZpbGw9IiMzNDMyMkQiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuMzk3ODUgMTIuMjM4NUM4Ljc4NzIxIDEyLjMwNjkgOC40NjU1OCAxMi41Mzc4IDguMzU3MDcgMTIuNjQ2M0M3LjkyODUgMTMuMDc0OCA3LjcxNDIyIDEzLjUwMzQgNy43MTQyMiAxMy43MTc3QzcuNzE0MjIgMTMuOTMyIDcuMjEwMDkgMTIuNzE0NSA3LjA5OTMyIDEyLjYwMDRDNi43Njk1MyAxMi4yNjA4IDYuNzc3NSAxMS43MTgyIDcuMTE3MTEgMTEuMzg4NEM3LjU5Mzg2IDEwLjkyNTQgOC4zNzM1NCAxMC42MjgzIDkuMjA2ODUgMTAuNTM0OEMxMC4wNzExIDEwLjQzOCAxMS4wOTYgMTAuNTQ1OSAxMi4xMzMxIDExLjAwNTNDMTMuMzQzNSAxMS41NDE1IDEzLjk5MTcgMTIuNjcxOSAxNC4yMzY2IDEzLjcwNUMxNC4zNjA5IDE0LjIyOTQgMTQuMzkyNiAxNC43NjgzIDE0LjMyODkgMTUuMjU5NUMxNC4yNjcxIDE1LjczNjIgMTQuMTA0MyAxNi4yNDYxIDEzLjc2NTggMTYuNjM0MUMxMy4wNjA1IDE3LjQ0MjUgMTIuMDIwMyAxNy4zNTE1IDExLjQ1NzUgMTcuMjMyMUMxMS4xNDA0IDE3LjE2NDggMTAuODYwNyAxNy4wNjYgMTAuNjY0IDE2Ljk4NjZDMTAuNTY0MiAxNi45NDY0IDEwLjQ4MjMgMTYuOTA5NyAxMC40MjM1IDE2Ljg4MjJDMTAuMzk0IDE2Ljg2ODQgMTAuMzcwMSAxNi44NTY4IDEwLjM1MjQgMTYuODQ4QzEwLjM0MzYgMTYuODQzNiAxMC4zMzYzIDE2Ljg0IDEwLjMzMDYgMTYuODM3MUwxMC4zMjM0IDE2LjgzMzRMMTAuMzIwNyAxNi44MzJMMTAuMzE5IDE2LjgzMTFDMTAuMzE5IDE2LjgzMTEgMTAuMzE4NiAxNi44MzA5IDEwLjcxNDQgMTYuMDcwNkwxMC4zMTg2IDE2LjgzMDlDOS44OTg2OCAxNi42MTIzIDkuNzM1NTMgMTYuMDk0NyA5Ljk1NDE0IDE1LjY3NDhDMTAuMTcyMyAxNS4yNTU3IDEwLjY4ODMgMTUuMDkyNCAxMS4xMDc4IDE1LjMwOTFNMTEuMTA3OCAxNS4zMDkxTDExLjEwODggMTUuMzA5NkwxMS4xMDc4IDE1LjMwOTFaTTExLjEwNzggMTUuMzA5MUwxMS4xMTM5IDE1LjMxMjFDMTEuMTIwOSAxNS4zMTU2IDExLjEzMzIgMTUuMzIxNiAxMS4xNTA0IDE1LjMyOTdDMTEuMTg1IDE1LjM0NTkgMTEuMjM4MiAxNS4zNjk4IDExLjMwNTIgMTUuMzk2OEMxMS40NDIxIDE1LjQ1MiAxMS42MjI5IDE1LjUxNDcgMTEuODEzMyAxNS41NTUxQzEyLjI2NTQgMTUuNjUxIDEyLjQyNzkgMTUuNTYgMTIuNDc0IDE1LjUwNzFDMTIuNTExMiAxNS40NjQ2IDEyLjU5MjEgMTUuMzIyNSAxMi42Mjg5IDE1LjAzOUMxMi42NjM4IDE0Ljc2OTkgMTIuNjQ5IDE0LjQ0MDEgMTIuNTY4NSAxNC4xMDA0QzEyLjQwMzcgMTMuNDA1MiAxMi4wMDkzIDEyLjgyNTQgMTEuNDM4OCAxMi41NzI3QzEwLjY5NTEgMTIuMjQzMyA5Ljk3NzUgMTIuMTczNSA5LjM5Nzg1IDEyLjIzODUiIGZpbGw9IiMzNDMyMkQiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuNzMwOTkgMy4zODA1OEMzLjUyMjUxIDMuODA1NTkgMy42OTgwNCA0LjMxOTEzIDQuMTIzMDQgNC41Mjc2MUM0LjczMzQ5IDQuODI3MDYgNS4yNjMyNCA1LjEyMjMzIDUuNzg3NzQgNS43MTM2OEM2LjEwMTg2IDYuMDY3ODMgNi42NDM2IDYuMTAwMjggNi45OTc3NiA1Ljc4NjE3QzcuMzUxOTEgNS40NzIwNSA3LjM4NDM2IDQuOTMwMyA3LjA3MDI0IDQuNTc2MTVDNi4zMjI4MiAzLjczMzQ4IDUuNTUzNDggMy4zMTk4NiA0Ljg3ODAyIDIuOTg4NTJDNC40NTMwMSAyLjc4MDA0IDMuOTM5NDcgMi45NTU1OCAzLjczMDk5IDMuMzgwNThaIiBmaWxsPSIjMzQzMjJEIi8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjM2MzUgMC44ODMzNTlDNy45MDQyNSAwLjk5ODE3MiA3LjYyNTAzIDEuNDYzNTQgNy43Mzk4NCAxLjkyMjhDNy44MjAwNSAyLjI0MzY1IDcuODk0ODYgMi41MTggNy45NjMzNCAyLjc2OTE1QzguMDk0NDEgMy4yNDk4NCA4LjIwMjMxIDMuNjQ1NTMgOC4yODA1NiA0LjExOTU5QzguMzU3NjcgNC41ODY2NSA4Ljc5ODggNC45MDI3OCA5LjI2NTg3IDQuODI1NjhDOS43MzI5MyA0Ljc0ODU3IDEwLjA0OTEgNC4zMDc0MyA5Ljk3MTk2IDMuODQwMzdDOS44Nzk0NiAzLjI4MDA3IDkuNzM1NDMgMi43NDk5NCA5LjU5MDg3IDIuMjE3ODRDOS41MjY4NiAxLjk4MjIyIDkuNDYyNzQgMS43NDYyMSA5LjQwMjk0IDEuNTA3MDJDOS4yODgxMyAxLjA0Nzc3IDguODIyNzUgMC43Njg1NDYgOC4zNjM1IDAuODgzMzU5WiIgZmlsbD0iIzM0MzIyRCIvPgogIDxwYXRoIGQ9Ik0xMi4wMDAyIDQuMjgzNDhDMTIuMjE0NSAzLjQyNjM0IDEyLjQyODggMi43ODM0OCAxMi44MTg4IDIuMTQwNjIiIHN0cm9rZT0iIzM0MzIyRCIgc3Ryb2tlLXdpZHRoPSIxLjcxNDI5IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUuMTQ4NyA4LjM1Nzc2QzE2Ljg0OTEgOC42OTc1NCAxNi44NDk0IDguNjk2MjkgMTYuODQ5NCA4LjY5NjI5TDE2Ljg0OTYgOC42OTUwMUwxNi44NTAxIDguNjkyNDJMMTYuODUxMSA4LjY4NzAyTDE2Ljg1MzEgOC42NzU0NEMxNi44NTQ1IDguNjY3MzggMTYuODU2IDguNjU4NjEgMTYuODU3NSA4LjY0OTE2QzE2Ljg2MDYgOC42MzAyOSAxNi44NjM4IDguNjA4NTQgMTYuODY3IDguNTg0MjFDMTYuODczNCA4LjUzNTg4IDE2Ljg3OTggOC40NzU0OSAxNi44ODQgOC40MDU1OEMxNi44OTIyIDguMjcwODcgMTYuODkzOSA4LjA3NTEzIDE2Ljg1OTQgNy44NDgxQzE2Ljc5NDEgNy40MTgwNSAxNi41NDM3IDYuNjAyODcgMTUuNjYxIDYuMTMwMzFMMTUuNDg2NCA2LjAzNjgzTDE1LjI5NTYgNS45ODQwMUwxNC44NTY4IDcuNjE5MkMxNS4yNDgxIDcuODI4NjYgMTUuMTQ4NyA4LjM1Nzc2IDE1LjE0ODcgOC4zNTc3NlpNMTQuODc2OCA5LjQzNjU2TDE1LjE0ODcgOC4zNTc3NkwxNi44NDkxIDguNjk3NTRMMTYuODM5OCA4Ljc0NzMzTDE2LjU2NTMgOS44MzY0M0MxNi41MTI0IDEwLjEwNDEgMTYuNTA1NSAxMC4yNTcxIDE2LjUwODQgMTAuMzM4QzE2LjUxMDcgMTAuNDAzOCAxNi41MTkzIDEwLjQyNTQgMTYuNTIzNSAxMC40MzZMMTYuNTI0IDEwLjQzNzJDMTYuNTM0NyAxMC40NjQ2IDE2LjU2MjUgMTAuNTIzOCAxNi42NjQgMTAuNjc3OEMxNi43MDUzIDEwLjc0MDUgMTYuNzQ4MyAxMC44MDM0IDE2LjgwMzEgMTAuODgzNUMxNi44MTc2IDEwLjkwNDcgMTYuODMyOSAxMC45MjcxIDE2Ljg0OTMgMTAuOTUxQzE2LjkyMjkgMTEuMDU4OSAxNy4wMDkgMTEuMTg2IDE3LjEwMDMgMTEuMzI4M0MxNy42NzA2IDEyLjIxNzEgMTcuNzI2NiAxMy4wNzAxIDE3LjcyMzYgMTMuNjE2N0MxNy43MjM2IDEzLjYyNDggMTcuNzIzNSAxMy42MzI4IDE3LjcyMzQgMTMuNjQwN0MxNy43OTE2IDEzLjY2NDEgMTcuODY0IDEzLjY4NzcgMTcuOTQwOSAxMy43MTIyQzE3Ljk2NjMgMTMuNzIwMiAxOCAxMy43MzA5IDE4LjAzNTMgMTMuNzQyQzE4LjA4NDkgMTMuNzU3NyAxOC4xMzc4IDEzLjc3NDQgMTguMTc1NiAxMy43ODY1QzE4LjI0OTkgMTMuODEwMyAxOC4zNDQ4IDEzLjg0MTQgMTguNDM2NiAxMy44NzU2QzE4LjUwMDUgMTMuODk5NCAxOC41NjE4IDEzLjkyMzEgMTguNjE5NSAxMy45NDdDMTguNjc0OCAxMy45Njk5IDE4Ljc0MjQgMTMuOTk5NCAxOC44MTM2IDE0LjAzNTNDMTguODY4NyAxNC4wNjMxIDE4Ljk1ODUgMTQuMTEwOCAxOS4wNjAxIDE0LjE4MTNMMTkuOTUzMiAxNC41NjU2TDE5Ljk0MDMgMTUuNzA5OEMxOS45MzI3IDE2LjM4MjUgMTkuNjYyIDE3LjA5MTcgMTkuNDcwMSAxNy41MzA3QzE5LjI1ODQgMTguMDE0OCAxOC45Nzg4IDE4LjUzMSAxOC43MjE0IDE4Ljg3NDFDMTguMzYxOSAxOS4zNTMzIDE3Ljk1NDUgMTkuODU5MyAxNy40NjQ1IDIwLjE4MjlDMTcuMTc1NiAyMC4zNzM2IDE2LjgyNjggMjAuNTI1MyAxNi40MTUyIDIwLjU3NUMxNi4wNDg1IDIwLjYxOTMgMTUuNzMxMSAyMC41NzAyIDE1LjQ5OCAyMC41MTM1TDE1LjQyOTIgMjAuNDk5NEMxNS4zNjAxIDIwLjQ4NTIgMTUuMjYxMiAyMC40NjQ4IDE1LjE0MDcgMjAuNDM5N0MxNC45IDIwLjM4OTYgMTQuNTcyIDIwLjMyMDUgMTQuMjI0MSAyMC4yNDVDMTMuNTgyNyAyMC4xMDU3IDEyLjcxMzMgMTkuOTEwOSAxMi4zMDMyIDE5Ljc3NDhMMTIuMjczNSAxOS43NjQ5TDEyLjI0NDMgMTkuNzU0MUMxMi4wNjI0IDE5LjY4NjUgMTEuNzU0OSAxOS42MTA4IDExLjI0NTUgMTkuNDk0NkMxMS4yMTQ3IDE5LjQ4NzYgMTEuMTgzMyAxOS40ODA0IDExLjE1MTQgMTkuNDczMkMxMC43MTE5IDE5LjM3MzIgMTAuMTcxMSAxOS4yNTAxIDkuNjU5IDE5LjA5NUM5LjEyODYgMTguOTM0NCA4LjQ3MjU3IDE4LjY5NTUgNy45MTU1MyAxOC4zMDYyQzcuMzMwODYgMTcuODk3NiA2LjY2NjE0IDE3LjE3NzIgNi42MjkxMiAxNi4wOTY0QzYuNjIzNTggMTUuOTM0NyA2LjYyNzMgMTUuNzc4MyA2LjYzNzMxIDE1LjYyOTlDNi4zNzQwMiAxNS4zNDQ1IDYuMTUzMDQgMTQuOTcxNSA2LjA0MTM2IDE0LjQ5MzdDNS45MzI1NiAxNC4wMjgzIDUuOTkyNzQgMTMuNjE1NyA2LjA2OTA3IDEzLjMyNjFDNi4xNDU2MSAxMy4wMzU3IDYuMjYxODggMTIuNzgxOSA2LjM1OTA1IDEyLjU5MjJDNi4zOTE4NCAxMi41MjgxIDYuNDI1ODYgMTIuNDY1IDYuNDU5OCAxMi40MDRDNi4xMzg0IDEyLjMwMjYgNS43NzUzOSAxMi4xNzczIDUuNDIyMDggMTIuMDI2NkM0Ljk2MDYzIDExLjgzIDQuMzA1OSAxMS41MDU0IDMuODE3MSAxMC45ODE2QzMuNTUzODQgMTAuNjk5NSAzLjI3ODE5IDEwLjI5NTEgMy4xNjY3NCA5Ljc2NjRDMy4wNTAxIDkuMjEzMTMgMy4xNDcwMiA4LjY4MjI4IDMuMzc0MTQgOC4yMjc3NEMzLjkyNzAyIDcuMTIxMjUgNC45ODMwOCA2LjczMDMxIDUuOTIyMzUgNi42OTY0OUM2Ljc3MDQ4IDYuNjY1OTUgNy42NzI5OCA2LjkwMzI3IDguNDgxNjIgNy4xODY4OUM5LjIxODM5IDcuNDQ1MjkgMTAuMjcyOSA3LjkyNTkyIDExLjE2ODcgOC4zNDQ1NkMxMS40NjM4IDcuODYwNzEgMTEuODUyNyA3LjMxMzk5IDEyLjIyMSA2Ljg3MjQzTDEyLjI5NDEgNi43ODQ3MkwxMi4zNzg4IDYuNzA3NjdDMTMuMDEyMyA2LjEzMTA0IDEzLjcyMzkgNS45MzcxNyAxNC4yNjYyIDUuODk1NTlDMTQuNTMyMSA1Ljg3NTIxIDE0Ljc2MSA1Ljg5MDQxIDE0LjkzMjIgNS45MTI2NEMxNS4wMTg3IDUuOTIzODggMTUuMDkzMyA1LjkzNzI3IDE1LjE1MzkgNS45NDk5M0MxNS4xODQzIDUuOTU2MjggMTUuMjExNCA1Ljk2MjUgMTUuMjM1IDUuOTY4MjdDMTUuMjQ2OSA1Ljk3MTE2IDE1LjI1NzggNS45NzM5NCAxNS4yNjc5IDUuOTc2NTdMMTUuMjgyNCA1Ljk4MDQxTDE1LjI4OTIgNS45ODIyNEwxNS4yOTI0IDUuOTgzMTNMMTUuMjk0IDUuOTgzNTdDMTUuMjk0IDUuOTgzNTcgMTUuMjk1NiA1Ljk4NDAxIDE0Ljg1NjggNy42MTkyQzE0Ljg1NjggNy42MTkyIDE0LjE3MjYgNy40Mjk3NyAxMy41ODQ0IDcuOTQ5QzEzLjU3ODUgNy45NTQyMyAxMy41NzI1IDcuOTU5NTMgMTMuNTY2NiA3Ljk2NDkxQzEzLjU0ODQgNy45ODY3OCAxMy41MzAxIDguMDA4OTQgMTMuNTExOCA4LjAzMTM0QzEzLjQ4NTUgOC4wNjM1NyAxMy40NTkxIDguMDk2MzEgMTMuNDMyOCA4LjEyOTQ4QzEzLjQyNSA4LjEzOTIyIDEzLjQxNzMgOC4xNDg5OSAxMy40MDk2IDguMTU4OEMxMi44MjI1IDguOTAzNTcgMTIuODU3NCA5LjIxNDcxIDExLjc4NTggMTAuNTAwNkMxMS43ODU4IDEwLjUwMDYgMTEuMjI3NyAxMC4yNDIxIDEwLjg5MzggMTAuMDg1MkMxMC42NjQ3IDkuOTc3NDcgMTAuNDIyNiA5Ljg2MzY1IDEwLjE3NTggOS43NDg5MkM5LjM3OTg0IDkuMzc4ODEgOC41MzU5NyA4Ljk5OTI4IDcuOTI4NyA4Ljc4NjI5QzYuNDMzNTcgOC4yNjE5MSA1LjMzMTI3IDguMTk1MzUgNC45Mjg5MiA5LjAwMDU2QzQuMzk4MTggMTAuMDYyOCA2LjU1MzQgMTAuNjc4MiA3LjYzNjM5IDEwLjk4NzVDNy44NjQ0NiAxMS4wNTI2IDguMDQ0OTcgMTEuMTA0MiA4LjE0Mjg0IDExLjE0MzRDOC42OTgyOSAxMS4zNjY0IDguNzM3MDUgMTEuODEzNyA4LjU3MTY0IDEyLjIxNDdDOC40NzUxMSAxMi40NDg3IDguNDIwMDggMTIuNTgwNSA4LjE0MzA3IDEyLjg1NzZDNy43MTQ0OSAxMy4yODYxIDcuNjQ0MjEgMTMuNzkzNiA3LjcyNjA2IDE0LjE0MzdDNy43NjcwMyAxNC4zMTkgNy44NDgwOSAxNC40NDY0IDcuOTQ0NDUgMTQuNTM5MUM4LjIwMjk1IDE0Ljc4NzggOC41NzE1NSAxNC43ODYzIDguNTcxNTUgMTQuNzg2M0M4LjU3MTU1IDE0Ljc4NjMgOC4zMzM4OCAxNS4zOTM3IDguMzU3MTEgMTYuMDcyMUM4LjM2MjIzIDE2LjIyMTQgOC40MDIzOSAxNi4zNTczIDguNDcxNjEgMTYuNDgxNkM4Ljg4MjQ5IDE3LjIxOTMgMTAuMzE3MyAxNy41NDYxIDExLjUyMjggMTcuODIwN0MxMi4wMjkyIDE3LjkzNiAxMi40OTUgMTguMDQyMiAxMi44Mjc2IDE4LjE2NTZDMTMuNDIzOCAxOC4zNjM1IDE1Ljg1NyAxOC44NTc3IDE1Ljg1NyAxOC44NTc3QzE2LjMwNiAxOC45NzU2IDE2LjU4NDQgMTguODMzIDE3LjMyMjggMTcuODQ4NUMxNy42Mjk1IDE3LjQzOTcgMTguMjA0MyAxNi4yODMxIDE4LjIxMTQgMTUuNjU4QzE4LjExODEgMTUuNjE3OSAxOC4xMTE2IDE1LjYwMzkgMTguMTA1MSAxNS41ODk4QzE4LjA5NjEgMTUuNTcwNSAxOC4wODcgMTUuNTUxMSAxNy44NTEyIDE1LjQ2MzJDMTcuNzcyNCAxNS40MzM4IDE3LjY2NjggMTUuNDAwNiAxNy41NDYgMTUuMzYyNEMxNy4wNDMyIDE1LjIwMzkgMTYuMjc2NCAxNC45NjIxIDE2LjA3MTUgMTQuNTcyQzE1Ljk3MiAxNC4zODI3IDE1Ljk3OTggMTQuMTI4NiAxNS45ODkgMTMuODMxNUMxNi4wMDMyIDEzLjM2OTUgMTYuMDIwNyAxMi44MDM1IDE1LjY0MyAxMi4yMTQ5QzE1LjU1MDMgMTIuMDcwMyAxNS40NjEzIDExLjk0MDMgMTUuMzc4MSAxMS44MTg3QzE0LjkwNDUgMTEuMTI2MyAxNC42MTcyIDEwLjcwNjEgMTQuODc2OCA5LjQzNjU2Wk02Ljk1NjgxIDExLjUyNzdDNi45NTc5IDExLjUyNDUgNi45NTc0OCAxMS41MjUzIDYuOTU2MTIgMTEuNTI5Nkw2Ljk1NjgxIDExLjUyNzdaTTE3LjcxNDkgMTQuMTYxOUMxNy43MTQ5IDE0LjE2MTkgMTcuNzE0OCAxNC4xNTUyIDE3LjcxMzUgMTQuMTQzNkMxNy43MTQgMTQuMTU2NCAxNy43MTQ5IDE0LjE2MTkgMTcuNzE0OSAxNC4xNjE5WiIgZmlsbD0iIzM0MzIyRCIvPgo8L3N2Zz5gO2NvbnN0IF9wPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTExLjY3NjYgMS4zMzU5NEMxMi4zNTE3IDEuMzM2MDYgMTIuOTk5MyAxLjYwNDU1IDEzLjQ3NjcgMi4wODIwM0MxMy45NTQgMi41NTk1MiAxNC4yMjIyIDMuMjA3MDIgMTQuMjIyMSAzLjg4MjE2QzE0LjIyMiA0LjUxNTIzIDEzLjk4NjMgNS4xMjQxNiAxMy41NjMzIDUuNTkxMTRMMTMuNDc2IDUuNjgyMjlMMTIuMDg0MSA3LjA3NDIyQzEyLjA2NjUgNy4wOTcyMSAxMi4wNDc5IDcuMTIwMjIgMTIuMDI2OCA3LjE0MTI3QzEyLjAwNTUgNy4xNjI1OSAxMS45ODI1IDcuMTgxMzkgMTEuOTU5MSA3LjE5OTIyTDUuOTExNjYgMTMuMjQ4TDUuOTExMDEgMTMuMjQ4N0M1LjY3OTIxIDEzLjQ3OTggNS4zOTQwOCAxMy42NTA4IDUuMDgwOTQgMTMuNzQ2MUg1LjA4MDI5TDIuMTc4NjMgMTQuNjI2M0wyLjE3NjY3IDE0LjYyNjlDMi4wMDM5MyAxNC42Nzg4IDEuODIwMzUgMTQuNjgyNiAxLjY0NTQzIDE0LjYzODdDMS40NzA0NiAxNC41OTQ3IDEuMzEwMjYgMTQuNTA0NCAxLjE4MjU0IDE0LjM3NjlDMS4wNTQ3OSAxNC4yNDk0IDAuOTYzODE5IDE0LjA4OTEgMC45MTk1MjQgMTMuOTE0MUMwLjg3NTMxNiAxMy43MzkyIDAuODc4OTg5IDEzLjU1NTYgMC45MzA1OTIgMTMuMzgyOEwwLjkzMTg5NCAxMy4zODAyTDEuODEyMDkgMTAuNDc4NUwxLjgxMjc0IDEwLjQ3NjZMMS44NTI0NiAxMC4zNjA3QzEuOTM4NTIgMTAuMTMxMiAyLjA2NjE3IDkuOTE5NjggMi4yMjg3NiA5LjczNjMyTDIuMzEyNzQgOS42NDY0OEw4LjM2MTUxIDMuNTk1MDVDOC4zNzg1NSAzLjU3MzA4IDguMzk3MzMgMy41NTIwOSA4LjQxNzUgMy41MzE5QzguNDM4MDYgMy41MTEzMyA4LjQ1OTUzIDMuNDkxOTIgOC40ODE5NSAzLjQ3NDYxTDkuODc1ODIgMi4wODEzOEw5Ljk2NzYxIDEuOTk0MTRDMTAuNDM0NyAxLjU3MTM4IDExLjA0MzYgMS4zMzU4NiAxMS42NzY2IDEuMzM1OTRaTTMuMjU0NzkgMTAuNTkwNUwzLjI1NDE0IDEwLjU5MTFDMy4xNzY4MiAxMC42NjgzIDMuMTE5NDkgMTAuNzYzNCAzLjA4NzQ3IDEwLjg2NzhMMi4zODgyNiAxMy4xNjg2TDQuNjkyOTIgMTIuNDdMNC43NjkxIDEyLjQ0MjFDNC44NDM1NSAxMi40MDkgNC45MTE2MSAxMi4zNjI1IDQuOTY5NjEgMTIuMzA0N0wxMC42MDc2IDYuNjY0NzFMOC44OTI3NSA0Ljk0OTg3TDMuMjU0NzkgMTAuNTkwNVpNMTEuNjc2NiAyLjY2OTI3QzExLjM1NTEgMi42NjkyMyAxMS4wNDU5IDIuNzk2MjUgMTAuODE4NSAzLjAyMzQ0TDEwLjgxOTIgMy4wMjQwOUw5LjgzNTQ1IDQuMDA3MTZMMTEuNTUwMyA1LjcyMkwxMi41MzMzIDQuNzM5NThMMTIuNjE0MSA0LjY1MDM5QzEyLjc5MDggNC40MzQ2OSAxMi44ODg3IDQuMTYzNDcgMTIuODg4OCAzLjg4MjE2QzEyLjg4ODggMy41NjA1NiAxMi43NjA3IDMuMjUyMTcgMTIuNTMzMyAzLjAyNDc0QzEyLjMwNiAyLjc5NzQxIDExLjk5OCAyLjY2OTM5IDExLjY3NjYgMi42NjkyN1oiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz5gLE9wPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+CjxwYXRoIGQ9Ik0xMiAxNi40OTIySDEzLjVDMTMuODk3OCAxNi40OTIyIDE0LjI3OTQgMTYuMzM0MiAxNC41NjA3IDE2LjA1MjhDMTQuODQyIDE1Ljc3MTUgMTUgMTUuMzkgMTUgMTQuOTkyMlY1LjI0MjE5TDExLjI1IDEuNDkyMTlINC41QzQuMTAyMTggMS40OTIxOSAzLjcyMDY0IDEuNjUwMjIgMy40MzkzNCAxLjkzMTUzQzMuMTU4MDQgMi4yMTI4MyAzIDIuNTk0MzYgMyAyLjk5MjE5VjUuMjQyMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMC41IDEuNDkyMTlWNC40OTIxOUMxMC41IDQuODkwMDEgMTAuNjU4IDUuMjcxNTQgMTAuOTM5MyA1LjU1Mjg1QzExLjIyMDYgNS44MzQxNSAxMS42MDIyIDUuOTkyMTkgMTIgNS45OTIxOUgxNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTYgMTYuNTA3OEM4LjQ4NTI4IDE2LjUwNzggMTAuNSAxNC40OTMxIDEwLjUgMTIuMDA3OEMxMC41IDkuNTIyNTMgOC40ODUyOCA3LjUwNzgxIDYgNy41MDc4MUMzLjUxNDcyIDcuNTA3ODEgMS41IDkuNTIyNTMgMS41IDEyLjAwNzhDMS41IDE0LjQ5MzEgMy41MTQ3MiAxNi41MDc4IDYgMTYuNTA3OFoiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik03LjEyNSAxMy4xMTcyTDYgMTIuMTc5N1YxMC40OTIyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz5gO0FlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTEyLjY2NjYgOS42NjY1MUMxMi42NjY2IDkuMjcyNjEgMTIuNTg4OCA4Ljg4MjY1IDEyLjQzODEgOC41MTg3MkMxMi4yODczIDguMTU0NzUgMTIuMDY2MyA3LjgyMzk5IDExLjc4NzcgNy41NDU0MkMxMS41MDkxIDcuMjY2ODQgMTEuMTc4NCA3LjA0NTc5IDEwLjgxNDQgNi44OTUwM0MxMC40NTA1IDYuNzQ0MzEgMTAuMDYwNSA2LjY2NjUxIDkuNjY2NjIgNi42NjY1MUg0LjI3NTk5TDYuNDcxMyA4Ljg2MTgyTDYuNTE2ODggOC45MTI2QzYuNzMwNDQgOS4xNzQ0NSA2LjcxNTM4IDkuNTYwNDUgNi40NzEzIDkuODA0NTNDNi4yMjcyMyAxMC4wNDg2IDUuODQxMjMgMTAuMDYzNyA1LjU3OTM4IDkuODUwMUw1LjUyODYgOS44MDQ1M0wyLjE5NTI2IDYuNDcxMkMxLjkzNDkxIDYuMjEwODUgMS45MzQ5MSA1Ljc4ODg0IDIuMTk1MjYgNS41Mjg0OUw1LjUyODYgMi4xOTUxNkw1LjU3OTM4IDIuMTQ5NThDNS44NDEyMyAxLjkzNjAyIDYuMjI3MjMgMS45NTEwOCA2LjQ3MTMgMi4xOTUxNkM2LjcxNTM4IDIuNDM5MjMgNi43MzA0NCAyLjgyNTIzIDYuNTE2ODggMy4wODcwOEw2LjQ3MTMgMy4xMzc4Nkw0LjI3NTk5IDUuMzMzMThIOS42NjY2MkMxMC4yMzU3IDUuMzMzMTggMTAuNzk5MSA1LjQ0NTQ4IDExLjMyNDggNS42NjMyNkMxMS44NTA2IDUuODgxMDMgMTIuMzI4NyA2LjE5OTY3IDEyLjczMTEgNi42MDIwNkMxMy4xMzM1IDcuMDA0NDQgMTMuNDUyMSA3LjQ4MjU2IDEzLjY2OTkgOC4wMDgzMUMxMy44ODc2IDguNTM0MDUgMTMuOTk5OSA5LjA5NzQ1IDEzLjk5OTkgOS42NjY1MUwxMy45OTQ3IDkuODc5NEMxMy45NzAzIDEwLjM3NTcgMTMuODYwNCAxMC44NjQ2IDEzLjY2OTkgMTEuMzI0N0MxMy40NTIxIDExLjg1MDUgMTMuMTMzNSAxMi4zMjg2IDEyLjczMTEgMTIuNzMxQzEyLjMyODcgMTMuMTMzNCAxMS44NTA2IDEzLjQ1MiAxMS4zMjQ4IDEzLjY2OThDMTAuNzk5MSAxMy44ODc1IDEwLjIzNTcgMTMuOTk5OCA5LjY2NjYyIDEzLjk5OThINy4zMzMyOEM2Ljk2NTA5IDEzLjk5OTggNi42NjY2MiAxMy43MDE0IDYuNjY2NjIgMTMuMzMzMkM2LjY2NjYyIDEyLjk2NSA2Ljk2NTA5IDEyLjY2NjUgNy4zMzMyOCAxMi42NjY1SDkuNjY2NjJDMTAuMDYwNSAxMi42NjY1IDEwLjQ1MDUgMTIuNTg4NyAxMC44MTQ0IDEyLjQzOEMxMS4xNzg0IDEyLjI4NzIgMTEuNTA5MSAxMi4wNjYyIDExLjc4NzcgMTEuNzg3NkMxMi4wNjYzIDExLjUwOSAxMi4yODczIDExLjE3ODMgMTIuNDM4MSAxMC44MTQzQzEyLjU2OTkgMTAuNDk2IDEyLjY0NTggMTAuMTU3NyAxMi42NjI3IDkuODE0M0wxMi42NjY2IDkuNjY2NTFaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+YDtBZWA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiPgogIDxwYXRoIGQ9Ik04LjAwMDEzIDEuMzM1OTRDOS43NDEyMSAxLjMzNTk0IDExLjQwNjMgMS45ODM2NSAxMi43MDEzIDMuMTE1ODlMMTIuOTU1MiAzLjM0ODk2TDEyLjk2NSAzLjM1ODA3TDEzLjMzMzUgMy43MjY1NlYyLjAwMjZDMTMuMzMzNSAxLjYzNDQyIDEzLjYzMTkgMS4zMzU5NCAxNC4wMDAxIDEuMzM1OTRDMTQuMzY4MyAxLjMzNTk0IDE0LjY2NjggMS42MzQ0MSAxNC42NjY4IDIuMDAyNlY1LjMzNTk0QzE0LjY2NjggNS43MDQxMyAxNC4zNjgzIDYuMDAyNiAxNC4wMDAxIDYuMDAyNkgxMC42NjY4QzEwLjI5ODYgNi4wMDI2IDEwLjAwMDEgNS43MDQxMyAxMC4wMDAxIDUuMzM1OTRDMTAuMDAwMSA0Ljk2Nzc1IDEwLjI5ODYgNC42NjkyNyAxMC42NjY4IDQuNjY5MjdIMTIuMzkwOEwxMi4wMzE0IDQuMzA5OUwxMS44MjM3IDQuMTE5MTRDMTAuNzY0OCAzLjE5MzM4IDkuNDA4OTUgMi42NjkyNyA4LjAwMDEzIDIuNjY5MjdDNi45NDUzIDIuNjY5MjcgNS45MTQzIDIuOTgyMzMgNS4wMzcyNCAzLjU2ODM2QzQuMTYwMjIgNC4xNTQzNyAzLjQ3NjcyIDQuOTg3MTEgMy4wNzMwNSA1Ljk2MTU5QzIuNjY5NCA2LjkzNjA4IDIuNTYzMjcgOC4wMDg0NSAyLjc2OTAxIDkuMDQyOTdDMi45NzQ4IDEwLjA3NzUgMy40ODI3NiAxMS4wMjgyIDQuMjI4NjQgMTEuNzc0MUM0Ljk3NDUyIDEyLjUyIDUuOTI1MiAxMy4wMjc5IDYuOTU5NzYgMTMuMjMzN0M3Ljk5NDI4IDEzLjQzOTUgOS4wNjY2NiAxMy4zMzMzIDEwLjA0MTEgMTIuOTI5N0MxMS4wMTU2IDEyLjUyNiAxMS44NDg0IDExLjg0MjUgMTIuNDM0NCAxMC45NjU1QzEzLjAyMDQgMTAuMDg4NCAxMy4zMzM1IDkuMDU3NDQgMTMuMzMzNSA4LjAwMjZDMTMuMzMzNSA3LjYzNDQyIDEzLjYzMTkgNy4zMzU5NCAxNC4wMDAxIDcuMzM1OTRDMTQuMzY4MyA3LjMzNTk0IDE0LjY2NjggNy42MzQ0MSAxNC42NjY4IDguMDAyNkMxNC42NjY4IDkuMzIxMTUgMTQuMjc1NiAxMC42MTAxIDEzLjU0MzEgMTEuNzA2NEMxMi44MTA2IDEyLjgwMjcgMTEuNzY5NyAxMy42NTc1IDEwLjU1MTYgMTQuMTYyMUM5LjMzMzM5IDE0LjY2NjcgNy45OTI1NSAxNC43OTgzIDYuNjk5MzUgMTQuNTQxQzUuNDA2MjIgMTQuMjgzOCA0LjIxODI0IDEzLjY0OTEgMy4yODU5NCAxMi43MTY4QzIuMzUzNjQgMTEuNzg0NSAxLjcxODk4IDEwLjU5NjUgMS40NjE3MiA5LjMwMzM5QzEuMjA0NDggOC4wMTAxOCAxLjMzNjA0IDYuNjY5MzUgMS44NDA2MiA1LjQ1MTE3QzIuMzQ1MiA0LjIzMzA1IDMuMjAwMDcgMy4xOTIxNiA0LjI5NjM1IDIuNDU5NjRDNS4zOTI2OCAxLjcyNzA5IDYuNjgxNTkgMS4zMzU5NCA4LjAwMDEzIDEuMzM1OTRaIiBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtb3BhY2l0eT0iMC42Ii8+Cjwvc3ZnPmA7Y29uc3QgUHA9QWVgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE0IDE0IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTIuMjUwMiA3LjAwMjZDMTIuMjUwMiA0LjEwMzExIDkuODk5NjYgMS43NTI2IDcuMDAwMTYgMS43NTI2QzQuMTAwNjcgMS43NTI2IDEuNzUwMTYgNC4xMDMxMSAxLjc1MDE2IDcuMDAyNkMxLjc1MDE2IDkuOTAyMSA0LjEwMDY3IDEyLjI1MjYgNy4wMDAxNiAxMi4yNTI2QzkuODk5NjYgMTIuMjUyNiAxMi4yNTAyIDkuOTAyMSAxMi4yNTAyIDcuMDAyNlpNNi40MTY4MyA5LjMzNTk0VjcuMDAyNkM2LjQxNjgzIDYuNjgwNDUgNi42NzgwMSA2LjQxOTI5IDcuMDAwMTYgNi40MTkyN0M3LjMyMjMzIDYuNDE5MjcgNy41ODM1IDYuNjgwNDQgNy41ODM1IDcuMDAyNlY5LjMzNTk0QzcuNTgzNDkgOS42NTgxIDcuMzIyMzIgOS45MTkyNyA3LjAwMDE2IDkuOTE5MjdDNi42NzgwMSA5LjkxOTI2IDYuNDE2ODQgOS42NTgwOSA2LjQxNjgzIDkuMzM1OTRaTTcuMDA1ODYgNC4wODU5NEw3LjA2NTY3IDQuMDg4NzlDNy4zNTk4MyA0LjExODY1IDcuNTg5MTkgNC4zNjcyNCA3LjU4OTE5IDQuNjY5MjdDNy41ODkxOSA0Ljk3MTMxIDcuMzU5ODMgNS4yMTk4OSA3LjA2NTY3IDUuMjQ5NzZMNy4wMDU4NiA1LjI1MjZINy4wMDAxNkM2LjY3ODAxIDUuMjUyNTkgNi40MTY4MyA0Ljk5MTQzIDYuNDE2ODMgNC42NjkyN0M2LjQxNjgzIDQuMzQ3MTEgNi42NzgwMSA0LjA4NTk1IDcuMDAwMTYgNC4wODU5NEg3LjAwNTg2Wk0xMy40MTY4IDcuMDAyNkMxMy40MTY4IDEwLjU0NjQgMTAuNTQ0IDEzLjQxOTMgNy4wMDAxNiAxMy40MTkzQzMuNDU2MzQgMTMuNDE5MyAwLjU4MzQ5NiAxMC41NDY0IDAuNTgzNDk2IDcuMDAyNkMwLjU4MzQ5NiAzLjQ1ODc4IDMuNDU2MzQgMC41ODU5MzggNy4wMDAxNiAwLjU4NTkzOEMxMC41NDQgMC41ODU5MzggMTMuNDE2OCAzLjQ1ODc4IDEzLjQxNjggNy4wMDI2WiIgZmlsbD0iY3VycmVudENvbG9yIiAvPgo8L3N2Zz5gO0FlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTYuMzk5OSAxMy4xOTY5TDEwLjM5OTkgNy45OTY4N0w2LjM5OTkgMi43OTY4OCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS4zMzMzMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPmA7QWVgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNy45OTk5NiAyLjY2NDA2QzkuNTUxMTkgMi42NjQxMiAxMS4wNjc2IDMuMTI0ODMgMTIuMzU2NyAzLjk4NzYzQzEzLjU2NTMgNC43OTY1MiAxNC41MjMyIDUuOTI0NjggMTUuMTI1NiA3LjI0NDE0TDE1LjI0MTUgNy41MTEwN0wxNS4yNSA3LjUzMzJDMTUuMzQ3MiA3Ljc5NTE1IDE1LjM1OTQgOC4wOCAxNS4yODY0IDguMzQ3NjZMMTUuMjUgOC40NjA5NEMxNS4yNDcyIDguNDY4MzMgMTUuMjQ0NSA4LjQ3NTc4IDE1LjI0MTUgOC40ODMwN0MxNC42NSA5LjkxNzIxIDEzLjY0NTkgMTEuMTQzNiAxMi4zNTY3IDEyLjAwNjVDMTEuMTQ4MiAxMi44MTU0IDkuNzM5ODEgMTMuMjcwNCA4LjI5MDMzIDEzLjMyNDJMNy45OTk5NiAxMy4zMzAxQzYuNDQ4NjMgMTMuMzMwMSA0LjkzMTc3IDEyLjg2OTQgMy42NDI1NCAxMi4wMDY1QzIuNDMzODUgMTEuMTk3NSAxLjQ3NjAzIDEwLjA2OSAwLjg3MzY2MSA4Ljc0OTM1TDAuNzU3Nzc2IDguNDgzMDdDMC43NTQ3NzIgOC40NzU3OCAwLjc1MjA1NiA4LjQ2ODMzIDAuNzQ5MzEyIDguNDYwOTRDMC42MzgyMzIgOC4xNjE2NiAwLjYzODI2OSA3LjgzMjQ5IDAuNzQ5MzEyIDcuNTMzMkwwLjc1Nzc3NiA3LjUxMTA3QzEuMzQ5MjMgNi4wNzY5NyAyLjM1MzM4IDQuODUwNDkgMy42NDI1NCAzLjk4NzYzQzQuOTMxNzcgMy4xMjQ3NyA2LjQ0ODYzIDIuNjY0MDYgNy45OTk5NiAyLjY2NDA2Wk03Ljk5OTk2IDMuOTk3NEM2LjcxMjY5IDMuOTk3NCA1LjQ1Mzg2IDQuMzc5NzEgNC4zODQwOCA1LjA5NTdDMy4zMjExMiA1LjgwNzE5IDIuNDkxOTIgNi44MTY0MiAxLjk5OTk2IDcuOTk2NzVDMi40OTE5MSA5LjE3NzI3IDMuMzIwOTYgMTAuMTg2OSA0LjM4NDA4IDEwLjg5ODRDNS40NTM4NiAxMS42MTQ0IDYuNzEyNjkgMTEuOTk2NyA3Ljk5OTk2IDExLjk5NjdMOC4yNDA4NSAxMS45OTIyQzkuNDQzNjEgMTEuOTQ3NSAxMC42MTIzIDExLjU2OTYgMTEuNjE1MiAxMC44OTg0QzEyLjY3ODMgMTAuMTg2OSAxMy41MDY3IDkuMTc3MTggMTMuOTk4NyA3Ljk5Njc1QzEzLjUwNjcgNi44MTY1MiAxMi42NzgxIDUuODA3MTQgMTEuNjE1MiA1LjA5NTdDMTAuNTQ1NSA0LjM3OTc3IDkuMjg3MTMgMy45OTc0NiA3Ljk5OTk2IDMuOTk3NFpNOS4zMzMzIDcuOTk2NzVDOS4zMzMxNyA3LjI2MDU4IDguNzM2MTIgNi42NjM1OCA3Ljk5OTk2IDYuNjYzNDFDNy4yNjM2NiA2LjY2MzQxIDYuNjY2NzYgNy4yNjA0OCA2LjY2NjYzIDcuOTk2NzVDNi42NjY2MyA4LjczMzEyIDcuMjYzNTggOS4zMzAwOCA3Ljk5OTk2IDkuMzMwMDhDOC43MzYyIDkuMzI5OTEgOS4zMzMzIDguNzMzMDIgOS4zMzMzIDcuOTk2NzVaTTEwLjY2NjYgNy45OTY3NUMxMC42NjY2IDkuNDY5NCA5LjQ3MjU4IDEwLjY2MzIgNy45OTk5NiAxMC42NjM0QzYuNTI3MiAxMC42NjM0IDUuMzMzMyA5LjQ2OTUgNS4zMzMzIDcuOTk2NzVDNS4zMzM0MyA2LjUyNDEgNi41MjcyOCA1LjMzMDA4IDcuOTk5OTYgNS4zMzAwOEM5LjQ3MjUgNS4zMzAyNSAxMC42NjY1IDYuNTI0MiAxMC42NjY2IDcuOTk2NzVaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz5gO2NvbnN0ICRwPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80NzRfMTM4MzgpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjczNDM3NSA4LjAwMTA0QzAuNzM0Mzc1IDMuOTg3NzcgMy45ODc3NyAwLjczNDM3NSA4LjAwMTA0IDAuNzM0Mzc1QzEyLjAxNDMgMC43MzQzNzUgMTUuMjY3NyAzLjk4Nzc3IDE1LjI2NzcgOC4wMDEwNEMxNS4yNjc3IDEyLjAxNDMgMTIuMDE0MyAxNS4yNjc3IDguMDAxMDQgMTUuMjY3N0MzLjk4Nzc3IDE1LjI2NzcgMC43MzQzNzUgMTIuMDE0MyAwLjczNDM3NSA4LjAwMTA0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTguMDAwOTggMS4yMzQzOEMxMS43MzgxIDEuMjM0MzggMTQuNzY3NSA0LjI2Mzg4IDE0Ljc2NzYgOC4wMDA5OEMxNC43Njc2IDExLjczODEgMTEuNzM4MSAxNC43Njc2IDguMDAwOTggMTQuNzY3NkM0LjI2Mzg4IDE0Ljc2NzUgMS4yMzQzOCAxMS43MzgxIDEuMjM0MzggOC4wMDA5OEMxLjIzNDQxIDQuMjYzOSA0LjI2MzkgMS4yMzQ0MSA4LjAwMDk4IDEuMjM0MzhaIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utb3BhY2l0eT0iMC4xNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNS41NzQxNyA1LjU3NjEzQzUuODA4NDkgNS4zNDE4MSA2LjE4ODM5IDUuMzQxODEgNi40MjI3IDUuNTc2MTNMNy45OTg0NCA3LjE1MTg2TDkuNTc0MTcgNS41NzYxM0M5LjgwODQ5IDUuMzQxODEgMTAuMTg4NCA1LjM0MTgxIDEwLjQyMjcgNS41NzYxM0MxMC42NTcgNS44MTA0NCAxMC42NTcgNi4xOTAzNCAxMC40MjI3IDYuNDI0NjVMOC44NDY5NyA4LjAwMDM5TDEwLjQyMjcgOS41NzYxM0MxMC42NTcgOS44MTA0NCAxMC42NTcgMTAuMTkwMyAxMC40MjI3IDEwLjQyNDdDMTAuMTg4NCAxMC42NTkgOS44MDg0OSAxMC42NTkgOS41NzQxNyAxMC40MjQ3TDcuOTk4NDQgOC44NDg5Mkw2LjQyMjcgMTAuNDI0N0M2LjE4ODM5IDEwLjY1OSA1LjgwODQ5IDEwLjY1OSA1LjU3NDE3IDEwLjQyNDdDNS4zMzk4NiAxMC4xOTAzIDUuMzM5ODYgOS44MTA0NCA1LjU3NDE3IDkuNTc2MTNMNy4xNDk5MSA4LjAwMDM5TDUuNTc0MTcgNi40MjQ2NUM1LjMzOTg2IDYuMTkwMzQgNS4zMzk4NiA1LjgxMDQ0IDUuNTc0MTcgNS41NzYxM1oiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQ3NF8xMzgzOCI+CjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz5gLHFwPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTciIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNyAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTE0LjAyNzIgMy4wNzAyNkMxNC4yODc1IDIuODA5OTEgMTQuNzA5NSAyLjgwOTkxIDE0Ljk2OTkgMy4wNzAyNkMxNS4yMzAyIDMuMzMwNjEgMTUuMjMwMiAzLjc1MjYyIDE0Ljk2OTkgNC4wMTI5N0w2LjcxOTkgMTIuMjYzQzYuNDU5NTUgMTIuNTIzMyA2LjAzNzU0IDEyLjUyMzMgNS43NzcxOSAxMi4yNjNMMi4wMjcxOSA4LjUxMjk3TDEuOTgxNjEgOC40NjIxOUMxLjc2ODA1IDguMjAwMzQgMS43ODMxMSA3LjgxNDM0IDIuMDI3MTkgNy41NzAyNkMyLjI3MTI2IDcuMzI2MTkgMi42NTcyNyA3LjMxMTEyIDIuOTE5MTEgNy41MjQ2OUwyLjk2OTkgNy41NzAyNkw2LjI0ODU0IDEwLjg0ODlMMTQuMDI3MiAzLjA3MDI2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+YCxlMT1BZWA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiPgogIDxwYXRoIGQ9Ik04LjAwMTMgMkM4LjczNzY4IDIgOS4zMzQ2NCAyLjU5Njk1IDkuMzM0NjQgMy4zMzMzM0M5LjMzNDY0IDQuMDY5NzEgOC43Mzc2OCA0LjY2NjY3IDguMDAxMyA0LjY2NjY3QzcuMjY0OTIgNC42NjY2NyA2LjY2Nzk3IDQuMDY5NzEgNi42Njc5NyAzLjMzMzMzQzYuNjY3OTcgMi41OTY5NSA3LjI2NDkyIDIgOC4wMDEzIDJaTTguMDAxMyA2LjY2NjY3QzguNzM3NjggNi42NjY2NyA5LjMzNDY0IDcuMjYzNjIgOS4zMzQ2NCA4QzkuMzM0NjMgOC43MzYzNyA4LjczNzY4IDkuMzMzMzMgOC4wMDEzIDkuMzMzMzNDNy4yNjQ5MyA5LjMzMzMzIDYuNjY3OTggOC43MzYzNyA2LjY2Nzk3IDhDNi42Njc5NyA3LjI2MzYyIDcuMjY0OTIgNi42NjY2NyA4LjAwMTMgNi42NjY2N1pNOC4wMDEzIDExLjMzMzNDOC43Mzc2OCAxMS4zMzMzIDkuMzM0NjQgMTEuOTMwMyA5LjMzNDY0IDEyLjY2NjdDOS4zMzQ2MyAxMy40MDMgOC43Mzc2OCAxNCA4LjAwMTMgMTRDNy4yNjQ5MyAxNCA2LjY2Nzk3IDEzLjQwMyA2LjY2Nzk3IDEyLjY2NjdDNi42Njc5NyAxMS45MzAzIDcuMjY0OTIgMTEuMzMzMyA4LjAwMTMgMTEuMzMzM1oiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz5gLHQxPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSI+CiAgPHJlY3QgeD0iMSIgeT0iMSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iNC41IiBmaWxsPSIjMDA4MUYyIi8+CiAgPHBhdGggZD0iTTEzLjQ2NjcgOEw4LjMzMzMzIDEzLjEzMzNMNiAxMC44IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuNjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz5gLG4xPUFlYDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSI+CiAgPHJlY3QgeD0iMS44MzUiIHk9IjEuODM1IiB3aWR0aD0iMTYuMzMiIGhlaWdodD0iMTYuMzMiIHJ4PSIzLjY2NSIgc3Ryb2tlPSIjODU4NDgxIiBzdHJva2Utd2lkdGg9IjEuNjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz5gO2Z1bmN0aW9uIGl0KHQpe3JldHVybmBlbGVtZW50LWVkaXQtcGFuZWwtdmlldy0ke3R9YH1jbGFzcyBsMSBleHRlbmRzIEJse2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoZSksdGhpcy5zZT1uLHRoaXMub3BhY2l0eT0wLHRoaXMuaGFuZGxlQ2xvc2VXaGVuRXNjYXBlPWw9PntsLmtleT09PSJFc2NhcGUiJiZ0aGlzLmRlc3Ryb3koKX0sdGhpcy5oYW5kbGVDbGlja091dHNpZGU9bD0+e2NvbnN0IGk9bC5jb21wb3NlZFBhdGgoKTtpWzBdIT09dGhpcy50cmlnZ2VyRWwmJighdGhpcy5wYW5lbEVsfHwhaS5pbmNsdWRlcyh0aGlzLnBhbmVsRWwpKSYmdGhpcy5kZXN0cm95KCl9LHRoaXMuaXNNb3VudGVkPSExfWdldCB0ZW1wbGF0ZSgpe3JldHVybiBPYDxzdHlsZT4KCQkJCS4ke2l0KCJyb290Iil9IHsKCQkJCQlib3JkZXItcmFkaXVzOiAxMnB4OwoJCQkJCWJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWRhcmspOwoJCQkJCWJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtbWVudS13aGl0ZSk7CgkJCQkJYm94LXNoYWRvdzogMHB4IDRweCAxMXB4IDBweCB2YXIoLS1zaGFkb3ctTSk7CgkJCQkJYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpOwoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJZ2FwOiAycHg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQl3aWR0aDogMTU4cHg7CgkJCQkJcGFkZGluZzogNHB4OwoJCQkJfQoJCQkJLiR7aXQoImJ1dHRvbiIpfSB7CgkJCQkJZmxleDogMTsKCQkJCQltaW4td2lkdGg6IDA7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQlwYWRkaW5nOiA2cHggOHB4OwoJCQkJCWp1c3RpZnktY29udGVudDogY2VudGVyOwoJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJZ2FwOiA0cHg7CgkJCQkJYm9yZGVyLXJhZGl1czogOHB4OwoJCQkJCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwoJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQlmb250LXNpemU6IDEzcHg7CgkJCQkJZm9udC13ZWlnaHQ6IDUwMDsKCQkJCQlsaW5lLWhlaWdodDogMThweDsKCQkJCQlib3JkZXI6IG5vbmU7CgkJCQl9CgkJCQkuJHtpdCgiYnV0dG9uIil9OmhvdmVyIHsKCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1maWxsLXRzcC1ncmF5LW1haW4pOwoJCQkJfQoKCQkJCS4ke2l0KCJidXR0b24tZGVmYXVsdCIpfSB7CgkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQl9CgkJCQkuJHtpdCgiYnV0dG9uLWRhbmdlciIpfSB7CgkJCQkJY29sb3I6IHZhcigtLWZ1bmN0aW9uLWVycm9yKTsKCQkJCX0KCQkJCS4ke2l0KCJkaXZpZGVyIil9IHsKCQkJCQl3aWR0aDogMXB4OwoJCQkJCWhlaWdodDogMTQuNXB4OwoJCQkJCWJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1tYWluKTsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJfQoJCQk8L3N0eWxlPgoJCQk8bGl0LXBvcHVwICR7UXQodGhpcy5oYW5kbGVTZXRSb290UmVmLmJpbmQodGhpcykpfT4KCQkJCTxkaXYKCQkJCQljbGFzcz0ke2l0KCJyb290Iil9CgkJCQkJc3R5bGU9JHtRcCh7b3BhY2l0eTp0aGlzLm9wYWNpdHl9KX0KCQkJCT4KCQkJCQk8YnV0dG9uCgkJCQkJCWNsYXNzPSR7dHQoe1tpdCgiYnV0dG9uIildOiEwLFtpdCgiYnV0dG9uLWRlZmF1bHQiKV06ITB9KX0KCQkJCQkJQGNsaWNrPSR7dGhpcy5oYW5kbGVRdWlja0FjdGlvbkNsaWNrLmJpbmQodGhpcyx3ZS5DT1BZKX0KCQkJCQk+CgkJCQkJCSR7T2Ake0RwfSBDb3B5YH0KCQkJCQk8L2J1dHRvbj4KCQkJCQk8c3BhbiBjbGFzcz0ke2l0KCJkaXZpZGVyIil9Pjwvc3Bhbj4KCQkJCQk8YnV0dG9uCgkJCQkJCWNsYXNzPSR7dHQoe1tpdCgiYnV0dG9uIildOiEwLFtpdCgiYnV0dG9uLWRhbmdlciIpXTohMH0pfQoJCQkJCQlAY2xpY2s9JHt0aGlzLmhhbmRsZVF1aWNrQWN0aW9uQ2xpY2suYmluZCh0aGlzLHdlLkRFTEVURSl9CgkJCQkJPgoJCQkJCQkke09gJHtqcH0gRGVsZXRlYH0KCQkJCQk8L2J1dHRvbj4KCQkJCTwvZGl2PgoJCQk8L2xpdC1wb3B1cD4gYH1zaG93KGUsbil7dGhpcy50cmlnZ2VyRWw9ZSx0aGlzLmlzTW91bnRlZD0hMCx0aGlzLnJlbmRlcigpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLm9wYWNpdHk9MSx0aGlzLnJlbmRlcigpfSwwKSx0aGlzLnBhbmVsRWwmJih0aGlzLnBhbmVsRWwuc2V0QW5jaG9yKHRoaXMudHJpZ2dlckVsKSx0aGlzLnBhbmVsRWwub3BlbihuKSksdGhpcy5zZS5oYXNEaXJlY3RUZXh0Q29udGVudCh0aGlzLnRyaWdnZXJFbCk/dGhpcy50cmlnZ2VyRWwuY2xhc3NMaXN0LmFkZChRLm9ubHlUZXh0Tm9kZSk6dGhpcy50cmlnZ2VyRWwuY2xhc3NMaXN0LmFkZChRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0KSx0aGlzLmRvbUVkaXRvcj1uZXcgdmUoZSx0aGlzLnNlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUNsb3NlV2hlbkVzY2FwZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9ZGVzdHJveSgpe3RoaXMuaXNNb3VudGVkJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVDbG9zZVdoZW5Fc2NhcGUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpLHRoaXMudHJpZ2dlckVsLmNsYXNzTGlzdC5yZW1vdmUoUS5zcGFjZUVkaXRvckhpZ2hsaWdodCksdGhpcy50cmlnZ2VyRWwuY2xhc3NMaXN0LnJlbW92ZShRLm9ubHlUZXh0Tm9kZSksdGhpcy5vcGFjaXR5PTAsdGhpcy5yZW5kZXIoKSxzdXBlci5kZXN0cm95KCksdGhpcy5pc01vdW50ZWQ9ITEpfWhhbmRsZVF1aWNrQWN0aW9uQ2xpY2soZSl7Y29uc3Qgbj1lPT09d2UuQ09QWTtpZihuKXtpZighdGhpcy5kb21FZGl0b3IuY29weUVsZW1lbnQodGhpcy50cmlnZ2VyRWwpKXJldHVybn1lbHNlIHRoaXMuZG9tRWRpdG9yLmhhbmRsZVF1aWNrQWN0aW9uQ2xpY2soZSk7Y29uc3QgbD10aGlzLnNlLmNyZWF0ZVBhdGNoKHRoaXMudHJpZ2dlckVsLG4/ImNvcHkiOnZvaWQgMCk7bCYmdGhpcy5zZS5kZWJvdW5jZWRBZGRQYXRjaGVkKGwpLHRoaXMuZGVzdHJveSgpfWhhbmRsZVNldFJvb3RSZWYoZSl7ZSBpbnN0YW5jZW9mIFFpJiYodGhpcy5wYW5lbEVsPWUpfX1jb25zdCBBdD0oKCk9PnsvKiEKKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNCBNb21vIEJhc3NpdC4KKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCkKKiBodHRwczovL2dpdGh1Yi5jb20vbWRiYXNzaXQvQ29sb3JpcwoqIFZlcnNpb246IDAuMjQuMAoqIE5QTTogaHR0cHM6Ly9naXRodWIuY29tL21lbGxvd2FyZS9jb2xvcmlzLW5wbQoqL3JldHVybigodCxlLG4sbCk9Pntjb25zdCBpPWUuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKSxyPXtyOjAsZzowLGI6MCxoOjAsczowLHY6MCxhOjF9O2xldCBvLGEsYyxkLHMsdSxoLGcsYixtLGYscCxBLFgseSxJLFM9e307Y29uc3QgRz17ZWw6IltkYXRhLWNvbG9yaXNdIixwYXJlbnQ6ImJvZHkiLHRoZW1lOiJkZWZhdWx0Iix0aGVtZU1vZGU6ImxpZ2h0IixydGw6ITEsd3JhcDohMCxtYXJnaW46Mixmb3JtYXQ6ImhleCIsZm9ybWF0VG9nZ2xlOiExLHN3YXRjaGVzOltdLHN3YXRjaGVzT25seTohMSxhbHBoYTohMCxmb3JjZUFscGhhOiExLGZvY3VzSW5wdXQ6ITAsc2VsZWN0SW5wdXQ6ITEsaW5saW5lOiExLGRlZmF1bHRDb2xvcjoiIzAwMDAwMCIsY2xlYXJCdXR0b246ITEsY2xlYXJMYWJlbDoiQ2xlYXIiLGNsb3NlQnV0dG9uOiExLGNsb3NlTGFiZWw6IkNsb3NlIixvbkNoYW5nZTooKT0+bCxhMTF5OntvcGVuOiJPcGVuIGNvbG9yIHBpY2tlciIsY2xvc2U6IkNsb3NlIGNvbG9yIHBpY2tlciIsY2xlYXI6IkNsZWFyIHRoZSBzZWxlY3RlZCBjb2xvciIsbWFya2VyOiJTYXR1cmF0aW9uOiB7c30uIEJyaWdodG5lc3M6IHt2fS4iLGh1ZVNsaWRlcjoiSHVlIHNsaWRlciIsYWxwaGFTbGlkZXI6Ik9wYWNpdHkgc2xpZGVyIixpbnB1dDoiQ29sb3IgdmFsdWUgZmllbGQiLGZvcm1hdDoiQ29sb3IgZm9ybWF0Iixzd2F0Y2g6IkNvbG9yIHN3YXRjaCIsaW5zdHJ1Y3Rpb246IlNhdHVyYXRpb24gYW5kIGJyaWdodG5lc3Mgc2VsZWN0b3IuIFVzZSB1cCwgZG93biwgbGVmdCBhbmQgcmlnaHQgYXJyb3cga2V5cyB0byBzZWxlY3QuIn19LEI9e307bGV0IHY9IiIsSj17fSx3PSExO2Z1bmN0aW9uIEwoVil7aWYodHlwZW9mIFY9PSJvYmplY3QiKWZvcihjb25zdCBSIGluIFYpc3dpdGNoKFIpe2Nhc2UiZWwiOldlKFYuZWwpLFYud3JhcCE9PSExJiZCZShWLmVsKTticmVhaztjYXNlInBhcmVudCI6bz1WLnBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P1YucGFyZW50OmUucXVlcnlTZWxlY3RvcihWLnBhcmVudCksbyYmKG8uYXBwZW5kQ2hpbGQoYSksRy5wYXJlbnQ9Vi5wYXJlbnQsbz09PWUuYm9keSYmKG89bCkpO2JyZWFrO2Nhc2UidGhlbWVNb2RlIjpHLnRoZW1lTW9kZT1WLnRoZW1lTW9kZSxWLnRoZW1lTW9kZT09PSJhdXRvIiYmdC5tYXRjaE1lZGlhJiZ0Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzJiYoRy50aGVtZU1vZGU9ImRhcmsiKTtjYXNlInRoZW1lIjpWLnRoZW1lJiYoRy50aGVtZT1WLnRoZW1lKSxhLmNsYXNzTmFtZT1gY2xyLXBpY2tlciBjbHItJHtHLnRoZW1lfSBjbHItJHtHLnRoZW1lTW9kZX1gLEcuaW5saW5lJiZ5ZSgpO2JyZWFrO2Nhc2UicnRsIjpHLnJ0bD0hIVYucnRsLEFycmF5LmZyb20oS2woKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjbHItZmllbGQiKSkuZm9yRWFjaChZPT5ZLmNsYXNzTGlzdC50b2dnbGUoImNsci1ydGwiLEcucnRsKSk7YnJlYWs7Y2FzZSJtYXJnaW4iOlYubWFyZ2luKj0xLEcubWFyZ2luPWlzTmFOKFYubWFyZ2luKT9HLm1hcmdpbjpWLm1hcmdpbjticmVhaztjYXNlIndyYXAiOlYuZWwmJlYud3JhcCYmQmUoVi5lbCk7YnJlYWs7Y2FzZSJmb3JtYXRUb2dnbGUiOkcuZm9ybWF0VG9nZ2xlPSEhVi5mb3JtYXRUb2dnbGUsS2UoImNsci1mb3JtYXQiKS5zdHlsZS5kaXNwbGF5PUcuZm9ybWF0VG9nZ2xlPyJibG9jayI6Im5vbmUiLEcuZm9ybWF0VG9nZ2xlJiYoRy5mb3JtYXQ9ImF1dG8iKTticmVhaztjYXNlInN3YXRjaGVzIjppZihBcnJheS5pc0FycmF5KFYuc3dhdGNoZXMpKXtjb25zdCBZPUtlKCJjbHItc3dhdGNoZXMiKSxfPWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7WS50ZXh0Q29udGVudD0iIixWLnN3YXRjaGVzLmZvckVhY2goKHJlLEdlKT0+e2NvbnN0IG5lPWUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7bmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIiksbmUuc2V0QXR0cmlidXRlKCJpZCIsYGNsci1zd2F0Y2gtJHtHZX1gKSxuZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsYGNsci1zd2F0Y2gtbGFiZWwgY2xyLXN3YXRjaC0ke0dlfWApLG5lLnN0eWxlLmNvbG9yPXJlLG5lLnRleHRDb250ZW50PXJlLF8uYXBwZW5kQ2hpbGQobmUpfSksVi5zd2F0Y2hlcy5sZW5ndGgmJlkuYXBwZW5kQ2hpbGQoXyksRy5zd2F0Y2hlcz1WLnN3YXRjaGVzLnNsaWNlKCl9YnJlYWs7Y2FzZSJzd2F0Y2hlc09ubHkiOkcuc3dhdGNoZXNPbmx5PSEhVi5zd2F0Y2hlc09ubHksYS5zZXRBdHRyaWJ1dGUoImRhdGEtbWluaW1hbCIsRy5zd2F0Y2hlc09ubHkpO2JyZWFrO2Nhc2UiYWxwaGEiOkcuYWxwaGE9ISFWLmFscGhhLGEuc2V0QXR0cmlidXRlKCJkYXRhLWFscGhhIixHLmFscGhhKTticmVhaztjYXNlImlubGluZSI6aWYoRy5pbmxpbmU9ISFWLmlubGluZSxhLnNldEF0dHJpYnV0ZSgiZGF0YS1pbmxpbmUiLEcuaW5saW5lKSxHLmlubGluZSl7Y29uc3QgWT1WLmRlZmF1bHRDb2xvcnx8Ry5kZWZhdWx0Q29sb3I7WD0kZShZKSx5ZSgpLERlKFkpfWJyZWFrO2Nhc2UiY2xlYXJCdXR0b24iOnR5cGVvZiBWLmNsZWFyQnV0dG9uPT0ib2JqZWN0IiYmKFYuY2xlYXJCdXR0b24ubGFiZWwmJihHLmNsZWFyTGFiZWw9Vi5jbGVhckJ1dHRvbi5sYWJlbCxoLmlubmVySFRNTD1HLmNsZWFyTGFiZWwpLFYuY2xlYXJCdXR0b249Vi5jbGVhckJ1dHRvbi5zaG93KSxHLmNsZWFyQnV0dG9uPSEhVi5jbGVhckJ1dHRvbixoLnN0eWxlLmRpc3BsYXk9Ry5jbGVhckJ1dHRvbj8iYmxvY2siOiJub25lIjticmVhaztjYXNlImNsZWFyTGFiZWwiOkcuY2xlYXJMYWJlbD1WLmNsZWFyTGFiZWwsaC5pbm5lckhUTUw9Ry5jbGVhckxhYmVsO2JyZWFrO2Nhc2UiY2xvc2VCdXR0b24iOkcuY2xvc2VCdXR0b249ISFWLmNsb3NlQnV0dG9uLEcuY2xvc2VCdXR0b24/YS5pbnNlcnRCZWZvcmUoZyxzKTpzLmFwcGVuZENoaWxkKGcpO2JyZWFrO2Nhc2UiY2xvc2VMYWJlbCI6Ry5jbG9zZUxhYmVsPVYuY2xvc2VMYWJlbCxnLmlubmVySFRNTD1HLmNsb3NlTGFiZWw7YnJlYWs7Y2FzZSJhMTF5Ijpjb25zdCBFPVYuYTExeTtsZXQgRj0hMTtpZih0eXBlb2YgRT09Im9iamVjdCIpZm9yKGNvbnN0IFkgaW4gRSlFW1ldJiZHLmExMXlbWV0mJihHLmExMXlbWV09RVtZXSxGPSEwKTtpZihGKXtjb25zdCBZPUtlKCJjbHItb3Blbi1sYWJlbCIpLF89S2UoImNsci1zd2F0Y2gtbGFiZWwiKTtZLmlubmVySFRNTD1HLmExMXkub3BlbixfLmlubmVySFRNTD1HLmExMXkuc3dhdGNoLGcuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixHLmExMXkuY2xvc2UpLGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixHLmExMXkuY2xlYXIpLGIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixHLmExMXkuaHVlU2xpZGVyKSxmLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsRy5hMTF5LmFscGhhU2xpZGVyKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsRy5hMTF5LmlucHV0KSxjLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsRy5hMTF5Lmluc3RydWN0aW9uKX1icmVhaztkZWZhdWx0OkdbUl09VltSXX19ZnVuY3Rpb24gJChWLFIpe3R5cGVvZiBWPT0ic3RyaW5nIiYmdHlwZW9mIFI9PSJvYmplY3QiJiYoQltWXT1SLHc9ITApfWZ1bmN0aW9uIHEoVil7ZGVsZXRlIEJbVl0sT2JqZWN0LmtleXMoQikubGVuZ3RoPT09MCYmKHc9ITEsVj09PXYmJlplKCkpfWZ1bmN0aW9uIHBlKFYpe2lmKHcpe2NvbnN0IFI9WyJlbCIsIndyYXAiLCJydGwiLCJpbmxpbmUiLCJkZWZhdWx0Q29sb3IiLCJhMTF5Il07Zm9yKGxldCBFIGluIEIpe2NvbnN0IEY9QltFXTtpZihWLm1hdGNoZXMoRSkpe3Y9RSxKPXt9LFIuZm9yRWFjaChZPT5kZWxldGUgRltZXSk7Zm9yKGxldCBZIGluIEYpSltZXT1BcnJheS5pc0FycmF5KEdbWV0pP0dbWV0uc2xpY2UoKTpHW1ldO0woRik7YnJlYWt9fX19ZnVuY3Rpb24gWmUoKXtPYmplY3Qua2V5cyhKKS5sZW5ndGg+MCYmKEwoSiksdj0iIixKPXt9KX1mdW5jdGlvbiBXZShWKXtWIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJihWPVtWXSksQXJyYXkuaXNBcnJheShWKT9WLmZvckVhY2goUj0+e2llKFIsImNsaWNrIixVZSksaWUoUiwiaW5wdXQiLFZlKX0pOihpZShlLCJjbGljayIsVixVZSksaWUoZSwiaW5wdXQiLFYsVmUpKX1mdW5jdGlvbiBVZShWKXtHLmlubGluZXx8KHBlKFYudGFyZ2V0KSxBPVYudGFyZ2V0LHk9QS52YWx1ZSxYPSRlKHkpLGEuY2xhc3NMaXN0LmFkZCgiY2xyLW9wZW4iKSx5ZSgpLERlKHkpLChHLmZvY3VzSW5wdXR8fEcuc2VsZWN0SW5wdXQpJiYodS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLHUuc2V0U2VsZWN0aW9uUmFuZ2UoQS5zZWxlY3Rpb25TdGFydCxBLnNlbGVjdGlvbkVuZCkpLEcuc2VsZWN0SW5wdXQmJnUuc2VsZWN0KCksKEl8fEcuc3dhdGNoZXNPbmx5KSYmWXIoKS5zaGlmdCgpLmZvY3VzKCksQS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgib3BlbiIse2J1YmJsZXM6ITB9KSkpfWZ1bmN0aW9uIHllKCl7aWYoIWF8fCFBJiYhRy5pbmxpbmUpcmV0dXJuO2NvbnN0IFY9byxSPXQuc2Nyb2xsWSxFPWEub2Zmc2V0V2lkdGgsRj1hLm9mZnNldEhlaWdodCxZPXtsZWZ0OiExLHRvcDohMX07bGV0IF8scmUsR2UsbmU9e3g6MCx5OjB9O2lmKFYmJihfPXQuZ2V0Q29tcHV0ZWRTdHlsZShWKSxyZT1wYXJzZUZsb2F0KF8ubWFyZ2luVG9wKSxHZT1wYXJzZUZsb2F0KF8uYm9yZGVyVG9wV2lkdGgpLG5lPVYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbmUueSs9R2UrUiksIUcuaW5saW5lKXtjb25zdCBfZT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBJdD1fZS54LEJ0PVIrX2UueStfZS5oZWlnaHQrRy5tYXJnaW47Vj8oSXQtPW5lLngsQnQtPW5lLnksSXQrRT5WLmNsaWVudFdpZHRoJiYoSXQrPV9lLndpZHRoLUUsWS5sZWZ0PSEwKSxCdCtGPlYuY2xpZW50SGVpZ2h0LXJlJiZGK0cubWFyZ2luPD1fZS50b3AtKG5lLnktUikmJihCdC09X2UuaGVpZ2h0K0YrRy5tYXJnaW4qMixZLnRvcD0hMCksQnQrPVYuc2Nyb2xsVG9wKTooSXQrRT5lLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCYmKEl0Kz1fZS53aWR0aC1FLFkubGVmdD0hMCksQnQrRi1SPmUuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCYmRitHLm1hcmdpbjw9X2UudG9wJiYoQnQ9UitfZS55LUYtRy5tYXJnaW4sWS50b3A9ITApKSxhLmNsYXNzTGlzdC50b2dnbGUoImNsci1sZWZ0IixZLmxlZnQpLGEuY2xhc3NMaXN0LnRvZ2dsZSgiY2xyLXRvcCIsWS50b3ApLGEuc3R5bGUubGVmdD1gJHtJdH1weGAsYS5zdHlsZS50b3A9YCR7QnR9cHhgLG5lLngrPWEub2Zmc2V0TGVmdCxuZS55Kz1hLm9mZnNldFRvcH1TPXt3aWR0aDpjLm9mZnNldFdpZHRoLGhlaWdodDpjLm9mZnNldEhlaWdodCx4OmMub2Zmc2V0TGVmdCtuZS54LHk6Yy5vZmZzZXRUb3ArbmUueX19ZnVuY3Rpb24gQmUoVil7ViBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3goVik6QXJyYXkuaXNBcnJheShWKT9WLmZvckVhY2goeCk6ZS5xdWVyeVNlbGVjdG9yQWxsKFYpLmZvckVhY2goeCl9ZnVuY3Rpb24geChWKXtjb25zdCBSPVYucGFyZW50Tm9kZTtpZighUi5jbGFzc0xpc3QuY29udGFpbnMoImNsci1maWVsZCIpKXtjb25zdCBFPWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bGV0IEY9ImNsci1maWVsZCI7KEcucnRsfHxWLmNsYXNzTGlzdC5jb250YWlucygiY2xyLXJ0bCIpKSYmKEYrPSIgY2xyLXJ0bCIpLEUuaW5uZXJIVE1MPSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbGxlZGJ5PSJjbHItb3Blbi1sYWJlbCI+PC9idXR0b24+JyxSLmluc2VydEJlZm9yZShFLFYpLEUuY2xhc3NOYW1lPUYsRS5zdHlsZS5jb2xvcj1WLnZhbHVlLEUuYXBwZW5kQ2hpbGQoVil9fWZ1bmN0aW9uIFZlKFYpe2NvbnN0IFI9Vi50YXJnZXQucGFyZW50Tm9kZTtSLmNsYXNzTGlzdC5jb250YWlucygiY2xyLWZpZWxkIikmJihSLnN0eWxlLmNvbG9yPVYudGFyZ2V0LnZhbHVlKX1mdW5jdGlvbiBlZShWKXtpZihBJiYhRy5pbmxpbmUpe2NvbnN0IFI9QTtWJiYoQT1sLHkhPT1SLnZhbHVlJiYoUi52YWx1ZT15LFIuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKSkpLHNldFRpbWVvdXQoKCk9Pnt5IT09Ui52YWx1ZSYmUi5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiY2hhbmdlIix7YnViYmxlczohMH0pKX0pLGEuY2xhc3NMaXN0LnJlbW92ZSgiY2xyLW9wZW4iKSx3JiZaZSgpLFIuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNsb3NlIix7YnViYmxlczohMH0pKSxHLmZvY3VzSW5wdXQmJlIuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxBPWx9fWZ1bmN0aW9uIERlKFYpe2NvbnN0IFI9ZXUoViksRT1xcyhSKTtMZShFLnMsRS52KSxUbihSLEUpLGIudmFsdWU9RS5oLGEuc3R5bGUuY29sb3I9YGhzbCgke0UuaH0sIDEwMCUsIDUwJSlgLG0uc3R5bGUubGVmdD1gJHtFLmgvMzYwKjEwMH0lYCxkLnN0eWxlLmxlZnQ9YCR7Uy53aWR0aCpFLnMvMTAwfXB4YCxkLnN0eWxlLnRvcD1gJHtTLmhlaWdodC1TLmhlaWdodCpFLnYvMTAwfXB4YCxmLnZhbHVlPUUuYSoxMDAscC5zdHlsZS5sZWZ0PWAke0UuYSoxMDB9JWB9ZnVuY3Rpb24gJGUoVil7Y29uc3QgUj1WLnN1YnN0cmluZygwLDMpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIFI9PT0icmdiInx8Uj09PSJoc2wiP1I6ImhleCJ9ZnVuY3Rpb24gbWUoVil7Vj1WIT09bD9WOnUudmFsdWUsQSYmKEEudmFsdWU9VixBLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSkpLEcub25DaGFuZ2UmJkcub25DaGFuZ2UuY2FsbCh0LFYsQSksZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sb3JpczpwaWNrIix7ZGV0YWlsOntjb2xvcjpWLGN1cnJlbnRFbDpBfX0pKX1mdW5jdGlvbiBsZShWLFIpe2NvbnN0IEU9e2g6Yi52YWx1ZSoxLHM6Vi9TLndpZHRoKjEwMCx2OjEwMC1SL1MuaGVpZ2h0KjEwMCxhOmYudmFsdWUvMTAwfSxGPVBzKEUpO0xlKEUucyxFLnYpLFRuKEYsRSksbWUoKX1mdW5jdGlvbiBMZShWLFIpe2xldCBFPUcuYTExeS5tYXJrZXI7Vj1WLnRvRml4ZWQoMSkqMSxSPVIudG9GaXhlZCgxKSoxLEU9RS5yZXBsYWNlKCJ7c30iLFYpLEU9RS5yZXBsYWNlKCJ7dn0iLFIpLGQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixFKX1mdW5jdGlvbiBvdChWKXtyZXR1cm57cGFnZVg6Vi5jaGFuZ2VkVG91Y2hlcz9WLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYOlYucGFnZVgscGFnZVk6Vi5jaGFuZ2VkVG91Y2hlcz9WLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZOlYucGFnZVl9fWZ1bmN0aW9uIGplKFYpe2NvbnN0IFI9b3QoVik7bGV0IEU9Ui5wYWdlWC1TLngsRj1SLnBhZ2VZLVMueTtvJiYoRis9by5zY3JvbGxUb3ApLHV0KEUsRiksVi5wcmV2ZW50RGVmYXVsdCgpLFYuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gY24oVixSKXtsZXQgRT1kLnN0eWxlLmxlZnQucmVwbGFjZSgicHgiLCIiKSoxK1YsRj1kLnN0eWxlLnRvcC5yZXBsYWNlKCJweCIsIiIpKjErUjt1dChFLEYpfWZ1bmN0aW9uIHV0KFYsUil7Vj1WPDA/MDpWPlMud2lkdGg/Uy53aWR0aDpWLFI9UjwwPzA6Uj5TLmhlaWdodD9TLmhlaWdodDpSLGQuc3R5bGUubGVmdD1gJHtWfXB4YCxkLnN0eWxlLnRvcD1gJHtSfXB4YCxsZShWLFIpLGQuZm9jdXMoKX1mdW5jdGlvbiBUbihWLFIpe1Y9PT12b2lkIDAmJihWPXt9KSxSPT09dm9pZCAwJiYoUj17fSk7bGV0IEU9Ry5mb3JtYXQ7Zm9yKGNvbnN0IEdlIGluIFYpcltHZV09VltHZV07Zm9yKGNvbnN0IEdlIGluIFIpcltHZV09UltHZV07Y29uc3QgRj10dShyKSxZPUYuc3Vic3RyaW5nKDAsNyk7c3dpdGNoKGQuc3R5bGUuY29sb3I9WSxwLnBhcmVudE5vZGUuc3R5bGUuY29sb3I9WSxwLnN0eWxlLmNvbG9yPUYscy5zdHlsZS5jb2xvcj1GLGMuc3R5bGUuZGlzcGxheT0ibm9uZSIsYy5vZmZzZXRIZWlnaHQsYy5zdHlsZS5kaXNwbGF5PSIiLHAubmV4dEVsZW1lbnRTaWJsaW5nLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHAubmV4dEVsZW1lbnRTaWJsaW5nLm9mZnNldEhlaWdodCxwLm5leHRFbGVtZW50U2libGluZy5zdHlsZS5kaXNwbGF5PSIiLEU9PT0ibWl4ZWQiP0U9ci5hPT09MT8iaGV4IjoicmdiIjpFPT09ImF1dG8iJiYoRT1YKSxFKXtjYXNlImhleCI6dS52YWx1ZT1GO2JyZWFrO2Nhc2UicmdiIjp1LnZhbHVlPW51KHIpO2JyZWFrO2Nhc2UiaHNsIjp1LnZhbHVlPWx1KCRzKHIpKTticmVha312YXIgXz10eXBlb2YgRy5wYXJlbnQ9PSJvYmplY3QiP0cucGFyZW50OmU7Y29uc3QgcmU9Xy5xdWVyeVNlbGVjdG9yKGAuY2xyLWZvcm1hdCBbdmFsdWU9IiR7RX0iXWApO3JlJiYocmUuY2hlY2tlZD0hMCl9ZnVuY3Rpb24gX3MoKXtjb25zdCBWPWIudmFsdWUqMSxSPWQuc3R5bGUubGVmdC5yZXBsYWNlKCJweCIsIiIpKjEsRT1kLnN0eWxlLnRvcC5yZXBsYWNlKCJweCIsIiIpKjE7YS5zdHlsZS5jb2xvcj1gaHNsKCR7Vn0sIDEwMCUsIDUwJSlgLG0uc3R5bGUubGVmdD1gJHtWLzM2MCoxMDB9JWAsbGUoUixFKX1mdW5jdGlvbiBPcygpe2NvbnN0IFY9Zi52YWx1ZS8xMDA7cC5zdHlsZS5sZWZ0PWAke1YqMTAwfSVgLFRuKHthOlZ9KSxtZSgpfWZ1bmN0aW9uIFBzKFYpe2NvbnN0IFI9Vi5zLzEwMCxFPVYudi8xMDA7bGV0IEY9UipFLFk9Vi5oLzYwLF89RiooMS1uLmFicyhZJTItMSkpLHJlPUUtRjtGPUYrcmUsXz1fK3JlO2NvbnN0IEdlPW4uZmxvb3IoWSklNixuZT1bRixfLHJlLHJlLF8sRl1bR2VdLF9lPVtfLEYsRixfLHJlLHJlXVtHZV0sSXQ9W3JlLHJlLF8sRixGLF9dW0dlXTtyZXR1cm57cjpuLnJvdW5kKG5lKjI1NSksZzpuLnJvdW5kKF9lKjI1NSksYjpuLnJvdW5kKEl0KjI1NSksYTpWLmF9fWZ1bmN0aW9uICRzKFYpe2NvbnN0IFI9Vi52LzEwMCxFPVIqKDEtVi5zLzEwMC8yKTtsZXQgRjtyZXR1cm4gRT4wJiZFPDEmJihGPW4ucm91bmQoKFItRSkvbi5taW4oRSwxLUUpKjEwMCkpLHtoOlYuaCxzOkZ8fDAsbDpuLnJvdW5kKEUqMTAwKSxhOlYuYX19ZnVuY3Rpb24gcXMoVil7Y29uc3QgUj1WLnIvMjU1LEU9Vi5nLzI1NSxGPVYuYi8yNTUsWT1uLm1heChSLEUsRiksXz1uLm1pbihSLEUsRikscmU9WS1fLEdlPVk7bGV0IG5lPTAsX2U9MDtyZXR1cm4gcmUmJihZPT09UiYmKG5lPShFLUYpL3JlKSxZPT09RSYmKG5lPTIrKEYtUikvcmUpLFk9PT1GJiYobmU9NCsoUi1FKS9yZSksWSYmKF9lPXJlL1kpKSxuZT1uLmZsb29yKG5lKjYwKSx7aDpuZTwwP25lKzM2MDpuZSxzOm4ucm91bmQoX2UqMTAwKSx2Om4ucm91bmQoR2UqMTAwKSxhOlYuYX19ZnVuY3Rpb24gZXUoVil7Y29uc3QgUj0vXigocmdiYSl8cmdiKVtcRF0rKFtcZC5dKylbXERdKyhbXGQuXSspW1xEXSsoW1xkLl0rKVtcRF0qPyhbXGQuXSt8JCkvaTtsZXQgRSxGO3JldHVybiBpLmZpbGxTdHlsZT0iIzAwMCIsaS5maWxsU3R5bGU9VixFPVIuZXhlYyhpLmZpbGxTdHlsZSksRT9GPXtyOkVbM10qMSxnOkVbNF0qMSxiOkVbNV0qMSxhOkVbNl0qMX06KEU9aS5maWxsU3R5bGUucmVwbGFjZSgiIyIsIiIpLm1hdGNoKC8uezJ9L2cpLm1hcChZPT5wYXJzZUludChZLDE2KSksRj17cjpFWzBdLGc6RVsxXSxiOkVbMl0sYToxfSksRn1mdW5jdGlvbiB0dShWKXtsZXQgUj1WLnIudG9TdHJpbmcoMTYpLEU9Vi5nLnRvU3RyaW5nKDE2KSxGPVYuYi50b1N0cmluZygxNiksWT0iIjtpZihWLnI8MTYmJihSPSIwIitSKSxWLmc8MTYmJihFPSIwIitFKSxWLmI8MTYmJihGPSIwIitGKSxHLmFscGhhJiYoVi5hPDF8fEcuZm9yY2VBbHBoYSkpe2NvbnN0IF89Vi5hKjI1NXwwO1k9Xy50b1N0cmluZygxNiksXzwxNiYmKFk9IjAiK1kpfXJldHVybiIjIitSK0UrRitZfWZ1bmN0aW9uIG51KFYpe3JldHVybiFHLmFscGhhfHxWLmE9PT0xJiYhRy5mb3JjZUFscGhhP2ByZ2IoJHtWLnJ9LCAke1YuZ30sICR7Vi5ifSlgOmByZ2JhKCR7Vi5yfSwgJHtWLmd9LCAke1YuYn0sICR7Vi5hfSlgfWZ1bmN0aW9uIGx1KFYpe3JldHVybiFHLmFscGhhfHxWLmE9PT0xJiYhRy5mb3JjZUFscGhhP2Boc2woJHtWLmh9LCAke1Yuc30lLCAke1YubH0lKWA6YGhzbGEoJHtWLmh9LCAke1Yuc30lLCAke1YubH0lLCAke1YuYX0pYH1mdW5jdGlvbiBpdSgpe0tsKCkucXVlcnlTZWxlY3RvcigiI2Nsci1waWNrZXIiKXx8KG89bCxhPWUuY3JlYXRlRWxlbWVudCgiZGl2IiksYS5zZXRBdHRyaWJ1dGUoImlkIiwiY2xyLXBpY2tlciIpLGEuY2xhc3NOYW1lPSJjbHItcGlja2VyIixhLmlubmVySFRNTD1gPGlucHV0IGlkPSJjbHItY29sb3ItdmFsdWUiIG5hbWU9ImNsci1jb2xvci12YWx1ZSIgY2xhc3M9ImNsci1jb2xvciIgdHlwZT0idGV4dCIgdmFsdWU9IiIgc3BlbGxjaGVjaz0iZmFsc2UiIGFyaWEtbGFiZWw9IiR7Ry5hMTF5LmlucHV0fSI+PGRpdiBpZD0iY2xyLWNvbG9yLWFyZWEiIGNsYXNzPSJjbHItZ3JhZGllbnQiIHJvbGU9ImFwcGxpY2F0aW9uIiBhcmlhLWxhYmVsPSIke0cuYTExeS5pbnN0cnVjdGlvbn0iPjxkaXYgaWQ9ImNsci1jb2xvci1tYXJrZXIiIGNsYXNzPSJjbHItbWFya2VyIiB0YWJpbmRleD0iMCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xyLWh1ZSI+PGlucHV0IGlkPSJjbHItaHVlLXNsaWRlciIgbmFtZT0iY2xyLWh1ZS1zbGlkZXIiIHR5cGU9InJhbmdlIiBtaW49IjAiIG1heD0iMzYwIiBzdGVwPSIxIiBhcmlhLWxhYmVsPSIke0cuYTExeS5odWVTbGlkZXJ9Ij48ZGl2IGlkPSJjbHItaHVlLW1hcmtlciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xyLWFscGhhIj48aW5wdXQgaWQ9ImNsci1hbHBoYS1zbGlkZXIiIG5hbWU9ImNsci1hbHBoYS1zbGlkZXIiIHR5cGU9InJhbmdlIiBtaW49IjAiIG1heD0iMTAwIiBzdGVwPSIxIiBhcmlhLWxhYmVsPSIke0cuYTExeS5hbHBoYVNsaWRlcn0iPjxkaXYgaWQ9ImNsci1hbHBoYS1tYXJrZXIiPjwvZGl2PjxzcGFuPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJjbHItZm9ybWF0IiBjbGFzcz0iY2xyLWZvcm1hdCI+PGZpZWxkc2V0IGNsYXNzPSJjbHItc2VnbWVudGVkIj48bGVnZW5kPiR7Ry5hMTF5LmZvcm1hdH08L2xlZ2VuZD48aW5wdXQgaWQ9ImNsci1mMSIgdHlwZT0icmFkaW8iIG5hbWU9ImNsci1mb3JtYXQiIHZhbHVlPSJoZXgiPjxsYWJlbCBmb3I9ImNsci1mMSI+SGV4PC9sYWJlbD48aW5wdXQgaWQ9ImNsci1mMiIgdHlwZT0icmFkaW8iIG5hbWU9ImNsci1mb3JtYXQiIHZhbHVlPSJyZ2IiPjxsYWJlbCBmb3I9ImNsci1mMiI+UkdCPC9sYWJlbD48aW5wdXQgaWQ9ImNsci1mMyIgdHlwZT0icmFkaW8iIG5hbWU9ImNsci1mb3JtYXQiIHZhbHVlPSJoc2wiPjxsYWJlbCBmb3I9ImNsci1mMyI+SFNMPC9sYWJlbD48c3Bhbj48L3NwYW4+PC9maWVsZHNldD48L2Rpdj48ZGl2IGlkPSJjbHItc3dhdGNoZXMiIGNsYXNzPSJjbHItc3dhdGNoZXMiPjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2xyLWNsZWFyIiBjbGFzcz0iY2xyLWNsZWFyIiBhcmlhLWxhYmVsPSIke0cuYTExeS5jbGVhcn0iPiR7Ry5jbGVhckxhYmVsfTwvYnV0dG9uPjxkaXYgaWQ9ImNsci1jb2xvci1wcmV2aWV3IiBjbGFzcz0iY2xyLXByZXZpZXciPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2xyLWNsb3NlIiBjbGFzcz0iY2xyLWNsb3NlIiBhcmlhLWxhYmVsPSIke0cuYTExeS5jbG9zZX0iPiR7Ry5jbG9zZUxhYmVsfTwvYnV0dG9uPjwvZGl2PjxzcGFuIGlkPSJjbHItb3Blbi1sYWJlbCIgaGlkZGVuPiR7Ry5hMTF5Lm9wZW59PC9zcGFuPjxzcGFuIGlkPSJjbHItc3dhdGNoLWxhYmVsIiBoaWRkZW4+JHtHLmExMXkuc3dhdGNofTwvc3Bhbj5gLGUuYm9keS5hcHBlbmRDaGlsZChhKSxjPUtlKCJjbHItY29sb3ItYXJlYSIpLGQ9S2UoImNsci1jb2xvci1tYXJrZXIiKSxoPUtlKCJjbHItY2xlYXIiKSxnPUtlKCJjbHItY2xvc2UiKSxzPUtlKCJjbHItY29sb3ItcHJldmlldyIpLHU9S2UoImNsci1jb2xvci12YWx1ZSIpLGI9S2UoImNsci1odWUtc2xpZGVyIiksbT1LZSgiY2xyLWh1ZS1tYXJrZXIiKSxmPUtlKCJjbHItYWxwaGEtc2xpZGVyIikscD1LZSgiY2xyLWFscGhhLW1hcmtlciIpLFdlKEcuZWwpLEJlKEcuZWwpLGllKGEsIm1vdXNlZG93biIsVj0+e2EuY2xhc3NMaXN0LnJlbW92ZSgiY2xyLWtleWJvYXJkLW5hdiIpLFYuc3RvcFByb3BhZ2F0aW9uKCl9KSxpZShjLCJtb3VzZWRvd24iLFY9PntpZShlLCJtb3VzZW1vdmUiLGplKX0pLGllKGMsImNvbnRleHRtZW51IixWPT57Vi5wcmV2ZW50RGVmYXVsdCgpfSksaWUoYywidG91Y2hzdGFydCIsVj0+e2UuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixqZSx7cGFzc2l2ZTohMX0pfSksaWUoZCwibW91c2Vkb3duIixWPT57aWUoZSwibW91c2Vtb3ZlIixqZSl9KSxpZShkLCJ0b3VjaHN0YXJ0IixWPT57ZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGplLHtwYXNzaXZlOiExfSl9KSxpZSh1LCJjaGFuZ2UiLFY9Pntjb25zdCBSPXUudmFsdWU7aWYoQXx8Ry5pbmxpbmUpe2NvbnN0IEU9Uj09PSIiP1I6RGUoUik7bWUoRSl9fSksaWUoaCwiY2xpY2siLFY9PnttZSgiIiksZWUoKX0pLGllKGcsImNsaWNrIixWPT57bWUoKSxlZSgpfSksaWUoS2UoImNsci1mb3JtYXQiKSwiY2xpY2siLCIuY2xyLWZvcm1hdCBpbnB1dCIsVj0+e1g9Vi50YXJnZXQudmFsdWUsVG4oKSxtZSgpfSksaWUoYSwiY2xpY2siLCIuY2xyLXN3YXRjaGVzIGJ1dHRvbiIsVj0+e0RlKFYudGFyZ2V0LnRleHRDb250ZW50KSxtZSgpLEcuc3dhdGNoZXNPbmx5JiZlZSgpfSksaWUoZSwibW91c2V1cCIsVj0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixqZSl9KSxpZShlLCJ0b3VjaGVuZCIsVj0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixqZSl9KSxpZShlLCJtb3VzZWRvd24iLFY9PntJPSExLGEuY2xhc3NMaXN0LnJlbW92ZSgiY2xyLWtleWJvYXJkLW5hdiIpLGVlKCl9KSxpZShlLCJrZXlkb3duIixWPT57Y29uc3QgUj1WLmtleSxFPVYudGFyZ2V0LEY9Vi5zaGlmdEtleTtpZihSPT09IkVzY2FwZSI/ZWUoITApOlsiVGFiIiwiQXJyb3dVcCIsIkFycm93RG93biIsIkFycm93TGVmdCIsIkFycm93UmlnaHQiXS5pbmNsdWRlcyhSKSYmKEk9ITAsYS5jbGFzc0xpc3QuYWRkKCJjbHIta2V5Ym9hcmQtbmF2IikpLFI9PT0iVGFiIiYmRS5tYXRjaGVzKCIuY2xyLXBpY2tlciAqIikpe2NvbnN0IF89WXIoKSxyZT1fLnNoaWZ0KCksR2U9Xy5wb3AoKTtGJiZFPT09cmU/KEdlLmZvY3VzKCksVi5wcmV2ZW50RGVmYXVsdCgpKTohRiYmRT09PUdlJiYocmUuZm9jdXMoKSxWLnByZXZlbnREZWZhdWx0KCkpfX0pLGllKGUsImNsaWNrIiwiLmNsci1maWVsZCBidXR0b24iLFY9Pnt3JiZaZSgpLFYudGFyZ2V0Lm5leHRFbGVtZW50U2libGluZy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiY2xpY2siLHtidWJibGVzOiEwfSkpfSksaWUoZCwia2V5ZG93biIsVj0+e2NvbnN0IFI9e0Fycm93VXA6WzAsLTFdLEFycm93RG93bjpbMCwxXSxBcnJvd0xlZnQ6Wy0xLDBdLEFycm93UmlnaHQ6WzEsMF19O09iamVjdC5rZXlzKFIpLmluY2x1ZGVzKFYua2V5KSYmKGNuKC4uLlJbVi5rZXldKSxWLnByZXZlbnREZWZhdWx0KCkpfSksaWUoYywiY2xpY2siLGplKSxpZShiLCJpbnB1dCIsX3MpLGllKGYsImlucHV0IixPcykpfWZ1bmN0aW9uIFlyKCl7cmV0dXJuIEFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCwgYnV0dG9uIikpLmZpbHRlcihFPT4hIUUub2Zmc2V0V2lkdGgpfWZ1bmN0aW9uIEtlKFYpe3ZhciBSPUtsKCk7cmV0dXJuIFIucXVlcnlTZWxlY3RvcigiIyIrVil9ZnVuY3Rpb24gS2woKXtyZXR1cm4gdHlwZW9mIEcucGFyZW50PT0ib2JqZWN0Ij9HLnBhcmVudDplfWZ1bmN0aW9uIGllKFYsUixFLEYpe2NvbnN0IFk9RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3I7dHlwZW9mIEU9PSJzdHJpbmciP1YuYWRkRXZlbnRMaXN0ZW5lcihSLF89PntZLmNhbGwoXy50YXJnZXQsRSkmJkYuY2FsbChfLnRhcmdldCxfKX0pOihGPUUsVi5hZGRFdmVudExpc3RlbmVyKFIsRikpfWZ1bmN0aW9uIE1uKFYsUil7Uj1SIT09bD9SOltdLGUucmVhZHlTdGF0ZSE9PSJsb2FkaW5nIj9WKC4uLlIpOmUuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCk9PntWKC4uLlIpfSl9Tm9kZUxpc3QhPT1sJiZOb2RlTGlzdC5wcm90b3R5cGUmJiFOb2RlTGlzdC5wcm90b3R5cGUuZm9yRWFjaCYmKE5vZGVMaXN0LnByb3RvdHlwZS5mb3JFYWNoPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTtmdW5jdGlvbiBydShWLFIpe0E9Uix5PUEudmFsdWUscGUoUiksWD0kZShWKSx5ZSgpLERlKFYpLG1lKCkseSE9PVYmJkEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNoYW5nZSIse2J1YmJsZXM6ITB9KSl9Y29uc3QgVGw9KCgpPT57Y29uc3QgVj17aW5pdDppdSxzZXQ6TCx3cmFwOkJlLGNsb3NlOmVlLHNldEluc3RhbmNlOiQsc2V0Q29sb3I6cnUscmVtb3ZlSW5zdGFuY2U6cSx1cGRhdGVQb3NpdGlvbjp5ZSxyZWFkeTpNbn07ZnVuY3Rpb24gUihFKXtNbigoKT0+e0UmJih0eXBlb2YgRT09InN0cmluZyI/V2UoRSk6TChFKSl9KX1mb3IoY29uc3QgRSBpbiBWKVJbRV09ZnVuY3Rpb24oKXtmb3IodmFyIEY9YXJndW1lbnRzLmxlbmd0aCxZPW5ldyBBcnJheShGKSxfPTA7XzxGO18rKylZW19dPWFyZ3VtZW50c1tfXTtNbihWW0VdLFkpfTtyZXR1cm4gTW4oKCk9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsRT0+e1IudXBkYXRlUG9zaXRpb24oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixFPT57Ui51cGRhdGVQb3NpdGlvbigpfSl9KSxSfSkoKTtyZXR1cm4gVGwuY29sb3Jpcz1UbCxUbH0pKHdpbmRvdyxkb2N1bWVudCxNYXRoKX0pKCk7QXQuY29sb3JpcztBdC5pbml0O0F0LnNldDtBdC53cmFwO0F0LmNsb3NlO0F0LnNldEluc3RhbmNlO0F0LnJlbW92ZUluc3RhbmNlO0F0LnVwZGF0ZVBvc2l0aW9uO2Z1bmN0aW9uIFhlKHQpe3JldHVybmB0ZXh0LWVkaXQtcGFuZWwtdmlldy0ke3R9YH1jbGFzcyBpMSBleHRlbmRzIEJse2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoZSksdGhpcy5zZT1uLHRoaXMudGV4dENvbnRlbnQ9IiIsdGhpcy5jdXJyZW50VGV4dENvbG9yPSIiLHRoaXMuaGFuZGxlQ2xvc2VXaGVuRXNjYXBlPWw9PntsLmtleT09PSJFc2NhcGUiJiZ0aGlzLmRlc3Ryb3koKX0sdGhpcy5oYW5kbGVDbGlja091dHNpZGU9bD0+e2NvbnN0IGk9bC5jb21wb3NlZFBhdGgoKTsoIXRoaXMucGFuZWxFbHx8IWkuaW5jbHVkZXModGhpcy5wYW5lbEVsKSkmJnRoaXMuZGVzdHJveSgpfSx0aGlzLmhhbmRsZUNvbG9yQ2hhbmdlPWw9Pntjb25zdCBpPWwuZGV0YWlsLmNvbG9yO3RoaXMuZG9tRWRpdG9yLmhhbmRsZVF1aWNrQWN0aW9uQ2xpY2sod2UuQ09MT1IsaSk7Y29uc3Qgcj10aGlzLnNlLmNyZWF0ZVBhdGNoKHRoaXMudHJpZ2dlckVsKTt0aGlzLnNlLmRlYm91bmNlZEFkZFBhdGNoZWQociksdGhpcy5jdXJyZW50VGV4dENvbG9yPWksdGhpcy5yZW5kZXIoKX19Z2V0IHRlbXBsYXRlKCl7cmV0dXJuIE9gCgkJCTxzdHlsZT4KCQkJCSR7RHN9IC4ke1hlKCJyb290Iil9IHsKCQkJCQlib3JkZXItcmFkaXVzOiAxMnB4OwoJCQkJCWJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWRhcmspOwoJCQkJCWJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtbWVudS13aGl0ZSk7CgkJCQkJYm94LXNoYWRvdzogMHB4IDRweCAxMXB4IDBweCB2YXIoLS1zaGFkb3ctTSk7CgkJCQkJYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpOwoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKCQkJCQl3aWR0aDogMzgycHg7CgkJCQl9CgoJCQkJLiR7WGUoInRvb2xiYXIiKX0gewoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlnYXA6IDhweDsKCQkJCQlwYWRkaW5nOiAxMnB4IDEycHggMHB4IDhweDsKCQkJCX0KCgkJCQkuJHtYZSgidG9vbC1pdGVtIil9IHsKCQkJCQliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCQkJCQlib3JkZXI6IG5vbmU7CgkJCQkJY3Vyc29yOiBwb2ludGVyOwoJCQkJCXdpZHRoOiAyOHB4OwoJCQkJCWhlaWdodDogMjhweDsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJYm9yZGVyLXJhZGl1czogNnB4OwoJCQkJfQoKCQkJCS4ke1hlKCJ0b29sLWl0ZW0tY29sb3IiKX0gewoJCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKCQkJCX0KCgkJCQkuJHtYZSgidG9vbC1pdGVtLWNvbG9yIil9IC5jbHItZmllbGQgewoJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQlpbnNldDogMDsKCQkJCQlvcGFjaXR5OiAwOwoJCQkJfQoKCQkJCS4ke1hlKCJ0b29sLWl0ZW0tY29sb3IiKX0gLmNsci1maWVsZCAqIHsKCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQl9CgoJCQkJLiR7WGUoInRvb2wtaXRlbS1jb2xvciIpfSAuY2xyLWZpZWxkIGlucHV0IHsKCQkJCQl3aWR0aDogMTAwJTsKCQkJCQloZWlnaHQ6IDEwMCU7CgkJCQl9CgoJCQkJLiR7WGUoInRvb2wtaXRlbS1hY3RpdmUiKX0gewoJCQkJCWNvbG9yOiB2YXIoLS1pY29uLWJyYW5kKTsKCQkJCX0KCgkJCQkuJHtYZSgidG9vbC1pdGVtIil9OmhvdmVyIHsKCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1maWxsLXRzcC1ncmF5LW1haW4pOwoJCQkJfQoKCQkJCS4ke1hlKCJ0ZXh0YXJlYS1ib3giKX0gewoJCQkJCXBhZGRpbmc6IDEwcHggMTJweCAxMnB4OwoJCQkJCW92ZXJmbG93OiBoaWRkZW47CgkJCQl9CgoJCQkJLiR7WGUoInRleHRhcmVhIil9IHsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCXdpZHRoOiAxMDAlOwoJCQkJCW1pbi1oZWlnaHQ6IDEwMHB4OwoJCQkJCW1heC1oZWlnaHQ6IDUzMHB4OwoJCQkJCW92ZXJmbG93LXk6IGF1dG87CgkJCQkJcmVzaXplOiBub25lOwoJCQkJCXBhZGRpbmc6IDEycHggMTJweCAxMnB4IDE2cHg7CgkJCQkJYm9yZGVyLXJhZGl1czogMTBweDsKCQkJCQlib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50OwoJCQkJCWJhY2tncm91bmQ6IHZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pOwoJCQkJCWNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwoJCQkJCWZvbnQtc2l6ZTogMTRweDsKCQkJCQlsaW5lLWhlaWdodDogMjJweDsKCQkJCQlsZXR0ZXItc3BhY2luZzogLTAuMTU0cHg7CgkJCQl9CgoJCQkJLiR7WGUoInRleHRhcmVhIil9OmZvY3VzLXdpdGhpbiB7CgkJCQkJYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItZGFyayk7CgkJCQl9CgkJCTwvc3R5bGU+CgkJCTxsaXQtcG9wdXAgJHtRdCh0aGlzLmhhbmRsZVNldFJvb3RSZWYuYmluZCh0aGlzKSl9PgoJCQkJPGRpdiBjbGFzcz0ke1hlKCJyb290Iil9PgoJCQkJCTxkaXYgY2xhc3M9JHtYZSgidG9vbGJhciIpfT4KCQkJCQkJJHtMcC5maWx0ZXIoZT0+ZS50eXBlIT09d2UuREVMRVRFJiZlLnR5cGUhPT13ZS5DT1BZKS5tYXAoKHt0eXBlOmUsbGFiZWw6bn0pPT57Y29uc3QgbD0oKT0+e2lmKGU9PT13ZS5CT0xEKXJldHVybiBPYCR7S3B9YDtpZihlPT09d2UuSVRBTElDKXJldHVybiBPYCR7TXB9YDtpZihlPT09d2UuVU5ERVJMSU5FKXJldHVybiBPYCR7VHB9YDtpZihlPT09d2UuQ09MT1IpcmV0dXJuIE9gJHtIcCh0aGlzLmN1cnJlbnRUZXh0Q29sb3IpfWB9LGk9KCk9PntpZighdGhpcy50cmlnZ2VyRWwpcmV0dXJuITE7Y29uc3Qgcj10aGlzLnRyaWdnZXJFbC5jbG9uZU5vZGUoITApO1tRLnNwYWNlRWRpdG9ySGlnaGxpZ2h0LFEub25seVRleHROb2RlLFEudGV4dE5vZGVBY3RpdmVdLmZvckVhY2goYz0+e3IuY2xhc3NMaXN0LnJlbW92ZShjKX0pLHIuY2xhc3NMaXN0LmFkZChRLmhpZGRlbiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKTtjb25zdCBhPWdldENvbXB1dGVkU3R5bGUocik7cmV0dXJuIHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHIpfSwwKSxlPT09d2UuQk9MRD92ZS5pc1RleHRCb2xkZWQoYS5mb250V2VpZ2h0KTplPT09d2UuSVRBTElDP3ZlLmlzVGV4dEl0YWxpYyhhLmZvbnRTdHlsZSk6ZT09PXdlLlVOREVSTElORT92ZS5pc1RleHRVbmRlcmxpbmVkKGEudGV4dERlY29yYXRpb25MaW5lKTohMX07cmV0dXJuIGU9PT13ZS5DT0xPUj9PYDxsYWJlbAoJCQkJCQkJCQkJY2xhc3M9JHt0dCh7W1hlKCJ0b29sLWl0ZW0iKV06ITAsW1hlKCJ0b29sLWl0ZW0tY29sb3IiKV06ITB9KX0KCQkJCQkJCQkJCXN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiCgkJCQkJCQkJCT4KCQkJCQkJCQkJCSR7bCgpfQoJCQkJCQkJCQkJPGlucHV0IGlkPSJjb2xvcmlzIiAke1F0KHRoaXMuaGFuZGxlSW5pdENvbG9yUGlja2VyLmJpbmQodGhpcykpfSAudmFsdWU9JHt0aGlzLmN1cnJlbnRUZXh0Q29sb3J9IC8+CgkJCQkJCQkJCTwvbGFiZWw+YDpPYDxidXR0b24KCQkJCQkJCQkJY2xhc3M9JHt0dCh7W1hlKCJ0b29sLWl0ZW0iKV06ITAsW1hlKCJ0b29sLWl0ZW0tYWN0aXZlIildOmkoKSwidG9vbHRpcC10cmlnZ2VyLWNzcyI6ITB9KX0KCQkJCQkJCQkJQGNsaWNrPSR7dGhpcy5oYW5kbGVRdWlja0FjdGlvbkNsaWNrLmJpbmQodGhpcyxlKX0KCQkJCQkJCQkJZGF0YS10b29sdGlwPSR7bn0KCQkJCQkJCQk+CgkJCQkJCQkJCSR7bCgpfQoJCQkJCQkJCTwvYnV0dG9uPmB9KX0KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSR7WGUoInRleHRhcmVhLWJveCIpfT4KCQkJCQkJPGxpdC10ZXh0YXJlYQoJCQkJCQkJYXV0by1yZXNpemUKCQkJCQkJCWF1dG9mb2N1cwoJCQkJCQkJY2xhc3M9JHtYZSgidGV4dGFyZWEiKX0KCQkJCQkJCXZhbHVlPSR7dGhpcy50ZXh0Q29udGVudH0KCQkJCQkJCUBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXQuYmluZCh0aGlzKX0KCQkJCQkJPjwvbGl0LXRleHRhcmVhPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvbGl0LXBvcHVwPgoJCWB9c2hvdyhlLG4pe3RoaXMudHJpZ2dlckVsPWUsdGhpcy50ZXh0Q29udGVudD1lLnRleHRDb250ZW50Pz8iIix0aGlzLmN1cnJlbnRUZXh0Q29sb3I9Z2V0Q29tcHV0ZWRTdHlsZShlKS5jb2xvcix0aGlzLnJlbmRlcigpLHRoaXMucGFuZWxFbCYmKHRoaXMucGFuZWxFbC5zZXRBbmNob3IodGhpcy50cmlnZ2VyRWwpLHRoaXMucGFuZWxFbC5vcGVuKG4pKSx0aGlzLnRyaWdnZXJFbC5jbGFzc0xpc3QuYWRkKFEudGV4dE5vZGVBY3RpdmUpLHRoaXMuZG9tRWRpdG9yPW5ldyB2ZShlLHRoaXMuc2UpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlQ2xvc2VXaGVuRXNjYXBlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb2xvcmlzOnBpY2siLHRoaXMuaGFuZGxlQ29sb3JDaGFuZ2UpfWRlc3Ryb3koKXt2YXIgZTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUNsb3NlV2hlbkVzY2FwZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29sb3JpczpwaWNrIix0aGlzLmhhbmRsZUNvbG9yQ2hhbmdlKSwoZT10aGlzLnRyaWdnZXJFbCk9PW51bGx8fGUuY2xhc3NMaXN0LnJlbW92ZShRLnRleHROb2RlQWN0aXZlKSxzdXBlci5kZXN0cm95KCl9aGFuZGxlUXVpY2tBY3Rpb25DbGljayhlKXt0aGlzLmRvbUVkaXRvci5oYW5kbGVRdWlja0FjdGlvbkNsaWNrKGUpO2NvbnN0IG49dGhpcy5zZS5jcmVhdGVQYXRjaCh0aGlzLnRyaWdnZXJFbCk7dGhpcy5zZS5kZWJvdW5jZWRBZGRQYXRjaGVkKG4pLGU9PT13ZS5ERUxFVEUmJnRoaXMuZGVzdHJveSgpLHRoaXMucmVuZGVyKCl9aGFuZGxlSW5wdXQoZSl7Y29uc3Qgbj1lLnRhcmdldDtpZihuIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCl7dGhpcy50ZXh0Q29udGVudD1uLnZhbHVlLHRoaXMucmVuZGVyKCksdGhpcy5kb21FZGl0b3IudXBkYXRlVGV4dENvbnRlbnQodGhpcy50ZXh0Q29udGVudCk7Y29uc3QgbD10aGlzLnNlLmNyZWF0ZVBhdGNoKHRoaXMudHJpZ2dlckVsKTt0aGlzLnNlLmRlYm91bmNlZEFkZFBhdGNoZWQobCl9fWhhbmRsZVNldFJvb3RSZWYoZSl7ZSBpbnN0YW5jZW9mIFFpJiYodGhpcy5wYW5lbEVsPWUpfWhhbmRsZUluaXRDb2xvclBpY2tlcihlKXtlIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCYmKEF0LmluaXQoKSxBdC5jb2xvcmlzKHtlbDplLGFscGhhOiEwLHN3YXRjaGVzOlsiI0ZGRiIsIiMwMDAwMDAiLCIjRkYwMDAxIiwiI0ZGNTEwMCIsIiNGRkM3MDAiLCIjMDBCMzM2IiwiIzAwQ0JGRiIsIiM2NUJBRkYiLCIjQjQwMEQ4IiwiIzg2QTNBQiIsIiM0RjU1NTkiXX0pKX19ZnVuY3Rpb24gTSh0KXtyZXR1cm5gZm9vdGVyLXRvb2xiYXItJHt0fWB9Y2xhc3MgcjEgZXh0ZW5kcyBCbHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCExKSx0aGlzLmNvbnRhaW5lcj1lLHRoaXMuaGFzUHJpdmlsZWdlPSExLHRoaXMuaXNSZXN0b3Jpbmc9ITEsdGhpcy5pc1Nob3dIaXN0b3J5QnRuPSExLHRoaXMuaXNQb3BvdmVyVmlzaWJsZT0hMSx0aGlzLmluaXQoKX1nZXQgdGVtcGxhdGUoKXtpZighdGhpcy5oYXNQcml2aWxlZ2UpcmV0dXJuIE9gPGZvb3Rlci13YXRlcm1hcms+PC9mb290ZXItd2F0ZXJtYXJrPmA7Y29uc3QgZT0oKT0+e2lmKHFlLnZpZXdUeXBlPT09Imhpc3RvcnkiKXtjb25zdCBuPU9gPGxpdC1kaWFsb2cgJHtRdChsPT50aGlzLmhhbmRsZVNldERpYWxvZ1JlZihsKSl9IHRpdGxlPSJSZXN0b3JlIHRvIHRoaXMgdmVyc2lvbj8iPgoJCQkJCTxwPlRoaXMgd2lsbCBvdmVyd3JpdGUgZXhpc3RpbmcgY29udGVudCBhbmQgYWZmZWN0IHRoZSBjdXJyZW50IHRhc2suPC9wPgoJCQkJCTxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ke00oImRpYWxvZy1mb290ZXIiKX0+CgkJCQkJCTxidXR0b24gY2xhc3M9JHtNKCJkaWFsb2ctYnV0dG9uIil9IEBjbGljaz0keygpPT57dmFyIGw7cmV0dXJuKGw9dGhpcy5kaWFsb2dSZWYpPT1udWxsP3ZvaWQgMDpsLmNsb3NlKCl9fT5DYW5jZWw8L2J1dHRvbj4KCQkJCQkJPGJ1dHRvbgoJCQkJCQkJY2xhc3M9JHt0dCh7W00oImRpYWxvZy1idXR0b24iKV06ITAsW00oImRpYWxvZy1idXR0b24tZGFuZ2VyIildOiEwfSl9CgkJCQkJCQk/ZGlzYWJsZWQ9JHt0aGlzLmlzUmVzdG9yaW5nfQoJCQkJCQkJQGNsaWNrPSR7dGhpcy5oYW5kbGVSZXN0b3JlQ29uZmlybS5iaW5kKHRoaXMpfQoJCQkJCQk+CgkJCQkJCQkke3RoaXMuaXNSZXN0b3Jpbmc/dnUoKToiIn0gUmVzdG9yZQoJCQkJCQk8L2J1dHRvbj4KCQkJCQk8L2Rpdj4KCQkJCTwvbGl0LWRpYWxvZz5gO3JldHVybiBPYDxzdHlsZT4KCQkJCQkJLiR7TSgicmVzdG9yZS1jb250YWluZXIiKX0gewoJCQkJCQkJZGlzcGxheTogZmxleDsKCQkJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJCQlnYXA6IDZweDsKCQkJCQkJfQoKCQkJCQkJLiR7TSgicmVzdG9yZS1jYW5jZWwtYnRuIil9IHsKCQkJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJCQloZWlnaHQ6IDMycHg7CgkJCQkJCQltaW4td2lkdGg6IDY0cHg7CgkJCQkJCQltaW4taGVpZ2h0OiAzMnB4OwoJCQkJCQkJcGFkZGluZzogMCA4cHg7CgkJCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCQkJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJCQlnYXA6IDRweDsKCQkJCQkJCWJvcmRlci1yYWRpdXM6IDEwMHB4OwoJCQkJCQkJYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWRhcmspOwoJCQkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQkJCQlmb250LXNpemU6IDEzcHg7CgkJCQkJCQlmb250LXdlaWdodDogNTAwOwoJCQkJCQkJbGluZS1oZWlnaHQ6IDE4cHg7CgkJCQkJCQlsZXR0ZXItc3BhY2luZzogLTAuMDkxcHg7CgkJCQkJCX0KCgkJCQkJCS4ke00oInJlc3RvcmUtY29uZmlybS1idG4iKX0gewoJCQkJCQkJZGlzcGxheTogZmxleDsKCQkJCQkJCW1pbi13aWR0aDogNjRweDsKCQkJCQkJCW1pbi1oZWlnaHQ6IDMycHg7CgkJCQkJCQlwYWRkaW5nOiA2cHggOHB4OwoJCQkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQkJYWxpZ24tY29udGVudDogY2VudGVyOwoJCQkJCQkJZ2FwOiA0cHggNHB4OwoJCQkJCQkJZmxleC13cmFwOiB3cmFwOwoJCQkJCQkJYm9yZGVyLXJhZGl1czogMTAwcHg7CgkJCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1CdXR0b24tcHJpbWFyeS1icmFuZCk7CgkJCQkJCQljb2xvcjogdmFyKC0tdGV4dC13aGl0ZSk7CgkJCQkJCQlmb250LXNpemU6IDEzcHg7CgkJCQkJCQlmb250LXdlaWdodDogNTAwOwoJCQkJCQkJbGluZS1oZWlnaHQ6IDE4cHg7CgkJCQkJCQlsZXR0ZXItc3BhY2luZzogLTAuMDkxcHg7CgkJCQkJCQlib3JkZXItcmFkaXVzOiA5OTlweDsKCQkJCQkJCWJhY2tncm91bmQ6IHZhcigtLUJ1dHRvbi1wcmltYXJ5LWJyYW5kKTsKCQkJCQkJCWNvbG9yOiB2YXIoLS10ZXh0LXdoaXRlKTsKCQkJCQkJCWZvbnQtc2l6ZTogMTNweDsKCQkJCQkJCWZvbnQtd2VpZ2h0OiA1MDA7CgkJCQkJCQlsaW5lLWhlaWdodDogMThweDsKCQkJCQkJCWxldHRlci1zcGFjaW5nOiAtMC4wOTFweDsKCQkJCQkJfQoKCQkJCQkJLiR7TSgicmVzdG9yZS1jYW5jZWwtYnRuIil9OmhvdmVyIHsKCQkJCQkJCW9wYWNpdHk6IDAuODU7CgkJCQkJCX0KCgkJCQkJCS4ke00oInJlc3RvcmUtY29uZmlybS1idG4iKX06aG92ZXIgewoJCQkJCQkJb3BhY2l0eTogMC44NTsKCQkJCQkJfQoJCQkJCTwvc3R5bGU+CgkJCQkJPGRpdiBjbGFzcz0ke00oInJlc3RvcmUtY29udGFpbmVyIil9PgoJCQkJCQk8YnV0dG9uIGNsYXNzPSR7TSgicmVzdG9yZS1jYW5jZWwtYnRuIil9IEBjbGljaz0ke3RoaXMuaGFuZGxlRXhpdE9yaWdpblZlcnNpb24uYmluZCh0aGlzKX0+Q2FuY2VsPC9idXR0b24+CgkJCQkJCTxidXR0b24gY2xhc3M9JHtNKCJyZXN0b3JlLWNvbmZpcm0tYnRuIil9IEBjbGljaz0keygpPT57dmFyIGw7cmV0dXJuKGw9dGhpcy5kaWFsb2dSZWYpPT1udWxsP3ZvaWQgMDpsLnNob3coKX19PmNvbmZpcm08L2J1dHRvbj4KCQkJCQk8L2Rpdj4KCQkJCQkke259YH1yZXR1cm4gT2A8c3R5bGU+CgkJCQkJLiR7TSgiYnRuLWNvbnRhaW5lciIpfSB7CgkJCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKCQkJCQkJZGlzcGxheTogZmxleDsKCQkJCQkJYm9yZGVyLXJhZGl1czogOTlweDsKCQkJCQkJYm94LXNoYWRvdzogMCA0cHggMTFweCAwIHZhcigtLXNoYWRvdy1TKTsKCQkJCQkJYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpOwoJCQkJCQlib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1tYWluKTsKCQkJCQl9CgoJCQkJCS4ke00oImJ0biIpfSB7CgkJCQkJCWRpc3BsYXk6IGlubGluZS1mbGV4OwoJCQkJCQloZWlnaHQ6IDMycHg7CgkJCQkJCXBhZGRpbmc6IDAgMTBweCAwIDEycHg7CgkJCQkJCWp1c3RpZnktY29udGVudDogY2VudGVyOwoJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQlnYXA6IDRweDsKCQkJCQkJZmxleC1zaHJpbms6IDA7CgkJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQkJYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1tZW51LXdoaXRlKTsKCQkJCQkJYm9yZGVyLXJhZGl1czogOTlweCAwIDAgOTlweDsKCQkJCQkJYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpOwoJCQkJCQljb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKCQkJCQkJZm9udC1zaXplOiAxM3B4OwoJCQkJCQlmb250LXdlaWdodDogNTAwOwoJCQkJCQlsaW5lLWhlaWdodDogMThweDsKCQkJCQkJbGV0dGVyLXNwYWNpbmc6IC0wLjA5MXB4OwoJCQkJCX0KCgkJCQkJLiR7TSgiYnRuIil9OmhvdmVyIHsKCQkJCQkJYmFja2dyb3VuZDogdmFyKC0tZmlsbC10c3Atd2hpdGUtbGlnaHQpOwoJCQkJCX0KCgkJCQkJLiR7TSgiYnRuLWJsdWUiKX0gewoJCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1CdXR0b24tcHJpbWFyeS1icmFuZCk7CgkJCQkJCWNvbG9yOiB2YXIoLS10ZXh0LXdoaXRlKTsKCQkJCQl9CgoJCQkJCS4ke00oImJ0bi1ibHVlIil9OmhvdmVyIHsKCQkJCQkJYmFja2dyb3VuZDogdmFyKC0tQnV0dG9uLXByaW1hcnktYnJhbmQpOwoJCQkJCQlvcGFjaXR5OiAwLjg1OwoJCQkJCX0KCgkJCQkJLiR7TSgibm8taGlzdG9yeS1idG4iKX0gewoJCQkJCQlib3JkZXItcmFkaXVzOiA5OXB4OwoJCQkJCX0KCgkJCQkJLiR7TSgiYnRuLWNvbnRhaW5lci1yaWdodCIpfSB7CgkJCQkJCXBhZGRpbmc6IDAgOHB4IDAgNnB4OwoJCQkJCQlib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1tYWluKTsKCQkJCQkJZGlzcGxheTogZmxleDsKCQkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQkJCWJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtbWVudS13aGl0ZSk7CgkJCQkJCWJvcmRlci1yYWRpdXM6IDAgOTlweCA5OXB4IDA7CgkJCQkJfQoKCQkJCQkuJHtNKCJidG4tY29udGFpbmVyLXJpZ2h0Iil9OmhvdmVyIHsKCQkJCQkJYmFja2dyb3VuZDogdmFyKC0tZmlsbC10c3Atd2hpdGUtbGlnaHQpOwoJCQkJCX0KCgkJCQkJLiR7TSgiYnRuLWNvbnRhaW5lci1yaWdodC1ibHVlIil9IHsKCQkJCQkJY29sb3I6IHZhcigtLXRleHQtd2hpdGUpOwoJCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1CdXR0b24tcHJpbWFyeS1icmFuZCk7CgkJCQkJCWJvcmRlci1yYWRpdXM6IDAgOTlweCA5OXB4IDA7CgkJCQkJCWJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ib3JkZXItd2hpdGUpOwoJCQkJCX0KCgkJCQkJLiR7TSgiYnRuLWNvbnRhaW5lci1yaWdodC1ibHVlIil9OmhvdmVyIHsKCQkJCQkJYmFja2dyb3VuZDogdmFyKC0tQnV0dG9uLXByaW1hcnktYnJhbmQpOwoJCQkJCQlvcGFjaXR5OiAwLjg1OwoJCQkJCX0KCgkJCQkJLiR7TSgicG9wb3ZlciIpfSB7CgkJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQkJYm90dG9tOiBjYWxjKDEwMCUgKyAzcHgpOwoJCQkJCQlyaWdodDogMDsKCQkJCQkJei1pbmRleDogMTAwMDsKCQkJCQkJYm9yZGVyLXJhZGl1czogMTJweDsKCQkJCQkJYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItZGFyayk7CgkJCQkJCWJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtbWVudS13aGl0ZSk7CgkJCQkJCWJveC1zaGFkb3c6IDAgNHB4IDExcHggMCB2YXIoLS1zaGFkb3ctUyk7CgkJCQkJCWJhY2tkcm9wLWZpbHRlcjogYmx1cig0MHB4KTsKCQkJCQkJd2lkdGg6IG1heC1jb250ZW50OwoJCQkJCQlwYWRkaW5nOiA4cHg7CgkJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJCWhlaWdodDogMzZweDsKCQkJCQkJbWluLXdpZHRoOiA5NHB4OwoJCQkJCQltaW4taGVpZ2h0OiAzNnB4OwoJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQlnYXA6IDhweDsKCQkJCQkJY3Vyc29yOiBwb2ludGVyOwoJCQkJCQljb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwoJCQkJCQlmb250LXNpemU6IDE0cHg7CgkJCQkJCWxpbmUtaGVpZ2h0OiAyMnB4OwoJCQkJCQlsZXR0ZXItc3BhY2luZzogLTAuMTU0cHg7CgkJCQkJCWJvcmRlci1yYWRpdXM6IDEycHg7CgkJCQkJCXVzZXItc2VsZWN0OiBub25lOwoJCQkJCX0KCgkJCQkJLiR7TSgicG9wb3ZlciIpfTpob3ZlciB7CgkJCQkJCWJhY2tncm91bmQ6IHZhcigtLWZpbGwtdHNwLXdoaXRlLW1haW4pOwoJCQkJCX0KCQkJCTwvc3R5bGU+CgkJCQk8ZGl2IGNsYXNzPSR7TSgiYnRuLWNvbnRhaW5lciIpfT4KCQkJCQk8YnV0dG9uCgkJCQkJCWNsYXNzPSR7dHQoe1tNKCJidG4iKV06ITAsW00oImJ0bi1ibHVlIildOnFlLnZpZXdUeXBlPT09ImVkaXQiLFtNKCJuby1oaXN0b3J5LWJ0biIpXTohdGhpcy5pc1Nob3dIaXN0b3J5QnRufSl9CgkJCQkJCUBjbGljaz0iJHt0aGlzLmhhbmRsZVRvZ2dsZUVkaXRNb2RlLmJpbmQodGhpcyl9IgoJCQkJCT4KCQkJCQkJJHtxZS52aWV3VHlwZT09PSJkZWZhdWx0Ij9PYCR7X3B9IFR3ZWFrYDpPYCR7cXB9IEZpbmlzaGB9CgkJCQkJPC9idXR0b24+CgkJCQkJJHt0aGlzLmlzU2hvd0hpc3RvcnlCdG4/T2A8ZGl2CgkJCQkJCQkJY2xhc3M9JHt0dCh7W00oImJ0bi1jb250YWluZXItcmlnaHQiKV06ITAsW00oImJ0bi1jb250YWluZXItcmlnaHQtYmx1ZSIpXTpxZS52aWV3VHlwZT09PSJlZGl0In0pfQoJCQkJCQkJCUBjbGljaz0ke3RoaXMuaGFuZGxlVG9nZ2xlUG9wb3Zlci5iaW5kKHRoaXMpfQoJCQkJCQkgID4KCQkJCQkJCQkke2UxfQoJCQkJCQkgIDwvZGl2PmA6IiJ9CgkJCQk8L2Rpdj4KCQkJCSR7dGhpcy5pc1BvcG92ZXJWaXNpYmxlP09gCgkJCQkJCQk8ZGl2IGNsYXNzPSR7TSgicG9wb3ZlciIpfSBAY2xpY2s9JHt0aGlzLmhhbmRsZVZpZXdPcmlnaW5WZXJzaW9uLmJpbmQodGhpcyl9PgoJCQkJCQkJCSR7T3B9IFJlc3RvcmUgb3JpZ2luYWwgdmVyc2lvbgoJCQkJCQkJPC9kaXY+CgkJCQkJICBgOiIifSBgfTtyZXR1cm4gT2A8c3R5bGU+CgkJCQkuJHtNKCJjb250YWluZXIiKX0gewoJCQkJCXBvc2l0aW9uOiBmaXhlZDsKCQkJCQl6LWluZGV4OiA5OTk5OTk7CgkJCQkJcmlnaHQ6IDE2cHg7CgkJCQkJYm90dG9tOiAxNnB4OwoJCQkJfQoKCQkJCS4ke00oImRpYWxvZy1mb290ZXIiKX0gewoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKCQkJCQlnYXA6IDEycHg7CgkJCQl9CgoJCQkJLiR7TSgiZGlhbG9nLWJ1dHRvbiIpfSB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQloZWlnaHQ6IDM2cHg7CgkJCQkJbWluLXdpZHRoOiA2NHB4OwoJCQkJCW1pbi1oZWlnaHQ6IDM2cHg7CgkJCQkJcGFkZGluZzogOHB4IDEycHg7CgkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlnYXA6IDZweDsKCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQkJZm9udC1zaXplOiAxNHB4OwoJCQkJCWZvbnQtd2VpZ2h0OiA1MDA7CgkJCQkJbGluZS1oZWlnaHQ6IDIwcHg7CgkJCQkJbGV0dGVyLXNwYWNpbmc6IC0wLjE1NHB4OwoJCQkJCWJvcmRlci1yYWRpdXM6IDEwcHg7CgkJCQkJYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWJ0bi1tYWluKTsKCQkJCQliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCQkJCX0KCgkJCQkuJHtNKCJkaWFsb2ctYnV0dG9uIil9OmRpc2FibGVkIHsKCQkJCQlvcGFjaXR5OiAwLjU7CgkJCQkJY3Vyc29yOiBub3QtYWxsb3dlZDsKCQkJCX0KCgkJCQkuJHtNKCJkaWFsb2ctYnV0dG9uIil9OmhvdmVyIHsKCQkJCQlvcGFjaXR5OiAwLjg1OwoJCQkJfQoKCQkJCS4ke00oImRpYWxvZy1idXR0b24tZGFuZ2VyIil9IHsKCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1mdW5jdGlvbi1lcnJvcik7CgkJCQkJY29sb3I6IHZhcigtLXRleHQtd2hpdGUpOwoJCQkJCWJvcmRlcjogbm9uZTsKCQkJCX0KCQkJPC9zdHlsZT4KCQkJPGRpdgoJCQkJY2xhc3M9JHt0dCh7W00oImNvbnRhaW5lciIpXTohMCxbUS5mb290ZXJUb29sYmFyVmlld106ITAsW00oImNvbnRhaW5lci1uby1wcml2aWxlZ2UiKV06IXRoaXMuaGFzUHJpdmlsZWdlfSl9CgkJCT4KCQkJCSR7ZSgpfQoJCQk8L2Rpdj5gfWhhbmRsZVJlc3RvcmUoKXt2YXIgZTsoZT10aGlzLmRpYWxvZ1JlZik9PW51bGx8fGUuc2hvdygpfWFzeW5jIGhhbmRsZVJlc3RvcmVDb25maXJtKCl7dmFyIGUsbixsO2lmKCF0aGlzLmlzUmVzdG9yaW5nKXRyeXt0aGlzLmlzUmVzdG9yaW5nPSEwLHRoaXMucmVuZGVyKCksYXdhaXQgeWwuU3BhY2VTZXJ2aWNlLnJlc3RvcmVPcmlnaW5hbFNpdGUoe3NwYWNlVWlkOlNlLnNwYWNlSWR9KSwoZT10aGlzLnNlKT09bnVsbHx8ZS5yZXN0b3JlVG9PcmlnaW5hbCgpLChuPXRoaXMuZGlhbG9nUmVmKT09bnVsbHx8bi5jbG9zZSgpLHFlLnNldFZpZXdUeXBlKHFlLnByZXZWaWV3VHlwZSkscWUudmlld1R5cGUhPT0iZWRpdCImJigobD10aGlzLnNlKT09bnVsbHx8bC50b2dnbGVUb1ByZXZpZXdNb2RlKCkpfWNhdGNoe31maW5hbGx5e3RoaXMuaXNSZXN0b3Jpbmc9ITEsdGhpcy5yZW5kZXIoKX19YXN5bmMgaW5pdCgpe2NvbnN0IGU9bmV3IGtwO3RoaXMuc2U9ZTtjb25zdCBuPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO2xldCBsPSJkZWZhdWx0IjtuLnNlYXJjaFBhcmFtcy5nZXQoImVkaXQiKT09PSIxIj9sPSJlZGl0IjpuLnNlYXJjaFBhcmFtcy5nZXQoImhpc3RvcnkiKT09PSIxIiYmKGw9Imhpc3RvcnkiKSx0aGlzLnVwZGF0ZUlzU2hvd0hpc3RvcnlCdG4oKTtjb25zdCBpPWFzeW5jKCk9Pm5ldyBQcm9taXNlKG89PntsPT09Imhpc3RvcnkiPyhlLmluaXRXaXRob3V0QXBwbHlQYXRjaGVzKCksVmkoWyJoaXN0b3J5Il0pLHRoaXMuaXNTaG93SGlzdG9yeUJ0biYmcWUuc2V0Vmlld1R5cGUoImhpc3RvcnkiKSxvKCEwKSk6RnUoKSYmU2UucGF0Y2hMaXN0Lmxlbmd0aD4wPyhkb2N1bWVudC5ib2R5LnN0eWxlLm9wYWNpdHk9IjAiLFl1KCkudGhlbigoKT0+e2UuaW5pdCgpLGRvY3VtZW50LmJvZHkuc3R5bGUub3BhY2l0eT0iMSIsbyghMCl9KSk6KGUuaW5pdCgpLG8oITApKX0pO2xldCByPSExO1NlLnBhdGNoTGlzdC5sZW5ndGg+MCYmKGF3YWl0IGkoKSxyPSEwKTt0cnl7bD09PSJlZGl0IiYmKHRoaXMuaGFzUHJpdmlsZWdlPSEwLGUudG9nZ2xlRWRpdE1vZGUoKSxxZS5zZXRWaWV3VHlwZSgiZWRpdCIpLHRoaXMucmVuZGVyKCkpLFZpKFsiZWRpdCJdKX1jYXRjaHt9aWYoYXdhaXQgSHQud2FpdFJlYWR5KCksdGhpcy5oYXNQcml2aWxlZ2U9YXdhaXQgTnAsdGhpcy5yZW5kZXIoKSx0aGlzLmhhc1ByaXZpbGVnZSl7cnx8YXdhaXQgaSgpLGw9PT0iZWRpdCI/aWwuc2hvd1RvYXN0KHt0aXRsZToiWW91J3JlIG5vdyBlZGl0aW5nIC0gYWxsIGNoYW5nZXMgYXV0by1zYXZlIix2YXJpYW50OiJzdWNjZXNzIn0pOmw9PT0iaGlzdG9yeSImJmlsLnNob3dUb2FzdCh7dGl0bGU6IlN3aXRjaGVkIHRvIG9yaWdpbmFsIHZlcnNpb24iLHZhcmlhbnQ6InN1Y2Nlc3MifSksUm4ubGlzdGVuQnkodGhpcywib25WaWV3VHlwZUNoYW5nZSIsKCk9Pnt0aGlzLnJlbmRlcigpfSksUm4ubGlzdGVuQnkodGhpcywicGF0Y2hMaXN0Q2hhbmdlIiwoKT0+e3RoaXMudXBkYXRlSXNTaG93SGlzdG9yeUJ0bigpLHRoaXMucmVuZGVyKCl9KTtjb25zdCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NMaXN0LmFkZChRLnRleHRFZGl0b3JQYW5lbFZpZXcpO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc0xpc3QuYWRkKFEuZWxlbWVudEVkaXRvclBhbmVsVmlldyksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoYSksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQobyk7Y29uc3QgYz1uZXcgaTEobyxlKSxkPW5ldyBsMShhLGUpO2UucmVnaXN0ZXJWaWV3cyh7dGV4dEVkaXRQYW5lbFZpZXc6YyxlbGVtZW50RWRpdFBhbmVsVmlldzpkfSl9ZWxzZSBlLnRvZ2dsZVRvUHJldmlld01vZGUoKSxxZS5zZXRWaWV3VHlwZSgiZGVmYXVsdCIpfWRlc3Ryb3koKXt2YXIgZTt0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCksKGU9dGhpcy5zZSk9PW51bGx8fGUuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1oYW5kbGVWaWV3T3JpZ2luVmVyc2lvbigpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7ZS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJoaXN0b3J5IiwiMSIpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWUudG9TdHJpbmcoKX1oYW5kbGVFeGl0T3JpZ2luVmVyc2lvbigpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7ZS5zZWFyY2hQYXJhbXMuZGVsZXRlKCJoaXN0b3J5Iiksd2luZG93LmxvY2F0aW9uLmhyZWY9ZS50b1N0cmluZygpfWhhbmRsZVRvZ2dsZUVkaXRNb2RlKCl7dGhpcy5zZSYmKHFlLnZpZXdUeXBlPT09ImRlZmF1bHQiPyhxZS5zZXRWaWV3VHlwZSgiZWRpdCIpLHRoaXMuc2UudG9nZ2xlRWRpdE1vZGUoKSxpbC5zaG93VG9hc3Qoe3RpdGxlOiJZb3UncmUgbm93IGVkaXRpbmcgLSBhbGwgY2hhbmdlcyBhdXRvLXNhdmUiLHZhcmlhbnQ6InN1Y2Nlc3MifSksd3Qoe2V2ZW50TmFtZToiZWRpdF9jbGljayIsZXh0RGF0YTp7dHlwZToic3BhY2UifX0pKToocWUuc2V0Vmlld1R5cGUoImRlZmF1bHQiKSx0aGlzLnNlLnRvZ2dsZVRvUHJldmlld01vZGUoKSkpfWhhbmRsZVNldERpYWxvZ1JlZihlKXtlIGluc3RhbmNlb2YgV2wmJih0aGlzLmRpYWxvZ1JlZj1lKX11cGRhdGVJc1Nob3dIaXN0b3J5QnRuKCl7dGhpcy5pc1Nob3dIaXN0b3J5QnRuPShTZS5wYXRjaExpc3QubGVuZ3RoPz8wKT4wfWhhbmRsZVRvZ2dsZVBvcG92ZXIoKXt0aGlzLmlzUG9wb3ZlclZpc2libGU9IXRoaXMuaXNQb3BvdmVyVmlzaWJsZSx0aGlzLmlzUG9wb3ZlclZpc2libGU/dGhpcy5hZGRDbGlja091dHNpZGVMaXN0ZW5lcigpOnRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKSx0aGlzLnJlbmRlcigpfWFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCl7dGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpLHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlcj1lPT57ZS5jb21wb3NlZFBhdGgoKVswXS5jbG9zZXN0KGAuJHtNKCJjb250YWluZXIiKX1gKXx8KHRoaXMuaXNQb3BvdmVyVmlzaWJsZT0hMSx0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCksdGhpcy5yZW5kZXIoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIpfXJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCl7dGhpcy5jbGlja091dHNpZGVIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlciksdGhpcy5jbGlja091dHNpZGVIYW5kbGVyPXZvaWQgMCl9fWNvbnN0IFNsPSJjb250ZW50LXJvb3QiLG8xPWAjJHtTbH0gewogIC8qIFRleHQgQ29sb3JzICovCiAgLS10ZXh0LXByaW1hcnk6ICMzNDMyMmQ7CiAgLS10ZXh0LXNlY29uZGFyeTogIzUzNTM1MDsKICAtLXRleHQtdGVydGlhcnk6ICM4NTg0ODE7CiAgLS10ZXh0LWRpc2FibGU6ICNiOWI5Yjc7CiAgLS10ZXh0LWJyYW5kOiAjMDA4MWYyOwogIC0tdGV4dC1vbmJsYWNrOiAjZmZmZmZmOwogIC0tdGV4dC13aGl0ZTogI2ZmZmZmZjsKICAtLXRleHQtd2hpdGUtdHNwOiAjZmZmZmZmOTk7CiAgLS10aGVtZS10ZXh0LXByaW1hcnk6ICMyNjI2MjY7CiAgLS1sb2dvLWNvbG9yOiAjMzQzMjJkOwoKICAvKiBCYWNrZ3JvdW5kIENvbG9ycyAqLwogIC0tYmFja2dyb3VuZC1ncmF5LW1haW46ICNmOGY4Zjc7CiAgLS1iYWNrZ3JvdW5kLXdoaXRlLW1haW46ICNmZmZmZmY7CiAgLS1iYWNrZ3JvdW5kLW1lbnUtd2hpdGU6ICNmZmZmZmY7CiAgLS1iYWNrZ3JvdW5kLXRzcC1tZW51LXdoaXRlOiAjZmZmZmZmMTQ7CiAgLS1iYWNrZ3JvdW5kLXRzcC1jYXJkLWdyYXk6ICMzNzM1MmYwYTsKICAtLWJhY2tncm91bmQtbmF2OiAjZWJlYmViOwogIC0tYmFja2dyb3VuZC1jYXJkOiAjZmFmYWZhOwogIC0tYmFja2dyb3VuZC1tYXNrOiAjMDAwMDAwYTY7CiAgLS1iYWNrZ3JvdW5kLWNhcmQtZ3JheTogI2ZhZmFmYTsKICAtLWJhY2tncm91bmQtcHJldmlldy1tYXNrOiAjMDAwMDAwZDk7CgogIC8qIEJvcmRlciBDb2xvcnMgKi8KICAtLWJvcmRlci1tYWluOiAjMDAwMDAwMGY7CiAgLS1ib3JkZXItd2hpdGU6ICNmZmZmZmYzMzsKICAtLWJvcmRlci1idG4tbWFpbjogIzAwMDAwMDFmOwogIC0tYm9yZGVyLWlucHV0LWFjdGl2ZTogIzAwODFmMjgwOwogIC0tYm9yZGVyLWxpZ2h0OiAjMDAwMDAwMGE7CiAgLS1ib3JkZXItZGFyazogIzAwMDAwMDFmOwogIC0tYm9yZGVyLXByaW1hcnk6ICM0ZjU5NjYxZjsKCiAgLyogSWNvbiBDb2xvcnMgKi8KICAtLWljb24tcHJpbWFyeTogIzM0MzIyZDsKICAtLWljb24tc2Vjb25kYXJ5OiAjNTM1MzUwOwogIC0taWNvbi10ZXJ0aWFyeTogIzg1ODQ4MTsKICAtLWljb24tZGlzYWJsZTogI2I5YjliNzsKICAtLWljb24tYnJhbmQ6ICMwMDgxZjI7CiAgLS1pY29uLW9uYmxhY2s6ICNmZmZmZmY7CiAgLS1pY29uLXdoaXRlOiAjZmZmZmZmOwogIC0taWNvbi13aGl0ZS10c3A6ICNmZmZmZmY5OTsKCiAgLyogRnVuY3Rpb24gQ29sb3JzICovCiAgLS1mdW5jdGlvbi1lcnJvcjogI2YyNWE1YTsKICAtLWZ1bmN0aW9uLXN1Y2Nlc3M6ICMyNWJhM2I7CiAgLS1mdW5jdGlvbi13YXJuaW5nOiAjZWZhMjAxOwogIC0tZnVuY3Rpb24tZXJyb3ItdHNwOiAjZjI1YTVhMTQ7CiAgLS1mdW5jdGlvbi13YXJuaW5nLXRzcDogI2VmYTIwMTFmOwoKICAvKiBGaWxsIENvbG9ycyAqLwogIC0tZmlsbC1ibHVlOiAjMDA4MWYyMTQ7CiAgLS1maWxsLXRzcC13aGl0ZS1tYWluOiAjMzczNTJmMGY7CiAgLS1maWxsLXRzcC13aGl0ZS1kYXJrOiAjMzczNTJmMTQ7CiAgLS1maWxsLXRzcC13aGl0ZS1saWdodDogIzM3MzUyZjBhOwogIC0tZmlsbC10c3AtZ3JheS1kYXJrOiAjMzczNTJmMTQ7CiAgLS1maWxsLXRzcC1ncmF5LW1haW46ICMzNzM1MmYwYTsKICAtLWZpbGwtaW5wdXQtY2hhdDogI2ZmZmZmZjsKICAtLWZpbGwtd2hpdGU6ICNmZmZmZmY7CiAgLS1maWxsLWJsYWNrOiAjMjgyODI5NzM7CiAgLS1maWxsLWdyYXk6ICNmOGY4Zjc7CgogIC8qIEJ1dHRvbiBDb2xvcnMgKi8KICAtLUJ1dHRvbi1wcmltYXJ5LWJsYWNrOiAjMWExYTE5OwogIC0tQnV0dG9uLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7CiAgLS1CdXR0b24tcHJpbWFyeS1icmFuZDogIzAwODFmMjsKICAtLUJ1dHRvbi1wcmltYXJ5LWJyYW5kLWRpc2FibGVkOiAjN2NiZGY1OwogIC0tQnV0dG9uLXNlY29uZGFyeS1icmFuZDogIzAwODFmMjFhOwogIC0tQnV0dG9uLXNlY29uZGFyeS1lcnJvci1ib3JkZXI6ICNmMjVhNWE4MDsKICAtLUJ1dHRvbi1zZWNvbmRhcnktZXJyb3ItZmlsbDogI2ZmZmZmZjsKICAtLUJ1dHRvbi1zZWNvbmRhcnktbWFpbjogI2ZmZmZmZjsKICAtLUJ1dHRvbi1zZWNvbmRhcnktZ3JheTogIzM3MzUyZjBmOwoKICAvKiBUYWIgQ29sb3JzICovCiAgLS10YWItZmlsbDogcmdiYSgwLCAwLCAwLCAwLjA0KTsKICAtLXRhYi1hY3RpdmUtYmxhY2s6ICMxYTFhMTk7CgogIC8qIFNoYWRvdyBDb2xvcnMgKi8KICAtLXNoYWRvdy1MOiAjMDAwMDAwM2Q7CiAgLS1zaGFkb3ctTTogIzAwMDAwMDFmOwogIC0tc2hhZG93LVM6ICMwMDAwMDAxNDsKICAtLXNoYWRvdy1YUzogIzAwMDAwMDBmOwogIC0tc2hhZG93cy1pbm5lci0wOiAjZmZmZmZmMDA7CiAgLS1zaGFkb3dzLWlubmVyLTE6ICMxNjE5MWQxNDsKICAtLXNoYWRvd3MtaW5uZXItMjogIzE2MTkxZDFmOwogIC0tc2hhZG93cy1kcm9wLTE6ICMxNjE5MWQwODsKICAtLXNoYWRvd3MtZHJvcC0yOiAjMTYxOTFkMGE7CiAgLS1zaGFkb3dzLWRyb3AtMzogIzE2MTkxZDE0OwogIC0tc2hhZG93cy1kcm9wLTQ6ICMxNjE5MWQxZjsKICAtLXNoYWRvd3MtaGlnaGxpZ2h0LTE6ICNjY2U1ZmY7CiAgLS1zaGFkb3dzLWhpZ2hsaWdodC0yOiAjMTQ4N2ZhOwogIC0tc2hhZG93cy1kYW5nZXItMTogI2ZlZDdkNzsKICAtLXNoYWRvd3MtZGFuZ2VyLTI6ICNlZTNhM2E7CiAgLS1zaGFkb3dzLWNhcmQtYm9yZGVyOiAjMTYxOTFkMWY7CiAgLS1zaGFkb3dzLWNhcmQtYm9yZGVyLTI6ICMxNjE5MWQxZjsKCiAgLyogVG9vbHRpcHMgKi8KICAtLVRvb2x0aXBzLW1haW46ICMwMDAwMDBlNjsKCiAgLyogR3JhZHVhbCBDb2xvcnMgKi8KICAtLWdyYWR1YWwtd2hpdGUtMDogI2ZmZmZmZjAwOwogIC0tZ3JhZHVhbC1ncmF5LTEwMDogI2ZmZmZmZjAwOwogIC0tZ3JhZHVhbC1ncmF5LTA6ICNmZmZmZmYwMDsKICAtLWdyYWR1YWwtZGFyay0yMDogIzAwMDAwMDMzOwoKICAvKiogaW5wdXQgKi8KICAtLWZpbGwtaW5wdXQtY2hhdDogI2ZmZmZmZjsKCiAgLyoqIGdyYWRpZW50ICovCiAgLS1ncmFkaWVudC1iZy1tYXNrLWdyYXktMDogI2VhZWFlYjAwOwp9CgojJHtTbH0uZGFyayB7CiAgLyogVGV4dCBDb2xvcnMgKi8KICAtLXRleHQtcHJpbWFyeTogI2RhZGFkYTsKICAtLXRleHQtc2Vjb25kYXJ5OiAjYWNhY2FjOwogIC0tdGV4dC10ZXJ0aWFyeTogIzdmN2Y3ZjsKICAtLXRleHQtZGlzYWJsZTogIzVmNWY1ZjsKICAtLXRleHQtYnJhbmQ6ICMxYTkzZmU7CiAgLS10ZXh0LW9uYmxhY2s6ICMwMDAwMDBlNjsKICAtLXRleHQtd2hpdGU6ICNmZmZmZmY7CiAgLS10ZXh0LXdoaXRlLXRzcDogI2ZmZmZmZjk5OwogIC0tdGhlbWUtdGV4dC1wcmltYXJ5OiAjZGJkYmRiOwogIC0tbG9nby1jb2xvcjogI2RhZGFkYTsKICAvKiBCYWNrZ3JvdW5kIENvbG9ycyAqLwogIC0tYmFja2dyb3VuZC1ncmF5LW1haW46ICMyNzI3Mjg7CiAgLS1iYWNrZ3JvdW5kLXdoaXRlLW1haW46ICMxNjE2MTg7CiAgLS1iYWNrZ3JvdW5kLW1lbnUtd2hpdGU6ICMzODM3Mzk7CiAgLS1iYWNrZ3JvdW5kLXRzcC1tZW51LXdoaXRlOiAjZmZmZmZmMGY7CiAgLS1iYWNrZ3JvdW5kLXRzcC1jYXJkLWdyYXk6ICNmZmZmZmYwZjsKICAtLWJhY2tncm91bmQtbmF2OiAjMjEyMTIyOwogIC0tYmFja2dyb3VuZC1jYXJkOiAjMzgzNzM5OwogIC0tYmFja2dyb3VuZC1tYXNrOiAjMDAwMDAwYTY7CiAgLS1iYWNrZ3JvdW5kLWNhcmQtZ3JheTogIzM4MzczOTsKICAtLWJhY2tncm91bmQtcHJldmlldy1tYXNrOiAjMDAwMDAwZDk7CgogIC8qIEJvcmRlciBDb2xvcnMgKi8KICAtLWJvcmRlci1tYWluOiAjZmZmZmZmMTQ7CiAgLS1ib3JkZXItd2hpdGU6ICMwMDAwMDAxNDsKICAtLWJvcmRlci1idG4tbWFpbjogI2ZmZmZmZjFhOwogIC0tYm9yZGVyLWlucHV0LWFjdGl2ZTogIzFhOTNmZTgwOwogIC0tYm9yZGVyLWxpZ2h0OiAjZmZmZmZmMGY7CiAgLS1ib3JkZXItZGFyazogI2ZmZmZmZjI5OwogIC0tYm9yZGVyLXByaW1hcnk6ICM1NjU2NWY1MjsKCiAgLyogSWNvbiBDb2xvcnMgKi8KICAtLWljb24tcHJpbWFyeTogI2RhZGFkYTsKICAtLWljb24tc2Vjb25kYXJ5OiAjYWNhY2FjOwogIC0taWNvbi10ZXJ0aWFyeTogIzdmN2Y3ZjsKICAtLWljb24tZGlzYWJsZTogIzVmNWY1ZjsKICAtLWljb24tYnJhbmQ6ICMxYTkzZmU7CiAgLS1pY29uLW9uYmxhY2s6ICMwMDAwMDBkOTsKICAtLWljb24td2hpdGU6ICNmZmZmZmY7CiAgLS1pY29uLXdoaXRlLXRzcDogI2ZmZmZmZjk5OwoKICAvKiBGdW5jdGlvbiBDb2xvcnMgKi8KICAtLWZ1bmN0aW9uLWVycm9yOiAjZWI0ZDRkOwogIC0tZnVuY3Rpb24tc3VjY2VzczogIzVlYjkyZDsKICAtLWZ1bmN0aW9uLXdhcm5pbmc6ICNmZmJmMzY7CiAgLS1mdW5jdGlvbi1lcnJvci10c3A6ICNlYjRkNGQxNDsKICAtLWZ1bmN0aW9uLXdhcm5pbmctdHNwOiAjZmZiZjM2MWY7CgogIC8qIEZpbGwgQ29sb3JzICovCiAgLS1maWxsLWJsdWU6ICMxYTkzZmUxZjsKICAtLWZpbGwtdHNwLXdoaXRlLW1haW46ICNmZmZmZmYwZjsKICAtLWZpbGwtdHNwLXdoaXRlLWRhcms6ICNmZmZmZmYxZjsKICAtLWZpbGwtdHNwLXdoaXRlLWxpZ2h0OiAjZmZmZmZmMGE7CiAgLS1maWxsLXRzcC1ncmF5LWRhcms6ICMwMDAwMDA0NzsKICAtLWZpbGwtdHNwLWdyYXktbWFpbjogIzAwMDAwMDMzOwogIC0tZmlsbC1pbnB1dC1jaGF0OiAjMzYzNTM3OwogIC0tZmlsbC13aGl0ZTogIzNlM2QzZTsKICAtLWZpbGwtYmxhY2s6ICMyODI4Mjk3MzsKICAtLWZpbGwtZ3JheTogIzQ0NDM0NTsKCiAgLyogQnV0dG9uIENvbG9ycyAqLwogIC0tQnV0dG9uLXByaW1hcnktYmxhY2s6ICNmZmZmZmY7CiAgLS1CdXR0b24tcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjE0OwogIC0tQnV0dG9uLXByaW1hcnktYnJhbmQ6ICMxYTkzZmU7CiAgLS1CdXR0b24tcHJpbWFyeS1icmFuZC1kaXNhYmxlZDogIzIxNWQ5MzsKICAtLUJ1dHRvbi1zZWNvbmRhcnktYnJhbmQ6ICMxYTkzZmUxZjsKICAtLUJ1dHRvbi1zZWNvbmRhcnktZXJyb3ItYm9yZGVyOiAjZWI0ZDRkMjk7CiAgLS1CdXR0b24tc2Vjb25kYXJ5LWVycm9yLWZpbGw6ICNlYjRkNGQxZjsKICAtLUJ1dHRvbi1zZWNvbmRhcnktbWFpbjogI2ZmZmZmZjFmOwogIC0tQnV0dG9uLXNlY29uZGFyeS1ncmF5OiAjZmZmZmZmMGY7CgogIC8qIFRhYiBDb2xvcnMgKi8KICAtLXRhYi1maWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpOwogIC0tdGFiLWFjdGl2ZS1ibGFjazogI2ZmZmZmZjsKCiAgLyogU2hhZG93IENvbG9ycyAqLwogIC0tc2hhZG93LUw6ICMwMDAwMDA2NjsKICAtLXNoYWRvdy1NOiAjMDAwMDAwM2Q7CiAgLS1zaGFkb3ctUzogIzAwMDAwMDI5OwogIC0tc2hhZG93LVhTOiAjMDAwMDAwMWY7CiAgLS1zaGFkb3dzLWlubmVyLTA6ICNmZmZmZmYxZjsKICAtLXNoYWRvd3MtaW5uZXItMTogI2ZmZmZmZjE0OwogIC0tc2hhZG93cy1pbm5lci0yOiAjZmZmZmZmMWY7CiAgLS1zaGFkb3dzLWRyb3AtMTogIzAwMDAwMDFmOwogIC0tc2hhZG93cy1kcm9wLTI6ICMwMDAwMDAzMzsKICAtLXNoYWRvd3MtZHJvcC0zOiAjMDAwMDAwNDc7CiAgLS1zaGFkb3dzLWRyb3AtNDogIzAwMDAwMDVjOwogIC0tc2hhZG93cy1oaWdobGlnaHQtMTogIzFiNjFhNjsKICAtLXNoYWRvd3MtaGlnaGxpZ2h0LTI6ICMxNDg3ZmE7CiAgLS1zaGFkb3dzLWRhbmdlci0xOiAjOGYxOTE5OwogIC0tc2hhZG93cy1kYW5nZXItMjogI2VlM2EzYTsKICAtLXNoYWRvd3MtY2FyZC1ib3JkZXI6ICNmZmZmZmYxZjsKICAtLXNoYWRvd3MtY2FyZC1ib3JkZXItMjogI2ZmZmZmZjAwOwoKICAvKiBUb29sdGlwcyAqLwogIC0tVG9vbHRpcHMtbWFpbjogIzAwMDAwMGU2OwoKICAvKiBHcmFkdWFsIENvbG9ycyAqLwogIC0tZ3JhZHVhbC13aGl0ZS0wOiAjMjcyNzI4MDA7CiAgLS1ncmFkdWFsLWdyYXktMTAwOiAjNDQ0MzQ1OwogIC0tZ3JhZHVhbC1ncmF5LTA6ICM0NDQzNDUwMDsKICAtLWdyYWR1YWwtZGFyay0yMDogI2ZmZmZmZjMzOwoKICAvKiogaW5wdXQgKi8KICAtLWZpbGwtaW5wdXQtY2hhdDogIzM2MzUzNzsKCiAgLyoqIGdyYWRpZW50ICovCiAgLS1ncmFkaWVudC1iZy1tYXNrLWdyYXktMDogIzFFMUUxRTAwOwp9CmAsYTE9YC8qIENTUyBSZXNldCAqLwoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwp9CgpodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsCmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwKYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLApkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsCnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsCmIsIHUsIGksIGNlbnRlciwKZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwKZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsCnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLAphcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwKZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLAptZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwKdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgZm9udC1zaXplOiAxMDAlOwogIGZvbnQ6IGluaGVyaXQ7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwp9CgphcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLApmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24gewogIGRpc3BsYXk6IGJsb2NrOwp9CgpvbCwgdWwgewogIGxpc3Qtc3R5bGU6IG5vbmU7Cn0KCmJsb2NrcXVvdGUsIHEgewogIHF1b3Rlczogbm9uZTsKfQoKYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsCnE6YmVmb3JlLCBxOmFmdGVyIHsKICBjb250ZW50OiAnJzsKICBjb250ZW50OiBub25lOwp9Cgp0YWJsZSB7CiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICBib3JkZXItc3BhY2luZzogMDsKfQoKaW1nLCBwaWN0dXJlLCB2aWRlbywgY2FudmFzLCBzdmcgewogIGRpc3BsYXk6IGJsb2NrOwogIG1heC13aWR0aDogMTAwJTsKfQoKaW5wdXQsIGJ1dHRvbiwgdGV4dGFyZWEsIHNlbGVjdCB7CiAgZm9udDogaW5oZXJpdDsKfQoKcCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKfQoKYSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0Owp9CgpidXR0b24gewogIGJhY2tncm91bmQ6IG5vbmU7CiAgYm9yZGVyOiBub25lOwogIGN1cnNvcjogcG9pbnRlcjsKfQpgLGMxPWAKLnRvb2x0aXAtdHJpZ2dlci1jc3MgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAudG9vbHRpcC10cmlnZ2VyLWNzczo6YWZ0ZXIgewogICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7CgogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgbWF4LXdpZHRoOiAyODBweDsKICAgICAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTApOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwoKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtd2hpdGUpOwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLThweCk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICB3aWR0aDptYXgtY29udGVudDsKCiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuMnM7CiAgICAgICAgfQoKICAgICAgICAudG9vbHRpcC10cmlnZ2VyLWNzcy50b29sdGlwLXRyaWdnZXItcmlnaHQtY3NzOjphZnRlciB7CiAgICAgICAgICAgIGxlZnQ6IHVuc2V0OwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoLThweCk7CiAgICAgICAgfQoKICAgICAgICAudG9vbHRpcC10cmlnZ2VyLWNzcy50b29sdGlwLXRyaWdnZXItcmlnaHQtY3NzOmhvdmVyOjphZnRlciB7CiAgICAgICAgICAgIGxlZnQ6IHVuc2V0OwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoLThweCk7CiAgICAgICAgfQoKICAgICAgICAvKiDlvZPop6blj5HlhYPntKDooqsgaG92ZXIg5oiWIGZvY3VzIOaXtuaYvuekuiB0b29sdGlwICovCiAgICAgICAgLnRvb2x0aXAtdHJpZ2dlci1jc3M6aG92ZXI6OmFmdGVyLAogICAgICAgIC50b29sdGlwLXRyaWdnZXItY3NzOmZvY3VzOjphZnRlciB7CiAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMHB4KTsgLyog6L275b6u5ZCR5LiK56e75Yqo55qE5Yqo55S7ICovCiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwcywgMHM7IC8qIOehruS/neeri+WNs+aYvuekuu+8jOimhuebliB2aXNpYmlsaXR5IOeahOW7tui/nyAqLwogICAgICAgIH0KCiAgICAgICAgLyog56Gu5L+d6Z2e5Lqk5LqS5YWD57Sg5Y+v6IGa54Sm77yM5Lul5L6/IHRvb2x0aXAg5Y+v5Lul6YCa6L+H6ZSu55uY6Kem5Y+RICovCiAgICAgICAgLnRvb2x0aXAtdHJpZ2dlci1jc3M6bm90KGJ1dHRvbik6bm90KGlucHV0KTpub3QoYVtocmVmXSkgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOyAvKiDnp7vpmaTpu5jorqTova7lu5PvvIzlpoLmnpzpnIDopoHoh6rlrprkuYnnhKbngrnmoLflvI8gKi8KICAgICAgICB9CiAgICAgICAgLnRvb2x0aXAtdHJpZ2dlci1jc3M6Zm9jdXMgewogICAgICAgICAgICAvKiDoh6rlrprkuYnnhKbngrnmoLflvI8gKOWPr+mAiSkgKi8KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHNreWJsdWU7CiAgICAgICAgfWAsZDE9YAoke28xfQoKJHthMX0KCiR7YzF9CgoqIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgpwIHsKbWFyZ2luLWJsb2NrLXN0YXJ0OjA7Cm1hcmdpbi1ibG9jay1lbmQ6MDsKfQoKIyR7U2x9IHsKZm9udC1mYW1pbHk6ICdTRiBQcm8nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZgp9CmA7bGV0IGxsO2NsYXNzIHMxIGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pfWNvbm5lY3RlZENhbGxiYWNrKCl7Y29uc3QgZT10aGlzLnNoYWRvd1Jvb3Qsbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlkPVNsLGUuYXBwZW5kQ2hpbGQobik7Y29uc3QgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2wudGV4dENvbnRlbnQ9YCR7ZDF9IApgLG4uYXBwZW5kQ2hpbGQobCksbGw9bmV3IHIxKG4pLGlsLmluaXRSb290KG4pLHd0KHtldmVudE5hbWU6InNlc3Npb25fZmlsZV92aWV3IixleHREYXRhOnt0eXBlOiJzcGFjZSJ9fSksd3Qoe2V2ZW50TmFtZToibWFudXNfc3BhY2Vfc2hvdyJ9KX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe2xsPT1udWxsfHxsbC5kZXN0cm95KCl9fWZ1bmN0aW9uIEsodCl7cmV0dXJuYGZvb3Rlci13YXRlcm1hcmstJHt0fWB9Y2xhc3MgdTEgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5pc0Nsb3NlZD0hMSx0aGlzLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSx0aGlzLmlzQ2xvc2VkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHJpLmVtYmVkQ2xvc2VkKT09PSJ0cnVlIix0aGlzLnJlbmRlcigpfWdldCB0ZW1wbGF0ZSgpe3JldHVybiBJYygpP09gIDxzdHlsZT4KCQkJCQkuJHtLKCJyb290Iil9IHsKCQkJCQkJei1pbmRleDogOTk5OTk5OwoJCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCQlwYWRkaW5nOiA0cHggNHB4IDRweCAxMnB4OwoJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQlwb3NpdGlvbjogZml4ZWQ7CgkJCQkJCXJpZ2h0OiAxNnB4OwoJCQkJCQlib3R0b206IDE2cHg7CgkJCQkJCWJvcmRlci1yYWRpdXM6IDk5OXB4OwoJCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1CdXR0b24tcHJpbWFyeS1ibGFjayk7CgkJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJCWhlaWdodDogMjhweDsKCQkJCQkJcGFkZGluZzogNnB4IDhweDsKCQkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJCWdhcDogMnB4OwoJCQkJCQljb2xvcjogdmFyKC0tdGV4dC13aGl0ZSk7CgkJCQkJCWZvbnQtc2l6ZTogMTJweDsKCQkJCQkJbGluZS1oZWlnaHQ6IDE2cHg7CgkJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQkJdXNlci1zZWxlY3Q6IG5vbmU7CgkJCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCQkJfQoKCQkJCQkuJHtLKCJyb290LWNsb3NlZCIpfSB7CgkJCQkJCWRpc3BsYXk6IG5vbmU7CgkJCQkJfQoKCQkJCQkuJHtLKCJkaWFsb2ctZm9vdGVyIil9IHsKCQkJCQkJd2lkdGg6IDEwMCU7CgkJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJCWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwoJCQkJCQlnYXA6IDEycHg7CgkJCQkJCWFsaWduLXNlbGY6IHN0cmV0Y2g7CgkJCQkJfQoKCQkJCQkuJHtLKCJkaWFsb2ctYnV0dG9uIil9IHsKCQkJCQkJZGlzcGxheTogZmxleDsKCQkJCQkJd2lkdGg6IDExOXB4OwoJCQkJCQltaW4td2lkdGg6IDExNHB4OwoJCQkJCQltaW4taGVpZ2h0OiAzNnB4OwoJCQkJCQlwYWRkaW5nOiA2cHg7CgkJCQkJCWp1c3RpZnktY29udGVudDogY2VudGVyOwoJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQlnYXA6IDZweDsKCQkJCQkJYm9yZGVyLXJhZGl1czogMTJweDsKCQkJCQkJYmFja2dyb3VuZDogcmdiYSg1NSwgNTMsIDQ3LCAwLjA2KTsKCQkJCQkJY29sb3I6ICMzNDMyMmQ7CgkJCQkJCWZvbnQtc2l6ZTogMTVweDsKCQkJCQkJZm9udC1zdHlsZTogbm9ybWFsOwoJCQkJCQlmb250LXdlaWdodDogNjAwOwoJCQkJCQlib3JkZXI6IG5vbmU7CgkJCQkJfQoJCQkJCS4ke0soImRpYWxvZy1idXR0b24tcHJpbWFyeSIpfSB7CgkJCQkJCWJhY2tncm91bmQ6ICMxYTFhMTk7CgkJCQkJCWNvbG9yOiAjZmZmOwoJCQkJCQlmbGV4OiAxOwoJCQkJCX0KCgkJCQkJLiR7SygiZGlhbG9nLWNvbnRlbnQiKX0gewoJCQkJCQljb2xvcjogdmFyKC0tdGV4dC10ZXJ0aWFyeSk7CgkJCQkJCWZvbnQtc2l6ZTogMTZweDsKCQkJCQkJZm9udC1zdHlsZTogbm9ybWFsOwoJCQkJCQlmb250LXdlaWdodDogNDAwOwoJCQkJCQlsaW5lLWhlaWdodDogMjRweDsKCQkJCQkJbWFyZ2luOiAwOwoJCQkJCX0KCgkJCQkJLiR7SygiZGlhbG9nLWNvbnRlbnQiKX0gKyBwIHsKCQkJCQkJbWFyZ2luLXRvcDogMTJweDsKCQkJCQl9CgoJCQkJCS4ke0soImRpYWxvZy1jb250ZW50Iil9IGEgewoJCQkJCQljb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwoJCQkJCQl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCQkJCQl9CgoJCQkJCS4ke0soImRpYWxvZy1jaGVja2JveCIpfSB7CgkJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJCW1hcmdpbi10b3A6IDIwcHg7CgkJCQkJCS13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CgkJCQkJfQoKCQkJCQkuJHtLKCJkaWFsb2ctY2hlY2tib3gtbGFiZWwiKX0gewoJCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCQlhbGlnbi1pdGVtczogY2VudGVyOwoJCQkJCQlnYXA6IDhweDsKCQkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQkJCXRleHQtYWxpZ246IHJpZ2h0OwoJCQkJCQlmb250LXNpemU6IDEzcHg7CgkJCQkJCWxpbmUtaGVpZ2h0OiAxOHB4OwoJCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQkJCXVzZXItc2VsZWN0OiBub25lOwoJCQkJCX0KCgkJCQkJLiR7SygiZGlhbG9nLWNoZWNrYm94LWxhYmVsIil9IGlucHV0IHsKCQkJCQkJbWFyZ2luOiAwOwoJCQkJCQl3aWR0aDogMjBweDsKCQkJCQkJaGVpZ2h0OiAyMHB4OwoJCQkJCQlib3JkZXItY29sb3I6IHZhcigtLWljb24tdGVydGlhcnkpOwoJCQkJCX0KCQkJCTwvc3R5bGU+CgoJCQkJPGxpdC1kaWFsb2cgJHtRdChlPT50aGlzLmhhbmRsZVNldERpYWxvZ1JlZihlKSl9IHRpdGxlPSJNYWRlIHdpdGggTWFudXMiIHdpZHRoPSIzNThweCI+CgkJCQkJPHAgY2xhc3M9JHtLKCJkaWFsb2ctY29udGVudCIpfT4KCQkJCQkJQUktZ2VuZXJhdGVkIChwb3NzaWJseSB1c2VyLWVkaXRlZCkgY29udGVudCAtIHBsZWFzZSB2ZXJpZnkgY2FyZWZ1bGx5IGFuZCBzdWJtaXQgbm8gcGVyc29uYWwgaW5mb3JtYXRpb24uCgkJCQkJPC9wPgoJCQkJCTxwIGNsYXNzPSR7SygiZGlhbG9nLWNvbnRlbnQiKX0+CgkJCQkJCUlmIHlvdSBiZWxpZXZlIHRoaXMgY29udGVudCB2aW9sYXRlcyB5b3VyIHJpZ2h0cyBvciBhcHBsaWNhYmxlIGxhd3MsCgkJCQkJCTxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke1NlLmhvc3R9L3JlcG9ydD9yZXNvdXJjZVR5cGU9MyZzaGFyZVVybD0ke2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZil9IgoJCQkJCQkJPnlvdSBtYXkgc3VibWl0IGEgcmVwb3J0IGZvciByZXZpZXcuPC9hCgkJCQkJCT4KCQkJCQk8L3A+CgkJCQkJPGRpdiBjbGFzcz0ke0soImRpYWxvZy1jaGVja2JveCIpfT4KCQkJCQkJPGRpdiBjbGFzcz0ke0soImRpYWxvZy1jaGVja2JveC1sYWJlbCIpfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVUb2dnbGVDaGVja2JveCgpfT4KCQkJCQkJCTxsaXQtY2hlY2tib3ggP2NoZWNrZWQ9JHt0aGlzLmlzQ2xvc2VkfT48L2xpdC1jaGVja2JveD5SZW1vdmUgdGhpcyBiYWRnZSBmb3IgbWUKCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSR7SygiZGlhbG9nLWZvb3RlciIpfT4KCQkJCQkJPGJ1dHRvbiBjbGFzcz0ke0soImRpYWxvZy1idXR0b24iKX0gQGNsaWNrPSR7KCk9Pnt2YXIgZTtyZXR1cm4oZT10aGlzLmRpYWxvZ1JlZik9PW51bGw/dm9pZCAwOmUuY2xvc2UoKX19PkNhbmNlbDwvYnV0dG9uPgoJCQkJCQk8YnV0dG9uCgkJCQkJCQljbGFzcz0ke3R0KHtbSygiZGlhbG9nLWJ1dHRvbiIpXTohMCxbSygiZGlhbG9nLWJ1dHRvbi1wcmltYXJ5IildOiEwfSl9CgkJCQkJCQlAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDbGljaygpfQoJCQkJCQk+CgkJCQkJCQlDcmVhdGUgbXkgd2Vic2l0ZQoJCQkJCQk8L2J1dHRvbj4KCQkJCQk8L2Rpdj4KCQkJCTwvbGl0LWRpYWxvZz4KCgkJCQk8ZGl2CgkJCQkJY2xhc3M9JHt0dCh7W0soInJvb3QiKV06ITB9KX0KCQkJCQlAY2xpY2s9JHsoKT0+e3ZhciBlOyhlPXRoaXMuZGlhbG9nUmVmKT09bnVsbHx8ZS5zaG93KCksd3Qoe2V2ZW50TmFtZToibWFudXNfd2F0ZXJtYXJrX2NsaWNrIn0pfX0KCQkJCQlzdHlsZT0ke3RoaXMuaXNDbG9zZWQ/ImRpc3BsYXk6IG5vbmU7IjoiIn0KCQkJCT4KCQkJCQkke3ZsfSBNYWRlIHdpdGggTWFudXMKCQkJCTwvZGl2PmA6dGhpcy5pc0Nsb3NlZD9PYGA6T2A8c3R5bGU+CgkJCQkuJHtLKCJyb290Iil9IHsKCQkJCQl6LWluZGV4OiAxMDAwMDsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCXBhZGRpbmc6IDRweCA0cHggNHB4IDEycHg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlwb3NpdGlvbjogZml4ZWQ7CgkJCQkJcmlnaHQ6IDE2cHg7CgkJCQkJYm90dG9tOiAxNnB4OwoJCQkJCWJvcmRlci1yYWRpdXM6IDk5OXB4OwoJCQkJCWJhY2tncm91bmQ6IHZhcigtLUJ1dHRvbi1wcmltYXJ5LWJsYWNrKTsKCQkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJCWhlaWdodDogMjhweDsKCQkJCQlwYWRkaW5nOiA2cHggOHB4OwoJCQkJCWp1c3RpZnktY29udGVudDogY2VudGVyOwoJCQkJCWFsaWduLWl0ZW1zOiBjZW50ZXI7CgkJCQkJZ2FwOiAycHg7CgkJCQkJY29sb3I6IHZhcigtLXRleHQtd2hpdGUpOwoJCQkJCWZvbnQtc2l6ZTogMTJweDsKCQkJCQlsaW5lLWhlaWdodDogMTZweDsKCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQkJdXNlci1zZWxlY3Q6IG5vbmU7CgkJCQkJYm94LXNpemluZzogYm9yZGVyLWJveDsKCQkJCX0KCgkJCQkuJHtLKCJob3Zlci10ZXh0Iil9IHsKCQkJCQlkaXNwbGF5OiBub25lOwoJCQkJfQoKCQkJCS4ke0soInJvb3QiKX06aG92ZXIgc3BhbiB7CgkJCQkJZGlzcGxheTogbm9uZTsKCQkJCX0KCgkJCQkuJHtLKCJyb290Iil9OmhvdmVyIC4ke0soImhvdmVyLXRleHQiKX0gewoJCQkJCWRpc3BsYXk6IGJsb2NrOwoJCQkJfQoKCQkJCS4ke0soImhvdmVyLWljb24iKX0gewoJCQkJCWRpc3BsYXk6IG5vbmU7CgkJCQkJY3Vyc29yOiBwb2ludGVyOwoJCQkJCXVzZXItc2VsZWN0OiBub25lOwoJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQlyaWdodDogLTRweDsKCQkJCQl0b3A6IC00cHg7CgkJCQkJY29sb3I6IHZhcigtLWljb24tdGVydGlhcnkpOwoJCQkJfQoKCQkJCS4ke0soInJvb3QiKX06aG92ZXIgewoJCQkJCS8vIG9wYWNpdHk6IDAuODsKCQkJCX0KCgkJCQkuJHtLKCJyb290Iil9OmhvdmVyIC4ke0soImhvdmVyLWljb24iKX0gewoJCQkJCWRpc3BsYXk6IGJsb2NrOwoJCQkJfQoKCQkJCS4ke0soInRvb2x0aXAiKX0gewoJCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCQlib3R0b206IGNhbGMoMTAwJSArIDZweCk7CgkJCQkJcmlnaHQ6IDA7CgkJCQkJd2lkdGg6IDI4MHB4OwoJCQkJCWJhY2tncm91bmQ6ICNmZmZmZmY7CgkJCQkJYm9yZGVyLXJhZGl1czogMTJweDsKCQkJCQlib3gtc2hhZG93OiAwcHggOHB4IDMycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CgkJCQkJcGFkZGluZzogMTBweDsKCQkJCQlvcGFjaXR5OiAwOwoJCQkJCXZpc2liaWxpdHk6IGhpZGRlbjsKCQkJCQl0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdmlzaWJpbGl0eSAwLjJzIGVhc2U7CgkJCQkJei1pbmRleDogMTAwMDE7CgkJCQkJYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItcHJpbWFyeSk7CgkJCQkJY3Vyc29yOiBkZWZhdWx0OwoJCQkJfQoKCQkJCS4ke0soInJvb3QiKX06aG92ZXIgLiR7SygidG9vbHRpcCIpfSB7CgkJCQkJb3BhY2l0eTogMTsKCQkJCQl2aXNpYmlsaXR5OiB2aXNpYmxlOwoJCQkJfQoKCQkJCS4ke0soInRvb2x0aXAtdGV4dCIpfSB7CgkJCQkJZm9udC1zaXplOiAxMnB4OwoJCQkJCWxpbmUtaGVpZ2h0OiAxNnB4OwoJCQkJCWNvbG9yOiAjNWU1ZTViOwoJCQkJCW1hcmdpbjogMDsKCQkJCQlmb250LXdlaWdodDogNDAwOwoJCQkJfQoKCQkJCS4ke0soInRvb2x0aXAtbGluayIpfSB7CgkJCQkJY29sb3I6ICMzNDMyMmQ7CgkJCQkJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CgkJCQkJdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lOwoJCQkJCXRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7CgkJCQkJdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGZyb20tZm9udDsKCQkJCX0KCgkJCQkuJHtLKCJ0b29sdGlwLWJ1dHRvbiIpfSB7CgkJCQkJd2lkdGg6IDEwMCU7CgkJCQkJbWFyZ2luLXRvcDogOHB4OwoJCQkJCXBhZGRpbmc6IDhweCAxNnB4OwoJCQkJCWJhY2tncm91bmQ6ICMxYTFhMTk7CgkJCQkJY29sb3I6ICNmZmZmZmY7CgkJCQkJYm9yZGVyOiBub25lOwoJCQkJCWJvcmRlci1yYWRpdXM6IDhweDsKCQkJCQlmb250LXNpemU6IDEycHg7CgkJCQkJZm9udC13ZWlnaHQ6IDUwMDsKCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQkJdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7CgkJCQl9CgoJCQkJLiR7SygidG9vbHRpcC1idXR0b24iKX06aG92ZXIgewoJCQkJCWJhY2tncm91bmQ6ICMyYTJhMjk7CgkJCQl9CgkJCTwvc3R5bGU+CgkJCTxkaXYKCQkJCWNsYXNzPSR7dHQoe1tLKCJyb290IildOiEwfSl9CgkJCQlAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDbGljaygpfQoJCQk+CgkJCQkke3ZsfQoJCQkJPHNwYW4+TWFkZSB3aXRoIE1hbnVzPC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9JHtLKCJob3Zlci10ZXh0Iil9PkNyZWF0ZSBteSB3ZWJzaXRlPC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9JHtLKCJob3Zlci1pY29uIil9IEBjbGljaz0ke2U9PnRoaXMuaGFuZGxlQ2xvc2UoZSl9PiR7JHB9PC9zcGFuPgoKCQkJCTxkaXYgY2xhc3M9JHtLKCJ0b29sdGlwIil9IEBjbGljaz0ke2U9PmUuc3RvcFByb3BhZ2F0aW9uKCl9PgoJCQkJCTxwIGNsYXNzPSR7SygidG9vbHRpcC10ZXh0Iil9PgoJCQkJCQlBSS1nZW5lcmF0ZWQgKHBvc3NpYmx5IHVzZXItZWRpdGVkKSBjb250ZW50IC0gcGxlYXNlIHZlcmlmeSBjYXJlZnVsbHkgYW5kIHN1Ym1pdCBubyBwZXJzb25hbCBpbmZvcm1hdGlvbi4gSWYgeW91IGJlbGlldmUgdGhpcwoJCQkJCQljb250ZW50IHZpb2xhdGVzIHlvdXIgcmlnaHRzIG9yIGFwcGxpY2FibGUgbGF3cywKCQkJCQkJPGEKCQkJCQkJCWNsYXNzPSR7SygidG9vbHRpcC1saW5rIil9CgkJCQkJCQl0YXJnZXQ9Il9ibGFuayIKCQkJCQkJCWhyZWY9IiR7U2UuaG9zdH0vcmVwb3J0P3Jlc291cmNlVHlwZT0zJnNoYXJlVXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKX0iCgkJCQkJCQk+eW91IG1heSBzdWJtaXQgYSByZXBvcnQgZm9yIHJldmlldzwvYQoJCQkJCQk+LgoJCQkJCTwvcD4KCQkJCTwvZGl2PgoJCQk8L2Rpdj5gfWNvbm5lY3RlZENhbGxiYWNrKCl7d3Qoe2V2ZW50TmFtZToibWFudXNfd2F0ZXJtYXJrX3Nob3cifSl9aGFuZGxlQ2xpY2soKXt3dCh7ZXZlbnROYW1lOiJtYW51c193YXRlcm1hcmtfY2xpY2sifSksd2luZG93Lm9wZW4oYCR7U2UuaG9zdH0vYXBwP3V0bV9zb3VyY2U9bWFudXNzcGFjZWAsIl9ibGFuayIpfWhhbmRsZVRvZ2dsZUNoZWNrYm94KCl7dGhpcy5pc0Nsb3NlZD0hdGhpcy5pc0Nsb3NlZCxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShyaS5lbWJlZENsb3NlZCx0aGlzLmlzQ2xvc2VkLnRvU3RyaW5nKCkpLHRoaXMucmVuZGVyKCl9aGFuZGxlQ2xvc2UoZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShyaS5lbWJlZENsb3NlZCwidHJ1ZSIpLHRoaXMuaXNDbG9zZWQ9ITAsdGhpcy5yZW5kZXIoKSx3dCh7ZXZlbnROYW1lOiJtYW51c193YXRlcm1hcmtfY2xvc2UifSl9aGFuZGxlU2V0RGlhbG9nUmVmKGUpe2UgaW5zdGFuY2VvZiBXbCYmKHRoaXMuZGlhbG9nUmVmPWUpfXJlbmRlcigpe1h0KHRoaXMudGVtcGxhdGUsdGhpcy5zaGFkb3dSb290KX19ZnVuY3Rpb24gYmUodCl7cmV0dXJuYG1hZGUtd2l0aC0ke3R9YH1jbGFzcyBnMSBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmlzTW9iaWxlPSExLHRoaXMuaXNNb2JpbGU9SWMoKSxYdCh0aGlzLnRlbXBsYXRlLHRoaXMpfWdldCB0ZW1wbGF0ZSgpe2NvbnN0IGU9KCk9PnRoaXMuaXNNb2JpbGU/T2A8YnV0dG9uIGNsYXNzPSR7YmUoImJ0biIpfSBAY2xpY2s9JHsoKT0+e3ZhciBuO3JldHVybihuPXRoaXMuZGlhbG9nUmVmKT09bnVsbD92b2lkIDA6bi5zaG93KCl9fT4ke3ZsfSBNYWRlIHdpdGggTWFudXM8L2J1dHRvbj4KCQkJCQk8bGl0LWRpYWxvZyAke1F0KG49PnRoaXMuaGFuZGxlU2V0RGlhbG9nUmVmKG4pKX0gdGl0bGU9Ik1hZGUgd2l0aCBNYW51cyI+CgkJCQkJCTxwPkFJLWdlbmVyYXRlZCAocG9zc2libHkgdXNlci1lZGl0ZWQpIGNvbnRlbnQgLSBwbGVhc2UgdmVyaWZ5IGNhcmVmdWxseSBhbmQgc3VibWl0IG5vIHBlcnNvbmFsIGluZm9ybWF0aW9uLjwvcD4KCQkJCQkJPHA+CgkJCQkJCQlJZiB5b3UgYmVsaWV2ZSB0aGlzIGNvbnRlbnQgdmlvbGF0ZXMgeW91ciByaWdodHMgb3IgYXBwbGljYWJsZSBsYXdzLAoJCQkJCQkJPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiR7U2UuaG9zdH0vcmVwb3J0P3Jlc291cmNlVHlwZT0zJnNoYXJlVXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKX0iCgkJCQkJCQkJPnlvdSBtYXkgc3VibWl0IGEgcmVwb3J0IGZvciByZXZpZXcuPC9hCgkJCQkJCQk+CgkJCQkJCTwvcD4KCQkJCQkJPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSR7YmUoImRpYWxvZy1mb290ZXIiKX0+CgkJCQkJCQk8YnV0dG9uIGNsYXNzPSR7YmUoImRpYWxvZy1idXR0b24iKX0gQGNsaWNrPSR7KCk9Pnt2YXIgbjtyZXR1cm4obj10aGlzLmRpYWxvZ1JlZik9PW51bGw/dm9pZCAwOm4uY2xvc2UoKX19PkNhbmNlbDwvYnV0dG9uPgoJCQkJCQkJPGEgaHJlZj0iJHtTZS5ob3N0fS9hcHA/dXRtX3NvdXJjZT1tYW51c3NwYWNlIiB0YXJnZXQ9Il9ibGFuayIgQGNsaWNrPSR7KCk9Pnt2YXIgbjtyZXR1cm4obj10aGlzLmRpYWxvZ1JlZik9PW51bGw/dm9pZCAwOm4uY2xvc2UoKX19PgoJCQkJCQkJCTxidXR0b24KCQkJCQkJCQkJY2xhc3M9JHt0dCh7W2JlKCJkaWFsb2ctYnV0dG9uIildOiEwLFtiZSgiZGlhbG9nLWJ1dHRvbi1wcmltYXJ5IildOiEwfSl9CgkJCQkJCQkJPgoJCQkJCQkJCQlDcmVhdGUgbXkgd2Vic2l0ZQoJCQkJCQkJCTwvYnV0dG9uPgoJCQkJCQkJPC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2xpdC1kaWFsb2c+YDpPYDxhIGhyZWY9IiR7U2UuaG9zdH0vYXBwP3V0bV9zb3VyY2U9bWFudXNzcGFjZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSR7YmUoImJ0bi1saW5rIil9PgoJCQkJPGJ1dHRvbiBjbGFzcz0ke2JlKCJidG4iKX0+CgkJCQkJJHt2bH0KCQkJCQk8c3BhbiBjbGFzcz0ke2JlKCJidG4tdGV4dCIpfT5NYWRlIHdpdGggTWFudXM8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9JHtiZSgiYnRuLXRleHQtaG92ZXIiKX0+Q3JlYXRlIG15IHdlYnNpdGU8L3NwYW4+CgkJCQkJPHNwYW4KCQkJCQkJY2xhc3M9InRvb2x0aXAtdHJpZ2dlci1jc3MgdG9vbHRpcC10cmlnZ2VyLXJpZ2h0LWNzcyIKCQkJCQkJZGF0YS10b29sdGlwPSJUaGlzIHVzZXItZ2VuZXJhdGVkIGRvYyB3YXMgY3JlYXRlZCB3aXRoIEFJLiBVc2Ugd2l0aCBjYXV0aW9uLgpOb3QgYW4gb2ZmaWNpYWwgTWFudXMgZG9jIG5vciBlbmRvcnNlZCBieSBNYW51cy4gQ29udGVudCBtYXkgY29udGFpbiBpbmFjY3VyYWNpZXM7IGRvdWJsZS1jaGVjayBiZWZvcmUgdXNlLiBEbyBub3Qgc3VibWl0IHBhc3N3b3JkcywgY3JlZGl0IGNhcmRzLCBvciBwZXJzb25hbCBpbmZvcm1hdGlvbi4iCgkJCQkJCT4ke1BwfTwvc3BhbgoJCQkJCT4KCQkJCTwvYnV0dG9uPgoJCQk8L2E+YDtyZXR1cm4gT2A8c3R5bGU+CgkJCQkuJHtiZSgiYnRuLWxpbmsiKX0gewoJCQkJCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKCQkJCX0KCgkJCQkuJHtiZSgiYnRuLWxpbmsiKX06aG92ZXIgewoJCQkJCW9wYWNpdHk6IDAuODU7CgkJCQl9CgoJCQkJLiR7YmUoImJ0biIpfSB7CgkJCQkJYm9yZGVyLXJhZGl1czogOHB4OwoJCQkJCWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1tYWluKTsKCQkJCQliYWNrZ3JvdW5kOiB2YXIoLS1CdXR0b24tcHJpbWFyeS1ibGFjayk7CgkJCQkJYm94LXNoYWRvdzogMHB4IDhweCAzMnB4IDBweCB2YXIoLS1zaGFkb3ctWFMpOwoJCQkJCWN1cnNvcjogcG9pbnRlcjsKCQkJCQlwYWRkaW5nOiA1cHggMTBweDsKCQkJCQltaW4taGVpZ2h0OiAzMnB4OwoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCQkJCQljb2xvcjogdmFyKC0tdGV4dC1vbmJsYWNrKTsKCQkJCQlmb250LXNpemU6IDEzcHg7CgkJCQkJZm9udC13ZWlnaHQ6IDUwMDsKCQkJCQlsaW5lLWhlaWdodDogMThweDsKCQkJCQlsZXR0ZXItc3BhY2luZzogLTAuMDkxcHg7CgkJCQkJZ2FwOiAycHg7CgkJCQl9CgoJCQkJLiR7YmUoImJ0biIpfTpob3ZlciAuJHtiZSgiYnRuLXRleHQiKX0gewoJCQkJCWRpc3BsYXk6IG5vbmU7CgkJCQl9CgkJCQkuJHtiZSgiYnRuIil9OmhvdmVyIC4ke2JlKCJidG4tdGV4dC1ob3ZlciIpfSB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCX0KCQkJCS4ke2JlKCJidG4tdGV4dCIpfSB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCX0KCQkJCS4ke2JlKCJidG4tdGV4dC1ob3ZlciIpfSB7CgkJCQkJZGlzcGxheTogbm9uZTsKCQkJCX0KCgkJCQkuJHtiZSgiZGlhbG9nLWZvb3RlciIpfSB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwoJCQkJCWdhcDogMTJweDsKCQkJCX0KCgkJCQkuJHtiZSgiZGlhbG9nLWJ1dHRvbiIpfSB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQloZWlnaHQ6IDM2cHg7CgkJCQkJbWluLXdpZHRoOiA2NHB4OwoJCQkJCW1pbi1oZWlnaHQ6IDM2cHg7CgkJCQkJcGFkZGluZzogOHB4IDEycHg7CgkJCQkJanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlnYXA6IDZweDsKCQkJCQljdXJzb3I6IHBvaW50ZXI7CgkJCQkJY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CgkJCQkJZm9udC1zaXplOiAxNHB4OwoJCQkJCWZvbnQtd2VpZ2h0OiA1MDA7CgkJCQkJbGluZS1oZWlnaHQ6IDIwcHg7CgkJCQkJbGV0dGVyLXNwYWNpbmc6IC0wLjE1NHB4OwoJCQkJCWJvcmRlci1yYWRpdXM6IDEwcHg7CgkJCQkJYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWJ0bi1tYWluKTsKCQkJCQliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCQkJCQl0ZXh0LWRlY29yYXRpb246IG5vbmU7CgkJCQl9CgoJCQkJLiR7YmUoImRpYWxvZy1idXR0b24iKX06aG92ZXIgewoJCQkJCW9wYWNpdHk6IDAuODU7CgkJCQl9CgoJCQkJLiR7YmUoImRpYWxvZy1idXR0b24tcHJpbWFyeSIpfSB7CgkJCQkJYmFja2dyb3VuZDogdmFyKC0tQnV0dG9uLXByaW1hcnktYmxhY2spOwoJCQkJCWNvbG9yOiB2YXIoLS10ZXh0LW9uYmxhY2spOwoJCQkJCWJvcmRlcjogbm9uZTsKCQkJCX0KCgkJCQkudG9vbHRpcC10cmlnZ2VyLXJpZ2h0LWNzcyB7CgkJCQkJZGlzcGxheTogZmxleDsKCQkJCQltYXJnaW4tbGVmdDogMnB4OwoJCQkJfQoKCQkJCS50b29sdGlwLXRyaWdnZXItcmlnaHQtY3NzIHN2ZyB7CgkJCQkJb3BhY2l0eTogMC42OwoJCQkJfQoKCQkJCS50b29sdGlwLXRyaWdnZXItcmlnaHQtY3NzOjphZnRlciB7CgkJCQkJcmlnaHQ6IC0xMXB4ICFpbXBvcnRhbnQ7CgkJCQkJYm90dG9tOiAyMHB4OwoJCQkJfQoJCQk8L3N0eWxlPgoJCQkke2UoKX1gfWhhbmRsZVNldERpYWxvZ1JlZihlKXtlIGluc3RhbmNlb2YgV2wmJih0aGlzLmRpYWxvZ1JlZj1lKX19Y2xhc3MgaDEgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fY2hlY2tlZD0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9zaGFkb3dSb290PXRoaXMuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLHRoaXMuX3JlbmRlcigpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJjaGVja2VkIiwiZGlzYWJsZWQiXX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuaGFzQXR0cmlidXRlKCJjaGVja2VkIik/dGhpcy5fY2hlY2tlZD10aGlzLmdldEF0dHJpYnV0ZSgiY2hlY2tlZCIpIT09ImZhbHNlIjp0aGlzLl9jaGVja2VkPSExLHRoaXMuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpP3RoaXMuX2Rpc2FibGVkPXRoaXMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpIT09ImZhbHNlIjp0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9yZW5kZXIoKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSxuLGwpe2xldCBpPSExO2lmKGU9PT0iY2hlY2tlZCIpe2NvbnN0IHI9bCE9PW51bGwmJmwhPT0iZmFsc2UiO3RoaXMuX2NoZWNrZWQhPT1yJiYodGhpcy5fY2hlY2tlZD1yLGk9ITApfWVsc2UgaWYoZT09PSJkaXNhYmxlZCIpe2NvbnN0IHI9bCE9PW51bGwmJmwhPT0iZmFsc2UiO3RoaXMuX2Rpc2FibGVkIT09ciYmKHRoaXMuX2Rpc2FibGVkPXIsaT0hMCl9aSYmdGhpcy5fcmVuZGVyKCl9Z2V0IGNoZWNrZWQoKXtyZXR1cm4gdGhpcy5fY2hlY2tlZH1zZXQgY2hlY2tlZChlKXtlP3RoaXMuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImNoZWNrZWQiKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGUpe2U/dGhpcy5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIil9X3JlbmRlcigpe2NvbnN0IGU9T2AKCQkJPHN0eWxlPgoJCQkJOmhvc3QgewoJCQkJCWRpc3BsYXk6IGlubGluZS1mbGV4OwoJCQkJCXVzZXItc2VsZWN0OiBub25lOwoJCQkJfQoKCQkJCTpob3N0KFtkaXNhYmxlZF0pIHsKCQkJCQlvcGFjaXR5OiAwLjU7CgkJCQl9CgoJCQkJLmNoZWNrYm94LWNvbnRhaW5lciB7CgkJCQkJZGlzcGxheTogaW5saW5lLWZsZXg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCQkJCQl3aWR0aDogMjBweDsKCQkJCQloZWlnaHQ6IDIwcHg7CgkJCQl9CgoJCQkJLmNoZWNrYm94LWljb24gewoJCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQkJYWxpZ24taXRlbXM6IGNlbnRlcjsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKCQkJCQl3aWR0aDogMjBweDsKCQkJCQloZWlnaHQ6IDIwcHg7CgkJCQl9CgoJCQkJLmNoZWNrYm94LWljb24gc3ZnIHsKCQkJCQl3aWR0aDogMjBweDsKCQkJCQloZWlnaHQ6IDIwcHg7CgkJCQl9CgkJCTwvc3R5bGU+CgoJCQk8ZGl2IGNsYXNzPSJjaGVja2JveC1jb250YWluZXIiIHBhcnQ9ImNvbnRhaW5lciI+CgkJCQk8ZGl2IGNsYXNzPSJjaGVja2JveC1pY29uIiBwYXJ0PSJpY29uIj4KCQkJCQkke3RoaXMuX2NoZWNrZWQ/dDE6bjF9CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJYDtYdChlLHRoaXMuX3NoYWRvd1Jvb3QpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoImxpdC1jaGVja2JveCIsaDEpO2N1c3RvbUVsZW1lbnRzLmRlZmluZSgibGl0LXRleHRhcmVhIixJdSk7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJsaXQtcG9wdXAiLFFpKTtjdXN0b21FbGVtZW50cy5kZWZpbmUoImxpdC1kaWFsb2ciLFdsKTtjdXN0b21FbGVtZW50cy5kZWZpbmUoIm1hbnVzLWNvbnRlbnQtcm9vdCIsczEpO2N1c3RvbUVsZW1lbnRzLmRlZmluZSgibWFrZS13aXRoLW1hbnVzIixnMSk7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJmb290ZXItd2F0ZXJtYXJrIix1MSk7RnAoKTtOdSgoKT0+e25ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWFudXMtY29udGVudC1yb290Iil8fGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWFudXMtY29udGVudC1yb290IikpfSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSk7CgoJCQl9OwoKCQkJPC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iIiBkYXRhLWRvbWFpbj0ibWFudXMuc3BhY2UiIHNyYz0iaHR0cHM6Ly9wbGF1c2libGUuaW8vanMvc2NyaXB0LmZpbGUtZG93bmxvYWRzLmhhc2gub3V0Ym91bmQtbGlua3MucGFnZXZpZXctcHJvcHMucmV2ZW51ZS50YWdnZWQtZXZlbnRzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0PgoJCQl3aW5kb3cucGxhdXNpYmxlID0KCQkJCXdpbmRvdy5wbGF1c2libGUgfHwKCQkJCWZ1bmN0aW9uICgpIHsKCQkJCQkod2luZG93LnBsYXVzaWJsZS5xID0gd2luZG93LnBsYXVzaWJsZS5xIHx8IFtdKS5wdXNoKGFyZ3VtZW50cyk7CgkJCQl9OwoJCQlwbGF1c2libGUoJ2N1c3RvbS1wYWdldmlldycsIHsKCQkJICBwcm9wczogewogICAgCQkJZG9tYWluOiB3aW5kb3cubG9jYXRpb24uaG9zdAogIAkJCX0KCQkJfSkKCQk8L3NjcmlwdD4KCjwvYm9keT48ZGl2IGlkPSJtYW51cy1wcmV2aWV3ZXItcm9vdCIgZGF0YS1tYW51cy1zZWxlY3Rvci1pbnB1dD0idHJ1ZSI+PC9kaXY+PC9odG1sPg=="}},"submit":{"url":{"schema":"http","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.168.112","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"tags":null,"meta":null,"user":{"country_code":"zz"}},"settings":{"access":"public","device_type":"desktop","expires_at":"2026-12-08T02:34:48Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"z0yflva4pidy47h"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":1}},"detection":{"ids":null,"analyzer":[{"sensor_name":"dns0","sensor_type":"DNS","title":"DNS0 Zero","description":"DNS0 Zero","scan_date":"2025-11-03","alert":"Sinkholed","trigger":"manus-analytics.com","verdict":"malicious","severity":"medium","comment":"Sinkholed in DNS (SOA: negative-caching.dns0.eu)","link":"https://www.dns0.eu/zero","meta":null}],"urlquery":null},"summary":[{"fqdn":"ortoeval-cxnjjpjj.manus.space","ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2025-02-28","domain_rank":0,"first_seen":"2025-11-03T02:34:49.802124Z","last_seen":"2025-11-03T02:34:49.802124Z","alert_count":0,"request_count":3,"received_data":2853199,"sent_data":1448,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"plausible.io","ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"domain_registered":"2018-12-30","domain_rank":8565,"first_seen":"2019-02-01T08:53:03Z","last_seen":"2025-11-03T02:04:55.024985Z","alert_count":0,"request_count":3,"received_data":7443,"sent_data":1529,"comment":"","tags":null,"fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}]},{"fqdn":"files.manuscdn.com","ip":{"addr":"3.164.240.74","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2025-02-27","domain_rank":1414307,"first_seen":"2025-03-12T08:00:03.578177Z","last_seen":"2025-10-29T17:06:54.339283Z","alert_count":0,"request_count":2,"received_data":8267,"sent_data":1032,"comment":"","tags":null,"fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}]},{"fqdn":"manus-analytics.com","ip":{"addr":"104.21.92.142","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2025-10-09","domain_rank":0,"first_seen":"2025-10-19T13:04:57.49856Z","last_seen":"2025-10-29T17:06:54.191014Z","alert_count":3,"request_count":3,"received_data":6140,"sent_data":1514,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.74.35","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2025-11-02T22:12:55.494707Z","alert_count":0,"request_count":4,"received_data":197468,"sent_data":2276,"comment":"","tags":null,"fingerprints":null},{"fqdn":"api.manus.im","ip":{"addr":"34.231.104.245","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"domain_registered":"unknown","domain_rank":485297,"first_seen":"2025-03-12T08:00:03.587143Z","last_seen":"2025-10-28T10:22:04.487412Z","alert_count":0,"request_count":1,"received_data":196,"sent_data":519,"comment":"","tags":null,"fingerprints":[{"name":"Apache APISIX:3.11.0","description":"Apache APISIX is an open-source, cloud-native API gateway developed by the Apache Software Foundation. It provides a scalable and high-performance solution for managing and securing API traffic.","website":"https://apisix.apache.org","common_platform_enumeration":"cpe:2.3:a:apache:apisix:*:*:*:*:*:*:*:*","icon":"Apache APISIX.svg","categories":["Web servers"]}]},{"fqdn":"fonts.googleapis.com","ip":{"addr":"142.250.74.10","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":313,"first_seen":"2012-05-23T12:41:44Z","last_seen":"2025-11-02T22:12:57.589972Z","alert_count":0,"request_count":1,"received_data":13321,"sent_data":492,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":[{"sensor_name":"suricata","description":"Suricata /w Emerging Threats Pro","alerts":null}],"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/assets/index-CEKT9lFz.js","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5ecc1dcd2484f604b5b37079db2571c8","sha1":"fca880f4b5424803e2220315e881f99e07e789a3","sha256":"4e4a5f4a5418ff0f8633d0d0ccc0f19e8d3a363d86d81e764de3dcc6d5da595a","sha512":"28159b4d110968696264f035ae24f0d5d266d27eef7dfc1dda5e23841ee8a366be11923a863f2fdb1e4e49bbc5ad1e7be3f72f8cc0d947e5726428e425ee75da","ssdeep":"49152:47ACM4QhBOITASJFDOiprdhZS7CBeN6VMvFT90k+7U0ouURDd6Qf:1J8ipkAVouUH","tlshash":"c8756ae831c6b469839342a5407f1107f23c6d2a740d8834f638e9ea7db598a5177fbe","size":1604323,"data":"","first_seen":"2025-11-03T02:34:52.79968Z","last_seen":"2025-11-03T02:34:52.79968Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"8d2260ed851e8e47aa002ea0509dc60e","sha1":"231dd0c4bc0c9fa6611dd88f2f87998296f04059","sha256":"766c678b32aa8ac2eb9f95afc45aec2857e3d4bcc7ceb127eba7f0b302421117","sha512":"8e9ffe80b6b88ebaf6c8e0f1cce3ff4acca94975d691b429971f161e69aed8f222ab3b7deb7c5a7fa3f9c7f8e7c4b5471c51fe3b4954cd44c2ff95cdf2531a67","ssdeep":"6144:L09pqifOb/GPGO9OeeVjypcNouYlryrt0:I6i2b+nOeeVjOt","tlshash":"68748ea8327915796ea302e5a0af6507b1383413b40d88b1f528fc756bf459630b7faf","size":364878,"data":"","first_seen":"2025-11-01T12:24:08.494276Z","last_seen":"2026-03-20T01:53:40.939195Z","times_seen":12,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js","fqdn":"plausible.io","domain":"plausible.io","tld":"io"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"7d0e4602544fdb71b94f53d0873d8423","sha1":"fb0a9cd646aebf2e832eb80fe614ee4a968989f5","sha256":"d2286efb6fd1cb9d37111479f5a1cb0acc47f303e5046aeaac4a0418708a4f9b","sha512":"f371d4d2a9329f89a45969e142308f8aa7fd61c6b8761c0ebc49355a1185b7db470fc213ee8ade881b448415f9cbad3e087495be7531414598e55116c44e04d9","ssdeep":"96:oHD50uAtq/vnfesDDrpLG09bT2WA+8LjlWny66gEhBV:AD5jf1DDrpLf9X2WP8LjlWnF6gKV","tlshash":"94b1a3edb64271b555fa9126ba6fb3027a3b2462340e5400682ddcc13d28eaf9377d8d","size":5216,"data":"","first_seen":"2025-10-29T17:07:00.589946Z","last_seen":"2026-06-07T09:46:58.374422Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"manus-analytics.com/umami","fqdn":"manus-analytics.com","domain":"manus-analytics.com","tld":"com"},"ip":{"addr":"104.21.92.142","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"72f32e397a4654c165924d8dd2113b1f","sha1":"23c3d68d3c03d544bb9a56ddcc9cd702f74613e4","sha256":"7eba89b02651cb67beefeb8aed5d39402f7994b226114c2c639ae354dc1a94f2","sha512":"35fb2163cff1af85d4133d6e791d867253eb213acaee98470a0e165f870951e50d23a83770e1ca42dafe3825b7ca73d92d329b73795a96168e084fde32a56b22","ssdeep":"","tlshash":"5d51f8f77281f0f13f7938d0c1b96224ba391e72b82f4091b6f91c4b8b0d9165131ea9","size":2618,"data":"","first_seen":"2025-09-23T15:56:30.742447Z","last_seen":"2026-06-07T15:15:14.252077Z","times_seen":550,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"249707a86f937d3c481194cbc16a8c44","sha1":"6fc48975d565aaff25541904ee892fe0a7a3cbd9","sha256":"09f5ad27fa89a15be31bfcce535cee2d4cbd54426b19d81f42323867ce6cc291","sha512":"c5b85beda808b9383fa069507924564bb20866036a6208addd8f128225c8ccc81c14566931225a3994783d70f99d4dd560c564b4e548f535b9b1ed30f62ed3d6","ssdeep":"6144:fY0pMkbyWJXwppD3YxGteJz26yud192ZmWOLSF7mETK/V1AM7bwx9qF9jNePjoB5:fXq0FJc6GAJN0mWOLSF2XPEYFsMQJw","tlshash":"a0f48ddcf38a3520839787e868772242b33d3c6174194859faaddce63a2851c55bbf78","size":731678,"data":"","first_seen":"2025-11-03T02:34:52.805165Z","last_seen":"2025-11-03T02:34:52.805165Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"97247d1a8e9d91cafde0cce7c823b382","sha1":"a7a54c71957545771fd45025084f406c152778c3","sha256":"0291902ff79f5d72058f0ecf27a6261b3c5e757cb12b4f5fe8874e24deefb30d","sha512":"0e0af62f9247d36eb5f13ee0d56997e5404410c896a407cf26c1091fa60cc0d871104162287c132bbd6c53b27cedbba3871d9f46fece018f5060d7635a8db868","ssdeep":"","tlshash":"e0d0a9e4a38cb32d12bc30848b2f334b702e042a19442a933905d257b428f8f8b34ef8","size":241,"data":"","first_seen":"2025-06-01T08:22:11.798063Z","last_seen":"2026-06-01T18:37:29.561286Z","times_seen":303,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\u0026display=swap","fqdn":"fonts.googleapis.com","domain":"fonts.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.74.10","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:25.431Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 13 Oct 2025 08:38:51 GMT","end":"Mon, 05 Jan 2026 08:38:50 GMT"},"fingerprint":{"sha1":"1D:8E:3A:85:91:AC:63:71:94:8B:0E:61:45:34:D9:86:AB:A6:E2:CE","sha256":"E6:93:4E:53:89:15:41:28:27:59:AA:84:50:96:96:1E:2A:98:7E:08:60:AE:68:62:AE:DD:86:AB:DB:0F:FE:2B"}}},"request":{"raw":"GET /css2?family=Inter:wght@300;400;500;600;700\u0026display=swap HTTP/1.1\r\nHost: fonts.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ncontent-type: text/css; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\nlink: \u003chttps://fonts.gstatic.com\u003e; rel=preconnect; crossorigin\r\nstrict-transport-security: max-age=31536000\r\nexpires: Mon, 03 Nov 2025 02:34:25 GMT\r\ndate: Mon, 03 Nov 2025 02:34:25 GMT\r\ncache-control: private, max-age=86400\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":12635,"size_decoded":0,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"f04de8ad1ef740d940ec0f534a8f6474","sha1":"3b31756e84c8887867417c7d6cc64501c9d9193c","sha256":"2f1ac0c31bc3ede8317cf72e9d28051ec727c9a0014aa69cff495abd6256bb4e","sha512":"69afede137c125294044274e463f30c02594f379ec879285e0b3ee41097f503dfb8272487759870f547e4dc4cf8828a2c1efaa806deb2f3124b7f6d67c638783","ssdeep":"192:wNA1cO3lnxirNNIxO34OxDENOPCO3/Nx8NNryfO3iExlONEhYO3RrxGx:8KYXuM0p2+4","tlshash":"28427892002ba400ab971dc233cf7f3aaece50896085d1b95ffd0dc59cead66436876d","first_seen":"2025-09-10T18:44:19.218006Z","last_seen":"2026-06-08T06:17:14.262759Z","times_seen":24066,"resource_available":false,"data":null}},"time_used":282,"timings":{"blocked":130,"dns":1,"connect":7,"send":0,"wait":19,"receive":0,"ssl":122},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/assets/index-CEKT9lFz.js","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:25.432Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus.space","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 23 Oct 2025 06:18:05 GMT","end":"Wed, 21 Jan 2026 07:17:49 GMT"},"fingerprint":{"sha1":"FF:BB:2D:1E:6E:41:2F:A3:4F:C8:A0:2A:E8:8E:5E:FA:FA:3D:FF:E7","sha256":"BB:E2:63:66:44:8E:82:DF:B0:59:5E:F4:17:81:74:19:B2:1E:27:55:24:B8:98:68:D6:6D:63:26:ED:DA:A0:50"}}},"request":{"raw":"GET /assets/index-CEKT9lFz.js HTTP/1.1\r\nHost: ortoeval-cxnjjpjj.manus.space\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/avaliacao\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:26 GMT\r\ncontent-type: text/javascript; charset=utf-8\r\ncontent-encoding: gzip\r\ncache-control: max-age=7776000\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncf-ray: 998878f4efbbb4ed-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1604323,"size_decoded":0,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (37847)","md5":"de48c0d046919b4a75d037d5dbe5f422","sha1":"7e4b51f151a9410994afcb7116161791c1d5c0c5","sha256":"33e52cc7b0db4c456d4a9822150c2bd722f670b2775c751953a10dab97dcad06","sha512":"ac03dab8524bc917f5e9ab262224aab049915f08ca9a0c1dd52bc65ceca8827d353a9c2c4ae215e5e24dd5451cb07c35b9217e33d26b96f0cc6621647793a106","ssdeep":"24576:47AlUM4QhBOITASJFDOiAEF9VyedhZS7CBeN6VMdv:47ACM4QhBOITASJFDOiprdhZS7CBeN6M","tlshash":"2c254ae83186b06597a342a1407f160bf23c6d26b44dc460f235d8ea7eb988b5177f7e","first_seen":"2025-11-03T02:34:52.784073Z","last_seen":"2025-11-03T02:34:52.784073Z","times_seen":1,"resource_available":false,"data":null}},"time_used":645,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":645,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"plausible.io/api/event","fqdn":"plausible.io","domain":"plausible.io","tld":"io"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.755Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"plausible.io","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Fri, 03 Oct 2025 19:09:55 GMT","end":"Thu, 01 Jan 2026 19:09:54 GMT"},"fingerprint":{"sha1":"1A:09:D4:66:A2:E0:0D:00:08:1F:16:50:1C:5C:EB:AE:F8:61:54:B6","sha256":"77:CB:7D:4D:13:21:7F:B8:A9:C7:05:A7:8D:28:01:31:5A:5C:42:3D:7F:DB:DD:9A:F3:31:D6:BE:BB:A3:B3:59"}}},"request":{"raw":"POST /api/event HTTP/1.1\r\nHost: plausible.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nContent-Type: text/plain\r\nContent-Length: 117\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/2 202 Accepted\r\ndate: Mon, 03 Nov 2025 02:34:26 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 2\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 682664\r\ncdn-uid: 153cb5b1-399a-48ef-b5bf-098c03770254\r\ncdn-requestcountrycode: NO\r\naccess-control-allow-credentials: true\r\naccess-control-allow-origin: *\r\ncache-control: must-revalidate, max-age=0, private\r\nvia: 1.1 Caddy\r\napplication: 127.0.0.1\r\npermissions-policy: interest-cohort=()\r\nx-plausible-dropped: 1\r\nx-request-id: GHRegggVHN-C9PxrgtcE\r\ncdn-proxyver: 1.39\r\ncdn-requestpullsuccess: True\r\ncdn-requestpullcode: 202\r\ncdn-cachedat: 11/03/2025 02:34:26\r\ncdn-edgestorageid: 830\r\ncdn-requestid: a8d152374257af241348c3cda45c55cc\r\ncdn-requesttime: 0\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"202","status_text":"Accepted","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2,"size_decoded":0,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"444bcb3a3fcf8389296c49467f27e1d6","sha1":"7a85f4764bbd6daf1c3545efbbf0f279a6dc0beb","sha256":"2689367b205c16ce32ed4200942b8b8b1e262dfc70d9bc9fbc77c49699a4f1df","sha512":"9fbbbb5a0f329f9782e2356fa41d89cf9b3694327c1a934d6af2a9df2d7f936ce83717fb513196a4ce5548471708cd7134c2ae99b3c357bcabb2eafc7b9b7570","ssdeep":"","tlshash":"c710000000000000300000000000000000000000000000000000000000000c0000c000","first_seen":"2023-03-08T02:32:37Z","last_seen":"2026-06-08T05:34:26.089391Z","times_seen":423386,"resource_available":true,"data":null}},"time_used":59,"timings":{"blocked":13,"dns":1,"connect":1,"send":0,"wait":32,"receive":0,"ssl":8},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"files.manuscdn.com/user_upload_by_module/web_dev_logo/310519663199322878/piNDiAnlgEVSXrMU.png","fqdn":"files.manuscdn.com","domain":"manuscdn.com","tld":"com"},"ip":{"addr":"3.164.240.74","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.831Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manuscdn.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M02","organization":"Amazon"},"validity":{"start":"Thu, 27 Feb 2025 00:00:00 GMT","end":"Sat, 28 Mar 2026 23:59:59 GMT"},"fingerprint":{"sha1":"CB:27:0A:46:61:11:D8:4B:8D:93:C1:5F:AE:32:23:D0:DA:7E:6E:FE","sha256":"5D:27:26:F0:EF:E1:D0:09:D2:05:CD:D1:BB:12:72:EA:65:74:1C:46:F5:B4:4C:23:6D:FB:03:7C:0E:C8:BA:F6"}}},"request":{"raw":"GET /user_upload_by_module/web_dev_logo/310519663199322878/piNDiAnlgEVSXrMU.png HTTP/1.1\r\nHost: files.manuscdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,*/*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ncontent-type: image/png\r\ncontent-length: 3603\r\ndate: Mon, 03 Nov 2025 02:34:28 GMT\r\nlast-modified: Thu, 30 Oct 2025 10:29:53 GMT\r\netag: \"58438f6bdaf435fad3b789a5b6337891\"\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 2d4ccfc38ee1229022124d55e34be376.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nx-amz-cf-id: Akn3AzBWiJAvag8OY3ONv1wPmn_xfk-2Wa4-tgHNkQUYJ_BxhAwNSg==\r\ncache-control: max-age=31536000\r\nvary: Origin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":3603,"size_decoded":0,"mime_type":"image/png","magic":"PNG image data, 512 x 512, 8-bit/color RGB, non-interlaced","md5":"58438f6bdaf435fad3b789a5b6337891","sha1":"c40bb8c4beb2b6cf9f3cf72e3f05a60e5c571f05","sha256":"7ee3fa2c999de74ad2c9ea3e301e878f386d11c177ab78ee805d905bf8cbadaf","sha512":"1f1198d627d5f1cad000652994e16be8b57fc3901bdd5bd207800cc8b6ab5d225128f17d73cb38eaa201e63aeae74e824ceaacc49d711a7bcc69178ef0b5ca32","ssdeep":"","tlshash":"5a71a55c059611c55cb4c0bae217cfbc2175ea4ef3ac6b38691a63bdb8436fc14c2a83","first_seen":"2025-10-19T13:08:01.456098Z","last_seen":"2026-06-07T03:56:12.237498Z","times_seen":28,"resource_available":false,"data":null}},"time_used":702,"timings":{"blocked":-1,"dns":21,"connect":10,"send":0,"wait":637,"receive":11,"ssl":22},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"manus-analytics.com/api/send","fqdn":"manus-analytics.com","domain":"manus-analytics.com","tld":"com"},"ip":{"addr":"104.21.92.142","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:27.881Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus-analytics.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 09 Oct 2025 12:26:42 GMT","end":"Wed, 07 Jan 2026 13:25:06 GMT"},"fingerprint":{"sha1":"33:02:E4:73:3C:3C:B7:EF:F6:C8:3D:B2:92:6F:A1:6D:F4:D4:DC:D3","sha256":"14:2A:DF:22:CB:3F:54:37:B1:4F:0A:6F:2E:62:24:8D:F9:8E:11:3D:20:66:2E:C9:CF:25:70:E9:D1:2F:11:C4"}}},"request":{"raw":"POST /api/send HTTP/1.1\r\nHost: manus-analytics.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nContent-Type: application/json\r\nContent-Length: 277\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:28 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\naccess-control-allow-headers: *\r\naccess-control-allow-methods: GET, DELETE, POST, PUT\r\naccess-control-max-age: 86400\r\ncache-control: no-cache\r\nx-dns-prefetch-control: on\r\ncontent-security-policy: default-src 'self';img-src * data:;script-src 'self' 'unsafe-eval' 'unsafe-inline';style-src 'self' 'unsafe-inline';connect-src 'self' api.umami.is cloud.umami.is;frame-ancestors 'self'\r\nvary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\npriority: u=4,i=?0\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=nHiQ0YclTXIXKDYUaG4bACwBr2%2BO2EGJs0JZvYB7mkQh2NOzMpTGE%2B5yPJzbJbZ%2B1h1oAh9s%2FgMVdc%2B4eC4kgnkJEFUDnaRB7oHL7LOJ%2FWxp\"}]}\r\ncontent-encoding: br\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-ray: 998879043cbcb4eb-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":419,"size_decoded":0,"mime_type":"application/json","magic":"JSON text data","md5":"43c41b979478db0541b9e6f92e5c7886","sha1":"1c88837ecc68f5e9ae8709949659d5da8a8e1cda","sha256":"33af332c2d482224374d68c30bbdd7ed3a365287fb693a102620e4ad13ae46b8","sha512":"04399836a887d20da93d971d45ed19c3872ac26d1170bf5d28fde4bb6ab8d06f88535b8f75d9e4b619a7f51192f95d5aa8fa22422a19fa2a110bf1cfca570347","ssdeep":"","tlshash":"52e02b0202de3f98a189da020c043ef508da65a2e26506d360a12120fd3eee6280b00c","first_seen":"2025-11-03T02:34:52.789836Z","last_seen":"2025-11-03T02:34:52.789836Z","times_seen":1,"resource_available":false,"data":null}},"time_used":151,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":151,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns0","sensor_type":"DNS","title":"DNS0 Zero","description":"DNS0 Zero","scan_date":"2025-11-03","alert":"Sinkholed","trigger":"manus-analytics.com","verdict":"malicious","severity":"medium","comment":"Sinkholed in DNS (SOA: negative-caching.dns0.eu)","link":"https://www.dns0.eu/zero","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js","fqdn":"plausible.io","domain":"plausible.io","tld":"io"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:25.440Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"plausible.io","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Fri, 03 Oct 2025 19:09:55 GMT","end":"Thu, 01 Jan 2026 19:09:54 GMT"},"fingerprint":{"sha1":"1A:09:D4:66:A2:E0:0D:00:08:1F:16:50:1C:5C:EB:AE:F8:61:54:B6","sha256":"77:CB:7D:4D:13:21:7F:B8:A9:C7:05:A7:8D:28:01:31:5A:5C:42:3D:7F:DB:DD:9A:F3:31:D6:BE:BB:A3:B3:59"}}},"request":{"raw":"GET /js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js HTTP/1.1\r\nHost: plausible.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:25 GMT\r\ncontent-type: application/javascript\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 682664\r\ncdn-uid: 153cb5b1-399a-48ef-b5bf-098c03770254\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: public, must-revalidate, max-age=86400\r\ncontent-encoding: br\r\nvia: 1.1 Caddy\r\napplication: 127.0.0.1\r\ncross-origin-resource-policy: cross-origin\r\npermissions-policy: interest-cohort=()\r\nx-content-type-options: nosniff\r\ncdn-proxyver: 1.39\r\ncdn-requestpullsuccess: True\r\ncdn-requestpullcode: 200\r\ncdn-cachedat: 11/02/2025 10:59:35\r\ncdn-edgestorageid: 830\r\ncdn-requestid: 77ce9ec0dce4cd09752d548bfa83a858\r\ncdn-cache: HIT\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5216,"size_decoded":0,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5216), with no line terminators","md5":"7d0e4602544fdb71b94f53d0873d8423","sha1":"fb0a9cd646aebf2e832eb80fe614ee4a968989f5","sha256":"d2286efb6fd1cb9d37111479f5a1cb0acc47f303e5046aeaac4a0418708a4f9b","sha512":"f371d4d2a9329f89a45969e142308f8aa7fd61c6b8761c0ebc49355a1185b7db470fc213ee8ade881b448415f9cbad3e087495be7531414598e55116c44e04d9","ssdeep":"96:oHD50uAtq/vnfesDDrpLG09bT2WA+8LjlWny66gEhBV:AD5jf1DDrpLf9X2WP8LjlWnF6gKV","tlshash":"94b1a3edb64271b555fa9126ba6fb3027a3b2462340e5400682ddcc13d28eaf9377d8d","first_seen":"2025-10-29T17:07:00.589946Z","last_seen":"2026-06-07T09:46:58.374422Z","times_seen":431,"resource_available":true,"data":null}},"time_used":21,"timings":{"blocked":9,"dns":1,"connect":1,"send":0,"wait":3,"receive":0,"ssl":4},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.74.35","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.443Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 13 Oct 2025 08:38:51 GMT","end":"Mon, 05 Jan 2026 08:38:50 GMT"},"fingerprint":{"sha1":"89:73:B0:EF:F1:BA:6A:DA:6C:2C:87:70:0D:17:11:82:30:E9:13:68","sha256":"96:8D:5D:62:3A:3A:D6:CD:06:9A:CE:52:F4:2D:91:F9:66:13:40:F4:5F:9B:88:3D:55:04:79:E3:14:96:51:FA"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: identity\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 28 Oct 2025 23:36:12 GMT\r\nexpires: Wed, 28 Oct 2026 23:36:12 GMT\r\ncache-control: public, max-age=31536000\r\nage: 442694\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":48532,"size_decoded":0,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-06-08T05:30:43.724334Z","times_seen":205892,"resource_available":false,"data":null}},"time_used":257,"timings":{"blocked":117,"dns":1,"connect":9,"send":0,"wait":9,"receive":13,"ssl":105},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.manus.im/api/user_behavior/batch_create_event_v2","fqdn":"api.manus.im","domain":"manus.im","tld":"im"},"ip":{"addr":"34.231.104.245","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"beacon","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:27.489Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus.im","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M03","organization":"Amazon"},"validity":{"start":"Sat, 01 Mar 2025 00:00:00 GMT","end":"Tue, 31 Mar 2026 23:59:59 GMT"},"fingerprint":{"sha1":"21:2B:B2:1E:DC:00:90:BA:D0:F9:1D:DB:1E:13:30:DB:4B:7C:0E:FF","sha256":"84:FB:A2:1A:84:40:CE:5A:DE:72:65:08:87:26:D8:EE:27:6E:90:2F:AD:9E:B8:32:B2:96:ED:C0:1B:64:94:78"}}},"request":{"raw":"POST /api/user_behavior/batch_create_event_v2 HTTP/1.1\r\nHost: api.manus.im\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 617\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:27 GMT\r\ncontent-type: application/json; charset=utf-8\r\ncontent-length: 21\r\naccess-control-allow-origin: *\r\nserver: APISIX/3.11.0\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache APISIX:3.11.0","description":"Apache APISIX is an open-source, cloud-native API gateway developed by the Apache Software Foundation. It provides a scalable and high-performance solution for managing and securing API traffic.","website":"https://apisix.apache.org","common_platform_enumeration":"cpe:2.3:a:apache:apisix:*:*:*:*:*:*:*:*","icon":"Apache APISIX.svg","categories":["Web servers"]}],"data":{"size":0,"size_decoded":0,"mime_type":"application/json; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-06-08T06:33:57.473216Z","times_seen":16232170,"resource_available":true,"data":null}},"time_used":790,"timings":{"blocked":336,"dns":4,"connect":92,"send":0,"wait":117,"receive":0,"ssl":238},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.74.35","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.852Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 13 Oct 2025 08:38:51 GMT","end":"Mon, 05 Jan 2026 08:38:50 GMT"},"fingerprint":{"sha1":"89:73:B0:EF:F1:BA:6A:DA:6C:2C:87:70:0D:17:11:82:30:E9:13:68","sha256":"96:8D:5D:62:3A:3A:D6:CD:06:9A:CE:52:F4:2D:91:F9:66:13:40:F4:5F:9B:88:3D:55:04:79:E3:14:96:51:FA"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: identity\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 28 Oct 2025 23:36:12 GMT\r\nexpires: Wed, 28 Oct 2026 23:36:12 GMT\r\ncache-control: public, max-age=31536000\r\nage: 442694\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":48532,"size_decoded":0,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-06-08T05:30:43.724334Z","times_seen":205892,"resource_available":false,"data":null}},"time_used":14,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":9,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/avaliacao","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2025-11-03T02:34:23.666Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus.space","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 23 Oct 2025 06:18:05 GMT","end":"Wed, 21 Jan 2026 07:17:49 GMT"},"fingerprint":{"sha1":"FF:BB:2D:1E:6E:41:2F:A3:4F:C8:A0:2A:E8:8E:5E:FA:FA:3D:FF:E7","sha256":"BB:E2:63:66:44:8E:82:DF:B0:59:5E:F4:17:81:74:19:B2:1E:27:55:24:B8:98:68:D6:6D:63:26:ED:DA:A0:50"}}},"request":{"raw":"GET /avaliacao HTTP/1.1\r\nHost: ortoeval-cxnjjpjj.manus.space\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nUpgrade-Insecure-Requests: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:25 GMT\r\ncontent-type: text/html; charset=utf-8\r\ncontent-encoding: gzip\r\ncache-control: no-cache, no-store, must-revalidate\r\nexpires: 0\r\npragma: no-cache\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncf-ray: 998878ea2d3bb4ed-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1099549,"size_decoded":0,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (34073)","md5":"78c8761dae461b1c3d8af7f83cffa218","sha1":"8815bf96578fd8fcc550a763ff804800eb52517b","sha256":"c6890f4a3b408ddb112668c9bb2e72143d3925f9b399e30d45d01a029cb7471e","sha512":"e14c264bede6151695ae1bc5e097b58e2d30dd152ab268e6229046a646ed92a697ba9a491a5d0a2430e793cdba9073b6361358bd5abbdd766a6f4dbb04002b7b","ssdeep":"12288:x6i2b+nOeeVjO5Xq0FJc6GAJN0mWOLSF2XPEYFsMQJG:x6i2bm5X1FJc6nN0mWOLSF2fGJG","tlshash":"27259edcb29a2534879347f864bb2203b23c3c52740d4854f66deca63ba855960b7fbd","first_seen":"2025-11-03T02:34:52.794456Z","last_seen":"2025-11-03T02:34:52.794456Z","times_seen":1,"resource_available":false,"data":null}},"time_used":1534,"timings":{"blocked":45,"dns":27,"connect":1,"send":0,"wait":1444,"receive":0,"ssl":15},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"manus-analytics.com/umami","fqdn":"manus-analytics.com","domain":"manus-analytics.com","tld":"com"},"ip":{"addr":"104.21.92.142","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:25.436Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus-analytics.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 09 Oct 2025 12:26:42 GMT","end":"Wed, 07 Jan 2026 13:25:06 GMT"},"fingerprint":{"sha1":"33:02:E4:73:3C:3C:B7:EF:F6:C8:3D:B2:92:6F:A1:6D:F4:D4:DC:D3","sha256":"14:2A:DF:22:CB:3F:54:37:B1:4F:0A:6F:2E:62:24:8D:F9:8E:11:3D:20:66:2E:C9:CF:25:70:E9:D1:2F:11:C4"}}},"request":{"raw":"GET /umami HTTP/1.1\r\nHost: manus-analytics.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:25 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nx-dns-prefetch-control: on\r\ncontent-security-policy: default-src 'self';img-src * data:;script-src 'self' 'unsafe-eval' 'unsafe-inline';style-src 'self' 'unsafe-inline';connect-src 'self' api.umami.is cloud.umami.is;frame-ancestors 'self'\r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400, must-revalidate\r\naccept-ranges: bytes\r\nlast-modified: Thu, 16 Oct 2025 11:57:07 GMT\r\netag: W/\"a3a-199ece18638\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=0cX4F4uZD4jPyk5NUWyR8kmnJe3AKxLvbQpJrJw5Lw9X6LU94zKrT2i6JWG59ZWhYzvhdvkjWjg1Ms80u0zWhA%2FPrp8YCgD3%2FbfpPbeGwpnr0D4%3D\"}]}\r\ncf-ray: 998878f53fd02678-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2618,"size_decoded":0,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (2617)","md5":"72f32e397a4654c165924d8dd2113b1f","sha1":"23c3d68d3c03d544bb9a56ddcc9cd702f74613e4","sha256":"7eba89b02651cb67beefeb8aed5d39402f7994b226114c2c639ae354dc1a94f2","sha512":"35fb2163cff1af85d4133d6e791d867253eb213acaee98470a0e165f870951e50d23a83770e1ca42dafe3825b7ca73d92d329b73795a96168e084fde32a56b22","ssdeep":"","tlshash":"5d51f8f77281f0f13f7938d0c1b96224ba391e72b82f4091b6f91c4b8b0d9165131ea9","first_seen":"2025-09-23T15:56:30.742447Z","last_seen":"2026-06-07T15:15:14.252077Z","times_seen":550,"resource_available":true,"data":null}},"time_used":458,"timings":{"blocked":36,"dns":22,"connect":1,"send":0,"wait":380,"receive":0,"ssl":16},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns0","sensor_type":"DNS","title":"DNS0 Zero","description":"DNS0 Zero","scan_date":"2025-11-03","alert":"Sinkholed","trigger":"manus-analytics.com","verdict":"malicious","severity":"medium","comment":"Sinkholed in DNS (SOA: negative-caching.dns0.eu)","link":"https://www.dns0.eu/zero","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"ortoeval-cxnjjpjj.manus.space/assets/index-B314AMLu.css","fqdn":"ortoeval-cxnjjpjj.manus.space","domain":"manus.space","tld":"space"},"ip":{"addr":"104.19.169.112","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:25.434Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus.space","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 23 Oct 2025 06:18:05 GMT","end":"Wed, 21 Jan 2026 07:17:49 GMT"},"fingerprint":{"sha1":"FF:BB:2D:1E:6E:41:2F:A3:4F:C8:A0:2A:E8:8E:5E:FA:FA:3D:FF:E7","sha256":"BB:E2:63:66:44:8E:82:DF:B0:59:5E:F4:17:81:74:19:B2:1E:27:55:24:B8:98:68:D6:6D:63:26:ED:DA:A0:50"}}},"request":{"raw":"GET /assets/index-B314AMLu.css HTTP/1.1\r\nHost: ortoeval-cxnjjpjj.manus.space\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/avaliacao\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ndate: Mon, 03 Nov 2025 02:34:26 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-encoding: gzip\r\ncache-control: max-age=7776000\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncf-ray: 998878f4efbcb4ed-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":148543,"size_decoded":0,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"697881716f45f80b9ec3e84c83ae7fe6","sha1":"4a3bed1c85d4c6b93a20cd3bb3ad4abda95097f9","sha256":"fac7bce5654fe30db8359cf61af25ca4799dbd47b4f513a53bb659e46bcbd76e","sha512":"adab3cdf4806868effb5dbba04186024c9c174b168a2ea79747e3c314d9e39989a117413252cd9ddc14f853b6de43865c8f85e2508af5939909ec65ba729dc99","ssdeep":"1536:9Rb25hSo3EWcup6AeYUqOYjPFACagSsMq+WDhzmAkX7zMMD/7HvK9e9tj988R98R:9RbKhSScupfU7YjPFAgMq+WDhKAji7TS","tlshash":"59e30951b229e53fbc2768b9538cf49c50057084fd2982ebf919a1215ac3ffa19bf718","first_seen":"2025-11-03T02:34:52.797524Z","last_seen":"2025-11-03T02:34:52.797524Z","times_seen":1,"resource_available":false,"data":null}},"time_used":620,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":620,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"plausible.io/api/event","fqdn":"plausible.io","domain":"plausible.io","tld":"io"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.757Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"plausible.io","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Fri, 03 Oct 2025 19:09:55 GMT","end":"Thu, 01 Jan 2026 19:09:54 GMT"},"fingerprint":{"sha1":"1A:09:D4:66:A2:E0:0D:00:08:1F:16:50:1C:5C:EB:AE:F8:61:54:B6","sha256":"77:CB:7D:4D:13:21:7F:B8:A9:C7:05:A7:8D:28:01:31:5A:5C:42:3D:7F:DB:DD:9A:F3:31:D6:BE:BB:A3:B3:59"}}},"request":{"raw":"POST /api/event HTTP/1.1\r\nHost: plausible.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nContent-Type: text/plain\r\nContent-Length: 164\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/2 202 Accepted\r\ndate: Mon, 03 Nov 2025 02:34:26 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 2\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 682664\r\ncdn-uid: 153cb5b1-399a-48ef-b5bf-098c03770254\r\ncdn-requestcountrycode: NO\r\naccess-control-allow-credentials: true\r\naccess-control-allow-origin: *\r\ncache-control: must-revalidate, max-age=0, private\r\nvia: 1.1 Caddy\r\napplication: 127.0.0.1\r\npermissions-policy: interest-cohort=()\r\nx-plausible-dropped: 1\r\nx-request-id: GHRegggtvptY6RZ4jAOB\r\ncdn-proxyver: 1.39\r\ncdn-requestpullsuccess: True\r\ncdn-requestpullcode: 202\r\ncdn-cachedat: 11/03/2025 02:34:26\r\ncdn-edgestorageid: 830\r\ncdn-requestid: 5becd6b8107d6bccb090e9ea2a9d814c\r\ncdn-requesttime: 0\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"202","status_text":"Accepted","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2,"size_decoded":0,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"444bcb3a3fcf8389296c49467f27e1d6","sha1":"7a85f4764bbd6daf1c3545efbbf0f279a6dc0beb","sha256":"2689367b205c16ce32ed4200942b8b8b1e262dfc70d9bc9fbc77c49699a4f1df","sha512":"9fbbbb5a0f329f9782e2356fa41d89cf9b3694327c1a934d6af2a9df2d7f936ce83717fb513196a4ce5548471708cd7134c2ae99b3c357bcabb2eafc7b9b7570","ssdeep":"","tlshash":"c710000000000000300000000000000000000000000000000000000000000c0000c000","first_seen":"2023-03-08T02:32:37Z","last_seen":"2026-06-08T05:34:26.089391Z","times_seen":423386,"resource_available":true,"data":null}},"time_used":55,"timings":{"blocked":13,"dns":2,"connect":1,"send":0,"wait":31,"receive":0,"ssl":5},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"files.manuscdn.com/user_upload_by_module/web_dev_logo/310519663199322878/piNDiAnlgEVSXrMU.png","fqdn":"files.manuscdn.com","domain":"manuscdn.com","tld":"com"},"ip":{"addr":"3.164.240.74","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.829Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manuscdn.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M02","organization":"Amazon"},"validity":{"start":"Thu, 27 Feb 2025 00:00:00 GMT","end":"Sat, 28 Mar 2026 23:59:59 GMT"},"fingerprint":{"sha1":"CB:27:0A:46:61:11:D8:4B:8D:93:C1:5F:AE:32:23:D0:DA:7E:6E:FE","sha256":"5D:27:26:F0:EF:E1:D0:09:D2:05:CD:D1:BB:12:72:EA:65:74:1C:46:F5:B4:4C:23:6D:FB:03:7C:0E:C8:BA:F6"}}},"request":{"raw":"GET /user_upload_by_module/web_dev_logo/310519663199322878/piNDiAnlgEVSXrMU.png HTTP/1.1\r\nHost: files.manuscdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,*/*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\ncontent-type: image/png\r\ncontent-length: 3603\r\ndate: Mon, 03 Nov 2025 02:34:28 GMT\r\nlast-modified: Thu, 30 Oct 2025 10:29:53 GMT\r\netag: \"58438f6bdaf435fad3b789a5b6337891\"\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 2d4ccfc38ee1229022124d55e34be376.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nx-amz-cf-id: Wx1yQjszu8Q9PiQfo9ftCPE_aQERB3lCz4WS5oxYNbPXTKlO5XZoGw==\r\ncache-control: max-age=31536000\r\nvary: Origin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":3603,"size_decoded":0,"mime_type":"image/png","magic":"PNG image data, 512 x 512, 8-bit/color RGB, non-interlaced","md5":"58438f6bdaf435fad3b789a5b6337891","sha1":"c40bb8c4beb2b6cf9f3cf72e3f05a60e5c571f05","sha256":"7ee3fa2c999de74ad2c9ea3e301e878f386d11c177ab78ee805d905bf8cbadaf","sha512":"1f1198d627d5f1cad000652994e16be8b57fc3901bdd5bd207800cc8b6ab5d225128f17d73cb38eaa201e63aeae74e824ceaacc49d711a7bcc69178ef0b5ca32","ssdeep":"","tlshash":"5a71a55c059611c55cb4c0bae217cfbc2175ea4ef3ac6b38691a63bdb8436fc14c2a83","first_seen":"2025-10-19T13:08:01.456098Z","last_seen":"2026-06-07T03:56:12.237498Z","times_seen":28,"resource_available":false,"data":null}},"time_used":690,"timings":{"blocked":-1,"dns":21,"connect":8,"send":0,"wait":637,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.74.35","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.875Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 13 Oct 2025 08:38:51 GMT","end":"Mon, 05 Jan 2026 08:38:50 GMT"},"fingerprint":{"sha1":"89:73:B0:EF:F1:BA:6A:DA:6C:2C:87:70:0D:17:11:82:30:E9:13:68","sha256":"96:8D:5D:62:3A:3A:D6:CD:06:9A:CE:52:F4:2D:91:F9:66:13:40:F4:5F:9B:88:3D:55:04:79:E3:14:96:51:FA"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: identity\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 28 Oct 2025 23:36:12 GMT\r\nexpires: Wed, 28 Oct 2026 23:36:12 GMT\r\ncache-control: public, max-age=31536000\r\nage: 442694\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":48532,"size_decoded":0,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-06-08T05:30:43.724334Z","times_seen":205892,"resource_available":false,"data":null}},"time_used":18,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":12,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"manus-analytics.com/api/send","fqdn":"manus-analytics.com","domain":"manus-analytics.com","tld":"com"},"ip":{"addr":"104.21.92.142","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:27.474Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"manus-analytics.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 09 Oct 2025 12:26:42 GMT","end":"Wed, 07 Jan 2026 13:25:06 GMT"},"fingerprint":{"sha1":"33:02:E4:73:3C:3C:B7:EF:F6:C8:3D:B2:92:6F:A1:6D:F4:D4:DC:D3","sha256":"14:2A:DF:22:CB:3F:54:37:B1:4F:0A:6F:2E:62:24:8D:F9:8E:11:3D:20:66:2E:C9:CF:25:70:E9:D1:2F:11:C4"}}},"request":{"raw":"OPTIONS /api/send HTTP/1.1\r\nHost: manus-analytics.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate, br\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-type\r\nReferer: https://ortoeval-cxnjjpjj.manus.space/\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 204 No Content\r\ndate: Mon, 03 Nov 2025 02:34:27 GMT\r\naccess-control-allow-origin: *\r\naccess-control-allow-headers: *\r\naccess-control-allow-methods: GET, DELETE, POST, PUT\r\naccess-control-max-age: 86400\r\ncache-control: no-cache\r\nx-dns-prefetch-control: on\r\ncontent-security-policy: default-src 'self';img-src * data:;script-src 'self' 'unsafe-eval' 'unsafe-inline';style-src 'self' 'unsafe-inline';connect-src 'self' api.umami.is cloud.umami.is;frame-ancestors 'self'\r\nvary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch\r\nallow: OPTIONS, POST\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\npriority: u=4,i=?0\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=GolMVJrHUbpM2oihbRhxE%2Fz%2FEx0Q1u6XlYns7%2Fxt%2BOs0Emzb6AJSQ82ETvd5oKerhiXXMrnzkrTIp6pAAYfQFaVgCYpYeeyg61qa2kvkUuoO\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-ray: 99887901ccbbb4eb-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"No Content","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":0,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-06-08T06:33:57.473216Z","times_seen":16232170,"resource_available":true,"data":null}},"time_used":404,"timings":{"blocked":17,"dns":1,"connect":0,"send":0,"wait":386,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns0","sensor_type":"DNS","title":"DNS0 Zero","description":"DNS0 Zero","scan_date":"2025-11-03","alert":"Sinkholed","trigger":"manus-analytics.com","verdict":"malicious","severity":"medium","comment":"Sinkholed in DNS (SOA: negative-caching.dns0.eu)","link":"https://www.dns0.eu/zero","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.74.35","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://ortoeval-cxnjjpjj.manus.space/avaliacao","date":"2025-11-03T02:34:26.874Z","timestamp":0,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 13 Oct 2025 08:38:51 GMT","end":"Mon, 05 Jan 2026 08:38:50 GMT"},"fingerprint":{"sha1":"89:73:B0:EF:F1:BA:6A:DA:6C:2C:87:70:0D:17:11:82:30:E9:13:68","sha256":"96:8D:5D:62:3A:3A:D6:CD:06:9A:CE:52:F4:2D:91:F9:66:13:40:F4:5F:9B:88:3D:55:04:79:E3:14:96:51:FA"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: identity\r\nOrigin: https://ortoeval-cxnjjpjj.manus.space\r\nDNT: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 OK\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 28 Oct 2025 23:36:12 GMT\r\nexpires: Wed, 28 Oct 2026 23:36:12 GMT\r\ncache-control: public, max-age=31536000\r\nage: 442694\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":48532,"size_decoded":0,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-06-08T05:30:43.724334Z","times_seen":205892,"resource_available":false,"data":null}},"time_used":15,"timings":{"blocked":2,"dns":0,"connect":0,"send":0,"wait":8,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
