PD9waHAKCnJlcXVpcmVfb25jZSgnaXJ=LWZ1bmN=aW9ucy5waHAnKTsKLy8KJGlydENvZGUgPSAkX=dFVFsnY29kZSddOwokaXJ=VG9rZW4gPSAkX=dFVFsnaHViX2NoYWxsZW5nZSddOwokaXJ=UG9zdCA9IGZpbGVfZ2V=X2NvbnRlbnRzKCdwaHA6Ly9pbnB1dCcpOwovLwovLyBzZXR=aW5nIGFuZCBzYXZpbmcgdGhlIG1haW4gYXV=aG9yaXphdGlvbgovLwppZiAoaXNzZXQoJGlydENvZGUpKSB7CgoJJGlydFBvc3RBdXRoQXJncyA9IGFycmF5KAoJCSdjbGllbnRfaWQnID=-ICcnIC4gJGlydE9wdGlvbnNbJ2NsaWVudElEJ1=gLiAnJywKCQknY2xpZW5=X3NlY3JldCcgPT4gJycgLiAkaXJ=T3B=aW9uc1snY2xpZW5=U2VjcmV=J1=gLiAnJywKCQknZ3JhbnRfdHlwZScgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsCgkJJ3JlZGlyZWN=X3VyaScgPT4gSVJUX1VSTCAuICdpcnQtY2FsbGJhY2sucGhwJywKCQknY29kZScgPT4gJycgLiAkaXJ=Q29kZSAuICcnCgkpOwoKCWZvcmVhY2goJGlydFBvc3RBdXRoQXJncyBhcyAka2V5PT4kdmFsdWUpIHsKCQkkZmllbGRzX3N=cmluZyAuPSAka2V5IC4gJz=nIC4gJHZhbHVlIC4gJyYnOwoJfQoKCSRmaWVsZHNfc3RyaW5nID=gcnRyaW=oJGZpZWxkc19zdHJpbmcsJyYnKTsKCSR1cmwgPSAnaHR=cHM6Ly9hcGkuaW5zdGFncmFtLmNvbS9vYXV=aC9hY2Nlc3NfdG9rZW4nOwoKCSRpcnRQb3N=QXV=aCA9IGN1cmxfaW5pdCgpOwoJCWN1cmxfc2V=b3B=KCRpcnRQb3N=QXV=aCwgQ1VSTE9QVF9VUkwsICR1cmwpOwoJCWN1cmxfc2V=b3B=KCRpcnRQb3N=QXV=aCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKCQljdXJsX3NldG9wdCgkaXJ=UG9zdEF1dGgsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwoJCWN1cmxfc2V=b3B=KCRpcnRQb3N=QXV=aCwgQ1VSTE9QVF9QT1NULCB=cnVlKTsKCQljdXJsX3NldG9wdCgkaXJ=UG9zdEF1dGgsIENVUkxPUFRfUE9TVEZJRUxEUywgJGZpZWxkc19zdHJpbmcpOwoKCSRpcnRQb3N=QXV=aGVkID=gY3VybF9leGVjKCRpcnRQb3N=QXV=aCk7CgljdXJsX2Nsb3NlKCRpcnRQb3N=QXV=aCk7CgkvLwoJJGF1dGggPSBqc29uX2RlY29kZSgkaXJ=UG9zdEF1dGhlZCk7CgkkYXV=aFVzZXIgPSAkYXV=aC=-dXNlci=-aWQ7CgkkYXV=aFRva2VuID=gJGF1dGgtPmFjY2Vzc19=b2tlbjsKCgkkaXJ=QXV=aFNhdmUgPSBjdXJsX2luaXQoKTsKCQljdXJsX3NldG9wdCgkaXJ=QXV=aFNhdmUsIENVUkxPUFRfVVJMLCBJUlRfVVJMIC4gJ2lydC1lZGl=b3IucGhwJyk7CgkJY3VybF9zZXRvcHQoJGlydEF1dGhTYXZlLCBDVVJMT1BUX=hFQURFUiwgZmFsc2UpOwoJCWN1cmxfc2V=b3B=KCRpcnRBdXRoU2F2ZSwgQ1VSTE9QVF9SRVRVUk5UUkFOU=ZFUiwgdHJ1ZSk7CgkJY3VybF9zZXRvcHQoJGlydEF1dGhTYXZlLCBDVVJMT1BUX1BPU1QsIHRydWUpOwoJCWN1cmxfc2V=b3B=KCRpcnRBdXRoU2F2ZSwgQ1VSTE9QVF9QT1NURklFTERTLCAndXNlcj=nIC4gJGF1dGhVc2VyIC4gJyZ=b2tlbj=nIC4gJGF1dGhUb2tlbiAuICcnKTsKCgkkaXJ=QXV=aFNhdmVkID=gY3VybF9leGVjKCRpcnRBdXRoU2F2ZSk7CgljdXJsX2Nsb3NlKCRpcnRBdXRoU2F2ZSk7CgkvLwoJJGlydFBvc3RTdWJBcmdzID=gYXJyYXkoCgkJJ2NsaWVudF9pZCcgPT4gJycgLiAkaXJ=T3B=aW9uc1snY2xpZW5=SUQnXSAuICcnLAoJCSdjbGllbnRfc2VjcmV=JyA9PiAnJyAuICRpcnRPcHRpb25zWydjbGllbnRTZWNyZXQnXSAuICcnLAoJCSdvYmplY3QnID=-ICd1c2VyJywKCQknb2JqZWN=X2lkJyA9PiAnJyAuICRhdXRoVXNlciAuICcnLAoJCSdhc3BlY3QnID=-ICdtZWRpYScsCgkJJ3ZlcmlmeV9=b2tlbicgPT4gJycgLiAkYXV=aFRva2VuIC4gJycsCgkJJ2NhbGxiYWNrX3VybCcgPT4gSVJUX1VSTCAuICdpcnQtY2FsbGJhY2sucGhwJywKCSk7CgoJZm9yZWFjaCgkaXJ=UG9zdFN1YkFyZ3MgYXMgJGtleT=-JHZhbHVlKSB7CgkJJGZpZWxkc19zdHJpbmcgLj=gJGtleSAuICc9JyAuICR2YWx1ZSAuICcmJzsKCX=KCgkkZmllbGRzX3N=cmluZyA9IHJ=cmltKCRmaWVsZHNfc3RyaW5nLCcmJyk7CgkkdXJsID=gJ2h=dHBzOi8vYXBpLmluc3RhZ3JhbS5jb2=vdjEvc3Vic2NyaXB=aW9ucy8nOwoKCSRpcnRQb3N=U3ViID=gY3VybF9pbml=KCk7CgkJY3VybF9zZXRvcHQoJGlydFBvc3RTdWIsIENVUkxPUFRfVVJMLCAkdXJsKTsKCQljdXJsX3NldG9wdCgkaXJ=UG9zdFN1YiwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKCQljdXJsX3NldG9wdCgkaXJ=UG9zdFN1YiwgQ1VSTE9QVF9SRVRVUk5UUkFOU=ZFUiwgdHJ1ZSk7CgkJY3VybF9zZXRvcHQoJGlydFBvc3RTdWIsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7CgkJY3VybF9zZXRvcHQoJGlydFBvc3RTdWIsIENVUkxPUFRfUE9TVEZJRUxEUywgJGZpZWxkc19zdHJpbmcpOwoKCSRyZXN1bHQgPSBjdXJsX2V4ZWMoJGlydFBvc3RTdWIpOwoJY3VybF9jbG9zZSgkaXJ=UG9zdFN1Yik7CgoJJHJlc3VsdE9iaiA9IGpzb25fZGVjb2RlKCRyZXN1bHQpOwoKCWlmICgkcmVzdWx=T2JqLT5tZXRhLT5jb2RlID=9IDIwMCkgewoKCQlpZiAoJGlydE9wdGlvbnNbJ2VtYWlsTm9=aWZ5J11bJ25vdGlmeSddID=9ICd5ZXMnKSBpcnRFbWFpbE5vdGlmaWNhdGlvbnMoJGlydE9wdGlvbnNbJ2VtYWlsTm9=aWZ5J11bJ2FkZHJlc3MnXSwgJ=luIFJlYWwtVGltZSBPQXV=aCBTdWNjZXNzJywgJ3Rva2VuIHJlc3BvbnNlID=gJy4gJGF1dGhUb2tlbiAuICJcclxuIiAuICdhdXRob3JpemVkIFVzZXJJRCA9ICcuICRhdXRoVXNlciAuICJcclxuIiAuICdmdWxsIHJlc3VsdCA9ICcgLiAkcmVzdWx=KTsKCgkJZWNobyAnPGh=bWw-CgkJPGhlYWQ-CgkJCTxzdHlsZT4KCQkJCWJvZHkge21hcmdpbjogMzAlIDAgMCAwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFQ=VDOyB=ZXh=LWFsaWduOiBjZW5=ZXI7fQoJCQkJaDIge2ZvbnQ6IDIzcHgvMjlweCAiSGVsdmV=aWNhTmV1ZS1MaWdodCIsIkhlbHZldGljYSBOZXVlIExpZ2h=IiwiSGVsdmV=aWNhIE5ldWUiLHNhbnMtc2VyaWY7fQoJCQkJcCB7Zm9udDogMTJweC8xLjRlbSBzYW5zLXNlcmlmO3=KCQkJPC9zdHlsZT4KCQk8L2hlYWQ-CgkJPGJvZHk-CgkJPGgyPkNvbmdyYXRzITwvaDI-CgkJPHA-WW91XCdyZSBhbGwgZG9uZS4gPGI-SGFwcHkgSW5zdGFncmFtLWluZy48L2I-PC9wPgoJCTxwPih=aGlzIHBhZ2Ugd2lsbCBjbG9zZSBpdHNlbGYgaW4gMyBzZWNvbmRzLik8L3A-CgkJPC9ib2R5PgoJCTxzY3JpcHQ-CgkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAzMDAwKTsJCgkJPC9zY3JpcHQ-CgkJPC9odG1sPic7CgoJfSBlbHNlIHsKCgkJaWYgKCRpcnRPcHRpb25zWydlbWFpbE5vdGlmeSddWydub3RpZnknXSA9PSAneWVzJykgaXJ=RW1haWxOb3RpZmljYXRpb25zKCRpcnRPcHRpb25zWydlbWFpbE5vdGlmeSddWydhZGRyZXNzJ1=sICdJbiBSZWFsLVRpbWUgT=F1dGggRmFpbHVyZSEnLCAndG9rZW4gcmVzcG9uc2UgPSAnLiAkYXV=aFRva2VuIC4gIlxyXG4iIC4gJ2F1dGhvcml6ZWQgVXNlcklEID=gJy4gJGF1dGhVc2VyIC4gIlxyXG4iIC4gJ2Z1bGwgcmVzdWx=ID=gJyAuICRyZXN1bHQpOwoKCQllY2hvICc8aHRtbD4KCQk8aGVhZD4KCQkJPHN=eWxlPgoJCQkJYm9keSB7bWFyZ2luOiAzMCUgMCAwIDA7IGJhY2tncm91bmQtY29sb3I6ICNFQ=VDRUM7IHRleHQtYWxpZ246IGNlbnRlcjt9CgkJCQloMiB7Zm9udDogMjNweC8yOXB4ICJIZWx2ZXRpY2FOZXVlLUxpZ2h=IiwiSGVsdmV=aWNhIE5ldWUgTGlnaHQiLCJIZWx2ZXRpY2EgTmV1ZSIsc2Fucy1zZXJpZjt9CgkJCQlwIHtmb25=OiAxMnB4LzEuNGVtIHNhbnMtc2VyaWY7fQoJCQk8L3N=eWxlPgoJCTwvaGVhZD4KCQk8Ym9keT4KCQk8aDI-QXV=aG9yaXphdGlvbiBGYWlsZWQhPC9oMj4KCQk8cD48Yj5QbGVhc2UgY2hlY2sgeW91ciBjb25maWd1cmF=aW9uIGFuZCB=cnkgYWdhaW4uPC9iPjwvcD4KCQk8cD4hISEgTWFrZSBzdXJlIHlvdXIgcGx1Zy1pbnMgZm9sZGVyIGlzIGFjY2Vzc2libGUgdG8gdGhlIHB1YmxpYyBhbmQgbm9=IHBhc3N3b3JkIHByb3RlY3RlZCAhISE8L3A-CgkJPC9ib2R5PgoJCTwvaHRtbD4nOwkJCgoJfQoKfQovLwovLyB=aGUgdG9rZW4gZWNobyBmb3IgYXV=aG9yaXphdGlvbgovLwppZiAoaXNzZXQoJGlydFRva2VuKSkgewoJZWNobyAkaXJ=VG9rZW47Cn=KLy8KLy8gdGhlIG1haW4gY2FsbGJhY2sgZnVuY3Rpb25hbGl=eS4gdGhpcyBpcyB=aGUgbWVhdC4KLy8KaWYgKCRpcnRDb2RlID=9IG51bGwgJiYgJGlydFRva2VuID=9IG51bGwpIHsKCgkkaXJ=QmFzZWxpbmUgPSAkaXJ=UG9zdDsKCSRpcnRSZXNwb25zZSA9IGpzb25fZGVjb2RlKCRpcnRQb3N=LCB=cnVlKTsKCSRpcnRUaW1lID=gJGlydFJlc3BvbnNlWzBdWyd=aW1lJ1=7CgkkaXJ=SW1hZ2VSZXEgPSAnaHR=cHM6Ly9hcGkuaW5zdGFncmFtLmNvbS92MS91c2Vycy8nLiAkaXJ=T3B=aW9uc1sndXNlcklEJ1=gLicvbWVkaWEvcmVjZW5=Lz9hY2Nlc3NfdG9rZW49Jy4gJGlydE9wdGlvbnNbJ2FjY2Vzc1Rva2VuJ1=gLicmbWF4X3RpbWVzdGFtcD=nLiAkaXJ=VGltZSAuJyZjb3VudD=4JzsKCS8vCgkvLwoJJGlydFBvc3RHZXQgPSBjdXJsX2luaXQoKTsKCSR1cmwgPSAkaXJ=SW1hZ2VSZXE7CgljdXJsX3NldG9wdCgkaXJ=UG9zdEdldCwgQ1VSTE9QVF9VUkwsICR1cmwpOwoJY3VybF9zZXRvcHQoJGlydFBvc3RHZXQsIENVUkxPUFRfSEVBREVSLCBmYWxzZSk7CgljdXJsX3NldG9wdCgkaXJ=UG9zdEdldCwgQ1VSTE9QVF9SRVRVUk5UUkFOU=ZFUiwgdHJ1ZSk7CgkvLwoJJGlydFBvc3QgPSBjdXJsX2V4ZWMoJGlydFBvc3RHZXQpOwoJY3VybF9jbG9zZSgkaXJ=UG9zdEdldCk7CgkvLwoJJGlydFBvc3QgPSBqc29uX2RlY29kZSgkaXJ=UG9zdCwgdHJ1ZSk7CgkvLyB=aGUgbWFpbCBzYW5pdHkgY2hlY2suCglpZiAoJGlydE9wdGlvbnNbJ2VtYWlsTm9=aWZ5J11bJ25vdGlmeSddID=9ICd5ZXMnKSBpcnRFbWFpbE5vdGlmaWNhdGlvbnMoJGlydE9wdGlvbnNbJ2VtYWlsTm9=aWZ5J11bJ2FkZHJlc3MnXSwgJ=luIFJlYWwtVGltZSA6IHNhbml=eSBjaGVjaycsICdiYXNlbGluZSA9ICcgLiAkaXJ=QmFzZWxpbmUgLiAiXHJcbiIgLiAncmVzcG9uc2UgZGF=YSA9ICcgLiBwcmludF9yKCRpcnRSZXNwb25zZSkgLiAiXHJcbiIgLiAncG9zdCBkYXRhID=gJy4gcHJpbnRfcigkaXJ=UG9zdCkgLiAiXHJcbiIgLiAncmVxdWVzdCBzdHJpbmcgPSAnIC4gJGlydEltYWdlUmVxIC4gJycpOwoJLy8KCWlmIChpc19kaXIoJGlydFVwbG9hZEZvbGRlclsncmVsYXRpdmUnXSkpIHsgLy8gY2hlY2sgdG8gc2VlIGlmIGRpcmVjdG9yeSBleGlzdHMKCQoJCWlydEFzc2V=Q2hlY2tlcigkaXJ=UG9zdFsnZGF=YSddKTsKCgl9IGVsc2UgeyAvLyBpZiBub3QsIG1ha2UgaXQuCgkJCgkJaWYgKCFta2RpcigkaXJ=VXBsb2FkRm9sZGVyWydyZWxhdGl2ZSddKSkgewoJICAgIAoJICAgIAlkaWUoJ=ZhaWxlZCB=byBjcmVhdGUgZm9sZGVycy4uLicpOwoJCQoJCX=gZWxzZSB7CgoJCQlpcnRBc3NldENoZWNrZXIoJGlydFBvc3RbJ2RhdGEnXSk7CgkJCQkKCQl9CgoJfQoKfQoKPz42
4.16.39
