Build a professional resume for free: fully customizable design, editable sections, one-click Print/PDF export, and no login needed.
KGZ1bmN0aW9uKCl7CiAgaWYgKHdpbmRvdy5fX0NWQl9WSUVXUE9SVF9BVURJVF9fKSByZXR1cm47CiAgd2luZG93Ll9fQ1ZCX1ZJRVdQT1JUX0FVRElUX18gPSB0cnVlOwogIHdpbmRvdy5fX0NWQl9WSUVXUE9SVF9BVURJVF9CVUlMRF9fID0gIjIwMjYtMDMtMjktdjIiOwoKICB2YXIgVEVTVFMgPSBbCiAgICB7IGtleToiZGVza3RvcC13aWRlIiwgbGFiZWw6IkRlc2t0b3Agd2lkZSIsIHdpZHRoOjE2MDAsIGhlaWdodDo5MDAgfSwKICAgIHsga2V5OiJkZXNrdG9wLXNtYWxsIiwgbGFiZWw6IkRlc2t0b3Agc21hbGwiLCB3aWR0aDoxMTgwLCBoZWlnaHQ6NzYwIH0sCiAgICB7IGtleToicGhvbmUtcG9ydHJhaXQiLCBsYWJlbDoiUGhvbmUgcG9ydHJhaXQiLCB3aWR0aDozOTAsIGhlaWdodDo4NDQgfSwKICAgIHsga2V5OiJtb2JpbGUtcm90YXRlZCIsIGxhYmVsOiJNb2JpbGUgcm90YXRlZCIsIHdpZHRoOjg0NCwgaGVpZ2h0OjM5MCB9CiAgXTsKICB2YXIgQURfU0VMRUNUT1IgPSBbCiAgICAiaW5zLmFkc2J5Z29vZ2xlIiwKICAgICIuYWRzYnlnb29nbGUiLAogICAgIi5nb29nbGUtYXV0by1wbGFjZWQiLAogICAgIltpZF49J2dvb2dsZV9hZHNfaWZyYW1lJ10iLAogICAgIltpZCo9J2dvb2dsZV9hZHMnXSIsCiAgICAiW2NsYXNzKj0nYWRzYnlnb29nbGUnXSIsCiAgICAiaWZyYW1lW3NyYyo9J2RvdWJsZWNsaWNrLm5ldCddIiwKICAgICJpZnJhbWVbc3JjKj0nZ29vZ2xlc3luZGljYXRpb24uY29tJ10iLAogICAgImlmcmFtZVtzcmMqPSdnb29nbGVhZHMnXSIKICBdLmpvaW4oIiwiKTsKCiAgdmFyIHVpID0ge307CiAgdmFyIHJlcG9ydFRleHQgPSAiQXVkaXQgbm90IHJ1biB5ZXQuIjsKICB2YXIgYWN0aXZlQXVkaXRJZCA9IG51bGw7CiAgdmFyIGFjdGl2ZVJvb3QgPSBudWxsOwogIHZhciBhY3RpdmVUaW1lciA9IG51bGw7CiAgdmFyIHBlbmRpbmdDb3VudCA9IDA7CiAgdmFyIHJlc3VsdHMgPSB7fTsKICB0cnl7IGNvbnNvbGUud2FybigiW2N2Yi1kZWJ1Z2dlcl0gYnVpbGQ9IiArIHdpbmRvdy5fX0NWQl9WSUVXUE9SVF9BVURJVF9CVUlMRF9fKTsgfWNhdGNoKF8pe30KCiAgZnVuY3Rpb24gdmlld3BvcnREYXRhKHdpbiwgZG9jKXsKICAgIHdpbiA9IHdpbiB8fCB3aW5kb3c7CiAgICBkb2MgPSBkb2MgfHwgZG9jdW1lbnQ7CiAgICB2YXIgdnYgPSB3aW4udmlzdWFsVmlld3BvcnQ7CiAgICB2YXIgdyA9IE1hdGgucm91bmQodnYgPyB2di53aWR0aCA6ICh3aW4uaW5uZXJXaWR0aCB8fCBkb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IDApKTsKICAgIHZhciBoID0gTWF0aC5yb3VuZCh2diA/IHZ2LmhlaWdodCA6ICh3aW4uaW5uZXJIZWlnaHQgfHwgZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMCkpOwogICAgcmV0dXJuIHsKICAgICAgd2lkdGg6IHcsCiAgICAgIGhlaWdodDogaCwKICAgICAgb3JpZW50YXRpb246IHcgPiBoID8gImxhbmRzY2FwZSIgOiAicG9ydHJhaXQiCiAgICB9OwogIH0KCiAgZnVuY3Rpb24gc2VsZWN0b3JPZihlbCl7CiAgICB0cnl7CiAgICAgIGlmICghZWwgfHwgIWVsLnRhZ05hbWUpIHJldHVybiAiKHVua25vd24pIjsKICAgICAgdmFyIHMgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgIGlmIChlbC5pZCkgcyArPSAiIyIgKyBlbC5pZDsKICAgICAgZWxzZSBpZiAodHlwZW9mIGVsLmNsYXNzTmFtZSA9PT0gInN0cmluZyIgJiYgZWwuY2xhc3NOYW1lLnRyaW0oKSkgewogICAgICAgIHMgKz0gIi4iICsgZWwuY2xhc3NOYW1lLnRyaW0oKS5zcGxpdCgvXHMrLykuc2xpY2UoMCwyKS5qb2luKCIuIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHM7CiAgICB9Y2F0Y2goXyl7CiAgICAgIHJldHVybiAiKHVua25vd24pIjsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGNvbGxlY3RBZERhdGEoZG9jLCB3aW4sIHZwKXsKICAgIHZhciBkYXRhID0gewogICAgICBhZENvdW50OiAwLAogICAgICBhZElzc3VlQ291bnQ6IDAsCiAgICAgIGlzc3VlczogW10KICAgIH07CgogICAgaWYgKCFkb2MgfHwgIWRvYy5xdWVyeVNlbGVjdG9yQWxsKSByZXR1cm4gZGF0YTsKCiAgICB2YXIgbm9kZXMgPSBbXTsKICAgIHRyeXsKICAgICAgbm9kZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2MucXVlcnlTZWxlY3RvckFsbChBRF9TRUxFQ1RPUikpOwogICAgfWNhdGNoKF8pewogICAgICByZXR1cm4gZGF0YTsKICAgIH0KCiAgICBkYXRhLmFkQ291bnQgPSBub2Rlcy5sZW5ndGg7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGggJiYgZGF0YS5pc3N1ZXMubGVuZ3RoIDwgODsgaSsrKSB7CiAgICAgIHZhciBlbCA9IG5vZGVzW2ldOwogICAgICBpZiAoIWVsKSBjb250aW51ZTsKCiAgICAgIHZhciByZWN0LCBjczsKICAgICAgdHJ5ewogICAgICAgIHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICBjcyA9IHdpbi5nZXRDb21wdXRlZFN0eWxlKGVsKTsKICAgICAgfWNhdGNoKF8pewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBpZiAoIXJlY3QgfHwgcmVjdC53aWR0aCA8PSAwIHx8IHJlY3QuaGVpZ2h0IDw9IDApIGNvbnRpbnVlOwogICAgICBpZiAoIWNzIHx8IGNzLmRpc3BsYXkgPT09ICJub25lIiB8fCBjcy52aXNpYmlsaXR5ID09PSAiaGlkZGVuIikgY29udGludWU7CgogICAgICB2YXIgbmFtZSA9IHNlbGVjdG9yT2YoZWwpOwogICAgICB2YXIgcmlnaHRPdmVyZmxvdyA9IE1hdGgucm91bmQocmVjdC5yaWdodCAtIHZwLndpZHRoKTsKICAgICAgdmFyIGxlZnRPdmVyZmxvdyA9IE1hdGgucm91bmQoMCAtIHJlY3QubGVmdCk7CgogICAgICBpZiAocmVjdC53aWR0aCA+IHZwLndpZHRoICsgMikgewogICAgICAgIGRhdGEuaXNzdWVzLnB1c2goIkFEIFRPTyBXSURFOiAiICsgbmFtZSArICIgfCB3aWR0aD0iICsgTWF0aC5yb3VuZChyZWN0LndpZHRoKSArICIgfCB2aWV3cG9ydD0iICsgdnAud2lkdGgpOwogICAgICB9IGVsc2UgaWYgKHJpZ2h0T3ZlcmZsb3cgPiAyKSB7CiAgICAgICAgZGF0YS5pc3N1ZXMucHVzaCgiQUQgT1ZFUkZMT1cgUklHSFQ6ICIgKyBuYW1lICsgIiB8IGJ5ICIgKyByaWdodE92ZXJmbG93ICsgInB4Iik7CiAgICAgIH0gZWxzZSBpZiAobGVmdE92ZXJmbG93ID4gMikgewogICAgICAgIGRhdGEuaXNzdWVzLnB1c2goIkFEIE9WRVJGTE9XIExFRlQ6ICIgKyBuYW1lICsgIiB8IGJ5ICIgKyBsZWZ0T3ZlcmZsb3cgKyAicHgiKTsKICAgICAgfQogICAgfQoKICAgIGRhdGEuYWRJc3N1ZUNvdW50ID0gZGF0YS5pc3N1ZXMubGVuZ3RoOwogICAgcmV0dXJuIGRhdGE7CiAgfQoKICBmdW5jdGlvbiBhdWRpdERvY3VtZW50KGRvYywgd2luKXsKICAgIGRvYyA9IGRvYyB8fCBkb2N1bWVudDsKICAgIHdpbiA9IHdpbiB8fCB3aW5kb3c7CgogICAgdmFyIHZwID0gdmlld3BvcnREYXRhKHdpbiwgZG9jKTsKICAgIHZhciBkZSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7CiAgICB2YXIgYm9keSA9IGRvYy5ib2R5IHx8IGRlOwogICAgdmFyIGFsbCA9IGJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTsKICAgIHZhciBpc3N1ZXMgPSBbXTsKICAgIHZhciBjaGVja2VkID0gMDsKICAgIHZhciBtYXhDaGVjayA9IDIyMDA7CiAgICB2YXIgcGFnZVNjcm9sbFdpZHRoID0gTWF0aC5tYXgoZGUuc2Nyb2xsV2lkdGggfHwgMCwgYm9keS5zY3JvbGxXaWR0aCB8fCAwKTsKCiAgICBpZiAocGFnZVNjcm9sbFdpZHRoID4gdnAud2lkdGggKyAxKSB7CiAgICAgIGlzc3Vlcy5wdXNoKCJQQUdFIE9WRVJGTE9XOiBkb2N1bWVudCB3aWRlciB0aGFuIHZpZXdwb3J0IGJ5ICIgKyAocGFnZVNjcm9sbFdpZHRoIC0gdnAud2lkdGgpICsgInB4Iik7CiAgICB9CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGwubGVuZ3RoICYmIGNoZWNrZWQgPCBtYXhDaGVjazsgaSsrKSB7CiAgICAgIHZhciBlbCA9IGFsbFtpXTsKICAgICAgaWYgKCFlbCkgY29udGludWU7CiAgICAgIGlmIChlbC5pZCA9PT0gImN2Yi12aWV3cG9ydC1hdWRpdC1ib3giKSBjb250aW51ZTsKICAgICAgaWYgKGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUoImRhdGEtY3ZiLWF1ZGl0LWlnbm9yZSIpID09PSAiMSIpIGNvbnRpbnVlOwogICAgICBpZiAoL14oU0NSSVBUfFNUWUxFfExJTkt8TUVUQXxIRUFEfE5PU0NSSVBUfEJSKSQvaS50ZXN0KGVsLnRhZ05hbWUpKSBjb250aW51ZTsKCiAgICAgIHZhciByZWN0LCBjczsKICAgICAgdHJ5ewogICAgICAgIHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICBjcyA9IHdpbi5nZXRDb21wdXRlZFN0eWxlKGVsKTsKICAgICAgfWNhdGNoKF8pewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBpZiAoIXJlY3QgfHwgcmVjdC53aWR0aCA8PSAwIHx8IHJlY3QuaGVpZ2h0IDw9IDApIGNvbnRpbnVlOwogICAgICBpZiAoIWNzIHx8IGNzLmRpc3BsYXkgPT09ICJub25lIiB8fCBjcy52aXNpYmlsaXR5ID09PSAiaGlkZGVuIikgY29udGludWU7CgogICAgICBjaGVja2VkKys7CgogICAgICB2YXIgbmFtZSA9IHNlbGVjdG9yT2YoZWwpOwogICAgICB2YXIgbGVmdE92ZXJmbG93ID0gTWF0aC5yb3VuZCgwIC0gcmVjdC5sZWZ0KTsKICAgICAgdmFyIHJpZ2h0T3ZlcmZsb3cgPSBNYXRoLnJvdW5kKHJlY3QucmlnaHQgLSB2cC53aWR0aCk7CgogICAgICBpZiAocmVjdC53aWR0aCA+IHZwLndpZHRoICsgMikgewogICAgICAgIGlzc3Vlcy5wdXNoKCJUT08gV0lERTogIiArIG5hbWUgKyAiIHwgd2lkdGg9IiArIE1hdGgucm91bmQocmVjdC53aWR0aCkgKyAiIHwgdmlld3BvcnQ9IiArIHZwLndpZHRoKTsKICAgICAgfSBlbHNlIGlmIChyaWdodE92ZXJmbG93ID4gMikgewogICAgICAgIGlzc3Vlcy5wdXNoKCJPVkVSRkxPVyBSSUdIVDogIiArIG5hbWUgKyAiIHwgYnkgIiArIHJpZ2h0T3ZlcmZsb3cgKyAicHgiKTsKICAgICAgfSBlbHNlIGlmIChsZWZ0T3ZlcmZsb3cgPiAyKSB7CiAgICAgICAgaXNzdWVzLnB1c2goIk9WRVJGTE9XIExFRlQ6ICIgKyBuYW1lICsgIiB8IGJ5ICIgKyBsZWZ0T3ZlcmZsb3cgKyAicHgiKTsKICAgICAgfQoKICAgICAgaWYgKChjcy5wb3NpdGlvbiA9PT0gImZpeGVkIiB8fCBjcy5wb3NpdGlvbiA9PT0gInN0aWNreSIpICYmIHJlY3QuaGVpZ2h0ID4gdnAuaGVpZ2h0ICsgMikgewogICAgICAgIGlzc3Vlcy5wdXNoKCJGSVhFRC9TVElDS1kgVE9PIFRBTEw6ICIgKyBuYW1lICsgIiB8IGhlaWdodD0iICsgTWF0aC5yb3VuZChyZWN0LmhlaWdodCkgKyAiIHwgdmlld3BvcnQ9IiArIHZwLmhlaWdodCk7CiAgICAgIH0KCiAgICAgIGlmICgoY3Mub3ZlcmZsb3dYID09PSAiaGlkZGVuIiB8fCBjcy5vdmVyZmxvd1ggPT09ICJjbGlwIikgJiYgZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aCArIDI0ICYmIGVsLmNsaWVudFdpZHRoID4gMCkgewogICAgICAgIGlzc3Vlcy5wdXNoKCJDTElQUEVEIFg6ICIgKyBuYW1lICsgIiB8IGNsaWVudD0iICsgZWwuY2xpZW50V2lkdGggKyAiIHwgc2Nyb2xsPSIgKyBlbC5zY3JvbGxXaWR0aCk7CiAgICAgIH0KCiAgICAgIGlmICgoY3Mub3ZlcmZsb3dZID09PSAiaGlkZGVuIiB8fCBjcy5vdmVyZmxvd1kgPT09ICJjbGlwIikgJiYgZWwuc2Nyb2xsSGVpZ2h0ID4gZWwuY2xpZW50SGVpZ2h0ICsgNDAgJiYgZWwuY2xpZW50SGVpZ2h0ID4gMCAmJiByZWN0LmhlaWdodCA+IDEyMCkgewogICAgICAgIGlzc3Vlcy5wdXNoKCJDTElQUEVEIFk6ICIgKyBuYW1lICsgIiB8IGNsaWVudD0iICsgZWwuY2xpZW50SGVpZ2h0ICsgIiB8IHNjcm9sbD0iICsgZWwuc2Nyb2xsSGVpZ2h0KTsKICAgICAgfQoKICAgICAgaWYgKGlzc3Vlcy5sZW5ndGggPj0gMjUpIGJyZWFrOwogICAgfQoKICAgIHZhciBhZERhdGEgPSBjb2xsZWN0QWREYXRhKGRvYywgd2luLCB2cCk7CiAgICBpZiAoYWREYXRhLmFkSXNzdWVDb3VudCAmJiBpc3N1ZXMubGVuZ3RoIDwgMjUpIHsKICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhZERhdGEuaXNzdWVzLmxlbmd0aCAmJiBpc3N1ZXMubGVuZ3RoIDwgMjU7IGorKykgewogICAgICAgIGlzc3Vlcy5wdXNoKGFkRGF0YS5pc3N1ZXNbal0pOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIHsKICAgICAgdmlld3BvcnQ6IHZwLAogICAgICBwYWdlU2Nyb2xsV2lkdGg6IHBhZ2VTY3JvbGxXaWR0aCwKICAgICAgY2hlY2tlZDogY2hlY2tlZCwKICAgICAgYWRDb3VudDogYWREYXRhLmFkQ291bnQsCiAgICAgIGFkSXNzdWVDb3VudDogYWREYXRhLmFkSXNzdWVDb3VudCwKICAgICAgaXNzdWVDb3VudDogaXNzdWVzLmxlbmd0aCwKICAgICAgc3RhdHVzOiBpc3N1ZXMubGVuZ3RoID8gIklTU1VFUyBGT1VORCIgOiAiUEFTUyIsCiAgICAgIGlzc3VlczogaXNzdWVzCiAgICB9OwogIH0KCiAgZnVuY3Rpb24gY29weVRleHQodGV4dCl7CiAgICB0ZXh0ID0gU3RyaW5nKHRleHQgPT0gbnVsbCA/ICIiIDogdGV4dCk7CiAgICB0cnl7CiAgICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KSB7CiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH1jYXRjaChfKXt9CgogICAgdHJ5ewogICAgICB2YXIgdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpOwogICAgICB0YS52YWx1ZSA9IHRleHQ7CiAgICAgIHRhLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAicmVhZG9ubHkiKTsKICAgICAgdGEuc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwogICAgICB0YS5zdHlsZS5sZWZ0ID0gIi05OTk5cHgiOwogICAgICB0YS5zdHlsZS50b3AgPSAiMCI7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGEpOwogICAgICB0YS5mb2N1cygpOwogICAgICB0YS5zZWxlY3QoKTsKICAgICAgdmFyIG9rID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTsKICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YSk7CiAgICAgIHJldHVybiAhIW9rOwogICAgfWNhdGNoKF8pewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBidWlsZFByb2JlU2NyaXB0KHRlc3RLZXksIGF1ZGl0SWQpewogICAgcmV0dXJuIFsKICAgICAgIihmdW5jdGlvbigpeyIsCiAgICAgICJ2YXIgVEVTVF9LRVk9IiArIEpTT04uc3RyaW5naWZ5KHRlc3RLZXkpICsgIjsiLAogICAgICAidmFyIEFVRElUX0lEPSIgKyBKU09OLnN0cmluZ2lmeShhdWRpdElkKSArICI7IiwKICAgICAgInZhciBBRF9TRUxFQ1RPUj0iICsgSlNPTi5zdHJpbmdpZnkoQURfU0VMRUNUT1IpICsgIjsiLAogICAgICAidmFyIHNlbnQ9ZmFsc2U7IiwKICAgICAgImZ1bmN0aW9uIHNlbGVjdG9yT2YoZWwpeyIsCiAgICAgICIgIHRyeXsiLAogICAgICAiICAgIGlmKCFlbHx8IWVsLnRhZ05hbWUpIHJldHVybiAnKHVua25vd24pJzsiLAogICAgICAiICAgIHZhciBzPWVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKTsiLAogICAgICAiICAgIGlmKGVsLmlkKSBzKz0nIycrZWwuaWQ7IiwKICAgICAgIiAgICBlbHNlIGlmKHR5cGVvZiBlbC5jbGFzc05hbWU9PT0nc3RyaW5nJyYmZWwuY2xhc3NOYW1lLnRyaW0oKSkgcys9Jy4nK2VsLmNsYXNzTmFtZS50cmltKCkuc3BsaXQoL1xccysvKS5zbGljZSgwLDIpLmpvaW4oJy4nKTsiLAogICAgICAiICAgIHJldHVybiBzOyIsCiAgICAgICIgIH1jYXRjaChfKXsgcmV0dXJuICcodW5rbm93biknOyB9IiwKICAgICAgIn0iLAogICAgICAiZnVuY3Rpb24gdmlld3BvcnREYXRhKCl7IiwKICAgICAgIiAgdmFyIHZ2PXdpbmRvdy52aXN1YWxWaWV3cG9ydDsiLAogICAgICAiICB2YXIgdz1NYXRoLnJvdW5kKHZ2ID8gdnYud2lkdGggOiAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IDApKTsiLAogICAgICAiICB2YXIgaD1NYXRoLnJvdW5kKHZ2ID8gdnYuaGVpZ2h0IDogKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDApKTsiLAogICAgICAiICByZXR1cm4geyB3aWR0aDp3LCBoZWlnaHQ6aCwgb3JpZW50YXRpb246dz5oPydsYW5kc2NhcGUnOidwb3J0cmFpdCcgfTsiLAogICAgICAifSIsCiAgICAgICJmdW5jdGlvbiBjb2xsZWN0QWREYXRhKHZwKXsiLAogICAgICAiICB2YXIgZGF0YT17IGFkQ291bnQ6MCwgYWRJc3N1ZUNvdW50OjAsIGlzc3VlczpbXSB9OyIsCiAgICAgICIgIGlmKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKSByZXR1cm4gZGF0YTsiLAogICAgICAiICB2YXIgbm9kZXM9W107IiwKICAgICAgIiAgdHJ5eyBub2Rlcz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEFEX1NFTEVDVE9SKSk7IH1jYXRjaChfKXsgcmV0dXJuIGRhdGE7IH0iLAogICAgICAiICBkYXRhLmFkQ291bnQ9bm9kZXMubGVuZ3RoOyIsCiAgICAgICIgIGZvcih2YXIgaT0wO2k8bm9kZXMubGVuZ3RoJiZkYXRhLmlzc3Vlcy5sZW5ndGg8ODtpKyspeyIsCiAgICAgICIgICAgdmFyIGVsPW5vZGVzW2ldOyIsCiAgICAgICIgICAgaWYoIWVsKSBjb250aW51ZTsiLAogICAgICAiICAgIHZhciByZWN0LGNzOyIsCiAgICAgICIgICAgdHJ5eyByZWN0PWVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyBjcz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7IH1jYXRjaChfKXsgY29udGludWU7IH0iLAogICAgICAiICAgIGlmKCFyZWN0fHxyZWN0LndpZHRoPD0wfHxyZWN0LmhlaWdodDw9MCkgY29udGludWU7IiwKICAgICAgIiAgICBpZighY3N8fGNzLmRpc3BsYXk9PT0nbm9uZSd8fGNzLnZpc2liaWxpdHk9PT0naGlkZGVuJykgY29udGludWU7IiwKICAgICAgIiAgICB2YXIgbmFtZT1zZWxlY3Rvck9mKGVsKTsiLAogICAgICAiICAgIHZhciByaWdodE92ZXJmbG93PU1hdGgucm91bmQocmVjdC5yaWdodC12cC53aWR0aCk7IiwKICAgICAgIiAgICB2YXIgbGVmdE92ZXJmbG93PU1hdGgucm91bmQoMC1yZWN0LmxlZnQpOyIsCiAgICAgICIgICAgaWYocmVjdC53aWR0aD52cC53aWR0aCsyKSBkYXRhLmlzc3Vlcy5wdXNoKCdBRCBUT08gV0lERTogJytuYW1lKycgfCB3aWR0aD0nK01hdGgucm91bmQocmVjdC53aWR0aCkrJyB8IHZpZXdwb3J0PScrdnAud2lkdGgpOyIsCiAgICAgICIgICAgZWxzZSBpZihyaWdodE92ZXJmbG93PjIpIGRhdGEuaXNzdWVzLnB1c2goJ0FEIE9WRVJGTE9XIFJJR0hUOiAnK25hbWUrJyB8IGJ5ICcrcmlnaHRPdmVyZmxvdysncHgnKTsiLAogICAgICAiICAgIGVsc2UgaWYobGVmdE92ZXJmbG93PjIpIGRhdGEuaXNzdWVzLnB1c2goJ0FEIE9WRVJGTE9XIExFRlQ6ICcrbmFtZSsnIHwgYnkgJytsZWZ0T3ZlcmZsb3crJ3B4Jyk7IiwKICAgICAgIiAgfSIsCiAgICAgICIgIGRhdGEuYWRJc3N1ZUNvdW50PWRhdGEuaXNzdWVzLmxlbmd0aDsiLAogICAgICAiICByZXR1cm4gZGF0YTsiLAogICAgICAifSIsCiAgICAgICJmdW5jdGlvbiBydW5BdWRpdCgpeyIsCiAgICAgICIgIHZhciB2cD12aWV3cG9ydERhdGEoKTsiLAogICAgICAiICB2YXIgZGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OyIsCiAgICAgICIgIHZhciBib2R5PWRvY3VtZW50LmJvZHl8fGRlOyIsCiAgICAgICIgIHZhciBhbGw9Ym9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpOyIsCiAgICAgICIgIHZhciBpc3N1ZXM9W107IiwKICAgICAgIiAgdmFyIGNoZWNrZWQ9MDsiLAogICAgICAiICB2YXIgbWF4Q2hlY2s9MjIwMDsiLAogICAgICAiICB2YXIgcGFnZVNjcm9sbFdpZHRoPU1hdGgubWF4KGRlLnNjcm9sbFdpZHRofHwwLCBib2R5LnNjcm9sbFdpZHRofHwwKTsiLAogICAgICAiICBpZihwYWdlU2Nyb2xsV2lkdGg+dnAud2lkdGgrMSkgaXNzdWVzLnB1c2goJ1BBR0UgT1ZFUkZMT1c6IGRvY3VtZW50IHdpZGVyIHRoYW4gdmlld3BvcnQgYnkgJysocGFnZVNjcm9sbFdpZHRoLXZwLndpZHRoKSsncHgnKTsiLAogICAgICAiICBmb3IodmFyIGk9MDtpPGFsbC5sZW5ndGgmJmNoZWNrZWQ8bWF4Q2hlY2s7aSsrKXsiLAogICAgICAiICAgIHZhciBlbD1hbGxbaV07IiwKICAgICAgIiAgICBpZighZWwpIGNvbnRpbnVlOyIsCiAgICAgICIgICAgaWYoZWwuaWQ9PT0nY3ZiLXZpZXdwb3J0LWF1ZGl0LWJveCcpIGNvbnRpbnVlOyIsCiAgICAgICIgICAgaWYoZWwuZ2V0QXR0cmlidXRlJiZlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY3ZiLWF1ZGl0LWlnbm9yZScpPT09JzEnKSBjb250aW51ZTsiLAogICAgICAiICAgIGlmKC9eKFNDUklQVHxTVFlMRXxMSU5LfE1FVEF8SEVBRHxOT1NDUklQVHxCUikkL2kudGVzdChlbC50YWdOYW1lKSkgY29udGludWU7IiwKICAgICAgIiAgICB2YXIgcmVjdCxjczsiLAogICAgICAiICAgIHRyeXsgcmVjdD1lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgY3M9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOyB9Y2F0Y2goXyl7IGNvbnRpbnVlOyB9IiwKICAgICAgIiAgICBpZighcmVjdHx8cmVjdC53aWR0aDw9MHx8cmVjdC5oZWlnaHQ8PTApIGNvbnRpbnVlOyIsCiAgICAgICIgICAgaWYoIWNzfHxjcy5kaXNwbGF5PT09J25vbmUnfHxjcy52aXNpYmlsaXR5PT09J2hpZGRlbicpIGNvbnRpbnVlOyIsCiAgICAgICIgICAgY2hlY2tlZCsrOyIsCiAgICAgICIgICAgdmFyIG5hbWU9c2VsZWN0b3JPZihlbCk7IiwKICAgICAgIiAgICB2YXIgbGVmdE92ZXJmbG93PU1hdGgucm91bmQoMC1yZWN0LmxlZnQpOyIsCiAgICAgICIgICAgdmFyIHJpZ2h0T3ZlcmZsb3c9TWF0aC5yb3VuZChyZWN0LnJpZ2h0LXZwLndpZHRoKTsiLAogICAgICAiICAgIGlmKHJlY3Qud2lkdGg+dnAud2lkdGgrMikgaXNzdWVzLnB1c2goJ1RPTyBXSURFOiAnK25hbWUrJyB8IHdpZHRoPScrTWF0aC5yb3VuZChyZWN0LndpZHRoKSsnIHwgdmlld3BvcnQ9Jyt2cC53aWR0aCk7IiwKICAgICAgIiAgICBlbHNlIGlmKHJpZ2h0T3ZlcmZsb3c+MikgaXNzdWVzLnB1c2goJ09WRVJGTE9XIFJJR0hUOiAnK25hbWUrJyB8IGJ5ICcrcmlnaHRPdmVyZmxvdysncHgnKTsiLAogICAgICAiICAgIGVsc2UgaWYobGVmdE92ZXJmbG93PjIpIGlzc3Vlcy5wdXNoKCdPVkVSRkxPVyBMRUZUOiAnK25hbWUrJyB8IGJ5ICcrbGVmdE92ZXJmbG93KydweCcpOyIsCiAgICAgICIgICAgaWYoKGNzLnBvc2l0aW9uPT09J2ZpeGVkJ3x8Y3MucG9zaXRpb249PT0nc3RpY2t5JykmJnJlY3QuaGVpZ2h0PnZwLmhlaWdodCsyKSBpc3N1ZXMucHVzaCgnRklYRUQvU1RJQ0tZIFRPTyBUQUxMOiAnK25hbWUrJyB8IGhlaWdodD0nK01hdGgucm91bmQocmVjdC5oZWlnaHQpKycgfCB2aWV3cG9ydD0nK3ZwLmhlaWdodCk7IiwKICAgICAgIiAgICBpZigoY3Mub3ZlcmZsb3dYPT09J2hpZGRlbid8fGNzLm92ZXJmbG93WD09PSdjbGlwJykmJmVsLnNjcm9sbFdpZHRoPmVsLmNsaWVudFdpZHRoKzI0JiZlbC5jbGllbnRXaWR0aD4wKSBpc3N1ZXMucHVzaCgnQ0xJUFBFRCBYOiAnK25hbWUrJyB8IGNsaWVudD0nK2VsLmNsaWVudFdpZHRoKycgfCBzY3JvbGw9JytlbC5zY3JvbGxXaWR0aCk7IiwKICAgICAgIiAgICBpZigoY3Mub3ZlcmZsb3dZPT09J2hpZGRlbid8fGNzLm92ZXJmbG93WT09PSdjbGlwJykmJmVsLnNjcm9sbEhlaWdodD5lbC5jbGllbnRIZWlnaHQrNDAmJmVsLmNsaWVudEhlaWdodD4wJiZyZWN0LmhlaWdodD4xMjApIGlzc3Vlcy5wdXNoKCdDTElQUEVEIFk6ICcrbmFtZSsnIHwgY2xpZW50PScrZWwuY2xpZW50SGVpZ2h0KycgfCBzY3JvbGw9JytlbC5zY3JvbGxIZWlnaHQpOyIsCiAgICAgICIgICAgaWYoaXNzdWVzLmxlbmd0aD49MjUpIGJyZWFrOyIsCiAgICAgICIgIH0iLAogICAgICAiICB2YXIgYWREYXRhPWNvbGxlY3RBZERhdGEodnApOyIsCiAgICAgICIgIGlmKGFkRGF0YS5hZElzc3VlQ291bnQmJmlzc3Vlcy5sZW5ndGg8MjUpeyIsCiAgICAgICIgICAgZm9yKHZhciBqPTA7ajxhZERhdGEuaXNzdWVzLmxlbmd0aCYmaXNzdWVzLmxlbmd0aDwyNTtqKyspIGlzc3Vlcy5wdXNoKGFkRGF0YS5pc3N1ZXNbal0pOyIsCiAgICAgICIgIH0iLAogICAgICAiICByZXR1cm4geyB2aWV3cG9ydDp2cCwgcGFnZVNjcm9sbFdpZHRoOnBhZ2VTY3JvbGxXaWR0aCwgY2hlY2tlZDpjaGVja2VkLCBhZENvdW50OmFkRGF0YS5hZENvdW50LCBhZElzc3VlQ291bnQ6YWREYXRhLmFkSXNzdWVDb3VudCwgaXNzdWVDb3VudDppc3N1ZXMubGVuZ3RoLCBzdGF0dXM6aXNzdWVzLmxlbmd0aD8nSVNTVUVTIEZPVU5EJzonUEFTUycsIGlzc3Vlczppc3N1ZXMgfTsiLAogICAgICAifSIsCiAgICAgICJmdW5jdGlvbiBzZW5kKCl7IiwKICAgICAgIiAgaWYoc2VudCkgcmV0dXJuOyIsCiAgICAgICIgIHNlbnQ9dHJ1ZTsiLAogICAgICAiICB0cnl7IiwKICAgICAgIiAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHsgdHlwZTonY3ZiLXZpZXdwb3J0LWF1ZGl0LXJlcG9ydCcsIGF1ZGl0SWQ6QVVESVRfSUQsIHRlc3RLZXk6VEVTVF9LRVksIHBheWxvYWQ6cnVuQXVkaXQoKSB9LCAnKicpOyIsCiAgICAgICIgIH1jYXRjaChfKXsgfSIsCiAgICAgICJ9IiwKICAgICAgImlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0nY29tcGxldGUnKSBzZXRUaW1lb3V0KHNlbmQsIDEyMDApOyIsCiAgICAgICJlbHNlIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsgc2V0VGltZW91dChzZW5kLCAxMjAwKTsgfSwgeyBvbmNlOnRydWUgfSk7IiwKICAgICAgInNldFRpbWVvdXQoc2VuZCwgNDUwMCk7IiwKICAgICAgIn0pKCk7IgogICAgXS5qb2luKCIiKTsKICB9CgogIGZ1bmN0aW9uIGNsb25lSGVhZEh0bWwoKXsKICAgIHZhciBoZWFkQ2xvbmUgPSBkb2N1bWVudC5oZWFkID8gZG9jdW1lbnQuaGVhZC5jbG9uZU5vZGUodHJ1ZSkgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkIik7CiAgICB2YXIgcmVtb3ZlTm9kZXMgPSBoZWFkQ2xvbmUucXVlcnlTZWxlY3RvckFsbCA/IGhlYWRDbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQsbm9zY3JpcHQiKSA6IFtdOwogICAgZm9yICh2YXIgaSA9IHJlbW92ZU5vZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgIGlmIChyZW1vdmVOb2Rlc1tpXSAmJiByZW1vdmVOb2Rlc1tpXS5wYXJlbnROb2RlKSByZW1vdmVOb2Rlc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHJlbW92ZU5vZGVzW2ldKTsKICAgIH0KICAgIHZhciBiYXNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYmFzZSIpOwogICAgYmFzZS5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBpZiAoaGVhZENsb25lLmZpcnN0Q2hpbGQpIGhlYWRDbG9uZS5pbnNlcnRCZWZvcmUoYmFzZSwgaGVhZENsb25lLmZpcnN0Q2hpbGQpOwogICAgZWxzZSBoZWFkQ2xvbmUuYXBwZW5kQ2hpbGQoYmFzZSk7CiAgICByZXR1cm4gaGVhZENsb25lLmlubmVySFRNTDsKICB9CgogIGZ1bmN0aW9uIGNsb25lQm9keUh0bWwoKXsKICAgIHZhciBib2R5Q2xvbmUgPSBkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuYm9keS5jbG9uZU5vZGUodHJ1ZSkgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7CiAgICB2YXIgcmVtb3ZlTm9kZXMgPSBib2R5Q2xvbmUucXVlcnlTZWxlY3RvckFsbCA/IGJvZHlDbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQsbm9zY3JpcHQsI2N2Yi12aWV3cG9ydC1hdWRpdC1ib3gsW2RhdGEtY3ZiLWF1ZGl0LWlnbm9yZT0nMSddIikgOiBbXTsKICAgIGZvciAodmFyIGkgPSByZW1vdmVOb2Rlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICBpZiAocmVtb3ZlTm9kZXNbaV0gJiYgcmVtb3ZlTm9kZXNbaV0ucGFyZW50Tm9kZSkgcmVtb3ZlTm9kZXNbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyZW1vdmVOb2Rlc1tpXSk7CiAgICB9CiAgICByZXR1cm4gYm9keUNsb25lLmlubmVySFRNTDsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkUHJvYmVIdG1sKHRlc3QsIGF1ZGl0SWQsIGhlYWRIdG1sLCBib2R5SHRtbCl7CiAgICByZXR1cm4gWwogICAgICAiPCFkb2N0eXBlIGh0bWw+IiwKICAgICAgIjxodG1sPjxoZWFkPiIsCiAgICAgIGhlYWRIdG1sLAogICAgICAiPHN0eWxlPiIsCiAgICAgICJodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowO30iLAogICAgICAiI2N2Yi12aWV3cG9ydC1hdWRpdC1ib3gsW2RhdGEtY3ZiLWF1ZGl0LWlnbm9yZT0nMSdde2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30iLAogICAgICAiYm9keXtvdmVyZmxvdzphdXRvICFpbXBvcnRhbnQ7fSIsCiAgICAgICI8L3N0eWxlPiIsCiAgICAgICI8L2hlYWQ+PGJvZHk+IiwKICAgICAgYm9keUh0bWwsCiAgICAgICI8c2NyaXB0PiIsCiAgICAgIGJ1aWxkUHJvYmVTY3JpcHQodGVzdC5rZXksIGF1ZGl0SWQpLAogICAgICAiPFwvc2NyaXB0PiIsCiAgICAgICI8L2JvZHk+PC9odG1sPiIKICAgIF0uam9pbigiIik7CiAgfQoKICBmdW5jdGlvbiBidWlsZFJlcG9ydFRleHQoKXsKICAgIHZhciBsaW5lcyA9IFtdOwogICAgbGluZXMucHVzaCgiRk9VUiBWSUVXUE9SVCBBVURJVCIpOwogICAgbGluZXMucHVzaCgiIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBURVNUUy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgdGVzdCA9IFRFU1RTW2ldOwogICAgICB2YXIgcmVzdWx0ID0gcmVzdWx0c1t0ZXN0LmtleV07CgogICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgIGxpbmVzLnB1c2godGVzdC5sYWJlbCArICI6IG5vIHJlc3BvbnNlIik7CiAgICAgICAgbGluZXMucHVzaCgiIik7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGxpbmVzLnB1c2godGVzdC5sYWJlbCArICI6ICIgKyByZXN1bHQuc3RhdHVzKTsKICAgICAgbGluZXMucHVzaCgiVmlld3BvcnQ6ICIgKyByZXN1bHQudmlld3BvcnQud2lkdGggKyAieCIgKyByZXN1bHQudmlld3BvcnQuaGVpZ2h0ICsgIiAoIiArIHJlc3VsdC52aWV3cG9ydC5vcmllbnRhdGlvbiArICIpIik7CiAgICAgIGxpbmVzLnB1c2goIklzc3VlczogIiArIHJlc3VsdC5pc3N1ZUNvdW50ICsgIiB8IENoZWNrZWQgbm9kZXM6ICIgKyByZXN1bHQuY2hlY2tlZCk7CiAgICAgIGxpbmVzLnB1c2goIkFkcyBmb3VuZDogIiArIChyZXN1bHQuYWRDb3VudCB8fCAwKSArICIgfCBBZCBpc3N1ZXM6ICIgKyAocmVzdWx0LmFkSXNzdWVDb3VudCB8fCAwKSk7CgogICAgICBpZiAocmVzdWx0Lmlzc3VlcyAmJiByZXN1bHQuaXNzdWVzLmxlbmd0aCkgewogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgTWF0aC5taW4ocmVzdWx0Lmlzc3Vlcy5sZW5ndGgsIDgpOyBqKyspIHsKICAgICAgICAgIGxpbmVzLnB1c2goIi0gIiArIHJlc3VsdC5pc3N1ZXNbal0pOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBsaW5lcy5wdXNoKCItIE5vIHZpc2libGUgcGxhY2VtZW50IG9yIG92ZXJmbG93IGlzc3VlIGZvdW5kLiIpOwogICAgICB9CgogICAgICBsaW5lcy5wdXNoKCIiKTsKICAgIH0KCiAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKICB9CgogIGZ1bmN0aW9uIHJlbmRlcigpewogICAgaWYgKCF1aS5yZXBvcnQpIHJldHVybjsKICAgIHVpLnJlcG9ydC50ZXh0Q29udGVudCA9IHJlcG9ydFRleHQ7CiAgfQoKICBmdW5jdGlvbiBzZXRTdGF0dXModGV4dCl7CiAgICBpZiAodWkuc3RhdHVzKSB1aS5zdGF0dXMudGV4dENvbnRlbnQgPSB0ZXh0OwogIH0KCiAgZnVuY3Rpb24gY2xlYW51cEF1ZGl0KCl7CiAgICBpZiAoYWN0aXZlVGltZXIpIHsKICAgICAgY2xlYXJUaW1lb3V0KGFjdGl2ZVRpbWVyKTsKICAgICAgYWN0aXZlVGltZXIgPSBudWxsOwogICAgfQogICAgaWYgKGFjdGl2ZVJvb3QgJiYgYWN0aXZlUm9vdC5wYXJlbnROb2RlKSB7CiAgICAgIGFjdGl2ZVJvb3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhY3RpdmVSb290KTsKICAgIH0KICAgIGFjdGl2ZVJvb3QgPSBudWxsOwogICAgcGVuZGluZ0NvdW50ID0gMDsKICB9CgogIGZ1bmN0aW9uIGZpbmFsaXplQXVkaXQoKXsKICAgIGNsZWFudXBBdWRpdCgpOwogICAgcmVwb3J0VGV4dCA9IGJ1aWxkUmVwb3J0VGV4dCgpOwogICAgcmVuZGVyKCk7CiAgICBzZXRTdGF0dXMoIkF1ZGl0IGZpbmlzaGVkLiBVc2UgQ29weSBSZXN1bHRzIHRvIGNvcHkgdGhlIHJlcG9ydC4iKTsKICAgIGlmICh1aS5ydW5CdG4pIHVpLnJ1bkJ0bi50ZXh0Q29udGVudCA9ICJSdW4gQXVkaXQiOwogIH0KCiAgZnVuY3Rpb24gcnVuQXVkaXQoKXsKICAgIGVuc3VyZVVJKCk7CiAgICBjbGVhbnVwQXVkaXQoKTsKICAgIHJlc3VsdHMgPSB7fTsKICAgIGFjdGl2ZUF1ZGl0SWQgPSBTdHJpbmcoRGF0ZS5ub3coKSkgKyAiLSIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApOwogICAgcGVuZGluZ0NvdW50ID0gVEVTVFMubGVuZ3RoOwogICAgcmVwb3J0VGV4dCA9ICJSdW5uaW5nIGZvdXIgdmlld3BvcnQgYXVkaXQuLi4iOwogICAgcmVuZGVyKCk7CiAgICBzZXRTdGF0dXMoIlJ1bm5pbmc6IERlc2t0b3Agd2lkZSwgRGVza3RvcCBzbWFsbCwgUGhvbmUgcG9ydHJhaXQsIE1vYmlsZSByb3RhdGVkIik7CiAgICBpZiAodWkucnVuQnRuKSB1aS5ydW5CdG4udGV4dENvbnRlbnQgPSAiUnVubmluZy4uLiI7CgogICAgdmFyIGhlYWRIdG1sID0gY2xvbmVIZWFkSHRtbCgpOwogICAgdmFyIGJvZHlIdG1sID0gY2xvbmVCb2R5SHRtbCgpOwoKICAgIGFjdGl2ZVJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIGFjdGl2ZVJvb3Quc2V0QXR0cmlidXRlKCJkYXRhLWN2Yi1hdWRpdC1pZ25vcmUiLCAiMSIpOwogICAgYWN0aXZlUm9vdC5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7CiAgICBhY3RpdmVSb290LnN0eWxlLmxlZnQgPSAiLTIwMDAwcHgiOwogICAgYWN0aXZlUm9vdC5zdHlsZS50b3AgPSAiMCI7CiAgICBhY3RpdmVSb290LnN0eWxlLndpZHRoID0gIjFweCI7CiAgICBhY3RpdmVSb290LnN0eWxlLmhlaWdodCA9ICIxcHgiOwogICAgYWN0aXZlUm9vdC5zdHlsZS5vcGFjaXR5ID0gIjAiOwogICAgYWN0aXZlUm9vdC5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwogICAgYWN0aXZlUm9vdC5zdHlsZS5wb2ludGVyRXZlbnRzID0gIm5vbmUiOwoKICAgIGlmIChkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFjdGl2ZVJvb3QpOwogICAgZWxzZSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoYWN0aXZlUm9vdCk7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBURVNUUy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgdGVzdCA9IFRFU1RTW2ldOwogICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAgICAgZnJhbWUuc2V0QXR0cmlidXRlKCJkYXRhLWN2Yi1hdWRpdC1pZ25vcmUiLCAiMSIpOwogICAgICBmcmFtZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwgInRydWUiKTsKICAgICAgZnJhbWUuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iKTsKICAgICAgZnJhbWUuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgIGZyYW1lLnN0eWxlLndpZHRoID0gdGVzdC53aWR0aCArICJweCI7CiAgICAgIGZyYW1lLnN0eWxlLmhlaWdodCA9IHRlc3QuaGVpZ2h0ICsgInB4IjsKICAgICAgZnJhbWUuc3R5bGUuYm9yZGVyID0gIjAiOwogICAgICBmcmFtZS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgIGFjdGl2ZVJvb3QuYXBwZW5kQ2hpbGQoZnJhbWUpOwoKICAgICAgdHJ5ewogICAgICAgIHZhciBwcm9iZURvYyA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7CiAgICAgICAgcHJvYmVEb2Mub3BlbigpOwogICAgICAgIHByb2JlRG9jLndyaXRlKGJ1aWxkUHJvYmVIdG1sKHRlc3QsIGFjdGl2ZUF1ZGl0SWQsIGhlYWRIdG1sLCBib2R5SHRtbCkpOwogICAgICAgIHByb2JlRG9jLmNsb3NlKCk7CiAgICAgIH1jYXRjaChlcnIpewogICAgICAgIHJlc3VsdHNbdGVzdC5rZXldID0gewogICAgICAgICAgdmlld3BvcnQ6IHsgd2lkdGg6dGVzdC53aWR0aCwgaGVpZ2h0OnRlc3QuaGVpZ2h0LCBvcmllbnRhdGlvbjp0ZXN0LndpZHRoID4gdGVzdC5oZWlnaHQgPyAibGFuZHNjYXBlIiA6ICJwb3J0cmFpdCIgfSwKICAgICAgICAgIGNoZWNrZWQ6IDAsCiAgICAgICAgICBhZENvdW50OiAwLAogICAgICAgICAgYWRJc3N1ZUNvdW50OiAwLAogICAgICAgICAgaXNzdWVDb3VudDogMSwKICAgICAgICAgIHN0YXR1czogIldSSVRFIEZBSUxFRCIsCiAgICAgICAgICBpc3N1ZXM6IFsiQ291bGQgbm90IGJ1aWxkIHByb2JlIGZyYW1lOiAiICsgU3RyaW5nKGVycildCiAgICAgICAgfTsKICAgICAgICBwZW5kaW5nQ291bnQtLTsKICAgICAgfQogICAgfQoKICAgIGlmIChwZW5kaW5nQ291bnQgPD0gMCkgewogICAgICBmaW5hbGl6ZUF1ZGl0KCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBhY3RpdmVUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBURVNUUy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciB0ZXN0ID0gVEVTVFNbaV07CiAgICAgICAgaWYgKCFyZXN1bHRzW3Rlc3Qua2V5XSkgewogICAgICAgICAgcmVzdWx0c1t0ZXN0LmtleV0gPSB7CiAgICAgICAgICAgIHZpZXdwb3J0OiB7IHdpZHRoOnRlc3Qud2lkdGgsIGhlaWdodDp0ZXN0LmhlaWdodCwgb3JpZW50YXRpb246dGVzdC53aWR0aCA+IHRlc3QuaGVpZ2h0ID8gImxhbmRzY2FwZSIgOiAicG9ydHJhaXQiIH0sCiAgICAgICAgICAgIGNoZWNrZWQ6IDAsCiAgICAgICAgICAgIGFkQ291bnQ6IDAsCiAgICAgICAgICAgIGFkSXNzdWVDb3VudDogMCwKICAgICAgICAgICAgaXNzdWVDb3VudDogMSwKICAgICAgICAgICAgc3RhdHVzOiAiTk8gUkVTUE9OU0UiLAogICAgICAgICAgICBpc3N1ZXM6IFsiVGhpcyB0ZXN0IGRpZCBub3QgYW5zd2VyLiBXb3JkUHJlc3Mgb3IgYSBwbHVnaW4gbWF5IGJlIGJsb2NraW5nIHRoYXQgaWZyYW1lIHJ1bi4iXQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZmluYWxpemVBdWRpdCgpOwogICAgfSwgMTIwMDApOwogIH0KCiAgZnVuY3Rpb24gcnVuQ3VycmVudEF1ZGl0KCl7CiAgICByZXBvcnRUZXh0ID0gWwogICAgICAiQ1VSUkVOVCBWSUVXUE9SVCBBVURJVCIsCiAgICAgICIiLAogICAgICAoZnVuY3Rpb24oKXsKICAgICAgICB2YXIgciA9IGF1ZGl0RG9jdW1lbnQoZG9jdW1lbnQsIHdpbmRvdyk7CiAgICAgICAgdmFyIGxpbmVzID0gW107CiAgICAgICAgbGluZXMucHVzaCgiU3RhdHVzOiAiICsgci5zdGF0dXMpOwogICAgICAgIGxpbmVzLnB1c2goIlZpZXdwb3J0OiAiICsgci52aWV3cG9ydC53aWR0aCArICJ4IiArIHIudmlld3BvcnQuaGVpZ2h0ICsgIiAoIiArIHIudmlld3BvcnQub3JpZW50YXRpb24gKyAiKSIpOwogICAgICAgIGxpbmVzLnB1c2goIklzc3VlczogIiArIHIuaXNzdWVDb3VudCArICIgfCBDaGVja2VkIG5vZGVzOiAiICsgci5jaGVja2VkKTsKICAgICAgICBsaW5lcy5wdXNoKCJBZHMgZm91bmQ6ICIgKyAoci5hZENvdW50IHx8IDApICsgIiB8IEFkIGlzc3VlczogIiArIChyLmFkSXNzdWVDb3VudCB8fCAwKSk7CiAgICAgICAgbGluZXMucHVzaCgiIik7CiAgICAgICAgaWYgKHIuaXNzdWVzICYmIHIuaXNzdWVzLmxlbmd0aCkgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBNYXRoLm1pbihyLmlzc3Vlcy5sZW5ndGgsIDgpOyBpKyspIGxpbmVzLnB1c2goIi0gIiArIHIuaXNzdWVzW2ldKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbGluZXMucHVzaCgiLSBObyB2aXNpYmxlIHBsYWNlbWVudCBvciBvdmVyZmxvdyBpc3N1ZSBmb3VuZC4iKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGxpbmVzLmpvaW4oIlxuIik7CiAgICAgIH0pKCkKICAgIF0uam9pbigiXG4iKTsKICAgIHJlbmRlcigpOwogICAgc2V0U3RhdHVzKCJDdXJyZW50IHZpZXdwb3J0IGF1ZGl0IHJlYWR5LiIpOwogIH0KCiAgZnVuY3Rpb24gZW5zdXJlVUkoKXsKICAgIGlmICh1aS5ib3gpIHJldHVybjsKCiAgICB2YXIgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICBib3guaWQgPSAiY3ZiLXZpZXdwb3J0LWF1ZGl0LWJveCI7CiAgICBib3guc2V0QXR0cmlidXRlKCJkYXRhLWN2Yi1hdWRpdC1pZ25vcmUiLCAiMSIpOwogICAgYm94LnN0eWxlLnBvc2l0aW9uID0gImZpeGVkIjsKICAgIGJveC5zdHlsZS5sZWZ0ID0gIjEwcHgiOwogICAgYm94LnN0eWxlLnJpZ2h0ID0gIjEwcHgiOwogICAgYm94LnN0eWxlLmJvdHRvbSA9ICIxMHB4IjsKICAgIGJveC5zdHlsZS56SW5kZXggPSAiMjE0NzQ4MzY0NyI7CiAgICBib3guc3R5bGUuYmFja2dyb3VuZCA9ICJyZ2JhKDAsMCwwLDAuOTYpIjsKICAgIGJveC5zdHlsZS5jb2xvciA9ICIjZjhmYWZjIjsKICAgIGJveC5zdHlsZS5ib3JkZXIgPSAiMXB4IHNvbGlkICNlZjQ0NDQiOwogICAgYm94LnN0eWxlLmJvcmRlclJhZGl1cyA9ICIxMnB4IjsKICAgIGJveC5zdHlsZS5ib3hTaGFkb3cgPSAiMCAxMnB4IDMwcHggcmdiYSgwLDAsMCwuMzUpIjsKICAgIGJveC5zdHlsZS5mb250RmFtaWx5ID0gInVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIjsKICAgIGJveC5zdHlsZS5mb250U2l6ZSA9ICIxMnB4IjsKICAgIGJveC5zdHlsZS5saW5lSGVpZ2h0ID0gIjEuNCI7CiAgICBib3guc3R5bGUucGFkZGluZyA9ICIxMHB4IjsKICAgIGJveC5zdHlsZS5tYXhIZWlnaHQgPSAiNzh2aCI7CiAgICBib3guc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKICAgIGJveC5zdHlsZS5mbGV4RGlyZWN0aW9uID0gImNvbHVtbiI7CiAgICBib3guc3R5bGUuZ2FwID0gIjhweCI7CiAgICBib3guc3R5bGUuYm94U2l6aW5nID0gImJvcmRlci1ib3giOwoKICAgIHZhciB0b3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHRvcC5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgdG9wLnN0eWxlLmFsaWduSXRlbXMgPSAiY2VudGVyIjsKICAgIHRvcC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICJzcGFjZS1iZXR3ZWVuIjsKICAgIHRvcC5zdHlsZS5nYXAgPSAiOHB4IjsKICAgIHRvcC5zdHlsZS5mbGV4V3JhcCA9ICJ3cmFwIjsKCiAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHRpdGxlLnRleHRDb250ZW50ID0gIkZvdXIgVmlld3BvcnQgQXVkaXQiOwogICAgdGl0bGUuc3R5bGUuZm9udFdlaWdodCA9ICI3MDAiOwogICAgdGl0bGUuc3R5bGUuY29sb3IgPSAiI2ZmZmZmZiI7CgogICAgdmFyIGNvbnRyb2xzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICBjb250cm9scy5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgY29udHJvbHMuc3R5bGUuZ2FwID0gIjZweCI7CiAgICBjb250cm9scy5zdHlsZS5mbGV4V3JhcCA9ICJ3cmFwIjsKCiAgICBmdW5jdGlvbiBtYWtlQnRuKGxhYmVsLCBiZyl7CiAgICAgIHZhciBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgICAgYnRuLnR5cGUgPSAiYnV0dG9uIjsKICAgICAgYnRuLnRleHRDb250ZW50ID0gbGFiZWw7CiAgICAgIGJ0bi5zdHlsZS5iYWNrZ3JvdW5kID0gYmc7CiAgICAgIGJ0bi5zdHlsZS5jb2xvciA9ICIjZmZmIjsKICAgICAgYnRuLnN0eWxlLmJvcmRlciA9ICIwIjsKICAgICAgYnRuLnN0eWxlLmJvcmRlclJhZGl1cyA9ICI4cHgiOwogICAgICBidG4uc3R5bGUucGFkZGluZyA9ICI4cHggMTBweCI7CiAgICAgIGJ0bi5zdHlsZS5mb250ID0gImluaGVyaXQiOwogICAgICBidG4uc3R5bGUuY3Vyc29yID0gInBvaW50ZXIiOwogICAgICByZXR1cm4gYnRuOwogICAgfQoKICAgIHZhciBydW5CdG4gPSBtYWtlQnRuKCJSdW4gQXVkaXQiLCAiIzA1OTY2OSIpOwogICAgdmFyIGN1cnJlbnRCdG4gPSBtYWtlQnRuKCJDdXJyZW50IFZpZXciLCAiIzI1NjNlYiIpOwogICAgdmFyIGNvcHlCdG4gPSBtYWtlQnRuKCJDb3B5IFJlc3VsdHMiLCAiIzdjM2FlZCIpOwogICAgdmFyIGhpZGVCdG4gPSBtYWtlQnRuKCJIaWRlIiwgIiM0NzU1NjkiKTsKCiAgICBjb250cm9scy5hcHBlbmRDaGlsZChydW5CdG4pOwogICAgY29udHJvbHMuYXBwZW5kQ2hpbGQoY3VycmVudEJ0bik7CiAgICBjb250cm9scy5hcHBlbmRDaGlsZChjb3B5QnRuKTsKICAgIGNvbnRyb2xzLmFwcGVuZENoaWxkKGhpZGVCdG4pOwoKICAgIHRvcC5hcHBlbmRDaGlsZCh0aXRsZSk7CiAgICB0b3AuYXBwZW5kQ2hpbGQoY29udHJvbHMpOwoKICAgIHZhciBzdGF0dXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHN0YXR1cy5zdHlsZS5jb2xvciA9ICIjOTNjNWZkIjsKICAgIHN0YXR1cy5zdHlsZS5mb250U2l6ZSA9ICIxMXB4IjsKICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICJSZWFkeSB8IGJ1aWxkICIgKyB3aW5kb3cuX19DVkJfVklFV1BPUlRfQVVESVRfQlVJTERfXzsKCiAgICB2YXIgdGVzdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHRlc3RzLnN0eWxlLmNvbG9yID0gIiNjYmQ1ZTEiOwogICAgdGVzdHMuc3R5bGUuZm9udFNpemUgPSAiMTFweCI7CiAgICB0ZXN0cy50ZXh0Q29udGVudCA9ICJUZXN0czogRGVza3RvcCB3aWRlIHwgRGVza3RvcCBzbWFsbCB8IFBob25lIHBvcnRyYWl0IHwgTW9iaWxlIHJvdGF0ZWQiOwoKICAgIHZhciByZXBvcnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKICAgIHJlcG9ydC5zdHlsZS5tYXJnaW4gPSAiMCI7CiAgICByZXBvcnQuc3R5bGUud2hpdGVTcGFjZSA9ICJwcmUtd3JhcCI7CiAgICByZXBvcnQuc3R5bGUud29yZEJyZWFrID0gImJyZWFrLXdvcmQiOwogICAgcmVwb3J0LnN0eWxlLmJhY2tncm91bmQgPSAiIzExMTgyNyI7CiAgICByZXBvcnQuc3R5bGUuYm9yZGVyID0gIjFweCBzb2xpZCAjMzc0MTUxIjsKICAgIHJlcG9ydC5zdHlsZS5ib3JkZXJSYWRpdXMgPSAiOHB4IjsKICAgIHJlcG9ydC5zdHlsZS5wYWRkaW5nID0gIjhweCI7CiAgICByZXBvcnQuc3R5bGUuY29sb3IgPSAiI2ZkZTY4YSI7CiAgICByZXBvcnQuc3R5bGUubWF4SGVpZ2h0ID0gIjQ4dmgiOwogICAgcmVwb3J0LnN0eWxlLm92ZXJmbG93ID0gImF1dG8iOwogICAgcmVwb3J0LnRleHRDb250ZW50ID0gcmVwb3J0VGV4dDsKCiAgICBib3guYXBwZW5kQ2hpbGQodG9wKTsKICAgIGJveC5hcHBlbmRDaGlsZChzdGF0dXMpOwogICAgYm94LmFwcGVuZENoaWxkKHRlc3RzKTsKICAgIGJveC5hcHBlbmRDaGlsZChyZXBvcnQpOwoKICAgIHVpLmJveCA9IGJveDsKICAgIHVpLnN0YXR1cyA9IHN0YXR1czsKICAgIHVpLnJlcG9ydCA9IHJlcG9ydDsKICAgIHVpLnJ1bkJ0biA9IHJ1bkJ0bjsKCiAgICBydW5CdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBydW5BdWRpdCk7CiAgICBjdXJyZW50QnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgcnVuQ3VycmVudEF1ZGl0KTsKICAgIGNvcHlCdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpewogICAgICBpZiAoY29weVRleHQocmVwb3J0VGV4dCkpIHsKICAgICAgICBzZXRTdGF0dXMoIlJlc3VsdHMgY29waWVkLiIpOwogICAgICAgIGNvcHlCdG4udGV4dENvbnRlbnQgPSAiQ29waWVkIjsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGNvcHlCdG4udGV4dENvbnRlbnQgPSAiQ29weSBSZXN1bHRzIjsgfSwgMTQwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2V0U3RhdHVzKCJDb3B5IGZhaWxlZC4gU2VsZWN0IHRoZSByZXBvcnQgbWFudWFsbHkuIik7CiAgICAgIH0KICAgIH0pOwogICAgaGlkZUJ0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCl7CiAgICAgIGJveC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgfSk7CgogICAgd2luZG93Ll9fY3ZiU2hvd0RlYnVnQm94ID0gZnVuY3Rpb24oKXsKICAgICAgZW5zdXJlVUkoKTsKICAgICAgdWkuYm94LnN0eWxlLmRpc3BsYXkgPSAiZmxleCI7CiAgICB9OwogICAgd2luZG93Ll9fY3ZiUnVuU2l6ZUF1ZGl0ID0gcnVuQXVkaXQ7CiAgICB3aW5kb3cuX19jdmJSdW5DdXJyZW50QXVkaXQgPSBydW5DdXJyZW50QXVkaXQ7CgogICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJsb2FkaW5nIikgewogICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKXsKICAgICAgICBpZiAoIWJveC5wYXJlbnROb2RlKSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGJveCk7CiAgICAgIH0sIHsgb25jZTp0cnVlIH0pOwogICAgfSBlbHNlIGlmICghYm94LnBhcmVudE5vZGUpIHsKICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChib3gpOwogICAgfQogIH0KCiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCl7CiAgICB2YXIgZGF0YSA9IGV2ZW50ICYmIGV2ZW50LmRhdGE7CiAgICBpZiAoIWRhdGEgfHwgZGF0YS50eXBlICE9PSAiY3ZiLXZpZXdwb3J0LWF1ZGl0LXJlcG9ydCIpIHJldHVybjsKICAgIGlmICghYWN0aXZlQXVkaXRJZCB8fCBkYXRhLmF1ZGl0SWQgIT09IGFjdGl2ZUF1ZGl0SWQpIHJldHVybjsKICAgIGlmICghZGF0YS50ZXN0S2V5IHx8IHJlc3VsdHNbZGF0YS50ZXN0S2V5XSkgcmV0dXJuOwoKICAgIHJlc3VsdHNbZGF0YS50ZXN0S2V5XSA9IGRhdGEucGF5bG9hZDsKICAgIHBlbmRpbmdDb3VudC0tOwogICAgcmVwb3J0VGV4dCA9IGJ1aWxkUmVwb3J0VGV4dCgpOwogICAgcmVuZGVyKCk7CgogICAgaWYgKHBlbmRpbmdDb3VudCA8PSAwKSBmaW5hbGl6ZUF1ZGl0KCk7CiAgfSk7CgogIGVuc3VyZVVJKCk7CgogIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICBzZXRUaW1lb3V0KHJ1bkF1ZGl0LCAxMjAwKTsKICB9IGVsc2UgewogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpewogICAgICBzZXRUaW1lb3V0KHJ1bkF1ZGl0LCAxMjAwKTsKICAgIH0sIHsgb25jZTp0cnVlIH0pOwogIH0KfSkoKTsNCg==
DQogIChmdW5jdGlvbigpew0KICAgIGZ1bmN0aW9uIHdoZW5SZWFkeShmbil7DQogICAgICBjb25zdCBvayA9ICEhKHdpbmRvdy5sdWNpZGUgJiYgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImN2Yi1yb290IikpOw0KICAgICAgaWYoIW9rKSByZXR1cm4gc2V0VGltZW91dCgoKT0+d2hlblJlYWR5KGZuKSwgMzApOw0K
ICAgICAgZm4oKTsNCiAgICB9DQoNCiAgICB3aGVuUmVhZHkoZnVuY3Rpb24oKXsNCiAgICAgIGlmKHdpbmRvdy5fX0NWQl9ET05FX1YyOV9fKSByZXR1cm47
DQogICAgICB3aW5kb3cuX19DVkJfRE9ORV9WMjlfXyA9IHRydWU7DQoNCiAgICAgIGNvbnN0IGVzYyA9IChzKSA9PiAocyA/PyAiIikudG9TdHJpbmcoKS5y
ZXBsYWNlKC9bJjw+IiddL2csbT0+KHsnJic6JyZhbXA7JywnPCc6JyZsdDsnLCc+JzonJmd0OycsJyInOicmcXVvdDsnLCInIjonJiMwMzk7J31bbV0pKTsN
CiAgICAgIGNvbnN0IGVzY0F0dHIgPSAocykgPT4gZXNjKHMpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik7DQogICAgICBjb25zdCBpc0JsYW5rID0gKHMpID0+
ICEocyA/PyAiIikudG9TdHJpbmcoKS50cmltKCk7DQogICAgICBjb25zdCBlbCA9IChpZCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KY29u
c3QgY2xhbXAgPSAobiwgYSwgYikgPT4gTWF0aC5tYXgoYSwgTWF0aC5taW4oYiwgbikpOw0KDQpjb25zdCBpc0NvYXJzZVBvaW50ZXIgPSAoKSA9PgogIHdp
bmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6bm9uZSkgYW5kIChwb2ludGVyOmNvYXJzZSkiKS5tYXRjaGVzOwoKZnVuY3Rpb24gZ2V0Vmlld3BvcnRTaXplKCl7
CiAgY29uc3QgdnYgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQ7CiAgcmV0dXJuIHsKICAgIHdpZHRoOiBNYXRoLm1heCgzMjAsIE1hdGgucm91bmQodnYgPyB2
di53aWR0aCA6IHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAzMjApKSwKICAgIGhlaWdodDog
TWF0aC5tYXgoMzIwLCBNYXRoLnJvdW5kKHZ2ID8gdnYuaGVpZ2h0IDogd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5j
bGllbnRIZWlnaHQgfHwgMzIwKSkKICB9Owp9Cgpjb25zdCBpc1Bob25lTGlrZVZpZXdwb3J0ID0gKCkgPT4gewogIGNvbnN0IHZpZXdwb3J0ID0gZ2V0Vmll
d3BvcnRTaXplKCk7CiAgcmV0dXJuIGlzQ29hcnNlUG9pbnRlcigpICYmIE1hdGgubWluKHZpZXdwb3J0LndpZHRoLCB2aWV3cG9ydC5oZWlnaHQpIDw9IDkw
MDsKfTsKCmNvbnN0IGlzV2lkZVBob25lTGFuZHNjYXBlID0gKCkgPT4gewogIGNvbnN0IHZpZXdwb3J0ID0gZ2V0Vmlld3BvcnRTaXplKCk7CiAgcmV0dXJu
IGlzUGhvbmVMaWtlVmlld3BvcnQoKSAmJiB2aWV3cG9ydC53aWR0aCA+IHZpZXdwb3J0LmhlaWdodDsKfTsKCmNvbnN0IGlzUGhvbmVQb3J0cmFpdCA9ICgp
ID0+IHsKICBjb25zdCB2aWV3cG9ydCA9IGdldFZpZXdwb3J0U2l6ZSgpOwogIHJldHVybiBpc1Bob25lTGlrZVZpZXdwb3J0KCkgJiYgdmlld3BvcnQuaGVp
Z2h0ID49IHZpZXdwb3J0LndpZHRoOwp9OwoKY29uc3QgaXNOYXJyb3dWaWV3cG9ydCA9ICgpID0+CiAgZ2V0Vmlld3BvcnRTaXplKCkud2lkdGggPD0gNTUw
OwoKY29uc3QgaXNPbmVDb2wgPSAoKSA9PiBpc05hcnJvd1ZpZXdwb3J0KCkgfHwgaXNQaG9uZVBvcnRyYWl0KCk7Cg0KZnVuY3Rpb24gaGV4VG9SZ2JhKGhl
eCwgYSl7DQogICAgICAgIGNvbnN0IGggPSAoaGV4fHwiIikudG9TdHJpbmcoKS50cmltKCk7DQogICAgICAgIGxldCB4ID0gaC5yZXBsYWNlKCIjIiwiIiku
dHJpbSgpOw0KICAgICAgICBpZih4Lmxlbmd0aD09PTMpIHggPSB4LnNwbGl0KCIiKS5tYXAoYz0+YytjKS5qb2luKCIiKTsNCiAgICAgICAgaWYoeC5sZW5n
dGghPT02KSByZXR1cm4gInJnYmEoMCwwLDAsIisoYT8/MC4yKSsiKSI7DQogICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh4LnNsaWNlKDAsMiksMTYpOw0K
ICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQoeC5zbGljZSgyLDQpLDE2KTsNCiAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KHguc2xpY2UoNCw2KSwxNik7
DQogICAgICAgIHJldHVybiAicmdiYSgiK3IrIiwiK2crIiwiK2IrIiwiKyhhPz8xKSsiKSI7DQogICAgICB9DQoNCiAgICAgIGNvbnN0IExBTkdfT1BUSU9O
UyA9IFsNCiAgICAgICAgWyJ6aCIsIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERGMyBcdTRFMkRcdTY1ODciXSwNCiAgICAgICAgWyJkZSIsIlx1RDgzQ1x1RERF
OVx1RDgzQ1x1RERFQSBEZXV0c2NoIl0sDQogICAgICAgIFsiZW4iLCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERTcgRW5nbGlzaCJdLA0KICAgICAgICBbImVz
IiwiXHVEODNDXHVEREVBXHVEODNDXHVEREY4IEVzcGFcdTAwRjFvbCJdLA0KICAgICAgICBbImZyIiwiXHVEODNDXHVEREVCXHVEODNDXHVEREY3IEZyYW5c
dTAwRTdhaXMiXSwNCiAgICAgICAgWyJpdCIsIlx1RDgzQ1x1RERFRVx1RDgzQ1x1RERGOSBJdGFsaWFubyJdLA0KICAgICAgICBbImh1IiwiXHVEODNDXHVE
REVEXHVEODNDXHVEREZBIE1hZ3lhciJdLA0KICAgICAgICBbIm5sIiwiXHVEODNDXHVEREYzXHVEODNDXHVEREYxIE5lZGVybGFuZHMiXSwNCiAgICAgICAg
WyJwbCIsIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGMSBQb2xza2kiXSwNCiAgICAgICAgWyJwdCIsIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGOSBQb3J0dWd1
XHUwMEVBcyJdLA0KICAgICAgICBbInJvIiwiXHVEODNDXHVEREY3XHVEODNDXHVEREY0IFJvbVx1MDBFMm5cdTAxMDMiXSwNCiAgICAgICAgWyJzdiIsIlx1
RDgzQ1x1RERGOFx1RDgzQ1x1RERFQSBTdmVuc2thIl0sDQogICAgICAgIFsiamEiLCJcdUQ4M0NcdURERUZcdUQ4M0NcdURERjUgXHU2NUU1XHU2NzJDXHU4
QTlFIl0NCiAgICAgIF07DQoNCiAgICAgIGNvbnN0IEZPTlRfT1BUSU9OUyA9IFsNCiAgICAgICAgWyJJbnRlciIsIkludGVyIl0sDQogICAgICAgIFsiUm9i
b3RvIiwiUm9ib3RvIl0sDQogICAgICAgIFsiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIl0sDQogICAgICAgIFsiTGF0byIsIkxhdG8iXSwNCiAgICAgICAgWyJN
b250c2VycmF0IiwiTW9udHNlcnJhdCJdLA0KICAgICAgICBbIk1lcnJpd2VhdGhlciIsIk1lcnJpd2VhdGhlciAoU2VyaWYpIl0NCiAgICAgIF07DQoNCiAg
ICAgIGNvbnN0IFQgPSB7DQogICAgICAgIGVuOnsNCiAgICAgICAgICBhcHA6IkNWIEJVSUxERVIgUFJPIiwNCiAgICAgICAgICBwcmludFBERjoiUHJpbnQg
LyBTYXZlIFBERiIsDQogICAgICAgICAgbGFuZ3VhZ2U6Ikxhbmd1YWdlIiwNCiAgICAgICAgICBmb250OiJGb250IiwNCiAgICAgICAgICB0ZW1wbGF0ZXM6
IlRlbXBsYXRlcyIsDQogICAgICAgICAgY2hhbmdlU2NoZW1lOiJDaGFuZ2UgQ29sb3IgU2NoZW1lIiwNCiAgICAgICAgICBwcmltYXJ5OiJQcmltYXJ5IiwN
CiAgICAgICAgICBzZWNvbmRhcnk6IlNlY29uZGFyeSIsDQogICAgICAgICAgY2FyZDoiQ2FyZCIsDQogICAgICAgICAgc2lkZWJhcjoiU2lkZWJhciIsDQog
ICAgICAgICAgc2lkZWJhclRleHQ6IlNpZGViYXIgdGV4dCIsDQogICAgICAgICAgcHJvZmlsZVBob3RvOiJQcm9maWxlIFBob3RvIiwNCiAgICAgICAgICB1
cGxvYWRQaG90bzoiVXBsb2FkIFBob3RvIiwNCiAgICAgICAgICBwaG90b0hpbnQ6Ik1heCA1TUIiLA0KICAgICAgICAgIHBob3RvU2hhcGU6IlBob3RvIHNo
YXBlIiwNCiAgICAgICAgICBzcXVhcmU6IlNxdWFyZSIsDQogICAgICAgICAgcm91bmRlZDoiUm91bmRlZCIsDQogICAgICAgICAgY2lyY2xlOiJDaXJjbGUi
LA0KICAgICAgICAgIHBob3RvQm9yZGVyOiJQaG90byBib3JkZXIiLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJCb3JkZXIgd2lkdGgiLA0KICAgICAgICAg
IGJvcmRlckNvbG9yOiJCb3JkZXIgY29sb3IiLA0KICAgICAgICAgIGFjY2VudDoiQWNjZW50IiwNCiAgICAgICAgICBiYWNrZ3JvdW5kOiJQYXBlciIsDQog
ICAgICAgICAgdGV4dDoiVGV4dCIsDQogICAgICAgICAgc3VidGl0bGU6IlN1YnRpdGxlIiwNCiAgICAgICAgICBwZXJzb25hbEluZm86IlBlcnNvbmFsIElu
Zm9ybWF0aW9uIiwNCiAgICAgICAgICBmdWxsTmFtZToiRnVsbCBOYW1lIiwNCiAgICAgICAgICBqb2JUaXRsZToiSm9iIFRpdGxlIiwNCiAgICAgICAgICBl
bWFpbDoiRW1haWwiLA0KICAgICAgICAgIHBob25lOiJQaG9uZSIsDQogICAgICAgICAgYWRkcmVzczoiQWRkcmVzcyIsDQogICAgICAgICAgd2Vic2l0ZToi
V2Vic2l0ZSAvIExpbmtlZEluIiwNCiAgICAgICAgICBuYXRpb25hbGl0eToiTmF0aW9uYWxpdHkiLA0KICAgICAgICAgIHN1bW1hcnk6IlByb2Zlc3Npb25h
bCBTdW1tYXJ5IiwNCiAgICAgICAgICBleHBlcmllbmNlOiJXb3JrIEV4cGVyaWVuY2UiLA0KICAgICAgICAgIGVkdWNhdGlvbjoiRWR1Y2F0aW9uIiwNCiAg
ICAgICAgICBza2lsbHM6IlNraWxscyIsDQogICAgICAgICAgbGFuZ3VhZ2VzOiJMYW5ndWFnZXMiLA0KICAgICAgICAgIGNlcnRpZmljYXRpb25zOiJDZXJ0
aWZpY2F0aW9ucyIsDQogICAgICAgICAgYWRkOiJBZGQiLA0KICAgICAgICAgIHJlbW92ZToiUmVtb3ZlIiwNCiAgICAgICAgICBwb3NpdGlvbjoiUG9zaXRp
b24iLA0KICAgICAgICAgIGNvbXBhbnk6IkNvbXBhbnkiLA0KICAgICAgICAgIHBlcmlvZDoiUGVyaW9kIiwNCiAgICAgICAgICBkZXNjcmlwdGlvbjoiRGVz
Y3JpcHRpb24iLA0KICAgICAgICAgIGRlZ3JlZToiRGVncmVlIiwNCiAgICAgICAgICBzY2hvb2w6IlNjaG9vbCAvIFVuaXZlcnNpdHkiLA0KICAgICAgICAg
IHllYXI6IlllYXIiLA0KICAgICAgICAgIGxhbmd1YWdlTmFtZToiTGFuZ3VhZ2UiLA0KICAgICAgICAgIGxldmVsOiJMZXZlbCIsDQogICAgICAgICAgY2Vy
dE5hbWU6IkNlcnRpZmljYXRpb24iLA0KICAgICAgICAgIGNvbnRhY3Q6IkNvbnRhY3QiLA0KICAgICAgICAgIGxhbmdMZWdlbmQ6IlBpY2sgYSBsZXZlbC4g
UHJldmlldyBzaG93cyBhIDUtc3RlcCBzY2FsZS4iLA0KICAgICAgICAgIGx2bDE6IkJhc2ljIiwNCiAgICAgICAgICBsdmwyOiJJbnRlcm1lZGlhdGUiLA0K
ICAgICAgICAgIGx2bDM6IkNvbnZlcnNhdGlvbmFsIiwNCiAgICAgICAgICBsdmw0OiJQcm9mZXNzaW9uYWwiLA0KICAgICAgICAgIGx2bDU6Ik5hdGl2ZSAv
IEZsdWVudCIsDQogICAgICAgICAgbm9uZToiTm9uZSIsDQogICAgICAgICAgZG90czoiRG90cyIsDQogICAgICAgICAgbGluZXM6IkxpbmVzIiwNCiAgICAg
ICAgICBiYXJzOiJCYXJzIiwNCiAgICAgICAgICBzdGFyczoiU3RhcnMiLA0KICAgICAgICAgIGxhbmdTdHlsZToiTGFuZ3VhZ2Ugc3R5bGUiLA0KICAgICAg
ICAgIHNraWxsU3R5bGU6IlNraWxsIHN0eWxlIiwNCiAgICAgICAgICBuZXdTa2lsbDoiTmV3IHNraWxsIiwNCiAgICAgICAgICB5b3VyTmFtZToiWW91ciBO
YW1lIiwNCiAgICAgICAgICBwcmV2aW91czoiUHJldmlvdXMiLA0KICAgICAgICAgIG5leHQ6Ik5leHQiDQogICAgICAgIH0sDQoNCiAgICAgICAgcm86ew0K
ICAgICAgICAgIGFwcDoiQ1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAgIHByaW50UERGOiJUaXBcdTAxMDNyZVx1MDIxOXRlIC8gU2FsdmVhelx1MDEwMyBQ
REYiLA0KICAgICAgICAgIGxhbmd1YWdlOiJMaW1iXHUwMTAzIiwNCiAgICAgICAgICBmb250OiJGb250IiwNCiAgICAgICAgICB0ZW1wbGF0ZXM6Ilx1MDIx
OGFibG9hbmUiLA0KICAgICAgICAgIGNoYW5nZVNjaGVtZToiU2NoaW1iXHUwMTAzIHNjaGVtYSBkZSBjdWxvcmkiLA0KICAgICAgICAgIHByaW1hcnk6IlBy
aW5jaXBhbCIsDQogICAgICAgICAgc2Vjb25kYXJ5OiJTZWN1bmRhciIsDQogICAgICAgICAgY2FyZDoiQ2FyZCIsDQogICAgICAgICAgc2lkZWJhcjoiQmFy
XHUwMTAzIGxhdGVyYWxcdTAxMDMiLA0KICAgICAgICAgIHNpZGViYXJUZXh0OiJUZXh0IGJhclx1MDEwMyBsYXRlcmFsXHUwMTAzIiwNCiAgICAgICAgICBw
cm9maWxlUGhvdG86IlBvelx1MDEwMyBkZSBwcm9maWwiLA0KICAgICAgICAgIHVwbG9hZFBob3RvOiJcdTAwQ0VuY2FyY1x1MDEwMyBwb3pcdTAxMDMiLA0K
ICAgICAgICAgIHBob3RvSGludDoiTWF4IDVNQiIsDQogICAgICAgICAgcGhvdG9TaGFwZToiRm9ybVx1MDEwMyBwb3pcdTAxMDMiLA0KICAgICAgICAgIHNx
dWFyZToiUFx1MDEwM3RyYXQiLA0KICAgICAgICAgIHJvdW5kZWQ6IlJvdHVuaml0IiwNCiAgICAgICAgICBjaXJjbGU6IkNlcmMiLA0KICAgICAgICAgIHBo
b3RvQm9yZGVyOiJDb250dXIgcG96XHUwMTAzIiwNCiAgICAgICAgICBib3JkZXJXaWR0aDoiR3Jvc2ltZSIsDQogICAgICAgICAgYm9yZGVyQ29sb3I6IkN1
bG9hcmUgY29udHVyIiwNCiAgICAgICAgICBhY2NlbnQ6IkFjY2VudCIsDQogICAgICAgICAgYmFja2dyb3VuZDoiSFx1MDBFMnJ0aWUiLA0KICAgICAgICAg
IHRleHQ6IlRleHQiLA0KICAgICAgICAgIHN1YnRpdGxlOiJTdWJ0aXRsdSIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJJbmZvcm1hXHUwMjFCaWkgcGVy
c29uYWxlIiwNCiAgICAgICAgICBmdWxsTmFtZToiTnVtZSBjb21wbGV0IiwNCiAgICAgICAgICBqb2JUaXRsZToiRnVuY1x1MDIxQmllIiwNCiAgICAgICAg
ICBlbWFpbDoiRW1haWwiLA0KICAgICAgICAgIHBob25lOiJUZWxlZm9uIiwNCiAgICAgICAgICBhZGRyZXNzOiJBZHJlc1x1MDEwMyIsDQogICAgICAgICAg
d2Vic2l0ZToiV2Vic2l0ZSAvIExpbmtlZEluIiwNCiAgICAgICAgICBuYXRpb25hbGl0eToiTmFcdTAyMUJpb25hbGl0YXRlIiwNCiAgICAgICAgICBzdW1t
YXJ5OiJSZXp1bWF0IHByb2Zlc2lvbmFsIiwNCiAgICAgICAgICBleHBlcmllbmNlOiJFeHBlcmllblx1MDIxQlx1MDEwMyIsDQogICAgICAgICAgZWR1Y2F0
aW9uOiJFZHVjYVx1MDIxQmllIiwNCiAgICAgICAgICBza2lsbHM6IkNvbXBldGVuXHUwMjFCZSIsDQogICAgICAgICAgbGFuZ3VhZ2VzOiJMaW1iaSIsDQog
ICAgICAgICAgY2VydGlmaWNhdGlvbnM6IkNlcnRpZmljXHUwMTAzcmkiLA0KICAgICAgICAgIGFkZDoiQWRhdWdcdTAxMDMiLA0KICAgICAgICAgIHJlbW92
ZToiXHUwMjE4dGVyZ2UiLA0KICAgICAgICAgIHBvc2l0aW9uOiJGdW5jXHUwMjFCaWUiLA0KICAgICAgICAgIGNvbXBhbnk6IkNvbXBhbmllIiwNCiAgICAg
ICAgICBwZXJpb2Q6IlBlcmlvYWRcdTAxMDMiLA0KICAgICAgICAgIGRlc2NyaXB0aW9uOiJEZXNjcmllcmUiLA0KICAgICAgICAgIGRlZ3JlZToiRGlwbG9t
XHUwMTAzIiwNCiAgICAgICAgICBzY2hvb2w6Ilx1MDIxOGNvYWxcdTAxMDMgLyBVbml2ZXJzaXRhdGUiLA0KICAgICAgICAgIHllYXI6IkFuIiwNCiAgICAg
ICAgICBsYW5ndWFnZU5hbWU6IkxpbWJcdTAxMDMiLA0KICAgICAgICAgIGxldmVsOiJOaXZlbCIsDQogICAgICAgICAgY2VydE5hbWU6IkNlcnRpZmljYXJl
IiwNCiAgICAgICAgICBjb250YWN0OiJDb250YWN0IiwNCiAgICAgICAgICBsYW5nTGVnZW5kOiJBbGVnZSBuaXZlbHVsLiBcdTAwQ0VuIHByZXZpenVhbGl6
YXJlIGFwYXJlIG8gc2NhbFx1MDEwMyBjdSA1IHRyZXB0ZS4iLA0KICAgICAgICAgIGx2bDE6IkRlIGJhelx1MDEwMyIsDQogICAgICAgICAgbHZsMjoiTWVk
aXUiLA0KICAgICAgICAgIGx2bDM6IkNvbnZlcnNhXHUwMjFCaW9uYWwiLA0KICAgICAgICAgIGx2bDQ6IkF2YW5zYXQiLA0KICAgICAgICAgIGx2bDU6Ik5h
dGl2IC8gRmx1ZW50IiwNCiAgICAgICAgICBub25lOiJOaW1pYyIsDQogICAgICAgICAgZG90czoiUHVuY3RlIiwNCiAgICAgICAgICBsaW5lczoiTGluaWki
LA0KICAgICAgICAgIGJhcnM6IkJhcmUiLA0KICAgICAgICAgIHN0YXJzOiJTdGVsZSIsDQogICAgICAgICAgbGFuZ1N0eWxlOiJTdGlsIGxpbWJpIiwNCiAg
ICAgICAgICBza2lsbFN0eWxlOiJTdGlsIGNvbXBldGVuXHUwMjFCZSIsDQogICAgICAgICAgbmV3U2tpbGw6IkNvbXBldGVuXHUwMjFCXHUwMTAzIG5vdVx1
MDEwMyIsDQogICAgICAgICAgeW91ck5hbWU6Ik51bWVsZSB0XHUwMTAzdSIsDQogICAgICAgICAgcHJldmlvdXM6IkFudGVyaW9yIiwNCiAgICAgICAgICBu
ZXh0OiJVcm1cdTAxMDN0b3IiDQogICAgICAgIH0sDQoNCiAgICAgICAgZGU6ew0KICAgICAgICAgIGFwcDoiQ1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAg
IHByaW50UERGOiJEcnVja2VuIC8gUERGIHNwZWljaGVybiIsDQogICAgICAgICAgbGFuZ3VhZ2U6IlNwcmFjaGUiLA0KICAgICAgICAgIGZvbnQ6IlNjaHJp
ZnRhcnQiLA0KICAgICAgICAgIHRlbXBsYXRlczoiVm9ybGFnZW4iLA0KICAgICAgICAgIGNoYW5nZVNjaGVtZToiRmFyYnNjaGVtYSBcdTAwRTRuZGVybiIs
DQogICAgICAgICAgcHJpbWFyeToiUHJpbVx1MDBFNHIiLA0KICAgICAgICAgIHNlY29uZGFyeToiU2VrdW5kXHUwMEU0ciIsDQogICAgICAgICAgY2FyZDoi
S2FydGUiLA0KICAgICAgICAgIHNpZGViYXI6IlNlaXRlbmxlaXN0ZSIsDQogICAgICAgICAgc2lkZWJhclRleHQ6IlRleHQgaW4gZGVyIFNlaXRlbmxlaXN0
ZSIsDQogICAgICAgICAgcHJvZmlsZVBob3RvOiJQcm9maWxmb3RvIiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoiRm90byBob2NobGFkZW4iLA0KICAgICAg
ICAgIHBob3RvSGludDoiTWF4LiA1IE1CIiwNCiAgICAgICAgICBwaG90b1NoYXBlOiJGb3RvZm9ybSIsDQogICAgICAgICAgc3F1YXJlOiJRdWFkcmF0aXNj
aCIsDQogICAgICAgICAgcm91bmRlZDoiQWJnZXJ1bmRldCIsDQogICAgICAgICAgY2lyY2xlOiJLcmVpcyIsDQogICAgICAgICAgcGhvdG9Cb3JkZXI6IkZv
dG9yYWhtZW4iLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJSYWhtZW5icmVpdGUiLA0KICAgICAgICAgIGJvcmRlckNvbG9yOiJSYWhtZW5mYXJiZSIsDQog
ICAgICAgICAgYWNjZW50OiJBa3plbnQiLA0KICAgICAgICAgIGJhY2tncm91bmQ6IlBhcGllciIsDQogICAgICAgICAgdGV4dDoiVGV4dCIsDQogICAgICAg
ICAgc3VidGl0bGU6IlVudGVydGl0ZWwiLA0KICAgICAgICAgIHBlcnNvbmFsSW5mbzoiUGVyc1x1MDBGNm5saWNoZSBBbmdhYmVuIiwNCiAgICAgICAgICBm
dWxsTmFtZToiVm9sbHN0XHUwMEU0bmRpZ2VyIE5hbWUiLA0KICAgICAgICAgIGpvYlRpdGxlOiJCZXJ1ZnNiZXplaWNobnVuZyIsDQogICAgICAgICAgZW1h
aWw6IkUtTWFpbCIsDQogICAgICAgICAgcGhvbmU6IlRlbGVmb24iLA0KICAgICAgICAgIGFkZHJlc3M6IkFkcmVzc2UiLA0KICAgICAgICAgIHdlYnNpdGU6
IldlYnNpdGUgLyBMaW5rZWRJbiIsDQogICAgICAgICAgbmF0aW9uYWxpdHk6Ik5hdGlvbmFsaXRcdTAwRTR0IiwNCiAgICAgICAgICBzdW1tYXJ5OiJCZXJ1
ZmxpY2hlcyBQcm9maWwiLA0KICAgICAgICAgIGV4cGVyaWVuY2U6IkJlcnVmc2VyZmFocnVuZyIsDQogICAgICAgICAgZWR1Y2F0aW9uOiJBdXNiaWxkdW5n
IiwNCiAgICAgICAgICBza2lsbHM6IkZcdTAwRTRoaWdrZWl0ZW4iLA0KICAgICAgICAgIGxhbmd1YWdlczoiU3ByYWNoZW4iLA0KICAgICAgICAgIGNlcnRp
ZmljYXRpb25zOiJaZXJ0aWZpa2F0ZSIsDQogICAgICAgICAgYWRkOiJIaW56dWZcdTAwRkNnZW4iLA0KICAgICAgICAgIHJlbW92ZToiRW50ZmVybmVuIiwN
CiAgICAgICAgICBwb3NpdGlvbjoiUG9zaXRpb24iLA0KICAgICAgICAgIGNvbXBhbnk6IlVudGVybmVobWVuIiwNCiAgICAgICAgICBwZXJpb2Q6IlplaXRy
YXVtIiwNCiAgICAgICAgICBkZXNjcmlwdGlvbjoiQmVzY2hyZWlidW5nIiwNCiAgICAgICAgICBkZWdyZWU6IkFic2NobHVzcyIsDQogICAgICAgICAgc2No
b29sOiJTY2h1bGUgLyBVbml2ZXJzaXRcdTAwRTR0IiwNCiAgICAgICAgICB5ZWFyOiJKYWhyIiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6IlNwcmFjaGUi
LA0KICAgICAgICAgIGxldmVsOiJOaXZlYXUiLA0KICAgICAgICAgIGNlcnROYW1lOiJaZXJ0aWZpa2F0IiwNCiAgICAgICAgICBjb250YWN0OiJLb250YWt0
IiwNCiAgICAgICAgICBsYW5nTGVnZW5kOiJXXHUwMEU0aGxlIGVpbiBOaXZlYXUuIEluIGRlciBWb3JzY2hhdSBlcnNjaGVpbnQgZWluZSA1LXN0dWZpZ2Ug
U2thbGEuIiwNCiAgICAgICAgICBsdmwxOiJHcnVuZGtlbm50bmlzc2UiLA0KICAgICAgICAgIGx2bDI6Ik1pdHRlbHN0dWZlIiwNCiAgICAgICAgICBsdmwz
OiJLb252ZXJzYXRpb25zc2ljaGVyIiwNCiAgICAgICAgICBsdmw0OiJCZXJ1ZmxpY2giLA0KICAgICAgICAgIGx2bDU6Ik11dHRlcnNwcmFjaGUgLyBGbGll
XHUwMERGZW5kIiwNCiAgICAgICAgICBub25lOiJPaG5lIiwNCiAgICAgICAgICBkb3RzOiJQdW5rdGUiLA0KICAgICAgICAgIGxpbmVzOiJMaW5pZW4iLA0K
ICAgICAgICAgIGJhcnM6IkJhbGtlbiIsDQogICAgICAgICAgc3RhcnM6IlN0ZXJuZSIsDQogICAgICAgICAgbGFuZ1N0eWxlOiJTcHJhY2hlbnN0aWwiLA0K
ICAgICAgICAgIHNraWxsU3R5bGU6IkZcdTAwRTRoaWdrZWl0ZW5zdGlsIiwNCiAgICAgICAgICBuZXdTa2lsbDoiTmV1ZSBGXHUwMEU0aGlna2VpdCIsDQog
ICAgICAgICAgeW91ck5hbWU6IklociBOYW1lIiwNCiAgICAgICAgICBwcmV2aW91czoiWnVyXHUwMEZDY2siLA0KICAgICAgICAgIG5leHQ6IldlaXRlciIN
CiAgICAgICAgfSwNCg0KICAgICAgICBlczp7DQogICAgICAgICAgYXBwOiJDViBCVUlMREVSIFBSTyIsDQogICAgICAgICAgcHJpbnRQREY6IkltcHJpbWly
IC8gR3VhcmRhciBQREYiLA0KICAgICAgICAgIGxhbmd1YWdlOiJJZGlvbWEiLA0KICAgICAgICAgIGZvbnQ6IkZ1ZW50ZSIsDQogICAgICAgICAgdGVtcGxh
dGVzOiJQbGFudGlsbGFzIiwNCiAgICAgICAgICBjaGFuZ2VTY2hlbWU6IkNhbWJpYXIgZXNxdWVtYSBkZSBjb2xvciIsDQogICAgICAgICAgcHJpbWFyeToi
UHJpbmNpcGFsIiwNCiAgICAgICAgICBzZWNvbmRhcnk6IlNlY3VuZGFyaW8iLA0KICAgICAgICAgIGNhcmQ6IlRhcmpldGEiLA0KICAgICAgICAgIHNpZGVi
YXI6IkJhcnJhIGxhdGVyYWwiLA0KICAgICAgICAgIHNpZGViYXJUZXh0OiJUZXh0byBkZSBsYSBiYXJyYSBsYXRlcmFsIiwNCiAgICAgICAgICBwcm9maWxl
UGhvdG86IkZvdG8gZGUgcGVyZmlsIiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoiU3ViaXIgZm90byIsDQogICAgICAgICAgcGhvdG9IaW50OiJNXHUwMEUx
eC4gNSBNQiIsDQogICAgICAgICAgcGhvdG9TaGFwZToiRm9ybWEgZGUgbGEgZm90byIsDQogICAgICAgICAgc3F1YXJlOiJDdWFkcmFkYSIsDQogICAgICAg
ICAgcm91bmRlZDoiUmVkb25kZWFkYSIsDQogICAgICAgICAgY2lyY2xlOiJDaXJjdWxhciIsDQogICAgICAgICAgcGhvdG9Cb3JkZXI6IkJvcmRlIGRlIGxh
IGZvdG8iLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJHcm9zb3IgZGVsIGJvcmRlIiwNCiAgICAgICAgICBib3JkZXJDb2xvcjoiQ29sb3IgZGVsIGJvcmRl
IiwNCiAgICAgICAgICBhY2NlbnQ6IkFjZW50byIsDQogICAgICAgICAgYmFja2dyb3VuZDoiUGFwZWwiLA0KICAgICAgICAgIHRleHQ6IlRleHRvIiwNCiAg
ICAgICAgICBzdWJ0aXRsZToiU3VidFx1MDBFRHR1bG8iLA0KICAgICAgICAgIHBlcnNvbmFsSW5mbzoiSW5mb3JtYWNpXHUwMEYzbiBwZXJzb25hbCIsDQog
ICAgICAgICAgZnVsbE5hbWU6Ik5vbWJyZSBjb21wbGV0byIsDQogICAgICAgICAgam9iVGl0bGU6IlB1ZXN0byIsDQogICAgICAgICAgZW1haWw6IkNvcnJl
byBlbGVjdHJcdTAwRjNuaWNvIiwNCiAgICAgICAgICBwaG9uZToiVGVsXHUwMEU5Zm9ubyIsDQogICAgICAgICAgYWRkcmVzczoiRGlyZWNjaVx1MDBGM24i
LA0KICAgICAgICAgIHdlYnNpdGU6IlNpdGlvIHdlYiAvIExpbmtlZEluIiwNCiAgICAgICAgICBuYXRpb25hbGl0eToiTmFjaW9uYWxpZGFkIiwNCiAgICAg
ICAgICBzdW1tYXJ5OiJSZXN1bWVuIHByb2Zlc2lvbmFsIiwNCiAgICAgICAgICBleHBlcmllbmNlOiJFeHBlcmllbmNpYSBsYWJvcmFsIiwNCiAgICAgICAg
ICBlZHVjYXRpb246IkVkdWNhY2lcdTAwRjNuIiwNCiAgICAgICAgICBza2lsbHM6IkNvbXBldGVuY2lhcyIsDQogICAgICAgICAgbGFuZ3VhZ2VzOiJJZGlv
bWFzIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiQ2VydGlmaWNhY2lvbmVzIiwNCiAgICAgICAgICBhZGQ6IkFcdTAwRjFhZGlyIiwNCiAgICAgICAg
ICByZW1vdmU6IkVsaW1pbmFyIiwNCiAgICAgICAgICBwb3NpdGlvbjoiUHVlc3RvIiwNCiAgICAgICAgICBjb21wYW55OiJFbXByZXNhIiwNCiAgICAgICAg
ICBwZXJpb2Q6IlBlclx1MDBFRG9kbyIsDQogICAgICAgICAgZGVzY3JpcHRpb246IkRlc2NyaXBjaVx1MDBGM24iLA0KICAgICAgICAgIGRlZ3JlZToiVFx1
MDBFRHR1bG8iLA0KICAgICAgICAgIHNjaG9vbDoiRXNjdWVsYSAvIFVuaXZlcnNpZGFkIiwNCiAgICAgICAgICB5ZWFyOiJBXHUwMEYxbyIsDQogICAgICAg
ICAgbGFuZ3VhZ2VOYW1lOiJJZGlvbWEiLA0KICAgICAgICAgIGxldmVsOiJOaXZlbCIsDQogICAgICAgICAgY2VydE5hbWU6IkNlcnRpZmljYWNpXHUwMEYz
biIsDQogICAgICAgICAgY29udGFjdDoiQ29udGFjdG8iLA0KICAgICAgICAgIGxhbmdMZWdlbmQ6IkVsaWdlIHVuIG5pdmVsLiBFbiBsYSB2aXN0YSBwcmV2
aWEgYXBhcmVjZSB1bmEgZXNjYWxhIGRlIDUgbml2ZWxlcy4iLA0KICAgICAgICAgIGx2bDE6IkJcdTAwRTFzaWNvIiwNCiAgICAgICAgICBsdmwyOiJJbnRl
cm1lZGlvIiwNCiAgICAgICAgICBsdmwzOiJDb252ZXJzYWNpb25hbCIsDQogICAgICAgICAgbHZsNDoiUHJvZmVzaW9uYWwiLA0KICAgICAgICAgIGx2bDU6
Ik5hdGl2byAvIEZsdWlkbyIsDQogICAgICAgICAgbm9uZToiTmluZ3VubyIsDQogICAgICAgICAgZG90czoiUHVudG9zIiwNCiAgICAgICAgICBsaW5lczoi
TFx1MDBFRG5lYXMiLA0KICAgICAgICAgIGJhcnM6IkJhcnJhcyIsDQogICAgICAgICAgc3RhcnM6IkVzdHJlbGxhcyIsDQogICAgICAgICAgbGFuZ1N0eWxl
OiJFc3RpbG8gZGUgaWRpb21hcyIsDQogICAgICAgICAgc2tpbGxTdHlsZToiRXN0aWxvIGRlIGNvbXBldGVuY2lhcyIsDQogICAgICAgICAgbmV3U2tpbGw6
Ik51ZXZhIGNvbXBldGVuY2lhIiwNCiAgICAgICAgICB5b3VyTmFtZToiVHUgbm9tYnJlIiwNCiAgICAgICAgICBwcmV2aW91czoiQW50ZXJpb3IiLA0KICAg
ICAgICAgIG5leHQ6IlNpZ3VpZW50ZSINCiAgICAgICAgfSwNCg0KICAgICAgICBmcjp7DQogICAgICAgICAgYXBwOiJDViBCVUlMREVSIFBSTyIsDQogICAg
ICAgICAgcHJpbnRQREY6IkltcHJpbWVyIC8gRW5yZWdpc3RyZXIgZW4gUERGIiwNCiAgICAgICAgICBsYW5ndWFnZToiTGFuZ3VlIiwNCiAgICAgICAgICBm
b250OiJQb2xpY2UiLA0KICAgICAgICAgIHRlbXBsYXRlczoiTW9kXHUwMEU4bGVzIiwNCiAgICAgICAgICBjaGFuZ2VTY2hlbWU6IkNoYW5nZXIgbGEgcGFs
ZXR0ZSBkZSBjb3VsZXVycyIsDQogICAgICAgICAgcHJpbWFyeToiUHJpbmNpcGFsIiwNCiAgICAgICAgICBzZWNvbmRhcnk6IlNlY29uZGFpcmUiLA0KICAg
ICAgICAgIGNhcmQ6IkNhcnRlIiwNCiAgICAgICAgICBzaWRlYmFyOiJCYXJyZSBsYXRcdTAwRTlyYWxlIiwNCiAgICAgICAgICBzaWRlYmFyVGV4dDoiVGV4
dGUgZGUgbGEgYmFycmUgbGF0XHUwMEU5cmFsZSIsDQogICAgICAgICAgcHJvZmlsZVBob3RvOiJQaG90byBkZSBwcm9maWwiLA0KICAgICAgICAgIHVwbG9h
ZFBob3RvOiJUXHUwMEU5bFx1MDBFOXZlcnNlciB1bmUgcGhvdG8iLA0KICAgICAgICAgIHBob3RvSGludDoiTWF4LiA1IE1vIiwNCiAgICAgICAgICBwaG90
b1NoYXBlOiJGb3JtZSBkZSBsYSBwaG90byIsDQogICAgICAgICAgc3F1YXJlOiJDYXJyXHUwMEU5ZSIsDQogICAgICAgICAgcm91bmRlZDoiQXJyb25kaWUi
LA0KICAgICAgICAgIGNpcmNsZToiUm9uZGUiLA0KICAgICAgICAgIHBob3RvQm9yZGVyOiJDb250b3VyIGRlIGxhIHBob3RvIiwNCiAgICAgICAgICBib3Jk
ZXJXaWR0aDoiXHUwMEM5cGFpc3NldXIgZHUgY29udG91ciIsDQogICAgICAgICAgYm9yZGVyQ29sb3I6IkNvdWxldXIgZHUgY29udG91ciIsDQogICAgICAg
ICAgYWNjZW50OiJBY2NlbnQiLA0KICAgICAgICAgIGJhY2tncm91bmQ6IlBhcGllciIsDQogICAgICAgICAgdGV4dDoiVGV4dGUiLA0KICAgICAgICAgIHN1
YnRpdGxlOiJTb3VzLXRpdHJlIiwNCiAgICAgICAgICBwZXJzb25hbEluZm86IkluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMiLA0KICAgICAgICAgIGZ1bGxO
YW1lOiJOb20gY29tcGxldCIsDQogICAgICAgICAgam9iVGl0bGU6IlBvc3RlIiwNCiAgICAgICAgICBlbWFpbDoiRS1tYWlsIiwNCiAgICAgICAgICBwaG9u
ZToiVFx1MDBFOWxcdTAwRTlwaG9uZSIsDQogICAgICAgICAgYWRkcmVzczoiQWRyZXNzZSIsDQogICAgICAgICAgd2Vic2l0ZToiU2l0ZSB3ZWIgLyBMaW5r
ZWRJbiIsDQogICAgICAgICAgbmF0aW9uYWxpdHk6Ik5hdGlvbmFsaXRcdTAwRTkiLA0KICAgICAgICAgIHN1bW1hcnk6IlByb2ZpbCBwcm9mZXNzaW9ubmVs
IiwNCiAgICAgICAgICBleHBlcmllbmNlOiJFeHBcdTAwRTlyaWVuY2UgcHJvZmVzc2lvbm5lbGxlIiwNCiAgICAgICAgICBlZHVjYXRpb246IkZvcm1hdGlv
biIsDQogICAgICAgICAgc2tpbGxzOiJDb21wXHUwMEU5dGVuY2VzIiwNCiAgICAgICAgICBsYW5ndWFnZXM6Ikxhbmd1ZXMiLA0KICAgICAgICAgIGNlcnRp
ZmljYXRpb25zOiJDZXJ0aWZpY2F0aW9ucyIsDQogICAgICAgICAgYWRkOiJBam91dGVyIiwNCiAgICAgICAgICByZW1vdmU6IlN1cHByaW1lciIsDQogICAg
ICAgICAgcG9zaXRpb246IlBvc3RlIiwNCiAgICAgICAgICBjb21wYW55OiJFbnRyZXByaXNlIiwNCiAgICAgICAgICBwZXJpb2Q6IlBcdTAwRTlyaW9kZSIs
DQogICAgICAgICAgZGVzY3JpcHRpb246IkRlc2NyaXB0aW9uIiwNCiAgICAgICAgICBkZWdyZWU6IkRpcGxcdTAwRjRtZSIsDQogICAgICAgICAgc2Nob29s
OiJcdTAwQzljb2xlIC8gVW5pdmVyc2l0XHUwMEU5IiwNCiAgICAgICAgICB5ZWFyOiJBbm5cdTAwRTllIiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6Ikxh
bmd1ZSIsDQogICAgICAgICAgbGV2ZWw6Ik5pdmVhdSIsDQogICAgICAgICAgY2VydE5hbWU6IkNlcnRpZmljYXRpb24iLA0KICAgICAgICAgIGNvbnRhY3Q6
IkNvbnRhY3QiLA0KICAgICAgICAgIGxhbmdMZWdlbmQ6IkNob2lzaXNzZXogdW4gbml2ZWF1LiBMXHUyMDE5YXBlclx1MDBFN3UgYWZmaWNoZSB1bmUgXHUw
MEU5Y2hlbGxlIGVuIDUgbml2ZWF1eC4iLA0KICAgICAgICAgIGx2bDE6IkRcdTAwRTlidXRhbnQiLA0KICAgICAgICAgIGx2bDI6IkludGVybVx1MDBFOWRp
YWlyZSIsDQogICAgICAgICAgbHZsMzoiQ29udmVyc2F0aW9ubmVsIiwNCiAgICAgICAgICBsdmw0OiJQcm9mZXNzaW9ubmVsIiwNCiAgICAgICAgICBsdmw1
OiJOYXRpZiAvIENvdXJhbnQiLA0KICAgICAgICAgIG5vbmU6IkF1Y3VuIiwNCiAgICAgICAgICBkb3RzOiJQb2ludHMiLA0KICAgICAgICAgIGxpbmVzOiJM
aWduZXMiLA0KICAgICAgICAgIGJhcnM6IkJhcnJlcyIsDQogICAgICAgICAgc3RhcnM6Ilx1MDBDOXRvaWxlcyIsDQogICAgICAgICAgbGFuZ1N0eWxlOiJT
dHlsZSBkZXMgbGFuZ3VlcyIsDQogICAgICAgICAgc2tpbGxTdHlsZToiU3R5bGUgZGVzIGNvbXBcdTAwRTl0ZW5jZXMiLA0KICAgICAgICAgIG5ld1NraWxs
OiJOb3V2ZWxsZSBjb21wXHUwMEU5dGVuY2UiLA0KICAgICAgICAgIHlvdXJOYW1lOiJWb3RyZSBub20iLA0KICAgICAgICAgIHByZXZpb3VzOiJQclx1MDBF
OWNcdTAwRTlkZW50IiwNCiAgICAgICAgICBuZXh0OiJTdWl2YW50Ig0KICAgICAgICB9LA0KDQogICAgICAgIGl0OnsNCiAgICAgICAgICBhcHA6IkNWIEJV
SUxERVIgUFJPIiwNCiAgICAgICAgICBwcmludFBERjoiU3RhbXBhIC8gU2FsdmEgUERGIiwNCiAgICAgICAgICBsYW5ndWFnZToiTGluZ3VhIiwNCiAgICAg
ICAgICBmb250OiJDYXJhdHRlcmUiLA0KICAgICAgICAgIHRlbXBsYXRlczoiTW9kZWxsaSIsDQogICAgICAgICAgY2hhbmdlU2NoZW1lOiJDYW1iaWEgc2No
ZW1hIGNvbG9yaSIsDQogICAgICAgICAgcHJpbWFyeToiUHJpbWFyaW8iLA0KICAgICAgICAgIHNlY29uZGFyeToiU2Vjb25kYXJpbyIsDQogICAgICAgICAg
Y2FyZDoiU2NoZWRhIiwNCiAgICAgICAgICBzaWRlYmFyOiJCYXJyYSBsYXRlcmFsZSIsDQogICAgICAgICAgc2lkZWJhclRleHQ6IlRlc3RvIGJhcnJhIGxh
dGVyYWxlIiwNCiAgICAgICAgICBwcm9maWxlUGhvdG86IkZvdG8gcHJvZmlsbyIsDQogICAgICAgICAgdXBsb2FkUGhvdG86IkNhcmljYSBmb3RvIiwNCiAg
ICAgICAgICBwaG90b0hpbnQ6Ik1heCA1IE1CIiwNCiAgICAgICAgICBwaG90b1NoYXBlOiJGb3JtYSBmb3RvIiwNCiAgICAgICAgICBzcXVhcmU6IlF1YWRy
YXRhIiwNCiAgICAgICAgICByb3VuZGVkOiJBcnJvdG9uZGF0YSIsDQogICAgICAgICAgY2lyY2xlOiJDZXJjaGlvIiwNCiAgICAgICAgICBwaG90b0JvcmRl
cjoiQm9yZG8gZm90byIsDQogICAgICAgICAgYm9yZGVyV2lkdGg6IlNwZXNzb3JlIGJvcmRvIiwNCiAgICAgICAgICBib3JkZXJDb2xvcjoiQ29sb3JlIGJv
cmRvIiwNCiAgICAgICAgICBhY2NlbnQ6IkFjY2VudG8iLA0KICAgICAgICAgIGJhY2tncm91bmQ6IkNhcnRhIiwNCiAgICAgICAgICB0ZXh0OiJUZXN0byIs
DQogICAgICAgICAgc3VidGl0bGU6IlNvdHRvdGl0b2xvIiwNCiAgICAgICAgICBwZXJzb25hbEluZm86IkluZm9ybWF6aW9uaSBwZXJzb25hbGkiLA0KICAg
ICAgICAgIGZ1bGxOYW1lOiJOb21lIGNvbXBsZXRvIiwNCiAgICAgICAgICBqb2JUaXRsZToiUnVvbG8iLA0KICAgICAgICAgIGVtYWlsOiJFbWFpbCIsDQog
ICAgICAgICAgcGhvbmU6IlRlbGVmb25vIiwNCiAgICAgICAgICBhZGRyZXNzOiJJbmRpcml6em8iLA0KICAgICAgICAgIHdlYnNpdGU6IlNpdG8gd2ViIC8g
TGlua2VkSW4iLA0KICAgICAgICAgIG5hdGlvbmFsaXR5OiJOYXppb25hbGl0XHUwMEUwIiwNCiAgICAgICAgICBzdW1tYXJ5OiJQcm9maWxvIHByb2Zlc3Np
b25hbGUiLA0KICAgICAgICAgIGV4cGVyaWVuY2U6IkVzcGVyaWVuemEgbGF2b3JhdGl2YSIsDQogICAgICAgICAgZWR1Y2F0aW9uOiJGb3JtYXppb25lIiwN
CiAgICAgICAgICBza2lsbHM6IkNvbXBldGVuemUiLA0KICAgICAgICAgIGxhbmd1YWdlczoiTGluZ3VlIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoi
Q2VydGlmaWNhemlvbmkiLA0KICAgICAgICAgIGFkZDoiQWdnaXVuZ2kiLA0KICAgICAgICAgIHJlbW92ZToiUmltdW92aSIsDQogICAgICAgICAgcG9zaXRp
b246IlJ1b2xvIiwNCiAgICAgICAgICBjb21wYW55OiJBemllbmRhIiwNCiAgICAgICAgICBwZXJpb2Q6IlBlcmlvZG8iLA0KICAgICAgICAgIGRlc2NyaXB0
aW9uOiJEZXNjcml6aW9uZSIsDQogICAgICAgICAgZGVncmVlOiJUaXRvbG8gZGkgc3R1ZGlvIiwNCiAgICAgICAgICBzY2hvb2w6IlNjdW9sYSAvIFVuaXZl
cnNpdFx1MDBFMCIsDQogICAgICAgICAgeWVhcjoiQW5ubyIsDQogICAgICAgICAgbGFuZ3VhZ2VOYW1lOiJMaW5ndWEiLA0KICAgICAgICAgIGxldmVsOiJM
aXZlbGxvIiwNCiAgICAgICAgICBjZXJ0TmFtZToiQ2VydGlmaWNhemlvbmUiLA0KICAgICAgICAgIGNvbnRhY3Q6IkNvbnRhdHRpIiwNCiAgICAgICAgICBs
YW5nTGVnZW5kOiJTY2VnbGkgdW4gbGl2ZWxsby4gTFx1MjAxOWFudGVwcmltYSBtb3N0cmEgdW5hIHNjYWxhIGEgNSBsaXZlbGxpLiIsDQogICAgICAgICAg
bHZsMToiQmFzZSIsDQogICAgICAgICAgbHZsMjoiSW50ZXJtZWRpbyIsDQogICAgICAgICAgbHZsMzoiQ29udmVyc2F6aW9uYWxlIiwNCiAgICAgICAgICBs
dmw0OiJQcm9mZXNzaW9uYWxlIiwNCiAgICAgICAgICBsdmw1OiJNYWRyZWxpbmd1YSAvIEZsdWVudGUiLA0KICAgICAgICAgIG5vbmU6Ik5lc3N1bm8iLA0K
ICAgICAgICAgIGRvdHM6IlB1bnRpIiwNCiAgICAgICAgICBsaW5lczoiTGluZWUiLA0KICAgICAgICAgIGJhcnM6IkJhcnJlIiwNCiAgICAgICAgICBzdGFy
czoiU3RlbGxlIiwNCiAgICAgICAgICBsYW5nU3R5bGU6IlN0aWxlIGxpbmd1ZSIsDQogICAgICAgICAgc2tpbGxTdHlsZToiU3RpbGUgY29tcGV0ZW56ZSIs
DQogICAgICAgICAgbmV3U2tpbGw6Ik51b3ZhIGNvbXBldGVuemEiLA0KICAgICAgICAgIHlvdXJOYW1lOiJJbCB0dW8gbm9tZSIsDQogICAgICAgICAgcHJl
dmlvdXM6IlByZWNlZGVudGUiLA0KICAgICAgICAgIG5leHQ6IlN1Y2Nlc3Npdm8iDQogICAgICAgIH0sDQoNCiAgICAgICAgaHU6ew0KICAgICAgICAgIGFw
cDoiQ1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAgIHByaW50UERGOiJOeW9tdGF0XHUwMEUxcyAvIFBERiBtZW50XHUwMEU5c2UiLA0KICAgICAgICAgIGxh
bmd1YWdlOiJOeWVsdiIsDQogICAgICAgICAgZm9udDoiQmV0XHUwMTcxdFx1MDBFRHB1cyIsDQogICAgICAgICAgdGVtcGxhdGVzOiJTYWJsb25vayIsDQog
ICAgICAgICAgY2hhbmdlU2NoZW1lOiJTelx1MDBFRG5zXHUwMEU5bWEgbVx1MDBGM2Rvc1x1MDBFRHRcdTAwRTFzYSIsDQogICAgICAgICAgcHJpbWFyeToi
RWxzXHUwMTUxZGxlZ2VzIiwNCiAgICAgICAgICBzZWNvbmRhcnk6Ik1cdTAwRTFzb2RsYWdvcyIsDQogICAgICAgICAgY2FyZDoiS1x1MDBFMXJ0eWEiLA0K
ICAgICAgICAgIHNpZGViYXI6Ik9sZGFsc1x1MDBFMXYiLA0KICAgICAgICAgIHNpZGViYXJUZXh0OiJPbGRhbHNcdTAwRTF2IHN6XHUwMEY2dmVnZSIsDQog
ICAgICAgICAgcHJvZmlsZVBob3RvOiJQcm9maWxrXHUwMEU5cCIsDQogICAgICAgICAgdXBsb2FkUGhvdG86IkZcdTAwRTlueWtcdTAwRTlwIGZlbHRcdTAw
RjZsdFx1MDBFOXNlIiwNCiAgICAgICAgICBwaG90b0hpbnQ6Ik1heC4gNSBNQiIsDQogICAgICAgICAgcGhvdG9TaGFwZToiRlx1MDBFOW55a1x1MDBFOXAg
YWxha2phIiwNCiAgICAgICAgICBzcXVhcmU6Ik5cdTAwRTlneXpldCIsDQogICAgICAgICAgcm91bmRlZDoiTGVrZXJla1x1MDBFRHRldHQiLA0KICAgICAg
ICAgIGNpcmNsZToiS1x1MDBGNnIiLA0KICAgICAgICAgIHBob3RvQm9yZGVyOiJGXHUwMEU5bnlrXHUwMEU5cCBrZXJldGUiLA0KICAgICAgICAgIGJvcmRl
cldpZHRoOiJLZXJldHZhc3RhZ3NcdTAwRTFnIiwNCiAgICAgICAgICBib3JkZXJDb2xvcjoiS2VyZXQgc3pcdTAwRURuZSIsDQogICAgICAgICAgYWNjZW50
OiJLaWVtZWxcdTAxNTFzelx1MDBFRG4iLA0KICAgICAgICAgIGJhY2tncm91bmQ6IlBhcFx1MDBFRHIiLA0KICAgICAgICAgIHRleHQ6IlN6XHUwMEY2dmVn
IiwNCiAgICAgICAgICBzdWJ0aXRsZToiQWxjXHUwMEVEbSIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJTemVtXHUwMEU5bHllcyBhZGF0b2siLA0KICAg
ICAgICAgIGZ1bGxOYW1lOiJUZWxqZXMgblx1MDBFOXYiLA0KICAgICAgICAgIGpvYlRpdGxlOiJNdW5rYWtcdTAwRjZyIiwNCiAgICAgICAgICBlbWFpbDoi
RS1tYWlsIiwNCiAgICAgICAgICBwaG9uZToiVGVsZWZvbiIsDQogICAgICAgICAgYWRkcmVzczoiQ1x1MDBFRG0iLA0KICAgICAgICAgIHdlYnNpdGU6Ildl
Ym9sZGFsIC8gTGlua2VkSW4iLA0KICAgICAgICAgIG5hdGlvbmFsaXR5OiJcdTAwQzFsbGFtcG9sZ1x1MDBFMXJzXHUwMEUxZyIsDQogICAgICAgICAgc3Vt
bWFyeToiU3pha21haSBcdTAwRjZzc3plZm9nbGFsXHUwMEYzIiwNCiAgICAgICAgICBleHBlcmllbmNlOiJNdW5rYXRhcGFzenRhbGF0IiwNCiAgICAgICAg
ICBlZHVjYXRpb246IlRhbnVsbVx1MDBFMW55b2siLA0KICAgICAgICAgIHNraWxsczoiS1x1MDBFOXN6c1x1MDBFOWdlayIsDQogICAgICAgICAgbGFuZ3Vh
Z2VzOiJOeWVsdmVrIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiVGFuXHUwMEZBc1x1MDBFRHR2XHUwMEUxbnlvayIsDQogICAgICAgICAgYWRkOiJI
b3p6XHUwMEUxYWRcdTAwRTFzIiwNCiAgICAgICAgICByZW1vdmU6IlRcdTAwRjZybFx1MDBFOXMiLA0KICAgICAgICAgIHBvc2l0aW9uOiJQb3pcdTAwRURj
aVx1MDBGMyIsDQogICAgICAgICAgY29tcGFueToiQ1x1MDBFOWciLA0KICAgICAgICAgIHBlcmlvZDoiSWRcdTAxNTFzemFrIiwNCiAgICAgICAgICBkZXNj
cmlwdGlvbjoiTGVcdTAwRURyXHUwMEUxcyIsDQogICAgICAgICAgZGVncmVlOiJWXHUwMEU5Z3pldHRzXHUwMEU5ZyIsDQogICAgICAgICAgc2Nob29sOiJJ
c2tvbGEgLyBFZ3lldGVtIiwNCiAgICAgICAgICB5ZWFyOiJcdTAwQzl2IiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6Ik55ZWx2IiwNCiAgICAgICAgICBs
ZXZlbDoiU3ppbnQiLA0KICAgICAgICAgIGNlcnROYW1lOiJUYW5cdTAwRkFzXHUwMEVEdHZcdTAwRTFueSIsDQogICAgICAgICAgY29udGFjdDoiS2FwY3Nv
bGF0IiwNCiAgICAgICAgICBsYW5nTGVnZW5kOiJWXHUwMEUxbGFzc3ogc3ppbnRldC4gQXogZWxcdTAxNTFuXHUwMEU5emV0IDUgZm9rb3phdFx1MDBGQSBz
a1x1MDBFMWxcdTAwRTF0IG11dGF0LiIsDQogICAgICAgICAgbHZsMToiQWxhcCIsDQogICAgICAgICAgbHZsMjoiS1x1MDBGNnpcdTAwRTlwc3ppbnQiLA0K
ICAgICAgICAgIGx2bDM6IlRcdTAwRTFyc2FsZ1x1MDBFMXNpIiwNCiAgICAgICAgICBsdmw0OiJTemFrbWFpIiwNCiAgICAgICAgICBsdmw1OiJBbnlhbnll
bHZpIC8gRm9seVx1MDBFOWtvbnkiLA0KICAgICAgICAgIG5vbmU6Ik5pbmNzIiwNCiAgICAgICAgICBkb3RzOiJQb250b2siLA0KICAgICAgICAgIGxpbmVz
OiJWb25hbGFrIiwNCiAgICAgICAgICBiYXJzOiJTXHUwMEUxdm9rIiwNCiAgICAgICAgICBzdGFyczoiQ3NpbGxhZ29rIiwNCiAgICAgICAgICBsYW5nU3R5
bGU6Ik55ZWx2ZWsgc3RcdTAwRURsdXNhIiwNCiAgICAgICAgICBza2lsbFN0eWxlOiJLXHUwMEU5c3pzXHUwMEU5Z2VrIHN0XHUwMEVEbHVzYSIsDQogICAg
ICAgICAgbmV3U2tpbGw6Ilx1MDBEQWoga1x1MDBFOXN6c1x1MDBFOWciLA0KICAgICAgICAgIHlvdXJOYW1lOiJBeiBcdTAwRDZuIG5ldmUiLA0KICAgICAg
ICAgIHByZXZpb3VzOiJFbFx1MDE1MXpcdTAxNTEiLA0KICAgICAgICAgIG5leHQ6IktcdTAwRjZ2ZXRrZXpcdTAxNTEiDQogICAgICAgIH0sDQoNCiAgICAg
ICAgbmw6ew0KICAgICAgICAgIGFwcDoiQ1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAgIHByaW50UERGOiJBZmRydWtrZW4gLyBQREYgb3BzbGFhbiIsDQog
ICAgICAgICAgbGFuZ3VhZ2U6IlRhYWwiLA0KICAgICAgICAgIGZvbnQ6IkxldHRlcnR5cGUiLA0KICAgICAgICAgIHRlbXBsYXRlczoiU2phYmxvbmVuIiwN
CiAgICAgICAgICBjaGFuZ2VTY2hlbWU6IktsZXVyc2NoZW1hIHdpanppZ2VuIiwNCiAgICAgICAgICBwcmltYXJ5OiJQcmltYWlyIiwNCiAgICAgICAgICBz
ZWNvbmRhcnk6IlNlY3VuZGFpciIsDQogICAgICAgICAgY2FyZDoiS2FhcnQiLA0KICAgICAgICAgIHNpZGViYXI6IlppamJhbGsiLA0KICAgICAgICAgIHNp
ZGViYXJUZXh0OiJUZWtzdCB6aWpiYWxrIiwNCiAgICAgICAgICBwcm9maWxlUGhvdG86IlByb2ZpZWxmb3RvIiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoi
Rm90byB1cGxvYWRlbiIsDQogICAgICAgICAgcGhvdG9IaW50OiJNYXguIDUgTUIiLA0KICAgICAgICAgIHBob3RvU2hhcGU6IkZvdG92b3JtIiwNCiAgICAg
ICAgICBzcXVhcmU6IlZpZXJrYW50IiwNCiAgICAgICAgICByb3VuZGVkOiJBZmdlcm9uZCIsDQogICAgICAgICAgY2lyY2xlOiJDaXJrZWwiLA0KICAgICAg
ICAgIHBob3RvQm9yZGVyOiJGb3Rva2FkZXIiLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJSYW5kZGlrdGUiLA0KICAgICAgICAgIGJvcmRlckNvbG9yOiJS
YW5ka2xldXIiLA0KICAgICAgICAgIGFjY2VudDoiQWNjZW50IiwNCiAgICAgICAgICBiYWNrZ3JvdW5kOiJQYXBpZXIiLA0KICAgICAgICAgIHRleHQ6IlRl
a3N0IiwNCiAgICAgICAgICBzdWJ0aXRsZToiU3VidGl0ZWwiLA0KICAgICAgICAgIHBlcnNvbmFsSW5mbzoiUGVyc29vbmxpamtlIGdlZ2V2ZW5zIiwNCiAg
ICAgICAgICBmdWxsTmFtZToiVm9sbGVkaWdlIG5hYW0iLA0KICAgICAgICAgIGpvYlRpdGxlOiJGdW5jdGllIiwNCiAgICAgICAgICBlbWFpbDoiRS1tYWls
IiwNCiAgICAgICAgICBwaG9uZToiVGVsZWZvb24iLA0KICAgICAgICAgIGFkZHJlc3M6IkFkcmVzIiwNCiAgICAgICAgICB3ZWJzaXRlOiJXZWJzaXRlIC8g
TGlua2VkSW4iLA0KICAgICAgICAgIG5hdGlvbmFsaXR5OiJOYXRpb25hbGl0ZWl0IiwNCiAgICAgICAgICBzdW1tYXJ5OiJQcm9mZXNzaW9uZWVsIHByb2Zp
ZWwiLA0KICAgICAgICAgIGV4cGVyaWVuY2U6IldlcmtlcnZhcmluZyIsDQogICAgICAgICAgZWR1Y2F0aW9uOiJPcGxlaWRpbmciLA0KICAgICAgICAgIHNr
aWxsczoiVmFhcmRpZ2hlZGVuIiwNCiAgICAgICAgICBsYW5ndWFnZXM6IlRhbGVuIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiQ2VydGlmaWNhdGVu
IiwNCiAgICAgICAgICBhZGQ6IlRvZXZvZWdlbiIsDQogICAgICAgICAgcmVtb3ZlOiJWZXJ3aWpkZXJlbiIsDQogICAgICAgICAgcG9zaXRpb246IkZ1bmN0
aWUiLA0KICAgICAgICAgIGNvbXBhbnk6IkJlZHJpamYiLA0KICAgICAgICAgIHBlcmlvZDoiUGVyaW9kZSIsDQogICAgICAgICAgZGVzY3JpcHRpb246IkJl
c2NocmlqdmluZyIsDQogICAgICAgICAgZGVncmVlOiJEaXBsb21hIiwNCiAgICAgICAgICBzY2hvb2w6IlNjaG9vbCAvIFVuaXZlcnNpdGVpdCIsDQogICAg
ICAgICAgeWVhcjoiSmFhciIsDQogICAgICAgICAgbGFuZ3VhZ2VOYW1lOiJUYWFsIiwNCiAgICAgICAgICBsZXZlbDoiTml2ZWF1IiwNCiAgICAgICAgICBj
ZXJ0TmFtZToiQ2VydGlmaWNhYXQiLA0KICAgICAgICAgIGNvbnRhY3Q6IkNvbnRhY3QiLA0KICAgICAgICAgIGxhbmdMZWdlbmQ6IktpZXMgZWVuIG5pdmVh
dS4gSW4gZGUgcHJldmlldyB6aWUgamUgZWVuIHNjaGFhbCB2YW4gNSBuaXZlYXVzLiIsDQogICAgICAgICAgbHZsMToiQmFzaXMiLA0KICAgICAgICAgIGx2
bDI6IkdlbWlkZGVsZCIsDQogICAgICAgICAgbHZsMzoiQ29udmVyc2F0aW9uZWVsIiwNCiAgICAgICAgICBsdmw0OiJQcm9mZXNzaW9uZWVsIiwNCiAgICAg
ICAgICBsdmw1OiJNb2VkZXJ0YWFsIC8gVmxvZWllbmQiLA0KICAgICAgICAgIG5vbmU6IkdlZW4iLA0KICAgICAgICAgIGRvdHM6IlB1bnRlbiIsDQogICAg
ICAgICAgbGluZXM6Ikxpam5lbiIsDQogICAgICAgICAgYmFyczoiQmFsa2VuIiwNCiAgICAgICAgICBzdGFyczoiU3RlcnJlbiIsDQogICAgICAgICAgbGFu
Z1N0eWxlOiJUYWxlbnN0aWpsIiwNCiAgICAgICAgICBza2lsbFN0eWxlOiJWYWFyZGlnaGVkZW5zdGlqbCIsDQogICAgICAgICAgbmV3U2tpbGw6Ik5pZXV3
ZSB2YWFyZGlnaGVpZCIsDQogICAgICAgICAgeW91ck5hbWU6IlV3IG5hYW0iLA0KICAgICAgICAgIHByZXZpb3VzOiJWb3JpZ2UiLA0KICAgICAgICAgIG5l
eHQ6IlZvbGdlbmRlIg0KICAgICAgICB9LA0KDQogICAgICAgIHBsOnsNCiAgICAgICAgICBhcHA6IkNWIEJVSUxERVIgUFJPIiwNCiAgICAgICAgICBwcmlu
dFBERjoiRHJ1a3VqIC8gWmFwaXN6IFBERiIsDQogICAgICAgICAgbGFuZ3VhZ2U6IkpcdTAxMTl6eWsiLA0KICAgICAgICAgIGZvbnQ6IkN6Y2lvbmthIiwN
CiAgICAgICAgICB0ZW1wbGF0ZXM6IlN6YWJsb255IiwNCiAgICAgICAgICBjaGFuZ2VTY2hlbWU6IlptaWVcdTAxNDQgc2NoZW1hdCBrb2xvclx1MDBGM3ci
LA0KICAgICAgICAgIHByaW1hcnk6IkdcdTAxNDJcdTAwRjN3bnkiLA0KICAgICAgICAgIHNlY29uZGFyeToiRG9kYXRrb3d5IiwNCiAgICAgICAgICBjYXJk
OiJLYXJ0YSIsDQogICAgICAgICAgc2lkZWJhcjoiUGFuZWwgYm9jem55IiwNCiAgICAgICAgICBzaWRlYmFyVGV4dDoiVGVrc3QgcGFuZWx1IGJvY3puZWdv
IiwNCiAgICAgICAgICBwcm9maWxlUGhvdG86Ilpkalx1MDExOWNpZSBwcm9maWxvd2UiLA0KICAgICAgICAgIHVwbG9hZFBob3RvOiJQcnplXHUwMTVCbGlq
IHpkalx1MDExOWNpZSIsDQogICAgICAgICAgcGhvdG9IaW50OiJNYWtzLiA1IE1CIiwNCiAgICAgICAgICBwaG90b1NoYXBlOiJLc3p0YVx1MDE0MnQgemRq
XHUwMTE5Y2lhIiwNCiAgICAgICAgICBzcXVhcmU6Ikt3YWRyYXQiLA0KICAgICAgICAgIHJvdW5kZWQ6Ilphb2tyXHUwMTA1Z2xvbmUiLA0KICAgICAgICAg
IGNpcmNsZToiS29cdTAxNDJvIiwNCiAgICAgICAgICBwaG90b0JvcmRlcjoiT2JyYW1vd2FuaWUgemRqXHUwMTE5Y2lhIiwNCiAgICAgICAgICBib3JkZXJX
aWR0aDoiR3J1Ym9cdTAxNUJcdTAxMDcgb2JyYW1vd2FuaWEiLA0KICAgICAgICAgIGJvcmRlckNvbG9yOiJLb2xvciBvYnJhbW93YW5pYSIsDQogICAgICAg
ICAgYWNjZW50OiJBa2NlbnQiLA0KICAgICAgICAgIGJhY2tncm91bmQ6IlBhcGllciIsDQogICAgICAgICAgdGV4dDoiVGVrc3QiLA0KICAgICAgICAgIHN1
YnRpdGxlOiJQb2R0eXR1XHUwMTQyIiwNCiAgICAgICAgICBwZXJzb25hbEluZm86IkRhbmUgb3NvYm93ZSIsDQogICAgICAgICAgZnVsbE5hbWU6IkltaVx1
MDExOSBpIG5hendpc2tvIiwNCiAgICAgICAgICBqb2JUaXRsZToiU3Rhbm93aXNrbyIsDQogICAgICAgICAgZW1haWw6IkUtbWFpbCIsDQogICAgICAgICAg
cGhvbmU6IlRlbGVmb24iLA0KICAgICAgICAgIGFkZHJlc3M6IkFkcmVzIiwNCiAgICAgICAgICB3ZWJzaXRlOiJTdHJvbmEgLyBMaW5rZWRJbiIsDQogICAg
ICAgICAgbmF0aW9uYWxpdHk6Ik5hcm9kb3dvXHUwMTVCXHUwMTA3IiwNCiAgICAgICAgICBzdW1tYXJ5OiJQb2RzdW1vd2FuaWUgemF3b2Rvd2UiLA0KICAg
ICAgICAgIGV4cGVyaWVuY2U6IkRvXHUwMTVCd2lhZGN6ZW5pZSB6YXdvZG93ZSIsDQogICAgICAgICAgZWR1Y2F0aW9uOiJXeWtzenRhXHUwMTQyY2VuaWUi
LA0KICAgICAgICAgIHNraWxsczoiVW1pZWpcdTAxMTl0bm9cdTAxNUJjaSIsDQogICAgICAgICAgbGFuZ3VhZ2VzOiJKXHUwMTE5enlraSIsDQogICAgICAg
ICAgY2VydGlmaWNhdGlvbnM6IkNlcnR5ZmlrYXR5IiwNCiAgICAgICAgICBhZGQ6IkRvZGFqIiwNCiAgICAgICAgICByZW1vdmU6IlVzdVx1MDE0NCIsDQog
ICAgICAgICAgcG9zaXRpb246IlN0YW5vd2lza28iLA0KICAgICAgICAgIGNvbXBhbnk6IkZpcm1hIiwNCiAgICAgICAgICBwZXJpb2Q6Ik9rcmVzIiwNCiAg
ICAgICAgICBkZXNjcmlwdGlvbjoiT3BpcyIsDQogICAgICAgICAgZGVncmVlOiJEeXBsb20iLA0KICAgICAgICAgIHNjaG9vbDoiU3prb1x1MDE0MmEgLyBV
bml3ZXJzeXRldCIsDQogICAgICAgICAgeWVhcjoiUm9rIiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6IkpcdTAxMTl6eWsiLA0KICAgICAgICAgIGxldmVs
OiJQb3ppb20iLA0KICAgICAgICAgIGNlcnROYW1lOiJDZXJ0eWZpa2F0IiwNCiAgICAgICAgICBjb250YWN0OiJLb250YWt0IiwNCiAgICAgICAgICBsYW5n
TGVnZW5kOiJXeWJpZXJ6IHBvemlvbS4gVyBwb2RnbFx1MDEwNWR6aWUgcG9qYXdpIHNpXHUwMTE5IDUtc3RvcG5pb3dhIHNrYWxhLiIsDQogICAgICAgICAg
bHZsMToiUG9kc3Rhd293eSIsDQogICAgICAgICAgbHZsMjoiXHUwMTVBcmVkbmkiLA0KICAgICAgICAgIGx2bDM6IktvbXVuaWthdHl3bnkiLA0KICAgICAg
ICAgIGx2bDQ6Ilphd29kb3d5IiwNCiAgICAgICAgICBsdmw1OiJPamN6eXN0eSAvIEJpZWdcdTAxNDJ5IiwNCiAgICAgICAgICBub25lOiJCcmFrIiwNCiAg
ICAgICAgICBkb3RzOiJLcm9wa2kiLA0KICAgICAgICAgIGxpbmVzOiJMaW5pZSIsDQogICAgICAgICAgYmFyczoiUGFza2kiLA0KICAgICAgICAgIHN0YXJz
OiJHd2lhemRraSIsDQogICAgICAgICAgbGFuZ1N0eWxlOiJTdHlsIGpcdTAxMTl6eWtcdTAwRjN3IiwNCiAgICAgICAgICBza2lsbFN0eWxlOiJTdHlsIHVt
aWVqXHUwMTE5dG5vXHUwMTVCY2kiLA0KICAgICAgICAgIG5ld1NraWxsOiJOb3dhIHVtaWVqXHUwMTE5dG5vXHUwMTVCXHUwMTA3IiwNCiAgICAgICAgICB5
b3VyTmFtZToiVHdvamUgaW1pXHUwMTE5IGkgbmF6d2lza28iLA0KICAgICAgICAgIHByZXZpb3VzOiJQb3ByemVkbmkiLA0KICAgICAgICAgIG5leHQ6Ik5h
c3RcdTAxMTlwbnkiDQogICAgICAgIH0sDQoNCiAgICAgICAgcHQ6ew0KICAgICAgICAgIGFwcDoiQ1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAgIHByaW50
UERGOiJJbXByaW1pciAvIEd1YXJkYXIgUERGIiwNCiAgICAgICAgICBsYW5ndWFnZToiSWRpb21hIiwNCiAgICAgICAgICBmb250OiJGb250ZSIsDQogICAg
ICAgICAgdGVtcGxhdGVzOiJNb2RlbG9zIiwNCiAgICAgICAgICBjaGFuZ2VTY2hlbWU6IkFsdGVyYXIgZXNxdWVtYSBkZSBjb3JlcyIsDQogICAgICAgICAg
cHJpbWFyeToiUHJpbmNpcGFsIiwNCiAgICAgICAgICBzZWNvbmRhcnk6IlNlY3VuZFx1MDBFMXJpbyIsDQogICAgICAgICAgY2FyZDoiQ2FydFx1MDBFM28i
LA0KICAgICAgICAgIHNpZGViYXI6IkJhcnJhIGxhdGVyYWwiLA0KICAgICAgICAgIHNpZGViYXJUZXh0OiJUZXh0byBkYSBiYXJyYSBsYXRlcmFsIiwNCiAg
ICAgICAgICBwcm9maWxlUGhvdG86IkZvdG8gZGUgcGVyZmlsIiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoiQ2FycmVnYXIgZm90byIsDQogICAgICAgICAg
cGhvdG9IaW50OiJNXHUwMEUxeC4gNSBNQiIsDQogICAgICAgICAgcGhvdG9TaGFwZToiRm9ybWEgZGEgZm90byIsDQogICAgICAgICAgc3F1YXJlOiJRdWFk
cmFkYSIsDQogICAgICAgICAgcm91bmRlZDoiQXJyZWRvbmRhZGEiLA0KICAgICAgICAgIGNpcmNsZToiQ2lyY3VsYXIiLA0KICAgICAgICAgIHBob3RvQm9y
ZGVyOiJCb3JkYSBkYSBmb3RvIiwNCiAgICAgICAgICBib3JkZXJXaWR0aDoiRXNwZXNzdXJhIGRhIGJvcmRhIiwNCiAgICAgICAgICBib3JkZXJDb2xvcjoi
Q29yIGRhIGJvcmRhIiwNCiAgICAgICAgICBhY2NlbnQ6IkRlc3RhcXVlIiwNCiAgICAgICAgICBiYWNrZ3JvdW5kOiJQYXBlbCIsDQogICAgICAgICAgdGV4
dDoiVGV4dG8iLA0KICAgICAgICAgIHN1YnRpdGxlOiJTdWJ0XHUwMEVEdHVsbyIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJJbmZvcm1hXHUwMEU3XHUw
MEY1ZXMgcGVzc29haXMiLA0KICAgICAgICAgIGZ1bGxOYW1lOiJOb21lIGNvbXBsZXRvIiwNCiAgICAgICAgICBqb2JUaXRsZToiQ2FyZ28iLA0KICAgICAg
ICAgIGVtYWlsOiJFbWFpbCIsDQogICAgICAgICAgcGhvbmU6IlRlbGVmb25lIiwNCiAgICAgICAgICBhZGRyZXNzOiJNb3JhZGEiLA0KICAgICAgICAgIHdl
YnNpdGU6IldlYnNpdGUgLyBMaW5rZWRJbiIsDQogICAgICAgICAgbmF0aW9uYWxpdHk6Ik5hY2lvbmFsaWRhZGUiLA0KICAgICAgICAgIHN1bW1hcnk6IlJl
c3VtbyBwcm9maXNzaW9uYWwiLA0KICAgICAgICAgIGV4cGVyaWVuY2U6IkV4cGVyaVx1MDBFQW5jaWEgcHJvZmlzc2lvbmFsIiwNCiAgICAgICAgICBlZHVj
YXRpb246IkZvcm1hXHUwMEU3XHUwMEUzbyIsDQogICAgICAgICAgc2tpbGxzOiJDb21wZXRcdTAwRUFuY2lhcyIsDQogICAgICAgICAgbGFuZ3VhZ2VzOiJJ
ZGlvbWFzIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiQ2VydGlmaWNhXHUwMEU3XHUwMEY1ZXMiLA0KICAgICAgICAgIGFkZDoiQWRpY2lvbmFyIiwN
CiAgICAgICAgICByZW1vdmU6IlJlbW92ZXIiLA0KICAgICAgICAgIHBvc2l0aW9uOiJDYXJnbyIsDQogICAgICAgICAgY29tcGFueToiRW1wcmVzYSIsDQog
ICAgICAgICAgcGVyaW9kOiJQZXJcdTAwRURvZG8iLA0KICAgICAgICAgIGRlc2NyaXB0aW9uOiJEZXNjcmlcdTAwRTdcdTAwRTNvIiwNCiAgICAgICAgICBk
ZWdyZWU6IkdyYXUiLA0KICAgICAgICAgIHNjaG9vbDoiRXNjb2xhIC8gVW5pdmVyc2lkYWRlIiwNCiAgICAgICAgICB5ZWFyOiJBbm8iLA0KICAgICAgICAg
IGxhbmd1YWdlTmFtZToiSWRpb21hIiwNCiAgICAgICAgICBsZXZlbDoiTlx1MDBFRHZlbCIsDQogICAgICAgICAgY2VydE5hbWU6IkNlcnRpZmljYVx1MDBF
N1x1MDBFM28iLA0KICAgICAgICAgIGNvbnRhY3Q6IkNvbnRhY3RvIiwNCiAgICAgICAgICBsYW5nTGVnZW5kOiJFc2NvbGhhIHVtIG5cdTAwRUR2ZWwuIEEg
cHJcdTAwRTktdmlzdWFsaXphXHUwMEU3XHUwMEUzbyBtb3N0cmEgdW1hIGVzY2FsYSBkZSA1IG5cdTAwRUR2ZWlzLiIsDQogICAgICAgICAgbHZsMToiQlx1
MDBFMXNpY28iLA0KICAgICAgICAgIGx2bDI6IkludGVybVx1MDBFOWRpbyIsDQogICAgICAgICAgbHZsMzoiQ29udmVyc2FcdTAwRTdcdTAwRTNvIiwNCiAg
ICAgICAgICBsdmw0OiJQcm9maXNzaW9uYWwiLA0KICAgICAgICAgIGx2bDU6Ik5hdGl2byAvIEZsdWVudGUiLA0KICAgICAgICAgIG5vbmU6Ik5lbmh1bSIs
DQogICAgICAgICAgZG90czoiUG9udG9zIiwNCiAgICAgICAgICBsaW5lczoiTGluaGFzIiwNCiAgICAgICAgICBiYXJzOiJCYXJyYXMiLA0KICAgICAgICAg
IHN0YXJzOiJFc3RyZWxhcyIsDQogICAgICAgICAgbGFuZ1N0eWxlOiJFc3RpbG8gZG9zIGlkaW9tYXMiLA0KICAgICAgICAgIHNraWxsU3R5bGU6IkVzdGls
byBkYXMgY29tcGV0XHUwMEVBbmNpYXMiLA0KICAgICAgICAgIG5ld1NraWxsOiJOb3ZhIGNvbXBldFx1MDBFQW5jaWEiLA0KICAgICAgICAgIHlvdXJOYW1l
OiJPIHNldSBub21lIiwNCiAgICAgICAgICBwcmV2aW91czoiQW50ZXJpb3IiLA0KICAgICAgICAgIG5leHQ6IlNlZ3VpbnRlIg0KICAgICAgICB9LA0KDQog
ICAgICAgIHN2OnsNCiAgICAgICAgICBhcHA6IkNWIEJVSUxERVIgUFJPIiwNCiAgICAgICAgICBwcmludFBERjoiU2tyaXYgdXQgLyBTcGFyYSBQREYiLA0K
ICAgICAgICAgIGxhbmd1YWdlOiJTcHJcdTAwRTVrIiwNCiAgICAgICAgICBmb250OiJUeXBzbml0dCIsDQogICAgICAgICAgdGVtcGxhdGVzOiJNYWxsYXIi
LA0KICAgICAgICAgIGNoYW5nZVNjaGVtZToiXHUwMEM0bmRyYSBmXHUwMEU0cmdzY2hlbWEiLA0KICAgICAgICAgIHByaW1hcnk6IlByaW1cdTAwRTRyIiwN
CiAgICAgICAgICBzZWNvbmRhcnk6IlNla3VuZFx1MDBFNHIiLA0KICAgICAgICAgIGNhcmQ6IktvcnQiLA0KICAgICAgICAgIHNpZGViYXI6IlNpZG9wYW5l
bCIsDQogICAgICAgICAgc2lkZWJhclRleHQ6IlNpZG9wYW5lbGVucyB0ZXh0IiwNCiAgICAgICAgICBwcm9maWxlUGhvdG86IlByb2ZpbGJpbGQiLA0KICAg
ICAgICAgIHVwbG9hZFBob3RvOiJMYWRkYSB1cHAgYmlsZCIsDQogICAgICAgICAgcGhvdG9IaW50OiJNYXggNSBNQiIsDQogICAgICAgICAgcGhvdG9TaGFw
ZToiQmlsZGZvcm0iLA0KICAgICAgICAgIHNxdWFyZToiS3ZhZHJhdCIsDQogICAgICAgICAgcm91bmRlZDoiUnVuZGFkIiwNCiAgICAgICAgICBjaXJjbGU6
IkNpcmtlbCIsDQogICAgICAgICAgcGhvdG9Cb3JkZXI6IkJpbGRyYW0iLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJSYW1lbnMgYnJlZGQiLA0KICAgICAg
ICAgIGJvcmRlckNvbG9yOiJSYW1mXHUwMEU0cmciLA0KICAgICAgICAgIGFjY2VudDoiQWNjZW50IiwNCiAgICAgICAgICBiYWNrZ3JvdW5kOiJQYXBwZXIi
LA0KICAgICAgICAgIHRleHQ6IlRleHQiLA0KICAgICAgICAgIHN1YnRpdGxlOiJVbmRlcnJ1YnJpayIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJQZXJz
b251cHBnaWZ0ZXIiLA0KICAgICAgICAgIGZ1bGxOYW1lOiJGdWxsc3RcdTAwRTRuZGlndCBuYW1uIiwNCiAgICAgICAgICBqb2JUaXRsZToiVGl0ZWwiLA0K
ICAgICAgICAgIGVtYWlsOiJFLXBvc3QiLA0KICAgICAgICAgIHBob25lOiJUZWxlZm9uIiwNCiAgICAgICAgICBhZGRyZXNzOiJBZHJlc3MiLA0KICAgICAg
ICAgIHdlYnNpdGU6IldlYmJwbGF0cyAvIExpbmtlZEluIiwNCiAgICAgICAgICBuYXRpb25hbGl0eToiTmF0aW9uYWxpdGV0IiwNCiAgICAgICAgICBzdW1t
YXJ5OiJQcm9mZXNzaW9uZWxsIHNhbW1hbmZhdHRuaW5nIiwNCiAgICAgICAgICBleHBlcmllbmNlOiJBcmJldHNsaXZzZXJmYXJlbmhldCIsDQogICAgICAg
ICAgZWR1Y2F0aW9uOiJVdGJpbGRuaW5nIiwNCiAgICAgICAgICBza2lsbHM6IkZcdTAwRTRyZGlnaGV0ZXIiLA0KICAgICAgICAgIGxhbmd1YWdlczoiU3By
XHUwMEU1ayIsDQogICAgICAgICAgY2VydGlmaWNhdGlvbnM6IkNlcnRpZmlrYXQiLA0KICAgICAgICAgIGFkZDoiTFx1MDBFNGdnIHRpbGwiLA0KICAgICAg
ICAgIHJlbW92ZToiVGEgYm9ydCIsDQogICAgICAgICAgcG9zaXRpb246IlRpdGVsIiwNCiAgICAgICAgICBjb21wYW55OiJGXHUwMEY2cmV0YWciLA0KICAg
ICAgICAgIHBlcmlvZDoiUGVyaW9kIiwNCiAgICAgICAgICBkZXNjcmlwdGlvbjoiQmVza3Jpdm5pbmciLA0KICAgICAgICAgIGRlZ3JlZToiRXhhbWVuIiwN
CiAgICAgICAgICBzY2hvb2w6IlNrb2xhIC8gVW5pdmVyc2l0ZXQiLA0KICAgICAgICAgIHllYXI6Ilx1MDBDNXIiLA0KICAgICAgICAgIGxhbmd1YWdlTmFt
ZToiU3ByXHUwMEU1ayIsDQogICAgICAgICAgbGV2ZWw6Ik5pdlx1MDBFNSIsDQogICAgICAgICAgY2VydE5hbWU6IkNlcnRpZmlrYXQiLA0KICAgICAgICAg
IGNvbnRhY3Q6IktvbnRha3QiLA0KICAgICAgICAgIGxhbmdMZWdlbmQ6IlZcdTAwRTRsaiBuaXZcdTAwRTUuIEZcdTAwRjZyaGFuZHN2aXNuaW5nZW4gdmlz
YXIgZW4gc2thbGEgbWVkIDUgc3RlZy4iLA0KICAgICAgICAgIGx2bDE6IkdydW5kbFx1MDBFNGdnYW5kZSIsDQogICAgICAgICAgbHZsMjoiTWVkZWwiLA0K
ICAgICAgICAgIGx2bDM6IktvbnZlcnNhdGlvbnNuaXZcdTAwRTUiLA0KICAgICAgICAgIGx2bDQ6IlByb2Zlc3Npb25lbGwiLA0KICAgICAgICAgIGx2bDU6
Ik1vZGVyc21cdTAwRTVsIC8gRmx5dGFuZGUiLA0KICAgICAgICAgIG5vbmU6IkluZ2VuIiwNCiAgICAgICAgICBkb3RzOiJQdW5rdGVyIiwNCiAgICAgICAg
ICBsaW5lczoiTGluamVyIiwNCiAgICAgICAgICBiYXJzOiJTdGFwbGFyIiwNCiAgICAgICAgICBzdGFyczoiU3RqXHUwMEU0cm5vciIsDQogICAgICAgICAg
bGFuZ1N0eWxlOiJTcHJcdTAwRTVrc3RpbCIsDQogICAgICAgICAgc2tpbGxTdHlsZToiRlx1MDBFNHJkaWdoZXRzc3RpbCIsDQogICAgICAgICAgbmV3U2tp
bGw6Ik55IGZcdTAwRTRyZGlnaGV0IiwNCiAgICAgICAgICB5b3VyTmFtZToiRGl0dCBuYW1uIiwNCiAgICAgICAgICBwcmV2aW91czoiRlx1MDBGNnJlZ1x1
MDBFNWVuZGUiLA0KICAgICAgICAgIG5leHQ6Ik5cdTAwRTRzdGEiDQogICAgICAgIH0sDQoNCiAgICAgICAgamE6ew0KICAgICAgICAgIGFwcDoiQ1YgQlVJ
TERFUiBQUk8iLA0KICAgICAgICAgIHByaW50UERGOiJcdTUzNzBcdTUyMzcgLyBQREYgXHU0RkREXHU1QjU4IiwNCiAgICAgICAgICBsYW5ndWFnZToiXHU4
QTAwXHU4QTlFIiwNCiAgICAgICAgICBmb250OiJcdTMwRDVcdTMwQTlcdTMwRjNcdTMwQzgiLA0KICAgICAgICAgIHRlbXBsYXRlczoiXHUzMEM2XHUzMEYz
XHUzMEQ3XHUzMEVDXHUzMEZDXHUzMEM4IiwNCiAgICAgICAgICBjaGFuZ2VTY2hlbWU6Ilx1OTE0RFx1ODI3Mlx1MzA5Mlx1NTkwOVx1NjZGNCIsDQogICAg
ICAgICAgcHJpbWFyeToiXHUzMEUxXHUzMEE0XHUzMEYzIiwNCiAgICAgICAgICBzZWNvbmRhcnk6Ilx1MzBCNVx1MzBENiIsDQogICAgICAgICAgY2FyZDoi
XHUzMEFCXHUzMEZDXHUzMEM5IiwNCiAgICAgICAgICBzaWRlYmFyOiJcdTMwQjVcdTMwQTRcdTMwQzlcdTMwRDBcdTMwRkMiLA0KICAgICAgICAgIHNpZGVi
YXJUZXh0OiJcdTMwQjVcdTMwQTRcdTMwQzlcdTMwRDBcdTMwRkNcdTMwNkVcdTY1ODdcdTVCNTdcdTgyNzIiLA0KICAgICAgICAgIHByb2ZpbGVQaG90bzoi
XHUzMEQ3XHUzMEVEXHUzMEQ1XHUzMEEzXHUzMEZDXHUzMEVCXHU1MTk5XHU3NzFGIiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoiXHU1MTk5XHU3NzFGXHUz
MDkyXHUzMEEyXHUzMEMzXHUzMEQ3XHUzMEVEXHUzMEZDXHUzMEM5IiwNCiAgICAgICAgICBwaG90b0hpbnQ6Ilx1NjcwMFx1NTkyNyA1TUIiLA0KICAgICAg
ICAgIHBob3RvU2hhcGU6Ilx1NTE5OVx1NzcxRlx1MzA2RVx1NUY2MiIsDQogICAgICAgICAgc3F1YXJlOiJcdTU2REJcdTg5RDIiLA0KICAgICAgICAgIHJv
dW5kZWQ6Ilx1ODlEMlx1NEUzOCIsDQogICAgICAgICAgY2lyY2xlOiJcdTUxODYiLA0KICAgICAgICAgIHBob3RvQm9yZGVyOiJcdTUxOTlcdTc3MUZcdTMw
NkVcdTY3QTAiLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJcdTY3QTBcdTMwNkVcdTU5MkFcdTMwNTUiLA0KICAgICAgICAgIGJvcmRlckNvbG9yOiJcdTY3
QTBcdTMwNkVcdTgyNzIiLA0KICAgICAgICAgIGFjY2VudDoiXHUzMEEyXHUzMEFGXHUzMEJCXHUzMEYzXHUzMEM4IiwNCiAgICAgICAgICBiYWNrZ3JvdW5k
OiJcdTc1MjhcdTdEMTkiLA0KICAgICAgICAgIHRleHQ6Ilx1NjU4N1x1NUI1NyIsDQogICAgICAgICAgc3VidGl0bGU6Ilx1MzBCNVx1MzBENlx1MzBCRlx1
MzBBNFx1MzBDOFx1MzBFQiIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJcdTUwMEJcdTRFQkFcdTYwQzVcdTU4MzEiLA0KICAgICAgICAgIGZ1bGxOYW1l
OiJcdTZDMEZcdTU0MEQiLA0KICAgICAgICAgIGpvYlRpdGxlOiJcdTVGNzlcdTgwNzciLA0KICAgICAgICAgIGVtYWlsOiJcdTMwRTFcdTMwRkNcdTMwRUIi
LA0KICAgICAgICAgIHBob25lOiJcdTk2RkJcdThBNzEiLA0KICAgICAgICAgIGFkZHJlc3M6Ilx1NEY0Rlx1NjI0MCIsDQogICAgICAgICAgd2Vic2l0ZToi
XHUzMEE2XHUzMEE3XHUzMEQ2XHUzMEI1XHUzMEE0XHUzMEM4IC8gTGlua2VkSW4iLA0KICAgICAgICAgIG5hdGlvbmFsaXR5OiJcdTU2RkRcdTdDNEQiLA0K
ICAgICAgICAgIHN1bW1hcnk6Ilx1ODA3N1x1NTJEOVx1ODk4MVx1N0QwNCIsDQogICAgICAgICAgZXhwZXJpZW5jZToiXHU4MDc3XHU2Qjc0IiwNCiAgICAg
ICAgICBlZHVjYXRpb246Ilx1NUI2Nlx1NkI3NCIsDQogICAgICAgICAgc2tpbGxzOiJcdTMwQjlcdTMwQURcdTMwRUIiLA0KICAgICAgICAgIGxhbmd1YWdl
czoiXHU4QTlFXHU1QjY2IiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiXHU4Q0M3XHU2ODNDIiwNCiAgICAgICAgICBhZGQ6Ilx1OEZGRFx1NTJBMCIs
DQogICAgICAgICAgcmVtb3ZlOiJcdTUyNEFcdTk2NjQiLA0KICAgICAgICAgIHBvc2l0aW9uOiJcdTVGNzlcdTgwNzciLA0KICAgICAgICAgIGNvbXBhbnk6
Ilx1NEYxQVx1NzkzRSIsDQogICAgICAgICAgcGVyaW9kOiJcdTY3MUZcdTk1OTMiLA0KICAgICAgICAgIGRlc2NyaXB0aW9uOiJcdThBQUNcdTY2MEUiLA0K
ICAgICAgICAgIGRlZ3JlZToiXHU1QjY2XHU0RjREIiwNCiAgICAgICAgICBzY2hvb2w6Ilx1NUI2Nlx1NjgyMSAvIFx1NTkyN1x1NUI2NiIsDQogICAgICAg
ICAgeWVhcjoiXHU1RTc0IiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6Ilx1OEEwMFx1OEE5RSIsDQogICAgICAgICAgbGV2ZWw6Ilx1MzBFQ1x1MzBEOVx1
MzBFQiIsDQogICAgICAgICAgY2VydE5hbWU6Ilx1OENDN1x1NjgzQ1x1NTQwRCIsDQogICAgICAgICAgY29udGFjdDoiXHU5MDIzXHU3RDYxXHU1MTQ4IiwN
CiAgICAgICAgICBsYW5nTGVnZW5kOiJcdTMwRUNcdTMwRDlcdTMwRUJcdTMwOTJcdTkwNzhcdTYyOUVcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVc
dTMwNDRcdTMwMDJcdTMwRDdcdTMwRUNcdTMwRDNcdTMwRTVcdTMwRkNcdTMwNjdcdTMwNkYgNSBcdTZCQjVcdTk2OEVcdTMwNjdcdTg4NjhcdTc5M0FcdTMw
NTVcdTMwOENcdTMwN0VcdTMwNTlcdTMwMDIiLA0KICAgICAgICAgIGx2bDE6Ilx1NTdGQVx1NzkwRSIsDQogICAgICAgICAgbHZsMjoiXHU0RTJEXHU3RDFB
IiwNCiAgICAgICAgICBsdmwzOiJcdTRGMUFcdThBNzEiLA0KICAgICAgICAgIGx2bDQ6Ilx1MzBEM1x1MzBCOFx1MzBDRFx1MzBCOSIsDQogICAgICAgICAg
bHZsNToiXHU2QkNEXHU4QTlFIC8gXHU2RDQxXHU2NkEyIiwNCiAgICAgICAgICBub25lOiJcdTMwNkFcdTMwNTciLA0KICAgICAgICAgIGRvdHM6Ilx1MzBD
OVx1MzBDM1x1MzBDOCIsDQogICAgICAgICAgbGluZXM6Ilx1MzBFOVx1MzBBNFx1MzBGMyIsDQogICAgICAgICAgYmFyczoiXHUzMEQwXHUzMEZDIiwNCiAg
ICAgICAgICBzdGFyczoiXHU2NjFGIiwNCiAgICAgICAgICBsYW5nU3R5bGU6Ilx1OEE5RVx1NUI2Nlx1ODg2OFx1NzkzQSIsDQogICAgICAgICAgc2tpbGxT
dHlsZToiXHUzMEI5XHUzMEFEXHUzMEVCXHU4ODY4XHU3OTNBIiwNCiAgICAgICAgICBuZXdTa2lsbDoiXHU2NUIwXHUzMDU3XHUzMDQ0XHUzMEI5XHUzMEFE
XHUzMEVCIiwNCiAgICAgICAgICB5b3VyTmFtZToiXHUzMDQyXHUzMDZBXHUzMDVGXHUzMDZFXHU1NDBEXHU1MjREIiwNCiAgICAgICAgICBwcmV2aW91czoi
XHU1MjREXHUzMDc4IiwNCiAgICAgICAgICBuZXh0OiJcdTZCMjFcdTMwNzgiDQogICAgICAgIH0sDQoNCiAgICAgICAgemg6ew0KICAgICAgICAgIGFwcDoi
Q1YgQlVJTERFUiBQUk8iLA0KICAgICAgICAgIHByaW50UERGOiJcdTYyNTNcdTUzNzAgLyBcdTRGRERcdTVCNTggUERGIiwNCiAgICAgICAgICBsYW5ndWFn
ZToiXHU4QkVEXHU4QTAwIiwNCiAgICAgICAgICBmb250OiJcdTVCNTdcdTRGNTMiLA0KICAgICAgICAgIHRlbXBsYXRlczoiXHU2QTIxXHU2NzdGIiwNCiAg
ICAgICAgICBjaGFuZ2VTY2hlbWU6Ilx1NjZGNFx1NjUzOVx1OTE0RFx1ODI3MiIsDQogICAgICAgICAgcHJpbWFyeToiXHU0RTNCXHU4MjcyIiwNCiAgICAg
ICAgICBzZWNvbmRhcnk6Ilx1OEY4NVx1NTJBOVx1ODI3MiIsDQogICAgICAgICAgY2FyZDoiXHU1MzYxXHU3MjQ3IiwNCiAgICAgICAgICBzaWRlYmFyOiJc
dTRGQTdcdThGQjlcdTY4MEYiLA0KICAgICAgICAgIHNpZGViYXJUZXh0OiJcdTRGQTdcdThGQjlcdTY4MEZcdTY1ODdcdTVCNTciLA0KICAgICAgICAgIHBy
b2ZpbGVQaG90bzoiXHU0RTJBXHU0RUJBXHU3MTY3XHU3MjQ3IiwNCiAgICAgICAgICB1cGxvYWRQaG90bzoiXHU0RTBBXHU0RjIwXHU3MTY3XHU3MjQ3IiwN
CiAgICAgICAgICBwaG90b0hpbnQ6Ilx1NjcwMFx1NTkyNyA1TUIiLA0KICAgICAgICAgIHBob3RvU2hhcGU6Ilx1NzE2N1x1NzI0N1x1NUY2Mlx1NzJCNiIs
DQogICAgICAgICAgc3F1YXJlOiJcdTY1QjlcdTVGNjIiLA0KICAgICAgICAgIHJvdW5kZWQ6Ilx1NTcwNlx1ODlEMiIsDQogICAgICAgICAgY2lyY2xlOiJc
dTU3MDZcdTVGNjIiLA0KICAgICAgICAgIHBob3RvQm9yZGVyOiJcdTcxNjdcdTcyNDdcdThGQjlcdTY4NDYiLA0KICAgICAgICAgIGJvcmRlcldpZHRoOiJc
dThGQjlcdTY4NDZcdTVCQkRcdTVFQTYiLA0KICAgICAgICAgIGJvcmRlckNvbG9yOiJcdThGQjlcdTY4NDZcdTk4OUNcdTgyNzIiLA0KICAgICAgICAgIGFj
Y2VudDoiXHU1RjNBXHU4QzAzXHU4MjcyIiwNCiAgICAgICAgICBiYWNrZ3JvdW5kOiJcdTdFQjhcdTVGMjAiLA0KICAgICAgICAgIHRleHQ6Ilx1NjU4N1x1
NUI1NyIsDQogICAgICAgICAgc3VidGl0bGU6Ilx1NTI2Rlx1NjgwN1x1OTg5OCIsDQogICAgICAgICAgcGVyc29uYWxJbmZvOiJcdTRFMkFcdTRFQkFcdTRG
RTFcdTYwNkYiLA0KICAgICAgICAgIGZ1bGxOYW1lOiJcdTUxNjhcdTU0MEQiLA0KICAgICAgICAgIGpvYlRpdGxlOiJcdTgwNENcdTRGNEQiLA0KICAgICAg
ICAgIGVtYWlsOiJcdTc1MzVcdTVCNTBcdTkwQUVcdTRFRjYiLA0KICAgICAgICAgIHBob25lOiJcdTc1MzVcdThCREQiLA0KICAgICAgICAgIGFkZHJlc3M6
Ilx1NTczMFx1NTc0MCIsDQogICAgICAgICAgd2Vic2l0ZToiXHU3RjUxXHU3QUQ5IC8gTGlua2VkSW4iLA0KICAgICAgICAgIG5hdGlvbmFsaXR5OiJcdTU2
RkRcdTdDNEQiLA0KICAgICAgICAgIHN1bW1hcnk6Ilx1ODA0Q1x1NEUxQVx1N0I4MFx1NEVDQiIsDQogICAgICAgICAgZXhwZXJpZW5jZToiXHU1REU1XHU0
RjVDXHU3RUNGXHU1Mzg2IiwNCiAgICAgICAgICBlZHVjYXRpb246Ilx1NjU1OVx1ODBCMlx1ODBDQ1x1NjY2RiIsDQogICAgICAgICAgc2tpbGxzOiJcdTYy
ODBcdTgwRkQiLA0KICAgICAgICAgIGxhbmd1YWdlczoiXHU4QkVEXHU4QTAwIiwNCiAgICAgICAgICBjZXJ0aWZpY2F0aW9uczoiXHU4QkMxXHU0RTY2IiwN
CiAgICAgICAgICBhZGQ6Ilx1NkRGQlx1NTJBMCIsDQogICAgICAgICAgcmVtb3ZlOiJcdTUyMjBcdTk2NjQiLA0KICAgICAgICAgIHBvc2l0aW9uOiJcdTgw
NENcdTRGNEQiLA0KICAgICAgICAgIGNvbXBhbnk6Ilx1NTE2Q1x1NTNGOCIsDQogICAgICAgICAgcGVyaW9kOiJcdTY1RjZcdTk1RjQiLA0KICAgICAgICAg
IGRlc2NyaXB0aW9uOiJcdTYzQ0ZcdThGRjAiLA0KICAgICAgICAgIGRlZ3JlZToiXHU1QjY2XHU0RjREIiwNCiAgICAgICAgICBzY2hvb2w6Ilx1NUI2Nlx1
NjgyMSAvIFx1NTkyN1x1NUI2NiIsDQogICAgICAgICAgeWVhcjoiXHU1RTc0XHU0RUZEIiwNCiAgICAgICAgICBsYW5ndWFnZU5hbWU6Ilx1OEJFRFx1OEEw
MCIsDQogICAgICAgICAgbGV2ZWw6Ilx1N0VBN1x1NTIyQiIsDQogICAgICAgICAgY2VydE5hbWU6Ilx1OEJDMVx1NEU2Nlx1NTQwRFx1NzlGMCIsDQogICAg
ICAgICAgY29udGFjdDoiXHU4MDU0XHU3Q0ZCXHU2NUI5XHU1RjBGIiwNCiAgICAgICAgICBsYW5nTGVnZW5kOiJcdThCRjdcdTkwMDlcdTYyRTlcdTdFQTdc
dTUyMkJcdTMwMDJcdTk4ODRcdTg5QzhcdTRFMkRcdTRGMUFcdTY2M0VcdTc5M0EgNSBcdTdFQTdcdTUyM0JcdTVFQTZcdTMwMDIiLA0KICAgICAgICAgIGx2
bDE6Ilx1NTdGQVx1Nzg0MCIsDQogICAgICAgICAgbHZsMjoiXHU0RTJEXHU3RUE3IiwNCiAgICAgICAgICBsdmwzOiJcdTRGMUFcdThCREQiLA0KICAgICAg
ICAgIGx2bDQ6Ilx1NEUxM1x1NEUxQSIsDQogICAgICAgICAgbHZsNToiXHU2QkNEXHU4QkVEIC8gXHU2RDQxXHU1MjI5IiwNCiAgICAgICAgICBub25lOiJc
dTY1RTAiLA0KICAgICAgICAgIGRvdHM6Ilx1NTcwNlx1NzBCOSIsDQogICAgICAgICAgbGluZXM6Ilx1N0VCRlx1Njc2MSIsDQogICAgICAgICAgYmFyczoi
XHU2NzYxXHU1RjYyIiwNCiAgICAgICAgICBzdGFyczoiXHU2NjFGXHU3RUE3IiwNCiAgICAgICAgICBsYW5nU3R5bGU6Ilx1OEJFRFx1OEEwMFx1NjgzN1x1
NUYwRiIsDQogICAgICAgICAgc2tpbGxTdHlsZToiXHU2MjgwXHU4MEZEXHU2ODM3XHU1RjBGIiwNCiAgICAgICAgICBuZXdTa2lsbDoiXHU2NUIwXHU2Mjgw
XHU4MEZEIiwNCiAgICAgICAgICB5b3VyTmFtZToiXHU0RjYwXHU3Njg0XHU1NDBEXHU1QjU3IiwNCiAgICAgICAgICBwcmV2aW91czoiXHU0RTBBXHU0RTAw
XHU0RTJBIiwNCiAgICAgICAgICBuZXh0OiJcdTRFMEJcdTRFMDBcdTRFMkEiDQogICAgICAgIH0NCiAgICAgIH07DQoNCiAgICAgIGNvbnN0IFRFTVBMQVRF
UyA9IFsNCiAgICAgICAge2lkOiJzbGF0ZV9zaWRlYmFyIiwgbmFtZToiU2xhdGUgU2lkZWJhciIsIGNvbG9yOiIjMGYxNzJhIn0sDQogICAgICAgIHtpZDoi
c3R1ZHlfdXBncmFkZSIsIG5hbWU6IlN0dWR5IFVwZ3JhZGUiLCBjb2xvcjoiIzFmMjkzNyJ9LA0KICAgICAgICB7aWQ6InNsYXRlX2JsdWUiLCBuYW1lOiJT
bGF0ZSBCbHVlIiwgY29sb3I6IiMxZTNhOGEifSwNCiAgICAgICAge2lkOiJzbGF0ZV9lbWVyYWxkIiwgbmFtZToiU2xhdGUgRW1lcmFsZCIsIGNvbG9yOiIj
MDY1ZjQ2In0sDQogICAgICAgIHtpZDoic2VhX2hlYWRlciIsIG5hbWU6IlNlYSBIZWFkZXIiLCBjb2xvcjoiIzBmNzY2ZSJ9LA0KICAgICAgICB7aWQ6ImNv
cHBlcl9jb2x1bW4iLCBuYW1lOiJDb3BwZXIgQ29sdW1uIiwgY29sb3I6IiM5YTM0MTIifSwNCiAgICAgICAge2lkOiJzdW5zZXRfc2lkZWJhciIsIG5hbWU6
IlN1bnNldCBTaWRlYmFyIiwgY29sb3I6IiNiNDUzMDkifSwNCiAgICAgICAge2lkOiJzdW5zZXRfcmVkIiwgbmFtZToiU3Vuc2V0IFJlZCIsIGNvbG9yOiIj
OTkxYjFiIn0sDQogICAgICAgIHtpZDoiYmVycnlfcmliYm9uIiwgbmFtZToiQmVycnkgUmliYm9uIiwgY29sb3I6IiM5ZjEyMzkifSwNCiAgICAgICAge2lk
OiJhcXVhX2Jsb2NrcyIsIG5hbWU6IkFxdWEgQmxvY2tzIiwgY29sb3I6IiMwZWE1ZTkifSwNCiAgICAgICAge2lkOiJncmFwaGl0ZV9jbGVhbiIsIG5hbWU6
IkdyYXBoaXRlIENsZWFuIiwgY29sb3I6IiMxMTE4MjcifSwNCiAgICAgICAge2lkOiJpdm9yeV9jbGFzc2ljIiwgbmFtZToiSXZvcnkgQ2xhc3NpYyIsIGNv
bG9yOiIjMzM0MTU1In0sDQogICAgICAgIHtpZDoiaXZvcnlfc2FuZCIsIG5hbWU6Ikl2b3J5IFNhbmQiLCBjb2xvcjoiIzc4MzUwZiJ9DQogICAgICBdOw0K
DQogICAgICBjb25zdCBUUExfQ09MT1IgPSAoKCk9PnsgY29uc3QgbWFwPXt9OyBURU1QTEFURVMuZm9yRWFjaCh0PT4gbWFwW3QuaWRdPXQuY29sb3IpOyBy
ZXR1cm4gbWFwOyB9KSgpOw0KDQogICAgICBmdW5jdGlvbiB0cGxJY29uKGlkLCBjb2xvcil7DQogICAgICAgIGNvbnN0IGMgPSBjb2xvciB8fCAiIzBmMTcy
YSI7DQogICAgICAgIGNvbnN0IGluayA9ICIjZmZmZmZmIjsNCiAgICAgICAgY29uc3QgYm94ID0gKGlubmVyKSA9PiBgDQogICAgICAgICAgPGRpdiBjbGFz
cz0idy0xMiBoLTEyIHNtOnctMTIgc206aC0xMiB3LTExIGgtMTEgcm91bmRlZC0yeGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVy
Ig0KICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQ6JHtjfTsgYm9yZGVyLWNvbG9yOnJnYmEoMTUsMjMsNDIsLjEyKTsgYm94LXNoYWRvdzogaW5z
ZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjA4KTsiPg0KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAg
MCAyNiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4ke2lubmVyfTwvc3ZnPg0KICAgICAgICAgIDwvZGl2PmA7
DQogICAgICAgIGNvbnN0IEwgPSAoeDEseTEseDIseTIsdz0yLG9wPTEpPT5gPGxpbmUgeDE9IiR7eDF9IiB5MT0iJHt5MX0iIHgyPSIke3gyfSIgeTI9IiR7
eTJ9IiBzdHJva2U9IiR7aW5rfSIgc3Ryb2tlLXdpZHRoPSIke3d9IiBvcGFjaXR5PSIke29wfSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+YDsNCiAgICAg
ICAgY29uc3QgUiA9ICh4LHksdyxoLG9wPTEpPT5gPHJlY3QgeD0iJHt4fSIgeT0iJHt5fSIgd2lkdGg9IiR7d30iIGhlaWdodD0iJHtofSIgcng9IjIiIGZp
bGw9IiR7aW5rfSIgb3BhY2l0eT0iJHtvcH0iLz5gOw0KICAgICAgICBjb25zdCBDID0gKGN4LGN5LHIsb3A9MSk9PmA8Y2lyY2xlIGN4PSIke2N4fSIgY3k9
IiR7Y3l9IiByPSIke3J9IiBmaWxsPSIke2lua30iIG9wYWNpdHk9IiR7b3B9Ii8+YDsNCiAgICAgICAgc3dpdGNoKGlkKXsNCiAgICAgICAgICBjYXNlICJz
dHVkeV91cGdyYWRlIjoNCiAgICAgICAgICAgIHJldHVybiBib3goYCR7Uig1LDYsMTYsNCwwLjk1KX0ke0woNiwxMiwyMCwxMiwyLDAuODUpfSR7Uig1LDE0
LDcsNywwLjY1KX0ke1IoMTQsMTQsNyw3LDAuNjUpfSR7TCgxMCwxOCwxNiwxOCwyLDAuNzUpfWApOw0KICAgICAgICAgIGNhc2UgInNsYXRlX3NpZGViYXIi
Og0KICAgICAgICAgIGNhc2UgInNsYXRlX2JsdWUiOg0KICAgICAgICAgIGNhc2UgInNsYXRlX2VtZXJhbGQiOg0KICAgICAgICAgIGNhc2UgInN1bnNldF9z
aWRlYmFyIjoNCiAgICAgICAgICBjYXNlICJzdW5zZXRfcmVkIjoNCiAgICAgICAgICAgIHJldHVybiBib3goYCR7Uig1LDUsNywxNiwwLjk1KX0ke0woMTQs
NywyMSw3LDIsMC45NSl9JHtMKDE0LDExLDIxLDExLDIsMC43NSl9JHtMKDE0LDE1LDE5LDE1LDIsMC42KX0ke0MoMTgsMjAsMiwwLjY1KX1gKTsNCiAgICAg
ICAgICBjYXNlICJzZWFfaGVhZGVyIjoNCiAgICAgICAgICAgIHJldHVybiBib3goYCR7Uig1LDUsMTYsNSwwLjk1KX0ke0woNiwxMywyMCwxMywyLDAuOCl9
JHtMKDYsMTcsMTgsMTcsMiwwLjYpfSR7TCg2LDIxLDE2LDIxLDIsMC40NSl9YCk7DQogICAgICAgICAgY2FzZSAiY29wcGVyX2NvbHVtbiI6DQogICAgICAg
ICAgICByZXR1cm4gYm94KGAke1IoNSw1LDQsMTYsMC45NSl9JHtSKDExLDYsMTAsMywwLjg1KX0ke0woMTEsMTIsMjEsMTIsMiwwLjc1KX0ke0woMTEsMTYs
MTgsMTYsMiwwLjU1KX0ke0woMTEsMjAsMTcsMjAsMiwwLjQ1KX1gKTsNCiAgICAgICAgICBjYXNlICJiZXJyeV9yaWJib24iOg0KICAgICAgICAgICAgcmV0
dXJuIGJveChgJHtSKDUsNiwxNiw0LDAuOTUpfSR7QygyMSw4LDIsMC45NSl9JHtMKDYsMTQsMjAsMTQsMiwwLjc1KX0ke0woNiwxOCwxNywxOCwyLDAuNTUp
fSR7TCg2LDIyLDE2LDIyLDIsMC40KX1gKTsNCiAgICAgICAgICBjYXNlICJhcXVhX2Jsb2NrcyI6DQogICAgICAgICAgICByZXR1cm4gYm94KGAke1IoNSw1
LDcsNywwLjk1KX0ke1IoMTQsNSw3LDcsMC43NSl9JHtSKDUsMTQsNyw3LDAuNzUpfSR7UigxNCwxNCw3LDcsMC45NSl9YCk7DQogICAgICAgICAgY2FzZSAi
Z3JhcGhpdGVfY2xlYW4iOg0KICAgICAgICAgICAgcmV0dXJuIGJveChgJHtMKDYsNywyMCw3LDIsMC45NSl9JHtMKDYsMTIsMTgsMTIsMiwwLjc1KX0ke0wo
NiwxNywyMCwxNywyLDAuNil9JHtDKDIwLDIxLDIsMC42KX1gKTsNCiAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuIGJveChgJHtMKDYs
OCwyMCw4LDIsMC45KX0ke0woNiwxMywyMCwxMywyLDAuNyl9JHtMKDYsMTgsMTYsMTgsMiwwLjUpfWApOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAg
IGNvbnN0IFNBTVBMRSA9IHsNCiAgICAgICAgbmFtZToiU2FyYWggTWl0Y2hlbGwiLA0KICAgICAgICB0aXRsZToiU2VuaW9yIE1hcmtldGluZyBNYW5hZ2Vy
IiwNCiAgICAgICAgZW1haWw6InNhcmFoLm1pdGNoZWxsQGVtYWlsLmNvbSIsDQogICAgICAgIHBob25lOiIrNDQgMjAgNzk0NiAwOTU4IiwNCiAgICAgICAg
YWRkcmVzczoiTG9uZG9uLCBVSyIsDQogICAgICAgIHdlYnNpdGU6ImxpbmtlZGluLmNvbS9pbi9zYXJhaG1pdGNoZWxsIiwNCiAgICAgICAgbmF0aW9uYWxp
dHk6IkJyaXRpc2giLA0KICAgICAgICBzdW1tYXJ5OiJSZXN1bHRzLWRyaXZlbiBTZW5pb3IgTWFya2V0aW5nIE1hbmFnZXIgd2l0aCA4KyB5ZWFycyBvZiBl
eHBlcmllbmNlIGRldmVsb3BpbmcgYW5kIGV4ZWN1dGluZyBtYXJrZXRpbmcgc3RyYXRlZ2llcy5cblByb3ZlbiB0cmFjayByZWNvcmQgb2YgaW5jcmVhc2lu
ZyBicmFuZCBhd2FyZW5lc3MgYW5kIGRyaXZpbmcgcmV2ZW51ZSBncm93dGggdGhyb3VnaCBkaWdpdGFsIGNhbXBhaWducy5cblN0cm9uZyBsZWFkZXJzaGlw
IHdpdGggZXhwZXJpZW5jZSBtYW5hZ2luZyBjcm9zcy1mdW5jdGlvbmFsIHRlYW1zLiIsDQogICAgICAgIHBob3RvOiIiLA0KICAgICAgICBleHBlcmllbmNl
OlsNCiAgICAgICAgICB7cG9zaXRpb246IlNlbmlvciBNYXJrZXRpbmcgTWFuYWdlciIsIGNvbXBhbnk6IlRlY2hDb3JwIEluZHVzdHJpZXMiLCBwZXJpb2Q6
IjIwMjAgLSBQcmVzZW50IiwgZGVzY3JpcHRpb246Ilx1MjAyMiBMZWQgYSB0ZWFtIG9mIDggYW5kIG1hbmFnZWQgYSBcdTAwQTMxLjJNIGJ1ZGdldFxuXHUy
MDIyIEluY3JlYXNlZCBvbmxpbmUgZW5nYWdlbWVudCBieSAxMjAlXG5cdTIwMjIgRGVsaXZlcmVkIG1ham9yIGxhdW5jaGVzIGFjcm9zcyBFVSBtYXJrZXRz
In0sDQogICAgICAgICAge3Bvc2l0aW9uOiJNYXJrZXRpbmcgU3BlY2lhbGlzdCIsIGNvbXBhbnk6Ikdsb2JhbCBTb2x1dGlvbnMgTHRkIiwgcGVyaW9kOiIy
MDE3IC0gMjAyMCIsIGRlc2NyaXB0aW9uOiJcdTIwMjIgTWFuYWdlZCBzb2NpYWwgY2hhbm5lbHMgKDMwMEsrIGZvbGxvd2Vycylcblx1MjAyMiBSZWR1Y2Vk
IGFjcXVpc2l0aW9uIGNvc3QgYnkgMjUlXG5cdTIwMjIgUHJvZHVjZWQgd2Vla2x5IHBlcmZvcm1hbmNlIHJlcG9ydHMifQ0KICAgICAgICBdLA0KICAgICAg
ICBlZHVjYXRpb246Ww0KICAgICAgICAgIHtkZWdyZWU6Ik1CQSAtIE1hcmtldGluZyBNYW5hZ2VtZW50Iiwgc2Nob29sOiJMb25kb24gQnVzaW5lc3MgU2No
b29sIiwgeWVhcjoiMjAxNSAtIDIwMTcifSwNCiAgICAgICAgICB7ZGVncmVlOiJCU2MgTWFya2V0aW5nICYgQ29tbXVuaWNhdGlvbnMiLCBzY2hvb2w6IlVu
aXZlcnNpdHkgb2YgTWFuY2hlc3RlciIsIHllYXI6IjIwMTIgLSAyMDE1In0NCiAgICAgICAgXSwNCiAgICAgICAgc2tpbGxzOlsiRGlnaXRhbCBNYXJrZXRp
bmciLCJTRU8vU0VNIiwiQ29udGVudCBTdHJhdGVneSIsIlRlYW0gTGVhZGVyc2hpcCIsIkRhdGEgQW5hbHlzaXMiLCJCcmFuZCBNYW5hZ2VtZW50Il0sDQog
ICAgICAgIHNraWxsTGV2ZWxzOlszLDMsMywzLDMsM10sDQogICAgICAgIGxhbmd1YWdlczpbe25hbWU6IkVuZ2xpc2giLGxldmVsOiI1In0se25hbWU6IkZy
ZW5jaCIsbGV2ZWw6IjQifV0sDQogICAgICAgIGNlcnRpZmljYXRpb25zOlt7bmFtZToiR29vZ2xlIEFuYWx5dGljcyBDZXJ0aWZpZWQiLHllYXI6IjIwMjMi
fSx7bmFtZToiSHViU3BvdCBDb250ZW50IE1hcmtldGluZyIseWVhcjoiIn1dDQogICAgICB9Ow0KDQogICAgICBjb25zdCBNQVhfUEhPVE9fQllURVMgPSA1
ICogMTAyNCAqIDEwMjQ7DQoNCiAgICAgIGxldCBzdGF0ZSA9IHsNCiAgICAgICAgbGFuZzoiZW4iLA0KICAgICAgICBmb250OiJJbnRlciIsDQogICAgICAg
IHRlbXBsYXRlOiJzbGF0ZV9zaWRlYmFyIiwNCiAgICAgICAgdGhlbWU6ew0KICAgICAgICAgIGFjY2VudDoiIzBlYTVlOSIsDQogICAgICAgICAgYmFja2dy
b3VuZDoiI2ZmZmZmZiIsDQogICAgICAgICAgdGV4dDoiIzBmMTcyYSIsDQogICAgICAgICAgc3VidGl0bGU6IiM0NzU1NjkiLA0KICAgICAgICAgIHByaW1h
cnk6IiMwZjE3MmEiLA0KICAgICAgICAgIHNlY29uZGFyeToiI2YxZjVmOSIsDQogICAgICAgICAgY2FyZDoiI2ZmZmZmZiIsDQogICAgICAgICAgc2lkZWJh
cjoiIzBmMTcyYSIsDQogICAgICAgICAgc2lkZWJhclRleHQ6IiNmZmZmZmYiLA0KICAgICAgICAgIHBob3RvU2hhcGU6InNxdWFyZSIsDQogICAgICAgICAg
cGhvdG9Cb3JkZXJXaWR0aDoyLA0KICAgICAgICAgIHBob3RvQm9yZGVyQ29sb3I6IiMwZjE3MmEiDQogICAgICAgIH0sDQogICAgICAgIHNpZGViYXJUb3Vj
aGVkOmZhbHNlLA0KICAgICAgICBzaWRlYmFyVGV4dFRvdWNoZWQ6ZmFsc2UsDQogICAgICAgIGRhdGE6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0FN
UExFKSksDQogICAgICAgIGdob3N0OnRydWUsDQogICAgICAgIGxhbmdEaXNwbGF5OiJsaW5lcyIsDQogICAgICAgIHNraWxsRGlzcGxheToiZG90cyIsDQog
ICAgICAgIGNvbGxhcHNlZENvbG9yczp0cnVlLA0KICAgICAgICBiYXNlU2NhbGU6IDEsDQogICAgICAgIHNoaWZ0WTogMCwNCiAgICAgICAgbGFzdFB2S2V5
OiBudWxsLA0KICAgICAgICBmb2N1c1N0YW1wOiAwDQogICAgICB9Ow0KDQogICAgICBmdW5jdGlvbiBzZXRSb290Rm9udCgpew0KICAgICAgICBjb25zdCBy
b290ID0gZWwoImN2Yi1yb290Iik7DQogICAgICAgIGlmKCFyb290KSByZXR1cm47DQogICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoIi0tY3ZiLWZv
bnQiLCBzdGF0ZS5mb250IHx8ICJJbnRlciIpOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBzcGxpdFByaW50TGFiZWwodGV4dCl7DQogICAgICAgIGNv
bnN0IHMgPSAodGV4dCB8fCAiIikudG9TdHJpbmcoKTsNCiAgICAgICAgaWYocy5pbmNsdWRlcygiLyIpKXsNCiAgICAgICAgICBjb25zdCBwYXJ0cyA9IHMu
c3BsaXQoIi8iKS5tYXAoeD0+eC50cmltKCkpLmZpbHRlcihCb29sZWFuKTsNCiAgICAgICAgICByZXR1cm4ge2E6IHBhcnRzWzBdIHx8IHMudHJpbSgpLCBi
OiBwYXJ0cy5zbGljZSgxKS5qb2luKCIgLyAiKS50cmltKCkgfHwgIiJ9Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiB7YTogcy50cmltKCksIGI6ICIi
fTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gbWluaU5vbmUoKXsgcmV0dXJuIGA8ZGl2IGNsYXNzPSJ0ZXh0LXNsYXRlLTQwMCBmb250LXNlbWlib2xk
Ij5cdTIwMTQ8L2Rpdj5gOyB9DQogICAgICBmdW5jdGlvbiBtaW5pRG90cyhhY2NlbnQpew0KICAgICAgICBjb25zdCBvbiA9IGFjY2VudCB8fCAiIzBlYTVl
OSI7DQogICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEiPg0KICAgICAgICAgICR7WzEs
MiwzLDQsNV0ubWFwKGk9PmA8c3BhbiBzdHlsZT0id2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTppbmxpbmUtYmxv
Y2s7YmFja2dyb3VuZDoke2k8PTM/ZXNjQXR0cihvbik6J3JnYmEoMTUsMjMsNDIsLjE4KSd9OyI+PC9zcGFuPmApLmpvaW4oIiIpfQ0KICAgICAgICA8L2Rp
dj5gOw0KICAgICAgfQ0KICAgICAgZnVuY3Rpb24gbWluaUJhcnMoYWNjZW50KXsNCiAgICAgICAgY29uc3Qgb24gPSBhY2NlbnQgfHwgIiMwZWE1ZTkiOw0K
ICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9InctZnVsbCBweC0xIj4NCiAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6
OTk5OXB4O2JhY2tncm91bmQ6cmdiYSgxNSwyMyw0MiwuMTQpO292ZXJmbG93OmhpZGRlbjsiPg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjEw
MCU7d2lkdGg6NjAlO2JvcmRlci1yYWRpdXM6OTk5OXB4O2JhY2tncm91bmQ6JHtlc2NBdHRyKG9uKX07Ij48L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAg
ICAgICAgPC9kaXY+YDsNCiAgICAgIH0NCiAgICAgIGZ1bmN0aW9uIG1pbmlTdGFycyhhY2NlbnQpew0KICAgICAgICBjb25zdCBvbiA9IGFjY2VudCB8fCAi
IzBlYTVlOSI7DQogICAgICAgIGNvbnN0IHN0YXIgPSAoZmlsbCk9PmANCiAgICAgICAgICA8c3ZnIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgdmlld0JveD0i
MCAwIDI0IDI0IiBmaWxsPSIke2ZpbGx9IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICAgICAgICAgICAgPHBhdGggZD0iTTEyIDE3
LjI3TDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxeiIvPg0KICAg
ICAgICAgIDwvc3ZnPmA7DQogICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEiPg0KICAg
ICAgICAgICR7WzEsMiwzLDQsNV0ubWFwKGk9PnN0YXIoaTw9Mz9lc2NBdHRyKG9uKToicmdiYSgxNSwyMyw0MiwuMTgpIikpLmpvaW4oIiIpfQ0KICAgICAg
ICA8L2Rpdj5gOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBzdHlsZUJ1dHRvbkhUTUwoa2luZCwgbW9kZSwgbGFiZWwsIHByZXZpZXdIVE1MKXsNCiAg
ICAgICAgY29uc3QgYWN0aXZlID0gKGtpbmQ9PT0ic2tpbGwiID8gc3RhdGUuc2tpbGxEaXNwbGF5IDogc3RhdGUubGFuZ0Rpc3BsYXkpID09PSBtb2RlOw0K
ICAgICAgICBjb25zdCBiYXNlID0gImN2Yi1zdHlsZS1idG4gcm91bmRlZC14bCBib3JkZXIgcHgtMiBweS0xLjUgdGV4dC14cyBmb250LXNlbWlib2xkIHRy
YW5zaXRpb24gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEiOw0KICAgICAgICBjb25zdCBjbHMgPSBhY3RpdmUgPyAi
Ymctc2xhdGUtOTAwIHRleHQtd2hpdGUgYm9yZGVyLXNsYXRlLTkwMCIgOiAiYmctd2hpdGUgdGV4dC1zbGF0ZS03MDAgYm9yZGVyLXNsYXRlLTIwMCBob3Zl
cjpiZy1zbGF0ZS01MCI7DQogICAgICAgIGNvbnN0IGF0dHIgPSBraW5kPT09InNraWxsIiA/IGBkYXRhLXNraWxsZGlzcD0iJHtlc2NBdHRyKG1vZGUpfSJg
IDogYGRhdGEtbGFuZ2Rpc3A9IiR7ZXNjQXR0cihtb2RlKX0iYDsNCiAgICAgICAgcmV0dXJuIGANCiAgICAgICAgICA8YnV0dG9uICR7YXR0cn0gY2xhc3M9
IiR7YmFzZX0gJHtjbHN9IiB0eXBlPSJidXR0b24iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVhZGluZy1ub25lIj4ke2VzYyhsYWJlbCl9PC9kaXY+
DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoLTQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy1mdWxsIj4ke3ByZXZpZXdIVE1MfTwvZGl2
Pg0KICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICBgOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBtb3VudCgpew0KICAgICAgICBjb25zdCByb290
ID0gZWwoImN2Yi1yb290Iik7DQogICAgICAgIGlmKCFyb290KSByZXR1cm47DQogICAgICAgIGNvbnN0IHQgPSBUW3N0YXRlLmxhbmddIHx8IFQuZW47DQoN
CiAgICAgICAgcm9vdC5pbm5lckhUTUwgPSBgDQogICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBiZy1zbGF0ZS01MCB0ZXh0LXNsYXRlLTgwMCByb3VuZGVk
LTJ4bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBvdmVyZmxvdy1oaWRkZW4iPg0KICAgICAgICAgIDxkaXYgaWQ9ImN2Yi10b3AtYW5jaG9yIiBjbGFzcz0i
Ymctd2hpdGUvOTAgYmFja2Ryb3AtYmx1ciBib3JkZXItYiBib3JkZXItc2xhdGUtMjAwIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InB4LTQgc206cHgt
NiBweS0zIj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIgc206anVzdGlmeS1i
ZXR3ZWVuIGdhcC0yIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjdmItYXBwIg0KICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvbnQtZXh0cmFi
b2xkIHRyYWNraW5nLVswLjE0ZW1dIHRleHQtc2xhdGUtOTAwIHNlbGVjdC1ub25lIHRleHQtY2VudGVyIHNtOnRleHQtbGVmdCINCiAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlPSJmb250LXNpemU6Y2xhbXAoMTZweCwxLjZ2dywyMnB4KTtsaW5lLWhlaWdodDoxOyI+DQogICAgICAgICAgICAgICAgICAke2VzYyh0
LmFwcCl9DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBqdXN0
aWZ5LWNlbnRlciBzbTpqdXN0aWZ5LWVuZCBmbGV4LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY3ZiLWxhbmctd3JhcCIgY2xhc3M9ImZs
ZXggaXRlbXMtY2VudGVyIGdhcC0yIGJnLXNsYXRlLTkwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgcHgtMi41IHB5LTIiPg0KICAgICAgICAgICAgICAgICAg
ICA8aSBkYXRhLWx1Y2lkZT0iZ2xvYmUiIGNsYXNzPSJ3LTQgaC00IHRleHQtc2t5LTMwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlk
PSJjdmItbGFuZyIgY2xhc3M9ImJnLXRyYW5zcGFyZW50IHRleHQtc20gb3V0bGluZS1ub25lIGN1cnNvci1wb2ludGVyIG1heC13LVsxNDBweF0iPjwvc2Vs
ZWN0Pg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImN2Yi1mb250LXdyYXAiIGNsYXNzPSJmbGV4IGl0
ZW1zLWNlbnRlciBnYXAtMiBiZy1zbGF0ZS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLXhsIHB4LTIuNSBweS0yIj4NCiAgICAgICAgICAgICAgICAgICAgPGkg
ZGF0YS1sdWNpZGU9InR5cGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtc2t5LTMwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJjdmIt
Zm9udCIgY2xhc3M9ImJnLXRyYW5zcGFyZW50IHRleHQtc20gb3V0bGluZS1ub25lIGN1cnNvci1wb2ludGVyIG1heC13LVsxNTBweF0iPjwvc2VsZWN0Pg0K
ICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImN2Yi1wcmludCIgY2xhc3M9InB4LTMuNSBweS0yLjUg
cm91bmRlZC14bCB0ZXh0LXNtIGZvbnQtZXh0cmFib2xkIHRleHQtd2hpdGUgc2hhZG93LWxnIHNoYWRvdy1zbGF0ZS05MDAvMTAgYmctc2xhdGUtOTAwIGhv
dmVyOi10cmFuc2xhdGUteS1bMXB4XSB0cmFuc2l0aW9uIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIiB0eXBlPSJidXR0b24iPg0KICAgICAgICAgICAgICAg
ICAgICA8aSBkYXRhLWx1Y2lkZT0icHJpbnRlciIgY2xhc3M9InctNCBoLTQiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZsZXgg
ZmxleC1jb2wgbGVhZGluZy1bMS4wNV0gLW10LVsxcHhdIj4NCiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iY3ZiLXByaW50LWxpbmUxIiBjbGFz
cz0iZm9udC1leHRyYWJvbGQiPjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iY3ZiLXByaW50LWxpbmUyIiBjbGFzcz0iZm9udC1l
eHRyYWJvbGQgdGV4dC1bMTJweF0gb3BhY2l0eS05NSI+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICA8
L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAg
PGRpdiBjbGFzcz0icHgtNCBzbTpweC02IHBiLTQiPg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBzbTpnYXAt
MyI+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0idHBsLXByZXYiIGNsYXNzPSJzaHJpbmstMCB3LTkgaC05IHNtOnctMTAgc206aC0xMCByb3VuZGVk
LXhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIGJnLXdoaXRlIGhvdmVyOmJnLXNsYXRlLTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIiB0
eXBlPSJidXR0b24iPg0KICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZXZyb24tbGVmdCIgY2xhc3M9InctNSBoLTUgdGV4dC1zbGF0ZS02
MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4i
Pg0KICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idHBsLXRyYWNrIg0KICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZ3JpZCBncmlkLXJvd3MtMiBn
cmlkLWZsb3ctY29sIGF1dG8tY29scy1bMTUwcHhdIHNtOmF1dG8tY29scy1bMTgwcHhdIGdhcC0yIHNtOmdhcC0zIG92ZXJmbG93LXgtYXV0byBjdmItc2Ny
b2xsYmFyLWhpZGUgc2Nyb2xsLXNtb290aCBweS0xIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxidXR0b24g
aWQ9InRwbC1uZXh0IiBjbGFzcz0ic2hyaW5rLTAgdy05IGgtOSBzbTp3LTEwIHNtOmgtMTAgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBi
Zy13aGl0ZSBob3ZlcjpiZy1zbGF0ZS01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciIgdHlwZT0iYnV0dG9uIj4NCiAgICAgICAgICAgICAg
ICAgIDxpIGRhdGEtbHVjaWRlPSJjaGV2cm9uLXJpZ2h0IiBjbGFzcz0idy01IGgtNSB0ZXh0LXNsYXRlLTYwMCI+PC9pPg0KICAgICAgICAgICAgICAgIDwv
YnV0dG9uPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPGRpdiBpZD0i
Y3ZiLW1haW4tbGF5b3V0IiBjbGFzcz0iZmxleCBmbGV4LWNvbCB4bDpmbGV4LXJvdyI+DQogICAgICAgICAgICA8ZGl2IGlkPSJjdmItcHJldmlldy1jb2wi
IGNsYXNzPSJ4bDp3LTEvMiB3LWZ1bGwgb3JkZXItMSB4bDpvcmRlci0yIGJnLXNsYXRlLTEwMCBwLTQgc206cC04IGZsZXgganVzdGlmeS1jZW50ZXIgaXRl
bXMtc3RhcnQgYm9yZGVyLWIgeGw6Ym9yZGVyLWItMCBib3JkZXItc2xhdGUtMjAwIj4NCiAgICAgICAgICAgICAgPGRpdiBpZD0icHJldmlldy1wYW5lIiBj
bGFzcz0idy1mdWxsIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgcmVsYXRpdmUiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InJlbGF0aXZlIGZsZXgtMSB3LWZ1bGwgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJz
aGlmdC13cmFwIiBjbGFzcz0icmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCB3LWZ1bGwiPg0KICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJzY2FsZS13cmFwIiBjbGFzcz0icmVsYXRpdmUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNjYWxlLWlubmVyIj4NCiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBhcGVyIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAg
ICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InB2LWhpZ2hsaWdodCI+PC9kaXY+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAg
ICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0iY3Zi
LWVkaXRvciIgY2xhc3M9InhsOnctMS8yIHctZnVsbCBvcmRlci0yIHhsOm9yZGVyLTEgYmctd2hpdGUgeGw6Ym9yZGVyLXIgYm9yZGVyLXNsYXRlLTIwMCBi
b3JkZXItdCB4bDpib3JkZXItdC0wIj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC00IHNtOnAtNiBzcGFjZS15LTYgYmctc2xhdGUtNTAvNjAiPg0K
DQogICAgICAgICAgICAgICAgPGRpdiBpZD0iY29sb3JzLWNhcmQiIGNsYXNzPSJiZy13aGl0ZSByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIw
MCBzaGFkb3ctc20gb3ZlcmZsb3ctaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImNvbG9ycy10b2dnbGUiIGNsYXNzPSJ3LWZ1bGwg
cHgtNSBweS00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBob3ZlcjpiZy1zbGF0ZS01MCB0cmFuc2l0aW9uIiB0eXBlPSJidXR0b24iPg0K
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtOTAwIj4NCiAg
ICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0icGFsZXR0ZSIgY2xhc3M9InctNCBoLTQgdGV4dC1za3ktNjAwIj48L2k+DQogICAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gaWQ9ImxibC1jb2xvcnMiPiR7ZXNjKHQuY2hhbmdlU2NoZW1lKX08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2
Pg0KICAgICAgICAgICAgICAgICAgICA8aSBpZD0iY29sb3JzLWNoZXZyb24iIGRhdGEtbHVjaWRlPSJjaGV2cm9uLWRvd24iIGNsYXNzPSJ3LTUgaC01IHRl
eHQtc2xhdGUtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCg0KICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29sb3JzLXBhbmVs
IiBjbGFzcz0icHgtNSBwYi01IGhpZGRlbiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgc206Z3JpZC1jb2xz
LTMgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcC0zIj4NCiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTcwMCBtYi0yIiBpZD0ibGJsLWFjY2Vu
dCI+JHtlc2ModC5hY2NlbnQpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjLWFjY2VudCIgdHlwZT0iY29sb3IiIGNsYXNz
PSJ3LWZ1bGwgaC0xMCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAg
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcC0zIj4NCiAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTcwMCBtYi0yIiBpZD0ibGJsLWJnIj4ke2VzYyh0LmJhY2tncm91bmQp
fTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjLWJnIiB0eXBlPSJjb2xvciIgY2xhc3M9InctZnVsbCBoLTEwIHJvdW5kZWQt
bGcgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAiIC8+DQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0icm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14
cyBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtNzAwIG1iLTIiIGlkPSJsYmwtY2FyZCI+JHtlc2ModC5jYXJkKX08L2Rpdj4NCiAgICAgICAgICAgICAgICAg
ICAgICAgIDxpbnB1dCBpZD0iYy1jYXJkIiB0eXBlPSJjb2xvciIgY2xhc3M9InctZnVsbCBoLTEwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zbGF0ZS0y
MDAiIC8+DQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIGJvcmRl
ciBib3JkZXItc2xhdGUtMjAwIHAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1z
bGF0ZS03MDAgbWItMiIgaWQ9ImxibC1zaWRlYmFyIj4ke2VzYyh0LnNpZGViYXIpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlk
PSJjLXNpZGViYXIiIHR5cGU9ImNvbG9yIiBjbGFzcz0idy1mdWxsIGgtMTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCIgLz4NCiAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIGJvcmRlciBib3JkZXItc2xhdGUt
MjAwIHAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS03MDAgbWItMiIg
aWQ9ImxibC1zaWRlYmFyVGV4dCI+JHtlc2ModC5zaWRlYmFyVGV4dCl9PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImMtc2lk
ZWJhclRleHQiIHR5cGU9ImNvbG9yIiBjbGFzcz0idy1mdWxsIGgtMTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCIgLz4NCiAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAw
IHAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS03MDAgbWItMiIgaWQ9
ImxibC1wcmltYXJ5Ij4ke2VzYyh0LnByaW1hcnkpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjLXByaW1hcnkiIHR5cGU9
ImNvbG9yIiBjbGFzcz0idy1mdWxsIGgtMTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcC0zIj4NCiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTcwMCBtYi0yIiBpZD0ibGJsLXNlY29uZGFy
eSI+JHtlc2ModC5zZWNvbmRhcnkpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJjLXNlY29uZGFyeSIgdHlwZT0iY29sb3Ii
IGNsYXNzPSJ3LWZ1bGwgaC0xMCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0K
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcC0zIj4NCiAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTcwMCBtYi0yIiBpZD0ibGJsLXRleHQiPiR7ZXNjKHQudGV4
dCl9PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImMtdGV4dCIgdHlwZT0iY29sb3IiIGNsYXNzPSJ3LWZ1bGwgaC0xMCByb3Vu
ZGVkLWxnIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcC0zIHNtOmNvbC1zcGFuLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0idGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtNzAwIG1iLTIiIGlkPSJsYmwtc3ViIj4ke2VzYyh0LnN1YnRpdGxlKX08L2Rp
dj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iYy1zdWIiIHR5cGU9ImNvbG9yIiBjbGFzcz0idy1mdWxsIGgtMTAgcm91bmRlZC1sZyBi
b3JkZXIgYm9yZGVyLXNsYXRlLTIwMCIgLz4NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAg
ICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5k
ZWQtMnhsIHAtNSBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBzaGFkb3ctc20iPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1j
ZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmb250
LXNlbWlib2xkIHRleHQtc2xhdGUtOTAwIj4NCiAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2FtZXJhIiBjbGFzcz0idy00IGgtNCB0
ZXh0LXNreS02MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0ibGJsLXBob3RvIj4ke2VzYyh0LnByb2ZpbGVQaG90byl9PC9zcGFu
Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1zbGF0ZS01MDAiIGlk
PSJsYmwtcGhvdG8taGludCI+JHtlc2ModC5waG90b0hpbnQpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAg
ICA8aW5wdXQgaWQ9ImN2Yi1waG90by1pbnB1dCIgZGF0YS1waG90by1pbnB1dCB0eXBlPSJmaWxlIiBhY2NlcHQ9ImltYWdlLyoiIGNsYXNzPSJzci1vbmx5
IiBhcmlhLWxhYmVsPSIke2VzY0F0dHIodC51cGxvYWRQaG90byl9Ij4NCg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50
ZXIgZ2FwLTQiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjdmItcGhvdG8taW5wdXQiIGNsYXNzPSJjdmItdGFwLXNhZmUgdy0yNCBoLTI0
IGN1cnNvci1wb2ludGVyIHNlbGVjdC1ub25lIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwaG90by1wcmV2aWV3IiBjbGFzcz0idy0yNCBo
LTI0IGJnLXNsYXRlLTEwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyLTQgYm9yZGVyLXdoaXRlIHNo
YWRvdy1sZyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQoNCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIHNw
YWNlLXktMyI+DQogICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iY3ZiLXBob3RvLWlucHV0IiBpZD0icGhvdG8tYnRuIiBjbGFzcz0iY3ZiLXRh
cC1zYWZlIHctZnVsbCBjdXJzb3ItcG9pbnRlciBzZWxlY3Qtbm9uZSBiZy1zbGF0ZS0xMDAgaG92ZXI6Ymctc2xhdGUtMjAwIHRleHQtc2xhdGUtNzAwIHB5
LTIuNSByb3VuZGVkLXhsIHRyYW5zaXRpb24gZm9udC1tZWRpdW0gdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBib3Jk
ZXIgYm9yZGVyLXNsYXRlLTMwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0idXBsb2FkIiBjbGFzcz0idy00IGgtNCI+PC9p
PjxzcGFuIGlkPSJsYmwtdXBsb2FkIj4ke2VzYyh0LnVwbG9hZFBob3RvKX08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCg0KICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwaG90by10b29scy1ncmlkIiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBnYXAt
MyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHAtMyI+DQogICAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTcwMCBtYi0yIiBpZD0ibGJsLXNoYXBlIj4k
e2VzYyh0LnBob3RvU2hhcGUpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIGdhcC0yIHRleHQt
c20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpbnB1dCB0eXBlPSJyYWRp
byIgbmFtZT0icGhvdG9TaGFwZSIgdmFsdWU9InNxdWFyZSIgY2xhc3M9ImFjY2VudC1za3ktNjAwIiAvPjxzcGFuIGlkPSJsYmwtc3F1YXJlIj4ke2VzYyh0
LnNxdWFyZSl9PC9zcGFuPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAt
MiI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwaG90b1NoYXBlIiB2YWx1ZT0icm91bmRlZCIgY2xhc3M9ImFjY2VudC1za3ktNjAwIiAvPjxzcGFuIGlk
PSJsYmwtcm91bmRlZCI+JHtlc2ModC5yb3VuZGVkKX08L3NwYW4+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9
ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InBob3RvU2hhcGUiIHZhbHVlPSJjaXJjbGUiIGNsYXNzPSJhY2Nl
bnQtc2t5LTYwMCIgLz48c3BhbiBpZD0ibGJsLWNpcmNsZSI+JHtlc2ModC5jaXJjbGUpfTwvc3Bhbj48L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC14
bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJv
bGQgdGV4dC1zbGF0ZS03MDAgbWItMiIgaWQ9ImxibC1ib3JkZXIiPiR7ZXNjKHQucGhvdG9Cb3JkZXIpfTwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGlkPSJwaG90by1ib3JkZXItcm93IiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtW21pbm1heCgwLDFmcilfODhw
eF0gZ2FwLTMgaXRlbXMtZW5kIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tdy0wIj4NCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtWzExcHhdIHRleHQtc2xhdGUtNTAwIG1iLTEgd2hpdGVzcGFjZS1ub3dyYXAiIGlkPSJsYmwtYnciPiR7
ZXNjKHQuYm9yZGVyV2lkdGgpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJib3JkZXItd2lkdGgiIHR5cGU9InJh
bmdlIiBtaW49IjAiIG1heD0iMTAiIHN0ZXA9IjEiIGNsYXNzPSJ3LWZ1bGwiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tdy0wIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
InRleHQtWzExcHhdIHRleHQtc2xhdGUtNTAwIG1iLTEgbGVhZGluZy10aWdodCB3aGl0ZXNwYWNlLW5vcm1hbCIgaWQ9ImxibC1iYyI+JHtlc2ModC5ib3Jk
ZXJDb2xvcil9PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LWZ1bGwgc206dy0xNCBoLTEwIHJvdW5kZWQteGwg
b3ZlcmZsb3ctaGlkZGVuIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIGJnLXdoaXRlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0
IGlkPSJib3JkZXItY29sb3IiIHR5cGU9ImNvbG9yIiBhcmlhLWxhYmVsPSIke2VzY0F0dHIodC5ib3JkZXJDb2xvcil9Ij4NCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4N
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDwvZGl2
Pg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy13aGl0
ZSByb3VuZGVkLTJ4bCBwLTUgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgc2hhZG93LXNtIHNwYWNlLXktNCI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtOTAwIGJvcmRlci1iIGJvcmRlci1zbGF0ZS0xMDAgcGItMyI+
DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJ1c2VyLWNpcmNsZSIgY2xhc3M9InctNSBoLTUgdGV4dC1za3ktNjAwIj48L2k+DQogICAg
ICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJsYmwtcGVyc29uYWwiPiR7ZXNjKHQucGVyc29uYWxJbmZvKX08L3NwYW4+DQogICAgICAgICAgICAgICAgICA8
L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAtNCI+DQogICAgICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InNtOmNvbC1zcGFuLTIiPg0KICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iYmxvY2sgdGV4dC1zbSBm
b250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjUiIGlkPSJsYmwtZnVsbE5hbWUiPiR7ZXNjKHQuZnVsbE5hbWUpfTwvbGFiZWw+DQogICAgICAgICAg
ICAgICAgICAgICAgPGlucHV0IGlkPSJmdWxsTmFtZSIgZGF0YS1wdmtleT0ibmFtZSIgdHlwZT0idGV4dCIgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgt
NCBweS0yLjUgYm9yZGVyIGJvcmRlci1zbGF0ZS0zMDAgcm91bmRlZC14bCB0ZXh0LXNtIiAvPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbTpjb2wtc3Bhbi0yIj4NCiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRl
eHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWItMS41IiBpZD0ibGJsLWpvYlRpdGxlIj4ke2VzYyh0LmpvYlRpdGxlKX08L2xhYmVsPg0KICAg
ICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iam9iVGl0bGUiIGRhdGEtcHZrZXk9InRpdGxlIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iY3ZiLWlucHV0IHct
ZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQtc20iIC8+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2
Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVk
aXVtIHRleHQtc2xhdGUtNzAwIG1iLTEuNSIgaWQ9ImxibC1lbWFpbCI+JHtlc2ModC5lbWFpbCl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICA8
aW5wdXQgaWQ9ImVtYWlsIiBkYXRhLXB2a2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIGNsYXNzPSJjdmItaW5wdXQgdy1mdWxsIHB4LTQgcHktMi41IGJvcmRl
ciBib3JkZXItc2xhdGUtMzAwIHJvdW5kZWQteGwgdGV4dC1zbSIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAg
ICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWIt
MS41IiBpZD0ibGJsLXBob25lIj4ke2VzYyh0LnBob25lKX08L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0icGhvbmUiIGRhdGEt
cHZrZXk9InBob25lIiB0eXBlPSJ0ZWwiIGNsYXNzPSJjdmItaW5wdXQgdy1mdWxsIHB4LTQgcHktMi41IGJvcmRlciBib3JkZXItc2xhdGUtMzAwIHJvdW5k
ZWQteGwgdGV4dC1zbSIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206Y29sLXNw
YW4tMiI+DQogICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNzAwIG1iLTEu
NSIgaWQ9ImxibC1hZGRyZXNzIj4ke2VzYyh0LmFkZHJlc3MpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJhZGRyZXNzIiBk
YXRhLXB2a2V5PSJhZGRyZXNzIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iY3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMw
MCByb3VuZGVkLXhsIHRleHQtc20iIC8+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAg
ICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNzAwIG1iLTEuNSIgaWQ9ImxibC13ZWJz
aXRlIj4ke2VzYyh0LndlYnNpdGUpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ3ZWJzaXRlIiBkYXRhLXB2a2V5PSJ3ZWJz
aXRlIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iY3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRl
eHQtc20iIC8+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAg
PGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNzAwIG1iLTEuNSIgaWQ9ImxibC1uYXRpb25hbGl0eSI+JHtlc2Mo
dC5uYXRpb25hbGl0eSl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Im5hdGlvbmFsaXR5IiBkYXRhLXB2a2V5PSJuYXRpb25h
bGl0eSIgdHlwZT0idGV4dCIgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0yLjUgYm9yZGVyIGJvcmRlci1zbGF0ZS0zMDAgcm91bmRlZC14bCB0
ZXh0LXNtIiAvPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0K
DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUgcm91bmRlZC0yeGwgcC01IGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHNoYWRvdy1zbSBz
cGFjZS15LTQiPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRl
LTkwMCBib3JkZXItYiBib3JkZXItc2xhdGUtMTAwIHBiLTMiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iYWxpZ24tbGVmdCIgY2xh
c3M9InctNSBoLTUgdGV4dC1za3ktNjAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJsYmwtc3VtbWFyeSI+JHtlc2ModC5zdW1tYXJ5
KX08L3NwYW4+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0ic3VtbWFyeSIgZGF0YS1wdmtleT0i
c3VtbWFyeSIgcm93cz0iNCIgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0zIGJvcmRlciBib3JkZXItc2xhdGUtMzAwIHJvdW5kZWQteGwgcmVz
aXplLW5vbmUgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQiPjwvdGV4dGFyZWE+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJjdmItZHluYW1pYy1zZWN0aW9ucyIgY2xhc3M9InNwYWNlLXktNiI+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC02Ij48
L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAg
IGA7DQoNCiAgICAgICAgbHVjaWRlLmNyZWF0ZUljb25zKCk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGFwcGx5STE4bigpew0KICAgICAgICBjb25z
dCB0ID0gVFtzdGF0ZS5sYW5nXSB8fCBULmVuOw0KICAgICAgICBjb25zdCBzZXQgPSAoaWQsIHR4dCk9PnsgY29uc3QgeCA9IGVsKGlkKTsgaWYoeCkgeC50
ZXh0Q29udGVudCA9IHR4dDsgfTsNCg0KICAgICAgICBzZXQoImN2Yi1hcHAiLCB0LmFwcCk7DQoNCiAgICAgICAgY29uc3QgbGJsID0gc3BsaXRQcmludExh
YmVsKHQucHJpbnRQREYpOw0KICAgICAgICBjb25zdCBsMSA9IGVsKCJjdmItcHJpbnQtbGluZTEiKSwgbDIgPSBlbCgiY3ZiLXByaW50LWxpbmUyIik7DQog
ICAgICAgIGlmKGwxKSBsMS50ZXh0Q29udGVudCA9IGxibC5hIHx8ICIiOw0KICAgICAgICBpZihsMikgbDIudGV4dENvbnRlbnQgPSBsYmwuYiB8fCAiIjsN
Cg0KICAgICAgICBzZXQoImxibC1waG90byIsIHQucHJvZmlsZVBob3RvKTsNCiAgICAgICAgc2V0KCJsYmwtdXBsb2FkIiwgdC51cGxvYWRQaG90byk7DQog
ICAgICAgIHNldCgibGJsLXBob3RvLWhpbnQiLCB0LnBob3RvSGludCk7DQogICAgICAgIHNldCgibGJsLXNoYXBlIiwgdC5waG90b1NoYXBlKTsNCiAgICAg
ICAgc2V0KCJsYmwtc3F1YXJlIiwgdC5zcXVhcmUpOw0KICAgICAgICBzZXQoImxibC1yb3VuZGVkIiwgdC5yb3VuZGVkKTsNCiAgICAgICAgc2V0KCJsYmwt
Y2lyY2xlIiwgdC5jaXJjbGUpOw0KICAgICAgICBzZXQoImxibC1ib3JkZXIiLCB0LnBob3RvQm9yZGVyKTsNCiAgICAgICAgc2V0KCJsYmwtYnciLCB0LmJv
cmRlcldpZHRoKTsNCiAgICAgICAgc2V0KCJsYmwtYmMiLCB0LmJvcmRlckNvbG9yKTsNCg0KICAgICAgICBzZXQoImxibC1jb2xvcnMiLCB0LmNoYW5nZVNj
aGVtZSk7DQogICAgICAgIHNldCgibGJsLWFjY2VudCIsIHQuYWNjZW50KTsNCiAgICAgICAgc2V0KCJsYmwtYmciLCB0LmJhY2tncm91bmQpOw0KICAgICAg
ICBzZXQoImxibC10ZXh0IiwgdC50ZXh0KTsNCiAgICAgICAgc2V0KCJsYmwtc3ViIiwgdC5zdWJ0aXRsZSk7DQogICAgICAgIHNldCgibGJsLXByaW1hcnki
LCB0LnByaW1hcnkpOw0KICAgICAgICBzZXQoImxibC1zZWNvbmRhcnkiLCB0LnNlY29uZGFyeSk7DQogICAgICAgIHNldCgibGJsLWNhcmQiLCB0LmNhcmQp
Ow0KICAgICAgICBzZXQoImxibC1zaWRlYmFyIiwgdC5zaWRlYmFyKTsNCiAgICAgICAgc2V0KCJsYmwtc2lkZWJhclRleHQiLCB0LnNpZGViYXJUZXh0KTsN
Cg0KICAgICAgICBzZXQoImxibC1wZXJzb25hbCIsIHQucGVyc29uYWxJbmZvKTsNCiAgICAgICAgc2V0KCJsYmwtZnVsbE5hbWUiLCB0LmZ1bGxOYW1lKTsN
CiAgICAgICAgc2V0KCJsYmwtam9iVGl0bGUiLCB0LmpvYlRpdGxlKTsNCiAgICAgICAgc2V0KCJsYmwtZW1haWwiLCB0LmVtYWlsKTsNCiAgICAgICAgc2V0
KCJsYmwtcGhvbmUiLCB0LnBob25lKTsNCiAgICAgICAgc2V0KCJsYmwtYWRkcmVzcyIsIHQuYWRkcmVzcyk7DQogICAgICAgIHNldCgibGJsLXdlYnNpdGUi
LCB0LndlYnNpdGUpOw0KICAgICAgICBzZXQoImxibC1uYXRpb25hbGl0eSIsIHQubmF0aW9uYWxpdHkpOw0KICAgICAgICBzZXQoImxibC1zdW1tYXJ5Iiwg
dC5zdW1tYXJ5KTsNCg0KICAgICAgICBjb25zdCBsYW5nU2VsID0gZWwoImN2Yi1sYW5nIik7DQogICAgICAgIGlmKGxhbmdTZWwpew0KICAgICAgICAgIGxh
bmdTZWwuaW5uZXJIVE1MID0gTEFOR19PUFRJT05TLm1hcCgoW2ssbGFiZWxdKT0+YDxvcHRpb24gdmFsdWU9IiR7ZXNjQXR0cihrKX0iPiR7ZXNjKGxhYmVs
KX08L29wdGlvbj5gKS5qb2luKCIiKTsNCiAgICAgICAgICBsYW5nU2VsLnZhbHVlID0gc3RhdGUubGFuZzsNCiAgICAgICAgICBsYW5nU2VsLnNldEF0dHJp
YnV0ZSgiYXJpYS1sYWJlbCIsIHQubGFuZ3VhZ2UpOw0KICAgICAgICAgIGxhbmdTZWwudGl0bGUgPSB0Lmxhbmd1YWdlOw0KICAgICAgICB9DQoNCiAgICAg
ICAgY29uc3QgZm9udFNlbCA9IGVsKCJjdmItZm9udCIpOw0KICAgICAgICBpZihmb250U2VsKXsNCiAgICAgICAgICBmb250U2VsLmlubmVySFRNTCA9IEZP
TlRfT1BUSU9OUy5tYXAoKFtrLGxhYmVsXSk9PmA8b3B0aW9uIHZhbHVlPSIke2VzY0F0dHIoayl9Ij4ke2VzYyhsYWJlbCl9PC9vcHRpb24+YCkuam9pbigi
Iik7DQogICAgICAgICAgZm9udFNlbC52YWx1ZSA9IHN0YXRlLmZvbnQgfHwgIkludGVyIjsNCiAgICAgICAgICBmb250U2VsLnNldEF0dHJpYnV0ZSgiYXJp
YS1sYWJlbCIsIHQuZm9udCk7DQogICAgICAgICAgZm9udFNlbC50aXRsZSA9IHQuZm9udDsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHBob3RvSW5w
dXQgPSBlbCgiY3ZiLXBob3RvLWlucHV0Iik7DQogICAgICAgIGlmKHBob3RvSW5wdXQpIHBob3RvSW5wdXQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwg
dC51cGxvYWRQaG90byk7DQoNCiAgICAgICAgY29uc3QgYm9yZGVyQ29sb3IgPSBlbCgiYm9yZGVyLWNvbG9yIik7DQogICAgICAgIGlmKGJvcmRlckNvbG9y
KSBib3JkZXJDb2xvci5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCB0LmJvcmRlckNvbG9yKTsNCg0KICAgICAgICBjb25zdCBwcmV2QnRuID0gZWwoInRw
bC1wcmV2Iik7DQogICAgICAgIGlmKHByZXZCdG4pew0KICAgICAgICAgIHByZXZCdG4udGl0bGUgPSB0LnByZXZpb3VzOw0KICAgICAgICAgIHByZXZCdG4u
c2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgdC5wcmV2aW91cyk7DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBuZXh0QnRuID0gZWwoInRwbC1uZXh0
Iik7DQogICAgICAgIGlmKG5leHRCdG4pew0KICAgICAgICAgIG5leHRCdG4udGl0bGUgPSB0Lm5leHQ7DQogICAgICAgICAgbmV4dEJ0bi5zZXRBdHRyaWJ1
dGUoImFyaWEtbGFiZWwiLCB0Lm5leHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgcHJpbnRCdG4gPSBlbCgiY3ZiLXByaW50Iik7DQogICAgICAg
IGlmKHByaW50QnRuKXsNCiAgICAgICAgICBwcmludEJ0bi50aXRsZSA9IHQucHJpbnRQREYucmVwbGFjZSgvXHMqXC9ccyovZywgIiAvICIpOw0KICAgICAg
ICAgIHByaW50QnRuLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIHQucHJpbnRQREYucmVwbGFjZSgvXHMqXC9ccyovZywgIiAvICIpKTsNCiAgICAgICAg
fQ0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiByZW5kZXJUZW1wbGF0ZUJhcigpew0KICAgICAgICBjb25zdCB0cmFjayA9IGVsKCJ0cGwtdHJhY2siKTsN
CiAgICAgICAgaWYoIXRyYWNrKSByZXR1cm47DQoNCiAgICAgICAgdHJhY2suaW5uZXJIVE1MID0gVEVNUExBVEVTLm1hcCh0cD0+ew0KICAgICAgICAgIGNv
bnN0IGFjdGl2ZSA9IHRwLmlkID09PSBzdGF0ZS50ZW1wbGF0ZSA/ICJjdmItYWN0aXZlIiA6ICIiOw0KICAgICAgICAgIHJldHVybiBgDQogICAgICAgICAg
ICA8YnV0dG9uIGNsYXNzPSJjdmItdGVtcGxhdGUtYnRuICR7YWN0aXZlfSBib3JkZXItMiBib3JkZXItc2xhdGUtMjAwIGJnLXdoaXRlIHJvdW5kZWQtMnhs
IHRleHQtbGVmdCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyINCiAgICAgICAgICAgICAgICAgICAgZGF0YS10cGw9IiR7ZXNjQXR0cih0cC5pZCl9IiB0eXBl
PSJidXR0b24iPg0KICAgICAgICAgICAgICAke3RwbEljb24odHAuaWQsIHRwLmNvbG9yKX0NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIG1p
bi13LTAiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTkwMCBsZWFkaW5nLXNudWcgYnJl
YWstd29yZHMiDQogICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtYnJlYWs6YnJlYWstd29yZDtkaXNwbGF5Oi13
ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47bWluLWhlaWdodDoyLjZl
bTsiPg0KICAgICAgICAgICAgICAgICAgJHtlc2ModHAubmFtZSl9DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAg
ICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgYDsNCiAgICAgICAgfSkuam9pbigiIik7DQoNCiAgICAgICAgbHVjaWRlLmNyZWF0ZUljb25zKCk7DQog
ICAgICAgIGNlbnRlckFjdGl2ZVRlbXBsYXRlKCk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGNlbnRlckFjdGl2ZVRlbXBsYXRlKCl7DQogICAgICAg
IGNvbnN0IHRyYWNrID0gZWwoInRwbC10cmFjayIpOw0KICAgICAgICBpZighdHJhY2spIHJldHVybjsNCiAgICAgICAgY29uc3QgYnRuID0gdHJhY2sucXVl
cnlTZWxlY3RvcignW2RhdGEtdHBsPSInK3N0YXRlLnRlbXBsYXRlKyciXScpOw0KICAgICAgICBpZighYnRuKSByZXR1cm47DQogICAgICAgIGNvbnN0IHRy
YWNrUmVjdCA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOw0KICAgICAgICBjb25zdCBidG5SZWN0ID0gYnRuLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOw0KICAgICAgICBjb25zdCBkZWx0YSA9IChidG5SZWN0LmxlZnQgKyBidG5SZWN0LndpZHRoLzIpIC0gKHRyYWNrUmVjdC5sZWZ0ICsgdHJhY2tSZWN0
LndpZHRoLzIpOw0KICAgICAgICB0cmFjay5zY3JvbGxMZWZ0ICs9IGRlbHRhOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBwaG90b1JhZGl1cygpew0K
ICAgICAgICBpZihzdGF0ZS50aGVtZS5waG90b1NoYXBlID09PSAic3F1YXJlIikgcmV0dXJuICIwcHgiOw0KICAgICAgICBpZihzdGF0ZS50aGVtZS5waG90
b1NoYXBlID09PSAicm91bmRlZCIpIHJldHVybiAiMjJweCI7DQogICAgICAgIHJldHVybiAiOTk5OXB4IjsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24g
aW5pdGlhbHMobmFtZSl7DQogICAgICAgIGNvbnN0IG4gPSAobmFtZXx8IiIpLnRyaW0oKTsNCiAgICAgICAgaWYoIW4pIHJldHVybiAiWSI7DQogICAgICAg
IGNvbnN0IHBhcnRzID0gbi5zcGxpdCgvXHMrLykuZmlsdGVyKEJvb2xlYW4pOw0KICAgICAgICBjb25zdCBhID0gKHBhcnRzWzBdfHwiWSIpWzBdIHx8ICJZ
IjsNCiAgICAgICAgY29uc3QgYiA9IChwYXJ0c1sxXXx8IiIpWzBdIHx8ICIiOw0KICAgICAgICByZXR1cm4gKGEgKyBiKS50b1VwcGVyQ2FzZSgpOw0KICAg
ICAgfQ0KDQogICAgICBmdW5jdGlvbiByZW5kZXJQaG90b1ByZXZpZXcoKXsNCiAgICAgICAgY29uc3QgcCA9IGVsKCJwaG90by1wcmV2aWV3Iik7DQogICAg
ICAgIGlmKCFwKSByZXR1cm47DQoNCiAgICAgICAgY29uc3QgciA9IHBob3RvUmFkaXVzKCk7DQogICAgICAgIGNvbnN0IGJ3ID0gTnVtYmVyKHN0YXRlLnRo
ZW1lLnBob3RvQm9yZGVyV2lkdGh8fDApOw0KICAgICAgICBjb25zdCBiYyA9IHN0YXRlLnRoZW1lLnBob3RvQm9yZGVyQ29sb3IgfHwgIiMwZjE3MmEiOw0K
DQogICAgICAgIHAuc3R5bGUuYm9yZGVyUmFkaXVzID0gcjsNCiAgICAgICAgcC5zdHlsZS5ib3JkZXJXaWR0aCA9IGJ3ICsgInB4IjsNCiAgICAgICAgcC5z
dHlsZS5ib3JkZXJTdHlsZSA9ICJzb2xpZCI7DQogICAgICAgIHAuc3R5bGUuYm9yZGVyQ29sb3IgPSBiYzsNCg0KICAgICAgICBpZihzdGF0ZS5kYXRhLnBo
b3RvKXsNCiAgICAgICAgICBwLmlubmVySFRNTCA9IGA8aW1nIHNyYz0iJHtlc2NBdHRyKHN0YXRlLmRhdGEucGhvdG8pfSIgYWx0PSJwaG90byIgc3R5bGU9
IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjtib3JkZXItcmFkaXVzOiR7cn07Ij5gOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAg
ICAgIHAuaW5uZXJIVE1MID0gYDxkaXYgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0
aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6JHtyfTtiYWNrZ3JvdW5kOnJnYmEoMTUsMjMsNDIsLjA2KTtmb250LXdlaWdodDo5MDA7Zm9udC1z
aXplOjI2cHg7Y29sb3I6cmdiYSgxNSwyMyw0MiwuNTUpIj4ke2VzYyhpbml0aWFscyhzdGF0ZS5kYXRhLm5hbWUpKX08L2Rpdj5gOw0KICAgICAgICB9DQog
ICAgICB9DQpmdW5jdGlvbiBwaG90b0hUTUwoc2l6ZSwgYmcsIGluayl7DQogIGNvbnN0IHIgPSBwaG90b1JhZGl1cygpOw0KICBjb25zdCBidyA9IE51bWJl
cihzdGF0ZS50aGVtZS5waG90b0JvcmRlcldpZHRofHwwKTsNCiAgY29uc3QgYmMgPSBzdGF0ZS50aGVtZS5waG90b0JvcmRlckNvbG9yIHx8ICIjMGYxNzJh
IjsNCiAgY29uc3QgZnJhbWUgPSBgc3R5bGU9IndpZHRoOiR7c2l6ZX1weDtoZWlnaHQ6JHtzaXplfXB4O2JvcmRlci1yYWRpdXM6JHtyfTtvdmVyZmxvdzpo
aWRkZW47Ym9yZGVyOiR7Ynd9cHggc29saWQgJHtlc2NBdHRyKGJjKX07ImA7DQogIGlmKHN0YXRlLmRhdGEucGhvdG8pIHJldHVybiBgPGRpdiAke2ZyYW1l
fT48aW1nIHNyYz0iJHtlc2NBdHRyKHN0YXRlLmRhdGEucGhvdG8pfSIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjsi
PjwvZGl2PmA7DQogIHJldHVybiBgPGRpdiAke2ZyYW1lfT48ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1p
dGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiR7Ymd9O2NvbG9yOiR7aW5rfTtmb250LXdlaWdodDo5MDA7Zm9udC1zaXpl
OiR7TWF0aC5yb3VuZChzaXplKjAuMzQpfXB4OyI+JHtlc2MoaW5pdGlhbHMoc3RhdGUuZGF0YS5uYW1lKSl9PC9kaXY+PC9kaXY+YDsNCn0NCiAgICAgIA0K
DQogICAgICBmdW5jdGlvbiBiaW5kUGhvdG8oKXsNCiAgICAgICAgY29uc3QgaW5wID0gZWwoImN2Yi1waG90by1pbnB1dCIpOw0KICAgICAgICBpZighaW5w
KSByZXR1cm47DQoNCiAgICAgICAgdHJ5eyBpbnAudmFsdWUgPSAiIjsgfWNhdGNoKF8pe30NCg0KICAgICAgICBpbnAuYWRkRXZlbnRMaXN0ZW5lcigiY2hh
bmdlIiwgKGUpPT57DQogICAgICAgICAgY29uc3QgZmlsZSA9IGUudGFyZ2V0LmZpbGVzICYmIGUudGFyZ2V0LmZpbGVzWzBdOw0KICAgICAgICAgIGlmKCFm
aWxlKSByZXR1cm47DQoNCiAgICAgICAgICBpZihmaWxlLnNpemUgPiBNQVhfUEhPVE9fQllURVMpew0KICAgICAgICAgICAgYWxlcnQoKFRbc3RhdGUubGFu
Z118fFQuZW4pLnBob3RvSGludCB8fCAiTWF4IDVNQiIpOw0KICAgICAgICAgICAgdHJ5eyBpbnAudmFsdWUgPSAiIjsgfWNhdGNoKF8pe30NCiAgICAgICAg
ICAgIHJldHVybjsNCiAgICAgICAgICB9DQoNCiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgIHJlYWRlci5v
bmxvYWQgPSAoKSA9PiB7DQogICAgICAgICAgICBzdGF0ZS5kYXRhLnBob3RvID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgIHJlbmRlclBob3RvUHJl
dmlldygpOw0KICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgICAgdHJ5eyBpbnAudmFsdWUgPSAiIjsgfWNh
dGNoKF8pe30NCiAgICAgICAgICB9Ow0KICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICB9KTsNCiAgICAgIH0NCg0KICAg
ICAgZnVuY3Rpb24gYXBwbHlDb2xvcnNVSSgpew0KICAgICAgICBjb25zdCBhID0gZWwoImMtYWNjZW50IiksIGIgPSBlbCgiYy1iZyIpLCBjID0gZWwoImMt
dGV4dCIpLCBkID0gZWwoImMtc3ViIik7DQogICAgICAgIGNvbnN0IHAgPSBlbCgiYy1wcmltYXJ5IiksIHMgPSBlbCgiYy1zZWNvbmRhcnkiKSwgayA9IGVs
KCJjLWNhcmQiKTsNCiAgICAgICAgY29uc3Qgc2IgPSBlbCgiYy1zaWRlYmFyIiksIHN0ID0gZWwoImMtc2lkZWJhclRleHQiKTsNCg0KICAgICAgICBpZihh
KSBhLnZhbHVlID0gc3RhdGUudGhlbWUuYWNjZW50Ow0KICAgICAgICBpZihiKSBiLnZhbHVlID0gc3RhdGUudGhlbWUuYmFja2dyb3VuZDsNCiAgICAgICAg
aWYoYykgYy52YWx1ZSA9IHN0YXRlLnRoZW1lLnRleHQ7DQogICAgICAgIGlmKGQpIGQudmFsdWUgPSBzdGF0ZS50aGVtZS5zdWJ0aXRsZTsNCiAgICAgICAg
aWYocCkgcC52YWx1ZSA9IHN0YXRlLnRoZW1lLnByaW1hcnk7DQogICAgICAgIGlmKHMpIHMudmFsdWUgPSBzdGF0ZS50aGVtZS5zZWNvbmRhcnk7DQogICAg
ICAgIGlmKGspIGsudmFsdWUgPSBzdGF0ZS50aGVtZS5jYXJkOw0KICAgICAgICBpZihzYikgc2IudmFsdWUgPSBzdGF0ZS50aGVtZS5zaWRlYmFyIHx8IChU
UExfQ09MT1Jbc3RhdGUudGVtcGxhdGVdIHx8IHN0YXRlLnRoZW1lLnByaW1hcnkpOw0KICAgICAgICBpZihzdCkgc3QudmFsdWUgPSBzdGF0ZS50aGVtZS5z
aWRlYmFyVGV4dCB8fCAiI2ZmZmZmZiI7DQoNCiAgICAgICAgY29uc3QgcGFuZWwgPSBlbCgiY29sb3JzLXBhbmVsIik7DQogICAgICAgIGlmKHBhbmVsKSBw
YW5lbC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCAhIXN0YXRlLmNvbGxhcHNlZENvbG9ycyk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGJpbmRD
b2xvcnMoKXsNCiAgICAgICAgY29uc3QgdG9nZ2xlID0gZWwoImNvbG9ycy10b2dnbGUiKTsNCiAgICAgICAgY29uc3QgcGFuZWwgPSBlbCgiY29sb3JzLXBh
bmVsIik7DQogICAgICAgIGlmKHRvZ2dsZSAmJiBwYW5lbCl7DQogICAgICAgICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCk9PnsNCiAg
ICAgICAgICAgIHN0YXRlLmNvbGxhcHNlZENvbG9ycyA9ICFzdGF0ZS5jb2xsYXBzZWRDb2xvcnM7DQogICAgICAgICAgICBwYW5lbC5jbGFzc0xpc3QudG9n
Z2xlKCJoaWRkZW4iLCAhIXN0YXRlLmNvbGxhcHNlZENvbG9ycyk7DQogICAgICAgICAgfSk7DQogICAgICAgIH0NCg0KICAgICAgICBbDQogICAgICAgICAg
WyJjLWFjY2VudCIsImFjY2VudCJdLA0KICAgICAgICAgIFsiYy1iZyIsImJhY2tncm91bmQiXSwNCiAgICAgICAgICBbImMtdGV4dCIsInRleHQiXSwNCiAg
ICAgICAgICBbImMtc3ViIiwic3VidGl0bGUiXSwNCiAgICAgICAgICBbImMtcHJpbWFyeSIsInByaW1hcnkiXSwNCiAgICAgICAgICBbImMtc2Vjb25kYXJ5
Iiwic2Vjb25kYXJ5Il0sDQogICAgICAgICAgWyJjLWNhcmQiLCJjYXJkIl0sDQogICAgICAgICAgWyJjLXNpZGViYXIiLCJzaWRlYmFyIl0sDQogICAgICAg
ICAgWyJjLXNpZGViYXJUZXh0Iiwic2lkZWJhclRleHQiXQ0KICAgICAgICBdLmZvckVhY2goKFtpZCxrZXldKT0+ew0KICAgICAgICAgIGNvbnN0IHggPSBl
bChpZCk7DQogICAgICAgICAgaWYoIXgpIHJldHVybjsNCiAgICAgICAgICB4LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgKCk9PnsNCiAgICAgICAgICAg
IHN0YXRlLnRoZW1lW2tleV0gPSB4LnZhbHVlOw0KICAgICAgICAgICAgaWYoa2V5PT09InNpZGViYXIiKSBzdGF0ZS5zaWRlYmFyVG91Y2hlZCA9IHRydWU7
DQogICAgICAgICAgICBpZihrZXk9PT0ic2lkZWJhclRleHQiKSBzdGF0ZS5zaWRlYmFyVGV4dFRvdWNoZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmVuZGVy
RHluYW1pY1NlY3Rpb25zKCk7DQogICAgICAgICAgICByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgICAgfSk7DQogICAgICAgIH0p
Ow0KDQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9InBob3RvU2hhcGUiXScpLmZvckVhY2gocj0+ew0KICAgICAgICAg
IHIuY2hlY2tlZCA9IChyLnZhbHVlID09PSBzdGF0ZS50aGVtZS5waG90b1NoYXBlKTsNCiAgICAgICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
ICgpPT57DQogICAgICAgICAgICBzdGF0ZS50aGVtZS5waG90b1NoYXBlID0gci52YWx1ZTsNCiAgICAgICAgICAgIHJlbmRlclBob3RvUHJldmlldygpOw0K
ICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCg0KICAgICAgICBjb25zdCBi
dyA9IGVsKCJib3JkZXItd2lkdGgiKTsNCiAgICAgICAgY29uc3QgYmMgPSBlbCgiYm9yZGVyLWNvbG9yIik7DQogICAgICAgIGlmKGJ3KXsNCiAgICAgICAg
ICBidy52YWx1ZSA9IE51bWJlcihzdGF0ZS50aGVtZS5waG90b0JvcmRlcldpZHRofHwwKTsNCiAgICAgICAgICBidy5hZGRFdmVudExpc3RlbmVyKCJpbnB1
dCIsICgpPT57DQogICAgICAgICAgICBzdGF0ZS50aGVtZS5waG90b0JvcmRlcldpZHRoID0gTnVtYmVyKGJ3LnZhbHVlKTsNCiAgICAgICAgICAgIHJlbmRl
clBob3RvUHJldmlldygpOw0KICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQog
ICAgICAgIGlmKGJjKXsNCiAgICAgICAgICBiYy52YWx1ZSA9IHN0YXRlLnRoZW1lLnBob3RvQm9yZGVyQ29sb3IgfHwgIiMwZjE3MmEiOw0KICAgICAgICAg
IGJjLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgKCk9PnsNCiAgICAgICAgICAgIHN0YXRlLnRoZW1lLnBob3RvQm9yZGVyQ29sb3IgPSBiYy52YWx1ZTsN
CiAgICAgICAgICAgIHJlbmRlclBob3RvUHJldmlldygpOw0KICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAg
IH0pOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIG1heWJlQ2xlYXJHaG9zdEZpZWxkKG5vZGUpew0KICAgICAgICBpZighc3RhdGUu
Z2hvc3QpIHJldHVybjsNCiAgICAgICAgaWYoIW5vZGUgfHwgIW5vZGUuZ2V0QXR0cmlidXRlKSByZXR1cm47DQogICAgICAgIGNvbnN0IHNhbXBsZSA9IG5v
ZGUuZ2V0QXR0cmlidXRlKCJkYXRhLXNhbXBsZSIpOw0KICAgICAgICBpZihzYW1wbGUgPT0gbnVsbCkgcmV0dXJuOw0KICAgICAgICBpZigobm9kZS52YWx1
ZXx8IiIpID09PSAoc2FtcGxlfHwiIikpew0KICAgICAgICAgIG5vZGUudmFsdWUgPSAiIjsNCiAgICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoImN2
Yi1naG9zdCIpOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGF0dGFjaEdob3N0Q2xlYXIoaWQsIHNhbXBsZVZhbCl7DQogICAgICAg
IGNvbnN0IHggPSBlbChpZCk7DQogICAgICAgIGlmKCF4KSByZXR1cm47DQogICAgICAgIHguc2V0QXR0cmlidXRlKCJkYXRhLXNhbXBsZSIsIHNhbXBsZVZh
bCA/PyAiIik7DQogICAgICAgIHguY2xhc3NMaXN0LnRvZ2dsZSgiY3ZiLWdob3N0IiwgISFzdGF0ZS5naG9zdCk7DQoNCiAgICAgICAgY29uc3QgY2xlYXIg
PSAoKT0+ew0KICAgICAgICAgIGlmKCFzdGF0ZS5naG9zdCkgcmV0dXJuOw0KICAgICAgICAgIGlmKCh4LnZhbHVlfHwiIikgPT09IChzYW1wbGVWYWx8fCIi
KSl7DQogICAgICAgICAgICB4LnZhbHVlID0gIiI7DQogICAgICAgICAgICB4LmNsYXNzTGlzdC5yZW1vdmUoImN2Yi1naG9zdCIpOw0KICAgICAgICAgICAg
cmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfTsNCg0KICAgICAgICB4LmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNlZW50ZXIiLCBjbGVhcik7DQogICAgICAgIHguYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBjbGVhcik7DQogICAgICAgIHguYWRkRXZlbnRMaXN0ZW5l
cigiaW5wdXQiLCAoKT0+ew0KICAgICAgICAgIGlmKHN0YXRlLmdob3N0KSB4LmNsYXNzTGlzdC5yZW1vdmUoImN2Yi1naG9zdCIpOw0KICAgICAgICAgIHJl
bmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAgICAgICAgfSwge3Bhc3NpdmU6dHJ1ZX0pOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBzZXRT
Y2FsZVdyYXBTaXplKGJhc2VXLCBiYXNlSCl7DQogICAgICAgIGNvbnN0IHN3ID0gZWwoInNjYWxlLXdyYXAiKTsNCiAgICAgICAgaWYoIXN3KSByZXR1cm47
DQogICAgICAgIGNvbnN0IHMgPSBzdGF0ZS5iYXNlU2NhbGUgfHwgMTsNCiAgICAgICAgc3cuc3R5bGUud2lkdGggPSBNYXRoLm1heCgxLCBiYXNlVyAqIHMp
ICsgInB4IjsNCiAgICAgICAgc3cuc3R5bGUuaGVpZ2h0ID0gTWF0aC5tYXgoMSwgYmFzZUggKiBzKSArICJweCI7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0
aW9uIGFwcGx5VHJhbnNmb3Jtcygpew0KICAgICAgICBjb25zdCBzaGlmdFdyYXAgPSBlbCgic2hpZnQtd3JhcCIpOw0KICAgICAgICBjb25zdCBzY2FsZUlu
bmVyID0gZWwoInNjYWxlLWlubmVyIik7DQogICAgICAgIGlmKHNoaWZ0V3JhcCkgc2hpZnRXcmFwLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVZKCIg
KyAoc3RhdGUuc2hpZnRZfHwwKSArICJweCkiOw0KICAgICAgICBpZihzY2FsZUlubmVyKSBzY2FsZUlubmVyLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xh
dGVYKC01MCUpIHNjYWxlKCIgKyAoc3RhdGUuYmFzZVNjYWxlfHwxKSArICIpIjsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gZW5mb3JjZVByZXZpZXdC
b3VuZHMoKXsNCiAgICAgICAgY29uc3QgcGFuZSA9IGVsKCJwcmV2aWV3LXBhbmUiKTsNCiAgICAgICAgY29uc3QgcGFwZXJIb3N0ID0gZWwoInBhcGVyIik7
DQogICAgICAgIGlmKCFwYW5lIHx8ICFwYXBlckhvc3QpIHJldHVybjsNCiAgICAgICAgY29uc3QgY3YgPSBwYXBlckhvc3QucXVlcnlTZWxlY3RvcigiLmN2
Yi1wYXBlciIpOw0KICAgICAgICBpZighY3YpIHJldHVybjsNCg0KICAgICAgICBjb25zdCBwYW5lUmVjdCA9IHBhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7DQogICAgICAgIGNvbnN0IG1pblRvcCA9IHBhbmVSZWN0LnRvcCArIDg7DQoNCiAgICAgICAgY29uc3QgY3ZSZWN0ID0gY3YuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7DQogICAgICAgIGlmKGN2UmVjdC50b3AgPCBtaW5Ub3Apew0KICAgICAgICAgIHN0YXRlLnNoaWZ0WSArPSAobWluVG9wIC0gY3ZSZWN0LnRv
cCk7DQogICAgICAgICAgYXBwbHlUcmFuc2Zvcm1zKCk7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gc2V0U2hpZnRZKHByb3Bvc2Vk
KXsNCiAgICAgICAgaWYoaXNPbmVDb2woKSl7DQogICAgICAgICAgc3RhdGUuc2hpZnRZID0gMDsNCiAgICAgICAgICBhcHBseVRyYW5zZm9ybXMoKTsNCiAg
ICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICAgICAgc3RhdGUuc2hpZnRZID0gcHJvcG9zZWQ7DQogICAgICAgIGFwcGx5VHJhbnNmb3JtcygpOw0K
ICAgICAgICBlbmZvcmNlUHJldmlld0JvdW5kcygpOw0KICAgICAgfQ0KZnVuY3Rpb24gZml0UHJldmlldygpewogICAgICAgIGNvbnN0IHBhbmUgPSBlbCgi
cHJldmlldy1wYW5lIik7CiAgICAgICAgY29uc3QgcGFwZXJIb3N0ID0gZWwoInBhcGVyIik7CiAgICAgICAgY29uc3QgcHJldmlld0NvbCA9IGVsKCJjdmIt
cHJldmlldy1jb2wiKTsKICAgICAgICBjb25zdCBob3N0ID0gZWwoImN2Yi1ob3N0Iik7CiAgICAgICAgY29uc3Qgc2NhbGVXcmFwID0gZWwoInNjYWxlLXdy
YXAiKTsNCiAgICAgICAgaWYoIXBhbmUgfHwgIXBhcGVySG9zdCkgcmV0dXJuOw0KDQogICAgICAgIGNvbnN0IGN2ID0gcGFwZXJIb3N0LnF1ZXJ5U2VsZWN0
b3IoIi5jdmItcGFwZXIiKTsNCiAgICAgICAgaWYoIWN2KSByZXR1cm47DQoNCiAgICAgICAgY29uc3QgcHJldlNoaWZ0ID0gc3RhdGUuc2hpZnRZIHx8IDA7
DQoNCiAgICAgICAgc3RhdGUuYmFzZVNjYWxlID0gMTsNCiAgICAgICAgYXBwbHlUcmFuc2Zvcm1zKCk7DQoNCiAgICAgICAgY29uc3QgYmFzZVcgPSBjdi5v
ZmZzZXRXaWR0aCB8fCBNYXRoLnJvdW5kKGN2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSB8fCA3OTQ7CiAgICAgICAgY29uc3QgYmFzZUggPSBj
di5vZmZzZXRIZWlnaHQgfHwgTWF0aC5yb3VuZChjdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpIHx8IDExMjM7CgogICAgICAgIGNvbnN0IHZp
ZXdwb3J0ID0gZ2V0Vmlld3BvcnRTaXplKCk7CiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSBob3N0ID8gaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6
IG51bGw7CiAgICAgICAgY29uc3QgaG9zdFcgPSBob3N0UmVjdCA/IE1hdGgubWluKGhvc3QuY2xpZW50V2lkdGggfHwgdmlld3BvcnQud2lkdGgsIE1hdGgu
cm91bmQoaG9zdFJlY3Qud2lkdGgpIHx8IHZpZXdwb3J0LndpZHRoLCB2aWV3cG9ydC53aWR0aCkgOiB2aWV3cG9ydC53aWR0aDsKICAgICAgICBjb25zdCBj
b2xXID0gcHJldmlld0NvbCA/IE1hdGgubWluKHByZXZpZXdDb2wuY2xpZW50V2lkdGggfHwgaG9zdFcsIE1hdGgucm91bmQocHJldmlld0NvbC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS53aWR0aCkgfHwgaG9zdFcsIHZpZXdwb3J0LndpZHRoKSA6IGhvc3RXOwogICAgICAgIGNvbnN0IHBhbmVXID0gcGFuZSA/IE1h
dGgubWluKHBhbmUuY2xpZW50V2lkdGggfHwgY29sVywgTWF0aC5yb3VuZChwYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSB8fCBjb2xXLCB2
aWV3cG9ydC53aWR0aCkgOiBjb2xXOwogICAgICAgIGNvbnN0IHBhbmVIID0gcGFuZSA/IE1hdGgubWluKE1hdGgubWF4KDEsIHBhbmUuY2xpZW50SGVpZ2h0
IHx8IHZpZXdwb3J0LmhlaWdodCksIHZpZXdwb3J0LmhlaWdodCkgOiB2aWV3cG9ydC5oZWlnaHQ7CgogICAgICAgIGNvbnN0IHNhZmVXID0gTWF0aC5tYXgo
MjIwLCBNYXRoLm1pbih2aWV3cG9ydC53aWR0aCAtIDI0LCBob3N0VywgY29sVywgcGFuZVcpIC0gMTYpOwoKICAgICAgICBpZihpc09uZUNvbCgpKXsKICAg
ICAgICAgIGNvbnN0IGJhc2UgPSBjbGFtcChzYWZlVyAvIGJhc2VXLCAwLjE4LCAxKTsKCiAgICAgICAgICBzdGF0ZS5iYXNlU2NhbGUgPSBiYXNlOwogICAg
ICAgICAgc3RhdGUuc2hpZnRZID0gMDsNCiAgICAgICAgICBhcHBseVRyYW5zZm9ybXMoKTsNCg0KICAgICAgICAgIGlmKHNjYWxlV3JhcCl7CiAgICAgICAg
ICAgIHNjYWxlV3JhcC5zdHlsZS53aWR0aCA9IE1hdGgucm91bmQoYmFzZVcgKiBiYXNlKSArICJweCI7CiAgICAgICAgICAgIHNjYWxlV3JhcC5zdHlsZS5o
ZWlnaHQgPSBNYXRoLnJvdW5kKGJhc2VIICogYmFzZSkgKyAicHgiOwogICAgICAgICAgICBzY2FsZVdyYXAuc3R5bGUubWF4V2lkdGggPSAiMTAwJSI7CiAg
ICAgICAgICB9CiAgICAgICAgICBpZihwYW5lKXsKICAgICAgICAgICAgcGFuZS5zdHlsZS5taW5IZWlnaHQgPSAiMCI7CiAgICAgICAgICB9CiAgICAgICAg
ICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBjb25zdCBwYWRYID0gMjg7CiAgICAgICAgY29uc3QgcGFkWSA9IDI4OwogICAgICAgIGNvbnN0IHJlc2Vy
dmUgPSAzNDsKCiAgICAgICAgY29uc3QgYXZhaWxXID0gTWF0aC5tYXgoMjIwLCBNYXRoLm1pbih2aWV3cG9ydC53aWR0aCAqIDAuNSwgcGFuZVcgLSBwYWRY
LCBjb2xXIC0gMjQpKTsKICAgICAgICBjb25zdCBhdmFpbEggPSBNYXRoLm1heCgyNjAsIE1hdGgubWluKHZpZXdwb3J0LmhlaWdodCwgcGFuZUgpIC0gcGFk
WSAtIHJlc2VydmUpOwoNCiAgICAgICAgY29uc3Qgc1cgPSBhdmFpbFcgLyBiYXNlVzsNCiAgICAgICAgY29uc3Qgc0ggPSBhdmFpbEggLyBiYXNlSDsNCiAg
ICAgICAgY29uc3QgYmFzZSA9IE1hdGgubWluKHNXLCBzSCwgMSk7DQoNCiAgICAgICAgc3RhdGUuYmFzZVNjYWxlID0gY2xhbXAoYmFzZSwgMC4xOCwgMSk7
DQogICAgICAgIHN0YXRlLnNoaWZ0WSA9IHByZXZTaGlmdDsNCiAgICAgICAgYXBwbHlUcmFuc2Zvcm1zKCk7DQogICAgICAgIHNldFNjYWxlV3JhcFNpemUo
YmFzZVcsIGJhc2VIKTsNCiAgICAgICAgZW5mb3JjZVByZXZpZXdCb3VuZHMoKTsNCiAgICAgIH0NCiAgICAgIGZ1bmN0aW9uIHNlY3Rpb25IZWFkKGxhYmVs
LCBhY2NlbnQsIHN1YnRsZSl7DQogICAgICAgIHJldHVybiBgDQogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRl
cjtnYXA6MTBweDttYXJnaW46MTJweCAwIDhweDsiPg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXItcmFk
aXVzOjRweDtiYWNrZ3JvdW5kOiR7ZXNjQXR0cihhY2NlbnQpfTsiPjwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjEycHg7Zm9u
dC13ZWlnaHQ6OTAwO2xldHRlci1zcGFjaW5nOi4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjoke2VzY0F0dHIoc3VidGxlKX07Ij4ke2Vz
YyhsYWJlbCl9PC9kaXY+DQogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnJnYmEoMTUsMjMsNDIsLjEwKTsi
PjwvZGl2Pg0KICAgICAgICAgIDwvZGl2PmA7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGJ1bGxldHModGV4dCwgY29sb3IsIHB2S2V5KXsNCiAgICAg
ICAgY29uc3QgcyA9ICh0ZXh0fHwiIikudHJpbSgpOw0KICAgICAgICBjb25zdCBsaW5lcyA9IHMgPyBzLnNwbGl0KCJcbiIpLm1hcCh4PT54LnRyaW0oKSku
ZmlsdGVyKEJvb2xlYW4pIDogW107DQogICAgICAgIHJldHVybiBgPGRpdiAke3B2S2V5P2BkYXRhLXB2PSIke2VzY0F0dHIocHZLZXkpfSJgOiIifSBzdHls
ZT0ibWFyZ2luLXRvcDo1cHg7Ij4NCiAgICAgICAgICAke2xpbmVzLm1hcChsPT57DQogICAgICAgICAgICBjb25zdCBsaSA9IGVzYyhsLnJlcGxhY2UoL15c
dTIwMjJccz8vLCAiXHUyMDIyICIpKTsNCiAgICAgICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT0iZm9udC1zaXplOjExLjJweDtsaW5lLWhlaWdodDoxLjQ1
O2NvbG9yOiR7ZXNjQXR0cihjb2xvcil9O21hcmdpbjoycHggMDsiPiR7bGl9PC9kaXY+YDsNCiAgICAgICAgICB9KS5qb2luKCIiKX0NCiAgICAgICAgPC9k
aXY+YDsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gdGVtcGxhdGVQcmltYXJ5KCl7IHJldHVybiAoc3RhdGUudGhlbWUuc2lkZWJhciB8fCBUUExfQ09M
T1Jbc3RhdGUudGVtcGxhdGVdIHx8IHN0YXRlLnRoZW1lLnByaW1hcnkpOyB9DQoNCiAgICAgIGZ1bmN0aW9uIGxldmVsVG9OKGx2bCl7DQogICAgICAgIGNv
bnN0IG4gPSBOdW1iZXIoU3RyaW5nKGx2bHx8IjMiKS5yZXBsYWNlKC9bXlxkXS9nLCIiKSkgfHwgMzsNCiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDEsIE1h
dGgubWluKDUsIG4pKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gZG90U2NhbGUobiwgYWNjZW50KXsNCiAgICAgICAgcmV0dXJuIGA8ZGl2IHN0eWxl
PSJkaXNwbGF5OmZsZXg7Z2FwOjZweDttYXJnaW4tdG9wOjZweDsiPg0KICAgICAgICAgICR7WzEsMiwzLDQsNV0ubWFwKGs9PmA8c3BhbiBzdHlsZT0id2lk
dGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDoke2s8PW4/ZXNjQXR0cihhY2Nl
bnQpOidyZ2JhKDE1LDIzLDQyLC4xNSknfTsiPjwvc3Bhbj5gKS5qb2luKCIiKX0NCiAgICAgICAgPC9kaXY+YDsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rp
b24gc3RhclNjYWxlKG4sIGFjY2VudCl7DQogICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo0cHg7bWFyZ2luLXRvcDo1cHg7
Ij4NCiAgICAgICAgICAke1sxLDIsMyw0LDVdLm1hcChpPT5gDQogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAw
IDI0IDI0IiBmaWxsPSIke2k8PW4/ZXNjQXR0cihhY2NlbnQpOidyZ2JhKDE1LDIzLDQyLC4xNCknfSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj4NCiAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDE3LjI3TDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMiA5LjE5IDgu
NjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxeiIvPg0KICAgICAgICAgICAgPC9zdmc+DQogICAgICAgICAgYCkuam9pbigiIil9DQogICAgICAgIDwvZGl2
PmA7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGxpbmVTY2FsZShuLCBhY2NlbnQpew0KICAgICAgICByZXR1cm4gYDxkaXYgc3R5bGU9Im1hcmdpbi10
b3A6NXB4O2hlaWdodDo2cHg7Ym9yZGVyLXJhZGl1czo5OTk5cHg7YmFja2dyb3VuZDpyZ2JhKDE1LDIzLDQyLC4xMCk7b3ZlcmZsb3c6aGlkZGVuOyI+DQog
ICAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMCU7d2lkdGg6JHtuKjIwfSU7Ym9yZGVyLXJhZGl1czo5OTk5cHg7YmFja2dyb3VuZDoke2VzY0F0dHIo
YWNjZW50KX07Ij48L2Rpdj4NCiAgICAgICAgPC9kaXY+YDsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gc2tpbGxMZXZlbFVJKGx2bCwgYWNjZW50LCBt
b2RlKXsNCiAgICAgICAgY29uc3QgbiA9IE1hdGgubWF4KDEsIE1hdGgubWluKDUsIE51bWJlcihsdmx8fDMpKSk7DQogICAgICAgIGlmKG1vZGUgPT09ICJu
b25lIikgcmV0dXJuICIiOw0KICAgICAgICBpZihtb2RlID09PSAiYmFycyIpIHJldHVybiBsaW5lU2NhbGUobiwgYWNjZW50KTsNCiAgICAgICAgaWYobW9k
ZSA9PT0gInN0YXJzIikgcmV0dXJuIHN0YXJTY2FsZShuLCBhY2NlbnQpOw0KICAgICAgICByZXR1cm4gZG90U2NhbGUobiwgYWNjZW50KTsNCiAgICAgIH0N
Cg0KICAgICAgICAgICAgZnVuY3Rpb24gbGFuZ0xldmVsVUkobHZsLCBhY2NlbnQsIG1vZGUpew0KICAgICAgICBjb25zdCBuID0gbGV2ZWxUb04obHZsKTsN
CiAgICAgICAgaWYobW9kZSA9PT0gIm5vbmUiKSByZXR1cm4gIiI7DQogICAgICAgIGlmKG1vZGUgPT09ICJsaW5lcyIpIHJldHVybiBsaW5lU2NhbGUobiwg
YWNjZW50KTsNCiAgICAgICAgaWYobW9kZSA9PT0gInN0YXJzIikgcmV0dXJuIHN0YXJTY2FsZShuLCBhY2NlbnQpOw0KICAgICAgICByZXR1cm4gZG90U2Nh
bGUobiwgYWNjZW50KTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gc2tpbGxzQmxvY2sodGl0bGUsIGRhdGEsIGFjY2VudCwgaW5rLCBzdWIsIGJnQ2hp
cCl7DQogICAgICAgIGNvbnN0IHQgPSBUW3N0YXRlLmxhbmddIHx8IFQuZW47DQogICAgICAgIGNvbnN0IHNraWxscyA9IGRhdGEuc2tpbGxzIHx8IFtdOw0K
ICAgICAgICBjb25zdCBsZXZlbHMgPSBkYXRhLnNraWxsTGV2ZWxzIHx8IFtdOw0KICAgICAgICBpZighc2tpbGxzLmxlbmd0aCkgcmV0dXJuICIiOw0KICAg
ICAgICBjb25zdCBjaGlwQmcgPSBiZ0NoaXAgfHwgc3RhdGUudGhlbWUuY2FyZDsNCiAgICAgICAgY29uc3QgY2hpcEJvcmRlciA9IGhleFRvUmdiYShpbmss
IDAuMTQpOw0KICAgICAgICByZXR1cm4gYA0KICAgICAgICAgIDxkaXYgZGF0YS1wdj0ic2VjdGlvbi1za2lsbHMiPg0KICAgICAgICAgICAgJHtzZWN0aW9u
SGVhZCh0aXRsZSB8fCB0LnNraWxscywgYWNjZW50LCBzdWIpfQ0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFw
O2dhcDo4cHg7bWFyZ2luLXRvcDo2cHg7Ij4NCiAgICAgICAgICAgICAgJHtza2lsbHMubWFwKChzLGkpPT5gDQogICAgICAgICAgICAgICAgPGRpdiBkYXRh
LXB2PSJza2lsbC0ke2l9IiBzdHlsZT0ibWluLXdpZHRoOjEyMHB4O2JvcmRlci1yYWRpdXM6MTZweDtiYWNrZ3JvdW5kOiR7ZXNjQXR0cihjaGlwQmcpfTti
b3JkZXI6MXB4IHNvbGlkICR7ZXNjQXR0cihjaGlwQm9yZGVyKX07cGFkZGluZzo4cHggMTBweDticmVhay1pbnNpZGU6YXZvaWQtcGFnZTsiPg0KICAgICAg
ICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjExLjJweDtmb250LXdlaWdodDo3MDA7Y29sb3I6JHtlc2NBdHRyKGluayl9OyI+JHtlc2Mocyl9
PC9kaXY+DQogICAgICAgICAgICAgICAgICAke3NraWxsTGV2ZWxVSShsZXZlbHNbaV0sIGFjY2VudCwgc3RhdGUuc2tpbGxEaXNwbGF5KX0NCiAgICAgICAg
ICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgYCkuam9pbigiIil9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj5gOw0KICAgICAg
fQ0KDQogICAgICBmdW5jdGlvbiBsYW5nc0Jsb2NrKGRhdGEsIGFjY2VudCwgaW5rLCBzdWIpew0KICAgICAgICBjb25zdCB0ID0gVFtzdGF0ZS5sYW5nXSB8
fCBULmVuOw0KICAgICAgICBjb25zdCBhcnIgPSBkYXRhLmxhbmd1YWdlcyB8fCBbXTsNCiAgICAgICAgaWYoIWFyci5sZW5ndGgpIHJldHVybiAiIjsNCiAg
ICAgICAgcmV0dXJuIGANCiAgICAgICAgICA8ZGl2IGRhdGEtcHY9InNlY3Rpb24tbGFuZ3VhZ2VzIj4NCiAgICAgICAgICAgICR7c2VjdGlvbkhlYWQodC5s
YW5ndWFnZXMsIGFjY2VudCwgc3ViKX0NCiAgICAgICAgICAgICR7YXJyLm1hcCgobCwgaWR4KT0+YA0KICAgICAgICAgICAgICA8ZGl2IGRhdGEtcHY9Imxh
bmctJHtpZHh9IiBzdHlsZT0ibWFyZ2luOjdweCAwO2JyZWFrLWluc2lkZTphdm9pZC1wYWdlOyI+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9u
dC1zaXplOjExcHg7Y29sb3I6JHtlc2NBdHRyKGluayl9OyI+JHtlc2MobC5uYW1lfHwiIil9PC9kaXY+DQogICAgICAgICAgICAgICAgJHtsYW5nTGV2ZWxV
SShsLmxldmVsLCBhY2NlbnQsIHN0YXRlLmxhbmdEaXNwbGF5KX0NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICBgKS5qb2luKCIiKX0NCiAg
ICAgICAgICA8L2Rpdj5gOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBjb250YWN0TGlzdCh0Q29udGFjdCwgZGF0YSwgYWNjZW50LCBpbmssIHN1Yil7
DQogICAgICAgIGNvbnN0IHQgPSBUW3N0YXRlLmxhbmddIHx8IFQuZW47DQogICAgICAgIGNvbnN0IGl0ZW1zID0gWw0KICAgICAgICAgIFt0LmVtYWlsLCBk
YXRhLmVtYWlsLCAiZW1haWwiXSwNCiAgICAgICAgICBbdC5waG9uZSwgZGF0YS5waG9uZSwgInBob25lIl0sDQogICAgICAgICAgW3QuYWRkcmVzcywgZGF0
YS5hZGRyZXNzLCAiYWRkcmVzcyJdLA0KICAgICAgICAgIFt0LndlYnNpdGUsIGRhdGEud2Vic2l0ZSwgIndlYnNpdGUiXSwNCiAgICAgICAgICBbdC5uYXRp
b25hbGl0eSwgZGF0YS5uYXRpb25hbGl0eSwgIm5hdGlvbmFsaXR5Il0NCiAgICAgICAgXTsNCiAgICAgICAgY29uc3QgaGFzQW55ID0gaXRlbXMuc29tZSgo
Wyx2XSk9PiFpc0JsYW5rKHYpKTsNCiAgICAgICAgcmV0dXJuIGANCiAgICAgICAgICAke2hhc0FueSA/IHNlY3Rpb25IZWFkKHRDb250YWN0LCBhY2NlbnQs
IHN1YikgOiAiIn0NCiAgICAgICAgICAke2l0ZW1zLm1hcCgoW2ssdixwdl0pPT57DQogICAgICAgICAgICBpZighaXNCbGFuayh2KSl7DQogICAgICAgICAg
ICAgIHJldHVybiBgDQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luOjZweCAwO2JyZWFrLWluc2lkZTphdm9pZC1wYWdlOyI+DQogICAgICAg
ICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzouMDZlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6
JHtlc2NBdHRyKHN1Yil9OyI+JHtlc2Moayl9PC9kaXY+DQogICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtcHY9IiR7ZXNjQXR0cihwdil9IiBzdHlsZT0i
Zm9udC1zaXplOjExLjJweDtjb2xvcjoke2VzY0F0dHIoaW5rKX07d29yZC1icmVhazpicmVhay13b3JkOyI+JHtlc2Modil9PC9kaXY+DQogICAgICAgICAg
ICAgICAgPC9kaXY+YDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBgPGRpdiBkYXRhLXB2PSIke2VzY0F0dHIocHYpfSIgc3R5bGU9Imhl
aWdodDoxcHg7b3BhY2l0eTowO21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj5gOw0KICAgICAgICAgIH0pLmpvaW4oIiIpfQ0K
ICAgICAgICBgOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiByZW5kZXJUZW1wbGF0ZShkYXRhKXsNCiAgICAgICAgY29uc3QgYWNjID0gc3RhdGUudGhl
bWUuYWNjZW50Ow0KICAgICAgICBjb25zdCBiZyA9IHN0YXRlLnRoZW1lLmJhY2tncm91bmQ7DQogICAgICAgIGNvbnN0IGluayA9IHN0YXRlLnRoZW1lLnRl
eHQ7DQogICAgICAgIGNvbnN0IHN1YiA9IHN0YXRlLnRoZW1lLnN1YnRpdGxlOw0KICAgICAgICBjb25zdCBwcmkgPSB0ZW1wbGF0ZVByaW1hcnkoKTsNCiAg
ICAgICAgY29uc3QgY2FyZCA9IHN0YXRlLnRoZW1lLmNhcmQ7DQogICAgICAgIGNvbnN0IHNlYyA9IHN0YXRlLnRoZW1lLnNlY29uZGFyeTsNCiAgICAgICAg
Y29uc3QgdCA9IFRbc3RhdGUubGFuZ10gfHwgVC5lbjsNCg0KICAgICAgICBjb25zdCBmZiA9IGAke2VzY0F0dHIoc3RhdGUuZm9udCB8fCAiSW50ZXIiKX0s
IHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWZgOw0KDQogICAgICAgIGNvbnN0IHN1bW1hcnlC
bG9jayA9IGlzQmxhbmsoZGF0YS5zdW1tYXJ5KQ0KICAgICAgICAgID8gYDxkaXYgZGF0YS1wdj0ic3VtbWFyeSIgc3R5bGU9ImhlaWdodDoxcHg7b3BhY2l0
eTowO21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj5gDQogICAgICAgICAgOiBgJHtzZWN0aW9uSGVhZCh0LnN1bW1hcnksIGFj
Yywgc3ViKX0NCiAgICAgICAgICAgICA8ZGl2IGRhdGEtcHY9InN1bW1hcnkiIHN0eWxlPSJmb250LXNpemU6MTEuM3B4O2xpbmUtaGVpZ2h0OjEuNTtjb2xv
cjoke2VzY0F0dHIoc3ViKX07d2hpdGUtc3BhY2U6cHJlLWxpbmU7Ij4ke2VzYyhkYXRhLnN1bW1hcnkpfTwvZGl2PmA7DQoNCiAgICAgICAgY29uc3QgZXhw
QmxvY2sgPSAodGV4dENvbG9yPWluaywgc3ViQ29sb3I9c3ViKT0+IChkYXRhLmV4cGVyaWVuY2V8fFtdKS5sZW5ndGggPyBgDQogICAgICAgICAgPGRpdiBk
YXRhLXB2PSJzZWN0aW9uLWV4cGVyaWVuY2UiPg0KICAgICAgICAgICAgJHtzZWN0aW9uSGVhZCh0LmV4cGVyaWVuY2UsIGFjYywgc3ViQ29sb3IpfQ0KICAg
ICAgICAgICAgJHsoZGF0YS5leHBlcmllbmNlfHxbXSkubWFwKCh4LCBpZHgpPT5gDQogICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206
OHB4O2JyZWFrLWluc2lkZTphdm9pZC1wYWdlOyI+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpz
cGFjZS1iZXR3ZWVuO2dhcDoxMHB4OyI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtcHY9ImV4cC1wb3MtJHtpZHh9IiBzdHlsZT0iZm9udC13ZWln
aHQ6ODAwO2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6JHtlc2NBdHRyKHRleHRDb2xvcil9OyI+JHtlc2MoeC5wb3NpdGlvbnx8IiIpfTwvZGl2Pg0KICAgICAg
ICAgICAgICAgICAgPGRpdiBkYXRhLXB2PSJleHAtcGVyLSR7aWR4fSIgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9yOiR7ZXNjQXR0cihzdWJDb2xvcil9
O3doaXRlLXNwYWNlOm5vd3JhcDsiPiR7ZXNjKHgucGVyaW9kfHwiIil9PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAg
PGRpdiBkYXRhLXB2PSJleHAtY29tcC0ke2lkeH0iIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjoke2VzY0F0dHIoc3ViQ29sb3IpfTttYXJnaW4tdG9w
OjFweDsiPiR7ZXNjKHguY29tcGFueXx8IiIpfTwvZGl2Pg0KICAgICAgICAgICAgICAgICR7YnVsbGV0cyh4LmRlc2NyaXB0aW9ufHwiIiwgdGV4dENvbG9y
LCAiZXhwLWRlc2MtIitpZHgpfQ0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIGApLmpvaW4oIiIpfQ0KICAgICAgICAgIDwvZGl2PmAgOiAi
IjsNCg0KICAgICAgICBjb25zdCBlZHVCbG9jayA9ICh0ZXh0Q29sb3I9aW5rLCBzdWJDb2xvcj1zdWIpPT4gKGRhdGEuZWR1Y2F0aW9ufHxbXSkubGVuZ3Ro
ID8gYA0KICAgICAgICAgICR7c2VjdGlvbkhlYWQodC5lZHVjYXRpb24sIGFjYywgc3ViQ29sb3IpfQ0KICAgICAgICAgICR7KGRhdGEuZWR1Y2F0aW9ufHxb
XSkubWFwKCh4LCBpZHgpPT5gDQogICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjhweDticmVhay1pbnNpZGU6YXZvaWQtcGFnZTsiPg0K
ICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEwcHg7Ij4NCiAgICAgICAg
ICAgICAgICA8ZGl2IGRhdGEtcHY9ImVkdS1kZWctJHtpZHh9IiBzdHlsZT0iZm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiR7ZXNjQXR0
cih0ZXh0Q29sb3IpfTsiPiR7ZXNjKHguZGVncmVlfHwiIil9PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBkYXRhLXB2PSJlZHUteXItJHtpZHh9IiBz
dHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6JHtlc2NBdHRyKHN1YkNvbG9yKX07d2hpdGUtc3BhY2U6bm93cmFwOyI+JHtlc2MoeC55ZWFyfHwiIil9PC9k
aXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICA8ZGl2IGRhdGEtcHY9ImVkdS1zY2gtJHtpZHh9IiBzdHlsZT0iZm9udC1zaXplOjEx
cHg7Y29sb3I6JHtlc2NBdHRyKHN1YkNvbG9yKX07bWFyZ2luLXRvcDoxcHg7Ij4ke2VzYyh4LnNjaG9vbHx8IiIpfTwvZGl2Pg0KICAgICAgICAgICAgPC9k
aXY+DQogICAgICAgICAgYCkuam9pbigiIil9YCA6ICIiOw0KDQogICAgICAgIGNvbnN0IGNlcnRCbG9jayA9ICh0ZXh0Q29sb3I9aW5rLCBzdWJDb2xvcj1z
dWIpPT4gKGRhdGEuY2VydGlmaWNhdGlvbnN8fFtdKS5sZW5ndGggPyBgDQogICAgICAgICAgJHtzZWN0aW9uSGVhZCh0LmNlcnRpZmljYXRpb25zLCBhY2Ms
IHN1YkNvbG9yKX0NCiAgICAgICAgICAkeyhkYXRhLmNlcnRpZmljYXRpb25zfHxbXSkubWFwKCh4LCBpZHgpPT5gDQogICAgICAgICAgICA8ZGl2IGRhdGEt
cHY9ImNlcnQtJHtpZHh9IiBzdHlsZT0iZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4O21hcmdpbjoycHggMDti
cmVhay1pbnNpZGU6YXZvaWQtcGFnZTsiPg0KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEuNXB4O2NvbG9yOiR7ZXNjQXR0cih0ZXh0
Q29sb3IpfTsiPlx1MjAyMiAke2VzYyh4Lm5hbWV8fCIiKX08L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6
JHtlc2NBdHRyKHN1YkNvbG9yKX07d2hpdGUtc3BhY2U6bm93cmFwOyI+JHtlc2MoeC55ZWFyfHwiIil9PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAg
ICAgICAgICBgKS5qb2luKCIiKX1gIDogIiI7DQoNCiAgICAgICAgY29uc3QgaXNTaWRlYmFyTGlrZSA9IChpZCk9PiBpZD09PSJzbGF0ZV9zaWRlYmFyIiB8
fCBpZD09PSJzbGF0ZV9ibHVlIiB8fCBpZD09PSJzbGF0ZV9lbWVyYWxkIiB8fCBpZD09PSJzdW5zZXRfc2lkZWJhciIgfHwgaWQ9PT0ic3Vuc2V0X3JlZCI7
DQogICAgICAgIGNvbnN0IGlzU3R1ZHkgPSAoaWQpPT4gaWQ9PT0ic3R1ZHlfdXBncmFkZSI7DQoNCiAgICAgICAgaWYoaXNTaWRlYmFyTGlrZShzdGF0ZS50
ZW1wbGF0ZSkpew0KICAgICAgICAgIGNvbnN0IGxlZnRXID0gIjY0bW0iOw0KICAgICAgICAgIGNvbnN0IGxlZnRCZyA9IHByaTsNCiAgICAgICAgICBjb25z
dCBsZWZ0SW5rID0gc3RhdGUudGhlbWUuc2lkZWJhclRleHQgfHwgIiNmZmZmZmYiOw0KICAgICAgICAgIGNvbnN0IGxlZnRTdWIgPSBoZXhUb1JnYmEobGVm
dEluaywgMC43Mik7DQogICAgICAgICAgY29uc3QgY2hpcEJnID0gaGV4VG9SZ2JhKGNhcmQsIDAuMjIpOw0KDQogICAgICAgICAgcmV0dXJuIGANCiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImN2Yi1wYXBlciIgZGF0YS10ZW1wbGF0ZT0iJHtlc2NBdHRyKHN0YXRlLnRlbXBsYXRlKX0iIHN0eWxlPSJiYWNrZ3JvdW5k
OiR7ZXNjQXR0cihiZyl9OyBmb250LWZhbWlseToke2ZmfTsiPg0KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7bWluLWhlaWdodDoy
OTdtbTsiPg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiR7bGVmdFd9O2JhY2tncm91bmQ6JHtlc2NBdHRyKGxlZnRCZyl9O3BhZGRpbmc6
MTJtbTsiPg0KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoybW07
Ij4ke3Bob3RvSFRNTCg4NiwgaGV4VG9SZ2JhKGxlZnRJbmssIDAuMTIpLCBsZWZ0SW5rKX08L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9
InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MTBweDsiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9u
dC1zaXplOjE2cHg7Y29sb3I6JHtsZWZ0SW5rfTsiPjxzcGFuIGRhdGEtcHY9Im5hbWUiPiR7ZXNjKGRhdGEubmFtZXx8dC55b3VyTmFtZSl9PC9zcGFuPjwv
ZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjExLjVweDtjb2xvcjoke2xlZnRTdWJ9O21h
cmdpbi10b3A6NHB4OyI+PHNwYW4gZGF0YS1wdj0idGl0bGUiPiR7ZXNjKGRhdGEudGl0bGV8fCIiKX08L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAg
ICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4OyI+JHtjb250YWN0TGlzdCh0LmNvbnRhY3QsIGRhdGEs
IGFjYywgbGVmdEluaywgbGVmdFN1Yil9PC9kaXY+DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7Ij4ke3NraWxsc0Js
b2NrKHQuc2tpbGxzLCBkYXRhLCBhY2MsIGxlZnRJbmssIGxlZnRTdWIsIGNoaXBCZyl9PC9kaXY+DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJt
YXJnaW4tdG9wOjEwcHg7Ij4ke2xhbmdzQmxvY2soZGF0YSwgYWNjLCBsZWZ0SW5rLCBsZWZ0U3ViKX08L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4N
Cg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsZXg6MTtwYWRkaW5nOjE0bW07Ij4NCiAgICAgICAgICAgICAgICAgICR7c3VtbWFyeUJsb2NrfQ0K
ICAgICAgICAgICAgICAgICAgJHtleHBCbG9jayhpbmssIHN1Yil9DQogICAgICAgICAgICAgICAgICAke2VkdUJsb2NrKGluaywgc3ViKX0NCiAgICAgICAg
ICAgICAgICAgICR7Y2VydEJsb2NrKGluaywgc3ViKX0NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAg
ICA8L2Rpdj5gOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoaXNTdHVkeShzdGF0ZS50ZW1wbGF0ZSkpew0KICAgICAgICAgIGNvbnN0IGJvcmRlciA9IGhl
eFRvUmdiYShpbmssIDAuMTIpOw0KICAgICAgICAgIGNvbnN0IGhlYWRlckJvcmRlciA9IGhleFRvUmdiYShpbmssIDAuMTQpOw0KICAgICAgICAgIGNvbnN0
IGhlYWRlckJnID0gY2FyZDsNCg0KICAgICAgICAgIGNvbnN0IGxlZnRDb2xXID0gIjYybW0iOw0KICAgICAgICAgIGNvbnN0IGxlZnRDYXJkQmcgPSBzZWM7
DQogICAgICAgICAgY29uc3QgbGVmdENhcmRCb3JkZXIgPSBoZXhUb1JnYmEoaW5rLCAwLjEwKTsNCiAgICAgICAgICBjb25zdCB3cmFwQ2FyZCA9IChpbm5l
cik9PiBpbm5lciA/IGA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiR7ZXNjQXR0cihsZWZ0Q2FyZEJnKX07Ym9yZGVyOjFweCBzb2xpZCAke2VzY0F0dHIobGVm
dENhcmRCb3JkZXIpfTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxMHB4IDEwcHg7YnJlYWstaW5zaWRlOmF2b2lkLXBhZ2U7Ij4ke2lubmVyfTwvZGl2
PmAgOiAiIjsNCg0KICAgICAgICAgIHJldHVybiBgDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjdmItcGFwZXIiIGRhdGEtdGVtcGxhdGU9IiR7ZXNjQXR0
cihzdGF0ZS50ZW1wbGF0ZSl9IiBzdHlsZT0iYmFja2dyb3VuZDoke2VzY0F0dHIoYmcpfTsgcGFkZGluZzoxMm1tOyBmb250LWZhbWlseToke2ZmfTsgbWlu
LWhlaWdodDoyOTdtbTsiPg0KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiR7ZXNjQXR0cihoZWFkZXJCZyl9O2JvcmRlcjoxcHggc29s
aWQgJHtlc2NBdHRyKGhlYWRlckJvcmRlcil9O2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjEwbW07YnJlYWstaW5zaWRlOmF2b2lkLXBhZ2U7Ij4NCiAg
ICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dh
cDoxMnB4OyI+DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtaW4td2lkdGg6MDsiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJm
b250LXNpemU6MjhweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjoke2VzY0F0dHIoaW5rKX07Ij4NCiAgICAgICAgICAgICAgICAg
ICAgICA8c3BhbiBkYXRhLXB2PSJuYW1lIj4ke2VzYyhkYXRhLm5hbWV8fHQueW91ck5hbWUpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+
DQogICAgICAgICAgICAgICAgICAgICR7aXNCbGFuayhkYXRhLnRpdGxlKSA/ICIiIDogYA0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1h
cmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjoke2VzY0F0dHIoc3ViKX07Ij4NCiAgICAgICAgICAgICAgICAgICAg
ICAgIDxzcGFuIGRhdGEtcHY9InRpdGxlIj4ke2VzYyhkYXRhLnRpdGxlKX08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YH0NCiAgICAg
ICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4O2hlaWdodDozcHg7Ym9yZGVyLXJhZGl1czo5OTk5cHg7YmFja2dyb3VuZDoke2Vz
Y0F0dHIoYWNjKX07d2lkdGg6MTIwcHg7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0i
ZmxleDowIDAgYXV0bzsiPiR7cGhvdG9IVE1MKDcyLCBoZXhUb1JnYmEoaW5rLCAwLjA2KSwgaW5rKX08L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4N
CiAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjEwcHg7Ij48L2Rpdj4NCg0KICAgICAgICAgICAgICA8
ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjEybW07Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDoke2xlZnRDb2xXfTsiPg0KICAg
ICAgICAgICAgICAgICAgJHt3cmFwQ2FyZChjb250YWN0TGlzdCh0LmNvbnRhY3QsIGRhdGEsIGFjYywgaW5rLCBzdWIpKX0NCiAgICAgICAgICAgICAgICAg
IDxkaXYgc3R5bGU9ImhlaWdodDoxMHB4OyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAke3dyYXBDYXJkKHNraWxsc0Jsb2NrKHQuc2tpbGxzLCBkYXRh
LCBhY2MsIGluaywgc3ViLCBjYXJkKSl9DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MTBweDsiPjwvZGl2Pg0KICAgICAgICAgICAg
ICAgICAgJHt3cmFwQ2FyZChsYW5nc0Jsb2NrKGRhdGEsIGFjYywgaW5rLCBzdWIpKX0NCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDox
MHB4OyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAke3dyYXBDYXJkKGNlcnRCbG9jayhpbmssIHN1YikpfQ0KICAgICAgICAgICAgICAgIDwvZGl2Pg0K
DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDowOyI+DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3Jv
dW5kOiR7ZXNjQXR0cihjYXJkKX07Ym9yZGVyOjFweCBzb2xpZCAke2VzY0F0dHIoYm9yZGVyKX07Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTBtbTsi
Pg0KICAgICAgICAgICAgICAgICAgICAke3N1bW1hcnlCbG9ja30NCiAgICAgICAgICAgICAgICAgICAgJHtleHBCbG9jayhpbmssIHN1Yil9DQogICAgICAg
ICAgICAgICAgICAgICR7ZWR1QmxvY2soaW5rLCBzdWIpfQ0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAg
ICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+YDsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IGRlZmF1bHRCb3JkZXIgPSBoZXhUb1Jn
YmEoaW5rLCAwLjEyKTsNCiAgICAgICAgY29uc3QgaGVhZGVyQm9yZGVyID0gaGV4VG9SZ2JhKGluaywgMC4xNCk7DQoNCiAgICAgICAgcmV0dXJuIGANCiAg
ICAgICAgICA8ZGl2IGNsYXNzPSJjdmItcGFwZXIiIGRhdGEtdGVtcGxhdGU9IiR7ZXNjQXR0cihzdGF0ZS50ZW1wbGF0ZSl9IiBzdHlsZT0iYmFja2dyb3Vu
ZDoke2VzY0F0dHIoYmcpfTsgcGFkZGluZzoxNG1tOyBmb250LWZhbWlseToke2ZmfTsgbWluLWhlaWdodDoyOTdtbTsiPg0KICAgICAgICAgICAgPGRpdiBz
dHlsZT0iYmFja2dyb3VuZDoke2VzY0F0dHIoY2FyZCl9O2JvcmRlcjoxcHggc29saWQgJHtlc2NBdHRyKGhlYWRlckJvcmRlcil9O2JvcmRlci1yYWRpdXM6
MTZweDtwYWRkaW5nOjltbTticmVhay1pbnNpZGU6YXZvaWQtcGFnZTsiPg0KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24t
aXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4OyI+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWluLXdp
ZHRoOjA7Ij4NCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTozMHB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDoxLjA1O2Nv
bG9yOiR7ZXNjQXR0cihpbmspfTsiPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXB2PSJuYW1lIj4ke2VzYyhkYXRhLm5hbWUgfHwgdC55b3Vy
TmFtZSl9PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAke2lzQmxhbmsoZGF0YS50aXRsZSkgPyAiIiA6IGAN
CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDo2cHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOiR7ZXNj
QXR0cihzdWIpfTsiPg0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtcHY9InRpdGxlIj4ke2VzYyhkYXRhLnRpdGxlKX08L3NwYW4+DQogICAg
ICAgICAgICAgICAgICAgIDwvZGl2PmB9DQogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7aGVpZ2h0OjJweDtib3JkZXIt
cmFkaXVzOjk5OTlweDtiYWNrZ3JvdW5kOiR7ZXNjQXR0cihhY2MpfTt3aWR0aDoxMTBweDsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAg
ICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsZXg6MCAwIGF1dG87Ij4ke3Bob3RvSFRNTCg2OCwgaGV4VG9SZ2JhKGluaywgMC4wNiksIGluayl9PC9kaXY+
DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxMHB4OyI+PC9kaXY+
DQoNCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6JHtlc2NBdHRyKGNhcmQpfTtib3JkZXI6MXB4IHNvbGlkICR7ZXNjQXR0cihkZWZhdWx0
Qm9yZGVyKX07Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTBtbTsiPg0KICAgICAgICAgICAgICAke3N1bW1hcnlCbG9ja30NCiAgICAgICAgICAgICAg
JHtleHBCbG9jayhpbmssIHN1Yil9DQogICAgICAgICAgICAgICR7ZWR1QmxvY2soaW5rLCBzdWIpfQ0KICAgICAgICAgICAgICAke3NraWxsc0Jsb2NrKHQu
c2tpbGxzLCBkYXRhLCBhY2MsIGluaywgc3ViLCBjYXJkKX0NCiAgICAgICAgICAgICAgJHtsYW5nc0Jsb2NrKGRhdGEsIGFjYywgaW5rLCBzdWIpfQ0KICAg
ICAgICAgICAgICAke2NlcnRCbG9jayhpbmssIHN1Yil9DQogICAgICAgICAgICAgICR7Y29udGFjdExpc3QodC5jb250YWN0LCBkYXRhLCBhY2MsIGluaywg
c3ViKX0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2PmA7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIHNhZmVWYWwoaWQpewogICAg
ICAgIGNvbnN0IHggPSBlbChpZCk7CiAgICAgICAgcmV0dXJuIHggPyAoeC52YWx1ZSB8fCAiIikgOiAiIjsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gc3lu
Y0Zvcm1Ub1N0YXRlKCl7CiAgICAgICAgc3RhdGUuZGF0YS5uYW1lID0gc2FmZVZhbCgiZnVsbE5hbWUiKSB8fCBzdGF0ZS5kYXRhLm5hbWUgfHwgIiI7CiAg
ICAgICAgc3RhdGUuZGF0YS50aXRsZSA9IHNhZmVWYWwoImpvYlRpdGxlIikgfHwgc3RhdGUuZGF0YS50aXRsZSB8fCAiIjsKICAgICAgICBzdGF0ZS5kYXRh
LmVtYWlsID0gc2FmZVZhbCgiZW1haWwiKSB8fCBzdGF0ZS5kYXRhLmVtYWlsIHx8ICIiOwogICAgICAgIHN0YXRlLmRhdGEucGhvbmUgPSBzYWZlVmFsKCJw
aG9uZSIpIHx8IHN0YXRlLmRhdGEucGhvbmUgfHwgIiI7CiAgICAgICAgc3RhdGUuZGF0YS5hZGRyZXNzID0gc2FmZVZhbCgiYWRkcmVzcyIpIHx8IHN0YXRl
LmRhdGEuYWRkcmVzcyB8fCAiIjsKICAgICAgICBzdGF0ZS5kYXRhLndlYnNpdGUgPSBzYWZlVmFsKCJ3ZWJzaXRlIikgfHwgc3RhdGUuZGF0YS53ZWJzaXRl
IHx8ICIiOwogICAgICAgIHN0YXRlLmRhdGEubmF0aW9uYWxpdHkgPSBzYWZlVmFsKCJuYXRpb25hbGl0eSIpIHx8IHN0YXRlLmRhdGEubmF0aW9uYWxpdHkg
fHwgIiI7CiAgICAgICAgc3RhdGUuZGF0YS5zdW1tYXJ5ID0gc2FmZVZhbCgic3VtbWFyeSIpIHx8IHN0YXRlLmRhdGEuc3VtbWFyeSB8fCAiIjsKICAgICAg
fQoKICAgICAgZnVuY3Rpb24gZ2V0RGF0YSgpewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBuYW1lOiBzYWZlVmFsKCJmdWxsTmFtZSIpLAogICAgICAg
ICAgdGl0bGU6IHNhZmVWYWwoImpvYlRpdGxlIiksDQogICAgICAgICAgZW1haWw6IHNhZmVWYWwoImVtYWlsIiksDQogICAgICAgICAgcGhvbmU6IHNhZmVW
YWwoInBob25lIiksDQogICAgICAgICAgYWRkcmVzczogc2FmZVZhbCgiYWRkcmVzcyIpLA0KICAgICAgICAgIHdlYnNpdGU6IHNhZmVWYWwoIndlYnNpdGUi
KSwNCiAgICAgICAgICBuYXRpb25hbGl0eTogc2FmZVZhbCgibmF0aW9uYWxpdHkiKSwNCiAgICAgICAgICBzdW1tYXJ5OiBzYWZlVmFsKCJzdW1tYXJ5Iiks
DQogICAgICAgICAgcGhvdG86IHN0YXRlLmRhdGEucGhvdG8gfHwgIiIsDQogICAgICAgICAgZXhwZXJpZW5jZTogc3RhdGUuZGF0YS5leHBlcmllbmNlIHx8
IFtdLA0KICAgICAgICAgIGVkdWNhdGlvbjogc3RhdGUuZGF0YS5lZHVjYXRpb24gfHwgW10sDQogICAgICAgICAgc2tpbGxzOiBzdGF0ZS5kYXRhLnNraWxs
cyB8fCBbXSwNCiAgICAgICAgICBza2lsbExldmVsczogc3RhdGUuZGF0YS5za2lsbExldmVscyB8fCBbXSwNCiAgICAgICAgICBsYW5ndWFnZXM6IHN0YXRl
LmRhdGEubGFuZ3VhZ2VzIHx8IFtdLA0KICAgICAgICAgIGNlcnRpZmljYXRpb25zOiBzdGF0ZS5kYXRhLmNlcnRpZmljYXRpb25zIHx8IFtdDQogICAgICAg
IH07DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGNhcHR1cmVQcmV2aWV3VG9wT2Zmc2V0KCl7DQogICAgICAgIGNvbnN0IHBhbmUgPSBlbCgicHJldmll
dy1wYW5lIik7DQogICAgICAgIGNvbnN0IHBhcGVySG9zdCA9IGVsKCJwYXBlciIpOw0KICAgICAgICBpZighcGFuZSB8fCAhcGFwZXJIb3N0KSByZXR1cm4g
bnVsbDsNCiAgICAgICAgY29uc3QgY3YgPSBwYXBlckhvc3QucXVlcnlTZWxlY3RvcigiLmN2Yi1wYXBlciIpOw0KICAgICAgICBpZighY3YpIHJldHVybiBu
dWxsOw0KICAgICAgICBjb25zdCBwYW5lUmVjdCA9IHBhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgIGNvbnN0IGN2UmVjdCA9IGN2Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOw0KICAgICAgICByZXR1cm4geyBwYW5lVG9wOiBwYW5lUmVjdC50b3AsIGN2VG9wOiBjdlJlY3QudG9wIH07DQogICAg
ICB9DQoNCiAgICAgIGZ1bmN0aW9uIHJlc3RvcmVQcmV2aWV3VG9wT2Zmc2V0KGJlZm9yZSl7DQogICAgICAgIGlmKCFiZWZvcmUpIHJldHVybjsNCiAgICAg
ICAgY29uc3QgcGFwZXJIb3N0ID0gZWwoInBhcGVyIik7DQogICAgICAgIGNvbnN0IHBhbmUgPSBlbCgicHJldmlldy1wYW5lIik7DQogICAgICAgIGlmKCFw
YXBlckhvc3QgfHwgIXBhbmUpIHJldHVybjsNCiAgICAgICAgY29uc3QgY3YgPSBwYXBlckhvc3QucXVlcnlTZWxlY3RvcigiLmN2Yi1wYXBlciIpOw0KICAg
ICAgICBpZighY3YpIHJldHVybjsNCiAgICAgICAgY29uc3QgYWZ0ZXJUb3AgPSBjdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7DQogICAgICAgIGNv
bnN0IGRlbHRhID0gKGJlZm9yZS5jdlRvcCAtIGFmdGVyVG9wKTsNCiAgICAgICAgc3RhdGUuc2hpZnRZID0gKHN0YXRlLnNoaWZ0WSB8fCAwKSArIGRlbHRh
Ow0KICAgICAgICBhcHBseVRyYW5zZm9ybXMoKTsNCiAgICAgICAgZW5mb3JjZVByZXZpZXdCb3VuZHMoKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24g
cmVuZGVyUHJldmlldyhvcHRzKXsKICAgICAgICBjb25zdCBwYXBlckhvc3QgPSBlbCgicGFwZXIiKTsKICAgICAgICBpZighcGFwZXJIb3N0KSByZXR1cm47
CgogICAgICAgIGNvbnN0IHByZXNlcnZlID0gISEob3B0cyAmJiBvcHRzLnByZXNlcnZlKTsKICAgICAgICBjb25zdCBiZWZvcmUgPSBwcmVzZXJ2ZSA/IGNh
cHR1cmVQcmV2aWV3VG9wT2Zmc2V0KCkgOiBudWxsOwoKICAgICAgICBzeW5jRm9ybVRvU3RhdGUoKTsKCiAgICAgICAgcGFwZXJIb3N0LmlubmVySFRNTCA9
IHJlbmRlclRlbXBsYXRlKGdldERhdGEoKSk7CiAgICAgICAgcmVuZGVyUGhvdG9QcmV2aWV3KCk7CiAgICAgICAgZml0UHJldmlldygpOwoNCiAgICAgICAg
aWYocHJlc2VydmUpIHJlc3RvcmVQcmV2aWV3VG9wT2Zmc2V0KGJlZm9yZSk7DQoNCiAgICAgICAgaWYoc3RhdGUubGFzdFB2S2V5KSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCk9PiBwb3NpdGlvbkhpZ2hsaWdodChzdGF0ZS5sYXN0UHZLZXkpKTsNCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgY29uc3QgaGkgPSBl
bCgicHYtaGlnaGxpZ2h0Iik7DQogICAgICAgICAgaWYoaGkpIGhpLnN0eWxlLm9wYWNpdHkgPSAiMCI7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAg
ZnVuY3Rpb24gcHJpbnRDVigpew0KICAgICAgICByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgIGNvbnN0IHBhcGVySG9zdCA9IGVs
KCJwYXBlciIpOw0KICAgICAgICBpZighcGFwZXJIb3N0KSByZXR1cm47DQogICAgICAgIGNvbnN0IGN2ID0gcGFwZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoIi5j
dmItcGFwZXIiKTsNCiAgICAgICAgaWYoIWN2KSByZXR1cm47DQoNCiAgICAgICAgY29uc3QgZmYgPSBzdGF0ZS5mb250IHx8ICJJbnRlciI7DQogICAgICAg
IGNvbnN0IGh0bWwgPSBgPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4NCjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29n
bGVhcGlzLmNvbSI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4NCjxsaW5rIGhy
ZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmZhbWlseT1QbGF5ZmFp
citEaXNwbGF5OndnaHRANDAwOzYwMDs3MDAmZmFtaWx5PU1lcnJpd2VhdGhlcjp3Z2h0QDMwMDs0MDA7NzAwOzkwMCZmYW1pbHk9Um9ib3RvOndnaHRAMzAw
OzQwMDs1MDA7NzAwJmZhbWlseT1PcGVuK1NhbnM6d2dodEAzMDA7NDAwOzYwMDs3MDAmZmFtaWx5PUxhdG86d2dodEAzMDA7NDAwOzcwMDs5MDAmZmFtaWx5
PU1vbnRzZXJyYXQ6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4NCjxzdHlsZT5AcGFnZXtzaXplOkE0
O21hcmdpbjowfWh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjB9Ym9keXstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdCFpbXBvcnRhbnQ7cHJp
bnQtY29sb3ItYWRqdXN0OmV4YWN0IWltcG9ydGFudH0uY3ZiLXByaW50LXJvb3R7d2lkdGg6MjEwbW07bWFyZ2luOjB9LmN2Yi1wYXBlcnt3aWR0aDoyMTBt
bSFpbXBvcnRhbnQ7bWluLWhlaWdodDoyOTdtbSFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7b3ZlcmZs
b3c6dmlzaWJsZSFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OiR7ZmZ9LHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNl
Z29lIFVJLFJvYm90byxBcmlhbCxzYW5zLXNlcmlmfS5jdmItcGFwZXIgKnstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdCFpbXBvcnRhbnQ7cHJp
bnQtY29sb3ItYWRqdXN0OmV4YWN0IWltcG9ydGFudH08L3N0eWxlPg0KPC9oZWFkPjxib2R5PjxkaXYgY2xhc3M9ImN2Yi1wcmludC1yb290Ij4ke2N2Lm91
dGVySFRNTH08L2Rpdj48L2JvZHk+PC9odG1sPmA7DQoNCiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
DQogICAgICAgIGlmcmFtZS5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7DQogICAgICAgIGlmcmFtZS5zdHlsZS5yaWdodCA9ICIwIjsNCiAgICAgICAgaWZy
YW1lLnN0eWxlLmJvdHRvbSA9ICIwIjsNCiAgICAgICAgaWZyYW1lLnN0eWxlLndpZHRoID0gIjAiOw0KICAgICAgICBpZnJhbWUuc3R5bGUuaGVpZ2h0ID0g
IjAiOw0KICAgICAgICBpZnJhbWUuc3R5bGUuYm9yZGVyID0gIjAiOw0KICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUi
KTsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOw0KDQogICAgICAgIGNvbnN0IGRvYyA9IGlmcmFtZS5jb250ZW50V2luZG93
LmRvY3VtZW50Ow0KICAgICAgICBkb2Mub3BlbigpOyBkb2Mud3JpdGUoaHRtbCk7IGRvYy5jbG9zZSgpOw0KDQogICAgICAgIGNvbnN0IGN3ID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3c7DQogICAgICAgIGNvbnN0IGNsZWFudXAgPSAoKT0+eyB0cnl7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsgfWNh
dGNoKGUpe307IH07DQoNCiAgICAgICAgc2V0VGltZW91dCgoKT0+ew0KICAgICAgICAgIGN3LmZvY3VzKCk7DQogICAgICAgICAgY3cucHJpbnQoKTsNCiAg
ICAgICAgICBzZXRUaW1lb3V0KGNsZWFudXAsIDkwMCk7DQogICAgICAgIH0sIDI1MCk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGZpbmRQcmV2aWV3
VGFyZ2V0KGtleSl7DQogICAgICAgIGNvbnN0IHBhcGVySG9zdCA9IGVsKCJwYXBlciIpOw0KICAgICAgICBpZighcGFwZXJIb3N0KSByZXR1cm4gbnVsbDsN
CiAgICAgICAgdHJ5eyByZXR1cm4gcGFwZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXB2PSInK0NTUy5lc2NhcGUoa2V5KSsnIl0nKTsgfQ0KICAgICAg
ICBjYXRjaChlKXsgcmV0dXJuIHBhcGVySG9zdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1wdj0iJytrZXkucmVwbGFjZSgvIi9nLCdcXCInKSsnIl0nKTsgfQ0K
ICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBwb3NpdGlvbkhpZ2hsaWdodChrZXkpew0KICAgICAgICBjb25zdCBoaSA9IGVsKCJwdi1oaWdobGlnaHQiKTsN
CiAgICAgICAgaWYoaXNPbmVDb2woKSl7DQogICAgICAgICAgaWYoaGkpIGhpLnN0eWxlLm9wYWNpdHkgPSAiMCI7DQogICAgICAgICAgcmV0dXJuIG51bGw7
DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBob3N0ID0gZWwoInNoaWZ0LXdyYXAiKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZmluZFByZXZpZXdU
YXJnZXQoa2V5KTsNCiAgICAgICAgaWYoIWhpIHx8ICFob3N0IHx8ICF0YXJnZXQpew0KICAgICAgICAgIGlmKGhpKSBoaS5zdHlsZS5vcGFjaXR5ID0gIjAi
Ow0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOw0KICAgICAgICBjb25zdCByID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOw0KDQogICAgICAgIGNvbnN0IHBhZCA9IDM7DQogICAgICAg
IGhpLnN0eWxlLmxlZnQgPSAoci5sZWZ0IC0gaG9zdFJlY3QubGVmdCAtIHBhZCkgKyAicHgiOw0KICAgICAgICBoaS5zdHlsZS50b3AgID0gKHIudG9wICAt
IGhvc3RSZWN0LnRvcCAgLSBwYWQpICsgInB4IjsNCiAgICAgICAgaGkuc3R5bGUud2lkdGggPSBNYXRoLm1heCgxNCwgci53aWR0aCArIHBhZCoyKSArICJw
eCI7DQogICAgICAgIGhpLnN0eWxlLmhlaWdodCA9IE1hdGgubWF4KDE0LCByLmhlaWdodCArIHBhZCoyKSArICJweCI7DQogICAgICAgIGhpLnN0eWxlLm9w
YWNpdHkgPSAiMSI7DQogICAgICAgIHJldHVybiB7IGhvc3RSZWN0LCB0YXJnZXRSZWN0OiByIH07DQogICAgICB9DQoNCiAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gYWxpZ25FZGl0b3JGaWVsZFRvTWlkZGxlKG5vZGUpew0KICAgICAgICBpZighbm9kZSB8fCAhbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHJl
dHVybjsNCiAgICAgICAgaWYgKCFpc09uZUNvbCgpKSByZXR1cm47DQogICAgICAgIGNvbnN0IHJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Ow0KICAgICAgICBjb25zdCB0YXJnZXRZID0gd2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCAtICh3aW5kb3cuaW5uZXJIZWlnaHQvMiAtIHJlY3QuaGVpZ2h0
LzIpOw0KICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IE1hdGgubWF4KDAsIHRhcmdldFkpLCBiZWhhdmlvcjogInNtb290aCIgfSk7DQogICAgICB9
DQoNCiAgICAgIGZ1bmN0aW9uIGFsaWduUHJldmlld1RvRmllbGQobm9kZSwga2V5KXsNCiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZmluZFByZXZpZXdUYXJn
ZXQoa2V5KTsNCiAgICAgICAgaWYoIXRhcmdldCB8fCAhbm9kZSkgcmV0dXJuOw0KDQogICAgICAgIGNvbnN0IGZpZWxkUmVjdCA9IG5vZGUuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7DQogICAgICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQoNCiAgICAgICAgY29u
c3QgZmllbGRNaWQgPSBmaWVsZFJlY3QudG9wICsgZmllbGRSZWN0LmhlaWdodC8yOw0KICAgICAgICBjb25zdCB0YXJnZXRNaWQgPSB0YXJnZXRSZWN0LnRv
cCArIHRhcmdldFJlY3QuaGVpZ2h0LzI7DQoNCiAgICAgICAgc2V0U2hpZnRZKChzdGF0ZS5zaGlmdFkgfHwgMCkgKyAoZmllbGRNaWQgLSB0YXJnZXRNaWQp
KTsNCiAgICAgICAgcG9zaXRpb25IaWdobGlnaHQoa2V5KTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gb25GaWVsZEZvY3VzKG5vZGUpew0KICAgICAg
ICBjb25zdCBub3cgPSBEYXRlLm5vdygpOw0KICAgICAgICBpZihub3cgLSBzdGF0ZS5mb2N1c1N0YW1wIDwgMTYwKSByZXR1cm47DQogICAgICAgIHN0YXRl
LmZvY3VzU3RhbXAgPSBub3c7DQoNCiAgICAgICAgY29uc3Qga2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHZrZXkiKSB8fCBudWxsOw0KICAgICAg
ICBpZigha2V5KSByZXR1cm47DQoNCiAgICAgICAgc3RhdGUubGFzdFB2S2V5ID0ga2V5Ow0KICAgICAgICBhbGlnbkVkaXRvckZpZWxkVG9NaWRkbGUobm9k
ZSk7DQoNCiAgICAgICAgaWYoaXNPbmVDb2woKSl7DQogICAgICAgICAgY29uc3QgaGkgPSBlbCgicHYtaGlnaGxpZ2h0Iik7DQogICAgICAgICAgaWYoaGkp
IGhpLnN0eWxlLm9wYWNpdHkgPSAiMCI7DQogICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgp
PT57DQogICAgICAgICAgcG9zaXRpb25IaWdobGlnaHQoa2V5KTsNCiAgICAgICAgICBhbGlnblByZXZpZXdUb0ZpZWxkKG5vZGUsIGtleSk7DQogICAgICAg
IH0pOw0KICAgICAgICBzZXRUaW1lb3V0KCgpPT57DQogICAgICAgICAgcG9zaXRpb25IaWdobGlnaHQoa2V5KTsNCiAgICAgICAgICBhbGlnblByZXZpZXdU
b0ZpZWxkKG5vZGUsIGtleSk7DQogICAgICAgIH0sIDI2MCk7DQogICAgICAgIHNldFRpbWVvdXQoKCk9PnsNCiAgICAgICAgICBwb3NpdGlvbkhpZ2hsaWdo
dChrZXkpOw0KICAgICAgICAgIGFsaWduUHJldmlld1RvRmllbGQobm9kZSwga2V5KTsNCiAgICAgICAgfSwgNTIwKTsNCiAgICAgICAgc2V0VGltZW91dCgo
KT0+ew0KICAgICAgICAgIHBvc2l0aW9uSGlnaGxpZ2h0KGtleSk7DQogICAgICAgICAgYWxpZ25QcmV2aWV3VG9GaWVsZChub2RlLCBrZXkpOw0KICAgICAg
ICB9LCA5MDApOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBiaW5kUHJldmlld1N5bmMoKXsNCiAgICAgICAgY29uc3Qgcm9vdCA9IGVsKCJjdmItcm9v
dCIpOw0KICAgICAgICBpZighcm9vdCkgcmV0dXJuOw0KDQogICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIChlKT0+ew0KICAg
ICAgICAgIGNvbnN0IG5vZGUgPSBlLnRhcmdldDsNCiAgICAgICAgICBpZihub2RlICYmIG5vZGUubWF0Y2hlcyAmJiBub2RlLm1hdGNoZXMoIiNjdmItZWRp
dG9yIGlucHV0LmN2Yi1pbnB1dCwgI2N2Yi1lZGl0b3IgdGV4dGFyZWEuY3ZiLWlucHV0Iikpew0KICAgICAgICAgICAgbWF5YmVDbGVhckdob3N0RmllbGQo
bm9kZSk7DQogICAgICAgICAgICBpZihub2RlLnZhbHVlID09PSAiIikgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIH0NCiAg
ICAgICAgfSwgdHJ1ZSk7DQoNCiAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgKGUpPT57DQogICAgICAgICAgY29uc3Qgbm9kZSA9
IGUudGFyZ2V0Ow0KICAgICAgICAgIGlmKG5vZGUgJiYgbm9kZS5tYXRjaGVzICYmIG5vZGUubWF0Y2hlcygiI2N2Yi1lZGl0b3IgaW5wdXQuY3ZiLWlucHV0
LCAjY3ZiLWVkaXRvciB0ZXh0YXJlYS5jdmItaW5wdXQsICNjdmItZWRpdG9yIHNlbGVjdC5jdmItaW5wdXQiKSl7DQogICAgICAgICAgICBtYXliZUNsZWFy
R2hvc3RGaWVsZChub2RlKTsNCiAgICAgICAgICAgIGlmKG5vZGUudmFsdWUgPT09ICIiKSByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAg
ICAgICAgICBvbkZpZWxkRm9jdXMobm9kZSk7DQogICAgICAgICAgfQ0KICAgICAgICB9LCB0cnVlKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gcmVu
ZGVyRHluYW1pY1NlY3Rpb25zKCl7DQogICAgICAgIGNvbnN0IHdyYXAgPSBlbCgiY3ZiLWR5bmFtaWMtc2VjdGlvbnMiKTsNCiAgICAgICAgaWYoIXdyYXAp
IHJldHVybjsNCiAgICAgICAgY29uc3QgdCA9IFRbc3RhdGUubGFuZ10gfHwgVC5lbjsNCg0KICAgICAgICB3cmFwLmlubmVySFRNTCA9IGANCiAgICAgICAg
ICA8ZGl2IGNsYXNzPSJiZy13aGl0ZSByb3VuZGVkLTJ4bCBwLTUgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgc2hhZG93LXNtIHNwYWNlLXktNCI+DQogICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTMgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTEwMCBwYi0z
Ij4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTkwMCI+DQogICAg
ICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImJyaWVmY2FzZSIgY2xhc3M9InctNSBoLTUgdGV4dC1za3ktNjAwIj48L2k+PHNwYW4+JHtlc2ModC5leHBl
cmllbmNlKX08L3NwYW4+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJhZGQtZXhwIiBjbGFzcz0icHgtMyBweS0y
IHJvdW5kZWQteGwgdGV4dC1zbSBmb250LXNlbWlib2xkIGJnLXNreS02MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1za3ktNzAwIHRyYW5zaXRpb24gZmxleCBp
dGVtcy1jZW50ZXIgZ2FwLTIiIHR5cGU9ImJ1dHRvbiI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InBsdXMiIGNsYXNzPSJ3LTQgaC00Ij48
L2k+PHNwYW4+JHtlc2ModC5hZGQpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxk
aXYgaWQ9ImV4cC1saXN0IiBjbGFzcz0ic3BhY2UteS00Ij48L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdo
aXRlIHJvdW5kZWQtMnhsIHAtNSBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBzaGFkb3ctc20gc3BhY2UteS00Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS05MDAgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTEwMCBwYi0zIj4NCiAg
ICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImdyYWR1YXRpb24tY2FwIiBjbGFzcz0idy01IGgtNSB0ZXh0LXNreS02MDAiPjwvaT48c3Bhbj4ke2VzYyh0
LmVkdWNhdGlvbil9PC9zcGFuPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGlkPSJlZHUtbGlzdCIgY2xhc3M9InNwYWNlLXktNCI+
PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdC0yIGZsZXgganVzdGlmeS1lbmQiPg0KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJhZGQtZWR1
IiBjbGFzcz0icHgtMyBweS0yIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LXNlbWlib2xkIGJnLXNreS02MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1za3ktNzAw
IHRyYW5zaXRpb24gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiIHR5cGU9ImJ1dHRvbiI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InBsdXMi
IGNsYXNzPSJ3LTQgaC00Ij48L2k+PHNwYW4+JHtlc2ModC5hZGQpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICA8L2Rp
dj4NCiAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtMnhsIHAtNSBib3JkZXIgYm9yZGVyLXNsYXRl
LTIwMCBzaGFkb3ctc20gc3BhY2UteS00Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgc206aXRlbXMtc3Rh
cnQgc206anVzdGlmeS1iZXR3ZWVuIGdhcC0zIGJvcmRlci1iIGJvcmRlci1zbGF0ZS0xMDAgcGItMyI+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZs
ZXggaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS05MDAiPg0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJzcGFy
a2xlcyIgY2xhc3M9InctNSBoLTUgdGV4dC1za3ktNjAwIj48L2k+PHNwYW4+JHtlc2ModC5za2lsbHMpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgPC9kaXY+
DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgc206aXRlbXMtZW5kIGdhcC0yIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS02MDAiPiR7ZXNjKHQuc2tpbGxTdHlsZSl9OjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAtMiBzbTpqdXN0aWZ5LWVuZCI+DQogICAgICAgICAgICAgICAgICAke3N0eWxlQnV0dG9u
SFRNTCgic2tpbGwiLCJub25lIiwgdC5ub25lLCBtaW5pTm9uZSgpKX0NCiAgICAgICAgICAgICAgICAgICR7c3R5bGVCdXR0b25IVE1MKCJza2lsbCIsImRv
dHMiLCB0LmRvdHMsIG1pbmlEb3RzKHN0YXRlLnRoZW1lLmFjY2VudCkpfQ0KICAgICAgICAgICAgICAgICAgJHtzdHlsZUJ1dHRvbkhUTUwoInNraWxsIiwi
YmFycyIsIHQuYmFycywgbWluaUJhcnMoc3RhdGUudGhlbWUuYWNjZW50KSl9DQogICAgICAgICAgICAgICAgICAke3N0eWxlQnV0dG9uSFRNTCgic2tpbGwi
LCJzdGFycyIsIHQuc3RhcnMsIG1pbmlTdGFycyhzdGF0ZS50aGVtZS5hY2NlbnQpKX0NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAg
PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgaWQ9InNraWxscy1saXN0IiBjbGFzcz0ic3BhY2UteS0zIj48L2Rpdj4NCiAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InB0LTIgZmxleCBqdXN0aWZ5LWVuZCI+DQogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImFkZC1za2lsbCIgY2xhc3M9
InB4LTMgcHktMiByb3VuZGVkLXhsIHRleHQtc20gZm9udC1zZW1pYm9sZCBiZy1zbGF0ZS05MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1zbGF0ZS04MDAgdHJh
bnNpdGlvbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiIgdHlwZT0iYnV0dG9uIj4NCiAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0icGx1cyIgY2xh
c3M9InctNCBoLTQiPjwvaT48c3Bhbj4ke2VzYyh0LmFkZCl9PC9zcGFuPg0KICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0K
ICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUgcm91bmRlZC0yeGwgcC01IGJvcmRlciBib3JkZXItc2xhdGUtMjAw
IHNoYWRvdy1zbSBzcGFjZS15LTQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBzbTppdGVtcy1zdGFydCBz
bTpqdXN0aWZ5LWJldHdlZW4gZ2FwLTMgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTEwMCBwYi0zIj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBp
dGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTkwMCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9Imxhbmd1YWdl
cyIgY2xhc3M9InctNSBoLTUgdGV4dC1za3ktNjAwIj48L2k+PHNwYW4+JHtlc2ModC5sYW5ndWFnZXMpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgPC9kaXY+
DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgc206aXRlbXMtZW5kIGdhcC0yIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS02MDAiPiR7ZXNjKHQubGFuZ1N0eWxlKX06PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC0yIHNtOmp1c3RpZnktZW5kIj4NCiAgICAgICAgICAgICAgICAgICR7c3R5bGVCdXR0b25I
VE1MKCJsYW5nIiwibm9uZSIsIHQubm9uZSwgbWluaU5vbmUoKSl9DQogICAgICAgICAgICAgICAgICAke3N0eWxlQnV0dG9uSFRNTCgibGFuZyIsImRvdHMi
LCB0LmRvdHMsIG1pbmlEb3RzKHN0YXRlLnRoZW1lLmFjY2VudCkpfQ0KICAgICAgICAgICAgICAgICAgJHtzdHlsZUJ1dHRvbkhUTUwoImxhbmciLCJsaW5l
cyIsIHQubGluZXMsIG1pbmlCYXJzKHN0YXRlLnRoZW1lLmFjY2VudCkpfQ0KICAgICAgICAgICAgICAgICAgJHtzdHlsZUJ1dHRvbkhUTUwoImxhbmciLCJz
dGFycyIsIHQuc3RhcnMsIG1pbmlTdGFycyhzdGF0ZS50aGVtZS5hY2NlbnQpKX0NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9k
aXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgYmctc2xh
dGUtNTAgcHgtMyBweS0yIHRleHQteHMgdGV4dC1zbGF0ZS02MDAiPiR7ZXNjKHQubGFuZ0xlZ2VuZCl9PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGlkPSJs
YW5nLWxpc3QiIGNsYXNzPSJzcGFjZS15LTQiPjwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHQtMiBmbGV4IGp1c3RpZnktZW5kIj4NCiAgICAg
ICAgICAgICAgPGJ1dHRvbiBpZD0iYWRkLWxhbmciIGNsYXNzPSJweC0zIHB5LTIgcm91bmRlZC14bCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgYmctc2t5LTYw
MCB0ZXh0LXdoaXRlIGhvdmVyOmJnLXNreS03MDAgdHJhbnNpdGlvbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiIgdHlwZT0iYnV0dG9uIj4NCiAgICAgICAg
ICAgICAgICA8aSBkYXRhLWx1Y2lkZT0icGx1cyIgY2xhc3M9InctNCBoLTQiPjwvaT48c3Bhbj4ke2VzYyh0LmFkZCl9PC9zcGFuPg0KICAgICAgICAgICAg
ICA8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUgcm91bmRl
ZC0yeGwgcC01IGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHNoYWRvdy1zbSBzcGFjZS15LTQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVt
cy1jZW50ZXIgZ2FwLTIgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTkwMCBib3JkZXItYiBib3JkZXItc2xhdGUtMTAwIHBiLTMiPg0KICAgICAgICAgICAg
ICA8aSBkYXRhLWx1Y2lkZT0iYmFkZ2UtY2hlY2siIGNsYXNzPSJ3LTUgaC01IHRleHQtc2t5LTYwMCI+PC9pPjxzcGFuPiR7ZXNjKHQuY2VydGlmaWNhdGlv
bnMpfTwvc3Bhbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBpZD0iY2VydC1saXN0IiBjbGFzcz0ic3BhY2UteS00Ij48L2Rpdj4N
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InB0LTIgZmxleCBqdXN0aWZ5LWVuZCI+DQogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImFkZC1jZXJ0IiBjbGFz
cz0icHgtMyBweS0yIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LXNlbWlib2xkIGJnLXNreS02MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1za3ktNzAwIHRyYW5z
aXRpb24gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiIHR5cGU9ImJ1dHRvbiI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InBsdXMiIGNsYXNz
PSJ3LTQgaC00Ij48L2k+PHNwYW4+JHtlc2ModC5hZGQpfTwvc3Bhbj4NCiAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAg
ICAgICAgICA8L2Rpdj4NCiAgICAgICAgYDsNCg0KICAgICAgICBsdWNpZGUuY3JlYXRlSWNvbnMoKTsNCiAgICAgICAgcmVuZGVyUmVwZWF0ZXJzKCk7DQog
ICAgICAgIGJpbmREeW5hbWljRWRpdG9ycygpOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiByZW5kZXJSZXBlYXRlcnMoKXsNCiAgICAgICAgY29uc3Qg
dCA9IFRbc3RhdGUubGFuZ10gfHwgVC5lbjsNCg0KICAgICAgICBjb25zdCBleHBXcmFwID0gZWwoImV4cC1saXN0Iik7DQogICAgICAgIGlmKGV4cFdyYXAp
ew0KICAgICAgICAgIGNvbnN0IGV4cCA9IHN0YXRlLmRhdGEuZXhwZXJpZW5jZSB8fCBbXTsNCiAgICAgICAgICBleHBXcmFwLmlubmVySFRNTCA9IGV4cC5t
YXAoKGl0ZW0sIGlkeCk9PmANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIGJnLXdoaXRlIHAt
NCI+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMyBtYi0zIj4NCiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS05MDAiPiMke2lkeCsxfTwvZGl2Pg0KICAgICAgICAgICAgICAgIDxi
dXR0b24gZGF0YS1leHAtZGVsPSIke2lkeH0iIGNsYXNzPSJweC0zIHB5LTEuNSByb3VuZGVkLXhsIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXJlZC02
MDAgaG92ZXI6YmctcmVkLTUwIGJvcmRlciBib3JkZXItcmVkLTEwMCB0cmFuc2l0aW9uIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIiB0eXBlPSJidXR0b24i
Pg0KICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyYXNoLTIiIGNsYXNzPSJ3LTQgaC00Ij48L2k+JHtlc2ModC5yZW1vdmUpfQ0KICAgICAg
ICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpn
cmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iYmxvY2sgdGV4dC1zbSBm
b250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjUiPiR7ZXNjKHQucG9zaXRpb24pfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0
YS1leHAtcG9zPSIke2lkeH0iIGRhdGEtcHZrZXk9ImV4cC1wb3MtJHtpZHh9IiBkYXRhLXNhbXBsZT0iJHtlc2NBdHRyKChTQU1QTEUuZXhwZXJpZW5jZVtp
ZHhdfHx7fSkucG9zaXRpb258fCIiKX0iDQogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0yLjUgYm9y
ZGVyIGJvcmRlci1zbGF0ZS0zMDAgcm91bmRlZC14bCB0ZXh0LXNtICR7c3RhdGUuZ2hvc3Q/J2N2Yi1naG9zdCc6Jyd9Ig0KICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlPSIke2VzY0F0dHIoaXRlbS5wb3NpdGlvbnx8IiIpfSIgLz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8
ZGl2Pg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNzAwIG1iLTEuNSI+JHtl
c2ModC5jb21wYW55KX08L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPGlucHV0IGRhdGEtZXhwLWNvbXA9IiR7aWR4fSIgZGF0YS1wdmtleT0iZXhwLWNv
bXAtJHtpZHh9IiBkYXRhLXNhbXBsZT0iJHtlc2NBdHRyKChTQU1QTEUuZXhwZXJpZW5jZVtpZHhdfHx7fSkuY29tcGFueXx8IiIpfSINCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzcz0iY3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQt
c20gJHtzdGF0ZS5naG9zdD8nY3ZiLWdob3N0JzonJ30iDQogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZXNjQXR0cihpdGVtLmNvbXBhbnl8
fCIiKX0iIC8+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206Y29sLXNwYW4tMiI+DQogICAgICAgICAg
ICAgICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWItMS41Ij4ke2VzYyh0LnBlcmlvZCl9PC9s
YWJlbD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCBkYXRhLWV4cC1wZXI9IiR7aWR4fSIgZGF0YS1wdmtleT0iZXhwLXBlci0ke2lkeH0iIGRhdGEtc2Ft
cGxlPSIke2VzY0F0dHIoKFNBTVBMRS5leHBlcmllbmNlW2lkeF18fHt9KS5wZXJpb2R8fCIiKX0iDQogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9
ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0yLjUgYm9yZGVyIGJvcmRlci1zbGF0ZS0zMDAgcm91bmRlZC14bCB0ZXh0LXNtICR7c3RhdGUuZ2hvc3Q/J2N2
Yi1naG9zdCc6Jyd9Ig0KICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSIke2VzY0F0dHIoaXRlbS5wZXJpb2R8fCIiKX0iIC8+DQogICAgICAgICAg
ICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206Y29sLXNwYW4tMiI+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9
ImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWItMS41Ij4ke2VzYyh0LmRlc2NyaXB0aW9uKX08L2xhYmVsPg0KICAgICAgICAg
ICAgICAgICAgPHRleHRhcmVhIGRhdGEtZXhwLWRlc2M9IiR7aWR4fSIgZGF0YS1wdmtleT0iZXhwLWRlc2MtJHtpZHh9IiBkYXRhLXNhbXBsZT0iJHtlc2NB
dHRyKChTQU1QTEUuZXhwZXJpZW5jZVtpZHhdfHx7fSkuZGVzY3JpcHRpb258fCIiKX0iIHJvd3M9IjQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0zIGJvcmRlciBib3JkZXItc2xhdGUtMzAwIHJvdW5kZWQteGwgcmVzaXplLW5vbmUgdGV4dC1zbSBs
ZWFkaW5nLXJlbGF4ZWQgJHtzdGF0ZS5naG9zdD8nY3ZiLWdob3N0JzonJ30iPiR7ZXNjKGl0ZW0uZGVzY3JpcHRpb258fCIiKX08L3RleHRhcmVhPg0KICAg
ICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIGApLmpvaW4oIiIpOw0KICAg
ICAgICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgZWR1V3JhcCA9IGVsKCJlZHUtbGlzdCIpOw0KICAgICAg
ICBpZihlZHVXcmFwKXsNCiAgICAgICAgICBjb25zdCBlZHUgPSBzdGF0ZS5kYXRhLmVkdWNhdGlvbiB8fCBbXTsNCiAgICAgICAgICBlZHVXcmFwLmlubmVy
SFRNTCA9IGVkdS5tYXAoKGl0ZW0sIGlkeCk9PmANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAw
IGJnLXdoaXRlIHAtNCI+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMyBtYi0zIj4N
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS05MDAiPiMke2lkeCsxfTwvZGl2Pg0KICAgICAg
ICAgICAgICAgIDxidXR0b24gZGF0YS1lZHUtZGVsPSIke2lkeH0iIGNsYXNzPSJweC0zIHB5LTEuNSByb3VuZGVkLXhsIHRleHQtc20gZm9udC1zZW1pYm9s
ZCB0ZXh0LXJlZC02MDAgaG92ZXI6YmctcmVkLTUwIGJvcmRlciBib3JkZXItcmVkLTEwMCB0cmFuc2l0aW9uIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIiB0
eXBlPSJidXR0b24iPg0KICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyYXNoLTIiIGNsYXNzPSJ3LTQgaC00Ij48L2k+JHtlc2ModC5yZW1v
dmUpfQ0KICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlk
LWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206Y29sLXNwYW4tMiI+DQogICAgICAgICAgICAg
ICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWItMS41Ij4ke2VzYyh0LmRlZ3JlZSl9PC9sYWJl
bD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCBkYXRhLWVkdS1kZWc9IiR7aWR4fSIgZGF0YS1wdmtleT0iZWR1LWRlZy0ke2lkeH0iIGRhdGEtc2FtcGxl
PSIke2VzY0F0dHIoKFNBTVBMRS5lZHVjYXRpb25baWR4XXx8e30pLmRlZ3JlZXx8IiIpfSINCiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3Zi
LWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQtc20gJHtzdGF0ZS5naG9zdD8nY3ZiLWdo
b3N0JzonJ30iDQogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZXNjQXR0cihpdGVtLmRlZ3JlZXx8IiIpfSIgLz4NCiAgICAgICAgICAgICAg
ICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVt
IHRleHQtc2xhdGUtNzAwIG1iLTEuNSI+JHtlc2ModC5zY2hvb2wpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS1lZHUtc2NoPSIk
e2lkeH0iIGRhdGEtcHZrZXk9ImVkdS1zY2gtJHtpZHh9IiBkYXRhLXNhbXBsZT0iJHtlc2NBdHRyKChTQU1QTEUuZWR1Y2F0aW9uW2lkeF18fHt9KS5zY2hv
b2x8fCIiKX0iDQogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0yLjUgYm9yZGVyIGJvcmRlci1zbGF0
ZS0zMDAgcm91bmRlZC14bCB0ZXh0LXNtICR7c3RhdGUuZ2hvc3Q/J2N2Yi1naG9zdCc6Jyd9Ig0KICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSIk
e2VzY0F0dHIoaXRlbS5zY2hvb2x8fCIiKX0iIC8+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAg
ICAgICAgIDxsYWJlbCBjbGFzcz0iYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjUiPiR7ZXNjKHQueWVhcil9PC9sYWJl
bD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCBkYXRhLWVkdS15cj0iJHtpZHh9IiBkYXRhLXB2a2V5PSJlZHUteXItJHtpZHh9IiBkYXRhLXNhbXBsZT0i
JHtlc2NBdHRyKChTQU1QTEUuZWR1Y2F0aW9uW2lkeF18fHt9KS55ZWFyfHwiIil9Ig0KICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjdmItaW5w
dXQgdy1mdWxsIHB4LTQgcHktMi41IGJvcmRlciBib3JkZXItc2xhdGUtMzAwIHJvdW5kZWQteGwgdGV4dC1zbSAke3N0YXRlLmdob3N0PydjdmItZ2hvc3Qn
OicnfSINCiAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iJHtlc2NBdHRyKGl0ZW0ueWVhcnx8IiIpfSIgLz4NCiAgICAgICAgICAgICAgICA8L2Rp
dj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICBgKS5qb2luKCIiKTsNCiAgICAgICAgICBsdWNpZGUuY3Jl
YXRlSWNvbnMoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHNraWxsc1dyYXAgPSBlbCgic2tpbGxzLWxpc3QiKTsNCiAgICAgICAgaWYoc2tpbGxz
V3JhcCl7DQogICAgICAgICAgY29uc3Qgc2tpbGxzID0gc3RhdGUuZGF0YS5za2lsbHMgfHwgW107DQogICAgICAgICAgc3RhdGUuZGF0YS5za2lsbExldmVs
cyA9IHN0YXRlLmRhdGEuc2tpbGxMZXZlbHMgfHwgW107DQogICAgICAgICAgd2hpbGUoc3RhdGUuZGF0YS5za2lsbExldmVscy5sZW5ndGggPCBza2lsbHMu
bGVuZ3RoKSBzdGF0ZS5kYXRhLnNraWxsTGV2ZWxzLnB1c2goMyk7DQoNCiAgICAgICAgICBza2lsbHNXcmFwLmlubmVySFRNTCA9IHNraWxscy5tYXAoKHMs
IGlkeCk9PmANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIGJnLXdoaXRlIHAtNCI+DQogICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS1za2lsbC1uYW1lPSIk
e2lkeH0iIGRhdGEtcHZrZXk9InNraWxsLSR7aWR4fSIgZGF0YS1zYW1wbGU9IiR7ZXNjQXR0cihTQU1QTEUuc2tpbGxzW2lkeF18fCIiKX0iDQogICAgICAg
ICAgICAgICAgICAgICAgIGNsYXNzPSJjdmItaW5wdXQgZmxleC0xIHB4LTQgcHktMi41IGJvcmRlciBib3JkZXItc2xhdGUtMzAwIHJvdW5kZWQteGwgdGV4
dC1zbSAke3N0YXRlLmdob3N0PydjdmItZ2hvc3QnOicnfSINCiAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZXNjQXR0cihzKX0iIC8+DQogICAg
ICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLXNraWxsLWRlbD0iJHtpZHh9IiBjbGFzcz0idGV4dC1zbGF0ZS00MDAgaG92ZXI6dGV4dC1yZWQtNjAwIiB0aXRs
ZT0iJHtlc2NBdHRyKHQucmVtb3ZlKX0iIGFyaWEtbGFiZWw9IiR7ZXNjQXR0cih0LnJlbW92ZSl9IiB0eXBlPSJidXR0b24iPg0KICAgICAgICAgICAgICAg
ICAgPGkgZGF0YS1sdWNpZGU9InRyYXNoLTIiIGNsYXNzPSJ3LTQgaC00Ij48L2k+DQogICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAg
IDwvZGl2Pg0KDQogICAgICAgICAgICAgICR7c3RhdGUuc2tpbGxEaXNwbGF5PT09Im5vbmUiID8gIiIgOiBgDQogICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0ibXQtMyI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS02MDAgbWItMSI+JHtlc2Mo
dC5sZXZlbCl9PC9kaXY+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS1za2lsbC1sdmw9IiR7aWR4fSIgZGF0YS1wdmtleT0ic2tpbGwtJHtpZHh9
IiB0eXBlPSJyYW5nZSIgbWluPSIxIiBtYXg9IjUiIHN0ZXA9IjEiIHZhbHVlPSIke2VzY0F0dHIoTnVtYmVyKHN0YXRlLmRhdGEuc2tpbGxMZXZlbHNbaWR4
XXx8MykpfSIgY2xhc3M9InctZnVsbCIgLz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgYH0NCiAgICAgICAgICAgIDwvZGl2Pg0K
ICAgICAgICAgIGApLmpvaW4oIiIpOw0KICAgICAgICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgbGFuZ1dy
YXAgPSBlbCgibGFuZy1saXN0Iik7DQogICAgICAgIGlmKGxhbmdXcmFwKXsNCiAgICAgICAgICBjb25zdCBsYW5ncyA9IHN0YXRlLmRhdGEubGFuZ3VhZ2Vz
IHx8IFtdOw0KICAgICAgICAgIGNvbnN0IG9wdHMgPSBbWyIxIix0Lmx2bDFdLFsiMiIsdC5sdmwyXSxbIjMiLHQubHZsM10sWyI0Iix0Lmx2bDRdLFsiNSIs
dC5sdmw1XV07DQogICAgICAgICAgbGFuZ1dyYXAuaW5uZXJIVE1MID0gbGFuZ3MubWFwKChpdGVtLCBpZHgpPT5gDQogICAgICAgICAgICA8ZGl2IGNsYXNz
PSJyb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXNsYXRlLTIwMCBiZy13aGl0ZSBwLTQiPg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1z
LWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTMgbWItMyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRl
eHQtc2xhdGUtOTAwIj4jJHtpZHgrMX08L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIGRhdGEtbGFuZy1kZWw9IiR7aWR4fSIgY2xhc3M9InB4LTMg
cHktMS41IHJvdW5kZWQteGwgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtcmVkLTYwMCBob3ZlcjpiZy1yZWQtNTAgYm9yZGVyIGJvcmRlci1yZWQtMTAw
IHRyYW5zaXRpb24gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiIHR5cGU9ImJ1dHRvbiI+DQogICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0idHJh
c2gtMiIgY2xhc3M9InctNCBoLTQiPjwvaT4ke2VzYyh0LnJlbW92ZSl9DQogICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgIDwvZGl2
Pg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0xIHNtOmdyaWQtY29scy0yIGdhcC0zIj4NCiAgICAgICAgICAgICAgICA8ZGl2
Pg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNzAwIG1iLTEuNSI+JHtlc2Mo
dC5sYW5ndWFnZU5hbWUpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS1sYW5nLW5hbWU9IiR7aWR4fSIgZGF0YS1wdmtleT0ibGFu
Zy0ke2lkeH0iIGRhdGEtc2FtcGxlPSIke2VzY0F0dHIoKFNBTVBMRS5sYW5ndWFnZXNbaWR4XXx8e30pLm5hbWV8fCIiKX0iDQogICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3M9ImN2Yi1pbnB1dCB3LWZ1bGwgcHgtNCBweS0yLjUgYm9yZGVyIGJvcmRlci1zbGF0ZS0zMDAgcm91bmRlZC14bCB0ZXh0LXNtICR7
c3RhdGUuZ2hvc3Q/J2N2Yi1naG9zdCc6Jyd9Ig0KICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSIke2VzY0F0dHIoaXRlbS5uYW1lfHwiIil9IiAv
Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRl
eHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDAgbWItMS41Ij4ke2VzYyh0LmxldmVsKX08L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPHNlbGVj
dCBkYXRhLWxhbmctbHZsPSIke2lkeH0iIGRhdGEtcHZrZXk9ImxhbmctJHtpZHh9IiBjbGFzcz0iY3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3Jk
ZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQtc20gYmctd2hpdGUiPg0KICAgICAgICAgICAgICAgICAgICAke29wdHMubWFwKChbdixsYWJd
KT0+YDxvcHRpb24gdmFsdWU9IiR7ZXNjQXR0cih2KX0iICR7U3RyaW5nKGl0ZW0ubGV2ZWx8fCIzIik9PT12PyJzZWxlY3RlZCI6IiJ9PiR7ZXNjKGxhYil9
PC9vcHRpb24+YCkuam9pbigiIil9DQogICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAg
PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICBgKS5qb2luKCIiKTsNCiAgICAgICAgICBsdWNpZGUuY3JlYXRlSWNvbnMoKTsNCiAgICAg
ICAgfQ0KDQogICAgICAgIGNvbnN0IGNlcnRXcmFwID0gZWwoImNlcnQtbGlzdCIpOw0KICAgICAgICBpZihjZXJ0V3JhcCl7DQogICAgICAgICAgY29uc3Qg
Y2VydHMgPSBzdGF0ZS5kYXRhLmNlcnRpZmljYXRpb25zIHx8IFtdOw0KICAgICAgICAgIGNlcnRXcmFwLmlubmVySFRNTCA9IGNlcnRzLm1hcCgoaXRlbSwg
aWR4KT0+YA0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgYmctd2hpdGUgcC00Ij4NCiAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zIG1iLTMiPg0KICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTkwMCI+IyR7aWR4KzF9PC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBkYXRh
LWNlcnQtZGVsPSIke2lkeH0iIGNsYXNzPSJweC0zIHB5LTEuNSByb3VuZGVkLXhsIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXJlZC02MDAgaG92ZXI6
YmctcmVkLTUwIGJvcmRlciBib3JkZXItcmVkLTEwMCB0cmFuc2l0aW9uIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIiB0eXBlPSJidXR0b24iPg0KICAgICAg
ICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyYXNoLTIiIGNsYXNzPSJ3LTQgaC00Ij48L2k+JHtlc2ModC5yZW1vdmUpfQ0KICAgICAgICAgICAgICAg
IDwvYnV0dG9uPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMt
MiBnYXAtMyI+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1
bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjUiPiR7ZXNjKHQuY2VydE5hbWUpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS1jZXJ0LW5h
bWU9IiR7aWR4fSIgZGF0YS1wdmtleT0iY2VydC0ke2lkeH0iIGRhdGEtc2FtcGxlPSIke2VzY0F0dHIoKFNBTVBMRS5jZXJ0aWZpY2F0aW9uc1tpZHhdfHx7
fSkubmFtZXx8IiIpfSINCiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVy
LXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQtc20gJHtzdGF0ZS5naG9zdD8nY3ZiLWdob3N0JzonJ30iDQogICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWU9IiR7ZXNjQXR0cihpdGVtLm5hbWV8fCIiKX0iIC8+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAg
ICAgICAgICAgIDxsYWJlbCBjbGFzcz0iYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjUiPiR7ZXNjKHQueWVhcil9PC9s
YWJlbD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCBkYXRhLWNlcnQteXI9IiR7aWR4fSIgZGF0YS1wdmtleT0iY2VydC0ke2lkeH0iIGRhdGEtc2FtcGxl
PSIke2VzY0F0dHIoKFNBTVBMRS5jZXJ0aWZpY2F0aW9uc1tpZHhdfHx7fSkueWVhcnx8IiIpfSINCiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0i
Y3ZiLWlucHV0IHctZnVsbCBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTMwMCByb3VuZGVkLXhsIHRleHQtc20gJHtzdGF0ZS5naG9zdD8nY3Zi
LWdob3N0JzonJ30iDQogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZXNjQXR0cihpdGVtLnllYXJ8fCIiKX0iIC8+DQogICAgICAgICAgICAg
ICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgYCkuam9pbigiIik7DQogICAgICAgICAgbHVj
aWRlLmNyZWF0ZUljb25zKCk7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gYmluZER5bmFtaWNFZGl0b3JzKCl7DQogICAgICAgIGNv
bnN0IHdyYXAgPSBlbCgiY3ZiLWR5bmFtaWMtc2VjdGlvbnMiKTsNCiAgICAgICAgaWYoIXdyYXApIHJldHVybjsNCiAgICAgICAgY29uc3QgdCA9IFRbc3Rh
dGUubGFuZ10gfHwgVC5lbjsNCg0KICAgICAgICBjb25zdCBhZGRFeHAgPSBlbCgiYWRkLWV4cCIpOw0KICAgICAgICBpZihhZGRFeHApIGFkZEV4cC5vbmNs
aWNrID0gKCk9PnsNCiAgICAgICAgICBzdGF0ZS5kYXRhLmV4cGVyaWVuY2UgPSBzdGF0ZS5kYXRhLmV4cGVyaWVuY2UgfHwgW107DQogICAgICAgICAgc3Rh
dGUuZGF0YS5leHBlcmllbmNlLnB1c2goe3Bvc2l0aW9uOiIiLCBjb21wYW55OiIiLCBwZXJpb2Q6IiIsIGRlc2NyaXB0aW9uOiIifSk7DQogICAgICAgICAg
cmVuZGVyRHluYW1pY1NlY3Rpb25zKCk7DQogICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIHN0YXRlLmxhc3RQ
dktleSA9ICJzZWN0aW9uLWV4cGVyaWVuY2UiOw0KICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+IHBvc2l0aW9uSGlnaGxpZ2h0KCJzZWN0
aW9uLWV4cGVyaWVuY2UiKSk7DQogICAgICAgIH07DQoNCiAgICAgICAgY29uc3QgYWRkRWR1ID0gZWwoImFkZC1lZHUiKTsNCiAgICAgICAgaWYoYWRkRWR1
KSBhZGRFZHUub25jbGljayA9ICgpPT57DQogICAgICAgICAgc3RhdGUuZGF0YS5lZHVjYXRpb24gPSBzdGF0ZS5kYXRhLmVkdWNhdGlvbiB8fCBbXTsNCiAg
ICAgICAgICBzdGF0ZS5kYXRhLmVkdWNhdGlvbi5wdXNoKHtkZWdyZWU6IiIsIHNjaG9vbDoiIiwgeWVhcjoiIn0pOw0KICAgICAgICAgIHJlbmRlckR5bmFt
aWNTZWN0aW9ucygpOw0KICAgICAgICAgIHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAgICAgICAgfTsNCg0KICAgICAgICBjb25zdCBhZGRM
YW5nID0gZWwoImFkZC1sYW5nIik7DQogICAgICAgIGlmKGFkZExhbmcpIGFkZExhbmcub25jbGljayA9ICgpPT57DQogICAgICAgICAgc3RhdGUuZGF0YS5s
YW5ndWFnZXMgPSBzdGF0ZS5kYXRhLmxhbmd1YWdlcyB8fCBbXTsNCiAgICAgICAgICBzdGF0ZS5kYXRhLmxhbmd1YWdlcy5wdXNoKHtuYW1lOiIiLCBsZXZl
bDoiMyJ9KTsNCiAgICAgICAgICBjb25zdCBpZHggPSBzdGF0ZS5kYXRhLmxhbmd1YWdlcy5sZW5ndGggLSAxOw0KICAgICAgICAgIHJlbmRlckR5bmFtaWNT
ZWN0aW9ucygpOw0KICAgICAgICAgIHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAgICAgICAgICBzdGF0ZS5sYXN0UHZLZXkgPSAibGFuZy0i
K2lkeDsNCiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PiBwb3NpdGlvbkhpZ2hsaWdodCgibGFuZy0iK2lkeCkpOw0KICAgICAgICB9Ow0K
DQogICAgICAgIGNvbnN0IGFkZENlcnQgPSBlbCgiYWRkLWNlcnQiKTsNCiAgICAgICAgaWYoYWRkQ2VydCkgYWRkQ2VydC5vbmNsaWNrID0gKCk9PnsNCiAg
ICAgICAgICBzdGF0ZS5kYXRhLmNlcnRpZmljYXRpb25zID0gc3RhdGUuZGF0YS5jZXJ0aWZpY2F0aW9ucyB8fCBbXTsNCiAgICAgICAgICBzdGF0ZS5kYXRh
LmNlcnRpZmljYXRpb25zLnB1c2goe25hbWU6IiIsIHllYXI6IiJ9KTsNCiAgICAgICAgICByZW5kZXJEeW5hbWljU2VjdGlvbnMoKTsNCiAgICAgICAgICBy
ZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgIH07DQoNCiAgICAgICAgY29uc3QgYWRkU2tpbGwgPSBlbCgiYWRkLXNraWxsIik7DQog
ICAgICAgIGlmKGFkZFNraWxsKSBhZGRTa2lsbC5vbmNsaWNrID0gKCk9PnsNCiAgICAgICAgICBzdGF0ZS5kYXRhLnNraWxscyA9IHN0YXRlLmRhdGEuc2tp
bGxzIHx8IFtdOw0KICAgICAgICAgIHN0YXRlLmRhdGEuc2tpbGxMZXZlbHMgPSBzdGF0ZS5kYXRhLnNraWxsTGV2ZWxzIHx8IFtdOw0KICAgICAgICAgIHN0
YXRlLmRhdGEuc2tpbGxzLnB1c2godC5uZXdTa2lsbCk7DQogICAgICAgICAgc3RhdGUuZGF0YS5za2lsbExldmVscy5wdXNoKDMpOw0KICAgICAgICAgIGNv
bnN0IGlkeCA9IHN0YXRlLmRhdGEuc2tpbGxzLmxlbmd0aCAtIDE7DQogICAgICAgICAgcmVuZGVyRHluYW1pY1NlY3Rpb25zKCk7DQogICAgICAgICAgcmVu
ZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgIHN0YXRlLmxhc3RQdktleSA9ICJza2lsbC0iK2lkeDsNCiAgICAgICAgICByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKCk9PiBwb3NpdGlvbkhpZ2hsaWdodCgic2tpbGwtIitpZHgpKTsNCiAgICAgICAgfTsNCg0KICAgICAgICB3cmFwLm9uY2xpY2sg
PSAoZSk9PnsNCiAgICAgICAgICBjb25zdCBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCJidXR0b24iKTsNCiAgICAgICAgICBpZighYnRuKSByZXR1cm47DQog
ICAgICAgICAgY29uc3QgYSA9IChrKT0+IGJ0bi5nZXRBdHRyaWJ1dGUoayk7DQoNCiAgICAgICAgICBpZihhKCJkYXRhLWV4cC1kZWwiKSE9PW51bGwpeyBz
dGF0ZS5kYXRhLmV4cGVyaWVuY2Uuc3BsaWNlKE51bWJlcihhKCJkYXRhLWV4cC1kZWwiKSksMSk7IHJlbmRlckR5bmFtaWNTZWN0aW9ucygpOyByZW5kZXJQ
cmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7IH0NCiAgICAgICAgICBpZihhKCJkYXRhLWVkdS1kZWwiKSE9PW51bGwpeyBzdGF0ZS5kYXRhLmVkdWNhdGlvbi5z
cGxpY2UoTnVtYmVyKGEoImRhdGEtZWR1LWRlbCIpKSwxKTsgcmVuZGVyRHluYW1pY1NlY3Rpb25zKCk7IHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9
KTsgfQ0KICAgICAgICAgIGlmKGEoImRhdGEtbGFuZy1kZWwiKSE9PW51bGwpeyBzdGF0ZS5kYXRhLmxhbmd1YWdlcy5zcGxpY2UoTnVtYmVyKGEoImRhdGEt
bGFuZy1kZWwiKSksMSk7IHJlbmRlckR5bmFtaWNTZWN0aW9ucygpOyByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7IH0NCiAgICAgICAgICBpZihh
KCJkYXRhLWNlcnQtZGVsIikhPT1udWxsKXsgc3RhdGUuZGF0YS5jZXJ0aWZpY2F0aW9ucy5zcGxpY2UoTnVtYmVyKGEoImRhdGEtY2VydC1kZWwiKSksMSk7
IHJlbmRlckR5bmFtaWNTZWN0aW9ucygpOyByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7IH0NCiAgICAgICAgICBpZihhKCJkYXRhLXNraWxsLWRl
bCIpIT09bnVsbCl7DQogICAgICAgICAgICBjb25zdCBkZWwgPSBOdW1iZXIoYSgiZGF0YS1za2lsbC1kZWwiKSk7DQogICAgICAgICAgICBzdGF0ZS5kYXRh
LnNraWxscy5zcGxpY2UoZGVsLDEpOw0KICAgICAgICAgICAgc3RhdGUuZGF0YS5za2lsbExldmVscy5zcGxpY2UoZGVsLDEpOw0KICAgICAgICAgICAgcmVu
ZGVyRHluYW1pY1NlY3Rpb25zKCk7DQogICAgICAgICAgICByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgICAgfQ0KDQogICAgICAg
ICAgaWYoYSgiZGF0YS1sYW5nZGlzcCIpIT09bnVsbCl7DQogICAgICAgICAgICBzdGF0ZS5sYW5nRGlzcGxheSA9IGEoImRhdGEtbGFuZ2Rpc3AiKTsNCiAg
ICAgICAgICAgIHJlbmRlckR5bmFtaWNTZWN0aW9ucygpOw0KICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAg
ICAgc3RhdGUubGFzdFB2S2V5ID0gInNlY3Rpb24tbGFuZ3VhZ2VzIjsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYoYSgiZGF0YS1za2lsbGRpc3AiKSE9
PW51bGwpew0KICAgICAgICAgICAgc3RhdGUuc2tpbGxEaXNwbGF5ID0gYSgiZGF0YS1za2lsbGRpc3AiKTsNCiAgICAgICAgICAgIHJlbmRlckR5bmFtaWNT
ZWN0aW9ucygpOw0KICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOw0KICAgICAgICAgICAgc3RhdGUubGFzdFB2S2V5ID0gInNl
Y3Rpb24tc2tpbGxzIjsNCiAgICAgICAgICB9DQogICAgICAgIH07DQoNCiAgICAgICAgd3JhcC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgKGUp
PT57DQogICAgICAgICAgY29uc3Qgbm9kZSA9IGUudGFyZ2V0Ow0KICAgICAgICAgIGlmKG5vZGUgJiYgbm9kZS5tYXRjaGVzICYmIChub2RlLm1hdGNoZXMo
ImlucHV0LmN2Yi1pbnB1dCwgdGV4dGFyZWEuY3ZiLWlucHV0IikpKXsNCiAgICAgICAgICAgIG1heWJlQ2xlYXJHaG9zdEZpZWxkKG5vZGUpOw0KICAgICAg
ICAgICAgaWYobm9kZS52YWx1ZSA9PT0gIiIpIHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAgICAgICAgICB9DQogICAgICAgIH0sIHRydWUp
Ow0KDQogICAgICAgIHdyYXAuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsIChlKT0+ew0KICAgICAgICAgIGNvbnN0IG5vZGUgPSBlLnRhcmdldDsNCiAg
ICAgICAgICBpZihub2RlICYmIG5vZGUubWF0Y2hlcyAmJiAobm9kZS5tYXRjaGVzKCJpbnB1dC5jdmItaW5wdXQsIHRleHRhcmVhLmN2Yi1pbnB1dCwgc2Vs
ZWN0LmN2Yi1pbnB1dCIpKSl7DQogICAgICAgICAgICBtYXliZUNsZWFyR2hvc3RGaWVsZChub2RlKTsNCiAgICAgICAgICAgIGlmKG5vZGUudmFsdWUgPT09
ICIiKSByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgICAgICBvbkZpZWxkRm9jdXMobm9kZSk7DQogICAgICAgICAgfQ0KICAgICAg
ICB9LCB0cnVlKTsNCg0KICAgICAgICB3cmFwLm9uaW5wdXQgPSAoZSk9PnsNCiAgICAgICAgICBjb25zdCBpbnAgPSBlLnRhcmdldDsNCiAgICAgICAgICBp
ZighaW5wIHx8ICFpbnAuZ2V0QXR0cmlidXRlKSByZXR1cm47DQogICAgICAgICAgaWYoc3RhdGUuZ2hvc3QpIGlucC5jbGFzc0xpc3QucmVtb3ZlKCJjdmIt
Z2hvc3QiKTsNCg0KICAgICAgICAgIGNvbnN0IHBpY2sgPSAoYXR0cik9PiBpbnAuZ2V0QXR0cmlidXRlKGF0dHIpOw0KDQogICAgICAgICAgaWYocGljaygi
ZGF0YS1leHAtcG9zIikhPT1udWxsKSBzdGF0ZS5kYXRhLmV4cGVyaWVuY2VbTnVtYmVyKHBpY2soImRhdGEtZXhwLXBvcyIpKV0ucG9zaXRpb24gPSBpbnAu
dmFsdWUgfHwgIiI7DQogICAgICAgICAgZWxzZSBpZihwaWNrKCJkYXRhLWV4cC1jb21wIikhPT1udWxsKSBzdGF0ZS5kYXRhLmV4cGVyaWVuY2VbTnVtYmVy
KHBpY2soImRhdGEtZXhwLWNvbXAiKSldLmNvbXBhbnkgPSBpbnAudmFsdWUgfHwgIiI7DQogICAgICAgICAgZWxzZSBpZihwaWNrKCJkYXRhLWV4cC1wZXIi
KSE9PW51bGwpIHN0YXRlLmRhdGEuZXhwZXJpZW5jZVtOdW1iZXIocGljaygiZGF0YS1leHAtcGVyIikpXS5wZXJpb2QgPSBpbnAudmFsdWUgfHwgIiI7DQog
ICAgICAgICAgZWxzZSBpZihwaWNrKCJkYXRhLWV4cC1kZXNjIikhPT1udWxsKSBzdGF0ZS5kYXRhLmV4cGVyaWVuY2VbTnVtYmVyKHBpY2soImRhdGEtZXhw
LWRlc2MiKSldLmRlc2NyaXB0aW9uID0gaW5wLnZhbHVlIHx8ICIiOw0KDQogICAgICAgICAgaWYocGljaygiZGF0YS1lZHUtZGVnIikhPT1udWxsKSBzdGF0
ZS5kYXRhLmVkdWNhdGlvbltOdW1iZXIocGljaygiZGF0YS1lZHUtZGVnIikpXS5kZWdyZWUgPSBpbnAudmFsdWUgfHwgIiI7DQogICAgICAgICAgZWxzZSBp
ZihwaWNrKCJkYXRhLWVkdS1zY2giKSE9PW51bGwpIHN0YXRlLmRhdGEuZWR1Y2F0aW9uW051bWJlcihwaWNrKCJkYXRhLWVkdS1zY2giKSldLnNjaG9vbCA9
IGlucC52YWx1ZSB8fCAiIjsNCiAgICAgICAgICBlbHNlIGlmKHBpY2soImRhdGEtZWR1LXlyIikhPT1udWxsKSBzdGF0ZS5kYXRhLmVkdWNhdGlvbltOdW1i
ZXIocGljaygiZGF0YS1lZHUteXIiKSldLnllYXIgPSBpbnAudmFsdWUgfHwgIiI7DQoNCiAgICAgICAgICBpZihwaWNrKCJkYXRhLWxhbmctbmFtZSIpIT09
bnVsbCkgc3RhdGUuZGF0YS5sYW5ndWFnZXNbTnVtYmVyKHBpY2soImRhdGEtbGFuZy1uYW1lIikpXS5uYW1lID0gaW5wLnZhbHVlIHx8ICIiOw0KDQogICAg
ICAgICAgaWYocGljaygiZGF0YS1jZXJ0LW5hbWUiKSE9PW51bGwpIHN0YXRlLmRhdGEuY2VydGlmaWNhdGlvbnNbTnVtYmVyKHBpY2soImRhdGEtY2VydC1u
YW1lIikpXS5uYW1lID0gaW5wLnZhbHVlIHx8ICIiOw0KICAgICAgICAgIGVsc2UgaWYocGljaygiZGF0YS1jZXJ0LXlyIikhPT1udWxsKSBzdGF0ZS5kYXRh
LmNlcnRpZmljYXRpb25zW051bWJlcihwaWNrKCJkYXRhLWNlcnQteXIiKSldLnllYXIgPSBpbnAudmFsdWUgfHwgIiI7DQoNCiAgICAgICAgICBpZihwaWNr
KCJkYXRhLXNraWxsLW5hbWUiKSE9PW51bGwpIHN0YXRlLmRhdGEuc2tpbGxzW051bWJlcihwaWNrKCJkYXRhLXNraWxsLW5hbWUiKSldID0gaW5wLnZhbHVl
IHx8ICIiOw0KICAgICAgICAgIGlmKHBpY2soImRhdGEtc2tpbGwtbHZsIikhPT1udWxsKSBzdGF0ZS5kYXRhLnNraWxsTGV2ZWxzW051bWJlcihwaWNrKCJk
YXRhLXNraWxsLWx2bCIpKV0gPSBOdW1iZXIoaW5wLnZhbHVlfHwzKTsNCg0KICAgICAgICAgIHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAg
ICAgICAgfTsNCg0KICAgICAgICB3cmFwLm9uY2hhbmdlID0gKGUpPT57DQogICAgICAgICAgY29uc3QgaW5wID0gZS50YXJnZXQ7DQogICAgICAgICAgaWYo
IWlucCB8fCAhaW5wLmdldEF0dHJpYnV0ZSkgcmV0dXJuOw0KICAgICAgICAgIGNvbnN0IGsgPSBpbnAuZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmctbHZsIik7
DQogICAgICAgICAgaWYoayE9PW51bGwpew0KICAgICAgICAgICAgc3RhdGUuZGF0YS5sYW5ndWFnZXNbTnVtYmVyKGspXS5sZXZlbCA9IGlucC52YWx1ZSB8
fCAiMyI7DQogICAgICAgICAgICByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgfQ0KDQog
ICAgICBmdW5jdGlvbiBiaW5kVG9wUm93KCl7DQogICAgICAgIGNvbnN0IHRyYWNrID0gZWwoInRwbC10cmFjayIpOw0KICAgICAgICBjb25zdCBwcmV2ID0g
ZWwoInRwbC1wcmV2Iik7DQogICAgICAgIGNvbnN0IG5leHQgPSBlbCgidHBsLW5leHQiKTsNCg0KICAgICAgICBpZih0cmFjayl7DQogICAgICAgICAgdHJh
Y2suYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZSk9PnsNCiAgICAgICAgICAgIGNvbnN0IGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLXRwbF0i
KTsNCiAgICAgICAgICAgIGlmKCFidG4pIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IGlkID0gYnRuLmdldEF0dHJpYnV0ZSgiZGF0YS10cGwiKTsNCiAg
ICAgICAgICAgIGlmKCFpZCB8fCBpZCA9PT0gc3RhdGUudGVtcGxhdGUpIHJldHVybjsNCg0KICAgICAgICAgICAgY29uc3Qgb2xkVHBsID0gc3RhdGUudGVt
cGxhdGU7DQogICAgICAgICAgICBjb25zdCBvbGREZWZhdWx0ID0gKFRQTF9DT0xPUltvbGRUcGxdIHx8IHN0YXRlLnRoZW1lLnByaW1hcnkpOw0KICAgICAg
ICAgICAgY29uc3QgbmV3RGVmYXVsdCA9IChUUExfQ09MT1JbaWRdIHx8IHN0YXRlLnRoZW1lLnByaW1hcnkpOw0KDQogICAgICAgICAgICBzdGF0ZS50ZW1w
bGF0ZSA9IGlkOw0KDQogICAgICAgICAgICBpZighc3RhdGUuc2lkZWJhclRvdWNoZWQgfHwgc3RhdGUudGhlbWUuc2lkZWJhciA9PT0gb2xkRGVmYXVsdCkg
c3RhdGUudGhlbWUuc2lkZWJhciA9IG5ld0RlZmF1bHQ7DQogICAgICAgICAgICBpZighc3RhdGUuc2lkZWJhclRleHRUb3VjaGVkKSBzdGF0ZS50aGVtZS5z
aWRlYmFyVGV4dCA9ICIjZmZmZmZmIjsNCg0KICAgICAgICAgICAgYXBwbHlDb2xvcnNVSSgpOw0KICAgICAgICAgICAgcmVuZGVyVGVtcGxhdGVCYXIoKTsN
Cg0KICAgICAgICAgICAgc3RhdGUuc2hpZnRZID0gMDsNCiAgICAgICAgICAgIHN0YXRlLmxhc3RQdktleSA9IG51bGw7DQogICAgICAgICAgICBjb25zdCBo
aSA9IGVsKCJwdi1oaWdobGlnaHQiKTsNCiAgICAgICAgICAgIGlmKGhpKSBoaS5zdHlsZS5vcGFjaXR5ID0gIjAiOw0KICAgICAgICAgICAgcmVuZGVyUHJl
dmlldyh7cHJlc2VydmU6ZmFsc2V9KTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHNjcm9sbEJ5ID0gKGRpcik9PnsNCiAg
ICAgICAgICBjb25zdCB0ciA9IGVsKCJ0cGwtdHJhY2siKTsNCiAgICAgICAgICBpZih0cikgdHIuc2Nyb2xsTGVmdCArPSBkaXIgKiAzMjA7DQogICAgICAg
IH07DQogICAgICAgIGlmKHByZXYpIHByZXYub25jbGljayA9ICgpPT4gc2Nyb2xsQnkoLTEpOw0KICAgICAgICBpZihuZXh0KSBuZXh0Lm9uY2xpY2sgPSAo
KT0+IHNjcm9sbEJ5KDEpOw0KDQogICAgICAgIGNvbnN0IGxhbmdTZWwgPSBlbCgiY3ZiLWxhbmciKTsNCiAgICAgICAgaWYobGFuZ1NlbCkgbGFuZ1NlbC5v
bmNoYW5nZSA9ICgpPT57DQogICAgICAgICAgc3RhdGUubGFuZyA9IGxhbmdTZWwudmFsdWUgfHwgImVuIjsNCiAgICAgICAgICBhcHBseUkxOG4oKTsNCiAg
ICAgICAgICByZW5kZXJEeW5hbWljU2VjdGlvbnMoKTsNCiAgICAgICAgICByZW5kZXJQcmV2aWV3KHtwcmVzZXJ2ZTp0cnVlfSk7DQogICAgICAgIH07DQoN
CiAgICAgICAgY29uc3QgZm9udFNlbCA9IGVsKCJjdmItZm9udCIpOw0KICAgICAgICBpZihmb250U2VsKSBmb250U2VsLm9uY2hhbmdlID0gKCk9PnsNCiAg
ICAgICAgICBzdGF0ZS5mb250ID0gZm9udFNlbC52YWx1ZTsNCiAgICAgICAgICBzZXRSb290Rm9udCgpOw0KICAgICAgICAgIHJlbmRlclByZXZpZXcoe3By
ZXNlcnZlOnRydWV9KTsNCiAgICAgICAgfTsNCg0KICAgICAgICBjb25zdCBwcmludEJ0biA9IGVsKCJjdmItcHJpbnQiKTsNCiAgICAgICAgaWYocHJpbnRC
dG4pIHByaW50QnRuLm9uY2xpY2sgPSAoKT0+IHByaW50Q1YoKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gaHlkcmF0ZUZvcm0oKXsKICAgICAgICBj
b25zdCBzZXQgPSAoaWQsIHZhbCk9PnsKICAgICAgICAgIGNvbnN0IHggPSBlbChpZCk7CiAgICAgICAgICBpZigheCkgcmV0dXJuOwogICAgICAgICAgeC52
YWx1ZSA9IHZhbCA/PyAiIjsKICAgICAgICAgIHguY2xhc3NMaXN0LnRvZ2dsZSgiY3ZiLWdob3N0IiwgISFzdGF0ZS5naG9zdCk7DQogICAgICAgIH07DQoN
CiAgICAgICAgc2V0KCJmdWxsTmFtZSIsIHN0YXRlLmRhdGEubmFtZSB8fCAiIik7DQogICAgICAgIHNldCgiam9iVGl0bGUiLCBzdGF0ZS5kYXRhLnRpdGxl
IHx8ICIiKTsNCiAgICAgICAgc2V0KCJlbWFpbCIsIHN0YXRlLmRhdGEuZW1haWwgfHwgIiIpOw0KICAgICAgICBzZXQoInBob25lIiwgc3RhdGUuZGF0YS5w
aG9uZSB8fCAiIik7DQogICAgICAgIHNldCgiYWRkcmVzcyIsIHN0YXRlLmRhdGEuYWRkcmVzcyB8fCAiIik7DQogICAgICAgIHNldCgid2Vic2l0ZSIsIHN0
YXRlLmRhdGEud2Vic2l0ZSB8fCAiIik7DQogICAgICAgIHNldCgibmF0aW9uYWxpdHkiLCBzdGF0ZS5kYXRhLm5hdGlvbmFsaXR5IHx8ICIiKTsNCiAgICAg
ICAgc2V0KCJzdW1tYXJ5Iiwgc3RhdGUuZGF0YS5zdW1tYXJ5IHx8ICIiKTsNCg0KICAgICAgICBhdHRhY2hHaG9zdENsZWFyKCJmdWxsTmFtZSIsIFNBTVBM
RS5uYW1lKTsNCiAgICAgICAgYXR0YWNoR2hvc3RDbGVhcigiam9iVGl0bGUiLCBTQU1QTEUudGl0bGUpOw0KICAgICAgICBhdHRhY2hHaG9zdENsZWFyKCJl
bWFpbCIsIFNBTVBMRS5lbWFpbCk7DQogICAgICAgIGF0dGFjaEdob3N0Q2xlYXIoInBob25lIiwgU0FNUExFLnBob25lKTsNCiAgICAgICAgYXR0YWNoR2hv
c3RDbGVhcigiYWRkcmVzcyIsIFNBTVBMRS5hZGRyZXNzKTsNCiAgICAgICAgYXR0YWNoR2hvc3RDbGVhcigid2Vic2l0ZSIsIFNBTVBMRS53ZWJzaXRlKTsN
CiAgICAgICAgYXR0YWNoR2hvc3RDbGVhcigibmF0aW9uYWxpdHkiLCBTQU1QTEUubmF0aW9uYWxpdHkpOw0KDQogICAgICAgIGNvbnN0IHMgPSBlbCgic3Vt
bWFyeSIpOw0KICAgICAgICBpZihzKXsNCiAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgiZGF0YS1zYW1wbGUiLCBTQU1QTEUuc3VtbWFyeSB8fCAiIik7DQog
ICAgICAgICAgcy5jbGFzc0xpc3QudG9nZ2xlKCJjdmItZ2hvc3QiLCAhIXN0YXRlLmdob3N0KTsNCg0KICAgICAgICAgIGNvbnN0IGNsZWFyID0gKCk9PnsN
CiAgICAgICAgICAgIGlmKCFzdGF0ZS5naG9zdCkgcmV0dXJuOw0KICAgICAgICAgICAgaWYoKHMudmFsdWV8fCIiKSA9PT0gKFNBTVBMRS5zdW1tYXJ5fHwi
Iikpew0KICAgICAgICAgICAgICBzLnZhbHVlID0gIiI7DQogICAgICAgICAgICAgIHMuY2xhc3NMaXN0LnJlbW92ZSgiY3ZiLWdob3N0Iik7DQogICAgICAg
ICAgICAgIHJlbmRlclByZXZpZXcoe3ByZXNlcnZlOnRydWV9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9Ow0KICAgICAgICAgIHMuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2VlbnRlciIsIGNsZWFyKTsNCiAgICAgICAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgY2xlYXIpOw0KICAgICAgICAgIHMu
YWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCAoKT0+ewogICAgICAgICAgICBpZihzdGF0ZS5naG9zdCkgcy5jbGFzc0xpc3QucmVtb3ZlKCJjdmItZ2hvc3Qi
KTsKICAgICAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2VydmU6dHJ1ZX0pOwogICAgICAgICAgfSwge3Bhc3NpdmU6dHJ1ZX0pOwogICAgICAgIH0KICAg
ICAgfQoKICAgICAgZnVuY3Rpb24gc2V0SW1wb3J0YW50U3R5bGUobm9kZSwgcHJvcCwgdmFsdWUpewogICAgICAgIGlmKG5vZGUgJiYgbm9kZS5zdHlsZSkg
bm9kZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wLCB2YWx1ZSwgImltcG9ydGFudCIpOwogICAgICB9CgogICAgICBmdW5jdGlvbiBhcHBseVJlc3BvbnNpdmVS
dW50aW1lTW9kZSgpewogICAgICAgIGNvbnN0IG1haW4gPSBlbCgiY3ZiLW1haW4tbGF5b3V0Iik7CiAgICAgICAgY29uc3QgZWRpdG9yID0gZWwoImN2Yi1l
ZGl0b3IiKTsKICAgICAgICBjb25zdCBwcmV2aWV3Q29sID0gZWwoImN2Yi1wcmV2aWV3LWNvbCIpOwogICAgICAgIGNvbnN0IHByZXZpZXdQYW5lID0gZWwo
InByZXZpZXctcGFuZSIpOwogICAgICAgIGNvbnN0IHBhbmVJbm5lciA9IHByZXZpZXdQYW5lID8gcHJldmlld1BhbmUucXVlcnlTZWxlY3RvcigiLnJlbGF0
aXZlLmZsZXgtMSIpIDogbnVsbDsKICAgICAgICBjb25zdCBzaGlmdFdyYXAgPSBlbCgic2hpZnQtd3JhcCIpOwogICAgICAgIGNvbnN0IHNjYWxlV3JhcCA9
IGVsKCJzY2FsZS13cmFwIik7CiAgICAgICAgaWYoIW1haW4gfHwgIWVkaXRvciB8fCAhcHJldmlld0NvbCB8fCAhcHJldmlld1BhbmUpIHJldHVybjsKCiAg
ICAgICAgY29uc3Qgb25lQ29sID0gaXNPbmVDb2woKTsKICAgICAgICBjb25zdCB2aWV3cG9ydCA9IGdldFZpZXdwb3J0U2l6ZSgpOwoKICAgICAgICBpZihv
bmVDb2wpewogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUobWFpbiwgImZsZXgtZGlyZWN0aW9uIiwgImNvbHVtbiIpOwogICAgICAgICAgc2V0SW1wb3J0
YW50U3R5bGUobWFpbiwgImFsaWduLWl0ZW1zIiwgInN0cmV0Y2giKTsKCiAgICAgICAgICBbZWRpdG9yLCBwcmV2aWV3Q29sXS5mb3JFYWNoKChub2RlKT0+
ewogICAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShub2RlLCAiZmxleCIsICIwIDAgYXV0byIpOwogICAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShu
b2RlLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShub2RlLCAibWF4LXdpZHRoIiwgIjEwMCUiKTsKICAgICAgICAg
ICAgc2V0SW1wb3J0YW50U3R5bGUobm9kZSwgIm1pbi13aWR0aCIsICIwIik7CiAgICAgICAgICB9KTsKCiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShw
cmV2aWV3Q29sLCAib3JkZXIiLCAiMSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld0NvbCwgInBhZGRpbmciLCAiMTJweCIpOwogICAg
ICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld0NvbCwgImJvcmRlci1sZWZ0IiwgIjAiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZp
ZXdDb2wsICJib3JkZXItYm90dG9tIiwgIjFweCBzb2xpZCAjZTJlOGYwIik7CiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3Q29sLCAib3Zl
cmZsb3ciLCAidmlzaWJsZSIpOwoKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKGVkaXRvciwgIm9yZGVyIiwgIjIiKTsKCiAgICAgICAgICBzZXRJbXBv
cnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgInBvc2l0aW9uIiwgInJlbGF0aXZlIik7CiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwg
InRvcCIsICJhdXRvIik7CiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgImhlaWdodCIsICJhdXRvIik7CiAgICAgICAgICBzZXRJ
bXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgIm1heC1oZWlnaHQiLCAibm9uZSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld1BhbmUs
ICJtaW4taGVpZ2h0IiwgIjAiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZpZXdQYW5lLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAg
c2V0SW1wb3J0YW50U3R5bGUocHJldmlld1BhbmUsICJtYXgtd2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld1Bh
bmUsICJvdmVyZmxvdy14IiwgImF1dG8iKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZpZXdQYW5lLCAib3ZlcmZsb3cteSIsICJ2aXNpYmxl
Iik7CiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgImFsaWduLXNlbGYiLCAic3RyZXRjaCIpOwoKICAgICAgICAgIGlmKHBhbmVJ
bm5lcil7CiAgICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHBhbmVJbm5lciwgImZsZXgiLCAiMCAwIGF1dG8iKTsKICAgICAgICAgICAgc2V0SW1wb3J0
YW50U3R5bGUocGFuZUlubmVyLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwYW5lSW5uZXIsICJvdmVyZmxvdyIs
ICJ2aXNpYmxlIik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKG1haW4sICJmbGV4LWRpcmVjdGlv
biIsICJyb3ciKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKG1haW4sICJhbGlnbi1pdGVtcyIsICJzdHJldGNoIik7CgogICAgICAgICAgW2VkaXRv
ciwgcHJldmlld0NvbF0uZm9yRWFjaCgobm9kZSk9PnsKICAgICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUobm9kZSwgImZsZXgiLCAiMCAwIDUwJSIpOwog
ICAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShub2RlLCAid2lkdGgiLCAiNTAlIik7CiAgICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKG5vZGUsICJt
YXgtd2lkdGgiLCAiNTAlIik7CiAgICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKG5vZGUsICJtaW4td2lkdGgiLCAiMCIpOwogICAgICAgICAgfSk7Cgog
ICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUoZWRpdG9yLCAib3JkZXIiLCAiMSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld0NvbCwg
Im9yZGVyIiwgIjIiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZpZXdDb2wsICJwYWRkaW5nIiwgIjEwcHgiKTsKICAgICAgICAgIHNldElt
cG9ydGFudFN0eWxlKHByZXZpZXdDb2wsICJib3JkZXItbGVmdCIsICIxcHggc29saWQgI2UyZThmMCIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUo
cHJldmlld0NvbCwgImJvcmRlci1ib3R0b20iLCAiMCIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld0NvbCwgIm92ZXJmbG93IiwgInZp
c2libGUiKTsKCiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgInBvc2l0aW9uIiwgInN0aWNreSIpOwogICAgICAgICAgc2V0SW1w
b3J0YW50U3R5bGUocHJldmlld1BhbmUsICJ0b3AiLCAiMTBweCIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld1BhbmUsICJoZWlnaHQi
LCAiY2FsYygiICsgdmlld3BvcnQuaGVpZ2h0ICsgInB4IC0gMjBweCkiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZpZXdQYW5lLCAibWF4
LWhlaWdodCIsICJjYWxjKCIgKyB2aWV3cG9ydC5oZWlnaHQgKyAicHggLSAyMHB4KSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld1Bh
bmUsICJtaW4taGVpZ2h0IiwgIjAiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHByZXZpZXdQYW5lLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAg
ICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmlld1BhbmUsICJtYXgtd2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocHJldmll
d1BhbmUsICJvdmVyZmxvdyIsICJ2aXNpYmxlIik7CiAgICAgICAgICBzZXRJbXBvcnRhbnRTdHlsZShwcmV2aWV3UGFuZSwgImFsaWduLXNlbGYiLCAiZmxl
eC1zdGFydCIpOwoKICAgICAgICAgIGlmKHBhbmVJbm5lcil7CiAgICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHBhbmVJbm5lciwgImZsZXgiLCAiMSAx
IGF1dG8iKTsKICAgICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUocGFuZUlubmVyLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgICBzZXRJbXBvcnRh
bnRTdHlsZShwYW5lSW5uZXIsICJvdmVyZmxvdyIsICJ2aXNpYmxlIik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZihzaGlmdFdyYXApewog
ICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUoc2hpZnRXcmFwLCAid2lkdGgiLCAiMTAwJSIpOwogICAgICAgICAgc2V0SW1wb3J0YW50U3R5bGUoc2hpZnRX
cmFwLCAianVzdGlmeS1jb250ZW50IiwgImNlbnRlciIpOwogICAgICAgIH0KICAgICAgICBpZihzY2FsZVdyYXApewogICAgICAgICAgc2V0SW1wb3J0YW50
U3R5bGUoc2NhbGVXcmFwLCAibWF4LXdpZHRoIiwgIjEwMCUiKTsKICAgICAgICAgIHNldEltcG9ydGFudFN0eWxlKHNjYWxlV3JhcCwgIm1hcmdpbiIsICIw
IGF1dG8iKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHJlYnVpbGRCdWlsZGVyVUkoKXsKICAgICAgICBzeW5jRm9ybVRvU3RhdGUoKTsK
ICAgICAgICBtb3VudCgpOwogICAgICAgIGFwcGx5UmVzcG9uc2l2ZVJ1bnRpbWVNb2RlKCk7CiAgICAgICAgc2V0Um9vdEZvbnQoKTsKICAgICAgICBhcHBs
eUkxOG4oKTsKICAgICAgICByZW5kZXJUZW1wbGF0ZUJhcigpOwogICAgICAgIGh5ZHJhdGVGb3JtKCk7CiAgICAgICAgcmVuZGVyUGhvdG9QcmV2aWV3KCk7
CiAgICAgICAgYXBwbHlDb2xvcnNVSSgpOwogICAgICAgIGJpbmRDb2xvcnMoKTsKICAgICAgICBiaW5kUGhvdG8oKTsKICAgICAgICByZW5kZXJEeW5hbWlj
U2VjdGlvbnMoKTsKICAgICAgICBiaW5kVG9wUm93KCk7CiAgICAgICAgYmluZFByZXZpZXdTeW5jKCk7CiAgICAgICAgcmVuZGVyUHJldmlldyh7cHJlc2Vy
dmU6ZmFsc2V9KTsKICAgICAgfQoNCiAgICAgIG1vdW50KCk7CiAgICAgIGFwcGx5UmVzcG9uc2l2ZVJ1bnRpbWVNb2RlKCk7CiAgICAgIHNldFJvb3RGb250
KCk7CiAgICAgIGFwcGx5STE4bigpOwogICAgICByZW5kZXJUZW1wbGF0ZUJhcigpOwogICAgICBoeWRyYXRlRm9ybSgpOwogICAgICByZW5kZXJQaG90b1By
ZXZpZXcoKTsNCiAgICAgIGFwcGx5Q29sb3JzVUkoKTsNCiAgICAgIGJpbmRDb2xvcnMoKTsNCiAgICAgIGJpbmRQaG90bygpOw0KICAgICAgcmVuZGVyRHlu
YW1pY1NlY3Rpb25zKCk7DQogICAgICBiaW5kVG9wUm93KCk7DQogICAgICBiaW5kUHJldmlld1N5bmMoKTsNCiAgICAgIHJlbmRlclByZXZpZXcoe3ByZXNl
cnZlOmZhbHNlfSk7DQoKICAgICAgICAgICAgICAgICAgbGV0IGN2YlJlZnJlc2hSQUYgPSAwOwogICAgICBsZXQgY3ZiUmVmcmVzaEZpbmFsID0gbnVsbDsK
ICAgICAgbGV0IGN2Yk9yaWVudGF0aW9uVGltZXIgPSAwOwogICAgICBsZXQgY3ZiT3JpZW50YXRpb25CdXJzdCA9IFtdOwoKICAgICAgZnVuY3Rpb24gZG9T
dGFibGVWaWV3cG9ydFJlZnJlc2goKXsKICAgICAgICBjb25zdCByb290ID0gZWwoImN2Yi1yb290Iik7CiAgICAgICAgaWYocm9vdCkgcm9vdC5jbGFzc0xp
c3QuYWRkKCJjdmItcmVmcmVzaGluZyIpOwoKICAgICAgICBhcHBseVJlc3BvbnNpdmVSdW50aW1lTW9kZSgpOwoKICAgICAgICBpZihpc09uZUNvbCgpKXsK
ICAgICAgICAgIHN0YXRlLnNoaWZ0WSA9IDA7CiAgICAgICAgICBhcHBseVRyYW5zZm9ybXMoKTsKICAgICAgICAgIGNvbnN0IGhpID0gZWwoInB2LWhpZ2hs
aWdodCIpOw0KICAgICAgICAgIGlmKGhpKSBoaS5zdHlsZS5vcGFjaXR5ID0gIjAiOw0KICAgICAgICB9DQoNCiAgICAgICAgZml0UHJldmlldygpOw0KICAg
ICAgICBpZihzdGF0ZS5sYXN0UHZLZXkpIHBvc2l0aW9uSGlnaGxpZ2h0KHN0YXRlLmxhc3RQdktleSk7DQoNCiAgICAgICAgY2xlYXJUaW1lb3V0KGN2YlJl
ZnJlc2hGaW5hbCk7DQogICAgICAgIGN2YlJlZnJlc2hGaW5hbCA9IHNldFRpbWVvdXQoKCk9PnsNCiAgICAgICAgICBmaXRQcmV2aWV3KCk7DQogICAgICAg
ICAgaWYoc3RhdGUubGFzdFB2S2V5KSBwb3NpdGlvbkhpZ2hsaWdodChzdGF0ZS5sYXN0UHZLZXkpOw0KICAgICAgICAgIGNvbnN0IHJvb3QyID0gZWwoImN2
Yi1yb290Iik7DQogICAgICAgICAgaWYocm9vdDIpIHJvb3QyLmNsYXNzTGlzdC5yZW1vdmUoImN2Yi1yZWZyZXNoaW5nIik7DQogICAgICAgIH0sIDE2MCk7
DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIHNjaGVkdWxlU3RhYmxlVmlld3BvcnRSZWZyZXNoKCl7CiAgICAgICAgaWYoY3ZiUmVmcmVzaFJBRikgY2Fu
Y2VsQW5pbWF0aW9uRnJhbWUoY3ZiUmVmcmVzaFJBRik7CiAgICAgICAgY2xlYXJUaW1lb3V0KGN2YlJlZnJlc2hGaW5hbCk7CgogICAgICAgIGN2YlJlZnJl
c2hSQUYgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnsKICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ew0KICAgICAgICAgICAgZG9T
dGFibGVWaWV3cG9ydFJlZnJlc2goKTsNCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gc2NoZWR1bGVPcmllbnRh
dGlvblJlbGF5b3V0KCl7CiAgICAgICAgY2xlYXJUaW1lb3V0KGN2Yk9yaWVudGF0aW9uVGltZXIpOwogICAgICAgIGN2Yk9yaWVudGF0aW9uQnVyc3QuZm9y
RWFjaChjbGVhclRpbWVvdXQpOwogICAgICAgIGN2Yk9yaWVudGF0aW9uQnVyc3QgPSBbXTsKICAgICAgICBjdmJPcmllbnRhdGlvblRpbWVyID0gc2V0VGlt
ZW91dCgoKT0+ewogICAgICAgICAgc3luY0Zvcm1Ub1N0YXRlKCk7CiAgICAgICAgICBzdGF0ZS5zaGlmdFkgPSAwOwogICAgICAgICAgcmVidWlsZEJ1aWxk
ZXJVSSgpOwogICAgICAgICAgc2NoZWR1bGVTdGFibGVWaWV3cG9ydFJlZnJlc2goKTsKICAgICAgICB9LCAyMjApOwoKICAgICAgICBbNDIwLCA3NjAsIDEx
MjBdLmZvckVhY2goKGRlbGF5KT0+ewogICAgICAgICAgY3ZiT3JpZW50YXRpb25CdXJzdC5wdXNoKHNldFRpbWVvdXQoKCk9PnsKICAgICAgICAgICAgc3lu
Y0Zvcm1Ub1N0YXRlKCk7CiAgICAgICAgICAgIHN0YXRlLnNoaWZ0WSA9IDA7CiAgICAgICAgICAgIHJlYnVpbGRCdWlsZGVyVUkoKTsKICAgICAgICAgICAg
c2NoZWR1bGVTdGFibGVWaWV3cG9ydFJlZnJlc2goKTsKICAgICAgICAgIH0sIGRlbGF5KSk7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCAoKT0+ewogICAgICAgIGlmKGlzQ29hcnNlUG9pbnRlcigpKSBzY2hlZHVsZU9yaWVudGF0
aW9uUmVsYXlvdXQoKTsKICAgICAgICBlbHNlIHNjaGVkdWxlU3RhYmxlVmlld3BvcnRSZWZyZXNoKCk7CiAgICAgIH0sIHtwYXNzaXZlOnRydWV9KTsKICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIiwgc2NoZWR1bGVPcmllbnRhdGlvblJlbGF5b3V0LCB7cGFzc2l2ZTp0cnVl
fSk7CgogICAgICBpZiAod2luZG93LnZpc3VhbFZpZXdwb3J0KSB7CiAgICAgICAgd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJl
c2l6ZSIsICgpPT57CiAgICAgICAgICBpZihpc0NvYXJzZVBvaW50ZXIoKSkgc2NoZWR1bGVPcmllbnRhdGlvblJlbGF5b3V0KCk7CiAgICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgc3RhdGUuc2hpZnRZID0gMDsKICAgICAgICAgICAgYXBwbHlUcmFuc2Zvcm1zKCk7CiAgICAgICAgICAgIHJlbmRlclByZXZpZXco
e3ByZXNlcnZlOmZhbHNlfSk7CiAgICAgICAgICAgIHNjaGVkdWxlU3RhYmxlVmlld3BvcnRSZWZyZXNoKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwge3Bh
c3NpdmU6dHJ1ZX0pOwogICAgICB9CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAoKT0+ew0KICAgICAgICBpZihzdGF0ZS5sYXN0
UHZLZXkpIHBvc2l0aW9uSGlnaGxpZ2h0KHN0YXRlLmxhc3RQdktleSk7DQogICAgICB9LCB7cGFzc2l2ZTp0cnVlfSk7DQogICAgfSk7DQogIH0pKCk7DQo=
Request Update
Report Bug
CV Builder Free is a browser-based resume studio built for one thing: helping you create a professional A4 CV fast, with a live preview and a clean Print/PDF output. Itโs free to use, fully customizable, and designed to keep your layout stable while you editโso your final PDF matches what you see.
What you can do with this free CV builder
Build an A4 CV with a live preview
As you type, the preview updates instantly. You donโt need to guess how your CV will look on paper. The layout is set for A4 (210 ร 297 mm), which is the most common standard for CV PDFs in many regions.
You can change:
Customize the design (fully)
Templates (different layouts like sidebar and clean styles)
Fonts (popular CV-friendly fonts)
Colors (accent, paper/background, text, subtitle, card, sidebar, sidebar text)
Profile photo (upload up to 5MB, pick square/rounded/circle, set border width and color)
You can keep it minimalist (black/gray) or add a controlled accent for a modern lookโwithout making the CV feel โdesignedโ in a bad way.
Edit all key CV sections
The builder supports the core resume sections recruiters expect:
Personal information (name, title, email, phone, address, links)
Professional summary
Work experience (multiple entries)
Education (multiple entries)
Skills (with optional 1โ5 levels)
Languages (with optional 1โ5 levels)
Certifications
You can add or remove entries anytime, and the preview reflows automatically.
Skill and language styles (clear and optional)
Not everyone wants graphics in a CV. Thatโs why skill and language indicators can be set to:
None (no visual rating)
Dots
Bars/Lines
Stars
This helps you match the CV style to the job. For strict corporate roles, โNoneโ or โBars/Linesโ usually looks safest. For creative or modern roles, โDotsโ can be readable and compact.
One-click Print/PDF output
When youโre done, you can generate a print-ready view and use your browserโs print dialog to save as PDF. The builder focuses on printing the CV only (not the editor UI), aiming for a clean A4 page at 100% scale.
Common use cases
Applying to multiple jobs quickly
Keep one โbase CVโ and adjust only:
the professional summary
3โ6 bullet points in the most relevant job
a few skills
This is faster than rewriting the whole document every time.
Switching between clean and sidebar layouts
Some industries prefer simple layouts; others accept a sidebar that groups contact info, skills, and languages. Templates let you change the look without rebuilding the content.
Creating a consistent CV for print and email
If youโve ever had a Word CV look different on another computer, a print-focused A4 preview is a big advantage. You see what youโll send.
These are useful if you prepare a profile photo or assets and want them to stay sharp in the exported PDF.
Frequently asked questions
1) Does the PDF look the same as the preview?
In most cases, yesโbecause the preview is A4-based. For best results, use the print dialog with Scale set to 100% (avoid โFit to pageโ if it shrinks content).
2) Should I use skill and language ratings on a CV?
Use them if they help clarity. Keep them consistent and honest: 3 = can work independently , 4 = strong in real work , 5 = expert / native-level . If youโre unsure, pick 3โ4 and support it with proof in experience bullets.
here should be a html schema markup for an app regarding this calculator also introduce keywords , don't use title tags also don't use h tags , don't use ratings