Advertisement
galih039

Untitled

Feb 9th, 2019
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 127.05 KB | None | 0 0
  1. PD9waHAKc2Vzc2lvbl9zdGFydCgpOwpAZXJyb3JfcmVwb3J0aW5nKDApOwpAc2V0X3RpbWVfbGltaXQoMCk7CmlmKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzUuMy4wJywgJzwnKSkgewoJQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsKfQpAY2xlYXJzdGF0Y2FjaGUoKTsKQGluaV9zZXQoJ2Vycm9yX2xvZycsTlVMTCk7CkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsKQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7CkBpbmlfc2V0KCdvdXRwdXRfYnVmZmVyaW5nJywwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CiRwYXNzd29yZCA9ICJkNjhkNmRiYmQyYzY0YjU4YjYzMTk3OWE1YzVmYjhmMCI7ICMgbWQ1OiBJbmRvWHBsb2l0CiRTRVJWRVJJUCAgPSAoISRfU0VSVkVSWydTRVJWRVJfQUREUiddKSA/IGdldGhvc3RieW5hbWUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSA6ICRfU0VSVkVSWydTRVJWRVJfQUREUiddOwokRklMRVBBVEggID0gc3RyX3JlcGxhY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSwgIiIsIHBhdGgoKSk7CmlmKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7CiAgICAkdXNlckFnZW50cyA9IGFycmF5KCJHb29nbGVib3QiLCAiU2x1cnAiLCAiTVNOQm90IiwgIlB5Y1VSTCIsICJmYWNlYm9va2V4dGVybmFsaGl0IiwgImlhX2FyY2hpdmVyIiwgImNyYXdsZXIiLCAiWWFuZGV4IiwgIlJhbWJsZXIiLCAiWWFob28hIFNsdXJwIiwgIllhaG9vU2Vla2VyIiwgImJpbmdib3QiLCAiY3VybCIpOwogICAgaWYocHJlZ19tYXRjaCgnLycgLiBpbXBsb2RlKCd8JywgJHVzZXJBZ2VudHMpIC4gJy9pJywgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCcpOwogICAgICAgIGV4aXQ7CiAgICB9Cn0KZnVuY3Rpb24gbG9naW5fc2hlbGwoKSB7Cj8+CjwhRE9DVFlQRSBIVE1MPgo8aHRtbD4KPGhlYWQ+Cjx0aXRsZT5JbmRvWHBsb2l0PC90aXRsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KaHRtbCB7CgltYXJnaW46IDIwcHggYXV0bzsKCWJhY2tncm91bmQ6ICMwMDAwMDA7Cgljb2xvcjogZ3JlZW47Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KaGVhZGVyIHsKCWNvbG9yOiBncmVlbjsKCW1hcmdpbjogMTBweCBhdXRvOwp9CmlucHV0W3R5cGU9cGFzc3dvcmRdIHsKCXdpZHRoOiAyNTBweDsKCWhlaWdodDogMjVweDsKCWNvbG9yOiByZWQ7CgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCWJvcmRlcjogMXB4IGRvdHRlZCBncmVlbjsKCW1hcmdpbi1sZWZ0OiAyMHB4OwoJdGV4dC1hbGlnbjogY2VudGVyOwp9Cjwvc3R5bGU+CjwvaGVhZD4KPGNlbnRlcj4KPGhlYWRlcj4KCTxwcmU+CiBfX19fX19fX19fX19fX19fX19fX19fX19fX18KPCByb290QGluZG94cGxvaXQ6fiMgdzAwdD8/PyA+CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgXCAgICAgICAgICwgICAgICAgICwKICAgIFwgICAgICAgLyggICAgICAgIClgCiAgICAgXCAgICAgIFwgXF9fXyAgIC8gfAogICAgICAgICAgICAvLSBfICBgLS8gICcKICAgICAgICAgICAoL1wvIFwgXCAgIC9cCiAgICAgICAgICAgLyAvICAgfCBgICAgIFwKICAgICAgICAgICBPIE8gICApIC8gICAgfAogICAgICAgICAgIGAtXi0tJ2A8ICAgICAnCiAgICAgICAgICAoXy4pICBfICApICAgLwogICAgICAgICAgIGAuX19fL2AgICAgLwogICAgICAgICAgICAgYC0tLS0tJyAvCjwtLS0tLiAgICAgX18gLyBfXyAgIFwKPC0tLS18PT09PU8pKSk9PSkgXCkgLz09PT0+CjwtLS0tJyAgICBgLS0nIGAuX18sJyBcCiAgICAgICAgICAgICB8ICAgICAgICB8CiAgICAgICAgICAgICAgXCAgICAgICAvCiAgICAgICAgX19fX19fKCAoXyAgLyBcX19fX19fCiAgICAgICwnICAsLS0tLS0nICAgfCAgICAgICAgXAogICAgICBgLS17X19fX19fX19fXykgICAgICAgIFwvCgk8L3ByZT4KPC9oZWFkZXI+Cjxmb3JtIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiPgo8L2Zvcm0+Cjw/cGhwCmV4aXQ7Cn0KaWYoIWlzc2V0KCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pKQogICAgaWYoZW1wdHkoJHBhc3N3b3JkKSB8fCAoaXNzZXQoJF9QT1NUWydwYXNzd29yZCddKSAmJiAobWQ1KCRfUE9TVFsncGFzc3dvcmQnXSkgPT0gJHBhc3N3b3JkKSkpCiAgICAgICAgJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSA9IHRydWU7CiAgICBlbHNlCiAgICAgICAgbG9naW5fc2hlbGwoKTsKaWYoaXNzZXQoJF9HRVRbJ2ZpbGUnXSkgJiYgKCRfR0VUWydmaWxlJ10gIT0gJycpICYmICgkX0dFVFsnYWN0J10gPT0gJ2Rvd25sb2FkJykpIHsKICAgIEBvYl9jbGVhbigpOwogICAgJGZpbGUgPSAkX0dFVFsnZmlsZSddOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInLmJhc2VuYW1lKCRmaWxlKS4nIicpOwogICAgaGVhZGVyKCdFeHBpcmVzOiAwJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZScpOwogICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGZpbGVzaXplKCRmaWxlKSk7CiAgICByZWFkZmlsZSgkZmlsZSk7CiAgICBleGl0Owp9CmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsKCWZ1bmN0aW9uIGlkeF9zcygkYXJyYXkpIHsKCQlyZXR1cm4gaXNfYXJyYXkoJGFycmF5KSA/IGFycmF5X21hcCgnaWR4X3NzJywgJGFycmF5KSA6IHN0cmlwc2xhc2hlcygkYXJyYXkpOwoJfQoJJF9QT1NUID0gaWR4X3NzKCRfUE9TVCk7Cn0KPz4KPCFET0NUWVBFIEhUTUw+CjxodG1sPgo8IS0tCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gVGhhbmtzIGJ1YXQgT3Jhbmctb3JhbmcgeWcgbWVtYmFudHUgZGFsYW0gcHJvc2VzIHBlbWJ1YXRhbiBzaGVsbCBpbmkuCi8vIFNoZWxsIGluaSB0aWRhayBzZXBlbnVobnlhIDEwMCUgQ29kaW5nIG1hbnVhbCwgYWRhIGJlYmVyYXBhIGZ1bmN0aW9uIGRhbiB0b29scyBraXRhIGFtYmlsIGRhcmkgc2hlbGwgeWFuZyBzdWRhaCBhZGEuCi8vIFRhcGkgU2VsZWJpaG55YSwgaXR1IGhhc2lsIGtyZWFzaSBJbmRvWHBsb2l0IHNlbmRpcmkuCi8vIFRhbnBhIGthbGlhbiBraXRhIHRpZGFrIGFrYW4gQkVTQVIgc2VwZXJ0aSBzZWthcmFuZy4KLy8gR3JlZXR6OiBBbGwgTWVtYmVyIEluZG9YcGxvaXQuICYgQWxsIE15IEZyaWVuZHMuCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gU3BlY2lhbCBUaGFua3M6IERlcG9rIEN5YmVyIFNlY3VyaXR5IHwgU2FuanVuZ2FuIEppd2EgfCAweDE5OTkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotLT4KPGhlYWQ+Cjx0aXRsZT5JbmRvWHBsb2l0PC90aXRsZT4KPG1ldGEgbmFtZT0nYXV0aG9yJyBjb250ZW50PSdJbmRvWHBsb2l0Jz4KPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8c3R5bGUgdHlwZT0ndGV4dC9jc3MnPgpAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9VWJ1bnR1KTsKaHRtbCB7CiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwoJY29sb3I6ICNmZmZmZmY7Cglmb250LXNpemU6IDE0cHg7Cgl3aWR0aDogMTAwJTsKfQpsaSB7CglkaXNwbGF5OiBpbmxpbmU7CgltYXJnaW46IDVweDsKCXBhZGRpbmc6IDVweDsKfQphIHsKCWNvbG9yOiAjZmZmZmZmOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CmE6aG92ZXIgewoJY29sb3I6IGdvbGQ7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQpiIHsKCWNvbG9yOiBnb2xkOwp9CnByZSB7Cglmb250LXNpemU6IDEzcHg7Cn0KdGFibGUsIHRoLCB0ZCB7Cglib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7CgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCWZvbnQtZmFtaWx5OiAnVWJ1bnR1JzsKCWZvbnQtc2l6ZTogMTNweDsKfQoudGFibGVfaG9tZSwgLnRoX2hvbWUsIC50ZF9ob21lIHsKCWJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7Cn0KLnRoX2hvbWUgewoJY29sb3I6IGxpbWU7Cn0KLnRkX2hvbWUsIC50ZF9ob21lID4gYSB7Cgljb2xvcjogI2ZmZmZmZjsKfQoudGRfaG9tZSA+IGE6aG92ZXIgewoJY29sb3I6IGdvbGQ7Cn0KdGggewoJcGFkZGluZzogMTBweDsKfQp0cjpob3ZlciB7CgliYWNrZ3JvdW5kOiAjMDA2NDAwOwoJY29sb3I6ICNmZmZmZmY7Cn0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIC5pbnB1dCB7CgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgCgljb2xvcjogI2ZmZmZmZjsKCWJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7CglwYWRkaW5nOiAzcHg7Cglmb250LWZhbWlseTogJ1VidW50dSc7Cglmb250LXNpemU6IDEzcHg7Cn0KaW5wdXRbdHlwZT1zdWJtaXRdIHsKCXBhZGRpbmc6IDJweDt9CmlucHV0W3R5cGU9c3VibWl0XTpob3ZlciB7CgljdXJzb3I6IHBvaW50ZXI7Cn0KaW5wdXQ6Zm9jdXMsIHRleHRhcmVhOmZvY3VzIHsKICBvdXRsaW5lOiAwOwogIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsKfQp0ZXh0YXJlYSB7Cglib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOwoJd2lkdGg6IDEwMCU7CgloZWlnaHQ6IDQwMHB4OwoJcGFkZGluZy1sZWZ0OiA1cHg7CgltYXJnaW46IDEwcHggYXV0bzsKCXJlc2l6ZTogbm9uZTsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwoJY29sb3I6ICNmZmZmZmY7Cglmb250LWZhbWlseTogJ1VidW50dSc7Cglmb250LXNpemU6IDEzcHg7Cn0KaWZyYW1lIHsKCXdpZHRoOiAxMDAlOwoJbWluLWhlaWdodDogNTAwcHg7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPD9waHAKZnVuY3Rpb24gcGF0aCgpIHsKCWlmKGlzc2V0KCRfR0VUWydkaXInXSkpIHsKCQkkZGlyID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkX0dFVFsnZGlyJ10pOwoJCUBjaGRpcigkZGlyKTsKCX0gZWxzZSB7CgkJJGRpciA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgZ2V0Y3dkKCkpOwoJfQoJcmV0dXJuICRkaXI7Cn0KZnVuY3Rpb24gY29sb3IoJGJvbGQgPSAxLCAkY29sb3JpZCA9IG51bGwsICRzdHJpbmcgPSBudWxsKSB7CgkJJGNvbG9yID0gYXJyYXkoCgkJCSI8L2ZvbnQ+IiwgIAkJCSMgMCBvZmYKCQkJIjxmb250IGNvbG9yPSdyZWQnPiIsCSMgMSByZWQgCgkJCSI8Zm9udCBjb2xvcj0nbGltZSc+IiwJIyAyIGxpbWUKCQkJIjxmb250IGNvbG9yPSd3aGl0ZSc+IiwJIyAzIHdoaXRlCgkJCSI8Zm9udCBjb2xvcj0nZ29sZCc+IiwJIyA0IGdvbGQKCQkpOwoJcmV0dXJuICgkc3RyaW5nICE9PSBudWxsKSA/ICRjb2xvclskY29sb3JpZF0uJHN0cmluZy4kY29sb3JbMF06ICRjb2xvclskY29sb3JpZF07Cn0KZnVuY3Rpb24gT1MoKSB7CglyZXR1cm4gKHN1YnN0cihzdHJ0b3VwcGVyKFBIUF9PUyksIDAsIDMpID09PSAiV0lOIikgPyAiV2luZG93cyIgOiAiTGludXgiOwp9CmZ1bmN0aW9uIGV4ZSgkY21kKSB7CglpZihmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7IAkJCgkJQG9iX3N0YXJ0KCk7IAkJCgkJQHN5c3RlbSgkY21kKTsgCQkKCQkkYnVmZiA9IEBvYl9nZXRfY29udGVudHMoKTsgCQkKCQlAb2JfZW5kX2NsZWFuKCk7IAkJCgkJcmV0dXJuICRidWZmOyAJCgl9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgeyAJCQoJCUBleGVjKCRjbWQsJHJlc3VsdHMpOyAJCQoJCSRidWZmID0gIiI7IAkJCgkJZm9yZWFjaCgkcmVzdWx0cyBhcyAkcmVzdWx0KSB7IAkJCQoJCQkkYnVmZiAuPSAkcmVzdWx0OyAJCQoJCX0gcmV0dXJuICRidWZmOyAJCgl9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsgCQkKCQlAb2Jfc3RhcnQoKTsgCQkKCQlAcGFzc3RocnUoJGNtZCk7IAkJCgkJJGJ1ZmYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IAkJCgkJQG9iX2VuZF9jbGVhbigpOyAJCQoJCXJldHVybiAkYnVmZjsgCQoJfSBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpIHsgCQkKCQkkYnVmZiA9IEBzaGVsbF9leGVjKCRjbWQpOyAJCQoJCXJldHVybiAkYnVmZjsgCQoJfSAKfQpmdW5jdGlvbiBzYXZlKCRmaWxlbmFtZSwgJG1vZGUsICRmaWxlKSB7CgkkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1lLCAkbW9kZSk7Cglmd3JpdGUoJGhhbmRsZSwgJGZpbGUpOwoJZmNsb3NlKCRoYW5kbGUpOwoJcmV0dXJuOwp9CmZ1bmN0aW9uIGdldGZpbGUoJG5hbWUpIHsKCWlmKCFpc193cml0YWJsZShwYXRoKCkpKSBkaWUoY29sb3IoMSwgMSwgIkRpcmVjdG9yeSAnIi5wYXRoKCkuIicgaXMgbm90IHdyaXRlYWJsZS4gQ2FuJ3Qgc3Bhd24gJG5hbWUuIikpOwoJaWYoJG5hbWUgPT09ICJhZG1pbmVyIikgJGdldCA9IGFycmF5KCJodHRwczovL3d3dy5hZG1pbmVyLm9yZy9zdGF0aWMvZG93bmxvYWQvNC4zLjEvYWRtaW5lci00LjMuMS5waHAiLCAiYWRtaW5lci5waHAiKTsKCWVsc2VpZigkbmFtZSA9PT0gIndlYmNvbnNvbGUiKSAkZ2V0ID0gYXJyYXkoImh0dHBzOi8vcGFzdGViaW4uY29tL3Jhdy8yaTk2ZkRDTiIsICJ3ZWJjb25zb2xlLnBocCIpOwoJZWxzZWlmKCRuYW1lID09PSAiY2dpdGVsbmV0MSIpICRnZXQgPSBhcnJheSgiaHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L0xqNDZLeEZUIiwgImlkeF9jZ2kvY2dpdGVsbmV0MS5pZHgiKTsKCWVsc2VpZigkbmFtZSA9PT0gImNnaXRlbG5ldDIiKSAkZ2V0ID0gYXJyYXkoImh0dHBzOi8vcGFzdGViaW4uY29tL3Jhdy9hS0wyUVdmUyIsICJpZHhfY2dpL2NnaXRlbG5ldDIuaWR4Iik7CgllbHNlaWYoJG5hbWUgPT09ICJMUkUiKSAkZ2V0ID0gYXJyYXkoImh0dHBzOi8vcGFzdGViaW4uY29tL3Jhdy9QVlBmQTIxaSIsICJtYWttYW4ucGhwIik7CgkkZnAgPSBmb3BlbigkZ2V0WzFdLCAidyIpOwoJJGNoID0gY3VybF9pbml0KCk7CgkgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJGdldFswXSk7CgkgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0JJTkFSWVRSQU5TRkVSLCB0cnVlKTsKCSAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwoJIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgZmFsc2UpOwoJIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgZmFsc2UpOwoJICAgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZJTEUsICRmcCk7CglyZXR1cm4gY3VybF9leGVjKCRjaCk7CgkgICAJICBjdXJsX2Nsb3NlKCRjaCk7CglmY2xvc2UoJGZwKTsKCW9iX2ZsdXNoKCk7CglmbHVzaCgpOwp9CmZ1bmN0aW9uIHVzZXJncm91cCgpIHsKCWlmKCFmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGVnaWQnKSkgewoJCSR1c2VyWyduYW1lJ10gCT0gQGdldF9jdXJyZW50X3VzZXIoKTsKCQkkdXNlclsndWlkJ10gIAk9IEBnZXRteXVpZCgpOwoJCSR1c2VyWydnaWQnXSAgCT0gQGdldG15Z2lkKCk7CgkJJHVzZXJbJ2dyb3VwJ10JPSAiPyI7Cgl9IGVsc2UgewoJCSR1c2VyWyd1aWQnXSAJPSBAcG9zaXhfZ2V0cHd1aWQocG9zaXhfZ2V0ZXVpZCgpKTsKCQkkdXNlclsnZ2lkJ10gCT0gQHBvc2l4X2dldGdyZ2lkKHBvc2l4X2dldGVnaWQoKSk7CgkJJHVzZXJbJ25hbWUnXSAJPSAkdXNlclsndWlkJ11bJ25hbWUnXTsKCQkkdXNlclsndWlkJ10gCT0gJHVzZXJbJ3VpZCddWyd1aWQnXTsKCQkkdXNlclsnZ3JvdXAnXSAJPSAkdXNlclsnZ2lkJ11bJ25hbWUnXTsKCQkkdXNlclsnZ2lkJ10gCT0gJHVzZXJbJ2dpZCddWydnaWQnXTsKCX0KCXJldHVybiAob2JqZWN0KSAkdXNlcjsKfQpmdW5jdGlvbiBnZXR1c2VyKCkgewoJJGZvcGVuID0gZm9wZW4oIi9ldGMvcGFzc3dkIiwgInIiKSBvciBkaWUoY29sb3IoMSwgMSwgIkNhbid0IHJlYWQgL2V0Yy9wYXNzd2QiKSk7Cgl3aGlsZSgkcmVhZCA9IGZnZXRzKCRmb3BlbikpIHsKCQlwcmVnX21hdGNoX2FsbCgnLyguKj8pOng6LycsICRyZWFkLCAkZ2V0dXNlcik7CgkJJHVzZXJbXSA9ICRnZXR1c2VyWzFdWzBdOwoJfQoJcmV0dXJuICR1c2VyOwp9CmZ1bmN0aW9uIGdldGRvbWFpbm5hbWUoKSB7CgkkZm9wZW4gPSBmb3BlbigiL2V0Yy9uYW1lZC5jb25mIiwgInIiKTsKCXdoaWxlKCRyZWFkID0gZmdldHMoJGZvcGVuKSkgewoJCXByZWdfbWF0Y2hfYWxsKCIjL3Zhci9uYW1lZC8oLio/KS5kYiMiLCAkcmVhZCwgJGdldGRvbWFpbik7CgkJJGRvbWFpbltdID0gJGdldGRvbWFpblsxXVswXTsKCX0KCXJldHVybiAkZG9tYWluOwp9CmZ1bmN0aW9uIGhkZHNpemUoJHNpemUpIHsKCWlmKCRzaXplID49IDEwNzM3NDE4MjQpCgkJcmV0dXJuIHNwcmludGYoJyUxLjJmJywkc2l6ZSAvIDEwNzM3NDE4MjQgKS4nIEdCJzsKCWVsc2VpZigkc2l6ZSA+PSAxMDQ4NTc2KQoJCXJldHVybiBzcHJpbnRmKCclMS4yZicsJHNpemUgLyAxMDQ4NTc2ICkgLicgTUInOwoJZWxzZWlmKCRzaXplID49IDEwMjQpCgkJcmV0dXJuIHNwcmludGYoJyUxLjJmJywkc2l6ZSAvIDEwMjQgKSAuJyBLQic7CgllbHNlCgkJcmV0dXJuICRzaXplIC4nIEInOwp9CmZ1bmN0aW9uIGhkZCgpIHsKCSRoZGRbJ3NpemUnXSA9IGhkZHNpemUoZGlza190b3RhbF9zcGFjZSgiLyIpKTsKCSRoZGRbJ2ZyZWUnXSA9IGhkZHNpemUoZGlza19mcmVlX3NwYWNlKCIvIikpOwoJJGhkZFsndXNlZCddID0gaGRkc2l6ZShkaXNrX3RvdGFsX3NwYWNlKCIvIikgLSBkaXNrX2ZyZWVfc3BhY2UoIi8iKSk7CglyZXR1cm4gKG9iamVjdCkgJGhkZDsKfQpmdW5jdGlvbiB3cml0ZWFibGUoJHBhdGgsICRwZXJtcykgewoJcmV0dXJuICghaXNfd3JpdGFibGUoJHBhdGgpKSA/IGNvbG9yKDEsIDEsICRwZXJtcykgOiBjb2xvcigxLCAyLCAkcGVybXMpOwp9CmZ1bmN0aW9uIHBlcm1zKCRwYXRoKSB7CgkkcGVybXMgPSBmaWxlcGVybXMoJHBhdGgpOwoJaWYgKCgkcGVybXMgJiAweEMwMDApID09IDB4QzAwMCkgewoJCS8vIFNvY2tldAoJCSRpbmZvID0gJ3MnOwoJfSAKCWVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7CgkJLy8gU3ltYm9saWMgTGluawoJCSRpbmZvID0gJ2wnOwoJfSAKCWVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7CgkJLy8gUmVndWxhcgoJCSRpbmZvID0gJy0nOwoJfSAKCWVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7CgkJLy8gQmxvY2sgc3BlY2lhbAoJCSRpbmZvID0gJ2InOwoJfSAKCWVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7CgkJLy8gRGlyZWN0b3J5CgkJJGluZm8gPSAnZCc7Cgl9IAoJZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHsKCQkvLyBDaGFyYWN0ZXIgc3BlY2lhbAoJCSRpbmZvID0gJ2MnOwoJfSAKCWVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7CgkJLy8gRklGTyBwaXBlCgkJJGluZm8gPSAncCc7Cgl9IAoJZWxzZSB7CgkJLy8gVW5rbm93bgoJCSRpbmZvID0gJ3UnOwoJfQoJCS8vIE93bmVyCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOwoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsKCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CgkoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6CgkoKCRwZXJtcyAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsKCS8vIEdyb3VwCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMTApID8gJ3cnIDogJy0nKTsKCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/CgkoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6CgkoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsKCS8vIFdvcmxkCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwNCkgPyAncicgOiAnLScpOwoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsKCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA/CgkoKCRwZXJtcyAmIDB4MDIwMCkgPyAndCcgOiAneCcgKSA6CgkoKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCXJldHVybiAkaW5mbzsKfQpmdW5jdGlvbiBsaWJfaW5zdGFsbGVkKCkgewoJJGxpYltdID0gIk15U1FMOiAiLihmdW5jdGlvbl9leGlzdHMoJ215c3FsX2Nvbm5lY3QnKSA/IGNvbG9yKDEsIDIsICJPTiIpIDogY29sb3IoMSwgMSwgIk9GRiIpKTsKCSRsaWJbXSA9ICJjVVJMOiAiLihmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpID8gY29sb3IoMSwgMiwgIk9OIikgOiBjb2xvcigxLCAxLCAiT0ZGIikpOwoJJGxpYltdID0gIldHRVQ6ICIuKGV4ZSgnd2dldCAtLWhlbHAnKSA/IGNvbG9yKDEsIDIsICJPTiIpIDogY29sb3IoMSwgMSwgIk9GRiIpKTsKCSRsaWJbXSA9ICJQZXJsOiAiLihleGUoJ3BlcmwgLS1oZWxwJykgPyBjb2xvcigxLCAyLCAiT04iKSA6IGNvbG9yKDEsIDEsICJPRkYiKSk7CgkkbGliW10gPSAiUHl0aG9uOiAiLihleGUoJ3B5dGhvbiAtLWhlbHAnKSA/IGNvbG9yKDEsIDIsICJPTiIpIDogY29sb3IoMSwgMSwgIk9GRiIpKTsKCXJldHVybiBpbXBsb2RlKCIgfCAiLCAkbGliKTsKfQpmdW5jdGlvbiBwd2QoKSB7CgkkZGlyID0gZXhwbG9kZSgiLyIsIHBhdGgoKSk7Cglmb3JlYWNoKCRkaXIgYXMgJGtleSA9PiAkaW5kZXgpIHsKCQlwcmludCAiPGEgaHJlZj0nP2Rpcj0iOwoJCWZvcigkaSA9IDA7ICRpIDw9ICRrZXk7ICRpKyspIHsKCQkJcHJpbnQgJGRpclskaV07CgkJCWlmKCRpICE9ICRrZXkpIHsKCQkJcHJpbnQgIi8iOwoJCQl9CgkJfQoJCXByaW50ICInPiRpbmRleDwvYT4vIjsKCX0KCXByaW50ICI8YnI+IjsKCXByaW50IChPUygpID09PSAiV2luZG93cyIpID8gd2luZGlzaygpIDogIiI7Cn0KZnVuY3Rpb24gd2luZGlzaygpIHsKCSRsZXR0ZXJzID0gIiI7CgkkdiA9IGV4cGxvZGUoIlxcIiwgcGF0aCgpKTsKCSR2ID0gJHZbMF07CgkgZm9yZWFjaChyYW5nZSgiQSIsICJaIikgYXMgJGxldHRlcikgewoJICAJJGJvb2wgPSAkaXNkaXNrZXR0ZSA9IGluX2FycmF5KCRsZXR0ZXIsIGFycmF5KCJBIikpOwoJICAJaWYoISRib29sKSAkYm9vbCA9IGlzX2RpcigiJGxldHRlcjpcXCIpOwoJICAJaWYoJGJvb2wpIHsKCSAgIAkJJGxldHRlcnMgLj0gIlsgPGEgaHJlZj0nP2Rpcj0kbGV0dGVyOlxcJyIuKCRpc2Rpc2tldHRlPyIgb25jbGljaz1cInJldHVybiBjb25maXJtKCdNYWtlIHN1cmUgdGhhdCB0aGUgZGlza2V0dGUgaXMgaW5zZXJ0ZWQgcHJvcGVybHksIG90aGVyd2lzZSBhbiBlcnJvciBtYXkgb2NjdXIuJylcIiI6IiIpLiI+IjsKCSAgIAkJaWYoJGxldHRlci4iOiIgIT0gJHYpIHsKCSAgIAkJCSRsZXR0ZXJzIC49ICRsZXR0ZXI7CgkgICAJCX0KCSAgIAkJZWxzZSB7CgkgICAJCQkkbGV0dGVycyAuPSBjb2xvcigxLCAyLCAkbGV0dGVyKTsKCSAgIAkJfQoJICAgCQkkbGV0dGVycyAuPSAiPC9hPiBdIjsKCSAgCX0KCX0KCWlmKCFlbXB0eSgkbGV0dGVycykpIHsKCQlwcmludCAiRGV0ZWN0ZWQgRHJpdmVzICRsZXR0ZXJzPGJyPiI7Cgl9CglpZihjb3VudCgkcXVpY2tsYXVuY2gpID4gMCkgewoJCWZvcmVhY2goJHF1aWNrbGF1bmNoIGFzICRpdGVtKSB7CgkgIAkJJHYgPSByZWFscGF0aChwYXRoKCkuICIuLiIpOwoJICAJCWlmKGVtcHR5KCR2KSkgewoJICAJCQkkYSA9IGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUixwYXRoKCkpOwoJICAJCQl1bnNldCgkYVtjb3VudCgkYSktMl0pOwoJICAJCQkkdiA9IGpvaW4oRElSRUNUT1JZX1NFUEFSQVRPUiwgJGEpOwoJICAJCX0KCSAgCQlwcmludCAiPGEgaHJlZj0nIi4kaXRlbVsxXS4iJz4iLiRpdGVtWzBdLiI8L2E+IjsKCQl9Cgl9Cn0KZnVuY3Rpb24gc2VydmVyaW5mbygpIHsKCSRkaXNhYmxlX2Z1bmN0aW9ucyA9IEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpOwoJJGRpc2FibGVfZnVuY3Rpb25zID0gKCFlbXB0eSgkZGlzYWJsZV9mdW5jdGlvbnMpKSA/IGNvbG9yKDEsIDEsICRkaXNhYmxlX2Z1bmN0aW9ucykgOiBjb2xvcigxLCAyLCAiTk9ORSIpOwoJJG91dHB1dFtdID0gIlNFUlZFUiBJUCAiLmNvbG9yKDEsIDIsICRHTE9CQUxTWydTRVJWRVJJUCddKS4iIC8gWU9VUiBJUCAiLmNvbG9yKDEsIDIsICRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKCSRvdXRwdXRbXSA9ICJXRUIgU0VSVkVSICA6ICIuY29sb3IoMSwgMiwgJF9TRVJWRVJbJ1NFUlZFUl9TT0ZUV0FSRSddKTsKCSRvdXRwdXRbXSA9ICJTWVNURU0gICAgICA6ICIuY29sb3IoMSwgMiwgcGhwX3VuYW1lKCkpOwoJJG91dHB1dFtdID0gIlVTRVIgLyBHUk9VUDogIi5jb2xvcigxLCAyLCB1c2VyZ3JvdXAoKS0+bmFtZSkuIigiLmNvbG9yKDEsIDIgLCB1c2VyZ3JvdXAoKS0+dWlkKS4iKSAvICIuY29sb3IoMSwgMiAsIHVzZXJncm91cCgpLT5ncm91cCkuIigiLmNvbG9yKDEsIDIgLCB1c2VyZ3JvdXAoKS0+Z2lkKS4iKSI7Cgkkb3V0cHV0W10gPSAiSEREICAgICAgICAgOiAiLmNvbG9yKDEsIDIsIGhkZCgpLT51c2VkKS4iIC8gIi5jb2xvcigxLCAyICwgaGRkKCktPnNpemUpLiIgKEZyZWU6ICIuY29sb3IoMSwgMiAsIGhkZCgpLT5mcmVlKS4iKSI7Cgkkb3V0cHV0W10gPSAiUEhQIFZFUlNJT04gOiAiLmNvbG9yKDEsIDIsIEBwaHB2ZXJzaW9uKCkpOwoJJG91dHB1dFtdID0gIlNBRkUgTU9ERSAgIDogIi4oQGluaV9nZXQoc3RydG91cHBlcigic2FmZV9tb2RlIikpID09PSAiT04iID8gY29sb3IoMSwgMiwgIk9OIikgOiBjb2xvcigxLCAyLCAiT0ZGIikpOwoJJG91dHB1dFtdID0gIkRJU0FCTEUgRlVOQzogJGRpc2FibGVfZnVuY3Rpb25zIjsKCSRvdXRwdXRbXSA9IGxpYl9pbnN0YWxsZWQoKTsKCSRvdXRwdXRbXSA9ICJDdXJyZW50IERpciAoIi53cml0ZWFibGUocGF0aCgpLCBwZXJtcyhwYXRoKCkpKS4iKSAiOwoJcHJpbnQgIjxwcmU+IjsKCXByaW50IGltcGxvZGUoIjxicj4iLCAkb3V0cHV0KTsKCXB3ZCgpOwoJcHJpbnQgIjwvcHJlPiI7Cn0KZnVuY3Rpb24gY3VybCgkdXJsLCAkcG9zdCA9IGZhbHNlLCAkZGF0YSA9IG51bGwpIHsKICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKICAgIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CiAgICAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIGZhbHNlKTsKICAgIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9USU1FT1VULCAxMCk7CiAgICAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDEwKTsKICAgIGlmKCRwb3N0KSB7CiAgICAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7CiAgICAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGEpOwogICAgfQogICAgcmV0dXJuIGN1cmxfZXhlYygkY2gpOwoJCSAgY3VybF9jbG9zZSgkY2gpOwp9CmZ1bmN0aW9uIHJldmVyc2UoKSB7CgkkcmVzcG9uc2UgPSBjdXJsKCJodHRwOi8vZG9tYWlucy55b3VnZXRzaWduYWwuY29tL2RvbWFpbnMucGhwIiwgVFJVRSwgInJlbW90ZUFkZHJlc3M9Ii4kR0xPQkFMU1snU0VSVkVSSVAnXS4iJmtldD0iKTsKCSRyZXNwb25zZSA9IHN0cl9yZXBsYWNlKCJbIiwiIiwgc3RyX3JlcGxhY2UoIl0iLCIiLCBzdHJfcmVwbGFjZSgiXCJcIiIsIiIsIHN0cl9yZXBsYWNlKCIsICwiLCIsIiwgc3RyX3JlcGxhY2UoInsiLCIiLCBzdHJfcmVwbGFjZSgieyIsIiIsIHN0cl9yZXBsYWNlKCJ9IiwiIiwgc3RyX3JlcGxhY2UoIiwgIiwiLCIsIHN0cl9yZXBsYWNlKCIsICIsIiwiLCAgc3RyX3JlcGxhY2UoIiciLCIiLCBzdHJfcmVwbGFjZSgiJyIsIiIsIHN0cl9yZXBsYWNlKCI6IiwiLCIsIHN0cl9yZXBsYWNlKCciJywnJywgJHJlc3BvbnNlKSkpKSkpKSkpKSkpKTsKCSRleHBsb2RlICA9IGV4cGxvZGUoIiwsIiwgJHJlc3BvbnNlKTsKCXVuc2V0KCRleHBsb2RlWzBdKTsKCWZvcmVhY2goJGV4cGxvZGUgYXMgJGRvbWFpbikgewoJCSRkb21haW4gPSAiaHR0cDovLyRkb21haW4iOwoJCSRkb21haW4gPSBzdHJfcmVwbGFjZSgiLCIsICIiLCAkZG9tYWluKTsKCQkkdXJsW10gCT0gJGRvbWFpbjsKCQlvYl9mbHVzaCgpOwoJCWZsdXNoKCk7Cgl9CglyZXR1cm4gJHVybDsKfQpmdW5jdGlvbiBnZXRWYWx1ZSgkcGFyYW0sICRrYXRhMSwgJGthdGEyKXsKICAgIGlmKHN0cnBvcygkcGFyYW0sICRrYXRhMSkgPT09IEZBTFNFKSByZXR1cm4gRkFMU0U7CiAgICBpZihzdHJwb3MoJHBhcmFtLCAka2F0YTIpID09PSBGQUxTRSkgcmV0dXJuIEZBTFNFOwogICAgJHN0YXJ0IAk9IHN0cnBvcygkcGFyYW0sICRrYXRhMSkgKyBzdHJsZW4oJGthdGExKTsKICAgICRlbmQgCT0gc3RycG9zKCRwYXJhbSwgJGthdGEyLCAkc3RhcnQpOwogICAgJHJldHVybiA9IHN1YnN0cigkcGFyYW0sICRzdGFydCwgJGVuZCAtICRzdGFydCk7CiAgICByZXR1cm4gJHJldHVybjsKfQpmdW5jdGlvbiBtYXNzZGVmYWNlKCRkaXIsICRmaWxlLCAkZmlsZW5hbWUsICR0eXBlID0gbnVsbCkgewoJJHNjYW5kaXIgPSBzY2FuZGlyKCRkaXIpOwoJZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyXykgewoJCSRwYXRoICAgICA9ICIkZGlyLyRkaXJfIjsKCQkkbG9jYXRpb24gPSAiJHBhdGgvJGZpbGVuYW1lIjsKCQlpZigkZGlyXyA9PT0gIi4iIHx8ICRkaXJfID09PSAiLi4iKSB7CgkJCWZpbGVfcHV0X2NvbnRlbnRzKCRsb2NhdGlvbiwgJGZpbGUpOwoJCX0KCQllbHNlIHsKCQkJaWYoaXNfZGlyKCRwYXRoKSBBTkQgaXNfd3JpdGFibGUoJHBhdGgpKSB7CgkJCQlwcmludCAiWyIuY29sb3IoMSwgMiwgIkRPTkUiKS4iXSAiLmNvbG9yKDEsIDQsICRsb2NhdGlvbikuIjxicj4iOwoJCQkJZmlsZV9wdXRfY29udGVudHMoJGxvY2F0aW9uLCAkZmlsZSk7CgkJCQlpZigkdHlwZSA9PT0gIi1hbGxkaXIiKSB7CgkJCQkJbWFzc2RlZmFjZSgkcGF0aCwgJGZpbGUsICRmaWxlbmFtZSwgIi1hbGxkaXIiKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gbWFzc2RlbGV0ZSgkZGlyLCAkZmlsZW5hbWUpIHsKCSRzY2FuZGlyID0gc2NhbmRpcigkZGlyKTsKCWZvcmVhY2goJHNjYW5kaXIgYXMgJGRpcl8pIHsKCQkkcGF0aCAgICAgPSAiJGRpci8kZGlyXyI7CgkJJGxvY2F0aW9uID0gIiRwYXRoLyRmaWxlbmFtZSI7CgkJaWYoJGRpcl8gPT09ICcuJykgewoJCQlpZihmaWxlX2V4aXN0cygiJGRpci8kZmlsZW5hbWUiKSkgewoJCQkJdW5saW5rKCIkZGlyLyRmaWxlbmFtZSIpOwoJCQl9CgkJfSAKCQllbHNlaWYoJGRpcl8gPT09ICcuLicpIHsKCQkJaWYoZmlsZV9leGlzdHMoZGlybmFtZSgkZGlyKS4iLyRmaWxlbmFtZSIpKSB7CgkJCQl1bmxpbmsoZGlybmFtZSgkZGlyKS4iLyRmaWxlbmFtZSIpOwoJCQl9CgkJfSAKCQllbHNlIHsKCQkJaWYoaXNfZGlyKCRwYXRoKSBBTkQgaXNfd3JpdGFibGUoJHBhdGgpKSB7CgkJCQlpZihmaWxlX2V4aXN0cygkbG9jYXRpb24pKSB7CgkJCQkJcHJpbnQgIlsiLmNvbG9yKDEsIDIsICJERUxFVEVEIikuIl0gIi5jb2xvcigxLCA0LCAkbG9jYXRpb24pLiI8YnI+IjsKCQkJCQl1bmxpbmsoJGxvY2F0aW9uKTsKCQkJCQltYXNzZGVsZXRlKCRwYXRoLCAkZmlsZW5hbWUpOwoJCQkJfQoJCQl9CgkJfQoJfQp9CgpmdW5jdGlvbiB0b29scygkdG9vbHNuYW1lLCAkYXJncyA9IG51bGwpIHsKCWlmKCR0b29sc25hbWUgPT09ICJjbWQiKSB7CgkJcHJpbnQgIjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9uPSc/ZG89Y21kJmRpcj0iLnBhdGgoKS4iJyBzdHlsZT0nbWFyZ2luLXRvcDogMTVweDsnPgoJCQkgICIudXNlcmdyb3VwKCktPm5hbWUuIkAiLiRHTE9CQUxTWydTRVJWRVJJUCddLiI6IH4gJAoJCQkgIDxpbnB1dCBzdHlsZT0nYm9yZGVyOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZmZmZjsnIHR5cGU9J3RleHQnIG5hbWU9J2NtZCcgcmVxdWlyZWQ+CgkJCSAgPGlucHV0IHN0eWxlPSdib3JkZXI6IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmZmZmOycgY2xhc3M9J2lucHV0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSc+Pic+CgkJCSAgPC9mb3JtPiI7Cgl9CgllbHNlaWYoJHRvb2xzbmFtZSA9PT0gInJlYWRmaWxlIikgewoJCWlmKGVtcHR5KCRhcmdzKSkgZGllKGNvbG9yKDEsIDEsICRtc2cpKTsKCQlpZighaXNfZmlsZSgkYXJncykpIGRpZShjb2xvcigxLCAxLCAiRmlsZSAnJGFyZ3MnIGlzIG5vdCBleGlzdHMuIikpOwoKCQlwcmludCAiPHByZT4iOwoJCXByaW50IGh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJGFyZ3MpKTsKCQlwcmludCAiPC9wcmU+IjsKCX0KCWVsc2VpZigkdG9vbHNuYW1lID09PSAic3Bhd24iKSB7CgkJaWYoJGFyZ3MgPT09ICJhZG1pbmVyIikgewoJCQlpZihmaWxlX2V4aXN0cygiYWRtaW5lci5waHAiKSkgewoJCQkJcHJpbnQgIkxvZ2luIEFkbWluZXI6IDxhIGhyZWY9JyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9hZG1pbmVyLnBocCcgdGFyZ2V0PSdfYmxhbmsnPmh0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9hZG1pbmVyLnBocDwvYT4iOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYoIWlzX3dyaXRhYmxlKHBhdGgoKSkpIGRpZShjb2xvcigxLCAxLCAiRGlyZWN0b3J5ICciLnBhdGgoKS4iJyBpcyBub3Qgd3JpdGVhYmxlLiBDYW4ndCBjcmVhdGUgZmlsZSAnQWRtaW5lcicuIikpOwoJCQkJaWYoZ2V0ZmlsZSgiYWRtaW5lciIpKSB7CgkJCQkJcHJpbnQgIkxvZ2luIEFkbWluZXI6IDxhIGhyZWY9JyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9hZG1pbmVyLnBocCcgdGFyZ2V0PSdfYmxhbmsnPmh0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9hZG1pbmVyLnBocDwvYT4iOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJcHJpbnQgY29sb3IoMSwgMSwgIkVycm9yIHdoaWxlIGRvd25sb2FkaW5nIGZpbGUgQWRtaW5lci4iKTsKCQkJCQlAdW5saW5rKCJhZG1pbmVyLnBocCIpOwoJCQkJfQoJCQl9CgkJfQoJCWVsc2VpZigkYXJncyA9PT0gIndlYmNvbnNvbGUiKSB7CgkJCWlmKGZpbGVfZXhpc3RzKCJ3ZWJjb25zb2xlLnBocCIpKSB7CgkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi93ZWJjb25zb2xlLnBocCcgZnJhbWVib3JkZXI9JzAnIHNjcm9sbGluZz0neWVzJz48L2lmcmFtZT4iOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYoIWlzX3dyaXRhYmxlKHBhdGgoKSkpIGRpZShjb2xvcigxLCAxLCAiRGlyZWN0b3J5ICciLnBhdGgoKS4iJyBpcyBub3Qgd3JpdGVhYmxlLiBDYW4ndCBjcmVhdGUgZmlsZSAnV2ViQ29uc29sZScuIikpOwoJCQkJaWYoZ2V0ZmlsZSgid2ViY29uc29sZSIpKSB7CgkJCQkJcHJpbnQgIjxpZnJhbWUgc3JjPSdodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRHTE9CQUxTWydGSUxFUEFUSCddLiIvd2ViY29uc29sZS5waHAnIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PC9pZnJhbWU+IjsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXByaW50IGNvbG9yKDEsIDEsICJFcnJvciB3aGlsZSBkb3dubG9hZGluZyBmaWxlIFdlYkNvbnNvbGUuIik7CgkJCQkJQHVubGluaygid2ViY29uc29sZS5waHAiKTsKCQkJCX0KCQkJfQoJCX0KCQllbHNlaWYoJGFyZ3MgPT09ICJjZ2l0ZWxuZXQxIikgewoJCQlpZihmaWxlX2V4aXN0cygiaWR4X2NnaS9jZ2l0ZWxuZXQxLmlkeCIpKSB7CgkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9pZHhfY2dpL2NnaXRlbG5ldDEuaWR4JyBmcmFtZWJvcmRlcj0nMCcgc2Nyb2xsaW5nPSd5ZXMnPjwvaWZyYW1lPiI7CgkJCX0KCQkJZWxzZWlmKGZpbGVfZXhpc3RzKCdjZ2l0ZWxuZXQxLmlkeCcpKSB7CgkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9jZ2l0ZWxuZXQxLmlkeCcgZnJhbWVib3JkZXI9JzAnIHNjcm9sbGluZz0neWVzJz48L2lmcmFtZT4iOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYoIWlzX3dyaXRhYmxlKHBhdGgoKSkpIGRpZShjb2xvcigxLCAxLCAiRGlyZWN0b3J5ICciLnBhdGgoKS4iJyBpcyBub3Qgd3JpdGVhYmxlLiBDYW4ndCBjcmVhdGUgZGlyZWN0b3J5ICdpZHhfY2dpJy4iKSk7CgkJCQlpZighaXNfZGlyKHBhdGgoKS4iL2lkeF9jZ2kvIikpIHsKCQkJCQlAbWtkaXIoJ2lkeF9jZ2knLCAwNzU1KTsKCQkJCQlzYXZlKCJpZHhfY2dpLy5odGFjY2VzcyIsICJ3IiwgIkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaWR4Iik7CgkJCQl9CgkJCQlpZihnZXRmaWxlKCJjZ2l0ZWxuZXQxIikpIHsKCQkJCQljaG1vZCgnaWR4X2NnaS9jZ2l0ZWxuZXQxLmlkeCcsIDA3NTUpOwoJCQkJCXByaW50ICI8aWZyYW1lIHNyYz0naHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvIi4kR0xPQkFMU1snRklMRVBBVEgnXS4iL2lkeF9jZ2kvY2dpdGVsbmV0MS5pZHgnIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PC9pZnJhbWU+IjsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXByaW50IGNvbG9yKDEsIDEsICJFcnJvciB3aGlsZSBkb3dubG9hZGluZyBmaWxlIENHSSBUZWxuZXQuIik7CgkJCQkJQHJtZGlyKHBhdGgoKS4iL2lkeF9jZ2kvIik7CgkJCQkJaWYoIUBybWRpcihwYXRoKCkuIi9pZHhfY2dpLyIpIEFORCBPUygpID09PSAiTGludXgiKSBAZXhlKCJybSAtcmYgIi5wYXRoKCkuIi9pZHhfY2dpLyIpOwoJCQkJCWlmKCFAcm1kaXIocGF0aCgpLiIvaWR4X2NnaS8iKSBBTkQgT1MoKSA9PT0gIldpbmRvd3MiKSBAZXhlKCJybWRpciAvcyAvcSAiLnBhdGgoKS4iL2lkeF9jZ2kvIik7CgkJCQl9CgkJCX0KCQoJCX0KCQllbHNlaWYoJGFyZ3MgPT09ICJjZ2l0ZWxuZXQyIikgewoJCQlpZihmaWxlX2V4aXN0cygiaWR4X2NnaS9jZ2l0ZWxuZXQyLmlkeCIpKSB7CgkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9pZHhfY2dpL2NnaXRlbG5ldDIuaWR4JyBmcmFtZWJvcmRlcj0nMCcgc2Nyb2xsaW5nPSd5ZXMnPjwvaWZyYW1lPiI7CgkJCX0KCQkJZWxzZWlmKGZpbGVfZXhpc3RzKCdjZ2l0ZWxuZXQyLmlkeCcpKSB7CgkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9jZ2l0ZWxuZXQyLmlkeCcgZnJhbWVib3JkZXI9JzAnIHNjcm9sbGluZz0nbm8nPjwvaWZyYW1lPiI7CgkJCX0KCQkJZWxzZSB7CgkJCQlpZighaXNfd3JpdGFibGUocGF0aCgpKSkgZGllKGNvbG9yKDEsIDEsICJEaXJlY3RvcnkgJyIucGF0aCgpLiInIGlzIG5vdCB3cml0ZWFibGUuIENhbid0IGNyZWF0ZSBkaXJlY3RvcnkgJ2lkeF9jZ2knLiIpKTsKCQkJCWlmKCFpc19kaXIocGF0aCgpLiIvaWR4X2NnaS8iKSkgewoJCQkJCUBta2RpcignaWR4X2NnaScsIDA3NTUpOwoJCQkJCXNhdmUoImlkeF9jZ2kvLmh0YWNjZXNzIiwgInciLCAiQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5pZHgiKTsKCQkJCX0KCQkJCWlmKGdldGZpbGUoImNnaXRlbG5ldDIiKSkgewoJCQkJCWNobW9kKCdpZHhfY2dpL2NnaXRlbG5ldDIuaWR4JywgMDc1NSk7CgkJCQkJcHJpbnQgIjxpZnJhbWUgc3JjPSdodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRHTE9CQUxTWydGSUxFUEFUSCddLiIvaWR4X2NnaS9jZ2l0ZWxuZXQyLmlkeCcgZnJhbWVib3JkZXI9JzAnIHNjcm9sbGluZz0neWVzJz48L2lmcmFtZT4iOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJcHJpbnQgY29sb3IoMSwgMSwgIkVycm9yIHdoaWxlIGRvd25sb2FkaW5nIGZpbGUgQ0dJIFRlbG5ldC4iKTsKCQkJCQlAcm1kaXIocGF0aCgpLiIvaWR4X2NnaS8iKTsKCQkJCQlpZighQHJtZGlyKHBhdGgoKS4iL2lkeF9jZ2kvIikgQU5EIE9TKCkgPT09ICJMaW51eCIpIEBleGUoInJtIC1yZiAiLnBhdGgoKS4iL2lkeF9jZ2kvIik7CgkJCQkJaWYoIUBybWRpcihwYXRoKCkuIi9pZHhfY2dpLyIpIEFORCBPUygpID09PSAiV2luZG93cyIpIEBleGUoInJtZGlyIC9zIC9xICIucGF0aCgpLiIvaWR4X2NnaS8iKTsKCQkJCX0KCQkJfQoJCgkJfQoJCWVsc2VpZigkYXJncyA9PT0gInBocGluZm8iKSB7CgkJCWlmKGZpbGVfZXhpc3RzKCdwaHBpbmZvLnBocCcpIEFORCBwcmVnX21hdGNoKCIvcGhwaW5mbygpLyIsIGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHBpbmZvLnBocCcpKSkgewoJCQkJcHJpbnQgIjxpZnJhbWUgc3JjPSdodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRHTE9CQUxTWydGSUxFUEFUSCddLiIvcGhwaW5mby5waHAnIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PC9pZnJhbWU+IjsKCQkJfQoJCQllbHNlIHsKCQkJCWlmKCFpc193cml0YWJsZShwYXRoKCkpKSBkaWUoY29sb3IoMSwgMSwgIkRpcmVjdG9yeSAnIi5wYXRoKCkuIicgaXMgbm90IHdyaXRlYWJsZS4gQ2FuJ3QgY3JlYXRlIGZpbGUgJ3BocGluZm8nLiIpKTsKCQkJCXNhdmUoInBocGluZm8ucGhwIiwgInciLCAiPD9waHAgcHJpbnQgJzxodG1sPjxzdHlsZT5odG1sLGJvZHkge2JhY2tncm91bmQ6ICMwMDAwMDA7fTwvc3R5bGU+PGRpdiBzdHlsZT1cJ2JhY2tncm91bmQ6ICMwMDAwMDA7IGNvbG9yOiAjY2NjY2NjO1wnPic7IHBocGluZm8oKTsgcHJpbnQgJzwvZGl2PjwvaHRtbD4nOyA/PiIpOwoJCQkJcHJpbnQgIjxpZnJhbWUgc3JjPSdodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRHTE9CQUxTWydGSUxFUEFUSCddLiIvcGhwaW5mby5waHAnIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PC9pZnJhbWU+IjsKCQkJfQoJCX0KCX0KCWVsc2VpZigkdG9vbHNuYW1lID09PSAidXBsb2FkIikgewoJCWlmKCRfUE9TVFsndXBsb2FkJ10pIHsKCQkJaWYoJF9QT1NUWyd1cGxvYWR0eXBlJ10gPT09ICcxJykgewoJCQkJaWYoQGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCBwYXRoKCkuRElSRUNUT1JZX1NFUEFSQVRPUi4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXS4iIikpIHsKCQkJCQkkYWN0ID0gY29sb3IoMSwgMiwgIlVwbG9hZGVkISIpLiIgYXQgPGk+PGI+Ii5wYXRoKCkuRElSRUNUT1JZX1NFUEFSQVRPUi4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXS4iPC9iPjwvaT4iOwoJCQkJfSAKCQkJCWVsc2UgewoJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiRmFpbGVkIHRvIHVwbG9hZCBmaWxlISIpOwoJCQkJfQoJCQl9IAoJCQllbHNlaWYoJF9QT1NUWyd1cGxvYWR0eXBlJ10gPT09ICcyJykgewoJCQkJJHJvb3QgPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLkRJUkVDVE9SWV9TRVBBUkFUT1IuJF9GSUxFU1snZmlsZSddWyduYW1lJ107CgkJCQkkd2ViID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddLkRJUkVDVE9SWV9TRVBBUkFUT1IuJF9GSUxFU1snZmlsZSddWyduYW1lJ107CgkJCQlpZihpc193cml0YWJsZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKSkgewoJCQkJCWlmKEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJHJvb3QpKSB7CgkJCQkJCSRhY3QgPSBjb2xvcigxLCAyLCAiVXBsb2FkZWQhIikuIiBhdCA8aT48Yj4kcm9vdCAtPiA8L2I+PC9pPjxhIGhyZWY9J2h0dHA6Ly8kd2ViJyB0YXJnZXQ9J19ibGFuayc+JHdlYjwvYT4iOwoJCQkJCX0gCgkJCQkJZWxzZSB7CgkJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiRmFpbGVkIHRvIHVwbG9hZCBmaWxlISIpOwoJCQkJCX0KCQkJCX0gCgkJCQllbHNlIHsKCQkJCQkkYWN0ID0gY29sb3IoMSwgMSwgIkZhaWxlZCB0byB1cGxvYWQgZmlsZSEiKTsKCQkJCX0KCQkJfQoJCX0KCQlwcmludCAiVXBsb2FkIEZpbGU6ICRhY3QKCQkJICA8Zm9ybSBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnPgoJCQkgIDxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ndXBsb2FkdHlwZScgdmFsdWU9JzEnIGNoZWNrZWQ+Y3VycmVudF9kaXIgWyAiLndyaXRlYWJsZShwYXRoKCksICJXcml0ZWFibGUiKS4iIF0gCgkJCSAgPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSd1cGxvYWR0eXBlJyB2YWx1ZT0nMic+ZG9jdW1lbnRfcm9vdCBbICIud3JpdGVhYmxlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10sICJXcml0ZWFibGUiKS4iIF08YnI+CgkJCSAgPGlucHV0IHR5cGU9J2ZpbGUnIG5hbWU9J2ZpbGUnPgoJCQkgIDxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSd1cGxvYWQnIG5hbWU9J3VwbG9hZCc+CgkJCSAgPC9mb3JtPiI7Cgl9CgllbHNlaWYoJHRvb2xzbmFtZSA9PT0gImp1bXBpbmciKSB7CgkJJGkgPSAwOwoJCWZvcmVhY2goZ2V0dXNlcigpIGFzICR1c2VyKSB7CgkJCSRwYXRoID0gIi9ob21lLyR1c2VyL3B1YmxpY19odG1sIjsKCQkJaWYoaXNfcmVhZGFibGUoJHBhdGgpKSB7CgkJCQkkc3RhdHVzID0gY29sb3IoMSwgMiwgIltSXSIpOwoJCQkJaWYoaXNfd3JpdGFibGUoJHBhdGgpKSB7CgkJCQkJJHN0YXR1cyA9IGNvbG9yKDEsIDIsICJbUlddIik7CgkJCQl9CgkJCQkkaSsrOwoJCQkJcHJpbnQgIiRzdGF0dXMgPGEgaHJlZj0nP2Rpcj0kcGF0aCc+Ii5jb2xvcigxLCA0LCAkcGF0aCkuIjwvYT4iOwoJCQkJaWYoIWZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSkgcHJpbnQgIjxicj4iOwoJCQkJaWYoIWdldGRvbWFpbm5hbWUoKSkgcHJpbnQgIiA9PiAiLmNvbG9yKDEsIDEsICJDYW4ndCBnZXQgZG9tYWluIG5hbWUiKS4iPGJyPiI7CgkJCQlmb3JlYWNoKGdldGRvbWFpbm5hbWUoKSBhcyAkZG9tYWluKSB7CgkJCQkJJHVzZXJkb21haW4gPSAob2JqZWN0KSBAcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8kZG9tYWluIikpOwoJCQkJCSR1c2VyZG9tYWluID0gJHVzZXJkb21haW4tPm5hbWU7CgkJCQkJaWYoJHVzZXJkb21haW4gPT09ICR1c2VyKSB7CgkJCQkJCXByaW50ICIgPT4gPGEgaHJlZj0naHR0cDovLyRkb21haW4vJyB0YXJnZXQ9J19ibGFuayc+Ii5jb2xvcigxLCAyLCAkZG9tYWluKS4iPC9hPjxicj4iOwoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcHJpbnQgKCRpID09PSAwKSA/ICIiIDogIjxwPiIuY29sb3IoMSwgMywgIlRvdGFsIGFkYSAkaSBrYW1hciBkaSAiLiRHTE9CQUxTWydTRVJWRVJJUCddKS4iPC9wPiI7Cgl9CgllbHNlaWYoJHRvb2xzbmFtZSA9PT0gImlkeGNvbmZpZyIpIHsKCQlpZighaXNfd3JpdGFibGUocGF0aCgpKSkgZGllKGNvbG9yKDEsIDEsICJEaXJlY3RvcnkgJyIucGF0aCgpLiInIGlzIG5vdCB3cml0ZWFibGUuIENhbid0IGNyZWF0ZSBkaXJlY3RvcnkgJ2lkeF9jb25maWcnLiIpKTsKCQlpZighaXNfZGlyKHBhdGgoKS4iL2lkeF9jb25maWcvIikpIHsKCQkJQG1rZGlyKCdpZHhfY29uZmlnJywgMDc1NSk7CgkJCSRodGFjY2VzcyA9ICJPcHRpb25zIGFsbFxuRGlyZWN0b3J5SW5kZXggaW5kb3hwbG9pdC5odG1cblNhdGlzZnkgQW55IjsKCQkJc2F2ZSgiaWR4X2NvbmZpZy8uaHRhY2Nlc3MiLCJ3IiwgJGh0YWNjZXNzKTsKCgkJCWZvcmVhY2goZ2V0dXNlcigpIGFzICR1c2VyKSB7CgkJCQkkdXNlcl9kb2Nyb290ID0gIi9ob21lLyR1c2VyL3B1YmxpY19odG1sLyI7CgkJCQlpZihpc19yZWFkYWJsZSgkdXNlcl9kb2Nyb290KSkgewoJCQkJCSRnZXRjb25maWcgPSBhcnJheSgKCQkJCQkJIi9ob21lLyR1c2VyLy5hY2Nlc3NoYXNoIiA9PiAiV0hNLWFjY2Vzc2hhc2giLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9mb3J1bS9jb25maWcucGhwIiA9PiAicGhwQkIiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zaXRlcy9kZWZhdWx0L3NldHRpbmdzLnBocCIgPT4gIkRydXBhbCIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NvbmZpZy9zZXR0aW5ncy5pbmMucGhwIiA9PiAiUHJlc3RhU2hvcCIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2FwcC9ldGMvbG9jYWwueG1sIiA9PiAiTWFnZW50byIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2FkbWluL2NvbmZpZy5waHAiID0+ICJPcGVuQ2FydCIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2FwcGxpY2F0aW9uL2NvbmZpZy9kYXRhYmFzZS5waHAiID0+ICJFbGxpc2xhYiIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAiID0+ICJWYnVsbGV0aW4iLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9pbmNsdWRlcy9jb25maWcucGhwIiA9PiAiVmJ1bGxldGluIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCIgPT4gIlZidWxsZXRpbiIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2ZvcnVtcy9pbmNsdWRlcy9jb25maWcucGhwIiA9PiAiVmJ1bGxldGluIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2MvaW5jbHVkZXMvY29uZmlnLnBocCIgPT4gIlZidWxsZXRpbiIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2luYy9jb25maWcucGhwIiA9PiAiTXlCQiIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAiID0+ICJPc0NvbW1lcmNlIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc2hvcC9pbmNsdWRlcy9jb25maWd1cmUucGhwIiA9PiAiT3NDb21tZXJjZSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L29zL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAiID0+ICJPc0NvbW1lcmNlIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvb3Njb20vaW5jbHVkZXMvY29uZmlndXJlLnBocCIgPT4gIk9zQ29tbWVyY2UiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9wcm9kdWN0cy9pbmNsdWRlcy9jb25maWd1cmUucGhwIiA9PiAiT3NDb21tZXJjZSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NhcnQvaW5jbHVkZXMvY29uZmlndXJlLnBocCIgPT4gIk9zQ29tbWVyY2UiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9pbmMvY29uZl9nbG9iYWwucGhwIiA9PiAiSVBCIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3dwL3Rlc3Qvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2Jsb2cvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JldGEvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZHByZXNzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc2l0ZS93cC1jb25maWcucGhwIiA9PiAiV29yZHByZXNzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvd3Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1dQL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkcHJlc3MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9uZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkcHJlc3MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC93b3JkcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3Rlc3Qvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2RlbW8vd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvbWUvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3YxL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkcHJlc3MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC92Mi93cC1jb25maWcucGhwIiA9PiAiV29yZHByZXNzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L25ldy93cC1jb25maWcucGhwIiA9PiAiV29yZHByZXNzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmxvZ3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRwcmVzcyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmxvZy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3N1Ym1pdHRpY2tldC5waHAiID0+ICJeV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbXMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGEiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9iZXRhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvcG9ydGFsL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc2l0ZS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L21haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGEiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9ob21lL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvZGVtby9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3Rlc3QvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGEiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC92MS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3YyL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvbmV3L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvV0hNQ1Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvd2htY3MxL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1dobWNzL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3dobWNzL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3dobWNzL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1dITUMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvV2htYy9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC93aG1jL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1dITS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9XaG0vc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvd2htL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0hPU1Qvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvSG9zdC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9ob3N0L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1NVUFBPUlRFUy9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9TdXBwb3J0ZXMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc3VwcG9ydGVzL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2RvbWFpbnMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvZG9tYWluL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0hvc3Rpbmcvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvSE9TVElORy9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9ob3N0aW5nL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0NBUlQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ2FydC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jYXJ0L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L09SREVSL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L09yZGVyL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L29yZGVyL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0NMSUVOVC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9DbGllbnQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2xpZW50L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0NMSUVOVEFSRUEvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ2xpZW50YXJlYS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbGllbnRhcmVhL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1NVUFBPUlQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvU3VwcG9ydC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zdXBwb3J0L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0JJTExJTkcvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQmlsbGluZy9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9iaWxsaW5nL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0JVWS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9CdXkvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYnV5L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L01BTkFHRS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9NYW5hZ2Uvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvbWFuYWdlL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0NMSUVOVFNVUFBPUlQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ2xpZW50U3VwcG9ydC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9DbGllbnRzdXBwb3J0L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NsaWVudHN1cHBvcnQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ0hFQ0tPVVQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ2hlY2tvdXQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2hlY2tvdXQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQklMTElOR1Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQmlsbGluZ3Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmlsbGluZ3Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQkFTS0VUL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L0Jhc2tldC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9iYXNrZXQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvU0VDVVJFL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L1NlY3VyZS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zZWN1cmUvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvU0FMRVMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvU2FsZXMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc2FsZXMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQklMTC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9CaWxsL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JpbGwvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvUFVSQ0hBU0Uvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvUHVyY2hhc2Uvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvcHVyY2hhc2Uvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQUNDT1VOVC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9BY2NvdW50L3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2FjY291bnQvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvVVNFUi9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9Vc2VyL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3VzZXIvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQ0xJRU5UUy9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9DbGllbnRzL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NsaWVudHMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQklMTElOR1Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvQmlsbGluZ3Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmlsbGluZ3Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvTVkvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvTXkvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvbXkvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc2VjdXJlL3dobS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zZWN1cmUvd2htY3Mvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvcGFuZWwvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2xpZW50ZXMvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2xpZW50ZS9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zdXBwb3J0L29yZGVyL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYm94YmlsbGluZy9iYi1jb25maWcucGhwIiA9PiAiQm94QmlsbGluZyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JveC9iYi1jb25maWcucGhwIiA9PiAiQm94QmlsbGluZyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvc3QvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9Ib3N0L2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc3VwcG9ydGVzL2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc3VwcG9ydC9iYi1jb25maWcucGhwIiA9PiAiQm94QmlsbGluZyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvc3RpbmcvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jYXJ0L2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvb3JkZXIvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbGllbnQvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbGllbnRzL2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2xpZW50ZS9iYi1jb25maWcucGhwIiA9PiAiQm94QmlsbGluZyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NsaWVudGVzL2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmlsbGluZy9iYi1jb25maWcucGhwIiA9PiAiQm94QmlsbGluZyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JpbGxpbmdzL2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvbXkvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zZWN1cmUvYmItY29uZmlnLnBocCIgPT4gIkJveEJpbGxpbmciLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zdXBwb3J0L29yZGVyL2JiLWNvbmZpZy5waHAiID0+ICJCb3hCaWxsaW5nIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwIiA9PiAiWmVuY2FydCIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3plbmNhcnQvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwIiA9PiAiWmVuY2FydCIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L3Byb2R1Y3RzL2luY2x1ZGVzL2Rpc3QtY29uZmlndXJlLnBocCIgPT4gIlplbmNhcnQiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jYXJ0L2luY2x1ZGVzL2Rpc3QtY29uZmlndXJlLnBocCIgPT4gIlplbmNhcnQiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zaG9wL2luY2x1ZGVzL2Rpc3QtY29uZmlndXJlLnBocCIgPT4gIlplbmNhcnQiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9pbmNsdWRlcy9pc280MjE3LnBocCIgPT4gIkhvc3RiaWxscyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvc3RiaWxscy9pbmNsdWRlcy9pc280MjE3LnBocCIgPT4gIkhvc3RiaWxscyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvc3QvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9Ib3N0L2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc3VwcG9ydGVzL2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvc3VwcG9ydC9pbmNsdWRlcy9pc280MjE3LnBocCIgPT4gIkhvc3RiaWxscyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2hvc3RpbmcvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jYXJ0L2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3Qvb3JkZXIvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbGllbnQvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9jbGllbnRzL2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvY2xpZW50ZS9pbmNsdWRlcy9pc280MjE3LnBocCIgPT4gIkhvc3RiaWxscyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2NsaWVudGVzL2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvYmlsbGluZy9pbmNsdWRlcy9pc280MjE3LnBocCIgPT4gIkhvc3RiaWxscyIsCgkJCQkJCSIkdXNlcl9kb2Nyb290L2JpbGxpbmdzL2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIiwKCQkJCQkJIiR1c2VyX2RvY3Jvb3QvbXkvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zZWN1cmUvaW5jbHVkZXMvaXNvNDIxNy5waHAiID0+ICJIb3N0YmlsbHMiLAoJCQkJCQkiJHVzZXJfZG9jcm9vdC9zdXBwb3J0L29yZGVyL2luY2x1ZGVzL2lzbzQyMTcucGhwIiA9PiAiSG9zdGJpbGxzIgoKCQkJCQkpOwoJCQkJCWZvcmVhY2goJGdldGNvbmZpZyBhcyAkY29uZmlnID0+ICR1c2VyY29uZmlnKSB7CgkJCQkJCSRnZXQgPSBmaWxlX2dldF9jb250ZW50cygkY29uZmlnKTsKCQkJCQkJaWYoJGdldCA9PSAnJykgewoJCQkJCQl9CgkJCQkJCWVsc2UgewoJCQkJCQkJJGZvcGVuID0gZm9wZW4oImlkeF9jb25maWcvJHVzZXItJHVzZXJjb25maWcudHh0IiwgInciKTsKCQkJCQkJCWZwdXRzKCRmb3BlbiwgJGdldCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcHJpbnQgIjxkaXYgc3R5bGU9J2JhY2tncm91bmQ6ICNmZmZmZmY7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCUnPiI7CgkJcHJpbnQgIjxpZnJhbWUgc3JjPSdodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRHTE9CQUxTWydGSUxFUEFUSCddLiIvaWR4X2NvbmZpZy8nIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PGlmcmFtZT4iOwoJCXByaW50ICI8L2Rpdj4iOwoJfQoJZWxzZWlmKCR0b29sc25hbWUgPT09ICJzeW1saW5rIikgewoJCWlmKCFpc193cml0YWJsZShwYXRoKCkpKSBkaWUoY29sb3IoMSwgMSwgIkRpcmVjdG9yeSAnIi5wYXRoKCkuIicgaXMgbm90IHdyaXRlYWJsZS4gQ2FuJ3QgY3JlYXRlIGRpcmVjdG9yeSAnaWR4X3N5bScuIikpOwoJCWlmKCFpc19kaXIocGF0aCgpLiIvaWR4X3N5bS8iKSkgewoJCQkkc3ltWydjb2RlJ10gPSAiSXlFdmRYTnlMMkpwYmk5d1pYSnNJQzFKTDNWemNpOXNiMk5oYkM5aVlXNWtiV2x1RFFvaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQTBLSXcwS0l3a0pUbUZ0WlNBNklGQmxjbXd2UTBkSklFTnZibVpwWnlCVGVXMXNhVzVyWlhJZ0tGZHBkR2dnUVhWMGJ5QkNlWEJoYzNNZ1UzbHRiR2x1YXlBME1EUXBEUW9qQ1FsV1pYSnphVzl1SURvZ01TNHlEUW9qQ1FsRGNtVmhkR1ZrSURvZ09TQk5aV2tnTWpBeE53MEtJd2tKUVhWMGFHOXlJRG9nTUhneE9UazVEUW9qQ1FsVWFHRnVhM01nVkc4Z09pQXdlRWxFYVc5MElDd2dTVzVrYjI1bGMybGhiaUJEYjJSbElGQmhjblI1SUN3Z1NtRjBhVzAwZFEwS0l3a0pUVzl5WlNCSmJtWnZJRG9nYUhSMGNEb3ZMekI0UkdGeWF5NWliRzluYzNCdmRDNWpiMjBOQ2lNSkNWZGhiblFnZEc4Z2NtVmpiMlJsSUQ4Z1JHOXVKM1FnWm05eVoyVjBJRzE1SUc1cFkyc2dibUZ0WlNBZ09pa05DaU1KQ1doMGRIQTZMeTltWVdObFltOXZheTVqYjIwdmJXVnNaWGd1TVdRTkNpTUpDUTBLSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QWpJQ01nSXlBaklDTWdJeUFqSUNNZ0l5QU5DZzBLZFhObElFWnBiR1U2T2tOdmNIazdEUXAxYzJVZ2MzUnlhV04wT3cwS2RYTmxJSGRoY201cGJtZHpPdzBLZFhObElFMUpUVVU2T2tKaGMyVTJORHNOQ21OdmNIa29JaTlsZEdNdmNHRnpjM2RrSWl3aWNHRnpjM2RrTG5SNGRDSXBJRHNOQ20xclpHbHlJQ0pwWkhoZmMzbHRJanNOQ25ONWJXeHBibXNvSWk4aUxDSnBaSGhmYzNsdEwzSnZiM1FpS1RzTkNtMTVJQ1JtYVd4bGJtRnRaU0E5SUNkd1lYTnpkMlF1ZEhoMEp6c05DbTE1SUNSb2RHRmpZMlZ6Y3lBOUlHUmxZMjlrWlY5aVlYTmxOalFvSWxRelFqQmhWemwxWTNsQ1NtSnRVbXhsUjFaNlNVVmFkbUpIZUhaa01VNDFZbFY0Y0dKdGRIcEVVWEJGWVZoS2JGa3pVblpqYm14S1ltMVNiR1ZEUW5CaWJWSjJaVWhDYzJJeWJEQk1iV2d3WWxFd1MxRlhVbXRXU0d4M1dsTkNNRnBZYURCTU0wSnpXVmRzZFVsRE5YZGhTRUZuUkZGd1FscEhVa2xaVnpWcllrZFdlVWxJVW14bFNGRjJZMGQ0YUdGWE5HZE1ia0p2WTBFd1MxVXlSakJoV0U1dFpWTkNRbUp1YTA1RGEyeDFXa2RXTkZRelFqQmhWemwxWTNsQmNsRXlhR2hqYms1c1pFUXhWbFpGV1hSUFEwRnlVbTFHZFZremJFcGliVkpzWlVkc2RWcDVRWEpUVjJSMVlqTktiRkV5Um5wYVUwRnlVbTA1YzFwSFZubGpNRnB3WTI1T01FbERkRmxUUmxKT1ZFTkJjbE5HVWs1VVJsSm9XVzE0YkVsRGRGUmtXRUozWTIxV2VtTXhTakZpUjFaNlNVTjBWR1JZUW5kamJWWjZZekJTYkdNeVRubGhXRUl3WVZjNWRVbERkRTlaVnpGc1ZqSnNhMlJIWnpsTGFVRk9RMnRHYTFwRmJHcGlNalJuU2pKU2FHUkhSVFpoVnpGb1dqSlZkbU5ITlc1UE1rcG9ZekpWTWs1RGVIQldhMHBRVlc1amQxTXdaRzVpTUVaQ1VWVkdUMVV4Vm05U1ZsWnVVVlZHUWxGclJrSlJWVVpDVlZWT1FsZFZSa0pSVlVadFQwTTROV0ZGUmtKUlZVWkRVMFUxUkZVeFdsSlRWVTVDV2pCc2JWRlhhSEpoVlVaQ1VWVkdRbUpJWkZSU2JYZzJVVlZHUWxScVJqTlJWVVpGV2tkT1ExVlhiSEJaYlZaQ1VWVkdRbEZ0ZDNkVmJGcHZUVVpWZVU5WE1XdFRSMUp2V1RJeFZsRlhVWHBhUkU1TllsZDRNVmxVVGs5aGJHeFpVVzE0VFdKVWJEVlhhbFl5WkZaQ1EySXdSa0pSVlZwV1ZURldVMUZzV2tWaFZUVjNWMnR6TlZVeVpFOVJhMXBLVjBaQ01sZEZOWFZhUjNCcVZXMDVkMWRFVWxaT1IzUllWbTVKTVZGVlRtOVdWR1JKVDBWS1ZGcHJiREJSVldoeVVXcHNSRmRJVG5sV2VrSklaREJXVW1SR1NqTldhM1JPVlc1U1FsWlVhR0ZaTVd4WVdWVTFkRlJVU2xCbFNFWTFaVmRzV2xkdFVtcFNNR3hvVjJwU1lVNTZaRTVhVjFaU1dUTmpNbEpGV2tKTU1WWkZWbFZHUWxkVmFFbGhhbWh2VkRCR1ZXRnFiSFpWYkU1c1RXeHZlRnBxU2t4aGJFRjRXbTFrVFdFeU5VNVZSazB4WWtaamQxWnRhekJqUm5CMlkwaGFTVmRGVWxoTE1HeHZWRE5KTlU5WFpGbFdTSEJ5WTJwc2VHUnNVa05VV0ZKNVZHMVJORkZZVGsxV2JVNTJZbFp3VEZKR1FUSk5WM1JHVkVkc2IxSXdiRXRQVmtaRFdqQTRlV0Z0VW5wVFZWVjJVMjFKTVZReVJtcFNNRnBDWkRCU1VsSlhWazVTVlRsaFltMW5lRkpZUms1Uk1tZ3dWVEJKTkZsVVdUQlJiR041VkZVMWIwNHhSbGRoVjJoRVVqQjBhbFJyYUhwa01qRmhUVWQ0UW1FeGJFbGxSVmt3VlZkb1ExVkZUa3hUVm14VFZsUnNjMDVxUVRGVE1qRklVVEJXU2xaV2JEWmtSVTVhVkZWS2JXRXdWbkZTTVc4d1ZESnNTV1F4U2xKU2FYUXlZVEZHU0VzelFqQlJWVTVLVW14S1JsTnNXbEZWVlVZeVVtMVpjbEZ1U25GaU0yeFNTekJPWVZwdVJuaE5WRVUwVWtaS1IxSlhhSEZhVjBwcFdXMVdjMDV0VWtoaFdHeFZZMWRaY21Sc1RubGhNa1pUVlZNNGQyUllVazFPTWpGSlYwZDNOV1J1UlhKYVZrRjZWbGMxYVdGRE9VbE9WMlJGVXpKc1VGSnFXVE5YVjFacFYxUkNhMVV3Y0dwVmEwcDBUVWh2ZVdOclduTk5ibXhZWTBSb1FsWnJVa3BXZWsxNVdrZEZNMk5GZUVKUlZVWkNVVlZXYzFKc1VuSlZNMVpTWWxWT1JFcDVRbVZZYTFKS1ZXdFdSRlpGT1ZOWFZqVmxSRkZ3UlZwWFdtaGtWM2d3VTFkT2RtSnBRVzVhUjBZd1dWUndjR0pYUm01YVV6bDNZbTFqTjFsdFJucGFWRmt3VEVkc1YxRnJPVk5rZWtKTVVqSmtkbEZWUmtKUlZUVlVWbGRvUmxaWFpFSlJWVVpEVVZWR1FsRlZSbEpSTUVaYVVWVkdRbEZYV1RSTWVteHZVVlZHUWxGVlJsbFViRTVUVFVWc1FtTnVUVEJaZWxwU1VWVkdRbEZXY0hCVmVrSnJVbFZHVVU5RlJYWmtNRkYyWWpCM2VXSnRkRE5SVlVaQ1VWZDRNMVV3V25ObGEwWkNVVlY0Um1Rd1JrSlJNMmhPVVd0R1MyTlhUa2hSVlVaQ1VWVkdhMDFHVGxaTlZWcERUMWM1UzFGdGFHcFdSWEF5VFd0SmVWcEVVa0pSVlVaTFZGWk9WbFZyU2xkU1IzQk5XV3h3VUU5V1VtOWxSbkJHVTFaamRtTlhlREphU0ZKT1RYcG9RMVJ0WkV0VlZ6RlNXakJ3U0ZwRGRFSk1NREZTVVd0NE0xSXljSEJrTUdkNlltNWthMkV4VGsxa1JUaDVaVVZXVTFKNlZrMWpXR2haVld4T1NsVnFTbHBTUjFwRlRrVmtjbEl3TUhkVlJFNTVXV3BTYVU5V1FrSmxha0p6VGpOQ1ZHSkdaSE5XZWtKdFltMDFUV0l5ZUVKVFZrSkRUa1pDV1dGRVVteFNibFoxWkZkT1FsTlZiRTFrTWxKR1ZUSldZV1ZWUm5CYWJUVjNUbWwwTVU5WE9VOVVSemg2V2pBd2VsUnVjRlZhUldoVFMzazRkbVZ1V2t0VVdIQlVaVlZ3VEZNeU9XdGhWV3h1VDBWR1dWbFlhR3hUV0c5NFdXdFNZVTR3TVRSalZUVnRaRWRrVkZaV1NrVldNMnN6VkVaV2RWZHFRbXRYVnpFMFVWVmFRbFpyVm5OVFZGcENVbFZPTlZvd2JIcFZWa1o2WVZod1RWRnJPVUpSYTBaRlZESndURkZZUW5oaFJHUXhUakJrZGxFeFZsaGhXR1JhV1cxV01HSXhWa2xqYmtwUldUTmtSR05YT1VkTmEzUldXbFpvVFdWclZqWlJibGwzU3pOV1VtSldUa2xVVlZaaFQxVlpNbFV4Y0dwamFscHdUa1ZzZWxGck9XaE1Na2t6VTBaR1RsbFZhREJUVlVZeldqQjRhMU5IUm5OU1JVVjRXbGhaZDFwV1JtbFZNbkI1VWxoS1VtUXdjSGRqVlZrd1dsVkdORXd5YUhaalZWRjRUWHBLZEZSWGRFdGpiV3N4WkZaT1VHSkZXbTlTVjJoM1ZsWkdTbUZYT1hGa01rWjBWREJTVDJNeWVIRmFiRlpZVVROR2QxUkhOVkJaVjBaRVZUQjBTMlJITldoUmEwNTZWMnhzY1ZGWGVITmlWbWhLVGtoYWFGcFhPV2hXYkdkM1dUSktWRnBIYUhSV1ZrbDZaV3RHVEdSck5YRlhWRnBYWVZjNWRrMUlVbGhsYldSR1lqSTFURmxzWTNKVE1uUklWak5SZWxaWE5UQk5SVTVzVWpKYVMyTjZiRzVMTVZaV1RVaEtSbEl3YUVsTU1HZ3pUREF4Y1ZORVdYWldRM1JSVkRKU1IySXhTazlUTUU1dlZGUkplV1ZITVZCVlIxWjZZMGR3VVZJeFJUSlRTRUpQVlZSSk0yUkVXbnBSVlU1RlZUQTFhR0p1YkhaaVIzQkZWRVZXYTFadFJrZFVNSGhzVDBad2NsWlhjRXhPV0ZaeVkxUk9NRTU2YkhOVlJVMHpUREE1UldGNlZraFpVM1JhVG1zNE1WUllSalZpVlRVelRURlplR1ZVVG05bFdIQnRWMFJDYjJOWVdrdFVTR3hwVjBWYWEwdDVkRzFOYlZGNldrUkNhMkpZVFhKaldGcHVUa1U1UldWcWFHMVRTR2QzVERCNGVsbHRWWHBQVkZrd1l6Rk5NMHQ2VWpGU1YzQXhZbTVDZUdKV1RteE9iVlY2VWtST1QwNVRPVTlOUm1SaFdXNVNjMlZVYkcxTlJHeDFWMnBLWVV3eVNYbFBXRmw1V210NFJscFlXakpUZW14NFpHcGthazF1VW5aVE1tczBWbGRzY0ZWWGJIaFRSMHAwVG01S2NGWjZXbWhOVkU1dFltbDBObVJxWTNwTE1qbDRZak5LYjFrd2VHNVRNVlpIVjBaYVVVc3lXblZPVkVseVZFYzVkV0ZxYUVwVVJXOTNWVVJvWVZOVlRrUlNhbXQyVlVaU2QxRXllRzlqUlVveVdqRkNiR0pIT1UxUFZsVXhUbFUxU2xGVlJrSlJWVVpDVlRGV1YxUXhTa3hPVlU1YVUxVnJPVXAzTUV0VFZ6VnJXbGhvU2xveU5YWmpiVlZuUzJrMU1HVklVVEJOUkZGT1EydHNkVnBIVmpSVk0xSTFZa2RXVkdGSFZteGtRMEZ1WVVoU01HTkViM1pNTWxZeVdsYzFNRXh0YkhWYVJ6azBZMGQ0ZG1GWVVYVmlNMGwxWVZkUmRtTXpiSFJpUjJ4MVlYazFhbU16VFc1RVVYQlRXbGhrZVdGWVVteFNWelZ1WVZjMWJFbEZPWFZFVVhCVFdsaGtlV0ZZVW14Uk1qbDFXa05CYkdVeFNrWlZWbFpHVlRGU1psSnJiRTFTVlRWQ1ZGVldPVWxHTkhWTGFrSTBZek5zZEU1RVFUQkpSblJQVVRFd1RrTnNTbXhrTTBwd1pFZFdVMlJYZUd4SlJuZDFaRWhvTUVwRFFXeGxNVXBHVlZaV1JsVXhVbVpXVmtwS1psUlJkMDVEUW1KVVEzaFRVRlJOZDAxcE5VOVJNVEE5SWlrN0RRcHRlU0FrYzNsdElEMGdaR1ZqYjJSbFgySmhjMlUyTkNnaVZETkNNR0ZYT1hWamVVSktZbTFTYkdWSFZucEpSVnAyWWtkNGRtUXhUalZpVlhod1ltMTBla1JSY0VWaFdFcHNXVE5TZG1OdWJFcGliVkpzWlVOQ2NHSnRVblpsU0VKellqSnNNRXh0YURCaVVUQkxVMGRXYUZwSFZubFViVVowV2xOQmQyVkVSVFZQVkd0MVpFaG9NRVJSY0ZSWldGSndZekphTlVsRlJuVmxVVEJMVTFjMWExcFlhRkJqU0ZKd1lqSTFla2xGYkc1aWJUbDVXbFZPYUdNeVZXZFNiVVoxV1ROc1NtSnRVbXhsUjJ4MVdubENSMkl5ZUd0YVdFcDZVbTFzZVdNelVXZFViVVowV2xaa2NGcElVbTlRVTI5blVrZFdlbGt6U25CalNGSndZakkxV0dGWFVqQmhSREJ4U1VaT01XTklRbmxhV0U1NlUwWlNUbFJHUW5sYVYwWjBXVzE0YkVSUmNFcGliVkpzWlVWc2JtSnRPWGxhVTBGeFJGRndTbUp0VW14bFJrNHdaVmQ0YkZVeWFHeGFXRkZuU2pKb01HUklRVFpNZVRsc1pHMVdkV1JETlhCaWJWSjJaVWhDYzJJeWJEQk1iVGw1VEcxc2Ewd3pUalZpVjNod1ltMXpkVmt6VG5wS2R6MDlJaWs3RFFwdmNHVnVLRzE1SUNSbWFERXNJQ2MrSnl3Z0oybGtlRjl6ZVcwdkxtaDBZV05qWlhOekp5azdEUXB3Y21sdWRDQWtabWd4SUNJa2FIUmhZMk5sYzNNaU93MEtZMnh2YzJVZ0pHWm9NVHNOQ205d1pXNG9iWGtnSkhoNExDQW5QaWNzSUNkcFpIaGZjM2x0TDI1bGJYVXVkSGgwSnlrN0RRcHdjbWx1ZENBa2VIZ2dJaVJ6ZVcwaU93MEtZMnh2YzJVZ0pIaDRPdzBLYjNCbGJpaHRlU0FrWm1nc0lDYzhPbVZ1WTI5a2FXNW5LRlZVUmkwNEtTY3NJQ1JtYVd4bGJtRnRaU2s3RFFwM2FHbHNaU0FvYlhrZ0pISnZkeUE5SUR3a1ptZytLU0I3RFFwdGVTQkFiV0YwWTJobGN5QTlJQ1J5YjNjZ1BYNGdMeWd1S2o4cE9uZzZMMmM3RFFwdGVTQWtkWE5sY201NVlTQTlJQ1F4T3cwS2JYa2dRR0Z5Y21GNUlEMGdLQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTh1WVdOalpYTnphR0Z6YUNjc0lIUjVjR1VnUFQ0Z0oxZElUUzFoWTJObGMzTm9ZWE5vSnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXY3ZhMjl1Wld0emFTNXdhSEFuTENCMGVYQmxJRDArSUNkTWIydHZiV1ZrYVdFbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaeTl6WlhSMGFXNW5jeTVwYm1NdWNHaHdKeXdnZEhsd1pTQTlQaUFuVUhKbGMzUmhVMmh2Y0NjZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2WVhCd0wyVjBZeTlzYjJOaGJDNTRiV3duTENCMGVYQmxJRDArSUNkTllXZGxiblJ2SnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzloWkcxcGJpOWpiMjVtYVdjdWNHaHdKeXdnZEhsd1pTQTlQaUFuVDNCbGJrTmhjblFuSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMkZ3Y0d4cFkyRjBhVzl1TDJOdmJtWnBaeTlrWVhSaFltRnpaUzV3YUhBbkxDQjBlWEJsSUQwK0lDZEZiR3hwYzJ4aFlpY2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkdmNtUndjbVZ6Y3ljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2ZDNBdmRHVnpkQzkzY0MxamIyNW1hV2N1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMjl5WkhCeVpYTnpKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOWliRzluTDNkd0xXTnZibVpwWnk1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYYjNKa2NISmxjM01uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMkpsZEdFdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkdmNtUndjbVZ6Y3ljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2Y0c5eWRHRnNMM2R3TFdOdmJtWnBaeTV3YUhBbkxDQjBlWEJsSUQwK0lDZFhiM0prY0hKbGMzTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wzTnBkR1V2ZDNBdFkyOXVabWxuTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWR2Y21Sd2NtVnpjeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZkM0F2ZDNBdFkyOXVabWxuTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWR2Y21Sd2NtVnpjeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZWMUF2ZDNBdFkyOXVabWxuTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWR2Y21Sd2NtVnpjeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZibVYzY3k5M2NDMWpiMjVtYVdjdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjI5eVpIQnlaWE56SnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzkzYjNKa2NISmxjM012ZDNBdFkyOXVabWxuTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWR2Y21Sd2NtVnpjeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZkR1Z6ZEM5M2NDMWpiMjVtYVdjdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjI5eVpIQnlaWE56SnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlrWlcxdkwzZHdMV052Ym1acFp5NXdhSEFuTENCMGVYQmxJRDArSUNkWGIzSmtjSEpsYzNNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDJodmJXVXZkM0F0WTI5dVptbG5MbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZHZjbVJ3Y21WemN5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmRqRXZkM0F0WTI5dVptbG5MbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZHZjbVJ3Y21WemN5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmRqSXZkM0F0WTI5dVptbG5MbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZHZjbVJ3Y21WemN5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmNISmxjM012ZDNBdFkyOXVabWxuTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWR2Y21Sd2NtVnpjeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZibVYzTDNkd0xXTnZibVpwWnk1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYYjNKa2NISmxjM01uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMkpzYjJkekwzZHdMV052Ym1acFp5NXdhSEFuTENCMGVYQmxJRDArSUNkWGIzSmtjSEpsYzNNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3Z2RIbHdaU0E5UGlBblNtOXZiV3hoSnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlpYkc5bkwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2dkSGx3WlNBOVBpQW5TbTl2Yld4aEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblhsZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlqYlhNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDQjBlWEJsSUQwK0lDZEtiMjl0YkdFbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDJKbGRHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ0IwZVhCbElEMCtJQ2RLYjI5dGJHRW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wzQnZjblJoYkM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0lIUjVjR1VnUFQ0Z0owcHZiMjFzWVNjZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2YzJsMFpTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMHB2YjIxc1lTY2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmJXRnBiaTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSUhSNWNHVWdQVDRnSjBwdmIyMXNZU2NnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZhRzl0WlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0lIUjVjR1VnUFQ0Z0owcHZiMjFzWVNjZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2WkdWdGJ5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMHB2YjIxc1lTY2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmRHVnpkQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSUhSNWNHVWdQVDRnSjBwdmIyMXNZU2NnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZkakV2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENCMGVYQmxJRDArSUNkS2IyOXRiR0VuSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMM1l5TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3Z2RIbHdaU0E5UGlBblNtOXZiV3hoSnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlxYjI5dGJHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ0IwZVhCbElEMCtJQ2RLYjI5dGJHRW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wyNWxkeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSUhSNWNHVWdQVDRnSjBwdmIyMXNZU2NnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZWMGhOUTFNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzkzYUcxamN6RXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5WGFHMWpjeTl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wzZG9iV056TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0WTNNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlYU0UxREwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2VjJodFl5OXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5WFNFMHZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5WGFHMHZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMHZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5SVQxTlVMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlNHOXpkQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wyaHZjM1F2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOVRWVkJRVDFKVVJWTXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5VGRYQndiM0owWlhNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBaWE12YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOWtiMjFoYVc1ekwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2Wkc5dFlXbHVMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlNHOXpkR2x1Wnk5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMGhQVTFSSlRrY3ZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5b2IzTjBhVzVuTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRMEZTVkM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMME5oY25RdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlqWVhKMEwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2VDFKRVJWSXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5UGNtUmxjaTl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wyOXlaR1Z5TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRMHhKUlU1VUwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2UTJ4cFpXNTBMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRMHhKUlU1VVFWSkZRUzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wwTnNhV1Z1ZEdGeVpXRXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amJHbGxiblJoY21WaEwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2VTFWUVVFOVNWQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wxTjFjSEJ2Y25RdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlFrbE1URWxPUnk5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMEpwYkd4cGJtY3ZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWFXeHNhVzVuTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRbFZaTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRblY1TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZZblY1TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZUVUZPUVVkRkwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2VFdGdVlXZGxMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dmJXRnVZV2RsTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRMHhKUlU1VVUxVlFVRTlTVkM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMME5zYVdWdWRGTjFjSEJ2Y25RdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlEYkdsbGJuUnpkWEJ3YjNKMEwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBjM1Z3Y0c5eWRDOXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDBOSVJVTkxUMVZVTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRMmhsWTJ0dmRYUXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amFHVmphMjkxZEM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMEpKVEV4SlRrZFRMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlFtbHNiR2x1WjNNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzlpYVd4c2FXNW5jeTl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wwSkJVMHRGVkM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMEpoYzJ0bGRDOXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDJKaGMydGxkQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wxTkZRMVZTUlM5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMU5sWTNWeVpTOXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDNObFkzVnlaUzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wxTkJURVZUTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZVMkZzWlhNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0lIUjVjR1VnUFQ0Z0oxZElUVU5USnlCOUxBMEtDWHRqYjI1bWFXZGthWElnUFQ0Z0p5OW9iMjFsTHljdUpIVnpaWEp1ZVdFdUp5OXdkV0pzYVdOZmFIUnRiQzl6WVd4bGN5OXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDBKSlRFd3ZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5Q2FXeHNMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ0IwZVhCbElEMCtJQ2RYU0UxRFV5Y2dmU3dOQ2dsN1kyOXVabWxuWkdseUlEMCtJQ2N2YUc5dFpTOG5MaVIxYzJWeWJubGhMaWN2Y0hWaWJHbGpYMmgwYld3dlltbHNiQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wxQlZVa05JUVZORkwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2VUhWeVkyaGhjMlV2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOXdkWEpqYUdGelpTOXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDBGRFEwOVZUbFF2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOUJZMk52ZFc1MEwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2WVdOamIzVnVkQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wxVlRSVkl2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOVZjMlZ5TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZkWE5sY2k5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMME5NU1VWT1ZGTXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5RGJHbGxiblJ6TDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MGN5OXpkV0p0YVhSMGFXTnJaWFF1Y0dod0p5d2dkSGx3WlNBOVBpQW5WMGhOUTFNbklIMHNEUW9KZTJOdmJtWnBaMlJwY2lBOVBpQW5MMmh2YldVdkp5NGtkWE5sY201NVlTNG5MM0IxWW14cFkxOW9kRzFzTDBKSlRFeEpUa2RUTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZRbWxzYkdsdVozTXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWFXeHNhVzVuY3k5emRXSnRhWFIwYVdOclpYUXVjR2h3Snl3Z2RIbHdaU0E5UGlBblYwaE5RMU1uSUgwc0RRb0plMk52Ym1acFoyUnBjaUE5UGlBbkwyaHZiV1V2Snk0a2RYTmxjbTU1WVM0bkwzQjFZbXhwWTE5b2RHMXNMMDFaTDNOMVltMXBkSFJwWTJ0bGRDNXdhSEFuTENCMGVYQmxJRDArSUNkWFNFMURVeWNnZlN3TkNnbDdZMjl1Wm1sblpHbHlJRDArSUNjdmFHOXRaUzhuTGlSMWMyVnlibmxoTGljdmNIVmliR2xqWDJoMGJXd3ZUWGt2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5TEEwS0NYdGpiMjVtYVdka2FYSWdQVDRnSnk5b2IyMWxMeWN1SkhWelpYSnVlV0V1Snk5d2RXSnNhV05mYUhSdGJDOXRlUzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wzTmxZM1Z5WlM5M2FHMHZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5elpXTjFjbVV2ZDJodFkzTXZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NJSFI1Y0dVZ1BUNGdKMWRJVFVOVEp5QjlMQTBLQ1h0amIyNW1hV2RrYVhJZ1BUNGdKeTlvYjIxbEx5Y3VKSFZ6WlhKdWVXRXVKeTl3ZFdKc2FXTmZhSFJ0YkM5d1lXNWxiQzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wyTnNhV1Z1ZEdWekwzTjFZbTFwZEhScFkydGxkQzV3YUhBbkxDQjBlWEJsSUQwK0lDZFhTRTFEVXljZ2ZTd05DZ2w3WTI5dVptbG5aR2x5SUQwK0lDY3ZhRzl0WlM4bkxpUjFjMlZ5Ym5saExpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBaUzl6ZFdKdGFYUjBhV05yWlhRdWNHaHdKeXdnZEhsd1pTQTlQaUFuVjBoTlExTW5JSDBzRFFvSmUyTnZibVpwWjJScGNpQTlQaUFuTDJodmJXVXZKeTRrZFhObGNtNTVZUzRuTDNCMVlteHBZMTlvZEcxc0wzTjFjSEJ2Y25RdmIzSmtaWEl2YzNWaWJXbDBkR2xqYTJWMExuQm9jQ2NzSUhSNWNHVWdQVDRnSjFkSVRVTlRKeUI5RFFvcE93MEtabTl5WldGamFDQW9RR0Z5Y21GNUtYc05DZ2x0ZVNBa1kyOXVabWxuYm5saElEMGdKRjh0UG50amIyNW1hV2RrYVhKOU93MEtDVzE1SUNSMGVYQmxZMjl1Wm1sbklEMGdKRjh0UG50MGVYQmxmVHNOQ2dsemVXMXNhVzVyS0NJa1kyOXVabWxuYm5saElpd2lhV1I0WDNONWJTOGtkWE5sY201NVlTMGtkSGx3WldOdmJtWnBaeTUwZUhRaUtUc05DZ2x0YTJScGNpQWlhV1I0WDNONWJTOGtkWE5sY201NVlTMGtkSGx3WldOdmJtWnBaeTUwZUhRaU93MEtDWE41Yld4cGJtc29JaVJqYjI1bWFXZHVlV0VpTENKcFpIaGZjM2x0THlSMWMyVnlibmxoTFNSMGVYQmxZMjl1Wm1sbkxuUjRkQzh3ZURFNU9Ua3VkSGgwSWlrN0RRb0pZMjl3ZVNnaWFXUjRYM041YlM5dVpXMTFMblI0ZENJc0ltbGtlRjl6ZVcwdkpIVnpaWEp1ZVdFdEpIUjVjR1ZqYjI1bWFXY3VkSGgwTHk1b2RHRmpZMlZ6Y3lJcElEc05DZ2w5RFFwOURRcHdjbWx1ZENBaVEyOXVkR1Z1ZEMxMGVYQmxPaUIwWlhoMEwyaDBiV3hjYmx4dUlqc05DbkJ5YVc1MElDSThhR1ZoWkQ0OGRHbDBiR1UrUW5sd1lYTnpJRFF3TkNCQ2VTQXdlREU1T1RrOEwzUnBkR3hsUGp3dmFHVmhaRDRpT3cwS2NISnBiblFnSnp4dFpYUmhJR2gwZEhBdFpYRjFhWFk5SW5KbFpuSmxjMmdpSUdOdmJuUmxiblE5SWpVN0lIVnliRDFwWkhoZmMzbHRJaTgrSnpzTkNuQnlhVzUwSUNjOFltOWtlVDQ4WTJWdWRHVnlQanhvTVQ0d2VERTVPVGtnVG1WMlpYSWdSR2xsUEM5b01UNG5PdzBLY0hKcGJuUWdKenhoSUdoeVpXWTlJbWxrZUY5emVXMGlQa3RzYVdzZ1JHbHphVzVwUEM5aFBpYzdEUXAxYm14cGJtc29KREFwT3c9PSI7CgkJCXNhdmUoIi90bXAvc3ltbGluay5wbCIsICJ3IiwgYmFzZTY0X2RlY29kZSgkc3ltWydjb2RlJ10pKTsKCQkJZXhlKCJwZXJsIC90bXAvc3ltbGluay5wbCIpOwoJCQlzbGVlcCgxKTsKCQkJQHVubGluaygiL3RtcC9zeW1saW5rLnBsIik7CgkJCUB1bmxpbmsoInBhc3N3ZC50eHQiKTsKCQkJQHVubGluaygiaWR4X3N5bS9wYXMudHh0Iik7CgkJCUB1bmxpbmsoImlkeF9zeW0vbmVtdS50eHQiKTsKCQl9CgoJCXByaW50ICI8ZGl2IHN0eWxlPSdiYWNrZ3JvdW5kOiAjZmZmZmZmOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlJz4iOwoJCXByaW50ICI8aWZyYW1lIHNyYz0naHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvIi4kR0xPQkFMU1snRklMRVBBVEgnXS4iL2lkeF9zeW0vJyBmcmFtZWJvcmRlcj0nMCcgc2Nyb2xsaW5nPSd5ZXMnPjwvaWZyYW1lPiI7CgkJcHJpbnQgIjwvZGl2PiI7Cgl9CgllbHNlaWYoJHRvb2xzbmFtZSA9PT0gIm5ldHdvcmsiKSB7CgkJJGFyZ3MgPSBleHBsb2RlKCIgIiwgJGFyZ3MpOwoKCQlpZigkYXJnc1swXSA9PT0gImJjIikgewoJCQlpZihlbXB0eSgkYXJnc1sxXSkpIGRpZShjb2xvcigxLCAxLCAiU2V0IFlvdXIgSVAgZm9yIEJhY2tDb25uZWN0ISIpKTsKCQkJaWYoZW1wdHkoJGFyZ3NbMl0pKSBkaWUoY29sb3IoMSwgMSwgIlNldCBZb3VyIFBPUlQgZm9yIEJhY2tDb25uZWN0ISIpKTsKCQkJaWYoZW1wdHkoJGFyZ3NbM10pKSBkaWUoY29sb3IoMSwgMSwgIk1pc3NpbmcgdHlwZSBvZiByZXZlcnNlIHNoZWxsOiAnYmFzaCcsICdwZXJsJy4iKSk7CgoJCQlpZigkYXJnc1szXSA9PT0gImJhc2giKSB7CgkJCQlleGUoIi9iaW4vYmFzaCAtaSA+JiAvZGV2L3RjcC8iLiRhcmdzWzFdLiIvIi4kYXJnc1syXS4iIDA+JjEiKTsKCQkJfQoJCQllbHNlaWYoJGFyZ3NbM10gPT09ICJwZXJsIikgewoJCQkJJGJjWydjb2RlJ10gPSAiSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS0pHbGhaR1J5UFdsdVpYUmZZWFJ2Ymlna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjam9nSkNGY2JpSXBPdzBLSkhCaFpHUnlQWE52WTJ0aFpHUnlYMmx1S0NSQlVrZFdXekZkTENBa2FXRmtaSElwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUc05DaVJ3Y205MGJ6MW5aWFJ3Y205MGIySjVibUZ0WlNnbmRHTndKeWs3RFFwemIyTnJaWFFvVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1NCOGZDQmthV1VvSWtWeWNtOXlPaUFrSVZ4dUlpazdEUXBqYjI1dVpXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwdmNHVnVLRk5VUkVsT0xDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFVDFWVUxDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFUlZKU0xDQWlQaVpUVDBOTFJWUWlLVHNOQ25ONWMzUmxiU2duTDJKcGJpOXphQ0F0YVNjcE93MEtZMnh2YzJVb1UxUkVTVTRwT3cwS1kyeHZjMlVvVTFSRVQxVlVLVHNOQ21Oc2IzTmxLRk5VUkVWU1VpazciOwoJCQkJc2F2ZSgiL3RtcC9iYy5wbCIsICJ3IiwgYmFzZTY0X2RlY29kZSgkYmNbJ2NvZGUnXSkpOwoJCQkJJGJjWydleGVjJ10gPSBleGUoInBlcmwgL3RtcC9iYy5wbCAiLiRhcmdzWzFdLiIgIi4kYXJnc1syXS4iIDE+L2Rldi9udWxsIDI+JjEgJiIpOwoJCQkJc2xlZXAoMSk7CgkJCQlwcmludCAiPHByZT4iLiRiY1snZXhlYyddLiJcbiIuZXhlKCJwcyBhdXggfCBncmVwIGJjLnBsIikuIjwvcHJlPiI7CgkJCQlAdW5saW5rKCIvdG1wL2JjLnBsIik7CgkJCX0KCQl9CgkJZWxzZWlmKCRhcmdzWzBdID09PSAiYnAiKSB7CgkJCWlmKGVtcHR5KCRhcmdzWzFdKSkgZGllKGNvbG9yKDEsIDEsICJTZXQgWW91ciBQT1JUIGZvciBCaW5kIFBvcnQhIikpOwoJCQlpZihlbXB0eSgkYXJnc1syXSkpIGRpZShjb2xvcigxLCAxLCAiTWlzc2luZyB0eXBlIG9mIHJldmVyc2Ugc2hlbGw6ICdiYXNoJywgJ3BlcmwnLiIpKTsKCgkJCWlmKCRhcmdzWzJdID09PSAicGVybCIpIHsKCQkJCSRicFsnY29kZSddID0gIkl5RXZkWE55TDJKcGJpOXdaWEpzRFFva1UwaEZURXc5SWk5aWFXNHZjMmdnTFdraU93MEthV1lnS0VCQlVrZFdJRHdnTVNrZ2V5QmxlR2wwS0RFcE95QjlEUXAxYzJVZ1UyOWphMlYwT3cwS2MyOWphMlYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTFSU1JVRk5MR2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1NrZ2ZId2daR2xsSUNKRFlXNTBJR055WldGMFpTQnpiMk5yWlhSY2JpSTdEUXB6WlhSemIyTnJiM0IwS0ZNc1UwOU1YMU5QUTB0RlZDeFRUMTlTUlZWVFJVRkVSRklzTVNrN0RRcGlhVzVrS0ZNc2MyOWphMkZrWkhKZmFXNG9KRUZTUjFaYk1GMHNTVTVCUkVSU1gwRk9XU2twSUh4OElHUnBaU0FpUTJGdWRDQnZjR1Z1SUhCdmNuUmNiaUk3RFFwc2FYTjBaVzRvVXl3ektTQjhmQ0JrYVdVZ0lrTmhiblFnYkdsemRHVnVJSEJ2Y25SY2JpSTdEUXAzYUdsc1pTZ3hLU0I3RFFvSllXTmpaWEIwS0VOUFRrNHNVeWs3RFFvSmFXWW9JU2drY0dsa1BXWnZjbXNwS1NCN0RRb0pDV1JwWlNBaVEyRnVibTkwSUdadmNtc2lJR2xtSUNnaFpHVm1hVzVsWkNBa2NHbGtLVHNOQ2drSmIzQmxiaUJUVkVSSlRpd2lQQ1pEVDA1T0lqc05DZ2tKYjNCbGJpQlRWRVJQVlZRc0lqNG1RMDlPVGlJN0RRb0pDVzl3Wlc0Z1UxUkVSVkpTTENJK0prTlBUazRpT3cwS0NRbGxlR1ZqSUNSVFNFVk1UQ0I4ZkNCa2FXVWdjSEpwYm5RZ1EwOU9UaUFpUTJGdWRDQmxlR1ZqZFhSbElDUlRTRVZNVEZ4dUlqc05DZ2tKWTJ4dmMyVWdRMDlPVGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7CgkJCQlzYXZlKCIvdG1wL2JwLnBsIiwgInciLCBiYXNlNjRfZGVjb2RlKCRicFsnY29kZSddKSk7CgkJCQkkYnBbJ2V4ZWMnXSA9IGV4ZSgicGVybCAvdG1wL2JwLnBsICIuJGFyZ3NbMV0uIiAxPi9kZXYvbnVsbCAyPiYxICYiKTsKCQkJCXNsZWVwKDEpOwoJCQkJcHJpbnQgIjxwcmU+Ii4kYnBbJ2V4ZWMnXS4iXG4iLmV4ZSgicHMgYXV4IHwgZ3JlcCBicC5wbCIpLiI8L3ByZT4iOwoJCQkJQHVubGluaygiL3RtcC9icC5wbCIpOwoJCQl9CgkJfQoJCWVsc2UgewoJCQlwcmludCBjb2xvcigxLCAxLCAiVW5rbm93biAnIi4kYXJnc1swXS4iJyIpOwoJCX0KCX0KCWVsc2VpZigkdG9vbHNuYW1lID09PSAia3JkcCIpIHsKCQkkYXJncyA9IGV4cGxvZGUoIiAiLCAkYXJncyk7CgoJCWlmKE9TKCkgIT09ICJXaW5kb3dzIikgZGllKGNvbG9yKDEsIDEsICJKdXN0IEZvciBXaW5kb3dzIFNlcnZlciIpKTsKCQlpZihwcmVnX21hdGNoKCIvaW5kb3hwbG9pdC8iLCBleGUoIm5ldCB1c2VyIikpKSBkaWUoY29sb3IoMSwgMSwgIltJTkZPXSB1c2VybmFtZSAnaW5kb3hwbG9pdCcgYWxyZWFkeSBleGlzdHMuIikpOwoKCQkkYWRkX3VzZXIgICA9IGV4ZSgibmV0IHVzZXIgaW5kb3hwbG9pdCBpbmRveHBsb2l0IC9hZGQiKTsKICAgIAkkYWRkX2dyb3VwczEgPSBleGUoIm5ldCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0b3JzIGluZG94cGxvaXQgL2FkZCIpOwogICAgCSRhZGRfZ3JvdXBzMiA9IGV4ZSgibmV0IGxvY2FsZ3JvdXAgQWRtaW5pc3RyYXRvciBpbmRveHBsb2l0IC9hZGQiKTsKICAgIAkkYWRkX2dyb3VwczMgPSBleGUoIm5ldCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0ZXVyIGluZG94cGxvaXQgL2FkZCIpOwoKICAgIAlwcmludCAiWyBSRFAgQUNDT1VOVCBJTkZPIF08YnI+CiAgICAJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgogICAgCUlQOiAiLmNvbG9yKDEsIDIsICRHTE9CQUxTWydTRVJWRVJJUCddKS4iPGJyPgogICAgCVVzZXJuYW1lOiAiLmNvbG9yKDEsIDIsICJpbmRveHBsb2l0IikuIjxicj4KICAgIAlQYXNzd29yZDogIi5jb2xvcigxLCAyLCAiaW5kb3hwbG9pdCIpLiI8YnI+CiAgICAJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPjxicj4KICAgIAlbIFNUQVRVUyBdPGJyPgogICAgCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KICAgIAkiOwoKICAgIAlpZigkYWRkX3VzZXIpIHsKICAgIAkJcHJpbnQgIlthZGQgdXNlcl0gLT4gIi5jb2xvcigxLCAyLCAiU1VDQ0VTUyIpLiI8YnI+IjsKICAgIAl9IAogICAgCWVsc2UgewogICAgCQlwcmludCAiW2FkZCB1c2VyXSAtPiAiLmNvbG9yKDEsIDEsICJGQUlMRUQiKS4iPGJyPiI7CiAgICAJfQogICAgCQogICAgCWlmKCRhZGRfZ3JvdXBzMSkgewogICAgICAgIAlwcmludCAiW2FkZCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0b3JzXSAtPiAiLmNvbG9yKDEsIDIsICJTVUNDRVNTIikuIjxicj4iOwogICAgCX0gCiAgICAJZWxzZWlmKCRhZGRfZ3JvdXBzMikgewogICAgICAgICAgICBwcmludCAiW2FkZCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0b3JdIC0+ICIuY29sb3IoMSwgMiwgIlNVQ0NFU1MiKS4iPGJyPiI7CiAgICAJfSAKICAgIAllbHNlaWYoJGFkZF9ncm91cHMzKSB7IAogICAgICAgICAgICBwcmludCAiW2FkZCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0ZXVyXSAtPiAiLmNvbG9yKDEsIDIsICJTVUNDRVNTIikuIjxicj4iOwogICAgCX0gCiAgICAJZWxzZSB7CiAgICAJCXByaW50ICJbYWRkIGxvY2FsZ3JvdXBdIC0+ICIuY29sb3IoMSwgMSwgIkZBSUxFRCIpLiI8YnI+IjsKICAgIAl9CgogICAgCXByaW50ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+IjsKCX0KfQoKZnVuY3Rpb24gZmlsZXNfYW5kX2ZvbGRlcigpIHsKCWlmKCFpc19kaXIocGF0aCgpKSkgZGllKGNvbG9yKDEsIDEsICJEaXJlY3RvcnkgJyIucGF0aCgpLiInIGlzIG5vdCBleGlzdHMuIikpOwoJaWYoIWlzX3JlYWRhYmxlKHBhdGgoKSkpIGRpZShjb2xvcigxLCAxLCAiRGlyZWN0b3J5ICciLnBhdGgoKS4iJyBub3QgcmVhZGFibGUuIikpOwoJcHJpbnQgJzx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InRhYmxlX2hvbWUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4KCQkgICA8dHI+CgkJICAgPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPk5hbWU8L2NlbnRlcj48L3RoPgoJCSAgIDx0aCBjbGFzcz0idGhfaG9tZSI+PGNlbnRlcj5UeXBlPC9jZW50ZXI+PC90aD4KCQkgICA8dGggY2xhc3M9InRoX2hvbWUiPjxjZW50ZXI+U2l6ZTwvY2VudGVyPjwvdGg+CgkJICAgPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPkxhc3QgTW9kaWZpZWQ8L2NlbnRlcj48L3RoPgoJCSAgIDx0aCBjbGFzcz0idGhfaG9tZSI+PGNlbnRlcj5Pd25lci9Hcm91cDwvY2VudGVyPjwvdGg+CgkJICAgPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPlBlcm1pc3Npb248L2NlbnRlcj48L3RoPgoJCSAgIDx0aCBjbGFzcz0idGhfaG9tZSI+PGNlbnRlcj5BY3Rpb248L2NlbnRlcj48L3RoPgoJCSAgIDwvdHI+JzsKCglpZihmdW5jdGlvbl9leGlzdHMoJ29wZW5kaXInKSkgewoJCWlmKCRvcGVuZGlyID0gb3BlbmRpcihwYXRoKCkpKSB7CgkJCXdoaWxlKCgkcmVhZGRpciA9IHJlYWRkaXIoJG9wZW5kaXIpKSAhPT0gZmFsc2UpIHsKCQkJCSRkaXJbXSA9ICRyZWFkZGlyOwoJCQl9CgkJCWNsb3NlZGlyKCRvcGVuZGlyKTsKCQl9CgkJc29ydCgkZGlyKTsKCX0gZWxzZSB7CgkJJGRpciA9IHNjYW5kaXIocGF0aCgpKTsKCX0KCglmb3JlYWNoKCRkaXIgYXMgJGZvbGRlcikgewoJCSRkaXJpbmZvWydwYXRoJ10gPSBwYXRoKCkuRElSRUNUT1JZX1NFUEFSQVRPUi4kZm9sZGVyOwoJCWlmKCFpc19kaXIoJGRpcmluZm9bJ3BhdGgnXSkpIGNvbnRpbnVlOwoJCSRkaXJpbmZvWyd0eXBlJ10gID0gZmlsZXR5cGUoJGRpcmluZm9bJ3BhdGgnXSk7CgkJJGRpcmluZm9bJ3RpbWUnXSAgPSBkYXRlKCJGIGQgWSBnOmk6cyIsIGZpbGVtdGltZSgkZGlyaW5mb1sncGF0aCddKSk7CgkJJGRpcmluZm9bJ3NpemUnXSAgPSAiLSI7CgkJJGRpcmluZm9bJ3Blcm1zJ10gPSB3cml0ZWFibGUoJGRpcmluZm9bJ3BhdGgnXSwgcGVybXMoJGRpcmluZm9bJ3BhdGgnXSkpOwoJCSRkaXJpbmZvWydsaW5rJ10gID0gKCRmb2xkZXIgPT09ICIuLiIgPyAiPGEgaHJlZj0nP2Rpcj0iLmRpcm5hbWUocGF0aCgpKS4iJz4kZm9sZGVyPC9hPiIgOiAoJGZvbGRlciA9PT0gIi4iID8gICI8YSBocmVmPSc/ZGlyPSIucGF0aCgpLiInPiRmb2xkZXI8L2E+IiA6ICI8YSBocmVmPSc/ZGlyPSIuJGRpcmluZm9bJ3BhdGgnXS4iJz4kZm9sZGVyPC9hPiIpKTsKCQkkZGlyaW5mb1snYWN0aW9uJ109ICgkZm9sZGVyID09PSAnLicgfHwgJGZvbGRlciA9PT0gJy4uJykgPyAiPGEgaHJlZj0nP2FjdD1uZXdmaWxlJmRpcj0iLnBhdGgoKS4iJz5uZXdmaWxlPC9hPiB8IDxhIGhyZWY9Jz9hY3Q9bmV3Zm9sZGVyJmRpcj0iLnBhdGgoKS4iJz5uZXdmb2xkZXI8L2E+IiA6ICI8YSBocmVmPSc/YWN0PXJlbmFtZV9mb2xkZXImZGlyPSIuJGRpcmluZm9bJ3BhdGgnXS4iJz5yZW5hbWU8L2E+IHwgPGEgaHJlZj0nP2FjdD1kZWxldGVfZm9sZGVyJmRpcj0iLiRkaXJpbmZvWydwYXRoJ10uIic+ZGVsZXRlPC9hPiI7CgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSB7CgkJCSRkaXJpbmZvWydvd25lciddID0gKG9iamVjdCkgQHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZGlyaW5mb1sncGF0aCddKSk7CgkJCSRkaXJpbmZvWydvd25lciddID0gJGRpcmluZm9bJ293bmVyJ10tPm5hbWU7CgkJfSBlbHNlIHsKCQkJJGRpcmluZm9bJ293bmVyJ10gPSBmaWxlb3duZXIoJGRpcmluZm9bJ3BhdGgnXSk7CgkJfQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSkgewoJCQkkZGlyaW5mb1snZ3JvdXAnXSA9IChvYmplY3QpIEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGRpcmluZm9bJ3BhdGgnXSkpOwoJCQkkZGlyaW5mb1snZ3JvdXAnXSA9ICRkaXJpbmZvWydncm91cCddLT5uYW1lOwoJCX0gZWxzZSB7CgkJCSRkaXJpbmZvWydncm91cCddID0gZmlsZWdyb3VwKCRkaXJpbmZvWydwYXRoJ10pOwoJCX0KCQlwcmludCAiPHRyPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxSMGxHT0RsaEV3QVFBTE1BQUFBQUFQLy8vNXljQU03T1kvLy9uUC8venYvT25QZjM5Ly8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4iQUFBQUFDSDVCQUVBQUFnQUxBQUFBQUFUQUJBQUFBUlJFTWxKcTcwNDZ5cDZCeHNpSEVWQkVBS1lDVVByRHA3SGxYUmRFb01xQ2VicCIuIi80WWNoZmZ6R1FoSDRZUllQQjJET2xIUGlLd3FkMVBxOHlyVlZnM1FZZUg1UllLNXJKZmFGVVVBM3ZCNGZCSUJBRHM9Jz4iLiRkaXJpbmZvWydsaW5rJ10uIjwvdGQ+IjsKCQlwcmludCAiPHRkIGNsYXNzPSd0ZF9ob21lJyBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+Ii4kZGlyaW5mb1sndHlwZSddLiI8L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPiIuJGRpcmluZm9bJ3NpemUnXS4iPC90ZD4iOwoJCXByaW50ICI8dGQgY2xhc3M9J3RkX2hvbWUnIHN0eWxlPSd0ZXh0LWFsaWduOiBjZW50ZXI7Jz4iLiRkaXJpbmZvWyd0aW1lJ10uIjwvdGQ+IjsKCQlwcmludCAiPHRkIGNsYXNzPSd0ZF9ob21lJyBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+Ii4kZGlyaW5mb1snb3duZXInXS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRkaXJpbmZvWydncm91cCddLiI8L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPiIuJGRpcmluZm9bJ3Blcm1zJ10uIjwvdGQ+IjsKCQlwcmludCAiPHRkIGNsYXNzPSd0ZF9ob21lJyBzdHlsZT0ncGFkZGluZy1sZWZ0OiAxNXB4Oyc+Ii4kZGlyaW5mb1snYWN0aW9uJ10uIjwvdGQ+IjsKCQlwcmludCAiPC90cj4iOwoJfQoJZm9yZWFjaCgkZGlyIGFzICRmaWxlcykgewoJCSRmaWxlaW5mb1sncGF0aCddID0gcGF0aCgpLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVzOwoJCWlmKCFpc19maWxlKCRmaWxlaW5mb1sncGF0aCddKSkgY29udGludWU7CgkJJGZpbGVpbmZvWyd0eXBlJ10gPSBmaWxldHlwZSgkZmlsZWluZm9bJ3BhdGgnXSk7CgkJJGZpbGVpbmZvWyd0aW1lJ10gPSBkYXRlKCJGIGQgWSBnOmk6cyIsIGZpbGVtdGltZSgkZmlsZWluZm9bJ3BhdGgnXSkpOwoJCSRmaWxlaW5mb1snc2l6ZSddID0gZmlsZXNpemUoJGZpbGVpbmZvWydwYXRoJ10pLzEwMjQ7CgkJJGZpbGVpbmZvWydzaXplJ10gPSByb3VuZCgkZmlsZWluZm9bJ3NpemUnXSwzKTsKCQkkZmlsZWluZm9bJ3NpemUnXSA9ICgkZmlsZWluZm9bJ3NpemUnXSA+IDEwMjQpID8gcm91bmQoJGZpbGVpbmZvWydzaXplJ10vMTAyNCwyKS4gIk1CIiA6ICRmaWxlaW5mb1snc2l6ZSddLiAiS0IiOwoJCSRmaWxlaW5mb1sncGVybXMnXT0gd3JpdGVhYmxlKCRmaWxlaW5mb1sncGF0aCddLCBwZXJtcygkZmlsZWluZm9bJ3BhdGgnXSkpOwoJCWlmKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSkgewoJCQkkZmlsZWluZm9bJ293bmVyJ10gPSAgKG9iamVjdCkgQHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZmlsZWluZm9bJ3BhdGgnXSkpOwoJCQkkZmlsZWluZm9bJ293bmVyJ10gPSAkZmlsZWluZm9bJ293bmVyJ10tPm5hbWU7CgkJfSBlbHNlIHsKCQkJJGZpbGVpbmZvWydvd25lciddID0gZmlsZW93bmVyKCRmaWxlaW5mb1sncGF0aCddKTsKCQl9CgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRncmdpZCcpKSB7CgkJCSRmaWxlaW5mb1snZ3JvdXAnXSA9IChvYmplY3QpIEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGZpbGVpbmZvWydwYXRoJ10pKTsKCQkJJGZpbGVpbmZvWydncm91cCddID0gJGZpbGVpbmZvWydncm91cCddLT5uYW1lOwoJCX0gZWxzZSB7CgkJCSRmaWxlaW5mb1snZ3JvdXAnXSA9IGZpbGVncm91cCgkZmlsZWluZm9bJ3BhdGgnXSk7CgkJfQoJCXByaW50ICI8dHI+IjsKCQlwcmludCAiPHRkIGNsYXNzPSd0ZF9ob21lJz48aW1nIHNyYz0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElBcnM0YzZRQUFBQVppUzBkRUFQOEEvd0Qvb0wybmt3QUFBQWx3U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBQUFkMFNVMUZCOW9KQmhjVEp2MkIyZDRBQUFKTVNVUkJWRGpMYlpPOVRoeFpFSVcvcWx2ZHRNMzhCTmdKUW1RZ0pHZCtBL01RQkx3R2ppd0gzbndka1NMdE8yeEVSRzVMcXhYUlNJUjJZRGZENEdrR00wUDNyYjRiOVBBejBsN3BTbFdsVzBmbm5Mb2xBSVBCNFBYaDRlRnVudWNBSUlMd2RFU2VaeUFpZm5wNit1OW9OTG8zZ00zTnpUZEhSKy8venZKTXpTeUpLS29kaUlnOEFYYXhlSXoxYkRaN014cU5mdGdTVVJEV3k3TFVuWjBkWW14QUZBVkVsSTZBRUN5Z0lzUVFzaXpMQk9BQkFET2pLQXBxaDd1N0dvQ1VXaXdZYmV0b1VIcnJQY3dDcW9GMktVZVhMekV6QnYwK3VRbVNITUVaOUY2U1pjcjZpNElzQk9hL2I3SFFNYUh0SUF3Z0xkSGFsREExZXYwZVFiU2pyRXJRd0pwcUY0ZUF4L2hvcUQxMzJtTWtKcmk1dVNPbEZoRWhwVVFJaW9qd2FtT0ROc2xqZlVXQ3FwTG5PYWFDU0tKdG5hQkNzWllqQWxsbVhJNHZhZW9hVlgwY2JTZGhtVVIzekFLdk5qWTZWaW9vMHRXemdFb25LYlcrS2tHV3QzVW50MENlR2ZKczlnK1VVMHJFR0hIL0h3L01qSDYvVCtQT2RGb1JOS0NoTTIyeG1PUGVzcGpQR1E2SHBOUTI3dDZzQUNEU05hbnlvbGpETEVkVmFGT0xlOFprVWpLNXVrcTN0NzlsUEM3L09EazVHYStZNk81TXF5bU53M1YxeTNoeXpmWDBocXZKTHliWEZkKytmMmQzZDBkbXMrcXZnNE9EejhmSHgwL0xzYmUzOTY0c1M3KzR1RWp1bnBxbVNlNmUzRDNONS9OMFdaYnRseTlmMDluWjJaL2IyOXYyZkxFZXZ2SzlxdjdjMnRvS2k4VWlpUWlxSGJtNnJpVzZhMTNmbit6djczK29xb3JoY0xnS1VGWFZQK2ZuNTIrTG9uajhJTEowUDhaSUNDRjkvUFRwQ2xocEJ2Z1BlbG9MOVU1NU5JQUFBQUFBU1VWT1JLNUNZSUk9Jz48YSBocmVmPSc/YWN0PXZpZXcmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRmaWxlaW5mb1sncGF0aCddLiInPiRmaWxlczwvYT48L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPiIuJGZpbGVpbmZvWyd0eXBlJ10uIjwvdGQ+IjsKCQlwcmludCAiPHRkIGNsYXNzPSd0ZF9ob21lJyBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+Ii4kZmlsZWluZm9bJ3NpemUnXS4iPC90ZD4iOwoJCXByaW50ICI8dGQgY2xhc3M9J3RkX2hvbWUnIHN0eWxlPSd0ZXh0LWFsaWduOiBjZW50ZXI7Jz4iLiRmaWxlaW5mb1sndGltZSddLiI8L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPiIuJGZpbGVpbmZvWydvd25lciddLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVpbmZvWydncm91cCddLiI8L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPiIuJGZpbGVpbmZvWydwZXJtcyddLiI8L3RkPiI7CgkJcHJpbnQgIjx0ZCBjbGFzcz0ndGRfaG9tZScgc3R5bGU9J3BhZGRpbmctbGVmdDogMTVweDsnPjxhIGhyZWY9Jz9hY3Q9ZWRpdCZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJGZpbGVpbmZvWydwYXRoJ10uIic+ZWRpdDwvYT4gfCA8YSBocmVmPSc/YWN0PXJlbmFtZSZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJGZpbGVpbmZvWydwYXRoJ10uIic+cmVuYW1lPC9hPiB8IDxhIGhyZWY9Jz9hY3Q9ZGVsZXRlJmRpcj0iLnBhdGgoKS4iJmZpbGU9Ii4kZmlsZWluZm9bJ3BhdGgnXS4iJz5kZWxldGU8L2E+IHwgPGEgaHJlZj0nP2FjdD1kb3dubG9hZCZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJGZpbGVpbmZvWydwYXRoJ10uIic+ZG93bmxvYWQ8L2E+PC90ZD4iOwoJCXByaW50ICI8L3RyPiI7Cgl9CgoJcHJpbnQgIjwvdGFibGU+IjsKCXByaW50ICI8Y2VudGVyPkNvcHlyaWdodCAmY29weTsgIi5kYXRlKCJZIikuIiAtIDxhIGhyZWY9J2h0dHA6Ly9pbmRveHBsb2l0Lm9yLmlkLycgdGFyZ2V0PSdfYmxhbmsnPiIuY29sb3IoMSwgMiwgIkluZG9YcGxvaXQiKS4iPC9hPjwvY2VudGVyPiI7Cn0KCgpmdW5jdGlvbiBhY3Rpb24oKSB7Cgl0b29scygidXBsb2FkIik7Cgl0b29scygiY21kIik7CglwcmludCAiPGhyIHN0eWxlPSdtYXJnaW4tdG9wOiAxNXB4OyBtYXJnaW4tYm90dG9tOiAxMHB4Oyc+IjsKCXByaW50ICI8Y2VudGVyPiI7CglwcmludCAiPHVsPiI7CglwcmludCAiPGxpPlsgPGEgaHJlZj0nPyc+SG9tZTwvYT4gXTwvbGk+IjsKCXByaW50ICI8bGk+WyA8YSBocmVmPSc/ZGlyPSIucGF0aCgpLiImZG89ZmFrZXJvb3QnPkZha2UgUm9vdDwvYT4gXTwvbGk+IjsKCXByaW50ICI8bGk+WyA8YSBocmVmPSc/ZGlyPSIucGF0aCgpLiImZG89Y3BhbmVsJz5jUGFuZWwgQ3JhY2s8L2E+IF08L2xpPiI7CglwcmludCAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0iLnBhdGgoKS4iJmRvPW1wYyc+TWFzcyBQYXNzd29yZCBDaGFuZ2U8L2E+IF08L2xpPiI7CglwcmludCAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0iLnBhdGgoKS4iJmRvPW1hc3MnPk1hc3MgRGVmYWNlL0RlbGV0ZTwvYT4gXTwvbGk+IjsKCXByaW50ICI8bGk+WyA8YSBocmVmPSc/ZGlyPSIucGF0aCgpLiImZG89bHJlJz5Mb2NhbCBSb290IEV4cGxvaXRlcjwvYT4gXTwvbGk+IjsKCXByaW50ICI8bGk+WyA8YSBocmVmPSc/ZGlyPSIucGF0aCgpLiImZG89em9uZWgnPlpvbmUtSDwvYT4gXTwvbGk+IjsKCXByaW50ICI8L3VsPiI7CglwcmludCAiPC9jZW50ZXI+IjsKCXByaW50ICI8aHIgc3R5bGU9J21hcmdpbi10b3A6IDE1cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7Jz4iOwoKCglpZihpc3NldCgkX0dFVFsnZG8nXSkpIHsKCQlpZigkX0dFVFsnZG8nXSA9PT0gImNtZCIpIHsKCQkJaWYoaXNzZXQoJF9QT1NUWydjbWQnXSkpIHsKCQkJCWlmKHByZWdfbWF0Y2goIi9ecmYgKC4qKSQvIiwgJF9QT1NUWydjbWQnXSwgJG1hdGNoKSkgewoJCQkJCXRvb2xzKCJyZWFkZmlsZSIsICRtYXRjaFsxXSk7CgkJCQl9CgkJCQllbHNlaWYocHJlZ19tYXRjaCgiL15zcGF3biAoLiopJC8iLCAkX1BPU1RbJ2NtZCddLCAkbWF0Y2gpKSB7CgkJCQkJdG9vbHMoInNwYXduIiwgJG1hdGNoWzFdKTsKCQkJCX0KCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvXnN5bWxpbmskLyIsICRfUE9TVFsnY21kJ10sICRtYXRjaCkpIHsKCQkJCQl0b29scygic3ltbGluayIpOwoJCQkJfQoJCQkJZWxzZWlmKHByZWdfbWF0Y2goIi9ecnZyICguKikkLyIsICRfUE9TVFsnY21kJ10sICRtYXRjaCkpIHsKCQkJCQl0b29scygibmV0d29yayIsICRtYXRjaFsxXSk7CgkJCQl9CgkJCQllbHNlaWYocHJlZ19tYXRjaCgiL15rcmRwJC8iLCAkX1BPU1RbJ2NtZCddKSkgewoJCQkJCXRvb2xzKCJrcmRwIik7CgkJCQl9CgkJCQllbHNlaWYocHJlZ19tYXRjaCgiL15qdW1waW5nJC8iLCAkX1BPU1RbJ2NtZCddKSkgewoJCQkJCXRvb2xzKCJqdW1waW5nIik7CgkJCQl9CgkJCQllbHNlaWYocHJlZ19tYXRjaCgiL15pZHhjb25maWckLyIsICRfUE9TVFsnY21kJ10pKSB7CgkJCQkJdG9vbHMoImlkeGNvbmZpZyIpOwoJCQkJfQoJCQkJZWxzZWlmKHByZWdfbWF0Y2goIi9ebG9nb3V0JC8iLCAkX1BPU1RbJ2NtZCddKSkgewoJCQkJCXVuc2V0KCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pOwoJCQkJCXByaW50ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nPyc7PC9zY3JpcHQ+IjsKCQkJCX0KCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvXmtpbGxtZSQvIiwgJF9QT1NUWydjbWQnXSkpIHsKCQkJCQl1bnNldCgkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKTsKCQkJCQlAdW5saW5rKF9fRklMRV9fKTsKCQkJCQlwcmludCAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz8nOzwvc2NyaXB0PiI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlwcmludCAiPHByZT4iLmV4ZSgkX1BPU1RbJ2NtZCddKS4iPC9wcmU+IjsKCQkJCX0KCQkJfQoJCQllbHNlIHsKCQkJCWZpbGVzX2FuZF9mb2xkZXIoKTsKCQkJfQoJCX0KCQllbHNlaWYoJF9HRVRbJ2RvJ10gPT09ICJ6b25laCIpIHsKCQkJaWYoaXNzZXQoJF9QT1NUWydzdWJtaXQnXSkgQU5EICRfR0VUWydkbyddID09PSAiem9uZWgiKSB7CgkJCQkkbmljayAJPSAkX1BPU1RbJ25pY2snXTsKCQkJCSRkb21haW4gPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWyd1cmwnXSk7CgoJCQkJcHJpbnQgIkRlZmFjZXIgT25ob2xkOiA8YSBocmVmPSdodHRwOi8vd3d3LnpvbmUtaC5vcmcvYXJjaGl2ZS9ub3RpZmllcj0kbmljay9wdWJsaXNoZWQ9MCcgdGFyZ2V0PSdfYmxhbmsnPmh0dHA6Ly93d3cuem9uZS1oLm9yZy9hcmNoaXZlL25vdGlmaWVyPSRuaWNrL3B1Ymxpc2hlZD0wPC9hPjxicj4iOwoJCQkJcHJpbnQgIkRlZmFjZXIgQXJjaGl2ZTogPGEgaHJlZj0naHR0cDovL3d3dy56b25lLWgub3JnL2FyY2hpdmUvbm90aWZpZXI9JG5pY2snIHRhcmdldD0nX2JsYW5rJz5odHRwOi8vd3d3LnpvbmUtaC5vcmcvYXJjaGl2ZS9ub3RpZmllcj0kbmljazwvYT48YnI+PGJyPiI7CgkKCQkJCWZvcmVhY2goJGRvbWFpbiBhcyAkbm8gPT4gJHVybCkgewoJCQkJCSRubyAgID0gKCRubysxKS4iLiI7CgkJCQkJJHBvc3QgPSBjdXJsKCJodHRwOi8vd3d3LnpvbmUtaC5vcmcvbm90aWZ5L3NpbmdsZSIsIFRSVUUsICJkZWZhY2VyPSRuaWNrJmRvbWFpbjE9JHVybCZoYWNrbW9kZT0xJnJlYXNvbj0xJnN1Ym1pdD1TZW5kIik7CgkJCQkJaWYocHJlZ19tYXRjaCgiL2NvbG9yPVwicmVkXCI+T0s8XC9mb250PjxcL2xpPi9pIiwgJHBvc3QpKSB7CgkJCQkJCXByaW50ICIkbm8gJHVybCAtPiAiLmNvbG9yKDEsIDIsICJPSyIpLiI8YnI+IjsKCQkJCQl9IGVsc2UgewoJCQkJCQlwcmludCAiJG5vICR1cmwgLT4gIi5jb2xvcigxLCAxLCAiRVJST1IiKS4iPGJyPiI7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJcHJpbnQgIjxjZW50ZXI+PGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249Jz9kbz16b25laCZkaXI9Ii5wYXRoKCkuIic+CgkJICAgIAkgICAgICAgRGVmYWNlcjogPGJyPgoJCSAgICAJICAgICAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSduaWNrJyBzaXplPSc1MCcgdmFsdWU9J0luZG9YcGxvaXQnPjxicj48YnI+CgkJICAgIAkgICAgICAgRG9tYWluczogPGJyPgoJCSAgICAJICAgICAgIDx0ZXh0YXJlYSBzdHlsZT0nd2lkdGg6IDQ1MHB4OyBoZWlnaHQ6IDE1MHB4OycgbmFtZT0ndXJsJyBwbGFjZWhvbGRlcj0naHR0cDovL2dvb2dsZS5jb20vJz48L3RleHRhcmVhPjxicj4KCQkgICAgCSAgICAgICA8aW5wdXQgc3R5bGU9J2JhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogI2ZmZmZmZjsgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6IDQ2MHB4OycgdHlwZT0nc3VibWl0JyBuYW1lPSdzdWJtaXQnIHZhbHVlPSdTdWJtaXQnPgoJCSAgICAJICAgICAgIDwvZm9ybT48L2NlbnRlcj4iOwoJCSAgIAl9CgkJfQoJCWVsc2VpZigkX0dFVFsnZG8nXSA9PSAnY3BhbmVsJykgewoJCQlpZigkX1BPU1RbJ2NyYWNrJ10pIHsKCQkJCSR1c2VyY3AgPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWyd1c2VyX2NwJ10pOwoJCQkJJHBhc3NjcCA9IGV4cGxvZGUoIlxyXG4iLCAkX1BPU1RbJ3Bhc3NfY3AnXSk7CgkJCQkkaSA9IDA7CgkJCQlmb3JlYWNoKCR1c2VyY3AgYXMgJHVjcCkgewoJCQkJCWZvcmVhY2goJHBhc3NjcCBhcyAkcGNwKSB7CgkJCQkJCSRjb25uZWN0ID0gbXlzcWxfY29ubmVjdCgnbG9jYWxob3N0JywgJHVjcCwgJHBjcCk7CgkJCQkJCWlmKCRjb25uZWN0KSB7CgkJCQkJCQlpZigkX1NFU1NJT05bJHVjcF0gJiYgJF9TRVNTSU9OWyRwY3BdKSB7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCSRfU0VTU0lPTlskdWNwXSA9ICIxIjsKCQkJCQkJCQkkX1NFU1NJT05bJHBjcF0gPSAiMSI7CgkJCQkJCQkJaWYoJHVjcCA9PT0gJycgfHwgJHBjcCA9PT0gJycpIHsKCQkJCQkJCQkJLy8gCgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJJGkrKzsKCQkJCQkJCQkJcHJpbnQgInVzZXJuYW1lICgiLmNvbG9yKDEsIDIsICR1Y3ApLiIpIHBhc3N3b3JkICgiLmNvbG9yKDEsIDIsICRwY3ApLiIpIGRvbWFpbiAoIjsKCQkJCQkJCQkJaWYoIWZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSkgcHJpbnQgY29sb3IoMSwgMSwgIkZ1bmN0aW9uIGlzIERpc2FibGUgYnkgU3lzdGVtISIpOwoJCQkJCQkJCQlpZighZ2V0ZG9tYWlubmFtZSgpKSBwcmludCBjb2xvcigxLCAxLCAiQ2FuJ3QgZ2V0IGRvbWFpbiBuYW1lIik7CgkJCQkJCQkJCWZvcmVhY2goZ2V0ZG9tYWlubmFtZSgpIGFzICRkb21haW4pIHsKCQkJCQkJCQkJCSR1c2VyZG9tYWluID0gKG9iamVjdCkgQHBvc2l4X2dldHB3dWlkKEBmaWxlb3duZXIoIi9ldGMvdmFsaWFzZXMvJGRvbWFpbiIpKTsKCQkJCQkJCQkJCSR1c2VyZG9tYWluID0gJHVzZXJkb21haW4tPm5hbWU7CgkJCQkJCQkJCQlpZigkdXNlcmRvbWFpbiA9PT0gJHVzZXIpIHsKCQkJCQkJCQkJCQlwcmludCAiPGEgaHJlZj0naHR0cDovLyRkb21haW4vJyB0YXJnZXQ9J19ibGFuayc+Ii5jb2xvcigxLCAyLCAkZG9tYWluKS4iPC9hPjxicj4iOwoJCQkJCQkJCQkJCWJyZWFrOwoJCQkJCQkJCQkJfQoJCQkJCQkJCQl9CgkJCQkJCQkJCXByaW50IChlbXB0eSgkZG9tYWluKSkgPyBjb2xvcigxLCAxLCAiQ2FuJ3QgZ2V0IGRvbWFpbiBuYW1lLiIpIDogY29sb3IoMSwgMiwgJGRvbWFpbik7CgkJCQkJCQkJCXByaW50ICIpPGJyPiI7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJbXlzcWxfY2xvc2UoJGNvbm5lY3QpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJcHJpbnQgKCRpID09PSAwKSA/ICIiIDogIjxwPiIuY29sb3IoMSwgMywgIlN1a3NlcyBueW9sb25nICRpIENwYW5lbCBieSBJbmRvWHBsb2l0IikuIjwvcD4iOwoJCQl9IGVsc2UgewoJCQkJcHJpbnQgIjxjZW50ZXI+CgkJCQkJICAgPHNwYW4+TkI6IENQYW5lbCBDcmFjayBpbmkgc3VkYWggYXV0byBnZXQgcGFzc3dvcmQgKCBwYWtlIGRiIHBhc3N3b3JkICkgbWFrYSBha2FuIHdvcmsgamlrYSBkaWphbGFua2FuIGRpIGRhbGFtIGZvbGRlciA8dT5jb25maWc8L3U+ICggZXg6IC9ob21lL3VzZXIvcHVibGljX2h0bWwvbmFtYV9mb2xkZXJfY29uZmlnICk8L3NwYW4+PGJyPgoJCQkJCSAgIDxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCQkJICAgVVNFUjogPGJyPgoJCQkJCSAgIDx0ZXh0YXJlYSBzdHlsZT0nd2lkdGg6IDQ1MHB4OyBoZWlnaHQ6IDE1MHB4OycgbmFtZT0ndXNlcl9jcCc+IjsKCQkJCXByaW50IGltcGxvZGUoIlxuIiwgZ2V0dXNlcigpKTsKCQkJCXByaW50ICI8L3RleHRhcmVhPjxicj4KCQkJCQkgICBQQVNTOiA8YnI+CgkJCQkJICAgPHNwYW4+R3JhYiBQYXNzd29yZCBmcm9tIExpbmsgQ29uZmlnOjwvc3Bhbj48YnI+CgkJCQkJICAgPGlucHV0IHN0eWxlPSd3aWR0aDogNDI1cHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjogI2ZmZmZmZjsnIHR5cGU9J3RleHQnIG5hbWU9J2xpbmtwYXNzJyBwbGFjZWhvbGRlcj0naHR0cDovL3dlYi5jb20vaWR4X2NvbmZpZy8nPgoJCQkJCSAgIDxpbnB1dCBzdHlsZT0nYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiAjZmZmZmZmOycgdHlwZT0nc3VibWl0JyBuYW1lPSdzdWJtaXRsaW5rJyB2YWx1ZT0nPj4nPgoJCQkJCSAgIDxicj4KCQkJCQkgICA8dGV4dGFyZWEgc3R5bGU9J3dpZHRoOiA0NTBweDsgaGVpZ2h0OiAyMDBweDsnIG5hbWU9J3Bhc3NfY3AnPiI7CgoJCQkJaWYoaXNzZXQoJF9QT1NUWydzdWJtaXRsaW5rJ10pKSB7CgkJCQkJJGdldHBhc3MgPSAkX1BPU1RbJ2xpbmtwYXNzJ107CgkJCQkJJGdldCA9IGN1cmwoJF9QT1NUWydsaW5rcGFzcyddKTsKCQkJCQlwcmVnX21hdGNoX2FsbCgnLzxhIGhyZWY9IiguKj8pLnR4dCI+LycsICRnZXQsICRsaW5rKTsKCQkJCQlmb3JlYWNoKCRsaW5rWzFdIGFzICRsaW5rX2NvbmZpZykgewoJCQkJCQkkc2NhbmRpcltdID0gIiRsaW5rX2NvbmZpZy50eHQiOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgewoJCQkJCSRnZXRwYXNzID0gcGF0aCgpOwoJCQkJCSRzY2FuZGlyID0gc2NhbmRpcigkZ2V0cGFzcyk7CgkJCQl9CgoJCQkJJHBhc3N3b3JkID0gIiI7CgoJCQkJZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZXMpIHsKCQkJCQkkZmlsZSA9ICIkZ2V0cGFzcy8kZmlsZXMiOwoJCQkJCSRjb25maWcgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7CgkJCQkJaWYocHJlZ19tYXRjaCgiL1dvcmRQcmVzcy8iLCAkY29uZmlnKSkgewoJCQkJCQkkcGFzc3dvcmQgLj0gZ2V0VmFsdWUoJGNvbmZpZywgIkRCX1BBU1NXT1JEJywgJyIsICInIikuIlxuIjsKCQkJCQl9IAoJCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvSkNvbmZpZ3xqb29tbGEvIiwgJGNvbmZpZykpIHsKCQkJCQkJJHBhc3N3b3JkIC49IGdldFZhbHVlKCRjb25maWcsICJwYXNzd29yZCA9ICciLCAiJyIpLiJcbiI7CgkJCQkJfSAKCQkJCQllbHNlaWYocHJlZ19tYXRjaCgiL01hZ2VudG98TWFnZV9Db3JlLyIsICRjb25maWcpKSB7CgkJCQkJCSRwYXNzd29yZCAuPSBnZXRWYWx1ZSgkY29uZmlnLCAiPHBhc3N3b3JkPjwhW0NEQVRBWyIsICJdXT48L3Bhc3N3b3JkPiIpLiJcbiI7CgkJCQkJfSAKCQkJCQllbHNlaWYocHJlZ19tYXRjaCgiL3BhbmdnaWwgZnVuZ3NpIHZhbGlkYXNpIHhzcyBkYW4gaW5qZWN0aW9uLyIsICRjb25maWcpKSB7CgkJCQkJCSRwYXNzd29yZCAuPSBnZXRWYWx1ZSgkY29uZmlnLCAncGFzc3dvcmQgPSAiJywgJyInKS4iXG4iOwoJCQkJCX0gCgkJCQkJZWxzZWlmKHByZWdfbWF0Y2goIi9IVFRQX1NFUlZFUnxIVFRQX0NBVEFMT0d8RElSX0NPTkZJR3xESVJfU1lTVEVNLyIsICRjb25maWcpKSB7CgkJCQkJCSRwYXNzd29yZCAuPSBnZXRWYWx1ZSgkY29uZmlnLCAiJ0RCX1BBU1NXT1JEJywgJyIsICInIikuIlxuIjsKCQkJCQl9IAoJCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvXltjbGllbnRdJC8iLCAkY29uZmlnKSkgewoJCQkJCQlwcmVnX21hdGNoKCIvcGFzc3dvcmQ9KC4qPykvIiwgJGNvbmZpZywgJHBhc3MpOwoJCQkJCQlpZihwcmVnX21hdGNoKCcvIi8nLCAkcGFzc1sxXSkpIHsKCQkJCQkJCSRwYXNzWzFdID0gc3RyX3JlcGxhY2UoJyInLCAiIiwgJHBhc3NbMV0pOwoJCQkJCQkJJHBhc3N3b3JkIC49ICRwYXNzWzFdLiJcbiI7CgkJCQkJCX0gCgkJCQkJCWVsc2UgewoJCQkJCQkJJHBhc3N3b3JkIC49ICRwYXNzWzFdLiJcbiI7CgkJCQkJCX0KCQkJCQl9IAoJCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvY2NfZW5jcnlwdGlvbl9oYXNoLyIsICRjb25maWcpKSB7CgkJCQkJCSRwYXNzd29yZCAuPSBnZXRWYWx1ZSgkY29uZmlnLCAiZGJfcGFzc3dvcmQgPSAnIiwgIiciKS4iXG4iOwoJCQkJCX0KCQkJCX0KCgkJCQlwcmludCAkcGFzc3dvcmQ7CgoJCQkJcHJpbnQgIjwvdGV4dGFyZWE+PGJyPgoJCQkJCSAgIDxpbnB1dCBzdHlsZT0nYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjZmZmZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDogNDYwcHg7JyB0eXBlPSdzdWJtaXQnIG5hbWU9J2NyYWNrJyB2YWx1ZT0nQ3JhY2snPgoJCQkJCSAgIDwvZm9ybT48L2NlbnRlcj4iOwoJCQl9CgkJfQoJCWVsc2VpZigkX0dFVFsnZG8nXSA9PSAnbXBjJykgewoJCQlpZigkX1BPU1RbJ2hhamFyJ10pIHsKCQkJCWlmKHN0cmxlbigkX1BPU1RbJ3Bhc3NfYmFydSddKSA8IDYgT1Igc3RybGVuKCRfUE9TVFsndXNlcl9iYXJ1J10pIDwgNikgewoJCQkJCXByaW50ICJ1c2VybmFtZSBhdGF1IHBhc3N3b3JkIGhhcnVzIGxlYmloIGRhcmkgNiBrYXJha3RlciI7CgkJCQl9IAoJCQkJZWxzZSB7CgkJCQkJJHVzZXJfYmFydSA9ICRfUE9TVFsndXNlcl9iYXJ1J107CgkJCQkJJHBhc3NfYmFydSA9IG1kNSgkX1BPU1RbJ3Bhc3NfYmFydSddKTsKCQkJCQkkY29uZiA9ICRfUE9TVFsnY29uZmlnX2RpciddOwoKCQkJCQlpZihwcmVnX21hdGNoKCIvXmh0dHA6XC9cLy8iLCAkY29uZikgT1IgcHJlZ19tYXRjaCgiL15odHRwczpcL1wvLyIsICRjb25mKSkgewoJCQkJCQkkZ2V0ID0gY3VybCgkY29uZik7CgkJCQkJCXByZWdfbWF0Y2hfYWxsKCcvPGEgaHJlZj0iKC4qPykudHh0Ij4vJywgJGdldCwgJGxpbmspOwoJCQkJCQlmb3JlYWNoKCRsaW5rWzFdIGFzICRsaW5rX2NvbmZpZykgewoJCQkJCQkJJHNjYW5fY29uZltdID0gIiRsaW5rX2NvbmZpZy50eHQiOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQkkc2Nhbl9jb25mID0gc2NhbmRpcigkY29uZik7CgkJCQkJfQoKCQkJCQlmb3JlYWNoKCRzY2FuX2NvbmYgYXMgJGZpbGVfY29uZikgewoJCQkJCQkkY29uZmlnID0gZmlsZV9nZXRfY29udGVudHMoIiRjb25mLyRmaWxlX2NvbmYiKTsKCQkJCQkJaWYocHJlZ19tYXRjaCgiL0pDb25maWd8am9vbWxhLyIsJGNvbmZpZykpIHsKCQkJCQkJCSRkYmhvc3QgPSBnZXRWYWx1ZSgkY29uZmlnLCJob3N0ID0gJyIsIiciKTsKCQkJCQkJCSRkYnVzZXIgPSBnZXRWYWx1ZSgkY29uZmlnLCJ1c2VyID0gJyIsIiciKTsKCQkJCQkJCSRkYnBhc3MgPSBnZXRWYWx1ZSgkY29uZmlnLCJwYXNzd29yZCA9ICciLCInIik7CgkJCQkJCQkkZGJuYW1lID0gZ2V0VmFsdWUoJGNvbmZpZywiZGIgPSAnIiwiJyIpOwoJCQkJCQkJJGRicHJlZml4ID0gZ2V0VmFsdWUoJGNvbmZpZywiZGJwcmVmaXggPSAnIiwiJyIpOwoJCQkJCQkJJHByZWZpeCA9ICRkYnByZWZpeC4idXNlcnMiOwoJCQkJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsKCQkJCQkJCSRkYiA9IG15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsKCQkJCQkJCSRxID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHByZWZpeCBPUkRFUiBCWSBpZCBBU0MiKTsKCQkJCQkJCSRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcSk7CgkJCQkJCQkkaWQgPSAkcmVzdWx0WydpZCddOwoJCQkJCQkJJHNpdGUgPSBnZXRWYWx1ZSgkY29uZmlnLCJzaXRlbmFtZSA9ICciLCInIik7CgkJCQkJCQkkdXBkYXRlID0gbXlzcWxfcXVlcnkoIlVQREFURSAkcHJlZml4IFNFVCB1c2VybmFtZT0nJHVzZXJfYmFydScscGFzc3dvcmQ9JyRwYXNzX2JhcnUnIFdIRVJFIGlkPSckaWQnIik7CgkJCQkJCQlwcmludCAiQ29uZmlnID0+ICIuJGZpbGVfY29uZi4iPGJyPiI7CgkJCQkJCQlwcmludCAiQ01TID0+IEpvb21sYTxicj4iOwoJCQkJCQkJaWYoJHNpdGUgPT0gJycpIHsKCQkJCQkJCQlwcmludCAiU2l0ZW5hbWUgPT4gIi5jb2xvcigxLCAxLCAiQ2FuJ3QgZ2V0IGRvbWFpbiBuYW1lIikuIjxicj4iOwoJCQkJCQkJfSAKCQkJCQkJCWVsc2UgewoJCQkJCQkJCXByaW50ICJTaXRlbmFtZSA9PiAkc2l0ZTxicj4iOwoJCQkJCQkJfQoJCQkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMSwgbXlzcWxfZXJyb3IoKSkuIjxicj48YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMiwgInN1a3NlcyBlZGl0IHVzZXIsIHNpbGFrYW4gbG9naW4gZGVuZ2FuIHVzZXIgJiBwYXNzIHlhbmcgYmFydS4iKS4iPGJyPjxicj4iOwoJCQkJCQkJfQoJCQkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOwoJCQkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvV29yZFByZXNzLyIsJGNvbmZpZykpIHsKCQkJCQkJCSRkYmhvc3QgPSBnZXRWYWx1ZSgkY29uZmlnLCJEQl9IT1NUJywgJyIsIiciKTsKCQkJCQkJCSRkYnVzZXIgPSBnZXRWYWx1ZSgkY29uZmlnLCJEQl9VU0VSJywgJyIsIiciKTsKCQkJCQkJCSRkYnBhc3MgPSBnZXRWYWx1ZSgkY29uZmlnLCJEQl9QQVNTV09SRCcsICciLCInIik7CgkJCQkJCQkkZGJuYW1lID0gZ2V0VmFsdWUoJGNvbmZpZywiREJfTkFNRScsICciLCInIik7CgkJCQkJCQkkZGJwcmVmaXggPSBnZXRWYWx1ZSgkY29uZmlnLCJ0YWJsZV9wcmVmaXggID0gJyIsIiciKTsKCQkJCQkJCSRwcmVmaXggPSAkZGJwcmVmaXguInVzZXJzIjsKCQkJCQkJCSRvcHRpb24gPSAkZGJwcmVmaXguIm9wdGlvbnMiOwoJCQkJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsKCQkJCQkJCSRkYiA9IG15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsKCQkJCQkJCSRxID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHByZWZpeCBPUkRFUiBCWSBpZCBBU0MiKTsKCQkJCQkJCSRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcSk7CgkJCQkJCQkkaWQgPSAkcmVzdWx0W0lEXTsKCQkJCQkJCSRxMiA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRvcHRpb24gT1JERVIgQlkgb3B0aW9uX2lkIEFTQyIpOwoJCQkJCQkJJHJlc3VsdDIgPSBteXNxbF9mZXRjaF9hcnJheSgkcTIpOwoJCQkJCQkJJHRhcmdldCA9ICRyZXN1bHQyW29wdGlvbl92YWx1ZV07CgkJCQkJCQlpZigkdGFyZ2V0ID09ICcnKSB7CgkJCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gIi5jb2xvcigxLCAxLCAiQ2FudCd0IGdldCBkb21haW4gbmFtZSIpLiI8YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8YSBocmVmPSckdGFyZ2V0L3dwLWxvZ2luLnBocCcgdGFyZ2V0PSdfYmxhbmsnPjx1PiR0YXJnZXQvd3AtbG9naW4ucGhwPC91PjwvYT48YnI+IjsKCQkJCQkJCX0KCQkJCQkJCSR1cGRhdGUgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRwcmVmaXggU0VUIHVzZXJfbG9naW49JyR1c2VyX2JhcnUnLHVzZXJfcGFzcz0nJHBhc3NfYmFydScgV0hFUkUgaWQ9JyRpZCciKTsKCQkJCQkJCXByaW50ICJDb25maWcgPT4gIi4kZmlsZV9jb25mLiI8YnI+IjsKCQkJCQkJCXByaW50ICJDTVMgPT4gV29yZHByZXNzPGJyPiI7CgkJCQkJCQlwcmludCAkdXJsX3RhcmdldDsKCQkJCQkJCWlmKCEkdXBkYXRlIE9SICEkY29ubiBPUiAhJGRiKSB7CgkJCQkJCQkJcHJpbnQgIlN0YXR1cyA9PiAiLmNvbG9yKDEsIDEsIG15c3FsX2Vycm9yKCkpLiI8YnI+PGJyPiI7CgkJCQkJCQl9IAoJCQkJCQkJZWxzZSB7CgkJCQkJCQkJcHJpbnQgIlN0YXR1cyA9PiAiLmNvbG9yKDEsIDIsICJzdWtzZXMgZWRpdCB1c2VyLCBzaWxha2FuIGxvZ2luIGRlbmdhbiB1c2VyICYgcGFzcyB5YW5nIGJhcnUuIikuIjxicj48YnI+IjsKCQkJCQkJCX0KCQkJCQkJCW15c3FsX2Nsb3NlKCRjb25uKTsKCQkJCQkJfSAKCQkJCQkJZWxzZWlmKHByZWdfbWF0Y2goIi9NYWdlbnRvfE1hZ2VfQ29yZS8iLCRjb25maWcpKSB7CgkJCQkJCQkkZGJob3N0ID0gZ2V0VmFsdWUoJGNvbmZpZywiPGhvc3Q+PCFbQ0RBVEFbIiwiXV0+PC9ob3N0PiIpOwoJCQkJCQkJJGRidXNlciA9IGdldFZhbHVlKCRjb25maWcsIjx1c2VybmFtZT48IVtDREFUQVsiLCJdXT48L3VzZXJuYW1lPiIpOwoJCQkJCQkJJGRicGFzcyA9IGdldFZhbHVlKCRjb25maWcsIjxwYXNzd29yZD48IVtDREFUQVsiLCJdXT48L3Bhc3N3b3JkPiIpOwoJCQkJCQkJJGRibmFtZSA9IGdldFZhbHVlKCRjb25maWcsIjxkYm5hbWU+PCFbQ0RBVEFbIiwiXV0+PC9kYm5hbWU+Iik7CgkJCQkJCQkkZGJwcmVmaXggPSBnZXRWYWx1ZSgkY29uZmlnLCI8dGFibGVfcHJlZml4PjwhW0NEQVRBWyIsIl1dPjwvdGFibGVfcHJlZml4PiIpOwoJCQkJCQkJJHByZWZpeCA9ICRkYnByZWZpeC4iYWRtaW5fdXNlciI7CgkJCQkJCQkkb3B0aW9uID0gJGRicHJlZml4LiJjb3JlX2NvbmZpZ19kYXRhIjsKCQkJCQkJCSRjb25uID0gbXlzcWxfY29ubmVjdCgkZGJob3N0LCRkYnVzZXIsJGRicGFzcyk7CgkJCQkJCQkkZGIgPSBteXNxbF9zZWxlY3RfZGIoJGRibmFtZSk7CgkJCQkJCQkkcSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRwcmVmaXggT1JERVIgQlkgdXNlcl9pZCBBU0MiKTsKCQkJCQkJCSRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcSk7CgkJCQkJCQkkaWQgPSAkcmVzdWx0W3VzZXJfaWRdOwoJCQkJCQkJJHEyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJG9wdGlvbiBXSEVSRSBwYXRoPSd3ZWIvc2VjdXJlL2Jhc2VfdXJsJyIpOwoJCQkJCQkJJHJlc3VsdDIgPSBteXNxbF9mZXRjaF9hcnJheSgkcTIpOwoJCQkJCQkJJHRhcmdldCA9ICRyZXN1bHQyW3ZhbHVlXTsKCQkJCQkJCWlmKCR0YXJnZXQgPT0gJycpIHsKCQkJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiAiLmNvbG9yKDEsIDEsICJDYW50J3QgZ2V0IGRvbWFpbiBuYW1lIikuIjxicj4iOwoJCQkJCQkJfSAKCQkJCQkJCWVsc2UgewoJCQkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQvYWRtaW4vJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldC9hZG1pbi88L3U+PC9hPjxicj4iOwoJCQkJCQkJfQoJCQkJCQkJJHVwZGF0ZSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHByZWZpeCBTRVQgdXNlcm5hbWU9JyR1c2VyX2JhcnUnLHBhc3N3b3JkPSckcGFzc19iYXJ1JyBXSEVSRSB1c2VyX2lkPSckaWQnIik7CgkJCQkJCQlwcmludCAiQ29uZmlnID0+ICIuJGZpbGVfY29uZi4iPGJyPiI7CgkJCQkJCQlwcmludCAiQ01TID0+IE1hZ2VudG88YnI+IjsKCQkJCQkJCXByaW50ICR1cmxfdGFyZ2V0OwoJCQkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMSwgbXlzcWxfZXJyb3IoKSkuIjxicj48YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMiwgInN1a3NlcyBlZGl0IHVzZXIsIHNpbGFrYW4gbG9naW4gZGVuZ2FuIHVzZXIgJiBwYXNzIHlhbmcgYmFydS4iKS4iPGJyPjxicj4iOwoJCQkJCQkJfQoJCQkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOwoJCQkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvSFRUUF9TRVJWRVJ8SFRUUF9DQVRBTE9HfERJUl9DT05GSUd8RElSX1NZU1RFTS8iLCRjb25maWcpKSB7CgkJCQkJCQkkZGJob3N0ID0gZ2V0VmFsdWUoJGNvbmZpZywiJ0RCX0hPU1ROQU1FJywgJyIsIiciKTsKCQkJCQkJCSRkYnVzZXIgPSBnZXRWYWx1ZSgkY29uZmlnLCInREJfVVNFUk5BTUUnLCAnIiwiJyIpOwoJCQkJCQkJJGRicGFzcyA9IGdldFZhbHVlKCRjb25maWcsIidEQl9QQVNTV09SRCcsICciLCInIik7CgkJCQkJCQkkZGJuYW1lID0gZ2V0VmFsdWUoJGNvbmZpZywiJ0RCX0RBVEFCQVNFJywgJyIsIiciKTsKCQkJCQkJCSRkYnByZWZpeCA9IGdldFZhbHVlKCRjb25maWcsIidEQl9QUkVGSVgnLCAnIiwiJyIpOwoJCQkJCQkJJHByZWZpeCA9ICRkYnByZWZpeC4idXNlciI7CgkJCQkJCQkkY29ubiA9IG15c3FsX2Nvbm5lY3QoJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MpOwoJCQkJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOwoJCQkJCQkJJHEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkcHJlZml4IE9SREVSIEJZIHVzZXJfaWQgQVNDIik7CgkJCQkJCQkkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHEpOwoJCQkJCQkJJGlkID0gJHJlc3VsdFt1c2VyX2lkXTsKCQkJCQkJCSR0YXJnZXQgPSBnZXRWYWx1ZSgkY29uZmlnLCJIVFRQX1NFUlZFUicsICciLCInIik7CgkJCQkJCQlpZigkdGFyZ2V0ID09ICcnKSB7CgkJCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gIi5jb2xvcigxLCAxLCAiQ2FudCd0IGdldCBkb21haW4gbmFtZSIpLiI8YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8YSBocmVmPSckdGFyZ2V0JyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldDwvdT48L2E+PGJyPiI7CgkJCQkJCQl9CgkJCQkJCQkkdXBkYXRlID0gbXlzcWxfcXVlcnkoIlVQREFURSAkcHJlZml4IFNFVCB1c2VybmFtZT0nJHVzZXJfYmFydScscGFzc3dvcmQ9JyRwYXNzX2JhcnUnIFdIRVJFIHVzZXJfaWQ9JyRpZCciKTsKCQkJCQkJCXByaW50ICJDb25maWcgPT4gIi4kZmlsZV9jb25mLiI8YnI+IjsKCQkJCQkJCXByaW50ICJDTVMgPT4gT3BlbkNhcnQ8YnI+IjsKCQkJCQkJCXByaW50ICR1cmxfdGFyZ2V0OwoJCQkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMSwgbXlzcWxfZXJyb3IoKSkuIjxicj48YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMiwgInN1a3NlcyBlZGl0IHVzZXIsIHNpbGFrYW4gbG9naW4gZGVuZ2FuIHVzZXIgJiBwYXNzIHlhbmcgYmFydS4iKS4iPGJyPjxicj4iOwoJCQkJCQkJfQoJCQkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOwoJCQkJCQl9IAoJCQkJCQllbHNlaWYocHJlZ19tYXRjaCgiL3BhbmdnaWwgZnVuZ3NpIHZhbGlkYXNpIHhzcyBkYW4gaW5qZWN0aW9uLyIsJGNvbmZpZykpIHsKCQkJCQkJCSRkYmhvc3QgPSBnZXRWYWx1ZSgkY29uZmlnLCdzZXJ2ZXIgPSAiJywnIicpOwoJCQkJCQkJJGRidXNlciA9IGdldFZhbHVlKCRjb25maWcsJ3VzZXJuYW1lID0gIicsJyInKTsKCQkJCQkJCSRkYnBhc3MgPSBnZXRWYWx1ZSgkY29uZmlnLCdwYXNzd29yZCA9ICInLCciJyk7CgkJCQkJCQkkZGJuYW1lID0gZ2V0VmFsdWUoJGNvbmZpZywnZGF0YWJhc2UgPSAiJywnIicpOwoJCQkJCQkJJHByZWZpeCA9ICJ1c2VycyI7CgkJCQkJCQkkb3B0aW9uID0gImlkZW50aXRhcyI7CgkJCQkJCQkkY29ubiA9IG15c3FsX2Nvbm5lY3QoJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MpOwoJCQkJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOwoJCQkJCQkJJHEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkb3B0aW9uIE9SREVSIEJZIGlkX2lkZW50aXRhcyBBU0MiKTsKCQkJCQkJCSRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcSk7CgkJCQkJCQkkdGFyZ2V0ID0gJHJlc3VsdFthbGFtYXRfd2Vic2l0ZV07CgkJCQkJCQlpZigkdGFyZ2V0ID09ICcnKSB7CgkJCQkJCQkJJHRhcmdldDIgPSAkcmVzdWx0W3VybF07CgkJCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gIi5jb2xvcigxLCAxLCAiQ2FudCd0IGdldCBkb21haW4gbmFtZSIpLiI8YnI+IjsKCQkJCQkJCQlpZigkdGFyZ2V0MiA9PSAnJykgewoJCQkJCQkJCQkkdXJsX3RhcmdldDIgPSAiTG9naW4gPT4gIi5jb2xvcigxLCAxLCAiQ2FudCd0IGdldCBkb21haW4gbmFtZSIpLiI8YnI+IjsKCQkJCQkJCQl9IAoJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkkY2VrX2xvZ2luMyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIkdGFyZ2V0Mi9hZG1pbndlYi8iKTsKCQkJCQkJCQkJJGNla19sb2dpbjQgPSBmaWxlX2dldF9jb250ZW50cygiJHRhcmdldDIvbG9rb21lZGlhL2FkbWlud2ViLyIpOwoJCQkJCQkJCQlpZihwcmVnX21hdGNoKCIvQ01TIExva29tZWRpYXxBZG1pbmlzdHJhdG9yLyIsICRjZWtfbG9naW4zKSkgewoJCQkJCQkJCQkJJHVybF90YXJnZXQyID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQyL2FkbWlud2ViJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldDIvYWRtaW53ZWI8L3U+PC9hPjxicj4iOwoJCQkJCQkJCQl9IAoJCQkJCQkJCQllbHNlaWYocHJlZ19tYXRjaCgiL0NNUyBMb2tvbWVkaWF8TG9rb21lZGlhLyIsICRjZWtfbG9naW40KSkgewoJCQkJCQkJCQkJJHVybF90YXJnZXQyID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQyL2xva29tZWRpYS9hZG1pbndlYicgdGFyZ2V0PSdfYmxhbmsnPjx1PiR0YXJnZXQyL2xva29tZWRpYS9hZG1pbndlYjwvdT48L2E+PGJyPiI7CgkJCQkJCQkJCX0gCgkJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkJJHVybF90YXJnZXQyID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQyJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldDI8L3U+PC9hPiBbIDxmb250IGNvbG9yPXJlZD5nYXRhdSBhZG1pbiBsb2dpbiBueWEgZGltYW5hIDpwPC9mb250PiBdPGJyPiI7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCSRjZWtfbG9naW4gPSBmaWxlX2dldF9jb250ZW50cygiJHRhcmdldC9hZG1pbndlYi8iKTsKCQkJCQkJCQkkY2VrX2xvZ2luMiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIkdGFyZ2V0L2xva29tZWRpYS9hZG1pbndlYi8iKTsKCQkJCQkJCQlpZihwcmVnX21hdGNoKCIvQ01TIExva29tZWRpYXxBZG1pbmlzdHJhdG9yLyIsICRjZWtfbG9naW4pKSB7CgkJCQkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQvYWRtaW53ZWInIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0L2FkbWlud2ViPC91PjwvYT48YnI+IjsKCQkJCQkJCQl9IAoJCQkJCQkJCWVsc2VpZihwcmVnX21hdGNoKCIvQ01TIExva29tZWRpYXxMb2tvbWVkaWEvIiwgJGNla19sb2dpbjIpKSB7CgkJCQkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQvbG9rb21lZGlhL2FkbWlud2ViJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldC9sb2tvbWVkaWEvYWRtaW53ZWI8L3U+PC9hPjxicj4iOwoJCQkJCQkJCX0gCgkJCQkJCQkJZWxzZSB7CgkJCQkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQnIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0PC91PjwvYT4gWyA8Zm9udCBjb2xvcj1yZWQ+Z2F0YXUgYWRtaW4gbG9naW4gbnlhIGRpbWFuYSA6cDwvZm9udD4gXTxicj4iOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJCSR1cGRhdGUgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRwcmVmaXggU0VUIHVzZXJuYW1lPSckdXNlcl9iYXJ1JyxwYXNzd29yZD0nJHBhc3NfYmFydScgV0hFUkUgbGV2ZWw9J2FkbWluJyIpOwoJCQkJCQkJcHJpbnQgIkNvbmZpZyA9PiAiLiRmaWxlX2NvbmYuIjxicj4iOwoJCQkJCQkJcHJpbnQgIkNNUyA9PiBMb2tvbWVkaWE8YnI+IjsKCQkJCQkJCWlmKHByZWdfbWF0Y2goIi9DYW4ndCBnZXQgZG9tYWluIG5hbWUvIiwgJHVybF90YXJnZXQpKSB7CgkJCQkJCQkJcHJpbnQgJHVybF90YXJnZXQyOwoJCQkJCQkJfSAKCQkJCQkJCWVsc2UgewoJCQkJCQkJCXByaW50ICR1cmxfdGFyZ2V0OwoJCQkJCQkJfQoJCQkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMSwgbXlzcWxfZXJyb3IoKSkuIjxicj48YnI+IjsKCQkJCQkJCX0gCgkJCQkJCQllbHNlIHsKCQkJCQkJCQlwcmludCAiU3RhdHVzID0+ICIuY29sb3IoMSwgMiwgInN1a3NlcyBlZGl0IHVzZXIsIHNpbGFrYW4gbG9naW4gZGVuZ2FuIHVzZXIgJiBwYXNzIHlhbmcgYmFydS4iKS4iPGJyPjxicj4iOwoJCQkJCQkJfQoJCQkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9IAoJCQllbHNlIHsKCQkJCXByaW50ICI8Y2VudGVyPgoJCQkJPGgxPk1hc3MgUGFzc3dvcmQgQ2hhbmdlPC9oMT4KCQkJCTxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCQk8aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J2NvbmZpZ190eXBlJyB2YWx1ZT0nZGlyJyBjaGVja2VkPkRJUiBDb25maWc8aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J2NvbmZpZ190eXBlJyB2YWx1ZT0nbGluayc+TElOSyBDb25maWc8YnI+CgkJCQk8aW5wdXQgdHlwZT0ndGV4dCcgc2l6ZT0nNTAnIG5hbWU9J2NvbmZpZ19kaXInIHZhbHVlPSciLnBhdGgoKS4iJz48YnI+PGJyPgoJCQkJU2V0IFVzZXIgJiBQYXNzOiA8YnI+CgkJCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcl9iYXJ1JyB2YWx1ZT0naW5kb3hwbG9pdCcgcGxhY2Vob2xkZXI9J3VzZXJfYmFydSc+PGJyPgoJCQkJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3Bhc3NfYmFydScgdmFsdWU9J2luZG94cGxvaXQnIHBsYWNlaG9sZGVyPSdwYXNzX2JhcnUnPjxicj4KCQkJCTxpbnB1dCBzdHlsZT0nYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjZmZmZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDogMjE1cHg7IG1hcmdpbjogNXB4IGF1dG87JyB0eXBlPSdzdWJtaXQnIG5hbWU9J2hhamFyJyB2YWx1ZT0nSGFqYXIhJz4KCQkJCTwvZm9ybT48L2NlbnRlcj4iOwoJCQl9CgkJfQoJCWVsc2VpZigkX0dFVFsnZG8nXSA9PT0gIm1hc3MiKSB7CgkJCWlmKCRfUE9TVFsnc3RhcnQnXSkgewoJCQkJaWYoJF9QT1NUWydtYXNzX3R5cGUnXSA9PT0gJ3NpbmdsZWRpcicpIHsKCQkJCQlwcmludCAiPGRpdiBzdHlsZT0nbWFyZ2luOiA1cHggYXV0bzsgcGFkZGluZzogNXB4Jz4iOwoJCQkJCW1hc3NkZWZhY2UoJF9QT1NUWydkX2RpciddLCAkX1BPU1RbJ3NjcmlwdCddLCAkX1BPU1RbJ2RfZmlsZSddKTsKCQkJCQlwcmludCAiPC9kaXY+IjsKCQkJCX0gCgkJCQllbHNlaWYoJF9QT1NUWydtYXNzX3R5cGUnXSA9PT0gJ2FsbGRpcicpIHsKCQkJCQlwcmludCAiPGRpdiBzdHlsZT0nbWFyZ2luOiA1cHggYXV0bzsgcGFkZGluZzogNXB4Jz4iOwoJCQkJCW1hc3NkZWZhY2UoJF9QT1NUWydkX2RpciddLCAkX1BPU1RbJ3NjcmlwdCddLCAkX1BPU1RbJ2RfZmlsZSddLCAiLWFsbGRpciIpOwoJCQkJCXByaW50ICI8L2Rpdj4iOwoJCQkJfQoJCQkJZWxzZWlmKCRfUE9TVFsnbWFzc190eXBlJ10gPT09ICJkZWxldGUiKSB7CgkJCQkJcHJpbnQgIjxkaXYgc3R5bGU9J21hcmdpbjogNXB4IGF1dG87IHBhZGRpbmc6IDVweCc+IjsKCQkJCQltYXNzZGVsZXRlKCRfUE9TVFsnZF9kaXInXSwgJF9QT1NUWydkX2ZpbGUnXSk7CgkJCQkJcHJpbnQgIjwvZGl2PiI7CgkJCQl9CgkJCX0gCgkJCWVsc2UgewoJCQkJcHJpbnQgIjxjZW50ZXI+PGZvcm0gbWV0aG9kPSdwb3N0Jz4KCQkJCQkgICA8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5UaXBlIFNhYnVuOjwvZm9udD48YnI+CgkJCQkJICAgPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdtYXNzX3R5cGUnIHZhbHVlPSdzaW5nbGVkaXInIGNoZWNrZWQ+TWFzcyBEZWZhY2UgU2luZ2xlIERpcmVjdG9yeTxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0nbWFzc190eXBlJyB2YWx1ZT0nYWxsZGlyJz5NYXNzIERlZmFjZSBBbGwgRGlyZWN0b3J5PGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdtYXNzX3R5cGUnIHZhbHVlPSdkZWxldGUnPk1hc3MgRGVsZXRlIEZpbGU8YnI+CgkJCQkJICAgPHNwYW4+KCBrb3NvbmdrYW4gJ0luZGV4IEZpbGUnIGppa2EgbWVtaWxpaCBNYXNzIERlbGV0ZSBGaWxlICk8L3NwYW4+PGJyPjxicj4KCQkJCQkgICA8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5Gb2xkZXI6PC9mb250Pjxicj4KCQkJCQkgICA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZF9kaXInIHZhbHVlPSciLnBhdGgoKS4iJyBzdHlsZT0nd2lkdGg6IDQ1MHB4OycgaGVpZ2h0PScxMCc+PGJyPjxicj4KCQkJCQkgICA8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5GaWxlbmFtZTo8L2ZvbnQ+PGJyPgoJCQkJCSAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkX2ZpbGUnIHZhbHVlPSdpbmRleC5waHAnIHN0eWxlPSd3aWR0aDogNDUwcHg7JyBoZWlnaHQ9JzEwJz48YnI+PGJyPgoJCQkJCSAgIDxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPkluZGV4IEZpbGU6PC9mb250Pjxicj4KCQkJCQkgICA8dGV4dGFyZWEgbmFtZT0nc2NyaXB0JyBzdHlsZT0nd2lkdGg6IDQ1MHB4OyBoZWlnaHQ6IDIwMHB4Oyc+SGFja2VkIGJ5IEluZG9YcGxvaXQ8L3RleHRhcmVhPjxicj4KCQkJCQkgICA8aW5wdXQgc3R5bGU9J2JhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogI2ZmZmZmZjsgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6IDQ2MHB4OyBtYXJnaW46IDVweCBhdXRvOycgdHlwZT0nc3VibWl0JyBuYW1lPSdzdGFydCcgdmFsdWU9J01hc3MnPgoJCQkJCSAgIDwvZm9ybT48L2NlbnRlcj4iOwoJCQl9CgkJfQoJCWVsc2VpZigkX0dFVFsnZG8nXSA9PSAnZmFrZXJvb3QnKSB7CgkJCW9iX3N0YXJ0KCk7CgoJCQkkc2l0ZSA9IGV4cGxvZGUoIlxyXG4iLCAkX1BPU1RbJ3VybCddKTsKCQkJJHVzZXIgPSB1c2VyZ3JvdXAoKS0+bmFtZTsKCQkJJGZpbGUgPSAkX1BPU1RbJ2ZpbGUnXTsKCgkJCWlmKCFwcmVnX21hdGNoKCIjL2hvbWUvJHVzZXIvcHVibGljX2h0bWwjIiwgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSkpIGRpZShjb2xvcigxLCAxLCAiSSB0aGluayB0aGlzIHNlcnZlciBub3QgdXNpbmcgc2hhcmVkIGhvc3QgOigiKSk7CgkJCQoJCQkKCQkJaWYoJF9QT1NUWydyZXZlcnNlJ10pIHsKCQkJCWlmKCFpc193cml0YWJsZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKSkgZGllKGNvbG9yKDEsIDEsICJEaXJlY3RvcnkgJyIuJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXS4iJyBpcyBub3Qgd3JpdGVhYmxlLiIpKTsKCQkJCWlmKCFpc193cml0YWJsZShkaXJuYW1lKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pKSkgZGllKGNvbG9yKDEsIDEsICJEaXJlY3RvcnkgJyIuZGlybmFtZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKS4iJyBpcyBub3Qgd3JpdGVhYmxlLiIpKTsKCgkJCQlzYXZlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uIi8iLiRmaWxlLCAidyIsICRfUE9TVFsnc2NyaXB0J10pOwoJCQkJc2F2ZShkaXJuYW1lKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pLiIvIi4kZmlsZSwgInciLCAkX1BPU1RbJ3NjcmlwdCddKTsKCgkJCQlmb3JlYWNoKCRzaXRlIGFzICR1cmwpIHsKCQkJCQkkY2VrID0gY3VybCgiJHVybC9+JHVzZXIvJGZpbGUiKTsKCQkJCQlpZihwcmVnX21hdGNoKCIvaGFja2VkL2kiLCAkY2VrKSkgewoJCQkJCQlwcmludCAiVVJMOiA8YSBocmVmPSckdXJsL34kdXNlci8kZmlsZScgdGFyZ2V0PSdfYmxhbmsnPiR1cmwvfiR1c2VyLyRmaWxlPC9hPiAtPiA8Zm9udCBjb2xvcj1saW1lPkZha2UgUm9vdCE8L2ZvbnQ+PGJyPiI7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJcHJpbnQgIjxjZW50ZXI+PGZvcm0gbWV0aG9kPSdwb3N0Jz4KCQkJCUZpbGVuYW1lOiA8YnI+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZpbGUnIHZhbHVlPSdkZWZhY2UuaHRtbCcgc2l6ZT0nNTAnIGhlaWdodD0nMTAnPjxicj4KCQkJCVVzZXI6IDxicj48aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyR1c2VyJyBzaXplPSc1MCcgaGVpZ2h0PScxMCcgcmVhZG9ubHk+PGJyPgoJCQkJRG9tYWluOiA8YnI+CgkJCQk8dGV4dGFyZWEgc3R5bGU9J3dpZHRoOiA0NTBweDsgaGVpZ2h0OiAyNTBweDsnIG5hbWU9J3VybCc+IjsKCQkJCXByaW50IGltcGxvZGUoIlxuIiwgcmV2ZXJzZSgpKTsKCQkJCXByaW50ICI8L3RleHRhcmVhPjxicj4KCQkJCTxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPkluZGV4IEZpbGU6PC9mb250Pjxicj4KCQkJCTx0ZXh0YXJlYSBuYW1lPSdzY3JpcHQnIHN0eWxlPSd3aWR0aDogNDUwcHg7IGhlaWdodDogMjAwcHg7Jz5IYWNrZWQgYnkgSW5kb1hwbG9pdDwvdGV4dGFyZWE+PGJyPgoJCQkJPGlucHV0IHN0eWxlPSdiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6ICNmZmZmZmY7IGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7IHdpZHRoOiA0NjBweDsgbWFyZ2luOiA1cHggYXV0bzsnIHR5cGU9J3N1Ym1pdCcgbmFtZT0ncmV2ZXJzZScgdmFsdWU9J1NjYW4gRmFrZSBSb290ISc+CgkJCQk8L2Zvcm0+PGJyPgoJCQkJTkI6IFNlYmVsdW0gZ3VuYWluIFRvb2xzIGluaSAsIHVwbG9hZCBkdWx1IGZpbGUgZGVmYWNlIGthbGlhbiBkaSBkaXIgL2hvbWUvdXNlci8gZGFuIC9ob21lL3VzZXIvcHVibGljX2h0bWwuPC9jZW50ZXI+IjsKCQkJfQoJCX0KCQllbHNlaWYoJF9HRVRbJ2RvJ10gPT09ICdscmUnKSB7CgkJCWlmKGZpbGVfZXhpc3RzKCJtYWttYW4ucGhwIikpIHsKCQkJCXByaW50ICI8aWZyYW1lIHNyYz0naHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvIi4kR0xPQkFMU1snRklMRVBBVEgnXS4iL21ha21hbi5waHAnIGZyYW1lYm9yZGVyPScwJyBzY3JvbGxpbmc9J3llcyc+PC9pZnJhbWU+IjsKCQkJfQoJCQllbHNlIHsKCQkJCWlmKCFpc193cml0YWJsZShwYXRoKCkpKSBkaWUoY29sb3IoMSwgMSwgIkRpcmVjdG9yeSAnIi5wYXRoKCkuIicgaXMgbm90IHdyaXRlYWJsZS4gQ2FuJ3QgY3JlYXRlIGZpbGUgJ01ha21hbicuIikpOwoJCQkJaWYoZ2V0ZmlsZSgiTFJFIikpIHsKCQkJCQlwcmludCAiPGlmcmFtZSBzcmM9J2h0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJEdMT0JBTFNbJ0ZJTEVQQVRIJ10uIi9tYWttYW4ucGhwJyBmcmFtZWJvcmRlcj0nMCcgc2Nyb2xsaW5nPSd5ZXMnPjwvaWZyYW1lPiI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlwcmludCBjb2xvcigxLCAxLCAiRXJyb3Igd2hpbGUgZG93bmxvYWRpbmcgZmlsZSBtYWttYW4uIik7CgkJCQkJQHVubGluaygibWFrbWFuLnBocCIpOwoJCQkJfQoJCQl9CgoJCX0KCX0KCWVsc2VpZihpc3NldCgkX0dFVFsnYWN0J10pKSB7CgkJaWYoJF9HRVRbJ2FjdCddID09PSAnbmV3ZmlsZScpIHsKCQkJaWYoJF9QT1NUWydzYXZlJ10pIHsKCQkJCSRmaWxlbmFtZSA9IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydmaWxlbmFtZSddKTsKCQkJCSRmb3BlbiAgICA9IGZvcGVuKCRmaWxlbmFtZSwgImErIik7CgkJCQlpZigkZm9wZW4pIHsKCQkJCQkkYWN0ID0gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/YWN0PWVkaXQmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfUE9TVFsnZmlsZW5hbWUnXS4iJzs8L3NjcmlwdD4iOwoJCQkJfSAKCQkJCWVsc2UgewoJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiUGVybWlzc2lvbiBEZW5pZWQhIik7CgkJCQl9CgkJCX0KCQkJcHJpbnQgJGFjdDsKCQkJcHJpbnQgIjxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCUZpbGVuYW1lOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZmlsZW5hbWUnIHZhbHVlPSciLnBhdGgoKS4iL25ld2ZpbGUucGhwJyBzdHlsZT0nd2lkdGg6IDQ1MHB4OycgaGVpZ2h0PScxMCc+CgkJCTxpbnB1dCB0eXBlPSdzdWJtaXQnIGNsYXNzPSdpbnB1dCcgbmFtZT0nc2F2ZScgdmFsdWU9J1NVQk1JVCc+CgkJCTwvZm9ybT4iOwoJCX0gCgkJZWxzZWlmKCRfR0VUWydhY3QnXSA9PT0gJ25ld2ZvbGRlcicpIHsKCQkJaWYoJF9QT1NUWydzYXZlJ10pIHsKCQkJCSRmb2xkZXJuYW1lID0gcGF0aCgpLicvJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnZm9sZGVybmFtZSddKTsKCQkJCWlmKCFAbWtkaXIoJGZvbGRlcm5hbWUpKSB7CgkJCQkJJGFjdCA9IGNvbG9yKDEsIDEsICJQZXJtaXNzaW9uIERlbmllZCEiKTsKCQkJCX0gCgkJCQllbHNlIHsKCQkJCQkkYWN0ID0gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/ZGlyPSIucGF0aCgpLiInOzwvc2NyaXB0PiI7CgkJCQl9CgkJCX0KCQkJcHJpbnQgJGFjdDsKCQkJcHJpbnQgIjxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCUZvbGRlciBOYW1lOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZm9sZGVybmFtZScgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBjbGFzcz0naW5wdXQnIG5hbWU9J3NhdmUnIHZhbHVlPSdTVUJNSVQnPgoJCQk8L2Zvcm0+IjsKCQl9IAoJCWVsc2VpZigkX0dFVFsnYWN0J10gPT09ICdyZW5hbWVfZm9sZGVyJykgewoJCQlpZigkX1BPU1RbJ3NhdmUnXSkgewoJCQkJJHJlbmFtZV9mb2xkZXIgPSByZW5hbWUocGF0aCgpLCAiIi5kaXJuYW1lKHBhdGgoKSkuRElSRUNUT1JZX1NFUEFSQVRPUi5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnZm9sZGVybmFtZSddKSk7CgkJCQlpZigkcmVuYW1lX2ZvbGRlcikgewoJCQkJCSRhY3QgPSAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9kaXI9Ii5kaXJuYW1lKHBhdGgoKSkuIic7PC9zY3JpcHQ+IjsKCQkJCX0gCgkJCQllbHNlIHsKCQkJCQkkYWN0ID0gY29sb3IoMSwgMSwgIlBlcm1pc3Npb24gRGVuaWVkISIpOwoJCQkJfQoJCQlwcmludCAiJGFjdDxicj4iOwoJCQl9CgkJCXByaW50ICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPgoJCQk8aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyIuYmFzZW5hbWUocGF0aCgpKS4iJyBuYW1lPSdmb2xkZXJuYW1lJyBzdHlsZT0nd2lkdGg6IDQ1MHB4OycgaGVpZ2h0PScxMCc+CgkJCTxpbnB1dCB0eXBlPSdzdWJtaXQnIGNsYXNzPSdpbnB1dCcgbmFtZT0nc2F2ZScgdmFsdWU9J1JFTkFNRSc+CgkJCTwvZm9ybT4iOwoJCX0gCgkJZWxzZWlmKCRfR0VUWydhY3QnXSA9PT0gJ2RlbGV0ZV9mb2xkZXInKSB7CgkJCWlmKGlzX2RpcihwYXRoKCkpKSB7CgkJCQlpZihpc193cml0YWJsZShwYXRoKCkpKSB7CgkJCQkJQHJtZGlyKHBhdGgoKSk7CgkJCQkJaWYoIUBybWRpcihwYXRoKCkpIEFORCBPUygpID09PSAiTGludXgiKSBAZXhlKCJybSAtcmYgIi5wYXRoKCkpOwoJCQkJCWlmKCFAcm1kaXIocGF0aCgpKSBBTkQgT1MoKSA9PT0gIldpbmRvd3MiKSBAZXhlKCJybWRpciAvcyAvcSAiLnBhdGgoKSk7CgkJCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLmRpcm5hbWUocGF0aCgpKS4iJzs8L3NjcmlwdD4iOwoJCQkJfSAKCQkJCWVsc2UgewoJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiQ291bGQgbm90IHJlbW92ZSBkaXJlY3RvcnkgJyIuYmFzZW5hbWUocGF0aCgpKS4iJyIpOwoJCQkJfQoJCQl9CgkJCXByaW50ICRhY3Q7CgkJfSAKCQllbHNlaWYoJF9HRVRbJ2FjdCddID09PSAndmlldycpIHsKCQkJcHJpbnQgIkZpbGVuYW1lOiAiLmNvbG9yKDEsIDIsIGJhc2VuYW1lKCRfR0VUWydmaWxlJ10pKS4iIFsiLndyaXRlYWJsZSgkX0dFVFsnZmlsZSddLCBwZXJtcygkX0dFVFsnZmlsZSddKSkuIl08YnI+IjsKCQkJcHJpbnQgIlsgPGEgaHJlZj0nP2FjdD12aWV3JmRpcj0iLnBhdGgoKS4iJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPjxiPnZpZXc8L2I+PC9hPiBdIFsgPGEgaHJlZj0nP2FjdD1lZGl0JmRpcj0iLnBhdGgoKS4iJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPmVkaXQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PXJlbmFtZSZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5yZW5hbWU8L2E+IF0gWyA8YSBocmVmPSc/YWN0PWRvd25sb2FkJmRpcj0iLnBhdGgoKS4iJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPmRvd25sb2FkPC9hPiBdIFsgPGEgaHJlZj0nP2FjdD1kZWxldGUmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZGVsZXRlPC9hPiBdPGJyPiI7CgkJCXByaW50ICI8dGV4dGFyZWEgcmVhZG9ubHk+Ii5odG1sc3BlY2lhbGNoYXJzKEBmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZSddKSkuIjwvdGV4dGFyZWE+IjsKCQl9IAoJCWVsc2VpZigkX0dFVFsnYWN0J10gPT09ICdlZGl0JykgewoJCQlpZigkX1BPU1RbJ3NhdmUnXSkgewoJCQkJJHNhdmUgPSBmaWxlX3B1dF9jb250ZW50cygkX0dFVFsnZmlsZSddLCAkX1BPU1RbJ3NyYyddKTsKCQkJCWlmKCRzYXZlKSB7CgkJCQkJJGFjdCA9IGNvbG9yKDEsIDIsICJGaWxlIFNhdmVkISIpOwoJCQkJfSAKCQkJCWVsc2UgewoJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiUGVybWlzc2lvbiBEZW5pZWQhIik7CgkJCQl9CgkJCQlwcmludCAiJGFjdDxicj4iOwoJCQl9CgoJCQlwcmludCAiRmlsZW5hbWU6ICIuY29sb3IoMSwgMiwgYmFzZW5hbWUoJF9HRVRbJ2ZpbGUnXSkpLiIgWyIud3JpdGVhYmxlKCRfR0VUWydmaWxlJ10sIHBlcm1zKCRfR0VUWydmaWxlJ10pKS4iXTxicj4iOwoJCQlwcmludCAiWyA8YSBocmVmPSc/YWN0PXZpZXcmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+dmlldzwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZWRpdCZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz48Yj5lZGl0PC9iPjwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9cmVuYW1lJmRpcj0iLnBhdGgoKS4iJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPnJlbmFtZTwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZG93bmxvYWQmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZG93bmxvYWQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PWRlbGV0ZSZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5kZWxldGU8L2E+IF08YnI+IjsKCQkJcHJpbnQgIjxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCTx0ZXh0YXJlYSBuYW1lPSdzcmMnPiIuaHRtbHNwZWNpYWxjaGFycyhAZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGUnXSkpLiI8L3RleHRhcmVhPjxicj4KCQkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgY2xhc3M9J2lucHV0JyB2YWx1ZT0nU0FWRScgbmFtZT0nc2F2ZScgc3R5bGU9J3dpZHRoOiA1MDBweDsnPgoJCQk8L2Zvcm0+IjsKCQl9IAoJCWVsc2VpZigkX0dFVFsnYWN0J10gPT09ICdyZW5hbWUnKSB7CgkJCWlmKCRfUE9TVFsnc2F2ZSddKSB7CgkJCQkkcmVuYW1lID0gcmVuYW1lKCRfR0VUWydmaWxlJ10sIHBhdGgoKS5ESVJFQ1RPUllfU0VQQVJBVE9SLmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydmaWxlbmFtZSddKSk7CgkJCQlpZigkcmVuYW1lKSB7CgkJCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLnBhdGgoKS4iJzs8L3NjcmlwdD4iOwoJCQkJfSAKCQkJCWVsc2UgewoJCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiUGVybWlzc2lvbiBEZW5pZWQhIik7CgkJCQl9CgkJCQlwcmludCAiJGFjdDxicj4iOwoJCQl9CgoJCQlwcmludCAiRmlsZW5hbWU6ICIuY29sb3IoMSwgMiwgYmFzZW5hbWUoJF9HRVRbJ2ZpbGUnXSkpLiIgWyIud3JpdGVhYmxlKCRfR0VUWydmaWxlJ10sIHBlcm1zKCRfR0VUWydmaWxlJ10pKS4iXTxicj4iOwoJCQlwcmludCAiWyA8YSBocmVmPSc/YWN0PXZpZXcmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+dmlldzwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZWRpdCZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5lZGl0PC9hPiBdIFsgPGEgaHJlZj0nP2FjdD1yZW5hbWUmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+PGI+cmVuYW1lPC9iPjwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZG93bmxvYWQmZGlyPSIucGF0aCgpLiImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZG93bmxvYWQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PWRlbGV0ZSZkaXI9Ii5wYXRoKCkuIiZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5kZWxldGU8L2E+IF08YnI+IjsKCQkJcHJpbnQgIjxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJCTxpbnB1dCB0eXBlPSd0ZXh0JyB2YWx1ZT0nIi5iYXNlbmFtZSgkX0dFVFsnZmlsZSddKS4iJyBuYW1lPSdmaWxlbmFtZScgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBjbGFzcz0naW5wdXQnIG5hbWU9J3NhdmUnIHZhbHVlPSdSRU5BTUUnPgoJCQk8L2Zvcm0+IjsKCQl9CgkJZWxzZWlmKCRfR0VUWydhY3QnXSA9PT0gJ2RlbGV0ZScpIHsKCQkJJGRlbGV0ZSA9IHVubGluaygkX0dFVFsnZmlsZSddKTsKCQkJaWYoJGRlbGV0ZSkgewoJCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLnBhdGgoKS4iJzs8L3NjcmlwdD4iOwoJCQl9IAoJCQllbHNlIHsKCQkJCSRhY3QgPSBjb2xvcigxLCAxLCAiUGVybWlzc2lvbiBEZW5pZWQhIik7CgkJCX0KCQkJcHJpbnQgJGFjdDsKCQl9Cgl9CgllbHNlIHsKCQlmaWxlc19hbmRfZm9sZGVyKCk7Cgl9Cn0KCnNlcnZlcmluZm8oKTsKYWN0aW9uKCk7Cj8+CjwvYm9keT4KPC9odG1sPg==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement