ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbQppbmRleCA2ODUwZTE5Li4xMmZjOTJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2Njb21wbGV0ZS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9jY29tcGxldGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gY29tcGxldGlvbiBzY3JpcHQKICIgTGFuZ3VhZ2U6CUMKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDcgQXVnIDMwCisiIExhc3QgQ2hhbmdlOgkyMDEwIE1hciAyMwogCiAKICIgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciB0aGUgJ29tbmlmdW5jJyBvcHRpb24uCkBAIC0xNjEsNyArMTYxLDcgQEAKICAgICAgIGxldCByZXMgPSBbeydtYXRjaCc6IG1hdGNoLCAndGFnbGluZScgOiAnJywgJ2tpbmQnIDoga2luZCwgJ2luZm8nIDogbGluZX1dCiAgICAgZWxzZQogICAgICAgIiBDb21wbGV0aW5nICJ2YXIuIiwgInZhci5zb21ldGhpbmciLCBldGMuCi0gICAgICBsZXQgcmVzID0gczpOZXh0aXRlbShzdHJwYXJ0KGxpbmUsIDAsIGNvbCksIGl0ZW1zWy0xXSwgMCwgMSkKKyAgICAgIGxldCByZXMgPSBzOk5leHRpdGVtKHN0cnBhcnQobGluZSwgMCwgY29sKSwgaXRlbXNbMTpdLCAwLCAxKQogICAgIGVuZGlmCiAgIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KaW5kZXggYzFiMTc4ZC4uNzBiMTQ2ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0KQEAgLTEsNyArMSw3IEBACiAiIG5ldHJ3LnZpbTogSGFuZGxlcyBmaWxlIHRyYW5zZmVyIGFuZCByZW1vdGUgZGlyZWN0b3J5IGxpc3RpbmcgYWNyb3NzCiAiICAgICAgICAgICAgQVVUT0xPQUQgU0VDVElPTgotIiBEYXRlOgkJRGVjIDI4LCAyMDA5Ci0iIFZlcnNpb246CTEzNgorIiBEYXRlOgkJTWF5IDE0LCAyMDEwCisiIFZlcnNpb246CTEzOAogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTA3NSAxIDpBdXRvSW5zdGFsbDogbmV0cncudmltCiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKQEAgLTIyLDcgKzIyLDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX25ldHJ3IikKICAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX25ldHJ3ID0gInYxMzYiCitsZXQgZzpsb2FkZWRfbmV0cncgPSAidjEzOCIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnCiAgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgbmV0cncgbmVlZHMgdmltIDcuMiIKQEAgLTI2Niw3ICsyNjYsNyBAQAogIiBEZWZhdWx0IHZhbHVlcyAtIHMgLS0tLS0tLS0tLSB7e3szCiAiIGc6bmV0cndfc2VwY2hyOiBwaWNraW5nIGEgY2hhcmFjdGVyIHRoYXQgZG9lc24ndCBhcHBlYXIgaW4gZmlsZW5hbWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VwYXJhdGUgcHJpb3JpdHkgZnJvbSBmaWxlbmFtZQogY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19zZXBjaHIiICAgICAgICAsICgmZW5jID09ICJldWMtanAiKT8gIlw8Q2hhci0weDAxPiIgOiAiXDxDaGFyLTB4ZmY+IikKLWNhbGwgczpOZXRyd0luaXQoInM6bmV0cndfc2lsZW50eGZlciIgICAgLCAoZXhpc3RzKCJnOm5ldHJ3X3NpbGVudCIpICYmIGc6bmV0cndfc2lsZW50ICE9IDApPyAic2lsZW50ICIgOiAiIikKK2NhbGwgczpOZXRyd0luaXQoInM6bmV0cndfc2lsZW50eGZlciIgICAgLCAoZXhpc3RzKCJnOm5ldHJ3X3NpbGVudCIpICYmIGc6bmV0cndfc2lsZW50ICE9IDApPyAic2lsZW50IGtlZXBqICIgOiAia2VlcGogIikKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc29ydF9ieSIgICAgICAgLCAibmFtZSIpICIgYWx0ZXJuYXRpdmVzOiBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHNpemUKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc29ydF9vcHRpb25zIiAgLCAiIikKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc29ydF9kaXJlY3Rpb24iLCAibm9ybWFsIikgIiBhbHRlcm5hdGl2ZTogcmV2ZXJzZSAgKHogeSB4IC4uLikKQEAgLTI4NiwxMSArMjg2LDE2IEBACiBjYWxsIHM6TmV0cndJbml0KCJnOk5ldHJ3VG9wTHZsTWVudSIsIk5ldHJ3LiIpCiBjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3VzZV9lcnJvcndpbmRvdyIsMSkKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfd2luOTVmdHAiLDEpCi1jYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3dpbnNpemUiLCIiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd193aW5zaXplIiwyNSkKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIERlZmF1bHQgdmFsdWVzIGZvciBuZXRydydzIHNjcmlwdCB2YXJpYWJsZXM6IHt7ezIKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfZm5hbWVfZXNjYXBlIiwnID8mOyUnKQotY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19nbG9iX2VzY2FwZSIsJ1tdKj9ge34kJykKK2lmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQorIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfZ2xvYl9lc2NhcGUiLCdbXSo/YHskJykKK2Vsc2UKKyBjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2dsb2JfZXNjYXBlIiwnW10qP2B7fiRcJykKK2VuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X21lbnVfZXNjYXBlIiwnLi8mPyBcJykKIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfdG1wZmlsZV9lc2NhcGUiLCcgJjsnKQogY2FsbCBzOk5ldHJ3SW5pdCgiczpuZXRyd19tYXBfZXNjYXBlIiwiPHxcblxyXFxcPEMtVj5cIiIpCiAKQEAgLTMyOSw2ICszMzQsNyBAQAogICBlbmRpZgogICBsZXQge2E6dnR9bmV0cndfYWlrZWVwICAgID0gJmw6YWkKICAgbGV0IHthOnZ0fW5ldHJ3X2F3a2VlcCAgICA9ICZsOmF3CisgIGxldCB7YTp2dH1uZXRyd19ib21ia2VlcCAgPSAmbDpib21iCiAgIGxldCB7YTp2dH1uZXRyd19jaWtlZXAgICAgPSAmbDpjaQogICBsZXQge2E6dnR9bmV0cndfY2lua2VlcCAgID0gJmw6Y2luCiAgIGxldCB7YTp2dH1uZXRyd19jaW5va2VlcCAgPSAmbDpjaW5vCkBAIC0zNDAsNiArMzQ2LDcgQEAKICAgbGV0IHthOnZ0fW5ldHJ3X2Zva2VlcCAgICA9ICZsOmZvICAgICAgICAgICAiIGZvcm1hdG9wdGlvbnMKICAgbGV0IHthOnZ0fW5ldHJ3X2dka2VlcCAgICA9ICZsOmdkICAgICAgICAgICAiIGdkZWZhdWx0CiAgIGxldCB7YTp2dH1uZXRyd19oaWRrZWVwICAgPSAmbDpoaWRkZW4KKyAgbGV0IHthOnZ0fW5ldHJ3X2lta2VlcCAgICA9ICZsOmltCiAgIGxldCB7YTp2dH1uZXRyd19tYWdpY2tlZXAgPSAmbDptYWdpYwogICBsZXQge2E6dnR9bmV0cndfcmVwa2VlcCAgID0gJmw6cmVwb3J0CiAgIGxldCB7YTp2dH1uZXRyd19zcGVsbGtlZXAgPSAmbDpzcGVsbApAQCAtMzc1LDcgKzM4Miw3IEBACiAiICAgICBjYWxsIERlY2hvKCJleGUga2VlcGp1bXBzIGxjZCAiLmZuYW1lZXNjYXBlKGN1cmRpcikpICAiIE5PVEU6IHdhcyBnOm5ldHJ3X2ZuYW1lX2VzY2FwZSBmb3Igc29tZSByZWFzb24KICAgICAgdHJ5CiAgICAgICBpZiAhZXhpc3RzKCImbDphY2QiKSAmJiAhJmw6YWNkCi0gICAgICAgZXhlICdrZWVwanVtcHMgbGNkICcuZm5hbWVlc2NhcGUoY3VyZGlyKQorICAgICAgIGV4ZSAna2VlcGogbGNkICcuZm5hbWVlc2NhcGUoY3VyZGlyKQogICAgICAgZW5kaWYKICAgICAgY2F0Y2ggL15WaW1cJSgoXGFcKylcKVw9OkU0NzIvCiAgICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsInVuYWJsZSB0byBjaGFuZ2UgZGlyZWN0b3J5IHRvIDwiLmN1cmRpci4iPiAocGVybWlzc2lvbnM/KSIsNjEpCkBAIC0zODUsNiArMzkyLDcgQEAKICAgZW5kaWYKICAgaWYgZXhpc3RzKCJ7YTp2dH1uZXRyd19haWtlZXAiKSAgIHxsZXQgJmw6YWkgICAgID0ge2E6dnR9bmV0cndfYWlrZWVwICAgICAgfHVubGV0IHthOnZ0fW5ldHJ3X2Fpa2VlcCAgIHxlbmRpZgogICBpZiBleGlzdHMoInthOnZ0fW5ldHJ3X2F3a2VlcCIpICAgfGxldCAmbDphdyAgICAgPSB7YTp2dH1uZXRyd19hd2tlZXAgICAgICB8dW5sZXQge2E6dnR9bmV0cndfYXdrZWVwICAgfGVuZGlmCisgIGlmIGV4aXN0cygie2E6dnR9bmV0cndfYm9tYmtlZXAiKSB8bGV0ICZsOmJvbWIgICA9IHthOnZ0fW5ldHJ3X2JvbWJrZWVwICAgIHx1bmxldCB7YTp2dH1uZXRyd19ib21ia2VlcCB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ7YTp2dH1uZXRyd19jaWtlZXAiKSAgIHxsZXQgJmw6Y2kgICAgID0ge2E6dnR9bmV0cndfY2lrZWVwICAgICAgfHVubGV0IHthOnZ0fW5ldHJ3X2Npa2VlcCAgIHxlbmRpZgogICBpZiBleGlzdHMoInthOnZ0fW5ldHJ3X2NpbmtlZXAiKSAgfGxldCAmbDpjaW4gICAgPSB7YTp2dH1uZXRyd19jaW5rZWVwICAgICB8dW5sZXQge2E6dnR9bmV0cndfY2lua2VlcCAgfGVuZGlmCiAgIGlmIGV4aXN0cygie2E6dnR9bmV0cndfY2lub2tlZXAiKSB8bGV0ICZsOmNpbm8gICA9IHthOnZ0fW5ldHJ3X2Npbm9rZWVwICAgIHx1bmxldCB7YTp2dH1uZXRyd19jaW5va2VlcCB8ZW5kaWYKQEAgLTM5Nyw2ICs0MDUsNyBAQAogICBpZiBleGlzdHMoInthOnZ0fW5ldHJ3X2Zva2VlcCIpICAgfGxldCAmbDpmbyAgICAgPSB7YTp2dH1uZXRyd19mb2tlZXAgICAgICB8dW5sZXQge2E6dnR9bmV0cndfZm9rZWVwICAgfGVuZGlmCiAgIGlmIGV4aXN0cygie2E6dnR9bmV0cndfZ2RrZWVwIikgICB8bGV0ICZsOmdkICAgICA9IHthOnZ0fW5ldHJ3X2dka2VlcCAgICAgIHx1bmxldCB7YTp2dH1uZXRyd19nZGtlZXAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ7YTp2dH1uZXRyd19oaWRrZWVwIikgIHxsZXQgJmw6aGlkZGVuID0ge2E6dnR9bmV0cndfaGlka2VlcCAgICAgfHVubGV0IHthOnZ0fW5ldHJ3X2hpZGtlZXAgIHxlbmRpZgorICBpZiBleGlzdHMoInthOnZ0fW5ldHJ3X2lta2VlcCIpICAgfGxldCAmbDppbSAgICAgPSB7YTp2dH1uZXRyd19pbWtlZXAgICAgICB8dW5sZXQge2E6dnR9bmV0cndfaW1rZWVwICAgfGVuZGlmCiAgIGlmIGV4aXN0cygie2E6dnR9bmV0cndfbWFnaWMiKSAgICB8bGV0ICZsOm1hZ2ljICA9IHthOnZ0fW5ldHJ3X21hZ2ljICAgICAgIHx1bmxldCB7YTp2dH1uZXRyd19tYWdpYyAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ7YTp2dH1uZXRyd19yZXBrZWVwIikgIHxsZXQgJmw6cmVwb3J0ID0ge2E6dnR9bmV0cndfcmVwa2VlcCAgICAgfHVubGV0IHthOnZ0fW5ldHJ3X3JlcGtlZXAgIHxlbmRpZgogICBpZiBleGlzdHMoInthOnZ0fW5ldHJ3X3NwZWxsa2VlcCIpfGxldCAmbDpzcGVsbCAgPSB7YTp2dH1uZXRyd19zcGVsbGtlZXAgICB8dW5sZXQge2E6dnR9bmV0cndfc3BlbGxrZWVwfGVuZGlmCkBAIC00MzYsNyArNDQ1LDcgQEAKICAgc2V0bG9jYWwgY29tPQogICBzZXRsb2NhbCBjcG8tPWFBCiAgIGlmIGV4aXN0cygiJmFjZCIpIHwgc2V0bG9jYWwgbm9hY2QgfCBlbmRpZgotICBzZXRsb2NhbCBub2NpbiBub2FpIG5vY2kgbWFnaWMgbm9zcGVsbCBub2hpZCB3aWc9IG5vYXcKKyAgc2V0bG9jYWwgbm9jaW4gbm9haSBub2JvbWIgbm9jaSBtYWdpYyBub3NwZWxsIG5vaGlkIHdpZz0gbm9hdyBub2ltCiAgIHNldGxvY2FsIGZvPW5yb3FsMgogICBzZXRsb2NhbCB0dz0wCiAgIHNldGxvY2FsIHJlcG9ydD0xMDAwMApAQCAtNDQ0LDkgKzQ1MywxMSBAQAogICBpZiBnOm5ldHJ3X3VzZV9ub3N3ZiAmJiBoYXMoIndpbjMyIikgJiYgIWhhcygid2luOTUiKQogICAgc2V0bG9jYWwgbm9zd2YKICAgZW5kaWYKKyAgY2FsbCBzOk5ldHJ3Q3Vyc29ybGluZSgpCiAKICAgIiBhbGxvdyB0aGUgdXNlciB0byBvdmVycmlkZSBzYWZlIG9wdGlvbnMKICAgaWYgJmZ0ID09ICJuZXRydyIKKyIgICBjYWxsIERlY2hvKCJkbyBhbnkgbmV0cncgRmlsZVR5cGUgYXV0b2NtZHMiKQogICAgc2lsZW50IGtlZXBhbHQga2VlcGp1bXBzIGRvYXUgRmlsZVR5cGUgbmV0cncKICAgZW5kaWYKIApAQCAtNTI2LDYgKzUzNyw3IEBACiAgICIgTmV0UmVhZDogc2F2ZSBvcHRpb25zIHt7ezMKICAgY2FsbCBzOk5ldHJ3T3B0aW9uU2F2ZSgidzoiKQogICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCisgIGNhbGwgczpSZXN0b3JlQ3Vyc29ybGluZSgpCiAKICAgIiBOZXRSZWFkOiBpbnRlcnByZXQgbW9kZSBpbnRvIGEgcmVhZGNtZCB7e3szCiAgIGlmICAgICBhOm1vZGUgPT0gMCAiIHJlYWQgcmVtb3RlIGZpbGUgYmVmb3JlIGN1cnJlbnQgbGluZQpAQCAtNjIyLDcgKzYzNCw3IEBACiAiICAgY2FsbCBEZWNobygiY2hlY2tpbmcgaWYgTmV0cndCcm93c2UoKSBzaG91bGQgaGFuZGxlIGNob2ljZTwiLmNob2ljZS4iPiB3aXRoIG5ldHJ3X2xpc3RfY21kPCIuZzpuZXRyd19saXN0X2NtZC4iPiIpCiAgICBpZiBjaG9pY2UgPX4gIl4uKltcL10kIiAmJiBiOm5ldHJ3X21ldGhvZCAhPSA1ICYmIGNob2ljZSAhfiAnXmh0dHA6Ly8nCiAiICAgIGNhbGwgRGVjaG8oInllcywgY2hvaWNlIG1hdGNoZXMgJ14uKltcL10kJyIpCi0gICAga2VlcGp1bXBzIGNhbGwgczpOZXRyd0Jyb3dzZSgwLGNob2ljZSkKKyAgICBrZWVwaiBjYWxsIHM6TmV0cndCcm93c2UoMCxjaG9pY2UpCiAiICAgIGNhbGwgRHJldCgibmV0cncjTmV0UmVhZCA6MyBnZXRjd2Q8Ii5nZXRjd2QoKS4iPiIpCiAgICAgcmV0dXJuCiAgICBlbmRpZgpAQCAtNjY5LDEwICs2ODEsMTAgQEAKICAgICAgY2FsbCBzOlNhdmVCdWZWYXJzKCl8bmV3fGNhbGwgczpSZXN0b3JlQnVmVmFycygpCiAgICAgIGxldCBmaWx0YnVmPSBidWZucigiJSIpCiAgICAgIHNldGxvY2FsIGZmPXVuaXgKLSAgICAgcHV0ID1nOm5ldHJ3X2Z0cG1vZGUKKyAgICAga2VlcGogcHV0ID1nOm5ldHJ3X2Z0cG1vZGUKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKGxpbmUoIiQiKSkpCiAgICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBleHRyYWNtZCIpCi0gICAgICBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKKyAgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKGxpbmUoIiQiKSkpCiAgICAgIGVuZGlmCiAgICAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnZ2V0ICInLm5ldHJ3X2ZuYW1lLiciICcudG1wZmlsZSkKQEAgLTcxMSwzMiArNzIzLDMyIEBACiAgICAgbGV0IGZpbHRidWY9IGJ1Zm5yKCIlIikKICAgICBzZXRsb2NhbCBmZj11bml4CiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CisgICAgIGtlZXBqIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICBlbHNlCi0gICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUKKyAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICBlbmRpZgogCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cCIpICYmIGc6bmV0cndfZnRwID09IDEKLSAgICAgcHV0ID1nOm5ldHJ3X3VpZAorICAgICBrZWVwaiBwdXQgPWc6bmV0cndfdWlkCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQotICAgICBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJwogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICBlbHNlCi0gICAgIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSd1c2VyIFwiJy5nOm5ldHJ3X3VpZC4nXCIgXCInLnM6bmV0cndfcGFzc3dkLidcIicKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCiAgICAgZW5kaWYKIAogICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBtb2RlIikgJiYgZzpuZXRyd19mdHBtb2RlICE9ICIiCi0gICAgIHB1dCA9ZzpuZXRyd19mdHBtb2RlCisgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBtb2RlCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgIGVuZGlmCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cGV4dHJhY21kIikKICAgICAgcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgIGVuZGlmCi0gICAgcHV0ID0nZ2V0IFwiJy5uZXRyd19mbmFtZS4nXCIgJy50bXBmaWxlCisgICAga2VlcGogcHV0ID0nZ2V0IFwiJy5uZXRyd19mbmFtZS4nXCIgJy50bXBmaWxlCiAiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCiAKICAgICAiIHBlcmZvcm0gZnRwOgpAQCAtODMwLDE2ICs4NDIsMTYgQEAKICAgICAgbmV3CiAgICAgIHNldGxvY2FsIGZmPXVuaXgKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAorICAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CiAgICAgIGVsc2UKLSAgICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUKKyAgICAgIGtlZXBqIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUKICAgICAgZW5kaWYKLSAgICAgcHV0ID0ndXNlciAnLmc6bmV0cndfdWlkLicgJy5zOm5ldHJ3X3Bhc3N3ZAotICAgICBwdXQgPSdnZXQgJy5uZXRyd19mbmFtZS4nICcudG1wZmlsZQotICAgICBwdXQgPSdxdWl0JworICAgICBrZWVwaiBwdXQgPSd1c2VyICcuZzpuZXRyd191aWQuJyAnLnM6bmV0cndfcGFzc3dkCisgICAgIGtlZXBqIHB1dCA9J2dldCAnLm5ldHJ3X2ZuYW1lLicgJy50bXBmaWxlCisgICAgIGtlZXBqIHB1dCA9J3F1aXQnCiAKICAgICAgIiBwZXJmb3JtIGNhZGF2ZXIgb3BlcmF0aW9uOgotICAgICBub3JtISAxR2RkCisgICAgIGtlZXBqIG5vcm0hIDFHZGQKICIgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19kYXZfY21kKQogICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19kYXZfY21kCiAgICAgIGJkIQpAQCAtOTQ3LDE2ICs5NTksMTYgQEAKICAgICIgKGxpbmUgbnVtYmVycyBkb24ndCByZWFsbHkgbWFrZSBzZW5zZSBmb3IgdGhhdCkuCiAgICAiIEFsc28gc3VwcG9ydHMgdGhlIHdyaXRpbmcgb2YgdGFyIGFuZCB6aXAgZmlsZXMuCiAiICAgY2FsbCBEZWNobygiKHdyaXRlIGVudGlyZSBmaWxlKSBzaWxlbnQgZXhlIHchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKSkKLSAgIHNpbGVudCBleGUgInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQorICAgZXhlICJzaWxlbnQga2VlcGogdyEgIi5mbmFtZWVzY2FwZSh2OmNtZGFyZykuIiAiLmZuYW1lZXNjYXBlKHRtcGZpbGUpCiAgIGVsc2VpZiBnOm5ldHJ3X2N5Z3dpbgogICAgIiB3cml0ZSAoc2VsZWN0ZWQgcG9ydGlvbiBvZikgZmlsZSB0byB0ZW1wb3JhcnkKICAgIGxldCBjeWd0bXBmaWxlPSBzdWJzdGl0dXRlKHRtcGZpbGUsJy9jeWdkcml2ZS9cKC5cKScsJ1wxOicsJycpCiAiICAgY2FsbCBEZWNobygiKHdyaXRlIHNlbGVjdGVkIHBvcnRpb24pIHNpbGVudCBleGUgIi5hOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZShjeWd0bXBmaWxlKSkKLSAgIHNpbGVudCBleGUgYTpmaXJzdGxpbmUuIiwiIC4gYTpsYXN0bGluZSAuICJ3ISAiLmZuYW1lZXNjYXBlKHY6Y21kYXJnKS4iICIuZm5hbWVlc2NhcGUoY3lndG1wZmlsZSkKKyAgIGV4ZSAic2lsIGtlZXBqICIuYTpmaXJzdGxpbmUuIiwiIC4gYTpsYXN0bGluZSAuICJ3ISAiLmZuYW1lZXNjYXBlKHY6Y21kYXJnKS4iICIuZm5hbWVlc2NhcGUoY3lndG1wZmlsZSkKICAgZWxzZQogICAgIiB3cml0ZSAoc2VsZWN0ZWQgcG9ydGlvbiBvZikgZmlsZSB0byB0ZW1wb3JhcnkKICIgICBjYWxsIERlY2hvKCIod3JpdGUgc2VsZWN0ZWQgcG9ydGlvbikgc2lsZW50IGV4ZSAiLmE6Zmlyc3RsaW5lLiIsIiAuIGE6bGFzdGxpbmUgLiAidyEgIi5mbmFtZWVzY2FwZSh2OmNtZGFyZykuIiAiLmZuYW1lZXNjYXBlKHRtcGZpbGUpKQotICAgc2lsZW50IGV4ZSBhOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQorICAgZXhlICJzaWwga2VlcGogIi5hOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQogICBlbmRpZgogCiAgIGlmIGN1cmJ1Zm5hbWUgPT0gIiIKQEAgLTEwNzIsMTAgKzEwODQsMTAgQEAKIAogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQgd2luZG93IyIud2lubnIoKSkKICAgICBzZXRsb2NhbCBmZj11bml4Ci0gICAgcHV0ID1nOm5ldHJ3X2Z0cG1vZGUKKyAgICBrZWVwaiBwdXQgPWc6bmV0cndfZnRwbW9kZQogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBleHRyYWNtZCIpCi0gICAgIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAorICAgICBrZWVwaiBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCIkIikpCiAgICAgZW5kaWYKICAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsJ3B1dCAiJy50bXBmaWxlLiciICInLm5ldHJ3X2ZuYW1lLiciJykKQEAgLTExMTksMjggKzExMzEsMjggQEAKICAgICBzZXRsb2NhbCBmZj11bml4CiAKICAgICBpZiBleGlzdHMoImc6bmV0cndfcG9ydCIpICYmIGc6bmV0cndfcG9ydCAhPSAiIgotICAgICBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lLicgJy5nOm5ldHJ3X3BvcnQKKyAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgIGVsc2UKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQorICAgICBrZWVwaiBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgIGVuZGlmCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cCIpICYmIGc6bmV0cndfZnRwID09IDEKLSAgICAgcHV0ID1nOm5ldHJ3X3VpZAorICAgICBrZWVwaiBwdXQgPWc6bmV0cndfdWlkCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQotICAgICBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJwogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICBlbHNlCi0gICAgIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSd1c2VyIFwiJy5nOm5ldHJ3X3VpZC4nXCIgXCInLnM6bmV0cndfcGFzc3dkLidcIicKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCiAgICAgZW5kaWYKLSAgICBwdXQgPWc6bmV0cndfZnRwbW9kZQorICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBtb2RlCiAiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cGV4dHJhY21kIikKLSAgICAgcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCisgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoIiQiKSkKICAgICBlbmRpZgotICAgIHB1dCA9J3B1dCBcIicudG1wZmlsZS4nXCIgXCInLm5ldHJ3X2ZuYW1lLidcIicKKyAgICBrZWVwaiBwdXQgPSdwdXQgXCInLnRtcGZpbGUuJ1wiIFwiJy5uZXRyd19mbmFtZS4nXCInCiAiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCiAgICAgIiBzYXZlIGNob2ljZS9pZC9wYXNzd29yZCBmb3IgZnV0dXJlIHVzZQogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCkBAIC0xMTQ5LDcgKzExNjEsNyBAQAogICAgICIgLWkgICAgICAgOiB0dXJucyBvZmYgaW50ZXJhY3RpdmUgcHJvbXB0aW5nIGZyb20gZnRwCiAgICAgIiAtbiAgdW5peCA6IERPTidUIHVzZSA8Lm5ldHJjPiwgZXZlbiB0aG91Z2ggaXQgZXhpc3RzCiAgICAgIiAtbiAgd2luMzI6IHF1aXQgYmVpbmcgb2Jub3hpb3VzIGFib3V0IHBhc3N3b3JkCi0gICAgbm9ybSEgMUdkZAorICAgIGtlZXBqIG5vcm0hIDFHZGQKICIgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgLW4iKQogICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAtbiIKICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCkBAIC0xMjAzLDE3ICsxMjE1LDE3IEBACiAKICAgICBzZXRsb2NhbCBmZj11bml4CiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CisgICAgIGtlZXBqIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAogICAgIGVsc2UKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQorICAgICBrZWVwaiBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lCiAgICAgZW5kaWYKICAgICBpZiBleGlzdHMoImc6bmV0cndfdWlkIikgJiYgZXhpc3RzKCJzOm5ldHJ3X3Bhc3N3ZCIpCi0gICAgIHB1dCA9J3VzZXIgJy5nOm5ldHJ3X3VpZC4nICcuczpuZXRyd19wYXNzd2QKKyAgICAga2VlcGogcHV0ID0ndXNlciAnLmc6bmV0cndfdWlkLicgJy5zOm5ldHJ3X3Bhc3N3ZAogICAgIGVuZGlmCi0gICAgcHV0ID0ncHV0ICcudG1wZmlsZS4nICcubmV0cndfZm5hbWUKKyAgICBrZWVwaiBwdXQgPSdwdXQgJy50bXBmaWxlLicgJy5uZXRyd19mbmFtZQogCiAgICAgIiBwZXJmb3JtIGNhZGF2ZXIgb3BlcmF0aW9uOgotICAgIG5vcm0hIDFHZGQKKyAgICBrZWVwaiBub3JtISAxR2RkCiAiICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfZGF2X2NtZCkKICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19kYXZfY21kCiAKQEAgLTEzODIsNyArMTM5NCw3IEBACiAKICAgICIgcmVuYW1lIGJ1ZmZlciBiYWNrIHRvIHJlbW90ZSBmaWxlbmFtZQogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKHJmaWxlKSkKLSAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShyZmlsZSkKKyAgIGV4ZSAic2lsISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShyZmlsZSkKICAgIGZpbGV0eXBlIGRldGVjdAogIiAgIGNhbGwgRHJlZGlyKCJyZW5hbWVkIGJ1ZmZlciBiYWNrIHRvIHJlbW90ZSBmaWxlbmFtZTwiLnJmaWxlLiI+IDogZXhwYW5kKCUpPCIuZXhwYW5kKCIlIikuIj4iLCJscyEiKQogICAgbGV0IGxpbmUxID0gMQpAQCAtMTY2OSw3ICsxNjgxLDcgQEAKICAgIGlmIG1ldGhvZCA9PSAzICAgIiBmdHAgKG5vIDwubmV0cmM+KQogICAgIGxldCBmb3VyYmxhbmtsaW5lcz0gbGluZTIgLSAzCiAgICAgaWYgZm91cmJsYW5rbGluZXMgPj0gbGluZTEKLSAgICAgZXhlICJzaWxlbnQgIi5mb3VyYmxhbmtsaW5lcy4iLCIubGluZTIuImcvXlxzKiQvZCIKKyAgICAgZXhlICJzaWwga2VlcGogIi5mb3VyYmxhbmtsaW5lcy4iLCIubGluZTIuImcvXlxzKiQvZCIKICAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBlbmRpZgogICAgZW5kaWYKQEAgLTE2OTMsNyArMTcwNSw3IEBACiAgICBsZXQgZzpuZXRyd191aWQ9IGlucHV0KCdFbnRlciB1c2VybmFtZTogJykKICAgZW5kaWYKICBlbHNlCSIgZnJvbSBjb21tYW5kIGxpbmUKLSIgIGNhbGwgRGZ1bmMoIk5ldFVzZXJQYXNzKGE6MTwiLmE6MS4iPikgeyIpCisiICBjYWxsIERmdW5jKCJOZXRVc2VyUGFzcyhhOjE8Ii5hOjEuIj4pIikKICAgbGV0IGc6bmV0cndfdWlkPSBhOjEKICBlbmRpZgogCkBAIC0xNzYzLDE5ICsxNzc1LDY3IEBACiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB2CQk6Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoNSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB4CQk6Y2FsbCBuZXRydyNOZXRyd0Jyb3dzZVgoPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigxLDxTSUQ+TmV0cndHZXRXb3JkKCksMCksMCkiPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gJQkJOmNhbGwgPFNJRD5OZXRyd09wZW5GaWxlKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGNyPgk8Yy1vPjpjYWxsIG5ldHJ3I0xvY2FsQnJvd3NlQ2hlY2soPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigxLDxTSUQ+TmV0cndHZXRXb3JkKCkpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IC0JCTxjLW8+OmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgbmV0cncjTG9jYWxCcm93c2VDaGVjayg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDEsJy4uLycpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGEJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd0hpZGUoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtYgk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcigwLGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1jCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVDb3B5KDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWQJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZURpZmYoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtZQk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlRWRpdCgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1mCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGUoMSw8U0lEPk5ldHJ3R2V0V29yZCgpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1nCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVHcmVwKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWgJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrSGlkZVNmeCgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1tCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVNb3ZlKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXAJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZVByaW50KDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXIJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZVJlZ2V4cCgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1zCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVTb3VyY2UoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtVAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlVGFnKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXQJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZVRndCgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG11CTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3VW5NYXJrRmlsZSgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG14CTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVFeGUoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtegk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlQ29tcHJlc3MoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBnYgk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcigxLGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGdoCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3SGlkZGVuKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gZ3AJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndDaGdQZXJtKDEsYjpuZXRyd19jdXJkaXIpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYwkJPGMtbz46ZXhlICJrZWVwanVtcHMgbGNkICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gQwkJPGMtbz46bGV0IGc6bmV0cndfY2hnd2luPSB3aW5ucigpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gZAkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3TWFrZURpcigiIik8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBpCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndMaXN0U3R5bGUoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBJCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndCYW5uZXJDdHJsKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbwkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMyk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBPCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndPYnRhaW4oMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBwCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndQcmV2aWV3KDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMSw8U0lEPk5ldHJ3R2V0V29yZCgpLDEpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFAJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd1ByZXZXaW5PcGVuKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcWIJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoMixiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtQgk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig2LGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHFmCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3RmlsZUluZm8oMSw8U0lEPk5ldHJ3R2V0V29yZCgpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHIJCTxjLW8+OmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRyd1JlZnJlc2goMSw8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDEsJy4vJykpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcwkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U29ydFN0eWxlKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUwkJPGMtbz46Y2FsbCA8U0lEPk5ldFNvcnRTZXF1ZW5jZSgxKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHQJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd1NwbGl0KDQpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gVAkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoNCk8YmFyPm5vcm0hIGdUPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdQkJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoNCxleHBhbmQoIiUiKSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBVCQk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig1LGV4cGFuZCgiJSIpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHYJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd1NwbGl0KDUpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4geAkJPGMtbz46Y2FsbCBuZXRydyNOZXRyd0Jyb3dzZVgoPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigxLDxTSUQ+TmV0cndHZXRXb3JkKCksMCksMCkiPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gJQkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3T3BlbkZpbGUoMSk8Y3I+CiAgICBpZiAhaGFzbWFwdG8oJzxQbHVnPk5ldHJ3SGlkZUVkaXQnKQogICAgIG5tYXAgPGJ1ZmZlcj4gPHVuaXF1ZT4gPGMtaD4gPFBsdWc+TmV0cndIaWRlRWRpdAorICAgIGltYXAgPGJ1ZmZlcj4gPHVuaXF1ZT4gPGMtaD4gPFBsdWc+TmV0cndIaWRlRWRpdAogICAgZW5kaWYKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxQbHVnPk5ldHJ3SGlkZUVkaXQJOmNhbGwgPFNJRD5OZXRyd0hpZGVFZGl0KDEpPGNyPgogICAgaWYgIWhhc21hcHRvKCc8UGx1Zz5OZXRyd1JlZnJlc2gnKQogICAgIG5tYXAgPGJ1ZmZlcj4gPHVuaXF1ZT4gPGMtbD4gPFBsdWc+TmV0cndSZWZyZXNoCisgICAgaW1hcCA8YnVmZmVyPiA8dW5pcXVlPiA8Yy1sPiA8UGx1Zz5OZXRyd1JlZnJlc2gKICAgIGVuZGlmCiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8UGx1Zz5OZXRyd1JlZnJlc2gJCTpjYWxsIDxTSUQ+TmV0cndSZWZyZXNoKDEsPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigxLCcuLycpKTxjcj4KICAgIGlmIHM6ZGlkc3RhcnN0YXIgfHwgIW1hcGNoZWNrKCI8cy1kb3duPiIsIm4iKQogICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxzLWRvd24+CTpOZXhwbG9yZTxjcj4KKyAgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cy1kb3duPgk6TmV4cGxvcmU8Y3I+CiAgICBlbmRpZgogICAgaWYgczpkaWRzdGFyc3RhciB8fCAhbWFwY2hlY2soIjxzLXVwPiIsIm4iKQogICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxzLXVwPgk6UGV4cGxvcmU8Y3I+CisgICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPHMtdXA+CTpQZXhwbG9yZTxjcj4KICAgIGVuZGlmCiAgICBsZXQgbWFwc2FmZWN1cmRpciA9IGVzY2FwZShiOm5ldHJ3X2N1cmRpciwgczpuZXRyd19tYXBfZXNjYXBlKQogICAgaWYgZzpuZXRyd19tb3VzZW1hcHMgPT0gMQpAQCAtMTc4NCwxNCArMTg0NCwyMiBAQAogICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxzLWxlZnRtb3VzZT4gPGxlZnRtb3VzZT46Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGUoMSw8U0lEPk5ldHJ3R2V0V29yZCgpKTxjcj4KICAgICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxyaWdodG1vdXNlPiAgPGxlZnRtb3VzZT46Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCiAgICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cmlnaHRtb3VzZT4gIDxsZWZ0bW91c2U+OmNhbGwgPFNJRD5OZXRyd0xvY2FsUm0oIicubWFwc2FmZWN1cmRpci4nIik8Y3I+JworICAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxsZWZ0bW91c2U+ICAgPGMtbz48bGVmdG1vdXNlPjxjLW8+OmNhbGwgPFNJRD5OZXRyd0xlZnRtb3VzZSgxKTxjcj4KKyAgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8bWlkZGxlbW91c2U+IDxjLW8+PGxlZnRtb3VzZT48Yy1vPjpjYWxsIDxTSUQ+TmV0cndQcmV2V2luT3BlbigxKTxjcj4KKyAgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cy1sZWZ0bW91c2U+IDxjLW8+PGxlZnRtb3VzZT48Yy1vPjpjYWxsIDxTSUQ+TmV0cndNYXJrRmlsZSgxLDxTSUQ+TmV0cndHZXRXb3JkKCkpPGNyPgorICAgIGV4ZSAnaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPHJpZ2h0bW91c2U+ICA8Yy1vPjxsZWZ0bW91c2U+PGMtbz46Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCiAgICBlbmRpZgogICAgZXhlICdubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8ZGVsPgk6Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCi0gICBleGUgJ3Zub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxkZWw+CTpjYWxsIDxTSUQ+TmV0cndMb2NhbFJtKCInLm1hcHNhZmVjdXJkaXIuJyIpPGNyPicKICAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gRAkJOmNhbGwgPFNJRD5OZXRyd0xvY2FsUm0oIicubWFwc2FmZWN1cmRpci4nIik8Y3I+JwotICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBECQk6Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCiAgICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFIJCTpjYWxsIDxTSUQ+TmV0cndMb2NhbFJlbmFtZSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCi0gICBleGUgJ3Zub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFIJCTpjYWxsIDxTSUQ+TmV0cndMb2NhbFJlbmFtZSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCiAgICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxMZWFkZXI+bQk6Y2FsbCA8U0lEPk5ldHJ3TWFrZURpcigiIik8Y3I+JworICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8ZGVsPgk6Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCisgICBleGUgJ3Zub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEQJCTpjYWxsIDxTSUQ+TmV0cndMb2NhbFJtKCInLm1hcHNhZmVjdXJkaXIuJyIpPGNyPicKKyAgIGV4ZSAndm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUgkJOmNhbGwgPFNJRD5OZXRyd0xvY2FsUmVuYW1lKCInLm1hcHNhZmVjdXJkaXIuJyIpPGNyPicKKyAgIGV4ZSAnaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGRlbD4JPGMtbz46Y2FsbCA8U0lEPk5ldHJ3TG9jYWxSbSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCisgICBleGUgJ2lub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEQJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd0xvY2FsUm0oIicubWFwc2FmZWN1cmRpci4nIik8Y3I+JworICAgZXhlICdpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBSCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndMb2NhbFJlbmFtZSgiJy5tYXBzYWZlY3VyZGlyLiciKTxjcj4nCisgICBleGUgJ2lub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxMZWFkZXI+bQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndNYWtlRGlyKCIiKTxjcj4nCiAgICBubm9yZW1hcCA8YnVmZmVyPiA8RjE+CQk6aGUgbmV0cnctcXVpY2toZWxwPGNyPgogCiAgIGVsc2UgIiByZW1vdGUKQEAgLTE4NDAsMTIgKzE5MDgsNTcgQEAKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHYJCTpjYWxsIDxTSUQ+TmV0cndTcGxpdCgyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHgJCTpjYWxsIG5ldHJ3I05ldHJ3QnJvd3NlWCg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDAsPFNJRD5OZXRyd0dldFdvcmQoKSksMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAlCQk6Y2FsbCA8U0lEPk5ldHJ3T3BlbkZpbGUoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Y3I+CTxjLW8+OmNhbGwgPFNJRD5OZXRyd0Jyb3dzZSgwLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCw8U0lEPk5ldHJ3R2V0V29yZCgpKSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8Yy1sPgk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndSZWZyZXNoKDAsPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigwLCcuLycpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IC0JCTxjLW8+OmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRyd0Jyb3dzZSgwLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCwnLi4vJykpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYQkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3SGlkZSgwKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1iCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va0hpc3RIYW5kbGVyKDAsYjpuZXRyd19jdXJkaXIpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWMJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUNvcHkoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtZAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlRGlmZigwKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1lCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVFZGl0KDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWYJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZSgwLDxTSUQ+TmV0cndHZXRXb3JkKCkpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWcJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUdyZXAoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtaAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtIaWRlU2Z4KDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbW0JPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZU1vdmUoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtcAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlUHJpbnQoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtcgk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlUmVnZXhwKDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXMJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZVNvdXJjZSgwKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1UCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVUYWcoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtdAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlVGd0KDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXUJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndVbk1hcmtGaWxlKDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXgJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUV4ZSgwKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG16CTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVDb21wcmVzcygwKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGdiCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va0hpc3RIYW5kbGVyKDEsYjpuZXRyd19jdXIpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gZ2gJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndIaWRkZW4oMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBncAk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0NoZ1Blcm0oMCxiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBDCQk8Yy1vPjpsZXQgZzpuZXRyd19jaGd3aW49IHdpbm5yKCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBpCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndMaXN0U3R5bGUoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBJCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndCYW5uZXJDdHJsKDEpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbwkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBPCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndPYnRhaW4oMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBwCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndQcmV2aWV3KDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMSw8U0lEPk5ldHJ3R2V0V29yZCgpLDEpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFAJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd1ByZXZXaW5PcGVuKDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcWIJPGMtbz46PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoMixiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtQgk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig2LGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHFmCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3RmlsZUluZm8oMCw8U0lEPk5ldHJ3R2V0V29yZCgpKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHIJCTxjLW8+OmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRyd0Jyb3dzZSgwLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCwnLi8nKSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBzCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndTb3J0U3R5bGUoMCk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBTCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0U29ydFNlcXVlbmNlKDApPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdAkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBUCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndTcGxpdCgxKTxiYXI+bm9ybSEgZ1Q8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB1CQk8Yy1vPjo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig0LGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTxjLW8+OjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va0hpc3RIYW5kbGVyKDUsYjpuZXRyd19jdXJkaXIpPGNyPgorICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdgkJPGMtbz46Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMik8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB4CQk8Yy1vPjpjYWxsIG5ldHJ3I05ldHJ3QnJvd3NlWCg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDAsPFNJRD5OZXRyd0dldFdvcmQoKSksMSk8Y3I+CisgICBpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAlCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndPcGVuRmlsZSgwKTxjcj4KICAgIGlmICFoYXNtYXB0bygnPFBsdWc+TmV0cndIaWRlRWRpdCcpCiAgICAgbm1hcCA8YnVmZmVyPiA8Yy1oPiA8UGx1Zz5OZXRyd0hpZGVFZGl0CisgICAgaW1hcCA8YnVmZmVyPiA8Yy1oPiA8UGx1Zz5OZXRyd0hpZGVFZGl0CiAgICBlbmRpZgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPFBsdWc+TmV0cndIaWRlRWRpdAk6Y2FsbCA8U0lEPk5ldHJ3SGlkZUVkaXQoMCk8Y3I+CiAgICBpZiAhaGFzbWFwdG8oJzxQbHVnPk5ldHJ3UmVmcmVzaCcpCiAgICAgbm1hcCA8YnVmZmVyPiA8Yy1sPiA8UGx1Zz5OZXRyd1JlZnJlc2gKKyAgICBpbWFwIDxidWZmZXI+IDxjLWw+IDxQbHVnPk5ldHJ3UmVmcmVzaAogICAgZW5kaWYKIAogICAgbGV0IG1hcHNhZmVwYXRoICAgICA9IGVzY2FwZShzOnBhdGgsIHM6bmV0cndfbWFwX2VzY2FwZSkKQEAgLTE4NTgsMTUgKzE5NzEsMjQgQEAKICAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cy1sZWZ0bW91c2U+IDxsZWZ0bW91c2U+OmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlKDAsPFNJRD5OZXRyd0dldFdvcmQoKSk8Y3I+CiAgICAgZXhlICdubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cmlnaHRtb3VzZT4gPGxlZnRtb3VzZT46Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUm0oIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCiAgICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cmlnaHRtb3VzZT4gPGxlZnRtb3VzZT46Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUm0oIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCisgICAgaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGxlZnRtb3VzZT4gICA8Yy1vPjxsZWZ0bW91c2U+PGMtbz46Y2FsbCA8U0lEPk5ldHJ3TGVmdG1vdXNlKDApPGNyPgorICAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxtaWRkbGVtb3VzZT4gPGMtbz48bGVmdG1vdXNlPjxjLW8+OmNhbGwgPFNJRD5OZXRyd1ByZXZXaW5PcGVuKDApPGNyPgorICAgIGlub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxzLWxlZnRtb3VzZT4gPGMtbz48bGVmdG1vdXNlPjxjLW8+OmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlKDAsPFNJRD5OZXRyd0dldFdvcmQoKSk8Y3I+CisgICAgZXhlICdpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8cmlnaHRtb3VzZT4gPGMtbz48bGVmdG1vdXNlPjxjLW8+OmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJtKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JwogICAgZW5kaWYKICAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGRlbD4JOmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJtKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JworICAgZXhlICdubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBkCQk6Y2FsbCA8U0lEPk5ldHJ3TWFrZURpcigiJy5tYXBzYWZldXNlcm1hY2guJyIpPGNyPicKKyAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gRAkJOmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJtKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JworICAgZXhlICdubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBSCQk6Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUmVuYW1lKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JwogICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiA8ZGVsPgk6Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUm0oIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCi0gICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGQJOmNhbGwgPFNJRD5OZXRyd01ha2VEaXIoIicubWFwc2FmZXVzZXJtYWNoLiciKTxjcj4nCi0gICBleGUgJ25ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEQJOmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJtKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JwotICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBECTpjYWxsIDxTSUQ+TmV0cndSZW1vdGVSbSgiJy5tYXBzYWZldXNlcm1hY2guJyIsIicubWFwc2FmZXBhdGguJyIpPGNyPicKLSAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUgk6Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUmVuYW1lKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JwotICAgZXhlICd2bm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBSCTpjYWxsIDxTSUQ+TmV0cndSZW1vdGVSZW5hbWUoIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCisgICBleGUgJ3Zub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEQJCTpjYWxsIDxTSUQ+TmV0cndSZW1vdGVSbSgiJy5tYXBzYWZldXNlcm1hY2guJyIsIicubWFwc2FmZXBhdGguJyIpPGNyPicKKyAgIGV4ZSAndm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUgkJOmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJlbmFtZSgiJy5tYXBzYWZldXNlcm1hY2guJyIsIicubWFwc2FmZXBhdGguJyIpPGNyPicKKyAgIGV4ZSAnaW5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGRlbD4JPGMtbz46Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUm0oIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCisgICBleGUgJ2lub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGQJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd01ha2VEaXIoIicubWFwc2FmZXVzZXJtYWNoLiciKTxjcj4nCisgICBleGUgJ2lub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEQJCTxjLW8+OmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJtKCInLm1hcHNhZmV1c2VybWFjaC4nIiwiJy5tYXBzYWZlcGF0aC4nIik8Y3I+JworICAgZXhlICdpbm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBSCQk8Yy1vPjpjYWxsIDxTSUQ+TmV0cndSZW1vdGVSZW5hbWUoIicubWFwc2FmZXVzZXJtYWNoLiciLCInLm1hcHNhZmVwYXRoLiciKTxjcj4nCiAgICBubm9yZW1hcCA8YnVmZmVyPiA8RjE+CQkJOmhlIG5ldHJ3LXF1aWNraGVscDxjcj4KKyAgIGlub3JlbWFwIDxidWZmZXI+IDxGMT4JCQk8Yy1vPjpoZSBuZXRydy1xdWlja2hlbHA8Y3I+CiAgIGVuZGlmCiAgIGNhbGwgczpTZXRSZXhEaXIoYTppc2xvY2FsLGI6bmV0cndfY3VyZGlyKQogIiAgY2FsbCBEcmV0KCJzOkJyb3dzZXJNYXBzIikKQEAgLTE4OTUsNyArMjAxNyw3IEBACiAiICAgIDU6ICh1c2VyOiA8VT4pICAgIGdvIGRvd24gKG5leHQpICAgICBib29rbWFyawogIiAgICA2OiAodXNlcjogPG1CPikgICBkZWxldGUgYm9va21hcmsKIGZ1biEgczpOZXRyd0Jvb2tIaXN0SGFuZGxlcihjaGcsY3VyZGlyKQotIiAgY2FsbCBEZnVuYygiTmV0cndCb29rSGlzdEhhbmRsZXIoY2hnPSIuYTpjaGcuIiBjdXJkaXI8Ii5hOmN1cmRpci4iPikgY250PSIudjpjb3VudC4iIGhpc3RjbnQ9Ii5nOm5ldHJ3X2Rpcmhpc3RfY250LiIgaGlzdG1heD0iLmc6bmV0cndfZGlyaGlzdG1heCkKKyIgIGNhbGwgRGZ1bmMoInM6TmV0cndCb29rSGlzdEhhbmRsZXIoY2hnPSIuYTpjaGcuIiBjdXJkaXI8Ii5hOmN1cmRpci4iPikgY250PSIudjpjb3VudC4iIGhpc3RjbnQ9Ii5nOm5ldHJ3X2Rpcmhpc3RfY250LiIgaGlzdG1heD0iLmc6bmV0cndfZGlyaGlzdG1heCkKIAogICBpZiBhOmNoZyA9PSAwCiAgICAiIGJvb2ttYXJrIHRoZSBjdXJyZW50IGRpcmVjdG9yeQpAQCAtMTk3OCwxMiArMjEwMCwxMiBAQAogICAgIGlmIGV4aXN0cygidzpuZXRyd19saXN0c3R5bGUiKSAmJiB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRSRUVMSVNUICYmIGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQogICAgICBzZXRsb2NhbCBtYSBub3JvCiAiICAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBtYSBub3JvIikKLSAgICAgJWQKKyAgICAga2VlcGogJWQKICAgICAgc2V0bG9jYWwgbm9tb2QKICIgICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG5vbW9kIikKICAgICBlbmRpZgogIiAgICAiICAgIGNhbGwgRGVjaG8oImV4ZSBlISAiLmZuYW1lZXNjYXBlKGc6bmV0cndfZGlyaGlzdF97ZzpuZXRyd19kaXJoaXN0X2NudH0pKQotICAgIGV4ZSAiZSEgIi5mbmFtZWVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9KQorICAgIGV4ZSAia2VlcGogZSEgIi5mbmFtZWVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9KQogICAgZWxzZQogICAgIGxldCBnOm5ldHJ3X2Rpcmhpc3RfY250PSAoIGc6bmV0cndfZGlyaGlzdF9jbnQgKyAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKICAgICBlY2hvICJTb3JyeSwgbm8gcHJlZGVjZXNzb3IgZGlyZWN0b3J5IGV4aXN0cyB5ZXQiCkBAIC0xOTk4LDEzICsyMTIwLDEzIEBACiAgICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QgJiYgZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpCiAgICAgIHNldGxvY2FsIG1hIG5vcm8KICIgICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG1hIG5vcm8iKQotICAgICAlZAorICAgICBrZWVwaiAlZAogIiAgICAgY2FsbCBEZWNobygicmVtb3ZlZCBhbGwgbGluZXMgZnJvbSBidWZmZXIgKCVkKSIpCiAgICAgIHNldGxvY2FsIG5vbW9kCiAiICAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBub21vZCIpCiAgICAgZW5kaWYKICIgICAgY2FsbCBEZWNobygiZXhlIGUhICIuZm5hbWVlc2NhcGUoZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fSkpCi0gICAgZXhlICJlISAiLmZuYW1lZXNjYXBlKGc6bmV0cndfZGlyaGlzdF97ZzpuZXRyd19kaXJoaXN0X2NudH0pCisgICAgZXhlICJrZWVwaiBlISAiLmZuYW1lZXNjYXBlKGc6bmV0cndfZGlyaGlzdF97ZzpuZXRyd19kaXJoaXN0X2NudH0pCiAgICBlbHNlCiAgICAgbGV0IGc6bmV0cndfZGlyaGlzdF9jbnQ9ICggZzpuZXRyd19kaXJoaXN0X2NudCAtIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAogICAgIGlmIGc6bmV0cndfZGlyaGlzdF9jbnQgPCAwCkBAIC0yMDI0LDcgKzIxNDYsNyBAQAogICAgY2FsbCByZW1vdmUoZzpuZXRyd19ib29rbWFya2xpc3Qsdjpjb3VudC0xKQogICBlbmRpZgogICBjYWxsIHM6TmV0cndCb29rbWFya01lbnUoKQotIiAgY2FsbCBEcmV0KCJOZXRyd0Jvb2tIaXN0SGFuZGxlciIpCisiICBjYWxsIERyZXQoInM6TmV0cndCb29rSGlzdEhhbmRsZXIiKQogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDc3LDI4ICsyMTk5LDI4IEBACiAgICBjYWxsIHNldGxpbmUoKGNudCtsYXN0bGluZSksJ2xldCBnOm5ldHJ3X2Rpcmhpc3RfJy5jbnQuIj0nIi5nOm5ldHJ3X2Rpcmhpc3Rfe2NudH0uIiciKQogICAgbGV0IGNudD0gY250ICsgMQogICBlbmR3aGlsZQotICBleGUgInNpbGVudCEgdyEgIi5zYXZlZmlsZQorICBleGUgInNpbCEgdyEgIi5zYXZlZmlsZQogCi0gIHNpbGVudCAlZAorICBzaWwga2VlcGogJWQKICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Jvb2ttYXJrbGlzdCIpICYmIGc6bmV0cndfYm9va21hcmtsaXN0ICE9IFtdCiAgICAiIG1lcmdlIGFuZCB3cml0ZSAubmV0cndib29rCiAgICBsZXQgc2F2ZWZpbGU9IHM6TmV0cndIb21lKCkuIi8ubmV0cndib29rIgogCiAgICBpZiBmaWxlcmVhZGFibGUoc2F2ZWZpbGUpCiAgICAgbGV0IGJvb2tsaXN0PSBkZWVwY29weShnOm5ldHJ3X2Jvb2ttYXJrbGlzdCkKLSAgICBleGUgInNpbGVudCBzbyAiLnNhdmVmaWxlCisgICAgZXhlICJzaWwga2VlcGogc28gIi5zYXZlZmlsZQogICAgIGZvciBiZG0gaW4gYm9va2xpc3QKICAgICAgaWYgaW5kZXgoZzpuZXRyd19ib29rbWFya2xpc3QsYmRtKSA9PSAtMQogICAgICAgY2FsbCBhZGQoZzpuZXRyd19ib29rbWFya2xpc3QsYmRtKQogICAgICBlbmRpZgogICAgIGVuZGZvcgogICAgIGNhbGwgc29ydChnOm5ldHJ3X2Jvb2ttYXJrbGlzdCkKLSAgICBleGUgInNpbGVudCEgdyEgIi5zYXZlZmlsZQorICAgIGV4ZSAic2lsISB3ISAiLnNhdmVmaWxlCiAgICBlbmRpZgogCiAgICAiIGNvbnN0cnVjdCBhbmQgc2F2ZSAubmV0cndib29rCiAgICBjYWxsIHNldGxpbmUoMSwibGV0IGc6bmV0cndfYm9va21hcmtsaXN0PSAiLnN0cmluZyhnOm5ldHJ3X2Jvb2ttYXJrbGlzdCkpCi0gICBleGUgInNpbGVudCEgdyEgIi5zYXZlZmlsZQorICAgZXhlICJzaWwhIHchICIuc2F2ZWZpbGUKICAgZW5kaWYKICAgbGV0IGJnb25lPSBidWZucigiJSIpCiAgIHEhCkBAIC0yMTE0LDEzICsyMjM2LDE0IEBACiAiICB3aXRoIHRoZSByZXF1ZXN0ZWQgcmVtb3RlIGhvc3RuYW1lIGZpcnN0LgogZnVuISBzOk5ldHJ3QnJvd3NlKGlzbG9jYWwsZGlybmFtZSkKICAgaWYgIWV4aXN0cygidzpuZXRyd19saXN0c3R5bGUiKXxsZXQgdzpuZXRyd19saXN0c3R5bGU9IGc6bmV0cndfbGlzdHN0eWxlfGVuZGlmCi0iICBjYWxsIERmdW5jKCJzOk5ldHJ3QnJvd3NlKGlzbG9jYWw9Ii5hOmlzbG9jYWwuIiBkaXJuYW1lPCIuYTpkaXJuYW1lLiI+KSBsaXN0c3R5bGU9Ii53Om5ldHJ3X2xpc3RzdHlsZS4iICIuZzpsb2FkZWRfbmV0cncuIiBidWYjIi5idWZucigiJSIpLiI8Ii5idWZuYW1lKCIlIikuIj4iKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0Jyb3dzZShpc2xvY2FsPSIuYTppc2xvY2FsLiIgZGlybmFtZTwiLmE6ZGlybmFtZS4iPikgbGlzdHN0eWxlPSIudzpuZXRyd19saXN0c3R5bGUuIiAiLmc6bG9hZGVkX25ldHJ3LiIgYnVmIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkpCiAiICBjYWxsIERlY2hvKCJ0YWIjIi50YWJwYWdlbnIoKS4iIHdpbiMiLndpbm5yKCkpCiAiICBjYWxsIERyZWRpcigibHMhIikKICAgaWYgIWV4aXN0cygiczpuZXRyd19pbml0Ym9va2hpc3QiKQogICAgY2FsbCBzOk5ldHJ3Qm9va0hpc3RSZWFkKCkKICAgZW5kaWYKICIgIGNhbGwgRk9URVNUKDcpCisiY2FsbCBEZWNobygiQ09NQkFLIzAxIGJ1ZiglKSMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiB3aW4jIi53aW5ucigpLiIgYnVmbnIod2luIzEpPSIud2luYnVmbnIoMSkuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMSkpLiIgYnVmbnIod2luIzIpPSIud2luYnVmbnIoMikuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMikpLiI+IikKIAogICAiIHNpbXBsaWZ5IHRoZSBkaXJuYW1lIChlc3BlY2lhbGx5IGZvciAiLi4icyBpbiBkaXJuYW1lcykKICAgaWYgYTpkaXJuYW1lICF+ICdeXGFcKzovLycKQEAgLTIxMjksNiArMjI1Miw3IEBACiAgICBsZXQgZGlybmFtZT0gYTpkaXJuYW1lCiAgIGVuZGlmCiAiICBjYWxsIEZPVEVTVCg4KQorImNhbGwgRGVjaG8oIkNPTUJBSyMwMiBidWYoJSkjIi5idWZucigiJSIpLiI8Ii5idWZuYW1lKCIlIikuIj4gd2luIyIud2lubnIoKS4iIGJ1Zm5yKHdpbiMxKT0iLndpbmJ1Zm5yKDEpLiI8Ii5idWZuYW1lKHdpbmJ1Zm5yKDEpKS4iIGJ1Zm5yKHdpbiMyKT0iLndpbmJ1Zm5yKDIpLiI8Ii5idWZuYW1lKHdpbmJ1Zm5yKDIpKS4iPiIpCiAKICAgaWYgZXhpc3RzKCJzOm5ldHJ3X3NraXBicm93c2UiKQogICAgdW5sZXQgczpuZXRyd19za2lwYnJvd3NlCkBAIC0yMTQ5LDYgKzIyNzMsNyBAQAogCiAgIGNhbGwgczpOZXRyd09wdGlvblNhdmUoInc6IikKICIgIGNhbGwgRk9URVNUKDkpCisiY2FsbCBEZWNobygiQ09NQkFLIzAzIGJ1ZiglKSMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiB3aW4jIi53aW5ucigpLiIgYnVmbnIod2luIzEpPSIud2luYnVmbnIoMSkuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMSkpLiIgYnVmbnIod2luIzIpPSIud2luYnVmbnIoMikuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMikpLiI+IikKIAogICAiIHJlLWluc3RhdGUgYW55IG1hcmtlZCBmaWxlcwogICBpZiBleGlzdHMoInM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCclJyl9IikKQEAgLTIxNTYsMTEgKzIyODEsMTIgQEAKICAgIGV4ZSAiMm1hdGNoIG5ldHJ3TWFya0ZpbGUgLyIuczpuZXRyd21hcmtmaWxlbXRjaF97YnVmbnIoIiUiKX0uIi8iCiAgIGVuZGlmCiAiICBjYWxsIEZPVEVTVCgxMCkKKyJjYWxsIERlY2hvKCJDT01CQUsjMDQgYnVmKCUpIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkuIiBidWZucih3aW4jMSk9Ii53aW5idWZucigxKS4iPCIuYnVmbmFtZSh3aW5idWZucigxKSkuIiBidWZucih3aW4jMik9Ii53aW5idWZucigyKS4iPCIuYnVmbmFtZSh3aW5idWZucigyKSkuIj4iKQogCiAgIGlmIGE6aXNsb2NhbCAmJiBleGlzdHMoInc6bmV0cndfYWNka2VlcCIpICYmIHc6bmV0cndfYWNka2VlcAogIiAgIGNhbGwgRGVjaG8oImhhbmRsZSB3Om5ldHJ3X2FjZGtlZXA6IikKICIgICBjYWxsIERlY2hvKCJrZWVwanVtcHMgbGNkICIuZm5hbWVlc2NhcGUoZGlybmFtZSkuIiAoZHVlIHRvIHc6bmV0cndfYWNka2VlcD0iLnc6bmV0cndfYWNka2VlcC4iIC0gYWNkPSIuJmFjZC4iKSIpCi0gICBleGUgJ2tlZXBqdW1wcyBsY2QgJy5mbmFtZWVzY2FwZShkaXJuYW1lKQorICAgZXhlICdrZWVwaiBsY2QgJy5mbmFtZWVzY2FwZShkaXJuYW1lKQogICAgY2FsbCBzOk5ldHJ3U2FmZU9wdGlvbnMoKQogIiAgIGNhbGwgRGVjaG8oImdldGN3ZDwiLmdldGN3ZCgpLiI+IikKIApAQCAtMjE3NiwxOSArMjMwMiwxOSBAQAogICAgY2FsbCBzOlJlbW90ZVBhdGhBbmFseXNpcyhkaXJuYW1lKQogCiAgICAiIHJlbW90ZS1yZWFkIHRoZSByZXF1ZXN0ZWQgZmlsZSBpbnRvIGN1cnJlbnQgYnVmZmVyIHt7ezMKLSAgIG1hcmsgJworICAga2VlcGogbWFyayAnCiAgICBjYWxsIHM6TmV0cndFbmV3KGRpcm5hbWUpCiAgICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCiAgICBzZXRsb2NhbCBtYSBub3JvCiAiICAgY2FsbCBEZWNobygic2V0bG9jYWwgbWEgbm9ybyIpCiAgICBsZXQgYjpuZXRyd19jdXJkaXI9IGRpcm5hbWUKICIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpLiIgKGJ0PSIuJmJ0LiIpIikKLSAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpCi0gICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFByZSAiLmZuYW1lZXNjYXBlKHM6Zm5hbWUpCisgICBleGUgInNpbCEga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoczptZXRob2QuIjovLyIuczp1c2VyLnM6bWFjaGluZS4iLyIuczpwYXRoKQorICAgZXhlICJzaWwga2VlcGFsdCBkb2F1IEJ1ZlJlYWRQcmUgIi5mbmFtZWVzY2FwZShzOmZuYW1lKQogICAgc2lsZW50IGNhbGwgbmV0cncjTmV0UmVhZCgyLHM6bWV0aG9kLiI6Ly8iLnM6dXNlci5zOm1hY2hpbmUuIi8iLnM6cGF0aCkKICAgIGlmIHM6cGF0aCAhfiAnLnRhci5iejIkJyAmJiBzOnBhdGggIX4gJy50YXIuZ3onCiAgICAgIiBuZXRydy52aW0gYW5kIHRhci52aW0gaGF2ZSBhbHJlYWR5IGhhbmRsZWQgZGVjb21wcmVzc2lvbiBvZiB0aGUgdGFyYmFsbDsgYXZvaWRpbmcgZ3ppcC52aW0gZXJyb3IKLSAgICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShzOmZuYW1lKQorICAgIGV4ZSAic2lsIGtlZXBhbHQgZG9hdSBCdWZSZWFkUG9zdCAiLmZuYW1lZXNjYXBlKHM6Zm5hbWUpCiAgICBlbmRpZgogCiAgICAiIHNhdmUgY2VydGFpbiB3aW5kb3ctb3JpZW50ZWQgdmFyaWFibGVzIGludG8gYnVmZmVyLW9yaWVudGVkIHZhcmlhYmxlcyB7e3szCkBAIC0yMjAxLDYgKzIzMjcsNyBAQAogICAgcmV0dXJuCiAgIGVuZGlmCiAiICBjYWxsIEZPVEVTVCgxMSkKKyJjYWxsIERlY2hvKCJDT01CQUsjMDUgYnVmKCUpIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkuIiBidWZucih3aW4jMSk9Ii53aW5idWZucigxKS4iPCIuYnVmbmFtZSh3aW5idWZucigxKSkuIiBidWZucih3aW4jMik9Ii53aW5idWZucigyKS4iPCIuYnVmbmFtZSh3aW5idWZucigyKSkuIj4iKQogCiAgICIgdXNlIGJ1ZmZlci1vcmllbnRlZCBXaW5WYXJzIGlmIGJ1ZmZlciBvbmVzIGV4aXN0IGJ1dCB3aW5kb3cgb25lcyBkb24ndCB7e3szCiAgIGNhbGwgczpVc2VCdWZXaW5WYXJzKCkKQEAgLTIyMTMsNiArMjM0MCw3IEBACiAgICIgc2V0IHVwIG1lbnUge3t7MwogICBjYWxsIHM6TmV0cndNZW51KDEpCiAiICBjYWxsIEZPVEVTVCgxMikKKyJjYWxsIERlY2hvKCJDT01CQUsjMDYgYnVmKCUpIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkuIiBidWZucih3aW4jMSk9Ii53aW5idWZucigxKS4iPCIuYnVmbmFtZSh3aW5idWZucigxKSkuIiBidWZucih3aW4jMik9Ii53aW5idWZucigyKS4iPCIuYnVmbmFtZSh3aW5idWZucigyKSkuIj4iKQogCiAgICIgc2V0IHVwIGJ1ZmZlciB7e3szCiAgIGxldCByZXVzaW5nPSBzOk5ldHJ3R2V0QnVmZmVyKGE6aXNsb2NhbCxkaXJuYW1lKQpAQCAtMjIzMyw5ICsyMzYxLDEwIEBACiAgICByZXR1cm4KICAgZW5kaWYKICIiICBjYWxsIEZPVEVTVCgxMykgIiBQUk9CTEVNIFdJVEggTElTVElORworImNhbGwgRGVjaG8oIkNPTUJBSyMwNyBidWYoJSkjIi5idWZucigiJSIpLiI8Ii5idWZuYW1lKCIlIikuIj4gd2luIyIud2lubnIoKS4iIGJ1Zm5yKHdpbiMxKT0iLndpbmJ1Zm5yKDEpLiI8Ii5idWZuYW1lKHdpbmJ1Zm5yKDEpKS4iIGJ1Zm5yKHdpbiMyKT0iLndpbmJ1Zm5yKDIpLiI8Ii5idWZuYW1lKHdpbmJ1Zm5yKDIpKS4iPiIpCiAKICAgIiBzZXQgYjpuZXRyd19jdXJkaXIgdG8gdGhlIG5ldyBkaXJlY3RvcnkgbmFtZSB7e3szCi0iICBjYWxsIERlY2hvKCJzZXQgYjpuZXRyd19jdXJkaXIgdG8gdGhlIG5ldyBkaXJlY3RvcnkgbmFtZToiKQorIiAgY2FsbCBEZWNobygic2V0IGI6bmV0cndfY3VyZGlyIHRvIHRoZSBuZXcgZGlyZWN0b3J5IG5hbWU6ICAoYnVmIyIuYnVmbnIoIiUiKS4iKSIpCiAgICBsZXQgYjpuZXRyd19jdXJkaXI9IGRpcm5hbWUKICAgaWYgYjpuZXRyd19jdXJkaXIgPX4gJ1svXFxdJCcKICAgIGxldCBiOm5ldHJ3X2N1cmRpcj0gc3Vic3RpdHV0ZShiOm5ldHJ3X2N1cmRpciwnWy9cXF0kJywnJywnZScpCkBAIC0yMjU1LDYgKzIzODQsNyBAQAogICBlbmRpZgogIiAgY2FsbCBEZWNobygiYjpuZXRyd19jdXJkaXI8Ii5iOm5ldHJ3X2N1cmRpci4iPiIpCiAiIiAgY2FsbCBGT1RFU1QoMTQpICIgUFJPQkxFTSBXSVRIIExJU1RJTkcKKyJjYWxsIERlY2hvKCJDT01CQUsjMDggYnVmKCUpIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkuIiBidWZucih3aW4jMSk9Ii53aW5idWZucigxKS4iPCIuYnVmbmFtZSh3aW5idWZucigxKSkuIiBidWZucih3aW4jMik9Ii53aW5idWZucigyKS4iPCIuYnVmbmFtZSh3aW5idWZucigyKSkuIj4iKQogCiAgICIgLS0tLS0tLS0tLS0tCiAgICIgKGxvY2FsIG9ubHkpIHt7ezMKQEAgLTIyNzIsNyArMjQwMiw3IEBACiAgICAgaWYgIWV4aXN0cygiJmw6YWNkIikgfHwgISZsOmFjZAogIiAgICAgY2FsbCBEZWNobygnZXhlIGtlZXBqdW1wcyBsY2QgJy5mbmFtZWVzY2FwZShiOm5ldHJ3X2N1cmRpcikpCiAgICAgIHRyeQotICAgICAgZXhlICdrZWVwanVtcHMgbGNkICcuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpCisgICAgICBleGUgJ2tlZXBqIGxjZCAnLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKQogICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTQ3Mi8KICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpFUlJPUiwidW5hYmxlIHRvIGNoYW5nZSBkaXJlY3RvcnkgdG8gPCIuYjpuZXRyd19jdXJkaXIuIj4gKHBlcm1pc3Npb25zPykiLDYxKQogICAgICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X3BydmRpciIpCkBAIC0yMzI3LDYgKzI0NTcsNyBAQAogIiAgIGNhbGwgRGVjaG8oImI6bmV0cndfY3VyZGlyPCIuYjpuZXRyd19jdXJkaXIuIj4gKHJlbW90ZSkiKQogICBlbmRpZiAgIiAoYWRkaXRpb25hbCByZW1vdGUgaGFuZGxpbmcpCiAiIiAgY2FsbCBGT1RFU1QoMTUpICIgUFJPQkxFTSBXSVRIIExJU1RJTkcKKyJjYWxsIERlY2hvKCJDT01CQUsjMDkgYnVmKCUpIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IHdpbiMiLndpbm5yKCkuIiBidWZucih3aW4jMSk9Ii53aW5idWZucigxKS4iPCIuYnVmbmFtZSh3aW5idWZucigxKSkuIiBidWZucih3aW4jMik9Ii53aW5idWZucigyKS4iPCIuYnVmbmFtZSh3aW5idWZucigyKSkuIj4iKQogCiAgICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIiBEaXJlY3RvcnkgTGlzdGluZzoge3t7MwpAQCAtMjMzNSw2ICsyNDY2LDcgQEAKICIiICBjYWxsIEZPVEVTVCgxNikgIiBQUk9CTEVNIFdJVEggTElTVElORwogICBjYWxsIHM6UGVyZm9ybUxpc3RpbmcoYTppc2xvY2FsKQogIiAgY2FsbCBGT1RFU1QoMTcpCisiY2FsbCBEZWNobygiQ09NQkFLIzEwIGJ1ZiglKSMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiB3aW4jIi53aW5ucigpLiIgYnVmbnIod2luIzEpPSIud2luYnVmbnIoMSkuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMSkpLiIgYnVmbnIod2luIzIpPSIud2luYnVmbnIoMikuIjwiLmJ1Zm5hbWUod2luYnVmbnIoMikpLiI+IikKIAogICAiIFRoZSBzOkxvY2FsQnJvd3NlU2hlbGxDbWRSZWZyZXNoKCkgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGFuIGF1dG9jbWQKICAgIiBpbnN0YWxsZWQgYnkgczpMb2NhbEZhc3RCcm93c2VyKCkgd2hlbiBnOm5ldHJ3X2Zhc3Ricm93c2UgPD0gMSAoaWUuIHNsb3csIG1lZGl1bSBzcGVlZCkuCkBAIC0yNDQ1LDIxICsyNTc3LDI5IEBACiAiICAgIGNhbGwgRGVjaG8oIiAgaGFuZGxpbmcgYXBwcm94IG1hdGNoOiBidWZudW0jIi5idWZudW0uIjwiLmJ1Zm5hbWUoYnVmbnVtKS4iPiBhcHByb3gtZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgIGxldCBpYnVmICAgID0gMQogICAgIGxldCBidWZsYXN0ID0gYnVmbnIoIiQiKQotIiAgICBjYWxsIERlY2hvKCIgIGZpbmRidWYyOiBidWZsYXN0PSIuYnVmbGFzdCkKKyIgICAgY2FsbCBEZWNobygiICBmaW5kYnVmMjogYnVmbGFzdD1idWZucigkKT0iLmJ1Zmxhc3QpCiAgICAgd2hpbGUgaWJ1ZiA8PSBidWZsYXN0CiAgICAgIGxldCBibmFtZT0gc3Vic3RpdHV0ZShidWZuYW1lKGlidWYpLCdcXCcsJy8nLCdnJykKICAgICAgbGV0IGJuYW1lPSBzdWJzdGl0dXRlKGJuYW1lLCcuXHpzLyQnLCcnLCcnKQotIiAgICAgY2FsbCBEZWNobygiICBmaW5kYnVmMzogd2hpbGUgW2lidWY9IixpYnVmLiJdPD1bYnVmbGFzdD0iLmJ1Zmxhc3QuIl06IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IGJ1Zm5hbWUoIi5pYnVmLiIpPCIuYm5hbWUuIj4iKQotICAgICBpZiBibmFtZSAgICE9ICcnICYmIGRpcm5hbWUgPX4gJy8nLmJuYW1lLicvXD0kJyAmJiBkaXJuYW1lICF+ICdeLycKLSIgICAgICBjYWxsIERlY2hvKCIgIGZpbmRidWYzOiBwYXNzZXMgdGVzdCAxIDogZGlybmFtZTwiLmRpcm5hbWUuJz4gPX4gLycuYm5hbWUuJy9cPSQgJiYgZGlybmFtZSAhfiBeLycpCisiICAgICBjYWxsIERlY2hvKCIgIGZpbmRidWYzOiB3aGlsZSBbaWJ1Zj0iLGlidWYuIl08PVtidWZsYXN0PSIuYnVmbGFzdC4iXTogZGlybmFtZTwiLmRpcm5hbWUuIj4gYm5hbWU9YnVmbmFtZSgiLmlidWYuIik8Ii5ibmFtZS4iPiIpCisgICAgIGlmIGJuYW1lICE9ICcnICYmIGRpcm5hbWUgPX4gJy8nLmJuYW1lLicvXD0kJyAmJiBkaXJuYW1lICF+ICdeLycKKyAgICAgICIgYm5hbWUgaXMgbm90IGVtcHR5CisgICAgICAiIGRpcm5hbWUgZW5kcyB3aXRoIGJuYW1lLAorICAgICAgIiBkaXJuYW1lIGRvZXNuJ3Qgc3RhcnQgd2l0aCAvLCBzbyBpdHMgbm90IGEgYWJzb2x1dGUgcGF0aAorIiAgICAgIGNhbGwgRGVjaG8oIiAgZmluZGJ1ZjNhOiBwYXNzZXMgdGVzdCAxIDogZGlybmFtZTwiLmRpcm5hbWUuJz4gPX4gLycuYm5hbWUuJy9cPSQgJiYgZGlybmFtZSAhfiBeLycpCiAgICAgICBicmVhawogICAgICBlbmRpZgotICAgICBpZiBibmFtZSAgID1+ICdeJy5kaXJuYW1lLicvXD0kJwotIiAgICAgIGNhbGwgRGVjaG8oJyAgZmluZGJ1ZjM6IHBhc3NlcyB0ZXN0IDIgOiBibmFtZTwnLmJuYW1lLic+PX5eJy5kaXJuYW1lLicvXD0kJykKKyAgICAgaWYgYm5hbWUgPX4gJ14nLmRpcm5hbWUuJy9cPSQnCisgICAgICAiIGJuYW1lIGJlZ2lucyB3aXRoIGRpcm5hbWUKKyIgICAgICBjYWxsIERlY2hvKCcgIGZpbmRidWYzYjogcGFzc2VzIHRlc3QgMiA6IGJuYW1lPCcuYm5hbWUuJz49fl4nLmRpcm5hbWUuJy9cPSQnKQogICAgICAgYnJlYWsKICAgICAgZW5kaWYKICAgICAgaWYgZGlybmFtZSA9fiAnXicuYm5hbWUuJy8kJwotIiAgICAgIGNhbGwgRGVjaG8oJyAgZmluZGJ1ZjM6IHBhc3NlcyB0ZXN0IDMgOiBkaXJuYW1lPCcuZGlybmFtZS4nPj1+XicuYm5hbWUuJy8kJykKKyIgICAgICBjYWxsIERlY2hvKCcgIGZpbmRidWYzYzogcGFzc2VzIHRlc3QgMyA6IGRpcm5hbWU8Jy5kaXJuYW1lLic+PX5eJy5ibmFtZS4nLyQnKQorICAgICAgYnJlYWsKKyAgICAgZW5kaWYKKyAgICAgaWYgYm5hbWUgIT0gJycgJiYgZGlybmFtZSA9fiAnLycuYm5hbWUuJyQnICYmIGJuYW1lID09IGJ1Zm5hbWUoIiUiKSAmJiBsaW5lKCIkIikgPT0gMQorIiAgICAgIGNhbGwgRGVjaG8oJyAgZmluZGJ1ZjNkOiBwYXNzZXMgdGVzdCA0IDogZGlybmFtZTwnLmRpcm5hbWUuJz49fiAvJy5ibmFtZS4nJCcpCiAgICAgICBicmVhawogICAgICBlbmRpZgogICAgICBsZXQgaWJ1Zj0gaWJ1ZiArIDEKQEAgLTI0NzQsOSArMjYxNCw5IEBACiAgIGVuZGlmCiAKICAgIiBnZXQgZW5ldyBidWZmZXIgYW5kIG5hbWUgaXQgLW9yLSByZS11c2UgYnVmZmVyIHt7ezMKLSIgIGNhbGwgRGVjaG8oIi0tZ2V0IGVuZXcgYnVmZmVyIGFuZCBuYW1lIGl0IE9SIHJlLXVzZSBidWZmZXItLSAoYnVmbnVtPSIuYnVmbnVtLiIpIikKLSAgbWFyayAnCisgIGtlZXBqIG1hcmsgJwogICBpZiBidWZudW0gPCAwIHx8ICFidWZleGlzdHMoYnVmbnVtKQorIiAgIGNhbGwgRGVjaG8oIi0tZ2V0IGVuZXcgYnVmZmVyIGFuZCBuYW1lIGl0IChidWZleGlzdHMoW2J1Zm51bT0iLmJ1Zm51bS4iXSk9Ii5idWZleGlzdHMoYnVmbnVtKS4iKSIpCiAgICBjYWxsIHM6TmV0cndFbmV3KGRpcm5hbWUpCiAiICAgY2FsbCBEZWNobygiICBnb3QgZW5ldyBidWZmZXIjIi5idWZucigiJSIpLiIgKGFsdGJ1ZjwiLmV4cGFuZCgiIyIpLiI+KSIpCiAgICAiIG5hbWUgdGhlIGJ1ZmZlcgpAQCAtMjQ5MCw3ICsyNjMwLDggQEAKICAgICBlbmRpZgogICAgIGxldCB3Om5ldHJ3X3RyZWVidWZucj0gYnVmbnIoIiUiKQogIiAgICBjYWxsIERlY2hvKCIgIGV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSBOZXRyd1RyZWVMaXN0aW5nICIuZm5hbWVlc2NhcGUoczpuZXRyd190cmVlbGlzdG51bSkpCi0gICAgZXhlICdzaWxlbnQhIGtlZXBhbHQgZmlsZSBOZXRyd1RyZWVMaXN0aW5nXCAnLmZuYW1lZXNjYXBlKHM6bmV0cndfdHJlZWxpc3RudW0pCisgICAgZXhlICdzaWwhIGtlZXBhbHQgZmlsZSBOZXRyd1RyZWVMaXN0aW5nXCAnLmZuYW1lZXNjYXBlKHM6bmV0cndfdHJlZWxpc3RudW0pCisgICAgc2V0IGJ0PW5vZmlsZSBub3N3ZgogICAgIG5ub3JlbWFwIDxzaWxlbnQ+IDxidWZmZXI+IFsJOnNpbGVudCBjYWxsIDxTSUQ+VHJlZUxpc3RNb3ZlKCdbJyk8Y3I+CiAgICAgbm5vcmVtYXAgPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KICAgICBubm9yZW1hcCA8c2lsZW50PiA8YnVmZmVyPiBbWyAgICAgICA6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ1snKTxjcj4KQEAgLTI0OTksMTUgKzI2NDAsMTYgQEAKICAgIGVsc2UKICIgICAgbGV0IHY6ZXJybXNnPSAiIiAiIERlY2hvCiAgICAgbGV0IGVzY2Rpcm5hbWU9IGZuYW1lZXNjYXBlKGRpcm5hbWUpCi0iICAgIGNhbGwgRGVjaG8oIiAgZXJybXNnPCIudjplcnJtc2cuIj4gYnVmbnIoIi5lc2NkaXJuYW1lLiIpPSIuYnVmbnIoZXNjZGlybmFtZSkuIjwiLmJ1Zm5hbWUoYnVmbnIoZXNjZGlybmFtZSkpLiI+IikKKyIgICAgY2FsbCBEZWNobygiICBlcnJtc2c8Ii52OmVycm1zZy4iPiBidWZucihlc2NkaXJuYW1lPCIuZXNjZGlybmFtZS4iPik9Ii5idWZucihlc2NkaXJuYW1lKS4iIGJ1Zm5hbWUoKTwiLmJ1Zm5hbWUoYnVmbnIoZXNjZGlybmFtZSkpLiI+IikKICIgICAgY2FsbCBEZWNobygnICBleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgJy5lc2NkaXJuYW1lKQotICAgIGV4ZSAnc2lsZW50ISBrZWVwYWx0IGZpbGUgJy5lc2NkaXJuYW1lCisiICAgIGxldCB2OmVycm1zZz0gIiIgIiBEZWNobworICAgIGV4ZSAnc2lsISBrZWVwYWx0IGZpbGUgJy5lc2NkaXJuYW1lCiAiICAgIGNhbGwgRGVjaG8oIiAgZXJybXNnPCIudjplcnJtc2cuIj4gYnVmbnIoIi5lc2NkaXJuYW1lLiIpPSIuYnVmbnIoZXNjZGlybmFtZSkuIjwiLmJ1Zm5hbWUoYnVmbnIoZXNjZGlybmFtZSkpLiI+IikKICAgIGVuZGlmCiAiICAgY2FsbCBEZWNobygiICBuYW1lZCBlbmV3IGJ1ZmZlciMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiIpCiAKICAgZWxzZSAiIFJlLXVzZSB0aGUgYnVmZmVyCi0iICAgY2FsbCBEZWNobygiLS1yZS11c2UgYnVmZmVyIyIuYnVmbnVtLiI6IC0tIikKKyIgICBjYWxsIERlY2hvKCItLXJlLXVzZSBidWZmZXIjIi5idWZudW0uIiAoYnVmZXhpc3RzKFtidWZudW09Ii5idWZudW0uIl0pPSIuYnVmZXhpc3RzKGJ1Zm51bSkuIikiKQogICAgbGV0IGVpa2VlcD0gJmVpCiAgICBzZXQgZWk9YWxsCiAgICBpZiBnZXRsaW5lKDIpID1+ICdeIiBOZXRydyBEaXJlY3RvcnkgTGlzdGluZycKQEAgLTI1MTksNyArMjY2MSw3IEBACiAgICBlbmRpZgogICAgaWYgYnVmbmFtZSgiJSIpID09ICcuJwogIiAgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShnZXRjd2QoKSkpCi0gICAgZXhlICJzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKGdldGN3ZCgpKQorICAgIGV4ZSAic2lsISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShnZXRjd2QoKSkKICAgIGVuZGlmCiAgICBsZXQgJmVpPSBlaWtlZXAKICAgIGlmIGxpbmUoIiQiKSA8PSAxCkBAIC0yNTI5LDcgKzI2NzEsNyBAQAogICAgZWxzZWlmIGV4aXN0cygidzpuZXRyd19saXN0c3R5bGUiKSAmJiB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRSRUVMSVNUCiAiICAgIGNhbGwgRGVjaG8oIi0tcmUtdXNlIHRyZWUgbGlzdGluZy0tIikKICIgICAgY2FsbCBEZWNobygiICBjbGVhciBidWZmZXI8Ii5leHBhbmQoIiUiKS4iPiB3aXRoIDolZCIpCi0gICAgc2lsZW50ICVkCisgICAgc2lsIGtlZXBqICVkCiAgICAgY2FsbCBzOk5ldHJ3TGlzdFNldHRpbmdzKGE6aXNsb2NhbCkKICIgICAgY2FsbCBEcmV0KCJzOk5ldHJ3R2V0QnVmZmVyIDAgOiByZS11c2luZyBidWZmZXIjIi5idWZucigiJSIpLiIsIGJ1dCB0cmVlbGlzdCBtb2RlIGFsd2F5cyBuZWVkcyBhIHJlZnJlc2giKQogICAgIHJldHVybiAwCkBAIC0yNTQ0LDcgKzI2ODYsNyBAQAogICAiICBzbG93ICAgMCAgICAgICAgIEQgICAgICBEICAgICAgRGVsZXRpbmcgYSBidWZmZXIgaW1wbGllcyBpdCB3aWxsIG5vdCBiZSByZS11c2VkIChzbG93KQogICAiICBtZWQgICAgMSAgICAgICAgIEQgICAgICBICiAgICIgIGZhc3QgICAyICAgICAgICAgSCAgICAgIEgKLSIgIGNhbGwgRGVjaG8oIi0tZG8gbmV0cncgc2V0dGluZ3M6IG1ha2UgdGhpcyBidWZmZXIgbm90LWEtZmlsZSwgbW9kaWZpYWJsZSwgbm90IGxpbmUtbnVtYmVyZWQsIGV0Yy0tIikKKyIgIGNhbGwgRGVjaG8oIi0tZG8gbmV0cncgc2V0dGluZ3M6IG1ha2UgdGhpcyBidWZmZXIjIi5idWZucigiJSIpLiIgbm90LWEtZmlsZSwgbW9kaWZpYWJsZSwgbm90IGxpbmUtbnVtYmVyZWQsIGV0Yy0tIikKICAgbGV0IGZuYW1lPSBleHBhbmQoIiUiKQogICBjYWxsIHM6TmV0cndMaXN0U2V0dGluZ3MoYTppc2xvY2FsKQogIiAgY2FsbCBEZWNobygiZXhlIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKGZuYW1lKSkKQEAgLTI1NTMsNyArMjY5NSw3IEBACiAgICIgZGVsZXRlIGFsbCBsaW5lcyBmcm9tIGJ1ZmZlciB7e3szCiAiICBjYWxsIERlY2hvKCItLWRlbGV0ZSBhbGwgbGluZXMgZnJvbSBidWZmZXItLSIpCiAiICBjYWxsIERlY2hvKCIgIGNsZWFyIGJ1ZmZlcjwiLmV4cGFuZCgiJSIpLiI+IHdpdGggOiVkIikKLSAga2VlcGFsdCBzaWxlbnQhICVkCisgIHNpbCEga2VlcGFsdCBrZWVwaiAlZAogCiAiICBjYWxsIERyZXQoInM6TmV0cndHZXRCdWZmZXIgMCA6IGJ1ZiMiLmJ1Zm5yKCIlIikpCiAgIHJldHVybiAwCkBAIC0yNTk1LDEyICsyNzM3LDEyIEBACiAgIGlmIGV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKSAmJiBsaW5lKCIuIikgPCB3Om5ldHJ3X2Jhbm5lcmNudAogICAgIiBBY3RpdmUgQmFubmVyIHN1cHBvcnQKICIgICBjYWxsIERlY2hvKCJhY3RpdmUgYmFubmVyIGhhbmRsaW5nIikKLSAgIG5vcm0hIDAKKyAgIGtlZXBqIG5vcm0hIDAKICAgIGxldCBkaXJuYW1lPSAiLi8iCiAgICBsZXQgY3VybGluZT0gZ2V0bGluZSgnLicpCiAKICAgIGlmIGN1cmxpbmUgPX4gJyJccypTb3J0ZWQgYnlccycKLSAgICBub3JtIHMKKyAgICBrZWVwaiBub3JtIHMKICAgICBsZXQgczpuZXRyd19za2lwYnJvd3NlPSAxCiAgICAgZWNobyAnUHJlc3NpbmcgInMiIGFsc28gd29ya3MnCiAKQEAgLTI2MDksMjcgKzI3NTEsMjcgQEAKICAgICBlY2hvICdQcmVzcyAiUyIgdG8gZWRpdCBzb3J0aW5nIHNlcXVlbmNlJwogCiAgICBlbHNlaWYgY3VybGluZSA9fiAnIlxzKlF1aWNrIEhlbHA6JwotICAgIG5vcm0gPworICAgIGtlZXBqIG5vcm0gPwogICAgIGxldCBzOm5ldHJ3X3NraXBicm93c2U9IDEKICAgICBlY2hvICdQcmVzc2luZyAiPyIgYWxzbyB3b3JrcycKIAogICAgZWxzZWlmIGN1cmxpbmUgPX4gJyJccypcJShIaWRpbmdcfFNob3dpbmdcKTonCi0gICAgbm9ybSBhCisgICAga2VlcGogbm9ybSBhCiAgICAgbGV0IHM6bmV0cndfc2tpcGJyb3dzZT0gMQogICAgIGVjaG8gJ1ByZXNzaW5nICJhIiBhbHNvIHdvcmtzJwogCiAgICBlbHNlaWYgbGluZSgiJCIpID4gdzpuZXRyd19iYW5uZXJjbnQKLSAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudAorICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQKICAgIGVuZGlmCiAKICAgZWxzZWlmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VEhJTkxJU1QKICIgICBjYWxsIERlY2hvKCJ0aGluIGNvbHVtbiBoYW5kbGluZyIpCi0gICBub3JtISAwCisgICBrZWVwaiBub3JtISAwCiAgICBsZXQgZGlybmFtZT0gZ2V0bGluZSgnLicpCiAKICAgZWxzZWlmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6TE9OR0xJU1QKICIgICBjYWxsIERlY2hvKCJsb25nIGNvbHVtbiBoYW5kbGluZyIpCi0gICBub3JtISAwCisgICBrZWVwaiBub3JtISAwCiAgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShnZXRsaW5lKCcuJyksJ15cKFwlKFxTXCsgXCkqXFNcK1wpLlx7LX0kJywnXDEnLCdlJykKIAogICBlbHNlaWYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVApAQCAtMjY1MiwxOCArMjc5NCwxOCBAQAogIiAgIGNhbGwgRGVjaG8oImZpbGVzdGFydD0gKFt2aXJ0Y29sPSIudmlydGNvbCgiLiIpLiJdL1tiOm5ldHJ3X2NwZj0iLmI6bmV0cndfY3BmLiJdKSpiOm5ldHJ3X2NwZj0iLmZpbGVzdGFydC4iICBiYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudCkKICIgICBjYWxsIERlY2hvKCIxOiBkaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgICBpZiBmaWxlc3RhcnQgPT0gMAotICAgIG5vcm0hIDBtYQorICAgIGtlZXBqIG5vcm0hIDBtYQogICAgZWxzZQogICAgIGNhbGwgY3Vyc29yKGxpbmUoIi4iKSxmaWxlc3RhcnQrMSkKLSAgICBub3JtISBtYQorICAgIGtlZXBqIG5vcm0hIG1hCiAgICBlbmRpZgogICAgbGV0IHJlZ2E9IEBhCiAgICBsZXQgZW9mbmFtZT0gZmlsZXN0YXJ0ICsgYjpuZXRyd19jcGYgKyAxCiAgICBpZiBlb2ZuYW1lIDw9IGNvbCgiJCIpCiAgICAgY2FsbCBjdXJzb3IobGluZSgiLiIpLGZpbGVzdGFydCtiOm5ldHJ3X2NwZisxKQotICAgIG5vcm0hICJheWBhCisgICAga2VlcGogbm9ybSEgImF5YGEKICAgIGVsc2UKLSAgICBub3JtISAiYXkkCisgICAga2VlcGogbm9ybSEgImF5JAogICAgZW5kaWYKICAgIGxldCBkaXJuYW1lID0gQGEKICAgIGxldCBAYSAgICAgID0gcmVnYQpAQCAtMjY4Myw3ICsyODI1LDcgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOk5ldHJ3TGlzdFNldHRpbmdzOiB7e3syCisiIHM6TmV0cndMaXN0U2V0dGluZ3M6IG1ha2Ugc3RhbmRhcmQgc2V0dGluZ3MgZm9yIGEgbmV0cncgbGlzdGluZyB7e3syCiBmdW4hIHM6TmV0cndMaXN0U2V0dGluZ3MoaXNsb2NhbCkKICIgIGNhbGwgRGZ1bmMoInM6TmV0cndMaXN0U2V0dGluZ3MoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSIpCiAgIGxldCBmbmFtZT0gYnVmbmFtZSgiJSIpCkBAIC0yNzQ5LDM1ICsyODkxLDIzIEBACiAKICAgIiBjbGVhciBidWZmZXIgLSB0aGlzIHdpbGwgY2F1c2UgTmV0cndCcm93c2UvTG9jYWxCcm93c2VDaGVjayB0byBkbyBhIHJlZnJlc2gKICIgIGNhbGwgRGVjaG8oImNsZWFyIGJ1ZmZlcjwiLmV4cGFuZCgiJSIpLiI+IHdpdGggOiVkIikKLSAgJWQKKyAga2VlcGogJWQKKyAgIiBmb2xsb3dpbmcgcHJldmVudHMgdHJlZSBsaXN0aW5nIGJ1ZmZlciBmcm9tIGJlaW5nIG1hcmtlZCAibW9kaWZpZWQiCisgIHNldGxvY2FsIG5vbW9kCiAKICAgIiByZWZyZXNoIHRoZSBsaXN0aW5nCisiICBjYWxsIERlY2hvKCJyZWZyZXNoIHRoZSBsaXN0aW5nIikKICAgbGV0IHN2cG9zPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKICAgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsJy4vJykpCiAgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbihzdnBvcykKLSAgaWYgdzpuZXRyd19saXN0c3R5bGUgIT0gczpXSURFTElTVAotICAgaWYgZzpuZXRyd19jdXJzb3JsaW5lID09IDIKLSAgICBzZXRsb2NhbCBjdXJzb3JsaW5lCi0gICAgbGV0ICZjdXJzb3Jjb2x1bW49IHM6bmV0cndfdXNlcmN1YwotICAgZWxzZWlmIGc6bmV0cndfY3Vyc29ybGluZQotICAgIHNldGxvY2FsIGN1cnNvcmxpbmUKLSIgICAgY2FsbCBEZWNobygic2V0bG9jYWwgY3Vyc29ybGluZSIpCi0gICBlbmRpZgotICBlbHNlCi0gICBpZiBnOm5ldHJ3X2N1cnNvcmxpbmUgPT0gMgotICAgIHNldGxvY2FsIGN1cnNvcmxpbmUgY3Vyc29yY29sdW1uCi0iICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIGN1cnNvcmxpbmUgY3Vyc29yY29sdW1uIikKLSAgIGVsc2VpZiBnOm5ldHJ3X2N1cnNvcmxpbmUKLSAgICBsZXQgJmN1cnNvcmxpbmU9IHM6bmV0cndfdXNlcmN1bAotICAgZW5kaWYKLSAgZW5kaWYKKyAgY2FsbCBzOk5ldHJ3Q3Vyc29ybGluZSgpCiAKICAgIiBrZWVwIGN1cnNvciBvbiB0aGUgZmlsZW5hbWUKLSAgc2lsZW50IGtlZXBqdW1wcyAkCisgIHNpbCBrZWVwaiAkCiAgIGxldCByZXN1bHQ9IHNlYXJjaCgnXCUoXlwlKHxcK1xzXClcPVx8XHNcezIsfVwpXHpzJy5lc2NhcGUoZm5hbWUsJy5cW10qJF4nKS4nXCUoXHNcezIsfVx8JFwpJywnYmMnKQogIiAgY2FsbCBEZWNobygic2VhcmNoIHJlc3VsdD0iLnJlc3VsdC4iIHc6bmV0cndfYmFubmVyY250PSIuKGV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKT8gdzpuZXRyd19iYW5uZXJjbnQgOiAnTi9BJykpCiAgIGlmIHJlc3VsdCA8PSAwICYmIGV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKQotICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudAorICAgZXhlICJrZWVwaiAiLnc6bmV0cndfYmFubmVyY250CiAgIGVuZGlmCiAKICIgIGNhbGwgRHJldCgiTmV0cndMaXN0U3R5bGUiLihleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIik/ICcgOiB3Om5ldHJ3X2xpc3RzdHlsZT0nLnc6bmV0cndfbGlzdHN0eWxlIDogIiIpKQpAQCAtMjc5NywxMSArMjkyNywxMSBAQAogCiAgICIga2VlcCBjdXJzb3Igb24gdGhlIGZpbGVuYW1lCiAgIGxldCBmbmFtZT0gczpOZXRyd0dldFdvcmQoKQotICBzaWxlbnQga2VlcGp1bXBzICQKKyAgc2lsIGtlZXBqICQKICAgbGV0IHJlc3VsdD0gc2VhcmNoKCdcJSheXCUofFwrXHNcKVw9XHxcc1x7Mix9XClcenMnLmVzY2FwZShmbmFtZSwnLlxbXSokXicpLidcJShcc1x7Mix9XHwkXCknLCdiYycpCiAiICBjYWxsIERlY2hvKCJzZWFyY2ggcmVzdWx0PSIucmVzdWx0LiIgdzpuZXRyd19iYW5uZXJjbnQ9Ii4oZXhpc3RzKCJ3Om5ldHJ3X2Jhbm5lcmNudCIpPyB3Om5ldHJ3X2Jhbm5lcmNudCA6ICdOL0EnKSkKICAgaWYgcmVzdWx0IDw9IDAgJiYgZXhpc3RzKCJ3Om5ldHJ3X2Jhbm5lcmNudCIpCi0gICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CisgICBleGUgImtlZXBqICIudzpuZXRyd19iYW5uZXJjbnQKICAgZW5kaWYKICIgIGNhbGwgRHJldCgiczpOZXRyd0Jhbm5lckN0cmwgOiBnOm5ldHJ3X2Jhbm5lcj0iLmc6bmV0cndfYmFubmVyKQogZW5kZnVuCkBAIC0yODIxLDggKzI5NTEsOCBAQAogICBpZiBoYXMoImd1aSIpICYmIGhhcygibWVudSIpICYmIGhhcygiZ3VpX3J1bm5pbmciKSAmJiAmZ28gPX4gJ20nICYmIGc6bmV0cndfbWVudQogICAgaWYgZXhpc3RzKCJnOk5ldHJ3VG9wTHZsTWVudSIpCiAiICAgIGNhbGwgRGVjaG8oInJlbW92aW5nICIuZzpOZXRyd1RvcEx2bE1lbnUuIkJvb2ttYXJrcyBtZW51IGl0ZW0ocykiKQotICAgIGV4ZSAnc2lsZW50ISB1bm1lbnUgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzJwotICAgIGV4ZSAnc2lsZW50ISB1bm1lbnUgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzXCBhbmRcIEhpc3RvcnkuQm9va21hcmtcIERlbGV0ZScKKyAgICBleGUgJ3NpbCEgdW5tZW51ICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrcycKKyAgICBleGUgJ3NpbCEgdW5tZW51ICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5LkJvb2ttYXJrXCBEZWxldGUnCiAgICBlbmRpZgogICAgaWYgIWV4aXN0cygiczpuZXRyd19pbml0Ym9va2hpc3QiKQogICAgIGNhbGwgczpOZXRyd0Jvb2tIaXN0UmVhZCgpCkBAIC0yODMzLDEzICsyOTYzLDEzIEBACiAgICAgbGV0IGNudD0gMQogICAgIGZvciBibWQgaW4gZzpuZXRyd19ib29rbWFya2xpc3QKICIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4yLiIuY250LiIgIi5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmsuJy5ibWQuJwk6ZSAnLmJtZCkKLSAgICAgbGV0IGJtZD0gZXNjYXBlKGJtZCwnLiAnKQorICAgICBsZXQgYm1kPSBlc2NhcGUoYm1kLGc6bmV0cndfbWVudV9lc2NhcGUpCiAKICAgICAgIiBzaG93IGJvb2ttYXJrcyBmb3IgZ290byBtZW51Ci0gICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4iLjIuIi5jbnQuIiAiLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3MuJy5ibWQuJwk6ZSAnLmJtZC4iXDxjcj4iCisgICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4iLjIuIi5jbnQuIiAiLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3MuJy5ibWQuJwk6ZSAnLmJtZC4iXDxjcj4iCiAKICAgICAgIiBzaG93IGJvb2ttYXJrcyBmb3IgZGVsZXRpb24gbWVudQotICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi44LjIuIi5jbnQuIiAiLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Cb29rbWFya1wgRGVsZXRlLicuYm1kLicJJy5jbnQuIm1CIgorICAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi44LjIuIi5jbnQuIiAiLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Cb29rbWFya1wgRGVsZXRlLicuYm1kLicJJy5jbnQuIm1CIgogICAgICBsZXQgY250PSBjbnQgKyAxCiAgICAgZW5kZm9yCiAKQEAgLTI4NTMsOSArMjk4Myw5IEBACiAgICAgbGV0IGhpc3RjbnQgID0gaGlzdGNudCArIDEKICAgICBsZXQgcHJpb3JpdHkgPSBnOm5ldHJ3X2Rpcmhpc3RfY250ICsgaGlzdGNudAogICAgIGlmIGV4aXN0cygiZzpuZXRyd19kaXJoaXN0X3tjbnR9IikKLSAgICAgbGV0IGhpc3RkaXI9IGVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2NudH0sJy4vJj8gJykKKyAgICAgbGV0IGhpc3RkaXI9IGVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2NudH0sZzpuZXRyd19tZW51X2VzY2FwZSkKICIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuaGlzdGRpci4nCTplICcuaGlzdGRpcikKLSAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LiIuMy4iLnByaW9yaXR5LiIgIi5nOk5ldHJ3VG9wTHZsTWVudS4nSGlzdG9yeS4nLmhpc3RkaXIuJwk6ZSAnLmhpc3RkaXIuIlw8Y3I+IgorICAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuaGlzdGRpci4nCTplICcuaGlzdGRpci4iXDxjcj4iCiAgICAgZW5kaWYKICAgICBsZXQgZmlyc3QgPSAwCiAgICAgbGV0IGNudCAgID0gKCBjbnQgLSAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKQEAgLTI4ODYsMjYgKzMwMTYsMTcgQEAKICAgIHJldHVybgogICBlbmRpZgogCi0gICIgY2hlY2sgaWYgdGhlIHN0YXR1cyBiYXIgd2FzIGNsaWNrZWQgb24gaW5zdGVhZCBvZiBhIGZpbGUvZGlyZWN0b3J5IG5hbWUKLSAgY2FsbCBmZWVka2V5cygiXDxMZWZ0TW91c2U+IikKLSAgbGV0IGM9IGdldGNoYXIoKQotICBsZXQgbW91c2VfbG51bSA9IHY6bW91c2VfbG51bQotICBsZXQgd2xhc3RsaW5lICA9IGxpbmUoJ3ckJykKLSAgbGV0IGxhc3RsaW5lICAgPSBsaW5lKCckJykKLSIgIGNhbGwgRGVjaG8oInY6bW91c2VfbG51bT0iLm1vdXNlX2xudW0uIiBsaW5lKHckKT0iLndsYXN0bGluZS4iIGxpbmUoJCk9Ii5sYXN0bGluZSkKLSAgaWYgbW91c2VfbG51bSA9PSB3bGFzdGxpbmUgKyAxIHx8IHY6bW91c2Vfd2luICE9IHdpbm5yKCkKLSIgICBjYWxsIERlY2hvKCJhcHBlYXJzIHRvIGJlIGEgc3RhdHVzIGJhciBsZWZ0bW91c2UgY2xpY2siKQotICAgIiBhcHBlYXJzIHRvIGJlIGEgc3RhdHVzIGJhciBsZWZ0bW91c2UgY2xpY2sKLSAgIHJldHVybgotICBlbmRpZgotCiAgIGNhbGwgczpOZXRyd09wdGlvblNhdmUoInM6IikKICAgY2FsbCBzOk5ldHJ3U2FmZU9wdGlvbnMoKQogICBsZXQgbmJjZF9jdXJwb3MgICAgICAgICAgICAgICAgPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKICAgbGV0IHM6bmJjZF9jdXJwb3Nfe2J1Zm5yKCclJyl9ID0gbmJjZF9jdXJwb3MKLSAgbGV0IGRpcm5hbWUgICAgICAgICAgICAgICAgICAgID0gc3Vic3RpdHV0ZShiOm5ldHJ3X2N1cmRpciwnXFwnLCcvJywnZ2UnKQotICBsZXQgbmV3ZGlyICAgICAgICAgICAgICAgICAgICAgPSBhOm5ld2RpcgotICBsZXQgZG9sb2Nrb3V0ICAgICAgICAgICAgICAgICAgPSAwCisgIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCisgICBsZXQgZGlybmFtZSAgICAgICAgICAgICAgICAgICA9IHN1YnN0aXR1dGUoYjpuZXRyd19jdXJkaXIsJ1xcJywnLycsJ2dlJykKKyAgZWxzZQorICAgbGV0IGRpcm5hbWU9IGI6bmV0cndfY3VyZGlyCisgIGVuZGlmCisgIGxldCBuZXdkaXIgICAgPSBhOm5ld2RpcgorICBsZXQgZG9sb2Nrb3V0ID0gMAogCiAgICIgc2V0IHVwIG8vcy1kZXBlbmRlbnQgZGlyZWN0b3J5IHJlY29nbml0aW9uIHBhdHRlcm4KICAgaWYgaGFzKCJhbWlnYSIpCkBAIC0zMDI4LDcgKzMxNDksNyBAQAogIiAgICBjYWxsIERlY2hvKCJjbGVhciBidWZmZXI8Ii5leHBhbmQoIiUiKS4iPiB3aXRoIDolZCIpCiAgICAgc2V0bG9jYWwgbm9ybyBtYQogIiAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBub3JvIG1hIikKLSAgICBrZWVwanVtcHMgJWQKKyAgICBrZWVwaiAlZAogICAgZW5kaWYKIAogICAgaWYgaGFzKCJhbWlnYSIpCkBAIC0zMDY0LDcgKzMxODUsNyBAQAogIiAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG5vcm8gbWEiKQogICAgaWYgIShleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikgJiYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVCAmJiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikpCiAiICAgIGNhbGwgRGVjaG8oImNsZWFyIGJ1ZmZlcjwiLmV4cGFuZCgiJSIpLiI+IHdpdGggOiVkIikKLSAgICBrZWVwanVtcHMgJWQKKyAgICBrZWVwaiAlZAogICAgZW5kaWYKICAgIGxldCB0cmVlZGlyICAgICAgPSBzOk5ldHJ3VHJlZURpcigpCiAgICBsZXQgczp0cmVlY3VycG9zID0gbmJjZF9jdXJwb3MKQEAgLTMxMDcsNyArMzIyOCw3IEBACiAgICAgY2FsbCByZW1vdmUodzpuZXRyd190cmVlZGljdCx0cmVlZGlyKQogIiAgICBjYWxsIERlY2hvKCJyZW1vdmVkICAgICBlbnRyeTwiLnRyZWVkaXIuIj4gZnJvbSB0cmVlZGljdCIpCiAiICAgIGNhbGwgRGVjaG8oInlpZWxkaW5nIHRyZWVkaWN0PCIuc3RyaW5nKHc6bmV0cndfdHJlZWRpY3QpLiI+IikKLSAgICBsZXQgZGlybmFtZSAgICAgICAgICAgPSB3Om5ldHJ3X3RyZWV0b3AKKyAgICBsZXQgZGlybmFtZT0gdzpuZXRyd190cmVldG9wCiAgICBlbHNlCiAgICAgIiBnbyBkb3duIG9uZSBkaXJlY3RvcnkKICAgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZSh0cmVlZGlyLCcvKiQnLCcvJywnJykKQEAgLTMyMDQsNiArMzMyNSwxMSBAQAogICAgZW5kaWYKICAgZWxzZQogICAgbGV0IGZuYW1lPSBhOmZuYW1lCisgICAiIHNwZWNpYWwgfiBoYW5kbGVyIGZvciBsb2NhbAorICAgaWYgZm5hbWUgPX4gJ15cficgJiYgZXhwYW5kKCIkSE9NRSIpICE9ICIiCisiICAgIGNhbGwgRGVjaG8oJ2ludm9raW5nIHNwZWNpYWwgfiBoYW5kbGVyJykKKyAgICBsZXQgZm5hbWU9IHN1YnN0aXR1dGUoZm5hbWUsJ15cficsZXhwYW5kKCIkSE9NRSIpLCcnKQorICAgZW5kaWYKICAgZW5kaWYKICIgIGNhbGwgRGVjaG8oImZuYW1lPCIuZm5hbWUuIj4iKQogIiAgY2FsbCBEZWNobygiZXh0ZW48Ii5leHRlbi4iPiAiLiJuZXRyd0ZpbGVIYW5kbGVycyNORkhfIi5leHRlbi4iKCk6ZXhpc3RzPSIuZXhpc3RzKCIqbmV0cndGaWxlSGFuZGxlcnMjTkZIXyIuZXh0ZW4pKQpAQCAtMzI3MCwxNyArMzM5NiwxNyBAQAogCiAgIGVsc2VpZiBoYXMoInVuaXgiKSAmJiBleGVjdXRhYmxlKCJnbm9tZS1vcGVuIikgJiYgIXM6aGFza2RlaW5pdAogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgIWdub21lLW9wZW4gIi5zaGVsbGVzY2FwZShmbmFtZSwxKS4iICIucmVkaXIpCi0gICBleGUgInNpbGVudCAhZ25vbWUtb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lLDEpLnJlZGlyCisgICBleGUgInNpbCAhZ25vbWUtb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lLDEpLnJlZGlyCiAgICBsZXQgcmV0PSB2OnNoZWxsX2Vycm9yCiAKICAgZWxzZWlmIGhhcygidW5peCIpICYmIGV4ZWN1dGFibGUoImtmbWNsaWVudCIpICYmIHM6aGFza2RlaW5pdAogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgIWtmbWNsaWVudCBleGVjICIuc2hlbGxlc2NhcGUoZm5hbWUsMSkuIiAiLnJlZGlyKQotICAgZXhlICJzaWxlbnQgIWtmbWNsaWVudCBleGVjICIuc2hlbGxlc2NhcGUoZm5hbWUsMSkuIiAiLnJlZGlyCisgICBleGUgInNpbCAha2ZtY2xpZW50IGV4ZWMgIi5zaGVsbGVzY2FwZShmbmFtZSwxKS4iICIucmVkaXIKICAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKIAogICBlbHNlaWYgaGFzKCJtYWN1bml4IikgJiYgZXhlY3V0YWJsZSgib3BlbiIpCiAiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAhb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lLDEpLiIgIi5yZWRpcikKLSAgIGV4ZSAic2lsZW50ICFvcGVuICIuc2hlbGxlc2NhcGUoZm5hbWUsMSkuIiAiLnJlZGlyCisgICBleGUgInNpbCAhb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lLDEpLiIgIi5yZWRpcgogICAgbGV0IHJldD0gdjpzaGVsbF9lcnJvcgogCiAgIGVsc2UKQEAgLTMzMTEsNyArMzQzNyw3IEBACiAgICBpZiBnOm5ldHJ3X3VzZV9ub3N3ZgogICAgIHNldGxvY2FsIG5vc3dmCiAgICBlbmRpZgotICAgZXhlICJub3JtISBcPGMtbz4iCisgICBleGUgImtlZXBqIG5vcm0hIFw8Yy1vPiIKICIgICByZWRyYXchCiAgIGVuZGlmCiAKQEAgLTMzODEsMTkgKzM1MDcsMTkgQEAKICAgIGxldCBiOm5ldHJ3X2N1cmRpcj0gZ2V0Y3dkKCkKICIgICBjYWxsIERlY2hvKCJzZXQgYjpuZXRyd19jdXJkaXI8Ii5iOm5ldHJ3X2N1cmRpci4iPiAodXNlZCBnZXRjd2QpIikKICAgZW5kaWYKLSAgbGV0IGN1cmRpciAgICAgPSBiOm5ldHJ3X2N1cmRpcgorICBsZXQgY3VyZGlyICAgICA9IHNpbXBsaWZ5KGI6bmV0cndfY3VyZGlyKQogICBsZXQgY3VyZmlsZWRpciA9IHN1YnN0aXR1dGUoZXhwYW5kKCIlOnAiKSwnXlwoLipbL1xcXVwpW14vXFxdKiQnLCdcMScsJ2UnKQogIiAgY2FsbCBEZWNobygiY3VyZGlyPCIuY3VyZGlyLiI+ICBjdXJmaWxlZGlyPCIuY3VyZmlsZWRpci4iPiIpCiAiICBjYWxsIEZPVEVTVCgxKQogCiAgICIgc2F2ZSByZWdpc3RlcnMKLSAgc2lsZW50ISBsZXQga2VlcHJlZ3N0YXIgPSBAKgotICBzaWxlbnQhIGxldCBrZWVwcmVncGx1cyA9IEArCi0gIHNpbGVudCEgbGV0IGtlZXByZWdzbGFzaD0gQC8KKyAgc2lsISBsZXQga2VlcHJlZ3N0YXIgPSBAKgorICBzaWwhIGxldCBrZWVwcmVncGx1cyA9IEArCisgIHNpbCEgbGV0IGtlZXByZWdzbGFzaD0gQC8KIAogICAiIGlmIGRvc3BsaXQgb3IgZmlsZSBoYXMgYmVlbiBtb2RpZmllZAogICBpZiBhOmRvc3BsaXQgfHwgJm1vZGlmaWVkIHx8IGE6c3R5bGUgPT0gNgotIiAgIGNhbGwgRGVjaG8oImNhc2U6IGRvc3BsaXQ9Ii5hOmRvc3BsaXQuIiBtb2RpZmllZD0iLiZtb2RpZmllZC4iIGE6c3R5bGU9Ii5hOnN0eWxlKQorIiAgIGNhbGwgRGVjaG8oImNhc2UgZG9zcGxpdD0iLmE6ZG9zcGxpdC4iIG1vZGlmaWVkPSIuJm1vZGlmaWVkLiIgYTpzdHlsZT0iLmE6c3R5bGUuIjogZG9zcGxpdCBvciBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkIikKICAgIGNhbGwgczpTYXZlV2luVmFycygpCiAgICBsZXQgd2luc2l6ZT0gZzpuZXRyd193aW5zaXplCiAgICBpZiBhOmluZHggPiAwCkBAIC0zNDMxLDM1ICszNTU3LDUzIEBACiAgICAgY2FsbCBzOlJlc3RvcmVCdWZWYXJzKCkKICAgIGVuZGlmCiAgICBjYWxsIHM6UmVzdG9yZVdpblZhcnMoKQorIiAgZWxzZSAiIERlY2hvCisiICAgY2FsbCBEZWNobygiY2FzZSBhOmRvc3BsaXQ9Ii5hOmRvc3BsaXQuIiBBTkQgbW9kaWZpZWQ9Ii4mbW9kaWZpZWQuIiBBTkQgYTpzdHlsZT0iLmE6c3R5bGUuIiBpcyBub3QgNiIpCiAgIGVuZGlmCi0gIG5vcm0hIDAKKyAga2VlcGogbm9ybSEgMAogIiAgY2FsbCBGT1RFU1QoMikKIAogICBpZiBhOjAgPiAwCi0iICAgY2FsbCBEZWNobygiY2FzZSBbYTowPSIuYTowLiJdPjA6IGE6MTwiLmE6MS4iPiIpCisiICAgY2FsbCBEZWNobygiY2FzZSBbYTowPSIuYTowLiJdID4gMDogYToxPCIuYToxLiI+IikKICAgIGlmIGE6MSA9fiAnXlx+JyAmJiAoaGFzKCJ1bml4IikgfHwgKGV4aXN0cygiZzpuZXRyd19jeWd3aW4iKSAmJiBnOm5ldHJ3X2N5Z3dpbikpCi0gICAgbGV0IGRpcm5hbWU9IHN1YnN0aXR1dGUoYToxLCdcficsZXhwYW5kKCIkSE9NRSIpLCcnKQorIiAgICBjYWxsIERlY2hvKCJjYXNlIGE6MTogfiBhbmQgdW5peCBvciBjeWd3aW4iKQorICAgIGxldCBkaXJuYW1lPSBzaW1wbGlmeShzdWJzdGl0dXRlKGE6MSwnXH4nLGV4cGFuZCgiJEhPTUUiKSwnJykpCiAiICAgIGNhbGwgRGVjaG8oInVzaW5nIGRpcm5hbWU8Ii5kaXJuYW1lLiI+ICAoY2FzZTogfiAmJiB1bml4fHxjeWd3aW4pIikKICAgIGVsc2VpZiBhOjEgPT0gJy4nCi0gICAgbGV0IGRpcm5hbWU9IGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKT8gYjpuZXRyd19jdXJkaXIgOiBnZXRjd2QoKQorIiAgICBjYWxsIERlY2hvKCJjYXNlIGE6MTogLiIpCisgICAgbGV0IGRpcm5hbWU9IHNpbXBsaWZ5KGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKT8gYjpuZXRyd19jdXJkaXIgOiBnZXRjd2QoKSkKICAgICBpZiBkaXJuYW1lICF+ICcvJCcKICAgICAgbGV0IGRpcm5hbWU9IGRpcm5hbWUuIi8iCiAgICAgZW5kaWYKICIgICAgY2FsbCBEZWNobygidXNpbmcgZGlybmFtZTwiLmRpcm5hbWUuIj4gIChjYXNlOiAiLihleGlzdHMoImI6bmV0cndfY3VyZGlyIik/ICJiOm5ldHJ3X2N1cmRpciIgOiAiZ2V0Y3dkKCkiKS4iKSIpCiAgICBlbHNlaWYgYToxID1+ICdcJCcKLSAgICBsZXQgZGlybmFtZT0gZXhwYW5kKGE6MSkKKyIgICAgY2FsbCBEZWNobygiY2FzZSBhOjE6ICQiKQorICAgIGxldCBkaXJuYW1lPSBzaW1wbGlmeShleHBhbmQoYToxKSkKICIgICAgY2FsbCBEZWNobygidXNpbmcgdXNlci1zcGVjaWZpZWQgZGlybmFtZTwiLmRpcm5hbWUuIj4gd2l0aCAkZW52LXZhciIpCi0gICBlbHNlCi0gICAgbGV0IGRpcm5hbWU9IGE6MQorICAgZWxzZWlmIGE6MSAhfiAnXlwqLycKKyIgICAgY2FsbCBEZWNobygiY2FzZSBhOjE6IG90aGVyLCBub3QgcGF0dGVybiBvciBmaWxlcGF0dGVybiIpCisgICAgbGV0IGRpcm5hbWU9IHNpbXBsaWZ5KGE6MSkKICIgICAgY2FsbCBEZWNobygidXNpbmcgdXNlci1zcGVjaWZpZWQgZGlybmFtZTwiLmRpcm5hbWUuIj4iKQorICAgZWxzZQorIiAgICBjYWxsIERlY2hvKCJjYXNlIGE6MTogcGF0dGVybiBvciBmaWxlcGF0dGVybiIpCisgICAgbGV0IGRpcm5hbWU9IGE6MQogICAgZW5kaWYKICAgZWxzZQogICAgIiBjbGVhciBleHBsb3JlCisiICAgY2FsbCBEZWNobygiY2FzZSBhOjA9Ii5hOjAuIjogY2xlYXJpbmcgRXhwbG9yZSBsaXN0IikKICAgIGNhbGwgczpOZXRyd0NsZWFyRXhwbG9yZSgpCiAiICAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIDogY2xlYXJlZCBsaXN0IikKICAgIHJldHVybgogICBlbmRpZgorCiAiICBjYWxsIEZPVEVTVCgzKQorIiAgY2FsbCBEZWNobygiZGlybmFtZTwiLmRpcm5hbWUuIj4iKQorICBpZiBkaXJuYW1lID1+ICdcLlwuL1w9JCcKKyAgIGxldCBkaXJuYW1lPSBzaW1wbGlmeShmbmFtZW1vZGlmeShkaXJuYW1lLCc6cDpoJykpCisgIGVsc2VpZiBkaXJuYW1lID1+ICdcLlwuJyB8fCBkaXJuYW1lID09ICcuJworICAgbGV0IGRpcm5hbWU9IHNpbXBsaWZ5KGZuYW1lbW9kaWZ5KGRpcm5hbWUsJzpwJykpCisgIGVuZGlmCisiICBjYWxsIERlY2hvKCJkaXJuYW1lPCIuZGlybmFtZS4iPiAgKGFmdGVyIHNpbXBsaWZ5KSIpCiAKICAgaWYgZGlybmFtZSA9fiAnL1wqXCovJwogICAgIiBoYW5kbGUgLi4uLyoqLy4uLi9maWxlcGF0CkBAIC0zNTI0LDkgKzM2NjgsOSBAQAogCiAiICAgY2FsbCBEZWNobygiY3VyZGlyPCIuY3VyZGlyLiI+IikKICAgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQotICAgIGNhbGwgc2VhcmNoKCdcPCcuc3Vic3RpdHV0ZShjdXJkaXIsJ14uKlsvXFxdJywnJywnZScpLidcPicsJ2NXJykKKyAgICBrZWVwaiBjYWxsIHNlYXJjaCgnXDwnLnN1YnN0aXR1dGUoY3VyZGlyLCdeLipbL1xcXScsJycsJ2UnKS4nXD4nLCdjVycpCiAgICBlbHNlCi0gICAgY2FsbCBzZWFyY2goJ1w8Jy5zdWJzdGl0dXRlKGN1cmRpciwnXi4qLycsJycsJ2UnKS4nXD4nLCdjVycpCisgICAga2VlcGogY2FsbCBzZWFyY2goJ1w8Jy5zdWJzdGl0dXRlKGN1cmRpciwnXi4qLycsJycsJ2UnKS4nXD4nLCdjVycpCiAgICBlbmRpZgogCiAgICIgc3RhcnBhdD0xOiBFeHBsb3JlICovL3BhdHRlcm4gIChjdXJyZW50IGRpcmVjdG9yeSBvbmx5IHNlYXJjaCBmb3IgZmlsZXMgY29udGFpbmluZyBwYXR0ZXJuKQpAQCAtMzU1Nyw5ICszNzAxLDkgQEAKICIgICAgIGNhbGwgRGVjaG8oImNhc2UgTmV4cGxvcmUgd2l0aCBzdGFycGF0PSIuc3RhcnBhdC4iOiAoaW5keD0iLmluZHguIikiKQogICAgICBpZiAhZXhpc3RzKCJ3Om5ldHJ3X2V4cGxvcmVfbGlzdCIpICIgc2FuaXR5IGNoZWNrCiAgICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywidXNpbmcgTmV4cGxvcmUgb3IgPHMtZG93bj4gaW1wcm9wZXJseTsgc2VlIGhlbHAgZm9yIG5ldHJ3LXN0YXJzdGFyIiw0MCkKLSAgICAgIHNpbGVudCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKLSAgICAgIHNpbGVudCEgbGV0IEArID0ga2VlcHJlZ3N0YXIKLSAgICAgIHNpbGVudCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCisgICAgICBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyCisgICAgICBzaWwhIGxldCBAKyA9IGtlZXByZWdzdGFyCisgICAgICBzaWwhIGxldCBALyA9IGtlZXByZWdzbGFzaAogIiAgICAgIGNhbGwgRHJldCgibmV0cncjRXhwbG9yZSIpCiAgICAgICByZXR1cm4KICAgICAgZW5kaWYKQEAgLTM1ODAsOSArMzcyNCw5IEBACiAiICAgICBjYWxsIERlY2hvKCJjYXNlIFBleHBsb3JlIHdpdGggc3RhcnBhdD0iLnN0YXJwYXQuIjogKGluZHg9Ii5pbmR4LiIpIikKICAgICAgaWYgIWV4aXN0cygidzpuZXRyd19leHBsb3JlX2xpc3QiKSAiIHNhbml0eSBjaGVjawogICAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsInVzaW5nIFBleHBsb3JlIG9yIDxzLXVwPiBpbXByb3Blcmx5OyBzZWUgaGVscCBmb3IgbmV0cnctc3RhcnN0YXIiLDQxKQotICAgICAgc2lsZW50ISBsZXQgQCogPSBrZWVwcmVnc3RhcgotICAgICAgc2lsZW50ISBsZXQgQCsgPSBrZWVwcmVnc3RhcgotICAgICAgc2lsZW50ISBsZXQgQC8gPSBrZWVwcmVnc2xhc2gKKyAgICAgIHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKKyAgICAgIHNpbCEgbGV0IEArID0ga2VlcHJlZ3N0YXIKKyAgICAgIHNpbCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCiAiICAgICAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIikKICAgICAgIHJldHVybgogICAgICBlbmRpZgpAQCAtMzYxNSw3ICszNzU5LDcgQEAKICIgICAgICBjYWxsIERlY2hvKCJzdGFycGF0PSIuc3RhcnBhdC4iOiBidWlsZCAqLy9wYXR0ZXJuIGxpc3QiKQogIiAgICAgIGNhbGwgRGVjaG8oInBhdHRlcm48Ii5wYXR0ZXJuLiI+IikKICAgICAgIHRyeQotICAgICAgIGV4ZSAibm9hdXRvY21kIHZpbWdyZXAgLyIucGF0dGVybi4iL2dqICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpLiIvKiIKKyAgICAgICBleGUgImtlZXBqIG5vYXV0b2NtZCB2aW1ncmVwIC8iLnBhdHRlcm4uIi9naiAiLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKS4iLyoiCiAgICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTQ4MC8KICAgICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywibm8gbWF0Y2ggd2l0aCBwYXR0ZXJuPCIucGF0dGVybi4iPiIsNzYpCiAiICAgICAgIGNhbGwgRHJldCgibmV0cncjRXhwbG9yZSA6IHVuYWJsZSB0byBmaW5kIHBhdHRlcm48Ii5wYXR0ZXJuLiI+IikKQEAgLTM2MjgsNyArMzc3Miw3IEBACiAgICAgICAiIHN0YXJwYXQ9MjogRXhwbG9yZSAqKi8vcGF0dGVybiAocmVjdXJzaXZlIGRlc2NlbnQgc2VhcmNoIGZvciBmaWxlcyBjb250YWluaW5nIHBhdHRlcm4pCiAiICAgICAgY2FsbCBEZWNobygic3RhcnBhdD0iLnN0YXJwYXQuIjogYnVpbGQgKiovL3BhdHRlcm4gbGlzdCIpCiAgICAgICB0cnkKLSAgICAgICBleGUgInNpbGVudCBub2F1dG9jbWQgdmltZ3JlcCAvIi5wYXR0ZXJuLiIvZ2ogIi4iKiovKiIKKyAgICAgICBleGUgInNpbCBrZWVwaiBub2F1dG9jbWQgdmltZ3JlcCAvIi5wYXR0ZXJuLiIvZ2ogIi4iKiovKiIKICAgICAgIGNhdGNoIC9eVmltXCUoKFxhXCspXClcPTpFNDgwLwogICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCdubyBmaWxlcyBtYXRjaGVkIHBhdHRlcm48Jy5wYXR0ZXJuLic+Jyw0NSkKICAgICAgICBpZiAmaGxzIHwgbGV0IGtlZXByZWdzbGFzaD0gczpFeHBsb3JlUGF0SGxzKHBhdHRlcm4pIHwgZW5kaWYKQEAgLTM2NjUsOSArMzgwOSw5IEBACiAKICAgICAgaWYgdzpuZXRyd19leHBsb3JlX2xpc3RsZW4gPT0gMCB8fCAodzpuZXRyd19leHBsb3JlX2xpc3RsZW4gPT0gMSAmJiB3Om5ldHJ3X2V4cGxvcmVfbGlzdFswXSA9fiAnXCpcKlwvJykKICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJubyBmaWxlcyBtYXRjaGVkIiw0MikKLSAgICAgIHNpbGVudCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKLSAgICAgIHNpbGVudCEgbGV0IEArID0ga2VlcHJlZ3N0YXIKLSAgICAgIHNpbGVudCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCisgICAgICBzaWwhIGxldCBAKiA9IGtlZXByZWdzdGFyCisgICAgICBzaWwhIGxldCBAKyA9IGtlZXByZWdzdGFyCisgICAgICBzaWwhIGxldCBALyA9IGtlZXByZWdzbGFzaAogIiAgICAgIGNhbGwgRHJldCgibmV0cncjRXhwbG9yZSA6IG5vIGZpbGVzIG1hdGNoZWQiKQogICAgICAgcmV0dXJuCiAgICAgIGVuZGlmCkBAIC0zNjk2LDkgKzM4NDAsOSBAQAogICAgICBsZXQgdzpuZXRyd19saXN0c3R5bGU9IGc6bmV0cndfbGlzdHN0eWxlCiAgICAgZW5kaWYKICAgICBpZiB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRISU5MSVNUIHx8IHc6bmV0cndfbGlzdHN0eWxlID09IHM6TE9OR0xJU1QKLSAgICAgY2FsbCBzZWFyY2goJ14nLnN1YnN0aXR1dGUoZGlyZmlsZSwiXi4qLyIsIiIsIiIpLidcPicsIlciKQorICAgICBrZWVwaiBjYWxsIHNlYXJjaCgnXicuc3Vic3RpdHV0ZShkaXJmaWxlLCJeLiovIiwiIiwiIikuJ1w+JywiVyIpCiAgICAgZWxzZQotICAgICBjYWxsIHNlYXJjaCgnXDwnLnN1YnN0aXR1dGUoZGlyZmlsZSwiXi4qLyIsIiIsIiIpLidcPicsInciKQorICAgICBrZWVwaiBjYWxsIHNlYXJjaCgnXDwnLnN1YnN0aXR1dGUoZGlyZmlsZSwiXi4qLyIsIiIsIiIpLidcPicsInciKQogICAgIGVuZGlmCiAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9tdGNoY250ID0gaW5keCArIDEKICAgICBsZXQgdzpuZXRyd19leHBsb3JlX2J1Zm5yICAgPSBidWZucigiJSIpCkBAIC0zNzExLDkgKzM4NTUsOSBAQAogICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywieW91ciB2aW0gbmVlZHMgdGhlICtwYXRoX2V4dHJhIGZlYXR1cmUgZm9yIEV4cGxvcmluZyB3aXRoICoqISIsNDQpCiAgICAgZW5kaWYKLSAgICBzaWxlbnQhIGxldCBAKiA9IGtlZXByZWdzdGFyCi0gICAgc2lsZW50ISBsZXQgQCsgPSBrZWVwcmVnc3RhcgotICAgIHNpbGVudCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCisgICAgc2lsISBsZXQgQCogPSBrZWVwcmVnc3RhcgorICAgIHNpbCEgbGV0IEArID0ga2VlcHJlZ3N0YXIKKyAgICBzaWwhIGxldCBALyA9IGtlZXByZWdzbGFzaAogIiAgICBjYWxsIERyZXQoIm5ldHJ3I0V4cGxvcmUgOiBtaXNzaW5nICtwYXRoX2V4dHJhIikKICAgICByZXR1cm4KICAgIGVuZGlmCkBAIC0zNzIxLDggKzM4NjUsOCBAQAogICBlbHNlCiAiICAgY2FsbCBEZWNobygiZGVmYXVsdCBjYXNlOiBFeHBsb3JlIG5ld2RpcjwiLmRpcm5hbWUuIj4iKQogICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QgJiYgZGlybmFtZSA9fiAnLycKLSAgICBzaWxlbnQhIHVubGV0IHc6bmV0cndfdHJlZWRpY3QKLSAgICBzaWxlbnQhIHVubGV0IHc6bmV0cndfdHJlZXRvcAorICAgIHNpbCEgdW5sZXQgdzpuZXRyd190cmVlZGljdAorICAgIHNpbCEgdW5sZXQgdzpuZXRyd190cmVldG9wCiAgICBlbmRpZgogICAgbGV0IG5ld2Rpcj0gZGlybmFtZQogICAgaWYgIWV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQpAQCAtMzc3OCw5ICszOTIyLDkgQEAKICAgZW5kaWYKICIgIGNhbGwgRk9URVNUKDYpCiAKLSAgc2lsZW50ISBsZXQgQCogPSBrZWVwcmVnc3RhcgotICBzaWxlbnQhIGxldCBAKyA9IGtlZXByZWdzdGFyCi0gIHNpbGVudCEgbGV0IEAvID0ga2VlcHJlZ3NsYXNoCisgIHNpbCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKKyAgc2lsISBsZXQgQCsgPSBrZWVwcmVnc3RhcgorICBzaWwhIGxldCBALyA9IGtlZXByZWdzbGFzaAogIiAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIDogQC88Ii5ALy4iPiIpCiBlbmRmdW4KIApAQCAtMzg0Myw3ICszOTg3LDcgQEAKIAogICAgIiBzd2l0Y2ggYmV0d2VlbiBzaG93LWFsbC9zaG93LW5vdC1oaWRkZW4vc2hvdy1oaWRkZW4KICAgIGxldCBnOm5ldHJ3X2hpZGU9KGc6bmV0cndfaGlkZSsxKSUzCi0gICBleGUgIm5vcm0hIDAiCisgICBleGUgImtlZXBqIG5vcm0hIDAiCiAgICBpZiBnOm5ldHJ3X2hpZGUgJiYgZzpuZXRyd19saXN0X2hpZGUgPT0gIiIKICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywieW91ciBoaWRpbmcgbGlzdCBpcyBlbXB0eSEiLDQ5KQogIiAgICBjYWxsIERyZXQoIk5ldHJ3SGlkZSIpCkBAIC0zOTE3LDYgKzQwNjEsMjUgQEAKICIgczpOZXRyd0xlZnRtb3VzZTogaGFuZGxlcyB0aGUgPGxlZnRtb3VzZT4gd2hlbiBpbiBhIG5ldHJ3IGJyb3dzaW5nIHdpbmRvdyB7e3syCiBmdW4hIHM6TmV0cndMZWZ0bW91c2UoaXNsb2NhbCkKICIgIGNhbGwgRGZ1bmMoInM6TmV0cndMZWZ0bW91c2UoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSIpCisKKyAgIiBjaGVjayBpZiB0aGUgc3RhdHVzIGJhciB3YXMgY2xpY2tlZCBvbiBpbnN0ZWFkIG9mIGEgZmlsZS9kaXJlY3RvcnkgbmFtZQorICBjYWxsIGZlZWRrZXlzKCJcPExlZnRNb3VzZT4iKQorICBsZXQgYz0gZ2V0Y2hhcigpCisgIGxldCBtb3VzZV9sbnVtID0gdjptb3VzZV9sbnVtCisgIGxldCB3bGFzdGxpbmUgID0gbGluZSgndyQnKQorICBsZXQgbGFzdGxpbmUgICA9IGxpbmUoJyQnKQorIiAgY2FsbCBEZWNobygidjptb3VzZV9sbnVtPSIubW91c2VfbG51bS4iIGxpbmUodyQpPSIud2xhc3RsaW5lLiIgbGluZSgkKT0iLmxhc3RsaW5lLiIgdjptb3VzZV93aW49Ii52Om1vdXNlX3dpbi4iIHdpbm5yIyIud2lubnIoKSkKKyIgIGNhbGwgRGVjaG8oInY6bW91c2VfY29sID0iLnY6bW91c2VfY29sLiIgICAgIGNvbD0iLmNvbCgiLiIpLiIgIHdpbmNvbCA9Ii53aW5jb2woKS4iIHdpbndpZHRoICAgPSIud2lud2lkdGgoMCkpCisgIGlmIG1vdXNlX2xudW0gPj0gd2xhc3RsaW5lICsgMSB8fCB2Om1vdXNlX3dpbiAhPSB3aW5ucigpCisgICAiIGFwcGVhcnMgdG8gYmUgYSBzdGF0dXMgYmFyIGxlZnRtb3VzZSBjbGljaworIiAgIGNhbGwgRHJldCgiczpOZXRyd0xlZnRtb3VzZSA6IGRldGVjdGVkIGEgc3RhdHVzIGJhciBsZWZ0bW91c2UgY2xpY2siKQorICAgcmV0dXJuCisgIGVuZGlmCisgIGlmIHY6bW91c2VfY29sICE9IGNvbCgnLicpCisiICAgY2FsbCBEcmV0KCJzOk5ldHJ3TGVmdG1vdXNlIDogZGV0ZWN0ZWQgYSB2ZXJ0aWNhbCBzZXBhcmF0b3IgYmFyIGxlZnRtb3VzZSBjbGljayIpCisgICByZXR1cm4KKyAgZW5kaWYKKwogICBpZiBhOmlzbG9jYWwKICAgIGlmIGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQogICAgIGNhbGwgbmV0cncjTG9jYWxCcm93c2VDaGVjayhzOk5ldHJ3QnJvd3NlQ2hnRGlyKDEsczpOZXRyd0dldFdvcmQoKSkpCkBAIC0zOTU1LDE1ICs0MTE4LDE1IEBACiAgICAiIFBydW5lIHRoZSBsaXN0IGJ5IGhpZGluZyBhbnkgZmlsZXMgd2hpY2ggbWF0Y2gKICAgIGlmIGc6bmV0cndfaGlkZSA9PSAxCiAiICAgIGNhbGwgRGVjaG8oImhpZGluZzwiLmhpZGUuIj4gbGlzdGhpZGU8Ii5saXN0aGlkZS4iPiIpCi0gICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkZycuc2VwLmhpZGUuc2VwLidkJworICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkZycuc2VwLmhpZGUuc2VwLidkJwogICAgZWxzZWlmIGc6bmV0cndfaGlkZSA9PSAyCiAiICAgIGNhbGwgRGVjaG8oInNob3dpbmc8Ii5oaWRlLiI+IGxpc3RoaWRlPCIubGlzdGhpZGUuIj4iKQotICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJGcnLnNlcC5oaWRlLnNlcC4nc0BeQCAvLUtFRVAtLyBAJworICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkZycuc2VwLmhpZGUuc2VwLidzQF5AIC8tS0VFUC0vIEAnCiAgICBlbmRpZgogICBlbmR3aGlsZQogICBpZiBnOm5ldHJ3X2hpZGUgPT0gMgotICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkdkBeIC8tS0VFUC0vIEBkJwotICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc0BeXCUoIC8tS0VFUC0vIFwpXCtAQGUnCisgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHZAXiAvLUtFRVAtLyBAZCcKKyAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkc0BeXCUoIC8tS0VFUC0vIFwpXCtAQGUnCiAgIGVuZGlmCiAKICIgIGNhbGwgRHJldCgiTmV0cndMaXN0SGlkZSIpCkBAIC0zOTg1LDcgKzQxNDgsNyBAQAogIiAgY2FsbCBEZWNobygibmV3IGc6bmV0cndfbGlzdF9oaWRlPCIuZzpuZXRyd19saXN0X2hpZGUuIj4iKQogCiAgICIgcmVmcmVzaCB0aGUgbGlzdGluZwotICBzaWxlbnQgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsIi4vIikpCisgIHNpbGVudCBrZWVwaiBjYWxsIHM6TmV0cndSZWZyZXNoKGE6aXNsb2NhbCxzOk5ldHJ3QnJvd3NlQ2hnRGlyKGE6aXNsb2NhbCwiLi8iKSkKIAogICAiIHJlc3RvcmUgY3Vyc29yIHBvc2l0aW9uCiAgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbihzdnBvcykKQEAgLTQwNTcsMTIgKzQyMjAsMTIgQEAKICAgICBjYWxsIG1rZGlyKGZ1bGxuZXdkaXIsInAiKQogICAgZWxzZQogICAgIGxldCBuZXRyd19vcmlnZGlyPSBzOk5ldHJ3R2V0Y3dkKDEpCi0gICAgZXhlICdrZWVwanVtcHMgbGNkICcuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpCisgICAgZXhlICdrZWVwaiBsY2QgJy5mbmFtZWVzY2FwZShiOm5ldHJ3X2N1cmRpcikKICIgICAgY2FsbCBEZWNobygibmV0cndfb3JpZ2RpcjwiLm5ldHJ3X29yaWdkaXIuIj46IGxjZCBiOm5ldHJ3X2N1cmRpcjwiLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKS4iPiIpCiAiICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkpCi0gICAgZXhlICJzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkKKyAgICBleGUgInNpbCEgISIuZzpuZXRyd19sb2NhbF9ta2Rpci4nICcuc2hlbGxlc2NhcGUobmV3ZGlybmFtZSwxKQogICAgIGlmICFnOm5ldHJ3X2tlZXBkaXIKLSAgICAgZXhlICdrZWVwanVtcHMgbGNkICcuZm5hbWVlc2NhcGUobmV0cndfb3JpZ2RpcikKKyAgICAgZXhlICdrZWVwaiBsY2QgJy5mbmFtZWVzY2FwZShuZXRyd19vcmlnZGlyKQogIiAgICAgY2FsbCBEZWNobygibmV0cndfa2VlcGRpcj0iLmc6bmV0cndfa2VlcGRpci4iOiBrZWVwanVtcHMgbGNkICIuZm5hbWVlc2NhcGUobmV0cndfb3JpZ2RpcikuIiBnZXRjd2Q8Ii5nZXRjd2QoKS4iPiIpCiAgICAgZW5kaWYKICAgIGVuZGlmCkBAIC00MDg0LDcgKzQyNDcsNyBAQAogICAgbGV0IG1rZGlyY21kICA9IHM6TWFrZVNzaENtZChnOm5ldHJ3X21rZGlyX2NtZCkKICAgIGxldCBuZXdkaXJuYW1lPSBzdWJzdGl0dXRlKGI6bmV0cndfY3VyZGlyLCdeXCUoLlx7LX0vXClcezN9XCguKlwpJCcsJ1wxJywnJykubmV3ZGlybmFtZQogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICEiLm1rZGlyY21kLiIgIi5zaGVsbGVzY2FwZShuZXdkaXJuYW1lLDEpKQotICAgZXhlICJzaWxlbnQhICEiLm1rZGlyY21kLiIgIi5zaGVsbGVzY2FwZShuZXdkaXJuYW1lLDEpCisgICBleGUgInNpbCEgISIubWtkaXJjbWQuIiAiLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkKICAgIGlmIHY6c2hlbGxfZXJyb3IgPT0gMAogICAgICIgcmVmcmVzaCBsaXN0aW5nCiAgICAgbGV0IHN2cG9zPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKQEAgLTQzMzAsMTAgKzQ0OTMsMTAgQEAKICAgIGlmIGV4aXN0cygiKm1rZGlyIikKICAgICBjYWxsIG1rZGlyKHRtcGRpcikKICAgIGVsc2UKLSAgICBleGUgInNpbGVudCEgISIuZzpuZXRyd19sb2NhbF9ta2Rpci4nICcuc2hlbGxlc2NhcGUodG1wZGlyLDEpCisgICAgZXhlICJzaWwhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKHRtcGRpciwxKQogICAgZW5kaWYKICAgIGlmIGlzZGlyZWN0b3J5KHRtcGRpcikKLSAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZSh0bXBkaXIpCisgICAgZXhlICJrZWVwaiBsY2QgIi5mbmFtZWVzY2FwZSh0bXBkaXIpCiAgICAgY2FsbCBuZXRydyNOZXRyd09idGFpbihhOmlzbG9jYWwsczpuZXRyd21hcmtmaWxlbGlzdF97YnVmbnIoJyUnKX0sdG1wZGlyKQogICAgIGxldCBsb2NhbGZpbGVzPSBtYXAoZGVlcGNvcHkoczpuZXRyd21hcmtmaWxlbGlzdF97YnVmbnIoJyUnKX0pLCdzdWJzdGl0dXRlKHY6dmFsLCJeLiovIiwiIiwiIiknKQogICAgIGNhbGwgczpOZXRyd1VwbG9hZChsb2NhbGZpbGVzLHM6bmV0cndtZnRndCkKQEAgLTQzNDEsMTAgKzQ1MDQsMTAgQEAKICAgICAgZm9yIGZuYW1lIGluIHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCclJyl9CiAgICAgICBjYWxsIHM6TmV0cndEZWxldGUoZm5hbWUpCiAgICAgIGVuZGZvcgotICAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCi0gICAgIGV4ZSAic2lsZW50ICEiLmc6bmV0cndfbG9jYWxfcm1kaXIuIiAiLnNoZWxsZXNjYXBlKHRtcGRpciwxKQorICAgICBleGUgImtlZXBqIGxjZCAiLmZuYW1lZXNjYXBlKGN1cmRpcikKKyAgICAgZXhlICJzaWwgISIuZzpuZXRyd19sb2NhbF9ybWRpci4iICIuc2hlbGxlc2NhcGUodG1wZGlyLDEpCiAgICAgZWxzZQotICAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCisgICAgIGV4ZSAia2VlcGogbGNkICIuZm5hbWVlc2NhcGUoY3VyZGlyKQogICAgIGVuZGlmCiAgICBlbmRpZgogICBlbmRpZgpAQCAtNDU3MCw3ICs0NzMzLDcgQEAKICAgICIgdXNlIHZpbWdyZXAgZm9yIGJvdGggbG9jYWwgYW5kIHJlbW90ZQogIiAgIGNhbGwgRGVjaG8oImV4ZSB2aW1ncmVwIi5wYXQuIiAiLm5ldHJ3bWFya2ZpbGVsaXN0KQogICAgdHJ5Ci0gICAgZXhlICJub2F1dG9jbWQgdmltZ3JlcCIucGF0LiIgIi5uZXRyd21hcmtmaWxlbGlzdAorICAgIGV4ZSAia2VlcGogbm9hdXRvY21kIHZpbWdyZXAiLnBhdC4iICIubmV0cndtYXJrZmlsZWxpc3QKICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTQ4MC8KICAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsIm5vIG1hdGNoIHdpdGggcGF0dGVybjwiLnBhdHRlcm4uIj4iLDc2KQogIiAgICAgY2FsbCBEcmV0KCJzOk5ldHJ3TWFya0ZpbGVHcmVwIDogdW5hYmxlIHRvIGZpbmQgcGF0dGVybjwiLnBhdHRlcm4uIj4iKQpAQCAtNDc1MCwzMyArNDkxMywzMyBAQAogICAgIiBjb252ZXJ0IGRpc3BsYXllZCBsaXN0aW5nIGludG8gYSBmaWxlbGlzdAogICAgbGV0IGVpa2VlcCA9ICZlaQogICAgbGV0IGFyZWcgICA9IEBhCi0gICBzaWxlbnQgJXkgYQorICAgc2lsIGtlZXBqICV5IGEKICAgIHNldCBlaT1hbGwgbWEKICIgICBjYWxsIERlY2hvKCJzZXQgZWk9YWxsIG1hIikKICAgIDFzcGxpdAogICAgY2FsbCBzOk5ldHJ3RW5ldygpCiAgICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCi0gICBzaWxlbnQgbm9ybSEgImFwCi0gICAyCisgICBzaWwga2VlcGogbm9ybSEgImFwCisgICBrZWVwaiAyCiAgICBsZXQgYmFubmVyY250PSBzZWFyY2goJ14iID09PT09JywnVycpCi0gICBleGUgInNpbGVudCAxLCIuYmFubmVyY250LiJkIgorICAgZXhlICJzaWwga2VlcGogMSwiLmJhbm5lcmNudC4iZCIKICAgIHNldCBidD1ub2ZpbGUKICAgIGlmICAgICBnOm5ldHJ3X2xpc3RzdHlsZSA9PSBzOkxPTkdMSVNUCi0gICAgc2lsZW50ICVzL1xzXHsyLH1cUy4qJC8vZQorICAgIHNpbCBrZWVwaiAlcy9cc1x7Mix9XFMuKiQvL2UKICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgZWxzZWlmIGc6bmV0cndfbGlzdHN0eWxlID09IHM6V0lERUxJU1QKLSAgICBzaWxlbnQgJXMvXHNcezIsfS9cci9nZQorICAgIHNpbCBrZWVwaiAlcy9cc1x7Mix9L1xyL2dlCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGVsc2VpZiBnOm5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRSRUVMSVNUCi0gICAgc2lsZW50ICVzL158IC8vZQotICAgIHNpbGVudCEgZy9eIC4qJC9kCisgICAgc2lsIGtlZXBqICVzL158IC8vZQorICAgIHNpbCEga2VlcGogZy9eIC4qJC9kCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgZW5kaWYKICAgICIgY29udmVydCByZWdleHAgaW50byB0aGUgbW9yZSB1c3VhbCBnbG9iLXN0eWxlIGZvcm1hdAogICAgbGV0IHJlZ2V4cD0gc3Vic3RpdHV0ZShyZWdleHAsJ1wqJywnLionLCdnJykKICIgICBjYWxsIERlY2hvKCJyZWdleHA8Ii5yZWdleHAuIj4iKQotICAgZXhlICJzaWxlbnQhIHYvIi5lc2NhcGUocmVnZXhwLCcvJykuIi9kIgorICAgZXhlICJzaWwhIGtlZXBqIHYvIi5lc2NhcGUocmVnZXhwLCcvJykuIi9kIgogICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGxldCBmaWxlbGlzdD0gZ2V0bGluZSgxLGxpbmUoIiQiKSkKICAgIHEhCkBAIC00ODQ3LDcgKzUwMTAsNyBAQAogICAgIGUgdGFncwogICAgIGxldCBwYXRoPSBzdWJzdGl0dXRlKGN1cmRpciwnXlwoLipcKS9bXi9dKiQnLCdcMS8nLCcnKQogIiAgICBjYWxsIERlY2hvKCJjdXJkaXI8Ii5jdXJkaXIuIj4gcGF0aDwiLnBhdGguIj4iKQotICAgIGV4ZSAnJXMvXHRcKFxTXCtcKVx0L1x0Jy5lc2NhcGUocGF0aCwiL1xuXHJcXCIpLidcMVx0L2UnCisgICAgZXhlICdrZWVwaiAlcy9cdFwoXFNcK1wpXHQvXHQnLmVzY2FwZShwYXRoLCIvXG5cclxcIikuJ1wxXHQvZScKICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIHdxIQogICAgZW5kaWYKQEAgLTQ5MTQsNyArNTA3Nyw3IEBACiAgIGNhbGwgczpOZXRyd1JlZnJlc2goYTppc2xvY2FsLHM6TmV0cndCcm93c2VDaGdEaXIoYTppc2xvY2FsLCcuLycpKQogICBjYWxsIG5ldHJ3I05ldHJ3UmVzdG9yZVBvc24oc3Zwb3MpCiAgIGlmICFoYWR0Z3QKLSAgIG5vcm0hIGoKKyAgIHNpbCEga2VlcGogbm9ybSEgagogICBlbmRpZgogCiAiICBjYWxsIERyZXQoInM6TmV0cndNYXJrRmlsZVRndCA6IG5ldHJ3bWZ0Z3Q8Ii4oZXhpc3RzKCJzOm5ldHJ3bWZ0Z3QiKT8gczpuZXRyd21mdGd0IDogIiIpLiI+IikKQEAgLTUwNDIsNTUgKzUyMDUsNTUgQEAKICAgIGlmICFleGlzdHMoInM6bmV0cndfbWVudV9lbmFibGVkIikgJiYgYTpkb21lbnUKICIgICAgY2FsbCBEZWNobygiaW5pdGlhbGl6ZSBtZW51IikKICAgICBsZXQgczpuZXRyd19tZW51X2VuYWJsZWQ9IDEKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xICAgICAnLmc6TmV0cndUb3BMdmxNZW51LidIZWxwPHRhYj48RjE+CTxGMT4nCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuNSAgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nLVNlcDEtCTonCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuNiAgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nR29cIFVwXCBEaXJlY3Rvcnk8dGFiPi0JLScKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy43ICAgICAnLmc6TmV0cndUb3BMdmxNZW51LidBcHBseVwgU3BlY2lhbFwgVmlld2VyPHRhYj54CXgnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOC4xICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzXCBhbmRcIEhpc3RvcnkuQm9va21hcmtcIEN1cnJlbnRcIERpcmVjdG9yeTx0YWI+bWIJbWInCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOC40ICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzXCBhbmRcIEhpc3RvcnkuR290b1wgUHJldlwgRGlyXCAoSGlzdG9yeSk8dGFiPnUJdScKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjUgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Hb3RvXCBOZXh0XCBEaXJcIChIaXN0b3J5KTx0YWI+VQlVJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjguNiAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5Lkxpc3Q8dGFiPnFiCXFiJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuMSAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLkVkaXRcIEZpbGVcIEhpZGluZ1wgTGlzdDx0YWI+PGN0cmwtaD4nLiIJXDxjLWg+JyIKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjIgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5FZGl0XCBTb3J0aW5nXCBTZXF1ZW5jZTx0YWI+UwlTJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuMyAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLlF1aWNrXCBIaWRlL1VuaGlkZVwgRG90XCBGaWxlczx0YWI+Jy4iZ2gJZ2giCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOS40ICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQnJvd3NpbmdcIENvbnRyb2wuUmVmcmVzaFwgTGlzdGluZzx0YWI+Jy4iPGN0cmwtbD4JXDxjLWw+IgotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuNSAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLlNldHRpbmdzL09wdGlvbnM8dGFiPjpOZXRyd1NldHRpbmdzCScuIjpOZXRyd1NldHRpbmdzXDxjcj4iCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTAgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRGVsZXRlXCBGaWxlL0RpcmVjdG9yeTx0YWI+RAlEJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjExLjEgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0VkaXRcIEZpbGUvRGlyLkluXCBDdXJyZW50XCBXaW5kb3c8dGFiPjxjcj4JJy4iXDxjcj4iCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTEuMiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRWRpdFwgRmlsZS9EaXIuUHJldmlld1wgRmlsZS9EaXJlY3Rvcnk8dGFiPnAJcCcKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMS4zICAnLmc6TmV0cndUb3BMdmxNZW51LidFZGl0XCBGaWxlL0Rpci5JblwgUHJldmlvdXNcIFdpbmRvdzx0YWI+UAlQJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjExLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0VkaXRcIEZpbGUvRGlyLkluXCBOZXdcIFdpbmRvdzx0YWI+bwlvJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjExLjUgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0VkaXRcIEZpbGUvRGlyLkluXCBOZXdcIFZlcnRpY2FsXCBXaW5kb3c8dGFiPnYJdicKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMi4xICAnLmc6TmV0cndUb3BMdmxNZW51LidFeHBsb3JlLkRpcmVjdG9yeVwgTmFtZQk6RXhwbG9yZSAnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlbmFtZXNcIE1hdGNoaW5nXCBQYXR0ZXJuXCAoY3VyZGlyXCBvbmx5KTx0YWI+OkV4cGxvcmVcICovCTpFeHBsb3JlICovJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZW5hbWVzXCBNYXRjaGluZ1wgUGF0dGVyblwgKCtzdWJkaXJzKTx0YWI+OkV4cGxvcmVcICoqLwk6RXhwbG9yZSAqKi8nCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMyAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlc1wgQ29udGFpbmluZ1wgU3RyaW5nXCBQYXR0ZXJuXCAoY3VyZGlyXCBvbmx5KTx0YWI+OkV4cGxvcmVcICovLwk6RXhwbG9yZSAqLy8nCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuNCAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlc1wgQ29udGFpbmluZ1wgU3RyaW5nXCBQYXR0ZXJuXCAoK3N1YmRpcnMpPHRhYj46RXhwbG9yZVwgKiovLwk6RXhwbG9yZSAqKi8vJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuTmV4dFwgTWF0Y2g8dGFiPjpOZXhwbG9yZQk6TmV4cGxvcmU8Y3I+JwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuUHJldlwgTWF0Y2g8dGFiPjpQZXhwbG9yZQk6UGV4cGxvcmU8Y3I+JwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEzICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01ha2VcIFN1YmRpcmVjdG9yeTx0YWI+ZAlkJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjEgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuTWFya1wgRmlsZTx0YWI+bWYJbWYnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuMiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5NYXJrXCBGaWxlc1wgYnlcIFJlZ2V4cDx0YWI+bXIJbXInCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuMyAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5IaWRlLVNob3ctTGlzdFwgQ29udHJvbDx0YWI+YQlhJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuQ29weVwgVG9cIFRhcmdldDx0YWI+bWMJbWMnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuNSAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5EZWxldGU8dGFiPkQJRCcKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC42ICAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLkRpZmY8dGFiPm1kCW1kJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjcgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuRWRpdDx0YWI+bWUJbWUnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuOCAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5FeGVcIENtZDx0YWI+bXgJbXgnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuOSAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5Nb3ZlXCBUb1wgVGFyZ2V0PHRhYj5tbQltbScKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xMCAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLk9idGFpbjx0YWI+TwlPJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjExICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuUHJpbnQ8dGFiPm1wCW1wJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjEyICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuUmVwbGFjZTx0YWI+UglSJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjEzICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuU2V0XCBUYXJnZXQ8dGFiPm10CW10JwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjE0ICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuVGFnPHRhYj5tVAltVCcKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xNSAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLlppcC9VbnppcC9Db21wcmVzcy9VbmNvbXByZXNzPHRhYj5teglteicKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNSAgICAnLmc6TmV0cndUb3BMdmxNZW51LidPYnRhaW5cIEZpbGU8dGFiPk8JTycKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNi4xICAnLmc6TmV0cndUb3BMdmxNZW51LidTdHlsZS5MaXN0aW5nXCBTdHlsZVwgKHRoaW4tbG9uZy13aWRlLXRyZWUpPHRhYj5pCWknCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTYuMiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nU3R5bGUuTm9ybWFsLUhpZGUtU2hvdzx0YWI+YQlhJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE2LjMgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ1N0eWxlLlJldmVyc2VcIFNvcnRpbmdcIE9yZGVyPHRhYj4nLiJyCXIiCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTYuNCAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nU3R5bGUuU29ydGluZ1wgTWV0aG9kXCAobmFtZS10aW1lLXNpemUpPHRhYj5zCXMnCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTcgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nUmVuYW1lXCBGaWxlL0RpcmVjdG9yeTx0YWI+UglSJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE4ICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ1NldFwgQ3VycmVudFwgRGlyZWN0b3J5PHRhYj5jCWMnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMSAgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nSGVscDx0YWI+PEYxPgk8RjE+JworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjUgICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJy1TZXAxLQk6JworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjYgICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0dvXCBVcFwgRGlyZWN0b3J5PHRhYj4tCS0nCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuNyAgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQXBwbHlcIFNwZWNpYWxcIFZpZXdlcjx0YWI+eAl4JworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjguMSAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5LkJvb2ttYXJrXCBDdXJyZW50XCBEaXJlY3Rvcnk8dGFiPm1iCW1iJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjguNCAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5LkdvdG9cIFByZXZcIERpclwgKEhpc3RvcnkpPHRhYj51CXUnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOC41ICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzXCBhbmRcIEhpc3RvcnkuR290b1wgTmV4dFwgRGlyXCAoSGlzdG9yeSk8dGFiPlUJVScKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjYgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5MaXN0PHRhYj5xYglxYicKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjEgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5FZGl0XCBGaWxlXCBIaWRpbmdcIExpc3Q8dGFiPjxjdHJsLWg+Jy4iCVw8Yy1oPiciCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOS4yICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQnJvd3NpbmdcIENvbnRyb2wuRWRpdFwgU29ydGluZ1wgU2VxdWVuY2U8dGFiPlMJUycKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjMgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5RdWlja1wgSGlkZS9VbmhpZGVcIERvdFwgRmlsZXM8dGFiPicuImdoCWdoIgorICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuNCAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLlJlZnJlc2hcIExpc3Rpbmc8dGFiPicuIjxjdHJsLWw+CVw8Yy1sPiIKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjUgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5TZXR0aW5ncy9PcHRpb25zPHRhYj46TmV0cndTZXR0aW5ncwknLiI6TmV0cndTZXR0aW5nc1w8Y3I+IgorICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEwICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0RlbGV0ZVwgRmlsZS9EaXJlY3Rvcnk8dGFiPkQJRCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMS4xICAnLmc6TmV0cndUb3BMdmxNZW51LidFZGl0XCBGaWxlL0Rpci5JblwgQ3VycmVudFwgV2luZG93PHRhYj48Y3I+CScuIlw8Y3I+IgorICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjExLjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0VkaXRcIEZpbGUvRGlyLlByZXZpZXdcIEZpbGUvRGlyZWN0b3J5PHRhYj5wCXAnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTEuMyAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRWRpdFwgRmlsZS9EaXIuSW5cIFByZXZpb3VzXCBXaW5kb3c8dGFiPlAJUCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMS40ICAnLmc6TmV0cndUb3BMdmxNZW51LidFZGl0XCBGaWxlL0Rpci5JblwgTmV3XCBXaW5kb3c8dGFiPm8JbycKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMS41ICAnLmc6TmV0cndUb3BMdmxNZW51LidFZGl0XCBGaWxlL0Rpci5JblwgTmV3XCBWZXJ0aWNhbFwgV2luZG93PHRhYj52CXYnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMSAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5EaXJlY3RvcnlcIE5hbWUJOkV4cGxvcmUgJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZW5hbWVzXCBNYXRjaGluZ1wgUGF0dGVyblwgKGN1cmRpclwgb25seSk8dGFiPjpFeHBsb3JlXCAqLwk6RXhwbG9yZSAqLycKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMi4yICAnLmc6TmV0cndUb3BMdmxNZW51LidFeHBsb3JlLkZpbGVuYW1lc1wgTWF0Y2hpbmdcIFBhdHRlcm5cICgrc3ViZGlycyk8dGFiPjpFeHBsb3JlXCAqKi8JOkV4cGxvcmUgKiovJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjMgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZXNcIENvbnRhaW5pbmdcIFN0cmluZ1wgUGF0dGVyblwgKGN1cmRpclwgb25seSk8dGFiPjpFeHBsb3JlXCAqLy8JOkV4cGxvcmUgKi8vJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZXNcIENvbnRhaW5pbmdcIFN0cmluZ1wgUGF0dGVyblwgKCtzdWJkaXJzKTx0YWI+OkV4cGxvcmVcICoqLy8JOkV4cGxvcmUgKiovLycKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMi40ICAnLmc6TmV0cndUb3BMdmxNZW51LidFeHBsb3JlLk5leHRcIE1hdGNoPHRhYj46TmV4cGxvcmUJOk5leHBsb3JlPGNyPicKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMi40ICAnLmc6TmV0cndUb3BMdmxNZW51LidFeHBsb3JlLlByZXZcIE1hdGNoPHRhYj46UGV4cGxvcmUJOlBleHBsb3JlPGNyPicKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMyAgICAnLmc6TmV0cndUb3BMdmxNZW51LidNYWtlXCBTdWJkaXJlY3Rvcnk8dGFiPmQJZCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xICAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLk1hcmtcIEZpbGU8dGFiPm1mCW1mJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuTWFya1wgRmlsZXNcIGJ5XCBSZWdleHA8dGFiPm1yCW1yJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjMgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuSGlkZS1TaG93LUxpc3RcIENvbnRyb2w8dGFiPmEJYScKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC40ICAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLkNvcHlcIFRvXCBUYXJnZXQ8dGFiPm1jCW1jJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjUgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuRGVsZXRlPHRhYj5ECUQnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuNiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5EaWZmPHRhYj5tZAltZCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC43ICAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLkVkaXQ8dGFiPm1lCW1lJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjggICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuRXhlXCBDbWQ8dGFiPm14CW14JworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE0LjkgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01hcmtlZFwgRmlsZXMuTW92ZVwgVG9cIFRhcmdldDx0YWI+bW0JbW0nCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuMTAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5PYnRhaW48dGFiPk8JTycKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xMSAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLlByaW50PHRhYj5tcAltcCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xMiAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLlJlcGxhY2U8dGFiPlIJUicKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xMyAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLlNldFwgVGFyZ2V0PHRhYj5tdAltdCcKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNC4xNCAnLmc6TmV0cndUb3BMdmxNZW51LidNYXJrZWRcIEZpbGVzLlRhZzx0YWI+bVQJbVQnCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTQuMTUgJy5nOk5ldHJ3VG9wTHZsTWVudS4nTWFya2VkXCBGaWxlcy5aaXAvVW56aXAvQ29tcHJlc3MvVW5jb21wcmVzczx0YWI+bXoJbXonCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTUgICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nT2J0YWluXCBGaWxlPHRhYj5PCU8nCisgICAgZXhlICdzaWwhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTYuMSAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nU3R5bGUuTGlzdGluZ1wgU3R5bGVcICh0aGluLWxvbmctd2lkZS10cmVlKTx0YWI+aQlpJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE2LjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ1N0eWxlLk5vcm1hbC1IaWRlLVNob3c8dGFiPmEJYScKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNi4zICAnLmc6TmV0cndUb3BMdmxNZW51LidTdHlsZS5SZXZlcnNlXCBTb3J0aW5nXCBPcmRlcjx0YWI+Jy4icglyIgorICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE2LjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ1N0eWxlLlNvcnRpbmdcIE1ldGhvZFwgKG5hbWUtdGltZS1zaXplKTx0YWI+cwlzJworICAgIGV4ZSAnc2lsISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjE3ICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ1JlbmFtZVwgRmlsZS9EaXJlY3Rvcnk8dGFiPlIJUicKKyAgICBleGUgJ3NpbCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xOCAgICAnLmc6TmV0cndUb3BMdmxNZW51LidTZXRcIEN1cnJlbnRcIERpcmVjdG9yeTx0YWI+YwljJwogICAgIGNhbGwgczpOZXRyd0Jvb2ttYXJrTWVudSgpICIgcHJvdmlkZSBzb21lIGhpc3RvcnkhICB1c2VzIHByaW9yaXRpZXMgMiwzLCByZXNlcnZlcyA0LCA4LjIueAogICAgIGxldCBzOm5ldHJ3X21lbnVjbnQ9IDI4CiAKQEAgLTUxMDIsOSArNTI2NSw5IEBACiAKICAgICBpZiBzOm5ldHJ3Y250IDw9IDEKICIgICAgIGNhbGwgRGVjaG8oImNsZWFyIG1lbnVzIikKLSAgICAgZXhlICdzaWxlbnQhIHVubWVudSAnLmc6TmV0cndUb3BMdmxNZW51CisgICAgIGV4ZSAnc2lsISB1bm1lbnUgJy5nOk5ldHJ3VG9wTHZsTWVudQogIiAgICAgY2FsbCBEZWNobygnZXhlIHNpbGVudCEgdW5tZW51ICcuZzpOZXRyd1RvcEx2bE1lbnUuJyonKQotICAgICBzaWxlbnQhIHVubGV0IHM6bmV0cndfbWVudV9lbmFibGVkCisgICAgIHNpbCEgdW5sZXQgczpuZXRyd19tZW51X2VuYWJsZWQKICAgICBlbmRpZgogICAgZW5kaWYKICIgICBjYWxsIERyZXQoIk5ldHJ3TWVudSIpCkBAIC01MjE0LDcgKzUzNzcsNyBAQAogICAgICBsZXQgdG1wYnVmbnI9IGJ1Zm5yKCIlIikKICAgICAgc2V0bG9jYWwgZmY9dW5peAogICAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwbW9kZSIpICYmIGc6bmV0cndfZnRwbW9kZSAhPSAiIgotICAgICAgcHV0ID1nOm5ldHJ3X2Z0cG1vZGUKKyAgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBtb2RlCiAiICAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKICAgICAgZW5kaWYKIApAQCAtNTIyNCw3ICs1Mzg3LDcgQEAKICAgICAgZW5kaWYKIAogICAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwZXh0cmFjbWQiKQotICAgICAgcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCisgICAgICBrZWVwaiBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbmRpZgogICAgICBmb3IgZm5hbWUgaW4gZm5hbWVsaXN0CkBAIC01MjU0LDQ0ICs1NDE3LDQ0IEBACiAgICAgc2V0bG9jYWwgZmY9dW5peAogCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CisgICAgIGtlZXBqIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKICAgICBlbHNlCi0gICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUKKyAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKICAgICBlbmRpZgogCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cCIpICYmIGc6bmV0cndfZnRwID09IDEKLSAgICAgcHV0ID1nOm5ldHJ3X3VpZAorICAgICBrZWVwaiBwdXQgPWc6bmV0cndfdWlkCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQotICAgICBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSdcIicuczpuZXRyd19wYXNzd2QuJ1wiJwogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKICAgICBlbHNlCi0gICAgIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSd1c2VyIFwiJy5nOm5ldHJ3X3VpZC4nXCIgXCInLnM6bmV0cndfcGFzc3dkLidcIicKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgZW5kaWYKIAogICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBtb2RlIikgJiYgZzpuZXRyd19mdHBtb2RlICE9ICIiCi0gICAgIHB1dCA9ZzpuZXRyd19mdHBtb2RlCisgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBtb2RlCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgIGVuZGlmCiAKICAgICBpZiBleGlzdHMoImI6bmV0cndfZm5hbWUiKSAmJiBiOm5ldHJ3X2ZuYW1lICE9ICIiCi0gICAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnY2QgIicuYjpuZXRyd19mbmFtZS4nIicpCisgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnY2QgIicuYjpuZXRyd19mbmFtZS4nIicpCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgIGVuZGlmCiAKICAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwZXh0cmFjbWQiKQotICAgICBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKKyAgICAga2VlcGogcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgIGVuZGlmCiAKICAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwZXh0cmFjbWQiKQotICAgICBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKKyAgICAga2VlcGogcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgIGVuZGlmCiAgICAgZm9yIGZuYW1lIGluIGZuYW1lbGlzdAotICAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsJ2dldCAiJy5mbmFtZS4nIicpCisgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnZ2V0ICInLmZuYW1lLiciJykKICAgICBlbmRmb3IKICIgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKIApAQCAtNTI5OSw3ICs1NDYyLDcgQEAKICAgICAiIC1pICAgICAgIDogdHVybnMgb2ZmIGludGVyYWN0aXZlIHByb21wdGluZyBmcm9tIGZ0cAogICAgICIgLW4gIHVuaXggOiBET04nVCB1c2UgPC5uZXRyYz4sIGV2ZW4gdGhvdWdoIGl0IGV4aXN0cwogICAgICIgLW4gIHdpbjMyOiBxdWl0IGJlaW5nIG9ibm94aW91cyBhYm91dCBwYXNzd29yZAotICAgIG5vcm0hIDFHZGQKKyAgICBrZWVwaiBub3JtISAxR2RkCiAiICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pIC1uIikKICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgLW4iCiAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQpAQCAtNTUwMiwyNSArNTY2NSwyNSBAQAogICAgIGlmIGI6bmV0cndfbWV0aG9kID09IDIKICAgICAgIiBoYW5kbGUgdXBsb2FkaW5nIGEgbGlzdCBvZiBmaWxlcyB2aWEgZnRwKy5uZXRyYwogICAgICBsZXQgbmV0cndfZm5hbWUgPSBiOm5ldHJ3X2ZuYW1lCi0gICAgIHNpbGVudCBrZWVwanVtcHMgbmV3CisgICAgIHNpbCBrZWVwaiBuZXcKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dCB3aW5kb3cjIi53aW5ucigpKQogCi0gICAgIHB1dCA9ZzpuZXRyd19mdHBtb2RlCisgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBtb2RlCiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogCiAgICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBleHRyYWNtZCIpCi0gICAgICBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKKyAgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgIGVuZGlmCiAKLSAgICAgY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLCdsY2QgIicuZnJvbWRpci4nIicpCisgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnbGNkICInLmZyb21kaXIuJyInKQogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKIAotICAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsJ2NkICInLnRndGRpci4nIicpCisgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnY2QgIicudGd0ZGlyLiciJykKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAKICAgICAgZm9yIGZuYW1lIGluIGE6Zm5hbWUKLSAgICAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwncHV0ICInLmZuYW1lLiciJykKKyAgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwncHV0ICInLmZuYW1lLiciJykKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbmRmb3IKIApAQCAtNTUzMyw3ICs1Njk2LDcgQEAKICAgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZSwxKQogICAgICBlbmRpZgogICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCi0gICAgIHNpbGVudCBnL0xvY2FsIGRpcmVjdG9yeSBub3cvZAorICAgICBzaWwga2VlcGogZy9Mb2NhbCBkaXJlY3Rvcnkgbm93L2QKICAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICAgaWYgZ2V0bGluZSgxKSAhfiAiXiQiICYmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKSAmJiBnZXRsaW5lKDEpICF+ICdeVHJ5aW5nICcKICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpFUlJPUixnZXRsaW5lKDEpLDE0KQpAQCAtNTU0OSwzOCArNTcxMiwzOCBAQAogICAgICBzZXRsb2NhbCBmZj11bml4CiAKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAorICAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CiAiICAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKICAgICAgZWxzZQotICAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQorICAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQogIiAgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgIGVuZGlmCiAKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cCIpICYmIGc6bmV0cndfZnRwID09IDEKLSAgICAgIHB1dCA9ZzpuZXRyd191aWQKKyAgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd191aWQKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQotICAgICAgY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLCciJy5zOm5ldHJ3X3Bhc3N3ZC4nIicpCisgICAgICBrZWVwaiBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsJyInLnM6bmV0cndfcGFzc3dkLiciJykKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbHNlCi0gICAgICBwdXQgPSd1c2VyIFwiJy5nOm5ldHJ3X3VpZC4nXCIgXCInLnM6bmV0cndfcGFzc3dkLidcIicKKyAgICAgIGtlZXBqIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJwogIiAgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgIGVuZGlmCiAKLSAgICAgY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLCdsY2QgIicuZnJvbWRpci4nIicpCisgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwnbGNkICInLmZyb21kaXIuJyInKQogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJyQnKSkKIAogICAgICBpZiBleGlzdHMoImI6bmV0cndfZm5hbWUiKSAmJiBiOm5ldHJ3X2ZuYW1lICE9ICIiCi0gICAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsJ2NkICInLmI6bmV0cndfZm5hbWUuJyInKQorICAgICAga2VlcGogY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLCdjZCAiJy5iOm5ldHJ3X2ZuYW1lLiciJykKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbmRpZgogCiAgICAgIGlmIGV4aXN0cygiZzpuZXRyd19mdHBleHRyYWNtZCIpCi0gICAgICBwdXQgPWc6bmV0cndfZnRwZXh0cmFjbWQKKyAgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCiAgICAgIGVuZGlmCiAKICAgICAgZm9yIGZuYW1lIGluIGE6Zm5hbWUKLSAgICAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwncHV0ICInLmZuYW1lLiciJykKKyAgICAgIGtlZXBqIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSwncHV0ICInLmZuYW1lLiciJykKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbmRmb3IKIApAQCAtNTU4OCwxMSArNTc1MSwxMSBAQAogICAgICAiIC1pICAgICAgIDogdHVybnMgb2ZmIGludGVyYWN0aXZlIHByb21wdGluZyBmcm9tIGZ0cAogICAgICAiIC1uICB1bml4IDogRE9OJ1QgdXNlIDwubmV0cmM+LCBldmVuIHRob3VnaCBpdCBleGlzdHMKICAgICAgIiAtbiAgd2luMzI6IHF1aXQgYmVpbmcgb2Jub3hpb3VzIGFib3V0IHBhc3N3b3JkCi0gICAgIG5vcm0hIDFHZGQKKyAgICAga2VlcGogbm9ybSEgMUdkZAogIiAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAiLnM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pIC1uIikKICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pIC1uIgogICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCi0gICAgIHNpbGVudCBnL0xvY2FsIGRpcmVjdG9yeSBub3cvZAorICAgICBzaWwga2VlcGogZy9Mb2NhbCBkaXJlY3Rvcnkgbm93L2QKICAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICAgaWYgZ2V0bGluZSgxKSAhfiAiXiQiICYmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKSAmJiBnZXRsaW5lKDEpICF+ICdeVHJ5aW5nICcKICAgICAgIGxldCBkZWJ1Z2tlZXA9ICZkZWJ1ZwpAQCAtNTYyMyw3ICs1Nzg2LDE0IEBACiAgIGNhbGwgczpOZXRyd1NhZmVPcHRpb25zKCkKICAgaWYgaGFzKCJxdWlja2ZpeCIpCiAgICBpZiAhaXNkaXJlY3RvcnkoYTpwYXRoKQotICAgIGV4ZSAoZzpuZXRyd19wcmV2aWV3PyAidmVydCAiIDogIiIpLiJwZWRpdCAiLmZuYW1lZXNjYXBlKGE6cGF0aCkKKyAgICBpZiBnOm5ldHJ3X3ByZXZpZXcgJiYgIWc6bmV0cndfYWx0bworICAgICBsZXQgcHZoa2VlcD0gJnB2aAorICAgICBsZXQgJnB2aCAgID0gd2lud2lkdGgoMCkgLSBnOm5ldHJ3X3dpbnNpemUKKyAgICBlbmRpZgorICAgIGV4ZSAoZzpuZXRyd19hbHRvPyAidG9wICIgOiAiYm90ICIpLihnOm5ldHJ3X3ByZXZpZXc/ICJ2ZXJ0ICIgOiAiIikuInBlZGl0ICIuZm5hbWVlc2NhcGUoYTpwYXRoKQorICAgIGlmIGV4aXN0cygicHZoa2VlcCIpCisgICAgIGxldCAmcHZoPSBwdmhrZWVwCisgICAgZW5kaWYKICAgIGVsc2VpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywic29ycnksIGNhbm5vdCBwcmV2aWV3IGEgZGlyZWN0b3J5IHN1Y2ggYXMgPCIuYTpwYXRoLiI+IiwzOCkKICAgIGVuZGlmCkBAIC01NjQ0LDcgKzU4MTQsNyBAQAogICBzZXRsb2NhbCBtYSBub3JvCiAiICBjYWxsIERlY2hvKCJzZXRsb2NhbCBtYSBub3JvIikKICIgIGNhbGwgRGVjaG8oImNsZWFyIGJ1ZmZlcjwiLmV4cGFuZCgiJSIpLiI+IHdpdGggOiVkIikKLSAgJWQKKyAga2VlcGogJWQKICAgaWYgYTppc2xvY2FsCiAgICBjYWxsIG5ldHJ3I0xvY2FsQnJvd3NlQ2hlY2soYTpkaXJuYW1lKQogICBlbHNlCkBAIC01NzQ0LDE3ICs1OTE0LDE3IEBACiAgICBpZiBzZXEgPT0gJyonCiAgICAgbGV0IHN0YXJwcmlvcml0eT0gc3ByaW9yaXR5CiAgICBlbHNlCi0gICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkZy8nLnNlcS4nL3MvXi8nLnNwcmlvcml0eS4nLycKKyAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJGcvJy5zZXEuJy9zL14vJy5zcHJpb3JpdHkuJy8nCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICAiIHNvbWV0aW1lcyBtdWx0aXBsZSBzb3J0aW5nIHBhdHRlcm5zIHdpbGwgbWF0Y2ggdGhlIHNhbWUgZmlsZSBvciBkaXJlY3RvcnkuCiAgICAgIiBUaGUgZm9sbG93aW5nIHN1YnN0aXR1dGUgaXMgaW50ZW5kZWQgdG8gcmVtb3ZlIHRoZSBleGNlc3MgbWF0Y2hlcy4KLSAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL15cZFx7M30nLmc6bmV0cndfc2VwY2hyLidcZFx7M31cLy9zL15cZFx7M30nLmc6bmV0cndfc2VwY2hyLidcKFxkXHszfVwvXCkuXEA9L1wxL2UnCisgICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL15cZFx7M30nLmc6bmV0cndfc2VwY2hyLidcZFx7M31cLy9zL15cZFx7M30nLmc6bmV0cndfc2VwY2hyLidcKFxkXHszfVwvXCkuXEA9L1wxL2UnCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGVuZGlmCiAgICBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eSArIDEKICAgZW5kd2hpbGUKICAgaWYgZXhpc3RzKCJzdGFycHJpb3JpdHkiKQotICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkdi9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nL3MvXi8nLnN0YXJwcmlvcml0eS4nLycKKyAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkdi9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nL3MvXi8nLnN0YXJwcmlvcml0eS4nLycKICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgIGVuZGlmCiAKQEAgLTU3NjQsNyArNTkzNCw3IEBACiAgICIgcHJpb3JpdHkgcGF0dGVybiBuZWVkcyB0byBiZSByZXRhaW5lZC4gIFNvLCBhdCB0aGlzIHBvaW50LCB0aGVzZSBleGNlc3MKICAgIiBwcmlvcml0eSBwcmVmaXhlcyBuZWVkIHRvIGJlIHJlbW92ZWQsIGJ1dCBub3QgZGlyZWN0b3JpZXMgdGhhdCBoYXBwZW4gdG8KICAgIiBiZSBqdXN0IGRpZ2l0cyB0aGVtc2VsdmVzLgotICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFxkXHszfScuZzpuZXRyd19zZXBjaHIuJ1wpXCUoXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nXClcK1x6ZS4vXDEvZScKKyAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFxkXHszfScuZzpuZXRyd19zZXBjaHIuJ1wpXCUoXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nXClcK1x6ZS4vXDEvZScKICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKIAogIiAgY2FsbCBEcmV0KCJTZXRTb3J0IikKQEAgLTU3NzgsNyArNTk0OCw3IEBACiAgIGxldCBzdnBvcz0gbmV0cncjTmV0cndTYXZlUG9zbigpCiAKICAgbGV0IGc6bmV0cndfc29ydF9ieT0gKGc6bmV0cndfc29ydF9ieSA9fiAnbicpPyAndGltZScgOiAoZzpuZXRyd19zb3J0X2J5ID1+ICd0Jyk/ICdzaXplJyA6ICduYW1lJwotICBub3JtISAwCisgIGtlZXBqIG5vcm0hIDAKICAgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsJy4vJykpCiAgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbihzdnBvcykKIApAQCAtNTkyMyw3ICs2MDkzLDcgQEAKICIgICAgY2FsbCBEZWNobygidXNlciBhdHRlbXB0ZWQgdG8gY2xvc2UgdHJlZXJvb3QiKQogICAgICIgbm93IGZvcmNlIGEgcmVmcmVzaAogIiAgICBjYWxsIERlY2hvKCJjbGVhciBidWZmZXI8Ii5leHBhbmQoIiUiKS4iPiB3aXRoIDolZCIpCi0gICAga2VlcGp1bXBzICVkCisgICAga2VlcGogJWQKICIgICAgY2FsbCBEcmV0KCJOZXRyd1RyZWVEaXIgPCIudHJlZWRpci4iPiA6IChzaWRlIGVmZmVjdCkgczp0cmVlY3VycG9zPCIuc3RyaW5nKHM6dHJlZWN1cnBvcykuIj4iKQogICAgIHJldHVybiBiOm5ldHJ3X2N1cmRpcgogICAgZW5kaWYKQEAgLTYwMDQsNyArNjE3NCw3IEBACiAgICAgY2FsbCBzOk5ldHJ3VHJlZURpc3BsYXkoZGlyZW50cnkuJy8nLGRlcHRoKQogICAgZWxzZQogIiAgICBjYWxsIERlY2hvKCI8Ii5lbnRyeS4iPiBpcyBub3QgYSBrZXkgaW4gdHJlZWRpY3QgKG5vIHN1YnRyZWUpIikKLSAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsZGVwdGguZW50cnkpCisgICAga2VlcGogY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLGRlcHRoLmVudHJ5KQogICAgZW5kaWYKICAgZW5kZm9yCiAiICBjYWxsIERyZXQoIk5ldHJ3VHJlZURpc3BsYXkiKQpAQCAtNjAzOCw3ICs2MjA4LDcgQEAKICIgICBjYWxsIERlY2hvKCJiYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudC4iIGxpbmUoJCk9Ii5saW5lKCIkIikpCiAgICBleGUgInNpbGVudCEga2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkZ0BeXC5cLlw9LyRAZCcKICAgIGxldCB3Om5ldHJ3X3RyZWVkaWN0W2E6ZGlybmFtZV09IGdldGxpbmUodzpuZXRyd19iYW5uZXJjbnQsbGluZSgiJCIpKQotIiAgIGNhbGwgRGVjaG8oInc6dHJlZWRpY3RbIi5hOmRpcm5hbWUuIl09ICIudzpuZXRyd190cmVlZGljdFthOmRpcm5hbWVdKQorIiAgIGNhbGwgRGVjaG8oInc6dHJlZWRpY3RbIi5hOmRpcm5hbWUuIl09ICIuc3RyaW5nKHc6bmV0cndfdHJlZWRpY3RbYTpkaXJuYW1lXSkpCiAgICBleGUgInNpbGVudCEga2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuIiwkZCIKIAogICAgIiBpZiBwYXN0IGJhbm5lciwgcmVjb3JkIHdvcmQKQEAgLTYwNzAsNyArNjI0MCw3IEBACiAiICAgY2FsbCBEZWNobygic2V0bG9jYWwgbWEgbm9ybyIpCiAgICBsZXQgYjpuZXRyd19jcGY9IDAKICAgIGlmIGxpbmUoIiQiKSA+PSB3Om5ldHJ3X2Jhbm5lcmNudAotICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJGcvXi4vaWYgdmlydGNvbCgiJCIpID4gYjpuZXRyd19jcGZ8bGV0IGI6bmV0cndfY3BmPSB2aXJ0Y29sKCIkIil8ZW5kaWYnCisgICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL14uL2lmIHZpcnRjb2woIiQiKSA+IGI6bmV0cndfY3BmfGxldCBiOm5ldHJ3X2NwZj0gdmlydGNvbCgiJCIpfGVuZGlmJwogICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBlbHNlCiAiICAgIGNhbGwgRHJldCgiTmV0cndXaWRlTGlzdGluZyIpCkBAIC02MDg3LDcgKzYyNTcsNyBAQAogIiAgIGNhbGwgRGVjaG8oImZwbD0gW3dpbndpZHRoPSIud2lud2lkdGgoMCkuIl0vW2I6bmV0cndfY3BmPSIuYjpuZXRyd19jcGYuJ109Jy53Om5ldHJ3X2ZwbCkKIAogICAgIiBtYWtlIHdpZGUgZGlzcGxheQotICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eLiokL1w9ZXNjYXBlKHByaW50ZigiJS0nLmI6bmV0cndfY3BmLidzIixzdWJtYXRjaCgwKSksIlxcIikvJworICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL14uKiQvXD1lc2NhcGUocHJpbnRmKCIlLScuYjpuZXRyd19jcGYuJ3MiLHN1Ym1hdGNoKDApKSwiXFwiKS8nCiAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgbGV0IGZwYyAgICAgICAgID0gKGxpbmUoIiQiKSAtIHc6bmV0cndfYmFubmVyY250ICsgdzpuZXRyd19mcGwpL3c6bmV0cndfZnBsCiAgICBsZXQgbmV3Y29sc3RhcnQgPSB3Om5ldHJ3X2Jhbm5lcmNudCArIGZwYwpAQCAtNjA5OSwxNSArNjI2OSwxNSBAQAogICAgIGxldCBuZXdjb2xxdHk9IG5ld2NvbGVuZCAtIG5ld2NvbHN0YXJ0CiAgICAgZXhlIG5ld2NvbHN0YXJ0CiAgICAgaWYgbmV3Y29scXR5ID09IDAKLSAgICAgZXhlICJzaWxlbnQga2VlcGp1bXBzIG5vcm0hIDBcPGMtdj4kaHgiLnc6bmV0cndfYmFubmVyY250LiJHJHAiCisgICAgIGV4ZSAic2lsIGtlZXBqIG5vcm0hIDBcPGMtdj4kaHgiLnc6bmV0cndfYmFubmVyY250LiJHJHAiCiAgICAgZWxzZQotICAgICBleGUgInNpbGVudCBrZWVwanVtcHMgbm9ybSEgMFw8Yy12PiIubmV3Y29scXR5LidqJGh4Jy53Om5ldHJ3X2Jhbm5lcmNudC4nRyRwJworICAgICBleGUgInNpbCBrZWVwaiBub3JtISAwXDxjLXY+Ii5uZXdjb2xxdHkuJ2okaHgnLnc6bmV0cndfYmFubmVyY250LidHJHAnCiAgICAgZW5kaWYKLSAgICBleGUgInNpbGVudCBrZWVwanVtcHMgIi5uZXdjb2xzdGFydC4nLCcubmV3Y29sZW5kLidkJwotICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250CisgICAgZXhlICJzaWwga2VlcGogIi5uZXdjb2xzdGFydC4nLCcubmV3Y29sZW5kLidkJworICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQKICAgIGVuZHdoaWxlCiAgICBzaWxlbnQhIGxldCBAKj0ga2VlcHJlZ3N0YXIKLSAgIGV4ZSAic2lsZW50IGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LicsJHMvXHNcKyQvL2UnCisgICBleGUgInNpbCBrZWVwaiAiLnc6bmV0cndfYmFubmVyY250LicsJHMvXHNcKyQvL2UnCiAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgc2V0bG9jYWwgbm9tYSBub21vZCBybwogIiAgIGNhbGwgRHJldCgiTmV0cndXaWRlTGlzdGluZyIpCkBAIC02MTE4LDcgKzYyODgsNyBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpQZXJmb3JtTGlzdGluZzoge3t7MgogZnVuISBzOlBlcmZvcm1MaXN0aW5nKGlzbG9jYWwpCi0iICBjYWxsIERmdW5jKCJzOlBlcmZvcm1MaXN0aW5nKGlzbG9jYWw9Ii5hOmlzbG9jYWwuIikgYnVmKCUpPSIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IikKKyIgIGNhbGwgRGZ1bmMoInM6UGVyZm9ybUxpc3RpbmcoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSBidWZuciglKT0iLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiIpCiAKICAgY2FsbCBzOk5ldHJ3U2FmZU9wdGlvbnMoKQogICBzZXRsb2NhbCBub3JvIG1hCkBAIC02MTMyLDcgKzYzMDIsNyBAQAogICBpZiBleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikgJiYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVCAmJiBleGlzdHMoInc6bmV0cndfdHJlZWRpY3QiKQogICAgIiBmb3JjZSBhIHJlZnJlc2ggZm9yIHRyZWUgbGlzdGluZ3MKICIgICBjYWxsIERlY2hvKCJmb3JjZSByZWZyZXNoIGZvciB0cmVlbGlzdGluZzogY2xlYXIgYnVmZmVyPCIuZXhwYW5kKCIlIikuIj4gd2l0aCA6JWQiKQotICAga2VlcGp1bXBzICVkCisgICBrZWVwaiAlZAogICBlbmRpZgogCiAgICIgc2F2ZSBjdXJyZW50IGRpcmVjdG9yeSBvbiBkaXJlY3RvcnkgaGlzdG9yeSBsaXN0CkBAIC02MTQxLDE0ICs2MzExLDE0IEBACiAgICIgU2V0IHVwIHRoZSBiYW5uZXIge3t7MwogICBpZiBnOm5ldHJ3X2Jhbm5lcgogIiAgIGNhbGwgRGVjaG8oInNldCB1cCBiYW5uZXIiKQotICAga2VlcGp1bXBzIHB1dCA9J1wiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nCi0gICBrZWVwanVtcHMgcHV0ID0nXCIgTmV0cncgRGlyZWN0b3J5IExpc3RpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5ldHJ3ICcuZzpsb2FkZWRfbmV0cncuJyknCi0gICBrZWVwanVtcHMgcHV0ID0nXCIgICAnLmI6bmV0cndfY3VyZGlyCi0gICBrZWVwanVtcHMgMWQKKyAgIGtlZXBqIHB1dCA9J1wiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nCisgICBrZWVwaiBwdXQgPSdcIiBOZXRydyBEaXJlY3RvcnkgTGlzdGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV0cncgJy5nOmxvYWRlZF9uZXRydy4nKScKKyAgIGtlZXBqIHB1dCA9J1wiICAgJy5iOm5ldHJ3X2N1cmRpcgorICAga2VlcGogMWQKICAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gMwotICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudAorICAgZXhlICJrZWVwaiAiLnc6bmV0cndfYmFubmVyY250CiAgIGVsc2UKLSAgIGtlZXBqdW1wcyAxCisgICBrZWVwaiAxCiAgICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IDEKICAgZW5kaWYKIApAQCAtNjE2MywzMyArNjMzMywzMyBAQAogICAgaWYgZzpuZXRyd19zb3J0X2J5ID1+ICJebiIKICIgICBjYWxsIERlY2hvKCJkaXJlY3RvcmllcyB3aWxsIGJlIHNvcnRlZCBieSBuYW1lIikKICAgICAiIHNvcnRlZCBieSBuYW1lCi0gICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU29ydGVkIGJ5ICAgICAgJy5zb3J0YnkKLSAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTb3J0IHNlcXVlbmNlOiAnLmc6bmV0cndfc29ydF9zZXF1ZW5jZQorICAgIGtlZXBqIHB1dCA9J1wiICAgU29ydGVkIGJ5ICAgICAgJy5zb3J0YnkKKyAgICBrZWVwaiBwdXQgPSdcIiAgIFNvcnQgc2VxdWVuY2U6ICcuZzpuZXRyd19zb3J0X3NlcXVlbmNlCiAgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDIKICAgIGVsc2UKICIgICBjYWxsIERlY2hvKCJkaXJlY3RvcmllcyB3aWxsIGJlIHNvcnRlZCBieSBzaXplIG9yIHRpbWUiKQogICAgICIgc29ydGVkIGJ5IHNpemUgb3IgZGF0ZQotICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNvcnRlZCBieSAnLnNvcnRieQorICAgIGtlZXBqIHB1dCA9J1wiICAgU29ydGVkIGJ5ICcuc29ydGJ5CiAgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDEKICAgIGVuZGlmCi0gICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CisgICBleGUgImtlZXBqICIudzpuZXRyd19iYW5uZXJjbnQKICAgZW5kaWYKIAogICAiIHNob3cgY29weS9tb3ZlIHRhcmdldCwgaWYgYW55CiAgIGlmIGc6bmV0cndfYmFubmVyCiAgICBpZiBleGlzdHMoInM6bmV0cndtZnRndCIpICYmIGV4aXN0cygiczpuZXRyd21mdGd0X2lzbG9jYWwiKQogIiAgICBjYWxsIERlY2hvKCJzaG93IGNvcHkvbW92ZSB0YXJnZXQ8Ii5zOm5ldHJ3bWZ0Z3QuIj4iKQotICAgIGtlZXBqdW1wcyBwdXQgPScnCisgICAga2VlcGogcHV0ID0nJwogICAgIGlmIHM6bmV0cndtZnRndF9pc2xvY2FsCi0gICAgIGNhbGwgc2V0bGluZShsaW5lKCIuIiksJyIgICBDb3B5L01vdmUgVGd0OiAnLnM6bmV0cndtZnRndC4nIChsb2NhbCknKQorICAgICBrZWVwaiBjYWxsIHNldGxpbmUobGluZSgiLiIpLCciICAgQ29weS9Nb3ZlIFRndDogJy5zOm5ldHJ3bWZ0Z3QuJyAobG9jYWwpJykKICAgICBlbHNlCi0gICAgIGNhbGwgc2V0bGluZShsaW5lKCIuIiksJyIgICBDb3B5L01vdmUgVGd0OiAnLnM6bmV0cndtZnRndC4nIChyZW1vdGUpJykKKyAgICAga2VlcGogY2FsbCBzZXRsaW5lKGxpbmUoIi4iKSwnIiAgIENvcHkvTW92ZSBUZ3Q6ICcuczpuZXRyd21mdGd0LicgKHJlbW90ZSknKQogICAgIGVuZGlmCiAgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDEKICAgIGVsc2UKICIgICAgY2FsbCBEZWNobygiczpuZXRyd21mdGd0IGRvZXMgbm90IGV4aXN0LCBkb24ndCBtYWtlIENvcHkvTW92ZSBUZ3QiKQogICAgZW5kaWYKLSAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKKyAgIGV4ZSAia2VlcGogIi53Om5ldHJ3X2Jhbm5lcmNudAogICBlbmRpZgogCiAgICIgSGlkaW5nLi4uICAtb3ItICBTaG93aW5nLi4uIHt7ezMKQEAgLTYxOTcsMjIgKzYzNjcsMjIgQEAKICIgICBjYWxsIERlY2hvKCJoYW5kbGUgaGlkaW5nL3Nob3dpbmcgKGc6bmV0cndfaGlkZT0iLmc6bmV0cndfbGlzdF9oaWRlLiIgZzpuZXRyd19saXN0X2hpZGU8Ii5nOm5ldHJ3X2xpc3RfaGlkZS4iPikiKQogICAgaWYgZzpuZXRyd19saXN0X2hpZGUgIT0gIiIgJiYgZzpuZXRyd19oaWRlCiAgICAgaWYgZzpuZXRyd19oaWRlID09IDEKLSAgICAga2VlcGp1bXBzIHB1dCA9J1wiICAgSGlkaW5nOiAgICAgICAgJy5nOm5ldHJ3X2xpc3RfaGlkZQorICAgICBrZWVwaiBwdXQgPSdcIiAgIEhpZGluZzogICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKICAgICBlbHNlCi0gICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNob3dpbmc6ICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKKyAgICAga2VlcGogcHV0ID0nXCIgICBTaG93aW5nOiAgICAgICAnLmc6bmV0cndfbGlzdF9oaWRlCiAgICAgZW5kaWYKICAgICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IHc6bmV0cndfYmFubmVyY250ICsgMQogICAgZW5kaWYKICAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKLSAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFF1aWNrIEhlbHA6IDxGMT46aGVscCAgLTpnbyB1cCBkaXIgIEQ6ZGVsZXRlICBSOnJlbmFtZSAgczpzb3J0LWJ5ICB4OmV4ZWMnCi0gICBrZWVwanVtcHMgcHV0ID0nXCIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScKKyAgIGtlZXBqIHB1dCA9J1wiICAgUXVpY2sgSGVscDogPEYxPjpoZWxwICAtOmdvIHVwIGRpciAgRDpkZWxldGUgIFI6cmVuYW1lICBzOnNvcnQtYnkgIHg6ZXhlYycKKyAgIGtlZXBqIHB1dCA9J1wiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nCiAgICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IHc6bmV0cndfYmFubmVyY250ICsgMgogICBlbmRpZgogCiAgICIgYmFubmVyY250IHNob3VsZCBpbmRleCB0aGUgbGluZSBqdXN0IGFmdGVyIHRoZSBiYW5uZXIKICAgaWYgZzpuZXRyd19iYW5uZXIKICAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAxCi0gICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CisgICBleGUgImtlZXBqICIudzpuZXRyd19iYW5uZXJjbnQKICIgICBjYWxsIERlY2hvKCJiYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudC4iIChzaG91bGQgaW5kZXggbGluZSBqdXN0IGFmdGVyIGJhbm5lcikgbGluZSgkKT0iLmxpbmUoIiQiKSkKICAgZW5kaWYKIApAQCAtNjI1MiwxNSArNjQyMiwxNSBAQAogIiAgICAgIGNhbGwgRGVjaG8oImc6bmV0cndfc29ydF9kaXJlY3Rpb249Ii5nOm5ldHJ3X3NvcnRfZGlyZWN0aW9uLiIgKGJhbm5lcmNudD0iLnc6bmV0cndfYmFubmVyY250LiIpIikKICAgICAgIGlmIGc6bmV0cndfc29ydF9kaXJlY3Rpb24gPX4gJ24nCiAgICAgICAgIiBub3JtYWwgZGlyZWN0aW9uIHNvcnRpbmcKLSAgICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0Jy4nICcuZzpuZXRyd19zb3J0X29wdGlvbnMKKyAgICAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQnLicgJy5nOm5ldHJ3X3NvcnRfb3B0aW9ucwogICAgICAgZWxzZQogICAgICAgICIgcmV2ZXJzZSBkaXJlY3Rpb24gc29ydGluZwotICAgICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQhJy4nICcuZzpuZXRyd19zb3J0X29wdGlvbnMKKyAgICAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQhJy4nICcuZzpuZXRyd19zb3J0X29wdGlvbnMKICAgICAgIGVuZGlmCiAgICAgIGVuZGlmCiAgICAgICIgcmVtb3ZlIHByaW9yaXR5IHBhdHRlcm4gcHJlZml4CiAiICAgICBjYWxsIERlY2hvKCJyZW1vdmUgcHJpb3JpdHkgcGF0dGVybiBwcmVmaXgiKQotICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cZFx7M30nLmc6bmV0cndfc2VwY2hyLicvL2UnCisgICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nLy9lJwogICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogCiAgICAgZWxzZWlmIGE6aXNsb2NhbApAQCAtNjI2OCwxMiArNjQzOCwxMiBAQAogIiAgICAgIGNhbGwgRGVjaG8oImc6bmV0cndfc29ydF9kaXJlY3Rpb249Ii5nOm5ldHJ3X3NvcnRfZGlyZWN0aW9uKQogICAgICAgaWYgZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicKICIgICAgICAgY2FsbCBEZWNobygnZXhlIHNpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0JykKLSAgICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0Jy4nICcuZzpuZXRyd19zb3J0X29wdGlvbnMKKyAgICAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQnLicgJy5nOm5ldHJ3X3NvcnRfb3B0aW9ucwogICAgICAgZWxzZQogIiAgICAgICBjYWxsIERlY2hvKCdleGUgc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQhJykKLSAgICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0IScuJyAnLmc6bmV0cndfc29ydF9vcHRpb25zCisgICAgICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0IScuJyAnLmc6bmV0cndfc29ydF9vcHRpb25zCiAgICAgICBlbmRpZgotICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cZFx7LX1cLy8vZScKKyAgICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cZFx7LX1cLy8vZScKICAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICAgZW5kaWYKICAgICBlbmRpZgpAQCAtNjI4MSw3ICs2NDUxLDcgQEAKICAgIGVsc2VpZiBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uID1+ICdyJwogIiAgICBjYWxsIERlY2hvKCdyZXZlcnNlIHRoZSBzb3J0ZWQgbGlzdGluZycpCiAgICAgaWYgIWc6bmV0cndfYmFubmVyIHx8IHc6bmV0cndfYmFubmVyY250IDwgbGluZSgnJCcpCi0gICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJGcvXi9tICcudzpuZXRyd19iYW5uZXJjbnQKKyAgICAgZXhlICdzaWwga2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL14vbSAnLnc6bmV0cndfYmFubmVyY250CiAgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgZW5kaWYKICAgIGVuZGlmCkBAIC02Mjk1LDggKzY0NjUsOCBAQAogICBpZiBleGlzdHMoInc6bmV0cndfYmFubmVyY250IikgJiYgKGxpbmUoIiQiKSA+IHc6bmV0cndfYmFubmVyY250IHx8ICFnOm5ldHJ3X2Jhbm5lcikKICAgICIgcGxhY2UgY3Vyc29yIG9uIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGZpbGUgbGlzdGluZwogIiAgIGNhbGwgRGVjaG8oInBsYWNlIGN1cnNvciBvbiB0b3AtbGVmdCBjb3JuZXIgb2YgZmlsZSBsaXN0aW5nIikKLSAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250Ci0gICBub3JtISAwCisgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250CisgICBrZWVwaiBub3JtISAwCiAgIGVuZGlmCiAKICAgIiByZWNvcmQgcHJldmlvdXMgY3VycmVudCBkaXJlY3RvcnkKQEAgLTY0MTYsNDMgKzY1ODYsNDMgQEAKICAgIGVuZGlmCiAiICAgY2FsbCBEZWNobygibGlzdGNtZDwiLmxpc3RjbWQuIj4gKHVzaW5nIGc6bmV0cndfZnRwX2xpc3RfY21kKSIpCiAgICBjYWxsIHM6TmV0cndSZW1vdGVGdHBDbWQoczpwYXRoLGxpc3RjbWQpCi0iICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL14uL2NhbGwgRGVjaG8oInJhdyBsaXN0aW5nOiAiLmdldGxpbmUoIi4iKSknCisiICAgZXhlICJrZWVwaiAiLnc6bmV0cndfYmFubmVyY250LicsJGcvXi4vY2FsbCBEZWNobygicmF3IGxpc3Rpbmc6ICIuZ2V0bGluZSgiLiIpKScKIAogICAgaWYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUSElOTElTVCB8fCB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOldJREVMSVNUIHx8IHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QKICAgICAiIHNob3J0ZW4gdGhlIGxpc3RpbmcKICIgICAgY2FsbCBEZWNobygiZ2VuZXJhdGUgc2hvcnQgbGlzdGluZyIpCi0gICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudAorICAgIGV4ZSAia2VlcGogIi53Om5ldHJ3X2Jhbm5lcmNudAogCiAgICAgIiBjbGVhbnVwCiAgICAgaWYgZzpuZXRyd19mdHBfYnJvd3NlX3JlamVjdCAhPSAiIgotICAgICBleGUgInNpbGVudCEgZy8iLmc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QuIi9rZWVwanVtcHMgZCIKKyAgICAgZXhlICJzaWwhIGtlZXBqIGcvIi5nOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0LiIva2VlcGogZCIKICAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBlbmRpZgotICAgIHNpbGVudCEga2VlcGp1bXBzICVzL1xyJC8vZQorICAgIHNpbCEga2VlcGogJXMvXHIkLy9lCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKIAogICAgICIgaWYgdGhlcmUncyBubyAuLi8gbGlzdGVkLCB0aGVuIHB1dCAuLyBhbmQgLi4vIGluCiAgICAgbGV0IGxpbmUxPSBsaW5lKCIuIikKLSAgICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CisgICAgZXhlICJrZWVwaiAiLnc6bmV0cndfYmFubmVyY250CiAgICAgbGV0IGxpbmUyPSBzZWFyY2goJ15cLlwuXC9cJShcc1x8JFwpJywnY25XJykKICAgICBpZiBsaW5lMiA9PSAwCiAiICAgICBjYWxsIERlY2hvKCJuZXRydyBpcyBwdXR0aW5nIC4vIGFuZCAuLi8gaW50byBsaXN0aW5nIikKLSAgICAga2VlcGp1bXBzIHB1dD0nLi4vJwotICAgICBrZWVwanVtcHMgcHV0PScuLycKKyAgICAga2VlcGogcHV0PScuLi8nCisgICAgIGtlZXBqIHB1dD0nLi8nCiAgICAgZW5kaWYKLSAgICBleGUgImtlZXBqdW1wcyAiLmxpbmUxCisgICAgZXhlICJrZWVwaiAiLmxpbmUxCiAgICAga2VlcGp1bXBzIG5vcm0hIDAKIAogIiAgICBjYWxsIERlY2hvKCJsaW5lMT0iLmxpbmUxLiIgbGluZTI9Ii5saW5lMi4iIGxpbmUoLik9Ii5saW5lKCIuIikpCiAgICAgaWYgc2VhcmNoKCdeXGRcezJ9LVxkXHsyfS1cZFx7Mn1ccycsJ24nKSAiIE0kIGZ0cCBzaXRlIGNsZWFudXAKICIgICAgIGNhbGwgRGVjaG8oIk0kIGZ0cCBjbGVhbnVwIikKLSAgICAgZXhlICdzaWxlbnQhIGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHsyfS1cZFx7Mn0tXGRcezJ9XHNcK1xkXCs6XGRcK1tBYVBwXVtNbV1cc1wrXCUoPERJUj5cfFxkXCtcKVxzXCsvLycKKyAgICAgZXhlICdzaWwhIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcezJ9LVxkXHsyfS1cZFx7Mn1cc1wrXGRcKzpcZFwrW0FhUHBdW01tXVxzXCtcJSg8RElSPlx8XGRcK1wpXHNcKy8vJwogICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIGVsc2UgIiBub3JtYWwgZnRwIGNsZWFudXAKICIgICAgIGNhbGwgRGVjaG8oIm5vcm1hbCBmdHAgY2xlYW51cCIpCi0gICAgIGV4ZSAnc2lsZW50ISBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFwlKFxTXCtcc1wrXClcezd9XFNcK1wpXHNcK1woXFMuKlwpJC9cMi9lJwotICAgICBleGUgInNpbGVudCEga2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkZy8gLT4gL3MjIC0+IC4qLyQjLyNlJwotICAgICBleGUgInNpbGVudCEga2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkZy8gLT4gL3MjIC0+IC4qJCMvI2UnCisgICAgIGV4ZSAnc2lsISBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlwoXCUoXFNcK1xzXCtcKVx7N31cU1wrXClcc1wrXChcUy4qXCkkL1wyL2UnCisgICAgIGV4ZSAic2lsISBrZWVwaiAiLnc6bmV0cndfYmFubmVyY250LicsJGcvIC0+IC9zIyAtPiAuKi8kIy8jZScKKyAgICAgZXhlICJzaWwhIGtlZXBqICIudzpuZXRyd19iYW5uZXJjbnQuJywkZy8gLT4gL3MjIC0+IC4qJCMvI2UnCiAgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCkBAIC02NDY4LDIzICs2NjM4LDIzIEBACiAiICAgIGNhbGwgRGVjaG8oIjE6IGV4ZSBzaWxlbnQgciEgIi5zaGVsbGVzY2FwZShsaXN0Y21kLnM6cGF0aCwgMSkpCiAgICAgZXhlICJzaWxlbnQgciEgIi5saXN0Y21kLnNoZWxsZXNjYXBlKHM6cGF0aCwgMSkKICAgICAiIHJlbW92ZSBydWJiaXNoIGFuZCBhZGp1c3QgbGlzdGluZyBmb3JtYXQgb2YgJ3BzY3AnIHRvICdzc2ggbHMgLUZMYScgbGlrZQotICAgIGcvXkxpc3RpbmcgZGlyZWN0b3J5L2QKLSAgICBnL15kWy1yd3hdWy1yd3hdWy1yd3hdL3MrJCsvK2UKLSAgICBzaWxlbnQgZy9ebFstcnd4XVstcnd4XVstcnd4XS9zKyQrQCtlCisgICAga2VlcGogZy9eTGlzdGluZyBkaXJlY3Rvcnkva2VlcGogZAorICAgIGtlZXBqIGcvXmRbLXJ3eF1bLXJ3eF1bLXJ3eF0va2VlcGogcyskKy8rZQorICAgIHNpbCBrZWVwaiBnL15sWy1yd3hdWy1yd3hdWy1yd3hdL2tlZXBqIHMrJCtAK2UKICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBpZiBnOm5ldHJ3X2xpc3RzdHlsZSAhPSBzOkxPTkdMSVNUCi0gICAgIGcvXltkbHNwLV1bLXJ3eF1bLXJ3eF1bLXJ3eF0vcy9eLipcc1woXFNcK1wpJC9cMS9lCisgICAgIGtlZXBqIGcvXltkbHNwLV1bLXJ3eF1bLXJ3eF1bLXJ3eF0va2VlcGogcy9eLipcc1woXFNcK1wpJC9cMS9lCiAgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgZW5kaWYKICAgIGVsc2UKICAgICBpZiBzOnBhdGggPT0gIiIKICIgICAgIGNhbGwgRGVjaG8oIjI6IGV4ZSBzaWxlbnQgciEgIi5saXN0Y21kKQotICAgICBleGUgInNpbGVudCByISAiLmxpc3RjbWQKKyAgICAgZXhlICJzaWwgciEgIi5saXN0Y21kCiAgICAgZWxzZQogIiAgICAgY2FsbCBEZWNobygiMzogZXhlIHNpbGVudCByISAiLmxpc3RjbWQuJyAnLnNoZWxsZXNjYXBlKHM6cGF0aCwxKSkKLSAgICAgZXhlICJzaWxlbnQgciEgIi5saXN0Y21kLicgJy5zaGVsbGVzY2FwZShzOnBhdGgsMSkKKyAgICAgZXhlICJzaWwgciEgIi5saXN0Y21kLicgJy5zaGVsbGVzY2FwZShzOnBhdGgsMSkKICIgICAgIGNhbGwgRGVjaG8oImxpc3RjbWQ8Ii5saXN0Y21kLiI+IHBhdGg8Ii5zOnBhdGguIj4iKQogICAgIGVuZGlmCiAgICBlbmRpZgpAQCAtNjQ5Miw3ICs2NjYyLDcgQEAKICAgICIgY2xlYW51cAogICAgaWYgZzpuZXRyd19mdHBfYnJvd3NlX3JlamVjdCAhPSAiIgogIiAgICBjYWxsIERlY2hvKCIoY2xlYW51cCkgZXhlIHNpbGVudCEgZy8iLmc6bmV0cndfc3NoX2Jyb3dzZV9yZWplY3QuIi9rZWVwanVtcHMgZCIpCi0gICAgZXhlICJzaWxlbnQhIGcvIi5nOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0LiIva2VlcGp1bXBzIGQiCisgICAgZXhlICJzaWwhIGcvIi5nOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0LiIva2VlcGp1bXBzIGQiCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGVuZGlmCiAgIGVuZGlmCkBAIC02NTAzLDMzICs2NjczLDMzIEBACiAKICAgIGlmIHM6bWV0aG9kID09ICJmdHAiCiAgICAgIiBjbGVhbnVwCi0gICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudAorICAgIGV4ZSAia2VlcGogIi53Om5ldHJ3X2Jhbm5lcmNudAogICAgIHdoaWxlIGdldGxpbmUoJy4nKSA9fiBnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0Ci0gICAgIGtlZXBqdW1wcyBkCisgICAgIGtlZXBqIGQKICAgICBlbmR3aGlsZQogICAgICIgaWYgdGhlcmUncyBubyAuLi8gbGlzdGVkLCB0aGVuIHB1dCAuLyBhbmQgLi4vIGluCiAgICAgbGV0IGxpbmUxPSBsaW5lKCIuIikKLSAgICBrZWVwanVtcHMgMQotICAgIHNpbGVudCBrZWVwanVtcHMgY2FsbCBzZWFyY2goJ15cLlwuXC9cJShcc1x8JFwpJywnVycpCisgICAga2VlcGogMQorICAgIHNpbCBrZWVwaiBjYWxsIHNlYXJjaCgnXlwuXC5cL1wlKFxzXHwkXCknLCdXJykKICAgICBsZXQgbGluZTI9IGxpbmUoIi4iKQogICAgIGlmIGxpbmUyID09IDAKLSAgICAgZXhlICdrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4icHV0PScuLyciCisgICAgIGV4ZSAna2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudC4icHV0PScuLyciCiAgICAgIGlmIGI6bmV0cndfY3VyZGlyICE9ICcvJwotICAgICAgZXhlICdrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4icHV0PScuLi8nIgorICAgICAgZXhlICdrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LiJwdXQ9Jy4uLyciCiAgICAgIGVuZGlmCiAgICAgZW5kaWYKLSAgIGV4ZSAia2VlcGp1bXBzICIubGluZTEKKyAgIGV4ZSAia2VlcGogIi5saW5lMQogICAga2VlcGp1bXBzIG5vcm0hIDAKICAgIGVuZGlmCiAKICAgIGlmIHNlYXJjaCgnXlxkXHsyfS1cZFx7Mn0tXGRcezJ9XHMnLCduJykgIiBNJCBmdHAgc2l0ZSBjbGVhbnVwCiAiICAgIGNhbGwgRGVjaG8oIk0kIGZ0cCBzaXRlIGxpc3RpbmcgY2xlYW51cCIpCi0gICAgZXhlICdzaWxlbnQhIGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlwoXGRcezJ9LVxkXHsyfS1cZFx7Mn1cc1wrXGRcKzpcZFwrW0FhUHBdW01tXVxzXCtcJSg8RElSPlx8XGRcK1wpXHNcK1wpXChcdy4qXCkkL1wyXHRcMS8nCisgICAgZXhlICdzaWwhIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXChcZFx7Mn0tXGRcezJ9LVxkXHsyfVxzXCtcZFwrOlxkXCtbQWFQcF1bTW1dXHNcK1wlKDxESVI+XHxcZFwrXClcc1wrXClcKFx3LipcKSQvXDJcdFwxLycKICAgIGVsc2VpZiBleGlzdHMoInc6bmV0cndfYmFubmVyY250IikgJiYgdzpuZXRyd19iYW5uZXJjbnQgPD0gbGluZSgiJCIpCiAiICAgIGNhbGwgRGVjaG8oIm5vcm1hbCBmdHAgc2l0ZSBsaXN0aW5nIGNsZWFudXA6IGJhbm5lcmNudD0iLnc6bmV0cndfYmFubmVyY250LiIgbGluZSgkKT0iLmxpbmUoIiQiKSkKLSAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzLyAtPiAuKiQvL2UnCi0gICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXChcJShcU1wrXHNcK1wpXHs3fVxTXCtcKVxzXCtcKFxTLipcKSQvXDJcdFwxL2UnCi0gICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQKKyAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHMvIC0+IC4qJC8vZScKKyAgICBleGUgJ3NpbCBrZWVwaiAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlwoXCUoXFNcK1xzXCtcKVx7N31cU1wrXClcc1wrXChcUy4qXCkkL1wyXHRcMS9lJworICAgIGV4ZSAnc2lsIGtlZXBqICcudzpuZXRyd19iYW5uZXJjbnQKICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKQEAgLTY1MzcsNyArNjcwNyw3IEBACiAgIGVuZGlmCiAKICIgIGlmIGV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKSAmJiB3Om5ldHJ3X2Jhbm5lcmNudCA8PSBsaW5lKCIkIikgIiBEZWNobwotIiAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkZy9eLi9jYWxsIERlY2hvKCJsaXN0aW5nOiAiLmdldGxpbmUoIi4iKSknCisiICAgZXhlICJrZWVwaiAiLnc6bmV0cndfYmFubmVyY250LicsJGcvXi4vY2FsbCBEZWNobygibGlzdGluZzogIi5nZXRsaW5lKCIuIikpJwogIiAgZW5kaWYgIiBEZWNobwogIiAgY2FsbCBEcmV0KCJzOk5ldHJ3UmVtb3RlTGlzdGluZyIpCiBlbmRmdW4KQEAgLTY3MjksMTAgKzY4OTksMTAgQEAKICAgaWYgdzpuZXRyd19tZXRob2QgPT0gMiB8fCB3Om5ldHJ3X21ldGhvZCA9PSA1CiAgICAiIGZ0cCArIDwubmV0cmM+OiAgTWV0aG9kICMyCiAgICBpZiBhOnBhdGggIT0gIiIKLSAgICBwdXQgPSdjZCBcIicuYTpwYXRoLidcIicKKyAgICBrZWVwaiBwdXQgPSdjZCBcIicuYTpwYXRoLidcIicKICAgIGVuZGlmCiAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwZXh0cmFjbWQiKQotICAgIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAorICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgZW5kaWYKICAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSxhOmxpc3RjbWQpCkBAIC02NzUwLDI2ICs2OTIwLDI2IEBACiAgICAiIGZ0cCArIG1hY2hpbmUsaWQscGFzc3dkLGZpbGVuYW1lOiAgTWV0aG9kICMzCiAgICAgc2V0bG9jYWwgZmY9dW5peAogICAgIGlmIGV4aXN0cygiZzpuZXRyd19wb3J0IikgJiYgZzpuZXRyd19wb3J0ICE9ICIiCi0gICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydAorICAgICBrZWVwaiBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lLicgJy5nOm5ldHJ3X3BvcnQKICAgICBlbHNlCi0gICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUKKyAgICAga2VlcGogcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQogICAgIGVuZGlmCiAKICAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwIikgJiYgZzpuZXRyd19mdHAgPT0gMQotICAgICBwdXQgPWc6bmV0cndfdWlkCi0gICAgIHB1dCA9J1wiJy5zOm5ldHJ3X3Bhc3N3ZC4nXCInCisgICAgIGtlZXBqIHB1dCA9ZzpuZXRyd191aWQKKyAgICAga2VlcGogcHV0ID0nXCInLnM6bmV0cndfcGFzc3dkLidcIicKICAgICBlbHNlCi0gICAgIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJworICAgICBrZWVwaiBwdXQgPSd1c2VyIFwiJy5nOm5ldHJ3X3VpZC4nXCIgXCInLnM6bmV0cndfcGFzc3dkLidcIicKICAgICBlbmRpZgogCiAgICBpZiBhOnBhdGggIT0gIiIKLSAgICBwdXQgPSdjZCBcIicuYTpwYXRoLidcIicKKyAgICBrZWVwaiBwdXQgPSdjZCBcIicuYTpwYXRoLidcIicKICAgIGVuZGlmCiAgICBpZiBleGlzdHMoImc6bmV0cndfZnRwZXh0cmFjbWQiKQotICAgIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAorICAgIGtlZXBqIHB1dCA9ZzpuZXRyd19mdHBleHRyYWNtZAogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgZW5kaWYKLSAgIGNhbGwgc2V0bGluZShsaW5lKCIkIikrMSxhOmxpc3RjbWQpCisgICBrZWVwaiBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsYTpsaXN0Y21kKQogCiAgICAgIiBwZXJmb3JtIGZ0cDoKICAgICAiIC1pICAgICAgIDogdHVybnMgb2ZmIGludGVyYWN0aXZlIHByb21wdGluZyBmcm9tIGZ0cApAQCAtNjc4NiwyOSArNjk1NiwyOSBAQAogCiAgICIgY2xlYW51cCBmb3IgV2luZG93cwogICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKLSAgIHNpbGVudCEga2VlcGp1bXBzICVzL1xyJC8vZQorICAgc2lsISBrZWVwaiAlcy9cciQvL2UKICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgIGVuZGlmCiAgIGlmIGE6bGlzdGNtZCA9PSAiZGlyIgogICAgIiBpbmZlciBkaXJlY3RvcnkvbGluayBiYXNlZCBvbiB0aGUgZmlsZSBwZXJtaXNzaW9uIHN0cmluZwotICAgc2lsZW50ISBrZWVwanVtcHMgZy9kXCUoWy1yXVstd11bLXhdXClcezN9L3NAJEAvQAotICAgc2lsZW50ISBrZWVwanVtcHMgZy9sXCUoWy1yXVstd11bLXhdXClcezN9L3MvJC9ALworICAgc2lsISBrZWVwaiBnL2RcJShbLXJdWy13XVsteF1cKVx7M30va2VlcGogc0AkQC9ACisgICBzaWwhIGtlZXBqIGcvbFwlKFstcl1bLXddWy14XVwpXHszfS9rZWVwaiBzLyQvQC8KICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgaWYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUSElOTElTVCB8fCB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOldJREVMSVNUIHx8IHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QKLSAgICBleGUgInNpbGVudCEga2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXCUoXFNcK1xzXCtcKVx7OH0vL2UnCisgICAgZXhlICJzaWwhIGtlZXBqICIudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXCUoXFNcK1xzXCtcKVx7OH0vL2UnCiAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGVuZGlmCiAgIGVuZGlmCiAKICAgIiBmdHAncyBsaXN0aW5nIGRvZXNuJ3Qgc2VlbSB0byBpbmNsdWRlIC4vIG9yIC4uLwogICBpZiAhc2VhcmNoKCdeXC5cLyRcfFxzXC5cLyQnLCd3bicpCi0gICBleGUgJ2tlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250Ci0gICBwdXQgPScuLycKKyAgIGV4ZSAna2VlcGogJy53Om5ldHJ3X2Jhbm5lcmNudAorICAga2VlcGogcHV0ID0nLi8nCiAgIGVuZGlmCiAgIGlmICFzZWFyY2goJ15cLlwuXC8kXHxcc1wuXC5cLyQnLCd3bicpCi0gICBleGUgJ2tlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250Ci0gICBwdXQgPScuLi8nCisgICBleGUgJ2tlZXBqICcudzpuZXRyd19iYW5uZXJjbnQKKyAgIGtlZXBqIHB1dCA9Jy4uLycKICAgZW5kaWYKIAogICAiIHJlc3RvcmUgc2V0dGluZ3MKQEAgLTY4NjEsNyArNzAzMSw3IEBACiAKICAgIiBhdHRlbXB0IHRvIHJlbmFtZSBmaWxlcy9kaXJlY3RvcmllcwogICAgd2hpbGUgY3RyIDw9IGE6bGFzdGxpbmUKLSAgICBleGUgImtlZXBqdW1wcyAiLmN0cgorICAgIGV4ZSAia2VlcGogIi5jdHIKIAogICAgIGxldCBvbGRuYW1lPSBzOk5ldHJ3R2V0V29yZCgpCiAiICAgY2FsbCBEZWNobygib2xkbmFtZTwiLm9sZG5hbWUuIj4iKQpAQCAtNzA2MSw3ICs3MjMxLDcgQEAKICAgICBsZXQgZnQgPSBzdHJwYXJ0KCIwMDAwMDAwMDAwMDAwMDAwMDAiLDEsMTgtc3RybGVuKHQpKS50CiAiICAgIGNhbGwgRGVjaG8oImV4ZSBrZWVwanVtcHMgcHV0ID0nIi5mdC4nLycuZmlsZW5hbWUuIiciKQogICAgIGxldCBmdHBmaWxlPSBmdC4nLycucGZpbGUKLSAgICBrZWVwanVtcHMgc2lsZW50ISBwdXQ9ZnRwZmlsZQorICAgIHNpbCEga2VlcGogcHV0PWZ0cGZpbGUKIAogICAgZWxzZWlmIGc6bmV0cndfc29ydF9ieSA9fiAiXnMiCiAgICAgIiBzb3J0IGJ5IHNpemUgKGhhbmRsZXMgZmlsZSBzaXplcyB1cCB0byAxIHF1aW50aWxsaW9uIGJ5dGVzLCBVUykKQEAgLTcwNzAsMTggKzcyNDAsMTggQEAKICAgICBsZXQgZnN6ICA9IHN0cnBhcnQoIjAwMDAwMDAwMDAwMDAwMDAwMCIsMSwxOC1zdHJsZW4oc3opKS5zegogIiAgICBjYWxsIERlY2hvKCJleGUga2VlcGp1bXBzIHB1dCA9JyIuZnN6LicvJy5maWxlbmFtZS4iJyIpCiAgICAgbGV0IGZzenBmaWxlPSBmc3ouJy8nLnBmaWxlCi0gICAga2VlcGp1bXBzIHNpbGVudCEgcHV0ID1mc3pwZmlsZQorICAgIHNpbCEga2VlcGogcHV0ID1mc3pwZmlsZQogCiAgICBlbHNlCiAgICAgIiBzb3J0IGJ5IG5hbWUKICIgICAgY2FsbCBEZWNobygiZXhlIGtlZXBqdW1wcyBwdXQgPSciLnBmaWxlLiInIikKLSAgICBrZWVwanVtcHMgc2lsZW50ISBwdXQ9cGZpbGUKKyAgICBzaWwhIGtlZXBqIHB1dD1wZmlsZQogICAgZW5kaWYKICAgZW5kd2hpbGUKIAogICAiIGNsZWFudXAgYW55IHdpbmRvd3MgbWVzcyBhdCBlbmQtb2YtbGluZQotICBzaWxlbnQhIGtlZXBqdW1wcyBnL14kL2QKLSAgc2lsZW50ISBrZWVwanVtcHMgJXMvXHIkLy9lCisgIHNpbCEga2VlcGogZy9eJC9kCisgIHNpbCEga2VlcGogJXMvXHIkLy9lCiAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgIGV4ZSAic2V0bG9jYWwgdHM9Ii5nOm5ldHJ3X21heGZpbGVuYW1lbGVuCiAiICBjYWxsIERlY2hvKCJzZXRsb2NhbCB0cz0iLmc6bmV0cndfbWF4ZmlsZW5hbWVsZW4pCkBAIC03MTMyLDcgKzczMDIsNyBAQAogICAgaWYgYnVmd2lubnIoaWJ1ZikgPT0gLTEgJiYgaW5kZXgoYnVmdGFibGlzdCxpYnVmKSA9PSAtMQogICAgICIgd2lwZSBvdXQgYW55IG5vbi1kaXNwbGF5aW5nIG5ldHJ3IGJ1ZmZlcgogIiAgICBjYWxsIERlY2hvKCJ3aXBpbmcgIGJ1ZiMiLmlidWYsIjwiLmJ1Zm5hbWUoaWJ1ZikuIj4iKQotICAgIGV4ZSAic2lsZW50ISBiZCAiLmZuYW1lZXNjYXBlKGlidWYpCisgICAgZXhlICJzaWwhIGJkICIuZm5hbWVlc2NhcGUoaWJ1ZikKICAgICBjYWxsIHJlbW92ZShzOm5ldHJ3X2Jyb3dzZWxpc3QsaWJsKQogIiAgICBjYWxsIERlY2hvKCJicm93c2VsaXN0PSIuc3RyaW5nKHM6bmV0cndfYnJvd3NlbGlzdCkpCiAgICAgY29udGludWUKQEAgLTcxNzksNyArNzM0OSw3IEBACiAKICAgIGxldCBjdHIgPSBhOmZpcnN0bGluZQogICAgd2hpbGUgY3RyIDw9IGE6bGFzdGxpbmUKLSAgICBleGUgImtlZXBqdW1wcyAiLmN0cgorICAgIGV4ZSAia2VlcGogIi5jdHIKIAogICAgICIgc2FuaXR5IGNoZWNrcwogICAgIGlmIGxpbmUoIi4iKSA8IHc6bmV0cndfYmFubmVyY250CkBAIC03MjE5LDcgKzczODksNyBAQAogICAKICAgbGV0IGFsbD0gYTphbGwKICAgbGV0IG9rID0gIiIKLSAgbm9ybSEgMAorICBrZWVwaiBub3JtISAwCiAgIGxldCBybWZpbGU9IHM6Q29tcG9zZVBhdGgoYTpwYXRoLGE6Zm5hbWUpCiAiICBjYWxsIERlY2hvKCJybWZpbGU8Ii5ybWZpbGUuIj4iKQogCkBAIC03MzMxLDcgKzc1MDEsNyBAQAogCiAgICAiIGF0dGVtcHQgdG8gcmVuYW1lIGZpbGVzL2RpcmVjdG9yaWVzCiAgICB3aGlsZSBjdHIgPD0gYTpsYXN0bGluZQotICAgIGV4ZSAia2VlcGp1bXBzICIuY3RyCisgICAgZXhlICJrZWVwaiAiLmN0cgogCiAgICAgIiBzYW5pdHkgY2hlY2tzCiAgICAgaWYgbGluZSgiLiIpIDwgdzpuZXRyd19iYW5uZXJjbnQKQEAgLTczNDQsNyArNzUxNCw3IEBACiAgICAgIGNvbnRpbnVlCiAgICAgZW5kaWYKIAotICAgIG5vcm0hIDAKKyAgICBrZWVwaiBub3JtISAwCiAgICAgbGV0IG9sZG5hbWU9IHM6Q29tcG9zZVBhdGgoYTpwYXRoLGN1cndvcmQpCiAiICAgY2FsbCBEZWNobygib2xkbmFtZTwiLm9sZG5hbWUuIj4iKQogCkBAIC03NDY0LDcgKzc2MzQsNyBAQAogIiAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBtYSBub3JvIikKICAgICBzZXRsb2NhbCBtYSBub3JvCiAgICAgY2FsbCBzZXRsaW5lKGxpbmUoIiQiKSsxLGxldmVsLmE6bXNnKQotICAgICQKKyAgICBrZWVwaiAkCiAgICBlbHNlCiAiICAgIGNhbGwgRGVjaG8oImNyZWF0ZSBhIE5ldHJ3TWVzc2FnZSBidWZmZXIgd2luZG93IikKICAgICBibyAxc3BsaXQKQEAgLTc1MjEsNyArNzY5MSw3IEBACiAgICIgcmVzdG9yZSB3aW5kb3cKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X3dpbm5yIikKICIgICBjYWxsIERlY2hvKCJyZXN0b3JlIHdpbmRvdzogZXhlIHNpbGVudCEgIi53Om5ldHJ3X3dpbm5yLiJ3aW5jbWQgdyIpCi0gICBleGUgInNpbGVudCEgIi53Om5ldHJ3X3dpbm5yLiJ3aW5jbWQgdyIKKyAgIGV4ZSAic2lsISAiLnc6bmV0cndfd2lubnIuIndpbmNtZCB3IgogICBlbmRpZgogICBpZiB2OnNoZWxsX2Vycm9yID09IDAKICAgICIgYXMgc3VnZ2VzdGVkIGJ5IEJyYW0gTTogcmVkcmF3IG9uIG5vIGVycm9yCkBAIC03NTMyLDEzICs3NzAyLDEzIEBACiAgICIgcmVzdG9yZSB0b3Atb2Ytc2NyZWVuIGxpbmUKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2hsaW5lIikKICIgICBjYWxsIERlY2hvKCJyZXN0b3JlIHRvcG9mc2NyZWVuOiBleGUgbm9ybSEgIi53Om5ldHJ3X2hsaW5lLiJHMHoiKQotICAgZXhlICJub3JtISAiLnc6bmV0cndfaGxpbmUuIkcwelw8Q1I+IgorICAgZXhlICJrZWVwaiBub3JtISAiLnc6bmV0cndfaGxpbmUuIkcwelw8Q1I+IgogICBlbmRpZgogCiAgICIgcmVzdG9yZSBwb3NpdGlvbgogICBpZiBleGlzdHMoInc6bmV0cndfbGluZSIpICYmIGV4aXN0cygidzpuZXRyd19jb2wiKQogIiAgIGNhbGwgRGVjaG8oInJlc3RvcmUgcG9zbjogZXhlIG5vcm0hICIudzpuZXRyd19saW5lLiJHMCIudzpuZXRyd19jb2wuInwiKQotICAgZXhlICJub3JtISAiLnc6bmV0cndfbGluZS4iRzAiLnc6bmV0cndfY29sLiJcPGJhcj4iCisgICBleGUgImtlZXBqIG5vcm0hICIudzpuZXRyd19saW5lLiJHMCIudzpuZXRyd19jb2wuIlw8YmFyPiIKICAgZW5kaWYKIAogICBsZXQgJmVpPSBlaWtlZXAKQEAgLTc1NTYsNyArNzcyNiw3IEBACiAiICBjYWxsIERlY2hvKCJjdXJyZW50bHksIHdpbiMiLnc6bmV0cndfd2lubnIuIiBsaW5lIyIudzpuZXRyd19saW5lLiIgY29sIyIudzpuZXRyd19jb2wpCiAKICAgIiBTYXZlIHRvcC1vZi1zY3JlZW4gbGluZQotICBub3JtISBIMAorICBrZWVwaiBub3JtISBIMAogICBsZXQgdzpuZXRyd19obGluZT0gbGluZSgiLiIpCiAKICAgIiBzZXQgdXAgc3RyaW5nIGhvbGRpbmcgcG9zaXRpb24gcGFyYW1ldGVycwpAQCAtNzc0Nyw3ICs3OTE3LDcgQEAKICAgIGlmIGJtc2hvd2Z1bmNzICE9IFtdCiAgICAgbGV0IGJtc2hvd2Z1bmMgPSBzdWJzdGl0dXRlKGJtc2hvd2Z1bmNzWzBdLCdeLio6XChjYWxsLipCTVNob3coKVwpLiokJywnXDEnLCcnKQogICAgIGlmIGJtc2hvd2Z1bmMgPX4gJ15jYWxsLipCTVNob3coKScKLSAgICAgZXhlICJzaWxlbnQhICIuYm1zaG93ZnVuYworICAgICBleGUgInNpbCEgIi5ibXNob3dmdW5jCiAgICAgZW5kaWYKICAgIGVuZGlmCiAgIGVuZGlmCkBAIC03NzU1LDYgKzc5MjUsNDcgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBzOk5ldHJ3Q3Vyc29ybGluZToge3t7MgorZnVuISBzOk5ldHJ3Q3Vyc29ybGluZSgpCisgIGlmICFleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikKKyAgIGxldCB3Om5ldHJ3X2xpc3RzdHlsZT0gZzpuZXRyd19saXN0c3R5bGUKKyAgZW5kaWYKKyIgIGNhbGwgRGZ1bmMoInM6TmV0cndDdXJzb3JsaW5lKCkgbGlzdHN0eWxlPSIudzpuZXRyd19saXN0c3R5bGUuIiBnOm5ldHJ3X2N1cnNvcmxpbmU9Ii5nOm5ldHJ3X2N1cnNvcmxpbmUuIiBzOm5ldHJ3X3VzZXJjdWM9Ii5zOm5ldHJ3X3VzZXJjdWMuIiBzOm5ldHJ3X3VzZXJjdWw9Ii5zOm5ldHJ3X3VzZXJjdWwpCisgICIKKyAgaWYgdzpuZXRyd19saXN0c3R5bGUgIT0gczpXSURFTElTVAorICAgIiB0aGluLWxvbmctdHJlZSBsaXN0aW5ncworICAgaWYgZzpuZXRyd19jdXJzb3JsaW5lID09IDIKKyAgICBzZXRsb2NhbCBjdXJzb3JsaW5lCisgICAgbGV0ICZsOmN1cnNvcmNvbHVtbj0gczpuZXRyd191c2VyY3VjCisiICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIGN1cnNvcmxpbmUgIChjdXJzb3Jjb2x1bW4gaXMgIi4oKHM6bmV0cndfdXNlcmN1Yyk/ICJvbiIgOiAib2ZmIikuIikiKQorICAgZWxzZWlmIGc6bmV0cndfY3Vyc29ybGluZQorICAgIHNldGxvY2FsIGN1cnNvcmxpbmUKKyIgICAgY2FsbCBEZWNobygic2V0bG9jYWwgY3Vyc29ybGluZSIpCisgICBlbmRpZgorCisgIGVsc2UKKyAgICIgd2lkZSBsaXN0aW5ncworICAgaWYgZzpuZXRyd19jdXJzb3JsaW5lID09IDIKKyAgICBzZXRsb2NhbCBjdXJzb3JsaW5lIGN1cnNvcmNvbHVtbgorIiAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBjdXJzb3JsaW5lIGN1cnNvcmNvbHVtbiIpCisgICBlbHNlaWYgZzpuZXRyd19jdXJzb3JsaW5lCisgICAgbGV0ICZsOmN1cnNvcmxpbmU9IHM6bmV0cndfdXNlcmN1bAorIiAgICBjYWxsIERlY2hvKCJjdXJzb3JsaW5lIGlzICIuKChzOm5ldHJ3X3VzZXJjdWwpPyAib24iIDogIm9mZiIpLiIpIikKKyAgIGVuZGlmCisgIGVuZGlmCisiICBjYWxsIERyZXQoInM6TmV0cndDdXJzb3JsaW5lIDogbDpjdXJzb3JsaW5lPSIuJmw6Y3Vyc29ybGluZS4iIGw6Y3Vyc29yY29sdW1uPSIuJmw6Y3Vyc29yY29sdW1uKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6UmVzdG9yZUN1cnNvcmxpbmU6IHJlc3RvcmVzIGN1cnNvcmxpbmUvY3Vyc29yY29sdW1uIHRvIG9yaWdpbmFsIHVzZXIgc2V0dGluZ3Mge3t7MgorZnVuISBzOlJlc3RvcmVDdXJzb3JsaW5lKCkKKyIgIGNhbGwgRGZ1bmMoInM6UmVzdG9yZUN1cnNvcmxpbmUoKSBjdXJyZW50bHksIGN1bD0iLiZsOmN1cnNvcmxpbmUuIiBjdWM9Ii4mbDpjdXJzb3Jjb2x1bW4uIiB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKSkKKyAgbGV0ICZsOmN1cnNvcmxpbmUgICA9IHM6bmV0cndfdXNlcmN1bAorICBsZXQgJmw6Y3Vyc29yY29sdW1uID0gczpuZXRyd191c2VyY3VjCisiICBjYWxsIERyZXQoInM6UmVzdG9yZUN1cnNvcmxpbmUgOiByZXN0b3JlZCBjdWw9Ii4mbDpjdXJzb3JsaW5lLiIgY3VjPSIuJmw6Y3Vyc29yY29sdW1uKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6TmV0cndEZWxldGU6IERlbGV0ZXMgYSBmaWxlLiB7e3syCiAiICAgICAgICAgICBVc2VzIFN0ZXZlIEhhbGwncyBpZGVhIHRvIGluc3VyZSB0aGF0IFdpbmRvd3MgcGF0aHMgc3RheQogIiAgICAgICAgICAgYWNjZXB0YWJsZS4gIE5vIGVmZmVjdCBvbiBVbml4IHBhdGhzLgpAQCAtNzc4OCwxMCArNzk5OSwxMSBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpOZXRyd0VuZXc6IG9wZW5zIGEgbmV3IGJ1ZmZlciwgcGFzc2VzIG5ldHJ3IGJ1ZmZlciB2YXJpYWJsZXMgdGhyb3VnaCB7e3syCiBmdW4hIHM6TmV0cndFbmV3KC4uLikKLSIgIGNhbGwgRGZ1bmMoInM6TmV0cndFbmV3KCkgYTowPSIuYTowKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0VuZXcoKSBhOjA9Ii5hOjAuIiBidWZucigkKT0iLmJ1Zm5yKCIkIikpCiAiICBjYWxsIERlY2hvKCJjdXJkaXI8Ii4oKGE6MD4wKT8gYToxIDogIiIpLiI+IGJ1ZiMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoIiUiKS4iPiIpCiAKICAgIiBncmFiIGEgZnVuY3Rpb24tbG9jYWwtdmFyaWFibGUgY29weSBvZiBidWZmZXIgdmFyaWFibGVzCisiICBjYWxsIERlY2hvKCJtYWtlIGZ1bmN0aW9uLWxvY2FsIGNvcHkgb2YgbmV0cncgdmFyaWFibGVzIikKICAgaWYgZXhpc3RzKCJiOm5ldHJ3X2Jhbm5lcmNudCIpICAgICAgfGxldCBuZXRyd19iYW5uZXJjbnQgICAgICAgPSBiOm5ldHJ3X2Jhbm5lcmNudCAgICAgIHxlbmRpZgogICBpZiBleGlzdHMoImI6bmV0cndfYnJvd3Nlcl9hY3RpdmUiKSB8bGV0IG5ldHJ3X2Jyb3dzZXJfYWN0aXZlICA9IGI6bmV0cndfYnJvd3Nlcl9hY3RpdmUgfGVuZGlmCiAgIGlmIGV4aXN0cygiYjpuZXRyd19jcGYiKSAgICAgICAgICAgIHxsZXQgbmV0cndfY3BmICAgICAgICAgICAgID0gYjpuZXRyd19jcGYgICAgICAgICAgICB8ZW5kaWYKQEAgLTc4MTEsMTAgKzgwMjMsMTIgQEAKIAogICBjYWxsIHM6TmV0cndPcHRpb25SZXN0b3JlKCJ3OiIpCiAiICBjYWxsIERlY2hvKCJnZW5lcmF0ZSBhIGJ1ZmZlciB3aXRoIGtlZXBqdW1wcyBrZWVwYWx0IGVuZXchIikKLSAga2VlcGp1bXBzIGtlZXBhbHQgZW5ldyEKKyAga2VlcGoga2VlcGFsdCBlbmV3IQorIiAgY2FsbCBEZWNobygiYnVmbnIoJCk9Ii5idWZucigiJCIpKQogICBjYWxsIHM6TmV0cndPcHRpb25TYXZlKCJ3OiIpCiAKICAgIiBjb3B5IGZ1bmN0aW9uLWxvY2FsLXZhcmlhYmxlcyB0byBidWZmZXIgdmFyaWFibGUgZXF1aXZhbGVudHMKKyIgIGNhbGwgRGVjaG8oImNvcHkgZnVuY3Rpb24tbG9jYWwgdmFyaWFibGVzIGJhY2sgdG8gYnVmZmVyIG5ldHJ3IHZhcmlhYmxlcyIpCiAgIGlmIGV4aXN0cygibmV0cndfYmFubmVyY250IikgICAgICB8bGV0IGI6bmV0cndfYmFubmVyY250ICAgICAgID0gbmV0cndfYmFubmVyY250ICAgICAgfGVuZGlmCiAgIGlmIGV4aXN0cygibmV0cndfYnJvd3Nlcl9hY3RpdmUiKSB8bGV0IGI6bmV0cndfYnJvd3Nlcl9hY3RpdmUgID0gbmV0cndfYnJvd3Nlcl9hY3RpdmUgfGVuZGlmCiAgIGlmIGV4aXN0cygibmV0cndfY3BmIikgICAgICAgICAgICB8bGV0IGI6bmV0cndfY3BmICAgICAgICAgICAgID0gbmV0cndfY3BmICAgICAgICAgICAgfGVuZGlmCkBAIC03ODM3LDEwICs4MDUxLDExIEBACiAgICBpZiBiOm5ldHJ3X2N1cmRpciA9fiAnLyQnCiAgICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QKICAgICAgZmlsZSBOZXRyd1RyZWVMaXN0aW5nCisgICAgIHNldCBidD1ub3dyaXRlIG5vc3dmCiAgICAgIG5ubyA8c2lsZW50PiA8YnVmZmVyPiBbCTpzaWxlbnQgY2FsbCA8U0lEPlRyZWVMaXN0TW92ZSgnWycpPGNyPgogICAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KICAgICBlbHNlCi0gICAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShiOm5ldHJ3X2N1cmRpcikKKyAgICAgZXhlICJzaWwhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKQogICAgIGVuZGlmCiAgICBlbmRpZgogICBlbmRpZgpAQCAtODA5NSwxMCArODMxMCwxMCBAQAogICAgIiBwcmVjZWRlZCBieSBsYW0sIG9uZSBvdGhlcndpc2UsIGV0Yy4pCiAgICAiIChjb21tZW50IGZyb20gVE0sIHNvbHV0aW9uIGZyb20gbWUpCiAgICBsZXQgbW9ka2VlcD0gJm1vZAotICAgZXhlICJub3JtISBvXDxlc2M+IgorICAgZXhlICJrZWVwaiBub3JtISBvXDxlc2M+IgogICAgY2FsbCBzZXRsaW5lKGxpbmUoIi4iKSxhOngpCiAgICBsZXQgcmV0PSB2aXJ0Y29sKCIkIikgLSAxCi0gICBkCisgICBrZWVwaiBkCiAgICBsZXQgJm1vZD0gbW9ka2VlcAogCiAgIGVsc2UKQEAgLTgxMjcsMTcgKzgzNDIsMTcgQEAKICAgaWYgY3VybGluZSAhfiAnLyQnCiAiICAgY2FsbCBEZWNobygncmVnZmlsZScpCiAgICBpZiAgICAgYTpkaXIgPT0gJ1snICYmIHBydmxpbmUgIT0gJycKLSAgICBub3JtISAwCisgICAga2VlcGogbm9ybSEgMAogICAgIGxldCBubCA9IHNlYXJjaCgnXicuaW5kZW50bTEuJ1tefF0nLCdiV2UnKSAgICAiIHNlYXJjaCBiYWNrd2FyZHMgZnJvbSByZWd1bGFyIGZpbGUKICIgICAgY2FsbCBEZWNobygicmVnZmlsZSBzcmNoIGJhY2s6ICIubmwpCiAgICBlbHNlaWYgYTpkaXIgPT0gJ10nICYmIG54dGxpbmUgIT0gJycKLSAgICBub3JtISAkCisgICAga2VlcGogbm9ybSEgJAogICAgIGxldCBubCA9IHNlYXJjaCgnXicuaW5kZW50bTEuJ1tefF0nLCdXZScpICAgICAiIHNlYXJjaCBmb3J3YXJkcyBmcm9tIHJlZ3VsYXIgZmlsZQogIiAgICBjYWxsIERlY2hvKCJyZWdmaWxlIHNyY2ggZndkOiAiLm5sKQogICAgZW5kaWYKIAogICBlbHNlaWYgYTpkaXIgPT0gJ1snICYmIHBydmxpbmUgIT0gJycKLSAgIG5vcm0hIDAKKyAgIGtlZXBqIG5vcm0hIDAKICAgIGxldCBjdXJsaW5lPSBsaW5lKCIuIikKICAgIGxldCBubCAgICAgPSBzZWFyY2goJ14nLmN1cmluZGVudC4nW158XScsJ2JXZScpICIgc2VhcmNoIGJhY2t3YXJkcyBGcm9tIGRpcmVjdG9yeSwgc2FtZSBpbmRlbnRhdGlvbgogIiAgIGNhbGwgRGVjaG8oImRpciBzcmNoIGJhY2sgaW5kOiAiLm5sKQpAQCAtODE0OSw3ICs4MzY0LDcgQEAKICAgIGVuZGlmCiAKICAgZWxzZWlmIGE6ZGlyID09ICddJyAmJiBueHRsaW5lICE9ICcnCi0gICBub3JtISAkCisgICBrZWVwaiBub3JtISAkCiAgICBsZXQgY3VybGluZSA9IGxpbmUoIi4iKQogICAgbGV0IG5sICAgICAgPSBzZWFyY2goJ14nLmN1cmluZGVudC4nW158XScsJ1dlJykgIiBzZWFyY2ggZm9yd2FyZHMgZnJvbSBkaXJlY3RvcnksIHNhbWUgaW5kZW50YXRpb24KICIgICBjYWxsIERlY2hvKCJkaXIgc3JjaCBmd2QgaW5kOiAiLm5sKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9zcWxjb21wbGV0ZS52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3NxbGNvbXBsZXRlLnZpbQppbmRleCBhYWU5MmU2Li4yZDg4ODYyIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3NxbGNvbXBsZXRlLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3NxbGNvbXBsZXRlLnZpbQpAQCAtMSwxNCArMSwyMyBAQAogIiBWaW0gT01OSSBjb21wbGV0aW9uIHNjcmlwdCBmb3IgU1FMCiAiIExhbmd1YWdlOiAgICBTUUwKICIgTWFpbnRhaW5lcjogIERhdmlkIEZpc2hidXJuIDxkZmlzaGJ1cm4gZG90IHZpbSBhdCBnbWFpbCBkb3QgY29tPgotIiBWZXJzaW9uOiAgICAgNy4wCi0iIExhc3QgQ2hhbmdlOiAyMDA5IEphbiAwNAorIiBWZXJzaW9uOiAgICAgOS4wCisiIExhc3QgQ2hhbmdlOiAyMDEwIEFwciAyMAogIiBVc2FnZTogICAgICAgRm9yIGRldGFpbGVkIGhlbHAKICIgICAgICAgICAgICAgICI6aGVscCBzcWwudHh0IiAKICIgICAgICAgICAgICAgIG9yICI6aGVscCBmdC1zcWwtb21uaSIgCiAiICAgICAgICAgICAgICBvciByZWFkICRWSU1SVU5USU1FL2RvYy9zcWwudHh0CiAKICIgSGlzdG9yeQorIiBWZXJzaW9uIDkuMAorIiAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyBzb21lIG9mIHRoZSBzdXBwb3J0IGZvciB0YWJsZXMgd2l0aCBzcGFjZXMgaW4gdGhlaXIKKyIgICAgIG5hbWVzIGluIG9yZGVyIHRvIHNpbXBsaWZ5IHRoZSByZWdleGVzIHVzZWQgdG8gcHVsbCBvdXQgcXVlcnkgdGFibGUgCisiICAgICBhbGlhc2VzIGZvciBtb3JlIHJvYnVzdCB0YWJsZSBuYW1lIGFuZCBjb2x1bW4gbmFtZSBjb2RlIGNvbXBsZXRpb24uCisiICAgICBGdWxsIHN1cHBvcnQgZm9yICJ0YWJsZSBuYW1lcyB3aXRoIHNwYWNlcyIgY2FuIGJlIGFkZGVkIGluIGFnYWluCisiICAgICBhZnRlciA3LjMuCisiIFZlcnNpb24gOC4wCisiICAgICBJbmNvcnJlY3RseSByZS1leGVjdXRlZCB0aGUgZzpmdHBsdWdpbl9zcWxfb21uaV9rZXlfcmlnaHQgYW5kIGc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5X2xlZnQgCisiICAgICB3aGVuIGRyaWxsaW5nIGluIGFuZCBvdXQgb2YgYSBjb2x1bW4gbGlzdCBmb3IgYSB0YWJsZS4KICIgVmVyc2lvbiA3LjAKICIgICAgIEJldHRlciBoYW5kbGluZyBvZiBvYmplY3QgbmFtZXMKICIgVmVyc2lvbiA2LjAKQEAgLTI1MCw3ICsyNTksNyBAQAogICAgICAgICAgICAgIiAgICAxLiAgQ2hlY2sgaWYgdGhlIGRiZXh0IHBsdWdpbiBoYXMgdGhlIG9wdGlvbiB0dXJuZWQKICAgICAgICAgICAgICIgICAgICAgIG9uIHRvIGV2ZW4gYWxsb3cgb3duZXJzCiAgICAgICAgICAgICAiICAgIDIuICBCYXNlZCBvbiAxLCBpZiB0aGUgdXNlciBpcyBzaG93aW5nIGEgdGFibGUgbGlzdAotICAgICAgICAgICAgIiAgICAgICAgYW5kIHRoZSBEcmlsbEludG9UYWJsZSAodXNpbmcgPEMtUmlnaHQ+KSB0aGVuIAorICAgICAgICAgICAgIiAgICAgICAgYW5kIHRoZSBEcmlsbEludG9UYWJsZSAodXNpbmcgPFJpZ2h0PikgdGhlbiAKICAgICAgICAgICAgICIgICAgICAgIHRoaXMgd2lsbCBiZSBvd25lci50YWJsZS4gIEluIHRoaXMgY2FzZSwgd2UgY2FuCiAgICAgICAgICAgICAiICAgICAgICBjaGVjayB0byBzZWUgdGhlIHRhYmxlLmNvbHVtbiBleGlzdHMgaW4gdGhlIAogICAgICAgICAgICAgIiAgICAgICAgY2FjaGVkIHRhYmxlIGxpc3QuICBJZiBpdCBkb2VzLCB0aGVuIHdlIGhhdmUKQEAgLTM5MCwxMyArMzk5LDE0IEBACiAgICAgICAgIGNhbGwgc3FsY29tcGxldGUjTWFwKCdjb2x1bW4nKQogICAgICAgICAiIEMtWSwgbWFrZXMgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBlbnRyeSBhY3RpdmUKICAgICAgICAgIiBhbmQgdHJpZ2dlciB0aGUgb21uaSBwb3B1cCB0byBiZSByZWRpc3BsYXllZAotICAgICAgICBjYWxsIGZlZWRrZXlzKCJcPEMtWT5cPEMtWD5cPEMtTz4iKQorICAgICAgICBjYWxsIGZlZWRrZXlzKCJcPEMtWT5cPEMtWD5cPEMtTz4iLCAnbicpCiAgICAgZWxzZQotICAgICAgICBpZiBoYXMoJ3dpbjMyJykKLSAgICAgICAgICAgICIgSWYgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCBzaW1wbGUgcGVyZm9ybSB0aGUgbm9ybWFsCi0gICAgICAgICAgICAiIDxDLVJpZ2h0PiBiZWhhdmlvdXIKLSAgICAgICAgICAgIGV4ZWMgIm5vcm1hbCEgXDxDLVJpZ2h0PiIKLSAgICAgICAgZW5kaWYKKwkiIElmIHRoZSBwb3B1cCBpcyBub3QgdmlzaWJsZSwgc2ltcGxlIHBlcmZvcm0gdGhlIG5vcm1hbAorCSIga2V5IGJlaGF2aW91ci4KKwkiIE11c3QgdXNlIGV4ZWMgc2luY2UgdGhleSBrZXkgbXVzdCBiZSBwcmVjZWVkZWQgYnkgIlwiCisJIiBvciBmZWVka2V5cyB3aWxsIHNpbXBseSBwdXNoIGVhY2ggY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcgCisJIiByYXRoZXIgdGhhbiB0aGUgImtleSBwcmVzcyIuCisgICAgICAgIGV4ZWMgJ2NhbGwgZmVlZGtleXMoIlwnLmc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5X3JpZ2h0LiciLCAibiIpJwogICAgIGVuZGlmCiAgICAgcmV0dXJuICIiCiBlbmRmdW5jdGlvbgpAQCAtNDA4LDExICs0MTgsMTIgQEAKICAgICAgICAgIiBUcmlnZ2VyIHRoZSBvbW5pIHBvcHVwIHRvIGJlIHJlZGlzcGxheWVkCiAgICAgICAgIGNhbGwgZmVlZGtleXMoIlw8Qy1YPlw8Qy1PPiIpCiAgICAgZWxzZQotICAgICAgICBpZiBoYXMoJ3dpbjMyJykKLSAgICAgICAgICAgICIgSWYgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCBzaW1wbGUgcGVyZm9ybSB0aGUgbm9ybWFsCi0gICAgICAgICAgICAiIDxDLUxlZnQ+IGJlaGF2aW91cgotICAgICAgICAgICAgZXhlYyAibm9ybWFsISBcPEMtTGVmdD4iCi0gICAgICAgIGVuZGlmCisJIiBJZiB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHNpbXBsZSBwZXJmb3JtIHRoZSBub3JtYWwKKwkiIGtleSBiZWhhdmlvdXIuCisJIiBNdXN0IHVzZSBleGVjIHNpbmNlIHRoZXkga2V5IG11c3QgYmUgcHJlY2VlZGVkIGJ5ICJcIgorCSIgb3IgZmVlZGtleXMgd2lsbCBzaW1wbHkgcHVzaCBlYWNoIGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nIAorCSIgcmF0aGVyIHRoYW4gdGhlICJrZXkgcHJlc3MiLgorICAgICAgICBleGVjICdjYWxsIGZlZWRrZXlzKCJcJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleV9sZWZ0LiciLCAibiIpJwogICAgIGVuZGlmCiAgICAgcmV0dXJuICIiCiBlbmRmdW5jdGlvbgpAQCAtNjA5LDcgKzYyMCw3IEBACiAgICAgICAgICAiIFNlYXJjaCBiYWNrd2FyZHMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RhdGVtZW50CiAgICAgICAgICAiIGFuZCBkbyBOT1Qgd3JhcAogICAgICAgICAgIiBleGVjICdzaWxlbnQhIG5vcm1hbCEgdj9cPFwoc2VsZWN0XHx1cGRhdGVcfGRlbGV0ZVx8O1wpXD4nLiJcbiIuJyJ5eScKLSAgICAgICAgIGV4ZWMgJ3NpbGVudCEgbm9ybWFsISA/XDxcKHNlbGVjdFx8dXBkYXRlXHxkZWxldGVcfDtcKVw+Jy4iXG4iCisgICAgICAgICBleGVjICdzaWxlbnQhIG5vcm1hbCEgP1w8XGNcKHNlbGVjdFx8dXBkYXRlXHxkZWxldGVcfDtcKVw+Jy4iXG4iCiAKICAgICAgICAgICIgU3RhcnQgY2hhcmFjdGVyd2lzZSB2aXN1YWwgbW9kZQogICAgICAgICAgIiBBZHZhbmNlIHJpZ2h0IG9uZSBjaGFyYWN0ZXIKQEAgLTYxOCwyNyArNjI5LDM4IEBACiAgICAgICAgICAiICAgICAyLiAgQSA7IGF0IHRoZSBlbmQgb2YgYSBsaW5lICh0aGUgZGVsaW1pdGVyKQogICAgICAgICAgIiAgICAgMy4gIFRoZSBlbmQgb2YgdGhlIGZpbGUgKGluY2FzZSBubyBkZWxpbWl0ZXIpCiAgICAgICAgICAiIFlhbmsgdGhlIHZpc3VhbGx5IHNlbGVjdGVkIHRleHQgaW50byB0aGUgInkgcmVnaXN0ZXIuCi0gICAgICAgICBleGVjICdzaWxlbnQhIG5vcm1hbCEgdmwvXChcPHNlbGVjdFw+XHxcPHVwZGF0ZVw+XHxcPGRlbGV0ZVw+XHw7XHMqJFx8XCUkXCknLiJcbiIuJyJ5eScKKyAgICAgICAgIGV4ZWMgJ3NpbGVudCEgbm9ybWFsISB2bC9cY1woXDxzZWxlY3RcPlx8XDx1cGRhdGVcPlx8XDxkZWxldGVcPlx8O1xzKiRcfFwlJFwpJy4iXG4iLicieXknCiAKICAgICAgICAgIGxldCBxdWVyeSA9IEB5CiAgICAgICAgICBsZXQgcXVlcnkgPSBzdWJzdGl0dXRlKHF1ZXJ5LCAiXG4iLCAnICcsICdnJykKICAgICAgICAgIGxldCBmb3VuZCA9IDAKIAotICAgICAgICAgIiBpZiBxdWVyeSA9fj8gJ15cKHNlbGVjdFx8dXBkYXRlXHxkZWxldGVcKScKLSAgICAgICAgIGlmIHF1ZXJ5ID1+PyAnXlwoc2VsZWN0XCknCisgICAgICAgICAiIGlmIHF1ZXJ5ID1+PyAnXlxjXChzZWxlY3RcKScKKyAgICAgICAgIGlmIHF1ZXJ5ID1+PyAnXlwoc2VsZWN0XHx1cGRhdGVcfGRlbGV0ZVwpJwogICAgICAgICAgICAgIGxldCBmb3VuZCA9IDEKICAgICAgICAgICAgICAiICBcKFwoXDxcd1wrXD5cKVwuXClcPyAgIC0gCi0gICAgICAgICAgICAgIiAnZnJvbS5cey19JyAgLSBTdGFydGluZyBhdCB0aGUgZnJvbSBjbGF1c2UKKyAgICAgICAgICAgICAiICdcY1woZnJvbVx8am9pblx8LFwpLlx7LX0nICAtIFN0YXJ0aW5nIGF0IHRoZSBmcm9tIGNsYXVzZSAoY2FzZSBpbnNlbnNpdGl2ZSkKICAgICAgICAgICAgICAiICdcenNcKFwoXDxcd1wrXD5cKVwuXClcPycgLSBHZXQgdGhlIG93bmVyIG5hbWUgKG9wdGlvbmFsKQogICAgICAgICAgICAgICIgJ1w8XHdcK1w+XHplJyAtIEdldCB0aGUgdGFibGUgbmFtZSAKICAgICAgICAgICAgICAiICdcc1wrXDwnLnRhYmxlX25hbWUuJ1w+JyAtIEZvbGxvd2VkIGJ5IHRoZSBhbGlhcwogICAgICAgICAgICAgICIgJ1xzKlwuXEAhLionICAtIENhbm5vdCBiZSBmb2xsb3dlZCBieSBhIC4KICAgICAgICAgICAgICAiICdcKFw8d2hlcmVcPlx8JFwpJyAtIE11c3QgYmUgZm9sbG93ZWQgYnkgYSBXSEVSRSBjbGF1c2UKICAgICAgICAgICAgICAiICcuKicgIC0gRXhjbHVkZSB0aGUgcmVzdCBvZiB0aGUgbGluZSBpbiB0aGUgbWF0Y2gKKyAgICAgICAgICAgICAiIGxldCB0YWJsZV9uYW1lX25ldyA9IG1hdGNoc3RyKEB5LCAKKyAgICAgICAgICAgICAiICAgICAgICAgICAgIFwgJ1xjXChmcm9tXHxqb2luXHwsXCkuXHstfScuCisgICAgICAgICAgICAgIiAgICAgICAgICAgICBcICdcenNcKFwoIlx8XFtcKVw/Llx7LX1cKCJcfFxdXClcLlwpXD8nLgorICAgICAgICAgICAgICIgICAgICAgICAgICAgXCAnXCgiXHxcW1wpXD8uXHstfVwoIlx8XF1cKVw/XHplJy4KKyAgICAgICAgICAgICAiICAgICAgICAgICAgIFwgJ1xzXCtcJShhc1xzXCtcKVw/XDwnLgorICAgICAgICAgICAgICIgICAgICAgICAgICAgXCBtYXRjaHN0cih0YWJsZV9uYW1lLCAnLlx7LX1cemVcLlw/JCcpLgorICAgICAgICAgICAgICIgICAgICAgICAgICAgXCAnXD4nLgorICAgICAgICAgICAgICIgICAgICAgICAgICAgXCAnXHMqXC5cQCEuKicuCisgICAgICAgICAgICAgIiAgICAgICAgICAgICBcICdcKFw8d2hlcmVcPlx8JFwpJy4KKyAgICAgICAgICAgICAiICAgICAgICAgICAgIFwgJy4qJworICAgICAgICAgICAgICIgICAgICAgICAgICAgXCApCiAgICAgICAgICAgICAgbGV0IHRhYmxlX25hbWVfbmV3ID0gbWF0Y2hzdHIoQHksIAotICAgICAgICAgICAgICAgICAgICAgICAgIFwgJ2Zyb20uXHstfScuCi0gICAgICAgICAgICAgICAgICAgICAgICAgXCAnXHpzXChcKCJcfFxbXClcPy5cey19XCgiXHxcXVwpXC5cKVw/Jy4KLSAgICAgICAgICAgICAgICAgICAgICAgICBcICdcKCJcfFxbXClcPy5cey19XCgiXHxcXVwpXHplJy4KKyAgICAgICAgICAgICAgICAgICAgICAgICBcICdcY1woXDxmcm9tXD5cfFw8am9pblw+XHwsXClccyonLgorICAgICAgICAgICAgICAgICAgICAgICAgIFwgJ1x6c1woXCgiXHxcW1wpXD9cd1wrXCgiXHxcXVwpXD9cLlwpXD8nLgorICAgICAgICAgICAgICAgICAgICAgICAgIFwgJ1woIlx8XFtcKVw/XHdcK1woIlx8XF1cKVw/XHplJy4KICAgICAgICAgICAgICAgICAgICAgICAgICBcICdcc1wrXCUoYXNcc1wrXClcP1w8Jy4KICAgICAgICAgICAgICAgICAgICAgICAgICBcIG1hdGNoc3RyKHRhYmxlX25hbWUsICcuXHstfVx6ZVwuXD8kJykuCiAgICAgICAgICAgICAgICAgICAgICAgICAgXCAnXD4nLgpAQCAtNjQ5LDcgKzY3MSw3IEBACiAKICAgICAgICAgICAgICBpZiB0YWJsZV9uYW1lX25ldyAhPSAnJwogICAgICAgICAgICAgICAgICBsZXQgdGFibGVfYWxpYXMgPSB0YWJsZV9uYW1lCi0gICAgICAgICAgICAgICAgIGxldCB0YWJsZV9uYW1lICA9IHRhYmxlX25hbWVfbmV3CisgICAgICAgICAgICAgICAgIGxldCB0YWJsZV9uYW1lICA9IG1hdGNoc3RyKCB0YWJsZV9uYW1lX25ldywgJ15cKC4qXC5cKVw/XHpzLipcemUnICkKIAogICAgICAgICAgICAgICAgICBsZXQgbGlzdF9pZHggPSBpbmRleChzOnRibF9uYW1lLCB0YWJsZV9uYW1lLCAwLCAmaWdub3JlY2FzZSkKICAgICAgICAgICAgICAgICAgaWYgbGlzdF9pZHggPiAtMQpAQCAtNzE3LDQgKzczOSwzIEBACiAKICAgICByZXR1cm4gdGFibGVfY29scwogZW5kZnVuY3Rpb24KLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvdmltYmFsbC52aW0KaW5kZXggYjk3YzNhNS4uMTNlODJhYyAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltCkBAIC0xLDcgKzEsNyBAQAogIiB2aW1iYWxsLnZpbSA6IGNvbnN0cnVjdCBhIGZpbGUgY29udGFpbmluZyBib3RoIHBhdGhzIGFuZCBmaWxlcwogIiBBdXRob3I6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiBEYXRlOgkJRGVjIDI4LCAyMDA5Ci0iIFZlcnNpb246CTMwCisiIERhdGU6CQlBcHIgMTIsIDIwMTAKKyIgVmVyc2lvbjoJMzEKICIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTUwMiAxIDpBdXRvSW5zdGFsbDogdmltYmFsbC52aW0KICIgQ29weXJpZ2h0OiAoYykgMjAwNC0yMDA5IGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogIiAgICAgICAgICAgIFRoZSBWSU0gTElDRU5TRSBhcHBsaWVzIHRvIFZpbWJhbGwudmltLCBhbmQgVmltYmFsbC50eHQKQEAgLTE0LDcgKzE0LDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGwiKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF92aW1iYWxsID0gInYzMCIKK2xldCBnOmxvYWRlZF92aW1iYWxsID0gInYzMSIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnCiAgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgdmltYmFsbCBuZWVkcyB2aW0gNy4yIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC96aXAudmltIGIvcnVudGltZS9hdXRvbG9hZC96aXAudmltCmluZGV4IGFmNTY5NDQuLmE1NWYxZGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KQEAgLTEsNyArMSw3IEBACiAiIHppcC52aW06IEhhbmRsZXMgYnJvd3NpbmcgemlwZmlsZXMKICIgICAgICAgICAgICBBVVRPTE9BRCBQT1JUSU9OCi0iIERhdGU6CQlKdWwgMzAsIDIwMDgKLSIgVmVyc2lvbjoJMjIKKyIgRGF0ZToJCUFwciAxMiwgMjAxMAorIiBWZXJzaW9uOgkyMwogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgTGljZW5zZToJVmltIExpY2Vuc2UgIChzZWUgdmltJ3MgOmhlbHAgbGljZW5zZSkKICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOCBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQpAQCAtMTYsMTMgKzE2LDE5IEBACiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIExvYWQgT25jZToge3t7MQotbGV0IHM6a2VlcGNwbz0gJmNwbwotc2V0IGNwbyZ2aW0KLWlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ppcCIpIHx8IHY6dmVyc2lvbiA8IDcwMAoraWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfemlwIikKICBmaW5pc2gKIGVuZGlmCitsZXQgZzpsb2FkZWRfemlwPSAidjIzIgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cKKyBlY2hvICIqKip3YXJuaW5nKioqIHRoaXMgdmVyc2lvbiBvZiB6aXAgbmVlZHMgdmltIDcuMiIKKyBlY2hvaGwgTm9ybWFsCisgZmluaXNoCitlbmRpZgorbGV0IHM6a2VlcGNwbz0gJmNwbworc2V0IGNwbyZ2aW0KIAotbGV0IGc6bG9hZGVkX3ppcCAgICAgPSAidjIyIgogbGV0IHM6emlwZmlsZV9lc2NhcGUgPSAnID8mO1wnCiBsZXQgczpFUlJPUiAgICAgICAgICA9IDIKIGxldCBzOldBUk5JTkcgICAgICAgID0gMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAppbmRleCBkMWU1M2M0Li43MmNmNjFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAorKysgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dApAQCAtMSw0ICsxLDQgQEAKLSphdXRvY21kLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDkgTm92IDI1CisqYXV0b2NtZC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1heSAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dCBiL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKaW5kZXggZjQ5M2UxMC4uOTlhZDc3NiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKmNoYW5nZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAwOSBOb3YgMTEKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWFyIDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01ODUsNyArNTg1LDcgQEAKIAkJCSI6JnIiLiAgU2VlIHw6c19mbGFnc3wgZm9yIFtmbGFnc10uCiAKIAkJCQkJCQkJKiYqCi0mCQkJU3lub255bSBmb3IgIjpzLy9+LyIgKHJlcGVhdCBsYXN0IHN1YnN0aXR1dGUpLiAgTm90ZQorJgkJCVN5bm9ueW0gZm9yICI6cyIgKHJlcGVhdCBsYXN0IHN1YnN0aXR1dGUpLiAgTm90ZQogCQkJdGhhdCB0aGUgZmxhZ3MgYXJlIG5vdCByZW1lbWJlcmVkLCB0aHVzIGl0IG1pZ2h0CiAJCQlhY3R1YWxseSB3b3JrIGRpZmZlcmVudGx5LiAgWW91IGNhbiB1c2UgIjomJiIgdG8ga2VlcAogCQkJdGhlIGZsYWdzLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvY21kbGluZS50eHQgYi9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dAppbmRleCBiOThkZWQxLi4zMDg4ZWExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dAorKysgYi9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjbWRsaW5lLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDkgT2N0IDI1CisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1heSAwNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTIyLDYgKzUyMiw3IEBACiAgICAgOnJlZ2lzdGVycwogICAgIDpyZWFkICEKICAgICA6c2NzY29wZQorICAgIDpzaWduCiAgICAgOnRjbAogICAgIDp0Y2xkbwogICAgIDp0Y2xmaWxlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dCBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CmluZGV4IDY1MjYxYjcuLjg0NDBhNzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAwOCBBdWcgMDYKKypkaWdyYXBoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgQXByIDExCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ldmFsLnR4dCBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CmluZGV4IGVjMzcyZDEuLjFlN2Q2ZjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2V2YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmV2YWwudHh0KglGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWFyIDEwCisqZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXkgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjcsNyArNjcsNyBAQAogCU51bWJlciAxMjMJLS0+CVN0cmluZyAiMTIzIgogCU51bWJlciAwCS0tPglTdHJpbmcgIjAiCiAJTnVtYmVyIC0xCS0tPglTdHJpbmcgIi0xIgotCisJCQkJCQkJKm9jdGFsKgogQ29udmVyc2lvbiBmcm9tIGEgU3RyaW5nIHRvIGEgTnVtYmVyIGlzIGRvbmUgYnkgY29udmVydGluZyB0aGUgZmlyc3QgZGlnaXRzCiB0byBhIG51bWJlci4gIEhleGFkZWNpbWFsICIweGY5IiBhbmQgT2N0YWwgIjAxNyIgbnVtYmVycyBhcmUgcmVjb2duaXplZC4gIElmCiB0aGUgU3RyaW5nIGRvZXNuJ3Qgc3RhcnQgd2l0aCBkaWdpdHMsIHRoZSByZXN1bHQgaXMgemVyby4gIEV4YW1wbGVzOiA+CkBAIC0xMDIwLDcgKzEwMjAsOSBAQAogXHQJdGFiIDxUYWI+CiBcXAliYWNrc2xhc2gKIFwiCWRvdWJsZSBxdW90ZQotXDx4eHg+CVNwZWNpYWwga2V5IG5hbWVkICJ4eHgiLiAgZS5nLiAiXDxDLVc+IiBmb3IgQ1RSTC1XLgorXDx4eHg+CVNwZWNpYWwga2V5IG5hbWVkICJ4eHgiLiAgZS5nLiAiXDxDLVc+IiBmb3IgQ1RSTC1XLiAgVGhpcyBpcyBmb3IgdXNlCisJaW4gbWFwcGluZ3MsIHRoZSAweDgwIGJ5dGUgaXMgZXNjYXBlZC4gIERvbid0IHVzZSA8Q2hhci14eHh4PiB0byBnZXQgYQorCXV0Zi04IGNoYXJhY3RlciwgdXNlIFx1eHh4eCBhcyBtZW50aW9uZWQgYWJvdmUuCiAKIE5vdGUgdGhhdCAiXHhmZiIgaXMgc3RvcmVkIGFzIHRoZSBieXRlIDI1NSwgd2hpY2ggbWF5IGJlIGludmFsaWQgaW4gc29tZQogZW5jb2RpbmdzLiAgVXNlICJcdTAwZmYiIHRvIHN0b3JlIGNoYXJhY3RlciAyNTUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHZhbHVlCkBAIC00OTQ0LDYgKzQ5NDYsOCBAQAogCQlpdGVtIHdpbGwgbm90IGJlIGhhbmRsZWQgYXMgYW4gZXJyb3IgbGluZS4KIAkJSWYgYm90aCAicGF0dGVybiIgYW5kICJsbnVtIiBhcmUgcHJlc2VudCB0aGVuICJwYXR0ZXJuIiB3aWxsCiAJCWJlIHVzZWQuCisJCUlmIHlvdSBzdXBwbHkgYW4gZW1wdHkge2xpc3R9LCB0aGUgcXVpY2tmaXggbGlzdCB3aWxsIGJlCisJCWNsZWFyZWQuCiAJCU5vdGUgdGhhdCB0aGUgbGlzdCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSBhcyB3aGF0CiAJCXxnZXRxZmxpc3QoKXwgcmV0dXJucy4KIApAQCAtNjgyOCwxNCArNjgzMiwxNiBAQAogPAogCQkJCQkJCSo6ZXhlKiAqOmV4ZWN1dGUqCiA6ZXhlW2N1dGVdIHtleHByMX0gLi4JRXhlY3V0ZXMgdGhlIHN0cmluZyB0aGF0IHJlc3VsdHMgZnJvbSB0aGUgZXZhbHVhdGlvbgotCQkJb2Yge2V4cHIxfSBhcyBhbiBFeCBjb21tYW5kLiAgTXVsdGlwbGUgYXJndW1lbnRzIGFyZQotCQkJY29uY2F0ZW5hdGVkLCB3aXRoIGEgc3BhY2UgaW4gYmV0d2Vlbi4Je2V4cHIxfSBpcwotCQkJdXNlZCBhcyB0aGUgcHJvY2Vzc2VkIGNvbW1hbmQsIGNvbW1hbmQgbGluZSBlZGl0aW5nCi0JCQlrZXlzIGFyZSBub3QgcmVjb2duaXplZC4KKwkJCW9mIHtleHByMX0gYXMgYW4gRXggY29tbWFuZC4KKwkJCU11bHRpcGxlIGFyZ3VtZW50cyBhcmUgY29uY2F0ZW5hdGVkLCB3aXRoIGEgc3BhY2UgaW4KKwkJCWJldHdlZW4uICBUbyBhdm9pZCB0aGUgZXh0cmEgc3BhY2UgdXNlIHRoZSAiLiIKKwkJCW9wZXJhdG9yIHRvIGNvbmNhdGVuYXRlIHN0cmluZ3MgaW50byBvbmUgYXJndW1lbnQuCisJCQl7ZXhwcjF9IGlzIHVzZWQgYXMgdGhlIHByb2Nlc3NlZCBjb21tYW5kLCBjb21tYW5kIGxpbmUKKwkJCWVkaXRpbmcga2V5cyBhcmUgbm90IHJlY29nbml6ZWQuCiAJCQlDYW5ub3QgYmUgZm9sbG93ZWQgYnkgYSBjb21tZW50LgogCQkJRXhhbXBsZXM6ID4KLQkJOmV4ZWN1dGUgImJ1ZmZlciAiIG5leHRidWYKLQkJOmV4ZWN1dGUgIm5vcm1hbCAiIGNvdW50IC4gInciCisJCTpleGVjdXRlICJidWZmZXIiIG5leHRidWYKKwkJOmV4ZWN1dGUgIm5vcm1hbCIgY291bnQgLiAidyIKIDwKIAkJCSI6ZXhlY3V0ZSIgY2FuIGJlIHVzZWQgdG8gYXBwZW5kIGEgY29tbWFuZCB0byBjb21tYW5kcwogCQkJdGhhdCBkb24ndCBhY2NlcHQgYSAnfCcuICBFeGFtcGxlOiA+CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mb2xkLnR4dCBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CmluZGV4IDYwNzA0YzUuLmNmOTIwOTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZvbGQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZvbGQudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBGZWIgMjEKKypmb2xkLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWF5IDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjcsNiArMTI3LDkgQEAKIHlldC4gIEFuZCBpdCByZXR1cm5zIHRoZSBsZXZlbCBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUsIHdoaWxlIGEgZm9sZCBtaWdodAogZW5kIGluIHRoYXQgbGluZS4KIAorSXQgbWF5IGhhcHBlbmVkIHRoYXQgZm9sZHMgYXJlIG5vdCB1cGRhdGVkIHByb3Blcmx5LiAgWW91IGNhbiB1c2UgfHp4fCBvciB8elh8Cit0byBmb3JjZSB1cGRhdGluZyBmb2xkcy4KKwogCiBTWU5UQVgJCQkJCQkqZm9sZC1zeW50YXgqCiAKQEAgLTM1Miw5ICszNTUsMTMgQEAKIAkJCQkJCQkqengqCiB6eAkJVXBkYXRlIGZvbGRzOiBVbmRvIG1hbnVhbGx5IG9wZW5lZCBhbmQgY2xvc2VkIGZvbGRzOiByZS1hcHBseQogCQknZm9sZGxldmVsJywgdGhlbiBkbyAienYiOiBWaWV3IGN1cnNvciBsaW5lLgorCQlBbHNvIGZvcmNlcyByZWNvbXB1dGluZyBmb2xkcy4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gdXNpbmcKKwkJJ2ZvbGRleHByJyBhbmQgdGhlIGJ1ZmZlciBpcyBjaGFuZ2VkIGluIGEgd2F5IHRoYXQgcmVzdWx0cyBpbgorCQlmb2xkcyBub3QgdG8gYmUgdXBkYXRlZCBwcm9wZXJseS4KIAogCQkJCQkJCSp6WCoKIHpYCQlVbmRvIG1hbnVhbGx5IG9wZW5lZCBhbmQgY2xvc2VkIGZvbGRzOiByZS1hcHBseSAnZm9sZGxldmVsJy4KKwkJQWxzbyBmb3JjZXMgcmVjb21wdXRpbmcgZm9sZHMsIGxpa2UgfHp4fC4KIAogCQkJCQkJCSp6bSoKIHptCQlGb2xkIG1vcmU6IFN1YnRyYWN0IG9uZSBmcm9tICdmb2xkbGV2ZWwnLiAgSWYgJ2ZvbGRsZXZlbCcgd2FzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWkudHh0IGIvcnVudGltZS9kb2MvZ3VpLnR4dAppbmRleCAwOWE4MzNiLi42MjQzZTEwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ndWkudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aS50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA5IEphbiAyMgorKmd1aS50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXkgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTU1Niw3ICs1NTYsNyBAQAogCW1vZGUJCWluc2VydGVkCWFwcGVuZGVkCX4KIAlOb3JtYWwJCW5vdGhpbmcJCW5vdGhpbmcKIAlWaXN1YWwJCTxDLUM+CQk8Qy1cPjxDLUc+Ci0JSW5zZXJ0CQk8Qy1PPgorCUluc2VydAkJPEMtXD48Qy1PPgogCUNtZGxpbmUJCTxDLUM+CQk8Qy1cPjxDLUc+CiAJT3AtcGVuZGluZwk8Qy1DPgkJPEMtXD48Qy1HPgogCkBAIC01NzEsNyArNTcxLDcgQEAKIAogICAgOm5tZW51IEZpbGUuTmV4dAk6bmV4dF5NCiAgICA6dm1lbnUgRmlsZS5OZXh0CV5DOm5leHReTV5cXkcKLSAgIDppbWVudSBGaWxlLk5leHQJXk86bmV4dF5NCisgICA6aW1lbnUgRmlsZS5OZXh0CV5cXk86bmV4dF5NCiAgICA6Y21lbnUgRmlsZS5OZXh0CV5DOm5leHReTV5cXkcKICAgIDpvbWVudSBGaWxlLk5leHQJXkM6bmV4dF5NXlxeRwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0IGIvcnVudGltZS9kb2MvaW5kZW50LnR4dAppbmRleCAzMzU5M2NjLi5hYzY0ZjA0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIEphbiAyNworKmluZGVudC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXIgMjcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogCiBUaGUgZGVmYXVsdHMsIHNwZWxsZWQgb3V0IGluIGZ1bGwsIGFyZToKIAljaW5vcHRpb25zPT5zLGUwLG4wLGYwLHswLH0wLF4wLDpzLD1zLGwwLGIwLGdzLGhzLHBzLHRzLGlzLCtzLGMzLEMwLAotCQkgICAvMCwoMnMsdXMsVTAsdzAsVzAsbTAsajAsKTIwLCozMCwjMAorCQkgICAvMCwoMnMsdXMsVTAsdzAsVzAsbTAsajAsKTIwLCo3MCwjMAogCiBWaW0gcHV0cyBhIGxpbmUgaW4gY29sdW1uIDEgaWY6CiAtIEl0IHN0YXJ0cyB3aXRoICcjJyAocHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMpLCBpZiAnY2lua2V5cycgY29udGFpbnMgJyMnLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbW90aW9uLnR4dCBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKaW5kZXggMGI1YWZlNy4uZDZkMmFiOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbW90aW9uLnR4dAorKysgYi9ydW50aW1lL2RvYy9tb3Rpb24udHh0CkBAIC0xLDQgKzEsNCBAQAotKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAwOSBTZXAgMTUKKyptb3Rpb24udHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWF5IDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMTUsNiArMzE1LDcgQEAKIEcJCQlHb3RvIGxpbmUgW2NvdW50XSwgZGVmYXVsdCBsYXN0IGxpbmUsIG9uIHRoZSBmaXJzdAogCQkJbm9uLWJsYW5rIGNoYXJhY3RlciB8bGluZXdpc2V8LiAgSWYgJ3N0YXJ0b2ZsaW5lJyBub3QKIAkJCXNldCwga2VlcCB0aGUgc2FtZSBjb2x1bW4uCisJCQlHIGlzIGEgb25lIG9mIHxqdW1wLW1vdGlvbnN8LgogCiAJCQkJCQkJKjxDLUVuZD4qCiA8Qy1FbmQ+CQkJR290byBsaW5lIFtjb3VudF0sIGRlZmF1bHQgbGFzdCBsaW5lLCBvbiB0aGUgbGFzdApAQCAtMzI4LDYgKzMyOSw4IEBACiA6W3JhbmdlXQkJU2V0IHRoZSBjdXJzb3Igb24gdGhlIGxhc3QgbGluZSBudW1iZXIgaW4gW3JhbmdlXS4KIAkJCVtyYW5nZV0gY2FuIGFsc28gYmUganVzdCBvbmUgbGluZSBudW1iZXIsIGUuZy4sICI6MSIKIAkJCW9yICI6J20iLgorCQkJSW4gY29udHJhc3Qgd2l0aCB8R3wgdGhpcyBjb21tYW5kIGRvZXMgbm90IG1vZGlmeSB0aGUKKwkJCXxqdW1wbGlzdHwuCiAJCQkJCQkJKk4lKgoge2NvdW50fSUJCUdvIHRvIHtjb3VudH0gcGVyY2VudGFnZSBpbiB0aGUgZmlsZSwgb24gdGhlIGZpcnN0CiAJCQlub24tYmxhbmsgaW4gdGhlIGxpbmUgfGxpbmV3aXNlfC4gIFRvIGNvbXB1dGUgdGhlIG5ldwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCBlMTc4NjEzLi4zMzA5M2IyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIEphbiAwNgorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWF5IDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQwLDYgKzQwLDcgQEAKIAogOnNlW3RdIG5ve29wdGlvbn0JVG9nZ2xlIG9wdGlvbjogUmVzZXQsIHN3aXRjaCBpdCBvZmYuCiAKKwkJCQkJCQkgICAqOnNldC0hKiAqOnNldC1pbnYqCiA6c2VbdF0ge29wdGlvbn0hICAgb3IKIDpzZVt0XSBpbnZ7b3B0aW9ufQlUb2dnbGUgb3B0aW9uOiBJbnZlcnQgdmFsdWUuIHtub3QgaW4gVml9CiAKQEAgLTY5Niw4ICs2OTcsOCBAQAogJ2F1dG9jaGRpcicgJ2FjZCcJYm9vbGVhbiAoZGVmYXVsdCBvZmYpCiAJCQlnbG9iYWwKIAkJCXtub3QgaW4gVml9Ci0JCQl7b25seSBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRoIHRoZQotCQkJfCtuZXRiZWFuc19pbnRnfCBvciB8K3N1bl93b3Jrc2hvcHwgZmVhdHVyZX0KKwkJCXtvbmx5IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGggaXQsIHVzZQorCQkJZXhpc3RzKCIrYXV0b2NoZGlyIikgdG8gY2hlY2t9CiAJV2hlbiBvbiwgVmltIHdpbGwgY2hhbmdlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZW5ldmVyIHlvdQogCW9wZW4gYSBmaWxlLCBzd2l0Y2ggYnVmZmVycywgZGVsZXRlIGEgYnVmZmVyIG9yIG9wZW4vY2xvc2UgYSB3aW5kb3cuCiAJSXQgd2lsbCBjaGFuZ2UgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxlIHdoaWNoIHdhcyBvcGVuZWQKQEAgLTU3MDgsNyArNTcwOSw4IEBACiAJaW4gYSBmaWxlIGFuZCBlY2hvZWQgdG8gdGhlIHNjcmVlbi4gIElmIHRoZSAnc2hlbGwnIG9wdGlvbiBpcyAiY3NoIiBvcgogCSJ0Y3NoIiBhZnRlciBpbml0aWFsaXphdGlvbnMsIHRoZSBkZWZhdWx0IGJlY29tZXMgInwmIHRlZSIuICBJZiB0aGUKIAknc2hlbGwnIG9wdGlvbiBpcyAic2giLCAia3NoIiwgInpzaCIgb3IgImJhc2giIHRoZSBkZWZhdWx0IGJlY29tZXMKLQkiMj4mMXwgdGVlIi4gIFRoaXMgbWVhbnMgdGhhdCBzdGRlcnIgaXMgYWxzbyBpbmNsdWRlZC4KKwkiMj4mMXwgdGVlIi4gIFRoaXMgbWVhbnMgdGhhdCBzdGRlcnIgaXMgYWxzbyBpbmNsdWRlZC4gIEJlZm9yZSB1c2luZworCXRoZSAnc2hlbGwnIG9wdGlvbiBhIHBhdGggaXMgcmVtb3ZlZCwgdGh1cyAiL2Jpbi9zaCIgdXNlcyAic2giLgogCVRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGlzIG9wdGlvbiBpcyBkb25lIGFmdGVyIHJlYWRpbmcgdGhlICIudmltcmMiCiAJYW5kIHRoZSBvdGhlciBpbml0aWFsaXphdGlvbnMsIHNvIHRoYXQgd2hlbiB0aGUgJ3NoZWxsJyBvcHRpb24gaXMgc2V0CiAJdGhlcmUsIHRoZSAnc2hlbGxwaXBlJyBvcHRpb24gY2hhbmdlcyBhdXRvbWF0aWNhbGx5LCB1bmxlc3MgaXQgd2FzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQgYi9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKaW5kZXggNzYzNWFmMi4uOWYwOTU1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDkgRGVjIDI4CisqcGlfbmV0cncudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1heSAxNAogCiAJICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICAgIE5FVFJXIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCkBAIC02LDcgKzYsNyBAQAogQXV0aG9yOiAgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuICA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KIAkgIChyZW1vdmUgTk9TUEFNIGZyb20gQ2FtcGJlbGwncyBlbWFpbCBmaXJzdCkKIAotQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDkgQ2hhcmxlcyBFIENhbXBiZWxsLCBKcgkqbmV0cnctY29weXJpZ2h0KgorQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCBDaGFybGVzIEUgQ2FtcGJlbGwsIEpyICAgICpuZXRydy1jb3B5cmlnaHQqCiAJICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byB1c2UgYW5kIGRpc3RyaWJ1dGUgdGhpcyBjb2RlLCB3aXRoCiAJICAgb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMgY29weXJpZ2h0IG5vdGljZSBpcwogCSAgIGNvcGllZCB3aXRoIGl0LiBMaWtlIGFueXRoaW5nIGVsc2UgdGhhdCdzIGZyZWUsIG5ldHJ3LnZpbSwKQEAgLTE5LDkgKzE5LDkgQEAKIAkgICB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KIAogCi0qZGF2KiAgICAqZnRwKiAgICAqbmV0cnctZmlsZSogICpOcmVhZCogICAgKnJjcCogICAgKnNjcCoKLSpkYXZzKiAgICpodHRwKiAgICpuZXRydy52aW0qICAgKk5zb3VyY2UqICAqcnN5bmMqICAqc2Z0cCoKLSpmZXRjaCogICpuZXRydyogICpuZXR3b3JrKiAgICAgKk53cml0ZSoKKwkJKmRhdiogICAgKmZ0cCogICAgKm5ldHJ3LWZpbGUqICAqcmNwKiAgICAqc2NwKgorCQkqZGF2cyogICAqaHR0cCogICAqbmV0cncudmltKiAgICpyc3luYyogICpzZnRwKgorCQkqZmV0Y2gqICAqbmV0cncqICAqbmV0d29yayoKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAxLiBDb250ZW50cwkJCQkJCSpuZXRydy1jb250ZW50cyoge3t7MQpAQCAtMTU4LDcgKzE1OCw3IEBACiBuZXh0IHNlY3Rpb24sIHxuZXRydy1leHRlcm5hcHB8LCBvbiBob3cgdG8gdXNlIHRoZXNlIGV4dGVybmFsIGFwcGxpY2F0aW9ucyB3aXRoCiBuZXRydyBhbmQgdmltLgogCi1QUkVWRU5USU5HIExPQURJTkcKK1BSRVZFTlRJTkcgTE9BRElORwkJCQkJCSpuZXRydy1ub2xvYWQqCiAKIElmIHlvdSB3YW50IHRvIHVzZSBwbHVnaW5zLCBidXQgZm9yIHNvbWUgcmVhc29uIGRvbid0IHdpc2ggdG8gdXNlIG5ldHJ3LCB0aGVuCiB5b3UgbmVlZCB0byBhdm9pZCBsb2FkaW5nIGJvdGggdGhlIHBsdWdpbiBhbmQgdGhlIGF1dG9sb2FkIHBvcnRpb25zIG9mIG5ldHJ3LgpAQCAtMTY5LDcgKzE2OSw3IEBACiA8CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMy4gTmV0cncgUmVmZXJlbmNlCQkJCQkqbmV0cnctcmVmKiB7e3sxCiszLiBOZXRydyBSZWZlcmVuY2UJCQkJCQkqbmV0cnctcmVmKiB7e3sxCiAKICAgIE5ldHJ3IHN1cHBvcnRzIHNldmVyYWwgcHJvdG9jb2xzIGluIGFkZGl0aW9uIHRvIHNjcCBhbmQgZnRwIGFzIG1lbnRpb25lZAogICAgaW4gfG5ldHJ3LXN0YXJ0fC4gIFRoZXNlIGluY2x1ZGUgZGF2LCBmZXRjaCwgaHR0cCwuLi4gd2VsbCwganVzdCBsb29rCkBAIC02NDIsMTggKzY0MiwyMiBAQAogaW5zdGVhZCwgYXMgYXBwcm9wcmlhdGUpIC0tIHNlZSB8bmV0cnctdXJsc3wuICBJbiB0aGUgZXhwbGFuYXRpb25zCiBiZWxvdywgYSB7bmV0ZmlsZX0gaXMgYW4gdXJsIHRvIGEgcmVtb3RlIGZpbGUuCiAKKwkJCQkJCSo6TndyaXRlKiAgKjpOdyoKIDpbcmFuZ2VdTndbcml0ZV0JV3JpdGUgdGhlIHNwZWNpZmllZCBsaW5lcyB0byB0aGUgY3VycmVudAogCQlmaWxlIGFzIHNwZWNpZmllZCBpbiBiOm5ldHJ3X2xhc3RmaWxlLgorCQkocmVsYXRlZDogfG5ldHJ3LW53cml0ZXwpCiAKIDpbcmFuZ2VdTndbcml0ZV0ge25ldGZpbGV9IFt7bmV0ZmlsZX1dLi4uCiAJCVdyaXRlIHRoZSBzcGVjaWZpZWQgbGluZXMgdG8gdGhlIHtuZXRmaWxlfS4KIAorCQkJCQkJKjpOcmVhZCogICAqOk5yKgogOk5yW2VhZF0JUmVhZCB0aGUgbGluZXMgZnJvbSB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gYjpuZXRyd19sYXN0ZmlsZQotCQlpbnRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KKwkJaW50byB0aGUgY3VycmVudCBidWZmZXIuICAocmVsYXRlZDogfG5ldHJ3LW5yZWFkfCkKIAogOk5yW2VhZF0ge25ldGZpbGV9IHtuZXRmaWxlfS4uLgogCQlSZWFkIHRoZSB7bmV0ZmlsZX0gYWZ0ZXIgdGhlIGN1cnJlbnQgbGluZS4KIAorCQkJCQkJKjpOc291cmNlKiAqOk5zKgogOk5zW291cmNlXSB7bmV0ZmlsZX0KIAkJU291cmNlIHRoZSB7bmV0ZmlsZX0uCiAJCVRvIHN0YXJ0IHVwIHZpbSB1c2luZyBhIHJlbW90ZSAudmltcmMsIG9uZSBtYXkgdXNlCkBAIC02NjEsMjAgKzY2NSwyNCBAQAogCQl2aW0gLXUgTk9SQyAtTgogCQkgLS1jbWQgInJ1bnRpbWUgcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSIKIAkJIC0tY21kICJzb3VyY2Ugc2NwOi8vSE9TVE5BTUUvLnZpbXJjIgotPAkJCQkJCQkJKm5ldHJ3LXVpZHBhc3MqCi06Y2FsbCBOZXRVc2VyUGFzcygpCis8CQkgKHJlbGF0ZWQ6IHxuZXRydy1zb3VyY2V8KQorCis6Y2FsbCBOZXRVc2VyUGFzcygpCQkJCSpOZXRVc2VyUGFzcygpKgogCQlJZiBnOm5ldHJ3X3VpZCBhbmQgczpuZXRyd19wYXNzd2QgZG9uJ3QgZXhpc3QsCiAJCXRoaXMgZnVuY3Rpb24gd2lsbCBxdWVyeSB0aGUgdXNlciBmb3IgdGhlbS4KKwkJKHJlbGF0ZWQ6IHxuZXRydy11c2VycGFzc3wpCiAKIDpjYWxsIE5ldFVzZXJQYXNzKCJ1c2VyaWQiKQogCQlUaGlzIGNhbGwgd2lsbCBzZXQgdGhlIGc6bmV0cndfdWlkIGFuZCwgaWYKIAkJdGhlIHBhc3N3b3JkIGRvZXNuJ3QgZXhpc3QsIHdpbGwgcXVlcnkgdGhlIHVzZXIgZm9yIGl0LgorCQkocmVsYXRlZDogfG5ldHJ3LXVzZXJwYXNzfCkKIAogOmNhbGwgTmV0VXNlclBhc3MoInVzZXJpZCIsInBhc3N3ZCIpCiAJCVRoaXMgY2FsbCB3aWxsIHNldCBib3RoIHRoZSBnOm5ldHJ3X3VpZCBhbmQgczpuZXRyd19wYXNzd2QuCiAJCVRoZSB1c2VyLWlkIGFuZCBwYXNzd29yZCBhcmUgdXNlZCBieSBmdHAgdHJhbnNmZXJzLiAgT25lIG1heQogCQllZmZlY3RpdmVseSByZW1vdmUgdGhlIHVzZXItaWQgYW5kIHBhc3N3b3JkIGJ5IHVzaW5nIGVtcHR5CiAJCXN0cmluZ3MgKGllLiAiIikuCisJCShyZWxhdGVkOiB8bmV0cnctdXNlcnBhc3N8KQogCiA6TmV0cndTZXR0aW5ncyAgVGhpcyBjb21tYW5kIGlzIGRlc2NyaWJlZCBpbiB8bmV0cnctc2V0dGluZ3N8IC0tIHVzZWQgdG8KICAgICAgICAgICAgICAgICBkaXNwbGF5IG5ldHJ3IHNldHRpbmdzIGFuZCBjaGFuZ2UgbmV0cncgYmVoYXZpb3IuCkBAIC02ODgsOSArNjk2LDcgQEAKIFRoZSA8bmV0cncudmltPiBzY3JpcHQgcHJvdmlkZXMgc2V2ZXJhbCB2YXJpYWJsZXMgd2hpY2ggYWN0IGFzIG9wdGlvbnMgdG8KIGFmZmVjdCA8bmV0cncudmltPidzIGZpbGUgdHJhbnNmZXIgYmVoYXZpb3IuICBUaGVzZSB2YXJpYWJsZXMgdHlwaWNhbGx5IG1heSBiZQogc2V0IGluIHRoZSB1c2VyJ3MgPC52aW1yYz4gZmlsZTogKHNlZSBhbHNvIHxuZXRydy1zZXR0aW5nc3wgfG5ldHJ3LXByb3RvY29sfCkKLQogPgotCiAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICBOZXRydyBPcHRpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCkBAIC0xMDI1LDYgKzEwMzEsOCBAQAogCQkJdG8gdGhlIG5ldHJ3IGJyb3dzZXIgd2luZG93LiAgU2VlIHxnOm5ldHJ3X3JldG1hcHwuCiAJPHMtbGVmdG1vdXNlPgkoZ3ZpbSBvbmx5KSBsaWtlIG1mLCB3aWxsIG1hcmsgZmlsZXMKIAorCSh0byBkaXNhYmxlIG1vdXNlIGJ1dHRvbnMgd2hpbGUgYnJvd3Npbmc6IHxnOm5ldHJ3X21vdXNlbWFwc3wpCisKIAkJCQkqbmV0cnctcXVpY2tjb20qICpuZXRydy1xdWlja2NvbXMqCiBRVUlDSyBSRUZFUkVOQ0U6IENPTU1BTkRTCSpuZXRydy1leHBsb3JlLWNtZHMqICpuZXRydy1icm93c2UtY21kcyoge3t7MgogICAgICA6TmV0cndDbGVhblshXSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWNsZWFufApAQCAtMTIwMiw3ICsxMjEwLDcgQEAKIAl8bmV0cnctcWJ8IGhvdyB0byBsaXN0IGJvb2ttYXJrcwogCiAKLUNIQU5HSU5HIFRPIEEgUFJFREVDRVNTT1IgRElSRUNUT1JZCSpuZXRydy11KiAqbmV0cnctdXBkaXIqIHt7ezIKK0NIQU5HSU5HIFRPIEEgUFJFREVDRVNTT1IgRElSRUNUT1JZCQkqbmV0cnctdSogKm5ldHJ3LXVwZGlyKiB7e3syCiAKIEV2ZXJ5IHRpbWUgeW91IGNoYW5nZSB0byBhIG5ldyBkaXJlY3RvcnkgKG5ldyBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbiksCiBuZXRydyB3aWxsIHNhdmUgdGhlIGRpcmVjdG9yeSBpbiBhIHJlY2VudGx5LXZpc2l0ZWQgZGlyZWN0b3J5IGhpc3RvcnkKQEAgLTIwMjIsNyArMjAzMCw4IEBACiAJCQkJIHVuaXggb3IgZzpuZXRyd19jeWd3aW4gc2V0OiA6ICJscyAtdGxGIgogCQkJCSBvdGhlcndpc2UgICAgICAgICAgICAgICAgICAgICAiZGlyIgogCi0gICpnOm5ldHJ3X2dsb2JfZXNjYXBlKgkJPSdbXSo/YHt+JCcKKyAgKmc6bmV0cndfZ2xvYl9lc2NhcGUqCQk9J1tdKj9ge34kJyAgKHVuaXgpCisJCQkJPSdbXSo/YHskJyAgKHdpbmRvd3MKIAkJCQlUaGVzZSBjaGFyYWN0ZXJzIGluIGRpcmVjdG9yeSBuYW1lcyBhcmUKIAkJCQllc2NhcGVkIGJlZm9yZSBhcHBseWluZyBnbG9iKCkKIApAQCAtMjI5Myw2ICsyMzAyLDE4IEBACiBCeSBkZWZhdWx0LCB0aGUgc3BsaXQgd2lsbCBiZSB0YWtlbiBob3Jpem9udGFsbHk7IG9uZSBtYXkgdXNlIHZlcnRpY2FsCiBzcGxpdHRpbmcgaWYgb25lIGhhcyBzZXQgfGc6bmV0cndfcHJldmlld3wgZmlyc3QuCiAKK0FuIGludGVyZXN0aW5nIHNldCBvZiBuZXRydyBzZXR0aW5ncyBpczogPgorCisJbGV0IGc6bmV0cndfcHJldmlldyAgID0gMQorCWxldCBnOm5ldHJ3X2xpc3RzdHlsZSA9IDMKKwlsZXQgZzpuZXRyd193aW5zaXplICAgPSAzMAorCitUaGVzZSB3aWxsOgorCTEuIE1ha2UgdmVydGljYWwgc3BsaXR0aW5nIHRoZSBkZWZhdWx0IGZvciBwcmV2aWV3aW5nIGZpbGVzCisJMi4gTWFrZSB0aGUgZGVmYXVsdCBsaXN0aW5nIHN0eWxlICJ0cmVlIgorCTMuIFdoZW4gYSB2ZXJ0aWNhbCBwcmV2aWV3IHdpbmRvdyBpcyBvcGVuZWQsIHRoZSBkaXJlY3RvcnkgbGlzdGluZworCSAgIHdpbGwgdXNlIG9ubHkgMzAgY29sdW1uczsgdGhlIHJlc3Qgb2YgdGhlIHdpbmRvdyBpcyB1c2VkIGZvciB0aGUKKwkgICBwcmV2aWV3IHdpbmRvdy4KIAogUFJFVklPVVMgV0lORE9XCQkJCSpuZXRydy1QKiAqbmV0cnctcHJ2d2luKiB7e3syCiAKQEAgLTI1OTcsNiArMjYxOCwyOSBAQAogCSAgICAgTXVsdGlieXRlIGVuY29kaW5ncyB1c2UgdHdvIChvciBtb3JlKSBieXRlcyBwZXIgY2hhcmFjdGVyLgogCSAgICAgWW91IG1heSBuZWVkIHRvIGNoYW5nZSB8ZzpuZXRyd19zZXBjaHJ8IGFuZC9vciB8ZzpuZXRyd194c3RybGVufC4KIAorCQkJCQkJCQkqbmV0cnctcDEzKgorCVAxMy4gSSdtIGEgV2luZG93cyArIHB1dHR5ICsgc3NoIHVzZXIsIGFuZCB3aGVuIEkgYXR0ZW1wdCB0byBicm93c2UsCisJICAgICB0aGUgZGlyZWN0b3JpZXMgYXJlIG1pc3NpbmcgdHJhaWxpbmcgIi8icyBzbyBuZXRydyB0cmVhdHMgdGhlbQorCSAgICAgYXMgZmlsZSB0cmFuc2ZlcnMgaW5zdGVhZCBvZiBhcyBhdHRlbXB0cyB0byBicm93c2UKKwkgICAgIHN1YmRpcmVjdG9yaWVzLiAgSG93IG1heSBJIGZpeCB0aGlzPworCisJICAgICAobWlrZXlhbykgSWYgeW91IHdhbnQgdG8gdXNlIHZpbSB2aWEgc3NoIGFuZCBwdXR0eSB1bmRlciBXaW5kb3dzLAorCSAgICAgdHJ5IGNvbWJpbmluZyB0aGUgdXNlIG9mIHBzY3AvcHNmdHAgd2l0aCBwbGluay4gIHBzY3AvcHNmdHAgd2lsbAorCSAgICAgYmUgdXNlZCB0byBjb25uZWN0IGFuZCBwbGluayB3aWxsIGJlIHVzZWQgdG8gZXhlY3V0ZSBjb21tYW5kcyBvbgorCSAgICAgdGhlIHNlcnZlciwgZm9yIGV4YW1wbGU6IGxpc3QgZmlsZXMgYW5kIGRpcmVjdG9yeSB1c2luZyAnbHMnLgorCisJICAgICBUaGVzZSBhcmUgdGhlIHNldHRpbmdzIEkgdXNlIHRvIGRvIHRoaXM6Cis+CisJICAgICIgbGlzdCBmaWxlcywgaXQncyB0aGUga2V5IHNldHRpbmcsIGlmIHlvdSBoYXZlbid0IHNldCwKKwkgICAgIiB5b3Ugd2lsbCBnZXQgYSBibGFuayBidWZmZXIKKwkgICAgbGV0IGc6bmV0cndfbGlzdF9jbWQgPSAicGxpbmsgSE9TVE5BTUUgbHMgLUZhIgorCSAgICAiIGlmIHlvdSBoYXZlbid0IGFkZCBwdXR0eSBkaXJlY3RvcnkgaW4gc3lzdGVtIHBhdGgsIHlvdSBzaG91bGQKKwkgICAgIiBzcGVjaWZ5IHNjcC9zZnRwIGNvbW1hbmQuICBGb3IgZXhhbXBsZXM6CisJICAgICJsZXQgZzpuZXRyd19zZnRwX2NtZCA9ICJkOlxcZGV2XFxwdXR0eVxcUFNGVFAuZXhlIgorCSAgICAibGV0IGc6bmV0cndfc2NwX2NtZCA9ICJkOlxcZGV2XFxwdXR0eVxcUFNDUC5leGUiCis8CisKKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAxMS4gRGVidWdnaW5nIE5ldHJ3IEl0c2VsZgkJCQkqbmV0cnctZGVidWcqIHt7ezEKIApAQCAtMjY1MSw2ICsyNjk1LDM1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEyLiBIaXN0b3J5CQkJCQkJKm5ldHJ3LWhpc3RvcnkqIHt7ezEKIAorCXYxMzg6IE1heSAwMSwgMjAxMCAqIGFkZGVkIHRoZSBib21iIHNldHRpbmcgdG8gdGhlIFNhdmUtU2V0LVJlc3RvcmUKKwkJCSAgICAgb3B0aW9uIGhhbmRsaW5nIChmb3IgVG9ueSBNKQorCQkJICAgKiAoQnJhbSBNb29sZW5hYXIpIG5ldHJ3IG9wdGlvbmFsbHkgc2V0cyBjdXJzb3JsaW5lCisJCQkgICAgIChhbmQgc29tZXRpbWVzIGN1cnNvcmNvbHVtbikgZm9yIGl0cyBkaXNwbGF5LgorCQkJICAgICBUaGlzIG9wdGlvbiBzZXR0aW5nIHdhcyBsZWFraW5nIHRocm91Z2ggd2l0aAorCQkJICAgICByZW1vdGUgZmlsZSBoYW5kbGluZy4KKwl2MTM3OiBEZWMgMjgsIDIwMDkgKiBtb2RpZmllZCB0aGUgcHJldmlldyB3aW5kb3cgaGFuZGxpbmcgZm9yCisJCQkgICAgIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cy4gIFRoZSBwcmV2aWV3CisJCQkgICAgIHdpbmRvdyB3aWxsIHRha2UgdXAgYWxsIGJ1dCBnOm5ldHJ3X3dpbnNpemUKKwkJCSAgICAgY29sdW1ucyBvZiB0aGUgb3JpZ2luYWwgd2luZG93OyB0aG9zZSAKKwkJCSAgICAgZzpuZXRyd193aW5zaXplIGNvbHVtbnMgd2lsbCBiZSB1c2VkIGZvcgorCQkJICAgICB0aGUgbmV0cncgbGlzdGluZy4KKwkJCSAgICogKFNpbW9uIERhbWJlKSByZW1vdmVkICJ+IiBmcm9tCisJCQkgICAgIHxnOm5ldHJ3X2dsb2JfZXNjYXBlfCB1bmRlciBXaW5kb3dzCisJCQkgICAqIChCcmFtIE1vb2xlbmFhcikgbW9kaWZpZWQgdGVzdCBmb3Igc3RhdHVzIGJhcgorCQkJICAgICBjbGljayB3aXRoIGxlZnRtb3VzZS4gIE1vdmVkIGNvZGUgdG8KKwkJCSAgICAgczpOZXRyd0xlZnRtb3VzZSgpLgorCSAgICAgIEZlYiAyNCwgMjAxMCAqIChmb3IgSmVhbiBKb2huZXIpIGFkZGVkIGluc2VydC1tb2RlIG1hcHM7IG9uZQorCQkJICAgICBjYW4gZ2V0IGludG8gaW5zZXJ0IG1vZGUgd2l0aCBuZXRydyB2aWEKKwkJCSAgICAgY3RybC1vIDplIC4KKwkgICAgICBNYXIgMTUsIDIwMTAgKiAoRG9taW5pcXVlIFBlbGzDqSkgRGlyZWN0b3J5IHdpdGggYmFja3NsYXNoZXMgc3VjaAorCQkJICAgICBhcyBmb29cYmFyIHdlcmUgbm90IGJlaW5nIGVudGVyZWQvbGVmdCBwcm9wZXJseQorCSAgICAgIE1hciAxNSwgMjAxMCAqIFVzaW5nIDpFeHBsb3JlIC4uIGFuZCBjYXVzaW5nIHR3byBGb2N1c0dhaW5lZAorCQkJICAgICBldmVudHMgY2F1c2VkIHRoZSBkaXJlY3RvcnkgdG8gY2hhbmdlLiAgRml4ZWQuCisJICAgICAgTWFyIDIyLCAyMDEwICogTGFzdCBmaXggY2F1c2VkIHByb2JsZW1zIGZvciAqLy9wYXQgYW5kICovZmlsZXBhdAorCQkJICAgICBzZWFyY2hlcy4KKwkgICAgICBNYXIgMzAsIDIwMTAgKiBXaXRoIDpzZXQgaGlkZGVuIGFuZCBjaGFuZ2luZyBsaXN0aW5nIHN0eWxlcyA4CisJCQkgICAgIHRpbWVzLCB0aGUgdHJlZSBsaXN0aW5nIGJ1ZmZlciB3YXMgYmVpbmcgbWFya2VkCisJCQkgICAgIGFzIG1vZGlmaWVkIHVwb24gZXhpdC4gIEZpeGVkLgogCXYxMzY6IEphbiAxNCwgMjAwOSAqIGV4dGVuZGVkIHxnOk5ldHJ3X2Z1bmNyZWZ8IHRvIGFsc28gaGFuZGxlIGxpc3RzCiAJCQkgICAgIG9mIGZ1bmN0aW9uIHJlZmVyZW5jZXMKIAkgICAgICBKYW4gMTQsIDIwMDkgKiAocmVwb3J0ZWQgYnkgTWFydmluIFJlbmljaCkgd2l0aCBzcGVsbCBjaGVjawpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfdmltYmFsbC50eHQgYi9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dAppbmRleCA4ODUxMzFlLi5hMWEzMjU0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV92aW1iYWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA5IERlYyAyOAorKnBpX3ZpbWJhbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgQXByIDEyCiAKIAkJCSAgICAgICAtLS0tLS0tLS0tLS0tLS0tCiAJCQkgICAgICAgVmltYmFsbCBBcmNoaXZlcgpAQCAtMTU2LDYgKzE1NiwyMiBAQAogCQlsZXQgZzpsb2FkZWRfdmltYmFsbFBsdWdpbj0gMQogCQlsZXQgZzpsb2FkZWRfdmltYmFsbCAgICAgID0gMQogPAorV0lORE9XUwkJCQkJCQkqdmltYmFsbC13aW5kb3dzKgorCisJTWFueSB2aW1iYWxsIGZpbGVzIGFyZSBjb21wcmVzc2VkIHdpdGggZ3ppcC4gIFdpbmRvd3MsIHVuZm9ydHVuYXRlbHksCisJZG9lcyBub3QgY29tZSBwcm92aWRlZCB3aXRoIGEgdG9vbCB0byBkZWNvbXByZXNzIGd6aXAncGVkIGZpbGVzLgorCUZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgdG9vbHMgYXZhaWxhYmxlIGZvciBXaW5kb3dzIHVzZXJzCisJdG8gdW4tZ3ppcCBmaWxlczoKKz4KKwkgICAgSXRlbSAgICAgVG9vbC9TdWl0ZSAgIEZyZWUgICBXZWJzaXRlCisJICAgIC0tLS0gICAgIC0tLS0tLS0tLS0gICAtLS0tICAgLS0tLS0tLQorCSAgICA3emlwICAgICAgICB0b29sICAgICAgIHkgICAgIGh0dHA6Ly93d3cuNy16aXAub3JnLworCSAgICBXaW56aXAgICAgICB0b29sICAgICAgIG4gICAgIGh0dHA6Ly93d3cud2luemlwLmNvbS9kb3dud3ouaHRtCisJICAgIHVueHV0aWxzICAgIHN1aXRlICAgICAgeSAgICAgaHR0cDovL3VueHV0aWxzLnNvdXJjZWZvcmdlLm5ldC8KKwkgICAgY3lnd2luICAgICAgc3VpdGUgICAgICB5ICAgICBodHRwOi8vd3d3LmN5Z3dpbi5jb20vCisJICAgIEdudVdpbjMyICAgIHN1aXRlICAgICAgeSAgICAgaHR0cDovL2dudXdpbjMyLnNvdXJjZWZvcmdlLm5ldC8KKwkgICAgTWluR1cgICAgICAgc3VpdGUgICAgICB5ICAgICBodHRwOi8vd3d3Lm1pbmd3Lm9yZy8KKzwKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA0LiBWaW1iYWxsIEhpc3RvcnkJCQkJCSp2aW1iYWxsLWhpc3RvcnkqIHt7ezEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CmluZGV4IDVjNWNmODYuLjM3NzU3MTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfemlwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV96aXAudHh0KglGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVsIDMwCisqcGlfemlwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIEFwciAxMgogCiAJCQkJKz09PT09PT09PT09PT09PT09PT09KwogCQkJCXwgWmlwIEZpbGUgSW50ZXJmYWNlIHwKQEAgLTYsNyArNiw3IEBACiAKIEF1dGhvcjogIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+CiAJICAocmVtb3ZlIE5PU1BBTSBmcm9tIENhbXBiZWxsJ3MgZW1haWwgZmlyc3QpCi1Db3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNS0yMDA4IENoYXJsZXMgRSBDYW1wYmVsbCwgSnIgKnppcC1jb3B5cmlnaHQqCitDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNS0yMDA5IENoYXJsZXMgRSBDYW1wYmVsbCwgSnIgKnppcC1jb3B5cmlnaHQqCiAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKIAkgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAogCSAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLApAQCAtNjAsNiArNjAsMTYgQEAKICAgIGZpbGU7IGJ5IGRlZmF1bHQ6ID4KICAgIAlsZXQgZzp6aXBfemlwY21kPSAiemlwIgogPAorICAgUFJFVkVOVElORyBMT0FESU5HfgorCisgICBJZiBmb3Igc29tZSByZWFzb24geW91IGRvIG5vdCB3aXNoIHRvIHVzZSB2aW0gdG8gZXhhbWluZSB6aXBwZWQgZmlsZXMsCisgICB5b3UgbWF5IHB1dCB0aGUgZm9sbG93aW5nIHR3byB2YXJpYWJsZXMgaW50byB5b3VyIDwudmltcmM+IHRvIHByZXZlbnQKKyAgIHRoZSB0YXIgcGx1Z2luIGZyb20gbG9hZGluZzogPgorCisJbGV0IGc6bG9hZGVkX3ppcFBsdWdpbj0gMQorCWxldCBnOmxvYWRlZF96aXAgICAgICA9IDEKKzwKKzwKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBBZGRpdGlvbmFsIEV4dGVuc2lvbnMJCQkJCSp6aXAtZXh0ZW5zaW9uKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2lnbi50eHQgYi9ydW50aW1lL2RvYy9zaWduLnR4dAppbmRleCA4ZTA4ZWQ1Li41ZWI4YjEyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zaWduLnR4dAorKysgYi9ydW50aW1lL2RvYy9zaWduLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzaWduLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0Cisqc2lnbi50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1heSAwNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCkBAIC01Myw3ICs1Myw3IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDIuIENvbW1hbmRzCQkJCQkqc2lnbi1jb21tYW5kcyogKjpzaWcqICo6c2lnbioKIAotSGVyZSBpcyBhbiBleGFtcGxlIHRoYXQgcGxhY2VzIGEgc2lnbiBwaWV0LCBkaXNwbGF5ZWQgd2l0aCB0aGUgdGV4dCAiPj4iLCBpbgorSGVyZSBpcyBhbiBleGFtcGxlIHRoYXQgcGxhY2VzIGEgc2lnbiAicGlldCIsIGRpc3BsYXllZCB3aXRoIHRoZSB0ZXh0ICI+PiIsIGluCiBsaW5lIDIzIG9mIHRoZSBjdXJyZW50IGZpbGU6ID4KIAk6c2lnbiBkZWZpbmUgcGlldCB0ZXh0PT4+IHRleHRobD1TZWFyY2gKIAk6ZXhlICI6c2lnbiBwbGFjZSAyIGxpbmU9MjMgbmFtZT1waWV0IGZpbGU9IiAuIGV4cGFuZCgiJTpwIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dCBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAppbmRleCA4YTU1OWRkLi5kYzAyMjQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zcGVsbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA5IE9jdCAyOAorKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIEFwciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00NjgsOCArNDY4LDExIEBACiB0aGUgd29yZCBsaXN0IGFuZCBrZWVwcyBpdCBzbWFsbC4KIAkJCQkJCSAgICAqLmFmZiogKi5kaWMqICpNeXNwZWxsKgogWW91IGNhbiBjcmVhdGUgYSBWaW0gc3BlbGwgZmlsZSBmcm9tIHRoZSAuYWZmIGFuZCAuZGljIGZpbGVzIHRoYXQgTXlzcGVsbAotdXNlcy4gIE15c3BlbGwgaXMgdXNlZCBieSBPcGVuT2ZmaWNlLm9yZyBhbmQgTW96aWxsYS4gIFlvdSBzaG91bGQgYmUgYWJsZSB0bwotZmluZCB0aGVtIGhlcmU6Cit1c2VzLiAgTXlzcGVsbCBpcyB1c2VkIGJ5IE9wZW5PZmZpY2Uub3JnIGFuZCBNb3ppbGxhLiBUaGUgT3Blbk9mZmljZSAub3h0IAorZmlsZXMgYXJlIHppcCBmaWxlcyB3aGljaCBjb250YWluIHRoZSAuYWZmIGFuZCAuZGljIGZpbGVzLiBZb3Ugc2hvdWxkIGJlIGFibGUKK3RvIGZpbmQgdGhlbSBoZXJlOgorCWh0dHA6Ly9leHRlbnNpb25zLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL2RpY3Rpb25hcnkKK1RoZSBvbGRlciwgT3Blbk9mZmljZSAyIGZpbGVzIG1heSBiZSB1c2VkIGlmIHRoaXMgZG9lc24ndCB3b3JrOgogCWh0dHA6Ly93aWtpLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3dpa2kvRGljdGlvbmFyaWVzCiBZb3UgY2FuIGFsc28gdXNlIGEgcGxhaW4gd29yZCBsaXN0LiAgVGhlIHJlc3VsdHMgYXJlIHRoZSBzYW1lLCB0aGUgY2hvaWNlCiBkZXBlbmRzIG9uIHdoYXQgd29yZCBsaXN0cyB5b3UgY2FuIGZpbmQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zeW50YXgudHh0IGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dAppbmRleCA0YjkyYWMxLi5jODBjNWMzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zeW50YXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA5IERlYyAxOQorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXkgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzg3MSwxMyArMzg3MSwxOSBAQAogaW4gdGhlaXIgb3duIGNvbG9yLgogCiAJCQkJCQkqOmNvbG8qICo6Y29sb3JzY2hlbWUqICpFMTg1KgorOmNvbG9bcnNjaGVtZV0JCU91dHB1dCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBjb2xvciBzY2hlbWUuCisJCQlUaGlzIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBhcyA+CisJCQkJOmVjaG8gZzpjb2xvcnNfbmFtZQorPAkJCUluIGNhc2UgZzpjb2xvcnNfbmFtZSBoYXMgbm90IGJlZW4gZGVmaW5lZCA6Y29sbyB3aWxsCisJCQlvdXRwdXQgImRlZmF1bHQiLiAgV2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSB8K2V2YWx8CisJCQlmZWF0dXJlIGl0IHdpbGwgb3V0cHV0ICJ1bmtub3duIi4KKwogOmNvbG9bcnNjaGVtZV0ge25hbWV9CUxvYWQgY29sb3Igc2NoZW1lIHtuYW1lfS4gIFRoaXMgc2VhcmNoZXMgJ3J1bnRpbWVwYXRoJwogCQkJZm9yIHRoZSBmaWxlICJjb2xvcnMve25hbWV9LnZpbS4gIFRoZSBmaXJzdCBvbmUgdGhhdAogCQkJaXMgZm91bmQgaXMgbG9hZGVkLgogCQkJVG8gc2VlIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGNvbG9yIHNjaGVtZTogPgotCQkJCTplY2hvIGc6Y29sb3JzX25hbWUKLTwJCQlXaGVuIHVzaW5nIHRoZSBkZWZhdWx0IGNvbG9ycyB5b3Ugd2lsbCBnZXQgYW4gRTEyMQotCQkJZXJyb3IuCisJCQkJOmNvbG8KKzwJCQlUaGUgbmFtZSBpcyBhbHNvIHN0b3JlZCBpbiB0aGUgZzpjb2xvcnNfbmFtZSB2YXJpYWJsZS4KIAkJCURvZXNuJ3Qgd29yayByZWN1cnNpdmVseSwgdGh1cyB5b3UgY2FuJ3QgdXNlCiAJCQkiOmNvbG9yc2NoZW1lIiBpbiBhIGNvbG9yIHNjaGVtZSBzY3JpcHQuCiAJCQlBZnRlciB0aGUgY29sb3Igc2NoZW1lIGhhcyBiZWVuIGxvYWRlZCB0aGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IGRkODA2ZmMuLjk5MGZjMjAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtMTc2Nyw2ICsxNzY3LDEyIEBACiA6TmV4cGxvcmUJcGlfbmV0cncudHh0CS8qOk5leHBsb3JlKgogOk5leHQJZWRpdGluZy50eHQJLyo6TmV4dCoKIDpOb01hdGNoUGFyZW4JcGlfcGFyZW4udHh0CS8qOk5vTWF0Y2hQYXJlbioKKzpOcglwaV9uZXRydy50eHQJLyo6TnIqCis6TnJlYWQJcGlfbmV0cncudHh0CS8qOk5yZWFkKgorOk5zCXBpX25ldHJ3LnR4dAkvKjpOcyoKKzpOc291cmNlCXBpX25ldHJ3LnR4dAkvKjpOc291cmNlKgorOk53CXBpX25ldHJ3LnR4dAkvKjpOdyoKKzpOd3JpdGUJcGlfbmV0cncudHh0CS8qOk53cml0ZSoKIDpQCXZhcmlvdXMudHh0CS8qOlAqCiA6UGV4cGxvcmUJcGlfbmV0cncudHh0CS8qOlBleHBsb3JlKgogOlByaW50CXZhcmlvdXMudHh0CS8qOlByaW50KgpAQCAtMjYxNCw2ICsyNjIwLDcgQEAKIDpzZWFyY2gtYXJncwl0YWdzcmNoLnR4dAkvKjpzZWFyY2gtYXJncyoKIDpzZXQJb3B0aW9ucy50eHQJLyo6c2V0KgogOnNldCs9CW9wdGlvbnMudHh0CS8qOnNldCs9KgorOnNldC0hCW9wdGlvbnMudHh0CS8qOnNldC0hKgogOnNldC0mCW9wdGlvbnMudHh0CS8qOnNldC0mKgogOnNldC0mdmkJb3B0aW9ucy50eHQJLyo6c2V0LSZ2aSoKIDpzZXQtJnZpbQlvcHRpb25zLnR4dAkvKjpzZXQtJnZpbSoKQEAgLTI2MjEsNiArMjYyOCw3IEBACiA6c2V0LWFyZ3MJb3B0aW9ucy50eHQJLyo6c2V0LWFyZ3MqCiA6c2V0LWJyb3dzZQlvcHRpb25zLnR4dAkvKjpzZXQtYnJvd3NlKgogOnNldC1kZWZhdWx0CW9wdGlvbnMudHh0CS8qOnNldC1kZWZhdWx0KgorOnNldC1pbnYJb3B0aW9ucy50eHQJLyo6c2V0LWludioKIDpzZXQtdGVybWNhcAlvcHRpb25zLnR4dAkvKjpzZXQtdGVybWNhcCoKIDpzZXQtdmVyYm9zZQlvcHRpb25zLnR4dAkvKjpzZXQtdmVyYm9zZSoKIDpzZXRePQlvcHRpb25zLnR4dAkvKjpzZXRePSoKQEAgLTQyMzUsMTMgKzQyNDMsMTEgQEAKIE48RGVsPgl2YXJpb3VzLnR4dAkvKk48RGVsPioKIE5MLXVzZWQtZm9yLU51bAlwYXR0ZXJuLnR4dAkvKk5MLXVzZWQtZm9yLU51bCoKIE5ldEJTRC1iYWNrc3BhY2UJb3B0aW9ucy50eHQJLypOZXRCU0QtYmFja3NwYWNlKgorTmV0VXNlclBhc3MoKQlwaV9uZXRydy50eHQJLypOZXRVc2VyUGFzcygpKgogTm9ybWFsCWludHJvLnR4dAkvKk5vcm1hbCoKIE5vcm1hbC1tb2RlCWludHJvLnR4dAkvKk5vcm1hbC1tb2RlKgotTnJlYWQJcGlfbmV0cncudHh0CS8qTnJlYWQqCi1Oc291cmNlCXBpX25ldHJ3LnR4dAkvKk5zb3VyY2UqCiBOdW1iZXIJZXZhbC50eHQJLypOdW1iZXIqCiBOdmkJaW50cm8udHh0CS8qTnZpKgotTndyaXRlCXBpX25ldHJ3LnR4dAkvKk53cml0ZSoKIE8JaW5zZXJ0LnR4dAkvKk8qCiBPUy8yCW9zX29zMi50eHQJLypPU1wvMioKIE9TMglvc19vczIudHh0CS8qT1MyKgpAQCAtNjYyMCw2ICs2NjI2LDcgQEAKIG5ldHJ3LW16CXBpX25ldHJ3LnR4dAkvKm5ldHJ3LW16KgogbmV0cnctbmV0cmMJcGlfbmV0cncudHh0CS8qbmV0cnctbmV0cmMqCiBuZXRydy1uZXhwbG9yZQlwaV9uZXRydy50eHQJLypuZXRydy1uZXhwbG9yZSoKK25ldHJ3LW5vbG9hZAlwaV9uZXRydy50eHQJLypuZXRydy1ub2xvYWQqCiBuZXRydy1ucmVhZAlwaV9uZXRydy50eHQJLypuZXRydy1ucmVhZCoKIG5ldHJ3LW53cml0ZQlwaV9uZXRydy50eHQJLypuZXRydy1ud3JpdGUqCiBuZXRydy1vCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LW8qCkBAIC02NjI5LDYgKzY2MzYsNyBAQAogbmV0cnctcDEwCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXAxMCoKIG5ldHJ3LXAxMQlwaV9uZXRydy50eHQJLypuZXRydy1wMTEqCiBuZXRydy1wMTIJcGlfbmV0cncudHh0CS8qbmV0cnctcDEyKgorbmV0cnctcDEzCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXAxMyoKIG5ldHJ3LXAyCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXAyKgogbmV0cnctcDMJcGlfbmV0cncudHh0CS8qbmV0cnctcDMqCiBuZXRydy1wNAlwaV9uZXRydy50eHQJLypuZXRydy1wNCoKQEAgLTY2NzksNyArNjY4Nyw2IEBACiBuZXRydy10b2RvCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXRvZG8qCiBuZXRydy10cmFuc3BhcmVudAlwaV9uZXRydy50eHQJLypuZXRydy10cmFuc3BhcmVudCoKIG5ldHJ3LXUJcGlfbmV0cncudHh0CS8qbmV0cnctdSoKLW5ldHJ3LXVpZHBhc3MJcGlfbmV0cncudHh0CS8qbmV0cnctdWlkcGFzcyoKIG5ldHJ3LXVwZGlyCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXVwZGlyKgogbmV0cnctdXJscwlwaV9uZXRydy50eHQJLypuZXRydy11cmxzKgogbmV0cnctdXNlcnBhc3MJcGlfbmV0cncudHh0CS8qbmV0cnctdXNlcnBhc3MqCkBAIC02NzkyLDYgKzY3OTksNyBAQAogb2JqZWN0cwlpbmRleC50eHQJLypvYmplY3RzKgogb2J0YWluaW5nLWV4dGVkCW5ldGJlYW5zLnR4dAkvKm9idGFpbmluZy1leHRlZCoKIG9jYW1sLnZpbQlzeW50YXgudHh0CS8qb2NhbWwudmltKgorb2N0YWwJZXZhbC50eHQJLypvY3RhbCoKIG9sZGZpbGVzLXZhcmlhYmxlCWV2YWwudHh0CS8qb2xkZmlsZXMtdmFyaWFibGUqCiBvbGUtYWN0aXZhdGlvbglpZl9vbGUudHh0CS8qb2xlLWFjdGl2YXRpb24qCiBvbGUtZXZhbAlpZl9vbGUudHh0CS8qb2xlLWV2YWwqCkBAIC04MDcyLDYgKzgwODAsNyBAQAogdmltYmFsbC1oaXN0b3J5CXBpX3ZpbWJhbGwudHh0CS8qdmltYmFsbC1oaXN0b3J5KgogdmltYmFsbC1pbnRybwlwaV92aW1iYWxsLnR4dAkvKnZpbWJhbGwtaW50cm8qCiB2aW1iYWxsLW1hbnVhbAlwaV92aW1iYWxsLnR4dAkvKnZpbWJhbGwtbWFudWFsKgordmltYmFsbC13aW5kb3dzCXBpX3ZpbWJhbGwudHh0CS8qdmltYmFsbC13aW5kb3dzKgogdmltZGV2CWludHJvLnR4dAkvKnZpbWRldioKIHZpbWRpZmYJZGlmZi50eHQJLyp2aW1kaWZmKgogdmltZmlsZXMJb3B0aW9ucy50eHQJLyp2aW1maWxlcyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggOGIwY2UzMS4uMmJlY2Y4NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1hciAxNworKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXkgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMjAgKzMwLDU5IEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIjpzIiBzdW1tYXJ5IGluIDpmb2xkZG8gaXMgbm90IGNvcnJlY3QuIChKZWFuIEpvaG5lciwgMjAxMCBGZWIgMjApCi1QYXRjaCBmcm9tIExlY2ggTG9yZW5zLCAyMDEwIE1hciAxMy4KK0N1cnNvciBwb3NpdGlvbmluZyB3cm9uZyB3aXRoIDB4MjAwZSBjaGFyYWN0ZXIuIChKb2huIEJlY2tldCwgMjAxMCBNYXkgNikKIAotVmltIHRyaWVzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBvciBmb3JlZ3JvdW5kIGNvbG9yIGluIGEgdGVybWluYWwgdG8gLTEuCi0oR3JheXdoKSAgQXBwZWFycyB0byBoYXBwZW4gd2l0aCAiOmhpIE5vcm1hbCBjdGVybWJnPU5PTkUiLgotUG9zc2libGUgc29sdXRpb24gZnJvbSBNYXR0IFdvem5pc2tpLCAyMDEwIE1hciAxNy4KK0UzMTUgd2hlbiB0cnlpbmcgdG8gY2hhbmdlIGEgZmlsZSBpbiBGaWxlQ2hhbmdlZFJPIGF1dG9jb21tYW5kIGV2ZW50LgorKERvbWluaXF1ZSBQZWxsZSwgMjAxMCBBcHIgMzApCisKK1doZW4gZGlyZWN0b3J5ICIvdG1wL3RhZ3MiIGNvbnRhaW5zICJ0YWdzMSIgYW5kICJ0YWdzMiIsIHNldHRpbmcgJ3RhZ3MnIHRvCisiL3RtcC90YWdzLyoiIGRvZXNuJ3QgcGljayB1cCB0aGVzZSBmaWxlcy4gIChTaW1vbiBSdWdnaWVyLCAyMDEwIE1hciAxNykKKworIjpjb21tYW5kIFByaW50IGVjaG8gJ3ByaW50JyIgd29ya3MsIGJ1dCAiOlByaW50IiBkb2Vzbid0LiAgQnVpbHRpbiBQcmludAorc2hvdWxkIGJlIG92ZXJydWxlZC4gKEFhcm9uIFRob21hKQorCitFZGl0aW5nIGEgZmlsZSB3aXRoIGEgXk0gd2l0aCAnZmYnIHNldCB0byAibWFjIiwgb3BlbmluZyBhIGhlbHAgZmlsZSwgdGhlbiB0aGUKK15NIGlzIGRpc3BsYXllZCBhcyBeSiBzb21ldGltZXMuICBHZXR0aW5nICdmZicgdmFsdWUgZnJvbSB3cm9uZyB3aW5kb3cvYnVmZmVyPworCitIYXZlIGEgbG9vayBhdCBwYXRjaCB0byBlbmFibGUgc2NyZWVuIGFjY2VzcyBmcm9tIFB5dGhvbi4gKE1hcmtvIE1haG5pYywgMjAxMAorQXByIDEyKQorCitQcm9ibGVtIHByb2R1Y2luZyB0YWdzIGZpbGUgd2hlbiBoZWJyZXcuZnJ4IGlzIHByZXNlbnQuICBJdCBoYXMgYSBCT00uCitSZXN1bHRzIGluIEU2NzAuIChUb255IE1lY2hlbHluY2ssIDIwMTAgTWF5IDIpCisKKydjaW5kZW50JyBub3QgY29ycmVjdCB3aGVuICdsaXN0JyBpcyBzZXQuIChaZHJhdmkgS29ydXNlZiwgMjAxMCBBcHIgMTUpCisKKyI6aGVscGdyZXAiIGRvZXMgbm90IHB1dCB0aGUgY3Vyc29yIGluIHRoZSBjb3JyZWN0IGNvbHVtbiB3aGVuIHByZWNlZGVkIGJ5CithY2NlbnRlZCBjaGFyYWN0ZXIuIChUb255IE1lY2hlbHluY2ssIDIwMTAgQXByIDE1KQorCitCZXR0ZXIgQ3plY2gga2V5bWFwLiAoU3RlcG5lbSwgMjAxMCBNYXkgNCkgIFVzZSBpZiBubyByZXNwb25zZSBmcm9tIEppcmkKK1RvYmlzZWsuCisKK1VzZSBEdXRjaCBzcGVsbCBmaWxlcyBmcm9tOgoraHR0cDovL2V4dGVuc2lvbnMuc2VydmljZXMub3Blbm9mZmljZS5vcmcvZW4vcHJvamVjdC9kaWN0LW5sCitMb29rcyBsaWtlIHRoaXMgaXMgbmV3ZXIgdGhhbiB0aGUgbmV3IHdvcmRsaXN0IGZvciBEdXRjaDoKK2h0dHA6Ly93d3cub3BlbnRhYWwub3JnL2Jlc3RhbmRlbi8xXzEwL25sX05MLVBhY2sKIAogUHJvYmxlbSB3aXRoIGN1cnNvciBpbiB0aGUgd3JvbmcgY29sdW1uLiAoU3VuZ0h5dW4gTmFtLCAyMDEwIE1hciAxMSkKLUFkZGl0aW9uYWwgaW5mbyBieSBEb21pbmlxdWUgUGVsbGUuCitBZGRpdGlvbmFsIGluZm8gYnkgRG9taW5pcXVlIFBlbGxlLiAoYWxzbyBvbiAyMDEwIEFwciAxMCkKKworIm1ha2UgaW5zdGFsbCIgaW5zdGFsbHMgc29tZSBvZiB0aGUgLmluZm8gZmlsZXMgb24gVW5peC4KKyhKYW1lcyBWZWdhLCAyMDEwIE1hciAzMCkKKworSXMgfi9iaW4gKGxpdGVyYWxseSkgaW4gJFBBVEggc3VwcG9zZWQgdG8gd29yaz8gIChQYXVsLCAyMDEwIE1hcmNoIDI5KQorTG9va3MgbGlrZSBvbmx5IGJhc2ggY2FuIGRvIGl0LiAoWWFrb3YgTGVybmVyKQorCis4ICAgQWRkIGFuIGV2ZW50IGxpa2UgQ3Vyc29ySG9sZCB0aGF0IGlzIHRyaWdnZXJlZCByZXBlYXRlZGx5LCBub3QganVzdCBvbmNlCisgICAgYWZ0ZXIgdHlwaW5nIHNvbWV0aGluZy4KK05lZWQgZm9yIEN1cnNvckhvbGQgdGhhdCByZXRyaWdnZXJzLiAgVXNlIGEga2V5IHRoYXQgZG9lc24ndCBkbyBhbnl0aGluZywgb3IgYQorZnVuY3Rpb24gdGhhdCByZXNldHMgZGlkX2N1cnNvcmhvbGQuCiAKIEkgb2Z0ZW4gc2VlIHBhc3RlZCB0ZXh0IChmcm9tIEZpcmVmb3gsIHRvIFZpbSBpbiB4dGVybSkgYXBwZWFyIHR3aWNlLgogQWxzbywgVmltIGluIHh0ZXJtIHNvbWV0aW1lcyBsb3NlcyBjb3B5L3Bhc3RlIGFiaWxpdHkgKHByb2JhYmx5IGFmdGVyIHJ1bm5pbmcKIGFuIGV4dGVybmFsIGNvbW1hbmQpLgogCitKdW1wbGlzdCBkb2Vzbid0IHdvcmsgcHJvcGVybHkgaW4gSW5zZXJ0IG1vZGU/IChKZWFuIEpvaG5lciwgMjAxMCBNYXIgMjApCisKIFByb2JsZW0gd2l0aCB0cmFuc3BhcmVudCBjbWRsaW5lLiAgQWxzbzogVGVybWluYWwgdGl0bGUgaXMgd3Jvbmcgd2l0aAogbm9uLUFTQ0lJIGNoYXJhY3Rlci4gKExpbHkgV2hpdGUsIDIwMTAgTWFyIDcpCiAKQEAgLTU5LDE1ICs5OCwxMiBAQAogRmluZCB0YWlsPyAgTWlnaHQgaGF2ZSBhIC8gaW4gYXJndW1lbnQuICBGaW5kIHNwYWNlPyAgTWlnaHQgaGF2ZSBzcGFjZSBpbgogcGF0aC4KIAotUGF0Y2ggdG8gc3VwcG9ydCBuZXRiZWFucyBpbiBVbml4IGNvbnNvbGUgVmltLiAoWGF2aWVyIGRlIEdheWUsIDIwMDkgQXByIDI2KQotTm93IHdpdGggTWVyY3VyaWFsIHJlcG9zaXRvcnkgKDIwMTAgSmFuIDIpCi0KLUNyYXNoIHdoZW4gYXNzaWduaW5nIHM6IHRvIHZhcmlhYmxlLCBwb2ludGVyIGJlY29tZXMgaW52YWxpZCBsYXRlci4KLShZdWtpaGlybyBOYWthZGFpcmEsIDIwMDkgT2N0IDEyLCBjb25maXJtZWQgYnkgRG9taW5pcXVlIFBlbGxlKQotCiBUZXN0IDY5IGJyZWFrcyBvbiBNUy1XaW5kb3dzLCBib3RoIDMyIGFuZCA2NCBidWlsZHMuIChHZW9yZ2UgUmVpbGx5LCAyMDEwIEZlYgogMjYpCiAKKyI6ZnVuY3Rpb24gZih4KSBrZWVwanVtcHMiIGNyZWF0ZXMgYSBmdW5jdGlvbiB3aGVyZSBldmVyeSBjb21tYW5kIGlzIGV4ZWN1dGVkCitsaWtlIGl0IGhhcyAiOmtlZXBqdW1wcyIgYmVmb3JlIGl0LgorCiBDb3Zlcml0eTogYXNrIHNvbWVvbmUgdG8gY3JlYXRlIG5ldyB1c2VyOiBEb21pbmlxdWUuCiBsb29rIGludG8gcmVwb3J0ZWQgZGVmZWN0czogaHR0cDovL3NjYW4uY292ZXJpdHkuY29tL3J1bmcyLmh0bWwKIApAQCAtNzgsMjAgKzExNCwxNiBAQAogCiBTdXBwb3J0IC54eiB3aXRoIHRoZSB4eiBwcm9ncmFtLCBsaWtlIHdpdGggbHptYS4KIAotUGVybCBydW50aW1lIGZpbGVzIHVwZGF0ZS4gKEFuZHkgTGVzdGVyLCAyMDA5IEF1ZyAyNSkKLQotR3ZpbWV4dCBwYXRjaCB0byBzdXBwb3J0IHdpZGUgZmlsZSBuYW1lcy4gKFN6YWJvbGNzIEhvcnZhdCAyMDA4IFNlcCAxMCkKLQogUHJvYmxlbSB3aXRoIHN0b3AgZGlyZWN0b3J5IGluIGZpbmRmaWxlKCkuIChBZGFtIFNpbXBraW5zLCAyMDA5IEF1ZyAyNikKIAotUGF0Y2ggdG8gc3VwcG9ydCA6YnJvd3NlIGZvciBtb3JlIGNvbW1hbmRzLiAoTGVjaCBMb3JlbnMsIDIwMDkgSnVsIDE4KQorVW5kbyBwcm9ibGVtOiBsaW5lIG5vdCByZW1vdmVkIGFzIGV4cGVjdGVkIHdoZW4gdXNpbmcgc2V0bGluZSgpIGZyb20gSW5zZXJ0Cittb2RlLiAoSXNyYWVsIENoYXVjYSwgMjAxMCBNYXkgMTMsIG1vcmUgaW4gc2Vjb25kIG1zZykKK0JyZWFrIHVuZG8gd2hlbiBDVFJMLVIgPSBjaGFuZ2VzIHRoZSB0ZXh0PyAgT3Igc2F2ZSBtb3JlIGxpbmVzPwogCiBDaGFuZ2UgdG8gQyBzeW50YXggZm9sZGluZyB0byBtYWtlIGl0IHdvcmsgbXVjaCBmYXN0ZXIsIGJ1dCBhIGJpdCBsZXNzCiByZWxpYWJsZS4gKExlY2ggTG9yZW5zLCAyMDA5IE5vdiA5KSAgRW5hYmxlIHdpdGggYW4gb3B0aW9uPwogTW9zdCB0aW1lIGlzIHNwZW50IGluIGluX2lkX2xpc3QoKS4KIAotTmV3IHdvcmRsaXN0IGZvciBEdXRjaDogaHR0cDovL3d3dy5vcGVudGFhbC5vcmcvYmVzdGFuZGVuLzFfMTAvbmxfTkwtUGFjawotCiBDaGVjayBmb3IgdW51c2VkIGZ1bmN0aW9ucywgaWRlYToKIGh0dHA6Ly9ibG9nLmZsYW1lZXllcy5ldS8yMDA4LzAxLzE3L3RvZGF5LWhvdy10by1pZGVudGlmeS11bnVzZWQtZXhwb3J0ZWQtZnVuY3Rpb25zLWFuZC12YXJpYWJsZXMKIApAQCAtMTAyLDE3ICsxMzQsMTcgQEAKIG5vdCBhIHN0cmluZy4gKFNlYW4gTWEpICBOZWVkIHRvIGFkZCBmbGFnIHRvIGNhbGxfZnVuY19yZXRsaXN0KCkgdG8gZm9yY2UgYQogc3RyaW5nIHZhbHVlLgogCitUaGVyZSBpcyBubyBjb21tYW5kIGxpbmUgY29tcGxldGlvbiBmb3IgIjpsbWFwIi4KKwogUmVwcm9kdWNpYmxlIGNyYXNoIGluIHN5bnRheCBITC4gKEdlb3JnZSBSZWlsbHksIERvbWluaXF1ZSBQZWxsZSwgMjAwOSBNYXkgOSkKIAogSW52YWxpZCByZWFkIGVycm9yIGluIEZhcnNpIG1vZGUuIChEb21pbmlxdWUgUGVsbGUsIDIwMDkgQXVnIDIpCiAKLVBhdGNoIHRvIGFkZCBkaWZmIGZ1bmN0aW9uYWxpdHkgdG8gMmh0bWwudmltLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDA5IERlYwotMTUpCi0KIEZvciBydW5uaW5nIGd2aW0gb24gYW4gVVNCIHN0aWNrOiBhdm9pZCB0aGUgT0xFIHJlZ2lzdHJhdGlvbi4gIFVzZSBhIGNvbW1hbmQKIGxpbmUgYXJndW1lbnQgLW5vcmVnaXN0ZXIuCiAKLXN1Ym1hdGNoKCkgbWF5IHJlbW92ZSBiYWNrc2xhc2guIChTZXJnZXkgR29sZGdhYmVyLCAyMDA5IEp1bCA2KQorV2hlbiBhIG1hcHBpbmcgZXhpc3RzIGJvdGggZm9yIGluc2VydCBtb2RlIGFuZCBsYW5nLWluc2VydCBtb2RlLCB0aGUgbGFzdCBvbmUKK2RvZXNuJ3Qgd29yay4gKFR5cnUsIDIwMTAgTWF5IDYpICBPciBpcyB0aGlzIGludGVuZGVkPwogCiBTdGlsbCBhIHByb2JsZW0gd2l0aCAiOm1ha2UiIGluIHRoZSB3cm9uZyBkaXJlY3RvcnkuICBDYXVzZWQgYnkgIjpidWZkbyIuCiAoQWppdCBUaGFra2FyLCAyMDA5IEp1bCAxKSBNb3JlIGluZm9ybWF0aW9uIEp1bCA5LCBKdWwgMTUuCkBAIC0xNDgsMTAgKzE4MCw2IEBACiAKIFByb2JsZW0gd2l0aCA8c2NyaXB0PiBtYXBwaW5ncyAoQW5keSBXb2t1bGEsIDIwMDkgTWFyIDgpCiAKLVBhdGNoIHRvIHN1cHBvcnQgbmV0YmVhbnMgZm9yIE1hYy4gKEthenVraSBTYWthbW90bywgMjAwOSBKdW4gMjUpCi0KLVBhdGNoIHRvIHN1cHBvcnQgY2xpcGJvYXJkIGZvciBNYWMgdGVybWluYWwuIChKamdvZCBKaWFuZywgMjAwOSBBdWcgMSkKLQogV2hlbiBzdGFydGluZyBWaW0gd2l0aCAiZ3ZpbSAtZiAtdSBub25fZXhpc3RlbnRfZmlsZSA+IGZvby50eHQiIHRoZXJlIGFyZSBhCiBmZXcgY29udHJvbCBjaGFyYWN0ZXJzIGluIHRoZSBvdXRwdXQuIChEYWxlIFdpbGVzLCAyMDA5IE1heSAyOCkKIApAQCAtMTYxLDIxICsxODksMjcgQEAKIFN0YXR1cyBsaW5lIGNvbnRhaW5pbmcgd2lubnIoKSBpc24ndCB1cGRhdGVkIHdoZW4gc3BsaXR0aW5nIHRoZSB3aW5kb3cgKENsYXJrCiBKLiAgV2FuZywgMjAwOSBNYXIgMzEpCiAKK1doZW4gJFZJTVJVTlRJTUUgaXMgc2V0IGluIC52aW1yYywgbmVlZCB0byByZWxvYWQgbGFuZyBmaWxlcy4gIEFscmVhZHkgZG9uZQorZm9yIEdUSywgaG93IGFib3V0IG90aGVycz8gKFJvbiBBYXJvbiwgMjAxMCBBcHIgMTApCisKIFBhdGNoIGZvciB2ZXJ0aWNhbCBsaW5lIGF0IGNlcnRhaW4gY29sdW1uIHBvc2l0aW9uLCAnZ3VpZGVjb2x1bW4nIG9wdGlvbi4KIChQYW5rYWogR2FyZywgMjAwOSBBcHIgMTQsIGFrYSBMb25lLCBBcHIgMTUpCiBVcGRhdGUgMjAwOSBNYXkgMiwgJ21hcmdpbmNvbHVtbicKLUFsdGVybmF0aXZlIHBhdGNoLiAoMjAxMCBGZWIgMiwgR3JlZ29yIFVobGVuaGV1ZXIpCitBbHRlcm5hdGl2ZSBwYXRjaC4gKDIwMTAgRmViIDIsIEdyZWdvciBVaGxlbmhldWVyLCB1cGRhdGUgQXByIDE4IDIwMTApCitGaXggYnkgTGVjaCBMb3JlbnMsIEFwciAxOQogCiBBZGQgZGlmZmVyZW50IGhpZ2hsaWdodGluZyBmb3IgYSBmb2xkIGxpbmUgZGVwZW5kaW5nIG9uIHRoZSBmb2xkIGxldmVsLgogUGF0Y2guIChOb2VsIEhlbnNvbiwgMjAwOSBTZXAgMTMpCiAKK01vdGlmOiBCdWlsZCBvbiBVYnVudHUgY2FuJ3QgZW50ZXIgYW55IHRleHQgaW4gZGlhbG9nIHRleHQgZmllbGRzLgorCiBXaGVuICdmdCcgY2hhbmdlcyByZWRyYXcgY3VzdG9tIHN0YXR1cyBsaW5lLgogCiAiOnRhYiBzcGxpdCBmbmFtZSIgZG9lc24ndCBzZXQgdGhlIGFsdGVybmF0ZSBmaWxlIGluIHRoZSBvcmlnaW5hbCB3aW5kb3csCiBiZWNhdXNlIHdpbl92YWxpZCgpIGFsd2F5cyByZXR1cm5zIEZBTFNFLiAgQmVsb3cgd2luX25ld190YWJwYWdlKCkgaW4KIGV4X2RvY21kLmMuCiAKLVNwYWNlIGJlZm9yZSBjb21tYSBpbiBmdW5jdGlvbiBkZWZlbml0aW9uIG5vdCBhbGxvd2VkOiAiZnVuY3Rpb24geChhICwgYikiCitTcGFjZSBiZWZvcmUgY29tbWEgaW4gZnVuY3Rpb24gZGVmaW5pdGlvbiBub3QgYWxsb3dlZDogImZ1bmN0aW9uIHgoYSAsIGIpIgogR2l2ZSBhIG1vcmUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS4gIEFkZCBhIHJlbWFyayB0byB0aGUgZG9jcy4KIAogc3RyaW5nX2NvbnZlcnQoKSBzaG91bGQgYmUgYWJsZSB0byBjb252ZXJ0IGJldHdlZW4gdXRmLTggYW5kIHV0Zi0xNmxlLiAgVXNlZApAQCAtMjk3LDYgKzMzMSwxMCBAQAogQWxsb3cgcGF0Y2hlcyB0byBhZGQgc29tZXRoaW5nIHRvIHZlcnNpb24uYywgbGlrZSB3aXRoIGFuIG9mZmljaWFsIHBhdGNoLCBzbwogdGhhdCA6dmVyc2lvbiBvdXRwdXQgc2hvd3Mgd2hpY2ggcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZC4KIAorQnVnOiBpbiBFeCBtb2RlIChhZnRlciAiUSIpIGJhY2tzbGFzaCBiZWZvcmUgbGluZSBicmVhaywgd2hlbiB5YW5rZWQgaW50byBhCityZWdpc3RlciBhbmQgZXhlY3V0ZWQsIHJlc3VsdHMgaW4gPE51bD46IGluc3RlYWQgb2YgbGluZSBicmVhay4KKyhLb25yYWQgU2Nod2FyeiwgMjAxMCBBcHIgMTYpCisKIEhhdmUgYSBsb29rIGF0IHBhdGNoIGZvciB1dGYtOCBsaW5lIGJyZWFraW5nLiAoWW9uZ3dlaSBXdSwgMjAwOCBNYXIgMSwgTWFyIDIzKQogTm93IGF0OiBodHRwOi8vdmltZ2FkZ2V0cy5zb3VyY2Vmb3JnZS5uZXQvbGlibGluZWJyZWFrLwogCkBAIC00MDIsMTIgKzQ0MCw2IEBACiAiOmhlbHAgcy9+IiBqdW1wcyB0byAqcy9cfiosIHdoaWxlICI6aGVscCBzL1x+IiBkb2Vzbid0IGZpbmQgYW55dGhpbmcuIChUaW0KIENoYXNlKSAgRml4IGJ5IElhbiBLZWxsaW5nLCAyMDA4IEp1bCAxNC4KIAotIjpjb2xvcnNjaGVtZSIgd2l0aG91dCBhcmd1bWVudHMgc2hvdWxkIGVjaG8gdGhlIGN1cnJlbnQgY29sb3Igc2NoZW1lIG5hbWUuCi0KLUFmdGVyIHVzaW5nICI6cmVjb3ZlciIgb3IgcmVjb3ZlcmluZyBhIGZpbGUgaW4gYW5vdGhlciB3YXksICI6eCIgZG9lc24ndCBzYXZlCi13aGF0IHlvdSBzZWUuICBNYXJrIHRoZSBidWZmZXIgYXMgbW9kaWZpZWQ/ICBPbmx5IHdoZW4gdGhlIHRleHQgaXMgYWN0dWFsbHkKLWRpZmZlcmVudCBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlPwotCiBVc2UgIlxVMTIzNDU2NzgiIGZvciAzMiBiaXQgVW5pY29kZSBjaGFyYWN0ZXJzPyAgKFRvbnkgTWVjaGVseW5jaywgMjAwOQogQXByIDYpICBPciB1c2UgIlx1KDEyMzQ1NikiLCBzaW1pbGFyIHRvIFBlcmwuCiAKQEAgLTQyMCw2ICs0NTIsNyBAQAogUGF0Y2ggZm9yIFB5dGhvbiAzIHN1cHBvcnQuIChSb2xhbmQgUHVudGFpZXIsIDIwMDkgU2VwIDIyKQogSW5jbHVkZXMgY2hhbmdlcyBmb3Igb21uaWNvbXBsZXRpb24uCiBOZWVkcyB0byBiZSB0ZXN0ZWQuCitVcGRhdGUgMjAxMCBBcHIgMjAKIAogOCAgIFNvbWUgZmlsZSBzeXN0ZW1zIGFyZSBjYXNlLXNlbnNpdGl2ZSwgc29tZSBhcmUgbm90LiAgVHVybgogICAgIENBU0VfSU5TRU5TSVRJVkVfRklMRU5BTUUgaW50byBhbiBvcHRpb24sIGF0IGxlYXN0IGZvciBjb21wbGV0aW9uLgpAQCAtNDUzLDcgKzQ4Niw2IEBACiBTaG91bGQgY2xlYW4gdXAgdGhlIHdob2xlIGZ1bmN0aW9uLiAgQWxzbyBhbGxvdyBtb2RpZmllcnMgbGlrZSA8Uy1DaGFyLTMyPj8KIGZpbmRfc3BlY2lhbF9rZXkoKSBhbHNvIGhhcyB0aGlzIHByb2JsZW0uCiAKLVByb2JsZW0gd2l0aCAnbGFuZ21hcCcgcGFyc2luZy4gKEphbWVzIFZlZ2EsIDIwMDggSmFuIDI3KQogUHJvYmxlbSB3aXRoICdsYW5nbWFwJyBiZWluZyB1c2VkIG9uIHRoZSByaHMgb2YgYSBtYXBwaW5nLiAoTmlrb2xhaSBXZWlidWxsLAogMjAwOCBNYXkgMTQpCiAKQEAgLTQ5NiwxMCArNTI4LDYgQEAKIE1hYzogdHJvdWJsZSBjb21waWxpbmcgd2l0aCBNb3RpZiwgcmVxdWlyZXMgLS1kaXNhYmxlLWRhcndpbi4gKFJhZiwgMjAwOCBBdWcKIDEpICBSZXBseSBieSBCZW4gU2NobWlkdC4KIAotIjplbWVudSIgd29ya3Mgd2l0aCB0aGUgdHJhbnNsYXRlZCBtZW51IG5hbWUuICBTaG91bGQgYWxzbyB3b3JrIHdpdGggdGhlCi11bnRyYW5zbGF0ZWQgbmFtZS4gIFdvdWxkIG5lZWQgdG8gc3RvcmUgYm90aCB0aGUgRW5nbGlzaCBhbmQgdGhlIHRyYW5zbGF0ZWQKLW5hbWUuICBQYXRjaCBieSBCam9ybiBXaW5ja2xlciwgMjAwOCBNYXIgMzAuCi0KIEMndDogT24gdXRmLTggc3lzdGVtLCBlZGl0aW5nIGZpbGUgd2l0aCB1bWxhdXQgdGhyb3VnaCBHbm9tZSByZXN1bHRzIGluIFVSTAogd2l0aCAlbm4lbm4sIHdoaWNoIGlzIHRha2VuIGFzIHR3byBjaGFyYWN0ZXJzIGluc3RlYWQgb2Ygb25lLgogVHJ5IHRvIHJlcHJvZHVjZSBhdCB3b3JrLgpAQCAtNzMyLDEyICs3NjAsNiBAQAogRGVwZW5kcyBvbiAnc2hlbGxzbGFzaCcsICdzaGVsbHF1b3RlJyBhbmQgJ3NoZWxseHF1b3RlJywgYnV0IHNoZWxsZXNjYXBlKCkKIG9ubHkgdGFrZXMgJ3NoZWxsc2xhc2gnIGludG8gYWNjb3VudC4KIAotV2hlbiBmaWxlIGIgaXMgYSBsaW5rIHRvIGZpbGUgYSBhbmQgZWRpdGluZyBiIHR3aWNlIHlvdSBnZXQgdGhlIGNvcnJlY3QKLXdhcm5pbmcgZm9yIGV4aXN0aW5nIHN3YXAgZmlsZSwgYnV0IHdoZW4gdHJ5aW5nIHRvIHJlY292ZXIgaXQgZG9lc24ndCBmaW5kIHRoZQotc3dhcGZpbGUuIChNYXR0IFdvem5pc2tpLCAyMDA4IEF1ZyA1KSAgUGF0Y2ggYnkgSWFuIEtlbGxpbmcsIDIwMDggQXVnIDExLgotQW5vdGhlciBwYXRjaCBieSBKYW1lcyBWZWdhLCAyMDA4IEF1ZyAyMCwgYWdhaW4gMjAwOCBTZXAgMy4KLUFsc28gc29sdmVzOiBQcm9ibGVtIGZpbmRpbmcgc3dhcCBmaWxlIGZvciByZWNvdmVyeS4gKEdhdXRhbSBJeWVyLCAyMDA2IE1heSAxNikKLQogUHJlc3NpbmcgdGhlICdwYXN0ZXRvZ2dsZScga2V5IGRvZXNuJ3QgdXBkYXRlIHRoZSBzdGF0dXNsaW5lLiAoSmFuIENocmlzdG9waAogRWJlcnNiYWNoLCAyMDA4IEZlYiAxKQogCkBAIC0xMTI2LDIwICsxMTQ4LDUwIEBACiBWaW0gNy4zOgogLSAgIFVzZSBsYXRlc3QgYXV0b2NvbmYgKDIuNjUpCiAtICAgVXNlIE5TSVMgMi40NSwgaXQgaW5jbHVkZXMgV2luZG93cyA3IHN1cHBvcnQuCisJSW5jbHVkZSAiUmVxdWVzdEV4ZWN1dGlvbkxldmVsIGhpZ2hlc3QiCisJUm9uJ3MgdmVyc2lvbjogaHR0cDovL2Rldi5yb253YXJlLm9yZy9wL3ZpbS9maW5mbz9uYW1lPWd2aW0ubnNpCistICAgU3VwcGx5IGEgNjQgYml0IHZlcnNpb24gb2YgZ3ZpbWV4dC5kbGwgZm9yIDY0IGJpdCB3aW5kb3dzLgorICAgIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC92aW0td2luMzI2NC8KKyAgICBHdmltIGNhbiBiZSAzMiBiaXQuCiAtICAgSW5jbHVkZSBhbGwgZmlsZXMgaW4gZGlzdHJvLCBubyAiZXh0cmEiIGFuZCAibGFuZyIgcGFja2FnZS4KIC0gICBDcmVhdGUgTWVyY3VyaWFsIHJlcG9zaXRvcnkuCiAtICAgRWFzaWVyL3N0YW5kYXJkIHdheSB0byBkaXNhYmxlIGRlZmF1bHQgcGx1Z2lucy4KIC0gICBBZGQgcGF0Y2ggZm9yICdyZWxhdGl2ZW51bWJlcicgb3B0aW9uPyAgTWFya3VzIEhlaWRlbGJlcmcsIDIwMDggSnVuIDI3LgorICAgIFVwZGF0ZSAyMDEwIE1heSAyLgorOCAgIFBlcnNpc3RlbnQgdW5kbzogc3RvcmUgdW5kbyBpbiBhIGZpbGUuICBQYXRjaCBieSBKb3JkYW4gTGV3aXMsIDIwMDkgRmViCisgICAgMjAuICBSZXBvc3QgMjAwOSBOb3YgMTYuCisgICAgLT4gZGlzYWJsZSBieSBkZWZhdWx0IGFuZCBhZGQgcmVtYXJrIHRoYXQgaXQncyBuZXcgYW5kIG1heSBmYWlsLgorICAgIFRlc3RpbmcgcmVtYXJrcyBieSBDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTAgTWF5IDE6CisJLSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIHN5bWxpbmtzIChKb3JkYW4gd2lsbCBsb29rIGludG8gaXQpCisJLSBvbGQgdW5kbyBmaWxlcyB0ZW5kIHRvIHBpbGUgdXAKKyAgICAgICAgLSA6cnVuZG8gc2hvdWxkIG91dHB1dCBhIG1lc3NhZ2UgKEpvcmRhbiB3aWxsIGZpeCB0aGlzKQorICAgIE9sZGVyIGlkZWFzOgorICAgIFVzZSB0aW1lc3RhbXBzLCBzbyB0aGF0IGEgdmVyc2lvbiBhIGNlcnRhaW4gdGltZSBhZ28gY2FuIGJlIGZvdW5kIGFuZCBpbmZvCisgICAgYmVmb3JlIHNvbWUgdGltZS9kYXRlIGNhbiBiZSBmbHVzaGVkLiAndW5kb3BlcnNpc3QnIGdpdmVzIG1heGltdW0gdGltZSB0bworICAgIGtlZXAgdW5kbzogIjNoIiwgIjFkIiwgIjJ3IiwgIjF5IiwgZXRjLiAgRm9yIHRoZSBmaWxlIHVzZSBkb3QgYW5kCisgICAgZXh0ZW5zaW9uOiAiLmZpbGVuYW1lLnVufiIgKGxpa2Ugc3dhcGZpbGUgYnV0ICJ1bn4iIGluc3RlYWQgb2YgInN3cCIpLgogLSAgIEFkZCBibG93ZmlzaCBlbmNyeXB0aW9uLiAgT3BlbnNzbCBoYXMgYW4gaW1wbGVtZW50YXRpb24uICBBbHNvIGJ5IFBhdWwKICAgICBLb2NoZXIgKExHUEwpLCBjbG9zZSB0byBvcmlnaW5hbC4gIE1vaHNpbiBhbHNvIGhhcyBzb21lIGlkZWFzLgogICAgIFRha2UgZm91ciBieXRlcyBhbmQgdHVybiB0aGVtIGludG8gdW5zaWduZWQgdG8gYXZvaWQgYnl0ZS1vcmRlciBwcm9ibGVtcy4KICAgICBOZWVkIHRvIGJ1ZmZlciB1cCB0byA3IGJ5dGVzIHRvIGFsaWduIG9uIDggYnl0ZSBib3VuZGFyaWVzLgotICAgIFBhdGNoIGZyb20gTW9zaGluLCAyMDEwIE1hciAxNS4KKyAgICBQYXRjaCBmcm9tIE1vc2hpbjogMjAxMCBNYXkgOCwgYWRkaXRpb24gTWF5IDkuCistICAgUGF0Y2ggdG8gc3VwcG9ydCBuZXRiZWFucyBpbiBVbml4IGNvbnNvbGUgVmltLiAoWGF2aWVyIGRlIEdheWUsIDIwMDkgQXByCisgICAgMjYpIE5vdyB3aXRoIE1lcmN1cmlhbCByZXBvc2l0b3J5ICgyMDEwIEphbiAyKQogLSAgICI6e3JhbmdlfXNvdXJjZSI6IHNvdXJjZSB0aGUgbGluZXMgZnJvbSB0aGUgY3VycmVudCBmaWxlLgogCVlvdSBjYW4gYWxyZWFkeSB5YW5rIGxpbmVzIGFuZCB1c2UgOkAiIHRvIGV4ZWN1dGUgdGhlbS4KIAlNb3N0IG9mIGRvX3NvdXJjZSgpIHdvdWxkIG5vdCBiZSB1c2VkLCBuZWVkIGEgbmV3IGZ1bmN0aW9uLgogCUl0J3MgZWFzeSB3aGVuIG5vdCBkb2luZyBicmVha3BvaW50cyBvciBwcm9maWxpbmcuCiAtIFBhdGNoIGZvciBMaXNwIHN1cHBvcnQgd2l0aCBFQ0wgKE1pa2FlbCBKYW5zc29uLCAyMDA4IE9jdCAyNSkKKy0gR3ZpbWV4dCBwYXRjaCB0byBzdXBwb3J0IHdpZGUgZmlsZSBuYW1lcy4gKFN6YWJvbGNzIEhvcnZhdCAyMDA4IFNlcCAxMCkKKy0gUGF0Y2ggdG8gc3VwcG9ydCBuZXRiZWFucyBmb3IgTWFjLiAoS2F6dWtpIFNha2Ftb3RvLCAyMDA5IEp1biAyNSkKKy0gUGF0Y2ggdG8gc3VwcG9ydCBjbGlwYm9hcmQgZm9yIE1hYyB0ZXJtaW5hbC4gKEpqZ29kIEppYW5nLCAyMDA5IEF1ZyAxKQorLSBQYXRjaCB0byBzdXBwb3J0IDpicm93c2UgZm9yIG1vcmUgY29tbWFuZHMuIChMZWNoIExvcmVucywgMjAwOSBKdWwgMTgpCistIFBhdGNoIHRvIGFkZCBkaWZmIGZ1bmN0aW9uYWxpdHkgdG8gMmh0bWwudmltLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDA5IERlYworICAxNSkKKy0gQWZ0ZXIgdXNpbmcgIjpyZWNvdmVyIiBvciByZWNvdmVyaW5nIGEgZmlsZSBpbiBhbm90aGVyIHdheSwgIjp4IiBkb2Vzbid0CisgIHNhdmUgd2hhdCB5b3Ugc2VlLiAgTWFyayB0aGUgYnVmZmVyIGFzIG1vZGlmaWVkPyAgT25seSB3aGVuIHRoZSB0ZXh0IGlzCisgIGFjdHVhbGx5IGRpZmZlcmVudCBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlLgorLSBBZGQgZml4ZXMgZm9yIDcuMiB0byB2ZXJzaW9uNy50eHQKIAogCiBNb3JlIHBhdGNoZXM6CkBAIC0yMTYxLDYgKzIyMTMsNyBAQAogICAgIGh0dHA6Ly92aW1zaGVsbC53YW5hLmF0CiAtICAgQWRkIEx1YSBpbnRlcmZhY2U/IChXb2xmZ2FuZyBPZXJ0bCkgcGF0Y2ggYnkgTHVpcyBDYXJ2YWxobywgMjAwOCBTZXAgNQogCVBhdGNoIGZvciBNYWtlX21pbmcubWFrIGZyb20gUGF1bCBNb29yZSAoMjAwOCBTZXAgMSkKKyAgICAgIGh0dHA6Ly92aW0taWZsdWEuZ29vZ2xlY29kZS5jb20vZmlsZXMvdmltNzItbHVhLTAuNy5wYXRjaC5negogOCAgIEFkZCBhIGNvbW1hbmQgdG8ganVtcCB0byBhIGNlcnRhaW4ga2luZCBvZiB0YWcuICBBbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5CiAgICAgdmFsdWVzIGZvciB0aGUgb3B0aW9uYWwgZmllbGRzLiAgRS5nLiwgIjp0YWcgc2l6ZSB0eXBlPW0iLgogICAgIEFsc28gYWxsb3cgc3BlY2lmeWluZyB0aGUgZmlsZSBhbmQgY29tbWFuZCwgc28gdGhhdCB0aGUgcmVzdWx0IG9mCkBAIC0zMjI1LDggKzMyNzgsNiBAQAogOCAgIFVzZSBhbm90aGVyIG9wdGlvbiB0aGFuICd1cGRhdGV0aW1lJyBmb3IgdGhlIEN1cnNvckhvbGQgZXZlbnQuICBUaGUgdHdvCiAgICAgdGhpbmdzIGFyZSB1bnJlbGF0ZWQgZm9yIHRoZSB1c2VyIChidXQgdGhlIGltcGxlbWVudGF0aW9uIGlzIG1vcmUKICAgICBkaWZmaWN1bHQpLgotOCAgIEFkZCBhbiBldmVudCBsaWtlIEN1cnNvckhvbGQgdGhhdCBpcyB0cmlnZ2VyZWQgcmVwZWF0ZWRseSwgbm90IGp1c3Qgb25jZQotICAgIGFmdGVyIHR5cGluZyBzb21ldGhpbmcuCiA3ICAgQWRkIGF1dG9jb21tYW5kIGV2ZW50IGZvciB3aGVuIGEgYnVmZmVyIGNhbm5vdCBiZSBhYmFuZG9uZWQuICBTbyB0aGF0IHRoZQogICAgIHVzZXIgY2FuIGRlZmluZSB0aGUgYWN0aW9uIHRha2luZyAoYXV0b3dyaXRlLCBkaWFsb2csIGZhaWwpIGJhc2VkIG9uIHRoZQogICAgIGtpbmQgb2YgZmlsZS4gKFlha292IExlcm5lcikgIE9yIGlzIEJ1ZkxlYXZlIHN1ZmZpY2llbnQ/CkBAIC0zOTY0LDEzICs0MDE1LDYgQEAKICAgICBzdG9yaW5nIHRoZSBkaWZmZXJlbmNlcy4KIDggICBTZWFyY2ggZm9yIHBhdHRlcm4gaW4gdW5kbyB0cmVlLCBzaG93aW5nIHdoZW4gaXQgaGFwcGVuZWQgYW5kIHRoZSB0ZXh0CiAgICAgc3RhdGUsIHNvIHRoYXQgeW91IGNhbiBqdW1wIHRvIGl0LgotLSAgIFBlcnNpc3RlbnQgdW5kbzogc3RvcmUgdW5kbyBpbiBhIGZpbGUuICBQYXRjaCBieSBKb3JkYW4gTGV3aXMsIDIwMDkgRmViCi0gICAgMjAuICBSZXBvc3QgMjAwOSBOb3YgMTYuCi0gICAgT2xkZXIgaWRlYXM6Ci0gICAgVXNlIHRpbWVzdGFtcHMsIHNvIHRoYXQgYSB2ZXJzaW9uIGEgY2VydGFpbiB0aW1lIGFnbyBjYW4gYmUgZm91bmQgYW5kIGluZm8KLSAgICBiZWZvcmUgc29tZSB0aW1lL2RhdGUgY2FuIGJlIGZsdXNoZWQuICd1bmRvcGVyc2lzdCcgZ2l2ZXMgbWF4aW11bSB0aW1lIHRvCi0gICAga2VlcCB1bmRvOiAiM2giLCAiMWQiLCAiMnciLCAiMXkiLCBldGMuICBGb3IgdGhlIGZpbGUgdXNlIGRvdCBhbmQKLSAgICBleHRlbnNpb246ICIuZmlsZW5hbWUudW5+IiAobGlrZSBzd2FwZmlsZSBidXQgInVufiIgaW5zdGVhZCBvZiAic3dwIikuCiAtICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1bmRvIGFsbCB0aGUgY29tbWFuZHMgZnJvbSBhIG1hcHBpbmcsIGluY2x1ZGluZyBhCiAgICAgdHJhaWxpbmcgdW5maW5pc2hlZCBjb21tYW5kLCBlLmcuIGZvciAiOm1hcCBLIGlYXltyIi4KIC0gICBXaGVuIGFjY2lkZW50YWxseSBoaXR0aW5nICJSIiBpbnN0ZWFkIG9mIEN0cmwtUiwgZnVydGhlciBDdHJsLVIgaXMgbm90CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjcudHh0IGIvcnVudGltZS9kb2MvdXNyXzI3LnR4dAppbmRleCBmMDY1MTVkLi5hNzhkM2U3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA3IE5vdiAxMAorKnVzcl8yNy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBNYXIgMjgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTQwLDcgKzQwLDcgQEAKIAogCTpzZXQgbm9pZ25vcmVjYXNlCiAKLUJ1dCBsZXRzIGtlZXAgaXQgc2V0LCBhbmQgc2VhcmNoIGZvciAiSU5DTFVERSIuICBJdCB3aWxsIG1hdGNoIGV4YWN0bHkgdGhlCitCdXQgbGV0J3Mga2VlcCBpdCBzZXQsIGFuZCBzZWFyY2ggZm9yICJJTkNMVURFIi4gIEl0IHdpbGwgbWF0Y2ggZXhhY3RseSB0aGUKIHNhbWUgdGV4dCBhcyAiaW5jbHVkZSIgZGlkLiAgTm93IHNldCB0aGUgJ3NtYXJ0Y2FzZScgb3B0aW9uOiA+CiAKIAk6c2V0IGlnbm9yZWNhc2Ugc21hcnRjYXNlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IGQyNjA1MjIuLjZlYzZlY2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZhcmlvdXMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAwOSBOb3YgMTEKKyp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMTAgTWF5IDEzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggNmZlMTE2YS4uNzc4NDA3NSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yLiAgTGFzdCBjaGFuZ2U6IDIwMDkgRGVjIDAyCisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDEwIE1heSAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTYsNiArNTYsMTEgQEAKIEFkZGVkCQkJCQl8YWRkZWQtNy4yfAogRml4ZWQJCQkJCXxmaXhlZC03LjJ8CiAKK1ZFUlNJT04gNy4zCQkJfHZlcnNpb24tNy4zfAorQ2hhbmdlZAkJCQkJfGNoYW5nZWQtNy4zfAorQWRkZWQJCQkJCXxhZGRlZC03LjN8CitGaXhlZAkJCQkJfGZpeGVkLTcuM3wKKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBJTkNPTVBBVElCTEUgQ0hBTkdFUwkJCQkqaW5jb21wYXRpYmxlLTcqCiAKQEAgLTcxNDIsNSArNzE0NywzNCBAQAogCiBNYWM6IENvdWxkIG5vdCBidWlsZCB3aXRoIFBlcmwgaW50ZXJmYWNlLgogCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1ZFUlNJT04gNy4zCQkJCQkJKnZlcnNpb24tNy4zKgorCitUaGlzIHNlY3Rpb24gaXMgYWJvdXQgaW1wcm92ZW1lbnRzIG1hZGUgYmV0d2VlbiB2ZXJzaW9uIDcuMiBhbmQgNy4zLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlIGFuZCB0aGVyZSBhcmUgYSBmZXcgbmV3IGZlYXR1cmVzLgorCisKK0NoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNy4zKgorLS0tLS0tLQorCitUaGUgZXh0cmEgYW5kIGxhbmd1YWdlIGZpbGVzIGFyZSBubyBsb25nZXIgZGlzdHJpYnV0ZWQgc2VwYXJhdGVseS4KK1RoZSBmaWxlcyBmb3IgYWxsIHN5c3RlbXMgYXJlIGluY2x1ZGVkIGluIG9uZSBkaXN0cmlidXRpb24uCisKKworQWRkZWQJCQkJCQkJKmFkZGVkLTcuMyoKKy0tLS0tCisKK05ldyBzeW50YXggZmlsZXM6CisKK05ldyBzcGVsbCBmaWxlczoKKworQnJldG9uLiAoRG9taW5pcXVlIFBlbGxlKQorCisKK0ZpeGVkCQkJCQkJCSpmaXhlZC03LjMqCistLS0tLQorCisKIAogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0IGIvcnVudGltZS9kb2Mvd2luZG93cy50eHQKaW5kZXggMDQwYmM4OC4uMjBlM2RhZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvd2luZG93cy50eHQKKysrIGIvcnVudGltZS9kb2Mvd2luZG93cy50eHQKQEAgLTEsNCArMSw0IEBACi0qd2luZG93cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMi4gIExhc3QgY2hhbmdlOiAyMDA5IFNlcCAyMworKndpbmRvd3MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjIuICBMYXN0IGNoYW5nZTogMjAxMCBBcHIgMTIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ2NywxMSArNDY3LDExIEBACiAKIDpyZXNbaXplXSAtTgkJCQkJKjpyZXMqICo6cmVzaXplKiAqQ1RSTC1XXy0qCiBDVFJMLVcgLQlEZWNyZWFzZSBjdXJyZW50IHdpbmRvdyBoZWlnaHQgYnkgTiAoZGVmYXVsdCAxKS4KLQkJSWYgdXNlZCBhZnRlciAndmVydGljYWwnOiBkZWNyZWFzZSB3aWR0aCBieSBOLgorCQlJZiB1c2VkIGFmdGVyIHw6dmVydGljYWx8OiBkZWNyZWFzZSB3aWR0aCBieSBOLgogCiA6cmVzW2l6ZV0gK04JCQkJCSpDVFJMLVdfKyoKIENUUkwtVyArCUluY3JlYXNlIGN1cnJlbnQgd2luZG93IGhlaWdodCBieSBOIChkZWZhdWx0IDEpLgotCQlJZiB1c2VkIGFmdGVyICd2ZXJ0aWNhbCc6IGluY3JlYXNlIHdpZHRoIGJ5IE4uCisJCUlmIHVzZWQgYWZ0ZXIgfDp2ZXJ0aWNhbHw6IGluY3JlYXNlIHdpZHRoIGJ5IE4uCiAKIDpyZXNbaXplXSBbTl0KIENUUkwtVyBDVFJMLV8JCQkJCSpDVFJMLVdfQ1RSTC1fKiAqQ1RSTC1XX18qCmRpZmYgLS1naXQgYS9ydW50aW1lL2ZpbGV0eXBlLnZpbSBiL3J1bnRpbWUvZmlsZXR5cGUudmltCmluZGV4IDE0MGYwYzUuLjE3MDVmZGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZmlsZXR5cGUudmltCisrKyBiL3J1bnRpbWUvZmlsZXR5cGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDEwIEZlYiAyNAorIiBMYXN0IENoYW5nZToJMjAxMCBNYXkgMTQKIAogIiBMaXN0ZW4gdmVyeSBjYXJlZnVsbHksIEkgd2lsbCBzYXkgdGhpcyBvbmx5IG9uY2UKIGlmIGV4aXN0cygiZGlkX2xvYWRfZmlsZXR5cGVzIikKQEAgLTMyNCw2ICszMjQsOSBAQAogIiBDIwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouY3MJCQlzZXRmIGNzCiAKKyIgQ2FiYWwKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNhYmFsICAgICAgIAkJc2V0ZiBjYWJhbAorCiAiIENkcmRhbyBUT0MKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnRvYwkJCXNldGYgY2RydG9jCiAKQEAgLTMzMyw2ICszMzYsOSBAQAogIiBDZmVuZ2luZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIGNmZW5naW5lLmNvbmYJCXNldGYgY2ZlbmdpbmUKIAorIiBDaGFpU2NyaXB0CithdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKi5jaGFpCQkJc2V0ZiBjaGFpc2NyaXB0CisKICIgQ29tc2hhcmUgRGltZW5zaW9uIERlZmluaXRpb24gTGFuZ3VhZ2UKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmNkbAkJCXNldGYgY2RsCiAKQEAgLTc2NCw3ICs3NzAsNyBAQAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHNjLCouaHNtCQlzZXRmIGhhbXN0ZXIKIAogIiBIYXNrZWxsCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5ocwkJCXNldGYgaGFza2VsbAorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHMsKi5ocy1ib290IAkJc2V0ZiBoYXNrZWxsCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5saHMJCQlzZXRmIGxoYXNrZWxsCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5jaHMJCQlzZXRmIGNoYXNrZWxsCiAKQEAgLTEzODEsNiArMTM4NywxMCBAQAogIiBQUFdpemFyZAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaXQsKi5paAkJCXNldGYgcHB3aXoKIAorIiBPYmogM0QgZmlsZSBmb3JtYXQKKyIgVE9ETzogaXMgdGhlcmUgYSB3YXkgdG8gYXZvaWQgTVMtV2luZG93cyBPYmplY3QgZmlsZXM/CithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5vYmogICAgICAgICAJCXNldGYgb2JqCisKICIgT3JhY2xlIFBybypDL0MrKwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoucGMJCQlzZXRmIHByb2MKIApAQCAtMTkzOCw2ICsxOTQ4LDkgQEAKICIgU3Vkb2VycwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC9ldGMvc3Vkb2VycyxzdWRvZXJzLnRtcAlzZXRmIHN1ZG9lcnMKIAorIiBTVkcgKFNjYWxhYmxlIFZlY3RvciBHcmFwaGljcykKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnN2ZwkJCXNldGYgc3ZnCisKICIgSWYgdGhlIGZpbGUgaGFzIGFuIGV4dGVuc2lvbiBvZiAndCcgYW5kIGlzIGluIGEgZGlyZWN0b3J5ICd0JyB0aGVuIGl0IGlzCiAiIGFsbW9zdCBjZXJ0YWlubHkgYSBQZXJsIHRlc3QgZmlsZS4KICIgSWYgdGhlIGZpcnN0IGxpbmUgc3RhcnRzIHdpdGggJyMnIGFuZCBjb250YWlucyAncGVybCcgaXQncyBwcm9iYWJseSBhIFBlcmwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbQppbmRleCAwMGEwMjViLi5jZDIxZTkzIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9kZWJjaGFuZ2Vsb2cudmltCkBAIC0xLDE0ICsxLDE0IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZSAoR1VJIG1lbnUsIGZvbGRpbmcgYW5kIGNvbXBsZXRpb24pCi0iIExhbmd1YWdlOglEZWJpYW4gQ2hhbmdlbG9nCi0iIE1haW50YWluZXI6CURlYmlhbiBWaW0gTWFpbnRhaW5lcnMgPHBrZy12aW0tbWFpbnRhaW5lcnNAbGlzdHMuYWxpb3RoLmRlYmlhbi5vcmc+Ci0iIEZvcm1lciBNYWludGFpbmVyczoJTWljaGFlbCBQaWVmZWwgPHBpZWZlbEBpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KLSIJCQlTdGVmYW5vIFphY2NoaXJvbGkgPHphY2tAZGViaWFuLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDgtMDMtMDgKLSIgTGljZW5zZToJR05VIEdQTCwgdmVyc2lvbiAyLjAgb3IgbGF0ZXIKLSIgVVJMOgkJaHR0cDovL2dpdC5kZWJpYW4ub3JnLz9wPXBrZy12aW0vdmltLmdpdDthPWJsb2JfcGxhaW47Zj1ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW07aGI9ZGViaWFuCisiIExhbmd1YWdlOiAgICAgRGViaWFuIENoYW5nZWxvZworIiBNYWludGFpbmVyOiAgIERlYmlhbiBWaW0gTWFpbnRhaW5lcnMgPHBrZy12aW0tbWFpbnRhaW5lcnNAbGlzdHMuYWxpb3RoLmRlYmlhbi5vcmc+CisiIEZvcm1lciBNYWludGFpbmVyczogICBNaWNoYWVsIFBpZWZlbCA8cGllZmVsQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgorIiAgICAgICAgICAgICAgICAgICAgICAgU3RlZmFubyBaYWNjaGlyb2xpIDx6YWNrQGRlYmlhbi5vcmc+CisiIExhc3QgQ2hhbmdlOiAgMjAxMC0wNC0yOQorIiBMaWNlbnNlOiAgICAgIEdOVSBHUEwsIHZlcnNpb24gMi4wIG9yIGxhdGVyCisiIFVSTDogICAgICAgICAgaHR0cDovL2hnLmRlYmlhbi5vcmcvaGcvcGtnLXZpbS92aW0vcmF3LWZpbGUvdGlwL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbQogCiAiIEJ1ZyBjb21wbGV0aW9uIHJlcXVpcmVzIGFwdC1saXN0YnVncyBpbnN0YWxsZWQgZm9yIERlYmlhbiBwYWNrYWdlcyBvcgotIiBweXRob24tbGF1bmNocGFkLWJ1Z3MgaW5zdGFsbGVkIGZvciBVYnVudHUgcGFja2FnZXMKKyIgcHl0aG9uLWxhdW5jaHBhZGxpYiBpbnN0YWxsZWQgZm9yIFVidW50dSBwYWNrYWdlcwogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKICAgZmluaXNoCkBAIC0zMjksMTcgKzMyOSwyNiBAQAogICAgICAgcHl0aG9uIDw8IEVPRgogaW1wb3J0IHZpbQogdHJ5OgotICAgIGZyb20gbGF1bmNocGFkYnVncyBpbXBvcnQgY29ubmVjdG9yCi0gICAgYnVnbGlzdCA9IGNvbm5lY3Rvci5Db25uZWN0QnVnTGlzdCgpCi0gICAgYmwgPSBsaXN0KGJ1Z2xpc3QoJ2h0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlLyVzJyAlIHZpbS5ldmFsKCdwa2dzcmMnKSkpCi0gICAgYmwuc29ydChOb25lLCBpbnQpCi0gICAgbGlzdHN0ciA9ICdbJwotICAgIGZvciBidWcgaW4gYmw6Ci0gICAgICAgIGxpc3RzdHIgKz0gIicjJWQgLSAlcycsIiAlIChpbnQoYnVnKSwgYnVnLnN1bW1hcnkucmVwbGFjZSgnXCcnLCAnXCdcJycpKQotICAgIGxpc3RzdHIgKz0gJ10nCi0gICAgdmltLmNvbW1hbmQoJ3NpbGVudCBsZXQgYnVnX2xpbmVzID0gJXMnICUgbGlzdHN0cikKKyAgICBmcm9tIGxhdW5jaHBhZGxpYi5sYXVuY2hwYWQgaW1wb3J0IExhdW5jaHBhZAorICAgIGZyb20gbGF6ci5yZXN0ZnVsY2xpZW50LmVycm9ycyBpbXBvcnQgSFRUUEVycm9yCisgICAgIyBsb2dpbiBhbm9ueW1vdXNseQorICAgIGxwID0gTGF1bmNocGFkLmxvZ2luX2Fub255bW91c2x5KCdkZWJjaGFuZ2Vsb2cudmltJywgJ3Byb2R1Y3Rpb24nKQorICAgIHVidW50dSA9IGxwLmRpc3RyaWJ1dGlvbnNbJ3VidW50dSddCisgICAgdHJ5OgorICAgICAgICBzcCA9IHVidW50dS5nZXRTb3VyY2VQYWNrYWdlKG5hbWU9dmltLmV2YWwoJ3BrZ3NyYycpKQorICAgICAgICBzdGF0dXMgPSAoJ05ldycsICdJbmNvbXBsZXRlJywgJ0NvbmZpcm1lZCcsICdUcmlhZ2VkJywKKyAgICAgICAgICAgICAgICAgICdJbiBQcm9ncmVzcycsICdGaXggQ29tbWl0dGVkJykKKyAgICAgICAgdGFza2xpc3QgPSBzcC5zZWFyY2hUYXNrcyhzdGF0dXM9c3RhdHVzLCBvcmRlcl9ieT0naWQnKQorICAgICAgICBsaXN0c3RyID0gJ1snCisgICAgICAgIGZvciB0YXNrIGluIHRhc2tsaXN0OgorICAgICAgICAgICAgYnVnID0gdGFzay5idWcKKyAgICAgICAgICAgIGxpc3RzdHIgKz0gIicjJWQgLSAlcycsIiAlIChidWcuaWQsIGJ1Zy50aXRsZS5yZXBsYWNlKCdcJycsICdcJ1wnJykpCisgICAgICAgIGxpc3RzdHIgKz0gJ10nCisgICAgICAgIHZpbS5jb21tYW5kKCdzaWxlbnQgbGV0IGJ1Z19saW5lcyA9ICVzJyAlIGxpc3RzdHIuZW5jb2RlKCd1dGYtOCcpKQorICAgIGV4Y2VwdCBIVFRQRXJyb3I6CisgICAgICAgIHBhc3MKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICB2aW0uY29tbWFuZCgnZWNob2VyciBcJ3B5dGhvbi1sYXVuY2hwYWQtYnVncyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgdG8gdXNlIExhdW5jaHBhZCBidWcgY29tcGxldGlvblwnJykKKyAgICB2aW0uY29tbWFuZCgnZWNob2VyciBcJ3B5dGhvbi1sYXVuY2hwYWRsaWIgPj0gMS41LjQgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIHRvIHVzZSBMYXVuY2hwYWQgYnVnIGNvbXBsZXRpb25cJycpCiBFT0YKICAgICBlbHNlCiAgICAgICBpZiAhIGZpbGVyZWFkYWJsZSgnL3Vzci9zYmluL2FwdC1saXN0YnVncycpCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2RlYmNvbnRyb2wudmltIGIvcnVudGltZS9mdHBsdWdpbi9kZWJjb250cm9sLnZpbQppbmRleCAyZmIyZWU3Li43ODcxZDk4IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2RlYmNvbnRyb2wudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZGViY29udHJvbC52aW0KQEAgLTEsOSArMSw5IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZSAoR1VJIG1lbnUgYW5kIGZvbGRpbmcpCi0iIExhbmd1YWdlOglEZWJpYW4gY29udHJvbCBmaWxlcwotIiBNYWludGFpbmVyOglEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgotIiBGb3JtZXIgTWFpbnRhaW5lcjoJUGllcnJlIEhhYm91eml0IDxtYWRjb2RlckBkZWJpYW4ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwOC0wMy0wOAotIiBVUkw6CQlodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvZnRwbHVnaW4vZGViY29udHJvbC52aW07aGI9ZGViaWFuCisiIExhbmd1YWdlOiAgICAgRGViaWFuIGNvbnRyb2wgZmlsZXMKKyIgTWFpbnRhaW5lcjogICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgorIiBGb3JtZXIgTWFpbnRhaW5lcjogICAgUGllcnJlIEhhYm91eml0IDxtYWRjb2RlckBkZWJpYW4ub3JnPgorIiBMYXN0IENoYW5nZTogIDIwMDgtMDMtMDgKKyIgVVJMOiAgICAgICAgICBodHRwOi8vaGcuZGViaWFuLm9yZy9oZy9wa2ctdmltL3ZpbS9yYXctZmlsZS90aXAvcnVudGltZS9mdHBsdWdpbi9kZWJjb250cm9sLnZpbQogCiAiIERvIHRoZXNlIHNldHRpbmdzIG9uY2UgcGVyIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jaGFpc2NyaXB0LnZpbSBiL3J1bnRpbWUvaW5kZW50L2NoYWlzY3JpcHQudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0N2UxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2luZGVudC9jaGFpc2NyaXB0LnZpbQpAQCAtMCwwICsxLDUwIEBACisiIFZpbSBpbmRlbnQgZmlsZQorIiBMYW5ndWFnZTogICAgIENoYWlTY3JpcHQKKyIgTWFpbnRhaW5lcjoJSmFzb24gVHVybmVyIDxsZWZ0aWN1cyAnYXQnIGdtYWlsIGNvbT4KKworIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9pbmRlbnQgPSAxCisKK3NldGxvY2FsIGluZGVudGV4cHI9R2V0Q2hhaVNjcmlwdEluZGVudCgpCitzZXRsb2NhbCBhdXRvaW5kZW50CisKKyIgT25seSBkZWZpbmUgdGhlIGZ1bmN0aW9uIG9uY2UuCitpZiBleGlzdHMoIipHZXRDaGFpU2NyaXB0SW5kZW50IikKKyAgZmluaXNoCitlbmRpZgorCitmdW5jdGlvbiEgR2V0Q2hhaVNjcmlwdEluZGVudCgpCisgICIgRmluZCBhIG5vbi1ibGFuayBsaW5lIGFib3ZlIHRoZSBjdXJyZW50IGxpbmUuCisgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKHY6bG51bSAtIDEpCisKKyAgIiBIaXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLCB1c2UgemVybyBpbmRlbnQuCisgIGlmIGxudW0gPT0gMAorICAgIHJldHVybiAwCisgIGVuZGlmCisKKyAgIiBBZGQgYSAnc2hpZnR3aWR0aCcgYWZ0ZXIgbGluZXMgdGhhdCBzdGFydCBhIGJsb2NrOgorICAiIGxpbmVzIGNvbnRhaW5pbmcgYSB7CisgIGxldCBpbmQgPSBpbmRlbnQobG51bSkKKyAgbGV0IGZsYWcgPSAwCisgIGxldCBwcmV2bGluZSA9IGdldGxpbmUobG51bSkKKyAgaWYgcHJldmxpbmUgPX4gJ14uKnsuKicKKyAgICBsZXQgaW5kID0gaW5kICsgJnNoaWZ0d2lkdGgKKyAgICBsZXQgZmxhZyA9IDEKKyAgZW5kaWYKKworICAiIFN1YnRyYWN0IGEgJ3NoaWZ0d2lkdGgnIGFmdGVyIGxpbmVzIGNvbnRhaW5pbmcgYSB7IGZvbGxvd2VkIGJ5IGEgfQorICAiIHRvIGtlZXAgaXQgYmFsYW5jZWQKKyAgaWYgZmxhZyA9PSAxICYmIHByZXZsaW5lID1+ICcuKnsuKn0uKicKKyAgICBsZXQgaW5kID0gaW5kIC0gJnNoaWZ0d2lkdGgKKyAgZW5kaWYKKworICAiIFN1YnRyYWN0IGEgJ3NoaWZ0d2lkdGgnIG9uIGxpbmVzIGVuZGluZyB3aXRoIH0KKyAgaWYgZ2V0bGluZSh2OmxudW0pID1+ICdeXHMqXCUofVwpJworICAgIGxldCBpbmQgPSBpbmQgLSAmc2hpZnR3aWR0aAorICBlbmRpZgorCisgIHJldHVybiBpbmQKK2VuZGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9wZXJsNi52aW0gYi9ydW50aW1lL2luZGVudC9wZXJsNi52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUxNTllMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L3Blcmw2LnZpbQpAQCAtMCwwICsxLDEzNiBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgICBQZXJsIDYKKyIgTWFpbnRhaW5lcjogICBBbmR5IExlc3RlciA8YW5keUBwZXRkYW5jZS5jb20+CisiIFVSTDogICAgICAgICAgaHR0cDovL2dpdGh1Yi5jb20vcGV0ZGFuY2UvdmltLXBlcmwvdHJlZS9tYXN0ZXIKKyIgTGFzdCBDaGFuZ2U6ICAyMDA5LTA3LTA0CisiIENvbnRyaWJ1dG9yczogQW5keSBMZXN0ZXIgPGFuZHlAcGV0ZGFuY2UuY29tPgorIiAgICAgICAgICAgICAgIEhpbnJpayDDlnJuIFNpZ3Vyw7Bzc29uIDxoaW5yaWsuc2lnQGdtYWlsLmNvbT4KKyIKKyIgQWRhcHRlZCBmcm9tIFBlcmwgaW5kZW50IGZpbGUgYnkgUmFmYWVsIEdhcmNpYS1TdWFyZXogPHJnYXJjaWFzdWFyZXpAZnJlZS5mcj4KKworIiBTdWdnZXN0aW9ucyBhbmQgaW1wcm92ZW1lbnRzIGJ5IDoKKyIgICBBYXJvbiBKLiBTaGVybWFuICh1c2Ugc3ludGF4IGZvciBoaW50cykKKyIgICBBcnRlbSBDaHVwcmluYSAocGxheSBuaWNlIHdpdGggZm9sZGluZykKKyIgVE9ETzoKKyIgVGhpcyBmaWxlIHN0aWxsIHJlbGllcyBvbiBzdHVmZiBmcm9tIHRoZSBQZXJsIDUgc3ludGF4IGZpbGUsIHdoaWNoIFBlcmwgNgorIiBkb2VzIG5vdCB1c2UuCisiCisiIFRoaW5ncyB0aGF0IGFyZSBub3Qgb3Igbm90IHByb3Blcmx5IGluZGVudGVkICh5ZXQpIDoKKyIgLSBDb250aW51ZWQgc3RhdGVtZW50cworIiAgICAgcHJpbnQgImZvbyIsCisiICAgICAgICJiYXIiOworIiAgICAgcHJpbnQgImZvbyIKKyIgICAgICAgaWYgYmFyKCk7CisiIC0gTXVsdGlsaW5lIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKG0vL3gpCisiIChUaGUgZm9sbG93aW5nIHByb2JhYmx5IG5lZWRzIG1vZGlmeWluZyB0aGUgcGVybCBzeW50YXggZmlsZSkKKyIgLSBxdygpIGxpc3RzCisiIC0gSGVyZWRvY3Mgd2l0aCB0ZXJtaW5hdG9ycyB0aGF0IGRvbid0IG1hdGNoIFxJXGkqCisKKyIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgoraWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQorICAgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9pbmRlbnQgPSAxCisKKyIgSXMgc3ludGF4IGhpZ2hsaWdodGluZyBhY3RpdmUgPworbGV0IGI6aW5kZW50X3VzZV9zeW50YXggPSBoYXMoInN5bnRheCIpCisKK3NldGxvY2FsIGluZGVudGV4cHI9R2V0UGVybDZJbmRlbnQoKQorCisiIHdlIHJlc2V0IGl0IGZpcnN0IGJlY2F1c2UgdGhlIFBlcmwgNSBpbmRlbnQgZmlsZSBtaWdodCBoYXZlIGJlZW4gbG9hZGVkIGR1ZQorIiB0byBhIC5wbC9wbSBmaWxlIGV4dGVuc2lvbiwgYW5kIGluZGVudCBmaWxlcyBkb24ndCBjbGVhbiB1cCBhZnRlcndhcmRzCitzZXRsb2NhbCBpbmRlbnRrZXlzJgorCitzZXRsb2NhbCBpbmRlbnRrZXlzKz0wPSwwKSwwXSwwPiwwwrssMD1vciwwPWFuZAoraWYgIWI6aW5kZW50X3VzZV9zeW50YXgKKyAgICBzZXRsb2NhbCBpbmRlbnRrZXlzKz0wPUVPCitlbmRpZgorCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlLgoraWYgZXhpc3RzKCIqR2V0UGVybDZJbmRlbnQiKQorICAgIGZpbmlzaAorZW5kaWYKKworbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCitzZXQgY3BvLT1DCisKK2Z1bmN0aW9uIEdldFBlcmw2SW5kZW50KCkKKworICAgICIgR2V0IHRoZSBsaW5lIHRvIGJlIGluZGVudGVkCisgICAgbGV0IGNsaW5lID0gZ2V0bGluZSh2OmxudW0pCisKKyAgICAiIEluZGVudCBQT0QgbWFya2VycyB0byBjb2x1bW4gMAorICAgIGlmIGNsaW5lID1+ICdeXHMqPVxMXEAhJworICAgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisKKyAgICAiIERvbid0IHJlaW5kZW50IGNvbWVudHMgb24gZmlyc3QgY29sdW1uCisgICAgaWYgY2xpbmUgPX4gJ14jJworICAgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisKKyAgICAiIEdldCBjdXJyZW50IHN5bnRheCBpdGVtIGF0IHRoZSBsaW5lJ3MgZmlyc3QgY2hhcgorICAgIGxldCBjc3luaWQgPSAnJworICAgIGlmIGI6aW5kZW50X3VzZV9zeW50YXgKKyAgICAgICAgbGV0IGNzeW5pZCA9IHN5bklEYXR0cihzeW5JRCh2OmxudW0sMSwwKSwibmFtZSIpCisgICAgZW5kaWYKKworICAgICIgRG9uJ3QgcmVpbmRlbnQgUE9EIGFuZCBoZXJlZG9jcworICAgIGlmIGNzeW5pZCA9fiAiXnA2UG9kIgorICAgICAgICByZXR1cm4gaW5kZW50KHY6bG51bSkKKyAgICBlbmRpZgorCisKKyAgICAiIE5vdyBnZXQgdGhlIGluZGVudCBvZiB0aGUgcHJldmlvdXMgcGVybCBsaW5lLgorCisgICAgIiBGaW5kIGEgbm9uLWJsYW5rIGxpbmUgYWJvdmUgdGhlIGN1cnJlbnQgbGluZS4KKyAgICBsZXQgbG51bSA9IHByZXZub25ibGFuayh2OmxudW0gLSAxKQorICAgICIgSGl0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgdXNlIHplcm8gaW5kZW50LgorICAgIGlmIGxudW0gPT0gMAorICAgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisgICAgbGV0IGxpbmUgPSBnZXRsaW5lKGxudW0pCisgICAgbGV0IGluZCA9IGluZGVudChsbnVtKQorICAgICIgU2tpcCBoZXJlZG9jcywgUE9ELCBhbmQgY29tbWVudHMgb24gMXN0IGNvbHVtbgorICAgIGlmIGI6aW5kZW50X3VzZV9zeW50YXgKKyAgICAgICAgbGV0IHNraXBwaW4gPSAyCisgICAgICAgIHdoaWxlIHNraXBwaW4KKyAgICAgICAgICAgIGxldCBzeW5pZCA9IHN5bklEYXR0cihzeW5JRChsbnVtLDEsMCksIm5hbWUiKQorICAgICAgICAgICAgaWYgKHN5bmlkID1+ICJecDZQb2QiIHx8IHN5bmlkID1+ICJwNkNvbW1lbnQiKQorICAgICAgICAgICAgICAgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKGxudW0gLSAxKQorICAgICAgICAgICAgICAgIGlmIGxudW0gPT0gMAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICAgICAgbGV0IGxpbmUgPSBnZXRsaW5lKGxudW0pCisgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZGVudChsbnVtKQorICAgICAgICAgICAgICAgIGxldCBza2lwcGluID0gMQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxldCBza2lwcGluID0gMAorICAgICAgICAgICAgZW5kaWYKKyAgICAgICAgZW5kd2hpbGUKKyAgICBlbmRpZgorCisgICAgICAgIGlmIGxpbmUgPX4gJ1s8wqtcW3soXVxzKlwoI1teKX1cXcK7Pl0qXClcPSQnCisgICAgICAgICAgICBsZXQgaW5kID0gaW5kICsgJnN3CisgICAgICAgIGVuZGlmCisgICAgICAgIGlmIGNsaW5lID1+ICdeXHMqWyl9XF3Cuz5dJworICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtICZzdworICAgICAgICBlbmRpZgorCisgICAgIiBJbmRlbnQgbGluZXMgdGhhdCBiZWdpbiB3aXRoICdvcicgb3IgJ2FuZCcKKyAgICBpZiBjbGluZSA9fiAnXlxzKlwob3JcfGFuZFwpXD4nCisgICAgICAgIGlmIGxpbmUgIX4gJ15ccypcKG9yXHxhbmRcKVw+JworICAgICAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgICAgICBlbmRpZgorICAgIGVsc2VpZiBsaW5lID1+ICdeXHMqXChvclx8YW5kXClcPicKKyAgICAgICAgbGV0IGluZCA9IGluZCAtICZzdworICAgIGVuZGlmCisKKyAgICByZXR1cm4gaW5kCisKK2VuZGZ1bmN0aW9uCisKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQorCisiIHZpbTp0cz04OnN0cz00OnN3PTQ6ZXhwYW5kdGFiOmZ0PXZpbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvYnVsZ2FyaWFuLWJkcy52aW0gYi9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tYmRzLnZpbQppbmRleCBiZjgzN2M4Li4zMzc3ZWRiIDEwMDY0NAotLS0gYS9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tYmRzLnZpbQorKysgYi9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tYmRzLnZpbQpAQCAtMSwxNCArMSwxNCBAQAogIiBWaW0ga2V5bWFwIGZpbGUgZm9yIEJ1bGdhcmlhbiBhbmQgUnVzc2lhbiBjaGFyYWN0ZXJzLCAiYmRzIiBsYXlvdXQuCiAiIE1vc3Qgb2YgaXQgY2FuIGJlIHVzZWQgd2l0aCBib3RoIHV0Zi04IGFuZCBjcDEyNTEgZmlsZSBlbmNvZGluZ3MsIGV4Y2VwdAotIiB0aGUgYWNjZW50ZWQgdm93ZWxzIHdoaWNoIGNhbiBvbmx5IGJlIHN0b3JlZCBpbiB1dGYtOC4KKyIgdGhlIGFjY2VudGVkIGNoYXJhY3RlcnMgd2hpY2ggY2FuIG9ubHkgYmUgc3RvcmVkIGluIHV0Zi04LgogIiBUaGlzIGZpbGUgaXRzZWxmIGlzIGluIHV0Zi04LgogCiAiIE1haW50YWluZXI6IEJveWtvIEJhbnRjaGV2IDxib3lrb2JiQGdtYWlsLmNvbT4KICIgVVJJOiBodHRwOi8vd3d3Lm1hdGguYmFzLmJnL2JhbnRjaGV2L3ZpbS9idWxnYXJpYW4tYmRzLnZpbQotIiBMYXN0IENoYW5nZWQ6IDIwMDggSnVuZSAyOAorIiBMYXN0IENoYW5nZWQ6IDIwMTAgTWF5IDQKIAogIiBUaGlzIGtleW1hcCBjb3JyZXNwb25kcyB0byB3aGF0IGlzIGNhbGxlZCBCdWxnYXJpYW4gc3RhbmRhcmQgdHlwZXdyaXRlcgotIiBrZXlib2FyZCBsYXlvdXQgKEJEUywg0JHQlNChKS4KKyIga2V5Ym9hcmQgbGF5b3V0LCBvciAi0JHQlNChIi4KICIKICIgTm90ZSB0aGF0LCBpbiBhZGRpdGlvbiB0byB0aGUgQnVsZ2FyaWFuIGFscGhhYmV0LCB0aGUgQkRTIGxheW91dCBwcmVzY3JpYmVzCiAiIHRoZSBwcmVzZW5jZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6CkBAIC0xNyw3ICsxNyw3IEBACiAiICAgICAgICB3aXRob3V0IGhhdmluZyB0byBsZWF2ZSBDeXJpbGxpYyBtb2RlLgogIgogIiBTb21lIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgcHJlc2VudCBpbiBhc2NpaSBhcmUgbWFwcGVkIGluIEJEUyB0byBrZXlzCi0iIGRpZmZlcmVudCBmcm9tIHRoZSBvbmVzIHRoZXkgb2NjdXB5IGluIHRoZSBxd2VydHkgbGF5b3V0LCBiZWNhdXNlIHRoZSBsYXR0ZXIKKyIgZGlmZmVyZW50IGZyb20gdGhlIG9uZXMgdGhleSBvY2N1cHkgaW4gdGhlIFFXRVJUWSBsYXlvdXQsIGJlY2F1c2UgdGhlIGxhdHRlcgogIiBrZXlzIGFyZSB1c2VkIHRvIHR5cGUgb3RoZXIgY2hhcmFjdGVycy4KICIKICIgSW4gdGhpcyBrZXltYXAsIGFsc28gZGVmaW5lZCAoYmVzaWRlcyBCRFMpIGFyZToKQEAgLTI4LDEyICsyOCwxNiBAQAogIiAgICAg4oCUICBUaGUgcXVvdGF0aW9uIG1hcmtzIOKAniDigJwg4oCdIOKAmCDigJkgKHVzZWQgaW4gdGhlIEJ1bGdhcmlhbiBhbmQgRW5nbGlzaAogIiAgICAgICAgcXVvdGF0aW9uIHN0eWxlcyksIGFzIHdlbGwgYXMgwqsgwrsgKFJ1c3NpYW4gcXVvdGF0aW9uIHN0eWxlKS4KICIgICAgIOKAlCAgVGhlIGNoYXJhY3RlcnMgwqcsIOKEliwg4oCTIChlbi1kYXNoKSwg4oCUIChlbS1kYXNoKSwg4oCmLCDigKIsIMK3LCDCsSwgwrAsIMKsLAotIiAgICAgICAgwqQsIGFuZCDigqwuCisiICAgICAgICDCpCwg4oKsLCDigLAsIOKAoCwg4oChLCBhbmQgwrYuCiAiCi0iIFRoZSBrZXltYXAgYWxzbyBkZWZpbmVzIGtleSBjb21iaW5hdGlvbnMgZm9yIGFjY2VudGVkIHZvd2VscyBpbiBCdWxnYXJpYW4uCisiIFRoZSBrZXltYXAgYWxzbyBkZWZpbmVzIGtleSBjb21iaW5hdGlvbnMgZm9yIGdyYXZlIGFuZCBhY3V0ZSBhY2NlbnRzLgorIiAoR3JhdmUgYWNjZW50IGlzIHVzZWQgaW4gQnVsZ2FyaWFuLCBhY3V0ZSBpbiBSdXNzaWFuLCBidXQgYm90aCBhY2NlbnRzCisiIGFwcGx5IHRvIG90aGVyIGxhbmd1YWdlcyBhcyB3ZWxsLikKICIKICIgRm9yIGRldGFpbHMgb2Ygd2hhdCBrZXkgb3Iga2V5IGNvbWJpbmF0aW9uIG1hcHMgdG8gd2hhdCBjaGFyYWN0ZXIsIHBsZWFzZQotIiBzZWUgYmVsb3cgdGhlIG1hcCB0YWJsZSBpdHNlbGYuCisiIHNlZSBiZWxvdyB0aGUgbWFwIGl0c2VsZi4KKyIKKyIgU2VlIGFsc28gaHR0cDovL3d3dy5tYXRoLmJhcy5iZy9iYW50Y2hldi92aW0va2JkYnVsLmh0bWwgKGluIEJ1bGdhcmlhbikuCiAKIHNjcmlwdGVuY29kaW5nIHV0Zi04CiAKQEAgLTEzOSwyMSArMTQzLDEzIEBACiB+fiAgICAgIMKsICAgICAgIE5PVCBTSUdOCiBAQCAgICAgIMKkICAgICAgIENVUlJFTkNZIFNJR04KICQkICAgICAg4oKsICAgICAgIEVVUk8gU0lHTgorJSUgICAgICDigLAgICAgICAgUEVSIE1JTExFIFNJR04KKyt8ICAgICAg4oCgICAgICAgIERBR0dFUgorKysgICAgICDigKEgICAgICAgRE9VQkxFIERBR0dFUgorfHwgICAgICDCtiAgICAgICBQSUxDUk9XIFNJR04KIAotIiBhY2NlbnRlZCB2b3dlbHMgY2Fubm90IG1hcCBvbnRvIGNwMTI1MSDigJMgdXNlIHV0Zi04IGZpbGUgZW5jb2RpbmcKLWBEICAgICAg0JDMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWBkICAgICAg0LDMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1gRSAgICAgINCVzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotYGUgICAgICDQtcyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJRSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1gUiAgICAgINCYzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1gciAgICAgINC4zIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotYEYgICAgICDQnsyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIE8gKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotYGYgICAgICDQvsyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBPICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWBXICAgICAg0KPMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWB3ICAgICAg0YPMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1gQyAgICAgINCqzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWBjICAgICAg0YrMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgSEFSRCBTSUdOICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWBaICAgICAg0K7MgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1geiAgICAgINGOzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLWBTICAgICAg0K/MgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi1gcyAgICAgINGPzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKyIgQWNjZW50ZWQgY2hhcmFjdGVycyBjYW5ub3QgbWFwIG9udG8gY3AxMjUxIOKAkyB1c2UgdXRmLTggZmlsZSBlbmNvZGluZy4KKyIgVG8gYXBwbHkgYW4gYWNjZW50IHRvIGEgbGV0dGVyLCB0eXBlIHRoZSBjb3JyZXNwb25kaW5nIGtleSBjb21iaW5hdGlvbgorIiB0byB0aGUgaW1tZWRpYXRlIHJpZ2h0IG9mIHRoYXQgbGV0dGVyLgorXmAgICAgICA8Y2hhci0weDMwMD4gICAgQ09NQklOSU5HIEdSQVZFIEFDQ0VOVAorXicgICAgICA8Y2hhci0weDMwMT4gICAgQ09NQklOSU5HIEFDVVRFIEFDQ0VOVApkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvYnVsZ2FyaWFuLXBob25ldGljLnZpbSBiL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi1waG9uZXRpYy52aW0KaW5kZXggYmFjMmU3ZS4uZWFiMmYxNSAxMDA2NDQKLS0tIGEvcnVudGltZS9rZXltYXAvYnVsZ2FyaWFuLXBob25ldGljLnZpbQorKysgYi9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tcGhvbmV0aWMudmltCkBAIC01LDE1ICs1LDEzIEBACiAKICIgTWFpbnRhaW5lcjogICBCb3lrbyBCYW50Y2hldiA8Ym95a29iYkBnbWFpbC5jb20+CiAiIFVSSTogaHR0cDovL3d3dy5tYXRoLmJhcy5iZy9iYW50Y2hldi92aW0vYnVsZ2FyaWFuLXBob25ldGljLnZpbQotIiBMYXN0IENoYW5nZWQ6IDIwMDggSnVuZSAyOAotCi0iIEZvciBhIHJhdGlvbmFsZSBmb3IgdGhlIGxheW91dCBhbmQgYWRkaXRpb25hbCBpbmZvIG9uIHR5cGluZyBpbiBCdWxnYXJpYW4KLSIgdXNpbmcgVW5pY29kZSBDeXJpbGxpYyBwbGVhc2Ugc2VlOgorIiBMYXN0IENoYW5nZWQ6IDIwMTAgTWF5IDQKIAogIiBUaGlzIGtleW1hcCBjb3JyZXNwb25kcyB0byB3aGF0IGlzIGNhbGxlZCAicGhvbmV0aWMgbGF5b3V0IiBpbiBCdWxnYXJpYToKLSIgQ3lyaWxsaWMgbGV0dGVycyB0ZW5kIHRvIGJlIG1hcHBlZCB0byB0aGVpciBMYXRpbiBob21vcGhvbmVzLCBpZiBwcmVzZW50LgotIiBNb3N0IGtleXMgY29ycmVzcG9uZGluZyB0byBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGFyZSBsZWZ0IHVubWFwcGVkLCBzbwotIiB0aGV5IHJldGFpbiB0aGVpciB1c3VhbCAocXdlcnR5KSBtZWFuaW5ncyBpbiBDeXJpbGxpYyB0eXBpbmcuCisiIEN5cmlsbGljIGxldHRlcnMgdGVuZCB0byBiZSBtYXBwZWQgdG8gdGhlaXIgTGF0aW4gaG9tb3Bob25lcyB3aGVyZXZlcgorIiB0aGVyZSBhcmUgb25lcy4gIE1vc3Qga2V5cyBjb3JyZXNwb25kaW5nIHRvIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgYXJlCisiIGxlZnQgdW5tYXBwZWQsIHNvIHRoZXkgcmV0YWluIHRoZWlyIHVzdWFsIChRV0VSVFkpIG1lYW5pbmdzIHdoZW4gdHlwaW5nCisiIEN5cmlsbGljLgogIgogIiBJbiBhZGRpdGlvbiB0byB0aGUgQnVsZ2FyaWFuIGFscGhhYmV0LCB0aGUga2V5bWFwIG1ha2VzIGFjY2Vzc2libGUgdGhlCiAiIGZvbGxvd2luZyBjaGFyYWN0ZXJzOgpAQCAtMjQsMTIgKzIyLDE2IEBACiAiICAgICDigJQgIFRoZSBxdW90YXRpb24gbWFya3Mg4oCeIOKAnCDigJ0g4oCYIOKAmSAodXNlZCBpbiB0aGUgQnVsZ2FyaWFuIGFuZCBFbmdsaXNoCiAiICAgICAgICBxdW90YXRpb24gc3R5bGVzKSwgYXMgd2VsbCBhcyDCqyDCuyAoUnVzc2lhbiBxdW90YXRpb24gc3R5bGUpLgogIiAgICAg4oCUICBUaGUgY2hhcmFjdGVycyDCpywg4oSWLCDigJMgKGVuLWRhc2gpLCDigJQgKGVtLWRhc2gpLCDigKYsIOKAoiwgwrcsIMKxLCDCsCwgwqwsCi0iICAgICAgICDCpCwgYW5kIOKCrC4KKyIgICAgICAgIMKkLCDigqwsIOKAsCwg4oCgLCDigKEsIGFuZCDCti4KICIKLSIgVGhlIGtleW1hcCBhbHNvIGRlZmluZXMga2V5IGNvbWJpbmF0aW9ucyBmb3IgYWNjZW50ZWQgdm93ZWxzIGluIEJ1bGdhcmlhbi4KKyIgVGhlIGtleW1hcCBhbHNvIGRlZmluZXMga2V5IGNvbWJpbmF0aW9ucyBmb3IgZ3JhdmUgYW5kIGFjdXRlIGFjY2VudHMuCisiIChHcmF2ZSBhY2NlbnQgaXMgdXNlZCBpbiBCdWxnYXJpYW4sIGFjdXRlIGluIFJ1c3NpYW4sIGJ1dCBib3RoIGFjY2VudHMKKyIgYXBwbHkgdG8gb3RoZXIgbGFuZ3VhZ2VzIGFzIHdlbGwuKQogIgogIiBGb3IgZGV0YWlscyBvZiB3aGF0IGtleSBvciBrZXkgY29tYmluYXRpb24gbWFwcyB0byB3aGF0IGNoYXJhY3RlciwgcGxlYXNlCi0iIHNlZSBiZWxvdyB0aGUgbWFwIHRhYmxlIGl0c2VsZi4KKyIgc2VlIGJlbG93IHRoZSBtYXAgaXRzZWxmLgorIgorIiBTZWUgYWxzbyBodHRwOi8vd3d3Lm1hdGguYmFzLmJnL2JhbnRjaGV2L3ZpbS9rYmRidWwuaHRtbCAoaW4gQnVsZ2FyaWFuKS4KIAogc2NyaXB0ZW5jb2RpbmcgdXRmLTgKIApAQCAtMTIxLDIxICsxMjMsMTMgQEAKIH5+ICAgICAgwqwgICAgICAgTk9UIFNJR04KIEBAICAgICAgwqQgICAgICAgQ1VSUkVOQ1kgU0lHTgogJCQgICAgICDigqwgICAgICAgRVVSTyBTSUdOCislJSAgICAgIOKAsCAgICAgICBQRVIgTUlMTEUgU0lHTgorK3wgICAgICDigKAgICAgICAgREFHR0VSCisrKyAgICAgIOKAoSAgICAgICBET1VCTEUgREFHR0VSCit8fCAgICAgIMK2ICAgICAgIFBJTENST1cgU0lHTgogCi0iIGFjY2VudGVkIHZvd2VscyBjYW5ub3QgbWFwIG9udG8gY3AxMjUxIOKAkyB1c2UgdXRmLTggZmlsZSBlbmNvZGluZwotJ0EgICAgICDQkMyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEEgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ2EgICAgICDQsMyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdFICAgICAg0JXMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi0nZSAgICAgINC1zIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElFICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdJICAgICAg0JjMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdpICAgICAg0LjMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgSSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi0nTyAgICAgINCezIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCi0nbyAgICAgINC+zIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ1UgICAgICDQo8yAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ3UgICAgICDRg8yAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdZICAgICAg0KrMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR04gKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ3kgICAgICDRisyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR04gKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ3wgICAgICDQrsyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdcXCAgICAg0Y7MgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgWVUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQotJ1EgICAgICDQr8yAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKLSdxICAgICAg0Y/MgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgWUEgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorIiBBY2NlbnRlZCBjaGFyYWN0ZXJzIGNhbm5vdCBtYXAgb250byBjcDEyNTEg4oCTIHVzZSB1dGYtOCBmaWxlIGVuY29kaW5nLgorIiBUbyBhcHBseSBhbiBhY2NlbnQgdG8gYSBsZXR0ZXIsIHR5cGUgdGhlIGNvcnJlc3BvbmRpbmcga2V5IGNvbWJpbmF0aW9uCisiIHRvIHRoZSBpbW1lZGlhdGUgcmlnaHQgb2YgdGhhdCBsZXR0ZXIuCiteYCAgICAgIDxjaGFyLTB4MzAwPiAgICBDT01CSU5JTkcgR1JBVkUgQUNDRU5UCiteJyAgICAgIDxjaGFyLTB4MzAxPiAgICBDT01CSU5JTkcgQUNVVEUgQUNDRU5UCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9zci51dGYtOC52aW0gYi9ydW50aW1lL2xhbmcvbWVudV9zci51dGYtOC52aW0KaW5kZXggOTE1YzMxYS4uNGQyNzhmOSAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfc3IudXRmLTgudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3NyLnV0Zi04LnZpbQpAQCAtMSwzICsxLDMgQEAKICIgTWVudSBUcmFuc2xhdGlvbnM6CVNlcmJpYW4KIAotc291cmNlIDxzZmlsZT46cDpoL21lbnVfc3JfeXUudXRmLTgudmltCitzb3VyY2UgPHNmaWxlPjpwOmgvbWVudV9zcl9ycy51dGYtOC52aW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3NyX3JzLmFzY2lpLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3NyX3JzLmFzY2lpLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGE5MDI2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9sYW5nL21lbnVfc3JfcnMuYXNjaWkudmltCkBAIC0wLDAgKzEsMjU4IEBACisiIE1lbnUgVHJhbnNsYXRpb25zOiBTZXJiaWFuCisiIE1haW50YWluZXI6IEFsZWtzYW5kYXIgSmVsZW5hayA8YWplbGVuYWsgQVQgeWFob28uY29tPgorIiBMYXN0IENoYW5nZToJRnJpLCAzMCBNYXkgMjAwMyAxMjoxNTozMCAtMDQwMAorCisiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgoraWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBkaWRfbWVudV90cmFucyA9IDEKKworIiBIZWxwIG1lbnUKK21lbnV0cmFucyAmSGVscAkJICAgICAgUG9tbyZjCittZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+ICAmUHJlZ2xlZDxUYWI+PEYxPgorbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgICAgJlVwdXRzdHZvXCB6YVwga29yaXNuaWtlCittZW51dHJhbnMgJkhvdy10b1wgbGlua3MgICAgICAmS2Frb1wgZGFcLlwuXC4KK21lbnV0cmFucyAmRmluZAkJICAgICAgJk5hZGppCittZW51dHJhbnMgJkNyZWRpdHMJICAgICAgJlphc2x1Z2UKK21lbnV0cmFucyBDbyZweWluZwkgICAgICBQJnJldXppbWFuamUKK21lbnV0cmFucyBPJnJwaGFucwkgICAgICAmU2lyb2NpY2kKK21lbnV0cmFucyAmVmVyc2lvbgkgICAgICAmVmVyemlqYQorbWVudXRyYW5zICZBYm91dAkgICAgICAmT1wgcHJvZ3JhbXUKKworIiBGaWxlIG1lbnUKK21lbnV0cmFucyAmRmlsZQkJCSAgICAmRGF0b3Rla2EKK21lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJICAgICZPdHZvcmlcLlwuXC48VGFiPjplCittZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcCAmUG9kZWxpLW90dm9yaVwuXC5cLjxUYWI+OnNwCittZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJICAgICZOb3ZhPFRhYj46ZW5ldworbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCSAgICAmWmF0dm9yaTxUYWI+OmNsb3NlCittZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkgICAgJlNhY3V2YWo8VGFiPjp3CittZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2ICBTYWN1dmFqXCAma2FvXC5cLlwuPFRhYj46c2F2CittZW51dHJhbnMgU3BsaXRcICZEaWZmXCB3aXRoXC5cLlwuICBQb2RlbGlcIGlcICZ1cG9yZWRpXCBzYVwuXC5cLgorbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4gUG8mZGVsaVwgaVwgcHJlcHJhdmlcIHNhXC5cLlwuCittZW51dHJhbnMgJlByaW50CQkgICAgU3RhJm1wYWoKK21lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCSAgICBTYWN1dmFqXCBpXCB6YSZ2cnNpPFRhYj46d3FhCittZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJICAgIEsmcmFqPFRhYj46cWEKKworIiBFZGl0IG1lbnUKK21lbnV0cmFucyAmRWRpdAkJCSAmVXJlZGppdmFuamUKK21lbnV0cmFucyAmVW5kbzxUYWI+dQkJICZWcmF0aTxUYWI+dQorbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJICZQb3ZyYXRpPFRhYj5eUgorbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCSBQJm9ub3ZpPFRhYj5cLgorbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJIElzZSZjaTxUYWI+Iit4CittZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJICZLb3BpcmFqPFRhYj4iK3kKK21lbnV0cmFucyAmUGFzdGU8VGFiPiIrZ1AJICZVYmFjaTxUYWI+IitnUAorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitQCSZVYmFjaTxUYWI+IitnUAorbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJIFN0YXZpXCBwcmUmZDxUYWI+W3AKK21lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJIFN0YXZpXCAmaXphPFRhYj5dcAorbWVudXRyYW5zICZEZWxldGU8VGFiPngJCSBJeiZicmlzaTxUYWI+eAorbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRyAgSXphYmVyaVwgc3YmZTxUYWI+Z2dWRworbWVudXRyYW5zICZGaW5kXC5cLlwuCQkgJk5hZGppXC5cLlwuCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLiBOYWRqaVwgaVwgJnphbWVuaVwuXC5cLgorbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CSBQJnJvem9yXCBwb2Rlc2F2YW5qYQorbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCSBPcCZzdGFcIHBvZGVzYXZhbmphCittZW51dHJhbnMgRiZpbGVcIFNldHRpbmdzCSBQb2Rlc2F2YW5qYVwgemFcIGRhJnRvdGVrZQorbWVudXRyYW5zICZTaGlmdHdpZHRoCQkgJlBvbWVyYWoKK21lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkgJk1la2FcIHRhYnVsYWNpamEKK21lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JICZTaXJpbmFcIHRla3N0YVwuXC5cLgorbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JICZWcnN0YVwgZGF0b3Rla2VcLlwuXC4KK21lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkgQm8mamUKK21lbnV0cmFucyAmS2V5bWFwCQkgUHJlcyZsaWthdmFuamVcIHRhc3RhdHVyZQorbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JIEl6Ym9yXCAmZm9udGFcLlwuXC4KKworIiBFZGl0L0dsb2JhbCBTZXR0aW5ncworbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzISBOYWdsYXNpXCAmb2JyYXpjZVwgKGRhL25lKTxUYWI+OnNldFwgaGxzIQorbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEgWmFuZW1hcmlcIFx2ZWxpY2ludVwgJnNsb3ZhXCAoZGEvbmUpPFRhYj46c2V0XCBpYyEKK21lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtISBQcm92ZXJpXCBwcmF0ZWN1XCAmemFncmFkdVwgKGRhL25lKTxUYWI+OnNldFwgc20hCittZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzICBWaWRsaml2aVwgJnJlZG92aQorbWVudXRyYW5zICZWaXJ0dWFsXCBFZGl0ICAgVmlydHVlbG5vXCAmdXJlZGppdmFuamUKK21lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltISAgIFJlemltXCB1Jm5vc2FcIChkYS9uZSk8VGFiPjpzZXRcIGltIQorbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEgICAgICcmVmknXCBzYWdsYXNub1wgKGRhL25lKTxUYWI+OnNldFwgY3AhCittZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLiBQdXRhbmphXCAmcHJldHJhZ2VcLlwuXC4KK21lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLiAgICZEYXRvdGVrZVwgb3puYWthXC5cLlwuCittZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhciAgICBMaW5pamFcIHNhXCAmYWxhdGthbWFcIChkYS9uZSkKK21lbnV0cmFucyBUb2dnbGVcICZCb3R0b21cIFNjcm9sbGJhciAgIERvbmphXCBsJmluaWphXCBrbGl6YW5qYVwgKGRhL25lKQorbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhciAgJkxldmFcIGxpbmlqYVwga2xpemFuamFcIChkYS9uZSkKK21lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyICZEZXNuYVwgbGluaWphXCBrbGl6YW5qYVwgKGRhL25lKQorCisiIEVkaXQvR2xvYmFsIFNldHRpbmdzL1ZpcnR1YWwgRWRpdAorbWVudXRyYW5zIE5ldmVyCQkgICAgICBOaWthZAorbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24gICAgSXpib3JcIGJsb2thCittZW51dHJhbnMgSW5zZXJ0XCBtb2RlCSAgICAgIFJlemltXCB1bm9zYQorbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydCAgQmxva1wgaVwgdW5vcworbWVudXRyYW5zIEFsd2F5cwkgICAgICBVdmVrCisKKyIgRWRpdC9GaWxlIFNldHRpbmdzCittZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEgICBSZWRuaVwgJmJyb2pldmlcIChkYS9uZSk8VGFiPjpzZXRcIG51IQorbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhICAgICAgUmV6aW1cICZsaXN0ZVwgKGRhL25lKTxUYWI+OnNldFwgbGlzdCEKK21lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwISAgICAgIE9iYXZpamFuamVcICZyZWRvdmFcIChkYS9uZSk8VGFiPjpzZXRcIHdyYXAhCittZW51dHJhbnMgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEgICBQcmVsb21pXCAmbmFcIHJlY1wgKGRhL25lKTxUYWI+OnNldFwgbGJyIQorbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkgICBSYXptYWNpXCB1bWVzdG9cICZ0YWJ1bGFjaWplXCAoZGEvbmUpPFRhYj46c2V0XCBldCEKK21lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhICAgIEF1dG8tJnV2bGFjZW5qZVwgKGRhL25lKTxUYWI+OnNldFwgYWkhCittZW51dHJhbnMgVG9nZ2xlXCAmQy1pbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEgICAgICAmQ2UtdXZsYWNlbmplXCAoZGEvbmUpPFRhYj46c2V0XCBjaW4hCisKKyIgRWRpdC9LZXltYXAKK21lbnV0cmFucyBOb25lIE5pamVkYW4KKworIiBUb29scyBtZW51CittZW51dHJhbnMgJlRvb2xzCSZBbGF0a2UKK21lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dIFNrb2NpXCBuYVwgJm92dVwgb3puYWt1PFRhYj5nXl0KK21lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJIFNrb2NpXCAmbmF0cmFnPFRhYj5eVAorbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkgSXpncmFkaVwgJmRhdG90ZWt1XCBvem5ha2EKK21lbnV0cmFucyAmRm9sZGluZwkgICAgICAmUG9kdmlqYW5qZQorbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkgIFMmdHZvcmlcIHBvZHZpanV0YWs8VGFiPnpmCittZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCSAgTyZicmlzaVwgcG9kdmlqdXRhazxUYWI+emQKK21lbnV0cmFucyBEZWxldGVcICZBbGxcIEZvbGRzPFRhYj56RAkgIE9icmlzaVwgc3ZlXCBwbyZkdmlqdXRrZTxUYWI+ekQKK21lbnV0cmFucyBGb2xkXCBjb2x1bW5cICZ3aWR0aAkJICBTaXJpbmFcICZyZWRhXCBwb2R2aWp1dGthCittZW51dHJhbnMgJkRpZmYJCSAgICAgICZVcG9yZWRqaXZhbmplCittZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlICAgICAnbWFrJmUnPFRhYj46bWFrZQorbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbCAgICAgU3Bpc2FrXCAmZ3Jlc2FrYTxUYWI+OmNsCittZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whICBTcCZpc2FrXCBwb3J1a2E8VGFiPjpjbCEKK21lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkgICAgUyZsZWRlY2FcIGdyZXNrYTxUYWI+OmNuCittZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwICBQcmUmdGhvZG5hXCBncmVza2E8VGFiPjpjcAorbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQgICAgU3RhcmlcIHNwaXNhJms8VGFiPjpjb2xkCittZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldyAgICBObyZ2aVwgc3Bpc2FrPFRhYj46Y25ldworbWVudXRyYW5zIEVycm9yXCAmV2luZG93CSAgICBQcm96b3JcIHNhXCBnJnJlc2thbWEKK21lbnV0cmFucyAmU2V0XCBDb21waWxlcgkgICAgSSZ6YWJlcmlcIHByZXZvZGlvY2EKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSAgIFByZXR2b3JpXCB1XCAmSEVLUzxUYWI+OiUheHhkCittZW51dHJhbnMgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIgICAgVnImYXRpXCB1XCBwcnZvYml0YW5cIG9ibGlrPFRhYj46JSF4eGRcIC1yCisKKyIgVG9vbHMvRm9sZGluZworbWVudXRyYW5zICZFbmFibGUvRGlzYWJsZVwgZm9sZHM8VGFiPnppICAgJk9tb2d1Y2kvcHJla2luaVwgcG9kdmlqYW5qZTxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56diAgICAgICZQb2themlcIHJlZFwgc2FcIGt1cnNvcm9tPFRhYj56dgorbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIG9ubHk8VGFiPnpNenggUG9rYXppXCAmc2Ftb1wgcmVkXCBzYVwga3Vyc29yb208VGFiPnpNengKK21lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bSAgICZaYXR2b3JpXCB2aXNlXCBwb2R2aWp1dGFrYTxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNICAgIFphdHZvcmlcIHMmdmVcIHBvZHZpanV0a2U8VGFiPnpNCittZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56ciAgICBPdHZvcmlcIHZpcyZlXCBwb2R2aWp1dGFrYTxUYWI+enIKK21lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIgICAgIE8mdHZvcmlcIHN2ZVwgcG9kdmlqdXRrZTxUYWI+elIKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkgICAgICAgJk5hY2luXCBwb2R2aWphbmphCisKKyIgVG9vbHMvRm9sZGluZy9Gb2xkIE1ldGhvZAorbWVudXRyYW5zIE0mYW51YWwgICAgICAgJlJ1Y25vCittZW51dHJhbnMgSSZuZGVudCAgICAgICAmVXZ1Y2Vub3N0CittZW51dHJhbnMgRSZ4cHJlc3Npb24gICAmSXpyYXoKK21lbnV0cmFucyBTJnludGF4ICAgICAgICZTaW50YWtzYQorIm1lbnV0cmFucyAmRGlmZgorbWVudXRyYW5zIE1hJnJrZXIgICAgICAgJk96bmFrYQorCisiIFRvb2xzL0RpZmYKK21lbnV0cmFucyAmVXBkYXRlICAgICAgICZBenVyaXJhagorbWVudXRyYW5zICZHZXRcIEJsb2NrICAgJlByaWh2YXRpXCBpem1lbnUKK21lbnV0cmFucyAmUHV0XCBCbG9jayAgIFByZSZiYWNpXCBpem1lbnUKKworIiBUb29scy9FcnJvciBXaW5kb3cKK21lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbiAgICZBenVyaXJhajxUYWI+OmN3aW4KK21lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuICAgICZPdHZvcmk8VGFiPjpjb3BlbgorbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZSAgJlphdHZvcmk8VGFiPjpjY2xvc2UKKworIiBCdWZlcnMgbWVudQorbWVudXRyYW5zICZCdWZmZXJzCSAgICZCYWZlcmkKK21lbnV0cmFucyAmUmVmcmVzaFwgbWVudSAgICZBenVyaXJhagorbWVudXRyYW5zIERlbGV0ZQkgICAmT2JyaXNpCittZW51dHJhbnMgJkFsdGVybmF0ZQkgICBBJmx0ZXJuYXRpdm5pCittZW51dHJhbnMgJk5leHQJCSAgICZTbGVkZWNpCittZW51dHJhbnMgJlByZXZpb3VzCSAgICZQcmV0aG9kbmkKK21lbnV0cmFucyBbTm9cIEZpbGVdCSAgIFtOZW1hXCBkYXRvdGVrZV0KKworIiBXaW5kb3cgbWVudQorbWVudXRyYW5zICZXaW5kb3cJCSAgICAmUHJvem9yCittZW51dHJhbnMgJk5ldzxUYWI+XlduCQkgICAgJk5vdmk8VGFiPl5XbgorbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCSAgICAmUG9kZWxpPFRhYj5eV3MKK21lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eICAgIFBvZGVsaVwgc2FcICZhbHRlcm5hdGl2bmltPFRhYj5eV15eCittZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YgICBQb2RlbGlcICZ1c3ByYXZubzxUYWI+Xld2CittZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlciAgICBQb2RlbGlcIHphXCBwcmVnbGVkXCAmZGF0b3Rla2EKK21lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkgICAgJlphdHZvcmk8VGFiPl5XYworbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbyAgWmF0dm9yaVwgJm9zdGFsZTxUYWI+XldvCisibWVudXRyYW5zIE5lJnh0PFRhYj5eV3cgICAgICAgJlNsZWRlY2k8VGFiPl5XdworIm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkgIFAmcmV0aG9kbmk8VGFiPl5XVworbWVudXRyYW5zIE1vdmVcICZUbwkJICAgIFByZSZtZXN0aQorbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJICAgICZLcnV6bm9cIG5hZ29yZTxUYWI+XldSCittZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyICAgICBLcnV6bm9cIG5hZG9sJmU8VGFiPl5XcgorbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSAgICAmSXN0ZVwgdmVsaWNpbmU8VGFiPl5XPQorbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCSAgICBNYWtzaW1hbG5hXCAmdmlzaW5hPFRhYj5eV18KK21lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8gICAgIE1pbmltYSZsbmFcIHZpc2luYTxUYWI+XlcxXworbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CSAgICBNYWtzaW1hbG5hXCAmc2lyaW5hPFRhYj5eV1x8CittZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8ICAgICBNaW5pbWFsbmFcIHNpJnJpbmE8VGFiPl5XMVx8CisKKyIgV2luZG93L01vdmUgVG8KK21lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSAmVnJoPFRhYj5eV0sKK21lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJICZQb2Rub3pqZTxUYWI+XldKCittZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkgVSZsZXZvPFRhYj5eV0gKK21lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkgVSZkZXNubzxUYWI+XldMCisKKyIgVGhlIHBvcHVwIG1lbnUKK21lbnV0cmFucyAmVW5kbwkJICAgICAgJlZyYXRpCittZW51dHJhbnMgQ3UmdAkJICAgICAgJklzZWNpCittZW51dHJhbnMgJkNvcHkJCSAgICAgICZLb3BpcmFqCittZW51dHJhbnMgJlBhc3RlCSAgICAgICZVYmFjaQorbWVudXRyYW5zICZEZWxldGUJICAgICAgSSZ6YnJpc2kKK21lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZSAgIEJpcmFqXCAmcHJhdm91Z2Fvbm8KK21lbnV0cmFucyBTZWxlY3RcICZXb3JkICAgICAgIEl6YWJlcmlcICZyZWMKK21lbnV0cmFucyBTZWxlY3RcICZMaW5lICAgICAgIEl6YWJlcmlcIHImZWQKK21lbnV0cmFucyBTZWxlY3RcICZCbG9jayAgICAgIEl6YWJlcmlcICZibG9rCittZW51dHJhbnMgU2VsZWN0XCAmQWxsCSAgICAgIEl6YWJlcmlcICZzdmUKKworIiBUaGUgR1VJIHRvb2xiYXIKK2lmIGhhcygidG9vbGJhciIpCisgIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQorICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CisgIGVuZGlmCisgIGZ1biBEb190b29sYmFyX3RtZW51KCkKKyAgICB0bWVudSBUb29sQmFyLk9wZW4gICAgIFVjaXRhagorICAgIHRtZW51IFRvb2xCYXIuU2F2ZSAgICAgU2FjdXZhagorICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbCAgU2FjdXZhaiBzdmUKKyAgICB0bWVudSBUb29sQmFyLlByaW50ICAgIFN0YW1wYWoKKyAgICB0bWVudSBUb29sQmFyLlVuZG8gICAgIFZyYXRpCisgICAgdG1lbnUgVG9vbEJhci5SZWRvICAgICBQb3ZyYXRpCisgICAgdG1lbnUgVG9vbEJhci5DdXQgICAgICBJc2VjaQorICAgIHRtZW51IFRvb2xCYXIuQ29weSAgICAgS29waXJhagorICAgIHRtZW51IFRvb2xCYXIuUGFzdGUgICAgVWJhY2kKKyAgICB0bWVudSBUb29sQmFyLkZpbmQgICAgIE5hZGppCisgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dCBOYWRqaSBzbGVkZWNpCisgICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldiBOYWRqaSBwcmV0aG9kbmkKKyAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UgIFphbWVuaQorICAgIHRtZW51IFRvb2xCYXIuTmV3ICAgICAgTm92aQorICAgIHRtZW51IFRvb2xCYXIuV2luU3BsaXQgUG9kZWxpIHByb3pvcgorICAgIHRtZW51IFRvb2xCYXIuV2luTWF4ICAgTWFrc2ltYWxuYSB2aXNpbmEKKyAgICB0bWVudSBUb29sQmFyLldpbk1pbiAgIE1pbmltYWxuYSB2aXNpbmEKKyAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdCAgIFBvZGVsaSB1c3ByYXZubworICAgIHRtZW51IFRvb2xCYXIuV2luTWF4V2lkdGggTWFrc2ltYWxuYSBzaXJpbmEKKyAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoIE1pbmltYWxuYSBzaXJpbmEKKyAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlIFphdHZvcmkgcHJvem9yCisgICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbiBVY2l0YWogc2VhbnN1CisgICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbiBTYWN1dmFqIHNlYW5zdQorICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0ICAgSXp2cnNpIHNwaXMKKyAgICB0bWVudSBUb29sQmFyLk1ha2UgICAgICdtYWtlJworICAgIHRtZW51IFRvb2xCYXIuU2hlbGwgICAgT3BlcmF0aXZubyBva3J1emVuamUKKyAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzIE5hcHJhdmkgb3puYWtlCisgICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wICBJZGkgbmEgb3puYWt1CisgICAgdG1lbnUgVG9vbEJhci5IZWxwICAgICBQb21vYworICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAgTmFkamkgb2JqYXNuamVuamUKKyAgZW5kZnVuCitlbmRpZgorCisiIFN5bnRheCBtZW51CittZW51dHJhbnMgJlN5bnRheCAmU2ludGFrc2EKK21lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudSAgSXpib3JcICdmaWxldHlwZSdcIGl6XCAmbWVuaWphCittZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkgICBQb2RlJnNpXCAnc3ludGF4J1wgc2FtbworbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbyAgUG9kZXNpXCAnZmlsZXR5cGUnXCAmdGFrb2RqZQorbWVudXRyYW5zICZPZmYgICAgICAgJklza2xqdWNlbm8KK21lbnV0cmFucyAmTWFudWFsICAgICZSdWNubworbWVudXRyYW5zIEEmdXRvbWF0aWMgICAgJkF1dG9tYXRza2kKK21lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUgICAgIERhL25lXCB6YVwgb3Z1XCAmZGF0b3Rla3UKK21lbnV0cmFucyBDbyZsb3JcIHRlc3QgICAgIFByb3ZlcmFcICZib2phCittZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdCBQcm92ZXJhXCBpc3RpJmNhbmphCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MICBQcmV0dm9yaVwgJnVcIEhUTUwKKworIiBkaWFsb2cgdGV4dHMKK2xldCBtZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiVW5lc2l0ZSBuYXJlZGJ1IGlsaSByZWMgY2lqZSBwb2phc25qZW5qZSB0cmF6aXRlOlxuXG5Eb2RhanRlIGlfIHphIG5hcmVkYmUgdW5vc2EgKG5wci4gaV9DVFJMLVgpXG5Eb2RhanRlIGNfIHphIG5hcmVkYmUga29tYW5kbm9nIHJlemltYSAobnByLiBzXzxEZWw+KVxuRG9kYWp0ZSAnIHphIGltZW5hIG9wY2lqYSAobnByLiAnc2hpZnR3aWR0aCcpIgorCitsZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAiVW5lc2l0ZSBwdXQgcHJldHJhZ2UgemEgZGF0b3Rla2VcblJhemR2b2ppdGUgemFyZXppbWEgaW1lbmEgZGlyZWt0b3JpanVtYS4iCisKK2xldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJVbmVzaXRlIGltZW5hIGRhdG90ZWthIHNhIG96bmFrYW1hXG5SYXpkdm9qaXRlIHphcmV6aW1hIGltZW5hLiIKKworbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiVW5lc2l0ZSBub3Z1IHNpcmludSB0ZWtzdGEgKDAgc3ByZWNhdmEgcHJlbG9tKSIKKworbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIkl6YWJlcml0ZSB2cnN0dSBkYXRvdGVrZSIKKworbGV0IG1lbnV0cmFuc19ub19maWxlID0gIltOZW1hIGRhdG90ZWtlXSIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3NyX3JzLmlzb184ODU5LTIudmltIGIvcnVudGltZS9sYW5nL21lbnVfc3JfcnMuaXNvXzg4NTktMi52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkyMTI0YwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3NyX3JzLmlzb184ODU5LTIudmltCkBAIC0wLDAgKzEsMjU5IEBACisiIE1lbnUgVHJhbnNsYXRpb25zOiBTZXJiaWFuCisiIE1haW50YWluZXI6IEFsZWtzYW5kYXIgSmVsZW5hayA8YWplbGVuYWsgQVQgeWFob28uY29tPgorIiBMYXN0IENoYW5nZToJRnJpLCAzMCBNYXkgMjAwMyAxMjowNDo0OCAtMDQwMAorCisiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgoraWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBkaWRfbWVudV90cmFucyA9IDEKK3NjcmlwdGVuY29kaW5nIGlzbzg4NTktMgorCisiIEhlbHAgbWVudQorbWVudXRyYW5zICZIZWxwCQkgICAgICBQb21vJuYKK21lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4gICZQcmVnbGVkPFRhYj48RjE+CittZW51dHJhbnMgJlVzZXJcIE1hbnVhbCAgICAgICAmVXB1dHN0dm9cIHphXCBrb3Jpc25pa2UKK21lbnV0cmFucyAmSG93LXRvXCBsaW5rcyAgICAgICZLYWtvXCBkYVwuXC5cLgorbWVudXRyYW5zICZGaW5kCQkgICAgICAmTmHwaQorbWVudXRyYW5zICZDcmVkaXRzCSAgICAgICZaYXNsdWdlCittZW51dHJhbnMgQ28mcHlpbmcJICAgICAgUCZyZXV6aW1hbmplCittZW51dHJhbnMgTyZycGhhbnMJICAgICAgJlNpcm/oaeZpCittZW51dHJhbnMgJlZlcnNpb24JICAgICAgJlZlcnppamEKK21lbnV0cmFucyAmQWJvdXQJICAgICAgJk9cIHByb2dyYW11CisKKyIgRmlsZSBtZW51CittZW51dHJhbnMgJkZpbGUJCQkgICAgJkRhdG90ZWthCittZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCSAgICAmT3R2b3JpXC5cLlwuPFRhYj46ZQorbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AgJlBvZGVsaS1vdHZvcmlcLlwuXC48VGFiPjpzcAorbWVudXRyYW5zICZOZXc8VGFiPjplbmV3CSAgICAmTm92YTxUYWI+OmVuZXcKK21lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkgICAgJlphdHZvcmk8VGFiPjpjbG9zZQorbWVudXRyYW5zICZTYXZlPFRhYj46dwkJICAgICZTYeh1dmFqPFRhYj46dworbWVudXRyYW5zIFNhdmVcICZBc1wuXC5cLjxUYWI+OnNhdiAgU2HodXZhalwgJmthb1wuXC5cLjxUYWI+OnNhdgorbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLiAgUG9kZWxpXCBpXCAmdXBvcmVkaVwgc2FcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuIFBvJmRlbGlcIGlcIHByZXByYXZpXCBzYVwuXC5cLgorbWVudXRyYW5zICZQcmludAkJICAgIKl0YSZtcGFqCittZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkgICAgU2HodXZhalwgaVwgemEmdnK5aTxUYWI+OndxYQorbWVudXRyYW5zIEUmeGl0PFRhYj46cWEJCSAgICBLJnJhajxUYWI+OnFhCisKKyIgRWRpdCBtZW51CittZW51dHJhbnMgJkVkaXQJCQkgJlVyZfBpdmFuamUKK21lbnV0cmFucyAmVW5kbzxUYWI+dQkJICZWcmF0aTxUYWI+dQorbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJICZQb3ZyYXRpPFRhYj5eUgorbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCSBQJm9ub3ZpPFRhYj5cLgorbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJIElzZSZjaTxUYWI+Iit4CittZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJICZLb3BpcmFqPFRhYj4iK3kKK21lbnV0cmFucyAmUGFzdGU8VGFiPiIrZ1AJICZVYmFjaTxUYWI+IitnUAorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitQCSZVYmFjaTxUYWI+IitnUAorbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJIFN0YXZpXCBwcmUmZDxUYWI+W3AKK21lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJIFN0YXZpXCAmaXphPFRhYj5dcAorbWVudXRyYW5zICZEZWxldGU8VGFiPngJCSBJeiZicmm5aTxUYWI+eAorbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRyAgSXphYmVyaVwgc3YmZTxUYWI+Z2dWRworbWVudXRyYW5zICZGaW5kXC5cLlwuCQkgJk5h8GlcLlwuXC4KK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuIE5h8GlcIGlcICZ6YW1lbmlcLlwuXC4KK21lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkgUCZyb3pvclwgcG9kZblhdmFuamEKK21lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkgT3AmuXRhXCBwb2RluWF2YW5qYQorbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkgUG9kZblhdmFuamFcIHphXCBkYSZ0b3Rla2UKK21lbnV0cmFucyAmU2hpZnR3aWR0aAkJICZQb21lcmFqCittZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJICZNZWthXCB0YWJ1bGFjaWphCittZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCSAmqWlyaW5hXCB0ZWtzdGFcLlwuXC4KK21lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCSAmVnJzdGFcIGRhdG90ZWtlXC5cLlwuCittZW51dHJhbnMgQyZvbG9yXCBTY2hlbWUJIEJvJmplCittZW51dHJhbnMgJktleW1hcAkJIFByZXMmbGlrYXZhbmplXCB0YXN0YXR1cmUKK21lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCSBJemJvclwgJmZvbnRhXC5cLlwuCisKKyIgRWRpdC9HbG9iYWwgU2V0dGluZ3MKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEgTmFnbGFzaVwgJm9icmF6Y2VcIChkYS9uZSk8VGFiPjpzZXRcIGhscyEKK21lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhIFphbmVtYXJpXCBcdmVsaehpbnVcICZzbG92YVwgKGRhL25lKTxUYWI+OnNldFwgaWMhCittZW51dHJhbnMgVG9nZ2xlXCAmU2hvd21hdGNoPFRhYj46c2V0XCBzbSEgUHJvdmVyaVwgcHJhdGXmdVwgJnphZ3JhZHVcIChkYS9uZSk8VGFiPjpzZXRcIHNtIQorbWVudXRyYW5zICZDb250ZXh0XCBsaW5lcyAgVmlkbGppdmlcICZyZWRvdmkKK21lbnV0cmFucyAmVmlydHVhbFwgRWRpdCAgIFZpcnR1ZWxub1wgJnVyZfBpdmFuamUKK21lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQlSZb5pbVwgdSZub3NhXCAoZGEvbmUpPFRhYj46c2V0XCBpbSEKK21lbnV0cmFucyBUb2dnbGVcIFZpXCBDJm9tcGF0aWJsZTxUYWI+OnNldFwgY3AhICAgICAnJlZpJ1wgc2FnbGFzbm9cIChkYS9uZSk8VGFiPjpzZXRcIGNwIQorbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4gUHV0YW5qYVwgJnByZXRyYWdlXC5cLlwuCittZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4gICAmRGF0b3Rla2VcIG96bmFrYVwuXC5cLgorbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIgICAgTGluaWphXCBzYVwgJmFsYXRrYW1hXCAoZGEvbmUpCittZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIgICBEb25qYVwgbCZpbmlqYVwga2xpemFuamFcIChkYS9uZSkKK21lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIgICZMZXZhXCBsaW5pamFcIGtsaXphbmphXCAoZGEvbmUpCittZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhciAmRGVzbmFcIGxpbmlqYVwga2xpemFuamFcIChkYS9uZSkKKworIiBFZGl0L0dsb2JhbCBTZXR0aW5ncy9WaXJ0dWFsIEVkaXQKK21lbnV0cmFucyBOZXZlcgkJICAgICAgTmlrYWQKK21lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uICAgIEl6Ym9yXCBibG9rYQorbWVudXRyYW5zIEluc2VydFwgbW9kZQkgICAgICBSZb5pbVwgdW5vc2EKK21lbnV0cmFucyBCbG9ja1wgYW5kXCBJbnNlcnQgIEJsb2tcIGlcIHVub3MKK21lbnV0cmFucyBBbHdheXMJICAgICAgVXZlaworCisiIEVkaXQvRmlsZSBTZXR0aW5ncworbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhICAgUmVkbmlcICZicm9qZXZpXCAoZGEvbmUpPFRhYj46c2V0XCBudSEKK21lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkgICBSZb5pbVwgJmxpc3RlXCAoZGEvbmUpPFRhYj46c2V0XCBsaXN0IQorbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXA8VGFiPjpzZXRcIHdyYXAhCSAgIE9iYXZpamFuamVcICZyZWRvdmFcIChkYS9uZSk8VGFiPjpzZXRcIHdyYXAhCittZW51dHJhbnMgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEgICBQcmVsb21pXCAmbmFcIHJl6FwgKGRhL25lKTxUYWI+OnNldFwgbGJyIQorbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkgICBSYXptYWNpXCB1bWVzdG9cICZ0YWJ1bGFjaWplXCAoZGEvbmUpPFRhYj46c2V0XCBldCEKK21lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhCUF1dG8tJnV2bGHoZW5qZVwgKGRhL25lKTxUYWI+OnNldFwgYWkhCittZW51dHJhbnMgVG9nZ2xlXCAmQy1pbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEJICAgJkNlLXV2bGHoZW5qZVwgKGRhL25lKTxUYWI+OnNldFwgY2luIQorCisiIEVkaXQvS2V5bWFwCittZW51dHJhbnMgTm9uZSBOaWplZGFuCisKKyIgVG9vbHMgbWVudQorbWVudXRyYW5zICZUb29scwkmQWxhdGtlCittZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXSBTa2/oaVwgbmFcICZvdnVcIG96bmFrdTxUYWI+Z15dCittZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCSBTa2/oaVwgJm5hdHJhZzxUYWI+XlQKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJIEl6Z3JhZGlcICZkYXRvdGVrdVwgb3puYWthCittZW51dHJhbnMgJkZvbGRpbmcJICAgICAgJlBvZHZpamFuamUKK21lbnV0cmFucyBDcmVhdGVcICZGb2xkPFRhYj56ZgkJICBTJnR2b3JpXCBwb2R2aWp1dGFrPFRhYj56ZgorbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkgIE8mYnJpuWlcIHBvZHZpanV0YWs8VGFiPnpkCittZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJICBPYnJpuWlcIHN2ZVwgcG8mZHZpanV0a2U8VGFiPnpECittZW51dHJhbnMgRm9sZFwgY29sdW1uXCAmd2lkdGgJCSAgqWlyaW5hXCAmcmVkYVwgcG9kdmlqdXRrYQorbWVudXRyYW5zICZEaWZmCQkgICAgICAmVXBvcmXwaXZhbmplCittZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlICAgICAnbWFrJmUnPFRhYj46bWFrZQorbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbCAgICAgU3Bpc2FrXCAmZ3JluWFrYTxUYWI+OmNsCittZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whICBTcCZpc2FrXCBwb3J1a2E8VGFiPjpjbCEKK21lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkgICAgUyZsZWRl5mFcIGdyZblrYTxUYWI+OmNuCittZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwICBQcmUmdGhvZG5hXCBncmW5a2E8VGFiPjpjcAorbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQgICAgU3RhcmlcIHNwaXNhJms8VGFiPjpjb2xkCittZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldyAgICBObyZ2aVwgc3Bpc2FrPFRhYj46Y25ldworbWVudXRyYW5zIEVycm9yXCAmV2luZG93CSAgICBQcm96b3JcIHNhXCBnJnJluWthbWEKK21lbnV0cmFucyAmU2V0XCBDb21waWxlcgkgICAgSSZ6YWJlcmlcIHByZXZvZGlvY2EKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSAgIFByZXR2b3JpXCB1XCAmSEVLUzxUYWI+OiUheHhkCittZW51dHJhbnMgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIgICAgVnImYXRpXCB1XCBwcnZvYml0YW5cIG9ibGlrPFRhYj46JSF4eGRcIC1yCisKKyIgVG9vbHMvRm9sZGluZworbWVudXRyYW5zICZFbmFibGUvRGlzYWJsZVwgZm9sZHM8VGFiPnppICAgJk9tb2d15mkvcHJla2luaVwgcG9kdmlqYW5qZTxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkgICZQb2thvmlcIHJlZFwgc2FcIGt1cnNvcm9tPFRhYj56dgorbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIG9ubHk8VGFiPnpNenggUG9rYb5pXCAmc2Ftb1wgcmVkXCBzYVwga3Vyc29yb208VGFiPnpNengKK21lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bSAgICZaYXR2b3JpXCB2abllXCBwb2R2aWp1dGFrYTxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNICAgIFphdHZvcmlcIHMmdmVcIHBvZHZpanV0a2U8VGFiPnpNCittZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56ciAgICBPdHZvcmlcIHZpuSZlXCBwb2R2aWp1dGFrYTxUYWI+enIKK21lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIgICAgIE8mdHZvcmlcIHN2ZVwgcG9kdmlqdXRrZTxUYWI+elIKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkgICAgICAgJk5h6GluXCBwb2R2aWphbmphCisKKyIgVG9vbHMvRm9sZGluZy9Gb2xkIE1ldGhvZAorbWVudXRyYW5zIE0mYW51YWwJJlJ16G5vCittZW51dHJhbnMgSSZuZGVudAkmVXZ16GVub3N0CittZW51dHJhbnMgRSZ4cHJlc3Npb24JJkl6cmF6CittZW51dHJhbnMgUyZ5bnRheAkmU2ludGFrc2EKKyJtZW51dHJhbnMgJkRpZmYKK21lbnV0cmFucyBNYSZya2VyCSZPem5ha2EKKworIiBUb29scy9EaWZmCittZW51dHJhbnMgJlVwZGF0ZQkmQb51cmlyYWoKK21lbnV0cmFucyAmR2V0XCBCbG9jawkmUHJpaHZhdGlcIGl6bWVudQorbWVudXRyYW5zICZQdXRcIEJsb2NrCVByZSZiYWNpXCBpem1lbnUKKworIiBUb29scy9FcnJvciBXaW5kb3cKK21lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbiAgICZBvnVyaXJhajxUYWI+OmN3aW4KK21lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuICAgICZPdHZvcmk8VGFiPjpjb3BlbgorbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZSAgJlphdHZvcmk8VGFiPjpjY2xvc2UKKworIiBCdWZlcnMgbWVudQorbWVudXRyYW5zICZCdWZmZXJzCSAgICZCYWZlcmkKK21lbnV0cmFucyAmUmVmcmVzaFwgbWVudSAgICZBvnVyaXJhagorbWVudXRyYW5zIERlbGV0ZQkgICAmT2JyablpCittZW51dHJhbnMgJkFsdGVybmF0ZQkgICBBJmx0ZXJuYXRpdm5pCittZW51dHJhbnMgJk5leHQJCSAgICZTbGVkZeZpCittZW51dHJhbnMgJlByZXZpb3VzCSAgICZQcmV0aG9kbmkKK21lbnV0cmFucyBbTm9cIEZpbGVdCSAgIFtOZW1hXCBkYXRvdGVrZV0KKworIiBXaW5kb3cgbWVudQorbWVudXRyYW5zICZXaW5kb3cJCSAgICAmUHJvem9yCittZW51dHJhbnMgJk5ldzxUYWI+XlduCQkgICAgJk5vdmk8VGFiPl5XbgorbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCSAgICAmUG9kZWxpPFRhYj5eV3MKK21lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eICAgIFBvZGVsaVwgc2FcICZhbHRlcm5hdGl2bmltPFRhYj5eV15eCittZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YgICBQb2RlbGlcICZ1c3ByYXZubzxUYWI+Xld2CittZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlciAgICBQb2RlbGlcIHphXCBwcmVnbGVkXCAmZGF0b3Rla2EKK21lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkgICAgJlphdHZvcmk8VGFiPl5XYworbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbyAgWmF0dm9yaVwgJm9zdGFsZTxUYWI+XldvCisibWVudXRyYW5zIE5lJnh0PFRhYj5eV3cgICAgICAgJlNsZWRl5mk8VGFiPl5XdworIm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkgIFAmcmV0aG9kbmk8VGFiPl5XVworbWVudXRyYW5zIE1vdmVcICZUbwkJICAgIFByZSZtZXN0aQorbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJICAgICZLcnW+bm9cIG5hZ29yZTxUYWI+XldSCittZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyICAgICBLcnW+bm9cIG5hZG9sJmU8VGFiPl5XcgorbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSAgICAmSXN0ZVwgdmVsaehpbmU8VGFiPl5XPQorbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCSAgICBNYWtzaW1hbG5hXCAmdmlzaW5hPFRhYj5eV18KK21lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8gICAgIE1pbmltYSZsbmFcIHZpc2luYTxUYWI+XlcxXworbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CSAgICBNYWtzaW1hbG5hXCAmuWlyaW5hPFRhYj5eV1x8CittZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8ICAgICBNaW5pbWFsbmFcILlpJnJpbmE8VGFiPl5XMVx8CisKKyIgV2luZG93L01vdmUgVG8KK21lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSAmVnJoPFRhYj5eV0sKK21lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJICZQb2Rub75qZTxUYWI+XldKCittZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkgVSZsZXZvPFRhYj5eV0gKK21lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkgVSZkZXNubzxUYWI+XldMCisKKyIgVGhlIHBvcHVwIG1lbnUKK21lbnV0cmFucyAmVW5kbwkJICAgICAgJlZyYXRpCittZW51dHJhbnMgQ3UmdAkJICAgICAgJklzZWNpCittZW51dHJhbnMgJkNvcHkJCSAgICAgICZLb3BpcmFqCittZW51dHJhbnMgJlBhc3RlCSAgICAgICZVYmFjaQorbWVudXRyYW5zICZEZWxldGUJICAgICAgSSZ6YnJpuWkKK21lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZSAgIEJpcmFqXCAmcHJhdm91Z2Fvbm8KK21lbnV0cmFucyBTZWxlY3RcICZXb3JkICAgICAgIEl6YWJlcmlcICZyZegKK21lbnV0cmFucyBTZWxlY3RcICZMaW5lICAgICAgIEl6YWJlcmlcIHImZWQKK21lbnV0cmFucyBTZWxlY3RcICZCbG9jayAgICAgIEl6YWJlcmlcICZibG9rCittZW51dHJhbnMgU2VsZWN0XCAmQWxsCSAgICAgIEl6YWJlcmlcICZzdmUKKworIiBUaGUgR1VJIHRvb2xiYXIKK2lmIGhhcygidG9vbGJhciIpCisgIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQorICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CisgIGVuZGlmCisgIGZ1biBEb190b29sYmFyX3RtZW51KCkKKyAgICB0bWVudSBUb29sQmFyLk9wZW4JICAgVehpdGFqCisgICAgdG1lbnUgVG9vbEJhci5TYXZlCSAgIFNh6HV2YWoKKyAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwgIFNh6HV2YWogc3ZlCisgICAgdG1lbnUgVG9vbEJhci5QcmludCAgICCpdGFtcGFqCisgICAgdG1lbnUgVG9vbEJhci5VbmRvCSAgIFZyYXRpCisgICAgdG1lbnUgVG9vbEJhci5SZWRvCSAgIFBvdnJhdGkKKyAgICB0bWVudSBUb29sQmFyLkN1dAkgICBJc2VjaQorICAgIHRtZW51IFRvb2xCYXIuQ29weQkgICBLb3BpcmFqCisgICAgdG1lbnUgVG9vbEJhci5QYXN0ZSAgICBVYmFjaQorICAgIHRtZW51IFRvb2xCYXIuRmluZAkgICBOYfBpCisgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dCBOYfBpIHNsZWRl5mkKKyAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2IE5h8GkgcHJldGhvZG5pCisgICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlICBaYW1lbmkKKyAgICB0bWVudSBUb29sQmFyLk5ldwkgICBOb3ZpCisgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdCBQb2RlbGkgcHJvem9yCisgICAgdG1lbnUgVG9vbEJhci5XaW5NYXggICBNYWtzaW1hbG5hIHZpc2luYQorICAgIHRtZW51IFRvb2xCYXIuV2luTWluICAgTWluaW1hbG5hIHZpc2luYQorICAgIHRtZW51IFRvb2xCYXIuV2luVlNwbGl0ICAgUG9kZWxpIHVzcHJhdm5vCisgICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aCBNYWtzaW1hbG5hILlpcmluYQorICAgIHRtZW51IFRvb2xCYXIuV2luTWluV2lkdGggTWluaW1hbG5hILlpcmluYQorICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UgWmF0dm9yaSBwcm96b3IKKyAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuIFXoaXRhaiBzZWFuc3UKKyAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuIFNh6HV2YWogc2VhbnN1CisgICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQgICBJenZyuWkgc3BpcworICAgIHRtZW51IFRvb2xCYXIuTWFrZQkgICAnbWFrZScKKyAgICB0bWVudSBUb29sQmFyLlNoZWxsICAgIE9wZXJhdGl2bm8gb2tydb5lbmplCisgICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncyBOYXByYXZpIG96bmFrZQorICAgIHRtZW51IFRvb2xCYXIuVGFnSnVtcCAgSWRpIG5hIG96bmFrdQorICAgIHRtZW51IFRvb2xCYXIuSGVscAkgICBQb21v5gorICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAgTmHwaSBvYmphuW5qZW5qZQorICBlbmRmdW4KK2VuZGlmCisKKyIgU3ludGF4IG1lbnUKK21lbnV0cmFucyAmU3ludGF4ICZTaW50YWtzYQorbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51ICBJemJvclwgJ2ZpbGV0eXBlJ1wgaXpcICZtZW5pamEKK21lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkgUG9kZSZzaVwgJ3N5bnRheCdcIHNhbW8KK21lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28gIFBvZGVzaVwgJ2ZpbGV0eXBlJ1wgJnRha2/wZQorbWVudXRyYW5zICZPZmYJICAgICAmSXNrbGp16GVubworbWVudXRyYW5zICZNYW51YWwgICAgJlJ16G5vCittZW51dHJhbnMgQSZ1dG9tYXRpYwkmQXV0b21hdHNraQorbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZSAgICAgRGEvbmVcIHphXCBvdnVcICZkYXRvdGVrdQorbWVudXRyYW5zIENvJmxvclwgdGVzdAkgICBQcm92ZXJhXCAmYm9qYQorbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3QgUHJvdmVyYVwgaXN0aSZjYW5qYQorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTCAgUHJldHZvcmlcICZ1XCBIVE1MCisKKyIgZGlhbG9nIHRleHRzCitsZXQgbWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIlVuZXNpdGUgbmFyZWRidSBpbGkgcmXoIOhpamUgcG9qYbluamVuamUgdHJhvml0ZTpcblxuRG9kYWp0ZSBpXyB6YSBuYXJlZGJlIHVub3NhIChucHIuIGlfQ1RSTC1YKVxuRG9kYWp0ZSBjXyB6YSBuYXJlZGJlIGtvbWFuZG5vZyByZb5pbWEgKG5wci4gc188RGVsPilcbkRvZGFqdGUgJyB6YSBpbWVuYSBvcGNpamEgKG5wci4gJ3NoaWZ0d2lkdGgnKSIKKworbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIlVuZXNpdGUgcHV0IHByZXRyYWdlIHphIGRhdG90ZWtlXG5SYXpkdm9qaXRlIHphcmV6aW1hIGltZW5hIGRpcmVrdG9yaWp1bWEuIgorCitsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiVW5lc2l0ZSBpbWVuYSBkYXRvdGVrYSBzYSBvem5ha2FtYVxuUmF6ZHZvaml0ZSB6YXJlemltYSBpbWVuYS4iCisKK2xldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gIlVuZXNpdGUgbm92dSC5aXJpbnUgdGVrc3RhICgwIHNwcmXoYXZhIHByZWxvbSkiCisKK2xldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJJemFiZXJpdGUgdnJzdHUgZGF0b3Rla2UiCisKK2xldCBtZW51dHJhbnNfbm9fZmlsZSA9ICJbTmVtYSBkYXRvdGVrZV0iCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9zcl9ycy5pc29fODg1OS01LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3NyX3JzLmlzb184ODU5LTUudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ZDMyMmQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2xhbmcvbWVudV9zcl9ycy5pc29fODg1OS01LnZpbQpAQCAtMCwwICsxLDI1OSBAQAorIiBNZW51IFRyYW5zbGF0aW9uczogU2VyYmlhbgorIiBNYWludGFpbmVyOiBBbGVrc2FuZGFyIEplbGVuYWsgPGFqZWxlbmFrIEFUIHlhaG9vLmNvbT4KKyIgTGFzdCBDaGFuZ2U6CUZyaSwgMzAgTWF5IDIwMDMgMTI6MDI6MDcgLTA0MDAKKworIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KK2lmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQorICBmaW5pc2gKK2VuZGlmCitsZXQgZGlkX21lbnVfdHJhbnMgPSAxCitzY3JpcHRlbmNvZGluZyBpc284ODU5LTUKKworIiBIZWxwIG1lbnUKK21lbnV0cmFucyAmSGVscAkJICAgICAgv97c3ib7CittZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+ICAmv+DV09vV1DxUYWI+PEYxPgorbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgICAgJsPf4+Lh4tLeXCDX0Fwg2t7g2OHd2NrVCittZW51dHJhbnMgJkhvdy10b1wgbGlua3MgICAgICAmutDa3lwg1NBcLlwuXC4KK21lbnV0cmFucyAmRmluZAkJICAgICAgJr3Q8tgKK21lbnV0cmFucyAmQ3JlZGl0cwkgICAgICAmt9Dh2+PT1QorbWVudXRyYW5zIENvJnB5aW5nCSAgICAgIL8m4NXj19jc0PrVCittZW51dHJhbnMgTyZycGhhbnMJICAgICAgJsHY4N7n2PvYCittZW51dHJhbnMgJlZlcnNpb24JICAgICAgJrLV4NfY+NAKK21lbnV0cmFucyAmQWJvdXQJICAgICAgJr5cIN/g3tPg0NzjCisKKyIgRmlsZSBtZW51CittZW51dHJhbnMgJkZpbGUJCQkgICAgJrTQ4t7i1drQCittZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCSAgICAmvuLS3uDYXC5cLlwuPFRhYj46ZQorbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AgJr/e1NXb2C3e4tLe4NhcLlwuXC48VGFiPjpzcAorbWVudXRyYW5zICZOZXc8VGFiPjplbmV3CSAgICAmvd7S0DxUYWI+OmVuZXcKK21lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkgICAgJrfQ4tLe4Ng8VGFiPjpjbG9zZQorbWVudXRyYW5zICZTYXZlPFRhYj46dwkJICAgICbB0Ofj0tD4PFRhYj46dworbWVudXRyYW5zIFNhdmVcICZBc1wuXC5cLjxUYWI+OnNhdiAgwdDn49LQ+FwgJtrQ3lwuXC5cLjxUYWI+OnNhdgorbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLiAgv97U1dvYXCDYXCAm49/e4NXU2Fwg4dBcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuIL/eJtTV29hcINhcIN/g1d/g0NLYXCDh0FwuXC5cLgorbWVudXRyYW5zICZQcmludAkJICAgIMji0Cbc39D4CittZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkgICAgwdDn49LQ+Fwg2Fwg19Am0uDo2DxUYWI+OndxYQorbWVudXRyYW5zIEUmeGl0PFRhYj46cWEJCSAgICC6JuDQ+DxUYWI+OnFhCisKKyIgRWRpdCBtZW51CittZW51dHJhbnMgJkVkaXQJCQkgJsPg1fLY0tD61QorbWVudXRyYW5zICZVbmRvPFRhYj51CQkgJrLg0OLYPFRhYj51CittZW51dHJhbnMgJlJlZG88VGFiPl5SCQkgJr/e0uDQ4tg8VGFiPl5SCittZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JIL8m3t3e0tg8VGFiPlwuCittZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkguOHVJubYPFRhYj4iK3gKK21lbnV0cmFucyAmQ29weTxUYWI+Iit5CQkgJrre39jg0Pg8VGFiPiIreQorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkgJsPR0ObYPFRhYj4iK2dQCittZW51dHJhbnMgJlBhc3RlPFRhYj4iK1AJJsPR0ObYPFRhYj4iK2dQCittZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkgweLQ0thcIN/g1SbUPFRhYj5bcAorbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkgweLQ0thcICbY19A8VGFiPl1wCittZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJILjXJtHg2OjYPFRhYj54CittZW51dHJhbnMgJlNlbGVjdFwgYWxsPFRhYj5nZ1ZHICC419DR1eDYXCDh0ibVPFRhYj5nZ1ZHCittZW51dHJhbnMgJkZpbmRcLlwuXC4JCSAmvdDy2FwuXC5cLgorbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4gvdDy2Fwg2FwgJtfQ3NXd2FwuXC5cLgorbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CSC/JuDe197gXCDf3tTV6NDS0PrQCittZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJIL7fJuji0Fwg397U1ejQ0tD60AorbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkgv97U1ejQ0tD60Fwg19BcINTQJuLe4tXa1QorbWVudXRyYW5zICZTaGlmdHdpZHRoCQkgJr/e3NXg0PgKK21lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkgJrzV2tBcIOLQ0ePb0ObY+NAKK21lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JICbI2ODY3dBcIOLV2uHi0FwuXC5cLgorbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JICay4OHi0Fwg1NDi3uLV2tVcLlwuXC4KK21lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkgsd4m+NUKK21lbnV0cmFucyAmS2V5bWFwCQkgv+DV4Sbb2NrQ0tD61Vwg4tDh4tDi4+DVCittZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkguNfR3uBcICbk3t3i0FwuXC5cLgorCisiIEVkaXQvR2xvYmFsIFNldHRpbmdzCittZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhIL3Q09vQ4dhcICbe0eDQ1+bVXCAo1NAv3dUpPFRhYj46c2V0XCBobHMhCittZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JlLWNhc2U8VGFiPjpzZXRcIGljISC30N3V3NDg2FwgXNLV29jn2N3jXCAm4dve0tBcICjU0C/d1Sk8VGFiPjpzZXRcIGljIQorbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hIL/g3tLV4NhcIN/g0OLV++NcICbX0NPg0NTjXCAo1NAv3dUpPFRhYj46c2V0XCBzbSEKK21lbnV0cmFucyAmQ29udGV4dFwgbGluZXMgILLY1PnY0thcICbg1dTe0tgKK21lbnV0cmFucyAmVmlydHVhbFwgRWRpdCAgILLY4OLj1dvd3lwgJuPg1fLY0tD61QorbWVudXRyYW5zIFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCcDV1tjcXCDjJt3e4dBcICjU0C/d1Sk8VGFiPjpzZXRcIGltIQorbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEgICAgICcmVmknXCDh0NPb0OHd3lwgKNTQL93VKTxUYWI+OnNldFwgY3AhCittZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLiC/4+LQ+tBcICbf4NXi4NDT1VwuXC5cLgorbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuICAgJrTQ4t7i1drVXCDe193Q2tBcLlwuXC4KK21lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyICAgILvY3dj40Fwg4dBcICbQ29Di2tDc0FwgKNTQL93VKQorbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyICAgtN760Fwg2ybY3dj40Fwg2tvY19D60FwgKNTQL93VKQorbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhciAgJrvV0tBcINvY3dj40Fwg2tvY19D60FwgKNTQL93VKQorbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIgJrTV4d3QXCDb2N3Y+NBcINrb2NfQ+tBcICjU0C/d1SkKKworIiBFZGl0L0dsb2JhbCBTZXR0aW5ncy9WaXJ0dWFsIEVkaXQKK21lbnV0cmFucyBOZXZlcgkJICAgICAgvdja0NQKK21lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uICAgILjX0d7gXCDR297a0AorbWVudXRyYW5zIEluc2VydFwgbW9kZQkgICAgICDA1dbY3Fwg493e4dAKK21lbnV0cmFucyBCbG9ja1wgYW5kXCBJbnNlcnQgILHb3tpcINhcIOPd3uEKK21lbnV0cmFucyBBbHdheXMJICAgICAgw9LV2gorCisiIEVkaXQvRmlsZSBTZXR0aW5ncworbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhICAgwNXU3dhcICbR4N741dLYXCAo1NAv3dUpPFRhYj46c2V0XCBudSEKK21lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkgICDA1dbY3FwgJtvY4eLVXCAo1NAv3dUpPFRhYj46c2V0XCBsaXN0IQorbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXA8VGFiPjpzZXRcIHdyYXAhCSAgIL7R0NLY+ND61VwgJuDV1N7S0FwgKNTQL93VKTxUYWI+OnNldFwgd3JhcCEKK21lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyISAgIL/g1dve3NhcICbd0Fwg4NXnXCAo1NAv3dUpPFRhYj46c2V0XCBsYnIhCittZW51dHJhbnMgVG9nZ2xlXCAmZXhwYW5kLXRhYjxUYWI+OnNldFwgZXQhCSAgIMDQ19zQ5thcIOPc1eHi3lwgJuLQ0ePb0ObY+NVcICjU0C/d1Sk8VGFiPjpzZXRcIGV0IQorbWVudXRyYW5zIFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJsOPi3i0m49Lb0OfV+tVcICjU0C/d1Sk8VGFiPjpzZXRcIGFpIQorbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCSAgICbG1S3j0tvQ59X61VwgKNTQL93VKTxUYWI+OnNldFwgY2luIQorCisiIEVkaXQvS2V5bWFwCittZW51dHJhbnMgTm9uZSC92PjV1NDdCisKKyIgVG9vbHMgbWVudQorbWVudXRyYW5zICZUb29scwkmsNvQ4trVCittZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXSDB2t7n2Fwg3dBcICbe0uNcIN7X3dDa4zxUYWI+Z15dCittZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCSDB2t7n2FwgJt3Q4uDQ0zxUYWI+XlQKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJILjX0+DQ1NhcICbU0OLe4tXa41wg3tfd0NrQCittZW51dHJhbnMgJkZvbGRpbmcJICAgICAgJr/e1NLY+ND61QorbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkgIMEm4tLe4NhcIN/e1NLY+OPi0No8VGFiPnpmCittZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCSAgvibR4Njo2Fwg397U0tj44+LQ2jxUYWI+emQKK21lbnV0cmFucyBEZWxldGVcICZBbGxcIEZvbGRzPFRhYj56RAkgIL7R4Njo2Fwg4dLVXCDf3ibU0tj44+La1TxUYWI+ekQKK21lbnV0cmFucyBGb2xkXCBjb2x1bW5cICZ3aWR0aAkJICDI2ODY3dBcICbg1dTQXCDf3tTS2Pjj4trQCittZW51dHJhbnMgJkRpZmYJCSAgICAgICbD397g1fLY0tD61QorbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZSAgICAgJ21haybVJzxUYWI+Om1ha2UKK21lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wgICAgIMHf2OHQ2lwgJtPg1ejQ2tA8VGFiPjpjbAorbWVudXRyYW5zIEwmaXN0XCBNZXNzYWdlczxUYWI+OmNsISAgwd8m2OHQ2lwg397g49rQPFRhYj46Y2whCittZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JICAgIMEm29XU1fvQXCDT4NXo2tA8VGFiPjpjbgorbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcCAgv+DVJuLl3tTd0Fwg0+DV6NrQPFRhYj46Y3AKK21lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkICAgIMHi0ODYXCDh39jh0CbaPFRhYj46Y29sZAorbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcgICAgvd4m0thcIOHf2OHQ2jxUYWI+OmNuZXcKK21lbnV0cmFucyBFcnJvclwgJldpbmRvdwkgICAgv+De197gXCDh0Fwg0ybg1eja0NzQCittZW51dHJhbnMgJlNldFwgQ29tcGlsZXIJICAgILgm19DR1eDYXCDf4NXS3tTY3ubQCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkgICC/4NXi0t7g2Fwg41wgJsW1usE8VGFiPjolIXh4ZAorbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yICAgILLgJtDi2Fwg41wg3+DS3tHY4tDdXCDe0dvY2jxUYWI+OiUheHhkXCAtcgorCisiIFRvb2xzL0ZvbGRpbmcKK21lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aSAgICa+3N7T4/vYL9/g1drY3dhcIN/e1NLY+ND61TxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkgICa/3trQ1thcIODV1Fwg4dBcINrj4OHe4N7cPFRhYj56dgorbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIG9ubHk8VGFiPnpNenggv97a0NbYXCAm4dDc3lwg4NXUXCDh0Fwg2uPg4d7g3tw8VGFiPnpNengKK21lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bSAgICa30OLS3uDYXCDS2OjVXCDf3tTS2Pjj4tDa0DxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNICAgILfQ4tLe4NhcIOEm0tVcIN/e1NLY+OPi2tU8VGFiPnpNCittZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56ciAgICC+4tLe4NhcINLY6CbVXCDf3tTS2Pjj4tDa0DxUYWI+enIKK21lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIgICAgIL4m4tLe4NhcIOHS1Vwg397U0tj44+La1TxUYWI+elIKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkgICAgICAgJr3Q59jdXCDf3tTS2PjQ+tAKKworIiBUb29scy9Gb2xkaW5nL0ZvbGQgTWV0aG9kCittZW51dHJhbnMgTSZhbnVhbAkmwOPn3d4KK21lbnV0cmFucyBJJm5kZW50CSbD0uPn1d3e4eIKK21lbnV0cmFucyBFJnhwcmVzc2lvbgkmuNfg0NcKK21lbnV0cmFucyBTJnludGF4CSbB2N3i0Nrh0AorIm1lbnV0cmFucyAmRGlmZgorbWVudXRyYW5zIE1hJnJrZXIJJr7X3dDa0AorCisiIFRvb2xzL0RpZmYKK21lbnV0cmFucyAmVXBkYXRlCSaw1uPg2ODQ+AorbWVudXRyYW5zICZHZXRcIEJsb2NrCSa/4Njl0tDi2Fwg2Nfc1d3jCittZW51dHJhbnMgJlB1dFwgQmxvY2sJv+DVJtHQ5thcINjX3NXd4worCisiIFRvb2xzL0Vycm9yIFdpbmRvdworbWVudXRyYW5zICZVcGRhdGU8VGFiPjpjd2luICAgJrDW4+DY4ND4PFRhYj46Y3dpbgorbWVudXRyYW5zICZPcGVuPFRhYj46Y29wZW4gICAgJr7i0t7g2DxUYWI+OmNvcGVuCittZW51dHJhbnMgJkNsb3NlPFRhYj46Y2Nsb3NlICAmt9Di0t7g2DxUYWI+OmNjbG9zZQorCisiIEJ1ZmVycyBtZW51CittZW51dHJhbnMgJkJ1ZmZlcnMJICAgJrHQ5NXg2AorbWVudXRyYW5zICZSZWZyZXNoXCBtZW51ICAgJrDW4+DY4ND4CittZW51dHJhbnMgRGVsZXRlCSAgICa+0eDY6NgKK21lbnV0cmFucyAmQWx0ZXJuYXRlCSAgILAm2+LV4N3Q4tjS3dgKK21lbnV0cmFucyAmTmV4dAkJICAgJsHb1dTV+9gKK21lbnV0cmFucyAmUHJldmlvdXMJICAgJr/g1eLl3tTd2AorbWVudXRyYW5zIFtOb1wgRmlsZV0JICAgW73V3NBcINTQ4t7i1drVXQorCisiIFdpbmRvdyBtZW51CittZW51dHJhbnMgJldpbmRvdwkJICAgICa/4N7X3uAKK21lbnV0cmFucyAmTmV3PFRhYj5eV24JCSAgICAmvd7S2DxUYWI+XlduCittZW51dHJhbnMgUyZwbGl0PFRhYj5eV3MJICAgICa/3tTV29g8VGFiPl5XcworbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4gICAgv97U1dvYXCDh0FwgJtDb4tXg3dDi2NLd2Nw8VGFiPl5XXl4KK21lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdiAgIL/e1NXb2FwgJuPh3+DQ0t3ePFRhYj5eV3YKK21lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyICAgIL/e1NXb2Fwg19BcIN/g1dPb1dRcICbU0OLe4tXa0AorbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCSAgICAmt9Di0t7g2DxUYWI+XldjCittZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvICC30OLS3uDYXCAm3uHi0NvVPFRhYj5eV28KKyJtZW51dHJhbnMgTmUmeHQ8VGFiPl5XdyAgICAgICAmwdvV1NX72DxUYWI+Xld3CisibWVudXRyYW5zIFAmcmV2aW91czxUYWI+XldXCSAgvybg1eLl3tTd2DxUYWI+XldXCittZW51dHJhbnMgTW92ZVwgJlRvCQkgICAgv+DVJtzV4eLYCittZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkgICAgJrrg49bd3lwg3dDT3uDVPFRhYj5eV1IKK21lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IgICAgILrg49bd3lwg3dDU3tsm1TxUYWI+XldyCittZW51dHJhbnMgJkVxdWFsXCBTaXplPFRhYj5eVz0JICAgICa44eLVXCDS1dvY59jd1TxUYWI+Xlc9CittZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JICAgILzQ2uHY3NDb3dBcICbS2OHY3dA8VGFiPl5XXworbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXyAgICAgvNjd2NzQJtvd0Fwg0tjh2N3QPFRhYj5eVzFfCittZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJICAgILzQ2uHY3NDb3dBcICbo2ODY3dA8VGFiPl5XXHwKK21lbnV0cmFucyBNaW5cIFdpZHQmaDxUYWI+XlcxXHwgICAgILzY3djc0Nvd0Fwg6Ngm4Njd0DxUYWI+XlcxXHwKKworIiBXaW5kb3cvTW92ZSBUbworbWVudXRyYW5zICZUb3A8VGFiPl5XSwkJICay4OU8VGFiPl5XSworbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkgJr/e1N3e1vjVPFRhYj5eV0oKK21lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICSDDJtvV0t48VGFiPl5XSAorbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCSDDJtTV4d3ePFRhYj5eV0wKKworIiBUaGUgcG9wdXAgbWVudQorbWVudXRyYW5zICZVbmRvCQkgICAgICAmsuDQ4tgKK21lbnV0cmFucyBDdSZ0CQkgICAgICAmuOHV5tgKK21lbnV0cmFucyAmQ29weQkJICAgICAgJrre39jg0PgKK21lbnV0cmFucyAmUGFzdGUJICAgICAgJsPR0ObYCittZW51dHJhbnMgJkRlbGV0ZQkgICAgICC4JtfR4Njo2AorbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlICAgsdjg0PhcICbf4NDS3uPT0N7d3gorbWVudXRyYW5zIFNlbGVjdFwgJldvcmQgICAgICAguNfQ0dXg2FwgJuDV5worbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUgICAgICAguNfQ0dXg2Fwg4CbV1AorbWVudXRyYW5zIFNlbGVjdFwgJkJsb2NrICAgICAguNfQ0dXg2FwgJtHb3toKK21lbnV0cmFucyBTZWxlY3RcICZBbGwJICAgICAguNfQ0dXg2FwgJuHS1QorCisiIFRoZSBHVUkgdG9vbGJhcgoraWYgaGFzKCJ0b29sYmFyIikKKyAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCisgICAgZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKKyAgZW5kaWYKKyAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQorICAgIHRtZW51IFRvb2xCYXIuT3BlbgkgICDD59ji0PgKKyAgICB0bWVudSBUb29sQmFyLlNhdmUJICAgwdDn49LQ+AorICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbCAgwdDn49LQ+CDh0tUKKyAgICB0bWVudSBUb29sQmFyLlByaW50ICAgIMji0Nzf0PgKKyAgICB0bWVudSBUb29sQmFyLlVuZG8JICAgsuDQ4tgKKyAgICB0bWVudSBUb29sQmFyLlJlZG8JICAgv97S4NDi2AorICAgIHRtZW51IFRvb2xCYXIuQ3V0CSAgILjh1ebYCisgICAgdG1lbnUgVG9vbEJhci5Db3B5CSAgILre39jg0PgKKyAgICB0bWVudSBUb29sQmFyLlBhc3RlICAgIMPR0ObYCisgICAgdG1lbnUgVG9vbEJhci5GaW5kCSAgIL3Q8tgKKyAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0IL3Q8tgg4dvV1NX72AorICAgIHRtZW51IFRvb2xCYXIuRmluZFByZXYgvdDy2CDf4NXi5d7U3dgKKyAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UgILfQ3NXd2AorICAgIHRtZW51IFRvb2xCYXIuTmV3CSAgIL3e0tgKKyAgICB0bWVudSBUb29sQmFyLldpblNwbGl0IL/e1NXb2CDf4N7X3uAKKyAgICB0bWVudSBUb29sQmFyLldpbk1heCAgILzQ2uHY3NDb3dAg0tjh2N3QCisgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4gICC82N3Y3NDb3dAg0tjh2N3QCisgICAgdG1lbnUgVG9vbEJhci5XaW5WU3BsaXQgICC/3tTV29gg4+Hf4NDS3d4KKyAgICB0bWVudSBUb29sQmFyLldpbk1heFdpZHRoILzQ2uHY3NDb3dAg6Njg2N3QCisgICAgdG1lbnUgVG9vbEJhci5XaW5NaW5XaWR0aCC82N3Y3NDb3dAg6Njg2N3QCisgICAgdG1lbnUgVG9vbEJhci5XaW5DbG9zZSC30OLS3uDYIN/g3tfe4AorICAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24gw+fY4tD4IOHV0N3h4worICAgIHRtZW51IFRvb2xCYXIuU2F2ZVNlc24gwdDn49LQ+CDh1dDd4eMKKyAgICB0bWVudSBUb29sQmFyLlJ1blNjcmlwdCAgILjX0uDo2CDh39jhCisgICAgdG1lbnUgVG9vbEJhci5NYWtlCSAgICdtYWtlJworICAgIHRtZW51IFRvb2xCYXIuU2hlbGwgICAgvt/V4NDi2NLd3iDe2uDj1tX61QorICAgIHRtZW51IFRvb2xCYXIuUnVuQ3RhZ3MgvdDf4NDS2CDe193Q2tUKKyAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAgILjU2CDd0CDe193Q2uMKKyAgICB0bWVudSBUb29sQmFyLkhlbHAJICAgv97c3vsKKyAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwIL3Q8tgg3tH40Oj61frVCisgIGVuZGZ1bgorZW5kaWYKKworIiBTeW50YXggbWVudQorbWVudXRyYW5zICZTeW50YXggJsHY3eLQ2uHQCittZW51dHJhbnMgJlNob3dcIGZpbGV0eXBlc1wgaW5cIG1lbnUgILjX0d7gXCAnZmlsZXR5cGUnXCDY11wgJtzV3dj40AorbWVudXRyYW5zIFNldFwgJyZzeW50YXgnXCBvbmx5CSC/3tTVJuHYXCAnc3ludGF4J1wg4dDc3gorbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbyAgv97U1eHYXCAnZmlsZXR5cGUnXCAm4tDa3vLVCittZW51dHJhbnMgJk9mZgkgICAgICa44dr54+fV3d4KK21lbnV0cmFucyAmTWFudWFsICAgICbA4+fd3gorbWVudXRyYW5zIEEmdXRvbWF0aWMJJrDj4t7c0OLh2tgKK21lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUgICAgILTQL93VXCDX0Fwg3tLjXCAm1NDi3uLV2uMKK21lbnV0cmFucyBDbyZsb3JcIHRlc3QJICAgv+De0tXg0FwgJtHe+NAKK21lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0IL/g3tLV4NBcINjh4tgm5tD60AorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTCAgv+DV4tLe4NhcICbjXCBIVE1MCisKKyIgZGlhbG9nIHRleHRzCitsZXQgbWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIsPd1eHY4tUg3dDg1dTR4yDY29gg4NXnIOfY+NUg39740Oj61frVIOLg0NbY4tU6XG5cbrTe1ND44tUgaV8g19Ag3dDg1dTR1SDj3d7h0CAo3d/gLiBpX0NUUkwtWClcbrTe1ND44tUgY18g19Ag3dDg1dTR1SDa3tzQ3dTd3tMg4NXW2NzQICjd3+AuIOFfPERlbD4pXG603tTQ+OLVICcg19Ag2NzV3dAg3t/m2PjQICjd3+AuICdzaGlmdHdpZHRoJykiCisKK2xldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICLD3dXh2OLVIN/j4iDf4NXi4NDT1SDX0CDU0OLe4tXa1VxuwNDX1NLe+Nji1SDX0ODV19jc0CDY3NXd0CDU2ODV2uLe4Nj449zQLiIKKworbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIsPd1eHY4tUg2NzV3dAg1NDi3uLV2tAg4dAg3tfd0NrQ3NBcbsDQ19TS3vjY4tUg19Dg1dfY3NAg2NzV3dAuIgorCitsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICLD3dXh2OLVIN3e0uMg6Njg2N3jIOLV2uHi0CAoMCDh3+DV59DS0CDf4NXb3twpIgorCitsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiuNfQ0dXg2OLVINLg4eLjINTQ4t7i1drVIgorCitsZXQgbWVudXRyYW5zX25vX2ZpbGUgPSAiW73V3NAg1NDi3uLV2tVdIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfc3JfcnMudXRmLTgudmltIGIvcnVudGltZS9sYW5nL21lbnVfc3JfcnMudXRmLTgudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZjE0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2xhbmcvbWVudV9zcl9ycy51dGYtOC52aW0KQEAgLTAsMCArMSwyNjEgQEAKKyIgTWVudSBUcmFuc2xhdGlvbnM6IFNlcmJpYW4KKyIgTWFpbnRhaW5lcjogQWxla3NhbmRhciBKZWxlbmFrIDxhamVsZW5hayBBVCB5YWhvby5jb20+CisiIExhc3QgQ2hhbmdlOglGcmksIDMwIE1heSAyMDAzIDEwOjE3OjM5IEVhc3Rlcm4gRGF5bGlnaHQgVGltZQorCisiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgoraWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBkaWRfbWVudV90cmFucyA9IDEKK3NjcmlwdGVuY29kaW5nIHV0Zi04CisKKyIgSGVscCBtZW51CittZW51dHJhbnMgJkhlbHAJCSAgICAgINCf0L7QvNC+JtGbCittZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+ICAm0J/RgNC10LPQu9C10LQ8VGFiPjxGMT4KK21lbnV0cmFucyAmVXNlclwgTWFudWFsICAgICAgICbQo9C/0YPRgtGB0YLQstC+XCDQt9CwXCDQutC+0YDQuNGB0L3QuNC60LUKK21lbnV0cmFucyAmSG93LXRvXCBsaW5rcyAgICAgICbQmtCw0LrQvlwg0LTQsFwuXC5cLgorbWVudXRyYW5zICZGaW5kCQkgICAgICAm0J3QsNGS0LgKK21lbnV0cmFucyAmQ3JlZGl0cwkgICAgICAm0JfQsNGB0LvRg9Cz0LUKK21lbnV0cmFucyBDbyZweWluZwkgICAgICDQnybRgNC10YPQt9C40LzQsNGa0LUKK21lbnV0cmFucyBPJnJwaGFucwkgICAgICAm0KHQuNGA0L7Rh9C40ZvQuAorbWVudXRyYW5zICZWZXJzaW9uCSAgICAgICbQktC10YDQt9C40ZjQsAorbWVudXRyYW5zICZBYm91dAkgICAgICAm0J5cINC/0YDQvtCz0YDQsNC80YMKKworIiBGaWxlIG1lbnUKK21lbnV0cmFucyAmRmlsZQkJCSAgICAm0JTQsNGC0L7RgtC10LrQsAorbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkgICAgJtCe0YLQstC+0YDQuFwuXC5cLjxUYWI+OmUKK21lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwICbQn9C+0LTQtdC70Lgt0L7RgtCy0L7RgNC4XC5cLlwuPFRhYj46c3AKK21lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkgICAgJtCd0L7QstCwPFRhYj46ZW5ldworbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCSAgICAm0JfQsNGC0LLQvtGA0Lg8VGFiPjpjbG9zZQorbWVudXRyYW5zICZTYXZlPFRhYj46dwkJICAgICbQodCw0YfRg9Cy0LDRmDxUYWI+OncKK21lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYgINCh0LDRh9GD0LLQsNGYXCAm0LrQsNC+XC5cLlwuPFRhYj46c2F2CittZW51dHJhbnMgU3BsaXRcICZEaWZmXCB3aXRoXC5cLlwuICDQn9C+0LTQtdC70LhcINC4XCAm0YPQv9C+0YDQtdC00LhcINGB0LBcLlwuXC4KK21lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuINCf0L4m0LTQtdC70LhcINC4XCDQv9GA0LXQv9GA0LDQstC4XCDRgdCwXC5cLlwuCittZW51dHJhbnMgJlByaW50CQkgICAg0KjRgtCwJtC80L/QsNGYCittZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkgICAg0KHQsNGH0YPQstCw0ZhcINC4XCDQt9CwJtCy0YDRiNC4PFRhYj46d3FhCittZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJICAgINCaJtGA0LDRmDxUYWI+OnFhCisKKyIgRWRpdCBtZW51CittZW51dHJhbnMgJkVkaXQJCQkgJtCj0YDQtdGS0LjQstCw0ZrQtQorbWVudXRyYW5zICZVbmRvPFRhYj51CQkgJtCS0YDQsNGC0Lg8VGFiPnUKK21lbnV0cmFucyAmUmVkbzxUYWI+XlIJCSAm0J/QvtCy0YDQsNGC0Lg8VGFiPl5SCittZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JINCfJtC+0L3QvtCy0Lg8VGFiPlwuCittZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkg0JjRgdC1JtGG0Lg8VGFiPiIreAorbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCSAm0JrQvtC/0LjRgNCw0Zg8VGFiPiIreQorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkgJtCj0LHQsNGG0Lg8VGFiPiIrZ1AKK21lbnV0cmFucyAmUGFzdGU8VGFiPiIrUAkm0KPQsdCw0YbQuDxUYWI+IitnUAorbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJINCh0YLQsNCy0LhcINC/0YDQtSbQtDxUYWI+W3AKK21lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJINCh0YLQsNCy0LhcICbQuNC30LA8VGFiPl1wCittZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJINCY0Lcm0LHRgNC40YjQuDxUYWI+eAorbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRyAg0JjQt9Cw0LHQtdGA0LhcINGB0LIm0LU8VGFiPmdnVkcKK21lbnV0cmFucyAmRmluZFwuXC5cLgkJICbQndCw0ZLQuFwuXC5cLgorbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4g0J3QsNGS0LhcINC4XCAm0LfQsNC80LXQvdC4XC5cLlwuCittZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJINCfJtGA0L7Qt9C+0YBcINC/0L7QtNC10YjQsNCy0LDRmtCwCittZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJINCe0L8m0YjRgtCwXCDQv9C+0LTQtdGI0LDQstCw0ZrQsAorbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkg0J/QvtC00LXRiNCw0LLQsNGa0LBcINC30LBcINC00LAm0YLQvtGC0LXQutC1CittZW51dHJhbnMgJlNoaWZ0d2lkdGgJCSAm0J/QvtC80LXRgNCw0ZgKK21lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkgJtCc0LXQutCwXCDRgtCw0LHRg9C70LDRhtC40ZjQsAorbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkgJtCo0LjRgNC40L3QsFwg0YLQtdC60YHRgtCwXC5cLlwuCittZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkgJtCS0YDRgdGC0LBcINC00LDRgtC+0YLQtdC60LVcLlwuXC4KK21lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkg0JHQvibRmNC1CittZW51dHJhbnMgJktleW1hcAkJINCf0YDQtdGBJtC70LjQutCw0LLQsNGa0LVcINGC0LDRgdGC0LDRgtGD0YDQtQorbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JINCY0LfQsdC+0YBcICbRhNC+0L3RgtCwXC5cLlwuCisKKyIgRWRpdC9HbG9iYWwgU2V0dGluZ3MKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEg0J3QsNCz0LvQsNGB0LhcICbQvtCx0YDQsNC30YbQtVwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGhscyEKK21lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhINCX0LDQvdC10LzQsNGA0LhcIFzQstC10LvQuNGH0LjQvdGDXCAm0YHQu9C+0LLQsFwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGljIQorbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hINCf0YDQvtCy0LXRgNC4XCDQv9GA0LDRgtC10ZvRg1wgJtC30LDQs9GA0LDQtNGDXCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgc20hCittZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzICDQktC40LTRmdC40LLQuFwgJtGA0LXQtNC+0LLQuAorbWVudXRyYW5zICZWaXJ0dWFsXCBFZGl0ICAg0JLQuNGA0YLRg9C10LvQvdC+XCAm0YPRgNC10ZLQuNCy0LDRmtC1CittZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEgICDQoNC10LbQuNC8XCDRgybQvdC+0YHQsFwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGltIQorbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEgICAgICcmVmknXCDRgdCw0LPQu9Cw0YHQvdC+XCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgY3AhCittZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLiDQn9GD0YLQsNGa0LBcICbQv9GA0LXRgtGA0LDQs9C1XC5cLlwuCittZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4gICAm0JTQsNGC0L7RgtC10LrQtVwg0L7Qt9C90LDQutCwXC5cLlwuCittZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhciAgICDQm9C40L3QuNGY0LBcINGB0LBcICbQsNC70LDRgtC60LDQvNCwXCAo0LTQsC/QvdC1KQorbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyICAg0JTQvtGa0LBcINC7JtC40L3QuNGY0LBcINC60LvQuNC30LDRmtCwXCAo0LTQsC/QvdC1KQorbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhciAgJtCb0LXQstCwXCDQu9C40L3QuNGY0LBcINC60LvQuNC30LDRmtCwXCAo0LTQsC/QvdC1KQorbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIgJtCU0LXRgdC90LBcINC70LjQvdC40ZjQsFwg0LrQu9C40LfQsNGa0LBcICjQtNCwL9C90LUpCisKKyIgRWRpdC9HbG9iYWwgU2V0dGluZ3MvVmlydHVhbCBFZGl0CittZW51dHJhbnMgTmV2ZXIJCSAgICAgINCd0LjQutCw0LQKK21lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uICAgINCY0LfQsdC+0YBcINCx0LvQvtC60LAKK21lbnV0cmFucyBJbnNlcnRcIG1vZGUJICAgICAg0KDQtdC20LjQvFwg0YPQvdC+0YHQsAorbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydCAg0JHQu9C+0LpcINC4XCDRg9C90L7RgQorbWVudXRyYW5zIEFsd2F5cwkgICAgICDQo9Cy0LXQugorCisiIEVkaXQvRmlsZSBTZXR0aW5ncworbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhICAg0KDQtdC00L3QuFwgJtCx0YDQvtGY0LXQstC4XCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgbnUhCittZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJICAg0KDQtdC20LjQvFwgJtC70LjRgdGC0LVcICjQtNCwL9C90LUpPFRhYj46c2V0XCBsaXN0IQorbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXA8VGFiPjpzZXRcIHdyYXAhCSAgINCe0LHQsNCy0LjRmNCw0ZrQtVwgJtGA0LXQtNC+0LLQsFwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIHdyYXAhCittZW51dHJhbnMgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEgICDQn9GA0LXQu9C+0LzQuFwgJtC90LBcINGA0LXRh1wgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGxiciEKK21lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJICAg0KDQsNC30LzQsNGG0LhcINGD0LzQtdGB0YLQvlwgJtGC0LDQsdGD0LvQsNGG0LjRmNC1XCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgZXQhCittZW51dHJhbnMgVG9nZ2xlXCAmYXV0by1pbmRlbnQ8VGFiPjpzZXRcIGFpIQnQkNGD0YLQvi0m0YPQstC70LDRh9C10ZrQtVwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGFpIQorbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCSAgICbQptC1LdGD0LLQu9Cw0YfQtdGa0LVcICjQtNCwL9C90LUpPFRhYj46c2V0XCBjaW4hCisKKyIgRWRpdC9LZXltYXAKK21lbnV0cmFucyBOb25lINCd0LjRmNC10LTQsNC9CisKKyIgVG9vbHMgbWVudQorbWVudXRyYW5zICZUb29scwkm0JDQu9Cw0YLQutC1CittZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXSDQodC60L7Rh9C4XCDQvdCwXCAm0L7QstGDXCDQvtC30L3QsNC60YM8VGFiPmdeXQorbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkg0KHQutC+0YfQuFwgJtC90LDRgtGA0LDQszxUYWI+XlQKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJINCY0LfQs9GA0LDQtNC4XCAm0LTQsNGC0L7RgtC10LrRg1wg0L7Qt9C90LDQutCwCittZW51dHJhbnMgJkZvbGRpbmcJICAgICAgJtCf0L7QtNCy0LjRmNCw0ZrQtQorbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkgINChJtGC0LLQvtGA0LhcINC/0L7QtNCy0LjRmNGD0YLQsNC6PFRhYj56ZgorbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkgINCeJtCx0YDQuNGI0LhcINC/0L7QtNCy0LjRmNGD0YLQsNC6PFRhYj56ZAorbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECSAg0J7QsdGA0LjRiNC4XCDRgdCy0LVcINC/0L4m0LTQstC40ZjRg9GC0LrQtTxUYWI+ekQKK21lbnV0cmFucyBGb2xkXCBjb2x1bW5cICZ3aWR0aAkJICDQqNC40YDQuNC90LBcICbRgNC10LTQsFwg0L/QvtC00LLQuNGY0YPRgtC60LAKK21lbnV0cmFucyAmRGlmZgkJICAgICAgJtCj0L/QvtGA0LXRktC40LLQsNGa0LUKK21lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UgICAgICdtYWsm0LUnPFRhYj46bWFrZQorbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbCAgICAg0KHQv9C40YHQsNC6XCAm0LPRgNC10YjQsNC60LA8VGFiPjpjbAorbWVudXRyYW5zIEwmaXN0XCBNZXNzYWdlczxUYWI+OmNsISAg0KHQvybQuNGB0LDQulwg0L/QvtGA0YPQutCwPFRhYj46Y2whCittZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JICAgINChJtC70LXQtNC10ZvQsFwg0LPRgNC10YjQutCwPFRhYj46Y24KK21lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AgINCf0YDQtSbRgtGF0L7QtNC90LBcINCz0YDQtdGI0LrQsDxUYWI+OmNwCittZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZCAgICDQodGC0LDRgNC4XCDRgdC/0LjRgdCwJtC6PFRhYj46Y29sZAorbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcgICAg0J3QvibQstC4XCDRgdC/0LjRgdCw0Lo8VGFiPjpjbmV3CittZW51dHJhbnMgRXJyb3JcICZXaW5kb3cJICAgINCf0YDQvtC30L7RgFwg0YHQsFwg0LMm0YDQtdGI0LrQsNC80LAKK21lbnV0cmFucyAmU2V0XCBDb21waWxlcgkgICAg0Jgm0LfQsNCx0LXRgNC4XCDQv9GA0LXQstC+0LTQuNC+0YbQsAorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSEVYPFRhYj46JSF4eGQJICAg0J/RgNC10YLQstC+0YDQuFwg0YNcICbQpdCV0JrQoTxUYWI+OiUheHhkCittZW51dHJhbnMgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIgICAg0JLRgCbQsNGC0LhcINGDXCDQv9GA0LLQvtCx0LjRgtCw0L1cINC+0LHQu9C40Lo8VGFiPjolIXh4ZFwgLXIKKworIiBUb29scy9Gb2xkaW5nCittZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkgICAm0J7QvNC+0LPRg9Gb0Lgv0L/RgNC10LrQuNC90LhcINC/0L7QtNCy0LjRmNCw0ZrQtTxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkgICbQn9C+0LrQsNC20LhcINGA0LXQtFwg0YHQsFwg0LrRg9GA0YHQvtGA0L7QvDxUYWI+enYKK21lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4INCf0L7QutCw0LbQuFwgJtGB0LDQvNC+XCDRgNC10LRcINGB0LBcINC60YPRgNGB0L7RgNC+0Lw8VGFiPnpNengKK21lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bSAgICbQl9Cw0YLQstC+0YDQuFwg0LLQuNGI0LVcINC/0L7QtNCy0LjRmNGD0YLQsNC60LA8VGFiPnptCittZW51dHJhbnMgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TSAgICDQl9Cw0YLQstC+0YDQuFwg0YEm0LLQtVwg0L/QvtC00LLQuNGY0YPRgtC60LU8VGFiPnpNCittZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56ciAgICDQntGC0LLQvtGA0LhcINCy0LjRiCbQtVwg0L/QvtC00LLQuNGY0YPRgtCw0LrQsDxUYWI+enIKK21lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIgICAgINCeJtGC0LLQvtGA0LhcINGB0LLQtVwg0L/QvtC00LLQuNGY0YPRgtC60LU8VGFiPnpSCittZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJICAgICAgICbQndCw0YfQuNC9XCDQv9C+0LTQstC40ZjQsNGa0LAKKworIiBUb29scy9Gb2xkaW5nL0ZvbGQgTWV0aG9kCittZW51dHJhbnMgTSZhbnVhbAkm0KDRg9GH0L3QvgorbWVudXRyYW5zIEkmbmRlbnQJJtCj0LLRg9GH0LXQvdC+0YHRggorbWVudXRyYW5zIEUmeHByZXNzaW9uCSbQmNC30YDQsNC3CittZW51dHJhbnMgUyZ5bnRheAkm0KHQuNC90YLQsNC60YHQsAorIm1lbnV0cmFucyAmRGlmZgorbWVudXRyYW5zIE1hJnJrZXIJJtCe0LfQvdCw0LrQsAorCisiIFRvb2xzL0RpZmYKK21lbnV0cmFucyAmVXBkYXRlCSbQkNC20YPRgNC40YDQsNGYCittZW51dHJhbnMgJkdldFwgQmxvY2sJJtCf0YDQuNGF0LLQsNGC0LhcINC40LfQvNC10L3RgworbWVudXRyYW5zICZQdXRcIEJsb2NrCdCf0YDQtSbQsdCw0YbQuFwg0LjQt9C80LXQvdGDCisKKyIgVG9vbHMvRXJyb3IgV2luZG93CittZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4gICAm0JDQttGD0YDQuNGA0LDRmDxUYWI+OmN3aW4KK21lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuICAgICbQntGC0LLQvtGA0Lg8VGFiPjpjb3BlbgorbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZSAgJtCX0LDRgtCy0L7RgNC4PFRhYj46Y2Nsb3NlCisKKyIgQnVmZXJzIG1lbnUKK21lbnV0cmFucyAmQnVmZmVycwkgICAm0JHQsNGE0LXRgNC4CittZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUgICAm0JDQttGD0YDQuNGA0LDRmAorbWVudXRyYW5zIERlbGV0ZQkgICAm0J7QsdGA0LjRiNC4CittZW51dHJhbnMgJkFsdGVybmF0ZQkgICDQkCbQu9GC0LXRgNC90LDRgtC40LLQvdC4CittZW51dHJhbnMgJk5leHQJCSAgICbQodC70LXQtNC10ZvQuAorbWVudXRyYW5zICZQcmV2aW91cwkgICAm0J/RgNC10YLRhdC+0LTQvdC4CittZW51dHJhbnMgW05vXCBGaWxlXQkgICBb0J3QtdC80LBcINC00LDRgtC+0YLQtdC60LVdCisKKyIgV2luZG93IG1lbnUKK21lbnV0cmFucyAmV2luZG93CQkgICAgJtCf0YDQvtC30L7RgAorbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJICAgICbQndC+0LLQuDxUYWI+XlduCittZW51dHJhbnMgUyZwbGl0PFRhYj5eV3MJICAgICbQn9C+0LTQtdC70Lg8VGFiPl5XcworbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4gICAg0J/QvtC00LXQu9C4XCDRgdCwXCAm0LDQu9GC0LXRgNC90LDRgtC40LLQvdC40Lw8VGFiPl5XXl4KK21lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdiAgINCf0L7QtNC10LvQuFwgJtGD0YHQv9GA0LDQstC90L48VGFiPl5XdgorbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIgICAg0J/QvtC00LXQu9C4XCDQt9CwXCDQv9GA0LXQs9C70LXQtFwgJtC00LDRgtC+0YLQtdC60LAKK21lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkgICAgJtCX0LDRgtCy0L7RgNC4PFRhYj5eV2MKK21lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28gINCX0LDRgtCy0L7RgNC4XCAm0L7RgdGC0LDQu9C1PFRhYj5eV28KKyJtZW51dHJhbnMgTmUmeHQ8VGFiPl5XdyAgICAgICAm0KHQu9C10LTQtdGb0Lg8VGFiPl5XdworIm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkgINCfJtGA0LXRgtGF0L7QtNC90Lg8VGFiPl5XVworbWVudXRyYW5zIE1vdmVcICZUbwkJICAgINCf0YDQtSbQvNC10YHRgtC4CittZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkgICAgJtCa0YDRg9C20L3Qvlwg0L3QsNCz0L7RgNC1PFRhYj5eV1IKK21lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IgICAgINCa0YDRg9C20L3Qvlwg0L3QsNC00L7QuybQtTxUYWI+XldyCittZW51dHJhbnMgJkVxdWFsXCBTaXplPFRhYj5eVz0JICAgICbQmNGB0YLQtVwg0LLQtdC70LjRh9C40L3QtTxUYWI+Xlc9CittZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JICAgINCc0LDQutGB0LjQvNCw0LvQvdCwXCAm0LLQuNGB0LjQvdCwPFRhYj5eV18KK21lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8gICAgINCc0LjQvdC40LzQsCbQu9C90LBcINCy0LjRgdC40L3QsDxUYWI+XlcxXworbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CSAgICDQnNCw0LrRgdC40LzQsNC70L3QsFwgJtGI0LjRgNC40L3QsDxUYWI+XldcfAorbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfCAgICAg0JzQuNC90LjQvNCw0LvQvdCwXCDRiNC4JtGA0LjQvdCwPFRhYj5eVzFcfAorCisiIFdpbmRvdy9Nb3ZlIFRvCittZW51dHJhbnMgJlRvcDxUYWI+XldLCQkgJtCS0YDRhTxUYWI+XldLCittZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCSAm0J/QvtC00L3QvtC20ZjQtTxUYWI+XldKCittZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkg0KMm0LvQtdCy0L48VGFiPl5XSAorbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCSDQoybQtNC10YHQvdC+PFRhYj5eV0wKKworIiBUaGUgcG9wdXAgbWVudQorbWVudXRyYW5zICZVbmRvCQkgICAgICAm0JLRgNCw0YLQuAorbWVudXRyYW5zIEN1JnQJCSAgICAgICbQmNGB0LXRhtC4CittZW51dHJhbnMgJkNvcHkJCSAgICAgICbQmtC+0L/QuNGA0LDRmAorbWVudXRyYW5zICZQYXN0ZQkgICAgICAm0KPQsdCw0YbQuAorbWVudXRyYW5zICZEZWxldGUJICAgICAg0Jgm0LfQsdGA0LjRiNC4CittZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UgICDQkdC40YDQsNGYXCAm0L/RgNCw0LLQvtGD0LPQsNC+0L3QvgorbWVudXRyYW5zIFNlbGVjdFwgJldvcmQgICAgICAg0JjQt9Cw0LHQtdGA0LhcICbRgNC10YcKK21lbnV0cmFucyBTZWxlY3RcICZMaW5lICAgICAgINCY0LfQsNCx0LXRgNC4XCDRgCbQtdC0CittZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sgICAgICDQmNC30LDQsdC10YDQuFwgJtCx0LvQvtC6CittZW51dHJhbnMgU2VsZWN0XCAmQWxsCSAgICAgINCY0LfQsNCx0LXRgNC4XCAm0YHQstC1CisKKyIgVGhlIEdVSSB0b29sYmFyCitpZiBoYXMoInRvb2xiYXIiKQorICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKKyAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQorICBlbmRpZgorICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCisgICAgdG1lbnUgVG9vbEJhci5PcGVuICAgICDQo9GH0LjRgtCw0ZgKKyAgICB0bWVudSBUb29sQmFyLlNhdmUgICAgINCh0LDRh9GD0LLQsNGYCisgICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsICDQodCw0YfRg9Cy0LDRmCDRgdCy0LUKKyAgICB0bWVudSBUb29sQmFyLlByaW50ICAgINCo0YLQsNC80L/QsNGYCisgICAgdG1lbnUgVG9vbEJhci5VbmRvICAgICDQktGA0LDRgtC4CisgICAgdG1lbnUgVG9vbEJhci5SZWRvICAgICDQn9C+0LLRgNCw0YLQuAorICAgIHRtZW51IFRvb2xCYXIuQ3V0ICAgICAg0JjRgdC10YbQuAorICAgIHRtZW51IFRvb2xCYXIuQ29weSAgICAg0JrQvtC/0LjRgNCw0ZgKKyAgICB0bWVudSBUb29sQmFyLlBhc3RlICAgINCj0LHQsNGG0LgKKyAgICB0bWVudSBUb29sQmFyLkZpbmQgICAgINCd0LDRktC4CisgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dCDQndCw0ZLQuCDRgdC70LXQtNC10ZvQuAorICAgIHRtZW51IFRvb2xCYXIuRmluZFByZXYg0J3QsNGS0Lgg0L/RgNC10YLRhdC+0LTQvdC4CisgICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlICDQl9Cw0LzQtdC90LgKKyAgICB0bWVudSBUb29sQmFyLk5ldyAgICAgINCd0L7QstC4CisgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdCDQn9C+0LTQtdC70Lgg0L/RgNC+0LfQvtGACisgICAgdG1lbnUgVG9vbEJhci5XaW5NYXggICDQnNCw0LrRgdC40LzQsNC70L3QsCDQstC40YHQuNC90LAKKyAgICB0bWVudSBUb29sQmFyLldpbk1pbiAgINCc0LjQvdC40LzQsNC70L3QsCDQstC40YHQuNC90LAKKyAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdCAgINCf0L7QtNC10LvQuCDRg9GB0L/RgNCw0LLQvdC+CisgICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aCDQnNCw0LrRgdC40LzQsNC70L3QsCDRiNC40YDQuNC90LAKKyAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoINCc0LjQvdC40LzQsNC70L3QsCDRiNC40YDQuNC90LAKKyAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlINCX0LDRgtCy0L7RgNC4INC/0YDQvtC30L7RgAorICAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24g0KPRh9C40YLQsNGYINGB0LXQsNC90YHRgworICAgIHRtZW51IFRvb2xCYXIuU2F2ZVNlc24g0KHQsNGH0YPQstCw0Zgg0YHQtdCw0L3RgdGDCisgICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQgICDQmNC30LLRgNGI0Lgg0YHQv9C40YEKKyAgICB0bWVudSBUb29sQmFyLk1ha2UgICAgICdtYWtlJworICAgIHRtZW51IFRvb2xCYXIuU2hlbGwgICAg0J7Qv9C10YDQsNGC0LjQstC90L4g0L7QutGA0YPQttC10ZrQtQorICAgIHRtZW51IFRvb2xCYXIuUnVuQ3RhZ3Mg0J3QsNC/0YDQsNCy0Lgg0L7Qt9C90LDQutC1CisgICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wICDQmNC00Lgg0L3QsCDQvtC30L3QsNC60YMKKyAgICB0bWVudSBUb29sQmFyLkhlbHAgICAgINCf0L7QvNC+0ZsKKyAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwINCd0LDRktC4INC+0LHRmNCw0YjRmtC10ZrQtQorICBlbmRmdW4KK2VuZGlmCisKKyIgU3ludGF4IG1lbnUKK21lbnV0cmFucyAmU3ludGF4ICbQodC40L3RgtCw0LrRgdCwCittZW51dHJhbnMgJlNob3dcIGZpbGV0eXBlc1wgaW5cIG1lbnUgINCY0LfQsdC+0YBcICdmaWxldHlwZSdcINC40LdcICbQvNC10L3QuNGY0LAKK21lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seSAgINCf0L7QtNC1JtGB0LhcICdzeW50YXgnXCDRgdCw0LzQvgorbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbyAg0J/QvtC00LXRgdC4XCAnZmlsZXR5cGUnXCAm0YLQsNC60L7RktC1CittZW51dHJhbnMgJk9mZiAgICAgICAm0JjRgdC60ZnRg9GH0LXQvdC+CittZW51dHJhbnMgJk1hbnVhbCAgICAm0KDRg9GH0L3QvgorbWVudXRyYW5zIEEmdXRvbWF0aWMgICAgJtCQ0YPRgtC+0LzQsNGC0YHQutC4CittZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlICAgICDQlNCwL9C90LVcINC30LBcINC+0LLRg1wgJtC00LDRgtC+0YLQtdC60YMKK21lbnV0cmFucyBDbyZsb3JcIHRlc3QgICAgINCf0YDQvtCy0LXRgNCwXCAm0LHQvtGY0LAKK21lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0INCf0YDQvtCy0LXRgNCwXCDQuNGB0YLQuCbRhtCw0ZrQsAorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTCAg0J/RgNC10YLQstC+0YDQuFwgJtGDXCBIVE1MCisKKyIgZGlhbG9nIHRleHRzCitsZXQgbWVudXRyYW5zX2hlbHBfZGlhbG9nID0gItCj0L3QtdGB0LjRgtC1INC90LDRgNC10LTQsdGDINC40LvQuCDRgNC10Ycg0YfQuNGY0LUg0L/QvtGY0LDRiNGa0LXRmtC1INGC0YDQsNC20LjRgtC1OlxuXG7QlNC+0LTQsNGY0YLQtSBpXyDQt9CwINC90LDRgNC10LTQsdC1INGD0L3QvtGB0LAgKNC90L/RgC4gaV9DVFJMLVgpXG7QlNC+0LTQsNGY0YLQtSBjXyDQt9CwINC90LDRgNC10LTQsdC1INC60L7QvNCw0L3QtNC90L7QsyDRgNC10LbQuNC80LAgKNC90L/RgC4g0YFfPERlbD4pXG7QlNC+0LTQsNGY0YLQtSAnINC30LAg0LjQvNC10L3QsCDQvtC/0YbQuNGY0LAgKNC90L/RgC4gJ3NoaWZ0d2lkdGgnKSIKKworbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gItCj0L3QtdGB0LjRgtC1INC/0YPRgiDQv9GA0LXRgtGA0LDQs9C1INC30LAg0LTQsNGC0L7RgtC10LrQtVxu0KDQsNC30LTQstC+0ZjQuNGC0LUg0LfQsNGA0LXQt9C40LzQsCDQuNC80LXQvdCwINC00LjRgNC10LrRgtC+0YDQuNGY0YPQvNCwLiIKKworbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gItCj0L3QtdGB0LjRgtC1INC40LzQtdC90LAg0LTQsNGC0L7RgtC10LrQsCDRgdCwINC+0LfQvdCw0LrQsNC80LBcbtCg0LDQt9C00LLQvtGY0LjRgtC1INC30LDRgNC10LfQuNC80LAg0LjQvNC10L3QsC4iCisKK2xldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gItCj0L3QtdGB0LjRgtC1INC90L7QstGDINGI0LjRgNC40L3RgyDRgtC10LrRgdGC0LAgKDAg0YHQv9GA0LXRh9Cw0LLQsCDQv9GA0LXQu9C+0LwpIgorCitsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAi0JjQt9Cw0LHQtdGA0LjRgtC1INCy0YDRgdGC0YMg0LTQsNGC0L7RgtC10LrQtSIKKworbGV0IG1lbnV0cmFuc19ub19maWxlID0gIlvQndC10LzQsCDQtNCw0YLQvtGC0LXQutC1XSIKKworIiB2aW06IHR3PTAga2V5bWFwPXNlcmJpYW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3NyX3l1LmFzY2lpLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3NyX3l1LmFzY2lpLnZpbQppbmRleCAxNGE5MDI2Li45ZDkwODg3IDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9zcl95dS5hc2NpaS52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfc3JfeXUuYXNjaWkudmltCkBAIC0xLDI1OCArMSwzIEBACi0iIE1lbnUgVHJhbnNsYXRpb25zOiBTZXJiaWFuCi0iIE1haW50YWluZXI6IEFsZWtzYW5kYXIgSmVsZW5hayA8YWplbGVuYWsgQVQgeWFob28uY29tPgotIiBMYXN0IENoYW5nZToJRnJpLCAzMCBNYXkgMjAwMyAxMjoxNTozMCAtMDQwMAorIiBNZW51IFRyYW5zbGF0aW9uczoJU2VyYmlhbgogCi0iIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgotaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCi0gIGZpbmlzaAotZW5kaWYKLWxldCBkaWRfbWVudV90cmFucyA9IDEKLQotIiBIZWxwIG1lbnUKLW1lbnV0cmFucyAmSGVscAkJICAgICAgUG9tbyZjCi1tZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+ICAmUHJlZ2xlZDxUYWI+PEYxPgotbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgICAgJlVwdXRzdHZvXCB6YVwga29yaXNuaWtlCi1tZW51dHJhbnMgJkhvdy10b1wgbGlua3MgICAgICAmS2Frb1wgZGFcLlwuXC4KLW1lbnV0cmFucyAmRmluZAkJICAgICAgJk5hZGppCi1tZW51dHJhbnMgJkNyZWRpdHMJICAgICAgJlphc2x1Z2UKLW1lbnV0cmFucyBDbyZweWluZwkgICAgICBQJnJldXppbWFuamUKLW1lbnV0cmFucyBPJnJwaGFucwkgICAgICAmU2lyb2NpY2kKLW1lbnV0cmFucyAmVmVyc2lvbgkgICAgICAmVmVyemlqYQotbWVudXRyYW5zICZBYm91dAkgICAgICAmT1wgcHJvZ3JhbXUKLQotIiBGaWxlIG1lbnUKLW1lbnV0cmFucyAmRmlsZQkJCSAgICAmRGF0b3Rla2EKLW1lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJICAgICZPdHZvcmlcLlwuXC48VGFiPjplCi1tZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcCAmUG9kZWxpLW90dm9yaVwuXC5cLjxUYWI+OnNwCi1tZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJICAgICZOb3ZhPFRhYj46ZW5ldwotbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCSAgICAmWmF0dm9yaTxUYWI+OmNsb3NlCi1tZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkgICAgJlNhY3V2YWo8VGFiPjp3Ci1tZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2ICBTYWN1dmFqXCAma2FvXC5cLlwuPFRhYj46c2F2Ci1tZW51dHJhbnMgU3BsaXRcICZEaWZmXCB3aXRoXC5cLlwuICBQb2RlbGlcIGlcICZ1cG9yZWRpXCBzYVwuXC5cLgotbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4gUG8mZGVsaVwgaVwgcHJlcHJhdmlcIHNhXC5cLlwuCi1tZW51dHJhbnMgJlByaW50CQkgICAgU3RhJm1wYWoKLW1lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCSAgICBTYWN1dmFqXCBpXCB6YSZ2cnNpPFRhYj46d3FhCi1tZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJICAgIEsmcmFqPFRhYj46cWEKLQotIiBFZGl0IG1lbnUKLW1lbnV0cmFucyAmRWRpdAkJCSAmVXJlZGppdmFuamUKLW1lbnV0cmFucyAmVW5kbzxUYWI+dQkJICZWcmF0aTxUYWI+dQotbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJICZQb3ZyYXRpPFRhYj5eUgotbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCSBQJm9ub3ZpPFRhYj5cLgotbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJIElzZSZjaTxUYWI+Iit4Ci1tZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJICZLb3BpcmFqPFRhYj4iK3kKLW1lbnV0cmFucyAmUGFzdGU8VGFiPiIrZ1AJICZVYmFjaTxUYWI+IitnUAotbWVudXRyYW5zICZQYXN0ZTxUYWI+IitQCSZVYmFjaTxUYWI+IitnUAotbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJIFN0YXZpXCBwcmUmZDxUYWI+W3AKLW1lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJIFN0YXZpXCAmaXphPFRhYj5dcAotbWVudXRyYW5zICZEZWxldGU8VGFiPngJCSBJeiZicmlzaTxUYWI+eAotbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRyAgSXphYmVyaVwgc3YmZTxUYWI+Z2dWRwotbWVudXRyYW5zICZGaW5kXC5cLlwuCQkgJk5hZGppXC5cLlwuCi1tZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLiBOYWRqaVwgaVwgJnphbWVuaVwuXC5cLgotbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CSBQJnJvem9yXCBwb2Rlc2F2YW5qYQotbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCSBPcCZzdGFcIHBvZGVzYXZhbmphCi1tZW51dHJhbnMgRiZpbGVcIFNldHRpbmdzCSBQb2Rlc2F2YW5qYVwgemFcIGRhJnRvdGVrZQotbWVudXRyYW5zICZTaGlmdHdpZHRoCQkgJlBvbWVyYWoKLW1lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkgJk1la2FcIHRhYnVsYWNpamEKLW1lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JICZTaXJpbmFcIHRla3N0YVwuXC5cLgotbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JICZWcnN0YVwgZGF0b3Rla2VcLlwuXC4KLW1lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkgQm8mamUKLW1lbnV0cmFucyAmS2V5bWFwCQkgUHJlcyZsaWthdmFuamVcIHRhc3RhdHVyZQotbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JIEl6Ym9yXCAmZm9udGFcLlwuXC4KLQotIiBFZGl0L0dsb2JhbCBTZXR0aW5ncwotbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzISBOYWdsYXNpXCAmb2JyYXpjZVwgKGRhL25lKTxUYWI+OnNldFwgaGxzIQotbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEgWmFuZW1hcmlcIFx2ZWxpY2ludVwgJnNsb3ZhXCAoZGEvbmUpPFRhYj46c2V0XCBpYyEKLW1lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtISBQcm92ZXJpXCBwcmF0ZWN1XCAmemFncmFkdVwgKGRhL25lKTxUYWI+OnNldFwgc20hCi1tZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzICBWaWRsaml2aVwgJnJlZG92aQotbWVudXRyYW5zICZWaXJ0dWFsXCBFZGl0ICAgVmlydHVlbG5vXCAmdXJlZGppdmFuamUKLW1lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltISAgIFJlemltXCB1Jm5vc2FcIChkYS9uZSk8VGFiPjpzZXRcIGltIQotbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEgICAgICcmVmknXCBzYWdsYXNub1wgKGRhL25lKTxUYWI+OnNldFwgY3AhCi1tZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLiBQdXRhbmphXCAmcHJldHJhZ2VcLlwuXC4KLW1lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLiAgICZEYXRvdGVrZVwgb3puYWthXC5cLlwuCi1tZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhciAgICBMaW5pamFcIHNhXCAmYWxhdGthbWFcIChkYS9uZSkKLW1lbnV0cmFucyBUb2dnbGVcICZCb3R0b21cIFNjcm9sbGJhciAgIERvbmphXCBsJmluaWphXCBrbGl6YW5qYVwgKGRhL25lKQotbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhciAgJkxldmFcIGxpbmlqYVwga2xpemFuamFcIChkYS9uZSkKLW1lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyICZEZXNuYVwgbGluaWphXCBrbGl6YW5qYVwgKGRhL25lKQotCi0iIEVkaXQvR2xvYmFsIFNldHRpbmdzL1ZpcnR1YWwgRWRpdAotbWVudXRyYW5zIE5ldmVyCQkgICAgICBOaWthZAotbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24gICAgSXpib3JcIGJsb2thCi1tZW51dHJhbnMgSW5zZXJ0XCBtb2RlCSAgICAgIFJlemltXCB1bm9zYQotbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydCAgQmxva1wgaVwgdW5vcwotbWVudXRyYW5zIEFsd2F5cwkgICAgICBVdmVrCi0KLSIgRWRpdC9GaWxlIFNldHRpbmdzCi1tZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEgICBSZWRuaVwgJmJyb2pldmlcIChkYS9uZSk8VGFiPjpzZXRcIG51IQotbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhICAgICAgUmV6aW1cICZsaXN0ZVwgKGRhL25lKTxUYWI+OnNldFwgbGlzdCEKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwISAgICAgIE9iYXZpamFuamVcICZyZWRvdmFcIChkYS9uZSk8VGFiPjpzZXRcIHdyYXAhCi1tZW51dHJhbnMgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEgICBQcmVsb21pXCAmbmFcIHJlY1wgKGRhL25lKTxUYWI+OnNldFwgbGJyIQotbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkgICBSYXptYWNpXCB1bWVzdG9cICZ0YWJ1bGFjaWplXCAoZGEvbmUpPFRhYj46c2V0XCBldCEKLW1lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhICAgIEF1dG8tJnV2bGFjZW5qZVwgKGRhL25lKTxUYWI+OnNldFwgYWkhCi1tZW51dHJhbnMgVG9nZ2xlXCAmQy1pbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEgICAgICAmQ2UtdXZsYWNlbmplXCAoZGEvbmUpPFRhYj46c2V0XCBjaW4hCi0KLSIgRWRpdC9LZXltYXAKLW1lbnV0cmFucyBOb25lIE5pamVkYW4KLQotIiBUb29scyBtZW51Ci1tZW51dHJhbnMgJlRvb2xzCSZBbGF0a2UKLW1lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dIFNrb2NpXCBuYVwgJm92dVwgb3puYWt1PFRhYj5nXl0KLW1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJIFNrb2NpXCAmbmF0cmFnPFRhYj5eVAotbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkgSXpncmFkaVwgJmRhdG90ZWt1XCBvem5ha2EKLW1lbnV0cmFucyAmRm9sZGluZwkgICAgICAmUG9kdmlqYW5qZQotbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkgIFMmdHZvcmlcIHBvZHZpanV0YWs8VGFiPnpmCi1tZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCSAgTyZicmlzaVwgcG9kdmlqdXRhazxUYWI+emQKLW1lbnV0cmFucyBEZWxldGVcICZBbGxcIEZvbGRzPFRhYj56RAkgIE9icmlzaVwgc3ZlXCBwbyZkdmlqdXRrZTxUYWI+ekQKLW1lbnV0cmFucyBGb2xkXCBjb2x1bW5cICZ3aWR0aAkJICBTaXJpbmFcICZyZWRhXCBwb2R2aWp1dGthCi1tZW51dHJhbnMgJkRpZmYJCSAgICAgICZVcG9yZWRqaXZhbmplCi1tZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlICAgICAnbWFrJmUnPFRhYj46bWFrZQotbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbCAgICAgU3Bpc2FrXCAmZ3Jlc2FrYTxUYWI+OmNsCi1tZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whICBTcCZpc2FrXCBwb3J1a2E8VGFiPjpjbCEKLW1lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkgICAgUyZsZWRlY2FcIGdyZXNrYTxUYWI+OmNuCi1tZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwICBQcmUmdGhvZG5hXCBncmVza2E8VGFiPjpjcAotbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQgICAgU3RhcmlcIHNwaXNhJms8VGFiPjpjb2xkCi1tZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldyAgICBObyZ2aVwgc3Bpc2FrPFRhYj46Y25ldwotbWVudXRyYW5zIEVycm9yXCAmV2luZG93CSAgICBQcm96b3JcIHNhXCBnJnJlc2thbWEKLW1lbnV0cmFucyAmU2V0XCBDb21waWxlcgkgICAgSSZ6YWJlcmlcIHByZXZvZGlvY2EKLW1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSAgIFByZXR2b3JpXCB1XCAmSEVLUzxUYWI+OiUheHhkCi1tZW51dHJhbnMgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIgICAgVnImYXRpXCB1XCBwcnZvYml0YW5cIG9ibGlrPFRhYj46JSF4eGRcIC1yCi0KLSIgVG9vbHMvRm9sZGluZwotbWVudXRyYW5zICZFbmFibGUvRGlzYWJsZVwgZm9sZHM8VGFiPnppICAgJk9tb2d1Y2kvcHJla2luaVwgcG9kdmlqYW5qZTxUYWI+emkKLW1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56diAgICAgICZQb2themlcIHJlZFwgc2FcIGt1cnNvcm9tPFRhYj56dgotbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIG9ubHk8VGFiPnpNenggUG9rYXppXCAmc2Ftb1wgcmVkXCBzYVwga3Vyc29yb208VGFiPnpNengKLW1lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bSAgICZaYXR2b3JpXCB2aXNlXCBwb2R2aWp1dGFrYTxUYWI+em0KLW1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNICAgIFphdHZvcmlcIHMmdmVcIHBvZHZpanV0a2U8VGFiPnpNCi1tZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56ciAgICBPdHZvcmlcIHZpcyZlXCBwb2R2aWp1dGFrYTxUYWI+enIKLW1lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIgICAgIE8mdHZvcmlcIHN2ZVwgcG9kdmlqdXRrZTxUYWI+elIKLW1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkgICAgICAgJk5hY2luXCBwb2R2aWphbmphCi0KLSIgVG9vbHMvRm9sZGluZy9Gb2xkIE1ldGhvZAotbWVudXRyYW5zIE0mYW51YWwgICAgICAgJlJ1Y25vCi1tZW51dHJhbnMgSSZuZGVudCAgICAgICAmVXZ1Y2Vub3N0Ci1tZW51dHJhbnMgRSZ4cHJlc3Npb24gICAmSXpyYXoKLW1lbnV0cmFucyBTJnludGF4ICAgICAgICZTaW50YWtzYQotIm1lbnV0cmFucyAmRGlmZgotbWVudXRyYW5zIE1hJnJrZXIgICAgICAgJk96bmFrYQotCi0iIFRvb2xzL0RpZmYKLW1lbnV0cmFucyAmVXBkYXRlICAgICAgICZBenVyaXJhagotbWVudXRyYW5zICZHZXRcIEJsb2NrICAgJlByaWh2YXRpXCBpem1lbnUKLW1lbnV0cmFucyAmUHV0XCBCbG9jayAgIFByZSZiYWNpXCBpem1lbnUKLQotIiBUb29scy9FcnJvciBXaW5kb3cKLW1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbiAgICZBenVyaXJhajxUYWI+OmN3aW4KLW1lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuICAgICZPdHZvcmk8VGFiPjpjb3BlbgotbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZSAgJlphdHZvcmk8VGFiPjpjY2xvc2UKLQotIiBCdWZlcnMgbWVudQotbWVudXRyYW5zICZCdWZmZXJzCSAgICZCYWZlcmkKLW1lbnV0cmFucyAmUmVmcmVzaFwgbWVudSAgICZBenVyaXJhagotbWVudXRyYW5zIERlbGV0ZQkgICAmT2JyaXNpCi1tZW51dHJhbnMgJkFsdGVybmF0ZQkgICBBJmx0ZXJuYXRpdm5pCi1tZW51dHJhbnMgJk5leHQJCSAgICZTbGVkZWNpCi1tZW51dHJhbnMgJlByZXZpb3VzCSAgICZQcmV0aG9kbmkKLW1lbnV0cmFucyBbTm9cIEZpbGVdCSAgIFtOZW1hXCBkYXRvdGVrZV0KLQotIiBXaW5kb3cgbWVudQotbWVudXRyYW5zICZXaW5kb3cJCSAgICAmUHJvem9yCi1tZW51dHJhbnMgJk5ldzxUYWI+XlduCQkgICAgJk5vdmk8VGFiPl5XbgotbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCSAgICAmUG9kZWxpPFRhYj5eV3MKLW1lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eICAgIFBvZGVsaVwgc2FcICZhbHRlcm5hdGl2bmltPFRhYj5eV15eCi1tZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YgICBQb2RlbGlcICZ1c3ByYXZubzxUYWI+Xld2Ci1tZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlciAgICBQb2RlbGlcIHphXCBwcmVnbGVkXCAmZGF0b3Rla2EKLW1lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkgICAgJlphdHZvcmk8VGFiPl5XYwotbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbyAgWmF0dm9yaVwgJm9zdGFsZTxUYWI+XldvCi0ibWVudXRyYW5zIE5lJnh0PFRhYj5eV3cgICAgICAgJlNsZWRlY2k8VGFiPl5XdwotIm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkgIFAmcmV0aG9kbmk8VGFiPl5XVwotbWVudXRyYW5zIE1vdmVcICZUbwkJICAgIFByZSZtZXN0aQotbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJICAgICZLcnV6bm9cIG5hZ29yZTxUYWI+XldSCi1tZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyICAgICBLcnV6bm9cIG5hZG9sJmU8VGFiPl5XcgotbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSAgICAmSXN0ZVwgdmVsaWNpbmU8VGFiPl5XPQotbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCSAgICBNYWtzaW1hbG5hXCAmdmlzaW5hPFRhYj5eV18KLW1lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8gICAgIE1pbmltYSZsbmFcIHZpc2luYTxUYWI+XlcxXwotbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CSAgICBNYWtzaW1hbG5hXCAmc2lyaW5hPFRhYj5eV1x8Ci1tZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8ICAgICBNaW5pbWFsbmFcIHNpJnJpbmE8VGFiPl5XMVx8Ci0KLSIgV2luZG93L01vdmUgVG8KLW1lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSAmVnJoPFRhYj5eV0sKLW1lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJICZQb2Rub3pqZTxUYWI+XldKCi1tZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkgVSZsZXZvPFRhYj5eV0gKLW1lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkgVSZkZXNubzxUYWI+XldMCi0KLSIgVGhlIHBvcHVwIG1lbnUKLW1lbnV0cmFucyAmVW5kbwkJICAgICAgJlZyYXRpCi1tZW51dHJhbnMgQ3UmdAkJICAgICAgJklzZWNpCi1tZW51dHJhbnMgJkNvcHkJCSAgICAgICZLb3BpcmFqCi1tZW51dHJhbnMgJlBhc3RlCSAgICAgICZVYmFjaQotbWVudXRyYW5zICZEZWxldGUJICAgICAgSSZ6YnJpc2kKLW1lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZSAgIEJpcmFqXCAmcHJhdm91Z2Fvbm8KLW1lbnV0cmFucyBTZWxlY3RcICZXb3JkICAgICAgIEl6YWJlcmlcICZyZWMKLW1lbnV0cmFucyBTZWxlY3RcICZMaW5lICAgICAgIEl6YWJlcmlcIHImZWQKLW1lbnV0cmFucyBTZWxlY3RcICZCbG9jayAgICAgIEl6YWJlcmlcICZibG9rCi1tZW51dHJhbnMgU2VsZWN0XCAmQWxsCSAgICAgIEl6YWJlcmlcICZzdmUKLQotIiBUaGUgR1VJIHRvb2xiYXIKLWlmIGhhcygidG9vbGJhciIpCi0gIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQotICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51Ci0gIGVuZGlmCi0gIGZ1biBEb190b29sYmFyX3RtZW51KCkKLSAgICB0bWVudSBUb29sQmFyLk9wZW4gICAgIFVjaXRhagotICAgIHRtZW51IFRvb2xCYXIuU2F2ZSAgICAgU2FjdXZhagotICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbCAgU2FjdXZhaiBzdmUKLSAgICB0bWVudSBUb29sQmFyLlByaW50ICAgIFN0YW1wYWoKLSAgICB0bWVudSBUb29sQmFyLlVuZG8gICAgIFZyYXRpCi0gICAgdG1lbnUgVG9vbEJhci5SZWRvICAgICBQb3ZyYXRpCi0gICAgdG1lbnUgVG9vbEJhci5DdXQgICAgICBJc2VjaQotICAgIHRtZW51IFRvb2xCYXIuQ29weSAgICAgS29waXJhagotICAgIHRtZW51IFRvb2xCYXIuUGFzdGUgICAgVWJhY2kKLSAgICB0bWVudSBUb29sQmFyLkZpbmQgICAgIE5hZGppCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dCBOYWRqaSBzbGVkZWNpCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldiBOYWRqaSBwcmV0aG9kbmkKLSAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UgIFphbWVuaQotICAgIHRtZW51IFRvb2xCYXIuTmV3ICAgICAgTm92aQotICAgIHRtZW51IFRvb2xCYXIuV2luU3BsaXQgUG9kZWxpIHByb3pvcgotICAgIHRtZW51IFRvb2xCYXIuV2luTWF4ICAgTWFrc2ltYWxuYSB2aXNpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbk1pbiAgIE1pbmltYWxuYSB2aXNpbmEKLSAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdCAgIFBvZGVsaSB1c3ByYXZubwotICAgIHRtZW51IFRvb2xCYXIuV2luTWF4V2lkdGggTWFrc2ltYWxuYSBzaXJpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoIE1pbmltYWxuYSBzaXJpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlIFphdHZvcmkgcHJvem9yCi0gICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbiBVY2l0YWogc2VhbnN1Ci0gICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbiBTYWN1dmFqIHNlYW5zdQotICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0ICAgSXp2cnNpIHNwaXMKLSAgICB0bWVudSBUb29sQmFyLk1ha2UgICAgICdtYWtlJwotICAgIHRtZW51IFRvb2xCYXIuU2hlbGwgICAgT3BlcmF0aXZubyBva3J1emVuamUKLSAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzIE5hcHJhdmkgb3puYWtlCi0gICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wICBJZGkgbmEgb3puYWt1Ci0gICAgdG1lbnUgVG9vbEJhci5IZWxwICAgICBQb21vYwotICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAgTmFkamkgb2JqYXNuamVuamUKLSAgZW5kZnVuCi1lbmRpZgotCi0iIFN5bnRheCBtZW51Ci1tZW51dHJhbnMgJlN5bnRheCAmU2ludGFrc2EKLW1lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudSAgSXpib3JcICdmaWxldHlwZSdcIGl6XCAmbWVuaWphCi1tZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkgICBQb2RlJnNpXCAnc3ludGF4J1wgc2FtbwotbWVudXRyYW5zIFNldFwgJyZmaWxldHlwZSdcIHRvbyAgUG9kZXNpXCAnZmlsZXR5cGUnXCAmdGFrb2RqZQotbWVudXRyYW5zICZPZmYgICAgICAgJklza2xqdWNlbm8KLW1lbnV0cmFucyAmTWFudWFsICAgICZSdWNubwotbWVudXRyYW5zIEEmdXRvbWF0aWMgICAgJkF1dG9tYXRza2kKLW1lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUgICAgIERhL25lXCB6YVwgb3Z1XCAmZGF0b3Rla3UKLW1lbnV0cmFucyBDbyZsb3JcIHRlc3QgICAgIFByb3ZlcmFcICZib2phCi1tZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdCBQcm92ZXJhXCBpc3RpJmNhbmphCi1tZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MICBQcmV0dm9yaVwgJnVcIEhUTUwKLQotIiBkaWFsb2cgdGV4dHMKLWxldCBtZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiVW5lc2l0ZSBuYXJlZGJ1IGlsaSByZWMgY2lqZSBwb2phc25qZW5qZSB0cmF6aXRlOlxuXG5Eb2RhanRlIGlfIHphIG5hcmVkYmUgdW5vc2EgKG5wci4gaV9DVFJMLVgpXG5Eb2RhanRlIGNfIHphIG5hcmVkYmUga29tYW5kbm9nIHJlemltYSAobnByLiBzXzxEZWw+KVxuRG9kYWp0ZSAnIHphIGltZW5hIG9wY2lqYSAobnByLiAnc2hpZnR3aWR0aCcpIgotCi1sZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAiVW5lc2l0ZSBwdXQgcHJldHJhZ2UgemEgZGF0b3Rla2VcblJhemR2b2ppdGUgemFyZXppbWEgaW1lbmEgZGlyZWt0b3JpanVtYS4iCi0KLWxldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJVbmVzaXRlIGltZW5hIGRhdG90ZWthIHNhIG96bmFrYW1hXG5SYXpkdm9qaXRlIHphcmV6aW1hIGltZW5hLiIKLQotbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiVW5lc2l0ZSBub3Z1IHNpcmludSB0ZWtzdGEgKDAgc3ByZWNhdmEgcHJlbG9tKSIKLQotbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIkl6YWJlcml0ZSB2cnN0dSBkYXRvdGVrZSIKLQotbGV0IG1lbnV0cmFuc19ub19maWxlID0gIltOZW1hIGRhdG90ZWtlXSIKK3NvdXJjZSA8c2ZpbGU+OnA6aC9tZW51X3NyX3JzLmFzY2lpLnZpbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfc3JfeXUuaXNvXzg4NTktMi52aW0gYi9ydW50aW1lL2xhbmcvbWVudV9zcl95dS5pc29fODg1OS0yLnZpbQppbmRleCA5OTIxMjRjLi45OGIyMDllIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9zcl95dS5pc29fODg1OS0yLnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV9zcl95dS5pc29fODg1OS0yLnZpbQpAQCAtMSwyNTkgKzEsMyBAQAotIiBNZW51IFRyYW5zbGF0aW9uczogU2VyYmlhbgotIiBNYWludGFpbmVyOiBBbGVrc2FuZGFyIEplbGVuYWsgPGFqZWxlbmFrIEFUIHlhaG9vLmNvbT4KLSIgTGFzdCBDaGFuZ2U6CUZyaSwgMzAgTWF5IDIwMDMgMTI6MDQ6NDggLTA0MDAKKyIgTWVudSBUcmFuc2xhdGlvbnM6CVNlcmJpYW4KIAotIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KLWlmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQotICBmaW5pc2gKLWVuZGlmCi1sZXQgZGlkX21lbnVfdHJhbnMgPSAxCi1zY3JpcHRlbmNvZGluZyBpc284ODU5LTIKLQotIiBIZWxwIG1lbnUKLW1lbnV0cmFucyAmSGVscAkJICAgICAgUG9tbybmCi1tZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+ICAmUHJlZ2xlZDxUYWI+PEYxPgotbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgICAgJlVwdXRzdHZvXCB6YVwga29yaXNuaWtlCi1tZW51dHJhbnMgJkhvdy10b1wgbGlua3MgICAgICAmS2Frb1wgZGFcLlwuXC4KLW1lbnV0cmFucyAmRmluZAkJICAgICAgJk5h8GkKLW1lbnV0cmFucyAmQ3JlZGl0cwkgICAgICAmWmFzbHVnZQotbWVudXRyYW5zIENvJnB5aW5nCSAgICAgIFAmcmV1emltYW5qZQotbWVudXRyYW5zIE8mcnBoYW5zCSAgICAgICZTaXJv6GnmaQotbWVudXRyYW5zICZWZXJzaW9uCSAgICAgICZWZXJ6aWphCi1tZW51dHJhbnMgJkFib3V0CSAgICAgICZPXCBwcm9ncmFtdQotCi0iIEZpbGUgbWVudQotbWVudXRyYW5zICZGaWxlCQkJICAgICZEYXRvdGVrYQotbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkgICAgJk90dm9yaVwuXC5cLjxUYWI+OmUKLW1lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwICZQb2RlbGktb3R2b3JpXC5cLlwuPFRhYj46c3AKLW1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkgICAgJk5vdmE8VGFiPjplbmV3Ci1tZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJICAgICZaYXR2b3JpPFRhYj46Y2xvc2UKLW1lbnV0cmFucyAmU2F2ZTxUYWI+OncJCSAgICAmU2HodXZhajxUYWI+OncKLW1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYgIFNh6HV2YWpcICZrYW9cLlwuXC48VGFiPjpzYXYKLW1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4gIFBvZGVsaVwgaVwgJnVwb3JlZGlcIHNhXC5cLlwuCi1tZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLiBQbyZkZWxpXCBpXCBwcmVwcmF2aVwgc2FcLlwuXC4KLW1lbnV0cmFucyAmUHJpbnQJCSAgICCpdGEmbXBhagotbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJICAgIFNh6HV2YWpcIGlcIHphJnZyuWk8VGFiPjp3cWEKLW1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkgICAgSyZyYWo8VGFiPjpxYQotCi0iIEVkaXQgbWVudQotbWVudXRyYW5zICZFZGl0CQkJICZVcmXwaXZhbmplCi1tZW51dHJhbnMgJlVuZG88VGFiPnUJCSAmVnJhdGk8VGFiPnUKLW1lbnV0cmFucyAmUmVkbzxUYWI+XlIJCSAmUG92cmF0aTxUYWI+XlIKLW1lbnV0cmFucyBSZXAmZWF0PFRhYj5cLgkgUCZvbm92aTxUYWI+XC4KLW1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCSBJc2UmY2k8VGFiPiIreAotbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCSAmS29waXJhajxUYWI+Iit5Ci1tZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCSAmVWJhY2k8VGFiPiIrZ1AKLW1lbnV0cmFucyAmUGFzdGU8VGFiPiIrUAkmVWJhY2k8VGFiPiIrZ1AKLW1lbnV0cmFucyBQdXRcICZCZWZvcmU8VGFiPltwCSBTdGF2aVwgcHJlJmQ8VGFiPltwCi1tZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCSBTdGF2aVwgJml6YTxUYWI+XXAKLW1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkgSXomYnJpuWk8VGFiPngKLW1lbnV0cmFucyAmU2VsZWN0XCBhbGw8VGFiPmdnVkcgIEl6YWJlcmlcIHN2JmU8VGFiPmdnVkcKLW1lbnV0cmFucyAmRmluZFwuXC5cLgkJICZOYfBpXC5cLlwuCi1tZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLiBOYfBpXCBpXCAmemFtZW5pXC5cLlwuCi1tZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJIFAmcm96b3JcIHBvZGW5YXZhbmphCi1tZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJIE9wJrl0YVwgcG9kZblhdmFuamEKLW1lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJIFBvZGW5YXZhbmphXCB6YVwgZGEmdG90ZWtlCi1tZW51dHJhbnMgJlNoaWZ0d2lkdGgJCSAmUG9tZXJhagotbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCSAmTWVrYVwgdGFidWxhY2lqYQotbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkgJqlpcmluYVwgdGVrc3RhXC5cLlwuCi1tZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkgJlZyc3RhXCBkYXRvdGVrZVwuXC5cLgotbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCSBCbyZqZQotbWVudXRyYW5zICZLZXltYXAJCSBQcmVzJmxpa2F2YW5qZVwgdGFzdGF0dXJlCi1tZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkgSXpib3JcICZmb250YVwuXC5cLgotCi0iIEVkaXQvR2xvYmFsIFNldHRpbmdzCi1tZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhIE5hZ2xhc2lcICZvYnJhemNlXCAoZGEvbmUpPFRhYj46c2V0XCBobHMhCi1tZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JlLWNhc2U8VGFiPjpzZXRcIGljISBaYW5lbWFyaVwgXHZlbGnoaW51XCAmc2xvdmFcIChkYS9uZSk8VGFiPjpzZXRcIGljIQotbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hIFByb3ZlcmlcIHByYXRl5nVcICZ6YWdyYWR1XCAoZGEvbmUpPFRhYj46c2V0XCBzbSEKLW1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMgIFZpZGxqaXZpXCAmcmVkb3ZpCi1tZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQgICBWaXJ0dWVsbm9cICZ1cmXwaXZhbmplCi1tZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJUmW+aW1cIHUmbm9zYVwgKGRhL25lKTxUYWI+OnNldFwgaW0hCi1tZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwISAgICAgJyZWaSdcIHNhZ2xhc25vXCAoZGEvbmUpPFRhYj46c2V0XCBjcCEKLW1lbnV0cmFucyBTZWFyY2hcICZQYXRoXC5cLlwuIFB1dGFuamFcICZwcmV0cmFnZVwuXC5cLgotbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuICAgJkRhdG90ZWtlXCBvem5ha2FcLlwuXC4KLW1lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyICAgIExpbmlqYVwgc2FcICZhbGF0a2FtYVwgKGRhL25lKQotbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyICAgRG9uamFcIGwmaW5pamFcIGtsaXphbmphXCAoZGEvbmUpCi1tZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyICAmTGV2YVwgbGluaWphXCBrbGl6YW5qYVwgKGRhL25lKQotbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIgJkRlc25hXCBsaW5pamFcIGtsaXphbmphXCAoZGEvbmUpCi0KLSIgRWRpdC9HbG9iYWwgU2V0dGluZ3MvVmlydHVhbCBFZGl0Ci1tZW51dHJhbnMgTmV2ZXIJCSAgICAgIE5pa2FkCi1tZW51dHJhbnMgQmxvY2tcIFNlbGVjdGlvbiAgICBJemJvclwgYmxva2EKLW1lbnV0cmFucyBJbnNlcnRcIG1vZGUJICAgICAgUmW+aW1cIHVub3NhCi1tZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0ICBCbG9rXCBpXCB1bm9zCi1tZW51dHJhbnMgQWx3YXlzCSAgICAgIFV2ZWsKLQotIiBFZGl0L0ZpbGUgU2V0dGluZ3MKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51ISAgIFJlZG5pXCAmYnJvamV2aVwgKGRhL25lKTxUYWI+OnNldFwgbnUhCi1tZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJICAgUmW+aW1cICZsaXN0ZVwgKGRhL25lKTxUYWI+OnNldFwgbGlzdCEKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkgICBPYmF2aWphbmplXCAmcmVkb3ZhXCAoZGEvbmUpPFRhYj46c2V0XCB3cmFwIQotbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhICAgUHJlbG9taVwgJm5hXCByZehcIChkYS9uZSk8VGFiPjpzZXRcIGxiciEKLW1lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJICAgUmF6bWFjaVwgdW1lc3RvXCAmdGFidWxhY2lqZVwgKGRhL25lKTxUYWI+OnNldFwgZXQhCi1tZW51dHJhbnMgVG9nZ2xlXCAmYXV0by1pbmRlbnQ8VGFiPjpzZXRcIGFpIQlBdXRvLSZ1dmxh6GVuamVcIChkYS9uZSk8VGFiPjpzZXRcIGFpIQotbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCSAgICZDZS11dmxh6GVuamVcIChkYS9uZSk8VGFiPjpzZXRcIGNpbiEKLQotIiBFZGl0L0tleW1hcAotbWVudXRyYW5zIE5vbmUgTmlqZWRhbgotCi0iIFRvb2xzIG1lbnUKLW1lbnV0cmFucyAmVG9vbHMJJkFsYXRrZQotbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0gU2tv6GlcIG5hXCAmb3Z1XCBvem5ha3U8VGFiPmdeXQotbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkgU2tv6GlcICZuYXRyYWc8VGFiPl5UCi1tZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCSBJemdyYWRpXCAmZGF0b3Rla3VcIG96bmFrYQotbWVudXRyYW5zICZGb2xkaW5nCSAgICAgICZQb2R2aWphbmplCi1tZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCSAgUyZ0dm9yaVwgcG9kdmlqdXRhazxUYWI+emYKLW1lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJICBPJmJyablpXCBwb2R2aWp1dGFrPFRhYj56ZAotbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECSAgT2JyablpXCBzdmVcIHBvJmR2aWp1dGtlPFRhYj56RAotbWVudXRyYW5zIEZvbGRcIGNvbHVtblwgJndpZHRoCQkgIKlpcmluYVwgJnJlZGFcIHBvZHZpanV0a2EKLW1lbnV0cmFucyAmRGlmZgkJICAgICAgJlVwb3Jl8Gl2YW5qZQotbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZSAgICAgJ21hayZlJzxUYWI+Om1ha2UKLW1lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wgICAgIFNwaXNha1wgJmdyZblha2E8VGFiPjpjbAotbWVudXRyYW5zIEwmaXN0XCBNZXNzYWdlczxUYWI+OmNsISAgU3AmaXNha1wgcG9ydWthPFRhYj46Y2whCi1tZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JICAgIFMmbGVkZeZhXCBncmW5a2E8VGFiPjpjbgotbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcCAgUHJlJnRob2RuYVwgZ3JluWthPFRhYj46Y3AKLW1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkICAgIFN0YXJpXCBzcGlzYSZrPFRhYj46Y29sZAotbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcgICAgTm8mdmlcIHNwaXNhazxUYWI+OmNuZXcKLW1lbnV0cmFucyBFcnJvclwgJldpbmRvdwkgICAgUHJvem9yXCBzYVwgZyZyZblrYW1hCi1tZW51dHJhbnMgJlNldFwgQ29tcGlsZXIJICAgIEkmemFiZXJpXCBwcmV2b2Rpb2NhCi1tZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkgICBQcmV0dm9yaVwgdVwgJkhFS1M8VGFiPjolIXh4ZAotbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yICAgIFZyJmF0aVwgdVwgcHJ2b2JpdGFuXCBvYmxpazxUYWI+OiUheHhkXCAtcgotCi0iIFRvb2xzL0ZvbGRpbmcKLW1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aSAgICZPbW9ndeZpL3ByZWtpbmlcIHBvZHZpamFuamU8VGFiPnppCi1tZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJICAmUG9rYb5pXCByZWRcIHNhXCBrdXJzb3JvbTxUYWI+enYKLW1lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4IFBva2G+aVwgJnNhbW9cIHJlZFwgc2FcIGt1cnNvcm9tPFRhYj56TXp4Ci1tZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0gICAmWmF0dm9yaVwgdmm5ZVwgcG9kdmlqdXRha2E8VGFiPnptCi1tZW51dHJhbnMgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TSAgICBaYXR2b3JpXCBzJnZlXCBwb2R2aWp1dGtlPFRhYj56TQotbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIgICAgT3R2b3JpXCB2abkmZVwgcG9kdmlqdXRha2E8VGFiPnpyCi1tZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSICAgICBPJnR2b3JpXCBzdmVcIHBvZHZpanV0a2U8VGFiPnpSCi1tZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJICAgICAgICZOYehpblwgcG9kdmlqYW5qYQotCi0iIFRvb2xzL0ZvbGRpbmcvRm9sZCBNZXRob2QKLW1lbnV0cmFucyBNJmFudWFsCSZSdehubwotbWVudXRyYW5zIEkmbmRlbnQJJlV2dehlbm9zdAotbWVudXRyYW5zIEUmeHByZXNzaW9uCSZJenJhegotbWVudXRyYW5zIFMmeW50YXgJJlNpbnRha3NhCi0ibWVudXRyYW5zICZEaWZmCi1tZW51dHJhbnMgTWEmcmtlcgkmT3puYWthCi0KLSIgVG9vbHMvRGlmZgotbWVudXRyYW5zICZVcGRhdGUJJkG+dXJpcmFqCi1tZW51dHJhbnMgJkdldFwgQmxvY2sJJlByaWh2YXRpXCBpem1lbnUKLW1lbnV0cmFucyAmUHV0XCBCbG9jawlQcmUmYmFjaVwgaXptZW51Ci0KLSIgVG9vbHMvRXJyb3IgV2luZG93Ci1tZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4gICAmQb51cmlyYWo8VGFiPjpjd2luCi1tZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbiAgICAmT3R2b3JpPFRhYj46Y29wZW4KLW1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjY2xvc2UgICZaYXR2b3JpPFRhYj46Y2Nsb3NlCi0KLSIgQnVmZXJzIG1lbnUKLW1lbnV0cmFucyAmQnVmZmVycwkgICAmQmFmZXJpCi1tZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUgICAmQb51cmlyYWoKLW1lbnV0cmFucyBEZWxldGUJICAgJk9icmm5aQotbWVudXRyYW5zICZBbHRlcm5hdGUJICAgQSZsdGVybmF0aXZuaQotbWVudXRyYW5zICZOZXh0CQkgICAmU2xlZGXmaQotbWVudXRyYW5zICZQcmV2aW91cwkgICAmUHJldGhvZG5pCi1tZW51dHJhbnMgW05vXCBGaWxlXQkgICBbTmVtYVwgZGF0b3Rla2VdCi0KLSIgV2luZG93IG1lbnUKLW1lbnV0cmFucyAmV2luZG93CQkgICAgJlByb3pvcgotbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJICAgICZOb3ZpPFRhYj5eV24KLW1lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkgICAgJlBvZGVsaTxUYWI+XldzCi1tZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXiAgICBQb2RlbGlcIHNhXCAmYWx0ZXJuYXRpdm5pbTxUYWI+XldeXgotbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2ICAgUG9kZWxpXCAmdXNwcmF2bm88VGFiPl5XdgotbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIgICAgUG9kZWxpXCB6YVwgcHJlZ2xlZFwgJmRhdG90ZWthCi1tZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJICAgICZaYXR2b3JpPFRhYj5eV2MKLW1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28gIFphdHZvcmlcICZvc3RhbGU8VGFiPl5XbwotIm1lbnV0cmFucyBOZSZ4dDxUYWI+Xld3ICAgICAgICZTbGVkZeZpPFRhYj5eV3cKLSJtZW51dHJhbnMgUCZyZXZpb3VzPFRhYj5eV1cJICBQJnJldGhvZG5pPFRhYj5eV1cKLW1lbnV0cmFucyBNb3ZlXCAmVG8JCSAgICBQcmUmbWVzdGkKLW1lbnV0cmFucyBSb3RhdGVcICZVcDxUYWI+XldSCSAgICAmS3J1vm5vXCBuYWdvcmU8VGFiPl5XUgotbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XciAgICAgS3J1vm5vXCBuYWRvbCZlPFRhYj5eV3IKLW1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkgICAgJklzdGVcIHZlbGnoaW5lPFRhYj5eVz0KLW1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkgICAgTWFrc2ltYWxuYVwgJnZpc2luYTxUYWI+XldfCi1tZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfICAgICBNaW5pbWEmbG5hXCB2aXNpbmE8VGFiPl5XMV8KLW1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkgICAgTWFrc2ltYWxuYVwgJrlpcmluYTxUYWI+XldcfAotbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfCAgICAgTWluaW1hbG5hXCC5aSZyaW5hPFRhYj5eVzFcfAotCi0iIFdpbmRvdy9Nb3ZlIFRvCi1tZW51dHJhbnMgJlRvcDxUYWI+XldLCQkgJlZyaDxUYWI+XldLCi1tZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCSAmUG9kbm++amU8VGFiPl5XSgotbWVudXRyYW5zICZMZWZ0XCBzaWRlPFRhYj5eV0gJIFUmbGV2bzxUYWI+XldICi1tZW51dHJhbnMgJlJpZ2h0XCBzaWRlPFRhYj5eV0wJIFUmZGVzbm88VGFiPl5XTAotCi0iIFRoZSBwb3B1cCBtZW51Ci1tZW51dHJhbnMgJlVuZG8JCSAgICAgICZWcmF0aQotbWVudXRyYW5zIEN1JnQJCSAgICAgICZJc2VjaQotbWVudXRyYW5zICZDb3B5CQkgICAgICAmS29waXJhagotbWVudXRyYW5zICZQYXN0ZQkgICAgICAmVWJhY2kKLW1lbnV0cmFucyAmRGVsZXRlCSAgICAgIEkmemJyablpCi1tZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UgICBCaXJhalwgJnByYXZvdWdhb25vCi1tZW51dHJhbnMgU2VsZWN0XCAmV29yZCAgICAgICBJemFiZXJpXCAmcmXoCi1tZW51dHJhbnMgU2VsZWN0XCAmTGluZSAgICAgICBJemFiZXJpXCByJmVkCi1tZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sgICAgICBJemFiZXJpXCAmYmxvawotbWVudXRyYW5zIFNlbGVjdFwgJkFsbAkgICAgICBJemFiZXJpXCAmc3ZlCi0KLSIgVGhlIEdVSSB0b29sYmFyCi1pZiBoYXMoInRvb2xiYXIiKQotICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKLSAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQotICBlbmRpZgotICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCi0gICAgdG1lbnUgVG9vbEJhci5PcGVuCSAgIFXoaXRhagotICAgIHRtZW51IFRvb2xCYXIuU2F2ZQkgICBTYeh1dmFqCi0gICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsICBTYeh1dmFqIHN2ZQotICAgIHRtZW51IFRvb2xCYXIuUHJpbnQgICAgqXRhbXBhagotICAgIHRtZW51IFRvb2xCYXIuVW5kbwkgICBWcmF0aQotICAgIHRtZW51IFRvb2xCYXIuUmVkbwkgICBQb3ZyYXRpCi0gICAgdG1lbnUgVG9vbEJhci5DdXQJICAgSXNlY2kKLSAgICB0bWVudSBUb29sQmFyLkNvcHkJICAgS29waXJhagotICAgIHRtZW51IFRvb2xCYXIuUGFzdGUgICAgVWJhY2kKLSAgICB0bWVudSBUb29sQmFyLkZpbmQJICAgTmHwaQotICAgIHRtZW51IFRvb2xCYXIuRmluZE5leHQgTmHwaSBzbGVkZeZpCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldiBOYfBpIHByZXRob2RuaQotICAgIHRtZW51IFRvb2xCYXIuUmVwbGFjZSAgWmFtZW5pCi0gICAgdG1lbnUgVG9vbEJhci5OZXcJICAgTm92aQotICAgIHRtZW51IFRvb2xCYXIuV2luU3BsaXQgUG9kZWxpIHByb3pvcgotICAgIHRtZW51IFRvb2xCYXIuV2luTWF4ICAgTWFrc2ltYWxuYSB2aXNpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbk1pbiAgIE1pbmltYWxuYSB2aXNpbmEKLSAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdCAgIFBvZGVsaSB1c3ByYXZubwotICAgIHRtZW51IFRvb2xCYXIuV2luTWF4V2lkdGggTWFrc2ltYWxuYSC5aXJpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoIE1pbmltYWxuYSC5aXJpbmEKLSAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlIFphdHZvcmkgcHJvem9yCi0gICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbiBV6Gl0YWogc2VhbnN1Ci0gICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbiBTYeh1dmFqIHNlYW5zdQotICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0ICAgSXp2crlpIHNwaXMKLSAgICB0bWVudSBUb29sQmFyLk1ha2UJICAgJ21ha2UnCi0gICAgdG1lbnUgVG9vbEJhci5TaGVsbCAgICBPcGVyYXRpdm5vIG9rcnW+ZW5qZQotICAgIHRtZW51IFRvb2xCYXIuUnVuQ3RhZ3MgTmFwcmF2aSBvem5ha2UKLSAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAgIElkaSBuYSBvem5ha3UKLSAgICB0bWVudSBUb29sQmFyLkhlbHAJICAgUG9tb+YKLSAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwIE5h8Gkgb2JqYbluamVuamUKLSAgZW5kZnVuCi1lbmRpZgotCi0iIFN5bnRheCBtZW51Ci1tZW51dHJhbnMgJlN5bnRheCAmU2ludGFrc2EKLW1lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudSAgSXpib3JcICdmaWxldHlwZSdcIGl6XCAmbWVuaWphCi1tZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJIFBvZGUmc2lcICdzeW50YXgnXCBzYW1vCi1tZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vICBQb2Rlc2lcICdmaWxldHlwZSdcICZ0YWtv8GUKLW1lbnV0cmFucyAmT2ZmCSAgICAgJklza2xqdehlbm8KLW1lbnV0cmFucyAmTWFudWFsICAgICZSdehubwotbWVudXRyYW5zIEEmdXRvbWF0aWMJJkF1dG9tYXRza2kKLW1lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUgICAgIERhL25lXCB6YVwgb3Z1XCAmZGF0b3Rla3UKLW1lbnV0cmFucyBDbyZsb3JcIHRlc3QJICAgUHJvdmVyYVwgJmJvamEKLW1lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0IFByb3ZlcmFcIGlzdGkmY2FuamEKLW1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwgIFByZXR2b3JpXCAmdVwgSFRNTAotCi0iIGRpYWxvZyB0ZXh0cwotbGV0IG1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICJVbmVzaXRlIG5hcmVkYnUgaWxpIHJl6CDoaWplIHBvamG5bmplbmplIHRyYb5pdGU6XG5cbkRvZGFqdGUgaV8gemEgbmFyZWRiZSB1bm9zYSAobnByLiBpX0NUUkwtWClcbkRvZGFqdGUgY18gemEgbmFyZWRiZSBrb21hbmRub2cgcmW+aW1hIChucHIuIHNfPERlbD4pXG5Eb2RhanRlICcgemEgaW1lbmEgb3BjaWphIChucHIuICdzaGlmdHdpZHRoJykiCi0KLWxldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJVbmVzaXRlIHB1dCBwcmV0cmFnZSB6YSBkYXRvdGVrZVxuUmF6ZHZvaml0ZSB6YXJlemltYSBpbWVuYSBkaXJla3RvcmlqdW1hLiIKLQotbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIlVuZXNpdGUgaW1lbmEgZGF0b3Rla2Egc2Egb3puYWthbWFcblJhemR2b2ppdGUgemFyZXppbWEgaW1lbmEuIgotCi1sZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJVbmVzaXRlIG5vdnUguWlyaW51IHRla3N0YSAoMCBzcHJl6GF2YSBwcmVsb20pIgotCi1sZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiSXphYmVyaXRlIHZyc3R1IGRhdG90ZWtlIgotCi1sZXQgbWVudXRyYW5zX25vX2ZpbGUgPSAiW05lbWEgZGF0b3Rla2VdIgorc291cmNlIDxzZmlsZT46cDpoL21lbnVfc3JfcnMuaXNvXzg4NTktMi52aW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3NyX3l1Lmlzb184ODU5LTUudmltIGIvcnVudGltZS9sYW5nL21lbnVfc3JfeXUuaXNvXzg4NTktNS52aW0KaW5kZXggZTRkMzIyZC4uZjBhZWY3NyAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfc3JfeXUuaXNvXzg4NTktNS52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfc3JfeXUuaXNvXzg4NTktNS52aW0KQEAgLTEsMjU5ICsxLDMgQEAKLSIgTWVudSBUcmFuc2xhdGlvbnM6IFNlcmJpYW4KLSIgTWFpbnRhaW5lcjogQWxla3NhbmRhciBKZWxlbmFrIDxhamVsZW5hayBBVCB5YWhvby5jb20+Ci0iIExhc3QgQ2hhbmdlOglGcmksIDMwIE1heSAyMDAzIDEyOjAyOjA3IC0wNDAwCisiIE1lbnUgVHJhbnNsYXRpb25zOglTZXJiaWFuCiAKLSIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCi1pZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKLSAgZmluaXNoCi1lbmRpZgotbGV0IGRpZF9tZW51X3RyYW5zID0gMQotc2NyaXB0ZW5jb2RpbmcgaXNvODg1OS01Ci0KLSIgSGVscCBtZW51Ci1tZW51dHJhbnMgJkhlbHAJCSAgICAgIL/e3N4m+wotbWVudXRyYW5zICZPdmVydmlldzxUYWI+PEYxPiAgJr/g1dPb1dQ8VGFiPjxGMT4KLW1lbnV0cmFucyAmVXNlclwgTWFudWFsICAgICAgICbD3+Pi4eLS3lwg19BcINre4Njh3dja1QotbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzICAgICAgJrrQ2t5cINTQXC5cLlwuCi1tZW51dHJhbnMgJkZpbmQJCSAgICAgICa90PLYCi1tZW51dHJhbnMgJkNyZWRpdHMJICAgICAgJrfQ4dvj09UKLW1lbnV0cmFucyBDbyZweWluZwkgICAgICC/JuDV49fY3ND61QotbWVudXRyYW5zIE8mcnBoYW5zCSAgICAgICbB2ODe59j72AotbWVudXRyYW5zICZWZXJzaW9uCSAgICAgICay1eDX2PjQCi1tZW51dHJhbnMgJkFib3V0CSAgICAgICa+XCDf4N7T4NDc4wotCi0iIEZpbGUgbWVudQotbWVudXRyYW5zICZGaWxlCQkJICAgICa00OLe4tXa0AotbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkgICAgJr7i0t7g2FwuXC5cLjxUYWI+OmUKLW1lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwICa/3tTV29gt3uLS3uDYXC5cLlwuPFRhYj46c3AKLW1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkgICAgJr3e0tA8VGFiPjplbmV3Ci1tZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJICAgICa30OLS3uDYPFRhYj46Y2xvc2UKLW1lbnV0cmFucyAmU2F2ZTxUYWI+OncJCSAgICAmwdDn49LQ+DxUYWI+OncKLW1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYgIMHQ5+PS0PhcICba0N5cLlwuXC48VGFiPjpzYXYKLW1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4gIL/e1NXb2Fwg2FwgJuPf3uDV1NhcIOHQXC5cLlwuCi1tZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLiC/3ibU1dvYXCDYXCDf4NXf4NDS2Fwg4dBcLlwuXC4KLW1lbnV0cmFucyAmUHJpbnQJCSAgICDI4tAm3N/Q+AotbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJICAgIMHQ5+PS0PhcINhcINfQJtLg6Ng8VGFiPjp3cWEKLW1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkgICAguibg0Pg8VGFiPjpxYQotCi0iIEVkaXQgbWVudQotbWVudXRyYW5zICZFZGl0CQkJICbD4NXy2NLQ+tUKLW1lbnV0cmFucyAmVW5kbzxUYWI+dQkJICay4NDi2DxUYWI+dQotbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJICa/3tLg0OLYPFRhYj5eUgotbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCSC/Jt7d3tLYPFRhYj5cLgotbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJILjh1Sbm2DxUYWI+Iit4Ci1tZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJICa63t/Y4ND4PFRhYj4iK3kKLW1lbnV0cmFucyAmUGFzdGU8VGFiPiIrZ1AJICbD0dDm2DxUYWI+IitnUAotbWVudXRyYW5zICZQYXN0ZTxUYWI+IitQCSbD0dDm2DxUYWI+IitnUAotbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJIMHi0NLYXCDf4NUm1DxUYWI+W3AKLW1lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJIMHi0NLYXCAm2NfQPFRhYj5dcAotbWVudXRyYW5zICZEZWxldGU8VGFiPngJCSC41ybR4Njo2DxUYWI+eAotbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRyAguNfQ0dXg2Fwg4dIm1TxUYWI+Z2dWRwotbWVudXRyYW5zICZGaW5kXC5cLlwuCQkgJr3Q8thcLlwuXC4KLW1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuIL3Q8thcINhcICbX0NzV3dhcLlwuXC4KLW1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkgvybg3tfe4Fwg397U1ejQ0tD60AotbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCSC+3ybo4tBcIN/e1NXo0NLQ+tAKLW1lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJIL/e1NXo0NLQ+tBcINfQXCDU0Cbi3uLV2tUKLW1lbnV0cmFucyAmU2hpZnR3aWR0aAkJICa/3tzV4ND4Ci1tZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJICa81drQXCDi0NHj29Dm2PjQCi1tZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCSAmyNjg2N3QXCDi1drh4tBcLlwuXC4KLW1lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCSAmsuDh4tBcINTQ4t7i1drVXC5cLlwuCi1tZW51dHJhbnMgQyZvbG9yXCBTY2hlbWUJILHeJvjVCi1tZW51dHJhbnMgJktleW1hcAkJIL/g1eEm29ja0NLQ+tVcIOLQ4eLQ4uPg1QotbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JILjX0d7gXCAm5N7d4tBcLlwuXC4KLQotIiBFZGl0L0dsb2JhbCBTZXR0aW5ncwotbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzISC90NPb0OHYXCAm3tHg0Nfm1VwgKNTQL93VKTxUYWI+OnNldFwgaGxzIQotbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEgt9Dd1dzQ4NhcIFzS1dvY59jd41wgJuHb3tLQXCAo1NAv3dUpPFRhYj46c2V0XCBpYyEKLW1lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtISC/4N7S1eDYXCDf4NDi1fvjXCAm19DT4NDU41wgKNTQL93VKTxUYWI+OnNldFwgc20hCi1tZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzICCy2NT52NLYXCAm4NXU3tLYCi1tZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQgICCy2ODi49Xb3d5cICbj4NXy2NLQ+tUKLW1lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQnA1dbY3Fwg4ybd3uHQXCAo1NAv3dUpPFRhYj46c2V0XCBpbSEKLW1lbnV0cmFucyBUb2dnbGVcIFZpXCBDJm9tcGF0aWJsZTxUYWI+OnNldFwgY3AhICAgICAnJlZpJ1wg4dDT29Dh3d5cICjU0C/d1Sk8VGFiPjpzZXRcIGNwIQotbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4gv+Pi0PrQXCAm3+DV4uDQ09VcLlwuXC4KLW1lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLiAgICa00OLe4tXa1Vwg3tfd0NrQXC5cLlwuCi1tZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhciAgICC72N3Y+NBcIOHQXCAm0NvQ4trQ3NBcICjU0C/d1SkKLW1lbnV0cmFucyBUb2dnbGVcICZCb3R0b21cIFNjcm9sbGJhciAgILTe+tBcINsm2N3Y+NBcINrb2NfQ+tBcICjU0C/d1SkKLW1lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIgICa71dLQXCDb2N3Y+NBcINrb2NfQ+tBcICjU0C/d1SkKLW1lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyICa01eHd0Fwg29jd2PjQXCDa29jX0PrQXCAo1NAv3dUpCi0KLSIgRWRpdC9HbG9iYWwgU2V0dGluZ3MvVmlydHVhbCBFZGl0Ci1tZW51dHJhbnMgTmV2ZXIJCSAgICAgIL3Y2tDUCi1tZW51dHJhbnMgQmxvY2tcIFNlbGVjdGlvbiAgICC419He4Fwg0dve2tAKLW1lbnV0cmFucyBJbnNlcnRcIG1vZGUJICAgICAgwNXW2NxcIOPd3uHQCi1tZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0ICCx297aXCDYXCDj3d7hCi1tZW51dHJhbnMgQWx3YXlzCSAgICAgIMPS1doKLQotIiBFZGl0L0ZpbGUgU2V0dGluZ3MKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51ISAgIMDV1N3YXCAm0eDe+NXS2FwgKNTQL93VKTxUYWI+OnNldFwgbnUhCi1tZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJICAgwNXW2NxcICbb2OHi1VwgKNTQL93VKTxUYWI+OnNldFwgbGlzdCEKLW1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkgICC+0dDS2PjQ+tVcICbg1dTe0tBcICjU0C/d1Sk8VGFiPjpzZXRcIHdyYXAhCi1tZW51dHJhbnMgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEgICC/4NXb3tzYXCAm3dBcIODV51wgKNTQL93VKTxUYWI+OnNldFwgbGJyIQotbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkgICDA0Nfc0ObYXCDj3NXh4t5cICbi0NHj29Dm2PjVXCAo1NAv3dUpPFRhYj46c2V0XCBldCEKLW1lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhCbDj4t4tJuPS29Dn1frVXCAo1NAv3dUpPFRhYj46c2V0XCBhaSEKLW1lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkgICAmxtUt49Lb0OfV+tVcICjU0C/d1Sk8VGFiPjpzZXRcIGNpbiEKLQotIiBFZGl0L0tleW1hcAotbWVudXRyYW5zIE5vbmUgvdj41dTQ3QotCi0iIFRvb2xzIG1lbnUKLW1lbnV0cmFucyAmVG9vbHMJJrDb0OLa1QotbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0gwdre59hcIN3QXCAm3tLjXCDe193Q2uM8VGFiPmdeXQotbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkgwdre59hcICbd0OLg0NM8VGFiPl5UCi1tZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCSC419Pg0NTYXCAm1NDi3uLV2uNcIN7X3dDa0AotbWVudXRyYW5zICZGb2xkaW5nCSAgICAgICa/3tTS2PjQ+tUKLW1lbnV0cmFucyBDcmVhdGVcICZGb2xkPFRhYj56ZgkJICDBJuLS3uDYXCDf3tTS2Pjj4tDaPFRhYj56ZgotbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkgIL4m0eDY6NhcIN/e1NLY+OPi0No8VGFiPnpkCi1tZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJICC+0eDY6NhcIOHS1Vwg394m1NLY+OPi2tU8VGFiPnpECi1tZW51dHJhbnMgRm9sZFwgY29sdW1uXCAmd2lkdGgJCSAgyNjg2N3QXCAm4NXU0Fwg397U0tj44+La0AotbWVudXRyYW5zICZEaWZmCQkgICAgICAmw9/e4NXy2NLQ+tUKLW1lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UgICAgICdtYWsm1Sc8VGFiPjptYWtlCi1tZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsICAgICDB39jh0NpcICbT4NXo0NrQPFRhYj46Y2wKLW1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEgIMHfJtjh0NpcIN/e4OPa0DxUYWI+OmNsIQotbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCSAgICDBJtvV1NX70Fwg0+DV6NrQPFRhYj46Y24KLW1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AgIL/g1Sbi5d7U3dBcINPg1eja0DxUYWI+OmNwCi1tZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZCAgICDB4tDg2Fwg4d/Y4dAm2jxUYWI+OmNvbGQKLW1lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3ICAgIL3eJtLYXCDh39jh0No8VGFiPjpjbmV3Ci1tZW51dHJhbnMgRXJyb3JcICZXaW5kb3cJICAgIL/g3tfe4Fwg4dBcINMm4NXo2tDc0AotbWVudXRyYW5zICZTZXRcIENvbXBpbGVyCSAgICC4JtfQ0dXg2Fwg3+DV0t7U2N7m0AotbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSEVYPFRhYj46JSF4eGQJICAgv+DV4tLe4NhcIONcICbFtbrBPFRhYj46JSF4eGQKLW1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtciAgICCy4CbQ4thcIONcIN/g0t7R2OLQ3Vwg3tHb2No8VGFiPjolIXh4ZFwgLXIKLQotIiBUb29scy9Gb2xkaW5nCi1tZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkgICAmvtze0+P72C/f4NXa2N3YXCDf3tTS2PjQ+tU8VGFiPnppCi1tZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJICAmv97a0NbYXCDg1dRcIOHQXCDa4+Dh3uDe3DxUYWI+enYKLW1lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4IL/e2tDW2FwgJuHQ3N5cIODV1Fwg4dBcINrj4OHe4N7cPFRhYj56TXp4Ci1tZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0gICAmt9Di0t7g2Fwg0tjo1Vwg397U0tj44+LQ2tA8VGFiPnptCi1tZW51dHJhbnMgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TSAgICC30OLS3uDYXCDhJtLVXCDf3tTS2Pjj4trVPFRhYj56TQotbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIgICAgvuLS3uDYXCDS2Ogm1Vwg397U0tj44+LQ2tA8VGFiPnpyCi1tZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSICAgICC+JuLS3uDYXCDh0tVcIN/e1NLY+OPi2tU8VGFiPnpSCi1tZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJICAgICAgICa90OfY3Vwg397U0tj40PrQCi0KLSIgVG9vbHMvRm9sZGluZy9Gb2xkIE1ldGhvZAotbWVudXRyYW5zIE0mYW51YWwJJsDj593eCi1tZW51dHJhbnMgSSZuZGVudAkmw9Lj59Xd3uHiCi1tZW51dHJhbnMgRSZ4cHJlc3Npb24JJrjX4NDXCi1tZW51dHJhbnMgUyZ5bnRheAkmwdjd4tDa4dAKLSJtZW51dHJhbnMgJkRpZmYKLW1lbnV0cmFucyBNYSZya2VyCSa+193Q2tAKLQotIiBUb29scy9EaWZmCi1tZW51dHJhbnMgJlVwZGF0ZQkmsNbj4Njg0PgKLW1lbnV0cmFucyAmR2V0XCBCbG9jawkmv+DY5dLQ4thcINjX3NXd4wotbWVudXRyYW5zICZQdXRcIEJsb2NrCb/g1SbR0ObYXCDY19zV3eMKLQotIiBUb29scy9FcnJvciBXaW5kb3cKLW1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbiAgICaw1uPg2ODQ+DxUYWI+OmN3aW4KLW1lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuICAgICa+4tLe4Ng8VGFiPjpjb3BlbgotbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZSAgJrfQ4tLe4Ng8VGFiPjpjY2xvc2UKLQotIiBCdWZlcnMgbWVudQotbWVudXRyYW5zICZCdWZmZXJzCSAgICax0OTV4NgKLW1lbnV0cmFucyAmUmVmcmVzaFwgbWVudSAgICaw1uPg2ODQ+AotbWVudXRyYW5zIERlbGV0ZQkgICAmvtHg2OjYCi1tZW51dHJhbnMgJkFsdGVybmF0ZQkgICCwJtvi1eDd0OLY0t3YCi1tZW51dHJhbnMgJk5leHQJCSAgICbB29XU1fvYCi1tZW51dHJhbnMgJlByZXZpb3VzCSAgICa/4NXi5d7U3dgKLW1lbnV0cmFucyBbTm9cIEZpbGVdCSAgIFu91dzQXCDU0OLe4tXa1V0KLQotIiBXaW5kb3cgbWVudQotbWVudXRyYW5zICZXaW5kb3cJCSAgICAmv+De197gCi1tZW51dHJhbnMgJk5ldzxUYWI+XlduCQkgICAgJr3e0tg8VGFiPl5XbgotbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCSAgICAmv97U1dvYPFRhYj5eV3MKLW1lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eICAgIL/e1NXb2Fwg4dBcICbQ2+LV4N3Q4tjS3djcPFRhYj5eV15eCi1tZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YgICC/3tTV29hcICbj4d/g0NLd3jxUYWI+Xld2Ci1tZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlciAgICC/3tTV29hcINfQXCDf4NXT29XUXCAm1NDi3uLV2tAKLW1lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkgICAgJrfQ4tLe4Ng8VGFiPl5XYwotbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbyAgt9Di0t7g2FwgJt7h4tDb1TxUYWI+XldvCi0ibWVudXRyYW5zIE5lJnh0PFRhYj5eV3cgICAgICAgJsHb1dTV+9g8VGFiPl5XdwotIm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkgIL8m4NXi5d7U3dg8VGFiPl5XVwotbWVudXRyYW5zIE1vdmVcICZUbwkJICAgIL/g1Sbc1eHi2AotbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJICAgICa64OPW3d5cIN3Q097g1TxUYWI+XldSCi1tZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyICAgICC64OPW3d5cIN3Q1N7bJtU8VGFiPl5XcgotbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CSAgICAmuOHi1Vwg0tXb2OfY3dU8VGFiPl5XPQotbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCSAgICC80Nrh2NzQ293QXCAm0tjh2N3QPFRhYj5eV18KLW1lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8gICAgILzY3djc0Cbb3dBcINLY4djd0DxUYWI+XlcxXwotbWVudXRyYW5zIE1heFwgJldpZHRoPFRhYj5eV1x8CSAgICC80Nrh2NzQ293QXCAm6Njg2N3QPFRhYj5eV1x8Ci1tZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8ICAgICC82N3Y3NDb3dBcIOjYJuDY3dA8VGFiPl5XMVx8Ci0KLSIgV2luZG93L01vdmUgVG8KLW1lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSAmsuDlPFRhYj5eV0sKLW1lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJICa/3tTd3tb41TxUYWI+XldKCi1tZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkgwybb1dLePFRhYj5eV0gKLW1lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkgwybU1eHd3jxUYWI+XldMCi0KLSIgVGhlIHBvcHVwIG1lbnUKLW1lbnV0cmFucyAmVW5kbwkJICAgICAgJrLg0OLYCi1tZW51dHJhbnMgQ3UmdAkJICAgICAgJrjh1ebYCi1tZW51dHJhbnMgJkNvcHkJCSAgICAgICa63t/Y4ND4Ci1tZW51dHJhbnMgJlBhc3RlCSAgICAgICbD0dDm2AotbWVudXRyYW5zICZEZWxldGUJICAgICAguCbX0eDY6NgKLW1lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZSAgILHY4ND4XCAm3+DQ0t7j09De3d4KLW1lbnV0cmFucyBTZWxlY3RcICZXb3JkICAgICAgILjX0NHV4NhcICbg1ecKLW1lbnV0cmFucyBTZWxlY3RcICZMaW5lICAgICAgILjX0NHV4NhcIOAm1dQKLW1lbnV0cmFucyBTZWxlY3RcICZCbG9jayAgICAgILjX0NHV4NhcICbR297aCi1tZW51dHJhbnMgU2VsZWN0XCAmQWxsCSAgICAgILjX0NHV4NhcICbh0tUKLQotIiBUaGUgR1VJIHRvb2xiYXIKLWlmIGhhcygidG9vbGJhciIpCi0gIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQotICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51Ci0gIGVuZGlmCi0gIGZ1biBEb190b29sYmFyX3RtZW51KCkKLSAgICB0bWVudSBUb29sQmFyLk9wZW4JICAgw+fY4tD4Ci0gICAgdG1lbnUgVG9vbEJhci5TYXZlCSAgIMHQ5+PS0PgKLSAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwgIMHQ5+PS0Pgg4dLVCi0gICAgdG1lbnUgVG9vbEJhci5QcmludCAgICDI4tDc39D4Ci0gICAgdG1lbnUgVG9vbEJhci5VbmRvCSAgILLg0OLYCi0gICAgdG1lbnUgVG9vbEJhci5SZWRvCSAgIL/e0uDQ4tgKLSAgICB0bWVudSBUb29sQmFyLkN1dAkgICC44dXm2AotICAgIHRtZW51IFRvb2xCYXIuQ29weQkgICC63t/Y4ND4Ci0gICAgdG1lbnUgVG9vbEJhci5QYXN0ZSAgICDD0dDm2AotICAgIHRtZW51IFRvb2xCYXIuRmluZAkgICC90PLYCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dCC90PLYIOHb1dTV+9gKLSAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2IL3Q8tgg3+DV4uXe1N3YCi0gICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlICC30NzV3dgKLSAgICB0bWVudSBUb29sQmFyLk5ldwkgICC93tLYCi0gICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdCC/3tTV29gg3+De197gCi0gICAgdG1lbnUgVG9vbEJhci5XaW5NYXggICC80Nrh2NzQ293QINLY4djd0AotICAgIHRtZW51IFRvb2xCYXIuV2luTWluICAgvNjd2NzQ293QINLY4djd0AotICAgIHRtZW51IFRvb2xCYXIuV2luVlNwbGl0ICAgv97U1dvYIOPh3+DQ0t3eCi0gICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aCC80Nrh2NzQ293QIOjY4Njd0AotICAgIHRtZW51IFRvb2xCYXIuV2luTWluV2lkdGggvNjd2NzQ293QIOjY4Njd0AotICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2Ugt9Di0t7g2CDf4N7X3uAKLSAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuIMPn2OLQ+CDh1dDd4eMKLSAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuIMHQ5+PS0Pgg4dXQ3eHjCi0gICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQgICC419Lg6Ngg4d/Y4QotICAgIHRtZW51IFRvb2xCYXIuTWFrZQkgICAnbWFrZScKLSAgICB0bWVudSBUb29sQmFyLlNoZWxsICAgIL7f1eDQ4tjS3d4g3trg49bV+tUKLSAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzIL3Q3+DQ0tgg3tfd0NrVCi0gICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wICC41Ngg3dAg3tfd0NrjCi0gICAgdG1lbnUgVG9vbEJhci5IZWxwCSAgIL/e3N77Ci0gICAgdG1lbnUgVG9vbEJhci5GaW5kSGVscCC90PLYIN7R+NDo+tX61QotICBlbmRmdW4KLWVuZGlmCi0KLSIgU3ludGF4IG1lbnUKLW1lbnV0cmFucyAmU3ludGF4ICbB2N3i0Nrh0AotbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51ICC419He4FwgJ2ZpbGV0eXBlJ1wg2NdcICbc1d3Y+NAKLW1lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkgv97U1Sbh2FwgJ3N5bnRheCdcIOHQ3N4KLW1lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28gIL/e1NXh2FwgJ2ZpbGV0eXBlJ1wgJuLQ2t7y1QotbWVudXRyYW5zICZPZmYJICAgICAmuOHa+ePn1d3eCi1tZW51dHJhbnMgJk1hbnVhbCAgICAmwOPn3d4KLW1lbnV0cmFucyBBJnV0b21hdGljCSaw4+Le3NDi4drYCi1tZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlICAgICC00C/d1Vwg19BcIN7S41wgJtTQ4t7i1drjCi1tZW51dHJhbnMgQ28mbG9yXCB0ZXN0CSAgIL/g3tLV4NBcICbR3vjQCi1tZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdCC/4N7S1eDQXCDY4eLYJubQ+tAKLW1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwgIL/g1eLS3uDYXCAm41wgSFRNTAotCi0iIGRpYWxvZyB0ZXh0cwotbGV0IG1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICLD3dXh2OLVIN3Q4NXU0eMg2NvYIODV5yDn2PjVIN/e+NDo+tX61SDi4NDW2OLVOlxuXG603tTQ+OLVIGlfINfQIN3Q4NXU0dUg493e4dAgKN3f4C4gaV9DVFJMLVgpXG603tTQ+OLVIGNfINfQIN3Q4NXU0dUg2t7c0N3U3d7TIODV1tjc0CAo3d/gLiDhXzxEZWw+KVxutN7U0Pji1SAnINfQINjc1d3QIN7f5tj40CAo3d/gLiAnc2hpZnR3aWR0aCcpIgotCi1sZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAiw93V4dji1SDf4+Ig3+DV4uDQ09Ug19Ag1NDi3uLV2tVcbsDQ19TS3vjY4tUg19Dg1dfY3NAg2NzV3dAg1Njg1dri3uDY+OPc0C4iCi0KLWxldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICLD3dXh2OLVINjc1d3QINTQ4t7i1drQIOHQIN7X3dDa0NzQXG7A0NfU0t742OLVINfQ4NXX2NzQINjc1d3QLiIKLQotbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiw93V4dji1SDd3tLjIOjY4Njd4yDi1drh4tAgKDAg4d/g1efQ0tAg3+DV297cKSIKLQotbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIrjX0NHV4Nji1SDS4OHi4yDU0OLe4tXa1SIKLQotbGV0IG1lbnV0cmFuc19ub19maWxlID0gIlu91dzQINTQ4t7i1drVXSIKK3NvdXJjZSA8c2ZpbGU+OnA6aC9tZW51X3NyX3JzLmlzb184ODU5LTUudmltCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9zcl95dS51dGYtOC52aW0gYi9ydW50aW1lL2xhbmcvbWVudV9zcl95dS51dGYtOC52aW0KaW5kZXggNzMzNTY2My4uNGQyNzhmOSAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfc3JfeXUudXRmLTgudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3NyX3l1LnV0Zi04LnZpbQpAQCAtMSwyNjEgKzEsMyBAQAotIiBNZW51IFRyYW5zbGF0aW9uczogU2VyYmlhbgotIiBNYWludGFpbmVyOiBBbGVrc2FuZGFyIEplbGVuYWsgPGFqZWxlbmFrIEFUIHlhaG9vLmNvbT4KLSIgTGFzdCBDaGFuZ2U6CUZyaSwgMzAgTWF5IDIwMDMgMTA6MTc6MzkgRWFzdGVybiBEYXlsaWdodCBUaW1lCisiIE1lbnUgVHJhbnNsYXRpb25zOglTZXJiaWFuCiAKLSIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCi1pZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKLSAgZmluaXNoCi1lbmRpZgotbGV0IGRpZF9tZW51X3RyYW5zID0gMQotc2NyaXB0ZW5jb2RpbmcgdXRmLTgKLQotIiBIZWxwIG1lbnUKLW1lbnV0cmFucyAmSGVscAkJICAgICAg0J/QvtC80L4m0ZsKLW1lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4gICbQn9GA0LXQs9C70LXQtDxUYWI+PEYxPgotbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgICAgJtCj0L/Rg9GC0YHRgtCy0L5cINC30LBcINC60L7RgNC40YHQvdC40LrQtQotbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzICAgICAgJtCa0LDQutC+XCDQtNCwXC5cLlwuCi1tZW51dHJhbnMgJkZpbmQJCSAgICAgICbQndCw0ZLQuAotbWVudXRyYW5zICZDcmVkaXRzCSAgICAgICbQl9Cw0YHQu9GD0LPQtQotbWVudXRyYW5zIENvJnB5aW5nCSAgICAgINCfJtGA0LXRg9C30LjQvNCw0ZrQtQotbWVudXRyYW5zIE8mcnBoYW5zCSAgICAgICbQodC40YDQvtGH0LjRm9C4Ci1tZW51dHJhbnMgJlZlcnNpb24JICAgICAgJtCS0LXRgNC30LjRmNCwCi1tZW51dHJhbnMgJkFib3V0CSAgICAgICbQnlwg0L/RgNC+0LPRgNCw0LzRgwotCi0iIEZpbGUgbWVudQotbWVudXRyYW5zICZGaWxlCQkJICAgICbQlNCw0YLQvtGC0LXQutCwCi1tZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCSAgICAm0J7RgtCy0L7RgNC4XC5cLlwuPFRhYj46ZQotbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AgJtCf0L7QtNC10LvQuC3QvtGC0LLQvtGA0LhcLlwuXC48VGFiPjpzcAotbWVudXRyYW5zICZOZXc8VGFiPjplbmV3CSAgICAm0J3QvtCy0LA8VGFiPjplbmV3Ci1tZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJICAgICbQl9Cw0YLQstC+0YDQuDxUYWI+OmNsb3NlCi1tZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkgICAgJtCh0LDRh9GD0LLQsNGYPFRhYj46dwotbWVudXRyYW5zIFNhdmVcICZBc1wuXC5cLjxUYWI+OnNhdiAg0KHQsNGH0YPQstCw0ZhcICbQutCw0L5cLlwuXC48VGFiPjpzYXYKLW1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4gINCf0L7QtNC10LvQuFwg0LhcICbRg9C/0L7RgNC10LTQuFwg0YHQsFwuXC5cLgotbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4g0J/QvibQtNC10LvQuFwg0LhcINC/0YDQtdC/0YDQsNCy0LhcINGB0LBcLlwuXC4KLW1lbnV0cmFucyAmUHJpbnQJCSAgICDQqNGC0LAm0LzQv9Cw0ZgKLW1lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCSAgICDQodCw0YfRg9Cy0LDRmFwg0LhcINC30LAm0LLRgNGI0Lg8VGFiPjp3cWEKLW1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkgICAg0Jom0YDQsNGYPFRhYj46cWEKLQotIiBFZGl0IG1lbnUKLW1lbnV0cmFucyAmRWRpdAkJCSAm0KPRgNC10ZLQuNCy0LDRmtC1Ci1tZW51dHJhbnMgJlVuZG88VGFiPnUJCSAm0JLRgNCw0YLQuDxUYWI+dQotbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJICbQn9C+0LLRgNCw0YLQuDxUYWI+XlIKLW1lbnV0cmFucyBSZXAmZWF0PFRhYj5cLgkg0J8m0L7QvdC+0LLQuDxUYWI+XC4KLW1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCSDQmNGB0LUm0YbQuDxUYWI+Iit4Ci1tZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJICbQmtC+0L/QuNGA0LDRmDxUYWI+Iit5Ci1tZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCSAm0KPQsdCw0YbQuDxUYWI+IitnUAotbWVudXRyYW5zICZQYXN0ZTxUYWI+IitQCSbQo9Cx0LDRhtC4PFRhYj4iK2dQCi1tZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkg0KHRgtCw0LLQuFwg0L/RgNC1JtC0PFRhYj5bcAotbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkg0KHRgtCw0LLQuFwgJtC40LfQsDxUYWI+XXAKLW1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkg0JjQtybQsdGA0LjRiNC4PFRhYj54Ci1tZW51dHJhbnMgJlNlbGVjdFwgYWxsPFRhYj5nZ1ZHICDQmNC30LDQsdC10YDQuFwg0YHQsibQtTxUYWI+Z2dWRwotbWVudXRyYW5zICZGaW5kXC5cLlwuCQkgJtCd0LDRktC4XC5cLlwuCi1tZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLiDQndCw0ZLQuFwg0LhcICbQt9Cw0LzQtdC90LhcLlwuXC4KLW1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkg0J8m0YDQvtC30L7RgFwg0L/QvtC00LXRiNCw0LLQsNGa0LAKLW1lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkg0J7QvybRiNGC0LBcINC/0L7QtNC10YjQsNCy0LDRmtCwCi1tZW51dHJhbnMgRiZpbGVcIFNldHRpbmdzCSDQn9C+0LTQtdGI0LDQstCw0ZrQsFwg0LfQsFwg0LTQsCbRgtC+0YLQtdC60LUKLW1lbnV0cmFucyAmU2hpZnR3aWR0aAkJICbQn9C+0LzQtdGA0LDRmAotbWVudXRyYW5zIFNvZnRcICZUYWJzdG9wCSAm0JzQtdC60LBcINGC0LDQsdGD0LvQsNGG0LjRmNCwCi1tZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCSAm0KjQuNGA0LjQvdCwXCDRgtC10LrRgdGC0LBcLlwuXC4KLW1lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCSAm0JLRgNGB0YLQsFwg0LTQsNGC0L7RgtC10LrQtVwuXC5cLgotbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCSDQkdC+JtGY0LUKLW1lbnV0cmFucyAmS2V5bWFwCQkg0J/RgNC10YEm0LvQuNC60LDQstCw0ZrQtVwg0YLQsNGB0YLQsNGC0YPRgNC1Ci1tZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkg0JjQt9Cx0L7RgFwgJtGE0L7QvdGC0LBcLlwuXC4KLQotIiBFZGl0L0dsb2JhbCBTZXR0aW5ncwotbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzISDQndCw0LPQu9Cw0YHQuFwgJtC+0LHRgNCw0LfRhtC1XCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgaGxzIQotbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEg0JfQsNC90LXQvNCw0YDQuFwgXNCy0LXQu9C40YfQuNC90YNcICbRgdC70L7QstCwXCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgaWMhCi1tZW51dHJhbnMgVG9nZ2xlXCAmU2hvd21hdGNoPFRhYj46c2V0XCBzbSEg0J/RgNC+0LLQtdGA0LhcINC/0YDQsNGC0LXRm9GDXCAm0LfQsNCz0YDQsNC00YNcICjQtNCwL9C90LUpPFRhYj46c2V0XCBzbSEKLW1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMgINCS0LjQtNGZ0LjQstC4XCAm0YDQtdC00L7QstC4Ci1tZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQgICDQktC40YDRgtGD0LXQu9C90L5cICbRg9GA0LXRktC40LLQsNGa0LUKLW1lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltISAgINCg0LXQttC40LxcINGDJtC90L7RgdCwXCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgaW0hCi1tZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwISAgICAgJyZWaSdcINGB0LDQs9C70LDRgdC90L5cICjQtNCwL9C90LUpPFRhYj46c2V0XCBjcCEKLW1lbnV0cmFucyBTZWFyY2hcICZQYXRoXC5cLlwuINCf0YPRgtCw0ZrQsFwgJtC/0YDQtdGC0YDQsNCz0LVcLlwuXC4KLW1lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLiAgICbQlNCw0YLQvtGC0LXQutC1XCDQvtC30L3QsNC60LBcLlwuXC4KLW1lbnV0cmFucyBUb2dnbGVcICZUb29sYmFyICAgINCb0LjQvdC40ZjQsFwg0YHQsFwgJtCw0LvQsNGC0LrQsNC80LBcICjQtNCwL9C90LUpCi1tZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIgICDQlNC+0ZrQsFwg0Lsm0LjQvdC40ZjQsFwg0LrQu9C40LfQsNGa0LBcICjQtNCwL9C90LUpCi1tZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyICAm0JvQtdCy0LBcINC70LjQvdC40ZjQsFwg0LrQu9C40LfQsNGa0LBcICjQtNCwL9C90LUpCi1tZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhciAm0JTQtdGB0L3QsFwg0LvQuNC90LjRmNCwXCDQutC70LjQt9Cw0ZrQsFwgKNC00LAv0L3QtSkKLQotIiBFZGl0L0dsb2JhbCBTZXR0aW5ncy9WaXJ0dWFsIEVkaXQKLW1lbnV0cmFucyBOZXZlcgkJICAgICAg0J3QuNC60LDQtAotbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24gICAg0JjQt9Cx0L7RgFwg0LHQu9C+0LrQsAotbWVudXRyYW5zIEluc2VydFwgbW9kZQkgICAgICDQoNC10LbQuNC8XCDRg9C90L7RgdCwCi1tZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0ICDQkdC70L7Qulwg0LhcINGD0L3QvtGBCi1tZW51dHJhbnMgQWx3YXlzCSAgICAgINCj0LLQtdC6Ci0KLSIgRWRpdC9GaWxlIFNldHRpbmdzCi1tZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEgICDQoNC10LTQvdC4XCAm0LHRgNC+0ZjQtdCy0LhcICjQtNCwL9C90LUpPFRhYj46c2V0XCBudSEKLW1lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkgICDQoNC10LbQuNC8XCAm0LvQuNGB0YLQtVwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGxpc3QhCi1tZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmV3JhcDxUYWI+OnNldFwgd3JhcCEJICAg0J7QsdCw0LLQuNGY0LDRmtC1XCAm0YDQtdC00L7QstCwXCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgd3JhcCEKLW1lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyISAgINCf0YDQtdC70L7QvNC4XCAm0L3QsFwg0YDQtdGHXCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgbGJyIQotbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkgICDQoNCw0LfQvNCw0YbQuFwg0YPQvNC10YHRgtC+XCAm0YLQsNCx0YPQu9Cw0YbQuNGY0LVcICjQtNCwL9C90LUpPFRhYj46c2V0XCBldCEKLW1lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhCdCQ0YPRgtC+LSbRg9Cy0LvQsNGH0LXRmtC1XCAo0LTQsC/QvdC1KTxUYWI+OnNldFwgYWkhCi1tZW51dHJhbnMgVG9nZ2xlXCAmQy1pbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEJICAgJtCm0LUt0YPQstC70LDRh9C10ZrQtVwgKNC00LAv0L3QtSk8VGFiPjpzZXRcIGNpbiEKLQotIiBFZGl0L0tleW1hcAotbWVudXRyYW5zIE5vbmUg0J3QuNGY0LXQtNCw0L0KLQotIiBUb29scyBtZW51Ci1tZW51dHJhbnMgJlRvb2xzCSbQkNC70LDRgtC60LUKLW1lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dINCh0LrQvtGH0LhcINC90LBcICbQvtCy0YNcINC+0LfQvdCw0LrRgzxUYWI+Z15dCi1tZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCSDQodC60L7Rh9C4XCAm0L3QsNGC0YDQsNCzPFRhYj5eVAotbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkg0JjQt9Cz0YDQsNC00LhcICbQtNCw0YLQvtGC0LXQutGDXCDQvtC30L3QsNC60LAKLW1lbnV0cmFucyAmRm9sZGluZwkgICAgICAm0J/QvtC00LLQuNGY0LDRmtC1Ci1tZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCSAg0KEm0YLQstC+0YDQuFwg0L/QvtC00LLQuNGY0YPRgtCw0Lo8VGFiPnpmCi1tZW51dHJhbnMgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCSAg0J4m0LHRgNC40YjQuFwg0L/QvtC00LLQuNGY0YPRgtCw0Lo8VGFiPnpkCi1tZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJICDQntCx0YDQuNGI0LhcINGB0LLQtVwg0L/QvibQtNCy0LjRmNGD0YLQutC1PFRhYj56RAotbWVudXRyYW5zIEZvbGRcIGNvbHVtblwgJndpZHRoCQkgINCo0LjRgNC40L3QsFwgJtGA0LXQtNCwXCDQv9C+0LTQstC40ZjRg9GC0LrQsAotbWVudXRyYW5zICZEaWZmCQkgICAgICAm0KPQv9C+0YDQtdGS0LjQstCw0ZrQtQotbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZSAgICAgJ21haybQtSc8VGFiPjptYWtlCi1tZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsICAgICDQodC/0LjRgdCw0LpcICbQs9GA0LXRiNCw0LrQsDxUYWI+OmNsCi1tZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whICDQodC/JtC40YHQsNC6XCDQv9C+0YDRg9C60LA8VGFiPjpjbCEKLW1lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkgICAg0KEm0LvQtdC00LXRm9CwXCDQs9GA0LXRiNC60LA8VGFiPjpjbgotbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcCAg0J/RgNC1JtGC0YXQvtC00L3QsFwg0LPRgNC10YjQutCwPFRhYj46Y3AKLW1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkICAgINCh0YLQsNGA0LhcINGB0L/QuNGB0LAm0Lo8VGFiPjpjb2xkCi1tZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldyAgICDQndC+JtCy0LhcINGB0L/QuNGB0LDQujxUYWI+OmNuZXcKLW1lbnV0cmFucyBFcnJvclwgJldpbmRvdwkgICAg0J/RgNC+0LfQvtGAXCDRgdCwXCDQsybRgNC10YjQutCw0LzQsAotbWVudXRyYW5zICZTZXRcIENvbXBpbGVyCSAgICDQmCbQt9Cw0LHQtdGA0LhcINC/0YDQtdCy0L7QtNC40L7RhtCwCi1tZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkgICDQn9GA0LXRgtCy0L7RgNC4XCDRg1wgJtCl0JXQmtChPFRhYj46JSF4eGQKLW1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtciAgICDQktGAJtCw0YLQuFwg0YNcINC/0YDQstC+0LHQuNGC0LDQvVwg0L7QsdC70LjQujxUYWI+OiUheHhkXCAtcgotCi0iIFRvb2xzL0ZvbGRpbmcKLW1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aSAgICbQntC80L7Qs9GD0ZvQuC/Qv9GA0LXQutC40L3QuFwg0L/QvtC00LLQuNGY0LDRmtC1PFRhYj56aQotbWVudXRyYW5zICZWaWV3XCBDdXJzb3JcIExpbmU8VGFiPnp2CSAgJtCf0L7QutCw0LbQuFwg0YDQtdC0XCDRgdCwXCDQutGD0YDRgdC+0YDQvtC8PFRhYj56dgotbWVudXRyYW5zIFZpZSZ3XCBDdXJzb3JcIExpbmVcIG9ubHk8VGFiPnpNengg0J/QvtC60LDQttC4XCAm0YHQsNC80L5cINGA0LXQtFwg0YHQsFwg0LrRg9GA0YHQvtGA0L7QvDxUYWI+ek16eAotbWVudXRyYW5zIEMmbG9zZVwgbW9yZVwgZm9sZHM8VGFiPnptICAgJtCX0LDRgtCy0L7RgNC4XCDQstC40YjQtVwg0L/QvtC00LLQuNGY0YPRgtCw0LrQsDxUYWI+em0KLW1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNICAgINCX0LDRgtCy0L7RgNC4XCDRgSbQstC1XCDQv9C+0LTQstC40ZjRg9GC0LrQtTxUYWI+ek0KLW1lbnV0cmFucyBPJnBlblwgbW9yZVwgZm9sZHM8VGFiPnpyICAgINCe0YLQstC+0YDQuFwg0LLQuNGIJtC1XCDQv9C+0LTQstC40ZjRg9GC0LDQutCwPFRhYj56cgotbWVudXRyYW5zICZPcGVuXCBhbGxcIGZvbGRzPFRhYj56UiAgICAg0J4m0YLQstC+0YDQuFwg0YHQstC1XCDQv9C+0LTQstC40ZjRg9GC0LrQtTxUYWI+elIKLW1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkgICAgICAgJtCd0LDRh9C40L1cINC/0L7QtNCy0LjRmNCw0ZrQsAotCi0iIFRvb2xzL0ZvbGRpbmcvRm9sZCBNZXRob2QKLW1lbnV0cmFucyBNJmFudWFsCSbQoNGD0YfQvdC+Ci1tZW51dHJhbnMgSSZuZGVudAkm0KPQstGD0YfQtdC90L7RgdGCCi1tZW51dHJhbnMgRSZ4cHJlc3Npb24JJtCY0LfRgNCw0LcKLW1lbnV0cmFucyBTJnludGF4CSbQodC40L3RgtCw0LrRgdCwCi0ibWVudXRyYW5zICZEaWZmCi1tZW51dHJhbnMgTWEmcmtlcgkm0J7Qt9C90LDQutCwCi0KLSIgVG9vbHMvRGlmZgotbWVudXRyYW5zICZVcGRhdGUJJtCQ0LbRg9GA0LjRgNCw0ZgKLW1lbnV0cmFucyAmR2V0XCBCbG9jawkm0J/RgNC40YXQstCw0YLQuFwg0LjQt9C80LXQvdGDCi1tZW51dHJhbnMgJlB1dFwgQmxvY2sJ0J/RgNC1JtCx0LDRhtC4XCDQuNC30LzQtdC90YMKLQotIiBUb29scy9FcnJvciBXaW5kb3cKLW1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbiAgICbQkNC20YPRgNC40YDQsNGYPFRhYj46Y3dpbgotbWVudXRyYW5zICZPcGVuPFRhYj46Y29wZW4gICAgJtCe0YLQstC+0YDQuDxUYWI+OmNvcGVuCi1tZW51dHJhbnMgJkNsb3NlPFRhYj46Y2Nsb3NlICAm0JfQsNGC0LLQvtGA0Lg8VGFiPjpjY2xvc2UKLQotIiBCdWZlcnMgbWVudQotbWVudXRyYW5zICZCdWZmZXJzCSAgICbQkdCw0YTQtdGA0LgKLW1lbnV0cmFucyAmUmVmcmVzaFwgbWVudSAgICbQkNC20YPRgNC40YDQsNGYCi1tZW51dHJhbnMgRGVsZXRlCSAgICbQntCx0YDQuNGI0LgKLW1lbnV0cmFucyAmQWx0ZXJuYXRlCSAgINCQJtC70YLQtdGA0L3QsNGC0LjQstC90LgKLW1lbnV0cmFucyAmTmV4dAkJICAgJtCh0LvQtdC00LXRm9C4Ci1tZW51dHJhbnMgJlByZXZpb3VzCSAgICbQn9GA0LXRgtGF0L7QtNC90LgKLW1lbnV0cmFucyBbTm9cIEZpbGVdCSAgIFvQndC10LzQsFwg0LTQsNGC0L7RgtC10LrQtV0KLQotIiBXaW5kb3cgbWVudQotbWVudXRyYW5zICZXaW5kb3cJCSAgICAm0J/RgNC+0LfQvtGACi1tZW51dHJhbnMgJk5ldzxUYWI+XlduCQkgICAgJtCd0L7QstC4PFRhYj5eV24KLW1lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkgICAgJtCf0L7QtNC10LvQuDxUYWI+XldzCi1tZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXiAgICDQn9C+0LTQtdC70LhcINGB0LBcICbQsNC70YLQtdGA0L3QsNGC0LjQstC90LjQvDxUYWI+XldeXgotbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2ICAg0J/QvtC00LXQu9C4XCAm0YPRgdC/0YDQsNCy0L3QvjxUYWI+Xld2Ci1tZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlciAgICDQn9C+0LTQtdC70LhcINC30LBcINC/0YDQtdCz0LvQtdC0XCAm0LTQsNGC0L7RgtC10LrQsAotbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCSAgICAm0JfQsNGC0LLQvtGA0Lg8VGFiPl5XYwotbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbyAg0JfQsNGC0LLQvtGA0LhcICbQvtGB0YLQsNC70LU8VGFiPl5XbwotIm1lbnV0cmFucyBOZSZ4dDxUYWI+Xld3ICAgICAgICbQodC70LXQtNC10ZvQuDxUYWI+Xld3Ci0ibWVudXRyYW5zIFAmcmV2aW91czxUYWI+XldXCSAg0J8m0YDQtdGC0YXQvtC00L3QuDxUYWI+XldXCi1tZW51dHJhbnMgTW92ZVwgJlRvCQkgICAg0J/RgNC1JtC80LXRgdGC0LgKLW1lbnV0cmFucyBSb3RhdGVcICZVcDxUYWI+XldSCSAgICAm0JrRgNGD0LbQvdC+XCDQvdCw0LPQvtGA0LU8VGFiPl5XUgotbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XciAgICAg0JrRgNGD0LbQvdC+XCDQvdCw0LTQvtC7JtC1PFRhYj5eV3IKLW1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkgICAgJtCY0YHRgtC1XCDQstC10LvQuNGH0LjQvdC1PFRhYj5eVz0KLW1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkgICAg0JzQsNC60YHQuNC80LDQu9C90LBcICbQstC40YHQuNC90LA8VGFiPl5XXwotbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXyAgICAg0JzQuNC90LjQvNCwJtC70L3QsFwg0LLQuNGB0LjQvdCwPFRhYj5eVzFfCi1tZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJICAgINCc0LDQutGB0LjQvNCw0LvQvdCwXCAm0YjQuNGA0LjQvdCwPFRhYj5eV1x8Ci1tZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8ICAgICDQnNC40L3QuNC80LDQu9C90LBcINGI0Lgm0YDQuNC90LA8VGFiPl5XMVx8Ci0KLSIgV2luZG93L01vdmUgVG8KLW1lbnV0cmFucyAmVG9wPFRhYj5eV0sJCSAm0JLRgNGFPFRhYj5eV0sKLW1lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJICbQn9C+0LTQvdC+0LbRmNC1PFRhYj5eV0oKLW1lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICSDQoybQu9C10LLQvjxUYWI+XldICi1tZW51dHJhbnMgJlJpZ2h0XCBzaWRlPFRhYj5eV0wJINCjJtC00LXRgdC90L48VGFiPl5XTAotCi0iIFRoZSBwb3B1cCBtZW51Ci1tZW51dHJhbnMgJlVuZG8JCSAgICAgICbQktGA0LDRgtC4Ci1tZW51dHJhbnMgQ3UmdAkJICAgICAgJtCY0YHQtdGG0LgKLW1lbnV0cmFucyAmQ29weQkJICAgICAgJtCa0L7Qv9C40YDQsNGYCi1tZW51dHJhbnMgJlBhc3RlCSAgICAgICbQo9Cx0LDRhtC4Ci1tZW51dHJhbnMgJkRlbGV0ZQkgICAgICDQmCbQt9Cx0YDQuNGI0LgKLW1lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZSAgINCR0LjRgNCw0ZhcICbQv9GA0LDQstC+0YPQs9Cw0L7QvdC+Ci1tZW51dHJhbnMgU2VsZWN0XCAmV29yZCAgICAgICDQmNC30LDQsdC10YDQuFwgJtGA0LXRhwotbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUgICAgICAg0JjQt9Cw0LHQtdGA0LhcINGAJtC10LQKLW1lbnV0cmFucyBTZWxlY3RcICZCbG9jayAgICAgINCY0LfQsNCx0LXRgNC4XCAm0LHQu9C+0LoKLW1lbnV0cmFucyBTZWxlY3RcICZBbGwJICAgICAg0JjQt9Cw0LHQtdGA0LhcICbRgdCy0LUKLQotIiBUaGUgR1VJIHRvb2xiYXIKLWlmIGhhcygidG9vbGJhciIpCi0gIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQotICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51Ci0gIGVuZGlmCi0gIGZ1biBEb190b29sYmFyX3RtZW51KCkKLSAgICB0bWVudSBUb29sQmFyLk9wZW4gICAgINCj0YfQuNGC0LDRmAotICAgIHRtZW51IFRvb2xCYXIuU2F2ZSAgICAg0KHQsNGH0YPQstCw0ZgKLSAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwgINCh0LDRh9GD0LLQsNGYINGB0LLQtQotICAgIHRtZW51IFRvb2xCYXIuUHJpbnQgICAg0KjRgtCw0LzQv9Cw0ZgKLSAgICB0bWVudSBUb29sQmFyLlVuZG8gICAgINCS0YDQsNGC0LgKLSAgICB0bWVudSBUb29sQmFyLlJlZG8gICAgINCf0L7QstGA0LDRgtC4Ci0gICAgdG1lbnUgVG9vbEJhci5DdXQgICAgICDQmNGB0LXRhtC4Ci0gICAgdG1lbnUgVG9vbEJhci5Db3B5ICAgICDQmtC+0L/QuNGA0LDRmAotICAgIHRtZW51IFRvb2xCYXIuUGFzdGUgICAg0KPQsdCw0YbQuAotICAgIHRtZW51IFRvb2xCYXIuRmluZCAgICAg0J3QsNGS0LgKLSAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0INCd0LDRktC4INGB0LvQtdC00LXRm9C4Ci0gICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldiDQndCw0ZLQuCDQv9GA0LXRgtGF0L7QtNC90LgKLSAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UgINCX0LDQvNC10L3QuAotICAgIHRtZW51IFRvb2xCYXIuTmV3ICAgICAg0J3QvtCy0LgKLSAgICB0bWVudSBUb29sQmFyLldpblNwbGl0INCf0L7QtNC10LvQuCDQv9GA0L7Qt9C+0YAKLSAgICB0bWVudSBUb29sQmFyLldpbk1heCAgINCc0LDQutGB0LjQvNCw0LvQvdCwINCy0LjRgdC40L3QsAotICAgIHRtZW51IFRvb2xCYXIuV2luTWluICAg0JzQuNC90LjQvNCw0LvQvdCwINCy0LjRgdC40L3QsAotICAgIHRtZW51IFRvb2xCYXIuV2luVlNwbGl0ICAg0J/QvtC00LXQu9C4INGD0YHQv9GA0LDQstC90L4KLSAgICB0bWVudSBUb29sQmFyLldpbk1heFdpZHRoINCc0LDQutGB0LjQvNCw0LvQvdCwINGI0LjRgNC40L3QsAotICAgIHRtZW51IFRvb2xCYXIuV2luTWluV2lkdGgg0JzQuNC90LjQvNCw0LvQvdCwINGI0LjRgNC40L3QsAotICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2Ug0JfQsNGC0LLQvtGA0Lgg0L/RgNC+0LfQvtGACi0gICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbiDQo9GH0LjRgtCw0Zgg0YHQtdCw0L3RgdGDCi0gICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbiDQodCw0YfRg9Cy0LDRmCDRgdC10LDQvdGB0YMKLSAgICB0bWVudSBUb29sQmFyLlJ1blNjcmlwdCAgINCY0LfQstGA0YjQuCDRgdC/0LjRgQotICAgIHRtZW51IFRvb2xCYXIuTWFrZSAgICAgJ21ha2UnCi0gICAgdG1lbnUgVG9vbEJhci5TaGVsbCAgICDQntC/0LXRgNCw0YLQuNCy0L3QviDQvtC60YDRg9C20LXRmtC1Ci0gICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncyDQndCw0L/RgNCw0LLQuCDQvtC30L3QsNC60LUKLSAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAgINCY0LTQuCDQvdCwINC+0LfQvdCw0LrRgwotICAgIHRtZW51IFRvb2xCYXIuSGVscCAgICAg0J/QvtC80L7RmwotICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAg0J3QsNGS0Lgg0L7QsdGY0LDRiNGa0LXRmtC1Ci0gIGVuZGZ1bgotZW5kaWYKLQotIiBTeW50YXggbWVudQotbWVudXRyYW5zICZTeW50YXggJtCh0LjQvdGC0LDQutGB0LAKLW1lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudSAg0JjQt9Cx0L7RgFwgJ2ZpbGV0eXBlJ1wg0LjQt1wgJtC80LXQvdC40ZjQsAotbWVudXRyYW5zIFNldFwgJyZzeW50YXgnXCBvbmx5ICAg0J/QvtC00LUm0YHQuFwgJ3N5bnRheCdcINGB0LDQvNC+Ci1tZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vICDQn9C+0LTQtdGB0LhcICdmaWxldHlwZSdcICbRgtCw0LrQvtGS0LUKLW1lbnV0cmFucyAmT2ZmICAgICAgICbQmNGB0LrRmdGD0YfQtdC90L4KLW1lbnV0cmFucyAmTWFudWFsICAgICbQoNGD0YfQvdC+Ci1tZW51dHJhbnMgQSZ1dG9tYXRpYyAgICAm0JDRg9GC0L7QvNCw0YLRgdC60LgKLW1lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUgICAgINCU0LAv0L3QtVwg0LfQsFwg0L7QstGDXCAm0LTQsNGC0L7RgtC10LrRgwotbWVudXRyYW5zIENvJmxvclwgdGVzdCAgICAg0J/RgNC+0LLQtdGA0LBcICbQsdC+0ZjQsAotbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3Qg0J/RgNC+0LLQtdGA0LBcINC40YHRgtC4JtGG0LDRmtCwCi1tZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MICDQn9GA0LXRgtCy0L7RgNC4XCAm0YNcIEhUTUwKLQotIiBkaWFsb2cgdGV4dHMKLWxldCBtZW51dHJhbnNfaGVscF9kaWFsb2cgPSAi0KPQvdC10YHQuNGC0LUg0L3QsNGA0LXQtNCx0YMg0LjQu9C4INGA0LXRhyDRh9C40ZjQtSDQv9C+0ZjQsNGI0ZrQtdGa0LUg0YLRgNCw0LbQuNGC0LU6XG5cbtCU0L7QtNCw0ZjRgtC1IGlfINC30LAg0L3QsNGA0LXQtNCx0LUg0YPQvdC+0YHQsCAo0L3Qv9GALiBpX0NUUkwtWClcbtCU0L7QtNCw0ZjRgtC1IGNfINC30LAg0L3QsNGA0LXQtNCx0LUg0LrQvtC80LDQvdC00L3QvtCzINGA0LXQttC40LzQsCAo0L3Qv9GALiDRgV88RGVsPilcbtCU0L7QtNCw0ZjRgtC1ICcg0LfQsCDQuNC80LXQvdCwINC+0L/RhtC40ZjQsCAo0L3Qv9GALiAnc2hpZnR3aWR0aCcpIgotCi1sZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAi0KPQvdC10YHQuNGC0LUg0L/Rg9GCINC/0YDQtdGC0YDQsNCz0LUg0LfQsCDQtNCw0YLQvtGC0LXQutC1XG7QoNCw0LfQtNCy0L7RmNC40YLQtSDQt9Cw0YDQtdC30LjQvNCwINC40LzQtdC90LAg0LTQuNGA0LXQutGC0L7RgNC40ZjRg9C80LAuIgotCi1sZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAi0KPQvdC10YHQuNGC0LUg0LjQvNC10L3QsCDQtNCw0YLQvtGC0LXQutCwINGB0LAg0L7Qt9C90LDQutCw0LzQsFxu0KDQsNC30LTQstC+0ZjQuNGC0LUg0LfQsNGA0LXQt9C40LzQsCDQuNC80LXQvdCwLiIKLQotbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAi0KPQvdC10YHQuNGC0LUg0L3QvtCy0YMg0YjQuNGA0LjQvdGDINGC0LXQutGB0YLQsCAoMCDRgdC/0YDQtdGH0LDQstCwINC/0YDQtdC70L7QvCkiCi0KLWxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICLQmNC30LDQsdC10YDQuNGC0LUg0LLRgNGB0YLRgyDQtNCw0YLQvtGC0LXQutC1IgotCi1sZXQgbWVudXRyYW5zX25vX2ZpbGUgPSAiW9Cd0LXQvNCwINC00LDRgtC+0YLQtdC60LVdIgotCi0iIHZpbTogdHc9MCBrZXltYXA9c2VyYmN5cmlsLVVTCitzb3VyY2UgPHNmaWxlPjpwOmgvbWVudV9zcl9ycy51dGYtOC52aW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbQppbmRleCAxMzc5OGIwLi5mOTY4OTY0IDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vbmV0cndQbHVnaW4udmltCkBAIC0yMCw3ICsyMCw3IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF9uZXRyd1BsdWdpbiIpCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX25ldHJ3UGx1Z2luID0gInYxMzYiCitsZXQgZzpsb2FkZWRfbmV0cndQbHVnaW4gPSAidjEzOCIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnIHwgZWNobyAiKioqbmV0cncqKiogeW91IG5lZWQgdmltIHZlcnNpb24gNy4yIGZvciB0aGlzIHZlcnNpb24gb2YgbmV0cnciIHwgZWNob2hsIE5vbmUKICBmaW5pc2gKQEAgLTM1LDYgKzM1LDcgQEAKIGF1Z3JvdXAgRmlsZUV4cGxvcmVyCiAgYXUhCiAgYXUgQnVmRW50ZXIgKiBzaWxlbnQhIGNhbGwgczpMb2NhbEJyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCisgYXUgVmltRW50ZXIgKiBzaWxlbnQhIGNhbGwgczpWaW1FbnRlcihleHBhbmQoIjxhbWF0Y2g+IikpCiAgaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCiAgIGF1IEJ1ZkVudGVyIC4qIHNpbGVudCEgY2FsbCBzOkxvY2FsQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKICBlbmRpZgpAQCAtMTA5LDYgKzExMCwxMyBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6VmltRW50ZXI6IHt7ezIKK2Z1biEgczpWaW1FbnRlcihkaXJuYW1lKQorICB3aW5kbyBpZiBhOmRpcm5hbWUgIT0gZXhwYW5kKCIlIil8Y2FsbCBzOkxvY2FsQnJvd3NlKGV4cGFuZCgiJTpwIikpfGVuZGlmCisgIDF3aW5jbWQgdworZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIE5ldHJ3U3RhdHVzTGluZToge3t7MQogZnVuISBOZXRyd1N0YXR1c0xpbmUoKQogIiAgbGV0IGc6c3RsbXNnPSAiWGJ1Zm5yPSIudzpuZXRyd19leHBsb3JlX2J1Zm5yLiIgYnVmbnI9Ii5idWZucigiJSIpLiIgWGxpbmUjIi53Om5ldHJ3X2V4cGxvcmVfbGluZS4iIGxpbmUjIi5saW5lKCIuIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltIGIvcnVudGltZS9wbHVnaW4vdmltYmFsbFBsdWdpbi52aW0KaW5kZXggMTE5MmE2Yi4uYzVhY2M3YyAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vdmltYmFsbFBsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vdmltYmFsbFBsdWdpbi52aW0KQEAgLTEsNiArMSw2IEBACiAiIHZpbWJhbGxQbHVnaW4gOiBjb25zdHJ1Y3QgYSBmaWxlIGNvbnRhaW5pbmcgYm90aCBwYXRocyBhbmQgZmlsZXMKICIgQXV0aG9yOiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KLSIgQ29weXJpZ2h0OiAoYykgMjAwNC0yMDA5IGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgorIiBDb3B5cmlnaHQ6IChjKSAyMDA0LTIwMTAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCiAiICAgICAgICAgICAgVGhlIFZJTSBMSUNFTlNFIGFwcGxpZXMgdG8gVmltYmFsbC52aW0sIGFuZCBWaW1iYWxsLnR4dAogIiAgICAgICAgICAgIChzZWUgfGNvcHlyaWdodHwpIGV4Y2VwdCB1c2UgIlZpbWJhbGwiIGluc3RlYWQgb2YgIlZpbSIuCiAiICAgICAgICAgICAgTm8gd2FycmFudHksIGV4cHJlc3Mgb3IgaW1wbGllZC4KQEAgLTE2LDcgKzE2LDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGxQbHVnaW4iKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF92aW1iYWxsUGx1Z2luID0gInYzMCIKK2xldCBnOmxvYWRlZF92aW1iYWxsUGx1Z2luID0gInYzMSIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIApAQCAtMjcsNyArMjcsNyBAQAogY29tISAtbmE9MCAgICAgICAgICAgICAgICBWaW1iYWxsTGlzdAkJCWNhbGwgdmltYmFsbCNWaW1iYWxsKDApCiBjb20hIC1uYT0qIC1jb21wbGV0ZT1kaXIgIFJtVmltYmFsbAkJCQljYWxsIHZpbWJhbGwjU2F2ZVNldHRpbmdzKCl8Y2FsbCB2aW1iYWxsI1JtVmltYmFsbCg8Zi1hcmdzPil8Y2FsbCB2aW1iYWxsI1Jlc3RvcmVTZXR0aW5ncygpCiBhdSBTb3VyY2VDbWQgICoudmJhLmd6LCoudmJhLmJ6MiwqLnZiYS56aXAJCWNhbGwgdmltYmFsbCNEZWNvbXByZXNzKGV4cGFuZCgiPGFtYXRjaD4iKSl8Y2FsbCB2aW1iYWxsI1ZpbWJhbGwoMSkKLWF1IEJ1ZkVudGVyICAqLnZiYSwqLnZiYS5neiwqLnZiYS5iejIsKi52YmEuemlwCXNldGxvY2FsIGJ0PW5vZmlsZSBmbXI9W1tbLF1dXSBmZG09bWFya2VyfGlmICZmZiAhPSAndW5peCd8IHNldGxvY2FsIGZmPXVuaXh8ZW5kaWZ8Y2FsbCB2aW1iYWxsI1Nob3dNZXNnKDAsIlNvdXJjZSB0aGlzIGZpbGUgdG8gZXh0cmFjdCBpdCEgKDpzbyAlKSIpCithdSBCdWZFbnRlciAgKi52YmEsKi52YmEuZ3osKi52YmEuYnoyLCoudmJhLnppcAlzZXRsb2NhbCBidD1ub2ZpbGUgZm1yPVtbWyxdXV0gZmRtPW1hcmtlcnxpZiAmZmYgIT0gJ3VuaXgnfCBzZXRsb2NhbCBtYSBmZj11bml4IG5vbWEgfGVuZGlmfGNhbGwgdmltYmFsbCNTaG93TWVzZygwLCJTb3VyY2UgdGhpcyBmaWxlIHRvIGV4dHJhY3QgaXQhICg6c28gJSkiKQogCiAiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIiBSZXN0b3JhdGlvbiBBbmQgTW9kZWxpbmVzOiB7e3sxCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi96aXBQbHVnaW4udmltIGIvcnVudGltZS9wbHVnaW4vemlwUGx1Z2luLnZpbQppbmRleCBiODBlY2M2Li5mZjM4MjVlIDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi96aXBQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL3ppcFBsdWdpbi52aW0KQEAgLTIwLDcgKzIwLDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ppcFBsdWdpbiIpCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX3ppcFBsdWdpbiA9ICJ2MjIiCitsZXQgZzpsb2FkZWRfemlwUGx1Z2luID0gInYyMyIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgPSAmY3BvCiBzZXQgY3BvJnZpbQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2JnL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9iZy9tYWluLmFhcAppbmRleCAyY2NlYTg2Li5iYjM0YjlhIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2JnL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvYmcvbWFpbi5hYXAKQEAgLTM0LDkgKzM0LDkgQEAKICAgICAgICAgOmZldGNoIGJnX0JHLnppcAogICAgICAgICA6c3lzICRVTlpJUCBiZ19CRy56aXAKICAgICAgICAgOmRlbGV0ZSBiZ19CRy56aXAKLSAgICAgICAgOnN5cyAkVklNIGJnX0JHLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBiZ19CRy5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQotICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2JnX0JHLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBiZ19CRy5hZmYgLXUgTk9ORSAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBiZ19CRy5kaWMgLXUgTk9ORSAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfYmdfQkcudHh0IC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdiZ19CRy5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgYmdfQkcuYWZmIGJnX0JHLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2JnX0JHLm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2JyL2JyX0ZSLmRpZmYgYi9ydW50aW1lL3NwZWxsL2JyL2JyX0ZSLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJlYzcxMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvYnIvYnJfRlIuZGlmZgpAQCAtMCwwICsxLDEzIEBACisqKiogYnJfRlIub3JpZy5hZmYJMjAxMC0wNC0xNCAxODo0NDozNi4zNjU3MzEyNzEgKzAyMDAKKy0tLSBicl9GUi5hZmYJMjAxMC0wNC0xNCAxODo0MzozMS4wNjkxMzc0MzkgKzAyMDAKKyoqKioqKioqKioqKioqKgorKioqIDksMTQgKioqKgorLS0tIDksMTYgLS0tLQorICBTRVQgVVRGLTgKKyAgVFJZIGVzaWHDuW7DsXJ0b2xjZHVnbXBoYnlmdmt3ekVTSUHDmU7DkVJUT0xDRFVHTVBIQllGVktXWicKKyAgCisrIE1JRFdPUkQgJworKyAKKyAgUEZYIG0gWSAxCisgIFBGWCBtICAgMCAgICAgICAgICBtJyAgICAgICAgIFthZWhpb3V5XQorICAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvYnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2JyL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYTU5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2JyL21haW4uYWFwCkBAIC0wLDAgKzEsODYgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQnJldG9uIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gYnJfRlIuYWZmIGJyX0ZSLmRpYworCithbGw6ICRTUEVMTERJUi9ici5sYXRpbjEuc3BsICRTUEVMTERJUi9ici51dGYtOC5zcGwgLi4vUkVBRE1FX2JyLnR4dAorCiskU1BFTExESVIvYnIubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1sYXRpbjEiCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9iciBicl9GUiIgLWMgcQorCiskU1BFTExESVIvYnIudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPVVURi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvYnIgYnJfRlIiIC1jIHEKKworLi4vUkVBRE1FX2JyLnR4dCA6IHBhY2thZ2UtZGVzY3JpcHRpb24udHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZXh0ZW5zaW9ucy5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9lLWZpbGVzLzIyMDcvMworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gZGljdC1icl8wLjMub3h0CisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiticl9GUi5hZmYgYnJfRlIuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGRpY3QtYnJfMC4zLm94dAorICAgICAgICA6c3lzICRVTlpJUCBkaWN0LWJyXzAuMy5veHQKKyAgICAgICAgOmRlbGV0ZSBkaWN0LWJyXzAuMy5veHQKKyAgICAgICAgOmNvcHkgZGljdGlvbmFyaWVzL2JyX0ZSLmFmZiBicl9GUi5hZmYKKyAgICAgICAgOmNvcHkgZGljdGlvbmFyaWVzL2JyX0ZSLmRpYyBicl9GUi5kaWMKKyAgICAgICAgIyBUaGUgYnJfRlIuYWZmIGZpbGUgY29udGFpbnMgYSBCT00sIHJlbW92ZSBpdC4KKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9dXRmLTgiCisgICAgICAgICAgICAgICAgICAgIC1jICJlIGJyX0ZSLmFmZiIKKyAgICAgICAgICAgICAgICAgICAgLWMgInNldCBub2JvbWIgZmY9dW5peCIKKyAgICAgICAgICAgICAgICAgICAgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz11dGYtOCIKKyAgICAgICAgICAgICAgICAgICAgLWMgImUgYnJfRlIuZGljIgorICAgICAgICAgICAgICAgICAgICAtYyAic2V0IG5vYm9tYiBmZj11bml4IgorICAgICAgICAgICAgICAgICAgICAtYyAidXBkYXRlIiAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2JyX0ZSLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBicl9GUi5hZmYgYnJfRlIub3JpZy5hZmYKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdicl9GUi5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxicl9GUi5kaWZmCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkaWN0aW9uYXJpZXMvYnJfRlIuYWZmIGJyX0ZSLmFmZiA+YnJfRlIuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRpY3Rpb25hcmllcy9icl9GUi5kaWMgYnJfRlIuZGljID4+YnJfRlIuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggZGljdC1icl8wLjMub3h0CisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9kaWN0LWJyXzAuMy5veHQKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2RpY3Rpb25hcmllcy9icl9GUi5hZmYgYnJfRlIuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGJyX0ZSLmFmZiAuLi9icl9GUi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9kaWN0aW9uYXJpZXMvYnJfRlIuZGljIGJyX0ZSLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBicl9GUi5kaWMgLi4vYnJfRlIubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGRpY3QtYnJfMC4zLm94dAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2NhL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9jYS9tYWluLmFhcAppbmRleCAyMTgyZjI5Li44YmE4YzFhIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2NhL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvY2EvbWFpbi5hYXAKQEAgLTM2LDggKzM2LDggQEAKICAgICAgICAgOmZldGNoIGNhX0VTLnppcAogICAgICAgICA6c3lzICRVTlpJUCBjYV9FUy56aXAKICAgICAgICAgOmRlbGV0ZSBjYV9FUy56aXAKLSAgICAgICAgOnN5cyAkVklNIGNhX0VTLmFmZiAtYyAic2V0IGZmPXVuaXgiIC1jICJ1cGRhdGUiIC1jIHEKLSAgICAgICAgOnN5cyAkVklNIGNhX0VTLmRpYyAtYyAic2V0IGZmPXVuaXgiIC1jICJ1cGRhdGUiIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGNhX0VTLmFmZiAtdSBOT05FIC1jICJzZXQgZmY9dW5peCIgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICA6c3lzICRWSU0gY2FfRVMuZGljIC11IE5PTkUgLWMgInNldCBmZj11bml4IiAtYyAidXBkYXRlIiAtYyBxCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2NhX0VTLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBjYV9FUy5hZmYgY2FfRVMub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY2FfRVMub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3kvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwCmluZGV4IGNlNmNiODQuLjFjMWQyMGQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvY3kvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9jeS9tYWluLmFhcApAQCAtMzYsOSArMzYsOSBAQAogICAgICAgICA6ZmV0Y2ggY3lfR0IuemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGN5X0dCLnppcAogICAgICAgICA6ZGVsZXRlIGN5X0dCLnppcAotICAgICAgICA6c3lzICRWSU0gY3lfR0IuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKLSAgICAgICAgOnN5cyAkVklNIGN5X0dCLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBSRUFETUVfY3lfR0IudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGN5X0dCLmFmZiAtdSBOT05FIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGN5X0dCLmRpYyAtdSBOT05FIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIFJFQURNRV9jeV9HQi50eHQgLXUgTk9ORSAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2N5X0dCLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBjeV9HQi5hZmYgY3lfR0Iub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3lfR0Iub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2RlL21haW4uYWFwCmluZGV4IGI0Y2YzMjEuLjAxNWI5NTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9kZS9tYWluLmFhcApAQCAtMTMzLDcgKzEzMyw3IEBACiAKICAgICAgICAgOnByaW50ID4+ZGVfQVQuZGljCiAgICAgICAgICMgZGVsZXRlIHRoZSBmaXJzdCBsaW5lLCB0aGUgd29yZCBjb3VudAotICAgICAgICA6c3lzICRWSU0gZGVfREUuZGljIC1lIC1jIDFkZWxldGUgLWMgd3EKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgZGVfREUuZGljIC1lIC1jIDFkZWxldGUgLWMgd3EKICAgICAgICAgOmNhdCBkZV9ERS5kaWMgPj5kZV9BVC5kaWMKICAgICAgICAgOmRlbGV0ZSBkZV9ERS5kaWMKICAgICAgICAgOm1vdmUgZGVfREUuYWZmIGRlX0FULmFmZgpAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi8kWklQRklMRV9BVAogICAgICAgICAgICAgOnByaW50ID4+ZGVfQVQuZGljCiAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgZmlyc3QgbGluZSwgdGhlIHdvcmQgY291bnQKLSAgICAgICAgICAgIDpzeXMgLi4vJFZJTSBkZV9ERS5kaWMgLWUgLWMgMWRlbGV0ZSAtYyB3cQorICAgICAgICAgICAgOnN5cyAuLi8kVklNIC11IE5PTkUgZGVfREUuZGljIC1lIC1jIDFkZWxldGUgLWMgd3EKICAgICAgICAgICAgIDpjYXQgZGVfREUuZGljID4+ZGVfQVQuZGljCiAgICAgICAgICAgICA6ZGVsZXRlIGRlX0RFLmRpYwogICAgICAgICAgICAgOm1vdmUgZGVfREUuYWZmIGRlX0FULmFmZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lby9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZW8vbWFpbi5hYXAKaW5kZXggMTliNzU1NS4uMjgyYjViNyAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lby9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2VvL21haW4uYWFwCkBAIC0yMiw3ICsyMiw3IEBACiAuLi9SRUFETUVfZW8udHh0IDogUkVBRE1FX2VvX2wzLnR4dAogICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKICAgICAgICAgIyBmaXggbWlzc2luZyBuZXdsaW5lCi0gICAgICAgIDpzeXMgJFZJTSAkdGFyZ2V0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgd3EKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB3cSAkdGFyZ2V0CiAKICMKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VzL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9lcy9tYWluLmFhcAppbmRleCAzYTAzYmZmLi4yNDIxODM3IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VzL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZXMvbWFpbi5hYXAKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAgICAgOnByaW50IE5vIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBmb3IgZXNfTVggd29yZGxpc3QgPiEgUkVBRE1FX2VzX01YLnR4dAogICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV9NWAogICAgICAgICA6ZGVsZXRlICRaSVBGSUxFX01YCi0gICAgICAgIDpzeXMgJFZJTSAtZSAtYyAic2V0IGZmPXVuaXggfCB3cSIgZXNfTVguZGljCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZmY9dW5peCB8IHdxIiBlc19NWC5kaWMKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZXNfTVgub3JpZy5hZmYnKToKICAgICAgICAgICAgIDpjb3B5IGVzX01YLmFmZiBlc19NWC5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlc19NWC5vcmlnLmRpYycpOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwva3UvbWFpbi5hYXAKaW5kZXggMjAwZmIyZi4uOTg3ZTZkYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2t1L21haW4uYWFwCkBAIC0zNiw5ICszNiw5IEBACiAgICAgICAgIDpmZXRjaCBrdV9UUi56aXAKICAgICAgICAgOnN5cyAkVU5aSVAga3VfVFIuemlwCiAgICAgICAgIDpkZWxldGUga3VfVFIuemlwCi0gICAgICAgIDpzeXMgJFZJTSBrdV9UUi5hZmYgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQotICAgICAgICA6c3lzICRWSU0ga3VfVFIuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKLSAgICAgICAgOnN5cyAkVklNIFJFQURNRV9rdV9UUi50eHQgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0ga3VfVFIuYWZmIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0ga3VfVFIuZGljIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2t1X1RSLnR4dCAtdSBOT05FIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygna3VfVFIub3JpZy5hZmYnKToKICAgICAgICAgICAgIDpjb3B5IGt1X1RSLmFmZiBrdV9UUi5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdrdV9UUi5vcmlnLmRpYycpOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9sdi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbHYvbWFpbi5hYXAKaW5kZXggMTBjYWNkOC4uNDYwYmQyYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9sdi9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwCkBAIC0zNyw5ICszNyw5IEBACiAgICAgICAgIDpzeXMgJFVOWklQIGx2X0xWLnppcAogICAgICAgICA6ZGVsZXRlIGx2X0xWLnppcAogICAgICAgICA6ZGVsZXRlIGNoYW5nZWxvZy50eHQgZ3BsLnR4dCBsaW4tbHZfTFZfYWRkLnNoIHdpbi1sdl9MVl9hZGQuYmF0Ci0gICAgICAgIDpzeXMgJFZJTSBsdl9MVi5hZmYgLWUgLU4gLWMgIiVzL1xyLy8iIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBsdl9MVi5kaWMgLWUgLU4gLWMgIiVzL1xyLy8iIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBSRUFETUVfbHZfTFYudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGx2X0xWLmFmZiAtdSBOT05FIC1lIC1OIC1jICIlcy9cci8vIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbHZfTFYuZGljIC11IE5PTkUgLWUgLU4gLWMgIiVzL1xyLy8iIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfbHZfTFYudHh0IC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdsdl9MVi5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgbHZfTFYuYWZmIGx2X0xWLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2x2X0xWLm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tYWluLmFhcAppbmRleCBhMGUxZmUzLi4yNjljNzEwIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKQEAgLTUsOCArNSw4IEBACiAjIGFhcCBkaWZmICAgY3JlYXRlIGFsbCB0aGUgZGlmZiBmaWxlcwogCiAjICJodSIgaXMgYXQgdGhlIGVuZCwgYmVjYXVzZSBpdCB0YWtlcyBhIHZlcnkgbG9uZyB0aW1lLgotTEFORyA9IGFmIGFtIGJnIGNhIGNzIGN5IGRhIGRlIGVsIGVuIGVvIGVzIGZyIGZvIGdhIGdkIGdsIGhlIGhyIGlkIGl0IGt1Ci0gICAgICAgbGEgbHQgbHYgbWcgbWkgbXMgbmIgbmwgbm4gbnkgcGwgcHQgcm8gcnUgcncgc2sgc2wgc3Ygc3cKK0xBTkcgPSBhZiBhbSBiZyBiciBjYSBjcyBjeSBkYSBkZSBlbCBlbiBlbyBlcyBmciBmbyBnYSBnZCBnbCBoZSBociBpZCBpdCAKKyAgICAgICBrdSBsYSBsdCBsdiBtZyBtaSBtcyBuYiBubCBubiBueSBwbCBwdCBybyBydSBydyBzayBzbCBzdiBzdwogICAgICAgIHRldCB0aCB0bCB0biB1ayB5aSB6dSBodQogCiAjIFRPRE86CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21zL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tcy9tYWluLmFhcAppbmRleCA1NzE2YjNiLi4wOWJiM2QxIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL21zL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAKQEAgLTM2LDggKzM2LDggQEAKICAgICAgICAgOmZldGNoIG1zX01ZLnppcAogICAgICAgICA6c3lzICRVTlpJUCBtc19NWS56aXAKICAgICAgICAgOmRlbGV0ZSBtc19NWS56aXAKLSAgICAgICAgOnN5cyAkVklNIG1zX01ZLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBtc19NWS5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbXNfTVkuYWZmIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbXNfTVkuZGljIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtc19NWS5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgbXNfTVkuYWZmIG1zX01ZLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ21zX01ZLm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcAppbmRleCBiMmFkNjViLi4zZDA4ZmFmIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKQEAgLTY3LDEzICs2NywxMyBAQAogICAgICAgICA6ZmV0Y2ggJEJSX0ZOQU1FCiAgICAgICAgIDpzeXMgJFVOWklQICRCUl9GTkFNRQogICAgICAgICA6ZGVsZXRlICRCUl9GTkFNRQotICAgICAgICA6c3lzICRWSU0gUkVBRE1FX3B0X0JSLlRYVCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfcHRfQlIuVFhUIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQogICAgICAgICA6bW92ZSBSRUFETUVfcHRfQlIuVFhUIFJFQURNRV9wdF9CUi50eHQKIAogIyBWaW0gc2VlbXMgdG8gaWdub3JlIHRoZSBkb3RzIGZyb20gdGhlIHdvcmQgbGlzdC4KICMgUmVtb3Zpbmcgd29yZHMgd2l0aCBkb3QgdG8gYXZvaWQgbWlzYmVoYXZpb3VyLgotICAgICAgICA6c3lzICRWSU0gcHRfQlIuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgIi9cLi9kIiAtYyB1cGRhdGUgLWMgcQotICAgICAgICA6c3lzICRWSU0gcHRfQlIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIHB0X0JSLmRpYyAtdSBOT05FIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgIi9cLi9kIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gcHRfQlIuYWZmIC11IE5PTkUgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9CUi5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgcHRfQlIuYWZmIHB0X0JSLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X0JSLm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9hc20udmltIGIvcnVudGltZS9zeW50YXgvYXNtLnZpbQppbmRleCA0MDc1NmRlLi42YjhjZTFlIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9hc20udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2FzbS52aW0KQEAgLTMsNyArMyw5IEBACiAiIE1haW50YWluZXI6CUVyaWsgV29nbnNlbiA8ZXJpay53b2duc2VuQGdtYWlsLmNvbT4KICIJCVByZXZpb3VzIG1haW50YWluZXI6CiAiCQlLZXZpbiBEYWhsaGF1c2VuIDxrZGFobGhhdXNAeWFob28uY29tPgotIiBMYXN0IENoYW5nZToJMjAxMCBKYW4gOQorIiBMYXN0IENoYW5nZToJMjAxMCBBcHIgMTgKKworIiBUaGFua3MgdG8gT3JpIEF2dGFsaW9uIGZvciBmZWVkYmFjayBvbiB0aGUgY29tbWVudCBtYXJrZXJzIQogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2LjAgYW5kIGxhdGVyOiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTQ1LDggKzQ3LDE2IEBACiBzeW4gbWF0Y2ggaGV4TnVtYmVyCQkiMFt4WF1bMC05YS1mQS1GXVwrIgogc3luIG1hdGNoIGJpbk51bWJlcgkJIjBbYkJdWzAtMV0qIgogCi1zeW4gbWF0Y2ggYXNtQ29tbWVudAkJIiMuKiIKLXN5biByZWdpb24gYXNtQ29tbWVudAkJc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iCitzeW4ga2V5d29yZCBhc21Ub2RvCQljb250YWluZWQgVE9ETworCisiIEdBUyBzdXBwb3J0cyB2YXJpb3VzIGNvbW1lbnQgbWFya2VycyBhcyBkZXNjcmliZWQgaGVyZToKKyIgaHR0cDovL3NvdXJjZXdhcmUub3JnL2JpbnV0aWxzL2RvY3MtMi4xOS9hcy9Db21tZW50cy5odG1sCisiIEkgaGF2ZSBjb21tZW50ZWQgb3V0IHRoZSBBUk0gY29tbWVudCBtYXJrZXIgIkAiIGJ5IGRlZmF1bHQgYXMgSSB0aGluayBtb3JlCisiIHBlb3BsZSBhcmUgdXNpbmcgIkAiIHdpdGggdGhlIC50eXBlIGRpcmVjdGl2ZS4gU2VlCisiIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9iaW51dGlscy9kb2NzLTIuMTkvYXMvVHlwZS5odG1sCitzeW4gcmVnaW9uIGFzbUNvbW1lbnQJCXN0YXJ0PSIvXCoiIGVuZD0iXCovIiBjb250YWlucz1hc21Ub2RvCitzeW4gbWF0Y2ggYXNtQ29tbWVudAkJIlsjOyF8XS4qIiBjb250YWlucz1hc21Ub2RvCisiIHN5biBtYXRjaCBhc21Db21tZW50CQkiQC4qIiBjb250YWlucz1hc21Ub2RvCiAKIHN5biBtYXRjaCBhc21JbmNsdWRlCQkiXC5pbmNsdWRlIgogc3luIG1hdGNoIGFzbUNvbmQJCSJcLmlmIgpAQCAtNzUsNiArODUsNyBAQAogICBIaUxpbmsgYXNtU2VjdGlvbglTcGVjaWFsCiAgIEhpTGluayBhc21MYWJlbAlMYWJlbAogICBIaUxpbmsgYXNtQ29tbWVudAlDb21tZW50CisgIEhpTGluayBhc21Ub2RvCVRvZG8KICAgSGlMaW5rIGFzbURpcmVjdGl2ZQlTdGF0ZW1lbnQKIAogICBIaUxpbmsgYXNtSW5jbHVkZQlJbmNsdWRlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jYWJhbC52aW0gYi9ydW50aW1lL3N5bnRheC9jYWJhbC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE5MmFhOAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2NhYmFsLnZpbQpAQCAtMCwwICsxLDEzMSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CUhhc2tlbGwgQ2FiYWwgQnVpbGQgZmlsZQorIiBNYWludGFpbmVyOglWaW5jZW50IEJlcnRob3V4IDx0d2luc2lkZUBnbWFpbC5jb20+CisiIEZpbGUgVHlwZXM6CS5jYWJhbAorIiB2MS4zOiBVcGRhdGVkIHRvIHRoZSBsYXN0IHZlcnNpb24gb2YgY2FiYWwKKyIgICAgICAgQWRkZWQgbW9yZSBoaWdobGlnaHRpbmcgZm9yIGNhYmFsIGZ1bmN0aW9uLCB0cnVlL2ZhbHNlCisiICAgICAgIGFuZCB2ZXJzaW9uIG51bWJlci4gQWxzbyBhZGRlZCBtaXNzaW5nIGNvbW1lbnQgaGlnaGxpZ2h0aW5nLgorIiAgICAgICBDYWJhbCBrbm93biBjb21waWxlciBhcmUgaGlnaGxpZ2h0ZWQgdG9vLgorIgorIiBWMS4yOiBBZGRlZCBjcHAtb3B0aW9ucyB3aGljaCB3YXMgbWlzc2luZy4gRmVhdHVyZSBpbXBsZW1lbnRlZAorIiAgICAgICBieSBHSEMsIGZvdW5kIHdpdGggYSBHSEMgd2FybmluZywgYnV0IHVuZG9jdW1lbnRlZC4gCisiICAgICAgIFdoYXRldmVyLi4uCisiCisiIHYxLjE6IEZpeGVkIG9wZXJhdG9yIHByb2JsZW1zIGFuZCBhZGRlZCBmdGRldGVjdCBmaWxlCisiICAgICAgICh0aGFua3MgdG8gU2ViYXN0aWFuIFNjaHdhcnopCisiCisiIHYxLjA6IENhYmFsIHN5bnRheCBpbiB2aW1iYWxsIGZvcm1hdAorIiAgICAgICAodGhhbmtzIHRvIE1hZ251cyBUaGVybmluZykKKworIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitzeW4ga2V5d29yZAljYWJhbENhdGVnb3J5CUxpYnJhcnkgbGlicmFyeSBFeGVjdXRhYmxlIGV4ZWN1dGFibGUgRmxhZyBmbGFnCitzeW4ga2V5d29yZAljYWJhbENhdGVnb3J5CXNvdXJjZS1yZXBvc2l0b3J5IFNvdXJjZS1SZXBvc2l0b3J5CisKK3N5biBrZXl3b3JkICAgICBjYWJhbENvbmRpdGlvbmFsICAgIGlmIGVsc2UKK3N5biBtYXRjaCAgICAgICBjYWJhbE9wZXJhdG9yICAgICAgICImJlx8fHxcfCFcfD09XHw+PVx8PD0iCitzeW4ga2V5d29yZCAgICAgY2FiYWxGdW5jdGlvbiAgICAgICBvcyBhcmNoZSBpbXBsIGZsYWcKK3N5biBtYXRjaCAgICAgICBjYWJhbENvbW1lbnQgICAgLy0tLiokLworc3luIG1hdGNoICAgICAgIGNhYmFsVmVyc2lvbiAgICAiXGRcK1woLlwoXGRcKVwrXClcKyIKKworc3luIG1hdGNoICAgICAgIGNhYmFsVHJ1dGggICAgICAiXGN0cnVlIgorc3luIG1hdGNoICAgICAgIGNhYmFsVHJ1dGggICAgICAiXGNmYWxzZSIKKworc3luIG1hdGNoICAgICAgIGNhYmFsQ29tcGlsZXIgICAiXGNnaGMiCitzeW4gbWF0Y2ggICAgICAgY2FiYWxDb21waWxlciAgICJcY25oYyIKK3N5biBtYXRjaCAgICAgICBjYWJhbENvbXBpbGVyICAgIlxjeWhjIgorc3luIG1hdGNoICAgICAgIGNhYmFsQ29tcGlsZXIgICAiXGNodWdzIgorc3luIG1hdGNoICAgICAgIGNhYmFsQ29tcGlsZXIgICAiXGNoYmMiCitzeW4gbWF0Y2ggICAgICAgY2FiYWxDb21waWxlciAgICJcY2hlbGl1bSIKK3N5biBtYXRjaCAgICAgICBjYWJhbENvbXBpbGVyICAgIlxjamhjIgorc3luIG1hdGNoICAgICAgIGNhYmFsQ29tcGlsZXIgICAiXGNsaGMiCisKKworc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2F1dGhvciIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNicmFuY2giCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjYnVnLXJlcG9ydHMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjYnVpbGQtZGVwZW5kcyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNidWlsZC10b29scyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNidWlsZC10eXBlIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2J1aWxkYWJsZSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNjLXNvdXJjZXMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjY2FiYWwtdmVyc2lvbiIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNjYXRlZ29yeSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNjYy1vcHRpb25zIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2NvcHlyaWdodCIKK3N5biBtYXRjaCAgICAgICBjYWJhbFN0YXRlbWVudCAgIlxjY3BwLW9wdGlvbnMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZGF0YS1kaXIiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZGF0YS1maWxlcyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNkZWZhdWx0Igorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2Rlc2NyaXB0aW9uIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2V4ZWN1dGFibGUiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZXhwb3NlZC1tb2R1bGVzIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2V4cG9zZWQiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZXh0ZW5zaW9ucyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNleHRyYS1saWItZGlycyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNleHRyYS1saWJyYXJpZXMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZXh0cmEtc291cmNlLWZpbGVzIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2V4dHJhLXRtcC1maWxlcyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNmb3IgZXhhbXBsZSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNmcmFtZXdvcmtzIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2doYy1vcHRpb25zIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2doYy1wcm9mLW9wdGlvbnMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjZ2hjLXNoYXJlZC1vcHRpb25zIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2hvbWVwYWdlIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2hzLXNvdXJjZS1kaXJzIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2h1Z3Mtb3B0aW9ucyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNpbmNsdWRlLWRpcnMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjaW5jbHVkZXMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjaW5zdGFsbC1pbmNsdWRlcyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNsZC1vcHRpb25zIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2xpY2Vuc2UtZmlsZSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNsaWNlbnNlIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY2xvY2F0aW9uIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY21haW4taXMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjbWFpbnRhaW5lciIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNtb2R1bGUiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjbmFtZSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNuaGM5OC1vcHRpb25zIgorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY290aGVyLW1vZHVsZXMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjcGFja2FnZS11cmwiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjcGtnY29uZmlnLWRlcGVuZHMiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjc3RhYmlsaXR5Igorc3luIG1hdGNoCWNhYmFsU3RhdGVtZW50CSJcY3N1YmRpciIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGNzeW5vcHNpcyIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGN0YWciCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjdGVzdGVkLXdpdGgiCitzeW4gbWF0Y2gJY2FiYWxTdGF0ZW1lbnQJIlxjdHlwZSIKK3N5biBtYXRjaAljYWJhbFN0YXRlbWVudAkiXGN2ZXJzaW9uIgorCisiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCisiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKKyIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKK2lmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9jYWJhbF9zeW5faW5pdHMiKQorICBpZiB2ZXJzaW9uIDwgNTA4CisgICAgbGV0IGRpZF9jYWJhbF9zeW5faW5pdHMgPSAxCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KKyAgZWxzZQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorICBlbmRpZgorCisgIEhpTGluayBjYWJhbFZlcnNpb24gICAgICAgTnVtYmVyCisgIEhpTGluayBjYWJhbFRydXRoICAgICAgICAgQm9vbGVhbgorICBIaUxpbmsgY2FiYWxDb21tZW50ICAgICAgIENvbW1lbnQKKyAgSGlMaW5rIGNhYmFsU3RhdGVtZW50ICAgICBTdGF0ZW1lbnQKKyAgSGlMaW5rIGNhYmFsQ2F0ZWdvcnkgICAgICBUeXBlCisgIEhpTGluayBjYWJhbEZ1bmN0aW9uICAgICAgRnVuY3Rpb24KKyAgSGlMaW5rIGNhYmFsQ29uZGl0aW9uYWwgICBDb25kaXRpb25hbAorICBIaUxpbmsgY2FiYWxPcGVyYXRvciAgICAgIE9wZXJhdG9yCisgIEhpTGluayBjYWJhbENvbXBpbGVyICAgICAgQ29uc3RhbnQKKyAgZGVsY29tbWFuZCBIaUxpbmsKK2VuZGlmCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gImNhYmFsIgorCisiIHZpbTogdHM9OApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvY2hhaXNjcmlwdC52aW0gYi9ydW50aW1lL3N5bnRheC9jaGFpc2NyaXB0LnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTY0YmRiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvY2hhaXNjcmlwdC52aW0KQEAgLTAsMCArMSw5NCBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CUNoYWlTY3JpcHQKKyIgTWFpbnRhaW5lcjoJSmFzb24gVHVybmVyIDxsZWZ0aWN1cyAnYXQnIGdtYWlsIGNvbT4KKworIiBRdWl0IHdoZW4gYSAoY3VzdG9tKSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kCisKK3N5biBjYXNlIG1hdGNoCisKKyIgc3luY2luZyBtZXRob2QKK3N5biBzeW5jIGZyb21zdGFydAorCisiIFN0cmluZ3MKK3N5biByZWdpb24gY2hhaXNjcmlwdFN0cmluZyAgICAgICAgc3RhcnQ9KyIrIGVuZD0rIisgc2tpcD0rXFxcXFx8XFwiKyBjb250YWlucz1jaGFpc2NyaXB0U3BlY2lhbCxjaGFpc2NyaXB0RXZhbCxAU3BlbGwKKworIiBFc2NhcGUgY2hhcmFjdGVycworc3luIG1hdGNoICBjaGFpc2NyaXB0U3BlY2lhbCAgICAgICBjb250YWluZWQgIlxcW1xcYWJmbnJ0dlwnXCJdXHxcXFxkXHssM30iIAorCisiIFN0cmluZyBldmFscworc3luIHJlZ2lvbiBjaGFpc2NyaXB0RXZhbCAgICAgICAgICBjb250YWluZWQgc3RhcnQ9IiR7IiBlbmQ9In0iIAorIAorIiBpbnRlZ2VyIG51bWJlcgorc3luIG1hdGNoICBjaGFpc2NyaXB0TnVtYmVyICAgICAgICAiXDxcZFwrXD4iCisKKyIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCB3aXRoIGRvdCwgb3B0aW9uYWwgZXhwb25lbnQKK3N5biBtYXRjaCAgY2hhaXNjcmlwdEZsb2F0ICAgICAgICAgIlw8XGRcK1wuXGQqXCUoZVstK11cPVxkXCtcKVw9XD4iCisKKyIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCBzdGFydGluZyB3aXRoIGEgZG90LCBvcHRpb25hbCBleHBvbmVudAorc3luIG1hdGNoICBjaGFpc2NyaXB0RmxvYXQgICAgICAgICAiXC5cZFwrXCUoZVstK11cPVxkXCtcKVw9XD4iCisKKyIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCB3aXRob3V0IGRvdCwgd2l0aCBleHBvbmVudAorc3luIG1hdGNoICBjaGFpc2NyaXB0RmxvYXQgICAgICAgICAiXDxcZFwrZVstK11cPVxkXCtcPiIKKworIiBIZXggc3RyaW5ncworc3luIG1hdGNoICBjaGFpc2NyaXB0TnVtYmVyICAgICAgICAiXDwweFx4XCtcPiIKKworIiBCaW5hcnkgc3RyaW5ncworc3luIG1hdGNoICBjaGFpc2NyaXB0TnVtYmVyICAgICAgICAiXDwwYlswMV1cK1w+IgorCisiIFZhcmlvdXMgbGFuZ3VhZ2UgZmVhdHVyZXMKK3N5biBrZXl3b3JkIGNoYWlzY3JpcHRDb25kICAgICAgICAgaWYgZWxzZQorc3luIGtleXdvcmQgY2hhaXNjcmlwdFJlcGVhdCAgICAgICB3aGlsZSBmb3IgZG8KK3N5biBrZXl3b3JkIGNoYWlzY3JpcHRTdGF0ZW1lbnQgICAgYnJlYWsgY29udGludWUgcmV0dXJuCitzeW4ga2V5d29yZCBjaGFpc2NyaXB0RXhjZXB0aW9ucyAgIHRyeSBjYXRjaCB0aHJvdworCisiS2V5d29yZAorc3luIGtleXdvcmQgY2hhaXNjcmlwdEtleXdvcmQgICAgICBkZWYgdHJ1ZSBmYWxzZSBhdHRyCisKKyJCdWlsdCBpbiB0eXBlcworc3luIGtleXdvcmQgY2hhaXNjcmlwdFR5cGUgICAgICAgICBmdW4gdmFyCisKKyJCdWlsdCBpbiBmdW5jcywga2VlcCBpdCBzaW1wbGUKK3N5biBrZXl3b3JkIGNoYWlzY3JpcHRGdW5jICAgICAgICAgZXZhbCB0aHJvdworCisiTGV0J3MgdHJlYXQgYWxsIGJhY2t0aWNrIG9wZXJhdG9yIGZ1bmN0aW9uIGxvb2t1cHMgYXMgYnVpbHQgaW4gdG9vCitzeW4gcmVnaW9uICBjaGFpc2NyaXB0RnVuYyAgICAgICAgIG1hdGNoZ3JvdXA9Y2hhaXNjcmlwdEZ1bmMgc3RhcnQ9ImAiIGVuZD0iYCIKKworIiBBY2NvdW50IGZvciB0aGUgIlsxLi4xMF0iIHN5bnRheCwgdHJlYXRpbmcgaXQgYXMgYW4gb3BlcmF0b3IKKyIgSW50ZW50aW9uYWxseSBsZWF2aW5nIG91dCBhbGwgb2YgdGhlIG5vcm1hbCwgd2VsbCBrbm93biBvcGVyYXRvcnMKK3N5biBtYXRjaCAgIGNoYWlzY3JpcHRPcGVyYXRvciAgICAgIlwuXC4iCisKKyIgR3VhcmQgc2VwZXJhdG9yIGFzIGFuIG9wZXJhdG9yCitzeW4gbWF0Y2ggICBjaGFpc2NyaXB0T3BlcmF0b3IgICAgICI6IgorCisiIENvbW1lbnRzCitzeW4gbWF0Y2ggICBjaGFpc2NyaXB0Q29tbWVudCAgICAgICIvLy4qJCIgY29udGFpbnM9QFNwZWxsCitzeW4gcmVnaW9uICBjaGFpc2NyaXB0Q29tbWVudCAgICAgIG1hdGNoZ3JvdXA9Y2hhaXNjcmlwdENvbW1lbnQgc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iIGNvbnRhaW5zPUBTcGVsbAorCisKKworaGkgZGVmIGxpbmsgY2hhaXNjcmlwdEV4Y2VwdGlvbnMJRXhjZXB0aW9uCitoaSBkZWYgbGluayBjaGFpc2NyaXB0S2V5d29yZAkJS2V5d29yZAoraGkgZGVmIGxpbmsgY2hhaXNjcmlwdFN0YXRlbWVudAkJU3RhdGVtZW50CitoaSBkZWYgbGluayBjaGFpc2NyaXB0UmVwZWF0CQlSZXBlYXQKK2hpIGRlZiBsaW5rIGNoYWlzY3JpcHRTdHJpbmcJCVN0cmluZworaGkgZGVmIGxpbmsgY2hhaXNjcmlwdE51bWJlcgkJTnVtYmVyCitoaSBkZWYgbGluayBjaGFpc2NyaXB0RmxvYXQJCUZsb2F0CitoaSBkZWYgbGluayBjaGFpc2NyaXB0T3BlcmF0b3IJCU9wZXJhdG9yCitoaSBkZWYgbGluayBjaGFpc2NyaXB0Q29uc3RhbnQJCUNvbnN0YW50CitoaSBkZWYgbGluayBjaGFpc2NyaXB0Q29uZAkJQ29uZGl0aW9uYWwKK2hpIGRlZiBsaW5rIGNoYWlzY3JpcHRGdW5jdGlvbgkJRnVuY3Rpb24KK2hpIGRlZiBsaW5rIGNoYWlzY3JpcHRDb21tZW50CQlDb21tZW50CitoaSBkZWYgbGluayBjaGFpc2NyaXB0VG9kbwkJVG9kbworaGkgZGVmIGxpbmsgY2hhaXNjcmlwdEVycm9yCQlFcnJvcgoraGkgZGVmIGxpbmsgY2hhaXNjcmlwdFNwZWNpYWwJCVNwZWNpYWxDaGFyCitoaSBkZWYgbGluayBjaGFpc2NyaXB0RnVuYwkJSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgY2hhaXNjcmlwdFR5cGUJCVR5cGUKK2hpIGRlZiBsaW5rIGNoYWlzY3JpcHRFdmFsCSAgICAgICAgU3BlY2lhbAorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJjaGFpc2NyaXB0IgorCisiIHZpbTogbm93cmFwIHN3PTIgc3RzPTIgdHM9OCBub2V0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kZWJjaGFuZ2Vsb2cudmltIGIvcnVudGltZS9zeW50YXgvZGViY2hhbmdlbG9nLnZpbQppbmRleCAwNDBkNDhkLi5lODA4YzhmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kZWJjaGFuZ2Vsb2cudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW0KQEAgLTMsOCArMyw4IEBACiAiIE1haW50YWluZXI6ICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgogIiBGb3JtZXIgTWFpbnRhaW5lcnM6IEdlcmZyaWVkIEZ1Y2hzIDxhbGZpZUBpc3Qub3JnPgogIiAgICAgICAgICAgICAgICAgICAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAyMDA5IEp1biAwNQotIiBVUkw6IGh0dHA6Ly9naXQuZGViaWFuLm9yZy8/cD1wa2ctdmltL3ZpbS5naXQ7YT1ibG9iX3BsYWluO2Y9cnVudGltZS9zeW50YXgvZGViY2hhbmdlbG9nLnZpbTtoYj1kZWJpYW4KKyIgTGFzdCBDaGFuZ2U6IDIwMTAgTWF5IDA2CisiIFVSTDogaHR0cDovL2hnLmRlYmlhbi5vcmcvaGcvcGtnLXZpbS92aW0vcmF3LWZpbGUvdGlwL3J1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW0KIAogIiBTdGFuZGFyZCBzeW50YXggaW5pdGlhbGl6YXRpb24KIGlmIHZlcnNpb24gPCA2MDAKQEAgLTE5LDcgKzE5LDcgQEAKICIgRGVmaW5lIHNvbWUgY29tbW9uIGV4cHJlc3Npb25zIHdlIGNhbiB1c2UgbGF0ZXIgb24KIHN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dOYW1lCWNvbnRhaW5lZCAiXltbOmFsbnVtOl1dW1s6YWxudW06XS4rLV1cKyAiCiBzeW4gbWF0Y2ggZGViY2hhbmdlbG9nVXJnZW5jeQljb250YWluZWQgIjsgdXJnZW5jeT1cKGxvd1x8bWVkaXVtXHxoaWdoXHxjcml0aWNhbFx8ZW1lcmdlbmN5XClcKCBcUy4qXClcPSIKLXN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dUYXJnZXQJY29udGFpbmVkICJcdiAlKGZyb3plbnx1bnN0YWJsZXwlKHRlc3Rpbmd8JShvbGQpPXN0YWJsZSklKC1wcm9wb3NlZC11cGRhdGVzfC1zZWN1cml0eSk9fGV4cGVyaW1lbnRhbHwlKGV0Y2h8bGVubnkpLSUoYmFja3BvcnRzfHZvbGF0aWxlKXwlKGRhcHBlcnxoYXJkeXxpbnRyZXBpZHxqYXVudHl8a2FybWljKSUoLSUoc2VjdXJpdHl8cHJvcG9zZWR8dXBkYXRlc3xiYWNrcG9ydHN8Y29tbWVyY2lhbHxwYXJ0bmVyKSk9KSsiCitzeW4gbWF0Y2ggZGViY2hhbmdlbG9nVGFyZ2V0CWNvbnRhaW5lZCAiXHYgJShmcm96ZW58dW5zdGFibGV8JSh0ZXN0aW5nfCUob2xkKT1zdGFibGUpJSgtcHJvcG9zZWQtdXBkYXRlc3wtc2VjdXJpdHkpPXxleHBlcmltZW50YWx8JShldGNofGxlbm55KS0lKGJhY2twb3J0c3x2b2xhdGlsZSl8JShkYXBwZXJ8aGFyZHl8amF1bnR5fGthcm1pY3xsdWNpZHxtYXZlcmljayklKC0lKHNlY3VyaXR5fHByb3Bvc2VkfHVwZGF0ZXN8YmFja3BvcnRzfGNvbW1lcmNpYWx8cGFydG5lcikpPSkrIgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ1ZlcnNpb24JY29udGFpbmVkICIoLlx7LX0pIgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ0Nsb3Nlcwljb250YWluZWQgImNsb3NlczpcX3MqXChidWdcKVw9I1w9XF9zXD1cZFwrXCgsXF9zKlwoYnVnXClcPSNcPVxfc1w9XGRcK1wpKiIKIHN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dMUAljb250YWluZWQgIlxjbHA6XHNcKyNcZFwrXCgsXHMqI1xkXCtcKSoiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kZWJjb250cm9sLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCmluZGV4IGU4ODZmMDEuLjczNDA3MzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCkBAIC0xLDE0ICsxLDEwIEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJRGViaWFuIGNvbnRyb2wgZmlsZXMKKyIgTGFuZ3VhZ2U6ICAgIERlYmlhbiBjb250cm9sIGZpbGVzCiAiIE1haW50YWluZXI6ICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgogIiBGb3JtZXIgTWFpbnRhaW5lcnM6IEdlcmZyaWVkIEZ1Y2hzIDxhbGZpZUBpc3Qub3JnPgogIiAgICAgICAgICAgICAgICAgICAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAyMDA5IEp1bHkgMTQKLSIgVVJMOiBodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvZnRwbHVnaW4vZGViY29udHJvbC52aW07aGI9ZGViaWFuCi0KLSIgQ29tbWVudHMgYXJlIHZlcnkgd2VsY29tZSAtIGJ1dCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IGFyZSBjb21tZW50aW5nIG9uCi0iIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIGZpbGUuCi0iIFNQQU0gaXMgX05PVF8gd2VsY29tZSAtIGJlIHJlYWR5IHRvIGJlIHJlcG9ydGVkIQorIiBMYXN0IENoYW5nZTogMjAwOSBBdWcgMTcKKyIgVVJMOiBodHRwOi8vaGcuZGViaWFuLm9yZy9oZy9wa2ctdmltL3ZpbS9yYXctZmlsZS90aXAvcnVudGltZS9zeW50YXgvZGViY29udHJvbC52aW0KIAogIiBTdGFuZGFyZCBzeW50YXggaW5pdGlhbGl6YXRpb24KIGlmIHZlcnNpb24gPCA2MDAKQEAgLTI4LDcgKzI0LDcgQEAKIHN5biBtYXRjaCBkZWJDb250cm9sU3BhY2UgIiAiCiAKICIgRGVmaW5lIHNvbWUgY29tbW9uIGV4cHJlc3Npb25zIHdlIGNhbiB1c2UgbGF0ZXIgb24KLXN5biBtYXRjaCBkZWJjb250cm9sQXJjaGl0ZWN0dXJlIGNvbnRhaW5lZCAiXChhbGxcfGFueVx8YWxwaGFcfGFtZDY0XHxhcm1cKGVbYmxdXClcPVx8YXZyMzJcfGhwcGFcfGkzODZcfGlhNjRcfG0zMnJcfG02OGtcfG1pcHNlbFx8bWlwc1x8cG93ZXJwY1x8cHBjNjRcfHMzOTB4XD1cfHNoWzM0XVwoZWJcKVw9XHxzaFx8c3BhcmM2NFx8c3BhcmNcfGh1cmQtaTM4Nlx8a2ZyZWVic2QtXChpMzg2XHxhbWQ2NFx8Z251XClcfGtuZXRic2QtaTM4Nlx8bmV0YnNkLVwoYWxwaGFcfGkzODZcKVwpIgorc3luIG1hdGNoIGRlYmNvbnRyb2xBcmNoaXRlY3R1cmUgY29udGFpbmVkICJcJShhbGxcfGFueVx8YWxwaGFcfGFtZDY0XHxhcm1cJShlW2JsXVwpXD1cfGF2cjMyXHxocHBhXHxpMzg2XHxpYTY0XHxscGlhXHxtMzJyXHxtNjhrXHxtaXBzXCUoZWxcKVw9XHxwb3dlcnBjXHxwcGM2NFx8czM5MHhcPVx8c2hbMzRdXChlYlwpXD1cfHNoXHxzcGFyY1wlKDY0XClcPVx8aHVyZC1pMzg2XHxrZnJlZWJzZC1cJShpMzg2XHxhbWQ2NFx8Z251XClcfGtuZXRic2QtaTM4Nlx8a29wZW5zb2xhcmlzLWkzODZcfG5ldGJzZC1cJShhbHBoYVx8aTM4NlwpXCkiCiBzeW4gbWF0Y2ggZGViY29udHJvbE5hbWUgY29udGFpbmVkICJbYS16MC05XVthLXowLTkrLi1dXCsiCiBzeW4gbWF0Y2ggZGViY29udHJvbFByaW9yaXR5IGNvbnRhaW5lZCAiXChleHRyYVx8aW1wb3J0YW50XHxvcHRpb25hbFx8cmVxdWlyZWRcfHN0YW5kYXJkXCkiCiBzeW4gbWF0Y2ggZGViY29udHJvbFNlY3Rpb24gY29udGFpbmVkICJcdigoY29udHJpYnxub24tZnJlZXxub24tVVMvbWFpbnxub24tVVMvY29udHJpYnxub24tVVMvbm9uLWZyZWV8cmVzdHJpY3RlZHx1bml2ZXJzZXxtdWx0aXZlcnNlKS8pPyhhZG1pbnxjbGktbW9ub3xjb21tfGRhdGFiYXNlfGRlYmlhbi1pbnN0YWxsZXJ8ZGVidWd8ZGV2ZWx8ZG9jfGVkaXRvcnN8ZWxlY3Ryb25pY3N8ZW1iZWRkZWR8Zm9udHN8Z2FtZXN8Z25vbWV8Z251c3RlcHxnbnUtcnxncmFwaGljc3xoYW1yYWRpb3xoYXNrZWxsfGh0dHBkfGludGVycHJldGVyc3xqYXZhfGtkZXxrZXJuZWx8bGlic3xsaWJkZXZlbHxsaXNwfGxvY2FsaXphdGlvbnxtYWlsfG1hdGh8bWlzY3xuZXR8bmV3c3xvY2FtbHxvbGRsaWJzfG90aGVyb3Nmc3xwZXJsfHBocHxweXRob258cnVieXxzY2llbmNlfHNoZWxsc3xzb3VuZHx0ZXh0fHRleHx1dGlsc3x2Y3N8dmlkZW98d2VifHgxMXx4ZmNlfHpvcGUpIgpAQCAtNTMsNyArNDksNyBAQAogc3luIGNhc2UgaWdub3JlCiAKICIgTGlzdCBvZiBhbGwgbGVnYWwga2V5cwotc3luIG1hdGNoIGRlYmNvbnRyb2xLZXkgY29udGFpbmVkICJeXCUoU291cmNlXHxQYWNrYWdlXHxTZWN0aW9uXHxQcmlvcml0eVx8XCUoWFNCQy1PcmlnaW5hbC1cKVw9TWFpbnRhaW5lclx8VXBsb2FkZXJzXHxCdWlsZC1cJShDb25mbGljdHNcfERlcGVuZHNcKVwlKC1JbmRlcFwpXD1cfFN0YW5kYXJkcy1WZXJzaW9uXHxcJShQcmUtXClcPURlcGVuZHNcfFJlY29tbWVuZHNcfFN1Z2dlc3RzXHxQcm92aWRlc1x8UmVwbGFjZXNcfENvbmZsaWN0c1x8RW5oYW5jZXNcfEVzc2VudGlhbFx8QXJjaGl0ZWN0dXJlXHxEZXNjcmlwdGlvblx8QnVnc1x8T3JpZ2luXHxYW1NCXS1QeXRob24tVmVyc2lvblx8SG9tZXBhZ2VcfFwoWFMtXClcPVZjcy1cKEJyb3dzZXJcfEFyY2hcfEJ6clx8Q3ZzXHxEYXJjc1x8R2l0XHxIZ1x8TXRuXHxTdm5cKVx8WEMtUGFja2FnZS1UeXBlXHxcJShYUy1cKVw9RE0tVXBsb2FkLUFsbG93ZWRcKTogKiIKK3N5biBtYXRjaCBkZWJjb250cm9sS2V5IGNvbnRhaW5lZCAiXlwlKFNvdXJjZVx8UGFja2FnZVx8U2VjdGlvblx8UHJpb3JpdHlcfFwlKFhTQkMtT3JpZ2luYWwtXClcPU1haW50YWluZXJcfFVwbG9hZGVyc1x8QnVpbGQtXCUoQ29uZmxpY3RzXHxEZXBlbmRzXClcJSgtSW5kZXBcKVw9XHxTdGFuZGFyZHMtVmVyc2lvblx8XCUoUHJlLVwpXD1EZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVuaGFuY2VzXHxCcmVha3NcfEVzc2VudGlhbFx8QXJjaGl0ZWN0dXJlXHxEZXNjcmlwdGlvblx8QnVnc1x8T3JpZ2luXHxYW1NCXS1QeXRob24tVmVyc2lvblx8SG9tZXBhZ2VcfFwoWFMtXClcPVZjcy1cKEJyb3dzZXJcfEFyY2hcfEJ6clx8Q3ZzXHxEYXJjc1x8R2l0XHxIZ1x8TXRuXHxTdm5cKVx8WEMtUGFja2FnZS1UeXBlXHxcJShYUy1cKVw9RE0tVXBsb2FkLUFsbG93ZWRcKTogKiIKIAogIiBGaWVsZHMgZm9yIHdoaWNoIHdlIGRvIHN0cmljdCBzeW50YXggY2hlY2tpbmcKIHN5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeQXJjaGl0ZWN0dXJlIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbEFyY2hpdGVjdHVyZSxkZWJjb250cm9sU3BhY2Ugb25lbGluZQpAQCAtNzAsNyArNjYsNyBAQAogCiAiIENhdGNoLWFsbCBmb3IgdGhlIG90aGVyIGxlZ2FsIGZpZWxkcwogc3luIHJlZ2lvbiBkZWJjb250cm9sRmllbGQgc3RhcnQ9Il5cJShcJShYU0JDLU9yaWdpbmFsLVwpXD1NYWludGFpbmVyXHxTdGFuZGFyZHMtVmVyc2lvblx8RXNzZW50aWFsXHxCdWdzXHxPcmlnaW5cfFhbU0JdLVB5dGhvbi1WZXJzaW9uXHxcJShYUy1cKVw9VmNzLU10blwpOiIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xWYXJpYWJsZSxkZWJjb250cm9sRW1haWwgb25lbGluZQotc3luIHJlZ2lvbiBkZWJjb250cm9sTXVsdGlGaWVsZCBzdGFydD0iXlwlKEJ1aWxkLVwlKENvbmZsaWN0c1x8RGVwZW5kc1wpXCUoLUluZGVwXClcPVx8XCUoUHJlLVwpXD1EZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVuaGFuY2VzXHxVcGxvYWRlcnNcfERlc2NyaXB0aW9uXCk6IiBza2lwPSJeICIgZW5kPSJeJCJtZT1zLTEgZW5kPSJeW14gI10ibWU9cy0xIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbEVtYWlsLGRlYmNvbnRyb2xWYXJpYWJsZSxkZWJjb250cm9sQ29tbWVudAorc3luIHJlZ2lvbiBkZWJjb250cm9sTXVsdGlGaWVsZCBzdGFydD0iXlwlKEJ1aWxkLVwlKENvbmZsaWN0c1x8RGVwZW5kc1wpXCUoLUluZGVwXClcPVx8XCUoUHJlLVwpXD1EZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVuaGFuY2VzXHxCcmVha3NcfFVwbG9hZGVyc1x8RGVzY3JpcHRpb25cKToiIHNraXA9Il4gIiBlbmQ9Il4kIm1lPXMtMSBlbmQ9Il5bXiAjXSJtZT1zLTEgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sRW1haWwsZGViY29udHJvbFZhcmlhYmxlLGRlYmNvbnRyb2xDb21tZW50CiAKICIgQXNzb2NpYXRlIG91ciBtYXRjaGVzIGFuZCByZWdpb25zIHdpdGggcHJldHR5IGNvbG91cnMKIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9kZWJjb250cm9sX3N5bl9pbml0cyIpCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kZWJzb3VyY2VzLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltCmluZGV4IDUyY2U2ZDcuLmJkNTM5ODEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZTogICAgIERlYmlhbiBzb3VyY2VzLmxpc3QKICIgTWFpbnRhaW5lcjogICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgogIiBGb3JtZXIgTWFpbnRhaW5lcjogTWF0dGhpanMgTW9obG1hbm4gPG1hdHRoaWpzQGNhY2hvbG9uZy5ubD4KLSIgTGFzdCBDaGFuZ2U6IDIwMDkgQXByIDE3Ci0iIFVSTDogaHR0cDovL2dpdC5kZWJpYW4ub3JnLz9wPXBrZy12aW0vdmltLmdpdDthPWJsb2JfcGxhaW47Zj1ydW50aW1lL3N5bnRheC9kZWJzb3VyY2VzLnZpbTtoYj1kZWJpYW4KKyIgTGFzdCBDaGFuZ2U6IDIwMTAgTWF5IDA2CisiIFVSTDogaHR0cDovL2hnLmRlYmlhbi5vcmcvaGcvcGtnLXZpbS92aW0vcmF3LWZpbGUvdGlwL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltCiAKICIgU3RhbmRhcmQgc3ludGF4IGluaXRpYWxpemF0aW9uCiBpZiB2ZXJzaW9uIDwgNjAwCkBAIC0yMyw3ICsyMyw3IEBACiAKICIgTWF0Y2ggdXJpJ3MKIHN5biBtYXRjaCBkZWJzb3VyY2VzVXJpICAgICAgICAgICAgK1woaHR0cDovL1x8ZnRwOi8vXHxbcnNdc2g6Ly9cfGRlYnRvcnJlbnQ6Ly9cfFwoY2Ryb21cfGNvcHlcfGZpbGVcKTpcKVteJyAJPD4iXVwrKwotc3luIG1hdGNoIGRlYnNvdXJjZXNEaXN0cktleXdvcmQgICArXChbWzphbG51bTpdXy4vXSpcKVwoZXRjaFx8bGVubnlcfHNxdWVlemVcfFwob2xkXClcPXN0YWJsZVx8dGVzdGluZ1x8dW5zdGFibGVcfHNpZFx8ZXhwZXJpbWVudGFsXHxkYXBwZXJcfGhhcmR5XHxpbnRyZXBpZFx8amF1bnR5XHxrYXJtaWNcKVwoWy1bOmFsbnVtOl1fLi9dKlwpKworc3luIG1hdGNoIGRlYnNvdXJjZXNEaXN0cktleXdvcmQgICArXChbWzphbG51bTpdXy4vXSpcKVwoZXRjaFx8bGVubnlcfHNxdWVlemVcfFwob2xkXClcPXN0YWJsZVx8dGVzdGluZ1x8dW5zdGFibGVcfHNpZFx8cmMtYnVnZ3lcfGV4cGVyaW1lbnRhbFx8ZGFwcGVyXHxoYXJkeVx8amF1bnR5XHxrYXJtaWNcfGx1Y2lkXHxtYXZlcmlja1wpXChbLVs6YWxudW06XV8uL10qXCkrCiAKICIgQXNzb2NpYXRlIG91ciBtYXRjaGVzIGFuZCByZWdpb25zIHdpdGggcHJldHR5IGNvbG91cnMKIGhpIGRlZiBsaW5rIGRlYnNvdXJjZXNMaW5lICAgICAgICAgICAgRXJyb3IKQEAgLTMzLDUgKzMzLDMgQEAKIGhpIGRlZiBsaW5rIGRlYnNvdXJjZXNVcmkgICAgICAgICAgICAgQ29uc3RhbnQKIAogbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZGVic291cmNlcyIKLQotIiB2aW06IHRzPTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2phdmEudmltIGIvcnVudGltZS9zeW50YXgvamF2YS52aW0KaW5kZXggMThlNDUzMi4uZDExYWZhOCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvamF2YS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvamF2YS52aW0KQEAgLTEsOCArMSw3IEBACi0iIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZTogICAgIEphdmEKLSIgTWFpbnRhaW5lcjogICBDbGF1ZGlvIEZsZWluZXIgPGNsYXVkaW9AZmxlaW5lci5jb20+CisiIFZpbSBzeW50YXggZmlsZSAiIExhbmd1YWdlOgkgIEphdmEKKyIgTWFpbnRhaW5lcjoJQ2xhdWRpbyBGbGVpbmVyIDxjbGF1ZGlvQGZsZWluZXIuY29tPgogIiBVUkw6CQlodHRwOi8vd3d3LmZsZWluZXIuY29tL3ZpbS9zeW50YXgvamF2YS52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDA5IE1hciAxNAorIiBMYXN0IENoYW5nZToJMjAxMCBNYXJjaCAyMwogCiAiIFBsZWFzZSBjaGVjayA6aGVscCBqYXZhLnZpbSBmb3IgY29tbWVudHMgb24gc29tZSBvZiB0aGUgb3B0aW9ucyBhdmFpbGFibGUuCiAKQEAgLTU5LDggKzU4LDggQEAKIHN5biBrZXl3b3JkIGphdmFDbGFzc0RlY2wJZW51bQogc3luIG1hdGNoICAgamF2YUNsYXNzRGVjbAkiXmNsYXNzXD4iCiBzeW4gbWF0Y2ggICBqYXZhQ2xhc3NEZWNsCSJbXi5dXHMqXDxjbGFzc1w+Im1zPXMrMQotc3luIG1hdGNoICAgamF2YUFubm90YXRpb24gICAgICAiQFwoW18kYS16QS1aXVtfJGEtekEtWjAtOV0qXC5cKSpbXyRhLXpBLVpdW18kYS16QS1aMC05XSpcPiIKLXN5biBtYXRjaCAgIGphdmFDbGFzc0RlY2wgICAgICAgIkBpbnRlcmZhY2VcPiIKK3N5biBtYXRjaCAgIGphdmFBbm5vdGF0aW9uCSJAXChbXyRhLXpBLVpdW18kYS16QS1aMC05XSpcLlwpKltfJGEtekEtWl1bXyRhLXpBLVowLTldKlw+Igorc3luIG1hdGNoICAgamF2YUNsYXNzRGVjbAkiQGludGVyZmFjZVw+Igogc3luIGtleXdvcmQgamF2YUJyYW5jaAkJYnJlYWsgY29udGludWUgbmV4dGdyb3VwPWphdmFVc2VyTGFiZWxSZWYgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggICBqYXZhVXNlckxhYmVsUmVmCSJca1wrIiBjb250YWluZWQKIHN5biBtYXRjaCAgIGphdmFWYXJBcmcJCSJcLlwuXC4iCkBAIC02OSw3ICs2OCw3IEBACiBpZiBleGlzdHMoImphdmFfaGlnaGxpZ2h0X2phdmFfbGFuZ19pZHMiKQogICBsZXQgamF2YV9oaWdobGlnaHRfYWxsPTEKIGVuZGlmCi1pZiBleGlzdHMoImphdmFfaGlnaGxpZ2h0X2FsbCIpICB8fCBleGlzdHMoImphdmFfaGlnaGxpZ2h0X2phdmEiKSAgfHwgZXhpc3RzKCJqYXZhX2hpZ2hsaWdodF9qYXZhX2xhbmciKQoraWYgZXhpc3RzKCJqYXZhX2hpZ2hsaWdodF9hbGwiKSAgfHwgZXhpc3RzKCJqYXZhX2hpZ2hsaWdodF9qYXZhIikgIHx8IGV4aXN0cygiamF2YV9oaWdobGlnaHRfamF2YV9sYW5nIikgCiAgICIgamF2YS5sYW5nLioKICAgc3luIG1hdGNoIGphdmFMYW5nQ2xhc3MgIlw8U3lzdGVtXD4iCiAgIHN5biBrZXl3b3JkIGphdmFSX0phdmFMYW5nIE5lZ2F0aXZlQXJyYXlTaXplRXhjZXB0aW9uIEFycmF5U3RvcmVFeGNlcHRpb24gSWxsZWdhbFN0YXRlRXhjZXB0aW9uIFJ1bnRpbWVFeGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gQXJpdGhtZXRpY0V4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gRW51bUNvbnN0YW50Tm90UHJlc2VudEV4Y2VwdGlvbiBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIElsbGVnYWxUaHJlYWRTdGF0ZUV4Y2VwdGlvbiBOdW1iZXJGb3JtYXRFeGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gVHlwZU5vdFByZXNlbnRFeGNlcHRpb24gU2VjdXJpdHlFeGNlcHRpb24KQEAgLTExMCwxNSArMTA5LDE1IEBACiAKIGlmIGV4aXN0cygiamF2YV9zcGFjZV9lcnJvcnMiKQogICBpZiAhZXhpc3RzKCJqYXZhX25vX3RyYWlsX3NwYWNlX2Vycm9yIikKLSAgICBzeW4gbWF0Y2ggICBqYXZhU3BhY2VFcnJvciAgIlxzXCskIgorICAgIHN5biBtYXRjaAlqYXZhU3BhY2VFcnJvcgkiXHNcKyQiCiAgIGVuZGlmCiAgIGlmICFleGlzdHMoImphdmFfbm9fdGFiX3NwYWNlX2Vycm9yIikKLSAgICBzeW4gbWF0Y2ggICBqYXZhU3BhY2VFcnJvciAgIiBcK1x0Im1lPWUtMQorICAgIHN5biBtYXRjaAlqYXZhU3BhY2VFcnJvcgkiIFwrXHQibWU9ZS0xCiAgIGVuZGlmCiBlbmRpZgogCi1zeW4gcmVnaW9uICBqYXZhTGFiZWxSZWdpb24gICAgIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YUxhYmVsIHN0YXJ0PSJcPGNhc2VcPiIgbWF0Y2hncm91cD1OT05FIGVuZD0iOiIgY29udGFpbnM9amF2YU51bWJlcixqYXZhQ2hhcmFjdGVyCi1zeW4gbWF0Y2ggICBqYXZhVXNlckxhYmVsICAgICAgICJeXHMqW18kYS16QS1aXVtfJGEtekEtWjAtOV9dKlxzKjoiaGU9ZS0xIGNvbnRhaW5zPWphdmFMYWJlbAorc3luIHJlZ2lvbiAgamF2YUxhYmVsUmVnaW9uCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YUxhYmVsIHN0YXJ0PSJcPGNhc2VcPiIgbWF0Y2hncm91cD1OT05FIGVuZD0iOiIgY29udGFpbnM9amF2YU51bWJlcixqYXZhQ2hhcmFjdGVyCitzeW4gbWF0Y2ggICBqYXZhVXNlckxhYmVsCSJeXHMqW18kYS16QS1aXVtfJGEtekEtWjAtOV9dKlxzKjoiaGU9ZS0xIGNvbnRhaW5zPWphdmFMYWJlbAogc3luIGtleXdvcmQgamF2YUxhYmVsCQlkZWZhdWx0CiAKIGlmICFleGlzdHMoImphdmFfYWxsb3dfY3BwX2tleXdvcmRzIikKQEAgLTEzNSw3ICsxMzQsNyBAQAogc3luIGtleXdvcmQgamF2YVRvZG8JCSBjb250YWluZWQgVE9ETyBGSVhNRSBYWFgKIGlmIGV4aXN0cygiamF2YV9jb21tZW50X3N0cmluZ3MiKQogICBzeW4gcmVnaW9uICBqYXZhQ29tbWVudFN0cmluZyAgICBjb250YWluZWQgc3RhcnQ9KyIrIGVuZD0rIisgZW5kPSskKyBlbmQ9K1wqLyttZT1zLTEsaGU9cy0xIGNvbnRhaW5zPWphdmFTcGVjaWFsLGphdmFDb21tZW50U3RhcixqYXZhU3BlY2lhbENoYXIsQFNwZWxsCi0gIHN5biByZWdpb24gIGphdmFDb21tZW50MlN0cmluZyAgIGNvbnRhaW5lZCBzdGFydD0rIisgIGVuZD0rJFx8IisgIGNvbnRhaW5zPWphdmFTcGVjaWFsLGphdmFTcGVjaWFsQ2hhcixAU3BlbGwKKyAgc3luIHJlZ2lvbiAgamF2YUNvbW1lbnQyU3RyaW5nICAgY29udGFpbmVkIHN0YXJ0PSsiKwllbmQ9KyRcfCIrICBjb250YWlucz1qYXZhU3BlY2lhbCxqYXZhU3BlY2lhbENoYXIsQFNwZWxsCiAgIHN5biBtYXRjaCAgIGphdmFDb21tZW50Q2hhcmFjdGVyIGNvbnRhaW5lZCAiJ1xcW14nXVx7MSw2XH0nIiBjb250YWlucz1qYXZhU3BlY2lhbENoYXIKICAgc3luIG1hdGNoICAgamF2YUNvbW1lbnRDaGFyYWN0ZXIgY29udGFpbmVkICInXFwnJyIgY29udGFpbnM9amF2YVNwZWNpYWxDaGFyCiAgIHN5biBtYXRjaCAgIGphdmFDb21tZW50Q2hhcmFjdGVyIGNvbnRhaW5lZCAiJ1teXFxdJyIKQEAgLTE0Myw5ICsxNDIsOSBAQAogICBzeW4gY2x1c3RlciBqYXZhQ29tbWVudFNwZWNpYWwyIGFkZD1qYXZhQ29tbWVudDJTdHJpbmcsamF2YUNvbW1lbnRDaGFyYWN0ZXIsamF2YU51bWJlcgogZW5kaWYKIHN5biByZWdpb24gIGphdmFDb21tZW50CQkgc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1AamF2YUNvbW1lbnRTcGVjaWFsLGphdmFUb2RvLEBTcGVsbAotc3luIG1hdGNoICAgamF2YUNvbW1lbnRTdGFyICAgICAgY29udGFpbmVkICJeXHMqXCpbXi9dIm1lPWUtMQotc3luIG1hdGNoICAgamF2YUNvbW1lbnRTdGFyICAgICAgY29udGFpbmVkICJeXHMqXCokIgotc3luIG1hdGNoICAgamF2YUxpbmVDb21tZW50ICAgICAgIi8vLioiIGNvbnRhaW5zPUBqYXZhQ29tbWVudFNwZWNpYWwyLGphdmFUb2RvLEBTcGVsbAorc3luIG1hdGNoICAgamF2YUNvbW1lbnRTdGFyCSBjb250YWluZWQgIl5ccypcKlteL10ibWU9ZS0xCitzeW4gbWF0Y2ggICBqYXZhQ29tbWVudFN0YXIJIGNvbnRhaW5lZCAiXlxzKlwqJCIKK3N5biBtYXRjaCAgIGphdmFMaW5lQ29tbWVudAkgIi8vLioiIGNvbnRhaW5zPUBqYXZhQ29tbWVudFNwZWNpYWwyLGphdmFUb2RvLEBTcGVsbAogSmF2YUhpTGluayBqYXZhQ29tbWVudFN0cmluZyBqYXZhU3RyaW5nCiBKYXZhSGlMaW5rIGphdmFDb21tZW50MlN0cmluZyBqYXZhU3RyaW5nCiBKYXZhSGlMaW5rIGphdmFDb21tZW50Q2hhcmFjdGVyIGphdmFDaGFyYWN0ZXIKQEAgLTE2MiwxNCArMTYxLDE0IEBACiAgICIgaGVyZS4KICAgc3ludGF4IHNwZWxsIGRlZmF1bHQKIAotICBzeW4gcmVnaW9uICBqYXZhRG9jQ29tbWVudCAgICBzdGFydD0iL1wqXCoiICBlbmQ9IlwqLyIga2VlcGVuZCBjb250YWlucz1qYXZhQ29tbWVudFRpdGxlLEBqYXZhSHRtbCxqYXZhRG9jVGFncyxqYXZhRG9jU2VlVGFnLGphdmFUb2RvLEBTcGVsbAotICBzeW4gcmVnaW9uICBqYXZhQ29tbWVudFRpdGxlICBjb250YWluZWQgbWF0Y2hncm91cD1qYXZhRG9jQ29tbWVudCBzdGFydD0iL1wqXCoiICAgbWF0Y2hncm91cD1qYXZhQ29tbWVudFRpdGxlIGtlZXBlbmQgZW5kPSJcLiQiIGVuZD0iXC5bIFx0XHI8Jl0ibWU9ZS0xIGVuZD0iW157XUAibWU9cy0yLGhlPXMtMSBlbmQ9IlwqLyJtZT1zLTEsaGU9cy0xIGNvbnRhaW5zPUBqYXZhSHRtbCxqYXZhQ29tbWVudFN0YXIsamF2YVRvZG8sQFNwZWxsLGphdmFEb2NUYWdzLGphdmFEb2NTZWVUYWcKKyAgc3luIHJlZ2lvbiAgamF2YURvY0NvbW1lbnQJc3RhcnQ9Ii9cKlwqIiAgZW5kPSJcKi8iIGtlZXBlbmQgY29udGFpbnM9amF2YUNvbW1lbnRUaXRsZSxAamF2YUh0bWwsamF2YURvY1RhZ3MsamF2YURvY1NlZVRhZyxqYXZhVG9kbyxAU3BlbGwKKyAgc3luIHJlZ2lvbiAgamF2YUNvbW1lbnRUaXRsZQljb250YWluZWQgbWF0Y2hncm91cD1qYXZhRG9jQ29tbWVudCBzdGFydD0iL1wqXCoiICAgbWF0Y2hncm91cD1qYXZhQ29tbWVudFRpdGxlIGtlZXBlbmQgZW5kPSJcLiQiIGVuZD0iXC5bIFx0XHI8Jl0ibWU9ZS0xIGVuZD0iW157XUAibWU9cy0yLGhlPXMtMSBlbmQ9IlwqLyJtZT1zLTEsaGU9cy0xIGNvbnRhaW5zPUBqYXZhSHRtbCxqYXZhQ29tbWVudFN0YXIsamF2YVRvZG8sQFNwZWxsLGphdmFEb2NUYWdzLGphdmFEb2NTZWVUYWcKIAotICBzeW4gcmVnaW9uIGphdmFEb2NUYWdzICAgICAgICAgY29udGFpbmVkIHN0YXJ0PSJ7QFwobGlua1x8bGlua3BsYWluXHxpbmhlcml0W0RkXW9jXHxkb2NbclJdb290XHx2YWx1ZVwpIiBlbmQ9In0iCi0gIHN5biBtYXRjaCAgamF2YURvY1RhZ3MgICAgICAgICBjb250YWluZWQgIkBcKHBhcmFtXHxleGNlcHRpb25cfHRocm93c1x8c2luY2VcKVxzXCtcU1wrIiBjb250YWlucz1qYXZhRG9jUGFyYW0KLSAgc3luIG1hdGNoICBqYXZhRG9jUGFyYW0gICAgICAgIGNvbnRhaW5lZCAiXHNcU1wrIgotICBzeW4gbWF0Y2ggIGphdmFEb2NUYWdzICAgICAgICAgY29udGFpbmVkICJAXCh2ZXJzaW9uXHxhdXRob3JcfHJldHVyblx8ZGVwcmVjYXRlZFx8c2VyaWFsXHxzZXJpYWxGaWVsZFx8c2VyaWFsRGF0YVwpXD4iCi0gIHN5biByZWdpb24gamF2YURvY1NlZVRhZyAgICAgICBjb250YWluZWQgbWF0Y2hncm91cD1qYXZhRG9jVGFncyBzdGFydD0iQHNlZVxzXCsiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9IlxfLiJyZT1lLTEgY29udGFpbnM9amF2YURvY1NlZVRhZ1BhcmFtCisgIHN5biByZWdpb24gamF2YURvY1RhZ3MJIGNvbnRhaW5lZCBzdGFydD0ie0BcKGxpbmtcfGxpbmtwbGFpblx8aW5oZXJpdFtEZF1vY1x8ZG9jW3JSXW9vdFx8dmFsdWVcKSIgZW5kPSJ9IgorICBzeW4gbWF0Y2ggIGphdmFEb2NUYWdzCSBjb250YWluZWQgIkBcKHBhcmFtXHxleGNlcHRpb25cfHRocm93c1x8c2luY2VcKVxzXCtcU1wrIiBjb250YWlucz1qYXZhRG9jUGFyYW0KKyAgc3luIG1hdGNoICBqYXZhRG9jUGFyYW0JIGNvbnRhaW5lZCAiXHNcU1wrIgorICBzeW4gbWF0Y2ggIGphdmFEb2NUYWdzCSBjb250YWluZWQgIkBcKHZlcnNpb25cfGF1dGhvclx8cmV0dXJuXHxkZXByZWNhdGVkXHxzZXJpYWxcfHNlcmlhbEZpZWxkXHxzZXJpYWxEYXRhXClcPiIKKyAgc3luIHJlZ2lvbiBqYXZhRG9jU2VlVGFnCSBjb250YWluZWQgbWF0Y2hncm91cD1qYXZhRG9jVGFncyBzdGFydD0iQHNlZVxzXCsiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9IlxfLiJyZT1lLTEgY29udGFpbnM9amF2YURvY1NlZVRhZ1BhcmFtCiAgIHN5biBtYXRjaCAgamF2YURvY1NlZVRhZ1BhcmFtICBjb250YWluZWQgQCJcX1teIl1cKyJcfDxhXHNcK1xfLlx7LX08L2E+XHxcKFxrXHxcLlwpKlwoI1xrXCtcKChcX1teKV1cKylcKVw9XClcPUAgZXh0ZW5kCiAgIHN5bnRheCBjYXNlIG1hdGNoCiBlbmRpZgpAQCAtMTc4LDkgKzE3Nyw5IEBACiBzeW4gbWF0Y2ggICBqYXZhQ29tbWVudAkJICIvXCpcKi8iCiAKICIgU3RyaW5ncyBhbmQgY29uc3RhbnRzCi1zeW4gbWF0Y2ggICBqYXZhU3BlY2lhbEVycm9yICAgICBjb250YWluZWQgIlxcLiIKK3N5biBtYXRjaCAgIGphdmFTcGVjaWFsRXJyb3IJIGNvbnRhaW5lZCAiXFwuIgogc3luIG1hdGNoICAgamF2YVNwZWNpYWxDaGFyRXJyb3IgY29udGFpbmVkICJbXiddIgotc3luIG1hdGNoICAgamF2YVNwZWNpYWxDaGFyICAgICAgY29udGFpbmVkICJcXFwoWzQtOV1cZFx8WzAtM11cZFxkXHxbXCJcXCdudGJyZl1cfHVcK1x4XHs0XH1cKSIKK3N5biBtYXRjaCAgIGphdmFTcGVjaWFsQ2hhcgkgY29udGFpbmVkICJcXFwoWzQtOV1cZFx8WzAtM11cZFxkXHxbXCJcXCdudGJyZl1cfHVceFx7NFx9XCkiCiBzeW4gcmVnaW9uICBqYXZhU3RyaW5nCQlzdGFydD0rIisgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPWphdmFTcGVjaWFsQ2hhcixqYXZhU3BlY2lhbEVycm9yLEBTcGVsbAogIiBuZXh0IGxpbmUgZGlzYWJsZWQsIGl0IGNhbiBjYXVzZSBhIGNyYXNoIGZvciBhIGxvbmcgbGluZQogInN5biBtYXRjaCAgIGphdmFTdHJpbmdFcnJvcgkgICsiXChbXiJcXF1cfFxcLlwpKiQrCkBAIC0xOTMsNyArMTkyLDcgQEAKIHN5biBtYXRjaCAgIGphdmFOdW1iZXIJCSAiXDxcZFwrXChbZUVdWy0rXVw9XGRcK1wpXD1bZkZkRF1cPiIKIAogIiB1bmljb2RlIGNoYXJhY3RlcnMKLXN5biBtYXRjaCAgIGphdmFTcGVjaWFsICJcXHVcK1xkXHs0XH0iCitzeW4gbWF0Y2ggICBqYXZhU3BlY2lhbCAiXFx1XGRcezRcfSIKIAogc3luIGNsdXN0ZXIgamF2YVRvcCBhZGQ9amF2YVN0cmluZyxqYXZhQ2hhcmFjdGVyLGphdmFOdW1iZXIsamF2YVNwZWNpYWwsamF2YVN0cmluZ0Vycm9yCiAKQEAgLTIwNiw4ICsyMDUsOCBAQAogICBlbHNlCiAgICAgIiBUaGlzIGxpbmUgY2F0Y2hlcyBtZXRob2QgZGVjbGFyYXRpb25zIGF0IGFueSBpbmRlbnRhdGlvbj4wLCBidXQgaXQgYXNzdW1lcwogICAgICIgdHdvIHRoaW5nczoKLSAgICAiICAgMS4gY2xhc3MgbmFtZXMgYXJlIGFsd2F5cyBjYXBpdGFsaXplZCAoaWU6IEJ1dHRvbikKLSAgICAiICAgMi4gbWV0aG9kIG5hbWVzIGFyZSBuZXZlciBjYXBpdGFsaXplZCAoZXhjZXB0IGNvbnN0cnVjdG9ycywgb2YgY291cnNlKQorICAgICIJMS4gY2xhc3MgbmFtZXMgYXJlIGFsd2F5cyBjYXBpdGFsaXplZCAoaWU6IEJ1dHRvbikKKyAgICAiCTIuIG1ldGhvZCBuYW1lcyBhcmUgbmV2ZXIgY2FwaXRhbGl6ZWQgKGV4Y2VwdCBjb25zdHJ1Y3RvcnMsIG9mIGNvdXJzZSkKICAgICBzeW4gcmVnaW9uIGphdmFGdW5jRGVmIHN0YXJ0PSteXHNcK1woXChwdWJsaWNcfHByb3RlY3RlZFx8cHJpdmF0ZVx8c3RhdGljXHxhYnN0cmFjdFx8ZmluYWxcfG5hdGl2ZVx8c3luY2hyb25pemVkXClcc1wrXCkqXChcKHZvaWRcfGJvb2xlYW5cfGNoYXJcfGJ5dGVcfHNob3J0XHxpbnRcfGxvbmdcfGZsb2F0XHxkb3VibGVcfFwoW0EtWmEtel9dW0EtWmEtejAtOV8kXSpcLlwpKltBLVpdW0EtWmEtejAtOV8kXSpcKVwoPFtePl0qPlwpXD1cKFxbXF1cKSpcc1wrW2Etel1bQS1aYS16MC05XyRdKlx8W0EtWl1bQS1aYS16MC05XyRdKlwpXHMqKFteMC05XSsgZW5kPSspKyBjb250YWlucz1qYXZhU2NvcGVEZWNsLGphdmFUeXBlLGphdmFTdG9yYWdlQ2xhc3MsamF2YUNvbW1lbnQsamF2YUxpbmVDb21tZW50LEBqYXZhQ2xhc3NlcwogICBlbmRpZgogICBzeW4gbWF0Y2ggIGphdmFCcmFjZXMgICJbe31dIgpAQCAtMjE5LDcgKzIxOCw3IEBACiAgICIgU3RyaW5ncyBhbmQgY29uc3RhbnRzCiAgIHN5biBtYXRjaCAgIGphdmFEZWJ1Z1NwZWNpYWwJCWNvbnRhaW5lZCAiXFxcZFxkXGRcfFxcLiIKICAgc3luIHJlZ2lvbiAgamF2YURlYnVnU3RyaW5nCQljb250YWluZWQgc3RhcnQ9KyIrICBlbmQ9KyIrICBjb250YWlucz1qYXZhRGVidWdTcGVjaWFsCi0gIHN5biBtYXRjaCAgIGphdmFEZWJ1Z1N0cmluZ0Vycm9yICAgICAgKyJcKFteIlxcXVx8XFwuXCkqJCsKKyAgc3luIG1hdGNoICAgamF2YURlYnVnU3RyaW5nRXJyb3IJKyJcKFteIlxcXVx8XFwuXCkqJCsKICAgc3luIG1hdGNoICAgamF2YURlYnVnQ2hhcmFjdGVyCWNvbnRhaW5lZCAiJ1teXFxdJyIKICAgc3luIG1hdGNoICAgamF2YURlYnVnU3BlY2lhbENoYXJhY3RlciBjb250YWluZWQgIidcXC4nIgogICBzeW4gbWF0Y2ggICBqYXZhRGVidWdTcGVjaWFsQ2hhcmFjdGVyIGNvbnRhaW5lZCAiJ1xcJyciCkBAIC0yNjUsMTcgKzI2NCwxNyBAQAogZW5kaWYKIAogIiBjYXRjaCBlcnJvcnMgY2F1c2VkIGJ5IHdyb25nIHBhcmVudGhlc2lzCi1zeW4gcmVnaW9uICBqYXZhUGFyZW5UICB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWphdmFQYXJlbiAgc3RhcnQ9IigiICBlbmQ9IikiIGNvbnRhaW5zPUBqYXZhVG9wLGphdmFQYXJlblQxCitzeW4gcmVnaW9uICBqYXZhUGFyZW5UCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YVBhcmVuICBzdGFydD0iKCIgIGVuZD0iKSIgY29udGFpbnM9QGphdmFUb3AsamF2YVBhcmVuVDEKIHN5biByZWdpb24gIGphdmFQYXJlblQxIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YVBhcmVuMSBzdGFydD0iKCIgZW5kPSIpIiBjb250YWlucz1AamF2YVRvcCxqYXZhUGFyZW5UMiBjb250YWluZWQKIHN5biByZWdpb24gIGphdmFQYXJlblQyIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YVBhcmVuMiBzdGFydD0iKCIgZW5kPSIpIiBjb250YWlucz1AamF2YVRvcCxqYXZhUGFyZW5UICBjb250YWluZWQKLXN5biBtYXRjaCAgIGphdmFQYXJlbkVycm9yICAgICAgICIpIgorc3luIG1hdGNoICAgamF2YVBhcmVuRXJyb3IJICIpIgogIiBjYXRjaCBlcnJvcnMgY2F1c2VkIGJ5IHdyb25nIHNxdWFyZSBwYXJlbnRoZXNpcwotc3luIHJlZ2lvbiAgamF2YVBhcmVuVCAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1qYXZhUGFyZW4gIHN0YXJ0PSJcWyIgIGVuZD0iXF0iIGNvbnRhaW5zPUBqYXZhVG9wLGphdmFQYXJlblQxCitzeW4gcmVnaW9uICBqYXZhUGFyZW5UCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9amF2YVBhcmVuICBzdGFydD0iXFsiICBlbmQ9IlxdIiBjb250YWlucz1AamF2YVRvcCxqYXZhUGFyZW5UMQogc3luIHJlZ2lvbiAgamF2YVBhcmVuVDEgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1qYXZhUGFyZW4xIHN0YXJ0PSJcWyIgZW5kPSJcXSIgY29udGFpbnM9QGphdmFUb3AsamF2YVBhcmVuVDIgY29udGFpbmVkCiBzeW4gcmVnaW9uICBqYXZhUGFyZW5UMiB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWphdmFQYXJlbjIgc3RhcnQ9IlxbIiBlbmQ9IlxdIiBjb250YWlucz1AamF2YVRvcCxqYXZhUGFyZW5UICBjb250YWluZWQKLXN5biBtYXRjaCAgIGphdmFQYXJlbkVycm9yICAgICAgICJcXSIKK3N5biBtYXRjaCAgIGphdmFQYXJlbkVycm9yCSAiXF0iCiAKLUphdmFIaUxpbmsgamF2YVBhcmVuRXJyb3IgICAgICAgamF2YUVycm9yCitKYXZhSGlMaW5rIGphdmFQYXJlbkVycm9yCWphdmFFcnJvcgogCiBpZiAhZXhpc3RzKCJqYXZhX21pbmxpbmVzIikKICAgbGV0IGphdmFfbWlubGluZXMgPSAxMApAQCAtMjg4LDcgKzI4Nyw3IEBACiAgICAgbGV0IGRpZF9qYXZhX3N5bl9pbml0cyA9IDEKICAgZW5kaWYKICAgSmF2YUhpTGluayBqYXZhRnVuY0RlZgkJRnVuY3Rpb24KLSAgSmF2YUhpTGluayBqYXZhVmFyQXJnICAgICAgICAgICAgICAgICBGdW5jdGlvbgorICBKYXZhSGlMaW5rIGphdmFWYXJBcmcJCQlGdW5jdGlvbgogICBKYXZhSGlMaW5rIGphdmFCcmFjZXMJCQlGdW5jdGlvbgogICBKYXZhSGlMaW5rIGphdmFCcmFuY2gJCQlDb25kaXRpb25hbAogICBKYXZhSGlMaW5rIGphdmFVc2VyTGFiZWxSZWYJCWphdmFVc2VyTGFiZWwKQEAgLTMyMCw3ICszMTksNyBAQAogICBKYXZhSGlMaW5rIGphdmFDb25zdGFudAkJQ29uc3RhbnQKICAgSmF2YUhpTGluayBqYXZhVHlwZWRlZgkJVHlwZWRlZgogICBKYXZhSGlMaW5rIGphdmFUb2RvCQkJVG9kbwotICBKYXZhSGlMaW5rIGphdmFBbm5vdGF0aW9uICAgICAgICAgICAgIFByZVByb2MKKyAgSmF2YUhpTGluayBqYXZhQW5ub3RhdGlvbgkJUHJlUHJvYwogCiAgIEphdmFIaUxpbmsgamF2YUNvbW1lbnRUaXRsZQkJU3BlY2lhbENvbW1lbnQKICAgSmF2YUhpTGluayBqYXZhRG9jVGFncwkJU3BlY2lhbApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvamF2YXNjcmlwdC52aW0gYi9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQppbmRleCBiYTg5NzViLi5iMjkzZWI4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9qYXZhc2NyaXB0LnZpbQpAQCAtNyw3ICs3LDcgQEAKICIJCShzcykgcmVwYWlyZWQgc2V2ZXJhbCBxdW90aW5nIGFuZCBncm91cGluZyBnbGl0Y2hlcwogIgkJKHNzKSBmaXhlZCByZWdleCBwYXJzaW5nIGlzc3VlIHdpdGggbXVsdGlwbGUgcXVhbGlmaWVycyBbZ2ldCiAiCQkoc3MpIGFkZGl0aW9uYWwgZmFjdG9yaW5nIG9mIGtleXdvcmRzLCBnbG9iYWxzLCBhbmQgbWVtYmVycwotIiBMYXN0IENoYW5nZToJMjAwNiBKdW4gMTkKKyIgTGFzdCBDaGFuZ2U6CTIwMTAgTWFyIDI1CiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC0yOCwxNiArMjgsMTQgQEAKICAgdW5sZXQgamF2YVNjcmlwdF9mb2xkCiBlbmRpZgogCi1zeW4gY2FzZSBpZ25vcmUKLQogCiBzeW4ga2V5d29yZCBqYXZhU2NyaXB0Q29tbWVudFRvZG8gICAgICBUT0RPIEZJWE1FIFhYWCBUQkQgY29udGFpbmVkCiBzeW4gbWF0Y2ggICBqYXZhU2NyaXB0TGluZUNvbW1lbnQgICAgICAiXC9cLy4qIiBjb250YWlucz1AU3BlbGwsamF2YVNjcmlwdENvbW1lbnRUb2RvCiBzeW4gbWF0Y2ggICBqYXZhU2NyaXB0Q29tbWVudFNraXAgICAgICAiXlsgXHRdKlwqXCgkXHxbIFx0XVwrXCkiCiBzeW4gcmVnaW9uICBqYXZhU2NyaXB0Q29tbWVudAkgICAgICAgc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1AU3BlbGwsamF2YVNjcmlwdENvbW1lbnRUb2RvCiBzeW4gbWF0Y2ggICBqYXZhU2NyaXB0U3BlY2lhbAkgICAgICAgIlxcXGRcZFxkXHxcXC4iCi1zeW4gcmVnaW9uICBqYXZhU2NyaXB0U3RyaW5nRAkgICAgICAgc3RhcnQ9KyIrICBza2lwPStcXFxcXHxcXCIrICBlbmQ9KyJcfCQrICBjb250YWlucz1qYXZhU2NyaXB0U3BlY2lhbCxAaHRtbFByZXByb2MKLXN5biByZWdpb24gIGphdmFTY3JpcHRTdHJpbmdTCSAgICAgICBzdGFydD0rJysgIHNraXA9K1xcXFxcfFxcJysgIGVuZD0rJ1x8JCsgIGNvbnRhaW5zPWphdmFTY3JpcHRTcGVjaWFsLEBodG1sUHJlcHJvYworc3luIHJlZ2lvbiAgamF2YVNjcmlwdFN0cmluZ0QJICAgICAgIHN0YXJ0PSsiKyAgc2tpcD0rXFxcXFx8XFwiKyAgZW5kPSsiXHwkKwljb250YWlucz1qYXZhU2NyaXB0U3BlY2lhbCxAaHRtbFByZXByb2MKK3N5biByZWdpb24gIGphdmFTY3JpcHRTdHJpbmdTCSAgICAgICBzdGFydD0rJysgIHNraXA9K1xcXFxcfFxcJysgIGVuZD0rJ1x8JCsJY29udGFpbnM9amF2YVNjcmlwdFNwZWNpYWwsQGh0bWxQcmVwcm9jCiAKIHN5biBtYXRjaCAgIGphdmFTY3JpcHRTcGVjaWFsQ2hhcmFjdGVyICInXFwuJyIKIHN5biBtYXRjaCAgIGphdmFTY3JpcHROdW1iZXIJICAgICAgICItXD1cPFxkXCtMXD1cPlx8MFt4WF1bMC05YS1mQS1GXVwrXD4iCkBAIC01MSw3ICs0OSw3IEBACiBzeW4ga2V5d29yZCBqYXZhU2NyaXB0U3RhdGVtZW50CQlyZXR1cm4gd2l0aAogc3luIGtleXdvcmQgamF2YVNjcmlwdEJvb2xlYW4JCXRydWUgZmFsc2UKIHN5biBrZXl3b3JkIGphdmFTY3JpcHROdWxsCQludWxsIHVuZGVmaW5lZAotc3luIGtleXdvcmQgamF2YVNjcmlwdElkZW50aWZpZXIJYXJndW1lbnRzIHRoaXMgdmFyCitzeW4ga2V5d29yZCBqYXZhU2NyaXB0SWRlbnRpZmllcglhcmd1bWVudHMgdGhpcyB2YXIgbGV0CiBzeW4ga2V5d29yZCBqYXZhU2NyaXB0TGFiZWwJCWNhc2UgZGVmYXVsdAogc3luIGtleXdvcmQgamF2YVNjcmlwdEV4Y2VwdGlvbgkJdHJ5IGNhdGNoIGZpbmFsbHkgdGhyb3cKIHN5biBrZXl3b3JkIGphdmFTY3JpcHRNZXNzYWdlCQlhbGVydCBjb25maXJtIHByb21wdCBzdGF0dXMKQEAgLTYxLDcgKzU5LDcgQEAKIHN5biBrZXl3b3JkIGphdmFTY3JpcHRSZXNlcnZlZAkJYWJzdHJhY3QgYm9vbGVhbiBieXRlIGNoYXIgY2xhc3MgY29uc3QgZGVidWdnZXIgZG91YmxlIGVudW0gZXhwb3J0IGV4dGVuZHMgZmluYWwgZmxvYXQgZ290byBpbXBsZW1lbnRzIGltcG9ydCBpbnQgaW50ZXJmYWNlIGxvbmcgbmF0aXZlIHBhY2thZ2UgcHJpdmF0ZSBwcm90ZWN0ZWQgcHVibGljIHNob3J0IHN0YXRpYyBzdXBlciBzeW5jaHJvbml6ZWQgdGhyb3dzIHRyYW5zaWVudCB2b2xhdGlsZSAKIAogaWYgZXhpc3RzKCJqYXZhU2NyaXB0X2ZvbGQiKQotICAgIHN5biBtYXRjaAlqYXZhU2NyaXB0RnVuY3Rpb24gICAgICAiXDxmdW5jdGlvblw+IgorICAgIHN5biBtYXRjaAlqYXZhU2NyaXB0RnVuY3Rpb24JIlw8ZnVuY3Rpb25cPiIKICAgICBzeW4gcmVnaW9uCWphdmFTY3JpcHRGdW5jdGlvbkZvbGQJc3RhcnQ9Ilw8ZnVuY3Rpb25cPi4qW159O10kIiBlbmQ9Il5cejF9LiokIiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQKIAogICAgIHN5biBzeW5jIG1hdGNoIGphdmFTY3JpcHRTeW5jCWdyb3VwaGVyZSBqYXZhU2NyaXB0RnVuY3Rpb25Gb2xkICJcPGZ1bmN0aW9uXD4iCkBAIC03MCw3ICs2OCw3IEBACiAgICAgc2V0bG9jYWwgZm9sZG1ldGhvZD1zeW50YXgKICAgICBzZXRsb2NhbCBmb2xkdGV4dD1nZXRsaW5lKHY6Zm9sZHN0YXJ0KQogZWxzZQotICAgIHN5biBrZXl3b3JkCWphdmFTY3JpcHRGdW5jdGlvbiAgICAgIGZ1bmN0aW9uCisgICAgc3luIGtleXdvcmQgamF2YVNjcmlwdEZ1bmN0aW9uCWZ1bmN0aW9uCiAgICAgc3luIG1hdGNoCWphdmFTY3JpcHRCcmFjZXMJICAgIlt7fVxbXF1dIgogICAgIHN5biBtYXRjaAlqYXZhU2NyaXB0UGFyZW5zCSAgICJbKCldIgogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xoYXNrZWxsLnZpbSBiL3J1bnRpbWUvc3ludGF4L2xoYXNrZWxsLnZpbQppbmRleCA4Y2MxZGVkLi4wNzc1NDlhIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbGhhc2tlbGwudmltCkBAIC00LDcgKzQsNyBAQAogIgkJCVxiZWdpbntjb2RlfSBcZW5ke2NvZGV9IGJsb2NrcwogIiBNYWludGFpbmVyOgkJSGFza2VsbCBDYWZlIG1haWxpbmdsaXN0IDxoYXNrZWxsLWNhZmVAaGFza2VsbC5vcmc+CiAiIE9yaWdpbmFsIEF1dGhvcjoJQXJ0aHVyIHZhbiBMZWV1d2VuIDxhcnRodXJ2bEBjcy51dS5ubD4KLSIgTGFzdCBDaGFuZ2U6CQkyMDA5IE1heSAwOAorIiBMYXN0IENoYW5nZToJCTIwMTAgQXByIDExCiAiIFZlcnNpb246CQkxLjA0CiAiCiAiIFRoYW5rcyB0byBJYW4gTHluYWdoIGZvciB0aG91Z2h0ZnVsIGNvbW1lbnRzIG9uIGluaXRpYWwgdmVyc2lvbnMgYW5kCkBAIC0xMDcsMTMgKzEwNywxMiBAQAogZW5kaWYKIAogc3ludGF4IHJlZ2lvbiBsaHNIYXNrZWxsQmlyZFRyYWNrIHN0YXJ0PSJePiIgZW5kPSJcJSheW14+XVwpXEA9IiBjb250YWlucz1AaGFza2VsbFRvcCxsaHNCaXJkVHJhY2sgY29udGFpbmVkaW49QGxoc1RlWENvbnRhaW5lcgotc3ludGF4IHJlZ2lvbiBsaHNIYXNrZWxsQmVnaW5FbmRCbG9jayBzdGFydD0iXlxcYmVnaW57Y29kZX1ccyokIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJcJSheXFxlbmR7Y29kZX0uKiRcKVxAPSIgY29udGFpbnM9QGhhc2tlbGxUb3AsQGJlZ2luQ29kZSBjb250YWluZWRpbj1AbGhzVGVYQ29udGFpbmVyCitzeW50YXggcmVnaW9uIGxoc0hhc2tlbGxCZWdpbkVuZEJsb2NrIHN0YXJ0PSJeXFxiZWdpbntjb2RlfVxzKiQiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9IlwlKF5cXGVuZHtjb2RlfS4qJFwpXEA9IiBjb250YWlucz1AaGFza2VsbFRvcCxiZWdpbkNvZGVCZWdpbiBjb250YWluZWRpbj1AbGhzVGVYQ29udGFpbmVyCiAKIHN5bnRheCBtYXRjaCBsaHNCaXJkVHJhY2sgIl4+IiBjb250YWluZWQKIAogc3ludGF4IG1hdGNoIGJlZ2luQ29kZUJlZ2luICJeXFxiZWdpbiIgbmV4dGdyb3VwPWJlZ2luQ29kZUNvZGUgY29udGFpbmVkCiBzeW50YXggcmVnaW9uIGJlZ2luQ29kZUNvZGUgIG1hdGNoZ3JvdXA9dGV4RGVsaW1pdGVyIHN0YXJ0PSJ7IiBlbmQ9In0iCi1zeW50YXggY2x1c3RlciBiZWdpbkNvZGUgICAgY29udGFpbnM9YmVnaW5Db2RlQmVnaW4sYmVnaW5Db2RlQ29kZQogCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCiAiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21hcGxlLnZpbSBiL3J1bnRpbWUvc3ludGF4L21hcGxlLnZpbQppbmRleCAzN2FiZjE2Li5iNmU0YWU5IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tYXBsZS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWFwbGUudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU1hcGxlIFYgKGJhc2VkIG9uIHJlbGVhc2UgNCkKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KLSIgTGFzdCBDaGFuZ2U6CVNlcCAxMSwgMjAwNgotIiBWZXJzaW9uOgk5CisiIExhc3QgQ2hhbmdlOglKYW4gMDUsIDIwMTAKKyIgVmVyc2lvbjoJMTAKICIgVVJMOglodHRwOi8vbXlzaXRlLnZlcml6b24ubmV0L2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgUGFja2FnZSBGdW5jdGlvbiBTZWxlY3Rpb246IHt7ezEKQEAgLTE2NCw5ICsxNjQsMTEgQEAKICIgU3BsaXQgaW50byBib29sZWFucywgY29uZGl0aW9uYWxzLCBvcGVyYXRvcnMsIHJlcGVhdC1sb2dpYywgZXRjCiBzeW4ga2V5d29yZCBtdkJvb2wJdHJ1ZQlmYWxzZQlGQUlMCiBzeW4ga2V5d29yZCBtdkNvbmQJZWxpZgllbHNlCWZpCWlmCXRoZW4KK3N5biBtYXRjaCAgIG12Q29uZAkiZW5kXHNcK2lmIgogCiBzeW4ga2V5d29yZCBtdlJlcGVhdAlieQlmb3IJaW4JdG8KIHN5biBrZXl3b3JkIG12UmVwZWF0CWRvCWZyb20Jb2QJd2hpbGUKK3N5biBtYXRjaCAgIG12UmVwZWF0CSJlbmRcc1wrZG8iCiAKIHN5biBrZXl3b3JkIG12U3BlY2lhbAlOVUxMCiBzeW4gbWF0Y2ggICBtdlNwZWNpYWwJIlxbXF1cfHt9IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbWliLnZpbSBiL3J1bnRpbWUvc3ludGF4L21pYi52aW0KaW5kZXggMmE4YTczZi4uNjA2MmQ1MCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbWliLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9taWIudmltCkBAIC0zLDEzICszLDEzIEBACiAiIE1haW50YWluZXI6ICAgICAgTWFydGluIFNtYXQgPG1zbWF0QHBvc3QuY3o+CiAiIE9yaWdpbmFsIEF1dGhvcjogRGF2aWQgUGFzY29lIDxwYXNjb2VkakBzcGFtY29wLm5ldD4KICIgV3JpdHRlbjogICAgIAkgICBXZWQgSmFuIDI4IDE0OjM3OjIzIEdNVC0tODowMCAxOTk4Ci0iIExhc3QgQ2hhbmdlZDogICAgTW9uIE1hciAxNSAyMDEwCisiIExhc3QgQ2hhbmdlZDogICAgTW9uIE1hciAyMyAyMDEwCiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKIAotc2V0bG9jYWwgaXNrZXl3b3JkPUAsNDgtNTcsXywxMjgtMTY3LDIyNC0yMzUsLSw6LD0KK3NldGxvY2FsIGlza2V5d29yZD1ALDQ4LTU3LF8sMTI4LTE2NywyMjQtMjM1LC0KIAogc3luIGtleXdvcmQgbWliSW1wbGljaXQgQUNDRVNTIEFOWSBBVUdNRU5UUyBCRUdJTiBCSVQgQklUUyBCT09MRUFOIENIT0lDRQogc3luIGtleXdvcmQgbWliSW1wbGljaXQgQ09NUE9ORU5UUyBDT05UQUNULUlORk8gREVGSU5JVElPTlMgREVGVkFMCkBAIC0yMiw3ICsyMiw3IEBACiBzeW4ga2V5d29yZCBtaWJJbXBsaWNpdCBPQkpFQ1RTIE9GIE9QVElPTkFMIE9SR0FOSVpBVElPTiBSRUZFUkVOQ0UKIHN5biBrZXl3b3JkIG1pYkltcGxpY2l0IFJFVklTSU9OIFNFUVVFTkNFIFNFVCBTSVpFIFNUQVRVUyBTWU5UQVgKIHN5biBrZXl3b3JkIG1pYkltcGxpY2l0IFRFWFRVQUwtQ09OVkVOVElPTiBUUkFQLVRZUEUgVFJVRSBVTklUUyBWQVJJQUJMRVMKLXN5biBrZXl3b3JkIG1pYkltcGxpY2l0IFdSSVRFLVNZTlRBWCA6Oj0KK3N5biBrZXl3b3JkIG1pYkltcGxpY2l0IFdSSVRFLVNZTlRBWAogc3luIGtleXdvcmQgbWliVmFsdWUgYWNjZXNzaWJsZS1mb3Itbm90aWZ5IGN1cnJlbnQgRGlzcGxheVN0cmluZwogc3luIGtleXdvcmQgbWliVmFsdWUgZGVwcmVjYXRlZCBtYW5kYXRvcnkgbm90LWFjY2Vzc2libGUgb2Jzb2xldGUgb3B0aW9uYWwKIHN5biBrZXl3b3JkIG1pYlZhbHVlIHJlYWQtY3JlYXRlIHJlYWQtb25seSByZWFkLXdyaXRlIHdyaXRlLW9ubHkgSU5URUdFUgpAQCAtNDAsMTEgKzQwLDEzIEBACiBzeW4ga2V5d29yZCBtaWJFcGlsb2d1ZSBsZWFmLW5hbWUKIHN5biBrZXl3b3JkIG1pYkVwaWxvZ3VlIERFRkFVTFQgY29udGFpbmVkCiAKK3N5biBtYXRjaCAgbWliT3BlcmF0b3IgICI6Oj0iCiBzeW4gbWF0Y2ggIG1pYkNvbW1lbnQgICAiXCAqLS0uXHstfVwoLS1cfCRcKSIKIHN5biBtYXRjaCAgbWliTnVtYmVyICAgICJcPFsnMC05YS1mQS1GaEhdKlw+Igogc3luIHJlZ2lvbiBtaWJEZXNjcmlwdGlvbiBzdGFydD0iXCIiIGVuZD0iXCIiIGNvbnRhaW5zPURFRkFVTFQKIAogaGkgZGVmIGxpbmsgbWliSW1wbGljaXQJICAgICBTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIG1pYk9wZXJhdG9yICAgICAgU3RhdGVtZW50CiBoaSBkZWYgbGluayBtaWJDb21tZW50ICAgICAgIENvbW1lbnQKIGhpIGRlZiBsaW5rIG1pYkNvbnN0YW50cyAgICAgU3RyaW5nCiBoaSBkZWYgbGluayBtaWJOdW1iZXIgICAgICAgIE51bWJlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbXlzcWwudmltIGIvcnVudGltZS9zeW50YXgvbXlzcWwudmltCmluZGV4IDg2YTZjMDcuLmMwMWVjYzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L215c3FsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9teXNxbC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgIG15c3FsCiAiIE1haW50YWluZXI6ICAgS2VubmV0aCBKLiBQcm9ub3ZpY2kgPHByb25vdmljQGllZWUub3JnPgotIiBMYXN0IENoYW5nZTogICRMYXN0Q2hhbmdlZERhdGU6IDIwMDktMDYtMjkgMjM6MDg6MzcgLTA1MDAgKE1vbiwgMjkgSnVuIDIwMDkpICQKKyIgTGFzdCBDaGFuZ2U6ICAkTGFzdENoYW5nZWREYXRlOiAyMDEwLTA0LTIyIDA5OjQ4OjAyIC0wNTAwIChUaHUsIDIyIEFwciAyMDEwKSAkCiAiIEZpbGVuYW1lczogICAgKi5teXNxbAogIiBVUkw6ICAgICAgICAgIGZ0cDovL2NlZGFyLXNvbHV0aW9ucy5jb20vc29mdHdhcmUvbXlzcWwudmltCiAiIE5vdGU6ICAgICAgICAgVGhlIGRlZmluaXRpb25zIGJlbG93IGFyZSB0YWtlbiBmcm9tIHRoZSBteXNxbCB1c2VyIG1hbnVhbCBhcyBvZiBBcHJpbCAyMDAyLCBmb3IgdmVyc2lvbiAzLjIzCkBAIC02Miw3ICs2Miw3IEBACiBzeW4gbWF0Y2ggbXlzcWxOdW1iZXIgICAgICAgICAgICAiXDwweFthYmNkZWZBQkNERUYwLTldKlw+IgogCiAiIFVzZXIgdmFyaWFibGVzCi1zeW4gbWF0Y2ggbXlzcWxWYXJpYWJsZSAgICAgICAgICAiQFxhKltBLVphLXowLTldKlsuX10qW0EtWmEtejAtOV0qIgorc3luIG1hdGNoIG15c3FsVmFyaWFibGUgICAgICAgICAgIkBcYSpbQS1aYS16MC05XSpcKFsuX10qW0EtWmEtejAtOV1cKSoiCiAKICIgQ29tbWVudHMgKGMtc3R5bGUsIG15c3FsLXN0eWxlIGFuZCBtb2RpZmllZCBzcWwtc3R5bGUpCiBzeW4gcmVnaW9uIG15c3FsQ29tbWVudCAgICAgICAgICBzdGFydD0iL1wqIiAgZW5kPSJcKi8iCkBAIC03NSw3ICs3NSw3IEBACiAiIFRoaXMgZ2V0cyBhIGJpdCB1Z2x5LiAgVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgcHJvYmxlbXMgd2UgaGF2ZSB0bwogIiBkZWFsIHdpdGguCiAiCi0iIFRoZSBmaXJzdCBwcm9ibGVtIGlzIHRoYXQgc29tZSBrZXl3b2FyZHMgbGlrZSAnZmxvYXQnIGNhbiBiZSB1c2VkCisiIFRoZSBmaXJzdCBwcm9ibGVtIGlzIHRoYXQgc29tZSBrZXl3b3JkcyBsaWtlICdmbG9hdCcgY2FuIGJlIHVzZWQKICIgYm90aCB3aXRoIGFuZCB3aXRob3V0IHNwZWNpZmllcnMsIGkuZS4gJ2Zsb2F0JywgJ2Zsb2F0KDEpJyBhbmQKICIgJ2Zsb2F0KEB2YXIpJyBhcmUgYWxsIHZhbGlkLiAgV2UgaGF2ZSB0byBhY2NvdW50IGZvciB0aGlzIGFuZCB3ZQogIiBhbHNvIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgZ2FyYmFnZSBsaWtlIGZsb2F0biBvciBmbG9hdF8oMSkgaXMgbm90CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9vYmoudmltIGIvcnVudGltZS9zeW50YXgvb2JqLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTJiNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvb2JqLnZpbQpAQCAtMCwwICsxLDk1IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJM0Qgd2F2ZWZyb250J3Mgb2JqIGZpbGUKKyIgTWFpbnRhaW5lcjoJVmluY2VudCBCZXJ0aG91eCA8dHdpbnNpZGVAZ21haWwuY29tPgorIiBGaWxlIFR5cGVzOgkub2JqICh1c2VkIGluIDNEKQorIgorIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitzeW4gbWF0Y2ggICAgICAgb2JqRXJyb3IgICAgICAgICJeXGFcKyIKKworc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmNzdHlwZVxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmN0ZWNoXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJec3RlY2hccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5kZWdccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5jdXJ2XCgyXD9cKVxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXnBhcm1ccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5zdXJmXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeZW5kXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeYnpwXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeYnNwXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJecmVzXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeY2RjXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeY29uXHMiCisKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5zaGFkb3dfb2JqXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJedHJhY2Vfb2JqXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJedXNlbWFwXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJebG9kXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJebWFwbGliXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeZF9pbnRlcnBccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5jX2ludGVycFxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmJldmVsXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJebWdccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5zXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeY29uXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJedHJpbVxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmhvbGVccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5zY3J2XHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJec3BccyIKK3N5biBtYXRjaCAgICAgICBvYmpLZXl3b3JkcyAgICAgIl5zdGVwXHMiCitzeW4gbWF0Y2ggICAgICAgb2JqS2V5d29yZHMgICAgICJeYm1hdFxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmNzaFxzIgorc3luIG1hdGNoICAgICAgIG9iaktleXdvcmRzICAgICAiXmNhbGxccyIKKworc3luIG1hdGNoICAgICAgIG9iakNvbW1lbnQgICAgICAiXiMuKiIKK3N5biBtYXRjaCAgICAgICBvYmpWZXJ0ZXggICAgICAgIl52XHMiCitzeW4gbWF0Y2ggICAgICAgb2JqRmFjZSAgICAgICAgICJeZlxzIgorc3luIG1hdGNoICAgICAgIG9ialZlcnRpY2UgICAgICAiXnZ0XHMiCitzeW4gbWF0Y2ggICAgICAgb2JqTm9ybWFsZSAgICAgICJedm5ccyIKK3N5biBtYXRjaCAgICAgICBvYmpHcm91cCAgICAgICAgIl5nXHMuKiIKK3N5biBtYXRjaCAgICAgICBvYmpNYXRlcmlhbCAgICAgIl51c2VtdGxccy4qIgorc3luIG1hdGNoICAgICAgIG9iakluY2x1ZGUgICAgICAiXm10bGxpYlxzLioiCisKK3N5biBtYXRjaCAgICAgICBvYmpGbG9hdCAgICAgICAgIi1cP1xkXCtcLlxkXCtcKGVcKCtcfC1cKVxkXCtcKVw/Igorc3luIG1hdGNoICAgICAgIG9iakludCAgICAgICAgICAiXGRcKyIKK3N5biBtYXRjaCAgICAgICBvYmpJbmRleCAgICAgICAgIlxkXCtcL1xkKlwvXGQqIgorCisiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCisiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKKyIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKK2lmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9jYWJhbF9zeW5faW5pdHMiKQorICBpZiB2ZXJzaW9uIDwgNTA4CisgICAgbGV0IGRpZF9jYWJhbF9zeW5faW5pdHMgPSAxCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KKyAgZWxzZQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorICBlbmRpZgorCisgIEhpTGluayBvYmpFcnJvciAgICAgICAgICAgRXJyb3IKKyAgSGlMaW5rIG9iakNvbW1lbnQgICAgICAgICBDb21tZW50CisgIEhpTGluayBvYmpJbmNsdWRlICAgICAgICAgUHJlUHJvYworICBIaUxpbmsgb2JqRmxvYXQgICAgICAgICAgIEZsb2F0CisgIEhpTGluayBvYmpJbnQgICAgICAgICAgICAgTnVtYmVyCisgIEhpTGluayBvYmpHcm91cCAgICAgICAgICAgU3RydWN0dXJlCisgIEhpTGluayBvYmpJbmRleCAgICAgICAgICAgQ29uc3RhbnQKKyAgSGlMaW5rIG9iak1hdGVyaWFsICAgICAgICBMYWJlbAorCisgIEhpTGluayBvYmpWZXJ0ZXggICAgICAgICAgS2V5d29yZAorICBIaUxpbmsgb2JqTm9ybWFsZSAgICAgICAgIEtleXdvcmQKKyAgSGlMaW5rIG9ialZlcnRpY2UgICAgICAgICBLZXl3b3JkCisgIEhpTGluayBvYmpGYWNlICAgICAgICAgICAgS2V5d29yZAorICBIaUxpbmsgb2JqS2V5d29yZHMgICAgICAgIEtleXdvcmQKKworCisgIGRlbGNvbW1hbmQgSGlMaW5rCitlbmRpZgorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJvYmoiCisKKyIgdmltOiB0cz04CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9wZXJsLnZpbSBiL3J1bnRpbWUvc3ludGF4L3BlcmwudmltCmluZGV4IGZiOTE5NWEuLjRjNDAzYmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3BlcmwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3BlcmwudmltCkBAIC0xLDI0ICsxLDI0IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJUGVybAotIiBNYWludGFpbmVyOglOaWNrIEhpYm1hIDxuaWNrQHZhbi1sYWFyaG92ZW4ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBOb3ZlbWJlciAyMwotIiBMb2NhdGlvbjoJaHR0cDovL3d3dy52YW4tbGFhcmhvdmVuLm9yZy92aW0vc3ludGF4L3BlcmwudmltCisiIExhbmd1YWdlOiAgICAgUGVybCA1CisiIE1haW50YWluZXI6ICAgQW5keSBMZXN0ZXIgPGFuZHlAcGV0ZGFuY2UuY29tPgorIiBVUkw6ICAgICAgICAgIGh0dHA6Ly9naXRodWIuY29tL3BldGRhbmNlL3ZpbS1wZXJsL3RyZWUvbWFzdGVyCisiIExhc3QgQ2hhbmdlOiAgMjAwOS0wOS0yCisiIENvbnRyaWJ1dG9yczogQW5keSBMZXN0ZXIgPGFuZHlAcGV0ZGFuY2UuY29tPgorIiAgICAgICAgICAgICAgIEhpbnJpayDDlnJuIFNpZ3Vyw7Bzc29uIDxoaW5yaWsuc2lnQGdtYWlsLmNvbT4KKyIgICAgICAgICAgICAgICBMdWthcyBNYWkgPGwubWFpLndlYi5kZT4KKyIgICAgICAgICAgICAgICBOaWNrIEhpYm1hIDxuaWNrQHZhbi1sYWFyaG92ZW4ub3JnPgorIiAgICAgICAgICAgICAgIFNvbmlhIEhlaW1hbm4gPG5pYW5pYUBuZXRzdXJmLm9yZz4KKyIgICAgICAgICAgICAgICBhbmQgbWFueSBvdGhlcnMuCiAiCiAiIFBsZWFzZSBkb3dubG9hZCBtb3N0IHJlY2VudCB2ZXJzaW9uIGZpcnN0IGJlZm9yZSBtYWlsaW5nCiAiIGFueSBjb21tZW50cy4KLSIgU2VlIGFsc28gdGhlIGZpbGUgcGVybC52aW0ucmVncmVzc2lvbi5wbCB0byBjaGVjayB3aGV0aGVyIHlvdXIKLSIgbW9kaWZpY2F0aW9ucyB3b3JrIGluIHRoZSBtb3N0IG9kZCBjYXNlcwotIiBodHRwOi8vd3d3LnZhbi1sYWFyaG92ZW4ub3JnL3ZpbS9zeW50YXgvcGVybC52aW0ucmVncmVzc2lvbi5wbAogIgotIiBPcmlnaW5hbCB2ZXJzaW9uOiBTb25pYSBIZWltYW5uIDxuaWFuaWFAbmV0c3VyZi5vcmc+Ci0iIFRoYW5rcyB0byBtYW55IHBlb3BsZSBmb3IgdGhlaXIgY29udHJpYnV0aW9uLgotCiAiIFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlIGZvciB0dW5pbmcgdGhlCiAiIHBlcmwgc3ludGF4IGhpZ2hsaWdodGluZywgd2l0aCBkZWZhdWx0cyBnaXZlbjoKICIKICIgdW5sZXQgcGVybF9pbmNsdWRlX3BvZAotIiB1bmxldCBwZXJsX3dhbnRfc2NvcGVfaW5fdmFyaWFibGVzCi0iIHVubGV0IHBlcmxfZXh0ZW5kZWRfdmFycworIiB1bmxldCBwZXJsX25vX3Njb3BlX2luX3ZhcmlhYmxlcworIiB1bmxldCBwZXJsX25vX2V4dGVuZGVkX3ZhcnMKICIgdW5sZXQgcGVybF9zdHJpbmdfYXNfc3RhdGVtZW50CiAiIHVubGV0IHBlcmxfbm9fc3luY19vbl9zdWIKICIgdW5sZXQgcGVybF9ub19zeW5jX29uX2dsb2JhbF92YXIKQEAgLTI4LDE3ICsyOCwzNyBAQAogIiBsZXQgcGVybF9ub2ZvbGRfcGFja2FnZXMgPSAxCiAiIGxldCBwZXJsX25vZm9sZF9zdWJzID0gMQogCi0iIFJlbW92ZSBhbnkgb2xkIHN5bnRheCBzdHVmZiB0aGF0IHdhcyBsb2FkZWQgKDUueCkgb3IgcXVpdCB3aGVuIGEgc3ludGF4IGZpbGUKLSIgd2FzIGFscmVhZHkgbG9hZGVkICg2LngpLgogaWYgdmVyc2lvbiA8IDYwMAotICBzeW50YXggY2xlYXIKKyAgZWNob2VyciAiPj12aW0tNi4wIGlzIHJlcXVpcmVkIHRvIHJ1biBwZXJsLnZpbSIKKyAgZmluaXNoCiBlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCiBlbmRpZgogCi0iIFVuc2V0IHBlcmxfZm9sZCBpZiBpdCBzZXQgYnV0IHZpbSBkb2Vzbid0IHN1cHBvcnQgaXQuCi1pZiB2ZXJzaW9uIDwgNjAwICYmIGV4aXN0cygicGVybF9mb2xkIikKLSAgdW5sZXQgcGVybF9mb2xkCisiCisiIEZvbGRpbmcKKworaWYgZXhpc3RzKCJwZXJsX2ZvbGQiKQorICAiIE5vdGU6IHRoaXMgYml0IG11c3QgY29tZSBiZWZvcmUgdGhlIGFjdHVhbCBoaWdobGlnaHRpbmcgb2YgdGhlICJwYWNrYWdlIgorICAiIGtleXdvcmQsIG90aGVyd2lzZSB0aGlzIHdpbGwgc2NyZXcgdXAgUG9kIGxpbmVzIHRoYXQgbWF0Y2ggL15wYWNrYWdlLworICBpZiAhZXhpc3RzKCJwZXJsX25vZm9sZF9wYWNrYWdlcyIpCisgICAgc3luIHJlZ2lvbiBwZXJsUGFja2FnZUZvbGQgc3RhcnQ9Il5wYWNrYWdlIFxTXCs7XHMqXCUoIy4qXClcPSQiIGVuZD0iXjE7XD1ccypcJSgjLipcKVw9JCIgZW5kPSJcblwrcGFja2FnZSJtZT1zLTEgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kCisgIGVuZGlmCisgIGlmICFleGlzdHMoInBlcmxfbm9mb2xkX3N1YnMiKQorICAgIHN5biByZWdpb24gcGVybFN1YkZvbGQgICAgIHN0YXJ0PSJeXHooXHMqXClcPHN1Ylw+LipbXn07XSQiIGVuZD0iXlx6MX1ccypcJSgjLipcKVw9JCIgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kCisgICAgc3luIHJlZ2lvbiBwZXJsU3ViRm9sZCBzdGFydD0iXlx6KFxzKlwpXDxcJShCRUdJTlx8RU5EXHxDSEVDS1x8SU5JVFx8VU5JVENIRUNLXClcPi4qW159O10kIiBlbmQ9Il5cejF9XHMqJCIgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kCisgIGVuZGlmCisKKyAgaWYgZXhpc3RzKCJwZXJsX2ZvbGRfYmxvY2tzIikKKyAgICBzeW4gcmVnaW9uIHBlcmxCbG9ja0ZvbGQgc3RhcnQ9Il5ceihccypcKVwlKGlmXHxlbHNpZlx8dW5sZXNzXHxmb3JcfHdoaWxlXHx1bnRpbFx8Z2l2ZW5cKVxzKiguKilcJShccyp7XClcPVxzKlwlKCMuKlwpXD0kIiBzdGFydD0iXlx6KFxzKlwpZm9yZWFjaFxzKlwlKFwlKG15XHxvdXJcKVw9XHMqXFNcK1xzKlwpXD0oLiopXCUoXHMqe1wpXD1ccypcJSgjLipcKVw9JCIgZW5kPSJeXHoxfVxzKjtcPVwlKCMuKlwpXD0kIiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQKKyAgICBzeW4gcmVnaW9uIHBlcmxCbG9ja0ZvbGQgc3RhcnQ9Il5ceihccypcKVwlKGRvXHxlbHNlXClcJShccyp7XClcPVxzKlwlKCMuKlwpXD0kIiBlbmQ9Il5cejF9XHMqd2hpbGUiIGVuZD0iXlx6MX1ccyo7XD1cJSgjLipcKVw9JCIgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kCisgIGVuZGlmCisKKyAgc2V0bG9jYWwgZm9sZG1ldGhvZD1zeW50YXgKKyAgc3luIHN5bmMgZnJvbXN0YXJ0CitlbHNlCisgICIgZnJvbXN0YXJ0IGFib3ZlIHNlZW1zIHRvIHNldCBtaW5saW5lcyBldmVuIGlmIHBlcmxfZm9sZCBpcyBub3Qgc2V0LgorICBzeW4gc3luYyBtaW5saW5lcz0wCiBlbmRpZgogCiAKQEAgLTY1LDY0ICs4NSw0OCBAQAogZW5kaWYKIAogCitzeW4gY2x1c3RlciBwZXJsVG9wCQljb250YWlucz1UT1AKK3N5biByZWdpb24gIHBlcmxHZW5lcmljQmxvY2sJbWF0Y2hncm91cD1wZXJsR2VuZXJpY0Jsb2NrIHN0YXJ0PSJ7IiBlbmQ9In0iIGNvbnRhaW5lZCB0cmFuc3BhcmVudAorCisKICIgQWxsIGtleXdvcmRzCiAiCi1pZiBleGlzdHMoInBlcmxfZm9sZCIpICYmIGV4aXN0cygicGVybF9mb2xkX2Jsb2NrcyIpCi0gIHN5biBtYXRjaCBwZXJsQ29uZGl0aW9uYWwJCSJcPGlmXD4iCi0gIHN5biBtYXRjaCBwZXJsQ29uZGl0aW9uYWwJCSJcPGVsc2lmXD4iCi0gIHN5biBtYXRjaCBwZXJsQ29uZGl0aW9uYWwJCSJcPHVubGVzc1w+IgotICBzeW4gbWF0Y2ggcGVybENvbmRpdGlvbmFsCQkiXDxlbHNlXD4iIG5leHRncm91cD1wZXJsRWxzZUlmRXJyb3Igc2tpcHdoaXRlIHNraXBubCBza2lwZW1wdHkKLWVsc2UKLSAgc3luIGtleXdvcmQgcGVybENvbmRpdGlvbmFsCQlpZiBlbHNpZiB1bmxlc3MKLSAgc3luIGtleXdvcmQgcGVybENvbmRpdGlvbmFsCQllbHNlIG5leHRncm91cD1wZXJsRWxzZUlmRXJyb3Igc2tpcHdoaXRlIHNraXBubCBza2lwZW1wdHkKLWVuZGlmCi1zeW4ga2V5d29yZCBwZXJsQ29uZGl0aW9uYWwJCXN3aXRjaCBlcSBuZSBndCBsdCBnZSBsZSBjbXAgbm90IGFuZCBvciB4b3IgZXJyCi1pZiBleGlzdHMoInBlcmxfZm9sZCIpICYmIGV4aXN0cygicGVybF9mb2xkX2Jsb2NrcyIpCi0gIHN5biBtYXRjaCBwZXJsUmVwZWF0CQkJIlw8d2hpbGVcPiIKLSAgc3luIG1hdGNoIHBlcmxSZXBlYXQJCQkiXDxmb3JcPiIKLSAgc3luIG1hdGNoIHBlcmxSZXBlYXQJCQkiXDxmb3JlYWNoXD4iCi0gIHN5biBtYXRjaCBwZXJsUmVwZWF0CQkJIlw8ZG9cPiIKLSAgc3luIG1hdGNoIHBlcmxSZXBlYXQJCQkiXDx1bnRpbFw+IgotICBzeW4gbWF0Y2ggcGVybFJlcGVhdAkJCSJcPGNvbnRpbnVlXD4iCi1lbHNlCi0gIHN5biBrZXl3b3JkIHBlcmxSZXBlYXQJCXdoaWxlIGZvciBmb3JlYWNoIGRvIHVudGlsIGNvbnRpbnVlCi1lbmRpZgotc3luIGtleXdvcmQgcGVybE9wZXJhdG9yCQlkZWZpbmVkIHVuZGVmIGFuZCBvciBub3QgYmxlc3MgcmVmCi1pZiBleGlzdHMoInBlcmxfZm9sZCIpCi0gICIgaWYgQkVHSU4vRU5EIHdvdWxkIGJlIGEga2V5d29yZCB0aGUgcGVybEJFR0lORU5ERm9sZCBkb2VzIG5vdCB3b3JrCi0gIHN5biBtYXRjaCBwZXJsQ29udHJvbAkJCSJcPEJFR0lOXHxDSEVDS1x8SU5JVFx8RU5EXD4iIGNvbnRhaW5lZAotZWxzZQotICBzeW4ga2V5d29yZCBwZXJsQ29udHJvbAkJQkVHSU4gRU5EIENIRUNLIElOSVQKLWVuZGlmCitzeW4gbWF0Y2ggcGVybENvbmRpdGlvbmFsCQkiXDxcJShpZlx8ZWxzaWZcfHVubGVzc1x8Z2l2ZW5cfHdoZW5cfGRlZmF1bHRcKVw+Igorc3luIG1hdGNoIHBlcmxDb25kaXRpb25hbAkJIlw8ZWxzZVw+IiBuZXh0Z3JvdXA9cGVybEVsc2VJZkVycm9yIHNraXB3aGl0ZSBza2lwbmwgc2tpcGVtcHR5CitzeW4gbWF0Y2ggcGVybFJlcGVhdAkJCSJcPFwlKHdoaWxlXHxmb3JcJShlYWNoXClcPVx8ZG9cfHVudGlsXHxjb250aW51ZVwpXD4iCitzeW4gbWF0Y2ggcGVybE9wZXJhdG9yCQkJIlw8XCUoZGVmaW5lZFx8dW5kZWZcfGVxXHxuZVx8W2dsXVtldF1cfGNtcFx8bm90XHxhbmRcfG9yXHx4b3JcfG5vdFx8Ymxlc3NcfHJlZlx8ZG9cKVw+Igorc3luIG1hdGNoIHBlcmxDb250cm9sCQkJIlw8XCUoQkVHSU5cfENIRUNLXHxJTklUXHxFTkRcfFVOSVRDSEVDS1wpXD4iCiAKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRTdG9yYWdlCW15IGxvY2FsIG91cgotc3luIGtleXdvcmQgcGVybFN0YXRlbWVudENvbnRyb2wJZ290byByZXR1cm4gbGFzdCBuZXh0IHJlZG8KLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRTY2FsYXIJCWNob21wIGNob3AgY2hyIGNyeXB0IGluZGV4IGxjIGxjZmlyc3QgbGVuZ3RoIG9yZCBwYWNrIHJldmVyc2UgcmluZGV4IHNwcmludGYgc3Vic3RyIHVjIHVjZmlyc3QKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRSZWdleHAJCXBvcyBxdW90ZW1ldGEgc3BsaXQgc3R1ZHkKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnROdW1lcmljCWFicyBhdGFuMiBjb3MgZXhwIGhleCBpbnQgbG9nIG9jdCByYW5kIHNpbiBzcXJ0IHNyYW5kCi1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50TGlzdAkJc3BsaWNlIHVuc2hpZnQgc2hpZnQgcHVzaCBwb3Agc3BsaXQgam9pbiByZXZlcnNlIGdyZXAgbWFwIHNvcnQgdW5wYWNrCi1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50SGFzaAkJZWFjaCBleGlzdHMga2V5cyB2YWx1ZXMgdGllIHRpZWQgdW50aWUKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRJT2Z1bmMJCWNhcnAgY29uZmVzcyBjcm9hayBkYm1jbG9zZSBkYm1vcGVuIGRpZSBzeXNjYWxsCi1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50RmlsZWRlc2MJYmlubW9kZSBjbG9zZSBjbG9zZWRpciBlb2YgZmlsZW5vIGdldGMgbHN0YXQgcHJpbnQgcHJpbnRmIHJlYWRkaXIgcmVhZGxpbmUgcmVhZHBpcGUgcmV3aW5kZGlyIHNlbGVjdCBzdGF0IHRlbGwgdGVsbGRpciB3cml0ZSBuZXh0Z3JvdXA9cGVybEZpbGVkZXNjU3RhdGVtZW50Tm9jb21tYSBza2lwd2hpdGUKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRGaWxlZGVzYwlmY250bCBmbG9jayBpb2N0bCBvcGVuIG9wZW5kaXIgcmVhZCBzZWVrIHNlZWtkaXIgc3lzb3BlbiBzeXNyZWFkIHN5c3NlZWsgc3lzd3JpdGUgdHJ1bmNhdGUgbmV4dGdyb3VwPXBlcmxGaWxlZGVzY1N0YXRlbWVudENvbW1hIHNraXB3aGl0ZQotc3luIGtleXdvcmQgcGVybFN0YXRlbWVudFZlY3RvcgkJcGFjayB2ZWMKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRGaWxlcwkJY2hkaXIgY2htb2QgY2hvd24gY2hyb290IGdsb2IgbGluayBta2RpciByZWFkbGluayByZW5hbWUgcm1kaXIgc3ltbGluayB1bWFzayB1bmxpbmsgdXRpbWUKLXN5biBtYXRjaCAgIHBlcmxTdGF0ZW1lbnRGaWxlcwkJIi1bcnd4b1JXWE9lenNmZGxwU2JjdHVna1RCTUFDXVw+Igotc3luIGtleXdvcmQgcGVybFN0YXRlbWVudEZsb3cJCWNhbGxlciBkaWUgZHVtcCBldmFsIGV4aXQgd2FudGFycmF5Ci1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50SW5jbHVkZQlyZXF1aXJlCi1zeW4gbWF0Y2ggICBwZXJsU3RhdGVtZW50SW5jbHVkZQkiXDxcKHVzZVx8bm9cKVxzXCtcKFwoaW50ZWdlclx8c3RyaWN0XHxsaWJcfHNpZ3RyYXBcfHN1YnNcfHZhcnNcfHdhcm5pbmdzXHx1dGY4XHxieXRlXHxiYXNlXHxmaWVsZHNcKVw+XClcPSIKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRTY29wZQkJaW1wb3J0Ci1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50UHJvYwkJYWxhcm0gZXhlYyBmb3JrIGdldHBncnAgZ2V0cHBpZCBnZXRwcmlvcml0eSBraWxsIHBpcGUgc2V0cGdycCBzZXRwcmlvcml0eSBzbGVlcCBzeXN0ZW0gdGltZXMgd2FpdCB3YWl0cGlkCi1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50U29ja2V0CQlhY2NlcHQgYmluZCBjb25uZWN0IGdldHBlZXJuYW1lIGdldHNvY2tuYW1lIGdldHNvY2tvcHQgbGlzdGVuIHJlY3Ygc2VuZCBzZXRzb2Nrb3B0IHNodXRkb3duIHNvY2tldCBzb2NrZXRwYWlyCi1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50SVBDCQltc2djdGwgbXNnZ2V0IG1zZ3JjdiBtc2dzbmQgc2VtY3RsIHNlbWdldCBzZW1vcCBzaG1jdGwgc2htZ2V0IHNobXJlYWQgc2htd3JpdGUKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnROZXR3b3JrCWVuZGhvc3RlbnQgZW5kbmV0ZW50IGVuZHByb3RvZW50IGVuZHNlcnZlbnQgZ2V0aG9zdGJ5YWRkciBnZXRob3N0YnluYW1lIGdldGhvc3RlbnQgZ2V0bmV0YnlhZGRyIGdldG5ldGJ5bmFtZSBnZXRuZXRlbnQgZ2V0cHJvdG9ieW5hbWUgZ2V0cHJvdG9ieW51bWJlciBnZXRwcm90b2VudCBnZXRzZXJ2YnluYW1lIGdldHNlcnZieXBvcnQgZ2V0c2VydmVudCBzZXRob3N0ZW50IHNldG5ldGVudCBzZXRwcm90b2VudCBzZXRzZXJ2ZW50Ci1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50UHdvcmQJCWdldHB3dWlkIGdldHB3bmFtIGdldHB3ZW50IHNldHB3ZW50IGVuZHB3ZW50IGdldGdyZW50IGdldGdyZ2lkIGdldGxvZ2luIGdldGdybmFtIHNldGdyZW50IGVuZGdyZW50Ci1zeW4ga2V5d29yZCBwZXJsU3RhdGVtZW50VGltZQkJZ210aW1lIGxvY2FsdGltZSB0aW1lIHRpbWVzCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudFN0b3JhZ2UJCSJcPFwlKG15XHxvdXJcfGxvY2FsXHxzdGF0ZVwpXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudENvbnRyb2wJCSJcPFwlKHJldHVyblx8bGFzdFx8bmV4dFx8cmVkb1x8Z290b1x8YnJlYWtcKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRTY2FsYXIJCSJcPFwlKGNob21cPXBcfGNoclx8Y3J5cHRcfHJcPWluZGV4XHxsY1wlKGZpcnN0XClcPVx8bGVuZ3RoXHxvcmRcfHBhY2tcfHNwcmludGZcfHN1YnN0clx8dWNcJShmaXJzdFwpXD1cKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRSZWdleHAJCSJcPFwlKHBvc1x8cXVvdGVtZXRhXHxzcGxpdFx8c3R1ZHlcKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnROdW1lcmljCQkiXDxcJShhYnNcfGF0YW4yXHxjb3NcfGV4cFx8aGV4XHxpbnRcfGxvZ1x8b2N0XHxyYW5kXHxzaW5cfHNxcnRcfHNyYW5kXClcPiIKK3N5biBtYXRjaCBwZXJsU3RhdGVtZW50TGlzdAkJIlw8XCUoc3BsaWNlXHx1bnNoaWZ0XHxzaGlmdFx8cHVzaFx8cG9wXHxqb2luXHxyZXZlcnNlXHxncmVwXHxtYXBcfHNvcnRcfHVucGFja1wpXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudEhhc2gJCSJcPFwlKGRlbGV0ZVx8ZWFjaFx8ZXhpc3RzXHxrZXlzXHx2YWx1ZXNcKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRJT2Z1bmMJCSJcPFwlKHN5c2NhbGxcfGRibW9wZW5cfGRibWNsb3NlXClcPiIKK3N5biBtYXRjaCBwZXJsU3RhdGVtZW50RmlsZWRlc2MJCSJcPFwlKGJpbm1vZGVcfGNsb3NlXCUoZGlyXClcPVx8ZW9mXHxmaWxlbm9cfGdldGNcfGxzdGF0XHxwcmludGZcPVx8cmVhZFwlKGRpclx8bGluZVx8cGlwZVwpXHxyZXdpbmRkaXJcfHNheVx8c2VsZWN0XHxzdGF0XHx0ZWxsXCUoZGlyXClcPVx8d3JpdGVcKVw+IiBuZXh0Z3JvdXA9cGVybEZpbGVkZXNjU3RhdGVtZW50Tm9jb21tYSBza2lwd2hpdGUKK3N5biBtYXRjaCBwZXJsU3RhdGVtZW50RmlsZWRlc2MJCSJcPFwlKGZjbnRsXHxmbG9ja1x8aW9jdGxcfG9wZW5cJShkaXJcKVw9XHxyZWFkXHxzZWVrXCUoZGlyXClcPVx8c3lzXCUob3Blblx8cmVhZFx8c2Vla1x8d3JpdGVcKVx8dHJ1bmNhdGVcKVw+IiBuZXh0Z3JvdXA9cGVybEZpbGVkZXNjU3RhdGVtZW50Q29tbWEgc2tpcHdoaXRlCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudFZlY3RvcgkJIlw8dmVjXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudEZpbGVzCQkiXDxcJShjaFwlKGRpclx8bW9kXHxvd25cfHJvb3RcKVx8Z2xvYlx8bGlua1x8bWtkaXJcfHJlYWRsaW5rXHxyZW5hbWVcfHJtZGlyXHxzeW1saW5rXHx1bWFza1x8dW5saW5rXHx1dGltZVwpXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudEZpbGVzCQkiLVtyd3hvUldYT2V6c2ZkbHBTYmN0dWdrVEJNQUNdXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudEZsb3cJCSJcPFwlKGNhbGxlclx8ZGllXHxkdW1wXHxldmFsXHxleGl0XHx3YW50YXJyYXlcKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRJbmNsdWRlCQkiXDxyZXF1aXJlXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudEluY2x1ZGUJCSJcPFwlKHVzZVx8bm9cKVxzXCtcJShcJShhdHRyaWJ1dGVzXHxhdHRyc1x8YXV0b3VzZVx8cGFyZW50XHxiYXNlXHxiaWdcJShpbnRcfG51bVx8cmF0XClcfGJsaWJcfGJ5dGVzXHxjaGFybmFtZXNcfGNvbnN0YW50XHxkaWFnbm9zdGljc1x8ZW5jb2RpbmdcJSg6Ondhcm5pbmdzXClcPVx8ZmVhdHVyZVx8ZmllbGRzXHxmaWxldGVzdFx8aWZcfGludGVnZXJcfGxlc3NcfGxpYlx8bG9jYWxlXHxtcm9cfG9wZW5cfG9wc1x8b3ZlcmxvYWRcfHJlXHxzaWd0cmFwXHxzb3J0XHxzdHJpY3RcfHN1YnNcfHRocmVhZHNcJSg6OnNoYXJlZFwpXD1cfHV0ZjhcfHZhcnNcfHZlcnNpb25cfHZtc2lzaFx8d2FybmluZ3NcJSg6OnJlZ2lzdGVyXClcPVwpXD5cKVw9Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRQcm9jCQkiXDxcJShhbGFybVx8ZXhlY1x8Zm9ya1x8Z2V0XCUocGdycFx8cHBpZFx8cHJpb3JpdHlcKVx8a2lsbFx8cGlwZVx8c2V0XCUocGdycFx8cHJpb3JpdHlcKVx8c2xlZXBcfHN5c3RlbVx8dGltZXNcfHdhaXRcJShwaWRcKVw9XClcPiIKK3N5biBtYXRjaCBwZXJsU3RhdGVtZW50U29ja2V0CQkiXDxcJShhY2VwdFx8YmluZFx8Y29ubmVjdFx8Z2V0XCUocGVlcm5hbWVcfHNvY2tcJShuYW1lXHxvcHRcKVwpXHxsaXN0ZW5cfHJlY3ZcfHNlbmRcfHNldHNvY2tvcHRcfHNodXRkb3duXHxzb2NrZXRcJShwYWlyXClcPVwpXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudElQQwkJIlw8XCUobXNnXCUoY3RsXHxnZXRcfHJjdlx8c25kXClcfHNlbVwlKGN0bFx8Z2V0XHxvcFwpXHxzaG1cJShjdGxcfGdldFx8cmVhZFx8d3JpdGVcKVwpXD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudE5ldHdvcmsJCSJcPFwlKFwlKGVuZFx8W2dzXWV0XClcJShob3N0XHxuZXRcfHByb3RvXHxzZXJ2XCllbnRcfGdldFwlKFwlKGhvc3RcfG5ldFwpYnlcJShhZGRyXHxuYW1lXClcfHByb3RvYnlcJShuYW1lXHxudW1iZXJcKVx8c2VydmJ5XCUobmFtZVx8cG9ydFwpXClcKVw+Igorc3luIG1hdGNoIHBlcmxTdGF0ZW1lbnRQd29yZAkJIlw8XCUoZ2V0XCUocHdcJSh1aWRcfG5hbVwpXHxnclwlKGdpZFx8bmFtXClcfGxvZ2luXClcKVx8XCUoZW5kXHxbZ3NdZXRcKVwlKHB3XHxnclwpZW50XD4iCitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudFRpbWUJCSJcPFwlKGdtdGltZVx8bG9jYWx0aW1lXHx0aW1lXClcPiIKIAotc3luIGtleXdvcmQgcGVybFN0YXRlbWVudE1pc2MJCXdhcm4gZm9ybWxpbmUgcmVzZXQgc2NhbGFyIGRlbGV0ZSBwcm90b3R5cGUgbG9jawotc3luIGtleXdvcmQgcGVybFN0YXRlbWVudE5ldwkJbmV3CitzeW4gbWF0Y2ggcGVybFN0YXRlbWVudE1pc2MJCSJcPFwlKHdhcm5cfGZvcm1saW5lXHxyZXNldFx8c2NhbGFyXHxwcm90b3R5cGVcfGxvY2tcfHRpZWRcPVx8dW50aWVcKVw+IgogCi1zeW4ga2V5d29yZCBwZXJsVG9kbwkJCVRPRE8gVEJEIEZJWE1FIFhYWCBjb250YWluZWQKK3N5biBrZXl3b3JkIHBlcmxUb2RvCQkJVE9ETyBUQkQgRklYTUUgWFhYIE5PVEUgY29udGFpbmVkCisKK3N5biByZWdpb24gcGVybFN0YXRlbWVudEluZGlyT2JqV3JhcAltYXRjaGdyb3VwPXBlcmxTdGF0ZW1lbnRJbmRpck9iaiBzdGFydD0iXDxcJShtYXBcfGdyZXBcfHNvcnRcfHByaW50XHxzeXN0ZW1cfGV4ZWNcKVw+XHMqeyIgZW5kPSJ9IiBjb250YWlucz1AcGVybFRvcCxwZXJsR2VuZXJpY0Jsb2NrCisKK3N5biBtYXRjaCBwZXJsTGFiZWwgICAgICAiXlxzKlxoXHcqXHMqOjpcQCFcJShcPHZcZFwrXHMqOlwpXEA8ISIKIAogIiBQZXJsIElkZW50aWZpZXJzLgogIgpAQCAtMTM1LDUyICsxMzksNTUgQEAKICIgdmFyaWFibGUgLSB0aGVyZSBhZ2FpbiwgdG9vIGNvbXBsaWNhdGVkIGFuZCB0b28gc2xvdy4KIAogIiBTcGVjaWFsIHZhcmlhYmxlcyBmaXJzdCAoJF5BLCAuLi4pIGFuZCAoJHwsICQnLCAuLi4pCi1zeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbgkJICIkXltBREVGSElMTU9QU1RXWF1cPSIKK3N5biBtYXRjaCAgcGVybFZhclBsYWluCQkgIiReW0FDREVGSElMTU5PUFJTVFZXWF1cPSIKIHN5biBtYXRjaCAgcGVybFZhclBsYWluCQkgIiRbXFxcIlxbXF0nJmArKi4sOz0lfiE/QCMkPD4oLV0iCi1zeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbgkJICIkXCgwXHxbMS05XVswLTldKlwpIgorc3luIG1hdGNoICBwZXJsVmFyUGxhaW4JCSAiJFwlKDBcfFsxLTldXGQqXCkiCiAiIFNhbWUgYXMgYWJvdmUsIGJ1dCBhdm9pZHMgY29uZnVzaW9uIGluICQ6OmZvbyAoZXF1aXZhbGVudCB0byAkbWFpbjo6Zm9vKQotc3luIG1hdGNoICBwZXJsVmFyUGxhaW4JCSAiJDpbXjpdIgorc3luIG1hdGNoICBwZXJsVmFyUGxhaW4JCSAiJDo6XEAhIgogIiBUaGVzZSB2YXJpYWJsZXMgYXJlIG5vdCByZWNvZ25pemVkIHdpdGhpbiBtYXRjaGVzLgogc3luIG1hdGNoICBwZXJsVmFyTm90SW5NYXRjaGVzCSAiJFt8KV0iCiAiIFRoaXMgdmFyaWFibGUgaXMgbm90IHJlY29nbml6ZWQgd2l0aGluIG1hdGNoZXMgZGVsaW1pdGVkIGJ5IG0vLy4KIHN5biBtYXRjaCAgcGVybFZhclNsYXNoCQkgIiQvIgogCiAiIEFuZCBwbGFpbiBpZGVudGlmaWVycwotc3luIG1hdGNoICBwZXJsUGFja2FnZVJlZgkgIlwoXGhcdypcKVw9XCg6Olx8J1wpXEkibWU9ZS0xIGNvbnRhaW5lZAorc3luIG1hdGNoICBwZXJsUGFja2FnZVJlZgkgIlskQCMlKiZdXCUoXCUoOjpcfCdcKVw9XElcaSpcJShcJSg6Olx8J1wpXElcaSpcKSpcKVw9XCUoOjpcfCdcKVxJIm1zPXMrMSxtZT1lLTEgY29udGFpbmVkCiAKLSIgVG8gaGlnaGxpZ2h0IHBhY2thZ2VzIGluIHZhcmlhYmxlcyBhcyBhIHNjb3BlIHJlZmVyZW5jZSAtIGkuZS4gaW4gJHBhY2s6OnZhciwKLSIgcGFjazo6IGlzIGEgc2NvcGUsIGp1c3Qgc2V0ICJwZXJsX3dhbnRfc2NvcGVfaW5fdmFyaWFibGVzIgotIiBJZiB5b3UgKndhbnQqIGNvbXBsZXggdGhpbmdzIGxpa2UgQHskeyJmb28ifX0gdG8gYmUgcHJvY2Vzc2VkLAotIiBqdXN0IHNldCB0aGUgdmFyaWFibGUgInBlcmxfZXh0ZW5kZWRfdmFycyIuLi4KKyIgVG8gbm90IGhpZ2hsaWdodCBwYWNrYWdlcyBpbiB2YXJpYWJsZXMgYXMgYSBzY29wZSByZWZlcmVuY2UgLSBpLmUuIGluCisiICRwYWNrOjp2YXIsIHBhY2s6OiBpcyBhIHNjb3BlLCBqdXN0IHNldCAicGVybF9ub19zY29wZV9pbl92YXJpYWJsZXMiCisiIElmIHlvdSBkb24ndCB3YW50IGNvbXBsZXggdGhpbmdzIGxpa2UgQHskeyJmb28ifX0gdG8gYmUgcHJvY2Vzc2VkLAorIiBqdXN0IHNldCB0aGUgdmFyaWFibGUgInBlcmxfbm9fZXh0ZW5kZWRfdmFycyIuLi4KIAotIiBGSVhNRSB2YWx1ZSBiZXR3ZWVuIHt9IHNob3VsZCBiZSBtYXJrZWQgYXMgc3RyaW5nLiBpcyB0cmVhdGVkIGFzIHN1Y2ggYnkgUGVybC4KLSIgQXQgdGhlIG1vbWVudCBpdCBpcyBtYXJrZWQgYXMgc29tZXRoaW5nIGdyZXlpc2ggaW5zdGVhZCBvZiByZWFkLiBQcm9iYWJseSB0b2RvCi0iIHdpdGggdHJhbnNwYXJlbmN5LiBPciBtYXliZSB3ZSBzaG91bGQgaGFuZGxlIHRoZSBiYXJlIHdvcmQgaW4gdGhhdCBjYXNlLiBvciBtYWtlIGl0IGludG8KLQotaWYgZXhpc3RzKCJwZXJsX3dhbnRfc2NvcGVfaW5fdmFyaWFibGVzIikKLSAgc3luIG1hdGNoICBwZXJsVmFyUGxhaW4JIlxcXD1cKFtAJF1cfFwkI1wpXCQqXChcSVxpKlwpXD1cKFwoOjpcfCdcKVxJXGkqXCkqXD4iIGNvbnRhaW5zPXBlcmxQYWNrYWdlUmVmIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZAotICBzeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbjIJIlxcXD0lXCQqXChcSVxpKlwpXD1cKFwoOjpcfCdcKVxJXGkqXCkqXD4iIGNvbnRhaW5zPXBlcmxQYWNrYWdlUmVmIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZAotICBzeW4gbWF0Y2ggIHBlcmxGdW5jdGlvbk5hbWUJIlxcXD0mXCQqXChcSVxpKlwpXD1cKFwoOjpcfCdcKVxJXGkqXCkqXD4iIGNvbnRhaW5zPXBlcmxQYWNrYWdlUmVmIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIKK2lmICFleGlzdHMoInBlcmxfbm9fc2NvcGVfaW5fdmFyaWFibGVzIikKKyAgc3luIG1hdGNoICBwZXJsVmFyUGxhaW4gICAgICAgIlwlKFtAJF1cfFwkI1wpXCQqXCUoXElcaSpcKVw9XCUoXCUoOjpcfCdcKVxJXGkqXCkqXCUoOjpcfFxpXEA8PVwpIiBjb250YWlucz1wZXJsUGFja2FnZVJlZiBuZXh0Z3JvdXA9cGVybFZhck1lbWJlcixwZXJsVmFyU2ltcGxlTWVtYmVyLHBlcmxNZXRob2QKKyAgc3luIG1hdGNoICBwZXJsVmFyUGxhaW4yICAgICAgICAgICAgICAgICAgICIlXCQqXCUoXElcaSpcKVw9XCUoXCUoOjpcfCdcKVxJXGkqXCkqXCUoOjpcfFxpXEA8PVwpIiBjb250YWlucz1wZXJsUGFja2FnZVJlZgorICBzeW4gbWF0Y2ggIHBlcmxGdW5jdGlvbk5hbWUgICAgICAgICAgICAgICAgIiZcJCpcJShcSVxpKlwpXD1cJShcJSg6Olx8J1wpXElcaSpcKSpcJSg6Olx8XGlcQDw9XCkiIGNvbnRhaW5zPXBlcmxQYWNrYWdlUmVmIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZAogZWxzZQotICBzeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbgkiXFxcPVwoW0AkXVx8XCQjXClcJCpcKFxJXGkqXClcPVwoXCg6Olx8J1wpXElcaSpcKSpcPiIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCi0gIHN5biBtYXRjaCAgcGVybFZhclBsYWluMgkiXFxcPSVcJCpcKFxJXGkqXClcPVwoXCg6Olx8J1wpXElcaSpcKSpcPiIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCi0gIHN5biBtYXRjaCAgcGVybEZ1bmN0aW9uTmFtZQkiXFxcPSZcJCpcKFxJXGkqXClcPVwoXCg6Olx8J1wpXElcaSpcKSpcPiIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcgorICBzeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbiAgICAgICAiXCUoW0AkXVx8XCQjXClcJCpcJShcSVxpKlwpXD1cJShcJSg6Olx8J1wpXElcaSpcKSpcJSg6Olx8XGlcQDw9XCkiIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZAorICBzeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbjIgICAgICAgICAgICAgICAgICAgIiVcJCpcJShcSVxpKlwpXD1cJShcJSg6Olx8J1wpXElcaSpcKSpcJSg6Olx8XGlcQDw9XCkiCisgIHN5biBtYXRjaCAgcGVybEZ1bmN0aW9uTmFtZSAgICAgICAgICAgICAgICAiJlwkKlwlKFxJXGkqXClcPVwlKFwlKDo6XHwnXClcSVxpKlwpKlwlKDo6XHxcaVxAPD1cKSIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCiBlbmRpZgogCi1pZiBleGlzdHMoInBlcmxfZXh0ZW5kZWRfdmFycyIpCi0gIHN5biBjbHVzdGVyIHBlcmxFeHByCQljb250YWlucz1wZXJsU3RhdGVtZW50U2NhbGFyLHBlcmxTdGF0ZW1lbnRSZWdleHAscGVybFN0YXRlbWVudE51bWVyaWMscGVybFN0YXRlbWVudExpc3QscGVybFN0YXRlbWVudEhhc2gscGVybFN0YXRlbWVudEZpbGVzLHBlcmxTdGF0ZW1lbnRUaW1lLHBlcmxTdGF0ZW1lbnRNaXNjLHBlcmxWYXJQbGFpbixwZXJsVmFyUGxhaW4yLHBlcmxWYXJOb3RJbk1hdGNoZXMscGVybFZhclNsYXNoLHBlcmxWYXJCbG9jayxwZXJsU2hlbGxDb21tYW5kLHBlcmxGbG9hdCxwZXJsTnVtYmVyLHBlcmxTdHJpbmdVbmV4cGFuZGVkLHBlcmxTdHJpbmcscGVybFFRCi0gIHN5biByZWdpb24gcGVybFZhckJsb2NrCW1hdGNoZ3JvdXA9cGVybFZhclBsYWluIHN0YXJ0PSJcKCQjXHxbQCUkXVwpXCQqeyIgc2tpcD0iXFx9IiBlbmQ9In0iIGNvbnRhaW5zPUBwZXJsRXhwciBuZXh0Z3JvdXA9cGVybFZhck1lbWJlcixwZXJsVmFyU2ltcGxlTWVtYmVyCi0gIHN5biByZWdpb24gcGVybFZhckJsb2NrCW1hdGNoZ3JvdXA9cGVybFZhclBsYWluIHN0YXJ0PSImXCQqeyIgc2tpcD0iXFx9IiBlbmQ9In0iIGNvbnRhaW5zPUBwZXJsRXhwcgotICBzeW4gbWF0Y2ggIHBlcmxWYXJQbGFpbgkiXFxcPVwoXCQjXHxbQCUmJF1cKVwkKntcSVxpKn0iIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIKLSAgc3luIHJlZ2lvbiBwZXJsVmFyTWVtYmVyCW1hdGNoZ3JvdXA9cGVybFZhclBsYWluIHN0YXJ0PSJcKC0+XClcPXsiIHNraXA9IlxcfSIgZW5kPSJ9IiBjb250YWluZWQgY29udGFpbnM9QHBlcmxFeHByIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIKLSAgc3luIG1hdGNoICBwZXJsVmFyU2ltcGxlTWVtYmVyCSJcKC0+XClcPXtcSVxpKn0iIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIgY29udGFpbnM9cGVybFZhclNpbXBsZU1lbWJlck5hbWUgY29udGFpbmVkCitpZiAhZXhpc3RzKCJwZXJsX25vX2V4dGVuZGVkX3ZhcnMiKQorICBzeW4gY2x1c3RlciBwZXJsRXhwcgkJY29udGFpbnM9cGVybFN0YXRlbWVudEluZGlyT2JqV3JhcCxwZXJsU3RhdGVtZW50U2NhbGFyLHBlcmxTdGF0ZW1lbnRSZWdleHAscGVybFN0YXRlbWVudE51bWVyaWMscGVybFN0YXRlbWVudExpc3QscGVybFN0YXRlbWVudEhhc2gscGVybFN0YXRlbWVudEZpbGVzLHBlcmxTdGF0ZW1lbnRUaW1lLHBlcmxTdGF0ZW1lbnRNaXNjLHBlcmxWYXJQbGFpbixwZXJsVmFyUGxhaW4yLHBlcmxWYXJOb3RJbk1hdGNoZXMscGVybFZhclNsYXNoLHBlcmxWYXJCbG9jayxwZXJsVmFyQmxvY2syLHBlcmxTaGVsbENvbW1hbmQscGVybEZsb2F0LHBlcmxOdW1iZXIscGVybFN0cmluZ1VuZXhwYW5kZWQscGVybFN0cmluZyxwZXJsUVEscGVybEFycm93LHBlcmxHZW5lcmljQmxvY2sKKyAgc3luIHJlZ2lvbiBwZXJsQXJyb3cJCW1hdGNoZ3JvdXA9cGVybEFycm93IHN0YXJ0PSItPlxzKigiIGVuZD0iKSIgY29udGFpbnM9QHBlcmxFeHByIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZCBjb250YWluZWQKKyAgc3luIHJlZ2lvbiBwZXJsQXJyb3cJCW1hdGNoZ3JvdXA9cGVybEFycm93IHN0YXJ0PSItPlxzKlxbIiBlbmQ9IlxdIiBjb250YWlucz1AcGVybEV4cHIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kIGNvbnRhaW5lZAorICBzeW4gcmVnaW9uIHBlcmxBcnJvdwkJbWF0Y2hncm91cD1wZXJsQXJyb3cgc3RhcnQ9Ii0+XHMqeyIgZW5kPSJ9IiBjb250YWlucz1AcGVybEV4cHIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kIGNvbnRhaW5lZAorICBzeW4gbWF0Y2ggIHBlcmxBcnJvdwkJIi0+XHMqe1xzKlxJXGkqXHMqfSIgY29udGFpbnM9cGVybFZhclNpbXBsZU1lbWJlck5hbWUgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kIGNvbnRhaW5lZAorICBzeW4gcmVnaW9uIHBlcmxBcnJvdwkJbWF0Y2hncm91cD1wZXJsQXJyb3cgc3RhcnQ9Ii0+XHMqXCQqXElcaSpccyooIiBlbmQ9IikiIGNvbnRhaW5zPUBwZXJsRXhwciBuZXh0Z3JvdXA9cGVybFZhck1lbWJlcixwZXJsVmFyU2ltcGxlTWVtYmVyLHBlcmxNZXRob2QgY29udGFpbmVkCisgIHN5biByZWdpb24gcGVybFZhckJsb2NrCW1hdGNoZ3JvdXA9cGVybFZhclBsYWluIHN0YXJ0PSJcJSgkI1x8WyRAXVwpXCQqeyIgc2tpcD0iXFx9IiBlbmQ9In0iIGNvbnRhaW5zPUBwZXJsRXhwciBuZXh0Z3JvdXA9cGVybFZhck1lbWJlcixwZXJsVmFyU2ltcGxlTWVtYmVyLHBlcmxNZXRob2QKKyAgc3luIHJlZ2lvbiBwZXJsVmFyQmxvY2syCW1hdGNoZ3JvdXA9cGVybFZhclBsYWluIHN0YXJ0PSJbJSYqXVwkKnsiIHNraXA9IlxcfSIgZW5kPSJ9IiBjb250YWlucz1AcGVybEV4cHIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCisgIHN5biBtYXRjaCAgcGVybFZhclBsYWluMgkiWyUmKl1cJCp7XElcaSp9IiBuZXh0Z3JvdXA9cGVybFZhck1lbWJlcixwZXJsVmFyU2ltcGxlTWVtYmVyLHBlcmxNZXRob2QKKyAgc3luIG1hdGNoICBwZXJsVmFyUGxhaW4JIlwlKFwkI1x8W0AkXVwpXCQqe1xJXGkqfSIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCisgIHN5biByZWdpb24gcGVybFZhck1lbWJlcgltYXRjaGdyb3VwPXBlcmxWYXJQbGFpbiBzdGFydD0iXCUoLT5cKVw9eyIgc2tpcD0iXFx9IiBlbmQ9In0iIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEV4cHIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kCisgIHN5biBtYXRjaCAgcGVybFZhclNpbXBsZU1lbWJlcgkiXCUoLT5cKVw9e1xzKlxJXGkqXHMqfSIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcixwZXJsTWV0aG9kIGNvbnRhaW5zPXBlcmxWYXJTaW1wbGVNZW1iZXJOYW1lIGNvbnRhaW5lZAogICBzeW4gbWF0Y2ggIHBlcmxWYXJTaW1wbGVNZW1iZXJOYW1lCSJcSVxpKiIgY29udGFpbmVkCi0gIHN5biByZWdpb24gcGVybFZhck1lbWJlcgltYXRjaGdyb3VwPXBlcmxWYXJQbGFpbiBzdGFydD0iXCgtPlwpXD1cWyIgc2tpcD0iXFxdIiBlbmQ9Il0iIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEV4cHIgbmV4dGdyb3VwPXBlcmxWYXJNZW1iZXIscGVybFZhclNpbXBsZU1lbWJlcgotICBzeW4gbWF0Y2ggIHBlcmxNZXRob2QJCSJcKC0+XClcSVxpKiIgY29udGFpbmVkCisgIHN5biByZWdpb24gcGVybFZhck1lbWJlcgltYXRjaGdyb3VwPXBlcmxWYXJQbGFpbiBzdGFydD0iXCUoLT5cKVw9XFsiIHNraXA9IlxcXSIgZW5kPSJdIiBjb250YWluZWQgY29udGFpbnM9QHBlcmxFeHByIG5leHRncm91cD1wZXJsVmFyTWVtYmVyLHBlcmxWYXJTaW1wbGVNZW1iZXIscGVybE1ldGhvZAorICBzeW4gbWF0Y2ggcGVybFBhY2thZ2VDb25zdAkiX19QQUNLQUdFX18iIG5leHRncm91cD1wZXJsTWV0aG9kCisgIHN5biBtYXRjaCAgcGVybE1ldGhvZAkJIi0+XCQqXElcaSoiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9cGVybFZhclNpbXBsZU1lbWJlcixwZXJsVmFyTWVtYmVyLHBlcmxNZXRob2QKIGVuZGlmCiAKICIgRmlsZSBEZXNjcmlwdG9ycwotc3luIG1hdGNoICBwZXJsRmlsZWRlc2NSZWFkCSJbPF1caFx3XCtbPl0iCitzeW4gbWF0Y2ggIHBlcmxGaWxlZGVzY1JlYWQJIjxcaFx3Kj4iCiAKIHN5biBtYXRjaCAgcGVybEZpbGVkZXNjU3RhdGVtZW50Q29tbWEJIihcPVxzKlx1XHcqXHMqLCJtZT1lLTEgdHJhbnNwYXJlbnQgY29udGFpbmVkIGNvbnRhaW5zPXBlcmxGaWxlZGVzY1N0YXRlbWVudAogc3luIG1hdGNoICBwZXJsRmlsZWRlc2NTdGF0ZW1lbnROb2NvbW1hICIoXD1ccypcdVx3KlxzKlteLCBcdF0ibWU9ZS0xIHRyYW5zcGFyZW50IGNvbnRhaW5lZCBjb250YWlucz1wZXJsRmlsZWRlc2NTdGF0ZW1lbnQKQEAgLTE4OCwxNiArMTk1LDIwIEBACiBzeW4gbWF0Y2ggIHBlcmxGaWxlZGVzY1N0YXRlbWVudAkiXHVcdyoiIGNvbnRhaW5lZAogCiAiIFNwZWNpYWwgY2hhcmFjdGVycyBpbiBzdHJpbmdzIGFuZCBtYXRjaGVzCi1zeW4gbWF0Y2ggIHBlcmxTcGVjaWFsU3RyaW5nCSJcXFwoXGRcK1x8W3hYXVx4XCtcfGNcdVx8LlwpIiBjb250YWluZWQKLXN5biBtYXRjaCAgcGVybFNwZWNpYWxTdHJpbmdVCSJcXFsnXFxdIiBjb250YWluZWQKLXN5biBtYXRjaCAgcGVybFNwZWNpYWxNYXRjaAkie1xkXCtcKCxcKFxkXCtcKVw9XClcPX0iIGNvbnRhaW5lZAotc3luIG1hdGNoICBwZXJsU3BlY2lhbE1hdGNoCSJcW1woXF1cfC1cKVw9W15cW1xdXSpcKFxbXHxcLVwpXD1cXSIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsU3RyaW5nCSJcXFwlKFxvXHsxLDN9XHx4XCUoe1x4XCt9XHxceFx7MSwyfVwpXHxjLlx8W15jeF1cKSIgY29udGFpbmVkIGV4dGVuZAorc3luIG1hdGNoICBwZXJsU3BlY2lhbFN0cmluZ1UyCSJcXC4iIGV4dGVuZCBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQorc3luIG1hdGNoICBwZXJsU3BlY2lhbFN0cmluZ1UJIlxcXFwiIGNvbnRhaW5lZAorc3luIG1hdGNoICBwZXJsU3BlY2lhbE1hdGNoCSJcXFsxLTldIiBjb250YWluZWQgZXh0ZW5kCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIlxcZ1wlKFxkXCtcfHtcJSgtXD1cZFwrXHxcaFx3KlwpfVwpIiBjb250YWluZWQKK3N5biBtYXRjaCAgcGVybFNwZWNpYWxNYXRjaAkiXFxrXCUoPFxoXHcqPlx8J1xoXHcqJ1wpIiBjb250YWluZWQKK3N5biBtYXRjaCAgcGVybFNwZWNpYWxNYXRjaAkie1xkXCtcJSgsXCUoXGRcK1wpXD1cKVw9fSIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIlxbW10tXVw9W15cW1xdXSpbXS1dXD1cXSIgY29udGFpbmVkCiBzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIlsrKigpPy5dIiBjb250YWluZWQKIHN5biBtYXRjaCAgcGVybFNwZWNpYWxNYXRjaAkiKD9bIzo9IV0iIGNvbnRhaW5lZAotc3luIG1hdGNoICBwZXJsU3BlY2lhbE1hdGNoCSIoP1tpbXN4XVwrKSIgY29udGFpbmVkCi0iIEZJWE1FIHRoZSBsaW5lIGJlbG93IGRvZXMgbm90IHdvcmsuIEl0IHNob3VsZCBtYXJrIGVuZCBvZiBsaW5lIGFuZAotIiBiZWdpbiBvZiBsaW5lIGFzIHBlcmxTcGVjaWFsLgotIiBzeW4gbWF0Y2ggcGVybFNwZWNpYWxCRU9NICAgICJeXF5cfFwkJCIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIig/W2ltcHN4XSpcJSgtW2ltc3hdXCtcKVw9KSIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIig/XCUoWy0rXVw9XGRcK1x8UlwpKSIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIig/XCUoJlx8UFs+PV1cKVxoXHcqKSIgY29udGFpbmVkCitzeW4gbWF0Y2ggIHBlcmxTcGVjaWFsTWF0Y2gJIihcKlwlKFwlKFBSVU5FXHxTS0lQXHxUSEVOXClcJSg6W14pXSpcKVw9XHxcJShNQVJLXHxcKTpbXildKlx8Q09NTUlUXHxGXCUoQUlMXClcPVx8QUNDRVBUXCkpIiBjb250YWluZWQKIAogIiBQb3NzaWJsZSBlcnJvcnMKICIKQEAgLTIwNSwxNzcgKzIxNiwxOTUgQEAKIHN5biBtYXRjaCAgcGVybE5vdEVtcHR5TGluZQkiXlxzXCskIiBjb250YWluZWQKICIgSGlnaGxpZ2h0ICd9IGVsc2UgaWYgKC4uLikgeycsIGl0IHNob3VsZCBiZSAnfSBlbHNlIHsgaWYgKC4uLikgeyAnIG9yCiAiICd9IGVsc2lmICguLi4pIHsnLgotInN5biBrZXl3b3JkIHBlcmxFbHNlSWZFcnJvcglpZiBjb250YWluZWQKK3N5biBtYXRjaCBwZXJsRWxzZUlmRXJyb3IJIlteWzpzcGFjZTpde11cKyIgY29udGFpbmVkCiAKICIgVmFyaWFibGUgaW50ZXJwb2xhdGlvbgogIgogIiBUaGVzZSBpdGVtcyBhcmUgaW50ZXJwb2xhdGVkIGluc2lkZSAiIiBzdHJpbmdzIGFuZCBzaW1pbGFyIGNvbnN0cnVjdHMuCiBzeW4gY2x1c3RlciBwZXJsSW50ZXJwRFEJY29udGFpbnM9cGVybFNwZWNpYWxTdHJpbmcscGVybFZhclBsYWluLHBlcmxWYXJOb3RJbk1hdGNoZXMscGVybFZhclNsYXNoLHBlcmxWYXJCbG9jawogIiBUaGVzZSBpdGVtcyBhcmUgaW50ZXJwb2xhdGVkIGluc2lkZSAnJyBzdHJpbmdzIGFuZCBzaW1pbGFyIGNvbnN0cnVjdHMuCi1zeW4gY2x1c3RlciBwZXJsSW50ZXJwU1EJY29udGFpbnM9cGVybFNwZWNpYWxTdHJpbmdVCitzeW4gY2x1c3RlciBwZXJsSW50ZXJwU1EJY29udGFpbnM9cGVybFNwZWNpYWxTdHJpbmdVLHBlcmxTcGVjaWFsU3RyaW5nVTIKICIgVGhlc2UgaXRlbXMgYXJlIGludGVycG9sYXRlZCBpbnNpZGUgbS8vIG1hdGNoZXMgYW5kIHMvLy8gc3Vic3RpdHV0aW9ucy4KLXN5biBjbHVzdGVyIHBlcmxJbnRlcnBTbGFzaAljb250YWlucz1wZXJsU3BlY2lhbFN0cmluZyxwZXJsU3BlY2lhbE1hdGNoLHBlcmxWYXJQbGFpbixwZXJsVmFyQmxvY2sscGVybFNwZWNpYWxCRU9NCitzeW4gY2x1c3RlciBwZXJsSW50ZXJwU2xhc2gJY29udGFpbnM9cGVybFNwZWNpYWxTdHJpbmcscGVybFNwZWNpYWxNYXRjaCxwZXJsVmFyUGxhaW4scGVybFZhckJsb2NrCiAiIFRoZXNlIGl0ZW1zIGFyZSBpbnRlcnBvbGF0ZWQgaW5zaWRlIG0jIyBtYXRjaGVzIGFuZCBzIyMjIHN1YnN0aXR1dGlvbnMuCiBzeW4gY2x1c3RlciBwZXJsSW50ZXJwTWF0Y2gJY29udGFpbnM9QHBlcmxJbnRlcnBTbGFzaCxwZXJsVmFyU2xhc2gKIAogIiBTaGVsbCBjb21tYW5kcwotc3luIHJlZ2lvbiAgcGVybFNoZWxsQ29tbWFuZAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSJgIiBlbmQ9ImAiIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKK3N5biByZWdpb24gIHBlcmxTaGVsbENvbW1hbmQJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0iYCIgZW5kPSJgIiBjb250YWlucz1AcGVybEludGVycERRIGtlZXBlbmQKIAogIiBDb25zdGFudHMKICIKICIgTnVtYmVycwotc3luIG1hdGNoICBwZXJsTnVtYmVyCSJbLStdXD1cKFw8XGRbWzpkaWdpdDpdX10qTFw9XD5cfDBbeFhdXHhbWzp4ZGlnaXQ6XV9dKlw+XCkiCi1zeW4gbWF0Y2ggIHBlcmxGbG9hdAkiWy0rXVw9XDxcZFtbOmRpZ2l0Ol1fXSpbZUVdW1wtK11cPVxkXCsiCi1zeW4gbWF0Y2ggIHBlcmxGbG9hdAkiWy0rXVw9XDxcZFtbOmRpZ2l0Ol1fXSpcLltbOmRpZ2l0Ol1fXSpcKFtlRV1bXC0rXVw9XGRcK1wpXD0iCi1zeW4gbWF0Y2ggIHBlcmxGbG9hdAkiWy0rXVw9XDxcLltbOmRpZ2l0Ol1fXVwrXChbZUVdW1wtK11cPVxkXCtcKVw9Igorc3luIG1hdGNoICBwZXJsTnVtYmVyCSJcPFwlKDBcJSh4XHhbWzp4ZGlnaXQ6XV9dKlx8YlswMV1bMDFfXSpcfFxvWzAtN19dKlx8XClcfFsxLTldW1s6ZGlnaXQ6XV9dKlwpXD4iCitzeW4gbWF0Y2ggIHBlcmxGbG9hdAkiXDxcZFtbOmRpZ2l0Ol1fXSpbZUVdW1wtK11cPVxkXCsiCitzeW4gbWF0Y2ggIHBlcmxGbG9hdAkiXDxcZFtbOmRpZ2l0Ol1fXSpcLltbOmRpZ2l0Ol1fXSpcJShbZUVdW1wtK11cPVxkXCtcKVw9Igorc3luIG1hdGNoICBwZXJsRmxvYXQJIlwuW1s6ZGlnaXQ6XV9dXCtcJShbZUVdW1wtK11cPVxkXCtcKVw9IgorCitzeW4gbWF0Y2ggIHBlcmxTdHJpbmcJIlw8XCUodlxkXCtcJShcLlxkXCtcKSpcfFxkXCtcJShcLlxkXCtcKVx7Mix9XClcPiIgY29udGFpbnM9cGVybFZTdHJpbmdWCitzeW4gbWF0Y2ggIHBlcmxWU3RyaW5nVgkiXDx2IiBjb250YWluZWQKKworCitzeW4gcmVnaW9uIHBlcmxQYXJlbnNTUQkJc3RhcnQ9KygrIGVuZD0rKSsgZXh0ZW5kIGNvbnRhaW5lZCB0cmFuc3BhcmVudCBjb250YWlucz1wZXJsUGFyZW5zU1EsQHBlcmxJbnRlcnBTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxCcmFja2V0c1NRCXN0YXJ0PStcWysgZW5kPStcXSsgZXh0ZW5kIGNvbnRhaW5lZCB0cmFuc3BhcmVudCBjb250YWlucz1wZXJsQnJhY2tldHNTUSxAcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybEJyYWNlc1NRCQlzdGFydD0reysgZW5kPSt9KyBleHRlbmQgY29udGFpbmVkIHRyYW5zcGFyZW50IGNvbnRhaW5zPXBlcmxCcmFjZXNTUSxAcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybEFuZ2xlc1NRCQlzdGFydD0rPCsgZW5kPSs+KyBleHRlbmQgY29udGFpbmVkIHRyYW5zcGFyZW50IGNvbnRhaW5zPXBlcmxBbmdsZXNTUSxAcGVybEludGVycFNRIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwZXJsUGFyZW5zRFEJCXN0YXJ0PSsoKyBlbmQ9KykrIGV4dGVuZCBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9cGVybFBhcmVuc0RRLEBwZXJsSW50ZXJwRFEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsQnJhY2tldHNEUQlzdGFydD0rXFsrIGVuZD0rXF0rIGV4dGVuZCBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9cGVybEJyYWNrZXRzRFEsQHBlcmxJbnRlcnBEUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxCcmFjZXNEUQkJc3RhcnQ9K3srIGVuZD0rfSsgZXh0ZW5kIGNvbnRhaW5lZCB0cmFuc3BhcmVudCBjb250YWlucz1wZXJsQnJhY2VzRFEsQHBlcmxJbnRlcnBEUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxBbmdsZXNEUQkJc3RhcnQ9KzwrIGVuZD0rPisgZXh0ZW5kIGNvbnRhaW5lZCB0cmFuc3BhcmVudCBjb250YWlucz1wZXJsQW5nbGVzRFEsQHBlcmxJbnRlcnBEUSBrZWVwZW5kCiAKIAogIiBTaW1wbGUgdmVyc2lvbiBvZiBzZWFyY2hlcyBhbmQgbWF0Y2hlcwotIiBjYXRlcnMgZm9yIG0vLywgbSMjLCBte30gYW5kIG1bXSAoYW5kIHRoZSAhLyB2YXJpYW50KQotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rW20hXS8rIGVuZD0rL1tjZ2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2gKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1ttIV0jKyBlbmQ9KyNbY2dpbW9zeF0qKyBjb250YWlucz1AcGVybEludGVycE1hdGNoCi1zeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStbbSFdeysgZW5kPSt9W2NnaW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaAotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rW20hXVxbKyBlbmQ9K1xdW2NnaW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFtXD5ccypceihbXls6c3BhY2U6XScoW3s8I11cKSsgZW5kPStcejFbY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IW0jKyBlbmQ9KyNbY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IW1ccyonKyBlbmQ9KydbY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IW1ccyovKyBlbmQ9Ky9bY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBTbGFzaCBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IW1ccyooKyBlbmQ9KylbY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCxwZXJsUGFyZW5zRFEga2VlcGVuZAogCi0iIEEgc3BlY2lhbCBjYXNlIGZvciBtISF4IHdoaWNoIGFsbG93cyBmb3IgY29tbWVudHMgYW5kIGV4dHJhIHdoaXRlc3BhY2UgaW4gdGhlIHBhdHRlcm4KLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1ttIV0hKyBlbmQ9KyFbY2dpbW9zeF0qKyBjb250YWlucz1AcGVybEludGVycFNsYXNoLHBlcmxDb21tZW50CisiIEEgc3BlY2lhbCBjYXNlIGZvciBte30sIG08PiBhbmQgbVtdIHdoaWNoIGFsbG93cyBmb3IgY29tbWVudHMgYW5kIGV4dHJhIHdoaXRlc3BhY2UgaW4gdGhlIHBhdHRlcm4KK3N5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhbVxzKnsrIGVuZD0rfVtjZ2ltb3BzeF0qKyBjb250YWlucz1AcGVybEludGVycE1hdGNoLHBlcmxDb21tZW50LHBlcmxCcmFjZXNEUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IW1ccyo8KyBlbmQ9Kz5bY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCxwZXJsQW5nbGVzRFEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFtXHMqXFsrIGVuZD0rXF1bY2dpbW9wc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCxwZXJsQ29tbWVudCxwZXJsQnJhY2tldHNEUSBrZWVwZW5kCiAKICIgQmVsb3cgc29tZSBoYWNrcyB0byByZWNvZ25pc2UgdGhlIC8vIHZhcmlhbnQuIFRoaXMgaXMgdmlydHVhbGx5IGltcG9zc2libGUgdG8gY2F0Y2ggaW4gYWxsCiAiIGNhc2VzIGFzIHRoZSAvIGlzIHVzZWQgaW4gc28gbWFueSBvdGhlciB3YXlzLCBidXQgdGhlc2Ugc2hvdWxkIGJlIHRoZSBtb3N0IG9idmlvdXMgb25lcy4KLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K15zcGxpdCAvK2xjPTUgc3RhcnQ9K1teJEAlXVw8c3BsaXQgLytsYz02IHN0YXJ0PSted2hpbGUgLytsYz01IHN0YXJ0PStbXiRAJV1cPHdoaWxlIC8rbGM9NiBzdGFydD0rXmlmIC8rbGM9MiBzdGFydD0rW14kQCVdXDxpZiAvK2xjPTMgc3RhcnQ9K1shPV1cflxzKi8rbGM9MiBzdGFydD0rWyh+XS8rbGM9MSBzdGFydD0rXC5cLi8rbGM9MiBzdGFydD0rXHMvW149IFx0MC05JEAlXStsYz0xLG1lPWUtMSxycz1lLTEgc3RhcnQ9K14vKyBza2lwPStcXC8rIGVuZD0rL1tjZ2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2gKK3N5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9IlwlKFskQCUmKl1cQDwhXCUoXDxzcGxpdFx8XDx3aGlsZVx8XDxpZlx8XDx1bmxlc3NcfFwuXC5cfFstKyohfihcW3s9XVwpXHMqXClcQDw9L1wlKC89XClcQCEiIHN0YXJ0PSteL1wlKC89XClcQCErIHN0YXJ0PStcc1xAPD0vXCUoLz1cKVxAIVteWzpzcGFjZTpdWzpkaWdpdDpdJEAlPV1cQD1cJSgvXF9zKlwlKFsoW3skQCUmKls6ZGlnaXQ6XSInYF1cfFxfc1x3XHxbWzp1cHBlcjpdX2FiZC1maGprbG5xcnQtd3l6XVwpXClcQCErIHNraXA9K1xcLysgZW5kPSsvW2NnaW1vcHN4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2gKIAogCiAiIFN1YnN0aXR1dGlvbnMKLSIgY2F0ZXJzIGZvciBzLy8vLCBzIyMjIGFuZCBzW11bXQogIiBwZXJsTWF0Y2ggaXMgdGhlIGZpcnN0IHBhcnQsIHBlcmxTdWJzdGl0dXRpb24qIGlzIHRoZSBzdWJzdGl0dXRpb24gcGFydAotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxzJysgIGVuZD0rJyttZT1lLTEgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBuZXh0Z3JvdXA9cGVybFN1YnN0aXR1dGlvblNRCi1zeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPHMiKyAgZW5kPSsiK21lPWUtMSBjb250YWlucz1AcGVybEludGVycE1hdGNoIG5leHRncm91cD1wZXJsU3Vic3RpdHV0aW9uRFEKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8cy8rICBlbmQ9Ky8rbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2ggbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25TbGFzaAotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxzIysgIGVuZD0rIyttZT1lLTEgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCBuZXh0Z3JvdXA9cGVybFN1YnN0aXR1dGlvbkhhc2gKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8c1xbKyBlbmQ9K1xdKyBjb250YWlucz1AcGVybEludGVycE1hdGNoIG5leHRncm91cD1wZXJsU3Vic3RpdHV0aW9uQnJhY2tldCBza2lwd2hpdGUgc2tpcGVtcHR5IHNraXBubAotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxzeysgZW5kPSt9KyBjb250YWlucz1AcGVybEludGVycE1hdGNoIG5leHRncm91cD1wZXJsU3Vic3RpdHV0aW9uQ3VybHkgc2tpcHdoaXRlIHNraXBlbXB0eSBza2lwbmwKLXN5biByZWdpb24gcGVybFN1YnN0aXR1dGlvblNRCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSsnKyAgZW5kPSsnW2VjZ2ltb3N4XSorIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEludGVycFNRCi1zeW4gcmVnaW9uIHBlcmxTdWJzdGl0dXRpb25EUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rIisgIGVuZD0rIltlY2dpbW9zeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uU2xhc2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rLysgIGVuZD0rL1tlY2dpbW9zeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uSGFzaAkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rIysgIGVuZD0rI1tlY2dpbW9zeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uQnJhY2tldAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcWysgZW5kPStcXVtlY2dpbW9zeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uQ3VybHkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0reysgIGVuZD0rfVtlY2dpbW9zeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUQorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFzXD5ccypceihbXls6c3BhY2U6XScoW3s8I11cKSsgZW5kPStcejErbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2ggbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25HUVEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFzXHMqJysgIGVuZD0rJyttZT1lLTEgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBuZXh0Z3JvdXA9cGVybFN1YnN0aXR1dGlvblNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhc1xzKi8rICBlbmQ9Ky8rbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2ggbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25HUVEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFzIysgIGVuZD0rIyttZT1lLTEgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCBuZXh0Z3JvdXA9cGVybFN1YnN0aXR1dGlvbkdRUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IXNccyooKyBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gscGVybFBhcmVuc0RRIG5leHRncm91cD1wZXJsU3Vic3RpdHV0aW9uR1FRIHNraXB3aGl0ZSBza2lwZW1wdHkgc2tpcG5sIGtlZXBlbmQKK3N5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhc1xzKjwrIGVuZD0rPisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCxwZXJsQW5nbGVzRFEgbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25HUVEgc2tpcHdoaXRlIHNraXBlbXB0eSBza2lwbmwga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFzXHMqXFsrIGVuZD0rXF0rIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gscGVybEJyYWNrZXRzRFEgbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25HUVEgc2tpcHdoaXRlIHNraXBlbXB0eSBza2lwbmwga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFzXHMqeysgZW5kPSt9KyBjb250YWlucz1AcGVybEludGVycE1hdGNoLHBlcmxCcmFjZXNEUSBuZXh0Z3JvdXA9cGVybFN1YnN0aXR1dGlvbkdRUSBza2lwd2hpdGUgc2tpcGVtcHR5IHNraXBubCBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxTdWJzdGl0dXRpb25HUVEJCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1x6KFteWzpzcGFjZTpdJyhbezxdXCkrIGVuZD0rXHoxW2VjZ2ltb3BzeF0qKyBrZWVwZW5kIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEludGVycERRCitzeW4gcmVnaW9uIHBlcmxTdWJzdGl0dXRpb25HUVEJCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9KygrIGVuZD0rKVtlY2dpbW9wc3hdKisgY29udGFpbmVkIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEscGVybFBhcmVuc0RRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFN1YnN0aXR1dGlvbkdRUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXFsrIGVuZD0rXF1bZWNnaW1vcHN4XSorIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEludGVycERRLHBlcmxCcmFja2V0c0RRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFN1YnN0aXR1dGlvbkdRUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0reysgZW5kPSt9W2VjZ2ltb3BzeF0qKyBjb250YWluZWQgY29udGFpbnM9QHBlcmxJbnRlcnBEUSxwZXJsQnJhY2VzRFEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uR1FRCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSs8KyBlbmQ9Kz5bZWNnaW1vcHN4XSorIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEludGVycERRLHBlcmxBbmdsZXNEUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxTdWJzdGl0dXRpb25TUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rJysgIGVuZD0rJ1tlY2dpbW9wc3hdKisgY29udGFpbmVkIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1Ega2VlcGVuZCAKIAotIiBBIHNwZWNpYWwgY2FzZSBmb3IgbSEheCB3aGljaCBhbGxvd3MgZm9yIGNvbW1lbnRzIGFuZCBleHRyYSB3aGl0ZXNwYWNlIGluIHRoZSBwYXR0ZXJuCi1zeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPHMhKyBlbmQ9KyErbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2gscGVybENvbW1lbnQgbmV4dGdyb3VwPXBlcmxTdWJzdGl0dXRpb25QbGluZwotc3luIHJlZ2lvbiBwZXJsU3Vic3RpdHV0aW9uUGxpbmcJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rISsgZW5kPSshW2VjZ2ltb3N4XSorIGNvbnRhaW5lZCBjb250YWlucz1AcGVybEludGVycERRCi0KLSIgU3Vic3RpdHV0aW9ucwotIiBjYXRlcnMgZm9yIHRyLy8vLCB0ciMjIyBhbmQgdHJbXVtdCisiIFRyYW5zbGF0aW9ucwogIiBwZXJsTWF0Y2ggaXMgdGhlIGZpcnN0IHBhcnQsIHBlcmxUcmFuc2xhdGlvbiogaXMgdGhlIHNlY29uZCwgdHJhbnNsYXRvciBwYXJ0Lgotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcKHRyXHx5XCknKyBlbmQ9KycrbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EgbmV4dGdyb3VwPXBlcmxUcmFuc2xhdGlvblNRCi1zeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwodHJcfHlcKSIrIGVuZD0rIittZT1lLTEgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBuZXh0Z3JvdXA9cGVybFRyYW5zbGF0aW9uRFEKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCh0clx8eVwpLysgZW5kPSsvK21lPWUtMSBjb250YWlucz1AcGVybEludGVycFNRIG5leHRncm91cD1wZXJsVHJhbnNsYXRpb25TbGFzaAotc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcKHRyXHx5XCkjKyBlbmQ9KyMrbWU9ZS0xIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EgbmV4dGdyb3VwPXBlcmxUcmFuc2xhdGlvbkhhc2gKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCh0clx8eVwpXFsrIGVuZD0rXF0rIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EgbmV4dGdyb3VwPXBlcmxUcmFuc2xhdGlvbkJyYWNrZXQgc2tpcHdoaXRlIHNraXBlbXB0eSBza2lwbmwKLXN5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCh0clx8eVwpeysgZW5kPSt9KyBjb250YWlucz1AcGVybEludGVycFNRIG5leHRncm91cD1wZXJsVHJhbnNsYXRpb25DdXJseSBza2lwd2hpdGUgc2tpcGVtcHR5IHNraXBubAotc3luIHJlZ2lvbiBwZXJsVHJhbnNsYXRpb25TUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rJysgZW5kPSsnW2Nkc10qKyBjb250YWluZWQKLXN5biByZWdpb24gcGVybFRyYW5zbGF0aW9uRFEJCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9KyIrIGVuZD0rIltjZHNdKisgY29udGFpbmVkCi1zeW4gcmVnaW9uIHBlcmxUcmFuc2xhdGlvblNsYXNoCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSsvKyBlbmQ9Ky9bY2RzXSorIGNvbnRhaW5lZAotc3luIHJlZ2lvbiBwZXJsVHJhbnNsYXRpb25IYXNoCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSsjKyBlbmQ9KyNbY2RzXSorIGNvbnRhaW5lZAotc3luIHJlZ2lvbiBwZXJsVHJhbnNsYXRpb25CcmFja2V0CW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1xbKyBlbmQ9K1xdW2Nkc10qKyBjb250YWluZWQKLXN5biByZWdpb24gcGVybFRyYW5zbGF0aW9uQ3VybHkJCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K3srIGVuZD0rfVtjZHNdKisgY29udGFpbmVkCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IVwlKHRyXHx5XClcPlxzKlx6KFteWzpzcGFjZTpdKFt7PCNdXCkrIGVuZD0rXHoxK21lPWUtMSBjb250YWlucz1AcGVybEludGVycFNRIG5leHRncm91cD1wZXJsVHJhbnNsYXRpb25HUQorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFcJSh0clx8eVwpIysgZW5kPSsjK21lPWUtMSBjb250YWlucz1AcGVybEludGVycFNRIG5leHRncm91cD1wZXJsVHJhbnNsYXRpb25HUQorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFcJSh0clx8eVwpXHMqXFsrIGVuZD0rXF0rIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybEJyYWNrZXRzU1EgbmV4dGdyb3VwPXBlcmxUcmFuc2xhdGlvbkdRIHNraXB3aGl0ZSBza2lwZW1wdHkgc2tpcG5sCitzeW4gcmVnaW9uIHBlcmxNYXRjaAltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IVwlKHRyXHx5XClccyooKyBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybFBhcmVuc1NRIG5leHRncm91cD1wZXJsVHJhbnNsYXRpb25HUSBza2lwd2hpdGUgc2tpcGVtcHR5IHNraXBubAorc3luIHJlZ2lvbiBwZXJsTWF0Y2gJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFcJSh0clx8eVwpXHMqPCsgZW5kPSs+KyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxBbmdsZXNTUSBuZXh0Z3JvdXA9cGVybFRyYW5zbGF0aW9uR1Egc2tpcHdoaXRlIHNraXBlbXB0eSBza2lwbmwKK3N5biByZWdpb24gcGVybE1hdGNoCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhXCUodHJcfHlcKVxzKnsrIGVuZD0rfSsgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsQnJhY2VzU1EgbmV4dGdyb3VwPXBlcmxUcmFuc2xhdGlvbkdRIHNraXB3aGl0ZSBza2lwZW1wdHkgc2tpcG5sCitzeW4gcmVnaW9uIHBlcmxUcmFuc2xhdGlvbkdRCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PStceihbXls6c3BhY2U6XShbezxdXCkrIGVuZD0rXHoxW2Nkc10qKyBjb250YWluZWQKK3N5biByZWdpb24gcGVybFRyYW5zbGF0aW9uR1EJCW1hdGNoZ3JvdXA9cGVybE1hdGNoU3RhcnRFbmQgc3RhcnQ9KygrIGVuZD0rKVtjZHNdKisgY29udGFpbnM9cGVybFBhcmVuc1NRIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwZXJsVHJhbnNsYXRpb25HUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0rXFsrIGVuZD0rXF1bY2RzXSorIGNvbnRhaW5zPXBlcmxCcmFja2V0c1NRIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwZXJsVHJhbnNsYXRpb25HUQkJbWF0Y2hncm91cD1wZXJsTWF0Y2hTdGFydEVuZCBzdGFydD0reysgZW5kPSt9W2Nkc10qKyBjb250YWlucz1wZXJsQnJhY2VzU1EgY29udGFpbmVkCitzeW4gcmVnaW9uIHBlcmxUcmFuc2xhdGlvbkdRCQltYXRjaGdyb3VwPXBlcmxNYXRjaFN0YXJ0RW5kIHN0YXJ0PSs8KyBlbmQ9Kz5bY2RzXSorIGNvbnRhaW5zPXBlcmxBbmdsZXNTUSBjb250YWluZWQKIAogCi0iIFRoZSA9PiBvcGVyYXRvciBmb3JjZXMgYSBiYXJld29yZCB0byB0aGUgbGVmdCBvZiBpdCB0byBiZSBpbnRlcnByZXRlZCBhcwotIiBhIHN0cmluZwotc3luIG1hdGNoICBwZXJsU3RyaW5nICJcPFxJXGkqXHMqPT4ibWU9ZS0yCi0KICIgU3RyaW5ncyBhbmQgcSwgcXEsIHF3IGFuZCBxciBleHByZXNzaW9ucwogCi0iIEJyYWNrZXRzIGluIHFxKCkKLXN5biByZWdpb24gcGVybEJyYWNrZXRzCXN0YXJ0PSsoKyBlbmQ9KykrIGNvbnRhaW5lZCB0cmFuc3BhcmVudCBjb250YWlucz1wZXJsQnJhY2tldHMsQHBlcmxTdHJpbmdTUQorc3luIHJlZ2lvbiBwZXJsU3RyaW5nVW5leHBhbmRlZAltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0iJyIgZW5kPSInIiBjb250YWlucz1AcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFN0cmluZwkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9KyIrICBlbmQ9KyIrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IXFcPlxzKlx6KFteWzpzcGFjZTpdIyhbezxdXCkrIGVuZD0rXHoxKyBjb250YWlucz1AcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxIysgZW5kPSsjKyBjb250YWlucz1AcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxXHMqKCsgZW5kPSspKyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxQYXJlbnNTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcVxzKlxbKyBlbmQ9K1xdKyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxCcmFja2V0c1NRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxXHMqeysgZW5kPSt9KyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxCcmFjZXNTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcVxzKjwrIGVuZD0rPisgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsQW5nbGVzU1Ega2VlcGVuZAogCi1zeW4gcmVnaW9uIHBlcmxTdHJpbmdVbmV4cGFuZGVkCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSInIiBlbmQ9IiciIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EKLXN5biByZWdpb24gcGVybFN0cmluZwkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9KyIrICBlbmQ9KyIrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxIysgZW5kPSsjKyBjb250YWlucz1AcGVybEludGVycFNRCi1zeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8cXwrIGVuZD0rfCsgY29udGFpbnM9QHBlcmxJbnRlcnBTUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHEoKyBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybEJyYWNrZXRzCi1zeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8cXsrIGVuZD0rfSsgY29udGFpbnM9QHBlcmxJbnRlcnBTUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHEvKyBlbmQ9Ky8rIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxW3F4XSMrIGVuZD0rIysgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHFbcXhdfCsgZW5kPSt8KyBjb250YWlucz1AcGVybEludGVycERRCi1zeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8cVtxeF0oKyBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEscGVybEJyYWNrZXRzCi1zeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8cVtxeF17KyBlbmQ9K30rIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxW3F4XS8rIGVuZD0rLysgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHF3IysgIGVuZD0rIysgY29udGFpbnM9QHBlcmxJbnRlcnBTUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHF3fCsgIGVuZD0rfCsgY29udGFpbnM9QHBlcmxJbnRlcnBTUQotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHF3KCsgIGVuZD0rKSsgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsQnJhY2tldHMKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxd3srICBlbmQ9K30rIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxdy8rICBlbmQ9Ky8rIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxciMrICBlbmQ9KyNbaW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaAotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHFyfCsgIGVuZD0rfFtpbW9zeF0qKyBjb250YWlucz1AcGVybEludGVycE1hdGNoCi1zeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8cXIoKyAgZW5kPSspW2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gKLXN5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxxcnsrICBlbmQ9K31baW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaAotc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPHFyLysgIGVuZD0rL1tpbW9zeF0qKyBjb250YWlucz1AcGVybEludGVycFNsYXNoCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcVtxeF1cPlxzKlx6KFteWzpzcGFjZTpdIyhbezxdXCkrIGVuZD0rXHoxKyBjb250YWlucz1AcGVybEludGVycERRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxW3F4XSMrIGVuZD0rIysgY29udGFpbnM9QHBlcmxJbnRlcnBEUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcVtxeF1ccyooKyBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEscGVybFBhcmVuc0RRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxW3F4XVxzKlxbKyBlbmQ9K1xdKyBjb250YWlucz1AcGVybEludGVycERRLHBlcmxCcmFja2V0c0RRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxW3F4XVxzKnsrIGVuZD0rfSsgY29udGFpbnM9QHBlcmxJbnRlcnBEUSxwZXJsQnJhY2VzRFEga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IXFbcXhdXHMqPCsgZW5kPSs+KyBjb250YWlucz1AcGVybEludGVycERRLHBlcmxBbmdsZXNEUSBrZWVwZW5kCisKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxd1xzKlx6KFteWzpzcGFjZTpdIyhbezxdXCkrICBlbmQ9K1x6MSsgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXcjKyAgZW5kPSsjKyBjb250YWlucz1AcGVybEludGVycFNRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxd1xzKigrICBlbmQ9KykrIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybFBhcmVuc1NRIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxd1xzKlxbKyAgZW5kPStcXSsgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsQnJhY2tldHNTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXdccyp7KyAgZW5kPSt9KyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxCcmFjZXNTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXdccyo8KyAgZW5kPSs+KyBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxBbmdsZXNTUSBrZWVwZW5kCisKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxclw+XHMqXHooW15bOnNwYWNlOl0jKFt7PCcvXVwpKyAgZW5kPStcejFbaW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXJccyovKyAgZW5kPSsvW2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwU2xhc2gga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IXFyIysgIGVuZD0rI1tpbW9zeF0qKyBjb250YWlucz1AcGVybEludGVycE1hdGNoIGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxclxzKicrICBlbmQ9KydbaW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBTUSBrZWVwZW5kCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXJccyooKyAgZW5kPSspW2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gscGVybFBhcmVuc0RRIGtlZXBlbmQKKworIiBBIHNwZWNpYWwgY2FzZSBmb3IgcXJ7fSwgcXI8PiBhbmQgcXJbXSB3aGljaCBhbGxvd3MgZm9yIGNvbW1lbnRzIGFuZCBleHRyYSB3aGl0ZXNwYWNlIGluIHRoZSBwYXR0ZXJuCitzeW4gcmVnaW9uIHBlcmxRUQkJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9K1w8XCUoOjpcfCdcfC0+XClcQDwhcXJccyp7KyAgZW5kPSt9W2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gscGVybEJyYWNlc0RRLHBlcmxDb21tZW50IGtlZXBlbmQKK3N5biByZWdpb24gcGVybFFRCQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rXDxcJSg6Olx8J1x8LT5cKVxAPCFxclxzKjwrICBlbmQ9Kz5baW1vc3hdKisgY29udGFpbnM9QHBlcmxJbnRlcnBNYXRjaCxwZXJsQW5nbGVzRFEscGVybENvbW1lbnQga2VlcGVuZAorc3luIHJlZ2lvbiBwZXJsUVEJCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PStcPFwlKDo6XHwnXHwtPlwpXEA8IXFyXHMqXFsrICBlbmQ9K1xdW2ltb3N4XSorIGNvbnRhaW5zPUBwZXJsSW50ZXJwTWF0Y2gscGVybEJyYWNrZXRzRFEscGVybENvbW1lbnQga2VlcGVuZAogCiAiIENvbnN0cnVjdHMgc3VjaCBhcyBwcmludCA8PEVPRiBbLi4uXSBFT0YsICdoZXJlJyBkb2N1bWVudHMKICIKLWlmIHZlcnNpb24gPj0gNjAwCi0gICIgWFhYIEFueSBzdGF0ZW1lbnRzIGFmdGVyIHRoZSBpZGVudGlmaWVyIGFyZSBpbiBwZXJsU3RyaW5nIGNvbG91ciAoaS5lLgotICAiICdpZiAkYScgaW4gJ3ByaW50IDw8RU9GIGlmICRhJykuCi0gIGlmIGV4aXN0cygicGVybF9mb2xkIikKLSAgICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFx6KFxJXGkqXCkuKisgICAgZW5kPSteXHoxJCsgY29udGFpbnM9QHBlcmxJbnRlcnBEUSBmb2xkCi0gICAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyoiXHooLlx7LX1cKSIrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEgZm9sZAotICAgIHN5biByZWdpb24gcGVybEhlcmVEb2MJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9Kzw8XHMqJ1x6KC5cey19XCknKyBlbmQ9K15cejEkKyBjb250YWlucz1AcGVybEludGVycFNRIGZvbGQKLSAgICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKiIiKyAgICAgICAgICAgZW5kPSteJCsgICAgY29udGFpbnM9QHBlcmxJbnRlcnBEUSxwZXJsTm90RW1wdHlMaW5lIGZvbGQKLSAgICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKicnKyAgICAgICAgICAgZW5kPSteJCsgICAgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsTm90RW1wdHlMaW5lIGZvbGQKLSAgICBzeW4gcmVnaW9uIHBlcmxBdXRvbG9hZAltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxbJyJdXHooRU5EX1woU1VCXHxPRl9GVU5DXHxPRl9BVVRPTE9BRFwpXClbJyJdKyBlbmQ9K15cejEkKyBjb250YWlucz1BTEwgZm9sZAotICBlbHNlCi0gICAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxceihcSVxpKlwpKyAgICAgIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKLSAgICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKiJceiguXHstfVwpIisgZW5kPSteXHoxJCsgY29udGFpbnM9QHBlcmxJbnRlcnBEUQotICAgIHN5biByZWdpb24gcGVybEhlcmVEb2MJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9Kzw8XHMqJ1x6KC5cey19XCknKyBlbmQ9K15cejEkKyBjb250YWlucz1AcGVybEludGVycFNRCi0gICAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyoiIisgICAgICAgICAgIGVuZD0rXiQrICAgIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEscGVybE5vdEVtcHR5TGluZQotICAgIHN5biByZWdpb24gcGVybEhlcmVEb2MJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9Kzw8XHMqJycrICAgICAgICAgICBlbmQ9K14kKyAgICBjb250YWlucz1AcGVybEludGVycFNRLHBlcmxOb3RFbXB0eUxpbmUKLSAgICBzeW4gcmVnaW9uIHBlcmxBdXRvbG9hZAltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxcKFsnIl1cfFwpXHooRU5EX1woU1VCXHxPRl9GVU5DXHxPRl9BVVRPTE9BRFwpXClcMSsgZW5kPSteXHoxJCsgY29udGFpbnM9QUxMCi0gIGVuZGlmCisiIFhYWCBBbnkgc3RhdGVtZW50cyBhZnRlciB0aGUgaWRlbnRpZmllciBhcmUgaW4gcGVybFN0cmluZyBjb2xvdXIgKGkuZS4KKyIgJ2lmICRhJyBpbiAncHJpbnQgPDxFT0YgaWYgJGEnKS4gVGhpcyBpcyBhbG1vc3QgaW1wb3NzaWJsZSB0byBnZXQgcmlnaHQgaXQKKyIgc2VlbXMgZHVlIHRvIHRoZSAnYXV0by1leHRlbmRpbmcgbmF0dXJlJyBvZiByZWdpb25zLgoraWYgZXhpc3RzKCJwZXJsX2ZvbGQiKQorICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFx6KFxJXGkqXCkuKisgICAgZW5kPSteXHoxJCsgY29udGFpbnM9QHBlcmxJbnRlcnBEUSBmb2xkCisgIHN5biByZWdpb24gcGVybEhlcmVEb2MJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9Kzw8XHMqIlx6KFteXFwiXSpcJShcXC5bXlxcIl0qXCkqXCkiKyBlbmQ9K15cejEkKyBjb250YWlucz1AcGVybEludGVycERRIGZvbGQKKyAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyonXHooW15cXCddKlwlKFxcLlteXFwnXSpcKSpcKScrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EgZm9sZAorICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKiIiKyAgICAgICAgICAgZW5kPSteJCsgICAgY29udGFpbnM9QHBlcmxJbnRlcnBEUSxwZXJsTm90RW1wdHlMaW5lIGZvbGQKKyAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyonJysgICAgICAgICAgIGVuZD0rXiQrICAgIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybE5vdEVtcHR5TGluZSBmb2xkCisgIHN5biByZWdpb24gcGVybEF1dG9sb2FkCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKlwoWyciXVw9XClceihFTkRfXCUoU1VCXHxPRl9GVU5DXHxPRl9BVVRPTE9BRFwpXClcMSsgZW5kPSteXHoxJCsgY29udGFpbnM9QUxMIGZvbGQKIGVsc2UKLSAgc3luIG1hdGNoIHBlcmxVbnRpbEVPRlN0YXJ0CSI8PEVPRi4qImxjPTUgbmV4dGdyb3VwPXBlcmxVbnRpbEVPRkRRIHNraXBubCB0cmFuc3BhcmVudAotICBzeW4gbWF0Y2ggcGVybFVudGlsRU9GU3RhcnQJIjw8XHMqXCJFT0ZcIi4qIiBuZXh0Z3JvdXA9cGVybFVudGlsRU9GRFEgc2tpcG5sIHRyYW5zcGFyZW50Ci0gIHN5biBtYXRjaCBwZXJsVW50aWxFT0ZTdGFydAkiPDxccyonRU9GJy4qIiBuZXh0Z3JvdXA9cGVybFVudGlsRU9GU1Egc2tpcG5sIHRyYW5zcGFyZW50Ci0gIHN5biBtYXRjaCBwZXJsVW50aWxFT0ZTdGFydAkiPDxccypcIlwiLioiIG5leHRncm91cD1wZXJsVW50aWxFbXB0eURRIHNraXBubCB0cmFuc3BhcmVudAotICBzeW4gbWF0Y2ggcGVybFVudGlsRU9GU3RhcnQJIjw8XHMqJycuKiIgbmV4dGdyb3VwPXBlcmxVbnRpbEVtcHR5U1Egc2tpcG5sIHRyYW5zcGFyZW50Ci0gIHN5biByZWdpb24gcGVybFVudGlsRU9GRFEJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9KysgZW5kPSJeRU9GJCIgY29udGFpbnM9QHBlcmxJbnRlcnBEUSBjb250YWluZWQKLSAgc3luIHJlZ2lvbiBwZXJsVW50aWxFT0ZTUQltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rKyBlbmQ9Il5FT0YkIiBjb250YWlucz1AcGVybEludGVycFNRIGNvbnRhaW5lZAotICBzeW4gcmVnaW9uIHBlcmxVbnRpbEVtcHR5U1EJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9KysgZW5kPSJeJCIgY29udGFpbnM9QHBlcmxJbnRlcnBEUSxwZXJsTm90RW1wdHlMaW5lIGNvbnRhaW5lZAotICBzeW4gcmVnaW9uIHBlcmxVbnRpbEVtcHR5RFEJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9KysgZW5kPSJeJCIgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsTm90RW1wdHlMaW5lIGNvbnRhaW5lZAotICBzeW4gbWF0Y2ggcGVybEhlcmVJZGVudGlmaWVyCSI8PEVPRiIKLSAgc3luIHJlZ2lvbiBwZXJsQXV0b2xvYWQJbWF0Y2hncm91cD1wZXJsU3RyaW5nU3RhcnRFbmQgc3RhcnQ9Kzw8XChbJyJdXHxcKVwoRU5EX1woU1VCXHxPRl9GVU5DXHxPRl9BVVRPTE9BRFwpXClcMSsgZW5kPSteXChFTkRfXChTVUJcfE9GX0ZVTkNcfE9GX0FVVE9MT0FEXClcKSQrIGNvbnRhaW5zPUFMTAorICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFx6KFxJXGkqXCkrICAgIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKKyAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyoiXHooW15cXCJdKlwlKFxcLlteXFwiXSpcKSpcKSIrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEKKyAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyonXHooW15cXCddKlwlKFxcLlteXFwnXSpcKSpcKScrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EKKyAgc3luIHJlZ2lvbiBwZXJsSGVyZURvYwltYXRjaGdyb3VwPXBlcmxTdHJpbmdTdGFydEVuZCBzdGFydD0rPDxccyoiIisgICAgICAgICAgIGVuZD0rXiQrICAgIGNvbnRhaW5zPUBwZXJsSW50ZXJwRFEscGVybE5vdEVtcHR5TGluZQorICBzeW4gcmVnaW9uIHBlcmxIZXJlRG9jCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKicnKyAgICAgICAgICAgZW5kPSteJCsgICAgY29udGFpbnM9QHBlcmxJbnRlcnBTUSxwZXJsTm90RW1wdHlMaW5lCisgIHN5biByZWdpb24gcGVybEF1dG9sb2FkCW1hdGNoZ3JvdXA9cGVybFN0cmluZ1N0YXJ0RW5kIHN0YXJ0PSs8PFxzKlwoWyciXVw9XClceihFTkRfXCUoU1VCXHxPRl9GVU5DXHxPRl9BVVRPTE9BRFwpXClcMSsgZW5kPSteXHoxJCsgY29udGFpbnM9QUxMCiBlbmRpZgogCiAKICIgQ2xhc3MgZGVjbGFyYXRpb25zCiAiCi1zeW4gbWF0Y2ggIHBlcmxQYWNrYWdlRGVjbAkiXlxzKlw8cGFja2FnZVxzXCtcU1wrIiBjb250YWlucz1wZXJsU3RhdGVtZW50UGFja2FnZQorc3luIG1hdGNoICAgcGVybFBhY2thZ2VEZWNsCQkiXDxwYWNrYWdlXHNcK1wlKFxoXHw6OlwpXCUoXHdcfDo6XCkqIiBjb250YWlucz1wZXJsU3RhdGVtZW50UGFja2FnZQogc3luIGtleXdvcmQgcGVybFN0YXRlbWVudFBhY2thZ2UJcGFja2FnZSBjb250YWluZWQKIAogIiBGdW5jdGlvbnMKICIgICAgICAgc3ViIFtuYW1lXSBbKHByb3RvdHlwZSldIHsKICIKLXN5biByZWdpb24gcGVybEZ1bmN0aW9uCQlzdGFydD0iXHMqXDxzdWJcPiIgZW5kPSJbO3tdImhlPWUtMSBjb250YWlucz1wZXJsU3RhdGVtZW50U3ViLHBlcmxGdW5jdGlvblByb3RvdHlwZSxwZXJsRnVuY3Rpb25QUmVmLHBlcmxGdW5jdGlvbk5hbWUscGVybENvbW1lbnQKLXN5biBrZXl3b3JkIHBlcmxTdGF0ZW1lbnRTdWIJc3ViIGNvbnRhaW5lZAorc3luIG1hdGNoIHBlcmxTdWJFcnJvciAiW15bOnNwYWNlOl07eyNdIiBjb250YWluZWQKK2lmIHY6dmVyc2lvbiA9PSA3MDEgJiYgIWhhcygncGF0Y2gyMjEnKSAgIiBYWFggSSBob3BlIHRoYXQncyB0aGUgcmlnaHQgb25lCisgICAgc3luIG1hdGNoIHBlcmxTdWJBdHRyaWJ1dGVzICI6IiBjb250YWluZWQKK2Vsc2UKKyAgICBzeW4gbWF0Y2ggcGVybFN1YkF0dHJpYnV0ZXNDb250ICJcaFx3KlxfcypcJSg6XF9zKlwpXD0iIG5leHRncm91cD1AcGVybFN1YkF0dHJNYXliZSBjb250YWluZWQKKyAgICBzeW4gcmVnaW9uIHBlcmxTdWJBdHRyaWJ1dGVzQ29udCBtYXRjaGdyb3VwPXBlcmxTdWJBdHRyaWJ1dGVzQ29udCBzdGFydD0iXGhcdyooIiBlbmQ9IilcX3MqXCUoOlxfcypcKVw9IiBuZXh0Z3JvdXA9QHBlcmxTdWJBdHRyTWF5YmUgY29udGFpbmVkIGNvbnRhaW5zPUBwZXJsSW50ZXJwU1EscGVybFBhcmVuc1NRCisgICAgc3luIGNsdXN0ZXIgcGVybFN1YkF0dHJNYXliZSBjb250YWlucz1wZXJsU3ViQXR0cmlidXRlc0NvbnQscGVybFN1YkVycm9yCisgICAgc3luIG1hdGNoIHBlcmxTdWJBdHRyaWJ1dGVzICIiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9cGVybFN1YkVycm9yCisgICAgc3luIG1hdGNoIHBlcmxTdWJBdHRyaWJ1dGVzICI6XF9zKiIgY29udGFpbmVkIG5leHRncm91cD1AcGVybFN1YkF0dHJNYXliZQorZW5kaWYKK3N5biBtYXRjaCBwZXJsU3ViUHJvdG90eXBlRXJyb3IgIihcJShcX3MqXCUoXCUoXFxcJShbJEAlJipdXHxcW1skQCUmKl1cK1xdXClcfFskJipdXHxbQCVdXCUoXF9zKilcKVxAPVx8O1wlKFxfcypbKSRAJSYqXFxdXClcQD1cfF9cJShcX3MqWyk7XVwpXEA9XClcX3MqXCkqXClcQD5cenNcX1teKV1cKyIgY29udGFpbmVkCitzeW4gbWF0Y2ggcGVybFN1YlByb3RvdHlwZSArKFxfW14pXSopXF9zKlx8KyBuZXh0Z3JvdXA9cGVybFN1YkF0dHJpYnV0ZXMgY29udGFpbmVkIGNvbnRhaW5zPXBlcmxTdWJQcm90b3R5cGVFcnJvcgorc3luIG1hdGNoIHBlcmxTdWJOYW1lICtcJShcaFx8OjpcfCdcd1wpXCUoXHdcfDo6XHwnXHdcKSpcX3MqXHwrIGNvbnRhaW5lZCBuZXh0Z3JvdXA9cGVybFN1YlByb3RvdHlwZQogCi1zeW4gbWF0Y2ggIHBlcmxGdW5jdGlvblByb3RvdHlwZQkiKFteKV0qKSIgY29udGFpbmVkCi1pZiBleGlzdHMoInBlcmxfd2FudF9zY29wZV9pbl92YXJpYWJsZXMiKQorc3luIG1hdGNoIHBlcmxGdW5jdGlvbiArXDxzdWJcPlxfcyorIG5leHRncm91cD1wZXJsU3ViTmFtZQorCitpZiAhZXhpc3RzKCJwZXJsX25vX3Njb3BlX2luX3ZhcmlhYmxlcyIpCiAgICBzeW4gbWF0Y2ggIHBlcmxGdW5jdGlvblBSZWYJIlxoXHcqOjoiIGNvbnRhaW5lZAogICAgc3luIG1hdGNoICBwZXJsRnVuY3Rpb25OYW1lCSJcaFx3KlteOl0iIGNvbnRhaW5lZAogZWxzZQogICAgc3luIG1hdGNoICBwZXJsRnVuY3Rpb25OYW1lCSJcaFtbOmFsbnVtOl1fOl0qIiBjb250YWluZWQKIGVuZGlmCiAKKyIgVGhlID0+IG9wZXJhdG9yIGZvcmNlcyBhIGJhcmV3b3JkIHRvIHRoZSBsZWZ0IG9mIGl0IHRvIGJlIGludGVycHJldGVkIGFzCisiIGEgc3RyaW5nCitzeW4gbWF0Y2ggIHBlcmxTdHJpbmcgIlxJXEA8IS1cP1xJXGkqXCUoXHMqPT5cKVxAPSIKKwogIiBBbGwgb3RoZXIgIyBhcmUgY29tbWVudHMsIGV4Y2VwdCBeIyEKLXN5biBtYXRjaCAgcGVybENvbW1lbnQJCSIjLioiIGNvbnRhaW5zPXBlcmxUb2RvCitzeW4gbWF0Y2ggIHBlcmxDb21tZW50CQkiIy4qIiBjb250YWlucz1wZXJsVG9kbyxAU3BlbGwKIHN5biBtYXRjaCAgcGVybFNoYXJwQmFuZwkiXiMhLioiCiAKICIgRm9ybWF0cwogc3luIHJlZ2lvbiBwZXJsRm9ybWF0CQltYXRjaGdyb3VwPXBlcmxTdGF0ZW1lbnRJT0Z1bmMgc3RhcnQ9Il5ccypcPGZvcm1hdFxzXCtca1wrXHMqPVxzKiQicnM9cys2IGVuZD0iXlxzKlwuXHMqJCIgY29udGFpbnM9cGVybEZvcm1hdE5hbWUscGVybEZvcm1hdEZpZWxkLHBlcmxWYXJQbGFpbixwZXJsVmFyUGxhaW4yCiBzeW4gbWF0Y2ggIHBlcmxGb3JtYXROYW1lCSJmb3JtYXRcc1wrXGtcK1xzKj0ibGM9NyxtZT1lLTEgY29udGFpbmVkCi1zeW4gbWF0Y2ggIHBlcmxGb3JtYXRGaWVsZAkiW0BeXVt8PD5+XVwrXChcLlwuXC5cKVw9IiBjb250YWluZWQKK3N5biBtYXRjaCAgcGVybEZvcm1hdEZpZWxkCSJbQF5dW3w8Pn5dXCtcJShcLlwuXC5cKVw9IiBjb250YWluZWQKIHN5biBtYXRjaCAgcGVybEZvcm1hdEZpZWxkCSJbQF5dI1sjLl0qIiBjb250YWluZWQKIHN5biBtYXRjaCAgcGVybEZvcm1hdEZpZWxkCSJAXCoiIGNvbnRhaW5lZAogc3luIG1hdGNoICBwZXJsRm9ybWF0RmllbGQJIkBbXkEtWmEtel98PD5+IypdIm1lPWUtMSBjb250YWluZWQKQEAgLTM4MywxNjEgKzQxMiwxMTMgQEAKIAogIiBfX0VORF9fIGFuZCBfX0RBVEFfXyBjbGF1c2VzCiBpZiBleGlzdHMoInBlcmxfZm9sZCIpCi0gIHN5bnRheCByZWdpb24gcGVybERBVEEJCXN0YXJ0PSJeX19cKERBVEFcfEVORFwpX18kIiBza2lwPSIuIiBlbmQ9Ii4iIGNvbnRhaW5zPXBlcmxQT0QsQHBlcmxEQVRBIGZvbGQKKyAgc3ludGF4IHJlZ2lvbiBwZXJsREFUQQkJc3RhcnQ9Il5fX1wlKERBVEFcfEVORFwpX18kIiBza2lwPSIuIiBlbmQ9Ii4iIGNvbnRhaW5zPXBlcmxQT0QsQHBlcmxEQVRBIGZvbGQKIGVsc2UKLSAgc3ludGF4IHJlZ2lvbiBwZXJsREFUQQkJc3RhcnQ9Il5fX1woREFUQVx8RU5EXClfXyQiIHNraXA9Ii4iIGVuZD0iLiIgY29udGFpbnM9cGVybFBPRCxAcGVybERBVEEKKyAgc3ludGF4IHJlZ2lvbiBwZXJsREFUQQkJc3RhcnQ9Il5fX1wlKERBVEFcfEVORFwpX18kIiBza2lwPSIuIiBlbmQ9Ii4iIGNvbnRhaW5zPXBlcmxQT0QsQHBlcmxEQVRBCiBlbmRpZgogCitjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KIAotIgotIiBGb2xkaW5nCi0KLWlmIGV4aXN0cygicGVybF9mb2xkIikKLSAgaWYgIWV4aXN0cygicGVybF9ub2ZvbGRfcGFja2FnZXMiKQotICAgIHN5biByZWdpb24gcGVybFBhY2thZ2VGb2xkIHN0YXJ0PSJecGFja2FnZSBcU1wrO1xzKlwoIy4qXClcPSQiIGVuZD0iXjE7XHMqXCgjLipcKVw9JCIgZW5kPSJcblwrcGFja2FnZSJtZT1zLTEgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kCi0gIGVuZGlmCi0gIGlmICFleGlzdHMoInBlcmxfbm9mb2xkX3N1YnMiKQotICAgIHN5biByZWdpb24gcGVybFN1YkZvbGQgICAgIHN0YXJ0PSJeXHooXHMqXClcPHN1Ylw+LipbXn07XSQiIGVuZD0iXlx6MX1ccypcKCMuKlwpXD0kIiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQKLSAgICBzeW4gcmVnaW9uIHBlcmxTdWJGb2xkIHN0YXJ0PSJeXHooXHMqXClcPFwoQkVHSU5cfEVORFx8Q0hFQ0tcfElOSVRcKVw+LipbXn07XSQiIGVuZD0iXlx6MX1ccyokIiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQKLSAgZW5kaWYKLQotICBpZiBleGlzdHMoInBlcmxfZm9sZF9ibG9ja3MiKQotICAgIHN5biByZWdpb24gcGVybEJsb2NrRm9sZCBzdGFydD0iXlx6KFxzKlwpXChpZlx8ZWxzaWZcfHVubGVzc1x8Zm9yXHx3aGlsZVx8dW50aWxcKVxzKiguKilcKFxzKntcKVw9XHMqXCgjLipcKVw9JCIgc3RhcnQ9Il5ceihccypcKWZvcmVhY2hccypcKFwobXlcfG91clwpXD1ccypcU1wrXHMqXClcPSguKilcKFxzKntcKVw9XHMqXCgjLipcKVw9JCIgZW5kPSJeXHoxfVxzKjtcPVwoIy4qXClcPSQiIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZAotICAgIHN5biByZWdpb24gcGVybEJsb2NrRm9sZCBzdGFydD0iXlx6KFxzKlwpXChkb1x8ZWxzZVwpXChccyp7XClcPVxzKlwoIy4qXClcPSQiIGVuZD0iXlx6MX1ccyp3aGlsZSIgZW5kPSJeXHoxfVxzKjtcPVwoIy4qXClcPSQiIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZAotICBlbmRpZgotCi0gIHNldGxvY2FsIGZvbGRtZXRob2Q9c3ludGF4Ci0gIHN5biBzeW5jIGZyb21zdGFydAorIiBUaGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCitIaUxpbmsgcGVybFNoYXJwQmFuZwkJUHJlUHJvYworSGlMaW5rIHBlcmxDb250cm9sCQlQcmVQcm9jCitIaUxpbmsgcGVybEluY2x1ZGUJCUluY2x1ZGUKK0hpTGluayBwZXJsU3BlY2lhbAkJU3BlY2lhbAorSGlMaW5rIHBlcmxTdHJpbmcJCVN0cmluZworSGlMaW5rIHBlcmxDaGFyYWN0ZXIJCUNoYXJhY3RlcgorSGlMaW5rIHBlcmxOdW1iZXIJCU51bWJlcgorSGlMaW5rIHBlcmxGbG9hdAkJRmxvYXQKK0hpTGluayBwZXJsVHlwZQkJCVR5cGUKK0hpTGluayBwZXJsSWRlbnRpZmllcgkJSWRlbnRpZmllcgorSGlMaW5rIHBlcmxMYWJlbAkJTGFiZWwKK0hpTGluayBwZXJsU3RhdGVtZW50CQlTdGF0ZW1lbnQKK0hpTGluayBwZXJsQ29uZGl0aW9uYWwJCUNvbmRpdGlvbmFsCitIaUxpbmsgcGVybFJlcGVhdAkJUmVwZWF0CitIaUxpbmsgcGVybE9wZXJhdG9yCQlPcGVyYXRvcgorSGlMaW5rIHBlcmxGdW5jdGlvbgkJS2V5d29yZAorSGlMaW5rIHBlcmxTdWJOYW1lCQlGdW5jdGlvbgorSGlMaW5rIHBlcmxTdWJQcm90b3R5cGUJCVR5cGUKK0hpTGluayBwZXJsU3ViQXR0cmlidXRlcwlQcmVQcm9jCitIaUxpbmsgcGVybFN1YkF0dHJpYnV0ZXNDb250CXBlcmxTdWJBdHRyaWJ1dGVzCitIaUxpbmsgcGVybENvbW1lbnQJCUNvbW1lbnQKK0hpTGluayBwZXJsVG9kbwkJCVRvZG8KK2lmIGV4aXN0cygicGVybF9zdHJpbmdfYXNfc3RhdGVtZW50IikKKyAgSGlMaW5rIHBlcmxTdHJpbmdTdGFydEVuZAlwZXJsU3RhdGVtZW50CiBlbHNlCi0gICIgZnJvbXN0YXJ0IGFib3ZlIHNlZW1zIHRvIHNldCBtaW5saW5lcyBldmVuIGlmIHBlcmxfZm9sZCBpcyBub3Qgc2V0LgotICBzeW4gc3luYyBtaW5saW5lcz0wCisgIEhpTGluayBwZXJsU3RyaW5nU3RhcnRFbmQJcGVybFN0cmluZwogZW5kaWYKK0hpTGluayBwZXJsVlN0cmluZ1YJCXBlcmxTdHJpbmdTdGFydEVuZAorSGlMaW5rIHBlcmxMaXN0CQkJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxNaXNjCQkJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxWYXJQbGFpbgkJcGVybElkZW50aWZpZXIKK0hpTGluayBwZXJsVmFyUGxhaW4yCQlwZXJsSWRlbnRpZmllcgorSGlMaW5rIHBlcmxBcnJvdwkJcGVybElkZW50aWZpZXIKK0hpTGluayBwZXJsRmlsZWRlc2NSZWFkCQlwZXJsSWRlbnRpZmllcgorSGlMaW5rIHBlcmxGaWxlZGVzY1N0YXRlbWVudAlwZXJsSWRlbnRpZmllcgorSGlMaW5rIHBlcmxWYXJTaW1wbGVNZW1iZXIJcGVybElkZW50aWZpZXIKK0hpTGluayBwZXJsVmFyU2ltcGxlTWVtYmVyTmFtZSAJcGVybFN0cmluZworSGlMaW5rIHBlcmxWYXJOb3RJbk1hdGNoZXMJcGVybElkZW50aWZpZXIKK0hpTGluayBwZXJsVmFyU2xhc2gJCXBlcmxJZGVudGlmaWVyCitIaUxpbmsgcGVybFFRCQkJcGVybFN0cmluZworSGlMaW5rIHBlcmxIZXJlRG9jCQlwZXJsU3RyaW5nCitIaUxpbmsgcGVybFN0cmluZ1VuZXhwYW5kZWQJcGVybFN0cmluZworSGlMaW5rIHBlcmxTdWJzdGl0dXRpb25TUQlwZXJsU3RyaW5nCitIaUxpbmsgcGVybFN1YnN0aXR1dGlvbkdRUQlwZXJsU3RyaW5nCitIaUxpbmsgcGVybFRyYW5zbGF0aW9uR1EJcGVybFN0cmluZworSGlMaW5rIHBlcmxNYXRjaAkJcGVybFN0cmluZworSGlMaW5rIHBlcmxNYXRjaFN0YXJ0RW5kCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsRm9ybWF0TmFtZQkJcGVybElkZW50aWZpZXIKK0hpTGluayBwZXJsRm9ybWF0RmllbGQJCXBlcmxTdHJpbmcKK0hpTGluayBwZXJsUGFja2FnZURlY2wJCXBlcmxUeXBlCitIaUxpbmsgcGVybFN0b3JhZ2VDbGFzcwkJcGVybFR5cGUKK0hpTGluayBwZXJsUGFja2FnZVJlZgkJcGVybFR5cGUKK0hpTGluayBwZXJsU3RhdGVtZW50UGFja2FnZQlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudFN0b3JhZ2UJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRDb250cm9sCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50U2NhbGFyCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50UmVnZXhwCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50TnVtZXJpYwlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudExpc3QJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRIYXNoCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50SU9mdW5jCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50RmlsZWRlc2MJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRWZWN0b3IJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRGaWxlcwlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudEZsb3cJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRJbmNsdWRlCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50UHJvYwlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudFNvY2tldAlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudElQQwkJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnROZXR3b3JrCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50UHdvcmQJcGVybFN0YXRlbWVudAorSGlMaW5rIHBlcmxTdGF0ZW1lbnRUaW1lCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsU3RhdGVtZW50TWlzYwlwZXJsU3RhdGVtZW50CitIaUxpbmsgcGVybFN0YXRlbWVudEluZGlyT2JqCXBlcmxTdGF0ZW1lbnQKK0hpTGluayBwZXJsRnVuY3Rpb25OYW1lCQlwZXJsSWRlbnRpZmllcgorSGlMaW5rIHBlcmxNZXRob2QJCXBlcmxJZGVudGlmaWVyCitIaUxpbmsgcGVybEZ1bmN0aW9uUFJlZgkJcGVybFR5cGUKK0hpTGluayBwZXJsUE9ECQkJcGVybENvbW1lbnQKK0hpTGluayBwZXJsU2hlbGxDb21tYW5kCQlwZXJsU3RyaW5nCitIaUxpbmsgcGVybFNwZWNpYWxBc2NpaQkJcGVybFNwZWNpYWwKK0hpTGluayBwZXJsU3BlY2lhbERvbGxhcglwZXJsU3BlY2lhbAorSGlMaW5rIHBlcmxTcGVjaWFsU3RyaW5nCXBlcmxTcGVjaWFsCitIaUxpbmsgcGVybFNwZWNpYWxTdHJpbmdVCXBlcmxTcGVjaWFsCitIaUxpbmsgcGVybFNwZWNpYWxNYXRjaAkJcGVybFNwZWNpYWwKK0hpTGluayBwZXJsREFUQQkJCXBlcmxDb21tZW50CiAKKyIgUG9zc2libGUgZXJyb3JzCitIaUxpbmsgcGVybE5vdEVtcHR5TGluZQkJRXJyb3IKK0hpTGluayBwZXJsRWxzZUlmRXJyb3IJCUVycm9yCitIaUxpbmsgcGVybFN1YlByb3RvdHlwZUVycm9yCUVycm9yCitIaUxpbmsgcGVybFN1YkVycm9yCQlFcnJvcgogCi1pZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfcGVybF9zeW5faW5pdHMiKQotICBpZiB2ZXJzaW9uIDwgNTA4Ci0gICAgbGV0IGRpZF9wZXJsX3N5bl9pbml0cyA9IDEKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgotICBlbHNlCi0gICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+Ci0gIGVuZGlmCi0KLSAgIiBUaGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCi0gIEhpTGluayBwZXJsU2hhcnBCYW5nCQlQcmVQcm9jCi0gIEhpTGluayBwZXJsQ29udHJvbAkJUHJlUHJvYwotICBIaUxpbmsgcGVybEluY2x1ZGUJCUluY2x1ZGUKLSAgSGlMaW5rIHBlcmxTcGVjaWFsCQlTcGVjaWFsCi0gIEhpTGluayBwZXJsU3RyaW5nCQlTdHJpbmcKLSAgSGlMaW5rIHBlcmxDaGFyYWN0ZXIJCUNoYXJhY3RlcgotICBIaUxpbmsgcGVybE51bWJlcgkJTnVtYmVyCi0gIEhpTGluayBwZXJsRmxvYXQJCUZsb2F0Ci0gIEhpTGluayBwZXJsVHlwZQkJVHlwZQotICBIaUxpbmsgcGVybElkZW50aWZpZXIJCUlkZW50aWZpZXIKLSAgSGlMaW5rIHBlcmxMYWJlbAkJTGFiZWwKLSAgSGlMaW5rIHBlcmxTdGF0ZW1lbnQJCVN0YXRlbWVudAotICBIaUxpbmsgcGVybENvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCi0gIEhpTGluayBwZXJsUmVwZWF0CQlSZXBlYXQKLSAgSGlMaW5rIHBlcmxPcGVyYXRvcgkJT3BlcmF0b3IKLSAgSGlMaW5rIHBlcmxGdW5jdGlvbgkJRnVuY3Rpb24KLSAgSGlMaW5rIHBlcmxGdW5jdGlvblByb3RvdHlwZQlwZXJsRnVuY3Rpb24KLSAgSGlMaW5rIHBlcmxDb21tZW50CQlDb21tZW50Ci0gIEhpTGluayBwZXJsVG9kbwkJVG9kbwotICBpZiBleGlzdHMoInBlcmxfc3RyaW5nX2FzX3N0YXRlbWVudCIpCi0gICAgSGlMaW5rIHBlcmxTdHJpbmdTdGFydEVuZAlwZXJsU3RhdGVtZW50Ci0gIGVsc2UKLSAgICBIaUxpbmsgcGVybFN0cmluZ1N0YXJ0RW5kCXBlcmxTdHJpbmcKLSAgZW5kaWYKLSAgSGlMaW5rIHBlcmxMaXN0CQlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsTWlzYwkJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFZhclBsYWluCQlwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybFZhclBsYWluMgkJcGVybElkZW50aWZpZXIKLSAgSGlMaW5rIHBlcmxGaWxlZGVzY1JlYWQJcGVybElkZW50aWZpZXIKLSAgSGlMaW5rIHBlcmxGaWxlZGVzY1N0YXRlbWVudAlwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybFZhclNpbXBsZU1lbWJlcglwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybFZhclNpbXBsZU1lbWJlck5hbWUgcGVybFN0cmluZwotICBIaUxpbmsgcGVybFZhck5vdEluTWF0Y2hlcwlwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybFZhclNsYXNoCQlwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybFFRCQkJcGVybFN0cmluZwotICBpZiB2ZXJzaW9uID49IDYwMAotICAgIEhpTGluayBwZXJsSGVyZURvYwkJcGVybFN0cmluZwotICBlbHNlCi0gICAgSGlMaW5rIHBlcmxIZXJlSWRlbnRpZmllcglwZXJsU3RyaW5nU3RhcnRFbmQKLSAgICBIaUxpbmsgcGVybFVudGlsRU9GRFEJcGVybFN0cmluZwotICAgIEhpTGluayBwZXJsVW50aWxFT0ZTUQlwZXJsU3RyaW5nCi0gICAgSGlMaW5rIHBlcmxVbnRpbEVtcHR5RFEJcGVybFN0cmluZwotICAgIEhpTGluayBwZXJsVW50aWxFbXB0eVNRCXBlcmxTdHJpbmcKLSAgICBIaUxpbmsgcGVybFVudGlsRU9GCQlwZXJsU3RyaW5nCi0gIGVuZGlmCi0gIEhpTGluayBwZXJsU3RyaW5nVW5leHBhbmRlZAlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsU3Vic3RpdHV0aW9uU1EJcGVybFN0cmluZwotICBIaUxpbmsgcGVybFN1YnN0aXR1dGlvbkRRCXBlcmxTdHJpbmcKLSAgSGlMaW5rIHBlcmxTdWJzdGl0dXRpb25TbGFzaAlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsU3Vic3RpdHV0aW9uSGFzaAlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsU3Vic3RpdHV0aW9uQnJhY2tldCBwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsU3Vic3RpdHV0aW9uQ3VybHkgCXBlcmxTdHJpbmcKLSAgSGlMaW5rIHBlcmxTdWJzdGl0dXRpb25QbGluZwlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsVHJhbnNsYXRpb25TbGFzaAlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsVHJhbnNsYXRpb25IYXNoCXBlcmxTdHJpbmcKLSAgSGlMaW5rIHBlcmxUcmFuc2xhdGlvbkJyYWNrZXQJcGVybFN0cmluZwotICBIaUxpbmsgcGVybFRyYW5zbGF0aW9uQ3VybHkJcGVybFN0cmluZwotICBIaUxpbmsgcGVybE1hdGNoCQlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsTWF0Y2hTdGFydEVuZAlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsRm9ybWF0TmFtZQkJcGVybElkZW50aWZpZXIKLSAgSGlMaW5rIHBlcmxGb3JtYXRGaWVsZAlwZXJsU3RyaW5nCi0gIEhpTGluayBwZXJsUGFja2FnZURlY2wJcGVybFR5cGUKLSAgSGlMaW5rIHBlcmxTdG9yYWdlQ2xhc3MJcGVybFR5cGUKLSAgSGlMaW5rIHBlcmxQYWNrYWdlUmVmCQlwZXJsVHlwZQotICBIaUxpbmsgcGVybFN0YXRlbWVudFBhY2thZ2UJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudFN1YglwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50U3RvcmFnZQlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50Q29udHJvbAlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50U2NhbGFyCXBlcmxTdGF0ZW1lbnQKLSAgSGlMaW5rIHBlcmxTdGF0ZW1lbnRSZWdleHAJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudE51bWVyaWMJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudExpc3QJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudEhhc2gJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudElPZnVuYwlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50RmlsZWRlc2MJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudFZlY3RvcglwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50RmlsZXMJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudEZsb3cJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudFNjb3BlCXBlcmxTdGF0ZW1lbnQKLSAgSGlMaW5rIHBlcmxTdGF0ZW1lbnRJbmNsdWRlCXBlcmxTdGF0ZW1lbnQKLSAgSGlMaW5rIHBlcmxTdGF0ZW1lbnRQcm9jCXBlcmxTdGF0ZW1lbnQKLSAgSGlMaW5rIHBlcmxTdGF0ZW1lbnRTb2NrZXQJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudElQQwlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50TmV0d29yawlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsU3RhdGVtZW50UHdvcmQJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudFRpbWUJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudE1pc2MJcGVybFN0YXRlbWVudAotICBIaUxpbmsgcGVybFN0YXRlbWVudE5ldwlwZXJsU3RhdGVtZW50Ci0gIEhpTGluayBwZXJsRnVuY3Rpb25OYW1lCXBlcmxJZGVudGlmaWVyCi0gIEhpTGluayBwZXJsTWV0aG9kCQlwZXJsSWRlbnRpZmllcgotICBIaUxpbmsgcGVybEZ1bmN0aW9uUFJlZglwZXJsVHlwZQotICBIaUxpbmsgcGVybFBPRAkJcGVybENvbW1lbnQKLSAgSGlMaW5rIHBlcmxTaGVsbENvbW1hbmQJcGVybFN0cmluZwotICBIaUxpbmsgcGVybFNwZWNpYWxBc2NpaQlwZXJsU3BlY2lhbAotICBIaUxpbmsgcGVybFNwZWNpYWxEb2xsYXIJcGVybFNwZWNpYWwKLSAgSGlMaW5rIHBlcmxTcGVjaWFsU3RyaW5nCXBlcmxTcGVjaWFsCi0gIEhpTGluayBwZXJsU3BlY2lhbFN0cmluZ1UJcGVybFNwZWNpYWwKLSAgSGlMaW5rIHBlcmxTcGVjaWFsTWF0Y2gJcGVybFNwZWNpYWwKLSAgSGlMaW5rIHBlcmxTcGVjaWFsQkVPTQlwZXJsU3BlY2lhbAotICBIaUxpbmsgcGVybERBVEEJCXBlcmxDb21tZW50Ci0KLSAgSGlMaW5rIHBlcmxCcmFja2V0cwkJRXJyb3IKLQotICAiIFBvc3NpYmxlIGVycm9ycwotICBIaUxpbmsgcGVybE5vdEVtcHR5TGluZQlFcnJvcgotICBIaUxpbmsgcGVybEVsc2VJZkVycm9yCUVycm9yCi0KLSAgZGVsY29tbWFuZCBIaUxpbmsKLWVuZGlmCitkZWxjb21tYW5kIEhpTGluawogCiAiIFN5bmNpbmcgdG8gc3BlZWQgdXAgcHJvY2Vzc2luZwogIgogaWYgIWV4aXN0cygicGVybF9ub19zeW5jX29uX3N1YiIpCiAgIHN5biBzeW5jIG1hdGNoIHBlcmxTeW5jCWdyb3VwaGVyZSBOT05FICJeXHMqXDxwYWNrYWdlXHMiCi0gIHN5biBzeW5jIG1hdGNoIHBlcmxTeW5jCWdyb3VwaGVyZSBwZXJsRnVuY3Rpb24gIl5ccypcPHN1YlxzIgorICBzeW4gc3luYyBtYXRjaCBwZXJsU3luYwlncm91cGhlcmUgTk9ORSAiXlxzKlw8c3ViXD4iCiAgIHN5biBzeW5jIG1hdGNoIHBlcmxTeW5jCWdyb3VwaGVyZSBOT05FICJefSIKIGVuZGlmCiAKQEAgLTU1OSw0ICs1NDAsNSBAQAogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJwZXJsIgogCi0iIHZpbTogdHM9OAorIiBYWFggQ2hhbmdlIHRvIHN0cz00OnN3PTQKKyIgdmltOnRzPTg6c3RzPTI6c3c9MjpleHBhbmR0YWI6ZnQ9dmltCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9wZXJsNi52aW0gYi9ydW50aW1lL3N5bnRheC9wZXJsNi52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzYmFiYQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L3Blcmw2LnZpbQpAQCAtMCwwICsxLDIyNDkgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOiAgICAgUGVybCA2CisiIE1haW50YWluZXI6ICAgQW5keSBMZXN0ZXIgPGFuZHlAcGV0ZGFuY2UuY29tPgorIiBIb21lcGFnZTogICAgIGh0dHA6Ly9naXRodWIuY29tL3BldGRhbmNlL3ZpbS1wZXJsL3RyZWUvbWFzdGVyCisiIExhc3QgQ2hhbmdlOiAgMjAwOS0wNy0wNAorCisiIENvbnRyaWJ1dG9yczogTHVrZSBQYWxtZXIgPGZpYm9uYWNpQGJhYnlsb25pYS5mbGF0aXJvbnMub3JnPgorIiAgICAgICAgICAgICAgIE1vcml0eiBMZW56IDxtb3JpdHpAZmF1aTJrMy5vcmc+CisiICAgICAgICAgICAgICAgSGlucmlrIMOWcm4gU2lndXLDsHNzb24gPGhpbnJpay5zaWdAZ21haWwuY29tPgorIgorIiBUaGlzIGlzIGEgYmlnIHVuZGVydGFraW5nLiBQZXJsIDYgaXMgdGhlIHNvcnQgb2YgbGFuZ3VhZ2UgdGhhdCBvbmx5IFBlcmwKKyIgY2FuIHBhcnNlLiBCdXQgSSdsbCBkbyBteSBiZXN0IHRvIGdldCB2aW0gdG8uCisiCisiIFlvdSBjYW4gYXNzb2NpYXRlIHRoZSBleHRlbnNpb24gIi5wbCIgd2l0aCB0aGUgZmlsZXR5cGUgInBlcmw2IiBieSBzZXR0aW5nCisiICAgICBhdXRvY21kIEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnBsIHNldGYgcGVybDYKKyIgaW4geW91ciB+Ly52aW1yYy4gQnV0IHRoYXQgd2lsbCBpbmZyaW5nZSBvbiBQZXJsIDUsIHNvIHlvdSBtaWdodCB3YW50IHRvCisiIHB1dCBhIG1vZGVsaW5lIG5lYXIgdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgeW91ciBQZXJsIDYgZmlsZXMgaW5zdGVhZDoKKyIgICAgICMgdmltOiBmaWxldHlwZT1wZXJsNgorCisiIFRPRE86CisiICAgKiBEZWFsIHdpdGggczpQZXJsNS8vCisiICAgKiBtOnMvLyBpcyBhIG1hdGNoLCBub3QgYSBzdWJzdGl0dXRpb24KKyIgICAqIE1ha2UgdGhlc2UgaGlnaGxpZ2h0IGFzIHN0cmluZ3MsIG5vdCBvcGVyYXRvcnM6CisiICAgICAgIDw9PT4gPD06PT4gPD09PT4gPD1+PiA8wqsgwrs+IMKrPsK7IMKrPMK7CisiICAgKiBBbGxvdyBtb3JlIGtleXdvcmRzIHRvIG1hdGNoIGFzIGZ1bmN0aW9uIGNhbGxzKGxlYXZlKCkgaXMgZXhwb3J0KCksIGV0YykKKyIgICAqIE9wdGltaXphdGlvbjogdXNlIG5leHRncm91cCBpbnN0ZWFkIG9mIGxvb2thcm91bmQgKDpoZWxwIHN5bi1uZXh0Z3JvdXApCisiICAgKiBGaXggcycnJyBzdWJzdGl0dXRpb25zIGJlaW5nIG1hdGNoZWQgYXMgcGFja2FnZSBuYW1lcworIiAgICogTWF0Y2ggcy8vLyBhbmQgbS8vLyBiZXR0ZXIsIHNvIHRoaW5ncyBsaWtlICIkcy8iIHdvbid0IG1hdGNoCisiICAgKiBBZGQgbW9yZSBzdXBwb3J0IGZvciBmb2xkaW5nICg6aGVscCBzeW4tZm9sZCkKKyIgICAqIEFkZCBtb3JlIHN5bnRheCBzeW5jaW5nIGhvb2tzICg6aGVscCBzeW4tc3luYykKKyIgICAqIFEvLzoKKyIgICAgICAgOnRvLCA6aGVyZWRvYworIiAgICAgICBpbnRlcnBvbGF0ZSBccTpzeyRzY2FsYXJ9ICh0aG91Z2ggdGhlIHNwZWMgaXNuJ3QgdmVyeSBjbGVhciBvbiBpdCkKKyIKKyIgSW1wb3NzaWJsZSBUT0RPPzoKKyIgICAqIFVuc3BhY2UKKyIgICAqIFVuaWNvZGUgYnJhY2tldGluZyBjaGFyYWN0ZXJzIGZvciBxdW90aW5nICh0aGVyZSBhcmUgc28gbWFueSkKKyIgICAqIFZhcmlvdXMgdHJpY2tzIGRlcGVuZGluZyBvbiBjb250ZXh0LiBJLmUuIHdlIGNhbid0IGtub3cgd2hlbiBQZXJsCisiICAgICBleHBlY3RzIMKrKsK7IHRvIGJlIGEgc3RyaW5nIG9yIGEgaHlwZXJvcGVyYXRvci4gVGhlIGxhdHRlciBpcyBwcmVzdW1hYmx5CisiICAgICBtb3JlIGNvbW1vbiwgc28gdGhhdCdzIHdoYXQgd2UgYXNzdW1lLgorIiAgICogU2VsZWN0aXZlIGhpZ2hsaWdodGluZyBvZiBQb2QgZm9ybWF0dGluZyBjb2RlcyB3aXRoIHRoZSA6YWxsb3cgb3B0aW9uCisiICAgKiBBcmJpdHJhcnkgbnVtYmVyLCBvcmRlciwgYW5kIG5lZ2F0aW9uIG9mIGFkdmVyYnMgdG8gUS8vLCBxLy8sIHFxLy8uCisiICAgICBDdXJyZW50bHkgb25seSB0aGUgZmlyc3QgYWR2ZXJiIGlzIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQuIEFueXRoaW5nCisiICAgICBtb3JlIHdvdWxkIHJlcXVpcmUgYW4gZXhwb25lbnRpYWwgYW1vdW50IG9mIHJlZ2V4ZXMsIG1ha2luZyB0aGlzCisiICAgICBhbHJlYWR5IHNsb3cgc3ludGF4IGZpbGUgZXZlbiBzbG93ZXIuCisiCisiIElmIHlvdSB3YW50IHRvIGhhdmUgUGlyIGNvZGUgaW5zaWRlIFE6UElSLy8gc3RyaW5ncyBoaWdobGlnaHRlZCwgZG86CisiICBsZXQgcGVybDZfZW1iZWRkZWRfcGlyPTEKKyIKKyIgVGhlIGFib3ZlIHJlcXVpcmVzIHBpci52aW0sIHdoaWNoIHlvdSBjYW4gZmluZCBpbiBQYXJyb3QncyByZXBvc2l0b3J5OgorIiBodHRwczovL3N2bi5wYXJyb3Qub3JnL3BhcnJvdC90cnVuay9lZGl0b3IvCisiCisiIFNvbWUgbGVzcyB0aGFuIGNydWNpYWwgdGhpbmdzIGhhdmUgYmVlbiBtYWRlIG9wdGlvbmFsIHRvIHNwZWVkIHRoaW5ncyB1cC4KKyIgTG9vayBhdCB0aGUgY29tbWVudHMgbmVhciB0aGUgaWYvZWxzZSBicmFuY2hlcyBpbiB0aGlzIGZpbGUgdG8gc2VlIGV4YWN0bHkKKyIgd2hpY2ggZmVhdHVyZXMgYXJlIGFmZmVjdGVkLiAicGVybDZfZXh0ZW5kZWRfYWxsIiBlbmFibGVzIGV2ZXJ5dGhpbmcuCisiCisiIFRoZSBkZWZhdWx0cyBhcmU6CisiCisiICB1bmxldCBwZXJsNl9leHRlbmRlZF9jb21tZW50cworIiAgdW5sZXQgcGVybDZfZXh0ZW5kZWRfcQorIiAgdW5sZXQgcGVybDZfZXh0ZW5kZWRfYWxsCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCisiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCitpZiB2ZXJzaW9uIDwgNjAwCisgICAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKK2VuZGlmCisKKyIgaWRlbnRpZmllcnMKK3N5biBtYXRjaCBwNk5vcm1hbCBkaXNwbGF5ICJcS1wlKFxrXHxbLSddXEtcQD1cKSoiCisKKyIgVGhpcyBpcyB1c2VkIGluIHRoZSBmb3IgbG9vcHMgYmVsb3cKKyIgRG9uJ3QgdXNlIHRoZSAic3luIGtleXdvcmQiIGNvbnN0cnVjdCBiZWNhdXNlIHRoYXQgYWx3YXlzIGhhcyBoaWdoZXIKKyIgcHJpb3JpdHkgdGhhbiBtYXRjaGVzL3JlZ2lvbnMsIHNvIHRoZSB3b3JkcyBjYW4ndCBiZSBhdXRvcXVvdGVkIHdpdGgKKyIgdGhlICI9PiIgYW5kICJwNT0+IiBvcGVyYXRvcnMuIEFsbCB0aGUgbG9va2Fyb3VuZCBzdHVmZiBpcyB0byBtYWtlIHN1cmUKKyIgd2UgZG9uJ3QgbWF0Y2ggdGhlbSBhcyBwYXJ0IG9mIHNvbWUgb3RoZXIgaWRlbnRpZmllci4KK2xldCBzOmJlZm9yZV9rZXl3b3JkID0gIiBkaXNwbGF5IFwiXFwlKFxca1xcfFxcS1xcQDw9Wy0nXVxcKVxcQDwhXFwlKCIKK2xldCBzOmFmdGVyX2tleXdvcmQgPSAiXFwpXFwlKFxca1xcfFstJ11cXEtcXEA9XFwpXFxAIVwiIgorCisiIEJpbGxpb25zIG9mIGtleXdvcmRzCitsZXQgczprZXl3b3JkcyA9IHsKKyBcICJwNkF0dGVudGlvbiI6IFsKKyBcICAgIkFDSFRVTkcgQVRUTiBBVFRFTlRJT04gRklYTUUgTkIgVE9ETyBUQkQgV1RGIFhYWCBOT1RFIiwKKyBcIF0sCisgXCAicDZEZWNsYXJlUm91dGluZSI6IFsKKyBcICAgIm1hY3JvIHN1YiBzdWJtZXRob2QgbWV0aG9kIG11bHRpIHByb3RvIG9ubHkgcnVsZSB0b2tlbiByZWdleCBjYXRlZ29yeSIsCisgXCBdLAorIFwgInA2TW9kdWxlIjogWworIFwgICAibW9kdWxlIGNsYXNzIHJvbGUgcGFja2FnZSBlbnVtIGdyYW1tYXIgc2xhbmcgc3Vic2V0IiwKKyBcIF0sCisgXCAicDZWYXJpYWJsZSI6IFsKKyBcICAgInNlbGYiLAorIFwgXSwKKyBcICJwNkluY2x1ZGUiOiBbCisgXCAgICJ1c2UgcmVxdWlyZSIsCisgXCBdLAorIFwgInA2Q29uZGl0aW9uYWwiOiBbCisgXCAgICJpZiBlbHNlIGVsc2lmIHVubGVzcyIsCisgXCBdLAorIFwgInA2VmFyU3RvcmFnZSI6IFsKKyBcICAgImxldCBteSBvdXIgc3RhdGUgdGVtcCBoYXMgY29uc3RhbnQiLAorIFwgXSwKKyBcICJwNlJlcGVhdCI6IFsKKyBcICAgImZvciBsb29wIHJlcGVhdCB3aGlsZSB1bnRpbCBnYXRoZXIgZ2l2ZW4iLAorIFwgXSwKKyBcICJwNkZsb3dDb250cm9sIjogWworIFwgICAidGFrZSBkbyB3aGVuIG5leHQgbGFzdCByZWRvIHJldHVybiBjb250ZW5kIG1heWJlIGRlZmVyIiwKKyBcICAgImRlZmF1bHQgZXhpdCBtYWtlIGNvbnRpbnVlIGJyZWFrIGdvdG8gbGVhdmUgYXN5bmMgbGlmdCIsCisgXCBdLAorIFwgInA2VHlwZUNvbnN0cmFpbnQiOiBbCisgXCAgICJpcyBhcyBidXQgdHJ1c3RzIG9mIHJldHVybnMgaGFuZGxlcyB3aGVyZSBhdWdtZW50IHN1cGVyc2VkZSIsCisgXCBdLAorIFwgInA2Q2xvc3VyZVRyYWl0IjogWworIFwgICAiQkVHSU4gQ0hFQ0sgSU5JVCBTVEFSVCBGSVJTVCBFTlRFUiBMRUFWRSBLRUVQIiwKKyBcICAgIlVORE8gTkVYVCBMQVNUIFBSRSBQT1NUIEVORCBDQVRDSCBDT05UUk9MIFRFTVAiLAorIFwgXSwKKyBcICJwNkV4Y2VwdGlvbiI6IFsKKyBcICAgImRpZSBmYWlsIHRyeSB3YXJuIiwKKyBcIF0sCisgXCAicDZQcm9wZXJ0eSI6IFsKKyBcICAgInByZWMgaXJzIG9mcyBvcnMgZXhwb3J0IGRlZXAgYmluYXJ5IHVuYXJ5IHJlcGFyc2VkIHJ3IHBhcnNlZCBjYWNoZWQiLAorIFwgICAicmVhZG9ubHkgZGVmZXF1aXYgd2lsbCByZWYgY29weSBpbmxpbmUgdGlnaHRlciBsb29zZXIgZXF1aXYgYXNzb2MiLAorIFwgICAicmVxdWlyZWQiLAorIFwgXSwKKyBcICJwNk51bWJlciI6IFsKKyBcICAgIk5hTiBJbmYiLAorIFwgXSwKKyBcICJwNlByYWdtYSI6IFsKKyBcICAgIm9vIGZhdGFsIiwKKyBcIF0sCisgXCAicDZUeXBlIjogWworIFwgICAiT2JqZWN0IEFueSBKdW5jdGlvbiBXaGF0ZXZlciBDYXB0dXJlIE1hdGNoIiwKKyBcICAgIlNpZ25hdHVyZSBQcm94eSBNYXRjaGVyIFBhY2thZ2UgTW9kdWxlIENsYXNzIiwKKyBcICAgIkdyYW1tYXIgU2NhbGFyIEFycmF5IEhhc2ggS2V5SGFzaCBLZXlTZXQgS2V5QmFnIiwKKyBcICAgIlBhaXIgTGlzdCBTZXEgUmFuZ2UgU2V0IEJhZyBNYXBwaW5nIFZvaWQgVW5kZWYiLAorIFwgICAiRmFpbHVyZSBFeGNlcHRpb24gQ29kZSBCbG9jayBSb3V0aW5lIFN1YiBNYWNybyIsCisgXCAgICJNZXRob2QgU3VibWV0aG9kIFJlZ2V4IFN0ciBCbG9iIENoYXIgQnl0ZSIsCisgXCAgICJDb2RlcG9pbnQgR3JhcGhlbWUgU3RyUG9zIFN0ckxlbiBWZXJzaW9uIE51bSIsCisgXCAgICJDb21wbGV4IG51bSBjb21wbGV4IEJpdCBiaXQgYm9vbCBUcnVlIEZhbHNlIiwKKyBcICAgIkluY3JlYXNpbmcgRGVjcmVhc2luZyBPcmRlcmVkIENhbGxhYmxlIEFueUNoYXIiLAorIFwgICAiUG9zaXRpb25hbCBBc3NvY2lhdGl2ZSBPcmRlcmluZyBLZXlFeHRyYWN0b3IiLAorIFwgICAiQ29tcGFyYXRvciBPcmRlcmluZ1BhaXIgSU8gS2l0Y2hlblNpbmsgUm9sZSIsCisgXCAgICJJbnQgaW50IGludDEgaW50MiBpbnQ0IGludDggaW50MTYgaW50MzIgaW50NjQiLAorIFwgICAiUmF0IHJhdCByYXQxIHJhdDIgcmF0NCByYXQ4IHJhdDE2IHJhdDMyIHJhdDY0IiwKKyBcICAgIkJ1ZiBidWYgYnVmMSBidWYyIGJ1ZjQgYnVmOCBidWYxNiBidWYzMiBidWY2NCIsCisgXCAgICJVSW50IHVpbnQgdWludDEgdWludDIgdWludDQgdWludDggdWludDE2IHVpbnQzMiIsCisgXCAgICJ1aW50NjQgQWJzdHJhY3Rpb24gdXRmOCB1dGYxNiB1dGYzMiIsCisgXCBdLAorIFwgInA2T3BlcmF0b3IiOiBbCisgXCAgICJkaXYgeCB4eCBtb2QgYWxzbyBsZWcgY21wIGJlZm9yZSBhZnRlciBlcSBuZSBsZSBsdCIsCisgXCAgICJndCBnZSBlcXYgZmYgZmZmIGFuZCBhbmR0aGVuIFogWCBvciB4b3IiLAorIFwgICAib3JlbHNlIGV4dHJhIG0gbW0gcnggcyB0ciIsCisgXCBdLAorXCB9CisKK2ZvciBbZ3JvdXAsIHdvcmRzXSBpbiBpdGVtcyhzOmtleXdvcmRzKQorICAgIGxldCBzOndvcmRzX3NwYWNlID0gam9pbih3b3JkcywgIiAiKQorICAgIGxldCBzOnRlbXAgPSBzcGxpdChzOndvcmRzX3NwYWNlKQorICAgIGxldCBzOndvcmRzID0gam9pbihzOnRlbXAsICJcXHwiKQorICAgIGV4ZWMgInN5biBtYXRjaCAiLiBncm91cCAuIiAiLiBzOmJlZm9yZV9rZXl3b3JkIC4gczp3b3JkcyAuIHM6YWZ0ZXJfa2V5d29yZAorZW5kZm9yCit1bmxldCBzOmtleXdvcmRzIHM6d29yZHNfc3BhY2Ugczp0ZW1wIHM6d29yZHMKKworIiBNb3JlIG9wZXJhdG9ycworIiBEb24ndCBwdXQgYSAiXCsiIGF0IHRoZSBlbmQgb2YgdGhlIGNoYXJhY3RlciBjbGFzcy4gVGhhdCBtYWtlcyBpdCBzbworIiBncmVlZHkgdGhhdCB0aGUgIiUiICIgaW4gIislZm9vIiB3b24ndCBiZSBhbGxvd2VkIHRvIG1hdGNoIGFzIGEgc2lnaWwsCisiIGFtb25nIG90aGVyIHRoaW5ncworc3luIG1hdGNoIHA2T3BlcmF0b3IgZGlzcGxheSAiWy0rLyp+P3w9XiElJiw8Pi47XFxdIgorc3luIG1hdGNoIHA2T3BlcmF0b3IgZGlzcGxheSAiXCUoOlxAPCE6OlxAIVx8Ojo9XHxcLjo6XCkiCisiIHRoZXNlIHJlcXVpcmUgd2hpdGVzcGFjZSBvbiB0aGUgbGVmdCBzaWRlCitzeW4gbWF0Y2ggcDZPcGVyYXRvciBkaXNwbGF5ICJcJShcc1x8XlwpXEA8PVwlKHh4PVx8cDU9PlwpIgorIiAiaSIgcmVxdWlyZXMgYSBkaWdpdCB0byB0aGUgbGVmdCwgYW5kIG5vIGtleXdvcmQgY2hhciB0byB0aGUgcmlnaHQKK3N5biBtYXRjaCBwNk9wZXJhdG9yIGRpc3BsYXkgIlxkXEA8PWlca1xAISIKKyIgaW5kZXggb3ZlcmxvYWRpbmcKK3N5biBtYXRjaCBwNk9wZXJhdG9yIGRpc3BsYXkgIlwlKCZcLihcQD1cfEBcLlxbXEA9XHwlXC57XEA9XCkiCisKKyIgYWxsIGluZml4IG9wZXJhdG9ycyBleGNlcHQgbm9uYXNzb2NhdGl2ZSBvbmVzCitsZXQgczppbmZpeF9hID0gWworICAgIFwgImRpdiAlIG1vZCArJiArPCArPiBcXH4mID8mIFxcfjwgXFx+PiArfCArXFxeIFxcfnwgXFx+XFxeID98ID9cXF4geHggeCIsCisgICAgXCAiXFx+ICYmICYgYWxzbyA8PT0gPT0+IDw8PT0gPT0+PiA9PSAhPSA8IDw9ID4gPj0gXFx+XFx+IGVxIG5lIGx0IGxlIGd0IiwKKyAgICBcICJnZSA9Oj0gPT09IGVxdiBiZWZvcmUgYWZ0ZXIgXFxeXFxeIG1pbiBtYXggXFxeZmYgZmZcXF4gXFxeZmZcXF4iLAorICAgIFwgIlxcXmZmZiBmZmZcXF4gXFxeZmZmXFxeIGZmZiBmZiA6Oj0gOj0gXFwuPSA9PiAsIDogcDU9PiBaIG1pbm1heCIsCisgICAgXCAiXFwuXFwuXFwuIGFuZCBhbmR0aGVuIG9yIG9yZWxzZSB4b3IgXFxeICs9IC09IC89IFxcKj0gXFx+PSAvLz0gfHw9IiwKKyAgICBcICIrIC0gXFwqXFwqIFxcKiAvLyAvIFxcfiB8fCB8IiwKK1wgXQorIiBub25hc3NvY2lhdGl2ZSBpbmZpeCBvcGVyYXRvcnMKK2xldCBzOmluZml4X24gPSAiYnV0IGRvZXMgPD0+IGxlZyBjbXAgXFwuXFwuIFxcLlxcLlxcXlxcXiBcXF5cXC5cXC4gXFxeXFwuXFwuXFxeIgorCitsZXQgczppbmZpeF9hX2xvbmcgPSBqb2luKHM6aW5maXhfYSwgIiAiKQorbGV0IHM6aW5maXhfYV93b3JkcyA9IHNwbGl0KHM6aW5maXhfYV9sb25nKQorbGV0IHM6aW5maXhfYV9wYXR0ZXJuID0gam9pbihzOmluZml4X2Ffd29yZHMsICJcXHwiKQorCitsZXQgczppbmZpeF9uX3dvcmRzID0gc3BsaXQoczppbmZpeF9uKQorbGV0IHM6aW5maXhfbl9wYXR0ZXJuID0gam9pbihzOmluZml4X25fd29yZHMsICJcXHwiKQorCitsZXQgczpib3RoID0gW3M6aW5maXhfYV9wYXR0ZXJuLCBzOmluZml4X25fcGF0dGVybl0KK2xldCBzOmluZml4ID0gam9pbihzOmJvdGgsICJcXHwiKQorCitsZXQgczppbmZpeF9hc3NvYyA9ICIhXFw/XFwlKCIgLiBzOmluZml4X2FfcGF0dGVybiAuICJcXCkiCitsZXQgczppbmZpeCA9ICIhXFw/XFwlKCIgLiBzOmluZml4IC4gIlxcKSIKKwordW5sZXQgczppbmZpeF9hIHM6aW5maXhfYV9sb25nIHM6aW5maXhfYV93b3JkcyBzOmluZml4X2FfcGF0dGVybgordW5sZXQgczppbmZpeF9uIHM6aW5maXhfbl9wYXR0ZXJuIHM6Ym90aAorCisiIFsrXSByZWR1Y2UKK2V4ZWMgInN5biBtYXRjaCBwNlJlZHVjZU9wIGRpc3BsYXkgXCJcXGtcXEA8IVxcW1tSXFxcXF1cXD8hXFw/Ii4gczppbmZpeF9hc3NvYyAuIl1cXCUowqtcXHw8PFxcKVxcP1wiIgordW5sZXQgczppbmZpeF9hc3NvYworCisiIFJldmVyc2UgYW5kIGNyb3NzIG9wZXJhdG9ycyAoUm9wLCBYb3ApCitleGVjICJzeW4gbWF0Y2ggcDZSZXZlcnNlQ3Jvc3NPcCBkaXNwbGF5IFwiW1JYXSIuIHM6aW5maXggLiJcIiIKKworIiBxKCkgb3Igd2hhdGV2ZXIoKSBpcyBhbHdheXMgYSBmdW5jdGlvbiBjYWxsCitzeW4gbWF0Y2ggcDZOb3JtYWwgZGlzcGxheSAiXEtcJShca1x8Wy0nXVxLXEA9XCkqKFxAPSIKKworIiBiYXNpY2FsbHkgYWxsIGJ1aWx0aW5zIHRoYXQgY2FuIGJlIGZvbGxvd2VkIGJ5IHBhcmVudGhlc2VzCitsZXQgczpyb3V0aW5lcyA9IFsKKyBcICJlYWdlciBoeXBlciBzdWJzdHIgaW5kZXggcmluZGV4IGdyZXAgbWFwIHNvcnQgam9pbiBsaW5lcyBoaW50cyBjaG1vZCIsCisgXCAic3BsaXQgcmVkdWNlIG1pbiBtYXggcmV2ZXJzZSB0cnVuY2F0ZSB6aXAgY2F0IHJvdW5kcm9iaW4gY2xhc3NpZnkiLAorIFwgImZpcnN0IHN1bSBrZXlzIHZhbHVlcyBwYWlycyBkZWZpbmVkIGRlbGV0ZSBleGlzdHMgZWxlbXMgZW5kIGt2IGFueSIsCisgXCAiYWxsIG9uZSB3cmFwIHNoYXBlIGtleSB2YWx1ZSBuYW1lIHBvcCBwdXNoIHNoaWZ0IHNwbGljZSB1bnNoaWZ0IGZsb29yIiwKKyBcICJjZWlsaW5nIGFicyBleHAgbG9nIGxvZzEwIHJhbmQgc2lnbiBzcXJ0IHNpbiBjb3MgdGFuIHJvdW5kIHN0cmFuZCIsCisgXCAicm9vdHMgY2lzIHVucG9sYXIgcG9sYXIgYXRhbjIgcGljayBjaG9wIHA1Y2hvcCBjaG9tcCBwNWNob21wIGxjIiwKKyBcICJsY2ZpcnN0IHVjIHVjZmlyc3QgY2FwaXRhbGl6ZSBub3JtYWxpemUgcGFjayB1bnBhY2sgcXVvdGVtZXRhIGNvbWIiLAorIFwgInNhbWVjYXNlIHNhbWVhY2NlbnQgY2hhcnMgbmZkIG5mYyBuZmtkIG5ma2MgcHJpbnRmIHNwcmludGYgY2FsbGVyIiwKKyBcICJldmFsZmlsZSBydW4gcnVuaW5zdGVhZCBub3RoaW5nIHdhbnQgYmxlc3MgY2hyIG9yZCBnbXRpbWUgdGltZSBlb2YiLAorIFwgImxvY2FsdGltZSBnZXRob3N0IGdldHB3IGNocm9vdCBnZXRsb2dpbiBnZXRwZWVybmFtZSBraWxsIGZvcmsgd2FpdCIsCisgXCAicGVybCBncmFwaHMgY29kZXMgYnl0ZXMgY2xvbmUgcHJpbnQgb3BlbiByZWFkIHdyaXRlIHJlYWRsaW5lIHNheSBzZWVrIiwKKyBcICJjbG9zZSBvcGVuZGlyIHJlYWRkaXIgc2x1cnAgcG9zIGZtdCB2ZWMgbGluayB1bmxpbmsgc3ltbGluayB1bmlxIHBhaXIiLAorIFwgImFzaW4gYXRhbiBzZWMgY29zZWMgY290YW4gYXNlYyBhY29zZWMgYWNvdGFuIHNpbmggY29zaCB0YW5oIGFzaW5oIiwKKyBcICJhY29zIGFjb3NoIGF0YW5oIHNlY2ggY29zZWNoIGNvdGFuaCBzZWNoIGFjb3NlY2ggYWNvdGFuaCBhc2VjaCBvayIsCisgXCAicGxhbl9vayBkaWVzX29rIGxpdmVzX29rIHNraXAgdG9kbyBwYXNzIGZsdW5rIGZvcmNlX3RvZG8gdXNlX29rIGlzYV9vayIsCisgXCAiZGlhZyBpc19kZWVwbHkgaXNudCBsaWtlIHNraXBfcmVzdCB1bmxpa2UgY21wX29rIGV2YWxfZGllc19vayBub2tfZXJyb3IiLAorIFwgImV2YWxfbGl2ZXNfb2sgYXBwcm94IGlzX2FwcHJveCB0aHJvd3Nfb2sgdmVyc2lvbl9sdCBwbGFuIGV2YWwgc3VjYyBwcmVkIiwKKyBcICJ0aW1lcyBub25jZSBvbmNlIHNpZ25hdHVyZSBuZXcgY29ubmVjdCBvcGVyYXRvciB1bmRlZiB1bmRlZmluZSBzbGVlcCIsCisgXCAiZnJvbSB0byBpbmZpeCBwb3N0Zml4IHByZWZpeCBjaXJjdW1maXggcG9zdGNpcmN1bWZpeCBtaW5tYXggbGF6eSBjb3VudCIsCisgXCAidW53cmFwIGdldGMgcGkgZSBjb250ZXh0IHZvaWQgcXVhc2kgYm9keSBlYWNoIGNvbnRhaW5zIHJld2luZGRpciBzdWJzdCIsCisgXCAiY2FuIGlzYSBmbHVzaCBhcml0eSBhc3N1bWluZyByZXdpbmQgY2FsbHdpdGggY2FsbHNhbWUgbmV4dHdpdGggbmV4dHNhbWUiLAorIFwgImF0dHIgZXZhbF9lbHNld2hlcmUgbm9uZSBzcmFuZCB0cmltIHRyaW1fc3RhcnQgdHJpbV9lbmQgbGFzdGNhbGwgV0hBVCIsCisgXCAiV0hFUkUgSE9XIFdISUNIIFZBUiBXSE8gV0hFTkNFIEFDQ0VQVFMgUkVKRUNUUyBkb2VzIG5vdCB0cnVlIGl0ZXJhdG9yIGJ5IiwKKyBcICJyZSBpbSBpbnZlcnQgZmxpcCIsCitcIF0KKworIiB3ZSB3YW50IHRvIGhpZ2hsaWdodCBidWlsdGlucyBsaWtlIHNwbGl0KCkgdGhvdWdoLCBzbyB0aGlzIGNvbWVzIGFmdGVyd2FyZHMKKyIgVE9ETzogY2hlY2sgaWYgdGhpcyB3b3VsZCBiZSBmYXN0ZXIgYXMgb25lIGJpZyByZWdleAorbGV0IHM6d29yZHNfc3BhY2UgPSBqb2luKHM6cm91dGluZXMsICIgIikKK2xldCBzOnRlbXAgPSBzcGxpdChzOndvcmRzX3NwYWNlKQorbGV0IHM6d29yZHMgPSBqb2luKHM6dGVtcCwgIlxcfCIpCitleGVjICJzeW4gbWF0Y2ggcDZSb3V0aW5lICIuIHM6YmVmb3JlX2tleXdvcmQgLiBzOndvcmRzIC4gczphZnRlcl9rZXl3b3JkCit1bmxldCBzOmJlZm9yZV9rZXl3b3JkIHM6YWZ0ZXJfa2V5d29yZCBzOndvcmRzX3NwYWNlIHM6dGVtcCBzOndvcmRzIHM6cm91dGluZXMKKworIiBwYWNrYWdlcywgbXVzdCBjb21lIGFmdGVyIGFsbCB0aGUga2V5d29yZHMKK3N5biBtYXRjaCBwNk5vcm1hbCBkaXNwbGF5ICJcJSg6OlwpXEA8PVxLXCUoXGtcfFstJ11cS1xAPVwpKiIKK3N5biBtYXRjaCBwNk5vcm1hbCBkaXNwbGF5ICJcS1wlKFxrXHxbLSddXEtcQD1cKSpcJSg6OlwpXEA9IgorCisiIHNvbWUgc3RhbmRhcmQgcGFja2FnZXMKK3N5biBtYXRjaCBwNlR5cGUgZGlzcGxheSAiXCUoOjpcfFxrXHxcS1xAPD1bLSddXClcQDwhXCUoT3JkZXJcJSg6OlNhbWVcfDo6SW5jcmVhc2VcfDo6RGVjcmVhc2VcKVw/XClcJShca1x8Wy0nXVxLXEA9XClcQCEiCitzeW4gbWF0Y2ggcDZUeXBlIGRpc3BsYXkgIlwlKDo6XHxca1x8XEtcQDw9Wy0nXVwpXEA8IVwlKEJvb2xcJSg6OlRydWVcfDo6RmFsc2VcKVw/XClcJShca1x8Wy0nXVxLXEA9XClcQCEiCisKKworc3luIG1hdGNoIHA2U2hlYmFuZyAgICBkaXNwbGF5ICJcJV4jIS4qIgorc3luIG1hdGNoIHA2QmxvY2tMYWJlbCBkaXNwbGF5ICJcJSheXHMqXClcQDw9XGhcdypccyo6OlxAIVxfc1xAPSIKK3N5biBtYXRjaCBwNk51bWJlciAgICAgZGlzcGxheSAiXGtcQDwhX1xAIVwlKFxkXHxfX1xAIVwpXCtfXEA8IVwlKFtlRV1fXEAhK1w/XCUoXGRcfF9cKVwrXClcP19cQDwhIgorc3luIG1hdGNoIHA2RmxvYXQgICAgICBkaXNwbGF5ICJca1xAPCFfXEAhXCUoXGRcfF9fXEAhXClcK19cQDwhW2VFXV9cQCEtXCUoXGRcfF9cKVwrIgorc3luIG1hdGNoIHA2RmxvYXQgICAgICBkaXNwbGF5ICJca1xAPCFfXEA8IVwlKFxkXHxfX1xAIVwpKl9cQDwhXC5cQDwhXC5fXEAhXC5cQCFcYVxAIVwlKFxkXHxfXClcK19cQDwhXCUoW2VFXV9cQCFcJShcZFx8X1wpXCtcKVw/IgorCitzeW4gbWF0Y2ggcDZOdW1iZXJCYXNlIGRpc3BsYXkgIltvYnhkXSIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZOdW1iZXIgICAgIGRpc3BsYXkgIlw8MFwlKG9bMC03XVswLTdfXSpcKVxAPSIgICAgIG5leHRncm91cD1wNk51bWJlckJhc2UKK3N5biBtYXRjaCBwNk51bWJlciAgICAgZGlzcGxheSAiXDwwXCUoYlswMV1bMDFfXSpcKVxAPSIgICAgICAgbmV4dGdyb3VwPXA2TnVtYmVyQmFzZQorc3luIG1hdGNoIHA2TnVtYmVyICAgICBkaXNwbGF5ICJcPDBcJSh4XHhbWzp4ZGlnaXQ6XV9dKlwpXEA9IiBuZXh0Z3JvdXA9cDZOdW1iZXJCYXNlCitzeW4gbWF0Y2ggcDZOdW1iZXIgICAgIGRpc3BsYXkgIlw8MFwlKGRcZFtbOmRpZ2l0Ol1fXSpcKVxAPSIgIG5leHRncm91cD1wNk51bWJlckJhc2UKK3N5biBtYXRjaCBwNk51bWJlciAgICAgZGlzcGxheSAiXCUoXDwwb1wpXEA8PVswLTddWzAtN19dKiIKK3N5biBtYXRjaCBwNk51bWJlciAgICAgZGlzcGxheSAiXCUoXDwwYlwpXEA8PVswMV1bMDFfXSoiCitzeW4gbWF0Y2ggcDZOdW1iZXIgICAgIGRpc3BsYXkgIlwlKFw8MHhcKVxAPD1ceFtbOnhkaWdpdDpdX10qIgorc3luIG1hdGNoIHA2TnVtYmVyICAgICBkaXNwbGF5ICJcJShcPDBkXClcQDw9XGRbWzpkaWdpdDpdX10qIgorCitzeW4gbWF0Y2ggcDZWZXJzaW9uICAgIGRpc3BsYXkgIlw8dlxkXEA9IiBuZXh0Z3JvdXA9cDZWZXJzaW9uTnVtCitzeW4gbWF0Y2ggcDZWZXJzaW9uTnVtIGRpc3BsYXkgIlxkXCsiIG5leHRncm91cD1wNlZlcnNpb25Eb3QgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZWZXJzaW9uRG90IGRpc3BsYXkgIlwuXCUoXGRcfFwqXClcQD0iIG5leHRncm91cD1wNlZlcnNpb25OdW0gY29udGFpbmVkCisKKyIgdHJ5IHRvIGRpc3Rpbmd1aXNoIHRoZSAiaXMiIGZ1bmN0aW9uIGZyb20gdGhlICJpcyIgdHJhaWwgYXV4aWxpYXJ5CitzeW4gbWF0Y2ggcDZSb3V0aW5lICAgICBkaXNwbGF5ICJcJShcJShcU1xrXEA8IVx8XlwpXHMqXClcQDw9aXNcPiIKKworIiBkb2VzIGlzIGEgdHlwZSBjb25zdHJhaW50IHNvbWV0aW1lcworc3luIG1hdGNoIHA2VHlwZUNvbnN0cmFpbnQgZGlzcGxheSAiZG9lc1wlKFxzKlwlKFxrXHxbLSddXEtcQD1cKVwpXEA9IgorCisiIGludCBpcyBhIHR5cGUgc29tZXRpbWVzCitzeW4gbWF0Y2ggcDZUeXBlICAgICAgICBkaXNwbGF5ICJcPGludFw+XCUoXHMqKFx8XHNcK1xkXClcQCEiCisKKyIgdGhlc2UgUm91dGluZSBuYW1lcyBhcmUgYWxzbyBQcm9wZXJ0aWVzLCBpZiBwcmVjZWRlZCBieSAiaXMiCitzeW4gbWF0Y2ggcDZQcm9wZXJ0eSAgICBkaXNwbGF5ICJcJShpc1xzXCtcKVxAPD1cJShzaWduYXR1cmVcfGNvbnRleHRcfGFsc29cfHNoYXBlXCkiCisKKyIgVGhlIHNpZ2lsIGluIDo6KlBhY2thZ2UKK3N5biBtYXRjaCBwNlBhY2thZ2VUd2lnaWwgZGlzcGxheSAiXCUoOjpcKVxAPD1cKiIKKworIiAkPG1hdGNoPgorc3luIHJlZ2lvbiBwNk1hdGNoVmFyU2lnaWwKKyAgICBcIG1hdGNoZ3JvdXA9cDZWYXJpYWJsZQorICAgIFwgc3RhcnQ9IlwkXCUoPDxcQCFcKVxAPSIKKyAgICBcIGVuZD0iPlxAPD0iCisgICAgXCBjb250YWlucz1wNk1hdGNoVmFyCisKK3N5biByZWdpb24gcDZNYXRjaFZhcgorICAgIFwgbWF0Y2hncm91cD1wNlR3aWdpbAorICAgIFwgc3RhcnQ9IjwiCisgICAgXCBlbmQ9Ij4iCisgICAgXCBjb250YWluZWQKKworIiBDb250ZXh0dWFsaXplcnMKK3N5biBtYXRjaCBwNkNvbnRleHQgZGlzcGxheSAiXDxcJShpdGVtXHxsaXN0XHxzbGljZVx8aGFzaFwpXD4iCitzeW4gbWF0Y2ggcDZDb250ZXh0IGRpc3BsYXkgIlwlKFwkXHxAXHwlXHwmXHxAQFwpKFxAPSIKKworIiB0aGUgIiQiIHBsYWNlaG9sZGVyIGluICIkdmFyMSwgJCwgdmFyMiA9IEBsaXN0Igorc3luIG1hdGNoIHA2UGxhY2Vob2xkZXIgZGlzcGxheSAiXCUoLFxzKlwpXEA8PVwkXCUoXEtcfFwlKFsuXio/PSF+XVx8OlxAPCE6OlxAIVwpXClcQCEiCitzeW4gbWF0Y2ggcDZQbGFjZWhvbGRlciBkaXNwbGF5ICJcJFwlKFxLXHxcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVwpXEAhXCUoLFxzKlwpXEA9IgorCisiIFF1b3RpbmcKKworIiBvbmUgY2x1c3RlciBmb3IgZXZlcnkgcXVvdGUgYWR2ZXJiCitzeW4gY2x1c3RlciBwNkludGVycF9zCisgICAgXCBhZGQ9cDZJbnRlcnBTY2FsYXIKK3N5biBjbHVzdGVyIHA2SW50ZXJwX3NjYWxhcgorICAgIFwgYWRkPXA2SW50ZXJwU2NhbGFyCisKK3N5biBjbHVzdGVyIHA2SW50ZXJwX2EKKyAgICBcIGFkZD1wNkludGVycEFycmF5CitzeW4gY2x1c3RlciBwNkludGVycF9hcnJheQorICAgIFwgYWRkPXA2SW50ZXJwQXJyYXkKKworc3luIGNsdXN0ZXIgcDZJbnRlcnBfaAorICAgIFwgYWRkPXA2SW50ZXJwSGFzaAorc3luIGNsdXN0ZXIgcDZJbnRlcnBfaGFzaAorICAgIFwgYWRkPXA2SW50ZXJwSGFzaAorCitzeW4gY2x1c3RlciBwNkludGVycF9mCisgICAgXCBhZGQ9cDZJbnRlcnBGdW5jdGlvbgorc3luIGNsdXN0ZXIgcDZJbnRlcnBfZgorICAgIFwgYWRkPXA2SW50ZXJwRnVuY3Rpb24KKworc3luIGNsdXN0ZXIgcDZJbnRlcnBfYworICAgIFwgYWRkPXA2SW50ZXJwQ2xvc3VyZQorc3luIGNsdXN0ZXIgcDZJbnRlcnBfY2xvc3VyZQorICAgIFwgYWRkPXA2SW50ZXJwQ2xvc3VyZQorCisKK2lmIGV4aXN0cygicGVybDZfZXh0ZW5kZWRfcSIpIHx8IGV4aXN0cygicGVybDZfZXh0ZW5kZWRfYWxsIikKKyAgICBzeW4gY2x1c3RlciBwNkludGVycF93dworICAgICAgICBcIGFkZD1wNlN0cmluZ1NRCisgICAgICAgIFwgYWRkPXA2U3RyaW5nRFEKKyAgICBzeW4gY2x1c3RlciBwNkludGVycF9xdW90ZXdvcmRzCisgICAgICAgIFwgYWRkPXA2U3RyaW5nU1EKKyAgICAgICAgXCBhZGQ9cDZTdHJpbmdEUQorZW5kaWYKKworc3luIGNsdXN0ZXIgcDZJbnRlcnBfcQorICAgIFwgYWRkPXA2RXNjUVEKKyAgICBcIGFkZD1wNkVzY0JhY2tTbGFzaAorc3luIGNsdXN0ZXIgcDZJbnRlcnBfc2luZ2xlCisgICAgXCBhZGQ9cDZFc2NRUQorICAgIFwgYWRkPXA2RXNjQmFja1NsYXNoCisKK3N5biBjbHVzdGVyIHA2SW50ZXJwX2IKKyAgICBcIGFkZD1AcDZJbnRlcnBfcQorICAgIFwgYWRkPXA2RXNjYXBlCisgICAgXCBhZGQ9cDZFc2NPcGVuQ3VybHkKKyAgICBcIGFkZD1wNkVzY0NvZGVQb2ludAorICAgIFwgYWRkPXA2RXNjSGV4CisgICAgXCBhZGQ9cDZFc2NPY3QKKyAgICBcIGFkZD1wNkVzY09jdE9sZAorICAgIFwgYWRkPXA2RXNjTnVsbAorc3luIGNsdXN0ZXIgcDZJbnRlcnBfYmFja3NsYXNoCisgICAgXCBhZGQ9QHA2SW50ZXJwX3EKKyAgICBcIGFkZD1wNkVzY2FwZQorICAgIFwgYWRkPXA2RXNjT3BlbkN1cmx5CisgICAgXCBhZGQ9cDZFc2NDb2RlUG9pbnQKKyAgICBcIGFkZD1wNkVzY0hleAorICAgIFwgYWRkPXA2RXNjT2N0CisgICAgXCBhZGQ9cDZFc2NPY3RPbGQKKyAgICBcIGFkZD1wNkVzY051bGwKKworc3luIGNsdXN0ZXIgcDZJbnRlcnBfcXEKKyAgICBcIGFkZD1AcDZJbnRlcnBfc2NhbGFyCisgICAgXCBhZGQ9QHA2SW50ZXJwX2FycmF5CisgICAgXCBhZGQ9QHA2SW50ZXJwX2hhc2gKKyAgICBcIGFkZD1AcDZJbnRlcnBfZnVuY3Rpb24KKyAgICBcIGFkZD1AcDZJbnRlcnBfY2xvc3VyZQorICAgIFwgYWRkPUBwNkludGVycF9iYWNrc2xhc2gKK3N5biBjbHVzdGVyIHA2SW50ZXJwX2RvdWJsZQorICAgIFwgYWRkPUBwNkludGVycF9zY2FsYXIKKyAgICBcIGFkZD1AcDZJbnRlcnBfYXJyYXkKKyAgICBcIGFkZD1AcDZJbnRlcnBfaGFzaAorICAgIFwgYWRkPUBwNkludGVycF9mdW5jdGlvbgorICAgIFwgYWRkPUBwNkludGVycF9jbG9zdXJlCisgICAgXCBhZGQ9QHA2SW50ZXJwX2JhY2tzbGFzaAorCitzeW4gcmVnaW9uIHA2SW50ZXJwU2NhbGFyCisgICAgXCBzdGFydD0iXHplXHooXCRcJShcJShcJShcZFwrXHwhXHwvXHzColwpXHxcJShcJShcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVxLXEA9XClcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpXCUoXC5cJShcS1wlKFxrXHxbLSddXEtcQD1cKSpcKVx8XCUoKFteKV0qKVx8XFtbXlxdXSpdXHw8W14+XSo+XHzCq1tewrtdKsK7XHx7W159XSp9XClcKSpcKVwuXD9cJSgoW14pXSopXHxcW1teXF1dKl1cfDxbXj5dKj5cfMKrW17Cu10qwrtcfHtbXn1dKn1cKVwpXCkiCisgICAgXCBzdGFydD0iXHplXHooXCRcJShcJShcJShcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVxLXEA9XClcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpXHxcJShcZFwrXHwhXHwvXHzColwpXClcKSIKKyAgICBcIGVuZD0iXHoxXHpzIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1UT1AKKyAgICBcIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwNkludGVycFNjYWxhcgorICAgIFwgbWF0Y2hncm91cD1wNkNvbnRleHQKKyAgICBcIHN0YXJ0PSJcJFx6ZSgpXEAhIgorICAgIFwgc2tpcD0iKFteKV0qKSIKKyAgICBcIGVuZD0iKVx6cyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9VE9QCisKK3N5biByZWdpb24gcDZJbnRlcnBBcnJheQorICAgIFwgc3RhcnQ9Ilx6ZVx6KEBcJCpcJShcJShcJSghXHwvXHzColwpXHxcJShcJShcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVxLXEA9XClcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpXCUoXC5cJShcS1wlKFxrXHxbLSddXEtcQD1cKSpcKVx8XCUoKFteKV0qKVx8XFtbXlxdXSpdXHw8W14+XSo+XHzCq1tewrtdKsK7XHx7W159XSp9XClcKSpcKVwuXD9cJSgoW14pXSopXHxcW1teXF1dKl1cfDxbXj5dKj5cfMKrW17Cu10qwrtcfHtbXn1dKn1cKVwpXCkiCisgICAgXCBlbmQ9Ilx6MVx6cyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9VE9QCisgICAgXCBrZWVwZW5kCisKK3N5biByZWdpb24gcDZJbnRlcnBBcnJheQorICAgIFwgbWF0Y2hncm91cD1wNkNvbnRleHQKKyAgICBcIHN0YXJ0PSJAXHplKClcQCEiCisgICAgXCBzdGFydD0iQEBcemUoKVxAISIKKyAgICBcIHNraXA9IihbXildKikiCisgICAgXCBlbmQ9IilcenMiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorCitzeW4gcmVnaW9uIHA2SW50ZXJwSGFzaAorICAgIFwgc3RhcnQ9Ilx6ZVx6KCVcJCpcJShcJShcJSghXHwvXHzColwpXHxcJShcJShcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVxLXEA9XClcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpXCUoXC5cJShcS1wlKFxrXHxbLSddXEtcQD1cKSpcKVx8XCUoKFteKV0qKVx8XFtbXlxdXSpdXHw8W14+XSo+XHzCq1tewrtdKsK7XHx7W159XSp9XClcKSpcKVwuXD9cJSgoW14pXSopXHxcW1teXF1dKl1cfDxbXj5dKj5cfMKrW17Cu10qwrtcfHtbXn1dKn1cKVwpXCkiCisgICAgXCBlbmQ9Ilx6MVx6cyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9VE9QCisgICAgXCBrZWVwZW5kCisKK3N5biByZWdpb24gcDZJbnRlcnBIYXNoCisgICAgXCBtYXRjaGdyb3VwPXA2Q29udGV4dAorICAgIFwgc3RhcnQ9IiVcemUoKVxAISIKKyAgICBcIHNraXA9IihbXildKikiCisgICAgXCBlbmQ9IilcenMiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorCitzeW4gcmVnaW9uIHA2SW50ZXJwRnVuY3Rpb24KKyAgICBcIHN0YXJ0PSJcemVceigmXCUoXCUoIVx8L1x8wqJcKVx8XCUoXCUoXCUoWy5eKj89IX5dXHw6XEA8ITo6XEAhXClcS1xAPVwpXD9cS1wlKFxrXHxbLSddXEtcQD1cKSpcJShcLlwlKFxLXCUoXGtcfFstJ11cS1xAPVwpKlwpXHxcJSgoW14pXSopXHxcW1teXF1dKl1cfDxbXj5dKj5cfMKrW17Cu10qwrtcfHtbXn1dKn1cKVwpKlwpXC5cP1wlKChbXildKilcfFxbW15cXV0qXVx8PFtePl0qPlx8wqtbXsK7XSrCu1x8e1tefV0qfVwpXClcKSIKKyAgICBcIGVuZD0iXHoxXHpzIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1UT1AKKyAgICBcIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwNkludGVycEZ1bmN0aW9uCisgICAgXCBtYXRjaGdyb3VwPXA2Q29udGV4dAorICAgIFwgc3RhcnQ9IiZcemUoKVxAISIKKyAgICBcIHNraXA9IihbXildKikiCisgICAgXCBlbmQ9IilcenMiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorCitzeW4gcmVnaW9uIHA2SW50ZXJwQ2xvc3VyZQorICAgIFwgc3RhcnQ9IlxcXEA8IXt9XEAhIgorICAgIFwgc2tpcD0ie1tefV0qfSIKKyAgICBcIGVuZD0ifSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9VE9QCisgICAgXCBrZWVwZW5kCisKKyIgZ2VuZXJpYyBlc2NhcGUKK3N5biBtYXRjaCBwNkVzY2FwZSAgICAgICAgICBkaXNwbGF5ICJcXFxTIiBjb250YWluZWQKKworIiBlc2NhcGVkIGNsb3NpbmcgZGVsaW1pdGVycworc3luIG1hdGNoIHA2RXNjUXVvdGUgICAgICAgIGRpc3BsYXkgIlxcJyIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NEb3VibGVRdW90ZSAgZGlzcGxheSAiXFxcIiIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NDbG9zZUFuZ2xlICAgZGlzcGxheSAiXFw+IiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY0Nsb3NlRnJlbmNoICBkaXNwbGF5ICJcXMK7IiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY0JhY2tUaWNrICAgICBkaXNwbGF5ICJcXGAiIGNvbnRhaW5lZAorc3luIG1hdGNoIHA2RXNjRm9yd2FyZFNsYXNoIGRpc3BsYXkgIlxcLyIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NWZXJ0aWNhbEJhciAgZGlzcGxheSAiXFx8IiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY0V4Y2xhbWF0aW9uICBkaXNwbGF5ICJcXCEiIGNvbnRhaW5lZAorc3luIG1hdGNoIHA2RXNjQ29tbWEgICAgICAgIGRpc3BsYXkgIlxcLCIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NEb2xsYXIgICAgICAgZGlzcGxheSAiXFxcJCIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NDbG9zZUN1cmx5ICAgZGlzcGxheSAiXFx9IiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY0Nsb3NlQnJhY2tldCBkaXNwbGF5ICJcXFxdIiBjb250YWluZWQKKworIiBtaXNjIGVzY2FwZXMKK3N5biBtYXRjaCBwNkVzY09jdE9sZCAgICBkaXNwbGF5ICJcXFxkXHsxLDN9IiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY051bGwgICAgICBkaXNwbGF5ICJcXDBcZFxAISIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NDb2RlUG9pbnQgZGlzcGxheSAiXCUoXFxjXClcQDw9XCUoXGRcfFxTXHxcW1wpXEA9IiBjb250YWluZWQgbmV4dGdyb3VwPXA2Q29kZVBvaW50CitzeW4gbWF0Y2ggcDZFc2NIZXggICAgICAgZGlzcGxheSAiXCUoXFx4XClcQDw9XCUoXHhcfFxbXClcQD0iIGNvbnRhaW5lZCBuZXh0Z3JvdXA9cDZIZXhTZXF1ZW5jZQorc3luIG1hdGNoIHA2RXNjT2N0ICAgICAgIGRpc3BsYXkgIlwlKFxcb1wpXEA8PVwlKFxvXHxcW1wpXEA9IiBjb250YWluZWQgbmV4dGdyb3VwPXA2T2N0U2VxdWVuY2UKK3N5biBtYXRjaCBwNkVzY1FRICAgICAgICBkaXNwbGF5ICJcXHFxIiBjb250YWluZWQgbmV4dGdyb3VwPXA2UVFTZXF1ZW5jZQorc3luIG1hdGNoIHA2RXNjT3BlbkN1cmx5IGRpc3BsYXkgIlxceyIgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZFc2NIYXNoICAgICAgZGlzcGxheSAiXFwjIiBjb250YWluZWQKK3N5biBtYXRjaCBwNkVzY0JhY2tTbGFzaCBkaXNwbGF5ICJcXFxcIiBjb250YWluZWQKKworc3luIHJlZ2lvbiBwNlFRU2VxdWVuY2UKKyAgICBcIG1hdGNoZ3JvdXA9cDZFc2NhcGUKKyAgICBcIHN0YXJ0PSJcWyIKKyAgICBcIHNraXA9IlxbW15cXV0qXSIKKyAgICBcIGVuZD0iXSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgdHJhbnNwYXJlbnQKKyAgICBcIGNvbnRhaW5zPUBwNkludGVycF9xcQorCitzeW4gbWF0Y2ggcDZDb2RlUG9pbnQgICBkaXNwbGF5ICJcJShcZFwrXHxcU1wpIiBjb250YWluZWQKK3N5biByZWdpb24gcDZDb2RlUG9pbnQKKyAgICBcIG1hdGNoZ3JvdXA9cDZFc2NhcGUKKyAgICBcIHN0YXJ0PSJcWyIKKyAgICBcIGVuZD0iXSIKKyAgICBcIGNvbnRhaW5lZAorCitzeW4gbWF0Y2ggcDZIZXhTZXF1ZW5jZSBkaXNwbGF5ICJceFwrIiBjb250YWluZWQKK3N5biByZWdpb24gcDZIZXhTZXF1ZW5jZQorICAgIFwgbWF0Y2hncm91cD1wNkVzY2FwZQorICAgIFwgc3RhcnQ9IlxbIgorICAgIFwgZW5kPSJdIgorICAgIFwgY29udGFpbmVkCisKK3N5biBtYXRjaCBwNk9jdFNlcXVlbmNlIGRpc3BsYXkgIlxvXCsiIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwNk9jdFNlcXVlbmNlCisgICAgXCBtYXRjaGdyb3VwPXA2RXNjYXBlCisgICAgXCBzdGFydD0iXFsiCisgICAgXCBlbmQ9Il0iCisgICAgXCBjb250YWluZWQKKworIiBtYXRjaGVzIDprZXksIDoha2V5LCA6JHZhciwgOmtleTx2YXI+LCBldGMKKyIgU2luY2Ugd2UgZG9uJ3Qga25vdyBpbiBhZHZhbmNlIGhvdyB0aGUgYWR2ZXJiIGVuZHMsIHdlIHVzZSBhIHRyaWNrLgorIiBDb25zdW1lIG5vdGhpbmcgd2l0aCB0aGUgc3RhcnQgcGF0dGVybiAoXHplIGF0IHRoZSBiZWdpbm5pbmcpLAorIiB3aGlsZSBjYXB0dXJpbmcgdGhlIHdob2xlIGFkdmVyYiBpbnRvIFx6MSBhbmQgdGhlbiBwdXR0aW5nIGl0IGJlZm9yZQorIiB0aGUgbWF0Y2ggc3RhcnQgKFx6cykgb2YgdGhlIGVuZCBwYXR0ZXJuLgorc3luIHJlZ2lvbiBwNkFkdmVyYgorICAgIFwgc3RhcnQ9Ilx6ZVx6KDohXD9cS1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXHxcW1teXF1dKl1cfDxbXj5dKj5cfMKrW17Cu10qwrtcfHtbXn1dKn1cKVw/XCkiCisgICAgXCBzdGFydD0iXHplXHooOiFcP1tAJCVdXCQqXCUoOjpcfFwlKFwkXEA8PVxkXCtcfCFcfC9cfMKiXClcfFwlKFwlKFsuXio/PSF+XVx8OlxAPCE6OlxAIVwpXEtcKVx8XCUoXEtcJShca1x8Wy0nXVxLXEA9XCkqXClcKVwpIgorICAgIFwgZW5kPSJcejFcenMiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorICAgIFwga2VlcGVuZAorCisiIDx3b3Jkcz4KKyIgRklYTUU6IG5vdCBzdXJlIGhvdyB0byBkaXN0aW5ndWlzaCB0aGlzIGZyb20gdGhlICJsZXNzIHRoYW4iIG9wZXJhdG9yCisiIGluIGFsbCBjYXNlcy4gRm9yIG5vdywgaXQgbWF0Y2hlcyBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlOgorIgorIiAqIFRoZXJlIGlzIHdoaXRlc3BhY2UgbWlzc2luZyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgIjwiLCBzaW5jZQorIiAgIHBlb3BsZSB0ZW5kIHRvIHB1dCBzcGFjZXMgYXJvdW5kICJsZXNzIHRoYW4iCisiICogSXQgY29tZXMgYWZ0ZXIgImVudW0iLCAiZm9yIiwgImFueSIsICJhbGwiLCBvciAibm9uZSIKKyIgKiBJdCdzIHRoZSBmaXJzdCBvciBsYXN0IHRoaW5nIG9uIGEgbGluZSAoaWdub3Jpbmcgd2hpdGVzcGFjZSkKKyIgKiBJdCdzIHByZWNlZGVkIGJ5ICI9ICIKKyIKKyIgSXQgbmV2ZXIgbWF0Y2hlcyB3aGVuOgorIgorIiAqIFByZWNlZGVkIGJ5IFs8K349XSAoZS5nLiA8PGZvbz4+LCA9PCRmb28+KQorIiAqIEZvbGxvd2VkIGJ5IFstPV0gKGUuZy4gPC0tLCA8PSwgPD09KQorc3luIHJlZ2lvbiBwNlN0cmluZ0FuZ2xlCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPFwlKGVudW1cfGZvclx8YW55XHxhbGxcfG5vbmVcKVw+XHMqKFw/XHMqXClcQDw9PFwlKDxcfD0+XHxbLT1dXHsxLDJ9PlxAIVwpXEAhIgorICAgIFwgc3RhcnQ9IlwlKFxzXHxbPCt+PV1cKVxAPCE8XCUoPFx8PT5cfFstPV1cezEsMn0+XEAhXClcQCEiCisgICAgXCBzdGFydD0iWzwrfj1dXEA8ITxcJShcc1x8PFx8PT5cfFstPV1cezEsMn0+XEAhXClcQCEiCisgICAgXCBzdGFydD0iXCUoXlxzKlwpXEA8PTxcJSg8XHw9Plx8Wy09XVx7MSwyfT5cQCFcKVxAISIKKyAgICBcIHN0YXJ0PSJbPCt+PV1cQDwhPFwlKFxzKiRcKVxAPSIKKyAgICBcIHN0YXJ0PSJcJSg9XHNcK1wpXEA9PFwlKDxcfD0+XHxbLT1dXHsxLDJ9PlxAIVwpXEAhIgorICAgIFwgc2tpcD0iXFxcQDwhXFw+IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbnM9cDZJbm5lckFuZ2xlc09uZSxwNkVzY0JhY2tTbGFzaCxwNkVzY0Nsb3NlQW5nbGUKKworc3luIHJlZ2lvbiBwNklubmVyQW5nbGVzT25lCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nQW5nbGUKKyAgICBcIHN0YXJ0PSI8IgorICAgIFwgc2tpcD0iXFxcQDwhXFw+IgorICAgIFwgZW5kPSI+IgorICAgIFwgdHJhbnNwYXJlbnQKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZJbm5lckFuZ2xlc09uZQorCisiIDw8d29yZHM+Pgorc3luIHJlZ2lvbiBwNlN0cmluZ0FuZ2xlcworICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iPDw9XEAhIgorICAgIFwgc2tpcD0iXFxcQDwhXFw+IgorICAgIFwgZW5kPSI+PiIKKyAgICBcIGNvbnRhaW5zPXA2SW5uZXJBbmdsZXNUd28sQHA2SW50ZXJwX3FxLHA2Q29tbWVudCxwNkVzY0hhc2gscDZFc2NDbG9zZUFuZ2xlLHA2QWR2ZXJiLHA2U3RyaW5nU1EscDZTdHJpbmdEUQorCitzeW4gcmVnaW9uIHA2SW5uZXJBbmdsZXNUd28KKyAgICBcIG1hdGNoZ3JvdXA9cDZTdHJpbmdBbmdsZXMKKyAgICBcIHN0YXJ0PSI8PCIKKyAgICBcIHNraXA9IlxcXEA8IVxcPiIKKyAgICBcIGVuZD0iPj4iCisgICAgXCB0cmFuc3BhcmVudAorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNklubmVyQW5nbGVzVHdvCisKKyIgwqt3b3Jkc8K7CitzeW4gcmVnaW9uIHA2U3RyaW5nRnJlbmNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSLCqyIKKyAgICBcIHNraXA9IlxcXEA8IVxcwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgY29udGFpbnM9cDZJbm5lckZyZW5jaCxAcDZJbnRlcnBfcXEscDZDb21tZW50LHA2RXNjSGFzaCxwNkVzY0Nsb3NlRnJlbmNoLHA2QWR2ZXJiLHA2U3RyaW5nU1EscDZTdHJpbmdEUQorCitzeW4gcmVnaW9uIHA2SW5uZXJGcmVuY2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZTdHJpbmdGcmVuY2gKKyAgICBcIHN0YXJ0PSLCqyIKKyAgICBcIHNraXA9IlxcXEA8IVxcwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgdHJhbnNwYXJlbnQKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZJbm5lckZyZW5jaAorCisiICdzdHJpbmcnCitzeW4gcmVnaW9uIHA2U3RyaW5nU1EKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IiciCisgICAgXCBza2lwPSJcXFxAPCFcXCciCisgICAgXCBlbmQ9IiciCisgICAgXCBjb250YWlucz1AcDZJbnRlcnBfcSxwNkVzY1F1b3RlCisKKyIgInN0cmluZyIKK3N5biByZWdpb24gcDZTdHJpbmdEUQorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0rIisKKyAgICBcIHNraXA9K1xcXEA8IVxcIisKKyAgICBcIGVuZD0rIisKKyAgICBcIGNvbnRhaW5zPUBwNkludGVycF9xcSxwNkVzY0RvdWJsZVF1b3RlCisKKyIgUS8vIGFuZCBmcmllbmRzLgorCitzeW4gbWF0Y2ggcDZRdW90ZVEgZGlzcGxheSAiXCUoW1FxXVwlKHd3XHx0b1x8W3F3eHNhaGZjYl1cKVw/XClcPiIgbmV4dGdyb3VwPXA2UVBhaXJzIHNraXB3aGl0ZSBza2lwZW1wdHkKK3N5biBtYXRjaCBwNlFQYWlycyBjb250YWluZWQgdHJhbnNwYXJlbnQgc2tpcHdoaXRlIHNraXBlbXB0eSBuZXh0Z3JvdXA9cDZTdHJpbmdRLHA2U3RyaW5nUV9QSVIgIlwlKFxfcyo6IVw/XEtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVx8XFtbXlxdXSpdXHw8W14+XSo+XHzCq1tewrtdKsK7XHx7W159XSp9XClcP1wpKiIKKworaWYgZXhpc3RzKCJwZXJsNl9lbWJlZGRlZF9waXIiKQorICAgIHN5biBpbmNsdWRlIEBwNlBJUiBzeW50YXgvcGlyLnZpbQorZW5kaWYKKworIiBoYXJkY29kZWQgc2V0IG9mIGRlbGltaXRlcnMKK2xldCBzOmRlbGltcyA9IFsKKyAgXCBbIlxcXCIiLCAgICAgICAgICJcXFwiIiwgInA2RXNjRG91YmxlUXVvdGUiLCAgIlxcXFxcXEA8IVxcXFxcXFwiIl0sCisgIFwgWyInIiwgICAgICAgICAgICAiJyIsICAgICJwNkVzY1F1b3RlIiwgICAgICAgICJcXFxcXFxAPCFcXFxcJyJdLAorICBcIFsiLyIsICAgICAgICAgICAgIi8iLCAgICAicDZFc2NGb3J3YXJkU2xhc2giLCAiXFxcXFxcQDwhXFxcXC8iXSwKKyAgXCBbImAiLCAgICAgICAgICAgICJgIiwgICAgInA2RXNjQmFja1RpY2siLCAgICAgIlxcXFxcXEA8IVxcXFxgIl0sCisgIFwgWyJ8IiwgICAgICAgICAgICAifCIsICAgICJwNkVzY1ZlcnRpY2FsQmFyIiwgICJcXFxcXFxAPCFcXFxcfCJdLAorICBcIFsiISIsICAgICAgICAgICAgIiEiLCAgICAicDZFc2NFeGNsYW1hdGlvbiIsICAiXFxcXFxcQDwhXFxcXCEiXSwKKyAgXCBbIiwiLCAgICAgICAgICAgICIsIiwgICAgInA2RXNjQ29tbWEiLCAgICAgICAgIlxcXFxcXEA8IVxcXFwsIl0sCisgIFwgWyJcXCQiLCAgICAgICAgICAiXFwkIiwgICJwNkVzY0RvbGxhciIsICAgICAgICJcXFxcXFxAPCFcXFxcXFwkIl0sCisgIFwgWyJ7IiwgICAgICAgICAgICAifSIsICAgICJwNkVzY0Nsb3NlQ3VybHkiLCAgICJcXCUoXFxcXFxcQDwhXFxcXH1cXHx7W159XSp9XFwpIl0sCisgIFwgWyI8IiwgICAgICAgICAgICAiPiIsICAgICJwNkVzY0Nsb3NlQW5nbGUiLCAgICJcXCUoXFxcXFxcQDwhXFxcXD5cXHw8W14+XSo+XFwpIl0sCisgIFwgWyLCqyIsICAgICAgICAgICAgIsK7IiwgICAgInA2RXNjQ2xvc2VGcmVuY2giLCAgIlxcJShcXFxcXFxAPCFcXFxcwrtcXHzCq1tewrtdKsK7XFwpIl0sCisgIFwgWyJcXFxbIiwgICAgICAgICAiXSIsICAgICJwNkVzY0Nsb3NlQnJhY2tldCIsICJcXCUoXFxcXFxcQDwhXFxcXF1cXHxcXFteXFxdXSpdXFwpIl0sCisgIFwgWyJcXHNcXEA8PSgiLCAgICAiKSIsICAgICJwNkVzY0Nsb3NlUGFyZW4iLCAgICJcXCUoXFxcXFxcQDwhXFxcXClcXHwoW14pXSopXFwpIl0sCitcIF0KKworIiBkb3VibGUgYW5kIHRyaXBsZSBkZWxpbWl0ZXJzIHRvbworaWYgZXhpc3RzKCJwZXJsNl9leHRlbmRlZF9xIikgfHwgZXhpc3RzKCJwZXJsNl9leHRlbmRlZF9hbGwiKQorICAgIGNhbGwgYWRkKHM6ZGVsaW1zLCBbIsKrwqsiLCAgICAgICAgICAgIsK7wrsiLCAgInA2RXNjQ2xvc2VGcmVuY2giLCAgIlxcJShcXFxcXFxAPCFcXFxcwrvCu1xcfMKrwqtcXCUoW17Cu11cXHzCu8K7XFxAIVxcKSrCu8K7XFwpIl0pCisgICAgY2FsbCBhZGQoczpkZWxpbXMsIFsiwqvCq8KrIiwgICAgICAgICAgIsK7wrvCuyIsICJwNkVzY0Nsb3NlRnJlbmNoIiwgICJcXCUoXFxcXFxcQDwhXFxcXMK7wrvCu1xcfMKrwqvCq1xcJShbXsK7XVxcfMK7XFwlKMK7wrtcXClcXEAhXFwpKsK7wrvCu1xcKSJdKQorICAgIGNhbGwgYWRkKHM6ZGVsaW1zLCBbInt7IiwgICAgICAgICAgICJ9fSIsICAicDZFc2NDbG9zZUN1cmx5IiwgICAiXFwlKFxcXFxcXEA8IVxcXFx9fVxcfHt7XFwlKFtefV1cXHx9fVxcQCFcXCkqfX1cXCkiXSkKKyAgICBjYWxsIGFkZChzOmRlbGltcywgWyJ7e3siLCAgICAgICAgICAifX19IiwgInA2RXNjQ2xvc2VDdXJseSIsICAgIlxcJShcXFxcXFxAPCFcXFxcfX19XFx8e3t7XFwlKFtefV1cXHx9XFwlKH19XFwpXFxAIVxcKSp9fX1cXCkiXSkKKyAgICBjYWxsIGFkZChzOmRlbGltcywgWyJcXFxbXFxcWyIsICAgICAiXV0iLCAgInA2RXNjQ2xvc2VCcmFja2V0IiwgIlxcJShcXFxcXFxAPCFcXFxcXV1cXHxcXFtcXFtcXCUoW15cXF1dXFx8XV1cXEAhXFwpKl1dXFwpIl0pCisgICAgY2FsbCBhZGQoczpkZWxpbXMsIFsiXFxcW1xcXFtcXFxbIiwgIl1dXSIsICJwNkVzY0Nsb3NlQnJhY2tldCIsICJcXCUoXFxcXFxcQDwhXFxcXF1dXVxcfFxcW1xcW1xcW1xcJShbXlxcXV1cXHxdXFwlKF1dXFwpXFxAIVxcKSpdXV1cXCkiXSkKKyAgICBjYWxsIGFkZChzOmRlbGltcywgWyJcXHNcXEA8PSgoIiwgICAiKSkiLCAgInA2RXNjQ2xvc2VQYXJlbiIsICAgIlxcJShcXFxcXFxAPCFcXFxcKSlcXHwoKFxcJShbXildXFx8KSlcXEAhXFwpKikpXFwpIl0pCisgICAgY2FsbCBhZGQoczpkZWxpbXMsIFsiXFxzXFxAPD0oKCgiLCAgIikpKSIsICJwNkVzY0Nsb3NlUGFyZW4iLCAgICJcXCUoXFxcXFxcQDwhXFxcXCkpKVxcfCgoKFxcJShbXildXFx8KVxcJSgpKVxcKVxcQCFcXCkqKSkpXFwpIl0pCisgICAgY2FsbCBhZGQoczpkZWxpbXMsIFsiXFxzXFxAPD08PCIsICAgIj4+IiwgICJwNkVzY0Nsb3NlQW5nbGUiLCAgICJcXCUoXFxcXFxcQDwhXFxcXD4+XFx8PDxcXCUoW14+XVxcfD4+XFxAIVxcKSo+PlxcKSJdKQorICAgIGNhbGwgYWRkKHM6ZGVsaW1zLCBbIlxcc1xcQDw9PDw8IiwgICI+Pj4iLCAicDZFc2NDbG9zZUFuZ2xlIiwgICAiXFwlKFxcXFxcXEA8IVxcXFw+Pj5cXHw8PDxcXCUoW14+XVxcfD5cXCUoPj5cXClcXEAhXFwpKj4+PlxcKSJdKQorZW5kaWYKKworaWYgIWV4aXN0cygicGVybDZfZXh0ZW5kZWRfcSIpICYmICFleGlzdHMoInBlcmw2X2V4dGVuZGVkX2FsbCIpCisgICAgIiBzaW1wbGUgdmVyc2lvbiwgbm8gc3BlY2lhbCBoaWdobGlnaHRpbmcgd2l0aGluIHRoZSBzdHJpbmcKKyAgICBmb3IgW3N0YXJ0X2RlbGltLCBlbmRfZGVsaW0sIGVuZF9ncm91cCwgc2tpcF0gaW4gczpkZWxpbXMKKyAgICAgICAgZXhlYyAic3luIHJlZ2lvbiBwNlN0cmluZ1EgbWF0Y2hncm91cD1wNlF1b3RlIHN0YXJ0PVwiIi5zdGFydF9kZWxpbS4iXCIgc2tpcD1cIiIuc2tpcC4iXCIgZW5kPVwiIi5lbmRfZGVsaW0uIlwiIGNvbnRhaW5zPSIuZW5kX2dyb3VwLiIgY29udGFpbmVkIgorICAgIGVuZGZvcgorCisgICAgaWYgZXhpc3RzKCJwZXJsNl9lbWJlZGRlZF9waXIiKQorICAgICAgICAiIGhpZ2hsaWdodCBlbWJlZGRlZCBQSVIgY29kZQorICAgICAgICBmb3IgW3N0YXJ0X2RlbGltLCBlbmRfZGVsaW0sIGVuZF9ncm91cCwgc2tpcF0gaW4gczpkZWxpbXMKKyAgICAgICAgICAgIGV4ZWMgInN5biByZWdpb24gcDZTdHJpbmdRX1BJUiBtYXRjaGdyb3VwPXA2UXVvdGUgc3RhcnQ9XCJcXCUoUVxccyo6UElSXFxzKlxcKVxcQDw9Ii5zdGFydF9kZWxpbS4iXCIgc2tpcD1cIiIuc2tpcC4iXCIgZW5kPVwiIi5lbmRfZGVsaW0uIlwiIGNvbnRhaW5zPUBwNlBJUiwiLmVuZF9ncm91cC4iIGNvbnRhaW5lZCIKKyAgICAgICAgZW5kZm9yCisgICAgZW5kaWYKK2Vsc2UKKyAgICBsZXQgczpiZWZvcmUgPSAic3luIHJlZ2lvbiBwNlN0cmluZ1EgbWF0Y2hncm91cD1wNlF1b3RlIHN0YXJ0PVwiXFwlKCIKKyAgICBsZXQgczphZnRlciAgPSAiXFwlKFxcX3MqOiFcXD9cXEtcXCUoXFxrXFx8Wy0nXVxcS1xcQD1cXCkqXFwlKChbXildKilcXHxcXFtbXlxcXV0qXVxcfDxbXj5dKj5cXHzCq1tewrtdKsK7XFx8e1tefV0qfVxcKVxcP1xcKSpcXF9zKlxcKVxcQDw9IgorCisgICAgbGV0IHM6YWR2ZXJicyA9IFsKKyAgICAgICAgXCBbInMiLCAic2NhbGFyIl0sCisgICAgICAgIFwgWyJhIiwgImFycmF5Il0sCisgICAgICAgIFwgWyJoIiwgImhhc2giXSwKKyAgICAgICAgXCBbImYiLCAiZnVuY3Rpb24iXSwKKyAgICAgICAgXCBbImMiLCAiY2xvc3VyZSJdLAorICAgICAgICBcIFsiYiIsICJiYWNrc2xhc2giXSwKKyAgICAgICAgXCBbInciLCAid29yZHMiXSwKKyAgICAgICAgXCBbInd3IiwgInF1b3Rld29yZHMiXSwKKyAgICAgICAgXCBbIngiLCAiZXhlYyJdLAorICAgIFwgXQorCisgICAgIiB0aGVzZSBjYW4ndCBiZSBjb25qb2luZWQgd2l0aCBxIGFuZCBxcSAoZS5nLiBhcyBxcXEgYW5kIHFxcXEpCisgICAgbGV0IHM6cV9hZHZlcmJzID0gWworICAgICAgICBcIFsicSIsICJzaW5nbGUiXSwKKyAgICAgICAgXCBbInFxIiwgImRvdWJsZSJdLAorICAgIFwgXQorCisgICAgZm9yIFtzdGFydF9kZWxpbSwgZW5kX2RlbGltLCBlbmRfZ3JvdXAsIHNraXBdIGluIHM6ZGVsaW1zCisgICAgICAgICIgUSwgcSwgYW5kIHFxIHdpdGggYW55IG51bWJlciBvZiAoaWdub3JlZCkgYWR2ZXJicworICAgICAgICBleGVjIHM6YmVmb3JlIC4iUSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiIuIiBjb250YWluZWQiCisgICAgICAgIGV4ZWMgczpiZWZvcmUgLiJxIi4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBza2lwPVwiIi4gc2tpcCAuIlwiIGVuZD1cIiIuIGVuZF9kZWxpbSAuIlwiIGNvbnRhaW5zPSIuIGVuZF9ncm91cCAuIixAcDZJbnRlcnBfcSIuIiBjb250YWluZWQiCisgICAgICAgIGV4ZWMgczpiZWZvcmUgLiJxcSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgc2tpcD1cIiIuIHNraXAgLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiBjb250YWlucz0iLiBlbmRfZ3JvdXAgLiIsQHA2SW50ZXJwX3FxIi4iIGNvbnRhaW5lZCIKKworICAgICAgICBmb3IgW3Nob3J0LCBsb25nXSBpbiBzOmFkdmVyYnMKKyAgICAgICAgICAgICIgUXMsIHFzLCBxcXMsIFFhLCBxYSwgcXFhLCBldGMsIHdpdGggaWdub3JlZCBhZHZlcmJzCisgICAgICAgICAgICBleGVjIHM6YmVmb3JlIC4iUSIuc2hvcnQuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgZW5kPVwiIi4gZW5kX2RlbGltIC4iXCIgY29udGFpbnM9QHA2SW50ZXJwXyIubG9uZy4iIGNvbnRhaW5lZCIKKyAgICAgICAgICAgIGV4ZWMgczpiZWZvcmUgLiJxIi5zaG9ydC4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBza2lwPVwiIi4gc2tpcCAuIlwiIGVuZD1cIiIuIGVuZF9kZWxpbSAuIlwiIGNvbnRhaW5zPSIuIGVuZF9ncm91cCAuIixAcDZJbnRlcnBfcSxAcDZJbnRlcnBfIi5sb25nLiIgY29udGFpbmVkIgorICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuInFxIi5zaG9ydC4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBza2lwPVwiIi4gc2tpcCAuIlwiIGVuZD1cIiIuIGVuZF9kZWxpbSAuIlwiIGNvbnRhaW5zPSIuIGVuZF9ncm91cCAuIixAcDZJbnRlcnBfcXEsQHA2SW50ZXJwXyIubG9uZy4iIGNvbnRhaW5lZCIKKworICAgICAgICAgICAgIiBRLCBxLCBhbmQgcXEsIHdpdGggb25lIHNpZ25pZmljYW50IGFkdmVyYgorICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuIlFcXHMqOlxcJSgiLnNob3J0LiJcXHwiLmxvbmcuIlxcKSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgZW5kPVwiIi4gZW5kX2RlbGltIC4iXCIgY29udGFpbnM9QHA2SW50ZXJwXyIubG9uZy4iIGNvbnRhaW5lZCIKKyAgICAgICAgICAgIGZvciBbcV9zaG9ydCwgcV9sb25nXSBpbiBzOnFfYWR2ZXJicworICAgICAgICAgICAgICAgIGV4ZWMgczpiZWZvcmUgLiJRXFxzKjpcXCUoIi5xX3Nob3J0LiJcXHwiLnFfbG9uZy4iXFwpIi4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiBjb250YWlucz1AcDZJbnRlcnBfIi5xX2xvbmcuIiBjb250YWluZWQiCisgICAgICAgICAgICBlbmRmb3IKKyAgICAgICAgICAgIGV4ZWMgczpiZWZvcmUgLiJxXFxzKjpcXCUoIi5zaG9ydC4iXFx8Ii5sb25nLiJcXCkiLiBzOmFmdGVyIC5zdGFydF9kZWxpbSAuIlwiIHNraXA9XCIiLiBza2lwIC4iXCIgZW5kPVwiIi4gZW5kX2RlbGltIC4iXCIgY29udGFpbnM9Ii4gZW5kX2dyb3VwIC4iLEBwNkludGVycF9xLEBwNkludGVycF8iLmxvbmcuIiBjb250YWluZWQiCisgICAgICAgICAgICBleGVjIHM6YmVmb3JlIC4icXFcXHMqOlxcJSgiLnNob3J0LiJcXHwiLmxvbmcuIlxcKSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgc2tpcD1cIiIuIHNraXAgLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiBjb250YWlucz0iLiBlbmRfZ3JvdXAgLiIsQHA2SW50ZXJwX3FxLEBwNkludGVycF8iLmxvbmcuIiBjb250YWluZWQiCisKKyAgICAgICAgICAgIGZvciBbc2hvcnQyLCBsb25nMl0gaW4gczphZHZlcmJzCisgICAgICAgICAgICAgICAgIiBRcywgcXMsIHFxcywgUWEsIHFhLCBxcWEsIGV0Yywgd2l0aCBvbmUgc2lnbmlmaWNhbnQgYWR2ZXJiCisgICAgICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuIlEiLnNob3J0LiJcXHMqOlxcJSgiLnNob3J0Mi4iXFx8Ii5sb25nMi4iXFwpIi4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiBjb250YWlucz1AcDZJbnRlcnBfIi5sb25nLiIsQHA2SW50ZXJwXyIubG9uZzIuIiBjb250YWluZWQiCisgICAgICAgICAgICAgICAgZm9yIFtxX3Nob3J0MiwgcV9sb25nMl0gaW4gczpxX2FkdmVyYnMKKyAgICAgICAgICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuIlEiLnNob3J0LiJcXHMqOlxcJSgiLnFfc2hvcnQyLiJcXHwiLnFfbG9uZzIuIlxcKSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgZW5kPVwiIi4gZW5kX2RlbGltIC4iXCIgY29udGFpbnM9QHA2SW50ZXJwXyIubG9uZy4iLEBwNkludGVycF8iLnFfbG9uZzIuIiBjb250YWluZWQiCisgICAgICAgICAgICAgICAgZW5kZm9yCisgICAgICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuInEiLnNob3J0LiJcXHMqOlxcJSgiLnNob3J0Mi4iXFx8Ii5sb25nMi4iXFwpIi4gczphZnRlciAuc3RhcnRfZGVsaW0gLiJcIiBza2lwPVwiIi4gc2tpcCAuIlwiIGVuZD1cIiIuIGVuZF9kZWxpbSAuIlwiIGNvbnRhaW5zPSIuIGVuZF9ncm91cCAuIixAcDZJbnRlcnBfcSxAcDZJbnRlcnBfIi5sb25nLiIsQHA2SW50ZXJwXyIubG9uZzIuIiBjb250YWluZWQiCisgICAgICAgICAgICAgICAgZXhlYyBzOmJlZm9yZSAuInFxIi5zaG9ydC4iXFxzKjpcXCUoIi5zaG9ydDIuIlxcfCIubG9uZzIuIlxcKSIuIHM6YWZ0ZXIgLnN0YXJ0X2RlbGltIC4iXCIgc2tpcD1cIiIuIHNraXAgLiJcIiBlbmQ9XCIiLiBlbmRfZGVsaW0gLiJcIiBjb250YWlucz0iLiBlbmRfZ3JvdXAgLiIsQHA2SW50ZXJwX3FxLEBwNkludGVycF8iLmxvbmcuIixAcDZJbnRlcnBfIi5sb25nMi4iIGNvbnRhaW5lZCIKKyAgICAgICAgICAgIGVuZGZvcgorICAgICAgICBlbmRmb3IKKyAgICBlbmRmb3IKKyAgICB1bmxldCBzOmJlZm9yZSBzOmFmdGVyIHM6YWR2ZXJicyBzOnFfYWR2ZXJicworZW5kaWYKK3VubGV0IHM6ZGVsaW1zCisKKyIgTWF0Y2ggdGhlc2Ugc28gc29tZXRoaW5nIGVsc2UgYWJvdmUgY2FuJ3QuIEUuZy4gdGhlICJxIiBpbiAicm9sZSBxIHsgfSIKKyIgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RyaW5nCitzeW4gbWF0Y2ggcDZOb3JtYWwgZGlzcGxheSAiXCUoXDxcJShyb2xlXHxncmFtbWFyXHxzbGFuZ1wpXHNcK1wpXEA8PVxLXCUoXGtcfFstJ11cS1xAPVwpKiIKKworIiA6a2V5CitzeW4gbWF0Y2ggcDZPcGVyYXRvciBkaXNwbGF5ICI6XEA8ITo6XEAhIVw/IiBuZXh0Z3JvdXA9cDZLZXkKK3N5biBtYXRjaCBwNktleSBkaXNwbGF5ICJca1wlKFxrXHxbLSddXEtcQD1cKSoiIGNvbnRhaW5lZAorCisiID0+IGFuZCBwNT0+IGF1dG9xdW90aW5nCitzeW4gbWF0Y2ggcDZTdHJpbmdQNUF1dG8gZGlzcGxheSAiXEtcJShca1x8Wy0nXVxLXEA9XCkqXHplXHNcK3A1PT4iCitzeW4gbWF0Y2ggcDZTdHJpbmdBdXRvICAgZGlzcGxheSAiXEtcJShca1x8Wy0nXVxLXEA9XCkqXHplXCUocDVcKVxAPCE9PiIKK3N5biBtYXRjaCBwNlN0cmluZ0F1dG8gICBkaXNwbGF5ICJcS1wlKFxrXHxbLSddXEtcQD1cKSpcemVcc1wrPT4iCitzeW4gbWF0Y2ggcDZTdHJpbmdBdXRvICAgZGlzcGxheSAiXEtcJShca1x8Wy0nXVxLXEA9XCkqcDVcemU9PiIKKworIiBIeXBlcm9wZXJhdG9ycy4gTmVlZHMgdG8gY29tZSBhZnRlciB0aGUgcXVvdGluZyBvcGVyYXRvcnMgKDw+LCDCq8K7LCBldGMpCitleGVjICJzeW4gbWF0Y2ggcDZIeXBlck9wIGRpc3BsYXkgXCLCuyIgICAuczppbmZpeC4iwrtcXD9cIiIKK2V4ZWMgInN5biBtYXRjaCBwNkh5cGVyT3AgZGlzcGxheSBcIsKrXFw/Ii5zOmluZml4LiLCq1wiIgorZXhlYyAic3luIG1hdGNoIHA2SHlwZXJPcCBkaXNwbGF5IFwiwrsiICAgLnM6aW5maXguIsKrXCIiCitleGVjICJzeW4gbWF0Y2ggcDZIeXBlck9wIGRpc3BsYXkgXCLCqyIgICAuczppbmZpeC4gIsK7XCIiCisKK2V4ZWMgInN5biBtYXRjaCBwNkh5cGVyT3AgZGlzcGxheSBcIj4+IiAgICAgICAgICAuczppbmZpeC4iXFwlKD4+XFwpXFw/XCIiCitleGVjICJzeW4gbWF0Y2ggcDZIeXBlck9wIGRpc3BsYXkgXCJcXCUoPDxcXClcXD8iLnM6aW5maXguIjw8XCIiCitleGVjICJzeW4gbWF0Y2ggcDZIeXBlck9wIGRpc3BsYXkgXCI+PiIgICAgICAgICAgLnM6aW5maXguIjw8XCIiCitleGVjICJzeW4gbWF0Y2ggcDZIeXBlck9wIGRpc3BsYXkgXCI8PCIgICAgICAgICAgLnM6aW5maXguIj4+XCIiCit1bmxldCBzOmluZml4CisKKyIgUmVnZXhlcyBhbmQgZ3JhbW1hcnMKKworc3luIG1hdGNoIHA2UmVnZXhOYW1lIGRpc3BsYXkgIlwlKFw8XCUocmVnZXhcfHJ1bGVcfHRva2VuXClcc1wrXClcQDw9XEtcJShca1x8Wy0nXVxLXEA9XCkqIiBuZXh0Z3JvdXA9cDZSZWdleEJsb2NrQ3JhcCBza2lwd2hpdGUgc2tpcGVtcHR5CitzeW4gbWF0Y2ggcDZSZWdleEJsb2NrQ3JhcCAiW157XSoiIG5leHRncm91cD1wNlJlZ2V4QmxvY2sgc2tpcHdoaXRlIHNraXBlbXB0eSB0cmFuc3BhcmVudCBjb250YWluZWQKKworc3luIHJlZ2lvbiBwNlJlZ2V4QmxvY2sKKyAgICBcIG1hdGNoZ3JvdXA9cDZOb3JtYWwKKyAgICBcIHN0YXJ0PSJ7IgorICAgIFwgZW5kPSJ9IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIFBlcmwgNiByZWdleCBiaXRzCisKK3N5biBjbHVzdGVyIHA2UmVnZXhlbgorICAgIFwgYWRkPXA2UnhNZXRhCisgICAgXCBhZGQ9cDZSeEVzY2FwZQorICAgIFwgYWRkPXA2RXNjSGV4CisgICAgXCBhZGQ9cDZFc2NPY3QKKyAgICBcIGFkZD1wNkVzY051bGwKKyAgICBcIGFkZD1wNlJ4QW5jaG9yCisgICAgXCBhZGQ9cDZSeENhcHR1cmUKKyAgICBcIGFkZD1wNlJ4R3JvdXAKKyAgICBcIGFkZD1wNlJ4QWx0ZXJuYXRpb24KKyAgICBcIGFkZD1wNlJ4QWR2ZXJiCisgICAgXCBhZGQ9cDZSeEFkdmVyYkFyZworICAgIFwgYWRkPXA2UnhTdG9yYWdlCisgICAgXCBhZGQ9cDZSeEFzc2VydGlvbgorICAgIFwgYWRkPXA2UnhRdW90ZVdvcmRzCisgICAgXCBhZGQ9cDZSeENsb3N1cmUKKyAgICBcIGFkZD1wNlJ4U3RyaW5nU1EKKyAgICBcIGFkZD1wNlJ4U3RyaW5nRFEKKyAgICBcIGFkZD1wNkNvbW1lbnQKKworc3luIG1hdGNoIHA2UnhNZXRhICAgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiLlwlKFxrXHxcc1wpXEA8ISIKK3N5biBtYXRjaCBwNlJ4QW5jaG9yICAgICAgZGlzcGxheSBjb250YWluZWQgIlskXl0iCitzeW4gbWF0Y2ggcDZSeEVzY2FwZSAgICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFxTIgorc3luIG1hdGNoIHA2UnhDYXB0dXJlICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiWygpXSIKK3N5biBtYXRjaCBwNlJ4QWx0ZXJuYXRpb24gZGlzcGxheSBjb250YWluZWQgInwiCitzeW4gbWF0Y2ggcDZSeFJhbmdlICAgICAgIGRpc3BsYXkgY29udGFpbmVkICJcLlwuIgorCitzeW4gcmVnaW9uIHA2UnhDbG9zdXJlCisgICAgXCBtYXRjaGdyb3VwPXA2Tm9ybWFsCisgICAgXCBzdGFydD0ieyIKKyAgICBcIGVuZD0ifSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbmVkaW49cDZSeENsb3N1cmUKKyAgICBcIGNvbnRhaW5zPVRPUAorc3luIHJlZ2lvbiBwNlJ4R3JvdXAKKyAgICBcIG1hdGNoZ3JvdXA9cDZTdHJpbmdTcGVjaWFsMgorICAgIFwgc3RhcnQ9IlxbIgorICAgIFwgZW5kPSJdIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworc3luIHJlZ2lvbiBwNlJ4QXNzZXJ0aW9uCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nU3BlY2lhbDIKKyAgICBcIHN0YXJ0PSI8IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcyxwNlJ4Q2hhckNsYXNzLHA2UnhBc3NlcnRDYWxsCitzeW4gcmVnaW9uIHA2UnhBc3NlcnRDYWxsCisgICAgXCBtYXRjaGdyb3VwPXA2Tm9ybWFsCisgICAgXCBzdGFydD0iXCUoOjpcfFwlKFxLXCUoXGtcfFstJ11cS1xAPVwpKlwpXClcQDw9KFxAPSIKKyAgICBcIGVuZD0iKVxAPD0iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorc3luIHJlZ2lvbiBwNlJ4Q2hhckNsYXNzCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nU3BlY2lhbDIKKyAgICBcIHN0YXJ0PSJcJSg8Wy0hKz9dXD9cKVxAPD1cWyIKKyAgICBcIHNraXA9IlxcXSIKKyAgICBcIGVuZD0iXSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZSeFJhbmdlLHA2UnhFc2NhcGUscDZFc2NIZXgscDZFc2NPY3QscDZFc2NOdWxsCitzeW4gcmVnaW9uIHA2UnhRdW90ZVdvcmRzCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nU3BlY2lhbDIKKyAgICBcIHN0YXJ0PSI8ICIKKyAgICBcIGVuZD0iPiIKKyAgICBcIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwNlJ4QWR2ZXJiCisgICAgXCBzdGFydD0iXHplXHooOiFcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpIgorICAgIFwgZW5kPSJcejFcenMiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPVRPUAorICAgIFwga2VlcGVuZAorc3luIHJlZ2lvbiBwNlJ4QWR2ZXJiQXJnCisgICAgXCBzdGFydD0iXCUoOiFcP1xLXCUoXGtcfFstJ11cS1xAPVwpKlwpXEA8PSgiCisgICAgXCBza2lwPSIoW14pXSopIgorICAgIFwgZW5kPSIpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1UT1AKK3N5biByZWdpb24gcDZSeFN0b3JhZ2UKKyAgICBcIG1hdGNoZ3JvdXA9cDZPcGVyYXRvcgorICAgIFwgc3RhcnQ9IlwlKF5ccypcKVxAPD06XCUobXlcPlx8dGVtcFw+XClcQD0iCisgICAgXCBlbmQ9IiQiCisgICAgXCBjb250YWlucz1UT1AKKyAgICBcIGNvbnRhaW5lZAorCisiIFBlcmwgNSByZWdleCBiaXRzCisKK3N5biBjbHVzdGVyIHA2UmVnZXhQNUJhc2UKKyAgICBcIGFkZD1wNlJ4UDVFc2NhcGUKKyAgICBcIGFkZD1wNlJ4UDVPY3QKKyAgICBcIGFkZD1wNlJ4UDVIZXgKKyAgICBcIGFkZD1wNlJ4UDVFc2NNZXRhCisgICAgXCBhZGQ9cDZSeFA1Q29kZVBvaW50CisgICAgXCBhZGQ9cDZSeFA1UHJvcAorCisiIG5vcm1hbCByZWdleCBzdHVmZgorc3luIGNsdXN0ZXIgcDZSZWdleFA1CisgICAgXCBhZGQ9QHA2UmVnZXhQNUJhc2UKKyAgICBcIGFkZD1wNlJ4UDVRdWFudGlmaWVyCisgICAgXCBhZGQ9cDZSeFA1TWV0YQorICAgIFwgYWRkPXA2UnhQNVF1b3RlTWV0YQorICAgIFwgYWRkPXA2UnhQNVBhcmVuTW9kCisgICAgXCBhZGQ9cDZSeFA1VmVyYgorICAgIFwgYWRkPXA2UnhQNUNvdW50CisgICAgXCBhZGQ9cDZSeFA1TmFtZWQKKyAgICBcIGFkZD1wNlJ4UDVSZWFkUmVmCisgICAgXCBhZGQ9cDZSeFA1V3JpdGVSZWYKKyAgICBcIGFkZD1wNlJ4UDVDaGFyQ2xhc3MKKyAgICBcIGFkZD1wNlJ4UDVBbmNob3IKKworIiBpbnNpZGUgY2hhcmFjdGVyIGNsYXNzZXMKK3N5biBjbHVzdGVyIHA2UmVnZXhQNUNsYXNzCisgICAgXCBhZGQ9QHA2UmVnZXhQNUJhc2UKKyAgICBcIGFkZD1wNlJ4UDVQb3NpeAorICAgIFwgYWRkPXA2UnhQNVJhbmdlCisKK3N5biBtYXRjaCBwNlJ4UDVFc2NhcGUgICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFxTIgorc3luIG1hdGNoIHA2UnhQNUNvZGVQb2ludCAgZGlzcGxheSBjb250YWluZWQgIlxcY1xTXEA9IiBuZXh0Z3JvdXA9cDZSeFA1Q1BJZAorc3luIG1hdGNoIHA2UnhQNUNQSWQgICAgICAgZGlzcGxheSBjb250YWluZWQgIlxTIgorc3luIG1hdGNoIHA2UnhQNU9jdCAgICAgICAgZGlzcGxheSBjb250YWluZWQgIlxcXCUoXG9cezEsM31cKVxAPSIgbmV4dGdyb3VwPXA2UnhQNU9jdFNlcQorc3luIG1hdGNoIHA2UnhQNU9jdFNlcSAgICAgZGlzcGxheSBjb250YWluZWQgIlxvXHsxLDN9Igorc3luIG1hdGNoIHA2UnhQNUFuY2hvciAgICAgZGlzcGxheSBjb250YWluZWQgIltcXiRdIgorc3luIG1hdGNoIHA2UnhQNUhleCAgICAgICAgZGlzcGxheSBjb250YWluZWQgIlxceFwlKHtceFwrfVx8XHhcezEsMn1cKVxAPSIgbmV4dGdyb3VwPXA2UnhQNUhleFNlcQorc3luIG1hdGNoIHA2UnhQNUhleFNlcSAgICAgZGlzcGxheSBjb250YWluZWQgIlx4XHsxLDJ9Igorc3luIHJlZ2lvbiBwNlJ4UDVIZXhTZXEKKyAgICBcIG1hdGNoZ3JvdXA9cDZSeFA1RXNjYXBlCisgICAgXCBzdGFydD0ieyIKKyAgICBcIGVuZD0ifSIKKyAgICBcIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwNlJ4UDVOYW1lZAorICAgIFwgbWF0Y2hncm91cD1wNlJ4UDVFc2NhcGUKKyAgICBcIHN0YXJ0PSJcJShcXE5cKVxAPD17IgorICAgIFwgZW5kPSJ9IgorICAgIFwgY29udGFpbmVkCitzeW4gbWF0Y2ggcDZSeFA1UXVhbnRpZmllciBkaXNwbGF5IGNvbnRhaW5lZCAiXCUoWysqXVx8KFxAPCE/XCkiCitzeW4gbWF0Y2ggcDZSeFA1UmVhZFJlZiAgICBkaXNwbGF5IGNvbnRhaW5lZCAiXFxbMS05XVxkXEAhIgorc3luIG1hdGNoIHA2UnhQNVJlYWRSZWYgICAgZGlzcGxheSBjb250YWluZWQgIlxcazxcQD0iIG5leHRncm91cD1wNlJ4UDVSZWFkUmVmSWQKK3N5biByZWdpb24gcDZSeFA1UmVhZFJlZklkCisgICAgXCBtYXRjaGdyb3VwPXA2UnhQNUVzY2FwZQorICAgIFwgc3RhcnQ9IjwiCisgICAgXCBlbmQ9Ij4iCisgICAgXCBjb250YWluZWQKK3N5biBtYXRjaCBwNlJ4UDVXcml0ZVJlZiAgIGRpc3BsYXkgY29udGFpbmVkICJcXGdcJShcZFx8e1wpXEA9IiBuZXh0Z3JvdXA9cDZSeFA1V3JpdGVSZWZJZAorc3luIG1hdGNoIHA2UnhQNVdyaXRlUmVmSWQgZGlzcGxheSBjb250YWluZWQgIlxkXCsiCitzeW4gcmVnaW9uIHA2UnhQNVdyaXRlUmVmSWQKKyAgICBcIG1hdGNoZ3JvdXA9cDZSeFA1RXNjYXBlCisgICAgXCBzdGFydD0ieyIKKyAgICBcIGVuZD0ifSIKKyAgICBcIGNvbnRhaW5lZAorc3luIG1hdGNoIHA2UnhQNVByb3AgICAgICAgZGlzcGxheSBjb250YWluZWQgIlxcW3BQXVwlKFxhXHx7XClcQD0iIG5leHRncm91cD1wNlJ4UDVQcm9wSWQKK3N5biBtYXRjaCBwNlJ4UDVQcm9wSWQgICAgIGRpc3BsYXkgY29udGFpbmVkICJcYSIKK3N5biByZWdpb24gcDZSeFA1UHJvcElkCisgICAgXCBtYXRjaGdyb3VwPXA2UnhQNUVzY2FwZQorICAgIFwgc3RhcnQ9InsiCisgICAgXCBlbmQ9In0iCisgICAgXCBjb250YWluZWQKK3N5biBtYXRjaCBwNlJ4UDVNZXRhICAgICAgIGRpc3BsYXkgY29udGFpbmVkICJbKHwpLl0iCitzeW4gbWF0Y2ggcDZSeFA1UGFyZW5Nb2QgICBkaXNwbGF5IGNvbnRhaW5lZCAiKFxAPD0/XEA9IiBuZXh0Z3JvdXA9cDZSeFA1TW9kLHA2UnhQNU1vZE5hbWUscDZSeFA1Q29kZQorc3luIG1hdGNoIHA2UnhQNU1vZCAgICAgICAgZGlzcGxheSBjb250YWluZWQgIj9cJSg8XD89XHw8XD8hXHxbIzp8XVwpIgorc3luIG1hdGNoIHA2UnhQNU1vZCAgICAgICAgZGlzcGxheSBjb250YWluZWQgIj8tXD9baW1wc3hdXCsiCitzeW4gbWF0Y2ggcDZSeFA1TW9kICAgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiP1wlKFstK11cP1xkXCtcfFJcKSIKK3N5biBtYXRjaCBwNlJ4UDVNb2QgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICI/KERFRklORSkiCitzeW4gbWF0Y2ggcDZSeFA1TW9kICAgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiP1wlKCZcfFBbPj1dXCkiIG5leHRncm91cD1wNlJ4UDVNb2REZWYKK3N5biBtYXRjaCBwNlJ4UDVNb2REZWYgICAgIGRpc3BsYXkgY29udGFpbmVkICJcaFx3KiIKK3N5biByZWdpb24gcDZSeFA1TW9kTmFtZQorICAgIFwgbWF0Y2hncm91cD1wNlN0cmluZ1NwZWNpYWwKKyAgICBcIHN0YXJ0PSI/JyIKKyAgICBcIGVuZD0iJyIKKyAgICBcIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBwNlJ4UDVNb2ROYW1lCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nU3BlY2lhbAorICAgIFwgc3RhcnQ9Ij9QXD88IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbmVkCitzeW4gcmVnaW9uIHA2UnhQNUNvZGUKKyAgICBcIG1hdGNoZ3JvdXA9cDZTdHJpbmdTcGVjaWFsCisgICAgXCBzdGFydD0iPz9cP3siCisgICAgXCBlbmQ9In0pXEA9IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1UT1AKK3N5biBtYXRjaCBwNlJ4UDVFc2NNZXRhICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFs/Ki57fSgpW1xdfFxeJF0iCitzeW4gbWF0Y2ggcDZSeFA1Q291bnQgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiXCUoe1xkXCtcJSgsXCUoXGRcK1wpXD9cKVw/fVwpXEA9IiBuZXh0Z3JvdXA9cDZSeFA1Q291bnRJZAorc3luIHJlZ2lvbiBwNlJ4UDVDb3VudElkCisgICAgXCBtYXRjaGdyb3VwPXA2UnhQNUVzY2FwZQorICAgIFwgc3RhcnQ9InsiCisgICAgXCBlbmQ9In0iCisgICAgXCBjb250YWluZWQKK3N5biBtYXRjaCBwNlJ4UDVWZXJiICAgICAgIGRpc3BsYXkgY29udGFpbmVkICIoXEA8PVwqXCUoXCUoUFJVTkVcfFNLSVBcfFRIRU5cKVwlKDpbXildKlwpXD9cfFwlKE1BUktcfFwpOlteKV0qXHxDT01NSVRcfEZcJShBSUxcKVw/XHxBQ0NFUFRcKSIKK3N5biByZWdpb24gcDZSeFA1UXVvdGVNZXRhCisgICAgXCBtYXRjaGdyb3VwPXA2UnhQNUVzY2FwZQorICAgIFwgc3RhcnQ9IlxcUSIKKyAgICBcIGVuZD0iXFxFIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZWYXJpYWJsZXMscDZFc2NCYWNrU2xhc2gKK3N5biByZWdpb24gcDZSeFA1Q2hhckNsYXNzCisgICAgXCBtYXRjaGdyb3VwPXA2U3RyaW5nU3BlY2lhbAorICAgIFwgc3RhcnQ9IlxbXF5cPyIKKyAgICBcIHNraXA9IlxcXSIKKyAgICBcIGVuZD0iXSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9QHA2UmVnZXhQNUNsYXNzCitzeW4gcmVnaW9uIHA2UnhQNVBvc2l4CisgICAgXCBtYXRjaGdyb3VwPXA2UnhQNUVzY2FwZQorICAgIFwgc3RhcnQ9IlxbOiIKKyAgICBcIGVuZD0iOl0iCisgICAgXCBjb250YWluZWQKK3N5biBtYXRjaCBwNlJ4UDVSYW5nZSAgICAgIGRpc3BsYXkgY29udGFpbmVkICItIgorCisiICdzdHJpbmcnIGluc2lkZSBhIHJlZ2V4CitzeW4gcmVnaW9uIHA2UnhTdHJpbmdTUQorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iJyIKKyAgICBcIHNraXA9IlxcXEA8IVxcJyIKKyAgICBcIGVuZD0iJyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZFc2NRdW90ZSxwNkVzY0JhY2tTbGFzaAorCisiICJzdHJpbmciIGluc2lkZSBhIHJlZ2V4CitzeW4gcmVnaW9uIHA2UnhTdHJpbmdEUQorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0rIisKKyAgICBcIHNraXA9K1xcXEA8IVxcIisKKyAgICBcIGVuZD0rIisKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZFc2NEb3VibGVRdW90ZSxwNkVzY0JhY2tTbGFzaAorCisiICQhLCAkdmFyLCAkIXZhciwgJDo6dmFyLCAkcGFja2FnZTo6dmFyICQqOjpwYWNrYWdlOjp2YXIsIGV0YworIiBUaHVzIG11c3QgY29tZSBhZnRlciB0aGUgbWF0Y2hlcyBmb3IgdGhlICIkIiByZWdleCBhbmNob3IsIGJ1dCBiZWZvcmUKKyIgdGhlIG1hdGNoIGZvciB0aGUgJCByZWdleCBkZWxpbWl0ZXIKK3N5biBjbHVzdGVyIHA2VmFyaWFibGVzCisgICAgXCBhZGQ9cDZWYXJTbGFzaAorICAgIFwgYWRkPXA2VmFyRXhjbGFtCisgICAgXCBhZGQ9cDZWYXJNYXRjaAorICAgIFwgYWRkPXA2VmFyTnVtCisgICAgXCBhZGQ9cDZWYXJpYWJsZQorCitzeW4gbWF0Y2ggcDZWYXJTbGFzaCAgICAgZGlzcGxheSAiXCQvIgorc3luIG1hdGNoIHA2VmFyRXhjbGFtICAgIGRpc3BsYXkgIlwkISIKK3N5biBtYXRjaCBwNlZhck1hdGNoICAgICBkaXNwbGF5ICJcJMKiIgorc3luIG1hdGNoIHA2VmFyTnVtICAgICAgIGRpc3BsYXkgIlwkXGRcKyIKK3N5biBtYXRjaCBwNlZhcmlhYmxlICAgICBkaXNwbGF5ICJcJShAQFx8W0AmJCVdXCQqXClcJSg6Olx8XCUoXCUoWy5eKj89IX5dXHw6XEA8ITo6XEAhXClcS1wpXHxcS1wpXEA9IiBuZXh0Z3JvdXA9cDZUd2lnaWwscDZWYXJOYW1lLHA2UGFja2FnZVNjb3BlCitzeW4gbWF0Y2ggcDZWYXJOYW1lICAgICAgZGlzcGxheSAiXEtcJShca1x8Wy0nXVxLXEA9XCkqIiBjb250YWluZWQKK3N5biBtYXRjaCBwNlR3aWdpbCAgICAgICBkaXNwbGF5ICJcJShbLl4qPz0hfl1cfDpcQDwhOjpcQCFcKVxLXEA9IiBuZXh0Z3JvdXA9cDZQYWNrYWdlU2NvcGUscDZWYXJOYW1lIGNvbnRhaW5lZAorc3luIG1hdGNoIHA2UGFja2FnZVNjb3BlIGRpc3BsYXkgIlwlKFxLXCUoXGtcfFstJ11cS1xAPVwpKlwpXD86OiIgbmV4dGdyb3VwPXA2UGFja2FnZVNjb3BlLHA2VmFyTmFtZSBjb250YWluZWQKKworIiBQZXJsIDYgcmVnZXggcmVnaW9ucworCisiIC9mb28vCisiIEJlbG93IHNvbWUgaGFja3MgdG8gcmVjb2duaXNlIHRoZSAvLyB2YXJpYW50LiBUaGlzIGlzIHZpcnR1YWxseSBpbXBvc3NpYmxlCisiIHRvIGNhdGNoIGluIGFsbCBjYXNlcyBhcyB0aGUgLyBpcyB1c2VkIGluIHNvIG1hbnkgb3RoZXIgd2F5cywgYnV0IHRoZXNlCisiIHNob3VsZCBiZSB0aGUgbW9zdCBvYnZpb3VzIG9uZXMuCisiIFRPRE86IG1vc3RseSBzdG9sZW4gZnJvbSBwZXJsLnZpbSwgbWlnaHQgbmVlZCBtb3JlIHdvcmsKK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoWyRAJSYqXVxAPCFcJShcPFwlKHNwbGl0XHx3aGlsZVx8dW50aWxcfGlmXHx1bmxlc3NcKVx8XC5cLlx8Wy0rKiF+KFxbez1dXClccypcKVxAPD0vL1xAISIKKyAgICBcIHN0YXJ0PSJeLy9cQCEiCisgICAgXCBzdGFydD0rXHNcQDw9L1teWzpzcGFjZTpdWzpkaWdpdDpdJEAlPV1cQD1cJSgvXF9zKlwlKFsoW3skQCUmKls6ZGlnaXQ6XSInYF1cfFxfc1x3XHxbWzp1cHBlcjpdX2FiZC1maGprbG5xcnQtd3l6XVwpXClcQCEvXEAhKworICAgIFwgc2tpcD0iXFwvIgorICAgIFwgZW5kPSIvIgorICAgIFwgY29udGFpbnM9QHA2UmVnZXhlbixwNlZhcmlhYmxlLHA2VmFyRXhjbGFtLHA2VmFyTWF0Y2gscDZWYXJOdW0KKworIiBtL2Zvby8sIG1tL2Zvby8sIHJ4L2Zvby8KK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxcJShtbVw/XHxyeFwpXCUoXHMqOiFcP1xrXCUoXGtcfFstJ11cS1xAPVwpKlwlKChbXildKilcKVw/XCkqXHMqXClcQDw9Ly9cQCEiCisgICAgXCBza2lwPSJcXC8iCisgICAgXCBlbmQ9Ii8iCisgICAgXCBrZWVwZW5kCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLHA2VmFyaWFibGUscDZWYXJFeGNsYW0scDZWYXJNYXRjaCxwNlZhck51bQorCisiIG0hZm9vISwgbW0hZm9vISwgcnghZm9vIQorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPFwlKG1tXD9cfHJ4XClcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD0hIVxAISIKKyAgICBcIHNraXA9IlxcISIKKyAgICBcIGVuZD0iISIKKyAgICBcIGtlZXBlbmQKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4scDZWYXJpYWJsZSxwNlZhclNsYXNoLHA2VmFyTWF0Y2gscDZWYXJOdW0KKworIiBtJGZvbyQsIG1tJGZvbyQsIHJ4JGZvbyQsIG18Zm9vfCwgbW18Zm9vfCwgcnh8Zm9vfCwgZXRjCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8XCUobW1cP1x8cnhcKVwlKFxzKjohXD9ca1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXClcP1wpKlxzKlwpXEA8PVx6KFtcIidgfCwkXVwpXCRcQCEiCisgICAgXCBza2lwPSJcXFx6MSIKKyAgICBcIGVuZD0iXHoxIgorICAgIFwga2VlcGVuZAorICAgIFwgY29udGFpbnM9QHA2UmVnZXhlbixAcDZWYXJpYWJsZXMKKworIiBtIChmb28pLCBtbSAoZm9vKSwgcnggKGZvbykKK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxcJShtbVw/XHxyeFwpXCUoXHMqOiFcP1xrXCUoXGtcfFstJ11cS1xAPVwpKlwlKChbXildKilcKVw/XCkqXHNcK1wpXEA8PSgpXEAhKVxAISIKKyAgICBcIHNraXA9IlxcKSIKKyAgICBcIGVuZD0iKSIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4sQHA2VmFyaWFibGVzCisKKyIgbVtmb29dLCBtbVtmb29dLCByeFtmb29dCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8XCUobW1cP1x8cnhcKVwlKFxzKjohXD9ca1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXClcP1wpKlxzKlwpXEA8PVxbXVxAIV1cQCEiCisgICAgXCBza2lwPSJcXF0iCisgICAgXCBlbmQ9Il0iCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIG17Zm9vfSwgbW17Zm9vfSwgcnh7Zm9vfQorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPFwlKG1tXD9cfHJ4XClcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD17fVxAIX1cQCEiCisgICAgXCBza2lwPSJcXH0iCisgICAgXCBlbmQ9In0iCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIG08Zm9vPiwgbW08Zm9vPiwgcng8Zm9vPgorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPFwlKG1tXD9cfHJ4XClcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD08PlxAIT5cQCEiCisgICAgXCBza2lwPSJcXD4iCisgICAgXCBlbmQ9Ij4iCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIG3Cq2Zvb8K7LCBtbcKrZm9vwrssIHJ4wqtmb2/Cuworc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPFwlKG1tXD9cfHJ4XClcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD3Cq8K7XEAhwrtcQCEiCisgICAgXCBza2lwPSJcXMK7IgorICAgIFwgZW5kPSLCuyIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4sQHA2VmFyaWFibGVzCisKKyIgU3Vic3RpdHV0aW9ucworCisiIHMvZm9vL2Jhci8KK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxzXCUoXHMqOiFcP1xrXCUoXGtcfFstJ11cS1xAPVwpKlwlKChbXildKilcKVw/XCkqXHMqXClcQDw9LyIKKyAgICBcIHNraXA9IlxcLyIKKyAgICBcIGVuZD0iLyJtZT1lLTEKKyAgICBcIGtlZXBlbmQKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4scDZWYXJpYWJsZSxwNlZhckV4Y2xhbSxwNlZhck1hdGNoLHA2VmFyTnVtCisgICAgXCBuZXh0Z3JvdXA9cDZTdWJzdGl0dXRpb24KKworc3luIHJlZ2lvbiBwNlN1YnN0aXR1dGlvbgorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iLyIKKyAgICBcIHNraXA9IlxcLyIKKyAgICBcIGVuZD0iLyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwga2VlcGVuZAorICAgIFwgY29udGFpbnM9QHA2SW50ZXJwX3FxCisKKyIgcyFmb28hYmFyIQorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPHNcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD0hIgorICAgIFwgc2tpcD0iXFwhIgorICAgIFwgZW5kPSIhIm1lPWUtMQorICAgIFwga2VlcGVuZAorICAgIFwgY29udGFpbnM9QHA2UmVnZXhlbixwNlZhcmlhYmxlLHA2VmFyU2xhc2gscDZWYXJNYXRjaCxwNlZhck51bQorICAgIFwgbmV4dGdyb3VwPXA2U3Vic3RpdHV0aW9uCisKK3N5biByZWdpb24gcDZTdWJzdGl0dXRpb24KKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IiEiCisgICAgXCBza2lwPSJcXCEiCisgICAgXCBlbmQ9IiEiCisgICAgXCBjb250YWluZWQKKyAgICBcIGtlZXBlbmQKKyAgICBcIGNvbnRhaW5zPUBwNkludGVycF9xcQorCisiIHMkZm9vJGJhciQsIHN8Zm9vfGJhciwgZXRjCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8c1wlKFxzKjohXD9ca1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXClcP1wpKlxzKlwpXEA8PVx6KFtcIidgfCwkXVwpIgorICAgIFwgc2tpcD0iXFxcejEiCisgICAgXCBlbmQ9Ilx6MSJtZT1lLTEKKyAgICBcIGtlZXBlbmQKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4sQHA2VmFyaWFibGVzCisgICAgXCBuZXh0Z3JvdXA9cDZTdWJzdGl0dXRpb24KKworc3luIHJlZ2lvbiBwNlN1YnN0aXR1dGlvbgorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXHooW1wiJ2B8LCRdXCkiCisgICAgXCBza2lwPSJcXFx6MSIKKyAgICBcIGVuZD0iXHoxIgorICAgIFwgY29udGFpbmVkCisgICAgXCBrZWVwZW5kCisgICAgXCBjb250YWlucz1AcDZJbnRlcnBfcXEKKworIiBze2Zvb30KK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxzXCUoXHMqOiFcP1xrXCUoXGtcfFstJ11cS1xAPVwpKlwlKChbXildKilcKVw/XCkqXHMqXClcQDw9e31cQCEiCisgICAgXCBza2lwPSJcXH0iCisgICAgXCBlbmQ9In0iCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIHNbZm9vXQorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPHNcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD1cW11cQCEiCisgICAgXCBza2lwPSJcXF0iCisgICAgXCBlbmQ9Il0iCisgICAgXCBjb250YWlucz1AcDZSZWdleGVuLEBwNlZhcmlhYmxlcworCisiIHM8Zm9vPgorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPHNcJShccyo6IVw/XGtcJShca1x8Wy0nXVxLXEA9XCkqXCUoKFteKV0qKVwpXD9cKSpccypcKVxAPD08PlxAISIKKyAgICBcIHNraXA9IlxcPiIKKyAgICBcIGVuZD0iPiIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4sQHA2VmFyaWFibGVzCisKKyIgc8KrZm9vwrsKK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxzXCUoXHMqOiFcP1xrXCUoXGtcfFstJ11cS1xAPVwpKlwlKChbXildKilcKVw/XCkqXHMqXClcQDw9wqvCu1xAISIKKyAgICBcIHNraXA9IlxcwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgY29udGFpbnM9QHA2UmVnZXhlbixAcDZWYXJpYWJsZXMKKworIiBzIChmb28pCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8c1wlKFxzKjohXD9ca1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXClcP1wpKlxzXCtcKVxAPD0oKVxAISIKKyAgICBcIHNraXA9IlxcKSIKKyAgICBcIGVuZD0iKSIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4ZW4sQHA2VmFyaWFibGVzCisKKyIgUGVybCA1IHJlZ2V4IHJlZ2lvbnMKKworIiBtOlA1Ly8KK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxtXHMqOlBcJShlcmxcKVw/NVxzKlwpXEA8PS8iCisgICAgXCBza2lwPSJcXC8iCisgICAgXCBlbmQ9Ii8iCisgICAgXCBjb250YWlucz1AcDZSZWdleFA1LHA2VmFyaWFibGUscDZWYXJFeGNsYW0scDZWYXJNYXRjaCxwNlZhck51bQorCisiIG06UDUhIQorc3luIHJlZ2lvbiBwNk1hdGNoCisgICAgXCBtYXRjaGdyb3VwPXA2UXVvdGUKKyAgICBcIHN0YXJ0PSJcJShcPG1ccyo6UFwlKGVybFwpXD81XHMqXClcQDw9ISIKKyAgICBcIHNraXA9IlxcISIKKyAgICBcIGVuZD0iISIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4UDUscDZWYXJpYWJsZSxwNlZhclNsYXNoLHA2VmFyTWF0Y2gscDZWYXJOdW0KKworIiBtOlA1JCQsIG06UDV8fCwgZXRjCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8bVxzKjpQXCUoZXJsXClcPzVccypcKVxAPD1ceihbXCInYHwsJF1cKSIKKyAgICBcIHNraXA9IlxcXHoxIgorICAgIFwgZW5kPSJcejEiCisgICAgXCBjb250YWlucz1AcDZSZWdleFA1LEBwNlZhcmlhYmxlcworCisiIG06UDUgKCkKK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxtXHMqOlBcJShlcmxcKVw/NVxzXCtcKVxAPD0oKVxAISIKKyAgICBcIHNraXA9IlxcKSIKKyAgICBcIGVuZD0iKSIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4UDUsQHA2VmFyaWFibGVzCisKKyIgbTpQNVtdCitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8bVxzKjpQXCUoZXJsXClcPzVccypcKVxAPD1bXVxAISIKKyAgICBcIHNraXA9IlxcXSIKKyAgICBcIGVuZD0iXSIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4UDUsQHA2VmFyaWFibGVzCisKKyIgbTpQNXt9CitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8bVxzKjpQXCUoZXJsXClcPzVccypcKVxAPD17fVxAISIKKyAgICBcIHNraXA9IlxcfSIKKyAgICBcIGVuZD0ifSIKKyAgICBcIGNvbnRhaW5zPUBwNlJlZ2V4UDUscDZWYXJpYWJsZXMKKworIiBtOlA1PD4KK3N5biByZWdpb24gcDZNYXRjaAorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDxtXHMqOlBcJShlcmxcKVw/NVxzKlwpXEA8PTw+XEAhIgorICAgIFwgc2tpcD0iXFw+IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbnM9QHA2UmVnZXhQNSxwNlZhcmlhYmxlcworCisiIG06UDXCq8K7CitzeW4gcmVnaW9uIHA2TWF0Y2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZRdW90ZQorICAgIFwgc3RhcnQ9IlwlKFw8bVxzKjpQXCUoZXJsXClcPzVccypcKVxAPD3Cq8K7XEAhIgorICAgIFwgc2tpcD0iXFzCuyIKKyAgICBcIGVuZD0iwrsiCisgICAgXCBjb250YWlucz1AcDZSZWdleFA1LHA2VmFyaWFibGVzCisKKyIgVHJhbnNsaXRlcmF0aW9uCisKKyIgdHIvZm9vL2Jhci8sIHRyfGZvb3xiYXIsIGV0Yworc3luIHJlZ2lvbiBwNlN0cmluZworICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXCUoXDx0clwlKFxzKjohXD9ca1wlKFxrXHxbLSddXEtcQD1cKSpcJSgoW14pXSopXClcP1wpKlxzKlwpXEA8PVx6KFsvXCInYHwhLCRdXCkiCisgICAgXCBza2lwPSJcXFx6MSIKKyAgICBcIGVuZD0iXHoxIm1lPWUtMQorICAgIFwgY29udGFpbnM9cDZSeFJhbmdlCisgICAgXCBuZXh0Z3JvdXA9cDZUcmFuc2xpdGVyYXRpb24KKworc3luIHJlZ2lvbiBwNlRyYW5zbGl0ZXJhdGlvbgorICAgIFwgbWF0Y2hncm91cD1wNlF1b3RlCisgICAgXCBzdGFydD0iXHooWy9cIidgfCEsJF1cKSIKKyAgICBcIHNraXA9IlxcXHoxIgorICAgIFwgZW5kPSJcejEiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNkludGVycF9xcQorCisiIENvbW1lbnRzCisKKyIgbm9ybWFsIGVuZC1vZi1saW5lIGNvbW1lbnQKK3N5biBtYXRjaCBwNkNvbW1lbnQgZGlzcGxheSAiIy4qIiBjb250YWlucz1wNkF0dGVudGlvbgorCisiIE11bHRpbGluZSBjb21tZW50cy4gQXJiaXRyYXJ5IG51bWJlcnMgb2Ygb3BlbmluZyBicmFja2V0cyBhcmUgYWxsb3dlZCwKKyIgYnV0IHdlIG9ubHkgZGVmaW5lIHJlZ2lvbnMgZm9yIDEgdG8gMworc3luIHJlZ2lvbiBwNkNvbW1lbnQKKyAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgXCBzdGFydD0iXlxAPCEjKCIKKyAgICBcIHNraXA9IihbXildKikiCisgICAgXCBlbmQ9IikiCisgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICBcIHN0YXJ0PSJeIygiCisgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKK3N5biByZWdpb24gcDZDb21tZW50CisgICAgXCBtYXRjaGdyb3VwPXA2Q29tbWVudAorICAgIFwgc3RhcnQ9Il5cQDwhI1xbIgorICAgIFwgc2tpcD0iXFtbXlxdXSpdIgorICAgIFwgZW5kPSJdIgorICAgIFwgbWF0Y2hncm91cD1wNkVycm9yCisgICAgXCBzdGFydD0iXiNcWyIKKyAgICBcIGNvbnRhaW5zPXA2QXR0ZW50aW9uLHA2Q29tbWVudAorc3luIHJlZ2lvbiBwNkNvbW1lbnQKKyAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgXCBzdGFydD0iXlxAPCEjeyIKKyAgICBcIHNraXA9IntbXn1dKn0iCisgICAgXCBlbmQ9In0iCisgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICBcIHN0YXJ0PSJeI3siCisgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKK3N5biByZWdpb24gcDZDb21tZW50CisgICAgXCBtYXRjaGdyb3VwPXA2Q29tbWVudAorICAgIFwgc3RhcnQ9Il5cQDwhIzwiCisgICAgXCBza2lwPSI8W14+XSo+IgorICAgIFwgZW5kPSI+IgorICAgIFwgbWF0Y2hncm91cD1wNkVycm9yCisgICAgXCBzdGFydD0iXiM8IgorICAgIFwgY29udGFpbnM9cDZBdHRlbnRpb24scDZDb21tZW50CitzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgIFwgbWF0Y2hncm91cD1wNkNvbW1lbnQKKyAgICBcIHN0YXJ0PSJeXEA8ISPCqyIKKyAgICBcIHNraXA9IsKrW17Cu10qwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgbWF0Y2hncm91cD1wNkVycm9yCisgICAgXCBzdGFydD0iXiPCqyIKKyAgICBcIGNvbnRhaW5zPXA2QXR0ZW50aW9uLHA2Q29tbWVudAorCisiIGRvdWJsZSBhbmQgdHJpcGxlIGRlbGltaXRlcnMKK2lmIGV4aXN0cygicGVybDZfZXh0ZW5kZWRfY29tbWVudHMiKSB8fCBleGlzdHMoInBlcmw2X2V4dGVuZGVkX2FsbCIpCisgICAgc3luIHJlZ2lvbiBwNkNvbW1lbnQKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2Q29tbWVudAorICAgICAgICBcIHN0YXJ0PSJeXEA8ISMoKCIKKyAgICAgICAgXCBza2lwPSIoKFwlKFteKVx8KSlcQCFdXCkqKSkiCisgICAgICAgIFwgZW5kPSIpKSIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiMoKCIKKyAgICAgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKKyAgICBzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgICAgIFwgc3RhcnQ9Il5cQDwhIygoKCIKKyAgICAgICAgXCBza2lwPSIoKChcJShbXildXHwpXCUoKSlcKVxAIVwpKikpKSIKKyAgICAgICAgXCBlbmQ9IikpKSIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiMoKCgiCisgICAgICAgIFwgY29udGFpbnM9cDZBdHRlbnRpb24scDZDb21tZW50CisKKyAgICBzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgICAgIFwgc3RhcnQ9Il5cQDwhI1xbXFsiCisgICAgICAgIFwgc2tpcD0iXFtcW1wlKFteXF1dXHxdXVxAIVwpKl1dIgorICAgICAgICBcIGVuZD0iXV0iCisgICAgICAgIFwgbWF0Y2hncm91cD1wNkVycm9yCisgICAgICAgIFwgc3RhcnQ9Il4jXFtcWyIKKyAgICAgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKKyAgICBzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgICAgIFwgc3RhcnQ9Il5cQDwhI1xbXFtcWyIKKyAgICAgICAgXCBza2lwPSJcW1xbXFtcJShbXlxdXVx8XVwlKF1dXClcQCFcKSpdXV0iCisgICAgICAgIFwgZW5kPSJdXV0iCisgICAgICAgIFwgbWF0Y2hncm91cD1wNkVycm9yCisgICAgICAgIFwgc3RhcnQ9Il4jXFtcW1xbIgorICAgICAgICBcIGNvbnRhaW5zPXA2QXR0ZW50aW9uLHA2Q29tbWVudAorCisgICAgc3luIHJlZ2lvbiBwNkNvbW1lbnQKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2Q29tbWVudAorICAgICAgICBcIHN0YXJ0PSJeXEA8ISN7eyIKKyAgICAgICAgXCBza2lwPSJ7e1wlKFtefV1cfH19XEAhXCkqfX0iCisgICAgICAgIFwgZW5kPSJ9fSIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiN7eyIKKyAgICAgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKKyAgICBzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgICAgIFwgc3RhcnQ9Il5cQDwhI3t7eyIKKyAgICAgICAgXCBza2lwPSJ7e3tcJShbXn1dXHx9XCUofX1cKVxAIVwpKn19fSIKKyAgICAgICAgXCBlbmQ9In19fSIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiN7e3siCisgICAgICAgIFwgY29udGFpbnM9cDZBdHRlbnRpb24scDZDb21tZW50CisKKyAgICBzeW4gcmVnaW9uIHA2Q29tbWVudAorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZDb21tZW50CisgICAgICAgIFwgc3RhcnQ9Il5cQDwhIzw8IgorICAgICAgICBcIHNraXA9Ijw8XCUoW14+XVx8Pj5cQCFcKSo+PiIKKyAgICAgICAgXCBlbmQ9Ij4+IgorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZFcnJvcgorICAgICAgICBcIHN0YXJ0PSJeIzw8IgorICAgICAgICBcIGNvbnRhaW5zPXA2QXR0ZW50aW9uLHA2Q29tbWVudAorICAgIHN5biByZWdpb24gcDZDb21tZW50CisgICAgICAgIFwgbWF0Y2hncm91cD1wNkNvbW1lbnQKKyAgICAgICAgXCBzdGFydD0iXlxAPCEjPDw8IgorICAgICAgICBcIHNraXA9Ijw8PFwlKFtePl1cfD5cJSg+PlwpXEAhXCkqPj4+IgorICAgICAgICBcIGVuZD0iPj4+IgorICAgICAgICBcIG1hdGNoZ3JvdXA9cDZFcnJvcgorICAgICAgICBcIHN0YXJ0PSJeIzw8PCIKKyAgICAgICAgXCBjb250YWlucz1wNkF0dGVudGlvbixwNkNvbW1lbnQKKworICAgIHN5biByZWdpb24gcDZDb21tZW50CisgICAgICAgIFwgbWF0Y2hncm91cD1wNkNvbW1lbnQKKyAgICAgICAgXCBzdGFydD0iXlxAPCEjwqvCqyIKKyAgICAgICAgXCBza2lwPSLCq8KrXCUoW17Cu11cfMK7wrtcQCFcKSrCu8K7IgorICAgICAgICBcIGVuZD0iwrvCuyIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiPCq8KrIgorICAgICAgICBcIGNvbnRhaW5zPXA2QXR0ZW50aW9uLHA2Q29tbWVudAorICAgIHN5biByZWdpb24gcDZDb21tZW50CisgICAgICAgIFwgbWF0Y2hncm91cD1wNkNvbW1lbnQKKyAgICAgICAgXCBzdGFydD0iXlxAPCEjwqvCq8KrIgorICAgICAgICBcIHNraXA9IsKrwqvCq1wlKFtewrtdXHzCu1wlKMK7wrtcKVxAIVwpKsK7wrvCuyIKKyAgICAgICAgXCBlbmQ9IsK7wrvCuyIKKyAgICAgICAgXCBtYXRjaGdyb3VwPXA2RXJyb3IKKyAgICAgICAgXCBzdGFydD0iXiPCq8KrwqsiCisgICAgICAgIFwgY29udGFpbnM9cDZBdHRlbnRpb24scDZDb21tZW50CitlbmRpZgorCisiIFBvZAorCisiIEFiYnJldmlhdGVkIGJsb2NrcyAoaW1wbGljaXQgY29kZSBmb3JiaWRkZW4pCitzeW4gcmVnaW9uIHA2UG9kQWJiclJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49XHplXEtcayoiCisgICAgXCBlbmQ9Il5cemVcJShccyokXHw9XEtcKSIKKyAgICBcIGNvbnRhaW5zPXA2UG9kQWJick5vQ29kZVR5cGUKKyAgICBcIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwNlBvZEFiYnJOb0NvZGVUeXBlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kTmFtZSxwNlBvZEFiYnJOb0NvZGUKKworc3luIG1hdGNoIHA2UG9kTmFtZSBjb250YWluZWQgIi5cKyIgY29udGFpbnM9QHA2UG9kRm9ybWF0CitzeW4gbWF0Y2ggcDZQb2RDb21tZW50IGNvbnRhaW5lZCAiLlwrIgorCitzeW4gcmVnaW9uIHA2UG9kQWJick5vQ29kZQorICAgIFwgc3RhcnQ9Il4iCisgICAgXCBlbmQ9Il5cemVcJShccyokXHw9XEtcKSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9QHA2UG9kRm9ybWF0CisKKyIgQWJicmV2aWF0ZWQgYmxvY2tzIChldmVyeXRoaW5nIGlzIGNvZGUpCitzeW4gcmVnaW9uIHA2UG9kQWJiclJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49XHplY29kZVw+IgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWlucz1wNlBvZEFiYnJDb2RlVHlwZQorICAgIFwga2VlcGVuZAorCitzeW4gcmVnaW9uIHA2UG9kQWJickNvZGVUeXBlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kTmFtZSxwNlBvZEFiYnJDb2RlCisKK3N5biByZWdpb24gcDZQb2RBYmJyQ29kZQorICAgIFwgc3RhcnQ9Il4iCisgICAgXCBlbmQ9Il5cemVcJShccyokXHw9XEtcKSIKKyAgICBcIGNvbnRhaW5lZAorCisiIEFiYnJldmlhdGVkIGJsb2NrcyAoZXZlcnl0aGluZyBpcyBhIGNvbW1lbnQpCitzeW4gcmVnaW9uIHA2UG9kQWJiclJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49XHplY29tbWVudFw+IgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWlucz1wNlBvZEFiYnJDb21tZW50VHlwZQorICAgIFwga2VlcGVuZAorCitzeW4gcmVnaW9uIHA2UG9kQWJickNvbW1lbnRUeXBlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kQ29tbWVudCxwNlBvZEFiYnJOb0NvZGUKKworIiBBYmJyZXZpYXRlZCBibG9ja3MgKGltcGxpY2l0IGNvZGUgYWxsb3dlZCkKK3N5biByZWdpb24gcDZQb2RBYmJyUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1cemVcJShwb2RcfGl0ZW1cfG5lc3RlZFx8XHVcK1wpXD4iCisgICAgXCBlbmQ9Il5cemVcJShccyokXHw9XEtcKSIKKyAgICBcIGNvbnRhaW5zPXA2UG9kQWJiclR5cGUKKyAgICBcIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwNlBvZEFiYnJUeXBlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kTmFtZSxwNlBvZEFiYnIKKworc3luIHJlZ2lvbiBwNlBvZEFiYnIKKyAgICBcIHN0YXJ0PSJeIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZEZvcm1hdCxwNlBvZEltcGxpY2l0Q29kZQorCisiIEFiYnJldmlhdGVkIGJsb2NrIHRvIGVuZC1vZi1maWxlCitzeW4gcmVnaW9uIHA2UG9kQWJiclJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49XHplRU5EXD4iCisgICAgXCBlbmQ9IlwlJCIKKyAgICBcIGNvbnRhaW5zPXA2UG9kQWJickVPRlR5cGUKKyAgICBcIGtlZXBlbmQKKworc3luIHJlZ2lvbiBwNlBvZEFiYnJFT0ZUeXBlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJcJSQiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kTmFtZSxwNlBvZEFiYnJFT0YKKworc3luIHJlZ2lvbiBwNlBvZEFiYnJFT0YKKyAgICBcIHN0YXJ0PSJeIgorICAgIFwgZW5kPSJcJSQiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZE5lc3RlZEJsb2NrcyxAcDZQb2RGb3JtYXQscDZQb2RJbXBsaWNpdENvZGUKKworIiBEaXJlY3RpdmVzCitzeW4gcmVnaW9uIHA2UG9kRGlyZWN0UmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1cJShjb25maWdcfHVzZVwpXD4iCisgICAgXCBlbmQ9Il5cemVcJShbXj1dXHw9XEtcfFxzKiRcKSIKKyAgICBcIGNvbnRhaW5zPXA2UG9kRGlyZWN0QXJnUmVnaW9uCisgICAgXCBrZWVwZW5kCisKK3N5biByZWdpb24gcDZQb2REaXJlY3RBcmdSZWdpb24KKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RUeXBlCisgICAgXCBzdGFydD0iXFNcKyIKKyAgICBcIGVuZD0iXlx6ZVwlKFtePV1cfD1cS1x8XHMqJFwpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZERpcmVjdENvbmZpZ1JlZ2lvbgorCitzeW4gcmVnaW9uIHA2UG9kRGlyZWN0Q29uZmlnUmVnaW9uCisgICAgXCBzdGFydD0iIgorICAgIFwgZW5kPSJeXHplXCUoW149XVx8PVxLXHxccyokXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZENvbmZpZworCisiID1lbmNvZGluZyBpcyBhIHNwZWNpYWwgZGlyZWN0aXZlCitzeW4gcmVnaW9uIHA2UG9kRGlyZWN0UmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1lbmNvZGluZ1w+IgorICAgIFwgZW5kPSJeXHplXCUoW149XVx8PVxLXHxccyokXCkiCisgICAgXCBjb250YWlucz1wNlBvZEVuY29kaW5nQXJnUmVnaW9uCisgICAgXCBrZWVwZW5kCisKK3N5biByZWdpb24gcDZQb2RFbmNvZGluZ0FyZ1JlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZE5hbWUKKyAgICBcIHN0YXJ0PSJcU1wrIgorICAgIFwgZW5kPSJeXHplXCUoW149XVx8PVxLXHxccyokXCkiCisgICAgXCBjb250YWluZWQKKworIiBQYXJhZ3JhcGggYmxvY2tzIChpbXBsaWNpdCBjb2RlIGZvcmJpZGRlbikKK3N5biByZWdpb24gcDZQb2RQYXJhUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1mb3JcPiIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbnM9cDZQb2RQYXJhTm9Db2RlVHlwZVJlZ2lvbgorICAgIFwga2VlcGVuZAorICAgIFwgZXh0ZW5kCisKK3N5biByZWdpb24gcDZQb2RQYXJhTm9Db2RlVHlwZVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFR5cGUKKyAgICBcIHN0YXJ0PSJcS1xrKiIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZFBhcmFOb0NvZGUscDZQb2RQYXJhQ29uZmlnUmVnaW9uCisKK3N5biByZWdpb24gcDZQb2RQYXJhQ29uZmlnUmVnaW9uCisgICAgXCBzdGFydD0iIgorICAgIFwgZW5kPSJeXHplXCUoW149XVx8PVxrXEA8IVwpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZQb2RDb25maWcKKworc3luIHJlZ2lvbiBwNlBvZFBhcmFOb0NvZGUKKyAgICBcIHN0YXJ0PSJeW149XSIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZQb2RGb3JtYXQKKworIiBQYXJhZ3JhcGggYmxvY2tzIChldmVyeXRoaW5nIGlzIGNvZGUpCitzeW4gcmVnaW9uIHA2UG9kUGFyYVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49Zm9yXD5cemVccypjb2RlXD4iCisgICAgXCBlbmQ9Il5cemVcJShccyokXHw9XEtcKSIKKyAgICBcIGNvbnRhaW5zPXA2UG9kUGFyYUNvZGVUeXBlUmVnaW9uCisgICAgXCBrZWVwZW5kCisgICAgXCBleHRlbmQKKworc3luIHJlZ2lvbiBwNlBvZFBhcmFDb2RlVHlwZVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFR5cGUKKyAgICBcIHN0YXJ0PSJcS1xrKiIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZFBhcmFDb2RlLHA2UG9kUGFyYUNvbmZpZ1JlZ2lvbgorCitzeW4gcmVnaW9uIHA2UG9kUGFyYUNvZGUKKyAgICBcIHN0YXJ0PSJeW149XSIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbmVkCisKKyIgUGFyYWdyYXBoIGJsb2NrcyAoaW1wbGljaXQgY29kZSBhbGxvd2VkKQorc3luIHJlZ2lvbiBwNlBvZFBhcmFSZWdpb24KKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RQcmVmaXgKKyAgICBcIHN0YXJ0PSJePWZvclw+XHplXHMqXCUocG9kXHxpdGVtXHxuZXN0ZWRcfFx1XCtcKVw+IgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWlucz1wNlBvZFBhcmFUeXBlUmVnaW9uCisgICAgXCBrZWVwZW5kCisgICAgXCBleHRlbmQKKworc3luIHJlZ2lvbiBwNlBvZFBhcmFUeXBlUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplXCUoXHMqJFx8PVxLXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kUGFyYSxwNlBvZFBhcmFDb25maWdSZWdpb24KKworc3luIHJlZ2lvbiBwNlBvZFBhcmEKKyAgICBcIHN0YXJ0PSJeW149XSIKKyAgICBcIGVuZD0iXlx6ZVwlKFxzKiRcfD1cS1wpIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZQb2RGb3JtYXQscDZQb2RJbXBsaWNpdENvZGUKKworIiBQYXJhZ3JhcGggYmxvY2sgdG8gZW5kLW9mLWZpbGUKK3N5biByZWdpb24gcDZQb2RQYXJhUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1mb3JcPlx6ZVxzXCtFTkRcPiIKKyAgICBcIGVuZD0iXCUkIgorICAgIFwgY29udGFpbnM9cDZQb2RQYXJhRU9GVHlwZVJlZ2lvbgorICAgIFwga2VlcGVuZAorICAgIFwgZXh0ZW5kCisKK3N5biByZWdpb24gcDZQb2RQYXJhRU9GVHlwZVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFR5cGUKKyAgICBcIHN0YXJ0PSJcS1xrKiIKKyAgICBcIGVuZD0iXCUkIgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZFBhcmFFT0YscDZQb2RQYXJhQ29uZmlnUmVnaW9uCisKK3N5biByZWdpb24gcDZQb2RQYXJhRU9GCisgICAgXCBzdGFydD0iXltePV0iCisgICAgXCBlbmQ9IlwlJCIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9QHA2UG9kTmVzdGVkQmxvY2tzLEBwNlBvZEZvcm1hdCxwNlBvZEltcGxpY2l0Q29kZQorCisiIERlbGltaXRlZCBibG9ja3MgKGltcGxpY2l0IGNvZGUgZm9yYmlkZGVuKQorc3luIHJlZ2lvbiBwNlBvZERlbGltUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1iZWdpblw+IgorICAgIFwgZW5kPSJePWVuZFw+IgorICAgIFwgY29udGFpbnM9cDZQb2REZWxpbU5vQ29kZVR5cGVSZWdpb24KKyAgICBcIGtlZXBlbmQKKyAgICBcIGV4dGVuZAorCitzeW4gcmVnaW9uIHA2UG9kRGVsaW1Ob0NvZGVUeXBlUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJeXHplPWVuZFw+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZERlbGltTm9Db2RlLHA2UG9kRGVsaW1Db25maWdSZWdpb24KKworc3luIHJlZ2lvbiBwNlBvZERlbGltQ29uZmlnUmVnaW9uCisgICAgXCBzdGFydD0iIgorICAgIFwgZW5kPSJeXHplXCUoW149XVx8PVxLXHxccyokXCkiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZENvbmZpZworCitzeW4gcmVnaW9uIHA2UG9kRGVsaW1Ob0NvZGUKKyAgICBcIHN0YXJ0PSJeIgorICAgIFwgZW5kPSJeXHplPWVuZFw+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1AcDZQb2ROZXN0ZWRCbG9ja3MsQHA2UG9kRm9ybWF0CisKKyIgRGVsaW1pdGVkIGJsb2NrcyAoZXZlcnl0aGluZyBpcyBjb2RlKQorc3luIHJlZ2lvbiBwNlBvZERlbGltUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kUHJlZml4CisgICAgXCBzdGFydD0iXj1iZWdpblw+XHplXHMqY29kZVw+IgorICAgIFwgZW5kPSJePWVuZFw+IgorICAgIFwgY29udGFpbnM9cDZQb2REZWxpbUNvZGVUeXBlUmVnaW9uCisgICAgXCBrZWVwZW5kCisgICAgXCBleHRlbmQKKworc3luIHJlZ2lvbiBwNlBvZERlbGltQ29kZVR5cGVSZWdpb24KKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RUeXBlCisgICAgXCBzdGFydD0iXEtcayoiCisgICAgXCBlbmQ9Il5cemU9ZW5kXD4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRGVsaW1Db2RlLHA2UG9kRGVsaW1Db25maWdSZWdpb24KKworc3luIHJlZ2lvbiBwNlBvZERlbGltQ29kZQorICAgIFwgc3RhcnQ9Il4iCisgICAgXCBlbmQ9Il5cemU9ZW5kXD4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZE5lc3RlZEJsb2NrcworCisiIERlbGltaXRlZCBibG9ja3MgKGltcGxpY2l0IGNvZGUgYWxsb3dlZCkKK3N5biByZWdpb24gcDZQb2REZWxpbVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49YmVnaW5cPlx6ZVxzKlwlKHBvZFx8aXRlbVx8bmVzdGVkXHxcdVwrXClcPiIKKyAgICBcIGVuZD0iXj1lbmRcPiIKKyAgICBcIGNvbnRhaW5zPXA2UG9kRGVsaW1UeXBlUmVnaW9uCisgICAgXCBrZWVwZW5kCisgICAgXCBleHRlbmQKKworc3luIHJlZ2lvbiBwNlBvZERlbGltVHlwZVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFR5cGUKKyAgICBcIHN0YXJ0PSJcS1xrKiIKKyAgICBcIGVuZD0iXlx6ZT1lbmRcPiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2REZWxpbSxwNlBvZERlbGltQ29uZmlnUmVnaW9uCisKK3N5biByZWdpb24gcDZQb2REZWxpbQorICAgIFwgc3RhcnQ9Il4iCisgICAgXCBlbmQ9Il5cemU9ZW5kXD4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZE5lc3RlZEJsb2NrcyxAcDZQb2RGb3JtYXQscDZQb2RJbXBsaWNpdENvZGUKKworIiBEZWxpbWl0ZWQgYmxvY2sgdG8gZW5kLW9mLWZpbGUKK3N5biByZWdpb24gcDZQb2REZWxpbVJlZ2lvbgorICAgIFwgbWF0Y2hncm91cD1wNlBvZFByZWZpeAorICAgIFwgc3RhcnQ9Il49YmVnaW5cPlx6ZVxzXCtFTkRcPiIKKyAgICBcIGVuZD0iXCUkIgorICAgIFwgY29udGFpbnM9cDZQb2REZWxpbUVPRlR5cGVSZWdpb24KKyAgICBcIGV4dGVuZAorCitzeW4gcmVnaW9uIHA2UG9kRGVsaW1FT0ZUeXBlUmVnaW9uCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kVHlwZQorICAgIFwgc3RhcnQ9IlxLXGsqIgorICAgIFwgZW5kPSJcJSQiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRGVsaW1FT0YscDZQb2REZWxpbUNvbmZpZ1JlZ2lvbgorCitzeW4gcmVnaW9uIHA2UG9kRGVsaW1FT0YKKyAgICBcIHN0YXJ0PSJeIgorICAgIFwgZW5kPSJcJSQiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPUBwNlBvZE5lc3RlZEJsb2NrcyxAcDZQb2RGb3JtYXQscDZQb2RJbXBsaWNpdENvZGUKKworc3luIGNsdXN0ZXIgcDZQb2RDb25maWcKKyAgICBcIGFkZD1wNlBvZENvbmZpZ09wZXJhdG9yCisgICAgXCBhZGQ9cDZQb2RFeHRyYUNvbmZpZworICAgIFwgYWRkPXA2U3RyaW5nQXV0bworICAgIFwgYWRkPXA2UG9kQXV0b1F1b3RlCisgICAgXCBhZGQ9cDZTdHJpbmdTUQorCitzeW4gcmVnaW9uIHA2UG9kUGFyZW5zCisgICAgXCBzdGFydD0iKCIKKyAgICBcIGVuZD0iKSIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZOdW1iZXIscDZTdHJpbmdTUQorCitzeW4gbWF0Y2ggcDZQb2RBdXRvUXVvdGUgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiPT4iCitzeW4gbWF0Y2ggcDZQb2RDb25maWdPcGVyYXRvciBkaXNwbGF5IGNvbnRhaW5lZCAiOiFcPyIgbmV4dGdyb3VwPXA2UG9kQ29uZmlnT3B0aW9uCitzeW4gbWF0Y2ggcDZQb2RDb25maWdPcHRpb24gICBkaXNwbGF5IGNvbnRhaW5lZCAiW15bOnNwYWNlOl0oPF1cKyIgbmV4dGdyb3VwPXA2UG9kUGFyZW5zLHA2U3RyaW5nQW5nbGUKK3N5biBtYXRjaCBwNlBvZEV4dHJhQ29uZmlnICAgIGRpc3BsYXkgY29udGFpbmVkICJePSIKK3N5biBtYXRjaCBwNlBvZFZlcnRpY2FsQmFyICAgIGRpc3BsYXkgY29udGFpbmVkICJ8Igorc3luIG1hdGNoIHA2UG9kQ29sb24gICAgICAgICAgZGlzcGxheSBjb250YWluZWQgIjoiCitzeW4gbWF0Y2ggcDZQb2RTZW1pY29sb24gICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiOyIKK3N5biBtYXRjaCBwNlBvZENvbW1hICAgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICIsIgorc3luIG1hdGNoIHA2UG9kSW1wbGljaXRDb2RlICAgZGlzcGxheSBjb250YWluZWQgIl5ccy4qIgorCitzeW4gcmVnaW9uIHA2UG9kRGVsaW1FbmRSZWdpb24KKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RUeXBlCisgICAgXCBzdGFydD0iXCUoXj1lbmRcPlwpXEA8PSIKKyAgICBcIGVuZD0iXEtcayoiCisKKyIgVGhlc2UgbWF5IGFwcGVhciBpbnNpZGUgZGVsaW1pdGVkIGJsb2Nrcworc3luIGNsdXN0ZXIgcDZQb2ROZXN0ZWRCbG9ja3MKKyAgICBcIGFkZD1wNlBvZEFiYnJSZWdpb24KKyAgICBcIGFkZD1wNlBvZERpcmVjdFJlZ2lvbgorICAgIFwgYWRkPXA2UG9kUGFyYVJlZ2lvbgorICAgIFwgYWRkPXA2UG9kRGVsaW1SZWdpb24KKyAgICBcIGFkZD1wNlBvZERlbGltRW5kUmVnaW9uCisKKyIgUG9kIGZvcm1hdHRpbmcgY29kZXMKKworc3luIGNsdXN0ZXIgcDZQb2RGb3JtYXQKKyAgICBcIGFkZD1wNlBvZEZvcm1hdE9uZQorICAgIFwgYWRkPXA2UG9kRm9ybWF0VHdvCisgICAgXCBhZGQ9cDZQb2RGb3JtYXRUaHJlZQorICAgIFwgYWRkPXA2UG9kRm9ybWF0RnJlbmNoCisKKyIgQmFsYW5jZWQgYW5nbGVzIGZvdW5kIGluc2lkZSBmb3JtYXR0aW5nIGNvZGVzLiBFbnN1cmVzIHByb3BlciBuZXN0aW5nLgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0QW5nbGVzT25lCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0CisgICAgXCBzdGFydD0iPCIKKyAgICBcIHNraXA9IjxbXj5dKj4iCisgICAgXCBlbmQ9Ij4iCisgICAgXCB0cmFuc3BhcmVudAorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaCxwNlBvZEZvcm1hdEFuZ2xlc09uZQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0QW5nbGVzVHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0CisgICAgXCBzdGFydD0iPDwiCisgICAgXCBza2lwPSI8PFtePl0qPj4iCisgICAgXCBlbmQ9Ij4+IgorICAgIFwgdHJhbnNwYXJlbnQKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNGcmVuY2gscDZQb2RGb3JtYXRBbmdsZXNPbmUscDZQb2RGb3JtYXRBbmdsZXNUd28KKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdEFuZ2xlc1RocmVlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0CisgICAgXCBzdGFydD0iPDw8IgorICAgIFwgc2tpcD0iPDw8W14+XSo+Pj4iCisgICAgXCBlbmQ9Ij4+PiIKKyAgICBcIHRyYW5zcGFyZW50CisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzRnJlbmNoLHA2UG9kRm9ybWF0QW5nbGVzT25lLHA2UG9kRm9ybWF0QW5nbGVzVHdvLHA2UG9kRm9ybWF0QW5nbGVzVGhyZWUKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaAorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdAorICAgIFwgc3RhcnQ9IsKrIgorICAgIFwgc2tpcD0iwqtbXsK7XSrCuyIKKyAgICBcIGVuZD0iwrsiCisgICAgXCB0cmFuc3BhcmVudAorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaCxwNlBvZEZvcm1hdEFuZ2xlc09uZSxwNlBvZEZvcm1hdEFuZ2xlc1R3byxwNlBvZEZvcm1hdEFuZ2xlc1RocmVlCisKKyIgQWxsIGZvcm1hdHRpbmcgY29kZXMKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdE9uZQorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJcdTwiCisgICAgXCBza2lwPSI8W14+XSo+IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc09uZSxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ilx1PDwiCisgICAgXCBza2lwPSI8PFtePl0qPj4iCisgICAgXCBlbmQ9Ij4+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc1R3byxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3bworCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VGhyZWUKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iXHU8PDwiCisgICAgXCBza2lwPSI8PDxbXj5dKj4+PiIKKyAgICBcIGVuZD0iPj4+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc1RocmVlLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kRm9ybWF0VGhyZWUKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdEZyZW5jaAorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJcdcKrIgorICAgIFwgc2tpcD0iwqtbXsK7XSrCuyIKKyAgICBcIGVuZD0iwrsiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzRnJlbmNoLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kRm9ybWF0VGhyZWUKKworIiBDPD4gYW5kIFY8PiBkb24ndCBhbGxvdyBuZXN0ZWQgZm9ybWF0dGluZyBmb3JtYXR0aW5nIGNvZGVzCisKK3N5biByZWdpb24gcDZQb2RGb3JtYXRPbmUKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iW0NWXTwiCisgICAgXCBza2lwPSI8W14+XSo+IgorICAgIFwgZW5kPSI+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc09uZQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IltDVl08PCIKKyAgICBcIHNraXA9Ijw8W14+XSo+PiIKKyAgICBcIGVuZD0iPj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVHdvCisKK3N5biByZWdpb24gcDZQb2RGb3JtYXRUaHJlZQorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJbQ1ZdPDw8IgorICAgIFwgc2tpcD0iPDw8W14+XSo+Pj4iCisgICAgXCBlbmQ9Ij4+PiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNUaHJlZQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0RnJlbmNoCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IltDVl3CqyIKKyAgICBcIHNraXA9IsKrW17Cu10qwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaAorCisiIEw8PiBjYW4gaGF2ZSBhICJ8IiBzZXBhcmF0b3IKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdE9uZQorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJMPCIKKyAgICBcIHNraXA9IjxbXj5dKj4iCisgICAgXCBlbmQ9Ij4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzT25lLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kVmVydGljYWxCYXIKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdFR3bworICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJMPDwiCisgICAgXCBza2lwPSI8PFtePl0qPj4iCisgICAgXCBlbmQ9Ij4+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc1R3byxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3byxwNlBvZFZlcnRpY2FsQmFyCisKK3N5biByZWdpb24gcDZQb2RGb3JtYXRUaHJlZQorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJMPDw8IgorICAgIFwgc2tpcD0iPDw8W14+XSo+Pj4iCisgICAgXCBlbmQ9Ij4+PiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNUaHJlZSxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3byxwNlBvZEZvcm1hdFRocmVlLHA2UG9kVmVydGljYWxCYXIKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdEZyZW5jaAorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJMwqsiCisgICAgXCBza2lwPSLCq1tewrtdKsK7IgorICAgIFwgZW5kPSLCuyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNGcmVuY2gscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RGb3JtYXRUaHJlZSxwNlBvZFZlcnRpY2FsQmFyCisKKyIgRTw+IGNhbiBoYXZlIGEgIjsiIHNlcGFyYXRvcgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0T25lCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IkU8IgorICAgIFwgc2tpcD0iPFtePl0qPiIKKyAgICBcIGVuZD0iPiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNPbmUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RTZW1pQ29sb24KKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdFR3bworICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJFPDwiCisgICAgXCBza2lwPSI8PFtePl0qPj4iCisgICAgXCBlbmQ9Ij4+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc1R3byxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3byxwNlBvZFNlbWlDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VGhyZWUKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iRTw8PCIKKyAgICBcIHNraXA9Ijw8PFtePl0qPj4+IgorICAgIFwgZW5kPSI+Pj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVGhyZWUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RGb3JtYXRUaHJlZSxwNlBvZFNlbWlDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0RnJlbmNoCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IkXCqyIKKyAgICBcIHNraXA9IsKrW17Cu10qwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaCxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3byxwNlBvZEZvcm1hdFRocmVlLHA2UG9kU2VtaUNvbG9uCisKKyIgTTw+IGNhbiBoYXZlIGEgIjoiIHNlcGFyYXRvcgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0T25lCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ik08IgorICAgIFwgc2tpcD0iPFtePl0qPiIKKyAgICBcIGVuZD0iPiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNPbmUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ik08PCIKKyAgICBcIHNraXA9Ijw8W14+XSo+PiIKKyAgICBcIGVuZD0iPj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVHdvLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kQ29sb24KKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdFRocmVlCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ik08PDwiCisgICAgXCBza2lwPSI8PDxbXj5dKj4+PiIKKyAgICBcIGVuZD0iPj4+IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc1RocmVlLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kRm9ybWF0VGhyZWUscDZQb2RDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0RnJlbmNoCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ik3CqyIKKyAgICBcIHNraXA9IsKrW17Cu10qwrsiCisgICAgXCBlbmQ9IsK7IgorICAgIFwgY29udGFpbmVkCisgICAgXCBjb250YWlucz1wNlBvZEZvcm1hdEFuZ2xlc0ZyZW5jaCxwNlBvZEZvcm1hdEZyZW5jaCxwNlBvZEZvcm1hdE9uZSxwNlBvZEZvcm1hdFR3byxwNlBvZEZvcm1hdFRocmVlLHA2UG9kQ29sb24KKworIiBEPD4gY2FuIGhhdmUgInwiIGFuZCAiOyIgc2VwYXJhdG9ycworCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0T25lCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IkQ8IgorICAgIFwgc2tpcD0iPFtePl0qPiIKKyAgICBcIGVuZD0iPiIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNPbmUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RWZXJ0aWNhbEJhcixwNlBvZFNlbWlDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9IkQ8PCIKKyAgICBcIHNraXA9Ijw8W14+XSo+PiIKKyAgICBcIGVuZD0iPj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVUd28scDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RWZXJ0aWNhbEJhcixwNlBvZFNlbWlDb2xvbgorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VGhyZWUKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iRDw8PCIKKyAgICBcIHNraXA9Ijw8PFtePl0qPj4+IgorICAgIFwgZW5kPSI+Pj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVGhyZWUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RGb3JtYXRUaHJlZSxwNlBvZFZlcnRpY2FsQmFyLHA2UG9kU2VtaUNvbG9uCisKK3N5biByZWdpb24gcDZQb2RGb3JtYXRGcmVuY2gKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iRMKrIgorICAgIFwgc2tpcD0iwqtbXsK7XSrCuyIKKyAgICBcIGVuZD0iwrsiCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzRnJlbmNoLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kRm9ybWF0VGhyZWUscDZQb2RWZXJ0aWNhbEJhcixwNlBvZFNlbWlDb2xvbgorCisiIFg8PiBjYW4gaGF2ZSAifCIsICIsIiBhbmQgIjsiIHNlcGFyYXRvcnMKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdE9uZQorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJYPCIKKyAgICBcIHNraXA9IjxbXj5dKj4iCisgICAgXCBlbmQ9Ij4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzT25lLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kVmVydGljYWxCYXIscDZQb2RTZW1pQ29sb24scDZQb2RDb21tYQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VHdvCisgICAgXCBtYXRjaGdyb3VwPXA2UG9kRm9ybWF0Q29kZQorICAgIFwgc3RhcnQ9Ilg8PCIKKyAgICBcIHNraXA9Ijw8W14+XSo+PiIKKyAgICBcIGVuZD0iPj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVHdvLHA2UG9kRm9ybWF0RnJlbmNoLHA2UG9kRm9ybWF0T25lLHA2UG9kRm9ybWF0VHdvLHA2UG9kVmVydGljYWxCYXIscDZQb2RTZW1pQ29sb24scDZQb2RDb21tYQorCitzeW4gcmVnaW9uIHA2UG9kRm9ybWF0VGhyZWUKKyAgICBcIG1hdGNoZ3JvdXA9cDZQb2RGb3JtYXRDb2RlCisgICAgXCBzdGFydD0iWDw8PCIKKyAgICBcIHNraXA9Ijw8PFtePl0qPj4+IgorICAgIFwgZW5kPSI+Pj4iCisgICAgXCBjb250YWluZWQKKyAgICBcIGNvbnRhaW5zPXA2UG9kRm9ybWF0QW5nbGVzVGhyZWUscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RGb3JtYXRUaHJlZSxwNlBvZFZlcnRpY2FsQmFyLHA2UG9kU2VtaUNvbG9uLHA2UG9kQ29tbWEKKworc3luIHJlZ2lvbiBwNlBvZEZvcm1hdEZyZW5jaAorICAgIFwgbWF0Y2hncm91cD1wNlBvZEZvcm1hdENvZGUKKyAgICBcIHN0YXJ0PSJYwqsiCisgICAgXCBza2lwPSLCq1tewrtdKsK7IgorICAgIFwgZW5kPSLCuyIKKyAgICBcIGNvbnRhaW5lZAorICAgIFwgY29udGFpbnM9cDZQb2RGb3JtYXRBbmdsZXNGcmVuY2gscDZQb2RGb3JtYXRGcmVuY2gscDZQb2RGb3JtYXRPbmUscDZQb2RGb3JtYXRUd28scDZQb2RGb3JtYXRUaHJlZSxwNlBvZFZlcnRpY2FsQmFyLHA2UG9kU2VtaUNvbG9uLHA2UG9kQ29tbWEKKworIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgorIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5CisiIEZvciB2ZXJzaW9uIDUuOCBhbmQgbGF0ZXI6IG9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0CitpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfcGVybDZfc3ludGF4X2luaXRzIikKKyAgICBpZiB2ZXJzaW9uIDwgNTA4CisgICAgICAgIGxldCBkaWRfcGVybDZfc3ludGF4X2luaXRzID0gMQorICAgICAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgorICAgIGVsc2UKKyAgICAgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisgICAgZW5kaWYKKworICAgIEhpTGluayBwNkVzY09jdE9sZCAgICAgICBwNkVycm9yCisgICAgSGlMaW5rIHA2UGFja2FnZVR3aWdpbCAgIHA2VHdpZ2lsCisgICAgSGlMaW5rIHA2U3RyaW5nQW5nbGUgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nRnJlbmNoICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nQW5nbGVzICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nU1EgICAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nRFEgICAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nUSAgICAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhTdHJpbmdTUSAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhTdHJpbmdEUSAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3Vic3RpdHV0aW9uICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2VHJhbnNsaXRlcmF0aW9uIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nQXV0byAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2U3RyaW5nUDVBdXRvICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2S2V5ICAgICAgICAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2TWF0Y2ggICAgICAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UmVnZXhCbG9jayAgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhQNUNoYXJDbGFzcyAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhQNVF1b3RlTWV0YSAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhDaGFyQ2xhc3MgICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UnhRdW90ZVdvcmRzICAgIHA2U3RyaW5nCisgICAgSGlMaW5rIHA2UmVkdWNlT3AgICAgICAgIHA2T3BlcmF0b3IKKyAgICBIaUxpbmsgcDZSZXZlcnNlQ3Jvc3NPcCAgcDZPcGVyYXRvcgorICAgIEhpTGluayBwNkh5cGVyT3AgICAgICAgICBwNk9wZXJhdG9yCisgICAgSGlMaW5rIHA2UXVvdGVRICAgICAgICAgIHA2T3BlcmF0b3IKKyAgICBIaUxpbmsgcDZSeFJhbmdlICAgICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2UnhBbmNob3IgICAgICAgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVBbmNob3IgICAgICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZDb2RlUG9pbnQgICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2UnhNZXRhICAgICAgICAgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVSYW5nZSAgICAgICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZSeFA1Q1BJZCAgICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2UnhQNVBvc2l4ICAgICAgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVNb2QgICAgICAgICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZSeFA1SGV4U2VxICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2UnhQNU9jdFNlcSAgICAgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVXcml0ZVJlZklkICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZIZXhTZXF1ZW5jZSAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2T2N0U2VxdWVuY2UgICAgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVOYW1lZCAgICAgICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZSeFA1UHJvcElkICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2UnhQNVF1YW50aWZpZXIgIHA2U3RyaW5nU3BlY2lhbAorICAgIEhpTGluayBwNlJ4UDVDb3VudElkICAgICBwNlN0cmluZ1NwZWNpYWwKKyAgICBIaUxpbmsgcDZSeFA1VmVyYiAgICAgICAgcDZTdHJpbmdTcGVjaWFsCisgICAgSGlMaW5rIHA2RXNjYXBlICAgICAgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NOdWxsICAgICAgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNkVzY0hhc2ggICAgICAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2RXNjUVEgICAgICAgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NRdW90ZSAgICAgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNkVzY0RvdWJsZVF1b3RlICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2RXNjQmFja1RpY2sgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NGb3J3YXJkU2xhc2ggcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNkVzY1ZlcnRpY2FsQmFyICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2RXNjRXhjbGFtYXRpb24gIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NEb2xsYXIgICAgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNkVzY09wZW5DdXJseSAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2RXNjQ2xvc2VDdXJseSAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NDbG9zZUJyYWNrZXQgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNkVzY0Nsb3NlQW5nbGUgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2RXNjQ2xvc2VGcmVuY2ggIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZFc2NCYWNrU2xhc2ggICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNlJ4RXNjYXBlICAgICAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2UnhDYXB0dXJlICAgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZSeEFsdGVybmF0aW9uICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNlJ4UDUgICAgICAgICAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2UnhQNVJlYWRSZWYgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZSeFA1T2N0ICAgICAgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNlJ4UDVIZXggICAgICAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2UnhQNUVzY01ldGEgICAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZSeFA1TWV0YSAgICAgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNlJ4UDVFc2NhcGUgICAgICBwNlN0cmluZ1NwZWNpYWwyCisgICAgSGlMaW5rIHA2UnhQNUNvZGVQb2ludCAgIHA2U3RyaW5nU3BlY2lhbDIKKyAgICBIaUxpbmsgcDZSeFA1V3JpdGVSZWYgICAgcDZTdHJpbmdTcGVjaWFsMgorICAgIEhpTGluayBwNlJ4UDVQcm9wICAgICAgICBwNlN0cmluZ1NwZWNpYWwyCisKKyAgICBIaUxpbmsgcDZQcm9wZXJ0eSAgICAgICBUYWcKKyAgICBIaUxpbmsgcDZBdHRlbnRpb24gICAgICBUb2RvCisgICAgSGlMaW5rIHA2VHlwZSAgICAgICAgICAgVHlwZQorICAgIEhpTGluayBwNkVycm9yICAgICAgICAgIEVycm9yCisgICAgSGlMaW5rIHA2QmxvY2tMYWJlbCAgICAgTGFiZWwKKyAgICBIaUxpbmsgcDZGbG9hdCAgICAgICAgICBGbG9hdAorICAgIEhpTGluayBwNk5vcm1hbCAgICAgICAgIE5vcm1hbAorICAgIEhpTGluayBwNlBhY2thZ2UgICAgICAgIE5vcm1hbAorICAgIEhpTGluayBwNlBhY2thZ2VTY29wZSAgIE5vcm1hbAorICAgIEhpTGluayBwNk51bWJlciAgICAgICAgIE51bWJlcgorICAgIEhpTGluayBwNlZlcnNpb25OdW0gICAgIE51bWJlcgorICAgIEhpTGluayBwNlN0cmluZyAgICAgICAgIFN0cmluZworICAgIEhpTGluayBwNlJlcGVhdCAgICAgICAgIFJlcGVhdAorICAgIEhpTGluayBwNktleXdvcmQgICAgICAgIEtleXdvcmQKKyAgICBIaUxpbmsgcDZQcmFnbWEgICAgICAgICBLZXl3b3JkCisgICAgSGlMaW5rIHA2TW9kdWxlICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBwNkRlY2xhcmVSb3V0aW5lIEtleXdvcmQKKyAgICBIaUxpbmsgcDZWYXJTdG9yYWdlICAgICBTcGVjaWFsCisgICAgSGlMaW5rIHA2Rmxvd0NvbnRyb2wgICAgU3BlY2lhbAorICAgIEhpTGluayBwNk51bWJlckJhc2UgICAgIFNwZWNpYWwKKyAgICBIaUxpbmsgcDZUd2lnaWwgICAgICAgICBTcGVjaWFsCisgICAgSGlMaW5rIHA2U3RyaW5nU3BlY2lhbDIgU3BlY2lhbAorICAgIEhpTGluayBwNlZlcnNpb25Eb3QgICAgIFNwZWNpYWwKKyAgICBIaUxpbmsgcDZDb21tZW50ICAgICAgICBDb21tZW50CisgICAgSGlMaW5rIHA2SW5jbHVkZSAgICAgICAgSW5jbHVkZQorICAgIEhpTGluayBwNlNoZWJhbmcgICAgICAgIFByZVByb2MKKyAgICBIaUxpbmsgcDZDbG9zdXJlVHJhaXQgICBQcmVQcm9jCisgICAgSGlMaW5rIHA2Um91dGluZSAgICAgICAgRnVuY3Rpb24KKyAgICBIaUxpbmsgcDZPcGVyYXRvciAgICAgICBPcGVyYXRvcgorICAgIEhpTGluayBwNlZlcnNpb24gICAgICAgIE9wZXJhdG9yCisgICAgSGlMaW5rIHA2Q29udGV4dCAgICAgICAgT3BlcmF0b3IKKyAgICBIaUxpbmsgcDZRdW90ZSAgICAgICAgICBEZWxpbWl0ZXIKKyAgICBIaUxpbmsgcDZUeXBlQ29uc3RyYWludCBQcmVDb25kaXQKKyAgICBIaUxpbmsgcDZFeGNlcHRpb24gICAgICBFeGNlcHRpb24KKyAgICBIaUxpbmsgcDZQbGFjZWhvbGRlciAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIHA2VmFyaWFibGUgICAgICAgSWRlbnRpZmllcgorICAgIEhpTGluayBwNlZhclNsYXNoICAgICAgIElkZW50aWZpZXIKKyAgICBIaUxpbmsgcDZWYXJOdW0gICAgICAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIHA2VmFyRXhjbGFtICAgICAgSWRlbnRpZmllcgorICAgIEhpTGluayBwNlZhck1hdGNoICAgICAgIElkZW50aWZpZXIKKyAgICBIaUxpbmsgcDZWYXJOYW1lICAgICAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIHA2TWF0Y2hWYXIgICAgICAgSWRlbnRpZmllcgorICAgIEhpTGluayBwNlJ4UDVSZWFkUmVmSWQgIElkZW50aWZpZXIKKyAgICBIaUxpbmsgcDZSeFA1TW9kRGVmICAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIHA2UnhQNU1vZE5hbWUgICAgSWRlbnRpZmllcgorICAgIEhpTGluayBwNkNvbmRpdGlvbmFsICAgIENvbmRpdGlvbmFsCisgICAgSGlMaW5rIHA2U3RyaW5nU3BlY2lhbCAgU3BlY2lhbENoYXIKKworICAgIEhpTGluayBwNlBvZEFiYnIgICAgICAgICBwNlBvZAorICAgIEhpTGluayBwNlBvZEFiYnJFT0YgICAgICBwNlBvZAorICAgIEhpTGluayBwNlBvZEFiYnJOb0NvZGUgICBwNlBvZAorICAgIEhpTGluayBwNlBvZEFiYnJDb2RlICAgICBwNlBvZENvZGUKKyAgICBIaUxpbmsgcDZQb2RQYXJhICAgICAgICAgcDZQb2QKKyAgICBIaUxpbmsgcDZQb2RQYXJhRU9GICAgICAgcDZQb2QKKyAgICBIaUxpbmsgcDZQb2RQYXJhTm9Db2RlICAgcDZQb2QKKyAgICBIaUxpbmsgcDZQb2RQYXJhQ29kZSAgICAgcDZQb2RDb2RlCisgICAgSGlMaW5rIHA2UG9kRGVsaW0gICAgICAgIHA2UG9kCisgICAgSGlMaW5rIHA2UG9kRGVsaW1FT0YgICAgIHA2UG9kCisgICAgSGlMaW5rIHA2UG9kRGVsaW1Ob0NvZGUgIHA2UG9kCisgICAgSGlMaW5rIHA2UG9kRGVsaW1Db2RlICAgIHA2UG9kQ29kZQorICAgIEhpTGluayBwNlBvZEltcGxpY2l0Q29kZSBwNlBvZENvZGUKKyAgICBIaUxpbmsgcDZQb2RFeHRyYUNvbmZpZyAgcDZQb2RQcmVmaXgKKyAgICBIaUxpbmsgcDZQb2RWZXJ0aWNhbEJhciAgcDZQb2RGb3JtYXRDb2RlCisgICAgSGlMaW5rIHA2UG9kQ29sb24gICAgICAgIHA2UG9kRm9ybWF0Q29kZQorICAgIEhpTGluayBwNlBvZFNlbWljb2xvbiAgICBwNlBvZEZvcm1hdENvZGUKKyAgICBIaUxpbmsgcDZQb2RDb21tYSAgICAgICAgcDZQb2RGb3JtYXRDb2RlCisgICAgSGlMaW5rIHA2UG9kRm9ybWF0T25lICAgIHA2UG9kRm9ybWF0CisgICAgSGlMaW5rIHA2UG9kRm9ybWF0VHdvICAgIHA2UG9kRm9ybWF0CisgICAgSGlMaW5rIHA2UG9kRm9ybWF0VGhyZWUgIHA2UG9kRm9ybWF0CisgICAgSGlMaW5rIHA2UG9kRm9ybWF0RnJlbmNoIHA2UG9kRm9ybWF0CisKKyAgICBIaUxpbmsgcDZQb2RUeXBlICAgICAgICAgICBUeXBlCisgICAgSGlMaW5rIHA2UG9kQ29uZmlnT3B0aW9uICAgU3RyaW5nCisgICAgSGlMaW5rIHA2UG9kQ29kZSAgICAgICAgICAgUHJlUHJvYworICAgIEhpTGluayBwNlBvZCAgICAgICAgICAgICAgIENvbW1lbnQKKyAgICBIaUxpbmsgcDZQb2RDb21tZW50ICAgICAgICBDb21tZW50CisgICAgSGlMaW5rIHA2UG9kQXV0b1F1b3RlICAgICAgT3BlcmF0b3IKKyAgICBIaUxpbmsgcDZQb2RDb25maWdPcGVyYXRvciBPcGVyYXRvcgorICAgIEhpTGluayBwNlBvZFByZWZpeCAgICAgICAgIFN0YXRlbWVudAorICAgIEhpTGluayBwNlBvZE5hbWUgICAgICAgICAgIElkZW50aWZpZXIKKyAgICBIaUxpbmsgcDZQb2RGb3JtYXRDb2RlICAgICBTcGVjaWFsQ2hhcgorICAgIEhpTGluayBwNlBvZEZvcm1hdCAgICAgICAgIFNwZWNpYWxDb21tZW50CisKKyAgICBkZWxjb21tYW5kIEhpTGluaworZW5kaWYKKworIiBTeW5jaW5nIHRvIHNwZWVkIHVwIHByb2Nlc3NpbmcKKyJzeW4gc3luYyBtYXRjaCBwNlN5bmNQb2QgZ3JvdXB0aGVyZSBwNlBvZEFiYnJSZWdpb24gICAgICJePVxLXGsqXD4iCisic3luIHN5bmMgbWF0Y2ggcDZTeW5jUG9kIGdyb3VwdGhlcmUgcDZQb2REaXJlY3RSZWdpb24gICAiXj1cJShjb25maWdcfHVzZVx8ZW5jb2RpbmdcKVw+IgorInN5biBzeW5jIG1hdGNoIHA2U3luY1BvZCBncm91cHRoZXJlIHA2UG9kUGFyYVJlZ2lvbiAgICAgIl49Zm9yXD4iCisic3luIHN5bmMgbWF0Y2ggcDZTeW5jUG9kIGdyb3VwdGhlcmUgcDZQb2REZWxpbVJlZ2lvbiAgICAiXj1iZWdpblw+IgorInN5biBzeW5jIG1hdGNoIHA2U3luY1BvZCBncm91cHRoZXJlIHA2UG9kRGVsaW1FbmRSZWdpb24gIl49ZW5kXD4iCisKKyIgTGV0J3MganVzdCBzeW5jIHdob2xlIGZpbGUsIHRoZSBvdGhlciBtZXRob2RzIGFyZW4ndCByZWxpYWJsZSAob3IgSSBkb24ndAorIiBrbm93IGhvdyB0byB1c2UgdGhlbSByZWxpYWJseSkKK3N5biBzeW5jIGZyb21zdGFydAorCitzZXRsb2NhbCBmb2xkbWV0aG9kPXN5bnRheAorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJwZXJsNiIKKworIiB2aW06dHM9ODpzdHM9NDpzdz00OmV4cGFuZHRhYjpmdD12aW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3JoZWxwLnZpbSBiL3J1bnRpbWUvc3ludGF4L3JoZWxwLnZpbQppbmRleCBmYTU4NWIyLi45OGU1YmMwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9yaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcmhlbHAudmltCkBAIC0xLDE0ICsxLDE3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgUiBIZWxwIEZpbGUKICIgTWFpbnRhaW5lcjogIEpvaGFubmVzIFJhbmtlIDxqcmFua2VAdW5pLWJyZW1lbi5kZT4KLSIgTGFzdCBDaGFuZ2U6IDIwMDkgTWFpIDEyCi0iIFZlcnNpb246ICAgICAwLjcuMgotIiBTVk46CQkgICAkSWQ6IHJoZWxwLnZpbSA4NiAyMDA5LTA1LTEyIDE5OjIzOjQ3WiByYW5rZSAkCisiIExhc3QgQ2hhbmdlOiAyMDEwIEFwciAyMgorIiBWZXJzaW9uOiAgICAgMC43LjMKKyIgU1ZOOgkJICAgJElkOiByaGVscC52aW0gODggMjAxMC0wNC0yMiAxOTozNzowOVogcmFua2UgJAogIiBSZW1hcmtzOiAgICAgLSBOb3cgaW5jbHVkZXMgUiBzeW50YXggaGlnaGxpZ2h0aW5nIGluIHRoZSBhcHByb3ByaWF0ZQogIiAgICAgICAgICAgICAgICBzZWN0aW9ucyBpZiBhbiByLnZpbSBmaWxlIGlzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBvciBpbiB0aGUKICIgICAgICAgICAgICAgICAgZGVmYXVsdCBkZWJpYW4gbG9jYXRpb24uCiAiICAgICAgICAgICAgICAtIFRoZXJlIGlzIG5vIExhdGV4IG1hcmt1cCBpbiBlcXVhdGlvbnMKICIgICAgICAgICAgICAgIC0gVGhhbmtzIHRvIFdpbGwgR3JheSBmb3IgZmluZGluZyBhbmQgZml4aW5nIGEgYnVnCisiICAgICAgICAgICAgICAtIE5vIHN1cHBvcnQgZm9yIFxpZiwgXGlmZWxzZSBhbmQgXG91dCBhcyBJIGRvbid0IHVuZGVyc3RhbmQKKyIgICAgICAgICAgICAgICAgdGhlbSBhbmQgaGF2ZSBubyBleGFtcGxlcyBhdCBoYW5kIChoZWxwIHdlbGNvbWUpLgorIiAgICAgICAgICAgICAgLSBObyBzdXBwb3J0IGZvciBcdmFyIHRhZyB3aXRoaW4gcXVvdGVkIHN0cmluZyAoZGl0bykKIAogIiBWZXJzaW9uIENsZWFyczoge3t7MQogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKQEAgLTM3LDYgKzQwLDcgQEAKIHN5biByZWdpb24gcmhlbHBSY29kZSBtYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iXFxzcGVjaWFseyIgbWF0Y2hncm91cD1EZWxpbWl0ZXIgdHJhbnNwYXJlbnQgZW5kPS99LyBjb250YWlucz1AUiBjb250YWluZWQKIHN5biByZWdpb24gcmhlbHBSY29kZSBtYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iXFxjb2RleyIgbWF0Y2hncm91cD1EZWxpbWl0ZXIgdHJhbnNwYXJlbnQgZW5kPS99LyBjb250YWlucz1AUixyaGVscExpbmsgY29udGFpbmVkCiBzeW4gcmVnaW9uIHJoZWxwUzRtZXRob2QgbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxcUzRtZXRob2R7Lip9KCIgbWF0Y2hncm91cD1EZWxpbWl0ZXIgdHJhbnNwYXJlbnQgZW5kPS8pLyBjb250YWlucz1AUixyaGVscERvdHMgY29udGFpbmVkCitzeW4gcmVnaW9uIHJoZWxwU2V4cHIgbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxcU2V4cHJ7IiBtYXRjaGdyb3VwPURlbGltaXRlciB0cmFuc3BhcmVudCBlbmQ9L30vIGNvbnRhaW5zPUBSCiAKICIgU3RyaW5ncyB7e3sxCiBzeW4gcmVnaW9uIHJoZWxwU3RyaW5nIHN0YXJ0PS8iLyBlbmQ9LyIvIApAQCAtNTUsNiArNTksNTYgQEAKIHN5biBtYXRjaCByaGVscEtleXdvcmQgICItLS0iCiBzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkICAiPCIKIHN5biBtYXRjaCByaGVscEtleXdvcmQgICI+Igorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxnZSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcbGUiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXGFscGhhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxiZXRhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxnYW1tYSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcZGVsdGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXGVwc2lsb24iCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXHpldGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXGV0YSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcdGhldGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXGlvdGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXGthcHBhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxsYW1iZGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXG11Igorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxudSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxceGkiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXG9taWNyb24iCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXHBpIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxyaG8iCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXHNpZ21hIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFx0YXUiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXHVwc2lsb24iCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXHBoaSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcY2hpIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxwc2kiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXG9tZWdhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxBbHBoYSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcQmV0YSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcR2FtbWEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXERlbHRhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxFcHNpbG9uIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxaZXRhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxFdGEiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXFRoZXRhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxJb3RhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxLYXBwYSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcTGFtYmRhIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxNdSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcTnUiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXFhpIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxPbWljcm9uIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxQaSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcUmhvIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxTaWdtYSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcVGF1Igorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxVcHNpbG9uIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxQaGkiCitzeW4gbWF0Y2ggcmhlbHBLZXl3b3JkCSJcXENoaSIKK3N5biBtYXRjaCByaGVscEtleXdvcmQJIlxcUHNpIgorc3luIG1hdGNoIHJoZWxwS2V5d29yZAkiXFxPbWVnYSIKIAogIiBMaW5rcyB7e3sxCiBzeW4gcmVnaW9uIHJoZWxwTGluayBtYXRjaGdyb3VwPXJoZWxwU2VjdGlvbiBzdGFydD0iXFxsaW5reyIgZW5kPSJ9IiBjb250YWluZWQga2VlcGVuZApAQCAtMTEyLDYgKzE2Niw3IEBACiAKICIgRnJlZWx5IG5hbWVkIFNlY3Rpb25zIHt7ezEKIHN5biByZWdpb24gcmhlbHBGcmVlc2VjIG1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJcXHNlY3Rpb257IiBtYXRjaGdyb3VwPURlbGltaXRlciB0cmFuc3BhcmVudCBlbmQ9L30vIAorc3luIHJlZ2lvbiByaGVscEZyZWVzdWJzZWMgbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9Ilxcc3Vic2VjdGlvbnsiIG1hdGNoZ3JvdXA9RGVsaW1pdGVyIHRyYW5zcGFyZW50IGVuZD0vfS8gCiAKICIgUiBoZWxwIGZpbGUgY29tbWVudHMge3t7MQogc3luIG1hdGNoIHJoZWxwQ29tbWVudCAvJS4qJC8gY29udGFpbmVkIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc2gudmltIGIvcnVudGltZS9zeW50YXgvc2gudmltCmluZGV4IDZlZjRmYmEuLjJiMTI2OWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zaC52aW0KQEAgLTIsOCArMiw4IEBACiAiIExhbmd1YWdlOgkJc2hlbGwgKHNoKSBLb3JuIHNoZWxsIChrc2gpIGJhc2ggKHNoKQogIiBNYWludGFpbmVyOgkJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+CiAiIFByZXZpb3VzIE1haW50YWluZXI6CUxlbm5hcnQgU2NodWx0eiA8TGVubmFydC5TY2h1bHR6QGVjbXdmLmludD4KLSIgTGFzdCBDaGFuZ2U6CQlOb3YgMTcsIDIwMDkKLSIgVmVyc2lvbjoJCTExMAorIiBMYXN0IENoYW5nZToJCUFwciAxMiwgMjAxMAorIiBWZXJzaW9uOgkJMTExCiAiIFVSTDoJCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIiBGb3Igb3B0aW9ucyBhbmQgc2V0dGluZ3MsIHBsZWFzZSB1c2U6ICAgICAgOmhlbHAgZnQtc2gtc3ludGF4CiAiIFRoaXMgZmlsZSBpbmNsdWRlcyBtYW55IGlkZWFzIGZyb20gyXJpYyBCcnVuZXQgKGVyaWMuYnJ1bmV0QGVucy5mcikKQEAgLTU5LDcgKzU5LDcgQEAKICBsZXQgczpzaF9mb2xkX2lmZG9mb3IgICA9IDQKIGVuZGlmCiBpZiBnOnNoX2ZvbGRfZW5hYmxlZCAmJiAmZmRtID09ICJtYW51YWwiCi0gc2V0IGZkbT1zeW50YXgKKyBzZXRsb2NhbCBmZG09c3ludGF4CiBlbmRpZgogCiAiIHNoIHN5bnRheCBpcyBjYXNlIHNlbnNpdGl2ZSB7e3sxCkBAIC0xNTcsNyArMTU3LDcgQEAKIAogIiBUZXN0czoge3t7MQogIj09PT09PT0KLXN5biByZWdpb24gc2hFeHByCW1hdGNoZ3JvdXA9c2hSYW5nZSBzdGFydD0iXFsiIHNraXA9K1xcXFxcfFxcJCsgZW5kPSJcXSIgY29udGFpbnM9QHNoVGVzdExpc3Qsc2hTcGVjaWFsCitzeW4gcmVnaW9uIHNoRXhwcgltYXRjaGdyb3VwPXNoUmFuZ2Ugc3RhcnQ9IlxbIiBza2lwPStcXFxcXHxcXCRcfFxbKyBlbmQ9IlxdIiBjb250YWlucz1Ac2hUZXN0TGlzdCxzaFNwZWNpYWwKIHN5biByZWdpb24gc2hUZXN0CXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hTdGF0ZW1lbnQgc3RhcnQ9Ilw8dGVzdFxzIiBza2lwPStcXFxcXHxcXCQrIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils7JnxdIm1lPWUtMSBlbmQ9IiQiIGNvbnRhaW5zPUBzaEV4cHJMaXN0MQogc3luIG1hdGNoICBzaFRlc3RPcHIJY29udGFpbmVkCSI8PVx8Pj1cfCE9XHw9PVx8LS5cPlx8LVwobnRcfG90XHxlZlx8ZXFcfG5lXHxsdFx8bGVcfGd0XHxnZVwpXD5cfFshPD5dIgogc3luIG1hdGNoICBzaFRlc3RPcHIJY29udGFpbmVkCSc9JyBza2lwd2hpdGUgbmV4dGdyb3VwPXNoVGVzdERvdWJsZVF1b3RlLHNoVGVzdFNpbmdsZVF1b3RlLHNoVGVzdFBhdHRlcm4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Npc3UudmltIGIvcnVudGltZS9zeW50YXgvc2lzdS52aW0KaW5kZXggYzdjZGYyZC4uNjk0NDc4MiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvc2lzdS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2lzdS52aW0KQEAgLTEsNiArMSw2IEBACiAiU2lTVSBWaW0gc3ludGF4IGZpbGUKICJTaVNVIE1haW50YWluZXI6IFJhbHBoIEFtaXNzYWggPHJhbHBoQGFtaXNzYWguY29tPgotIlNpU1UgTWFya3VwOiAgICAgU2lTVSAoc2lzdS0wLjY5LjAsIDIwMDgtMDktMTYpCisiU2lTVSBNYXJrdXA6ICAgICBTaVNVIChzaXN1LTIuMC4xLCAyMDEwLTAzLTE3KQogIihvcmlnaW5hbGx5IGxvb2tlZCBhdCBSdWJ5IFZpbSBieSBNaXJrbyBOYXNhdG8pCiAKIGlmIHZlcnNpb24gPCA2MDAKQEAgLTE2LDI1ICsxNiwyNiBAQAogIiBNYXJrZXJzIElkZW50aWZpZXJzOgogaWYgIWV4aXN0cygic2lzdV9ub19pZGVudGlmaWVycyIpCiAgIHN5biBtYXRjaCAgIHNpc3VfbWFya19lbmRub3RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcfl4iCi0gIHN5biBtYXRjaCAgIHNpc3VfY29udGFpbiAgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICI8L1w/c3ViPiIKICAgc3luIG1hdGNoICAgc2lzdV9icmVhayAgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjxicj5cfDxiciAvPiIKLSAgc3luIG1hdGNoICAgc2lzdV9jb250cm9sICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjxwPlx8PC9wPlx8PHAgLz5cfDw6cFtibl0+IgotICBzeW4gbWF0Y2ggICBzaXN1X2h0bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGNlbnRlcj5cfDwvY2VudGVyPiIKKyAgc3luIG1hdGNoICAgc2lzdV9jb250cm9sICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjw6cFtibl0+IgogICBzeW4gbWF0Y2ggICBzaXN1X21hcmt0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW34tXSMiCi0gIHN5biBtYXRjaCAgIHNpc3VfaHRtbCAgICAgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICI8dGQ+XHw8dGQgXHw8dHI+XHw8L3RkPlx8PC90cj5cfDx0YWJsZT5cfDx0YWJsZSBcfDwvdGFibGU+IgogICBzeW4gbWF0Y2ggICBzaXN1X2NvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIiCiAgIHN5biBtYXRjaCAgIHNpc3VfdW5kZXJsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcKF5cfCBcKV9bYS16QS1aMC05XVwrX1woWyAuLF1cfCRcKSIKICAgc3luIG1hdGNoICAgc2lzdV9udW1iZXIgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIlswLTlhLWZdXHszMlx9XHxbMC05YS1mXVx7NjRcfSIKICAgc3luIG1hdGNoICAgc2lzdV9saW5rICAgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIlwoX1w/aHR0cHNcPzovL1x8XC5cLlwvXClcU1wrIgotICAibWV0YXZlcnNlIHNwZWNpZmljCi0gIHN5biBtYXRjaCAgIHNpc3Vfb2NuICAgICAgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICI8XH5cZFwrO1x3XGRcKztcd1xkXCs+IgotICBzeW4gbWF0Y2ggICBzaXN1X21hcmt0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx+Iz4iCi0gIHN5biBtYXRjaCAgIHNpc3VfbWFya3BhcmEgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICI8OmlbMS05XT4iCiAgIHN5biBtYXRjaCAgIHNpc3VfbGluayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgXCpcflxTXCsiCiAgIHN5biBtYXRjaCAgIHNpc3VfYWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJePDppbnNlcnRcZFwrPiIKICAgc3luIG1hdGNoICAgc2lzdV9yZXF1aXJlICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIl48PFxzKlthLXpBLVowLTleLl8tXVwrXC5zc1tpdF0kIgogICBzeW4gbWF0Y2ggICBzaXN1X3JlcXVpcmUgICAgICAgICAgICAgY29udGFpbnM9QE5vU3BlbGwgICAgICAgICAgICAgICAgICAiXjw8e1thLXpBLVowLTleLl8tXVwrXC5zc1tpdF19JCIKLSAgc3luIG1hdGNoICAgc2lzdV9jb250YWluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjw6ZT4iCisgIHN5biBtYXRjaCAgIHNpc3Vfc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJeOkFcfiQiCisgIHN5biBtYXRjaCAgIHNpc3Vfc3ViX2hlYWRlcl90aXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJeXHNcKzpcKHN1YnRpdGxlXHxzaG9ydFx8ZWRpdGlvblx8bGFuZ3VhZ2VcfG5vdGVcKTpccyIgImdyb3VwPXNpc3VfaGVhZGVyX2NvbnRlbnQKKyAgc3luIG1hdGNoICAgc2lzdV9zdWJfaGVhZGVyX2NyZWF0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl5cc1wrOlwoYXV0aG9yXHx0cmFuc2xhdG9yXHxpbGx1c3RyYXRvclx8cGhvdG9ncmFwaGVyXHxhdWRpb1x8ZGlnaXRpemVkX2J5XHxwcmVwYXJlZF9ieVwpOlxzIgorICBzeW4gbWF0Y2ggICBzaXN1X3N1Yl9oZWFkZXJfcmlnaHRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXlxzXCs6XChjb3B5cmlnaHRcfHRleHRcfHRyYW5zbGF0aW9uXHxpbGx1c3RyYXRpb25zXHxwaG90b2dyYXBoc1x8YXVkaW9cfGRpZ2l0aXphdGlvblx8bGljZW5zZVx8YWxsXCk6XHMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNjZXNzX3JpZ2h0cyBsaWNlbnNlCisgIHN5biBtYXRjaCAgIHNpc3Vfc3ViX2hlYWRlcl9jbGFzc2lmeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJeXHNcKzpcKHR5cGVcfHN1YmplY3RcfHRvcGljX3JlZ2lzdGVyXHxrZXl3b3Jkc1x8Y292ZXJhZ2VcfHJlbGF0aW9uXHxmb3JtYXRcfGlkZW50aWZpZXJcfGlzYm5cfGRld2V5XHxsb2NcfHBnXCk6XHMiCisgIHN5biBtYXRjaCAgIHNpc3Vfc3ViX2hlYWRlcl9kYXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJeXHNcKzpcKHB1Ymxpc2hlZFx8YXZhaWxhYmxlXHxjcmVhdGVkXHxpc3N1ZWRcfHZhbGlkXHxtb2RpZmllZFx8YWRkZWRfdG9fc2l0ZVx8dHJhbnNsYXRlZFx8b3JpZ2luYWxfcHVibGljYXRpb25cKTpccyIKKyAgc3luIG1hdGNoICAgc2lzdV9zdWJfaGVhZGVyX29yaWdpbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl5cc1wrOlwocHVibGlzaGVyXHxkYXRlXHxsYW5ndWFnZVx8aW5zdGl0dXRpb25cfG5hdGlvbmFsaXR5XHxzb3VyY2VcKTpccyIKKyAgc3luIG1hdGNoICAgc2lzdV9zdWJfaGVhZGVyX21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl5cc1wrOlwoaGVhZGluZ3NcfG51bV90b3BcfGJyZWFrc1x8aXRhbGljc1x8Ym9sZFx8c2tpblx8c3RhbXBcfHByb21vXHxhZFx8bWFucGFnZVwpOlxzIgorICBzeW4gbWF0Y2ggICBzaXN1X3N1Yl9oZWFkZXJfbm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXlxzXCs6XChjb21tZW50XHxhYnN0cmFjdFx8ZGVzY3JpcHRpb25cfGhpc3RvcnlcfHByZWZpeFx8cHJlZml4X1thYl1cKTpccyIKICAgc3luIG1hdGNoICAgc2lzdV9zZW1fbWFya2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjt7XHx9O1thLXouX10qW2Etel0iCiAgIHN5biBtYXRjaCAgIHNpc3Vfc2VtX21hcmtlcl9ibG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcKFthLXpdW2Etei5fXSpcfFwpOntcfH06W2Etei5fXSpbYS16XSIKICAgc3luIG1hdGNoICAgc2lzdV9zZW1fZXhfbWFya2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjtcW1x8XF07W2Etei5fXSpbYS16XSIKQEAgLTU3LDE5ICs1OCwyOCBAQAogInVybC9saW5rCiBzeW4gcmVnaW9uIHNpc3VfbGluayBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlIG1hdGNoZ3JvdXA9c2lzdV9hY3Rpb24gc3RhcnQ9Il48PFxzKnxbYS16QS1aMC05Xi5fLV1cK3xAfFthLXpBLVowLTleLl8tXVwrfCJycz1zKzIgZW5kPSIkIgogImhlYWRlcgotc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9jb250ZW50X2FsdCxzaXN1X2xpbmssc2lzdV9saW5rZWQsc2lzdV9icmVhayBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeMFx+XChcU1wrXHxbXi1dXCkiIGVuZD0iXG4kIgotc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9jb250ZW50X2FsdCxzaXN1X2xpbmssc2lzdV9saW5rZWQsc2lzdV9icmVhayBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0AlXVxTXCs6WystXVw/XHMicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rLHNpc3Vfc3ViX2hlYWRlcl90aXRsZSBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0BddGl0bGU6WystXVw/XChcc1x8XG5cKSJycz1lLTEgZW5kPSJcbiQiCitzeW4gcmVnaW9uIHNpc3VfaGVhZGVyX2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2NvbW1lbnQsc2lzdV9icmVhayxzaXN1X2xpbmssc2lzdV9zdWJfaGVhZGVyX2NyZWF0b3IgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXltAXWNyZWF0b3I6WystXVw/XChcc1x8XG5cKSJycz1lLTEgZW5kPSJcbiQiCitzeW4gcmVnaW9uIHNpc3VfaGVhZGVyX2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2NvbW1lbnQsc2lzdV9icmVhayxzaXN1X2xpbmssc2lzdV9zdWJfaGVhZGVyX3JpZ2h0cyBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0BdcmlnaHRzOlsrLV1cP1woXHNcfFxuXCkicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rLHNpc3Vfc3ViX2hlYWRlcl9jbGFzc2lmeSBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0BdY2xhc3NpZnk6WystXVw/XChcc1x8XG5cKSJycz1lLTEgZW5kPSJcbiQiCitzeW4gcmVnaW9uIHNpc3VfaGVhZGVyX2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2NvbW1lbnQsc2lzdV9icmVhayxzaXN1X2xpbmssc2lzdV9zdWJfaGVhZGVyX2RhdGVzIG1hdGNoZ3JvdXA9c2lzdV9oZWFkZXIgc3RhcnQ9Il5bQF1kYXRlOlsrLV1cP1woXHNcfFxuXCkicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rLHNpc3Vfc3ViX2hlYWRlcl9tYWtlIG1hdGNoZ3JvdXA9c2lzdV9oZWFkZXIgc3RhcnQ9Il5bQF1tYWtlOlsrLV1cP1woXHNcfFxuXCkicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rLHNpc3Vfc3ViX2hlYWRlcl9wdWJsaXNoZXIgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXltAXXB1Ymxpc2hlcjpbKy1dXD9cKFxzXHxcblwpInJzPWUtMSBlbmQ9IlxuJCIKK3N5biByZWdpb24gc2lzdV9oZWFkZXJfY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfY29tbWVudCxzaXN1X2JyZWFrLHNpc3VfbGluayxzaXN1X3N1Yl9oZWFkZXJfbm90ZXMgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXltAXW5vdGVzOlsrLV1cP1woXHNcfFxuXCkicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rLHNpc3Vfc3ViX2hlYWRlcl9vcmlnaW5hbCBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0Bdb3JpZ2luYWw6WystXVw/XChcc1x8XG5cKSJycz1lLTEgZW5kPSJcbiQiCitzeW4gcmVnaW9uIHNpc3VfaGVhZGVyX2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2NvbW1lbnQsc2lzdV9icmVhayxzaXN1X2xpbmssc2lzdV9zdWJfaGVhZGVyX3NvdXJjZSBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeW0Bdc291cmNlOlsrLV1cP1woXHNcfFxuXCkicnM9ZS0xIGVuZD0iXG4kIgorc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9jb21tZW50LHNpc3VfYnJlYWssc2lzdV9saW5rZWQsc2lzdV9zdWJfaGVhZGVyX2xpbmtzIG1hdGNoZ3JvdXA9c2lzdV9oZWFkZXIgc3RhcnQ9Il5bQF1saW5rczpbKy1dXD9cKFxzXHxcblwpInJzPWUtMSBlbmQ9IlxuJCIKICJoZWFkaW5ncwogc3luIHJlZ2lvbiBzaXN1X2hlYWRpbmcgY29udGFpbnM9c2lzdV9tYXJrX2VuZG5vdGUsc2lzdV9jb250ZW50X2VuZG5vdGUsc2lzdV9tYXJrdGFpbCxzaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3Vfb2NuLHNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2UgbWF0Y2hncm91cD1zaXN1X3N0cnVjdHVyZSBzdGFydD0iXlwoWzEtOF1cfDpcP1tBLUNdXClcflwoXFNcK1x8W14tXVwpIiBlbmQ9IiQiCiAiZ3JvdXBlZCB0ZXh0CiBzeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSJedGFibGV7LlwrIiBlbmQ9In10YWJsZSIKLXN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRhaW4gc3RhcnQ9Il57XCh0XHx0YWJsZVwpXChcfmhcKVw/XChcc2NbMC05XVwrO1wpXD9bMC05OyBdKn0iIGVuZD0iXG5cbiIKK3N5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRhaW4gc3RhcnQ9Il57XCh0XHx0YWJsZVwpXChcfmhcKVw/XChcc2NbMC05XVwrO1wpXD9bMC05OyBdKn0iIGVuZD0iXG4kIgogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3VfbWFya19lbmRub3RlLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbGluayxzaXN1X21hcmssc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSJeXChhbHRcfGdyb3VwXHxwb2VtXCl7IiBlbmQ9Il59XChhbHRcfGdyb3VwXHxwb2VtXCkiCiBzeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0iXmNvZGV7IiBlbmQ9Il59Y29kZSIKICJlbmRub3Rlcwogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfZW5kbm90ZSBjb250YWlucz1zaXN1X2xpbmssc2lzdV9zdHJpa2VvdXQsc2lzdV91bmRlcmxpbmUsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfbWFyayxzaXN1X2JyZWFrLHNpc3Vfc2VtX2Jsb2NrLHNpc3Vfc2VtX2NvbnRlbnQsc2lzdV9zZW1fbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX21hcmtlcixzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fZXhfbWFya2VyIG1hdGNoZ3JvdXA9c2lzdV9tYXJrX2VuZG5vdGUgc3RhcnQ9Ilx+e1sqK10qIiBlbmQ9In1cfiIgc2tpcD0iXG4iCiBzeW4gcmVnaW9uIHNpc3VfY29udGVudF9lbmRub3RlIGNvbnRhaW5zPXNpc3VfbGluayxzaXN1X3N0cmlrZW91dCxzaXN1X3VuZGVybGluZSxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9tYXJrLHNpc3VfYnJlYWssc2lzdV9zZW1fYmxvY2ssc2lzdV9zZW1fY29udGVudCxzaXN1X3NlbV9tYXJrZXIgbWF0Y2hncm91cD1zaXN1X21hcmtfZW5kbm90ZSBzdGFydD0iXH5cW1sqK10qIiBlbmQ9IlxdXH4iIHNraXA9IlxuIgotc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfZW5kbm90ZSBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9saW5rLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfbWFyayxzaXN1X2JyZWFrIG1hdGNoZ3JvdXA9c2lzdV9tYXJrX2VuZG5vdGUgc3RhcnQ9IlxeXH4iIGVuZD0iXG5cbiIKK3N5biByZWdpb24gc2lzdV9jb250ZW50X2VuZG5vdGUgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfbGluayxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSxzaXN1X21hcmssc2lzdV9icmVhayBtYXRjaGdyb3VwPXNpc3VfbWFya19lbmRub3RlIHN0YXJ0PSJcXlx+IiBlbmQ9IlxuJCIKICJsaW5rcyBhbmQgaW1hZ2VzCiBzeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X3NlbV9ibG9jayxzaXN1X3NlbV9jb250ZW50LHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlcixzaXN1X3NlbV9ibG9jayxzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7XChcfl5cc1wpXD8iIGVuZD0ifVwoaHR0cHNcPzovXC9cfFwuXC4vXClcU1wrIiBvbmVsaW5lCiBzeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X3NlbV9ibG9jayxzaXN1X3NlbV9jb250ZW50LHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlcixzaXN1X3NlbV9ibG9jayxzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7XChcfl5cc1wpXD8iIGVuZD0iXFtbMS01XVtzU10qXF19XFNcK1wuc3NbdG1dIiBvbmVsaW5lCkBAIC03OCw3ICs4OCw2IEBACiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X2lkZW50aWZpZXIsc2lzdV9jb250ZW50X2VuZG5vdGUsc2lzdV9tYXJrX2VuZG5vdGUsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBtYXRjaGdyb3VwPXNpc3VfY29udHJvbCBzdGFydD0iXChcKF5cfCBcKSFfIFx8PDpiPlwpIiBlbmQ9IiQiCiBzeW4gcmVnaW9uIHNpc3Vfbm9ybWFsIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfaWRlbnRpZmllcixzaXN1X2NvbnRlbnRfZW5kbm90ZSxzaXN1X21hcmtfZW5kbm90ZSxzaXN1X2xpbmssc2lzdV9zZW1fYmxvY2ssc2lzdV9zZW1fY29udGVudCxzaXN1X3NlbV9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fbWFya2VyLHNpc3Vfc2VtX2V4X21hcmtlcl9ibG9jayxzaXN1X3NlbV9leF9tYXJrZXIsc2lzdV9saW5rZWQsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBtYXRjaGdyb3VwPXNpc3VfbWFya3BhcmEgc3RhcnQ9Il5fXChbMS05Kl1cfFsxLTldXCpcKSAiIGVuZD0iJCIKIHN5biByZWdpb24gc2lzdV9ub3JtYWwgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9pZGVudGlmaWVyLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbWFya19lbmRub3RlLHNpc3VfbGluayxzaXN1X2xpbmtlZCxzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlIG1hdGNoZ3JvdXA9c2lzdV9tYXJrcGFyYSBzdGFydD0iXlwoI1sgMV1cfF8jIFwpIiBlbmQ9IiQiCi1zeW4gcmVnaW9uIHNpc3VfY29tbWVudCBtYXRjaGdyb3VwPXNpc3VfY29tbWVudCBzdGFydD0iXiVcezEsMlx9ICIgZW5kPSIkIgogImZvbnQgZmFjZSBjdXJseSBicmFja2V0cwogInN5biByZWdpb24gc2lzdV9pZGVudGlmaWVyIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3Vfc2VtIHN0YXJ0PSJcU1wrOnsiIGVuZD0ifTpbXjw+LC4hPzo7IF1cKyIgb25lbGluZQogc3luIHJlZ2lvbiBzaXN1X2luZGV4IG1hdGNoZ3JvdXA9c2lzdV9pbmRleF9ibG9jayBzdGFydD0iXj17IiBlbmQ9In0iCkBAIC05NiwxOCArMTA1LDYgQEAKIHN5biByZWdpb24gc2lzdV9pZGVudGlmaWVyIGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRlbnRfYWx0IHN0YXJ0PSJcKFsgXVx8XlwpL1teeyBcfFxuXFxdImhzPWUtMSBlbmQ9Ii9cWyBcLlxdIiBza2lwPSJbYS16QS1aMC05J10iIG9uZWxpbmUKICJtaXNjCiBzeW4gcmVnaW9uIHNpc3VfaWRlbnRpZmllciBjb250YWlucz1zaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9mb250ZmFjZSBzdGFydD0iXF5bXiB7XHxcblxcXSJycz1zKzEgZW5kPSJcXlsgLC47Oid9KVxcXG5dIiBza2lwPSJbYS16QS1aMC05J10iIG9uZWxpbmUKLSJtZXRhdmVyc2UgaHRtbCAoZmxhZ2dlZCBhcyBlcnJvcnMgZm9yIGZpbGV0eXBlIHNpc3UpCi1zeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3Isc2lzdV9tYXJrIG1hdGNoZ3JvdXA9c2lzdV9odG1sIHN0YXJ0PSI8Yj4iIGVuZD0iPC9iPiIgc2tpcD0iXG4iIG9uZWxpbmUKLXN5biByZWdpb24gc2lzdV9jb250cm9sIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvcixzaXN1X21hcmsgbWF0Y2hncm91cD1zaXN1X2h0bWwgc3RhcnQ9IjxlbT4iIGVuZD0iPC9lbT4iIHNraXA9IlxuIiBvbmVsaW5lCi1zeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfbWFyayBtYXRjaGdyb3VwPXNpc3VfaHRtbCBzdGFydD0iPGk+IiBlbmQ9IjwvaT4iIHNraXA9IlxuIiBvbmVsaW5lCi1zeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfbWFyayBtYXRjaGdyb3VwPXNpc3VfaHRtbCBzdGFydD0iPHU+IiBlbmQ9IjwvdT4iIHNraXA9IlxuIiBvbmVsaW5lCi1zeW4gcmVnaW9uIHNpc3VfaWRlbnRpZmllciBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3Isc2lzdV9tYXJrIG1hdGNoZ3JvdXA9c2lzdV9odG1sIHN0YXJ0PSI8aW5zPiIgZW5kPSI8L2lucz4iIHNraXA9IlxcXFxcfFxcJyIgb25lbGluZQotc3luIHJlZ2lvbiBzaXN1X2lkZW50aWZpZXIgY29udGFpbnM9c2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfaHRtbCBzdGFydD0iPGRlbD4iIGVuZD0iPC9kZWw+IiBvbmVsaW5lCi0ibWV0YXZlcnNlCi1zeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OlRhYmxlLlx7LX0+IiBlbmQ9Ijw6VGFibGVbLV9dZW5kPiIKLXN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OmNvZGU+IiBlbmQ9Ijw6Y29kZVstX11lbmQ+Igotc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3VfbWFya19lbmRub3RlLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbGluayxzaXN1X21hcmssc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OmFsdD4iIGVuZD0iPDphbHRbLV9dZW5kPiIKLXN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X21hcmtfZW5kbm90ZSxzaXN1X2NvbnRlbnRfZW5kbm90ZSxzaXN1X2xpbmssc2lzdV9tYXJrLHNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0iPDpwb2VtPiIgZW5kPSI8OnBvZW1bLV9dZW5kPiIKIAogIkV4cGVuc2l2ZSBNb2RlOgogaWYgIWV4aXN0cygic2lzdV9ub19leHBlbnNpdmUiKQpAQCAtMTIwLDE4ICsxMTcsMTkgQEAKIHN5biByZWdpb24gIHNpc3VfbWFya3BhcmEgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBzdGFydD0iXj1iZWdpbiIgZW5kPSJePWVuZC4qJCIKIAogIkVycm9yczoKLXN5biBtYXRjaCBzaXN1X2Vycm9yX3dzcGFjZSBjb250YWlucz1zaXN1X2Vycm9yX3dzcGFjZSAiXlxzXCsiCitzeW4gbWF0Y2ggc2lzdV9lcnJvcl93c3BhY2UgY29udGFpbnM9c2lzdV9lcnJvcl93c3BhY2UgIl5cc1wrW146XSIKIHN5biBtYXRjaCBzaXN1X2Vycm9yX3dzcGFjZSBjb250YWlucz1zaXN1X2Vycm9yX3dzcGFjZSAiXHNcc1wrIgotc3luIG1hdGNoIHNpc3VfZXJyb3Jfd3NwYWNlIGNvbnRhaW5zPXNpc3VfZXJyb3Jfd3NwYWNlICAiIFxzKiQiCitzeW4gbWF0Y2ggc2lzdV9lcnJvcl93c3BhY2UgY29udGFpbnM9c2lzdV9lcnJvcl93c3BhY2UgIiBccyokIgogc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvcl93c3BhY2UgIlx0XCsiCiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlICJcKFteIChdW19cXF1cfHxbXiAofV1cKWh0dHBzXD86XFNcKyIKIHN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl9cP2h0dHBzXD86XFNcK1t9PjxdIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXChbISovX1wrLF5dXCl7XChbXihcfVwxKV1cKVx7LX1cblxuIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXltcfl17W157XVx7LX1cblxuIgorc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXChbISovX1wrLF5dXCl7XChbXihcfVwxKV1cKVx7LX1cbiQiCitzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJeW1x+XXtbXntdXHstfVxuJCIKIHN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIlxzXCsue3siCiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJeXH5ccyokIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXlswLTldXH5ccyokIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXlswLTldXH5cU1wrXHMqJCIKK3N5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl4wXH4uKiIKK3N5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl5bMS05XVx+XHMqJCIKK3N5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl5bMS05XVx+XFNcK1xzKiQiCiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJbXntdXH5cXlteIFwpXSIKIHN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIlx+XF5cc1wrXC5ccyoiCiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJ7XH5eXFNcKyIKQEAgLTE0MCw1NSArMTM4LDY3IEBACiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICI8ZGlyPiIKICJlcnJvcnMgZm9yIGZpbGV0eXBlIHNpc3UsIHRob3VnaCBub3QgZXJyb3IgaW4gJ21ldGF2ZXJzZSc6CiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfbWF0Y2gsc2lzdV9zdHJpa2VvdXQsc2lzdV9jb250YWluLHNpc3VfY29udGVudF9hbHQsc2lzdV9tYXJrLHNpc3VfYnJlYWssc2lzdV9udW1iZXIgIjxbYS16QS1aXC9dXCs+Igotc3luIG1hdGNoIHNpc3VfZXJyb3IgICIvXD88XChbYml1XVwpPlteKDwvXDE+KV1cey19XG5cbiIKK3N5biBtYXRjaCBzaXN1X2Vycm9yICAiL1w/PFwoW2JpdV1cKT5bXig8L1wxPildXHstfVxuJCIKIAogIkVycm9yIEV4Y2VwdGlvbnM6Ci1zeW4gbWF0Y2ggc2lzdV9jb250cm9sICJcblxuIiAiY29udGFpbnM9QUxMCitzeW4gbWF0Y2ggc2lzdV9jb250cm9sICJcbiQiICJjb250YWlucz1BTEwKIHN5biBtYXRjaCBzaXN1X2NvbnRyb2wgIiAvLyIKLXN5biBtYXRjaCBzaXN1X2Vycm9yICAiJXsiCi1zeW4gbWF0Y2ggc2lzdV9lcnJvciAiPGJyPl9cP2h0dHBzXD86XFNcK1x8X1w/aHR0cHNcPzpcU1wrPGJyPiIKLXN5biBtYXRjaCBzaXN1X2Vycm9yICJbPjxdX1w/aHR0cHNcPzpcU1wrXHxfXD9odHRwc1w/OlxTXCtbPjxdIgorc3luIG1hdGNoIHNpc3VfZXJyb3IgICAiJXsiCitzeW4gbWF0Y2ggc2lzdV9lcnJvciAgICI8YnI+X1w/aHR0cHNcPzpcU1wrXHxfXD9odHRwc1w/OlxTXCs8YnI+Igorc3luIG1hdGNoIHNpc3VfZXJyb3IgICAiWz48XV9cP2h0dHBzXD86XFNcK1x8X1w/aHR0cHNcPzpcU1wrWz48XSIKK3N5biBtYXRjaCBzaXN1X2NvbW1lbnQgIl4lXHsxLDJcfS5cKyIKIAogIkRlZmluaXRpb25zIERlZmF1bHQgSGlnaGxpZ2h0aW5nOgotaGkgZGVmIGxpbmsgc2lzdV9ub3JtYWwgICAgICAgICAgIE5vcm1hbAotaGkgZGVmIGxpbmsgc2lzdV9oZWFkZXIgICAgICAgICAgIFByZVByb2MKLWhpIGRlZiBsaW5rIHNpc3VfaGVhZGVyX2NvbnRlbnQgICBTdGF0ZW1lbnQKLWhpIGRlZiBsaW5rIHNpc3VfaGVhZGluZyAgICAgICAgICBUaXRsZQotaGkgZGVmIGxpbmsgc2lzdV9zdHJ1Y3R1cmUgICAgICAgIE9wZXJhdG9yCi1oaSBkZWYgbGluayBzaXN1X2NvbnRhaW4gICAgICAgICAgSW5jbHVkZQotaGkgZGVmIGxpbmsgc2lzdV9tYXJrX2VuZG5vdGUgICAgIEluY2x1ZGUKLWhpIGRlZiBsaW5rIHNpc3VfcmVxdWlyZSAgICAgICAgICBOb25UZXh0Ci1oaSBkZWYgbGluayBzaXN1X2xpbmsgICAgICAgICAgICAgTm9uVGV4dAotaGkgZGVmIGxpbmsgc2lzdV9saW5rZWQgICAgICAgICAgIFN0cmluZwotaGkgZGVmIGxpbmsgc2lzdV9mb250ZmFjZSAgICAgICAgIEluY2x1ZGUKLWhpIGRlZiBsaW5rIHNpc3Vfc3RyaWtlb3V0ICAgICAgICBEaWZmRGVsZXRlCi1oaSBkZWYgbGluayBzaXN1X2NvbnRlbnRfYWx0ICAgICAgU3BlY2lhbAotaGkgZGVmIGxpbmsgc2lzdV9zZW1fY29udGVudCAgICAgIFNwZWNpYWxLZXkKLWhpIGRlZiBsaW5rIHNpc3Vfc2VtX2Jsb2NrICAgICAgICBTcGVjaWFsCi1oaSBkZWYgbGluayBzaXN1X3NlbV9tYXJrZXIgICAgICAgVmlzdWFsCi0iaGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyICAgICAgIFN0cnVjdHVyZQotaGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyX2Jsb2NrIE1hdGNoUGFyZW4KLWhpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X21hcmtlciAgICBGb2xkQ29sdW1uCi1oaSBkZWYgbGluayBzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2sgRm9sZGVkCi1oaSBkZWYgbGluayBzaXN1X3NlbV9leF9jb250ZW50ICAgQ29tbWVudAotImhpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X2NvbnRlbnQgICBTcGVjaWFsS2V5Ci1oaSBkZWYgbGluayBzaXN1X3NlbV9leF9ibG9jayAgICAgQ29tbWVudAotaGkgZGVmIGxpbmsgc2lzdV9pbmRleCAgICAgICAgICAgIFNwZWNpYWxLZXkKLWhpIGRlZiBsaW5rIHNpc3VfaW5kZXhfYmxvY2sgICAgICBWaXN1YWwKLWhpIGRlZiBsaW5rIHNpc3VfY29udGVudF9lbmRub3RlICBTcGVjaWFsCi1oaSBkZWYgbGluayBzaXN1X2NvbnRyb2wgICAgICAgICAgRGVmaW5lCi1oaSBkZWYgbGluayBzaXN1X29jbiAgICAgICAgICAgICAgSW5jbHVkZQotaGkgZGVmIGxpbmsgc2lzdV9udW1iZXIgICAgICAgICAgIE51bWJlcgotaGkgZGVmIGxpbmsgc2lzdV9pZGVudGlmaWVyICAgICAgIEZ1bmN0aW9uCi1oaSBkZWYgbGluayBzaXN1X3VuZGVybGluZSAgICAgICAgVW5kZXJsaW5lZAotaGkgZGVmIGxpbmsgc2lzdV9tYXJrcGFyYSAgICAgICAgIEluY2x1ZGUKLWhpIGRlZiBsaW5rIHNpc3VfbWFya3RhaWwgICAgICAgICBJbmNsdWRlCi1oaSBkZWYgbGluayBzaXN1X21hcmsgICAgICAgICAgICAgSWRlbnRpZmllcgotaGkgZGVmIGxpbmsgc2lzdV9icmVhayAgICAgICAgICAgIFN0cnVjdHVyZQotaGkgZGVmIGxpbmsgc2lzdV9odG1sICAgICAgICAgICAgIFR5cGUKLWhpIGRlZiBsaW5rIHNpc3VfYWN0aW9uICAgICAgICAgICBJZGVudGlmaWVyCi1oaSBkZWYgbGluayBzaXN1X2NvbW1lbnQgICAgICAgICAgQ29tbWVudAotaGkgZGVmIGxpbmsgc2lzdV9lcnJvcl9zZW1fbWFya2VyIEVycm9yCi1oaSBkZWYgbGluayBzaXN1X2Vycm9yX3dzcGFjZSAgICAgRXJyb3IKLWhpIGRlZiBsaW5rIHNpc3VfZXJyb3IgICAgICAgICAgICBFcnJvcgoraGkgZGVmIGxpbmsgc2lzdV9ub3JtYWwgICAgICAgICAgICAgICAgTm9ybWFsCitoaSBkZWYgbGluayBzaXN1X2hlYWRlciAgICAgICAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayBzaXN1X2hlYWRlcl9jb250ZW50ICAgICAgICBOb3JtYWwKK2hpIGRlZiBsaW5rIHNpc3Vfc3ViX2hlYWRlcl90aXRsZSAgICAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgc2lzdV9zdWJfaGVhZGVyX2NyZWF0b3IgICAgU3RhdGVtZW50CitoaSBkZWYgbGluayBzaXN1X3N1Yl9oZWFkZXJfcmlnaHRzICAgICBTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHNpc3Vfc3ViX2hlYWRlcl9jbGFzc2lmeSAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgc2lzdV9zdWJfaGVhZGVyX2RhdGVzICAgICAgU3RhdGVtZW50CitoaSBkZWYgbGluayBzaXN1X3N1Yl9oZWFkZXJfbWFrZSAgICAgICBTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHNpc3Vfc3ViX2hlYWRlcl9saW5rcyAgICAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgc2lzdV9zdWJfaGVhZGVyX3B1Ymxpc2hlciAgU3RhdGVtZW50CitoaSBkZWYgbGluayBzaXN1X3N1Yl9oZWFkZXJfbm90ZXMgICAgICBTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHNpc3Vfc3ViX2hlYWRlcl9vcmlnaW5hbCAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgc2lzdV9zdWJfaGVhZGVyX3NvdXJjZSAgICAgU3RhdGVtZW50CitoaSBkZWYgbGluayBzaXN1X2hlYWRpbmcgICAgICAgICAgICAgICBUaXRsZQoraGkgZGVmIGxpbmsgc2lzdV9zdHJ1Y3R1cmUgICAgICAgICAgICAgT3BlcmF0b3IKK2hpIGRlZiBsaW5rIHNpc3VfY29udGFpbiAgICAgICAgICAgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNpc3VfbWFya19lbmRub3RlICAgICAgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNpc3VfcmVxdWlyZSAgICAgICAgICAgICAgIE5vblRleHQKK2hpIGRlZiBsaW5rIHNpc3VfbGluayAgICAgICAgICAgICAgICAgIE5vblRleHQKK2hpIGRlZiBsaW5rIHNpc3VfbGlua2VkICAgICAgICAgICAgICAgIFN0cmluZworaGkgZGVmIGxpbmsgc2lzdV9mb250ZmFjZSAgICAgICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9zdHJpa2VvdXQgICAgICAgICAgICAgRGlmZkRlbGV0ZQoraGkgZGVmIGxpbmsgc2lzdV9jb250ZW50X2FsdCAgICAgICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgc2lzdV9zZW1fY29udGVudCAgICAgICAgICAgU3BlY2lhbEtleQoraGkgZGVmIGxpbmsgc2lzdV9zZW1fYmxvY2sgICAgICAgICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyICAgICAgICAgICAgVmlzdWFsCisiaGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyICAgICAgICAgICAgU3RydWN0dXJlCitoaSBkZWYgbGluayBzaXN1X3NlbV9tYXJrZXJfYmxvY2sgICAgICBNYXRjaFBhcmVuCitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9tYXJrZXIgICAgICAgICBGb2xkQ29sdW1uCitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2sgICBGb2xkZWQKK2hpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X2NvbnRlbnQgICAgICAgIENvbW1lbnQKKyJoaSBkZWYgbGluayBzaXN1X3NlbV9leF9jb250ZW50ICAgICAgICBTcGVjaWFsS2V5CitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9ibG9jayAgICAgICAgICBDb21tZW50CitoaSBkZWYgbGluayBzaXN1X2luZGV4ICAgICAgICAgICAgICAgICBTcGVjaWFsS2V5CitoaSBkZWYgbGluayBzaXN1X2luZGV4X2Jsb2NrICAgICAgICAgICBWaXN1YWwKK2hpIGRlZiBsaW5rIHNpc3VfY29udGVudF9lbmRub3RlICAgICAgIFNwZWNpYWwKK2hpIGRlZiBsaW5rIHNpc3VfY29udHJvbCAgICAgICAgICAgICAgIERlZmluZQoraGkgZGVmIGxpbmsgc2lzdV9vY24gICAgICAgICAgICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9udW1iZXIgICAgICAgICAgICAgICAgTnVtYmVyCitoaSBkZWYgbGluayBzaXN1X2lkZW50aWZpZXIgICAgICAgICAgICBGdW5jdGlvbgoraGkgZGVmIGxpbmsgc2lzdV91bmRlcmxpbmUgICAgICAgICAgICAgVW5kZXJsaW5lZAoraGkgZGVmIGxpbmsgc2lzdV9tYXJrcGFyYSAgICAgICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9tYXJrdGFpbCAgICAgICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9tYXJrICAgICAgICAgICAgICAgICAgSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgc2lzdV9icmVhayAgICAgICAgICAgICAgICAgU3RydWN0dXJlCitoaSBkZWYgbGluayBzaXN1X2h0bWwgICAgICAgICAgICAgICAgICBUeXBlCitoaSBkZWYgbGluayBzaXN1X2FjdGlvbiAgICAgICAgICAgICAgICBJZGVudGlmaWVyCitoaSBkZWYgbGluayBzaXN1X2NvbW1lbnQgICAgICAgICAgICAgICBDb21tZW50CitoaSBkZWYgbGluayBzaXN1X2Vycm9yX3NlbV9tYXJrZXIgICAgICBFcnJvcgoraGkgZGVmIGxpbmsgc2lzdV9lcnJvcl93c3BhY2UgICAgICAgICAgRXJyb3IKK2hpIGRlZiBsaW5rIHNpc3VfZXJyb3IgICAgICAgICAgICAgICAgIEVycm9yCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJzaXN1IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc3ZnLnZpbSBiL3J1bnRpbWUvc3ludGF4L3N2Zy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE5YjVlYwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L3N2Zy52aW0KQEAgLTAsMCArMSwxNSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CVNWRyAoU2NhbGFibGUgVmVjdG9yIEdyYXBoaWNzKQorIiBNYWludGFpbmVyOglWaW5jZW50IEJlcnRob3V4IDx0d2luc2lkZUBnbWFpbC5jb20+CisiIEZpbGUgVHlwZXM6CS5zdmcgKHVzZWQgaW4gV2ViIGFuZCB2ZWN0b3IgcHJvZ3JhbXMpCisiCisiIERpcmVjdGx5IGNhbGwgdGhlIHhtbCBzeW50YXgsIGJlY2F1c2UgU1ZHIGlzIGFuIFhNTAorIiBkaWFsZWN0LiBCdXQgYXMgc29tZSBwbHVnaW5zIGJhc2UgdGhlaXIgZWZmZWN0IG9uIGZpbGV0eXBlLAorIiBwcm92aWRpbmcgYSBkaXN0aW5jdCBmaWxldHlwZSBmcm9tIHhtbCBpcyBiZXR0ZXIuCisKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kaWYKKworcnVudGltZSEgc3ludGF4L3htbC52aW0KK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gInN2ZyIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0gYi9ydW50aW1lL3N5bnRheC90ZXgudmltCmluZGV4IGZmMTcxZDMuLjYyMzVkZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdGV4LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglUZVgKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyY2hpcE9AU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KLSIgTGFzdCBDaGFuZ2U6CURlYyAyOCwgMjAwOQotIiBWZXJzaW9uOgk0NgorIiBMYXN0IENoYW5nZToJQXByIDE0LCAyMDEwCisiIFZlcnNpb246CTQ3CiAiIFVSTDoJCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIgogIiBOb3Rlczoge3t7MQpAQCAtNzcsNyArNzcsNyBAQAogIGVjaG9tc2cgIklnbm9yaW5nIGc6dGV4X2ZvbGRfZW5hYmxlZD0iLmc6dGV4X2ZvbGRfZW5hYmxlZC4iOyBuZWVkIHRvIHJlLWNvbXBpbGUgdmltIGZvciArZm9sZCBzdXBwb3J0IgogZW5kaWYKIGlmIGc6dGV4X2ZvbGRfZW5hYmxlZCAmJiAmZmRtID09ICJtYW51YWwiCi0gc2V0IGZkbT1zeW50YXgKKyBzZXRsIGZkbT1zeW50YXgKIGVuZGlmCiAKICIgKExhKVRlWCBrZXl3b3Jkczogb25seSB1c2UgdGhlIGxldHRlcnMgYS16QS1aIHt7ezEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3hzLnZpbSBiL3J1bnRpbWUvc3ludGF4L3hzLnZpbQppbmRleCA5ZjEwNTRhLi44ODhiMTQwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC94cy52aW0KKysrIGIvcnVudGltZS9zeW50YXgveHMudmltCkBAIC0xLDUzICsxLDM4IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJWFMgKFBlcmwgZXh0ZW5zaW9uIGludGVyZmFjZSBsYW5ndWFnZSkKLSIgTWFpbnRhaW5lcjoJTWljaGFlbCBXLiBEb2RnZSA8c2FyZ2VAcG9ib3guY29tPgotIiBMYXN0IENoYW5nZToJMjAwMSBNYXkgMDkKKyIgTGFuZ3VhZ2U6ICAgICBYUyAoUGVybCBleHRlbnNpb24gaW50ZXJmYWNlIGxhbmd1YWdlKQorIiBNYWludGFpbmVyOiAgIEFuZHkgTGVzdGVyIDxhbmR5QHBldGRhbmNlLmNvbT4KKyIgVVJMOiAgICAgICAgICBodHRwOi8vZ2l0aHViLmNvbS9wZXRkYW5jZS92aW0tcGVybAorIiBMYXN0IENoYW5nZTogIDIwMDktMDgtMTQKIAotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKLWlmIHZlcnNpb24gPCA2MDAKLSAgc3ludGF4IGNsZWFyCi1lbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKLSAgZmluaXNoCisiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAoraWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKIGVuZGlmCiAKICIgUmVhZCB0aGUgQyBzeW50YXggdG8gc3RhcnQgd2l0aAotaWYgdmVyc2lvbiA8IDYwMAotICBzb3VyY2UgPHNmaWxlPjpwOmgvYy52aW0KLWVsc2UKLSAgcnVudGltZSEgc3ludGF4L2MudmltCi1lbmRpZgorcnVudGltZSEgc3ludGF4L2MudmltCiAKICIgWFMgZXh0ZW50aW9ucwogIiBUT0RPOiBGaWd1cmUgb3V0IGhvdyB0byBsb29rIGZvciB0cmFpbGluZyAnPScuCi1zeW4ga2V5d29yZCB4c0tleXdvcmQJTU9EVUxFIFBBQ0tBR0UgUFJFRklYCi1zeW4ga2V5d29yZCB4c0tleXdvcmQJT1VUUFVUOiBDT0RFOiBJTklUOiBQUkVJTklUOiBJTlBVVDoKLXN5biBrZXl3b3JkIHhzS2V5d29yZAlQUENPREU6IFJFUVVJUkU6IENMRUFOVVA6IEJPT1Q6Ci1zeW4ga2V5d29yZCB4c0tleXdvcmQJVkVSU0lPTkNIRUNLOiBQUk9UT1RZUEVTOiBQUk9UT1RZUEU6Ci1zeW4ga2V5d29yZCB4c0tleXdvcmQJQUxJQVM6IElOQ0xVREU6IENBU0U6CitzeW4ga2V5d29yZCB4c0tleXdvcmQgICBNT0RVTEUgUEFDS0FHRSBQUkVGSVgKK3N5biBrZXl3b3JkIHhzS2V5d29yZCAgIE9VVFBVVDogQ09ERTogSU5JVDogUFJFSU5JVDogSU5QVVQ6CitzeW4ga2V5d29yZCB4c0tleXdvcmQgICBQUENPREU6IFJFUVVJUkU6IENMRUFOVVA6IEJPT1Q6CitzeW4ga2V5d29yZCB4c0tleXdvcmQgICBWRVJTSU9OQ0hFQ0s6IFBST1RPVFlQRVM6IFBST1RPVFlQRToKK3N5biBrZXl3b3JkIHhzS2V5d29yZCAgIEFMSUFTOiBJTkNMVURFOiBDQVNFOgogIiBUT0RPOiBGaWd1cmUgb3V0IGhvdyB0byBsb29rIGZvciB0cmFpbGluZyAnKCcuCi1zeW4ga2V5d29yZCB4c01hY3JvCVNWIEVYVEVORCBQVVNIcwotc3luIGtleXdvcmQgeHNWYXJpYWJsZQlSRVRWQUwgTk9fSU5JVAotInN5biBtYXRjaCB4c0Nhc3QJIlw8XChjb25zdFx8c3RhdGljXHxkeW5hbWljXHxyZWludGVycHJldFwpX2Nhc3Rccyo8Im1lPWUtMQotInN5biBtYXRjaCB4c0Nhc3QJIlw8XChjb25zdFx8c3RhdGljXHxkeW5hbWljXHxyZWludGVycHJldFwpX2Nhc3RccyokIgorc3luIGtleXdvcmQgeHNNYWNybyAgICAgU1YgRVhURU5EIFBVU0hzCitzeW4ga2V5d29yZCB4c1ZhcmlhYmxlICBSRVRWQUwgTk9fSU5JVAorInN5biBtYXRjaCB4c0Nhc3QgICAgICAgIlw8XChjb25zdFx8c3RhdGljXHxkeW5hbWljXHxyZWludGVycHJldFwpX2Nhc3Rccyo8Im1lPWUtMQorInN5biBtYXRjaCB4c0Nhc3QgICAgICAgIlw8XChjb25zdFx8c3RhdGljXHxkeW5hbWljXHxyZWludGVycHJldFwpX2Nhc3RccyokIgogCi0iIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCi0iIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKLSIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKLWlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF94c19zeW50YXhfaW5pdHMiKQotICBpZiB2ZXJzaW9uIDwgNTA4Ci0gICAgbGV0IGRpZF94c19zeW50YXhfaW5pdHMgPSAxCi0gICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KLSAgZWxzZQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgotICBlbmRpZgorIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLCBidXQgb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKK2NvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogCi0gIEhpTGluayB4c0tleXdvcmQJS2V5d29yZAotICBIaUxpbmsgeHNNYWNybwlNYWNybwotICBIaUxpbmsgeHNWYXJpYWJsZQlJZGVudGlmaWVyCitIaUxpbmsgeHNLZXl3b3JkICAgIEtleXdvcmQKK0hpTGluayB4c01hY3JvICAgICAgTWFjcm8KK0hpTGluayB4c1ZhcmlhYmxlICAgSWRlbnRpZmllcgogCi0gIGRlbGNvbW1hbmQgSGlMaW5rCi1lbmRpZgorZGVsY29tbWFuZCBIaUxpbmsKIAogbGV0IGI6Y3VycmVudF9zeW50YXggPSAieHMiCiAK