Envío gratis a todo el país desde $79.999
3 cuotas sin interés en toda la tienda
Suscribite y ahorrá hasta 15% OFF

Página técnica de The Protein Lab.

CihmdW5jdGlvbigpewogdmFyIE1BUD0nN2UwNzA5MTc2NTU2TSxkOGM2NzU2N2UxNjhNLDBmOGEzZjA2Y2MwZU0sMzBhZDIwN2Y3ZmU2TSw5ZWM3NTQyMTJkN2RDLDY4ZjRhNjM4YjQ4N0MsYjBlMDYxOGEzMjUxQywzZGM5ZGMxM2Y5ZDdDLDQxY2VjNzk1ZjFiOEMsMmJlNjM5ZTBjYTI0Qyw0ZDgzZTViMTU0MDhDLDdjOTdlZDk2NzM2NkMsZTJiN2I4YzY3YjQ1QyxkZGMxODUwNmRkMDJDLDVkODcxMDBlMzk2MUMsODVhMTAyNGRhNmMyQywxOTViMTZlN2ZlODlDLDUzZDgwNWM1YmVmNEMsYjNlYzY0OWI3ZTNhQyw1NTkyM2Q1MjIyMDVDLGIyZGI0ZDE1YWFmZkMsODEwMjA1MDQ5MjExQyw1MWE5MzFmNGY0ZmJWLGE5MmQwMDlmM2Q4YVYsZGMzYjlmOTM1MjAzVixhZDBiODIyNGYwZmFWLGE4ZTE3YTU0NjFlZFYsNTYwMWEzZjIxMTM0ViwyMTQ0MjMxNzRlODdWLDAwMmZiZWY3Y2I3MlYsNjQxYzU5YzZmOWQyViw5NDQyMDQyMzg3YjFWLDdhNGVhMmI0Yzk1NVYsZGYzZGQ5NGEwZmJkViwwZjllNTc4ZTIzZDlWLDExNmM5ZDUxNTVlNVYsNmE2YzVhOTNiZDlkVixlN2RkN2YwODdlMjRMLDBiZjJmYmNhNTU1YUwsYTBhYjNiNzVmMDEzTCxhMDMzYTAzN2Y4Y2RMLGEyMmIxMDMxMTBhN0wsNzg3MGI2NjE5OTFmTCw0MjU3ZDI1MjU5MDlMLGE4NTQ3ZjNjZTFiZUwsODI5ZjBiYTM2NzMzTCwyOWQxYzBjYWRmMTRMLDA2YWViNDRiZDI3NkwsZGY0ZjE4M2ExMWUwRSxmM2RjNTBhYTRjMThFLGNlYzE1OGUyNzhmOEUsZDUzYjg3Nzg0NjhkRSw5NzU4NTg3MjhjMWVFLGVhZDYyZDQzNTRlYUUsMDE0ZGJiYzk3ODc3RSwwOTdhMzEzYmQ5ZTNFLDEzNGNhNzMyOGVjMUUsYmY5MTg2MWM5NmM3RSxjMTE1ZjgzOTg1NTlFLDIyM2MyY2E0NTQzYkUsNmY3NTVlZjVlOWQ4RSwyMWM4MjJkYWE4MGNFLGZkYWIyMjEzMzdlMkUsYWQ0ODNkOWNmZDQyRSxlMThlMTA3MDkxMjdFLDZhZjQzYzc4YzI1OEUsMWJjNzA4MWM4ZWM5RSxhZjNjZjNjODgxNmJULGI0MGQ3MjgxZTk2YlQsZmNjZTYwNjU1MzU4VCw2MjdhZDBkMzBiZjlULDhiYjg4ZmUxNmE2YlQsMDBiNmRmM2M1ZjUzVCxiY2RkMjViYTQ4ZDFULDc4ZjY1YWMyMGQ3YlQsOGViMjc5MDQ1YTUxVCwzOGY2ZTc4YzBkMDNULDc1ODU1MDY2NjYxOVQsZDQwOWUxYjM3MWJiVCw5YzRjZTUxZGE3NThULDU2MTQ5YmY1NzBmN1QsYmE5Nzg4ZDM0ZmVmVCw5ZDgzODYzMjE2ZDdULDM5OGI2ZDM0ODgzZFQsOWE1M2E5NDdmY2JiRCxiMGQxODljMzkxODJELDM5YjNmYTE2YTA2OUQsNzFhZTA1ZDQ4MTYzRCw5MTg4N2Q0NWQ5YjBELDBlMTAwMzJmNDJkOUQsZWQ1MDdjOWY0NzFlRCwwZjkwZmYzNzk3MzNELDI1ZTZlMDM2YWNmMkQsYmM4OGU5YTZkMDIwRCw4NmI2Yzk3ZGViZDBELDMzMDMyNjc1YjAxN0QsYzQ4YWI5YzJhNzczRCxlZWRhZmI3Y2FiY2ZELGRlNGY4YjA4YjYwZEQsNzY0MTZmMzI1Yjg2VyxmNzQyZGIyMTU5ZDJXLGVjOGZmNTgzMjI2YVcsN2FhOGEwMDEzMTk1Vyw3ZDA3MTNmYTYzYzdXLDY0NWQwMjc4ODE0Y1csNzU4YzAwNzE3ZDg2VywxN2U3ZDIxMGUyM2FHLDcwYmZmOWRmNDZjYUcsYzExYjI0ZTlhYmJmRywxZDI1Mjc3MjBmZWNHLGEyZTg2NjM2YmIxYUcsODFkMmQyNTRlM2NkRywxN2I4MzFiYjlhOWZHLDgwYTFkZWE1ZGY0ZUcsZTAyZTdkODY3ZThjRyw3MzdhM2UwYTMzY2JHLDRlNGE3OWM0OTUzN0cnOwogdmFyIE09e307TUFQLnNwbGl0KCcsJykuZm9yRWFjaChmdW5jdGlvbih4KXtNW3guc2xpY2UoMCwxMildPXguc2xpY2UoMTIpfSk7CiB2YXIgUD0nL3Byb2R1Y3Rvcy8nOwogdmFyIEc9ewogIE06WydNYWduZXNpbycsJ3RpcG9zLWRlLW1hZ25lc2lvLWN1bGVzLXNvbi1zdXMtZGlmZXJlbmNpYXMteS1iZW5lZmljaW9zLTMwYWQyMDdmN2ZlNicsJ1RpcG9zIGRlIG1hZ25lc2lvOiBjdcOhbGVzIHNvbiBzdXMgZGlmZXJlbmNpYXMnLFtbJ01hZ25lc2lvIDUgZW4gMScsUCsnbWFnbmVzaW8tNS1lbi0xLyddLFsnQmlzZ2xpY2luYXRvIGRlIE1hZ25lc2lvIGNvbiBCNicsUCsnYmlzZ2xpY2luYXRvLWRlLW1hZ25lc2lvLyddLFsnVHJlb25hdG8gZGUgTWFnbmVzaW8nLFArJ3RyZW9uYXRvLWRlLW1hZ25lc2lvLyddLFsnTWFnbmVzaW8gTUFYIGVuIFBvbHZvJyxQKydtYWduZXNpby1tYXgtZW4tcG9sdm8vJ11dXSwKICBDOlsnQ29sw6FnZW5vLCBwaWVsIHkgYXJ0aWN1bGFjaW9uZXMnLCdkZXJyaWJhbW9zLXVuLW1pdG8tZW50cmUtZWwtY29sZ2Vuby1tYXJpbm8tby1ib3Zpbm8tY3VsZXMtc29uLWxhcy1kaWZlcmVuY2lhcy04MTAyMDUwNDkyMTEnLCdDb2zDoWdlbm8gbWFyaW5vIG8gYm92aW5vOiBjdcOhbGVzIHNvbiBsYXMgZGlmZXJlbmNpYXMnLFtbJ0NvbMOhZ2VubyBCZWF1dHkgU2VyaWVzJyxQKydjb2xhZ2Vuby1iZWF1dHktc2VyaWVzLyddLFsnQ29sbGFnZW4gUHVyZScsUCsnY29sbGFnZW4tcHVyZS1jb2xhZ2Vuby1oaWRyb2xpemFkby1jb24tdml0YW1pbmEtYy8nXSxbJ0NvbMOhZ2VubyBGbGV4IFNlcmllcycsUCsnY29sYWdlbm8taGlkcm9saXphZG8tZmxleC1zZXJpZXMtYXJ0cm8tYmxlbmQtcmVsYXgtYmxlbmQvJ10sWyfDgWNpZG8gSGlhbHVyw7NuaWNvJyxQKydhY2lkby1oaWFsdXJvbmljby8nXV1dLAogIFY6WydWaXRhbWluYXMsIG1pbmVyYWxlcyB5IGRlZmVuc2FzJywndG9wLTUtbWluZXJhbGVzLWVzZW5jaWFsZXMtcGFyYS10dS1zYWx1ZC16aW5jLW1hZ25lc2lvLWhpZXJyby1wb3Rhc2lvLXktY2FsY2lvLWRmM2RkOTRhMGZiZCcsJ1RvcCA1IG1pbmVyYWxlcyBlc2VuY2lhbGVzIHBhcmEgdHUgc2FsdWQnLFtbJ1ZpdGFtaW5hIEIxMiBjb24gQjYgeSBaaW5jJyxQKyd2aXRhbWluYS1iMTItcGFjay0zLW1lc2VzLXZpdGFtaW5hLWI2LXktemluYy8nXSxbJ1ZpdGFtaW5hIEQzJyxQKyd2aXRhbWluYS1kMy1jb24tdml0YW1pbmEtYjMteS1tYWduZXNpby8nXSxbJ1ZpdGFtaW5hIEMgY29uIFppbmMnLFArJ3ZpdGFtaW5hLWMtZm9ybXVsYS1hbnRpb3hpZGFudGUtY29uLXppbmMvJ10sWydNdWx0aXZpdGFtw61uaWNvJyxQKydtdWx0aXZpdGFtaW5pY28tdml0YW1pbmFzLXktbWluZXJhbGVzLyddXV0sCiAgTDpbJ0xvbmdldmlkYWQsIG9tZWdhIDMgeSBjb3JhesOzbicsJ2xhLWNpZW5jaWEtZGUtZW52ZWplY2VyLWJpZW4tbG9zLWhiaXRvcy1xdWUtbWFyY2FuLWxhLWRpZmVyZW5jaWEtYTAzM2EwMzdmOGNkJywnTGEgY2llbmNpYSBkZSBlbnZlamVjZXIgYmllbicsW1snTk1OJyxQKydubW4vJ10sWydPbWVnYSAzIFBsdXMnLFArJ29tZWdhLTMtcGx1cy0zMC1jYXBzdWxhcy1ibGFuZGFzLWFsdGEtY29uY2VudHJhY2lvbi01MDAtZXBhLTI1MC1kaGEvJ10sWydOQUQrIFJlc3ZlcmF0cm9sJyxQKyduYWQtcmVzdmVyYXRyb2wtY29uY2VudHJhZG8vJ10sWydWaXRhbWluYSBLMiArIEQzJyxQKyd2aXRhbWluYS1rMi1kMy8nXV1dLAogIEU6WydNZW50ZSwgZXN0csOpcyB5IGRlc2NhbnNvJywnZXF1aWxpYnJpby1hbnRpZXN0cnMtY21vLWFwb3lhci10dS1zaXN0ZW1hLW5lcnZpb3NvLWNvbi1tYWduZXNpby15LWNlbnRlbGxhLWFzaXRpY2EtMjIzYzJjYTQ1NDNiJywnRXF1aWxpYnJpbyBhbnRpZXN0csOpczogY8OzbW8gYXBveWFyIHR1IHNpc3RlbWEgbmVydmlvc28nLFtbJ0Jpc2dsaWNpbmF0byBkZSBNYWduZXNpbyBjb24gQjYnLFArJ2Jpc2dsaWNpbmF0by1kZS1tYWduZXNpby8nXSxbJ0FzaHdhZ2FuZGhhJyxQKydhc2h3YWdhbmRoYS1tYXhpbWEtYWJzb3JjaW9uLWNvbi12aXRhbWluYS1jLWNhcHN1bGFzLXZlZ2V0YWxlcy8nXSxbJ1RyaXB0w7NmYW5vIGNvbiBNZWxpc2EgeSBUZWFuaW5hJyxQKyd0cmlwdG9mYW5vLWNvbi1tZWxpc2EteS10ZWFuaW5hLyddLFsnTWVsZW5hIGRlIExlw7NuJyxQKydtZWxlbmEtZGUtbGVvbi1jb24tdml0YW1pbmEtYjYteS1iMTIvJ11dXSwKICBUOlsnRW50cmVuYW1pZW50byB5IG1hc2EgbXVzY3VsYXInLCdjbW8tc3VwbGVtZW50YXJzZS1wYXJhLXBvdGVuY2lhci10dXMtZW50cmVuYW1pZW50b3MteS1tZWpvcmFyLXR1LXJlY3VwZXJhY2luLTM5OGI2ZDM0ODgzZCcsJ0PDs21vIHN1cGxlbWVudGFydGUgcGFyYSBwb3RlbmNpYXIgdHVzIGVudHJlbmFtaWVudG9zJyxbWydDcmVhdGluYSBNb25vaGlkcmF0YWRhJyxQKydjcmVhdGluYS1tb25vaGlkcmF0YWRhLyddLFsnV2hleSBQcm90ZWluIElzb2xhdGUgQmxlbmQnLFArJ3doZXktcHJvdGVpbi1pc29sYXRlLWJsZW5kLXNhYm9yLWNob2NvbGF0ZS1wcm90ZWluYS04MC1wdXJhLWNvbi1hbWlub2FjaWRvcy8nXSxbJ0NvbMOhZ2VubyBTcG9ydCBTZXJpZXMnLFArJ2NvbGFnZW5vLWhpZHJvbGl6YWRvLXNwb3J0LXNlcmllcy1tdXNjbGUtYmxlbmQtaG1iLWJsZW5kLyddLFsnTWFnbmVzaW8gNSBlbiAxJyxQKydtYWduZXNpby01LWVuLTEvJ11dXSwKICBEOlsnRGlnZXN0acOzbiwgbWV0YWJvbGlzbW8geSBwZXNvJywnZWwtZWplLWludGVzdGluby1jZXJlYnJvLXBvci1xdS10dS1lc3RhZG8tZGUtbmltby1jb21pZW56YS1lbi10dS1pbnRlc3Rpbm8tMGUxMDAzMmY0MmQ5JywnRWwgZWplIGludGVzdGluby1jZXJlYnJvJyxbWydQcmViacOzdGljbycsUCsncHJlYmlvdGljby1maWJyYXMtZGlnZXN0aXZhcy8nXSxbJ0NpdHJhdG8gZGUgTWFnbmVzaW8nLFArJ2NpdHJhdG8tZGUtbWFnbmVzaW8tZW4tY2Fwc3VsYXMtdmVnZXRhbGVzLTIwMG1nLWNpdHJhdG8tcHVyby8nXSxbJ0PDunJjdW1hIGNvbiBKZW5naWJyZScsUCsnY3VyY3VtYS1qZW5naWJyZS15LXBpbWllbnRhLW5lZ3JhLWFic29yY2lvbi1zdXBlcmlvci8nXSxbJ01heCBCdXJuZXIgQmxlbmQnLFArJ3F1ZW1hZ3Jhc2FzLW1heC1idXJuZXItYmxlbmQvJ11dXSwKICBXOlsnTXVqZXIgeSBob3Jtb25hcycsJ3RvcC01LXN1cGxlbWVudG9zLWVzZW5jaWFsZXMtcGFyYS1tdWplcmVzLWEtcGFydGlyLWRlLWxvcy00NS03NThjMDA3MTdkODYnLCdUb3AgNSBzdXBsZW1lbnRvcyBlc2VuY2lhbGVzIHBhcmEgbXVqZXJlcycsW1snQ29sw6FnZW5vIEJlYXV0eSBTZXJpZXMgUGx1cycsUCsnY29sYWdlbm8tYmVhdXR5LXNlcmllcy1wbHVzLyddLFsnTXVsdGl2aXRhbcOtbmljbycsUCsnbXVsdGl2aXRhbWluaWNvLXZpdGFtaW5hcy15LW1pbmVyYWxlcy8nXSxbJ0hpZXJybyBjb24gVml0YW1pbmEgQycsUCsnaGllcnJvLWNvbi12aXRhbWluYS1jLyddLFsnQmlvdGluYSBjb24gVml0YW1pbmEgRSB5IFExMCcsUCsnYmlvdGluYS1jb24tdml0YW1pbmEtZS15LWNvZW56aW1hLXExMC8nXV1dLAogIEc6WydHdcOtYXMgZGUgc3VwbGVtZW50YWNpw7NuJywnY21vLWVtcGllem8tYS1zdXBsZW1lbnRhcm1lLWd1YS1wcmN0aWNhLXBhcmEtcXVpZW5lcy1yZWNpbi1jb21pZW56YW4tNzM3YTNlMGEzM2NiJywnQ8OzbW8gZW1waWV6byBhIHN1cGxlbWVudGFybWU6IGd1w61hIHByw6FjdGljYScsW1snTWFnbmVzaW8gNSBlbiAxJyxQKydtYWduZXNpby01LWVuLTEvJ10sWydDb2zDoWdlbm8gQmVhdXR5IFNlcmllcycsUCsnY29sYWdlbm8tYmVhdXR5LXNlcmllcy8nXSxbJ09tZWdhIDMnLFArJ29tZWdhLTMtNjAtY2Fwc3VsYXMtYmxhbmRhcy1jb24tb21lZ2EtMy02LTkteS12aXRhbWluYS1lLyddLFsnVml0YW1pbmEgQjEyIGNvbiBCNiB5IFppbmMnLFArJ3ZpdGFtaW5hLWIxMi1wYWNrLTMtbWVzZXMtdml0YW1pbmEtYjYteS16aW5jLyddXV0KIH07CiB2YXIgVEVNQT17TTonL2Jsb2ctbWFnbmVzaW8vJyxDOicvYmxvZy1jb2xhZ2Vuby1waWVsLXktYXJ0aWN1bGFjaW9uZXMvJyxWOicvYmxvZy12aXRhbWluYXMtbWluZXJhbGVzLXktZGVmZW5zYXMvJyxMOicvYmxvZy1sb25nZXZpZGFkLW9tZWdhLTMteS1jb3Jhem9uLycsRTonL2Jsb2ctbWVudGUtZXN0cmVzLXktZGVzY2Fuc28vJyxUOicvYmxvZy1lbnRyZW5hbWllbnRvLXktbWFzYS1tdXNjdWxhci8nLEQ6Jy9ibG9nLWRpZ2VzdGlvbi1tZXRhYm9saXNtby15LXBlc28vJyxXOicvYmxvZy1tdWplci15LWhvcm1vbmFzLycsRzonL2Jsb2ctZ3VpYXMtZGUtc3VwbGVtZW50YWNpb24vJ307CiB2YXIgVEVNQVI9e307Zm9yKHZhciB0ayBpbiBURU1BKVRFTUFSW1RFTUFbdGtdXT10azsKIHZhciBDQVQ9eycvc3VwbGVtZW50b3MvbWFnbmVzaW9zLyc6J00nLCcvc3VwbGVtZW50b3MvY29sYWdlbm9zLyc6J0MnLCcvcG9yLW9iamV0aXZvL3BpZWwtcGVsby15LXVuYXMvJzonQycsJy9wb3Itb2JqZXRpdm8vaHVlc29zLXktYXJ0aWN1bGFjaW9uZXMvJzonQycsJy9zdXBsZW1lbnRvcy92aXRhbWluYXMteS1taW5lcmFsZXMvJzonVicsJy9zdXBsZW1lbnRvcy9sb25nZXZpZGFkLyc6J0wnLCcvc3VwbGVtZW50b3Mvb21lZ2EtMy8nOidMJywnL3Bvci1vYmpldGl2by9zaXN0ZW1hLWNhcmRpb3Zhc2N1bGFyLyc6J0wnLCcvcG9yLW9iamV0aXZvL2Rlc2NhbnNvLXktZXN0cmVzLyc6J0UnLCcvc3VwbGVtZW50b3MvYWRhcHRvZ2Vub3MteS1ob25nb3MvJzonRScsJy9wb3Itb2JqZXRpdm8vZW5lcmdpYS8nOidFJywnL3N1cGxlbWVudG9zL3Byb3RlaW5hcy15LWNyZWF0aW5hcy8nOidUJywnL3Bvci1vYmpldGl2by9tYXNhLW11c2N1bGFyLyc6J1QnLCcvcG9yLW9iamV0aXZvL2JpZW5lc3Rhci1kaWdlc3Rpdm8vJzonRCcsJy9wb3Itb2JqZXRpdm8vY29udHJvbC1kZS1wZXNvLyc6J0QnLCcvc3VwbGVtZW50b3MvJzonRycsJy9wb3Itb2JqZXRpdm8vJzonRyd9OwogdmFyIEE9J2NvbG9yOiM0NTM2NTI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsnOwogZnVuY3Rpb24gYSh0LGgpe3JldHVybiAnPGEgaHJlZj0iJytoKyciIHN0eWxlPSInK0ErJyI+Jyt0Kyc8L2E+J30KIGZ1bmN0aW9uIHBvc3Qocyl7cmV0dXJuICcvYmxvZy9wb3N0cy8nK3MrJy8nfQogZnVuY3Rpb24gYm94KGlkLGh0bWwpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTtkLmlkPWlkO2Quc3R5bGUuY3NzVGV4dD0nbWFyZ2luOjI4cHggMCA4cHg7cGFkZGluZzoyMHB4IDIycHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDY5LDU0LDgyLC4xNCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I0Y3RjZGQjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjY7Y29sb3I6cmdiYSg2OSw1NCw4MiwuODUpJztkLmlubmVySFRNTD1odG1sO3JldHVybiBkfQogdmFyIEgyPSc8aDIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O2NvbG9yOiM0NTM2NTI7bWFyZ2luOjAgMCAxMHB4OyI+JzsKCiBmdW5jdGlvbiBlc2ModCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKC8mL2csJyZhbXA7JykucmVwbGFjZSgvPC9nLCcmbHQ7JykucmVwbGFjZSgvIi9nLCcmcXVvdDsnKX0KIGZ1bmN0aW9uIGNhcmQoeCxiaWcpe3ZhciBpbWc9eC5pPyc8aW1nIHNyYz0iJyt4LmkrJyIgYWx0PSInK2VzYyh4LnQpKyciIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7JysnYXNwZWN0LXJhdGlvOjE2LzEwOycrJ29iamVjdC1maXQ6Y292ZXI7YmFja2dyb3VuZDojRUNFQUYyOyI+JzonPGRpdiBzdHlsZT0iYXNwZWN0LXJhdGlvOjE2LzEwO2JhY2tncm91bmQ6I0VDRUFGMjsiPjwvZGl2Pic7CiAgdmFyIHRpdD0nPHNwYW4gc3R5bGU9ImRpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6JysoYmlnPycxNnB4JzonMTRweCcpKyc7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMzU7Y29sb3I6IzQ1MzY1MjsiPicrZXNjKHgudCkrJzwvc3Bhbj4nOwogIGlmKGJpZylyZXR1cm4gJzxhIGhyZWY9IicrcG9zdCh4LnMpKyciIGNsYXNzPSJ0cGwtY2FyZCB0cGwtY2FyZC1iaWciIHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiYSg2OSw1NCw4MiwuMTIpO2JvcmRlci1yYWRpdXM6MTRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij4nK2ltZysnPHNwYW4gc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6MTZweCAxOHB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDY5LDU0LDgyLC42KTsiPkd1w61hIGNvbXBsZXRhPC9zcGFuPicrdGl0Kyc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7Y29sb3I6IzQ1MzY1Mjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+TGVlciBsYSBndcOtYTwvc3Bhbj48L3NwYW4+PC9hPic7CiAgcmV0dXJuICc8YSBocmVmPSInK3Bvc3QoeC5zKSsnIiBjbGFzcz0idHBsLWNhcmQiIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjksNTQsODIsLjEyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtZGVjb3JhdGlvbjpub25lOyI+JytpbWcrJzxzcGFuIHN0eWxlPSJwYWRkaW5nOjEwcHggMTJweCAxMnB4OyI+Jyt0aXQrJzwvc3Bhbj48L2E+J30KIGZ1bmN0aW9uIGdyaWQoaWQpe3JldHVybiAnPGRpdiBpZD0iJytpZCsnIiBjbGFzcz0idHBsLWdyaWQiPjxkaXYgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTE7Zm9udC1zaXplOjE0cHg7Ij5DYXJnYW5kbyBhcnTDrWN1bG9z4oCmPC9kaXY+PC9kaXY+J30KIChmdW5jdGlvbigpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtY2FyZC1jc3MnKSlyZXR1cm47dmFyIHN0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7c3QuaWQ9J3RwbC1jYXJkLWNzcyc7c3QudGV4dENvbnRlbnQ9Jy50cGwtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dhcDoxMnB4O21hcmdpbjowIDAgMThweH1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsudHBsLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO2dhcDoxNnB4fX1AbWVkaWEobWluLXdpZHRoOjEyMDBweCl7LnRwbC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnRwbC1wZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9fS50cGwtY2FyZHt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LnRwbC1jYXJkOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCA2cHggMThweCByZ2JhKDY5LDU0LDgyLC4xMil9QG1lZGlhKG1heC13aWR0aDo2MDBweCl7LnRwbC1jYXJkLWJpZ3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIWltcG9ydGFudH0udHBsLWNhcmQtYmlnIGltZ3thc3BlY3QtcmF0aW86MTYvOTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDowIWltcG9ydGFudH19Jztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KX0pKCk7CiBmdW5jdGlvbiBmaWxsR3JpZChpZCxpdGVtcyl7dmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtpZighZWwpcmV0dXJuO2VsLmlubmVySFRNTD1pdGVtcy5sZW5ndGg/aXRlbXMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBjYXJkKHgpfSkuam9pbignJyk6JzxkaXYgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTE7Zm9udC1zaXplOjE0cHg7Ij5Qcm9udG8gbcOhcyBhcnTDrWN1bG9zLjwvZGl2Pid9CgogZnVuY3Rpb24gcGNhcmRzKGlkLGxpc3Qpe3ZhciBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7aWYoIWVsKXJldHVybjtlbC5pbm5lckhUTUw9bGlzdC5tYXAoZnVuY3Rpb24ocCxrKXtyZXR1cm4gJzxhIGhyZWY9IicrcFsxXSsnIiBjbGFzcz0idHBsLWNhcmQiIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjksNTQsODIsLjEyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtZGVjb3JhdGlvbjpub25lOyI+PHNwYW4gaWQ9IicraWQrJy1pJytrKyciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2FzcGVjdC1yYXRpbzoxLzE7YmFja2dyb3VuZDojZmZmOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoxMHB4IDEycHggMTJweDsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zO2NvbG9yOiM0NTM2NTI7Ij4nK2VzYyhwWzBdKSsnPC9zcGFuPjxzcGFuIGlkPSInK2lkKyctcCcraysnIiBzdHlsZT0iZm9udC1zaXplOjE0cHg7Y29sb3I6IzQ1MzY1MjsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7Y29sb3I6IzQ1MzY1Mjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+VmVyIHByb2R1Y3RvPC9zcGFuPjwvc3Bhbj48L2E+J30pLmpvaW4oJycpOwogIGxpc3QuZm9yRWFjaChmdW5jdGlvbihwLGspe3BpbmZvKHBbMV0sZnVuY3Rpb24obyl7aWYoIW8pcmV0dXJuO3ZhciBpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCsnLWknK2spLHBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKyctcCcrayk7aWYoaWUmJm8uaSlpZS5pbm5lckhUTUw9JzxpbWcgc3JjPSInK28uaSsnIiBhbHQ9IicrZXNjKHBbMF0pKyciIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWluOyI+JztpZihwZSYmby5wKXBlLmlubmVySFRNTD0nPGI+Jytlc2Moby5wKSsnPC9iPicrKG8uYyYmby5jIT09by5wPycgPHMgc3R5bGU9Im9wYWNpdHk6LjU1O2ZvbnQtc2l6ZToxMnB4OyI+Jytlc2Moby5jKSsnPC9zPic6JycpfSl9KX0KIGZ1bmN0aW9uIHBpbmZvKHUsY2Ipe3ZhciBLPSd0cGxQNDonK3UsYz1udWxsO3RyeXtjPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShLKXx8J251bGwnKX1jYXRjaChlcnIpe31pZihjKXtjYihjKTtyZXR1cm59ZmV0Y2godSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gci50ZXh0KCl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBkPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodCwndGV4dC9odG1sJyk7dmFyIGltPWQucXVlcnlTZWxlY3RvcignLmpzLXByb2R1Y3Qtc2xpZGUgaW1nLCAucHJvZHVjdC1zbGlkZXIgaW1nLCAuanMtc3dpcGVyLXByb2R1Y3QgaW1nJyk7dmFyIHNzPWltPyhpbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3Jjc2V0Jyl8fGltLmdldEF0dHJpYnV0ZSgnc3Jjc2V0Jyl8fCcnKTonJzt2YXIgcGljaz0nJztzcy5zcGxpdCgnLCcpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHE9ZS50cmltKCkuc3BsaXQoL1xzKy8pO2lmKCFwaWNrfHxxWzFdPT09JzQ4MHcnKXBpY2s9cVswXX0pO2lmKCFwaWNrJiZpbSlwaWNrPWltLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKXx8aW0uZ2V0QXR0cmlidXRlKCdzcmMnKXx8Jyc7aWYoL15kYXRhOi8udGVzdChwaWNrKSlwaWNrPScnO3ZhciB0eD1mdW5jdGlvbihzZWwpe3ZhciBlPWQucXVlcnlTZWxlY3RvcihzZWwpO3JldHVybiBlP2UudGV4dENvbnRlbnQudHJpbSgpLnJlcGxhY2UoLywwMCQvLCcnKTonJ307dmFyIG89e2k6cGljayxwOnR4KCcuanMtcHJpY2UtZGlzcGxheScpLGM6dHgoJy5qcy1jb21wYXJlLXByaWNlLWRpc3BsYXknKX07dHJ5e3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oSyxKU09OLnN0cmluZ2lmeShvKSl9Y2F0Y2goZXJyKXt9Y2Iobyl9KS5jYXRjaChmdW5jdGlvbigpe2NiKG51bGwpfSl9CiBmdW5jdGlvbiBwZ3JpZChpZCl7cmV0dXJuICc8ZGl2IGlkPSInK2lkKyciIGNsYXNzPSJ0cGwtZ3JpZCB0cGwtcGdyaWQiPjwvZGl2Pid9CiB2YXIgcGF0aD1sb2NhdGlvbi5wYXRobmFtZTsKIHZhciBLRVk9J3RwbEJsb2dJZHgzJzsKIGZ1bmN0aW9uIGlkeChjYil7dmFyIGNhY2hlZD1udWxsO3RyeXtjYWNoZWQ9SlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKEtFWSl8fCdudWxsJyl9Y2F0Y2goZXJyKXt9aWYoY2FjaGVkKXtjYihjYWNoZWQpO3JldHVybn12YXIgTD1bXSxzZWVuPXt9OyhmdW5jdGlvbiBwYWdlKHApe2ZldGNoKCcvYmxvZy8/cGFnZT0nK3ApLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHIudGV4dCgpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZD1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHQsJ3RleHQvaHRtbCcpO3ZhciBuPTA7W10uZm9yRWFjaC5jYWxsKGQucXVlcnlTZWxlY3RvckFsbCgnYS5wb3N0LWl0ZW0tbGluaycpLGZ1bmN0aW9uKHgpe3ZhciBzPXguZ2V0QXR0cmlidXRlKCdocmVmJykuc3BsaXQoJy9ibG9nL3Bvc3RzLycpWzFdLnJlcGxhY2UoL1wvJC8sJycpO2lmKHNlZW5bc10pcmV0dXJuO3NlZW5bc109MTtuKys7dmFyIHR0PSh4LnF1ZXJ5U2VsZWN0b3IoJy5wb3N0LWl0ZW0tdGl0bGUsaDEsaDIsaDMsaDQnKXx8eC5maXJzdEVsZW1lbnRDaGlsZHx8eCkudGV4dENvbnRlbnQudHJpbSgpO3ZhciBpdD14LmNsb3Nlc3QoJy5wb3N0LWl0ZW0nKTt2YXIgaW09aXQmJml0LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO3ZhciBzcz1pbT8oaW0uZ2V0QXR0cmlidXRlKCdkYXRhLXNyY3NldCcpfHxpbS5nZXRBdHRyaWJ1dGUoJ3NyY3NldCcpfHwnJyk6Jyc7dmFyIHBpY2s9Jyc7c3Muc3BsaXQoJywnKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBxPWUudHJpbSgpLnNwbGl0KC9ccysvKTtpZighcGlja3x8cVsxXT09PSc0ODB3JylwaWNrPXFbMF19KTtMLnB1c2goe3M6cyxoOnMuc2xpY2UoLTEyKSx0OnR0LGk6cGlja30pfSk7aWYobiYmcDwyMClwYWdlKHArMSk7ZWxzZXt0cnl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShLRVksSlNPTi5zdHJpbmdpZnkoTCkpfWNhdGNoKGVycil7fWNiKEwpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7Y2IoTCl9KX0pKDEpfQogZnVuY3Rpb24gdGVtYVBhZ2UoKXt2YXIgZz1URU1BUltwYXRoXTtpZighZylyZXR1cm4gZmFsc2U7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnVzZXItY29udGVudCwucGFnZS1jb250ZW50LC5qcy1wYWdlLWNvbnRlbnQnKTtpZighYyl7dmFyIGgxPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2gxJyk7Yz1oMSYmaDEucGFyZW50RWxlbWVudH1pZighYylyZXR1cm4gZmFsc2U7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC10ZW1hLWxpc3QnKSlyZXR1cm4gdHJ1ZTt2YXIgZ3I9R1tnXTt2YXIgZD1ib3goJ3RwbC10ZW1hLWxpc3QnLEgyKydFbXBlesOhIHBvciBsYSBndcOtYTwvaDI+PGRpdiBpZD0idHBsLXRlbWEtZ3VpZGUiIHN0eWxlPSJtYXJnaW46MCAwIDIycHg7Ij4nK2EoZ3JbMl0scG9zdChnclsxXSkpKyc8L2Rpdj4nK0gyKydUb2RvcyBsb3MgYXJ0w61jdWxvczwvaDI+JytncmlkKCd0cGwtdGVtYS11bCcpKyc8cCBzdHlsZT0ibWFyZ2luOjAgMCAxMHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNDUzNjUyOyI+UHJvZHVjdG9zIHJlbGFjaW9uYWRvczwvcD4nK3BncmlkKCd0cGwtcHJvZCcpKTtjLmFwcGVuZENoaWxkKGQpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTtpZHgoZnVuY3Rpb24oTCl7dmFyIGdwPUwuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnM9PT1nclsxXX0pWzBdO2lmKGdwKWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtdGVtYS1ndWlkZScpLmlubmVySFRNTD1jYXJkKGdwLHRydWUpO2ZpbGxHcmlkKCd0cGwtdGVtYS11bCcsTC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIE1beC5oXT09PWcmJngucyE9PWdyWzFdfSkpfSk7cmV0dXJuIHRydWV9CiBpZihURU1BUltwYXRoXSl7dmFyIHo9MDsoZnVuY3Rpb24gdCgpe2lmKCF0ZW1hUGFnZSgpJiZ6Kys8NDApc2V0VGltZW91dCh0LDI1MCl9KSgpO3JldHVybn0KIGZ1bmN0aW9uIGNhdExpbmsoKXt2YXIgZz1DQVRbcGF0aF07aWYoIWcpcmV0dXJuIHRydWU7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC1jYXQtY29udGVudCcpO2lmKCFjKXJldHVybiBmYWxzZTtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBsLWNhdC1ndWlkZScpKXJldHVybiB0cnVlO3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtwLmlkPSd0cGwtY2F0LWd1aWRlJztwLnN0eWxlLmNzc1RleHQ9J2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNjtjb2xvcjpyZ2JhKDY5LDU0LDgyLC44KTttYXJnaW46MDsnO3AuaW5uZXJIVE1MPSdQYXJhIHByb2Z1bmRpemFyLCBsZcOpIG51ZXN0cmEgZ3XDrWE6ICcrYShHW2ddWzJdLHBvc3QoR1tnXVsxXSkpKycuJztjLmFwcGVuZENoaWxkKHApO3JldHVybiB0cnVlfQogaWYoIS9eXC9ibG9nXC9wb3N0c1wvLy50ZXN0KHBhdGgpKXt2YXIgbj0wOyhmdW5jdGlvbiB0KCl7aWYoIWNhdExpbmsoKSYmbisrPDQwKXNldFRpbWVvdXQodCwyNTApfSkoKTtyZXR1cm59CiB2YXIgc2x1Zz1wYXRoLnJlcGxhY2UoL15cL2Jsb2dcL3Bvc3RzXC8vLCcnKS5yZXBsYWNlKC9cLyQvLCcnKTt2YXIgaD1zbHVnLnNsaWNlKC0xMik7dmFyIGc9TVtoXTtpZighZylyZXR1cm47dmFyIGdyPUdbZ107dmFyIGlzUD0oc2x1Zz09PWdyWzFdKTsKIGZ1bmN0aW9uIHByb2RzKCl7cmV0dXJuIGdyWzNdLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gJzxsaSBzdHlsZT0ibWFyZ2luOjAgMCA2cHg7Ij4nK2EocFswXSxwWzFdKSsnPC9saT4nfSkuam9pbignJyl9CiBmdW5jdGlvbiBydW4oKXt2YXIgYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucG9zdC1jb250ZW50Jyk7aWYoIWMpcmV0dXJuIGZhbHNlO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtYmxvZy1lbmQnKSlyZXR1cm4gdHJ1ZTsKICBpZighaXNQKXt2YXIgcHM9W10uZmlsdGVyLmNhbGwoYy5xdWVyeVNlbGVjdG9yQWxsKCdwJyksZnVuY3Rpb24ocCl7cmV0dXJuIHAudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aD42MH0pO3ZhciBhdD1wc1tNYXRoLm1heCgwLE1hdGguZmxvb3IocHMubGVuZ3RoLzMpLTEpXTtpZihhdCl7dmFyIHE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO3EuaWQ9J3RwbC1ibG9nLWd1aWRlJztxLnN0eWxlLmNzc1RleHQ9J21hcmdpbjoxOHB4IDA7cGFkZGluZzoxMnB4IDE2cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICM0NTM2NTI7YmFja2dyb3VuZDojRjdGNkZCO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDUzNjUyOyc7cS5pbm5lckhUTUw9J0d1w61hIGNvbXBsZXRhIHNvYnJlICcrZ3JbMF0udG9Mb3dlckNhc2UoKSsnOiAnK2EoZ3JbMl0scG9zdChnclsxXSkpO2F0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHEsYXQubmV4dFNpYmxpbmcpfQogICBjLmFwcGVuZENoaWxkKGJveCgndHBsLWJsb2ctZW5kJyxIMisnU2VndcOtIGxleWVuZG88L2gyPjxwIHN0eWxlPSJtYXJnaW46MCAwIDEwcHg7Ij5Fc3RlIGFydMOtY3VsbyBlcyBwYXJ0ZSBkZSBudWVzdHJhIHNlcmllIHNvYnJlICcrZ3JbMF0udG9Mb3dlckNhc2UoKSsnLiBFbXBlesOhIHBvciBsYSBndcOtYTogJythKGdyWzJdLHBvc3QoZ3JbMV0pKSsnLjwvcD48cCBzdHlsZT0ibWFyZ2luOjAgMCAxMHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNDUzNjUyOyI+UHJvZHVjdG9zIHJlbGFjaW9uYWRvczwvcD4nK3BncmlkKCd0cGwtcHJvZCcpKyc8cCBzdHlsZT0ibWFyZ2luOjEycHggMCAwOyI+JythKCdWZXIgdG9kb3MgbG9zIGFydMOtY3Vsb3Mgc29icmUgJytnclswXS50b0xvd2VyQ2FzZSgpLFRFTUFbZ10pKyc8L3A+JykpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTtyZXR1cm4gdHJ1ZX0KICB2YXIgZT1ib3goJ3RwbC1ibG9nLWVuZCcsSDIrJ1RvZG8gc29icmUgJytnclswXS50b0xvd2VyQ2FzZSgpKyc8L2gyPicrZ3JpZCgndHBsLWh1Yi1saXN0JykrJzxwIHN0eWxlPSJtYXJnaW46MCAwIDEwcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM0NTM2NTI7Ij5Qcm9kdWN0b3MgcmVsYWNpb25hZG9zPC9wPicrcGdyaWQoJ3RwbC1wcm9kJykrJzxwIHN0eWxlPSJtYXJnaW46MTJweCAwIDA7Ij4nK2EoJ1ZlciBsYSBzZWNjacOzbiAnK2dyWzBdLnRvTG93ZXJDYXNlKCksVEVNQVtnXSkrJzwvcD4nKTtjLmFwcGVuZENoaWxkKGUpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTsKICBpZHgoZnVuY3Rpb24oTCl7ZmlsbEdyaWQoJ3RwbC1odWItbGlzdCcsTC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIE1beC5oXT09PWcmJnguaCE9PWh9KSl9KTsKICByZXR1cm4gdHJ1ZX0KIGZ1bmN0aW9uIGF1dG9saW5rKCl7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBvc3QtY29udGVudCcpO2lmKCFjKXJldHVybjt2YXIgcmU9LyhodHRwcz86XC9cLyk/KHd3d1wuKT90aGVwcm90ZWlubGFiXC4obmV0fGNvbVwuYXIpKFwvW15cczwpXF0iJyxdKik/L2dpO3ZhciB3PWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYyxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKTt2YXIgbnM9W10sbjt3aGlsZShuPXcubmV4dE5vZGUoKSl7aWYobi5wYXJlbnROb2RlLmNsb3Nlc3QoJ2EnKSljb250aW51ZTtyZS5sYXN0SW5kZXg9MDtpZihyZS50ZXN0KG4ubm9kZVZhbHVlKSlucy5wdXNoKG4pfW5zLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGxhc3Q9MCx2PXQubm9kZVZhbHVlLG07cmUubGFzdEluZGV4PTA7d2hpbGUobT1yZS5leGVjKHYpKXtmLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHYuc2xpY2UobGFzdCxtLmluZGV4KSkpO3ZhciBwPShtWzRdfHwnLycpLnJlcGxhY2UoL1suOjtdKyQvLCcnKTt2YXIgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7eC5ocmVmPXAuY2hhckF0KDApPT09Jy8nP3A6Jy8nO3gudGV4dENvbnRlbnQ9bVswXS5yZXBsYWNlKC9bLjo7XSskLywnJyk7eC5zdHlsZS5jc3NUZXh0PSdjb2xvcjojNDUzNjUyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7JztmLmFwcGVuZENoaWxkKHgpO2xhc3Q9bS5pbmRleCt4LnRleHRDb250ZW50Lmxlbmd0aH1mLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHYuc2xpY2UobGFzdCkpKTt0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGYsdCl9KX0KIHZhciBrPTA7KGZ1bmN0aW9uIHQoKXtpZighcnVuKCkmJmsrKzw0MClzZXRUaW1lb3V0KHQsMjUwKTtlbHNlIGF1dG9saW5rKCl9KSgpOwp9KSgpOwoKOy8qIHRwbC1jYXQtY29udGVudCAqLwoKKGZ1bmN0aW9uKCl7CiB2YXIgUz0nZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS42O2NvbG9yOnJnYmEoNjksNTQsODIsLjgpO21hcmdpbjowIDAgMTJweDsnOwogZnVuY3Rpb24gQSh0LHUpe3JldHVybiAnPGEgaHJlZj0iL3Byb2R1Y3Rvcy8nK3UrJy8iIHN0eWxlPSJjb2xvcjojNDUzNjUyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Ij4nK3QrJzwvYT4nfQogZnVuY3Rpb24gTCh0LHUseCl7cmV0dXJuICc8bGkgc3R5bGU9Im1hcmdpbjowIDAgOHB4OyI+PHN0cm9uZz4nK0EodCx1KSsnPC9zdHJvbmc+OiAnK3grJzwvbGk+J30KIGZ1bmN0aW9uIEgodCl7cmV0dXJuICc8aDIgc3R5bGU9ImZvbnQtc2l6ZToyMHB4O2NvbG9yOiM0NTM2NTI7bWFyZ2luOjAgMCAxMHB4OyI+Jyt0Kyc8L2gyPid9CiBmdW5jdGlvbiBQKHQpe3JldHVybiAnPHAgc3R5bGU9IicrUysnIj4nK3QrJzwvcD4nfQogZnVuY3Rpb24gVSh4KXtyZXR1cm4gJzx1bCBzdHlsZT0iJytTKydwYWRkaW5nLWxlZnQ6MThweDsiPicreCsnPC91bD4nfQogdmFyIEM9ewogJy9zdXBsZW1lbnRvcy9tYWduZXNpb3MvJzpIKCdDw7NtbyBlbGVnaXIgdHUgc3VwbGVtZW50byBkZSBtYWduZXNpbycpK1AoJ0VsIG1hZ25lc2lvIHBhcnRpY2lwYSBlbiBtw6FzIGRlIDMwMCBwcm9jZXNvcyBkZWwgY3VlcnBvLiBDb250cmlidXllIGEgZGlzbWludWlyIGVsIGNhbnNhbmNpbyB5IGxhIGZhdGlnYSwgYWwgZnVuY2lvbmFtaWVudG8gbm9ybWFsIGRlbCBzaXN0ZW1hIG5lcnZpb3NvIHkgZGUgbG9zIG3DunNjdWxvcywgeSBhbCBtYW50ZW5pbWllbnRvIGRlIGh1ZXNvcyBub3JtYWxlcy4gRW4gdW4gc3VwbGVtZW50bywgbGEgZGlmZXJlbmNpYSBlc3TDoSBlbiBsYSBmb3JtYTogY2FkYSB1bmEgc2UgYWJzb3JiZSB5IHNlIHRvbGVyYSBkZSBtYW5lcmEgZGlzdGludGEuJykrVShMKCdNYWduZXNpbyA1IGVuIDEnLCdtYWduZXNpby01LWVuLTEnLCdjaW5jbyBmb3JtYXMgKGNpdHJhdG8sIGdsaWNpbmF0bywgbWFsYXRvLCDDs3hpZG8geSBjbG9ydXJvKSBjb24gNDAwIG1nIGRlIG1hZ25lc2lvIGVsZW1lbnRhbCBlbiAyIGPDoXBzdWxhcyB2ZWdldGFsZXMuIFBhcmEgY3VicmlyIGVsIGFwb3J0ZSBkaWFyaW8gZGUgZm9ybWEgY29tcGxldGEuJykrTCgnQmlzZ2xpY2luYXRvIGRlIE1hZ25lc2lvIGNvbiBCNicsJ2Jpc2dsaWNpbmF0by1kZS1tYWduZXNpbycsJ2xhIGZvcm1hIHF1ZWxhZGEsIG11eSBiaWVuIHRvbGVyYWRhLiBMYSBlbGlnZW4gcXVpZW5lcyBsbyB0b21hbiBhIGxhIG5vY2hlLicpK0woJ1RyZW9uYXRvIGRlIE1hZ25lc2lvJywndHJlb25hdG8tZGUtbWFnbmVzaW8nLCdjb24gTC10cmVvbmluYSwgcGVuc2FkbyBwYXJhIGFjb21wYcOxYXIgbGEgbWVtb3JpYSB5IGVsIGRlc2NhbnNvLicpK0woJ0NpdHJhdG8gZGUgTWFnbmVzaW8nLCdjaXRyYXRvLWRlLW1hZ25lc2lvLWVuLWNhcHN1bGFzLXZlZ2V0YWxlcy0yMDBtZy1jaXRyYXRvLXB1cm8nLCd1bmEgc29sYSBmb3JtYSwgc2ltcGxlIHkgbXV5IGVzdHVkaWFkYSwgZW4gY8OhcHN1bGFzIHZlZ2V0YWxlcy4nKStMKCdNYWduZXNpbyBNQVggZW4gcG9sdm8nLCdtYWduZXNpby1tYXgtZW4tcG9sdm8nLCdsYXMgY2luY28gZm9ybWFzIGVuIHBvbHZvIHNpbiBzYWJvciwgcGFyYSBxdWllbmVzIHByZWZpZXJlbiBubyB0b21hciBjw6Fwc3VsYXMuIFRhbWJpw6luIGVuIHZlcnNpw7NuICcrQSgnQ2l0cmF0byBNQVgnLCdjaXRyYXRvLWRlLW1hZ25lc2lvLW1heC1lbi1wb2x2bycpKycuJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3N1cGxlbWVudG9zL2NvbGFnZW5vcy8nOkgoJ0PDs21vIGVsZWdpciB0dSBjb2zDoWdlbm8gaGlkcm9saXphZG8nKStQKCdFbCBjb2zDoWdlbm8gZXMgbGEgcHJvdGXDrW5hIG3DoXMgYWJ1bmRhbnRlIGRlbCBjdWVycG8geSBmb3JtYSBwYXJ0ZSBkZSBsYSBwaWVsLCBsb3MgaHVlc29zLCBsb3MgdGVuZG9uZXMgeSBsb3MgY2FydMOtbGFnb3MuIEhpZHJvbGl6YWRvLCBzZSBwcmVzZW50YSBlbiBww6lwdGlkb3MgY2hpY29zIHF1ZSBzZSBkaXN1ZWx2ZW4gZW4gYWd1YSBmcsOtYSB5IHNlIHN1bWFuIGbDoWNpbCBhIGxhIHJ1dGluYS4gTGEgdml0YW1pbmEgQyBjb250cmlidXllIGEgbGEgZm9ybWFjacOzbiBub3JtYWwgZGUgY29sw6FnZW5vLCBwb3IgZXNvIHZhcmlhcyBkZSBudWVzdHJhcyBmw7NybXVsYXMgbGEgaW5jbHV5ZW4uJykrVShMKCdDb2xsYWdlbiBQdXJlJywnY29sbGFnZW4tcHVyZS1jb2xhZ2Vuby1oaWRyb2xpemFkby1jb24tdml0YW1pbmEtYycsJ3NhYm9yIG5ldXRybywgY29uIHZpdGFtaW5hIEMsIHBhcmEgc3VtYXIgYSBjdWFscXVpZXIgYmViaWRhLicpK0woJ0JlYXV0eSBTZXJpZXMnLCdjb2xhZ2Vuby1iZWF1dHktc2VyaWVzJywnNyBnIGRlIGNvbMOhZ2VubyBwb3IgcG9yY2nDs24gY29uIGNvZW56aW1hIFExMCB5IMOhY2lkbyBoaWFsdXLDs25pY28sIHBhcmEgYWNvbXBhw7FhciBlbCBjdWlkYWRvIGRlIGxhIHBpZWwuJykrTCgnQmVhdXR5IFNlcmllcyBQbHVzJywnY29sYWdlbm8tYmVhdXR5LXNlcmllcy1wbHVzJywnMTAgZyBkZSBjb2zDoWdlbm8gY29uIGJpb3RpbmEsIHF1ZSBjb250cmlidXllIGFsIG1hbnRlbmltaWVudG8gbm9ybWFsIGRlbCBjYWJlbGxvIHkgbGEgcGllbC4nKStMKCdTcG9ydCBTZXJpZXMnLCdjb2xhZ2Vuby1oaWRyb2xpemFkby1zcG9ydC1zZXJpZXMtbXVzY2xlLWJsZW5kLWhtYi1ibGVuZCcsJ2NvbiBCQ0FBLCBwYXJhIHF1aWVuZXMgZW50cmVuYW4uJykrTCgnRmxleCBTZXJpZXMnLCdjb2xhZ2Vuby1oaWRyb2xpemFkby1mbGV4LXNlcmllcy1hcnRyby1ibGVuZC1yZWxheC1ibGVuZCcsJ2NvbiB2aXRhbWluYSBDIHkgw6FjaWRvIGhpYWx1csOzbmljbywgcGFyYSBhY29tcGHDsWFyIGxhcyBhcnRpY3VsYWNpb25lcy4nKSkrUCgnVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVCwgeSBsYSBtYXlvcsOtYSB2aWVuZW4gZW4gcHJlc2VudGFjaW9uZXMgZGUgMzAsIDkwIHkgMTgwIGTDrWFzLicpCiB9OwogdmFyIGg9Q1tsb2NhdGlvbi5wYXRobmFtZV07aWYoIWgpcmV0dXJuOwogZnVuY3Rpb24gYWRkKCl7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC1jYXQtY29udGVudCcpKXJldHVybiB0cnVlO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy1wcm9kdWN0LXRhYmxlJyk7aWYoIXQpcmV0dXJuIGZhbHNlO3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTtkLmlkPSd0cGwtY2F0LWNvbnRlbnQnO2Quc3R5bGUuY3NzVGV4dD0nbWFyZ2luOjI4cHggMCA4cHg7cGFkZGluZzoyMnB4IDI0cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDY5LDU0LDgyLC4xNCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I0Y3RjZGQic7ZC5pbm5lckhUTUw9aDt0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZCk7cmV0dXJuIHRydWV9CiB2YXIgX2s9MDsoZnVuY3Rpb24gX3QoKXtpZighYWRkKCkmJl9rKys8NDApc2V0VGltZW91dChfdCwyNTApfSkoKTsKfSkoKTsKCjsvKiB0cGwtY2F0LWNvbnRlbnQtMiAqLwoKKGZ1bmN0aW9uKCl7CiB2YXIgUz0nZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS42O2NvbG9yOnJnYmEoNjksNTQsODIsLjgpO21hcmdpbjowIDAgMTJweDsnOwogZnVuY3Rpb24gQSh0LGgpe3JldHVybiAnPGEgaHJlZj0iJytoKyciIHN0eWxlPSJjb2xvcjojNDUzNjUyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Ij4nK3QrJzwvYT4nfQogZnVuY3Rpb24gTChhLHgpe3JldHVybiAnPGxpIHN0eWxlPSJtYXJnaW46MCAwIDhweDsiPjxzdHJvbmc+JythKyc8L3N0cm9uZz46ICcreCsnPC9saT4nfQogZnVuY3Rpb24gSCh0KXtyZXR1cm4gJzxoMiBzdHlsZT0iZm9udC1zaXplOjIwcHg7Y29sb3I6IzQ1MzY1MjttYXJnaW46MCAwIDEwcHg7Ij4nK3QrJzwvaDI+J30KIGZ1bmN0aW9uIFAodCl7cmV0dXJuICc8cCBzdHlsZT0iJytTKyciPicrdCsnPC9wPid9CiBmdW5jdGlvbiBVKHgpe3JldHVybiAnPHVsIHN0eWxlPSInK1MrJ3BhZGRpbmctbGVmdDoxOHB4OyI+Jyt4Kyc8L3VsPid9CiB2YXIgQz17CiAnL3N1cGxlbWVudG9zLyc6SCgnU3VwbGVtZW50b3MgcGFyYSBjYWRhIHBhcnRlIGRlIHR1IHJ1dGluYScpK1AoJ1RoZSBQcm90ZWluIExhYiBlbGFib3JhIHN1cGxlbWVudG9zIGNvbiBtYXRlcmlhcyBwcmltYXMgc2VsZWNjaW9uYWRhcyBwb3Igc3UgYmlvZGlzcG9uaWJpbGlkYWQuIEVsZWfDrSBwb3IgdGlwbyBkZSBzdXBsZW1lbnRvOicpK1UoTChBKCdNYWduZXNpb3MnLCcvc3VwbGVtZW50b3MvbWFnbmVzaW9zLycpLCdjaW5jbyBmb3JtYXMgcGFyYSBjdWJyaXIgdHUgYXBvcnRlIGRpYXJpbywgZW4gY8OhcHN1bGFzIG8gZW4gcG9sdm8uJykrTChBKCdDb2zDoWdlbm9zJywnL3N1cGxlbWVudG9zL2NvbGFnZW5vcy8nKSwnY29sw6FnZW5vIGhpZHJvbGl6YWRvIHBhcmEgcGllbCwgY2FiZWxsbywgZW50cmVuYW1pZW50byB5IGFydGljdWxhY2lvbmVzLicpK0woQSgnT21lZ2EgMycsJy9zdXBsZW1lbnRvcy9vbWVnYS0zLycpLCdFUEEgeSBESEEgZGUgcGVzY2FkbyBlbiBjb25jZW50cmFjacOzbiBlc3TDoW5kYXIgeSBhbHRhLCB5IG9tZWdhIDMgdmVnZXRhbCBkZSBjaMOtYS4nKStMKEEoJ1ZpdGFtaW5hcyB5IE1pbmVyYWxlcycsJy9zdXBsZW1lbnRvcy92aXRhbWluYXMteS1taW5lcmFsZXMvJyksJ0IxMiwgRDMsIEsyLCBDLCBiaW90aW5hLCB6aW5jIHkgbXVsdGl2aXRhbcOtbmljby4nKStMKEEoJ0xvbmdldmlkYWQnLCcvc3VwbGVtZW50b3MvbG9uZ2V2aWRhZC8nKSwnTk1OLCBOQUQrIHkgcmVzdmVyYXRyb2wuJykrTChBKCdBZGFwdMOzZ2Vub3MgeSBIb25nb3MnLCcvc3VwbGVtZW50b3MvYWRhcHRvZ2Vub3MteS1ob25nb3MvJyksJ2FzaHdhZ2FuZGhhLCBtZWxlbmEgZGUgbGXDs24geSBjZW50ZWxsYSBhc2nDoXRpY2EuJykrTChBKCdQcm90ZcOtbmFzIHkgQ3JlYXRpbmFzJywnL3N1cGxlbWVudG9zL3Byb3RlaW5hcy15LWNyZWF0aW5hcy8nKSwnY3JlYXRpbmEgbW9ub2hpZHJhdGFkYSB5IHdoZXkgcHJvdGVpbiBwYXJhIHR1IGVudHJlbmFtaWVudG8uJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuIFNpIHByZWZlcsOtcyBlbGVnaXIgcG9yIGxvIHF1ZSBidXNjw6FzLCBtaXLDoSBsb3Mgc3VwbGVtZW50b3MgJytBKCdwb3Igb2JqZXRpdm8nLCcvcG9yLW9iamV0aXZvLycpKycuJyksCiAnL3N1cGxlbWVudG9zL29tZWdhLTMvJzpIKCdDw7NtbyBlbGVnaXIgdHUgb21lZ2EgMycpK1AoJ0VsIEVQQSB5IGVsIERIQSBjb250cmlidXllbiBhbCBmdW5jaW9uYW1pZW50byBub3JtYWwgZGVsIGNvcmF6w7NuIGNvbiB1biBjb25zdW1vIGRlIDI1MCBtZyBkaWFyaW9zLCB5IGVsIERIQSBjb250cmlidXllIGFkZW3DoXMgYWwgZnVuY2lvbmFtaWVudG8gbm9ybWFsIGRlbCBjZXJlYnJvIHkgZGUgbGEgdmlzacOzbi4gTGEgY2xhdmUgcGFyYSBjb21wYXJhciBlcyBtaXJhciBjdcOhbnRvIEVQQSB5IERIQSBhcG9ydGEgY2FkYSBwb3JjacOzbiwgbcOhcyBhbGzDoSBkZWwgdG90YWwgZGUgYWNlaXRlLicpK1UoTChBKCdPbWVnYSAzIFBsdXMnLCcvcHJvZHVjdG9zL29tZWdhLTMtcGx1cy0zMC1jYXBzdWxhcy1ibGFuZGFzLWFsdGEtY29uY2VudHJhY2lvbi01MDAtZXBhLTI1MC1kaGEvJyksJ2FsdGEgY29uY2VudHJhY2nDs246IDUwMCBtZyBkZSBFUEEgeSAyNTAgbWcgZGUgREhBIGVuIHVuYSBzb2xhIGPDoXBzdWxhIHBvciBkw61hLicpK0woQSgnT21lZ2EgMycsJy9wcm9kdWN0b3Mvb21lZ2EtMy02MC1jYXBzdWxhcy1ibGFuZGFzLWNvbi1vbWVnYS0zLTYtOS15LXZpdGFtaW5hLWUvJyksJ0VQQSAzNjAgbWcgeSBESEEgMjQwIG1nIHBvciBwb3JjacOzbiwgY29uIG9tZWdhIDYsIDkgeSB2aXRhbWluYSBFLicpK0woQSgnQ2jDrWEgT21lZ2EgMycsJy9wcm9kdWN0b3MvY2hpYS1vbWVnYS0zLTYwLWNhcHN1bGFzLWJsYW5kYXMtY29uLW9tZWdhLTMteS02LycpLCdvbWVnYSAzIGRlIG9yaWdlbiB2ZWdldGFsLCBhIHBhcnRpciBkZSBhY2VpdGUgZGUgY2jDrWEuJykpK1AoJ1NlIHRvbWFuIGNvbiBsYXMgY29taWRhcywgcG9ycXVlIGVsIG9tZWdhIDMgZXMgdW5hIGdyYXNhIHkgc2UgYXByb3ZlY2hhIG1lam9yIGp1bnRvIGNvbiBvdHJvcyBhbGltZW50b3MuIFRvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3N1cGxlbWVudG9zL3ZpdGFtaW5hcy15LW1pbmVyYWxlcy8nOkgoJ1ZpdGFtaW5hcyB5IG1pbmVyYWxlcyBwYXJhIGNvbXBsZXRhciB0dSBhbGltZW50YWNpw7NuJykrUCgnQ3VhbmRvIGxhIGFsaW1lbnRhY2nDs24gbm8gYWxjYW56YSBhIGN1YnJpciBhbGfDum4gbnV0cmllbnRlLCB1biBzdXBsZW1lbnRvIGF5dWRhIGEgY29tcGxldGFybG8uIEVzdG9zIHNvbiBsb3MgbcOhcyBlbGVnaWRvczonKStVKEwoQSgnVml0YW1pbmEgQjEyIGNvbiBCNiB5IFppbmMnLCcvcHJvZHVjdG9zL3ZpdGFtaW5hLWIxMi1wYWNrLTMtbWVzZXMtdml0YW1pbmEtYjYteS16aW5jLycpLCdsYSBCMTIgY29udHJpYnV5ZSBhIGRpc21pbnVpciBlbCBjYW5zYW5jaW8geSBsYSBmYXRpZ2EuIENsYXZlIGVuIGFsaW1lbnRhY2nDs24gdmVnZXRhcmlhbmEgeSB2ZWdhbmEuJykrTChBKCdWaXRhbWluYSBEMycsJy9wcm9kdWN0b3Mvdml0YW1pbmEtZDMtY29uLXZpdGFtaW5hLWIzLXktbWFnbmVzaW8vJyksJzEwMCBtY2cgKDQuMDAwIFVJKSBwb3IgY29tcHJpbWlkby4gTGEgdml0YW1pbmEgRCBjb250cmlidXllIGFsIG1hbnRlbmltaWVudG8gZGUgaHVlc29zIG5vcm1hbGVzLicpK0woQSgnVml0YW1pbmEgSzIgeSBEMycsJy9wcm9kdWN0b3Mvdml0YW1pbmEtazItZDMvJyksJ2xhcyBkb3Mgdml0YW1pbmFzIGp1bnRhcywgY29uIGNvbMOhZ2VubyB5IG1hZ25lc2lvLicpK0woQSgnVml0YW1pbmEgQyBjb24gWmluYycsJy9wcm9kdWN0b3Mvdml0YW1pbmEtYy1mb3JtdWxhLWFudGlveGlkYW50ZS1jb24temluYy8nKSwnMS4wMDAgbWcgZGUgdml0YW1pbmEgQzsgbGFzIGRvcyBjb250cmlidXllbiBhbCBmdW5jaW9uYW1pZW50byBub3JtYWwgZGVsIHNpc3RlbWEgaW5tdW5vbMOzZ2ljby4nKStMKEEoJ0Jpb3RpbmEnLCcvcHJvZHVjdG9zL2Jpb3RpbmEtY29uLXZpdGFtaW5hLWUteS1jb2VuemltYS1xMTAvJyksJzIuNTAwIG1jZywgcXVlIGNvbnRyaWJ1eWVuIGFsIG1hbnRlbmltaWVudG8gbm9ybWFsIGRlbCBjYWJlbGxvIHkgbGEgcGllbC4nKStMKEEoJ011bHRpdml0YW3DrW5pY28nLCcvcHJvZHVjdG9zL211bHRpdml0YW1pbmljby12aXRhbWluYXMteS1taW5lcmFsZXMvJyksJ3ZpdGFtaW5hcyB5IG1pbmVyYWxlcyBlc2VuY2lhbGVzIGVuIHVuYSBzb2xhIHRvbWEuJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3N1cGxlbWVudG9zL2xvbmdldmlkYWQvJzpIKCdTdXBsZW1lbnRvcyBkZSBsb25nZXZpZGFkJykrUCgnRXN0YSBsw61uZWEgcmXDum5lIGFjdGl2b3MgZXN0dWRpYWRvcyBlbiBpbnZlc3RpZ2FjacOzbiBzb2JyZSBlbnZlamVjaW1pZW50byB5IGVuZXJnw61hIGNlbHVsYXIuIFNvbiBzdXBsZW1lbnRvcyBwYXJhIHN1bWFyIGEgdW5hIGJhc2UgZGUgYnVlbiBkZXNjYW5zbywgYWxpbWVudGFjacOzbiB5IGFjdGl2aWRhZCBmw61zaWNhLicpK1UoTChBKCdOTU4nLCcvcHJvZHVjdG9zL25tbi8nKSwnNTAwIG1nIGRlIE5NTiBwb3IgcG9yY2nDs24sIGNvbiB2aXRhbWluYSBDIHkgcmVzdmVyYXRyb2wuJykrTChBKCdOQUQrIGNvbiBSZXN2ZXJhdHJvbCcsJy9wcm9kdWN0b3MvbmFkLXJlc3ZlcmF0cm9sLycpLCdyZXN2ZXJhdHJvbCwgdml0YW1pbmEgQjMgeSB2aXRhbWluYSBCMTIuIExhIEIxMiBjb250cmlidXllIGEgZGlzbWludWlyIGVsIGNhbnNhbmNpbyB5IGxhIGZhdGlnYS4nKStMKEEoJ1Jlc3ZlcmF0cm9sIENvbmNlbnRyYWRvJywnL3Byb2R1Y3Rvcy9uYWQtcmVzdmVyYXRyb2wtY29uY2VudHJhZG8vJyksJ3Jlc3ZlcmF0cm9sIGVuIHVuYSBmw7NybXVsYSBjb25jZW50cmFkYS4nKSkrUCgnVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVC4nKSwKICcvc3VwbGVtZW50b3MvYWRhcHRvZ2Vub3MteS1ob25nb3MvJzpIKCdBZGFwdMOzZ2Vub3MgeSBob25nb3MgZnVuY2lvbmFsZXMnKStQKCdQbGFudGFzIHkgaG9uZ29zIGRlIHVzbyB0cmFkaWNpb25hbCwgZW4gY8OhcHN1bGFzIHkgY29uIGRvc2lzIGNsYXJhcy4gQWxndW5hcyBmw7NybXVsYXMgc3VtYW4gdml0YW1pbmFzIHF1ZSBjb21wbGV0YW4gc3UgYXBvcnRlLicpK1UoTChBKCdBc2h3YWdhbmRoYScsJy9wcm9kdWN0b3MvYXNod2FnYW5kaGEtbWF4aW1hLWFic29yY2lvbi1jb24tdml0YW1pbmEtYy1jYXBzdWxhcy12ZWdldGFsZXMvJyksJ3Jhw616IGRlIGFzaHdhZ2FuZGhhIGNvbiB2aXRhbWluYSBDLCBlbiBjw6Fwc3VsYXMgdmVnZXRhbGVzLicpK0woQSgnTWVsZW5hIGRlIExlw7NuJywnL3Byb2R1Y3Rvcy9tZWxlbmEtZGUtbGVvbi1jb24tdml0YW1pbmEtYjYteS1iMTIvJyksJ2NvbiB2aXRhbWluYXMgQjYgeSBCMTIsIHF1ZSBjb250cmlidXllbiBhbCBmdW5jaW9uYW1pZW50byBub3JtYWwgZGVsIHNpc3RlbWEgbmVydmlvc28uJykrTChBKCdDZW50ZWxsYSBBc2nDoXRpY2EnLCcvcHJvZHVjdG9zL2NlbnRlbGxhLWFzaWF0aWNhLXZpdGFtaW5hLWEteS1hY2lkby1oaWFsdXJvbmljby8nKSwnY29uIHZpdGFtaW5hIEEsIHF1ZSBjb250cmlidXllIGFsIG1hbnRlbmltaWVudG8gZGUgbGEgcGllbCBlbiBjb25kaWNpb25lcyBub3JtYWxlcywgeSDDoWNpZG8gaGlhbHVyw7NuaWNvLicpKStQKCdUb2RhcyBsYXMgZsOzcm11bGFzIGVzdMOhbiBlbGFib3JhZGFzIGJham8gbm9ybWFzIEdNUCB5IHJlZ2lzdHJhZGFzIGVuIEFOTUFULicpLAogJy9zdXBsZW1lbnRvcy9wcm90ZWluYXMteS1jcmVhdGluYXMvJzpIKCdQcm90ZcOtbmFzIHkgY3JlYXRpbmEgcGFyYSB0dSBlbnRyZW5hbWllbnRvJykrUCgnTGFzIHByb3Rlw61uYXMgY29udHJpYnV5ZW4gYSBhdW1lbnRhciB5IGNvbnNlcnZhciBsYSBtYXNhIG11c2N1bGFyLiBMYSBjcmVhdGluYSBhdW1lbnRhIGVsIHJlbmRpbWllbnRvIGbDrXNpY28gZW4gc2VyaWVzIHN1Y2VzaXZhcyBkZSBlamVyY2ljaW9zIGNvcnRvcyBkZSBhbHRhIGludGVuc2lkYWQsIGNvbiB1bmEgdG9tYSBkaWFyaWEgZGUgMyBnLicpK1UoTChBKCdDcmVhdGluYSBNb25vaGlkcmF0YWRhJywnL3Byb2R1Y3Rvcy9jcmVhdGluYS1tb25vaGlkcmF0YWRhLycpLCcxMDAlIHB1cmEgeSBtaWNyb25pemFkYSwgNSBnIHBvciBwb3JjacOzbiwgc2luIHNhYm9yLicpK0woQSgnV2hleSBQcm90ZWluIElzb2xhdGUgQmxlbmQnLCcvcHJvZHVjdG9zL3doZXktcHJvdGVpbi1pc29sYXRlLWJsZW5kLXNhYm9yLWNob2NvbGF0ZS1wcm90ZWluYS04MC1wdXJhLWNvbi1hbWlub2FjaWRvcy8nKSwnODAlIGRlIHByb3Rlw61uYSwgc2Fib3IgY2hvY29sYXRlLicpK0woQSgnV2hleSBQYW5jYWtlcycsJy9wcm9kdWN0b3Mvd2hleS1wYW5jYWtlcy1pc29sYXRlLWJsZW5kLXNhYm9yLXZhaW5pbGxhLXByb3RlaW5hLTgwLXB1cmEtY29uLWFtaW5vYWNpZG9zLycpLCdsYSBtaXNtYSBwcm90ZcOtbmEsIGVuIHZlcnNpw7NuIHBhcmEgcHJlcGFyYXIgcGFucXVlcXVlcy4nKStMKEEoJ1N1cGVyIENvZmZlZScsJy9wcm9kdWN0b3Mvc3VwZXItY29mZmVlLWNhZmUtY29uLXR1cmJvLWJsZW5kLWZvY28teS1lbmVyZ2lhLycpLCdjYWbDqSBmdW5jaW9uYWwgcGFyYSBhbnRlcyBkZSBlbnRyZW5hci4nKSkrUCgnVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVC4nKSwKICcvcG9yLW9iamV0aXZvLyc6SCgnRW5jb250csOhIHR1IHN1cGxlbWVudG8gc2Vnw7puIGxvIHF1ZSBidXNjw6FzJykrUCgnU2kgbm8gc2Fiw6lzIHBvciBkw7NuZGUgZW1wZXphciwgZWxlZ8OtIHBvciBvYmpldGl2bzonKStVKEwoQSgnRW5lcmfDrWEnLCcvcG9yLW9iamV0aXZvL2VuZXJnaWEvJyksJ21hZ25lc2lvLCBCMTIgeSBtdWx0aXZpdGFtw61uaWNvLicpK0woQSgnRGVzY2Fuc28geSBlc3Ryw6lzJywnL3Bvci1vYmpldGl2by9kZXNjYW5zby15LWVzdHJlcy8nKSwnYmlzZ2xpY2luYXRvIHkgdHJlb25hdG8gZGUgbWFnbmVzaW8sIHRyaXB0w7NmYW5vIHkgYXNod2FnYW5kaGEuJykrTChBKCdQaWVsLCBwZWxvIHkgdcOxYXMnLCcvcG9yLW9iamV0aXZvL3BpZWwtcGVsby15LXVuYXMvJyksJ2NvbMOhZ2VubywgYmlvdGluYSB5IMOhY2lkbyBoaWFsdXLDs25pY28uJykrTChBKCdIdWVzb3MgeSBhcnRpY3VsYWNpb25lcycsJy9wb3Itb2JqZXRpdm8vaHVlc29zLXktYXJ0aWN1bGFjaW9uZXMvJyksJ2NvbMOhZ2VubyBGbGV4IFNlcmllcywgw6FjaWRvIGhpYWx1csOzbmljbyB5IGPDunJjdW1hLicpK0woQSgnU2lzdGVtYSBjYXJkaW92YXNjdWxhcicsJy9wb3Itb2JqZXRpdm8vc2lzdGVtYS1jYXJkaW92YXNjdWxhci8nKSwnb21lZ2EgMyBjb24gRVBBIHkgREhBLicpK0woQSgnQmllbmVzdGFyIGRpZ2VzdGl2bycsJy9wb3Itb2JqZXRpdm8vYmllbmVzdGFyLWRpZ2VzdGl2by8nKSwncHJlYmnDs3RpY28geSBjaXRyYXRvIGRlIG1hZ25lc2lvLicpK0woQSgnTWFzYSBtdXNjdWxhcicsJy9wb3Itb2JqZXRpdm8vbWFzYS1tdXNjdWxhci8nKSwnY3JlYXRpbmEsIHdoZXkgcHJvdGVpbiB5IGNvbMOhZ2VubyBTcG9ydCBTZXJpZXMuJykrTChBKCdDb250cm9sIGRlIHBlc28nLCcvcG9yLW9iamV0aXZvL2NvbnRyb2wtZGUtcGVzby8nKSwnZsOzcm11bGFzIHBhcmEgYWNvbXBhw7FhciB0dSBwbGFuIGRlIGFsaW1lbnRhY2nDs24uJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3Bvci1vYmpldGl2by9lbmVyZ2lhLyc6SCgnU3VwbGVtZW50b3MgcGFyYSBhY29tcGHDsWFyIHR1IGVuZXJnw61hJykrUCgnRWwgY2Fuc2FuY2lvIHRpZW5lIG11Y2hhcyBjYXVzYXMsIHkgdW4gc3VwbGVtZW50byBhY29tcGHDsWEgcGVybyBubyByZWVtcGxhemEgZWwgZGVzY2Fuc28geSB1bmEgYnVlbmEgYWxpbWVudGFjacOzbi4gRXN0b3MgbnV0cmllbnRlcyBjb250cmlidXllbiBhIGRpc21pbnVpciBlbCBjYW5zYW5jaW8geSBsYSBmYXRpZ2E6JykrVShMKEEoJ01hZ25lc2lvIDUgZW4gMScsJy9wcm9kdWN0b3MvbWFnbmVzaW8tNS1lbi0xLycpLCdjaW5jbyBmb3JtYXMgZGUgbWFnbmVzaW8sIDQwMCBtZyBkZSBtYWduZXNpbyBlbGVtZW50YWwgcG9yIHBvcmNpw7NuLicpK0woQSgnVml0YW1pbmEgQjEyIGNvbiBCNiB5IFppbmMnLCcvcHJvZHVjdG9zL3ZpdGFtaW5hLWIxMi1wYWNrLTMtbWVzZXMtdml0YW1pbmEtYjYteS16aW5jLycpLCc1MDAgbWNnIGRlIEIxMiBwb3IgY29tcHJpbWlkbywgMyBtZXNlcyBwb3IgcG90ZS4nKStMKEEoJ011bHRpdml0YW3DrW5pY28nLCcvcHJvZHVjdG9zL211bHRpdml0YW1pbmljby12aXRhbWluYXMteS1taW5lcmFsZXMvJyksJ3ZpdGFtaW5hcyB5IG1pbmVyYWxlcyBlc2VuY2lhbGVzIGVuIHVuYSBzb2xhIHRvbWEuJykrTChBKCdNYWduZXNpbyBNQVggZW4gcG9sdm8nLCcvcHJvZHVjdG9zL21hZ25lc2lvLW1heC1lbi1wb2x2by8nKSwnbGFzIGNpbmNvIGZvcm1hcyBkZSBtYWduZXNpbywgZW4gcG9sdm8gc2luIHNhYm9yLicpKStQKCdUYW1iacOpbiBlbiBlc3RhIGNhdGVnb3LDrWE6ICcrQSgnTWVsZW5hIGRlIExlw7NuJywnL3Byb2R1Y3Rvcy9tZWxlbmEtZGUtbGVvbi1jb24tdml0YW1pbmEtYjYteS1iMTIvJykrJywgJytBKCdNb3JpbmdhJywnL3Byb2R1Y3Rvcy9tb3JpbmdhLTkwLWNhcHN1bGFzLWNvbi12aXRhbWluYS1jLycpKycgeSAnK0EoJ05NTicsJy9wcm9kdWN0b3Mvbm1uLycpKycuIFRvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3Bvci1vYmpldGl2by9kZXNjYW5zby15LWVzdHJlcy8nOkgoJ1N1cGxlbWVudG9zIHBhcmEgYWNvbXBhw7FhciB0dSBkZXNjYW5zbycpK1AoJ0VsIG1hZ25lc2lvIGNvbnRyaWJ1eWUgYWwgZnVuY2lvbmFtaWVudG8gbm9ybWFsIGRlbCBzaXN0ZW1hIG5lcnZpb3NvIHkgYSBsYSBmdW5jacOzbiBwc2ljb2zDs2dpY2Egbm9ybWFsLiBQYXJhIGxhIG5vY2hlLCBlc3RhcyBzb24gbGFzIGbDs3JtdWxhcyBtw6FzIGVsZWdpZGFzOicpK1UoTChBKCdCaXNnbGljaW5hdG8gZGUgTWFnbmVzaW8gY29uIEI2JywnL3Byb2R1Y3Rvcy9iaXNnbGljaW5hdG8tZGUtbWFnbmVzaW8vJyksJ2xhIGZvcm1hIHF1ZWxhZGEgZGVsIG1hZ25lc2lvLCBtdXkgYmllbiB0b2xlcmFkYSwgY29uIHZpdGFtaW5hIEI2LicpK0woQSgnVHJlb25hdG8gZGUgTWFnbmVzaW8nLCcvcHJvZHVjdG9zL3RyZW9uYXRvLWRlLW1hZ25lc2lvLycpLCdjb24gTC10cmVvbmluYSwgcGVuc2FkbyBwYXJhIGFjb21wYcOxYXIgbGEgbWVtb3JpYSB5IGVsIGRlc2NhbnNvLicpK0woQSgnVHJpcHTDs2Zhbm8nLCcvcHJvZHVjdG9zL3RyaXB0b2Zhbm8tY29uLW1lbGlzYS15LXRlYW5pbmEvJyksJ2NvbiBtZWxpc2EgeSB0ZWFuaW5hLicpK0woQSgnQXNod2FnYW5kaGEnLCcvcHJvZHVjdG9zL2FzaHdhZ2FuZGhhLW1heGltYS1hYnNvcmNpb24tY29uLXZpdGFtaW5hLWMtY2Fwc3VsYXMtdmVnZXRhbGVzLycpLCdyYcOteiBkZSBhc2h3YWdhbmRoYSBjb24gdml0YW1pbmEgQy4nKSkrUCgnVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVC4nKSwKICcvcG9yLW9iamV0aXZvL3BpZWwtcGVsby15LXVuYXMvJzpIKCdTdXBsZW1lbnRvcyBwYXJhIHBpZWwsIGNhYmVsbG8geSB1w7FhcycpK1AoJ0xhIGJpb3RpbmEgY29udHJpYnV5ZSBhbCBtYW50ZW5pbWllbnRvIG5vcm1hbCBkZWwgY2FiZWxsbyB5IGxhIHBpZWwsIHkgbGEgdml0YW1pbmEgQyBjb250cmlidXllIGEgbGEgZm9ybWFjacOzbiBub3JtYWwgZGUgY29sw6FnZW5vLiBFc3RhcyBmw7NybXVsYXMgY29tYmluYW4gYW1ib3MgY29uIGNvbMOhZ2VubyBoaWRyb2xpemFkbzonKStVKEwoQSgnQ29sw6FnZW5vIEJlYXV0eSBTZXJpZXMnLCcvcHJvZHVjdG9zL2NvbGFnZW5vLWJlYXV0eS1zZXJpZXMvJyksJzcgZyBkZSBjb2zDoWdlbm8gY29uIGNvZW56aW1hIFExMCB5IMOhY2lkbyBoaWFsdXLDs25pY28uJykrTChBKCdDb2zDoWdlbm8gQmVhdXR5IFNlcmllcyBQbHVzJywnL3Byb2R1Y3Rvcy9jb2xhZ2Vuby1iZWF1dHktc2VyaWVzLXBsdXMvJyksJzEwIGcgZGUgY29sw6FnZW5vIGNvbiBiaW90aW5hLCBwYXJhIGNhYmVsbG8geSB1w7Fhcy4nKStMKEEoJ0Jpb3RpbmEnLCcvcHJvZHVjdG9zL2Jpb3RpbmEtY29uLXZpdGFtaW5hLWUteS1jb2VuemltYS1xMTAvJyksJzIuNTAwIG1jZyBjb24gdml0YW1pbmEgRSB5IGNvZW56aW1hIFExMC4nKStMKEEoJ8OBY2lkbyBIaWFsdXLDs25pY28nLCcvcHJvZHVjdG9zL2FjaWRvLWhpYWx1cm9uaWNvLycpLCcxNTAgbWcgcG9yIGNvbXByaW1pZG8sIGNvbiB2aXRhbWluYXMgQSB5IEUuJykrTChBKCdDZW50ZWxsYSBBc2nDoXRpY2EnLCcvcHJvZHVjdG9zL2NlbnRlbGxhLWFzaWF0aWNhLXZpdGFtaW5hLWEteS1hY2lkby1oaWFsdXJvbmljby8nKSwnY29uIHZpdGFtaW5hIEEgeSDDoWNpZG8gaGlhbHVyw7NuaWNvLicpKStQKCdZIHBhcmEgZWwgdmVyYW5vLCAnK0EoJ0Jyb256aWUnLCcvcHJvZHVjdG9zL2Jyb256aWUtNjAtY2Fwc3VsYXMtZGUtYnJvbmNlYWRvLXZpdGFtaW5hcy15LW1pbmVyYWxlcy8nKSsnLiBUb2RhcyBsYXMgZsOzcm11bGFzIGVzdMOhbiBlbGFib3JhZGFzIGJham8gbm9ybWFzIEdNUCB5IHJlZ2lzdHJhZGFzIGVuIEFOTUFULicpLAogJy9wb3Itb2JqZXRpdm8vaHVlc29zLXktYXJ0aWN1bGFjaW9uZXMvJzpIKCdTdXBsZW1lbnRvcyBwYXJhIGh1ZXNvcyB5IGFydGljdWxhY2lvbmVzJykrUCgnTGEgdml0YW1pbmEgQyBjb250cmlidXllIGEgbGEgZm9ybWFjacOzbiBub3JtYWwgZGUgY29sw6FnZW5vIHBhcmEgZWwgZnVuY2lvbmFtaWVudG8gbm9ybWFsIGRlIGh1ZXNvcyB5IGNhcnTDrWxhZ29zLiBFc3RhcyBmw7NybXVsYXMgYWNvbXBhw7FhbiBhIHF1aWVuZXMgY3VpZGFuIHN1cyBhcnRpY3VsYWNpb25lczonKStVKEwoQSgnQ29sw6FnZW5vIEZsZXggU2VyaWVzJywnL3Byb2R1Y3Rvcy9jb2xhZ2Vuby1oaWRyb2xpemFkby1mbGV4LXNlcmllcy1hcnRyby1ibGVuZC1yZWxheC1ibGVuZC8nKSwnY29sw6FnZW5vIGhpZHJvbGl6YWRvIGNvbiB2aXRhbWluYSBDIHkgw6FjaWRvIGhpYWx1csOzbmljby4nKStMKEEoJ0NvbMOhZ2VubyBTcG9ydCBTZXJpZXMnLCcvcHJvZHVjdG9zL2NvbGFnZW5vLWhpZHJvbGl6YWRvLXNwb3J0LXNlcmllcy1tdXNjbGUtYmxlbmQtaG1iLWJsZW5kLycpLCdjb24gQkNBQSwgcGFyYSBxdWllbmVzIGVudHJlbmFuLicpK0woQSgnw4FjaWRvIEhpYWx1csOzbmljbycsJy9wcm9kdWN0b3MvYWNpZG8taGlhbHVyb25pY28vJyksJzE1MCBtZyBwb3IgY29tcHJpbWlkby4nKStMKEEoJ0PDunJjdW1hIGNvbiBKZW5naWJyZSB5IFBpbWllbnRhIE5lZ3JhJywnL3Byb2R1Y3Rvcy9jdXJjdW1hLWplbmdpYnJlLXktcGltaWVudGEtbmVncmEtYWJzb3JjaW9uLXN1cGVyaW9yLycpLCdjw7pyY3VtYSBjb21iaW5hZGEgY29uIHBpbWllbnRhIG5lZ3JhLicpKStQKCdQYXJhIGxvcyBodWVzb3MsIG1pcsOhIHRhbWJpw6luIGxhICcrQSgnVml0YW1pbmEgSzIgeSBEMycsJy9wcm9kdWN0b3Mvdml0YW1pbmEtazItZDMvJykrJy4gVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVC4nKSwKICcvcG9yLW9iamV0aXZvL3Npc3RlbWEtY2FyZGlvdmFzY3VsYXIvJzpIKCdPbWVnYSAzIHBhcmEgdHUgc2FsdWQgY2FyZGlvdmFzY3VsYXInKStQKCdFbCBFUEEgeSBlbCBESEEgY29udHJpYnV5ZW4gYWwgZnVuY2lvbmFtaWVudG8gbm9ybWFsIGRlbCBjb3JhesOzbiBjb24gdW4gY29uc3VtbyBkZSAyNTAgbWcgZGlhcmlvcy4gRWxlZ8OtIHNlZ8O6biBjdcOhbnRvIEVQQSB5IERIQSBxdWVyw6lzIHBvciBwb3JjacOzbjonKStVKEwoQSgnT21lZ2EgMyBQbHVzJywnL3Byb2R1Y3Rvcy9vbWVnYS0zLXBsdXMtMzAtY2Fwc3VsYXMtYmxhbmRhcy1hbHRhLWNvbmNlbnRyYWNpb24tNTAwLWVwYS0yNTAtZGhhLycpLCc3NTAgbWcgZGUgRVBBIHkgREhBIGVuIHVuYSBzb2xhIGPDoXBzdWxhLicpK0woQSgnT21lZ2EgMycsJy9wcm9kdWN0b3Mvb21lZ2EtMy02MC1jYXBzdWxhcy1ibGFuZGFzLWNvbi1vbWVnYS0zLTYtOS15LXZpdGFtaW5hLWUvJyksJ0VQQSAzNjAgbWcgeSBESEEgMjQwIG1nLCBjb24gdml0YW1pbmEgRS4nKStMKEEoJ0Now61hIE9tZWdhIDMnLCcvcHJvZHVjdG9zL2NoaWEtb21lZ2EtMy02MC1jYXBzdWxhcy1ibGFuZGFzLWNvbi1vbWVnYS0zLXktNi8nKSwnb21lZ2EgMyB2ZWdldGFsIGRlIGNow61hLicpK0woQSgnQ29tYm8gTWFnbmVzaW8gNSBlbiAxICsgT21lZ2EgMycsJy9wcm9kdWN0b3MvY2Fwc3VsYXMtZGUtbWFnbmVzaW8tNS1lbi0xLTQwMG1nLW9tZWdhLTMtdGhlLXByb3RlaW4tbGFiLycpLCdsb3MgZG9zIGp1bnRvcywgYSBtZWpvciBwcmVjaW8uJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3Bvci1vYmpldGl2by9iaWVuZXN0YXItZGlnZXN0aXZvLyc6SCgnU3VwbGVtZW50b3MgcGFyYSB0dSBiaWVuZXN0YXIgZGlnZXN0aXZvJykrUCgnRmlicmFzIHkgZsOzcm11bGFzIHBhcmEgc3VtYXIgYSB1bmEgYWxpbWVudGFjacOzbiB2YXJpYWRhIHkgYnVlbmEgaGlkcmF0YWNpw7NuOicpK1UoTChBKCdQcmViacOzdGljbycsJy9wcm9kdWN0b3MvcHJlYmlvdGljby1maWJyYXMtZGlnZXN0aXZhcy8nKSwnMS4wMDAgbWcgZGUgZmlicmEgYWxpbWVudGFyaWEgcG9yIHBvcmNpw7NuLCBlbiBjw6Fwc3VsYXMuJykrTChBKCdDaXRyYXRvIGRlIE1hZ25lc2lvJywnL3Byb2R1Y3Rvcy9jaXRyYXRvLWRlLW1hZ25lc2lvLWVuLWNhcHN1bGFzLXZlZ2V0YWxlcy0yMDBtZy1jaXRyYXRvLXB1cm8vJyksJ2NpdHJhdG8gZGUgbWFnbmVzaW8gcHVybyBlbiBjw6Fwc3VsYXMgdmVnZXRhbGVzLicpK0woQSgnQ2l0cmF0byBkZSBNYWduZXNpbyBNQVggZW4gcG9sdm8nLCcvcHJvZHVjdG9zL2NpdHJhdG8tZGUtbWFnbmVzaW8tbWF4LWVuLXBvbHZvLycpLCdsYSBtaXNtYSBmb3JtYSwgZW4gcG9sdm8gc2luIHNhYm9yLicpK0woQSgnQ8O6cmN1bWEgY29uIEplbmdpYnJlIHkgUGltaWVudGEgTmVncmEnLCcvcHJvZHVjdG9zL2N1cmN1bWEtamVuZ2licmUteS1waW1pZW50YS1uZWdyYS1hYnNvcmNpb24tc3VwZXJpb3IvJyksJ3RyZXMgaW5ncmVkaWVudGVzIGRlIHVzbyB0cmFkaWNpb25hbCBlbiB1bmEgY8OhcHN1bGEuJykpK1AoJ1RvZGFzIGxhcyBmw7NybXVsYXMgZXN0w6FuIGVsYWJvcmFkYXMgYmFqbyBub3JtYXMgR01QIHkgcmVnaXN0cmFkYXMgZW4gQU5NQVQuJyksCiAnL3Bvci1vYmpldGl2by9tYXNhLW11c2N1bGFyLyc6SCgnU3VwbGVtZW50b3MgcGFyYSBhY29tcGHDsWFyIHR1IGVudHJlbmFtaWVudG8nKStQKCdMYXMgcHJvdGXDrW5hcyBjb250cmlidXllbiBhIGF1bWVudGFyIHkgY29uc2VydmFyIGxhIG1hc2EgbXVzY3VsYXIsIHkgZWwgbWFnbmVzaW8gY29udHJpYnV5ZSBhbCBmdW5jaW9uYW1pZW50byBub3JtYWwgZGUgbG9zIG3DunNjdWxvcy4gUGFyYSB0dSBydXRpbmEgZGUgZnVlcnphOicpK1UoTChBKCdDcmVhdGluYSBNb25vaGlkcmF0YWRhJywnL3Byb2R1Y3Rvcy9jcmVhdGluYS1tb25vaGlkcmF0YWRhLycpLCc1IGcgcG9yIHBvcmNpw7NuLiBMYSBjcmVhdGluYSBhdW1lbnRhIGVsIHJlbmRpbWllbnRvIGVuIGVqZXJjaWNpb3MgY29ydG9zIGRlIGFsdGEgaW50ZW5zaWRhZC4nKStMKEEoJ1doZXkgUHJvdGVpbiBJc29sYXRlIEJsZW5kJywnL3Byb2R1Y3Rvcy93aGV5LXByb3RlaW4taXNvbGF0ZS1ibGVuZC1zYWJvci1jaG9jb2xhdGUtcHJvdGVpbmEtODAtcHVyYS1jb24tYW1pbm9hY2lkb3MvJyksJzgwJSBkZSBwcm90ZcOtbmEuJykrTChBKCdDb2zDoWdlbm8gU3BvcnQgU2VyaWVzJywnL3Byb2R1Y3Rvcy9jb2xhZ2Vuby1oaWRyb2xpemFkby1zcG9ydC1zZXJpZXMtbXVzY2xlLWJsZW5kLWhtYi1ibGVuZC8nKSwnY29sw6FnZW5vIGhpZHJvbGl6YWRvIGNvbiBCQ0FBLicpK0woQSgnTWFnbmVzaW8gTUFYIGVuIHBvbHZvJywnL3Byb2R1Y3Rvcy9tYWduZXNpby1tYXgtZW4tcG9sdm8vJyksJ2NpbmNvIGZvcm1hcyBkZSBtYWduZXNpbyBlbiBwb2x2byBzaW4gc2Fib3IuJykpK1AoJ1BhcmEgYW50ZXMgZGUgZW50cmVuYXIsIG1pcsOhIHRhbWJpw6luIGVsICcrQSgnU3VwZXIgQ29mZmVlJywnL3Byb2R1Y3Rvcy9zdXBlci1jb2ZmZWUtY2FmZS1jb24tdHVyYm8tYmxlbmQtZm9jby15LWVuZXJnaWEvJykrJy4gVG9kYXMgbGFzIGbDs3JtdWxhcyBlc3TDoW4gZWxhYm9yYWRhcyBiYWpvIG5vcm1hcyBHTVAgeSByZWdpc3RyYWRhcyBlbiBBTk1BVC4nKSwKICcvcG9yLW9iamV0aXZvL2NvbnRyb2wtZGUtcGVzby8nOkgoJ1N1cGxlbWVudG9zIHBhcmEgYWNvbXBhw7FhciB0dSBwbGFuJykrUCgnTmluZ8O6biBzdXBsZW1lbnRvIHJlZW1wbGF6YSB1bmEgYWxpbWVudGFjacOzbiBlcXVpbGlicmFkYSB5IGxhIGFjdGl2aWRhZCBmw61zaWNhLiBFc3RhcyBmw7NybXVsYXMgZXN0w6FuIHBlbnNhZGFzIHBhcmEgc3VtYXJzZSBhIGVzZSBwbGFuOicpK1UoTChBKCdNYXggQnVybmVyIEJsZW5kJywnL3Byb2R1Y3Rvcy9xdWVtYWdyYXNhcy1tYXgtYnVybmVyLWJsZW5kLycpLCdjb24gdMOpIHZlcmRlIHkgb3Ryb3MgYWN0aXZvcyBkZSBvcmlnZW4gbmF0dXJhbC4nKStMKEEoJ0NvbGxhZ2VuIEJ1cm4nLCcvcHJvZHVjdG9zL2NvbGxhZ2VuLWJ1cm4tYnVybi1ibGVuZC1tYXRyaXgtY29sYWdlbm8tcXVlbWFkb3ItZGUtZ3Jhc2FzLWVuLWNhcHN1bGFzLycpLCdjb2zDoWdlbm8gaGlkcm9saXphZG8gZW4gY8OhcHN1bGFzLCBjb24gc3UgcHJvcGlvIGJsZW5kLicpKStQKCdUb2RhcyBsYXMgZsOzcm11bGFzIGVzdMOhbiBlbGFib3JhZGFzIGJham8gbm9ybWFzIEdNUCB5IHJlZ2lzdHJhZGFzIGVuIEFOTUFULicpCiB9OwogdmFyIGg9Q1tsb2NhdGlvbi5wYXRobmFtZV07aWYoIWgpcmV0dXJuOwogZnVuY3Rpb24gYWRkKCl7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC1jYXQtY29udGVudCcpKXJldHVybiB0cnVlO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy1wcm9kdWN0LXRhYmxlJyk7aWYoIXQpcmV0dXJuIGZhbHNlO3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTtkLmlkPSd0cGwtY2F0LWNvbnRlbnQnO2Quc3R5bGUuY3NzVGV4dD0nbWFyZ2luOjI4cHggMCA4cHg7cGFkZGluZzoyMnB4IDI0cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDY5LDU0LDgyLC4xNCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I0Y3RjZGQic7ZC5pbm5lckhUTUw9aDt0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZCk7cmV0dXJuIHRydWV9CiB2YXIgX2s9MDsoZnVuY3Rpb24gX3QoKXtpZighYWRkKCkmJl9rKys8NDApc2V0VGltZW91dChfdCwyNTApfSkoKTsKfSkoKTsK