Top-Rated Real Estate Agents for Texas Buyers and Sellers
WIR_AVERAGE_SALES_PRICE=350000;WIR_GROSS_COMMISSION=0.04;WIR_AGENT_SHARE=0.15;ACTIVATION_PAY=325;PENDING_TO_CLOSE_DAYS=30;FAILED_LISTING_DAYS=180;SPHERE_SPLIT=0.70;SPHERE_LISTING_EXPENSE=2000;BENCH_CONV=50%;BENCH_CLOSED=95%;BENCH_DTP=60 days;BRAND_NAME=Watters International Realty;SUBMIT_URL=https://script.google.com/macros/s/AKfycbwAmqT80Nn5XHstgVB2wKWyDQwcFXL7waFeE2HrBLep_lWJogf37Gm_himMXRfmoC-M/exec
Watters International Realty
← Back
Ci8qIExheW91dDogb25lIGNlbnRlcmVkIGNhcmQgcGVyIHN0ZXAsIHByb2dyZXNzIGJhciBvbiB0b3AsIFdJUiBicmFuZCBsaWdodCBsb29rLiAqLwo6cm9vdHsKICAtLWluazojMjAyNDI3OyAtLW11dGVkOiM0YTUyNTg7IC0tbGluZTojZDZlNGYwOyAtLXRpbnQ6I2VlZjZmZDsgLS13aGl0ZTojZmZmZmZmOwogIC0tYmx1ZTojMDQ4N0UyOyAtLWJsdWUtZGVlcDojMDQ2M0NBOyAtLWJsdWUtbGlnaHQ6IzY1QzJGNTsgLS1ibHVlLXBhbGU6I0IwRDZGNTsKICAtLWdyZWVuOiNBMEQ2NDI7IC0tZ3JlZW4tZGVlcDojNTU3RDBGOyAtLWljb246IzNBODZEQjsKICAtLWg6IlBvcHBpbnMiLCJBcmlhbCBCbGFjayIsc2Fucy1zZXJpZjsgLS1iOiJPcGVuIFNhbnMiLEFyaWFsLHNhbnMtc2VyaWY7CiAgY29sb3Itc2NoZW1lOmxpZ2h0Owp9Cmh0bWwsYm9keXtiYWNrZ3JvdW5kOnZhcigtLXRpbnQpfQpib2R5e2NvbG9yOnZhcigtLWluayk7Zm9udDoxNnB4LzEuNTUgdmFyKC0tYik7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0KLnNoZWxse21heC13aWR0aDo3NjBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MjBweCAxNnB4IDQ4cHg7ZGlzcGxheTpncmlkO2dhcDoxOHB4fQoudG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHh9Ci5icmFuZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWgpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTRweH0KLmJyYW5kOjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQ6dmFyKC0taWNvbil9Ci5iYWNre2ZvbnQ6NjAwIDE0cHggdmFyKC0taCk7YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2NvbG9yOnZhcigtLWJsdWUtZGVlcCk7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo4cHggNHB4fQouYmFja1toaWRkZW5de2Rpc3BsYXk6bm9uZX0KLnByb2d7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOnZhcigtLXdoaXRlKTtib3JkZXItcmFkaXVzOjk5cHg7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSl9Ci5wcm9nIGl7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDowO2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1yYWRpdXM6OTlweDt0cmFuc2l0aW9uOndpZHRoIC40cyBlYXNlfQouc2VjbmFtZXtmb250OjYwMCAxM3B4IHZhcigtLWgpO2NvbG9yOnZhcigtLW11dGVkKTtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ci5jYXJke2JhY2tncm91bmQ6dmFyKC0td2hpdGUpO2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOmNsYW1wKDI0cHgsNXZ3LDQ0cHgpO2JveC1zaGFkb3c6MCAycHggMThweCByZ2JhKDMyLDM2LDM5LC4wOCk7ZGlzcGxheTpncmlkO2dhcDoyMnB4O21pbi1oZWlnaHQ6MzYwcHg7YWxpZ24tY29udGVudDpzdGFydH0KLmNhcmQuZGFya3tiYWNrZ3JvdW5kOnZhcigtLWluayk7Y29sb3I6I2ZmZn0KI3N0YWdle2Rpc3BsYXk6Z3JpZDtnYXA6MTZweH0jc3RhZ2UgPiAuY2FyZDpub3QoOm9ubHktY2hpbGQpe21pbi1oZWlnaHQ6MH0KLmFuaW17YW5pbWF0aW9uOmluIC4zNXMgZWFzZX0KQGtleWZyYW1lcyBpbntmcm9te29wYWNpdHk6LjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfX0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmFuaW17YW5pbWF0aW9uOm5vbmV9LnByb2cgaXt0cmFuc2l0aW9uOm5vbmV9fQpoMSxoMntmb250LWZhbWlseTp2YXIoLS1oKTtmb250LXdlaWdodDo4MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi0uMDJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtd3JhcDpiYWxhbmNlfQpoMXtmb250LXNpemU6Y2xhbXAoMzBweCw2dncsNDZweCk7Y29sb3I6dmFyKC0tYmx1ZSl9Ci5jYXJkLmRhcmsgaDF7Y29sb3I6dmFyKC0tYmx1ZS1saWdodCl9Cmgye2ZvbnQtc2l6ZTpjbGFtcCgyMnB4LDR2dywzMHB4KTtjb2xvcjp2YXIoLS1pbmspO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO2xpbmUtaGVpZ2h0OjEuMTU7Zm9udC13ZWlnaHQ6ODAwfQouY2FyZC5kYXJrIGgye2NvbG9yOiNmZmZ9CnB7bWFyZ2luOjA7bWF4LXdpZHRoOjYwY2h9Ci5zdWJ7Zm9udC1zaXplOjE3cHg7Y29sb3I6dmFyKC0tbXV0ZWQpfS5jYXJkLmRhcmsgLnN1Yntjb2xvcjojZDVkZGUzfQoucnVsZXtoZWlnaHQ6NHB4O3dpZHRoOjE0MHB4O2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1yYWRpdXM6MnB4fQoKLyogY29udHJvbHMgKi8KLmNvdW50ZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoyMnB4fQoucG17d2lkdGg6NzJweDtoZWlnaHQ6NzJweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJsdWUtcGFsZSk7YmFja2dyb3VuZDp2YXIoLS13aGl0ZSk7Zm9udDo4MDAgMzRweCB2YXIoLS1oKTtjb2xvcjp2YXIoLS1ibHVlLWRlZXApO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjF9Ci5wbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXRpbnQpfQouY3ZhbHtmb250OjgwMCBjbGFtcCg2NHB4LDE0dncsOTZweCkvMSB2YXIoLS1oKTttaW4td2lkdGg6MmNoO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KLm1vbmV5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJsdWUtcGFsZSk7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTBweCAxOHB4O2JhY2tncm91bmQ6dmFyKC0td2hpdGUpO21heC13aWR0aDo0MjBweH0KLm1vbmV5IHNwYW57Zm9udDo4MDAgMzZweCB2YXIoLS1oKTtjb2xvcjp2YXIoLS1tdXRlZCl9Ci5tb25leSBpbnB1dHtib3JkZXI6MDtvdXRsaW5lOjA7Zm9udDo4MDAgY2xhbXAoMzRweCw3dncsNDRweCkgdmFyKC0taCk7d2lkdGg6MTAwJTttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS1pbmspO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoubW9uZXk6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjp2YXIoLS1ibHVlLWRlZXApO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoNCw5OSwyMDIsLjE1KX0KLmNoaXBze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6MTBweH0KLm9wdHtmb250OjgwMCAyMHB4IHZhcigtLWgpO3BhZGRpbmc6MTZweCAyMnB4O2JvcmRlci1yYWRpdXM6MTZweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJsdWUtcGFsZSk7YmFja2dyb3VuZDp2YXIoLS13aGl0ZSk7Y29sb3I6dmFyKC0taW5rKTtjdXJzb3I6cG9pbnRlcjttaW4td2lkdGg6ODRweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJhY2tncm91bmQgLjEyc30KLm9wdDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtiYWNrZ3JvdW5kOnZhcigtLXRpbnQpfQoub3B0Lm9ue2JhY2tncm91bmQ6dmFyKC0tYmx1ZS1kZWVwKTtib3JkZXItY29sb3I6dmFyKC0tYmx1ZS1kZWVwKTtjb2xvcjojZmZmfQoub3B0IHNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udDo2MDAgMTJweCB2YXIoLS1oKTtvcGFjaXR5Oi44O21hcmdpbi10b3A6MnB4fQoudGVuc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxMCxtaW5tYXgoMCwxZnIpKTtnYXA6OHB4fQoudGVucyAub3B0e21pbi13aWR0aDowO3BhZGRpbmc6MTZweCAwO2ZvbnQtc2l6ZToyMnB4fQpAbWVkaWEgKG1heC13aWR0aDo1MjBweCl7LnRlbnN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LG1pbm1heCgwLDFmcikpfX0KLmNhcmRze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgxMzBweCwxZnIpKTtnYXA6MTBweH0KLmNhcmRzIC5vcHR7cGFkZGluZzoyMnB4IDEwcHg7Zm9udC1zaXplOjI0cHh9Ci5jb25maXJte2ZvbnQ6ODAwIGNsYW1wKDI2cHgsNXZ3LDM2cHgpLzEuMSB2YXIoLS1oKTtjb2xvcjp2YXIoLS1ibHVlLWRlZXApfQouYmVuY2h7YmFja2dyb3VuZDp2YXIoLS10aW50KTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxNnB4IDE4cHg7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Ci5iZW5jaDo6YmVmb3Jle2NvbnRlbnQ6IiI7ZmxleDpub25lO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7bWFyZ2luLXRvcDo0cHh9Ci5iZW5jaCBie2NvbG9yOnZhcigtLWluayl9Ci5nb3tqdXN0aWZ5LXNlbGY6c3RhcnQ7Zm9udDo2MDAgMTdweCB2YXIoLS1oKTtwYWRkaW5nOjE2cHggMzRweDtib3JkZXItcmFkaXVzOjk5OXB4O2JvcmRlcjowO2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOnZhcigtLWluayk7Y3Vyc29yOnBvaW50ZXJ9Ci5nbzpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZH0KLmdvOmZvY3VzLXZpc2libGUsLm9wdDpmb2N1cy12aXNpYmxlLC5wbTpmb2N1cy12aXNpYmxlLC5iYWNrOmZvY3VzLXZpc2libGV7b3V0bGluZTozcHggc29saWQgdmFyKC0taW5rKTtvdXRsaW5lLW9mZnNldDozcHh9Ci5jYXJkLmRhcmsgLmdvOmZvY3VzLXZpc2libGV7b3V0bGluZS1jb2xvcjojZmZmfQouaGludHtmb250LXNpemU6MTRweDtjb2xvcjp2YXIoLS1tdXRlZCl9Ci5zZW5kZntkaXNwbGF5OmdyaWQ7Z2FwOjEycHg7bWF4LXdpZHRoOjQ2MHB4fQouc2VuZGYgbGFiZWx7ZGlzcGxheTpncmlkO2dhcDo2cHg7Zm9udDo2MDAgMTRweCB2YXIoLS1oKX0KLnNlbmRmIGlucHV0e2ZvbnQ6NjAwIDE3cHggdmFyKC0tYik7cGFkZGluZzoxMnB4IDE0cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ibHVlLXBhbGUpO2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0taW5rKTt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0KLnNlbmRmIGlucHV0OmZvY3VzLXZpc2libGV7b3V0bGluZTozcHggc29saWQgdmFyKC0tYmx1ZS1kZWVwKTtvdXRsaW5lLW9mZnNldDoxcHh9Ci5vcHQtbHtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0tbXV0ZWQpfQouY2FyZC5pbnRyb3tnYXA6MThweDtwYWRkaW5nOmNsYW1wKDI4cHgsNnZ3LDU2cHgpfQouaWVie2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7Zm9udDo2MDAgMTNweCB2YXIoLS1oKTtsZXR0ZXItc3BhY2luZzouMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6I2ZmZn0KLmllYjo6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKX0KLmloe2ZvbnQtc2l6ZTpjbGFtcCgzOHB4LDguNXZ3LDY4cHgpO2xpbmUtaGVpZ2h0Oi45Njtjb2xvcjp2YXIoLS1ibHVlLWxpZ2h0KX0KLmlzdWJ7Zm9udDo4MDAgY2xhbXAoMjBweCwzLjZ2dywyOHB4KS8xLjIgdmFyKC0taCk7Y29sb3I6I2ZmZjttYXJnaW4tdG9wOjRweH0KLmlib2R5e2ZvbnQtc2l6ZToxN3B4O2NvbG9yOiNkNWRkZTN9Ci5nby5iaWd7Zm9udC1zaXplOmNsYW1wKDE4cHgsMi42dncsMjFweCk7cGFkZGluZzoyMHB4IDQwcHg7bWFyZ2luLXRvcDo2cHg7Ym94LXNoYWRvdzowIDZweCAyMnB4IHJnYmEoMTYwLDIxNCw2NiwuMjgpfQpAbWVkaWEgKG1heC13aWR0aDo1MjBweCl7LmdvLmJpZ3tqdXN0aWZ5LXNlbGY6c3RyZXRjaDt0ZXh0LWFsaWduOmNlbnRlcn19Ci5pbWljcm97Zm9udDo2MDAgMTRweCB2YXIoLS1oKTtjb2xvcjojZDVkZGUzO21hcmdpbi10b3A6LTZweH0KLml0cnVzdHtmb250LXNpemU6MTRweDtjb2xvcjojYjljNGNjO2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE0KTtwYWRkaW5nLXRvcDoxNnB4fQpib2R5Lm9uaW50cm8gLnByb2csYm9keS5vbmludHJvIC5zZWNuYW1le3Zpc2liaWxpdHk6aGlkZGVufQoKLyogcmVzdWx0cyAqLwoubG9hZGluZ3tkaXNwbGF5OmdyaWQ7Z2FwOjE0cHg7cGxhY2UtaXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO21pbi1oZWlnaHQ6MzYwcHg7YWxpZ24tY29udGVudDpjZW50ZXJ9Ci5zcGlue3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xOCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1ncmVlbik7YW5pbWF0aW9uOnNwIDFzIGxpbmVhciBpbmZpbml0ZX0KQGtleWZyYW1lcyBzcHt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fQouc3RlcHN7Zm9udDo2MDAgMTZweCB2YXIoLS1oKTtjb2xvcjp2YXIoLS1ibHVlLWxpZ2h0KTttaW4taGVpZ2h0OjEuNWVtfQoudGlsZXN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDIwMHB4LDFmcikpO2dhcDoxMHB4fQoudGlsZXtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjE0cHggMTZweDtkaXNwbGF5OmdyaWQ7Z2FwOjJweH0KLnRpbGUgLmt7Zm9udDo2MDAgMTNweCB2YXIoLS1oKTtjb2xvcjp2YXIoLS1tdXRlZCl9Ci50aWxlIC52e2ZvbnQ6ODAwIDIwcHggdmFyKC0taCl9Ci5oZXJve2ZvbnQ6ODAwIGNsYW1wKDUycHgsMTJ2dyw4OHB4KS8xIHZhcigtLWgpO2NvbG9yOnZhcigtLWJsdWUtZGVlcCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi0uMDJlbX0KLmRhcmsgLmhlcm97Y29sb3I6dmFyKC0tZ3JlZW4pfQoubGJse2ZvbnQ6ODAwIDE4cHggdmFyKC0taCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wMmVtfQoucGFydHN7ZGlzcGxheTpncmlkO2dhcDo4cHh9Ci5wYXJ0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKTtwYWRkaW5nOjhweCAwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KLnBhcnQgYntmb250LWZhbWlseTp2YXIoLS1oKX0KLnBhcnQudG90e2JvcmRlci1ib3R0b206MDtmb250LXdlaWdodDo3MDB9Ci5kaXNje2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTtwYWRkaW5nLXRvcDoxNHB4fQouY21we2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgyMjBweCwxZnIpKTtnYXA6MTJweH0KLmNvbHtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxOHB4O2Rpc3BsYXk6Z3JpZDtnYXA6MTBweDthbGlnbi1jb250ZW50OnN0YXJ0fQouY29sLmN1cntiYWNrZ3JvdW5kOnZhcigtLXRpbnQpfQouY29sLndpcntiYWNrZ3JvdW5kOnZhcigtLWluayk7Y29sb3I6I2ZmZn0KLmNvbCBoM3ttYXJnaW46MDtmb250OjgwMCAxNXB4IHZhcigtLWgpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0KLmNvbCAuYmlne2ZvbnQ6ODAwIDM0cHggdmFyKC0taCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQouY29sLndpciAuYmlne2NvbG9yOnZhcigtLWdyZWVuKX0KLmNvbCAucm93e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTBweDtmb250LXNpemU6MTRweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9Ci5jb2wud2lyIC5yb3d7Y29sb3I6I2Q1ZGRlM30KLm1vdmVze2Rpc3BsYXk6Z3JpZDtnYXA6MTBweH0KLm12e2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTZweDtkaXNwbGF5OmdyaWQ7Z2FwOjEycHh9Ci5tdmh7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0KLm12dHtmb250OjYwMCAxNnB4IHZhcigtLWgpO21pbi13aWR0aDowO2ZsZXg6MSAxIDIyMHB4fQouc3RlcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9Ci5zYnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoycHggc29saWQgdmFyKC0tYmx1ZS1wYWxlKTtiYWNrZ3JvdW5kOiNmZmY7Zm9udDo4MDAgMjBweCB2YXIoLS1oKTtjb2xvcjp2YXIoLS1ibHVlLWRlZXApO2N1cnNvcjpwb2ludGVyfQouc2I6ZGlzYWJsZWR7b3BhY2l0eTouMzU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zYjpmb2N1cy12aXNpYmxle291dGxpbmU6M3B4IHNvbGlkIHZhcigtLWluayk7b3V0bGluZS1vZmZzZXQ6MnB4fQouc3Z7Zm9udDo4MDAgMTZweCB2YXIoLS1oKTttaW4td2lkdGg6OTZweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9Ci5tdnJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDIwMHB4LDFmcikpO2dhcDoxMHB4fQoubXZyIGRpdntiYWNrZ3JvdW5kOnZhcigtLXRpbnQpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEwcHggMTRweDtkaXNwbGF5OmdyaWQ7Z2FwOjJweH0KLm12ciAua3tmb250OjYwMCAxMnB4IHZhcigtLWgpO2NvbG9yOnZhcigtLW11dGVkKX0KLm12ciBie2ZvbnQ6ODAwIDI0cHggdmFyKC0taCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoubXZyIGVte2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQ6NzAwIDE0cHggdmFyKC0taCl9Lm12ciBlbS51cHtjb2xvcjp2YXIoLS1ncmVlbi1kZWVwKX0ubXZyIGVtLmRue2NvbG9yOiNhMzI4MWZ9CiNhbGxyb3d7Z2FwOjhweH0jYWxscm93IC5iaWcye2ZvbnQ6ODAwIDIycHggdmFyKC0taCk7Y29sb3I6dmFyKC0tZ3JlZW4pfQoubW92ZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MTRweCAxNnB4fQoubW92ZSBie2ZvbnQ6ODAwIDE4cHggdmFyKC0taCk7Y29sb3I6dmFyKC0tZ3JlZW4tZGVlcCk7d2hpdGUtc3BhY2U6bm93cmFwfQouYWN0aW9uc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHh9Ci5naG9zdHtmb250OjYwMCAxNXB4IHZhcigtLWgpO3BhZGRpbmc6MTRweCAyNHB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1pbmspO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0taW5rKTtjdXJzb3I6cG9pbnRlcn0KLmZvb3R7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKX0K
Ci8qID09PT09IENvbmZpZ3VyYWJsZSBtb2RlbCBjb25zdGFudHMgPT09PT0gKi8KY29uc3QgQ0ZHPXsKICBXSVJfQVZFUkFHRV9TQUxFU19QUklDRTozNTAwMDAsCiAgV0lSX0dST1NTX0NPTU1JU1NJT046MC4wNCwgICAgICAvLyBsaXN0aW5nIHNpZGUgb24gV0lSLWdlbmVyYXRlZCBvcHBvcnR1bml0aWVzCiAgV0lSX0FHRU5UX1NIQVJFOjAuMTUsICAgICAgICAgICAvLyBhZ2VudCdzIHNoYXJlIG9mIGdyb3NzIG9uIFdJUiBvcHBvcnR1bml0aWVzCiAgQUNUSVZBVElPTl9QQVk6MzI1LCAgICAgICAgICAgICAvLyBwYWlkIHdoZW4gbGlzdGluZyBnb2VzIGFjdGl2ZTsgY2xhd2VkIGJhY2sgaWYgaXQgZmFpbHMKICBTSUdOX1RPX0FDVElWRV9EQVlTOjcsCiAgUEVORElOR19UT19DTE9TRV9EQVlTOjMwLAogIEZBSUxFRF9MSVNUSU5HX0RBWVM6MTgwLCAgICAgICAgLy8gZGF5cyBhY3RpdmUgYmVmb3JlIGFuIHVuc29sZCBsaXN0aW5nIGV4cGlyZXMKICBTUEhFUkVfU1BMSVQ6MC43MCwgICAgICAgICAgICAgIC8vIGFnZW50IGtlZXBzIDcwJSBvbiBvd24gbGlzdGluZ3MgYW5kIGJ1eWVycwogIFNQSEVSRV9MSVNUSU5HX0VYUEVOU0U6MjAwMCwgICAgLy8gYWdlbnQgY292ZXJzIGxpc3Rpbmctc2lkZSBleHBlbnNlcyBvbiB0aGUgNzAlIHBsYW4KICBCRU5DSF9DT05WOiI1MCUiLCBCRU5DSF9DTE9TRUQ6Ijk1JSIsIEJFTkNIX0RUUDoiNjAgZGF5cyIsCiAgQlJBTkRfTkFNRToiV2F0dGVycyBJbnRlcm5hdGlvbmFsIFJlYWx0eSIsCiAgU1VCTUlUX1VSTDoiIiAgIC8vIEdvb2dsZSBBcHBzIFNjcmlwdCB3ZWIgYXBwIGFkZHJlc3M7IGxlYXZlIGJsYW5rIHRvIGhpZGUgIkVtYWlsIG1lIG15IHJlc3VsdHMiCn07Ci8vIE9wdGlvbmFsIG92ZXJyaWRlcyBmcm9tIGEgc2V0dGluZ3MgbGluZSBvbiB0aGUgcGFnZTogPGRpdiBpZD0id2lyY2ZnIiBoaWRkZW4+S0VZPVZBTFVFO0tFWT1WQUxVRTwvZGl2PgooZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2lyY2ZnIik7aWYoIWUpcmV0dXJuO2UudGV4dENvbnRlbnQuc3BsaXQoIjsiKS5mb3JFYWNoKGZ1bmN0aW9uKHApe3ZhciBpPXAuaW5kZXhPZigiPSIpO2lmKGk8MSlyZXR1cm47dmFyIGs9cC5zbGljZSgwLGkpLnRyaW0oKSx2PXAuc2xpY2UoaSsxKS50cmltKCk7aWYoayBpbiBDRkcpQ0ZHW2tdPSh2IT09IiImJiFpc05hTigrdikpPyt2OnZ9KX0pKCk7CmNvbnN0IG1vbmV5PW49PihuPDA/IuKIkiQiOiIkIikrTWF0aC5yb3VuZChNYXRoLmFicyhuKSkudG9Mb2NhbGVTdHJpbmcoKTsKCi8qID09PT09IFN0YXRlID09PT09ICovCmNvbnN0IFM9e2xpc3Q6MCxidXk6MCxwcmljZTpudWxsLHJhdGU6bnVsbCxzcGxpdDpudWxsLG1rdDpudWxsLHRlY2g6bnVsbCx0cmFpbjpudWxsLGVvOm51bGwsd2s6bnVsbCxjb252Om51bGwsY2xvc2VkOm51bGwsZHRwOm51bGx9OwoKLyogPT09PT0gTW9kZWwgPT09PT0gKi8KZnVuY3Rpb24gd2lyTW9kZWwocCl7CiAgLy8gRGF5LWJ5LWRheSBwaXBlbGluZSBvdmVyIHR3byB5ZWFyczogYXBwb2ludG1lbnQg4oaSIHNpZ25lZCDihpIgYWN0aXZlIOKGkiBwZW5kaW5nIOKGkiBjbG9zZWQuCiAgY29uc3QgZGF5cz03MzAsaW5jPW5ldyBGbG9hdDY0QXJyYXkoZGF5cysxMDAwKSxjbHM9bmV3IEZsb2F0NjRBcnJheShkYXlzKzEwMDApLGFjdD1uZXcgRmxvYXQ2NEFycmF5KGRheXMrMTAwMCk7CiAgY29uc3QgcGVyRGF5PXAud2svNypwLmNvbnYsIHBlckNsb3NlPUNGRy5XSVJfQVZFUkFHRV9TQUxFU19QUklDRSpDRkcuV0lSX0dST1NTX0NPTU1JU1NJT04qQ0ZHLldJUl9BR0VOVF9TSEFSRTsKICBmb3IobGV0IGQ9MDtkPGRheXM7ZCsrKXsKICAgIGNvbnN0IGE9ZCtDRkcuU0lHTl9UT19BQ1RJVkVfREFZUzsKICAgIGluY1thXSs9cGVyRGF5KkNGRy5BQ1RJVkFUSU9OX1BBWTsgYWN0W2FdKz1wZXJEYXk7CiAgICBjb25zdCBjPWErcC5kdHArQ0ZHLlBFTkRJTkdfVE9fQ0xPU0VfREFZUzsKICAgIGluY1tjXSs9cGVyRGF5KnAuY2xvc2VkKnBlckNsb3NlOyBjbHNbY10rPXBlckRheSpwLmNsb3NlZDsKICAgIGluY1thK0NGRy5GQUlMRURfTElTVElOR19EQVlTXS09cGVyRGF5KigxLXAuY2xvc2VkKSpDRkcuQUNUSVZBVElPTl9QQVk7CiAgfQogIGNvbnN0IHN1bT0oYXJyLGEsYik9PntsZXQgcz0wO2ZvcihsZXQgaT1hO2k8YjtpKyspcys9YXJyW2ldO3JldHVybiBzfTsKICByZXR1cm57eTE6c3VtKGluYywwLDM2NSkseTI6c3VtKGluYywzNjUsNzMwKSxjMTpzdW0oY2xzLDAsMzY1KSxjMjpzdW0oY2xzLDM2NSw3MzApLGExOnN1bShhY3QsMCwzNjUpLHBlckNsb3NlfTsKfQpmdW5jdGlvbiBzcGhlcmVXSVIoKXtjb25zdCBnPVMucHJpY2UqUy5yYXRlO3JldHVybiBTLmxpc3QqKGcqQ0ZHLlNQSEVSRV9TUExJVC1DRkcuU1BIRVJFX0xJU1RJTkdfRVhQRU5TRSkrUy5idXkqZypDRkcuU1BIRVJFX1NQTElUfQpmdW5jdGlvbiBjdXJyZW50QnJva2VyKCl7Y29uc3QgZ2NpPShTLmxpc3QrUy5idXkpKlMucHJpY2UqUy5yYXRlO2NvbnN0IGV4cD1TLm1rdCtTLnRlY2grUy50cmFpbitTLmVvO3JldHVybntnY2ksYnJrOmdjaSpTLnNwbGl0LGV4cCxuZXQ6Z2NpKigxLVMuc3BsaXQpLWV4cH19CmZ1bmN0aW9uIHJlc3VsdHMob3Zlcj17fSl7Y29uc3QgcD17d2s6Uy53ayxjb252OlMuY29udi8xMCxjbG9zZWQ6Uy5jbG9zZWQvMTAsZHRwOlMuZHRwLC4uLm92ZXJ9O2NvbnN0IG09d2lyTW9kZWwocCksc3A9c3BoZXJlV0lSKCk7cmV0dXJuey4uLm0sc3AsdDE6bS55MStzcCx0MjptLnkyK3NwfX0KCi8qID09PT09IFN0ZXBzID09PT09ICovCmNvbnN0IHN0YWdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFnZSIpOwpjb25zdCBjb3VudGVyPShrZXkscSk9Pih7c2VjOiJZb3VyIGN1cnJlbnQgYnVzaW5lc3MiLHJlbmRlcigpe3JldHVybiBgPGgyPiR7cX08L2gyPgogIDxkaXYgY2xhc3M9ImNvdW50ZXIiPjxidXR0b24gY2xhc3M9InBtIiBkYXRhLWQ9Ii0xIiBhcmlhLWxhYmVsPSJGZXdlciI+4oCTPC9idXR0b24+PGRpdiBjbGFzcz0iY3ZhbCIgaWQ9ImN2Ij4ke1Nba2V5XX08L2Rpdj48YnV0dG9uIGNsYXNzPSJwbSIgZGF0YS1kPSIxIiBhcmlhLWxhYmVsPSJNb3JlIj4rPC9idXR0b24+PC9kaXY+YH0sCiAgYmluZCgpe3N0YWdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wbSIpLmZvckVhY2goYj0+Yi5vbmNsaWNrPSgpPT57U1trZXldPU1hdGgubWF4KDAsTWF0aC5taW4oMjAwLFNba2V5XSsgK2IuZGF0YXNldC5kKSk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN2IikudGV4dENvbnRlbnQ9U1trZXldfSl9LHZhbGlkOigpPT50cnVlfSk7CmNvbnN0IGRvbGxhcnM9KGtleSxxLGhpbnQpPT4oe3NlYzoiWW91ciBjdXJyZW50IGJ1c2luZXNzIixyZW5kZXIoKXtyZXR1cm4gYDxoMj4ke3F9PC9oMj4KICA8bGFiZWwgY2xhc3M9Im1vbmV5Ij48c3Bhbj4kPC9zcGFuPjxpbnB1dCBpZD0iaW4iIGlucHV0bW9kZT0ibnVtZXJpYyIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSIwIiB2YWx1ZT0iJHtTW2tleV09PW51bGw/IiI6U1trZXldLnRvTG9jYWxlU3RyaW5nKCl9IiBhcmlhLWxhYmVsPSIke3F9Ij48L2xhYmVsPiR7aGludD9gPHAgY2xhc3M9ImhpbnQiPiR7aGludH08L3A+YDoiIn1gfSwKICBiaW5kKCl7Y29uc3QgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW4iKTtpLmZvY3VzKCk7aS5vbmlucHV0PSgpPT57Y29uc3Qgdj1pLnZhbHVlLnJlcGxhY2UoL1teMC05XS9nLCIiKTtTW2tleV09dj09PSIiP251bGw6K3Y7aS52YWx1ZT12PT09IiI/IiI6KCt2KS50b0xvY2FsZVN0cmluZygpO3VwZCgpfX0sdmFsaWQ6KCk9PlNba2V5XSE9bnVsbH0pOwpjb25zdCBwY3Q9KGtleSxxLG9wdHMsaGludCk9Pih7c2VjOiJZb3VyIGN1cnJlbnQgYnVzaW5lc3MiLHJlbmRlcigpe2NvbnN0IHY9U1trZXldPT1udWxsPyIiOisoU1trZXldKjEwMCkudG9GaXhlZCgyKTtyZXR1cm4gYDxoMj4ke3F9PC9oMj4KICA8ZGl2IGNsYXNzPSJjaGlwcyI+JHtvcHRzLm1hcChvPT5gPGJ1dHRvbiBjbGFzcz0ib3B0JHtTW2tleV0hPW51bGwmJk1hdGguYWJzKFNba2V5XSoxMDAtbyk8MWUtNj8iIG9uIjoiIn0iIGRhdGEtdj0iJHtvfSI+JHtvfSU8L2J1dHRvbj5gKS5qb2luKCIiKX08L2Rpdj4KICA8bGFiZWwgY2xhc3M9Im1vbmV5IiBzdHlsZT0ibWF4LXdpZHRoOjI2MHB4Ij48aW5wdXQgaWQ9ImluIiBpbnB1dG1vZGU9ImRlY2ltYWwiIHBsYWNlaG9sZGVyPSJPdGhlciIgdmFsdWU9IiR7dn0iIGFyaWEtbGFiZWw9IiR7cX0iPjxzcGFuPiU8L3NwYW4+PC9sYWJlbD4ke2hpbnQ/YDxwIGNsYXNzPSJoaW50Ij4ke2hpbnR9PC9wPmA6IiJ9YH0sCiAgYmluZCgpe2NvbnN0IGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImluIik7c3RhZ2UucXVlcnlTZWxlY3RvckFsbCgiLm9wdCIpLmZvckVhY2goYj0+Yi5vbmNsaWNrPSgpPT57U1trZXldPStiLmRhdGFzZXQudi8xMDA7aS52YWx1ZT1iLmRhdGFzZXQudjttYXJrKCl9KTsKICAgaS5vbmlucHV0PSgpPT57Y29uc3Qgdj1wYXJzZUZsb2F0KGkudmFsdWUpO1Nba2V5XT1pc0Zpbml0ZSh2KSYmdj49MCYmdjw9MTAwP3YvMTAwOm51bGw7bWFyaygpfTsKICAgZnVuY3Rpb24gbWFyaygpe3N0YWdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5vcHQiKS5mb3JFYWNoKGI9PmIuY2xhc3NMaXN0LnRvZ2dsZSgib24iLFNba2V5XSE9bnVsbCYmTWF0aC5hYnMoK2IuZGF0YXNldC52LVNba2V5XSoxMDApPDFlLTYpKTt1cGQoKX19LHZhbGlkOigpPT5TW2tleV0hPW51bGx9KTsKY29uc3QgdGVucz0oa2V5LHEsYmVuY2hUeHQsc3VmZml4KT0+KHtzZWM6IllvdXIgb3Bwb3J0dW5pdHkgYXQgV0lSIixyZW5kZXIoKXtyZXR1cm4gYDxoMj4ke3F9PC9oMj4KICA8ZGl2IGNsYXNzPSJ0ZW5zIj4ke1sxLDIsMyw0LDUsNiw3LDgsOSwxMF0ubWFwKG49PmA8YnV0dG9uIGNsYXNzPSJvcHQke1Nba2V5XT09PW4/IiBvbiI6IiJ9IiBkYXRhLXY9IiR7bn0iPiR7bn08L2J1dHRvbj5gKS5qb2luKCIiKX08L2Rpdj4KICA8ZGl2IGlkPSJyZXYiPiR7U1trZXldP3JldmVhbCgpOiIifTwvZGl2PmA7CiAgZnVuY3Rpb24gcmV2ZWFsKCl7cmV0dXJuIGA8ZGl2IGNsYXNzPSJhbmltIiBzdHlsZT0iZGlzcGxheTpncmlkO2dhcDoxNHB4Ij48ZGl2IGNsYXNzPSJjb25maXJtIj4ke1Nba2V5XX0gb3V0IG9mIDEwID0gJHtTW2tleV0qMTB9JTwvZGl2PjxkaXYgY2xhc3M9ImJlbmNoIj48cD4ke2JlbmNoVHh0fTwvcD48L2Rpdj48L2Rpdj5gfX0sCiAgYmluZCgpe3N0YWdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5vcHQiKS5mb3JFYWNoKGI9PmIub25jbGljaz0oKT0+e1Nba2V5XT0rYi5kYXRhc2V0LnY7c3RhZ2UucXVlcnlTZWxlY3RvckFsbCgiLm9wdCIpLmZvckVhY2goeD0+eC5jbGFzc0xpc3QudG9nZ2xlKCJvbiIseD09PWIpKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXYiKS5pbm5lckhUTUw9YDxkaXYgY2xhc3M9ImFuaW0iIHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z2FwOjE0cHgiPjxkaXYgY2xhc3M9ImNvbmZpcm0iPiR7U1trZXldfSBvdXQgb2YgMTAgPSAke1Nba2V5XSoxMH0lPC9kaXY+PGRpdiBjbGFzcz0iYmVuY2giPjxwPiR7YmVuY2hUeHR9PC9wPjwvZGl2PjwvZGl2PmA7dXBkKCl9KX0sdmFsaWQ6KCk9PlNba2V5XSE9bnVsbH0pOwoKY29uc3QgU1RFUFM9Wwoge3NlYzoiIixkYXJrOnRydWUsaW50cm86dHJ1ZSxub0JhY2s6dHJ1ZSxyZW5kZXIoKXtyZXR1cm4gYDxkaXYgY2xhc3M9ImllYiI+JHtDRkcuQlJBTkRfTkFNRX08L2Rpdj4KICAgPGgxIGNsYXNzPSJpaCI+WW91ciBDb21taXNzaW9uIFNwbGl0IElzIE5vdCBZb3VyIEluY29tZS48L2gxPjxkaXYgY2xhc3M9InJ1bGUiPjwvZGl2PgogICA8cCBjbGFzcz0iaXN1YiI+RmluZCBvdXQgd2hhdCB5b3UnZCBhY3R1YWxseSBlYXJuIGF0IFdJUi48L3A+CiAgIDxwIGNsYXNzPSJpYm9keSI+RW50ZXIgeW91ciBjdXJyZW50IGJ1c2luZXNzLCBleHBlbnNlcywgYW5kIHBlcmZvcm1hbmNlLiBXZSdsbCBjb21wYXJlIHdoYXQgeW91J3JlIHRha2luZyBob21lIHRvZGF5IHdpdGggd2hhdCB5b3VyIG51bWJlcnMgY291bGQgcHJvZHVjZSBhdCBXSVIuPC9wPmB9LHZhbGlkOigpPT50cnVlLGN0YToiU2hvdyBNZSBNeSBOdW1iZXIg4oaSIiwKICAgYWZ0ZXI6YDxwIGNsYXNzPSJpbWljcm8iPlRha2VzIGFib3V0IDMgbWludXRlcyDCtyBZb3VyIG51bWJlcnMsIG5vdCBvdXJzIMK3IE5vIG9ibGlnYXRpb248L3A+PHAgY2xhc3M9Iml0cnVzdCI+VGhlIGNhbGN1bGF0b3IgZG9lc24ndCBhc3N1bWUgeW91J3JlIGEgdG9wIHByb2R1Y2VyLiBZb3VyIHByb2plY3Rpb24gY2hhbmdlcyBiYXNlZCBvbiB0aGUgYWN0aXZpdHkgYW5kIGNvbnZlcnNpb24gbnVtYmVycyB5b3UgZW50ZXIuPC9wPmB9LAoge3NlYzoiWW91ciBjdXJyZW50IGJ1c2luZXNzIixkYXJrOnRydWUscmVuZGVyKCl7cmV0dXJuIGA8aDE+Rmlyc3QsIGxldCdzIGNhbGN1bGF0ZSB3aGF0IHlvdXIgYnVzaW5lc3MgYWxyZWFkeSBwcm9kdWNlcy48L2gxPjxkaXYgY2xhc3M9InJ1bGUiPjwvZGl2PgogICA8cCBjbGFzcz0ic3ViIj5TdGFydCB3aXRoIHRoZSBidXNpbmVzcyB5b3UgZXhwZWN0IHRvIGdlbmVyYXRlIHlvdXJzZWxmLCByZWdhcmRsZXNzIG9mIHdoaWNoIGJyb2tlcmFnZSB5b3UncmUgd2l0aC48L3A+YH0sdmFsaWQ6KCk9PnRydWV9LAogY291bnRlcigibGlzdCIsIkhvdyBtYW55IGxpc3RpbmdzIGRvIHlvdSBleHBlY3QgdG8gY2xvc2UgZnJvbSByZWZlcnJhbHMgb3Igb3RoZXIgc291cmNlcyBpbiB0aGUgbmV4dCAxMiBtb250aHM/IiksCiBjb3VudGVyKCJidXkiLCJIb3cgbWFueSBidXllcnMgZG8geW91IGV4cGVjdCB0byBjbG9zZSBmcm9tIHJlZmVycmFscyBvciBvdGhlciBzb3VyY2VzIGluIHRoZSBuZXh0IDEyIG1vbnRocz8iKSwKIGRvbGxhcnMoInByaWNlIiwiV2hhdOKAmXMgdGhlIGF2ZXJhZ2UgcHJpY2Ugb2YgdGhlIGhvbWVzIHlvdSB0eXBpY2FsbHkgc2VsbCB0aHJvdWdoIHJlZmVycmFscz8iKSwKIHBjdCgicmF0ZSIsIldoYXQncyB5b3VyIGF2ZXJhZ2UgZ3Jvc3MgY29tbWlzc2lvbiByYXRlPyIsWzIsMi41LDNdKSwKIHBjdCgic3BsaXQiLCJXaGF0IHBlcmNlbnRhZ2Ugb2YgeW91ciBncm9zcyBjb21taXNzaW9uIGRvZXMgeW91ciBjdXJyZW50IGJyb2tlciBrZWVwPyIsWzEwLDIwLDMwLDQwLDUwXSwiSWYgeW91J3JlIG9uIGEgMTAwJSBwbGFuIHdpdGggZmxhdCBmZWVzLCBlbnRlciAwJSBhbmQgcHV0IHRob3NlIGZlZXMgaW4gdGhlIG5leHQgZmV3IHF1ZXN0aW9ucy4iKSwKIGRvbGxhcnMoIm1rdCIsIkhvdyBtdWNoIGRpZCB5b3Ugc3BlbmQgb24gbWFya2V0aW5nIG9yIGxlYWQgZ2VuZXJhdGlvbiBsYXN0IHllYXI/IiksCiBkb2xsYXJzKCJ0ZWNoIiwiSG93IG11Y2ggZGlkIHlvdSBzcGVuZCBvbiB0ZWNobm9sb2d5IGxhc3QgeWVhcj8iKSwKIGRvbGxhcnMoInRyYWluIiwiSG93IG11Y2ggZGlkIHlvdSBzcGVuZCBvbiB0cmFpbmluZyBvciBjb2FjaGluZyBsYXN0IHllYXI/IiksCiBkb2xsYXJzKCJlbyIsIkhvdyBtdWNoIGRpZCB5b3UgcGF5IHRvd2FyZCBFJk8gaW5zdXJhbmNlIG9yIG90aGVyIHRyYW5zYWN0aW9uLXJlbGF0ZWQgZmVlcyBsYXN0IHllYXI/IiksCiB7c2VjOiJZb3VyIG9wcG9ydHVuaXR5IGF0IFdJUiIsZGFyazp0cnVlLHJlbmRlcigpe3JldHVybiBgPGgxPk5vdyBsZXQncyBtb2RlbCB5b3VyIG9wcG9ydHVuaXR5IGF0IFdJUi48L2gxPjxkaXYgY2xhc3M9InJ1bGUiPjwvZGl2PgogICA8cCBjbGFzcz0ic3ViIj5BIGZldyBxdWVzdGlvbnMgYWJvdXQgaG93IHlvdSdkIHdvcmsgdGhlIGxpc3RpbmcgYXBwb2ludG1lbnRzIFdJUiBzY2hlZHVsZXMgZm9yIHlvdS48L3A+YH0sdmFsaWQ6KCk9PnRydWV9LAoge3NlYzoiWW91ciBvcHBvcnR1bml0eSBhdCBXSVIiLHJlbmRlcigpe3JldHVybiBgPGgyPkhvdyBtYW55IGxpc3RpbmcgYXBwb2ludG1lbnRzIHdvdWxkIHlvdSBsaWtlIFdJUiB0byBzY2hlZHVsZSBmb3IgeW91PzwvaDI+CiAgIDxkaXYgY2xhc3M9ImNhcmRzIj4ke1sxLDIsMyw0LDVdLm1hcChuPT5gPGJ1dHRvbiBjbGFzcz0ib3B0JHtTLndrPT09bj8iIG9uIjoiIn0iIGRhdGEtdj0iJHtufSI+JHtufTxzbWFsbD5wZXIgd2Vlazwvc21hbGw+PC9idXR0b24+YCkuam9pbigiIil9PC9kaXY+CiAgIDxkaXYgaWQ9InJldiI+JHtTLndrP2A8ZGl2IGNsYXNzPSJjb25maXJtIGFuaW0iPlRoYXQncyBhcHByb3hpbWF0ZWx5ICR7KFMud2sqNTIvMTIpLnRvRml4ZWQoMSl9IGFwcG9pbnRtZW50cyBwZXIgbW9udGguPC9kaXY+YDoiIn08L2Rpdj5gfSwKICBiaW5kKCl7c3RhZ2UucXVlcnlTZWxlY3RvckFsbCgiLm9wdCIpLmZvckVhY2goYj0+Yi5vbmNsaWNrPSgpPT57Uy53az0rYi5kYXRhc2V0LnY7c3RhZ2UucXVlcnlTZWxlY3RvckFsbCgiLm9wdCIpLmZvckVhY2goeD0+eC5jbGFzc0xpc3QudG9nZ2xlKCJvbiIseD09PWIpKTsKICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJldiIpLmlubmVySFRNTD1gPGRpdiBjbGFzcz0iY29uZmlybSBhbmltIj5UaGF0J3MgYXBwcm94aW1hdGVseSAkeyhTLndrKjUyLzEyKS50b0ZpeGVkKDEpfSBhcHBvaW50bWVudHMgcGVyIG1vbnRoLjwvZGl2PmA7dXBkKCl9KX0sdmFsaWQ6KCk9PlMud2shPW51bGx9LAogdGVucygiY29udiIsIk91dCBvZiBldmVyeSAxMCBzZWxsZXIgYXBwb2ludG1lbnRzIHlvdSBhdHRlbmQsIGhvdyBtYW55IGRvIHlvdSB0aGluayB5b3UgY2FuIHR1cm4gaW50byBhIHNpZ25lZCBsaXN0aW5nIGFncmVlbWVudD8iLGBUb3AtcGVyZm9ybWluZyBXSVIgYWdlbnRzIGN1cnJlbnRseSBjb252ZXJ0IGFwcHJveGltYXRlbHkgPGI+JHtDRkcuQkVOQ0hfQ09OVn08L2I+IG9mIHF1YWxpZmllZCBzZWxsZXIgYXBwb2ludG1lbnRzLmApLAogdGVucygiY2xvc2VkIiwiT3V0IG9mIGV2ZXJ5IDEwIGxpc3RpbmdzIHlvdSB0YWtlLCBob3cgbWFueSBkbyB5b3UgdGhpbmsgeW91J2xsIHN1Y2Nlc3NmdWxseSBjbG9zZT8iLGBUb3AtcGVyZm9ybWluZyBXSVIgYWdlbnRzIGN1cnJlbnRseSBjbG9zZSBhcHByb3hpbWF0ZWx5IDxiPiR7Q0ZHLkJFTkNIX0NMT1NFRH08L2I+IG9mIHRoZWlyIGFjdGl2ZSBsaXN0aW5ncy5gKSwKIHtzZWM6IllvdXIgb3Bwb3J0dW5pdHkgYXQgV0lSIixyZW5kZXIoKXtjb25zdCByPSgpPT5gPGRpdiBjbGFzcz0iYmVuY2ggYW5pbSI+PHA+VG9wIFdJUiBhZ2VudHMgYXZlcmFnZSBhcHByb3hpbWF0ZWx5IDxiPiR7Q0ZHLkJFTkNIX0RUUH0gdG8gcGVuZGluZzwvYj4uPC9wPjwvZGl2PmA7cmV0dXJuIGA8aDI+T24gYXZlcmFnZSwgaG93IGxvbmcgZG8geW91IHRoaW5rIGl0IHdpbGwgdGFrZSB5b3UgdG8gZ2V0IGEgbGlzdGluZyBwZW5kaW5nPzwvaDI+CiAgIDxkaXYgY2xhc3M9ImNhcmRzIj4ke1szMCw0NSw2MCw3NSw5MCwxMjBdLm1hcChuPT5gPGJ1dHRvbiBjbGFzcz0ib3B0JHtTLmR0cD09PW4/IiBvbiI6IiJ9IiBkYXRhLXY9IiR7bn0iPiR7bn08c21hbGw+ZGF5czwvc21hbGw+PC9idXR0b24+YCkuam9pbigiIil9PC9kaXY+CiAgIDxkaXYgaWQ9InJldiI+JHtTLmR0cD9yKCk6IiJ9PC9kaXY+YH0sCiAgYmluZCgpe3N0YWdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5vcHQiKS5mb3JFYWNoKGI9PmIub25jbGljaz0oKT0+e1MuZHRwPStiLmRhdGFzZXQudjtzdGFnZS5xdWVyeVNlbGVjdG9yQWxsKCIub3B0IikuZm9yRWFjaCh4PT54LmNsYXNzTGlzdC50b2dnbGUoIm9uIix4PT09YikpOwogICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmV2IikuaW5uZXJIVE1MPWA8ZGl2IGNsYXNzPSJiZW5jaCBhbmltIj48cD5Ub3AgV0lSIGFnZW50cyBhdmVyYWdlIGFwcHJveGltYXRlbHkgPGI+JHtDRkcuQkVOQ0hfRFRQfSB0byBwZW5kaW5nPC9iPi48L3A+PC9kaXY+YDt1cGQoKX0pfSx2YWxpZDooKT0+Uy5kdHAhPW51bGx9LAoge3NlYzoiWW91ciBvcHBvcnR1bml0eSBhdCBXSVIiLHJlbmRlcigpe2NvbnN0IHBjPUNGRy5XSVJfQVZFUkFHRV9TQUxFU19QUklDRSpDRkcuV0lSX0dST1NTX0NPTU1JU1NJT04qQ0ZHLldJUl9BR0VOVF9TSEFSRTtyZXR1cm4gYDxoMj5Gb3IgV0lSLXByb3ZpZGVkIG9wcG9ydHVuaXRpZXMsIHdlJ2xsIHVzZSB0aGUgYXZlcmFnZSBzYWxlcyBwcmljZSBmb3IgeW91ciBtYXJrZXQ6PC9oMj4KICAgPGRpdiBjbGFzcz0iaGVybyI+JHttb25leShDRkcuV0lSX0FWRVJBR0VfU0FMRVNfUFJJQ0UpfTwvZGl2PgogICA8cD5CYXNlZCBvbiBXSVIgaGlzdG9yaWNhbCBjbG9zaW5ncyBhbmQgY29uc3VtZXIgcHJlZmVyZW5jZSBkYXRhLCB0aGlzIG1vZGVsIGFzc3VtZXMgV0lSLWdlbmVyYXRlZCBsaXN0aW5nIG9wcG9ydHVuaXRpZXMgcHJvZHVjZSBhcHByb3hpbWF0ZWx5IDxiPiR7Q0ZHLldJUl9HUk9TU19DT01NSVNTSU9OKjEwMH0lIGdyb3NzIGNvbW1pc3Npb24gb24gdGhlIGxpc3Rpbmcgc2lkZS48L2I+PC9wPgogICA8cCBjbGFzcz0iaGludCI+T24gdGhlc2UgbGlzdGluZ3MgeW91IGVhcm4gJHtDRkcuV0lSX0FHRU5UX1NIQVJFKjEwMH0lIG9mIGdyb3NzICgke21vbmV5KHBjKX0gcGVyIGNsb3NpbmcpLCBwbHVzICR7bW9uZXkoQ0ZHLkFDVElWQVRJT05fUEFZKX0gd2hlbiBlYWNoIGxpc3RpbmcgZ29lcyBhY3RpdmUuIElmIGEgbGlzdGluZyBkb2Vzbid0IHNlbGwsIHRoZSAke21vbmV5KENGRy5BQ1RJVkFUSU9OX1BBWSl9IGlzIHBhaWQgYmFjay48L3A+YH0sdmFsaWQ6KCk9PnRydWUsY3RhOiJCdWlsZCBNeSBJbmNvbWUgTW9kZWwg4oaSIixuZXh0OiJjYWxjIn0sCl07CgovKiA9PT09PSBOYXZpZ2F0aW9uID09PT09ICovCmxldCBpPTAscGhhc2U9InEiOwpjb25zdCBiYXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhciIpLGJhY2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhY2siKSxzZWNuYW1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNuYW1lIik7CmZ1bmN0aW9uIHVwZCgpe2NvbnN0IGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvIik7aWYoYiYmU1RFUFNbaV0pYi5kaXNhYmxlZD0hU1RFUFNbaV0udmFsaWQoKX0KZnVuY3Rpb24gc2hvdygpewogIHdpbmRvdy5zY3JvbGxUbyh7dG9wOjAsYmVoYXZpb3I6InNtb290aCJ9KTsKICBpZihwaGFzZT09PSJxIil7CiAgICBjb25zdCBzdD1TVEVQU1tpXTtzZWNuYW1lLnRleHRDb250ZW50PXN0LnNlYztiYXIuc3R5bGUud2lkdGg9KGkvKFNURVBTLmxlbmd0aCsyKSoxMDApKyIlIjtiYWNrLmhpZGRlbj1pPT09MDsKICAgIHN0YWdlLmlubmVySFRNTD1gPHNlY3Rpb24gY2xhc3M9ImNhcmQgYW5pbSR7c3QuZGFyaz8iIGRhcmsiOiIifSR7c3QuaW50cm8/IiBpbnRybyI6IiJ9Ij4ke3N0LnJlbmRlcigpfTxidXR0b24gY2xhc3M9ImdvJHtzdC5pbnRybz8iIGJpZyI6IiJ9IiBpZD0iZ28iPiR7c3QuY3RhfHwiQ29udGludWUg4oaSIn08L2J1dHRvbj4ke3N0LmFmdGVyfHwiIn08L3NlY3Rpb24+YDtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoIm9uaW50cm8iLCEhc3QuaW50cm8pOwogICAgc3QuYmluZCYmc3QuYmluZCgpO3VwZCgpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvIikub25jbGljaz0oKT0+e2lmKCFzdC52YWxpZCgpKXJldHVybjtpZihzdC5uZXh0PT09ImNhbGMiKXtwaGFzZT0iY2FsYyI7c2hvdygpfWVsc2V7aSsrO3Nob3coKX19OwogIH1lbHNlIGlmKHBoYXNlPT09ImNhbGMiKXsKICAgIGJhY2suaGlkZGVuPXRydWU7c2VjbmFtZS50ZXh0Q29udGVudD0iWW91ciBXSVIgaW5jb21lIG1vZGVsIjtiYXIuc3R5bGUud2lkdGg9KChTVEVQUy5sZW5ndGgrMSkvKFNURVBTLmxlbmd0aCsyKSoxMDApKyIlIjsKICAgIHN0YWdlLmlubmVySFRNTD1gPHNlY3Rpb24gY2xhc3M9ImNhcmQgZGFyayBhbmltIGxvYWRpbmciPjxkaXYgY2xhc3M9InNwaW4iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48aDI+QnVpbGRpbmcgeW91ciBXSVIgaW5jb21lIG1vZGVs4oCmPC9oMj48ZGl2IGNsYXNzPSJzdGVwcyIgaWQ9InN0Ij48L2Rpdj48L3NlY3Rpb24+YDsKICAgIGNvbnN0IG1zZ3M9WyJDYWxjdWxhdGluZyBhcHBvaW50bWVudHPigKYiLCJDYWxjdWxhdGluZyBjb252ZXJzaW9u4oCmIiwiQ2FsY3VsYXRpbmcgY2xvc2luZ3PigKYiLCJDYWxjdWxhdGluZyBwaXBlbGluZSB0aW1pbmfigKYiLCJDYWxjdWxhdGluZyBwcm9qZWN0ZWQgaW5jb21l4oCmIl07CiAgICBjb25zdCByZWR1Y2U9bWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzO2xldCBrPTA7Y29uc3QgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0Iik7ZWwudGV4dENvbnRlbnQ9bXNnc1swXTsKICAgIGNvbnN0IHQ9c2V0SW50ZXJ2YWwoKCk9PntrKys7aWYoazxtc2dzLmxlbmd0aCllbC50ZXh0Q29udGVudD1tc2dzW2tdO2Vsc2V7Y2xlYXJJbnRlcnZhbCh0KTtwaGFzZT0icmVzIjtzaG93KCl9fSxyZWR1Y2U/MTUwOjY1MCk7CiAgfWVsc2V7cmVuZGVyUmVzdWx0cygpfQp9CmJhY2sub25jbGljaz0oKT0+e2lmKHBoYXNlIT09InEiKXtwaGFzZT0icSI7aT1TVEVQUy5sZW5ndGgtMX1lbHNlIGlmKGk+MClpLS07c2hvdygpfTsKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2lmKGUua2V5PT09IkVudGVyIiYmcGhhc2U9PT0icSIpe2NvbnN0IGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvIik7aWYoYiYmIWIuZGlzYWJsZWQpe2UucHJldmVudERlZmF1bHQoKTtiLmNsaWNrKCl9fX0pOwoKZnVuY3Rpb24gcmVuZGVyUmVzdWx0cygpewogIGJhY2suaGlkZGVuPWZhbHNlO2Jhci5zdHlsZS53aWR0aD0iMTAwJSI7c2VjbmFtZS50ZXh0Q29udGVudD0iWW91ciBXSVIgaW5jb21lIG1vZGVsIjsKICBjb25zdCBSPXJlc3VsdHMoKSxDPWN1cnJlbnRCcm9rZXIoKSxzZWxmPVMubGlzdCtTLmJ1eTsKICBjb25zdCBMRVY9WwogICAge2s6IndrIixsYWJlbDoiV0lSLXNldCBhcHBvaW50bWVudHMgcGVyIHdlZWsiLG1pbjoxLG1heDo1LHN0ZXA6MSxmbXQ6dj0+disiIHBlciB3ZWVrIix2ZXJiOmQ9PmBUYWtlICR7TWF0aC5hYnMoZCl9ICR7ZD4wPyJtb3JlIjoiZmV3ZXIifSBXSVItc2V0IGFwcG9pbnRtZW50JHtNYXRoLmFicyhkKT09PTE/IiI6InMifSBwZXIgd2Vla2B9LAogICAge2s6ImNvbnYiLGxhYmVsOiJDb252ZXJ0ZWQgYXQgdGhlIGtpdGNoZW4gdGFibGUiLG1pbjoxLG1heDoxMCxzdGVwOjEsZm10OnY9PnYrIiBvdXQgb2YgMTAiLHZlcmI6ZD0+YENvbnZlcnQgJHtNYXRoLmFicyhkKX0gJHtkPjA/Im1vcmUiOiJmZXdlciJ9IG91dCBvZiAxMCBhdCB0aGUga2l0Y2hlbiB0YWJsZWB9LAogICAge2s6ImNsb3NlZCIsbGFiZWw6Ikxpc3RpbmdzIGNsb3NlZCIsbWluOjEsbWF4OjEwLHN0ZXA6MSxmbXQ6dj0+disiIG91dCBvZiAxMCIsdmVyYjpkPT5gQ2xvc2UgJHtNYXRoLmFicyhkKX0gJHtkPjA/Im1vcmUiOiJmZXdlciJ9IG91dCBvZiAxMCBsaXN0aW5nc2B9LAogICAge2s6ImR0cCIsbGFiZWw6IkRheXMgdG8gcGVuZGluZyIsbWluOjE1LG1heDoxODAsc3RlcDoxNSxmbXQ6dj0+disiIGRheXMiLHZlcmI6ZD0+YEdldCBsaXN0aW5ncyBwZW5kaW5nICR7TWF0aC5hYnMoZCl9IGRheXMgJHtkPDA/ImZhc3RlciI6InNsb3dlciJ9YH0sCiAgICB7azoibGlzdCIsbGFiZWw6IlNwaGVyZSAmIHJlZmVycmFsIGxpc3RpbmdzIHBlciB5ZWFyIixtaW46MCxtYXg6MTAwLHN0ZXA6MSxmbXQ6dj0+disiIGxpc3RpbmdzIix2ZXJiOmQ9PmBDbG9zZSAke01hdGguYWJzKGQpfSAke2Q+MD8ibW9yZSI6ImZld2VyIn0gc3BoZXJlIG9yIHJlZmVycmFsIGxpc3Rpbmcke01hdGguYWJzKGQpPT09MT8iIjoicyJ9YH0sCiAgICB7azoiYnV5IixsYWJlbDoiU3BoZXJlICYgcmVmZXJyYWwgYnV5ZXJzIHBlciB5ZWFyIixtaW46MCxtYXg6MTAwLHN0ZXA6MSxmbXQ6dj0+disiIGJ1eWVycyIsdmVyYjpkPT5gQ2xvc2UgJHtNYXRoLmFicyhkKX0gJHtkPjA/Im1vcmUiOiJmZXdlciJ9IHNwaGVyZSBvciByZWZlcnJhbCBidXllciR7TWF0aC5hYnMoZCk9PT0xPyIiOiJzIn1gfSwKICBdOwogIGNvbnN0IFc9e3drOlMud2ssY29udjpTLmNvbnYsY2xvc2VkOlMuY2xvc2VkLGR0cDpTLmR0cCxsaXN0OlMubGlzdCxidXk6Uy5idXl9OwogIGNvbnN0IGZpcnN0PXt3azoxLGNvbnY6MSxjbG9zZWQ6MSxkdHA6LTE1LGxpc3Q6MSxidXk6MX07CiAgY29uc3Qgd2hhdD1MRVYubWFwKGw9Pih7Li4ubCx2Ok1hdGgubWluKGwubWF4LE1hdGgubWF4KGwubWluLFdbbC5rXStmaXJzdFtsLmtdKSl9KSk7CiAgZnVuY3Rpb24gdG90KG8pe2NvbnN0IHE9ey4uLlcsLi4ub30sZz1TLnByaWNlKlMucmF0ZTtjb25zdCBtPXdpck1vZGVsKHt3azpxLndrLGNvbnY6cS5jb252LzEwLGNsb3NlZDpxLmNsb3NlZC8xMCxkdHA6cS5kdHB9KTsKICAgIGNvbnN0IHNwPXEubGlzdCooZypDRkcuU1BIRVJFX1NQTElULUNGRy5TUEhFUkVfTElTVElOR19FWFBFTlNFKStxLmJ1eSpnKkNGRy5TUEhFUkVfU1BMSVQ7cmV0dXJue3QxOm0ueTErc3AsdDI6bS55MitzcH19CiAgc3RhZ2UuaW5uZXJIVE1MPWAKICA8c2VjdGlvbiBjbGFzcz0iY2FyZCBhbmltIj4KICAgIDxoMT5IZXJlJ3Mgd2hhdCB5b3UgdG9sZCB1cyB5b3UnZCBkby48L2gxPgogICAgPGRpdiBjbGFzcz0idGlsZXMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlIj48c3BhbiBjbGFzcz0iayI+V0lSIGFwcG9pbnRtZW50czwvc3Bhbj48c3BhbiBjbGFzcz0idiI+JHtTLndrfSBwZXIgd2Vlazwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PHNwYW4gY2xhc3M9ImsiPkFwcG9pbnRtZW50IGNvbnZlcnNpb248L3NwYW4+PHNwYW4gY2xhc3M9InYiPiR7Uy5jb252fSBvdXQgb2YgMTAg4oCUICR7Uy5jb252KjEwfSU8L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUiPjxzcGFuIGNsYXNzPSJrIj5MaXN0aW5ncyBzdWNjZXNzZnVsbHkgY2xvc2VkPC9zcGFuPjxzcGFuIGNsYXNzPSJ2Ij4ke1MuY2xvc2VkfSBvdXQgb2YgMTAg4oCUICR7Uy5jbG9zZWQqMTB9JTwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PHNwYW4gY2xhc3M9ImsiPkF2ZXJhZ2UgdGltZSB0byBwZW5kaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJ2Ij4ke1MuZHRwfSBkYXlzPC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlIj48c3BhbiBjbGFzcz0iayI+U2VsZi1nZW5lcmF0ZWQgYnVzaW5lc3M8L3NwYW4+PHNwYW4gY2xhc3M9InYiPiR7c2VsZn0gdHJhbnNhY3Rpb24ke3NlbGY9PT0xPyIiOiJzIn0veWVhcjwvc3Bhbj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGgyPkJhc2VkIG9uIHRob3NlIGFzc3VtcHRpb25zOjwvaDI+CiAgPC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0iY2FyZCBkYXJrIGFuaW0iPgogICAgPGRpdiBjbGFzcz0ibGJsIj5Qcm9qZWN0ZWQgWWVhciAxIEluY29tZTwvZGl2PgogICAgPGRpdiBjbGFzcz0iaGVybyI+JHttb25leShSLnQxKX08L2Rpdj4KICAgIDxwIGNsYXNzPSJzdWIiPlN0YXJ0aW5nIHdpdGggbm8gZXhpc3RpbmcgV0lSIHBpcGVsaW5lLjwvcD4KICAgIDxkaXYgY2xhc3M9InBhcnRzIj4KICAgICAgPGRpdiBjbGFzcz0icGFydCI+PHNwYW4+V0lSLXByb3ZpZGVkIG9wcG9ydHVuaXRpZXM8L3NwYW4+PGI+JHttb25leShSLnkxKX08L2I+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBhcnQiPjxzcGFuPllvdXIgc3BoZXJlICsgcmVmZXJyYWxzPC9zcGFuPjxiPiske21vbmV5KFIuc3ApfTwvYj48L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9ImNhcmQgYW5pbSI+CiAgICA8ZGl2IGNsYXNzPSJsYmwiPlllYXIgMjwvZGl2PgogICAgPGRpdiBjbGFzcz0iaGVybyI+JHttb25leShSLnQyKX08L2Rpdj4KICAgIDxwIGNsYXNzPSJzdWIiPldpdGggYW4gZXN0YWJsaXNoZWQgV0lSIHBpcGVsaW5lLjwvcD4KICAgIDxkaXYgY2xhc3M9InBhcnRzIj4KICAgICAgPGRpdiBjbGFzcz0icGFydCI+PHNwYW4+V0lSLXByb3ZpZGVkIG9wcG9ydHVuaXRpZXM8L3NwYW4+PGI+JHttb25leShSLnkyKX08L2I+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBhcnQiPjxzcGFuPllvdXIgc3BoZXJlICsgcmVmZXJyYWxzPC9zcGFuPjxiPiske21vbmV5KFIuc3ApfTwvYj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icGFydCI+PHNwYW4+V0lSIGxpc3RpbmdzIGNsb3NlZCAoeWVhciAxIOKGkiB5ZWFyIDIpPC9zcGFuPjxiPiR7Ui5jMS50b0ZpeGVkKDEpfSDihpIgJHtSLmMyLnRvRml4ZWQoMSl9PC9iPjwvZGl2PgogICAgPC9kaXY+CiAgICA8cCBjbGFzcz0iaGludCI+TGlzdGluZ3MgdGFrZW4gbGF0ZSBpbiB5ZWFyIDEgY2xvc2UgaW4geWVhciAyLiBFYWNoIGxpc3RpbmcgdGFrZXMgYWJvdXQgJHtDRkcuU0lHTl9UT19BQ1RJVkVfREFZU30gZGF5cyB0byBnbyBhY3RpdmUsICR7Uy5kdHB9IGRheXMgdG8gZ28gcGVuZGluZywgYW5kICR7Q0ZHLlBFTkRJTkdfVE9fQ0xPU0VfREFZU30gZGF5cyB0byBjbG9zZS48L3A+CiAgICA8cCBjbGFzcz0iZGlzYyI+VGhpcyBpcyBub3QgYW4gaW5jb21lIGd1YXJhbnRlZS4gSXQgaXMgYSBwcm9qZWN0aW9uIGJhc2VkIGVudGlyZWx5IG9uIHRoZSBhc3N1bXB0aW9ucyB5b3UgZW50ZXJlZCBhbmQgdGhlIG1vZGVsaW5nIGFzc3VtcHRpb25zIGRlc2NyaWJlZCBhYm92ZS4gQWN0dWFsIHJlc3VsdHMgd2lsbCB2YXJ5IGJhc2VkIG9uIG1hcmtldCBjb25kaXRpb25zLCBpbmRpdmlkdWFsIHBlcmZvcm1hbmNlLCBhdmFpbGFiaWxpdHkgb2Ygb3Bwb3J0dW5pdGllcywgYW5kIG90aGVyIGZhY3RvcnMuPC9wPgogIDwvc2VjdGlvbj4KCiAgJHtDRkcuU1VCTUlUX1VSTD9gPHNlY3Rpb24gY2xhc3M9ImNhcmQgYW5pbSBzZW5kIiBpZD0ic2VuZGNhcmQiPgogICAgPGgyPkVtYWlsIG1lIG15IHJlc3VsdHM8L2gyPgogICAgPHAgY2xhc3M9InN1YiI+R2V0IHRoaXMgcHJvamVjdGlvbiBpbiB5b3VyIGluYm94IHNvIHlvdSBjYW4gbG9vayBhdCBpdCBhZ2FpbiBsYXRlci4gTm8gc3BhbS48L3A+CiAgICA8Zm9ybSBpZD0ic2VuZGYiIGNsYXNzPSJzZW5kZiIgbm92YWxpZGF0ZT4KICAgICAgPGxhYmVsIGZvcj0ic05hbWUiPk5hbWU8aW5wdXQgaWQ9InNOYW1lIiBhdXRvY29tcGxldGU9Im5hbWUiIHJlcXVpcmVkPjwvbGFiZWw+CiAgICAgIDxsYWJlbCBmb3I9InNFbWFpbCI+RW1haWw8aW5wdXQgaWQ9InNFbWFpbCIgdHlwZT0iZW1haWwiIGF1dG9jb21wbGV0ZT0iZW1haWwiIGlucHV0bW9kZT0iZW1haWwiIHJlcXVpcmVkPjwvbGFiZWw+CiAgICAgIDxsYWJlbCBmb3I9InNQaG9uZSI+UGhvbmUgPHNwYW4gY2xhc3M9Im9wdC1sIj4ob3B0aW9uYWwpPC9zcGFuPjxpbnB1dCBpZD0ic1Bob25lIiB0eXBlPSJ0ZWwiIGF1dG9jb21wbGV0ZT0idGVsIiBpbnB1dG1vZGU9InRlbCI+PC9sYWJlbD4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZ28iIGlkPSJzZW5kYiIgdHlwZT0ic3VibWl0Ij5FbWFpbCBNZSBNeSBSZXN1bHRzIOKGkjwvYnV0dG9uPgogICAgICA8cCBjbGFzcz0iaGludCIgaWQ9InNlbmRtc2ciIGFyaWEtbGl2ZT0icG9saXRlIj48L3A+CiAgICA8L2Zvcm0+CiAgPC9zZWN0aW9uPmA6IiJ9CgogIDxzZWN0aW9uIGNsYXNzPSJjYXJkIGFuaW0iPgogICAgPGgyPkhvdyB0aGlzIGNvbXBhcmVzIHdpdGggeW91ciBjdXJyZW50IGJyb2tlcmFnZTwvaDI+CiAgICA8ZGl2IGNsYXNzPSJjbXAiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wgY3VyIj4KICAgICAgICA8aDM+WW91ciBjdXJyZW50IGJyb2tlcmFnZTwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0iYmlnIj4ke21vbmV5KEMubmV0KX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxzcGFuPkdyb3NzIGNvbW1pc3Npb248L3NwYW4+PHNwYW4+JHttb25leShDLmdjaSl9PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4+QnJva2VyIGtlZXBzICgke01hdGgucm91bmQoUy5zcGxpdCoxMDApfSUpPC9zcGFuPjxzcGFuPuKIkiR7bW9uZXkoQy5icmspfTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxzcGFuPllvdXIgZXhwZW5zZXM8L3NwYW4+PHNwYW4+4oiSJHttb25leShDLmV4cCl9PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4+WW91IGtlZXA8L3NwYW4+PHNwYW4+JHtDLmdjaT9NYXRoLnJvdW5kKEMubmV0L0MuZ2NpKjEwMCk6MH0lIG9mIGdyb3NzPC9zcGFuPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29sIHdpciI+CiAgICAgICAgPGgzPkF0IFdJUiwgeWVhciAxPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJiaWciPiR7bW9uZXkoUi50MSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48c3Bhbj5Zb3VyIG93biBidXNpbmVzczwvc3Bhbj48c3Bhbj4ke21vbmV5KFIuc3ApfTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxzcGFuPldJUi1wcm92aWRlZCBvcHBvcnR1bml0aWVzPC9zcGFuPjxzcGFuPiR7bW9uZXkoUi55MSl9PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4+WWVhciAyPC9zcGFuPjxzcGFuPiR7bW9uZXkoUi50Mil9PC9zcGFuPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9ImhpbnQiPllvdXIgb3duIGJ1c2luZXNzIGF0IFdJUiBhc3N1bWVzIGEgJHtDRkcuU1BIRVJFX1NQTElUKjEwMH0lIHNwbGl0IG9uIGxpc3RpbmdzIGFuZCBidXllcnMsIHdpdGggeW91IGNvdmVyaW5nIGFib3V0ICR7bW9uZXkoQ0ZHLlNQSEVSRV9MSVNUSU5HX0VYUEVOU0UpfSBpbiBsaXN0aW5nLXNpZGUgZXhwZW5zZXMgcGVyIGxpc3RpbmcuIFRoZSBtYXJrZXRpbmcsIHRlY2hub2xvZ3ksIHRyYWluaW5nIGFuZCBFJmFtcDtPIGNvc3RzIHlvdSBlbnRlcmVkIGFyZW4ndCBjaGFyZ2VkIHRvIHlvdSBhdCBXSVIuPC9wPgogIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9ImNhcmQgYW5pbSI+CiAgICA8aDI+V2hhdCBtb3ZlcyB5b3VyIG51bWJlcjwvaDI+CiAgICA8cCBjbGFzcz0ic3ViIj5DaGFuZ2Ugb25lIGFzc3VtcHRpb24gYXQgYSB0aW1lIGFuZCBzZWUgd2hhdCBpdCdzIHdvcnRoLjwvcD4KICAgIDxkaXYgY2xhc3M9Im1vdmVzIiBpZD0ibW92ZXMiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sIHdpciIgaWQ9ImFsbHJvdyI+PC9kaXY+CiAgICA8cCBjbGFzcz0iaGludCI+R2V0dGluZyBsaXN0aW5ncyBwZW5kaW5nIGZhc3RlciBtb3N0bHkgbW92ZXMgaW5jb21lIGVhcmxpZXIuIEl0IGRvZXNuJ3QgY3JlYXRlIG1vcmUgbGlzdGluZ3MuPC9wPgogIDwvc2VjdGlvbj4KCiAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iZ28iIGlkPSJlZGl0Ij5DaGFuZ2UgbXkgYW5zd2VyczwvYnV0dG9uPjxidXR0b24gY2xhc3M9Imdob3N0IiBpZD0icmVzdGFydCI+U3RhcnQgb3ZlcjwvYnV0dG9uPjwvZGl2PmA7CiAgZnVuY3Rpb24gZHJhd01vdmVzKCl7CiAgICBjb25zdCBiYXNlPXRvdCh7fSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW92ZXMiKS5pbm5lckhUTUw9d2hhdC5tYXAoKGwsaXgpPT57Y29uc3QgZD1sLnYtV1tsLmtdLHI9dG90KHtbbC5rXTpsLnZ9KTsKICAgICAgY29uc3QgaGVhZD1kPT09MD9gWW91ciBhbnN3ZXI6ICR7bC5mbXQoV1tsLmtdKX1gOmwudmVyYihkKTsKICAgICAgY29uc3QgZGlmZj1yLnQxLWJhc2UudDEsZGlmZjI9ci50Mi1iYXNlLnQyLHNnPXg9Pih4Pj0wPyIrIjoi4oiSIikrbW9uZXkoTWF0aC5hYnMoeCkpLnJlcGxhY2UoIuKIkiIsIiIpOwogICAgICByZXR1cm4gYDxkaXYgY2xhc3M9Im12Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtdmgiPjxzcGFuIGNsYXNzPSJtdnQiPiR7aGVhZH08L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwIj48YnV0dG9uIGNsYXNzPSJzYiIgZGF0YS1pPSIke2l4fSIgZGF0YS1kPSItMSIgYXJpYS1sYWJlbD0iTG93ZXIgJHtsLmxhYmVsfSIgJHtsLnY8PWwubWluPyJkaXNhYmxlZCI6IiJ9PuKAkzwvYnV0dG9uPjxzcGFuIGNsYXNzPSJzdiI+JHtsLmZtdChsLnYpfTwvc3Bhbj48YnV0dG9uIGNsYXNzPSJzYiIgZGF0YS1pPSIke2l4fSIgZGF0YS1kPSIxIiBhcmlhLWxhYmVsPSJSYWlzZSAke2wubGFiZWx9IiAke2wudj49bC5tYXg/ImRpc2FibGVkIjoiIn0+KzwvYnV0dG9uPjwvZGl2PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im12ciI+PGRpdj48c3BhbiBjbGFzcz0iayI+VG90YWwgcHJvamVjdGVkIG5ldCBpbmNvbWUsIHllYXIgMTwvc3Bhbj48Yj4ke21vbmV5KHIudDEpfTwvYj4ke2Q/YDxlbSBjbGFzcz0iJHtkaWZmPj0wPyJ1cCI6ImRuIn0iPiR7c2coZGlmZil9PC9lbT5gOiIifTwvZGl2PgogICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz0iayI+VG90YWwgcHJvamVjdGVkIG5ldCBpbmNvbWUsIHllYXIgMjwvc3Bhbj48Yj4ke21vbmV5KHIudDIpfTwvYj4ke2Q/YDxlbSBjbGFzcz0iJHtkaWZmMj49MD8idXAiOiJkbiJ9Ij4ke3NnKGRpZmYyKX08L2VtPmA6IiJ9PC9kaXY+PC9kaXY+CiAgICAgIDwvZGl2PmB9KS5qb2luKCIiKTsKICAgIGNvbnN0IGFsbD17fTt3aGF0LmZvckVhY2gobD0+YWxsW2wua109bC52KTtjb25zdCByYT10b3QoYWxsKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGxyb3ciKS5pbm5lckhUTUw9YDxoMz5JZiB5b3UgbWFkZSBhbGwgb2YgdGhlc2UgY2hhbmdlcyB0b2dldGhlcjwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4+VG90YWwgcHJvamVjdGVkIG5ldCBpbmNvbWUsIHllYXIgMTwvc3Bhbj48YiBjbGFzcz0iYmlnMiI+JHttb25leShyYS50MSl9PC9iPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxzcGFuPlRvdGFsIHByb2plY3RlZCBuZXQgaW5jb21lLCB5ZWFyIDI8L3NwYW4+PGIgY2xhc3M9ImJpZzIiPiR7bW9uZXkocmEudDIpfTwvYj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icm93Ij48c3Bhbj5Db21wYXJlZCB3aXRoIHlvdXIgYW5zd2Vyczwvc3Bhbj48c3Bhbj4keyhyYS50MS1iYXNlLnQxPj0wPyIrIjoi4oiSIikrbW9uZXkoTWF0aC5hYnMocmEudDEtYmFzZS50MSkpLnJlcGxhY2UoIuKIkiIsIiIpfSB5ciAxIMK3ICR7KHJhLnQyLWJhc2UudDI+PTA/IisiOiLiiJIiKSttb25leShNYXRoLmFicyhyYS50Mi1iYXNlLnQyKSkucmVwbGFjZSgi4oiSIiwiIil9IHlyIDI8L3NwYW4+PC9kaXY+YDsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zYiIpLmZvckVhY2goYj0+Yi5vbmNsaWNrPSgpPT57Y29uc3QgbD13aGF0WytiLmRhdGFzZXQuaV07bC52PU1hdGgubWluKGwubWF4LE1hdGgubWF4KGwubWluLGwudisgK2IuZGF0YXNldC5kKmwuc3RlcCkpO2RyYXdNb3ZlcygpOwogICAgICBjb25zdCBuYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuc2JbZGF0YS1pPSIke2IuZGF0YXNldC5pfSJdW2RhdGEtZD0iJHtiLmRhdGFzZXQuZH0iXWApOyhuYiYmIW5iLmRpc2FibGVkP25iOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5zYltkYXRhLWk9IiR7Yi5kYXRhc2V0Lml9Il06bm90KFtkaXNhYmxlZF0pYCkpPy5mb2N1cygpfSk7CiAgfQogIGRyYXdNb3ZlcygpOwogIGNvbnN0IHNmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kZiIpOwogIGlmKHNmKXNmLm9uc3VibWl0PWFzeW5jIGV2PT57ZXYucHJldmVudERlZmF1bHQoKTsKICAgIGNvbnN0IG5tPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzTmFtZSIpLnZhbHVlLnRyaW0oKSxlbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic0VtYWlsIikudmFsdWUudHJpbSgpLHBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzUGhvbmUiKS52YWx1ZS50cmltKCksbXNnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kbXNnIiksYnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmRiIik7CiAgICBpZighbm0pe21zZy50ZXh0Q29udGVudD0iRW50ZXIgeW91ciBuYW1lLiI7cmV0dXJufQogICAgaWYoIS9eW15AXHNdK0BbXkBcc10rXC5bXkBcc10rJC8udGVzdChlbSkpe21zZy50ZXh0Q29udGVudD0iRW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLiI7cmV0dXJufQogICAgYnQuZGlzYWJsZWQ9dHJ1ZTttc2cudGV4dENvbnRlbnQ9IlNlbmRpbmfigKYiOwogICAgY29uc3QgYm9keT17bmFtZTpubSxlbWFpbDplbSxwaG9uZTpwaCxwYWdlOmxvY2F0aW9uLmhyZWYsCiAgICAgIGFuc3dlcnM6e2xpc3Q6Uy5saXN0LGJ1eTpTLmJ1eSxwcmljZTpTLnByaWNlLHJhdGU6Uy5yYXRlLHNwbGl0OlMuc3BsaXQsbWt0OlMubWt0LHRlY2g6Uy50ZWNoLHRyYWluOlMudHJhaW4sZW86Uy5lbyx3azpTLndrLGNvbnY6Uy5jb252LGNsb3NlZDpTLmNsb3NlZCxkdHA6Uy5kdHB9LAogICAgICByZXN1bHRzOntjdXJyZW50Ok1hdGgucm91bmQoQy5uZXQpLHdpcjE6TWF0aC5yb3VuZChSLnkxKSx3aXIyOk1hdGgucm91bmQoUi55Miksc3BoZXJlOk1hdGgucm91bmQoUi5zcCksdDE6TWF0aC5yb3VuZChSLnQxKSx0MjpNYXRoLnJvdW5kKFIudDIpfX07CiAgICB0cnl7YXdhaXQgZmV0Y2goQ0ZHLlNVQk1JVF9VUkwse21ldGhvZDoiUE9TVCIsbW9kZToibm8tY29ycyIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW47Y2hhcnNldD11dGYtOCJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoYm9keSl9KTsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmRjYXJkIikuaW5uZXJIVE1MPWA8aDI+U2VudC4gQ2hlY2sgeW91ciBpbmJveC48L2gyPjxwIGNsYXNzPSJzdWIiPllvdXIgcmVzdWx0cyBhcmUgb24gdGhlIHdheSB0byAke2VtLnJlcGxhY2UoL1s8PiZdL2csIiIpfS4gSWYgeW91IGRvbid0IHNlZSB0aGVtIGluIGEgZmV3IG1pbnV0ZXMsIGNoZWNrIHNwYW0uPC9wPmB9CiAgICBjYXRjaChlKXtidC5kaXNhYmxlZD1mYWxzZTttc2cudGV4dENvbnRlbnQ9IlRoYXQgZGlkbid0IGdvIHRocm91Z2guIENoZWNrIHlvdXIgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluLiJ9fTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdCIpLm9uY2xpY2s9KCk9PntwaGFzZT0icSI7aT0yO3Nob3coKX07CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQiKS5vbmNsaWNrPSgpPT57T2JqZWN0LmFzc2lnbihTLHtsaXN0OjAsYnV5OjAscHJpY2U6bnVsbCxyYXRlOm51bGwsc3BsaXQ6bnVsbCxta3Q6bnVsbCx0ZWNoOm51bGwsdHJhaW46bnVsbCxlbzpudWxsLHdrOm51bGwsY29udjpudWxsLGNsb3NlZDpudWxsLGR0cDpudWxsfSk7cGhhc2U9InEiO2k9MDtzaG93KCl9Owp9CnNob3coKTsK