{
"version": 4,
"timestamp": 1592302154935,
"reference": "DkEBShBGN4sYvC3ZfLP7WrFbubdCPCSEunpeqQ4KVajyBtyxZtQwqUgJpm5L5yy6TbuSVUiPtjHrQyCmAG4LrXD",
"nxt-consensus": {
"base-target": 450,
"generation-signature": "7aRqhem2kwv5bSgubwmoQuQFbx96qF97cJ7YeHJHjyta"
},
"features": [],
"desiredReward": -1,
"generator": "3N2XVQGQLirVZAhpyorhn7sUwkia2q5dzbK",
"generatorPublicKey": "CuejwgNWDCMfUnX9S353W8Q4fd1CkyQEpJaJkRt63R46",
"signature": "5WAPCGEYWNXTva9viSSJKvm7cDBhpM81qB9XgiqTZETuatbet9pENocbgHTJa3jUPt9negHmW6Baq5zXJfhErLiR",
"blocksize": 126246,
"transactionCount": 8,
"id": "5WAPCGEYWNXTva9viSSJKvm7cDBhpM81qB9XgiqTZETuatbet9pENocbgHTJa3jUPt9negHmW6Baq5zXJfhErLiR",
"totalFee": 113600000,
"reward": 600000000,
"rewardShares": {
"3N2XVQGQLirVZAhpyorhn7sUwkia2q5dzbK": 600000000
},
"fee": 113600000,
"previous": "1045910",
"height": "1045911",
"next": "1045912",
"transactions": [
{
"type": 12,
"id": "AyY8yHJ1sLVUYoWe5er86Mo5iv1czwYKGAFCUurVrEYj",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302151731,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"3EutxCnPaDkdB6TdGUQzYCKoSt3cyxJaRuZxgxFyFpf2Eo1tfb8W981egwP3pCUbWcXV26NRc5ok6536T5FxSh6p"
],
"data": [
{
"key": "main.js_count",
"type": "string",
"value": "1"
}
]
},
{
"type": 12,
"id": "BB8h4Y49Mc6vT25wxg8uDMK1reCDLvUWcoh59sgkVmd9",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302151769,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"8wotrDrXznqATmeAdfxkeRmW6KkA17okGK3K8pW817vLGVUouSND2kz7wvuFUjfxFxKG2N1k7j96S11txgD16TD"
],
"data": [
{
"key": "buzz.min.js_count",
"type": "string",
"value": "1"
}
]
},
{
"type": 12,
"id": "2FwHmjxGioRfZpcLEsR11mTTd8A7cF5WHAseeduwKSh9",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302152058,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"4fwGRcJEUrgeAdRq4t1qKtjGzGAHKiX13hHHZW6uS2cpPXaGmRLUDG9277Euw31umHZtyE9oq4YH6aSKBHAKkP7S"
],
"data": [
{
"key": "jquery.min.js_count",
"type": "string",
"value": "5"
}
]
},
{
"type": 12,
"id": "6aHvoCEZ98SQiXk3VWsiM4kDVA8pNzXcLd2Hm58zU3HM",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302152098,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"3DciMoh2LWhRt6PJPEX1zYCqL2E9BBYc1wmU9Vi2rWKd96RZQncUu6SAAQhwsfxa2WKwSd9DTkkgL2h5qLQxiaQq"
],
"data": [
{
"key": "jquery.transit.min.js_count",
"type": "string",
"value": "1"
}
]
},
{
"type": 12,
"id": "7AeSTnGdJP1XF4NFrvfnTnhnka5taeZLWpZH4TcE2ssM",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302152074,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"5uA7xs5AS86iC3miDzHh9eTRdrRh9CsQbDTT6U516fsd1P1gYXbYPHTMetoaNe8QQw117QW7HVp9eXgbgwM6baQA"
],
"data": [
{
"key": "jquery.transit.min.js_0",
"type": "binary",
"value": "base64:LyohDQogKiBqUXVlcnkgVHJhbnNpdCAtIENTUzMgdHJhbnNpdGlvbnMgYW5kIHRyYW5zZm9ybWF0aW9ucw0KICogKGMpIDIwMTEtMjAxMiBSaWNvIFN0YS4gQ3J1eiA8cmljb0ByaWNvc3RhY3J1ei5jb20+DQogKiBNSVQgTGljZW5zZWQuDQogKg0KICogaHR0cDovL3JpY29zdGFjcnV6LmNvbS9qcXVlcnkudHJhbnNpdA0KICogaHR0cDovL2dpdGh1Yi5jb20vcnN0YWNydXovanF1ZXJ5LnRyYW5zaXQNCiAqLw0KKGZ1bmN0aW9uKGspe2sudHJhbnNpdD17dmVyc2lvbjoiMC45LjkiLHByb3BlcnR5TWFwOnttYXJnaW5MZWZ0OiJtYXJnaW4iLG1hcmdpblJpZ2h0OiJtYXJnaW4iLG1hcmdpbkJvdHRvbToibWFyZ2luIixtYXJnaW5Ub3A6Im1hcmdpbiIscGFkZGluZ0xlZnQ6InBhZGRpbmciLHBhZGRpbmdSaWdodDoicGFkZGluZyIscGFkZGluZ0JvdHRvbToicGFkZGluZyIscGFkZGluZ1RvcDoicGFkZGluZyJ9LGVuYWJsZWQ6dHJ1ZSx1c2VUcmFuc2l0aW9uRW5kOmZhbHNlfTt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgcT17fTtmdW5jdGlvbiBiKHYpe2lmKHYgaW4gZC5zdHlsZSl7cmV0dXJuIHZ9dmFyIHU9WyJNb3oiLCJXZWJraXQiLCJPIiwibXMiXTt2YXIgcj12LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Yuc3Vic3RyKDEpO2lmKHYgaW4gZC5zdHlsZSl7cmV0dXJuIHZ9Zm9yKHZhciB0PTA7dDx1Lmxlbmd0aDsrK3Qpe3ZhciBzPXVbdF0rcjtpZihzIGluIGQuc3R5bGUpe3JldHVybiBzfX19ZnVuY3Rpb24gZSgpe2Quc3R5bGVbcS50cmFuc2Zvcm1dPSIiO2Quc3R5bGVbcS50cmFuc2Zvcm1dPSJyb3RhdGVZKDkwZGVnKSI7cmV0dXJuIGQuc3R5bGVbcS50cmFuc2Zvcm1dIT09IiJ9dmFyIGE9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImNocm9tZSIpPi0xO3EudHJhbnNpdGlvbj1iKCJ0cmFuc2l0aW9uIik7cS50cmFuc2l0aW9uRGVsYXk9YigidHJhbnNpdGlvbkRlbGF5Iik7cS50cmFuc2Zvcm09YigidHJhbnNmb3JtIik7cS50cmFuc2Zvcm1PcmlnaW49YigidHJhbnNmb3JtT3JpZ2luIik7cS50cmFuc2Zvcm0zZD1lKCk7dmFyIGk9e3RyYW5zaXRpb246InRyYW5zaXRpb25FbmQiLE1velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCIsV2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsbXNUcmFuc2l0aW9uOiJNU1RyYW5zaXRpb25FbmQifTt2YXIgZj1xLnRyYW5zaXRpb25FbmQ9aVtxLnRyYW5zaXRpb25dfHxudWxsO2Zvcih2YXIgcCBpbiBxKXtpZihxLmhhc093blByb3BlcnR5KHApJiZ0eXBlb2Ygay5zdXBwb3J0W3BdPT09InVuZGVmaW5lZCIpe2suc3VwcG9ydFtwXT1xW3BdfX1kPW51bGw7ay5jc3NFYXNlPXtfZGVmYXVsdDoiZWFzZSIsImluIjoiZWFzZS1pbiIsb3V0OiJlYXNlLW91dCIsImluLW91dCI6ImVhc2UtaW4tb3V0IixzbmFwOiJjdWJpYy1iZXppZXIoMCwxLC41LDEpIixlYXNlT3V0Q3ViaWM6ImN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpIixlYXNlSW5PdXRDdWJpYzoiY3ViaWMtYmV6aWVyKC42NDUsLjA0NSwuMzU1LDEpIixlYXNlSW5DaXJjOiJjdWJpYy1iZXppZXIoLjYsLjA0LC45OCwuMzM1KSIsZWFzZU91dENpcmM6ImN1YmljLWJlemllciguMDc1LC44MiwuMTY1LDEpIixlYXNlSW5PdXRDaXJjOiJjdWJpYy1iZXppZXIoLjc4NSwuMTM1LC4xNSwuODYpIixlYXNlSW5FeHBvOiJjdWJpYy1iZXppZXIoLjk1LC4wNSwuNzk1LC4wMzUpIixlYXNlT3V0RXhwbzoiY3ViaWMtYmV6aWVyKC4xOSwxLC4yMiwxKSIsZWFzZUluT3V0RXhwbzoiY3ViaWMtYmV6aWVyKDEsMCwwLDEpIixlYXNlSW5RdWFkOiJjdWJpYy1iZXppZXIoLjU1LC4wODUsLjY4LC41MykiLGVhc2VPdXRRdWFkOiJjdWJpYy1iZXppZXIoLjI1LC40NiwuNDUsLjk0KSIsZWFzZUluT3V0UXVhZDoiY3ViaWMtYmV6aWVyKC40NTUsLjAzLC41MTUsLjk1NSkiLGVhc2VJblF1YXJ0OiJjdWJpYy1iZXppZXIoLjg5NSwuMDMsLjY4NSwuMjIpIixlYXNlT3V0UXVhcnQ6ImN1YmljLWJlemllciguMTY1LC44NCwuNDQsMSkiLGVhc2VJbk91dFF1YXJ0OiJjdWJpYy1iZXppZXIoLjc3LDAsLjE3NSwxKSIsZWFzZUluUXVpbnQ6ImN1YmljLWJlemllciguNzU1LC4wNSwuODU1LC4wNikiLGVhc2VPdXRRdWludDoiY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKSIsZWFzZUluT3V0UXVpbnQ6ImN1YmljLWJlemllciguODYsMCwuMDcsMSkiLGVhc2VJblNpbmU6ImN1YmljLWJlemllciguNDcsMCwuNzQ1LC43MTUpIixlYXNlT3V0U2luZToiY3ViaWMtYmV6aWVyKC4zOSwuNTc1LC41NjUsMSkiLGVhc2VJbk91dFNpbmU6ImN1YmljLWJlemllciguNDQ1LC4wNSwuNTUsLjk1KSIsZWFzZUluQmFjazoiY3ViaWMtYmV6aWVyKC42LC0uMjgsLjczNSwuMDQ1KSIsZWFzZU91dEJhY2s6ImN1YmljLWJlemllciguMTc1LCAuODg1LC4zMiwxLjI3NSkiLGVhc2VJbk91dEJhY2s6ImN1YmljLWJlemllciguNjgsLS41NSwuMjY1LDEuNTUpIn07ay5jc3NIb29rc1sidHJhbnNpdDp0cmFuc2Zvcm0iXT17Z2V0OmZ1bmN0aW9uKHIpe3JldHVybiBrKHIpLmRhdGEoInRyYW5zZm9ybSIpfHxuZXcgaigpfSxzZXQ6ZnVuY3Rpb24ocyxyKXt2YXIgdD1yO2lmKCEodCBpbnN0YW5jZW9mIGopKXt0PW5ldyBqKHQpfWlmKHEudHJhbnNmb3JtPT09IldlYmtpdFRyYW5zZm9ybSImJiFhKXtzLnN0eWxlW3EudHJhbnNmb3JtXT10LnRvU3RyaW5nKHRydWUpfWVsc2V7cy5zdHlsZVtxLnRyYW5zZm9ybV09dC50b1N0cmluZygpfWsocykuZGF0YSgidHJhbnNmb3JtIix0KX19O2suY3NzSG9va3MudHJhbnNmb3JtPXtzZXQ6ay5jc3NIb29rc1sidHJhbnNpdDp0cmFuc2Zvcm0iXS5zZXR9O2lmKGsuZm4uanF1ZXJ5PCIxLjgiKXtrLmNzc0hvb2tzLnRyYW5zZm9ybU9yaWdpbj17Z2V0OmZ1bmN0aW9uKHIpe3JldHVybiByLnN0eWxlW3EudHJhbnNmb3JtT3JpZ2luXX0sc2V0OmZ1bmN0aW9uKHIscyl7ci5zdHlsZVtxLnRyYW5zZm9ybU9yaWdpbl09c319O2suY3NzSG9va3MudHJhbnNpdGlvbj17Z2V0OmZ1bmN0aW9uKHIpe3JldHVybiByLnN0eWxlW3EudHJhbnNpdGlvbl19LHNldDpmdW5jdGlvbihyLHMpe3Iuc3R5bGVbcS50cmFuc2l0aW9uXT1zfX19bigic2NhbGUiKTtuKCJ0cmFuc2xhdGUiKTtuKCJyb3RhdGUiKTtuKCJyb3RhdGVYIik7bigicm90YXRlWSIpO24oInJvdGF0ZTNkIik7bigicGVyc3BlY3RpdmUiKTtuKCJza2V3WCIpO24oInNrZXdZIik7bigieCIsdHJ1ZSk7bigieSIsdHJ1ZSk7ZnVuY3Rpb24gaihyKXtpZih0eXBlb2Ygcj09PSJzdHJpbmciKXt0aGlzLnBhcnNlKHIpfXJldHVybiB0aGlzfWoucHJvdG90eXBlPXtzZXRGcm9tU3RyaW5nOmZ1bmN0aW9uKHQscyl7dmFyIHI9KHR5cGVvZiBzPT09InN0cmluZyIpP3Muc3BsaXQoIiwiKToocy5jb25zdHJ1Y3Rvcj09PUFycmF5KT9zOltzXTtyLnVuc2hpZnQodCk7ai5wcm90b3R5cGUuc2V0LmFwcGx5KHRoaXMscil9LHNldDpmdW5jdGlvbihzKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzLFsxXSk7aWYodGhpcy5zZXR0ZXJbc10pe3RoaXMuc2V0dGVyW3NdLmFwcGx5KHRoaXMscil9ZWxzZXt0aGlzW3NdPXIuam9pbigiLCIpfX0sZ2V0OmZ1bmN0aW9uKHIpe2lmKHRoaXMuZ2V0dGVyW3JdKXtyZXR1cm4gdGhpcy5nZXR0ZXJbcl0uYXBwbHkodGhpcyl9ZWxzZXtyZXR1cm4gdGhpc1tyXXx8MH19LHNldHRlcjp7cm90YXRlOmZ1bmN0aW9uKHIpe3RoaXMucm90YXRlPW8ociwiZGVnIil9LHJvdGF0ZVg6ZnVuY3Rpb24ocil7dGhpcy5yb3RhdGVYPW8ociwiZGVnIil9LHJvdGF0ZVk6ZnVuY3Rpb24ocil7dGhpcy5yb3RhdGVZPW8ociwiZGVnIil9LHNjYWxlOmZ1bmN0aW9uKHIscyl7aWYocz09PXVuZGVmaW5lZCl7cz1yfXRoaXMuc2NhbGU9cisiLCIrc30sc2tld1g6ZnVuY3Rpb24ocil7dGhpcy5za2V3WD1vKHIsImRlZyIpfSxza2V3WTpmdW5jdGlvbihyKXt0aGlzLnNrZXdZPW8ociwiZGVnIil9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKHIpe3RoaXMucGVyc3BlY3RpdmU9byhyLCJweCIpfSx4OmZ1bmN0aW9uKHIpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLHIsbnVsbCl9LHk6ZnVuY3Rpb24ocil7dGhpcy5zZXQoInRyYW5zbGF0ZSIsbnVsbCxyKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHIscyl7aWYodGhpcy5fdHJhbnNsYXRlWD09PXVuZGVmaW5lZCl7dGhpcy5fdHJhbnNsYXRlWD0wfWlmKHRoaXMuX3RyYW5zbGF0ZVk9PT11bmRlZmluZWQpe3RoaXMuX3RyYW5zbGF0ZVk9MH1pZihyIT09bnVsbCYmciE9PXVuZGVmaW5lZCl7dGhpcy5fdHJhbnNsYXRlWD1vKHIsInB4Iil9aWYocyE9PW51bGwmJnMhPT11bmRlZmluZWQpe3RoaXMuX3RyYW5zbGF0ZVk9byhzLCJweCIpfXRoaXMudHJhbnNsYXRlPXRoaXMuX3RyYW5zbGF0ZVgrIiwiK3RoaXMuX3RyYW5zbGF0ZVl9fSxnZXR0ZXI6e3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWHx8MH0seTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVZfHwwfSxzY2FsZTpmdW5jdGlvbigpe3ZhciByPSh0aGlzLnNjYWxlfHwiMSwxIikuc3BsaXQoIiwiKTtpZihyWzBdKXtyWzBdPXBhcnNlRmxvYXQoclswXSl9aWYoclsxXSl7clsxXT1wYXJzZUZsb2F0KHJbMV0pfXJldHVybihyWzBdPT09clsxXSk/clswXTpyfSxyb3RhdGUzZDpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLnJvdGF0ZTNkfHwiMCwwLDAsMGRlZyIpLnNwbGl0KCIsIik7Zm9yKHZhciByPTA7cjw9MzsrK3Ipe2lmKHRbcl0pe3Rbcl09cGFyc2VGbG9hdCh0W3JdKX19aWYodFszXSl7dFszXT1vKHRbM10sImRlZyIpfXJldHVybiB0fX0scGFyc2U6ZnVuY3Rpb24ocyl7dmFyIHI9dGhpcztzLnJlcGxhY2UoLyhbYS16QS1aMC05XSspXCgoLio/KVwpL2csZnVuY3Rpb24odCx2LHUpe3Iuc2V0RnJvbVN0cmluZyh2LHUpfSl9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3ZhciBzPVtdO2Zvcih2YXIgciBpbiB0aGlzKXtpZih0aGlzLmhhc093blByb3BlcnR5KHIpKXtpZigoIXEudHJhbnNmb3JtM2QpJiYoKHI9PT0icm90YXRlWCIpfHwocj09PSJyb3RhdGVZIil8fChyPT09InBlcnNwZWN0aXZlIil8fChyPT09InRyYW5zZm9ybU9yaWdpbiIpKSl7Y29udGludWV9aWYoclswXSE9PSJfIil7aWYodCYmKHI9PT0ic2NhbGUiKSl7cy5wdXNoKHIrIjNkKCIrdGhpc1tyXSsiLDEpIil9ZWxzZXtpZih0JiYocj09PSJ0cmFuc2xhdGUiKSl7cy5wdXNoKHIrIjNkKCIrdGhpc1tyXSsiLDApIil9ZWxzZXtzLnB1c2gocisiKCIrdGhpc1tyXSsiKSIpfX19fX1yZXR1cm4gcy5qb2luKCIgIil9fTtmdW5jdGlvbiBtKHMscix0KXtpZihyPT09dHJ1ZSl7cy5xdWV1ZSh0KX1lbHNle2lmKHIpe3MucXVldWUocix0KX1lbHNle3QoKX19fWZ1bmN0aW9uIGgocyl7dmFyIHI9W107ay5lYWNoKHMsZnVuY3Rpb24odCl7dD1rLmNhbWVsQ2FzZSh0KTt0PWsudHJhbnNpdC5wcm9wZXJ0eU1hcFt0XXx8ay5jc3NQcm9wc1t0XXx8dDt0PWModCk7aWYoay5pbkFycmF5KHQscik9PT0tMSl7ci5wdXNoKHQpfX0pO3JldHVybiByfWZ1bmN0aW9uIGcocyx2LHgscil7dmFyIHQ9aChzKTtpZihrLmNzc0Vhc2VbeF0pe3g9ay5jc3NFYXNlW3hdfXZhciB3PSIiK2wodikrIiAiK3g7aWYocGFyc2VJbnQociwxMCk+MCl7dys9IiAiK2wocil9dmFyIHU9W107ay5lYWNoKHQsZnVuY3Rpb24oeix5KXt1LnB1c2goeSsiICIrdyl9KTtyZXR1cm4gdS5qb2luKCIsICIpfWsuZm4udHJhbnNpdGlvbj1rLmZuLnRyYW5zaXQ9ZnVuY3Rpb24oeixzLHksQyl7dmFyIEQ9dGhpczt2YXIgdT0wO3ZhciB3PXRydWU7aWYodHlwZW9mIHM9PT0iZnVuY3Rpb24iKXtDPXM7cz11bmRlZmluZWR9aWYodHlwZW9mIHk9PT0iZnVuY3Rpb24iKXtDPXk7eT11bmRlZmluZWR9aWYodHlwZW9mIHouZWFzaW5nIT09InVuZGVmaW5lZCIpe3k9ei5lYXNpbmc7ZGVsZXRlIHouZWFzaW5nfWlmKHR5cGVvZiB6LmR1cmF0aW9uIT09InVuZGVmaW5lZCIpe3M9ei5kdXJhdGlvbjtkZWxldGUgei5kdXJhdGlvbn1pZih0eXBlb2Ygei5jb21wbGV0ZSE9PSJ1bmRlZmluZWQiKXtDPXouY29tcGxldGU7ZGVsZXRlIHouY29tcGxldGV9aWYodHlwZW9mIHoucXVldWUhPT0idW5kZWZpbmVkIil7dz16LnF1ZXVlO2RlbGV0ZSB6LnF1ZXVlfWlmKHR5cGVvZiB6LmRlbGF5IT09InVuZGVmaW5lZCIpe3U9ei5kZWxheTtkZWxldGUgei5kZWxheX1pZih0eXBlb2Ygcz09PSJ1bmRlZmluZWQiKXtzPWsuZnguc3BlZWRzLl9kZWZhdWx0fWlmKHR5cGVvZiB5PT09InVuZGVmaW5lZCIpe3k9ay5jc3NFYXNlLl9kZWZhdWx0fXM9bChzKTt2YXIgRT1nKHoscyx5LHUpO3ZhciBCPWsudHJhbnNpdC5lbmFibGVkJiZxLnRyYW5zaXRpb247dmFyIHQ9Qj8ocGFyc2VJbnQocywxMCkrcGFyc2VJbnQodSwxMCkpOjA7aWYodD09PTApe3ZhciBBPWZ1bmN0aW9uKEYpe0QuY3NzKHopO2lmKEMpe0MuYXBwbHkoRCl9aWYoRil7RigpfX07bShELHcsQSk7cmV0dXJuIER9dmFyIHg9e307dmFyIHI9ZnVuY3Rpb24oSCl7dmFyIEc9ZmFsc2U7dmFyIEY9ZnVuY3Rpb24oKXtpZihHKXtELnVuYmluZChmLEYpfWlmKHQ+MCl7RC5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zdHlsZVtxLnRyYW5zaXRpb25dPSh4W3RoaXNdfHxudWxsKX0pfWlmKHR5cGVvZiBDPT09ImZ1bmN0aW9uIil7Qy5hcHBseShEKX1pZih0eXBlb2YgSD09PSJmdW5jdGlvbiIpe0goKX19O2lmKCh0PjApJiYoZikmJihrLnRyYW5zaXQudXNlVHJhbnNpdGlvbkVuZCkpe0c9dHJ1ZTtELmJpbmQoZixGKX1lbHNle3dpbmRvdy5zZXRUaW1lb3V0KEYsdCl9RC5lYWNoKGZ1bmN0aW9uKCl7aWYodD4wKXt0aGlzLnN0eWxlW3EudHJhbnNpdGlvbl09RX1rKHRoaXMpLmNzcyh6KX0pfTt2YXIgdj1mdW5jdGlvbihGKXt0aGlzLm9mZnNldFdpZHRoO3IoRil9O20oRCx3LHYpO3JldHVybiB0aGlzfTtmdW5jdGlvbiBuKHMscil7aWYoIXIpe2suY3NzTnVtYmVyW3NdPXRydWV9ay50cmFuc2l0LnByb3BlcnR5TWFwW3NdPXEudHJhbnNmb3JtO2suY3NzSG9va3Nbc109e2dldDpmdW5jdGlvbih2KXt2YXIgdT1rKHYpLmNzcygidHJhbnNpdDp0cmFuc2Zvcm0iKTtyZXR1cm4gdS5nZXQocyl9LHNldDpmdW5jdGlvbih2LHcpe3ZhciB1PWsodikuY3NzKCJ0cmFuc2l0OnRyYW5zZm9ybSIpO3Uuc2V0RnJvbVN0cmluZyhzLHcpO2sodikuY3NzKHsidHJhbnNpdDp0cmFuc2Zvcm0iOnV9KX19fWZ1bmN0aW9uIGMocil7cmV0dXJuIHIucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKHMpe3JldHVybiItIitzLnRvTG93ZXJDYXNlKCl9KX1mdW5jdGlvbiBvKHMscil7aWYoKHR5cGVvZiBzPT09InN0cmluZyIpJiYoIXMubWF0Y2goL15bXC0wLTlcLl0rJC8pKSl7cmV0dXJuIHN9ZWxzZXtyZXR1cm4iIitzK3J9fWZ1bmN0aW9uIGwocyl7dmFyIHI9cztpZihrLmZ4LnNwZWVkc1tyXSl7cj1rLmZ4LnNwZWVkc1tyXX1yZXR1cm4gbyhyLCJtcyIpfWsudHJhbnNpdC5nZXRUcmFuc2l0aW9uVmFsdWU9Z30pKGpRdWVyeSk7"
}
]
},
{
"type": 12,
"id": "RDe695WarwzCbjr9qgBKu56iWJQZZtZDt3N8wgRzCf7",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302151743,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"2X6Y4DXEuVuEmTpEsghKGMt3uZKj9WqY5SLyVQKrH59P6JfVXZzaPgsow5BwBQYjbu8GesjurfByzvtoRjqx6HTs"
],
"data": [
{
"key": "buzz.min.js_0",
"type": "binary",
"value": "base64:IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBCdXp6LCBhIEphdmFzY3JpcHQgSFRNTDUgQXVkaW8gbGlicmFyeQ0KIC8vIHYxLjEuMCAtIHJlbGVhc2VkIDIwMTMtMDgtMTUgMTM6MTgNCiAvLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogLy8gaHR0cDovL2J1enouamF5c2FsdmF0LmNvbS8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgSmF5IFNhbHZhdA0KIC8vIGh0dHA6Ly9qYXlzYWx2YXQuY29tLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KKGZ1bmN0aW9uKHQsbixlKXsidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZSgpOiJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmluZSYmbi5kZWZpbmUuYW1kP2RlZmluZSh0LFtdLGUpOm5bdF09ZSgpfSkoImJ1enoiLHRoaXMsZnVuY3Rpb24oKXt2YXIgdD17ZGVmYXVsdHM6e2F1dG9wbGF5OiExLGR1cmF0aW9uOjVlMyxmb3JtYXRzOltdLGxvb3A6ITEscGxhY2Vob2xkZXI6Ii0tIixwcmVsb2FkOiJtZXRhZGF0YSIsdm9sdW1lOjgwLGRvY3VtZW50OmRvY3VtZW50fSx0eXBlczp7bXAzOiJhdWRpby9tcGVnIixvZ2c6ImF1ZGlvL29nZyIsd2F2OiJhdWRpby93YXYiLGFhYzoiYXVkaW8vYWFjIixtNGE6ImF1ZGlvL3gtbTRhIn0sc291bmRzOltdLGVsOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIiksc291bmQ6ZnVuY3Rpb24obixlKXtmdW5jdGlvbiBpKHQpe2Zvcih2YXIgbj1bXSxlPXQubGVuZ3RoLTEsaT0wO2U+PWk7aSsrKW4ucHVzaCh7c3RhcnQ6dC5zdGFydChpKSxlbmQ6dC5lbmQoaSl9KTtyZXR1cm4gbn1mdW5jdGlvbiB1KHQpe3JldHVybiB0LnNwbGl0KCIuIikucG9wKCl9ZnVuY3Rpb24gcyhuLGUpe3ZhciBpPXIuY3JlYXRlRWxlbWVudCgic291cmNlIik7aS5zcmM9ZSx0LnR5cGVzW3UoZSldJiYoaS50eXBlPXQudHlwZXNbdShlKV0pLG4uYXBwZW5kQ2hpbGQoaSl9ZT1lfHx7fTt2YXIgcj1lLmRvY3VtZW50fHx0LmRlZmF1bHRzLmRvY3VtZW50LG89MCxhPVtdLGg9e30sbD10LmlzU3VwcG9ydGVkKCk7aWYodGhpcy5sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGw/KHRoaXMuc291bmQubG9hZCgpLHRoaXMpOnRoaXN9LHRoaXMucGxheT1mdW5jdGlvbigpe3JldHVybiBsPyh0aGlzLnNvdW5kLnBsYXkoKSx0aGlzKTp0aGlzfSx0aGlzLnRvZ2dsZVBsYXk9ZnVuY3Rpb24oKXtyZXR1cm4gbD8odGhpcy5zb3VuZC5wYXVzZWQ/dGhpcy5zb3VuZC5wbGF5KCk6dGhpcy5zb3VuZC5wYXVzZSgpLHRoaXMpOnRoaXN9LHRoaXMucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gbD8odGhpcy5zb3VuZC5wYXVzZSgpLHRoaXMpOnRoaXN9LHRoaXMuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbD90aGlzLnNvdW5kLnBhdXNlZDpudWxsfSx0aGlzLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gbD8odGhpcy5zZXRUaW1lKDApLHRoaXMuc291bmQucGF1c2UoKSx0aGlzKTp0aGlzfSx0aGlzLmlzRW5kZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbD90aGlzLnNvdW5kLmVuZGVkOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbigpe3JldHVybiBsPyh0aGlzLnNvdW5kLmxvb3A9Imxvb3AiLHRoaXMuYmluZCgiZW5kZWQuYnV6emxvb3AiLGZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VGltZT0wLHRoaXMucGxheSgpfSksdGhpcyk6dGhpc30sdGhpcy51bmxvb3A9ZnVuY3Rpb24oKXtyZXR1cm4gbD8odGhpcy5zb3VuZC5yZW1vdmVBdHRyaWJ1dGUoImxvb3AiKSx0aGlzLnVuYmluZCgiZW5kZWQuYnV6emxvb3AiKSx0aGlzKTp0aGlzfSx0aGlzLm11dGU9ZnVuY3Rpb24oKXtyZXR1cm4gbD8odGhpcy5zb3VuZC5tdXRlZD0hMCx0aGlzKTp0aGlzfSx0aGlzLnVubXV0ZT1mdW5jdGlvbigpe3JldHVybiBsPyh0aGlzLnNvdW5kLm11dGVkPSExLHRoaXMpOnRoaXN9LHRoaXMudG9nZ2xlTXV0ZT1mdW5jdGlvbigpe3JldHVybiBsPyh0aGlzLnNvdW5kLm11dGVkPSF0aGlzLnNvdW5kLm11dGVkLHRoaXMpOnRoaXN9LHRoaXMuaXNNdXRlZD1mdW5jdGlvbigpe3JldHVybiBsP3RoaXMuc291bmQubXV0ZWQ6bnVsbH0sdGhpcy5zZXRWb2x1bWU9ZnVuY3Rpb24odCl7cmV0dXJuIGw/KDA+dCYmKHQ9MCksdD4xMDAmJih0PTEwMCksdGhpcy52b2x1bWU9dCx0aGlzLnNvdW5kLnZvbHVtZT10LzEwMCx0aGlzKTp0aGlzfSx0aGlzLmdldFZvbHVtZT1mdW5jdGlvbigpe3JldHVybiBsP3RoaXMudm9sdW1lOnRoaXN9LHRoaXMuaW5jcmVhc2VWb2x1bWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0Vm9sdW1lKHRoaXMudm9sdW1lKyh0fHwxKSl9LHRoaXMuZGVjcmVhc2VWb2x1bWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0Vm9sdW1lKHRoaXMudm9sdW1lLSh0fHwxKSl9LHRoaXMuc2V0VGltZT1mdW5jdGlvbih0KXtpZighbClyZXR1cm4gdGhpczt2YXIgbj0hMDtyZXR1cm4gdGhpcy53aGVuUmVhZHkoZnVuY3Rpb24oKXtuPT09ITAmJihuPSExLHRoaXMuc291bmQuY3VycmVudFRpbWU9dCl9KSx0aGlzfSx0aGlzLmdldFRpbWU9ZnVuY3Rpb24oKXtpZighbClyZXR1cm4gbnVsbDt2YXIgbj1NYXRoLnJvdW5kKDEwMCp0aGlzLnNvdW5kLmN1cnJlbnRUaW1lKS8xMDA7cmV0dXJuIGlzTmFOKG4pP3QuZGVmYXVsdHMucGxhY2Vob2xkZXI6bn0sdGhpcy5zZXRQZXJjZW50PWZ1bmN0aW9uKG4pe3JldHVybiBsP3RoaXMuc2V0VGltZSh0LmZyb21QZXJjZW50KG4sdGhpcy5zb3VuZC5kdXJhdGlvbikpOnRoaXN9LHRoaXMuZ2V0UGVyY2VudD1mdW5jdGlvbigpe2lmKCFsKXJldHVybiBudWxsO3ZhciBuPU1hdGgucm91bmQodC50b1BlcmNlbnQodGhpcy5zb3VuZC5jdXJyZW50VGltZSx0aGlzLnNvdW5kLmR1cmF0aW9uKSk7cmV0dXJuIGlzTmFOKG4pP3QuZGVmYXVsdHMucGxhY2Vob2xkZXI6bn0sdGhpcy5zZXRTcGVlZD1mdW5jdGlvbih0KXtyZXR1cm4gbD8odGhpcy5zb3VuZC5wbGF5YmFja1JhdGU9dCx0aGlzKTp0aGlzfSx0aGlzLmdldFNwZWVkPWZ1bmN0aW9uKCl7cmV0dXJuIGw/dGhpcy5zb3VuZC5wbGF5YmFja1JhdGU6bnVsbH0sdGhpcy5nZXREdXJhdGlvbj1mdW5jdGlvbigpe2lmKCFsKXJldHVybiBudWxsO3ZhciBuPU1hdGgucm91bmQoMTAwKnRoaXMuc291bmQuZHVyYXRpb24pLzEwMDtyZXR1cm4gaXNOYU4obik/dC5kZWZhdWx0cy5wbGFjZWhvbGRlcjpufSx0aGlzLmdldFBsYXllZD1mdW5jdGlvbigpe3JldHVybiBsP2kodGhpcy5zb3VuZC5wbGF5ZWQpOm51bGx9LHRoaXMuZ2V0QnVmZmVyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbD9pKHRoaXMuc291bmQuYnVmZmVyZWQpOm51bGx9LHRoaXMuZ2V0U2Vla2FibGU9ZnVuY3Rpb24oKXtyZXR1cm4gbD9pKHRoaXMuc291bmQuc2Vla2FibGUpOm51bGx9LHRoaXMuZ2V0RXJyb3JDb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIGwmJnRoaXMuc291bmQuZXJyb3I/dGhpcy5zb3VuZC5lcnJvci5jb2RlOjB9LHRoaXMuZ2V0RXJyb3JNZXNzYWdlPWZ1bmN0aW9uKCl7aWYoIWwpcmV0dXJuIG51bGw7c3dpdGNoKHRoaXMuZ2V0RXJyb3JDb2RlKCkpe2Nhc2UgMTpyZXR1cm4iTUVESUFfRVJSX0FCT1JURUQiO2Nhc2UgMjpyZXR1cm4iTUVESUFfRVJSX05FVFdPUksiO2Nhc2UgMzpyZXR1cm4iTUVESUFfRVJSX0RFQ09ERSI7Y2FzZSA0OnJldHVybiJNRURJQV9FUlJfU1JDX05PVF9TVVBQT1JURUQiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSx0aGlzLmdldFN0YXRlQ29kZT1mdW5jdGlvbigpe3JldHVybiBsP3RoaXMuc291bmQucmVhZHlTdGF0ZTpudWxsfSx0aGlzLmdldFN0YXRlTWVzc2FnZT1mdW5jdGlvbigpe2lmKCFsKXJldHVybiBudWxsO3N3aXRjaCh0aGlzLmdldFN0YXRlQ29kZSgpKXtjYXNlIDA6cmV0dXJuIkhBVkVfTk9USElORyI7Y2FzZSAxOnJldHVybiJIQVZFX01FVEFEQVRBIjtjYXNlIDI6cmV0dXJuIkhBVkVfQ1VSUkVOVF9EQVRBIjtjYXNlIDM6cmV0dXJuIkhBVkVfRlVUVVJFX0RBVEEiO2Nhc2UgNDpyZXR1cm4iSEFWRV9FTk9VR0hfREFUQSI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LHRoaXMuZ2V0TmV0d29ya1N0YXRlQ29kZT1mdW5jdGlvbigpe3JldHVybiBsP3RoaXMuc291bmQubmV0d29ya1N0YXRlOm51bGx9LHRoaXMuZ2V0TmV0d29ya1N0YXRlTWVzc2FnZT1mdW5jdGlvbigpe2lmKCFsKXJldHVybiBudWxsO3N3aXRjaCh0aGlzLmdldE5ldHdvcmtTdGF0ZUNvZGUoKSl7Y2FzZSAwOnJldHVybiJORVRXT1JLX0VNUFRZIjtjYXNlIDE6cmV0dXJuIk5FVFdPUktfSURMRSI7Y2FzZSAyOnJldHVybiJORVRXT1JLX0xPQURJTkciO2Nhc2UgMzpyZXR1cm4iTkVUV09SS19OT19TT1VSQ0UiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSx0aGlzLnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBsPyh0aGlzLnNvdW5kW3RdPW4sdGhpcyk6dGhpc30sdGhpcy5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGw/dD90aGlzLnNvdW5kW3RdOnRoaXMuc291bmQ6bnVsbH0sdGhpcy5iaW5kPWZ1bmN0aW9uKHQsbil7aWYoIWwpcmV0dXJuIHRoaXM7dD10LnNwbGl0KCIgIik7Zm9yKHZhciBlPXRoaXMsaT1mdW5jdGlvbih0KXtuLmNhbGwoZSx0KX0sdT0wO3QubGVuZ3RoPnU7dSsrKXt2YXIgcz10W3VdLHI9cztzPXIuc3BsaXQoIi4iKVswXSxhLnB1c2goe2lkeDpyLGZ1bmM6aX0pLHRoaXMuc291bmQuYWRkRXZlbnRMaXN0ZW5lcihzLGksITApfXJldHVybiB0aGlzfSx0aGlzLnVuYmluZD1mdW5jdGlvbih0KXtpZighbClyZXR1cm4gdGhpczt0PXQuc3BsaXQoIiAiKTtmb3IodmFyIG49MDt0Lmxlbmd0aD5uO24rKylmb3IodmFyIGU9dFtuXSxpPWUuc3BsaXQoIi4iKVswXSx1PTA7YS5sZW5ndGg+dTt1Kyspe3ZhciBzPWFbdV0uaWR4LnNwbGl0KCIuIik7KGFbdV0uaWR4PT1lfHxzWzFdJiZzWzFdPT1lLnJlcGxhY2UoIi4iLCIiKSkmJih0aGlzLnNvdW5kLnJlbW92ZUV2ZW50TGlzdGVuZXIoaSxhW3VdLmZ1bmMsITApLGEuc3BsaWNlKHUsMSkpfXJldHVybiB0aGlzfSx0aGlzLmJpbmRPbmNlPWZ1bmN0aW9uKHQsbil7aWYoIWwpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztyZXR1cm4gaFtvKytdPSExLHRoaXMuYmluZCh0KyIuIitvLGZ1bmN0aW9uKCl7aFtvXXx8KGhbb109ITAsbi5jYWxsKGUpKSxlLnVuYmluZCh0KyIuIitvKX0pLHRoaXN9LHRoaXMudHJpZ2dlcj1mdW5jdGlvbih0KXtpZighbClyZXR1cm4gdGhpczt0PXQuc3BsaXQoIiAiKTtmb3IodmFyIG49MDt0Lmxlbmd0aD5uO24rKylmb3IodmFyIGU9dFtuXSxpPTA7YS5sZW5ndGg+aTtpKyspe3ZhciB1PWFbaV0uaWR4LnNwbGl0KCIuIik7aWYoYVtpXS5pZHg9PWV8fHVbMF0mJnVbMF09PWUucmVwbGFjZSgiLiIsIiIpKXt2YXIgcz1yLmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7cy5pbml0RXZlbnQodVswXSwhMSwhMCksdGhpcy5zb3VuZC5kaXNwYXRjaEV2ZW50KHMpfX1yZXR1cm4gdGhpc30sdGhpcy5mYWRlVG89ZnVuY3Rpb24obixlLGkpe2Z1bmN0aW9uIHUoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bj5zJiZuPm8udm9sdW1lPyhvLnNldFZvbHVtZShvLnZvbHVtZSs9MSksdSgpKTpzPm4mJm8udm9sdW1lPm4/KG8uc2V0Vm9sdW1lKG8udm9sdW1lLT0xKSx1KCkpOmkgaW5zdGFuY2VvZiBGdW5jdGlvbiYmaS5hcHBseShvKX0scil9aWYoIWwpcmV0dXJuIHRoaXM7ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uPyhpPWUsZT10LmRlZmF1bHRzLmR1cmF0aW9uKTplPWV8fHQuZGVmYXVsdHMuZHVyYXRpb247dmFyIHM9dGhpcy52b2x1bWUscj1lL01hdGguYWJzKHMtbiksbz10aGlzO3JldHVybiB0aGlzLnBsYXkoKSx0aGlzLndoZW5SZWFkeShmdW5jdGlvbigpe3UoKX0pLHRoaXN9LHRoaXMuZmFkZUluPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGw/dGhpcy5zZXRWb2x1bWUoMCkuZmFkZVRvKDEwMCx0LG4pOnRoaXN9LHRoaXMuZmFkZU91dD1mdW5jdGlvbih0LG4pe3JldHVybiBsP3RoaXMuZmFkZVRvKDAsdCxuKTp0aGlzfSx0aGlzLmZhZGVXaXRoPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGw/KHRoaXMuZmFkZU91dChuLGZ1bmN0aW9uKCl7dGhpcy5zdG9wKCl9KSx0LnBsYXkoKS5mYWRlSW4obiksdGhpcyk6dGhpc30sdGhpcy53aGVuUmVhZHk9ZnVuY3Rpb24odCl7aWYoIWwpcmV0dXJuIG51bGw7dmFyIG49dGhpczswPT09dGhpcy5zb3VuZC5yZWFkeVN0YXRlP3RoaXMuYmluZCgiY2FucGxheS5idXp6d2hlbnJlYWR5IixmdW5jdGlvbigpe3QuY2FsbChuKX0pOnQuY2FsbChuKX0sbCYmbil7Zm9yKHZhciBkIGluIHQuZGVmYXVsdHMpdC5kZWZhdWx0cy5oYXNPd25Qcm9wZXJ0eShkKSYmKGVbZF09ZVtkXXx8dC5kZWZhdWx0c1tkXSk7aWYodGhpcy5zb3VuZD1yLmNyZWF0ZUVsZW1lbnQoImF1ZGlvIiksbiBpbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgYyBpbiBuKW4uaGFzT3duUHJvcGVydHkoYykmJnModGhpcy5zb3VuZCxuW2NdKTtlbHNlIGlmKGUuZm9ybWF0cy5sZW5ndGgpZm9yKHZhciBmIGluIGUuZm9ybWF0cyllLmZvcm1hdHMuaGFzT3duUHJvcGVydHkoZikmJnModGhpcy5zb3VuZCxuKyIuIitlLmZvcm1hdHNbZl0pO2Vsc2Ugcyh0aGlzLnNvdW5kLG4pO2UubG9vcCYmdGhpcy5sb29wKCksZS5hdXRvcGxheSYmKHRoaXMuc291bmQuYXV0b3BsYXk9ImF1dG9wbGF5IiksdGhpcy5zb3VuZC5wcmVsb2FkPWUucHJlbG9hZD09PSEwPyJhdXRvIjplLnByZWxvYWQ9PT0hMT8ibm9uZSI6ZS5wcmVsb2FkLHRoaXMuc2V0Vm9sdW1lKGUudm9sdW1lKSx0LnNvdW5kcy5wdXNoKHRoaXMpfX0sZ3JvdXA6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgbj1lKG51bGwsYXJndW1lbnRzKSxpPW4uc2hpZnQoKSx1PTA7dC5sZW5ndGg+dTt1KyspdFt1XVtpXS5hcHBseSh0W3VdLG4pfWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gdCBpbnN0YW5jZW9mIEFycmF5P3Q6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobil9dD1lKHQsYXJndW1lbnRzKSx0aGlzLmdldFNvdW5kcz1mdW5jdGlvbigpe3JldHVybiB0fSx0aGlzLmFkZD1mdW5jdGlvbihuKXtuPWUobixhcmd1bWVudHMpO2Zvcih2YXIgaT0wO24ubGVuZ3RoPmk7aSsrKXQucHVzaChuW2ldKX0sdGhpcy5yZW1vdmU9ZnVuY3Rpb24obil7bj1lKG4sYXJndW1lbnRzKTtmb3IodmFyIGk9MDtuLmxlbmd0aD5pO2krKylmb3IodmFyIHU9MDt0Lmxlbmd0aD51O3UrKylpZih0W3VdPT1uW2ldKXt0LnNwbGljZSh1LDEpO2JyZWFrfX0sdGhpcy5sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIG4oImxvYWQiKSx0aGlzfSx0aGlzLnBsYXk9ZnVuY3Rpb24oKXtyZXR1cm4gbigicGxheSIpLHRoaXN9LHRoaXMudG9nZ2xlUGxheT1mdW5jdGlvbigpe3JldHVybiBuKCJ0b2dnbGVQbGF5IiksdGhpc30sdGhpcy5wYXVzZT1mdW5jdGlvbih0KXtyZXR1cm4gbigicGF1c2UiLHQpLHRoaXN9LHRoaXMuc3RvcD1mdW5jdGlvbigpe3JldHVybiBuKCJzdG9wIiksdGhpc30sdGhpcy5tdXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG4oIm11dGUiKSx0aGlzfSx0aGlzLnVubXV0ZT1mdW5jdGlvbigpe3JldHVybiBuKCJ1bm11dGUiKSx0aGlzfSx0aGlzLnRvZ2dsZU11dGU9ZnVuY3Rpb24oKXtyZXR1cm4gbigidG9nZ2xlTXV0ZSIpLHRoaXN9LHRoaXMuc2V0Vm9sdW1lPWZ1bmN0aW9uKHQpe3JldHVybiBuKCJzZXRWb2x1bWUiLHQpLHRoaXN9LHRoaXMuaW5jcmVhc2VWb2x1bWU9ZnVuY3Rpb24odCl7cmV0dXJuIG4oImluY3JlYXNlVm9sdW1lIix0KSx0aGlzfSx0aGlzLmRlY3JlYXNlVm9sdW1lPWZ1bmN0aW9uKHQpe3JldHVybiBuKCJkZWNyZWFzZVZvbHVtZSIsdCksdGhpc30sdGhpcy5sb29wPWZ1bmN0aW9uKCl7cmV0dXJuIG4oImxvb3AiKSx0aGlzfSx0aGlzLnVubG9vcD1mdW5jdGlvbigpe3JldHVybiBuKCJ1bmxvb3AiKSx0aGlzfSx0aGlzLnNldFRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIG4oInNldFRpbWUiLHQpLHRoaXN9LHRoaXMuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oInNldCIsdCxlKSx0aGlzfSx0aGlzLmJpbmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiYmluZCIsdCxlKSx0aGlzfSx0aGlzLnVuYmluZD1mdW5jdGlvbih0KXtyZXR1cm4gbigidW5iaW5kIix0KSx0aGlzfSx0aGlzLmJpbmRPbmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImJpbmRPbmNlIix0LGUpLHRoaXN9LHRoaXMudHJpZ2dlcj1mdW5jdGlvbih0KXtyZXR1cm4gbigidHJpZ2dlciIsdCksdGhpc30sdGhpcy5mYWRlPWZ1bmN0aW9uKHQsZSxpLHUpe3JldHVybiBuKCJmYWRlIix0LGUsaSx1KSx0aGlzfSx0aGlzLmZhZGVJbj1mdW5jdGlvbih0LGUpe3JldHVybiBuKCJmYWRlSW4iLHQsZSksdGhpc30sdGhpcy5mYWRlT3V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImZhZGVPdXQiLHQsZSksdGhpc319LGFsbDpmdW5jdGlvbigpe3JldHVybiBuZXcgdC5ncm91cCh0LnNvdW5kcyl9LGlzU3VwcG9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuISF0LmVsLmNhblBsYXlUeXBlfSxpc09HR1N1cHBvcnRlZDpmdW5jdGlvbigpe3JldHVybiEhdC5lbC5jYW5QbGF5VHlwZSYmdC5lbC5jYW5QbGF5VHlwZSgnYXVkaW8vb2dnOyBjb2RlY3M9InZvcmJpcyInKX0saXNXQVZTdXBwb3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXQuZWwuY2FuUGxheVR5cGUmJnQuZWwuY2FuUGxheVR5cGUoJ2F1ZGlvL3dhdjsgY29kZWNzPSIxIicpfSxpc01QM1N1cHBvcnRlZDpmdW5jdGlvbigpe3JldHVybiEhdC5lbC5jYW5QbGF5VHlwZSYmdC5lbC5jYW5QbGF5VHlwZSgiYXVkaW8vbXBlZzsiKX0saXNBQUNTdXBwb3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXQuZWwuY2FuUGxheVR5cGUmJih0LmVsLmNhblBsYXlUeXBlKCJhdWRpby94LW00YTsiKXx8dC5lbC5jYW5QbGF5VHlwZSgiYXVkaW8vYWFjOyIpKX0sdG9UaW1lcjpmdW5jdGlvbih0LG4pe3ZhciBlLGksdTtyZXR1cm4gZT1NYXRoLmZsb29yKHQvMzYwMCksZT1pc05hTihlKT8iLS0iOmU+PTEwP2U6IjAiK2UsaT1uP01hdGguZmxvb3IodC82MCU2MCk6TWF0aC5mbG9vcih0LzYwKSxpPWlzTmFOKGkpPyItLSI6aT49MTA/aToiMCIraSx1PU1hdGguZmxvb3IodCU2MCksdT1pc05hTih1KT8iLS0iOnU+PTEwP3U6IjAiK3Usbj9lKyI6IitpKyI6Iit1OmkrIjoiK3V9LGZyb21UaW1lcjpmdW5jdGlvbih0KXt2YXIgbj0oIiIrdCkuc3BsaXQoIjoiKTtyZXR1cm4gbiYmMz09bi5sZW5ndGgmJih0PTM2MDAqcGFyc2VJbnQoblswXSwxMCkrNjAqcGFyc2VJbnQoblsxXSwxMCkrcGFyc2VJbnQoblsyXSwxMCkpLG4mJjI9PW4ubGVuZ3RoJiYodD02MCpwYXJzZUludChuWzBdLDEwKStwYXJzZUludChuWzFdLDEwKSksdH0sdG9QZXJjZW50OmZ1bmN0aW9uKHQsbixlKXt2YXIgaT1NYXRoLnBvdygxMCxlfHwwKTtyZXR1cm4gTWF0aC5yb3VuZCgxMDAqdC9uKmkpL2l9LGZyb21QZXJjZW50OmZ1bmN0aW9uKHQsbixlKXt2YXIgaT1NYXRoLnBvdygxMCxlfHwwKTtyZXR1cm4gTWF0aC5yb3VuZChuLzEwMCp0KmkpL2l9fTtyZXR1cm4gdH0pOw=="
}
]
},
{
"type": 12,
"id": "2MRy693EvWZ9Jzbun6KXt3rFJVf1fqwBgauVmqcvnHWC",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302151685,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"4hNFfmGmAd4VUaFzCDnYmp4tm3rw1VPPqm1NghkYEHRKLohjfc9QYm3V9CjXMbyBjQA8ShZP4q3xc1DcbaENnuw"
],
"data": [
{
"key": "main.js_0",
"type": "binary",
"value": "base64:LyoNCiAgIENvcHlyaWdodCAyMDE0IE5lYmV6IEJyaWVma2FuaQ0KICAgZmxvcHB5YmlyZCAtIG1haW4uanMNCg0KICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCg0KICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCiovDQoNCnZhciBkZWJ1Z21vZGUgPSBmYWxzZTsNCg0KdmFyIHN0YXRlcyA9IE9iamVjdC5mcmVlemUoew0KICAgU3BsYXNoU2NyZWVuOiAwLA0KICAgR2FtZVNjcmVlbjogMSwNCiAgIFNjb3JlU2NyZWVuOiAyDQp9KTsNCg0KdmFyIGN1cnJlbnRzdGF0ZTsNCg0KdmFyIGdyYXZpdHkgPSAwLjI1Ow0KdmFyIHZlbG9jaXR5ID0gMDsNCnZhciBwb3NpdGlvbiA9IDE4MDsNCnZhciByb3RhdGlvbiA9IDA7DQp2YXIganVtcCA9IC00LjY7DQp2YXIgZmx5QXJlYSA9ICQoIiNmbHlhcmVhIikuaGVpZ2h0KCk7DQoNCnZhciBzY29yZSA9IDA7DQp2YXIgaGlnaHNjb3JlID0gMDsNCg0KdmFyIHBpcGVoZWlnaHQgPSA5MDsNCnZhciBwaXBld2lkdGggPSA1MjsNCnZhciBwaXBlcyA9IG5ldyBBcnJheSgpOw0KDQp2YXIgcmVwbGF5Y2xpY2thYmxlID0gZmFsc2U7DQoNCi8vc291bmRzDQp2YXIgdm9sdW1lID0gMzA7DQp2YXIgc291bmRKdW1wID0gbmV3IGJ1enouc291bmQoImh0dHBzOi8vbm9kZXMtdGVzdG5ldC53YXZlc25vZGVzLmNvbS9hZGRyZXNzZXMvZGF0YS93ZWIlMkJkJTNBJTJGJTJGM01zUzNvRFh4cURKMnZtemN2QlFlUUxrVGhtTW11b2pONzQlMkZzZnhfd2luZy5vZ2dfY291bnQiKTsNCnZhciBzb3VuZFNjb3JlID0gbmV3IGJ1enouc291bmQoImh0dHBzOi8vbm9kZXMtdGVzdG5ldC53YXZlc25vZGVzLmNvbS9hZGRyZXNzZXMvZGF0YS93ZWIlMkJkJTNBJTJGJTJGM01zUzNvRFh4cURKMnZtemN2QlFlUUxrVGhtTW11b2pONzQlMkZzZnhfcG9pbnQub2dnX2NvdW50Iik7DQp2YXIgc291bmRIaXQgPSBuZXcgYnV6ei5zb3VuZCgiaHR0cHM6Ly9ub2Rlcy10ZXN0bmV0LndhdmVzbm9kZXMuY29tL2FkZHJlc3Nlcy9kYXRhL3dlYiUyQmQlM0ElMkYlMkYzTXNTM29EWHhxREoydm16Y3ZCUWVRTGtUaG1NbXVvak43NCUyRnNmeF9oaXQub2dnX2NvdW50Iik7DQp2YXIgc291bmREaWUgPSBuZXcgYnV6ei5zb3VuZCgiaHR0cHM6Ly9ub2Rlcy10ZXN0bmV0LndhdmVzbm9kZXMuY29tL2FkZHJlc3Nlcy9kYXRhL3dlYiUyQmQlM0ElMkYlMkYzTXNTM29EWHhxREoydm16Y3ZCUWVRTGtUaG1NbXVvak43NCUyRnNmeF9kaWUub2dnX2NvdW50Iik7DQp2YXIgc291bmRTd29vc2ggPSBuZXcgYnV6ei5zb3VuZCgiaHR0cHM6Ly9ub2Rlcy10ZXN0bmV0LndhdmVzbm9kZXMuY29tL2FkZHJlc3Nlcy9kYXRhL3dlYiUyQmQlM0ElMkYlMkYzTXNTM29EWHhxREoydm16Y3ZCUWVRTGtUaG1NbXVvak43NCUyRnNmeF9zd29vc2hpbmcub2dnX2NvdW50Iik7DQpidXp6LmFsbCgpLnNldFZvbHVtZSh2b2x1bWUpOw0KDQovL2xvb3BzDQp2YXIgbG9vcEdhbWVsb29wOw0KdmFyIGxvb3BQaXBlbG9vcDsNCg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICBpZih3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICI/ZGVidWciKQ0KICAgICAgZGVidWdtb2RlID0gdHJ1ZTsNCiAgIGlmKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIj9lYXN5IikNCiAgICAgIHBpcGVoZWlnaHQgPSAyMDA7DQogICANCiAgIC8vZ2V0IHRoZSBoaWdoc2NvcmUNCiAgIHZhciBzYXZlZHNjb3JlID0gZ2V0Q29va2llKCJoaWdoc2NvcmUiKTsNCiAgIGlmKHNhdmVkc2NvcmUgIT0gIiIpDQogICAgICBoaWdoc2NvcmUgPSBwYXJzZUludChzYXZlZHNjb3JlKTsNCiAgIA0KICAgLy9zdGFydCB3aXRoIHRoZSBzcGxhc2ggc2NyZWVuDQogICBzaG93U3BsYXNoKCk7DQp9KTsNCg0KZnVuY3Rpb24gZ2V0Q29va2llKGNuYW1lKQ0Kew0KICAgdmFyIG5hbWUgPSBjbmFtZSArICI9IjsNCiAgIHZhciBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOw0KICAgZm9yKHZhciBpPTA7IGk8Y2EubGVuZ3RoOyBpKyspIA0KICAgew0KICAgICAgdmFyIGMgPSBjYVtpXS50cmltKCk7DQogICAgICBpZiAoYy5pbmRleE9mKG5hbWUpPT0wKSByZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsYy5sZW5ndGgpOw0KICAgfQ0KICAgcmV0dXJuICIiOw0KfQ0KDQpmdW5jdGlvbiBzZXRDb29raWUoY25hbWUsY3ZhbHVlLGV4ZGF5cykNCnsNCiAgIHZhciBkID0gbmV3IERhdGUoKTsNCiAgIGQuc2V0VGltZShkLmdldFRpbWUoKSsoZXhkYXlzKjI0KjYwKjYwKjEwMDApKTsNCiAgIHZhciBleHBpcmVzID0gImV4cGlyZXM9IitkLnRvR01UU3RyaW5nKCk7DQogICBkb2N1bWVudC5jb29raWUgPSBjbmFtZSArICI9IiArIGN2YWx1ZSArICI7ICIgKyBleHBpcmVzOw0KfQ0KDQpmdW5jdGlvbiBzaG93U3BsYXNoKCkNCnsNCiAgIGN1cnJlbnRzdGF0ZSA9IHN0YXRlcy5TcGxhc2hTY3JlZW47DQogICANCiAgIC8vc2V0IHRoZSBkZWZhdWx0cyAoYWdhaW4pDQogICB2ZWxvY2l0eSA9IDA7DQogICBwb3NpdGlvbiA9IDE4MDsNCiAgIHJvdGF0aW9uID0gMDsNCiAgIHNjb3JlID0gMDsNCiAgIA0KICAgLy91cGRhdGUgdGhlIHBsYXllciBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIG5leHQgZ2FtZQ0KICAgJCgiI3BsYXllciIpLmNzcyh7IHk6IDAsIHg6IDB9KTsNCiAgIHVwZGF0ZVBsYXllcigkKCIjcGxheWVyIikpOw0KICAgDQogICBzb3VuZFN3b29zaC5zdG9wKCk7DQogICBzb3VuZFN3b29zaC5wbGF5KCk7DQogICANCiAgIC8vY2xlYXIgb3V0IGFsbCB0aGUgcGlwZXMgaWYgdGhlcmUgYXJlIGFueQ0KICAgJCgiLnBpcGUiKS5yZW1vdmUoKTsNCiAgIHBpcGVzID0gbmV3IEFycmF5KCk7DQogICANCiAgIC8vbWFrZSBldmVyeXRoaW5nIGFuaW1hdGVkIGFnYWluDQogICAkKCIuYW5pbWF0ZWQiKS5jc3MoJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJywgJ3J1bm5pbmcnKTsNCiAgICQoIi5hbmltYXRlZCIpLmNzcygnLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZScsICdydW5uaW5nJyk7DQogICANCiAgIC8vZmFkZSBpbiB0aGUgc3BsYXNoDQogICAkKCIjc3BsYXNoIikudHJhbnNpdGlvbih7IG9wYWNpdHk6IDEgfSwgMjAwMCwgJ2Vhc2UnKTsNCn0NCg0KZnVuY3Rpb24gc3RhcnRHYW1lKCkNCnsNCiAgIGN1cnJlbnRzdGF0ZSA9IHN0YXRlcy5HYW1lU2NyZWVuOw0KICAgDQogICAvL2ZhZGUgb3V0IHRoZSBzcGxhc2gNCiAgICQoIiNzcGxhc2giKS5zdG9wKCk7DQogICAkKCIjc3BsYXNoIikudHJhbnNpdGlvbih7IG9wYWNpdHk6IDAgfSwgNTAwLCAnZWFzZScpOw0KICAgDQogICAvL3VwZGF0ZSB0aGUgYmlnIHNjb3JlDQogICBzZXRCaWdTY29yZSgpOw0KICAgDQogICAvL2RlYnVnIG1vZGU/DQogICBpZihkZWJ1Z21vZGUpDQogICB7DQogICAgICAvL3Nob3cgdGhlIGJvdW5kaW5nIGJveGVzDQogICAgICAkKCIuYm91bmRpbmdib3giKS5zaG93KCk7DQogICB9DQoNCiAgIC8vc3RhcnQgdXAgb3VyIGxvb3BzDQogICB2YXIgdXBkYXRlcmF0ZSA9IDEwMDAuMCAvIDYwLjAgOyAvLzYwIHRpbWVzIGEgc2Vjb25kDQogICBsb29wR2FtZWxvb3AgPSBzZXRJbnRlcnZhbChnYW1lbG9vcCwgdXBkYXRlcmF0ZSk7DQogICBsb29wUGlwZWxvb3AgPSBzZXRJbnRlcnZhbCh1cGRhdGVQaXBlcywgMTQwMCk7DQogICANCiAgIC8vanVtcCBmcm9tIHRoZSBzdGFydCENCiAgIHBsYXllckp1bXAoKTsNCn0NCg0KZnVuY3Rpb24gdXBkYXRlUGxheWVyKHBsYXllcikNCnsNCiAgIC8vcm90YXRpb24NCiAgIHJvdGF0aW9uID0gTWF0aC5taW4oKHZlbG9jaXR5IC8gMTApICogOTAsIDkwKTsNCiAgIA0KICAgLy9hcHBseSByb3RhdGlvbiBhbmQgcG9zaXRpb24NCiAgICQocGxheWVyKS5jc3MoeyByb3RhdGU6IHJvdGF0aW9uLCB0b3A6IHBvc2l0aW9uIH0pOw0KfQ0KDQpmdW5jdGlvbiBnYW1lbG9vcCgpIHsNCiAgIHZhciBwbGF5ZXIgPSAkKCIjcGxheWVyIik7DQogICANCiAgIC8vdXBkYXRlIHRoZSBwbGF5ZXIgc3BlZWQvcG9zaXRpb24NCiAgIHZlbG9jaXR5ICs9IGdyYXZpdHk7DQogICBwb3NpdGlvbiArPSB2ZWxvY2l0eTsNCiAgIA0KICAgLy91cGRhdGUgdGhlIHBsYXllcg0KICAgdXBkYXRlUGxheWVyKHBsYXllcik7DQogICANCiAgIC8vY3JlYXRlIHRoZSBib3VuZGluZyBib3gNCiAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxheWVyJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICB2YXIgb3JpZ3dpZHRoID0gMzQuMDsNCiAgIHZhciBvcmlnaGVpZ2h0ID0gMjQuMDsNCiAgIA0KICAgdmFyIGJveHdpZHRoID0gb3JpZ3dpZHRoIC0gKE1hdGguc2luKE1hdGguYWJzKHJvdGF0aW9uKSAvIDkwKSAqIDgpOw0KICAgdmFyIGJveGhlaWdodCA9IChvcmlnaGVpZ2h0ICsgYm94LmhlaWdodCkgLyAyOw0KICAgdmFyIGJveGxlZnQgPSAoKGJveC53aWR0aCAtIGJveHdpZHRoKSAvIDIpICsgYm94LmxlZnQ7DQogICB2YXIgYm94dG9wID0gKChib3guaGVpZ2h0IC0gYm94aGVpZ2h0KSAvIDIpICsgYm94LnRvcDsNCiAgIHZhciBib3hyaWdodCA9IGJveGxlZnQgKyBib3h3aWR0aDsNCiAgIHZhciBib3hib3R0b20gPSBib3h0b3AgKyBib3hoZWlnaHQ7DQogICANCiAgIC8vaWYgd2UncmUgaW4gZGVidWcgbW9kZSwgZHJhdyB0aGUgYm91bmRpbmcgYm94DQogICBpZihkZWJ1Z21vZGUpDQogICB7DQogICAgICB2YXIgYm91bmRpbmdib3ggPSAkKCIjcGxheWVyYm94Iik7DQogICAgICBib3VuZGluZ2JveC5jc3MoJ2xlZnQnLCBib3hsZWZ0KTsNCiAgICAgIGJvdW5kaW5nYm94LmNzcygndG9wJywgYm94dG9wKTsNCiAgICAgIGJvdW5kaW5nYm94LmNzcygnaGVpZ2h0JywgYm94aGVpZ2h0KTsNCiAgICAgIGJvdW5kaW5nYm94LmNzcygnd2lkdGgnLCBib3h3aWR0aCk7DQogICB9DQogICANCiAgIC8vZGlkIHdlIGhpdCB0aGUgZ3JvdW5kPw0KICAgaWYoYm94LmJvdHRvbSA+PSAkKCIjbGFuZCIpLm9mZnNldCgpLnRvcCkNCiAgIHsNCiAgICAgIHBsYXllckRlYWQoKTsNCiAgICAgIHJldHVybjsNCiAgIH0NCiAgIA0KICAgLy9oYXZlIHRoZXkgdHJpZWQgdG8gZXNjYXBlIHRocm91Z2ggdGhlIGNlaWxpbmc/IDpvDQogICB2YXIgY2VpbGluZyA9ICQoIiNjZWlsaW5nIik7DQogICBpZihib3h0b3AgPD0gKGNlaWxpbmcub2Zmc2V0KCkudG9wICsgY2VpbGluZy5oZWlnaHQoKSkpDQogICAgICBwb3NpdGlvbiA9IDA7DQogICANCiAgIC8vd2UgY2FuJ3QgZ28gYW55IGZ1cnRoZXIgd2l0aG91dCBhIHBpcGUNCiAgIGlmKHBpcGVzWzBdID09IG51bGwpDQogICAgICByZXR1cm47DQogICANCiAgIC8vZGV0ZXJtaW5lIHRoZSBib3VuZGluZyBib3ggb2YgdGhlIG5leHQgcGlwZXMgaW5uZXIgYXJlYQ0KICAgdmFyIG5leHRwaXBlID0gcGlwZXNbMF07DQogICB2YXIgbmV4dHBpcGV1cHBlciA9IG5leHRwaXBlLmNoaWxkcmVuKCIucGlwZV91cHBlciIpOw0KICAgDQogICB2YXIgcGlwZXRvcCA9IG5leHRwaXBldXBwZXIub2Zmc2V0KCkudG9wICsgbmV4dHBpcGV1cHBlci5oZWlnaHQoKTsNCiAgIHZhciBwaXBlbGVmdCA9IG5leHRwaXBldXBwZXIub2Zmc2V0KCkubGVmdCAtIDI7IC8vIGZvciBzb21lIHJlYXNvbiBpdCBzdGFydHMgYXQgdGhlIGlubmVyIHBpcGVzIG9mZnNldCwgbm90IHRoZSBvdXRlciBwaXBlcy4NCiAgIHZhciBwaXBlcmlnaHQgPSBwaXBlbGVmdCArIHBpcGV3aWR0aDsNCiAgIHZhciBwaXBlYm90dG9tID0gcGlwZXRvcCArIHBpcGVoZWlnaHQ7DQogICANCiAgIGlmKGRlYnVnbW9kZSkNCiAgIHsNCiAgICAgIHZhciBib3VuZGluZ2JveCA9ICQoIiNwaXBlYm94Iik7DQogICAgICBib3VuZGluZ2JveC5jc3MoJ2xlZnQnLCBwaXBlbGVmdCk7DQogICAgICBib3VuZGluZ2JveC5jc3MoJ3RvcCcsIHBpcGV0b3ApOw0KICAgICAgYm91bmRpbmdib3guY3NzKCdoZWlnaHQnLCBwaXBlaGVpZ2h0KTsNCiAgICAgIGJvdW5kaW5nYm94LmNzcygnd2lkdGgnLCBwaXBld2lkdGgpOw0KICAgfQ0KICAgDQogICAvL2hhdmUgd2UgZ290dGVuIGluc2lkZSB0aGUgcGlwZSB5ZXQ/DQogICBpZihib3hyaWdodCA+IHBpcGVsZWZ0KQ0KICAgew0KICAgICAgLy93ZSdyZSB3aXRoaW4gdGhlIHBpcGUsIGhhdmUgd2UgcGFzc2VkIGJldHdlZW4gdXBwZXIgYW5kIGxvd2VyIHBpcGVzPw0KICAgICAgaWYoYm94dG9wID4gcGlwZXRvcCAmJiBib3hib3R0b20gPCBwaXBlYm90dG9tKQ0KICAgICAgew0KICAgICAgICAgLy95ZWFoISB3ZSdyZSB3aXRoaW4gYm91bmRzDQogICAgICAgICANCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgIC8vbm8hIHdlIHRvdWNoZWQgdGhlIHBpcGUNCiAgICAgICAgIHBsYXllckRlYWQoKTsNCiAgICAgICAgIHJldHVybjsNCiAgICAgIH0NCiAgIH0NCiAgIA0KICAgDQogICAvL2hhdmUgd2UgcGFzc2VkIHRoZSBpbW1pbmVudCBkYW5nZXI/DQogICBpZihib3hsZWZ0ID4gcGlwZXJpZ2h0KQ0KICAgew0KICAgICAgLy95ZXMsIHJlbW92ZSBpdA0KICAgICAgcGlwZXMuc3BsaWNlKDAsIDEpOw0KICAgICAgDQogICAgICAvL2FuZCBzY29yZSBhIHBvaW50DQogICAgICBwbGF5ZXJTY29yZSgpOw0KICAgfQ0KfQ0KDQovL0hhbmRsZSBzcGFjZSBiYXINCiQoZG9jdW1lbnQpLmtleWRvd24oZnVuY3Rpb24oZSl7DQogICAvL3NwYWNlIGJhciENCiAgIGlmKGUua2V5Q29kZSA9PSAzMikNCiAgIHsNCiAgICAgIC8vaW4gU2NvcmVTY3JlZW4sIGhpdHRpbmcgc3BhY2Ugc2hvdWxkIGNsaWNrIHRoZSAicmVwbGF5IiBidXR0b24uIGVsc2UgaXQncyBqdXN0IGEgcmVndWxhciBzcGFjZWJhciBoaXQNCiAgICAgIGlmKGN1cnJlbnRzdGF0ZSA9PSBzdGF0ZXMuU2NvcmVTY3JlZW4pDQogICAgICAgICAkKCIjcmVwbGF5IikuY2xpY2soKTsNCiAgICAgIGVsc2UNCiAgICAgICAgIHNjcmVlbkNsaWNrKCk7DQogICB9DQp9KTsNCg0KLy9IYW5kbGUgbW91c2UgZG93biBPUiB0b3VjaCBzdGFydA0KaWYoIm9udG91Y2hzdGFydCIgaW4gd2luZG93KQ0KICAgJChkb2N1bWVudCkub24oInRvdWNoc3RhcnQiLCBzY3JlZW5DbGljayk7DQplbHNlDQogICAkKGRvY3VtZW50KS5vbigibW91c2Vkb3duIiwgc2NyZWVuQ2xpY2spOw0KDQpmdW5jdGlvbiBzY3JlZW5DbGljaygpDQp7DQogICBpZihjdXJyZW50c3RhdGUgPT0gc3RhdGVzLkdhbWVTY3JlZW4pDQogICB7DQogICAgICBwbGF5ZXJKdW1wKCk7DQogICB9DQogICBlbHNlIGlmKGN1cnJlbnRzdGF0ZSA9PSBzdGF0ZXMuU3BsYXNoU2NyZWVuKQ0KICAgew0KICAgICAgc3RhcnRHYW1lKCk7DQogICB9DQp9DQoNCmZ1bmN0aW9uIHBsYXllckp1bXAoKQ0Kew0KICAgdmVsb2NpdHkgPSBqdW1wOw0KICAgLy9wbGF5IGp1bXAgc291bmQNCiAgIHNvdW5kSnVtcC5zdG9wKCk7DQogICBzb3VuZEp1bXAucGxheSgpOw0KfQ0KDQpmdW5jdGlvbiBzZXRCaWdTY29yZShlcmFzZSkNCnsNCiAgIHZhciBlbGVtc2NvcmUgPSAkKCIjYmlnc2NvcmUiKTsNCiAgIGVsZW1zY29yZS5lbXB0eSgpOw0KICAgDQogICBpZihlcmFzZSkNCiAgICAgIHJldHVybjsNCiAgIA0KICAgdmFyIGRpZ2l0cyA9IHNjb3JlLnRvU3RyaW5nKCkuc3BsaXQoJycpOw0KICAgZm9yKHZhciBpID0gMDsgaSA8IGRpZ2l0cy5sZW5ndGg7IGkrKykNCiAgICAgIGVsZW1zY29yZS5hcHBlbmQoIjxpbWcgc3JjPSdodHRwczovL25vZGVzLXRlc3RuZXQud2F2ZXNub2Rlcy5jb20vYWRkcmVzc2VzL2RhdGEvd2ViJTJCZCUzQSUyRiUyRjNNc1Mzb0RYeHFESjJ2bXpjdkJRZVFMa1RobU1tdW9qTjc0JTJGZm9udF9iaWdfIiArIGRpZ2l0c1tpXSArICIucG5nX2NvdW50JyBhbHQ9JyIgKyBkaWdpdHNbaV0gKyAiJz4iKTsNCn0NCg0KZnVuY3Rpb24gc2V0U21hbGxTY29yZSgpDQp7DQogICB2YXIgZWxlbXNjb3JlID0gJCgiI2N1cnJlbnRzY29yZSIpOw0KICAgZWxlbXNjb3JlLmVtcHR5KCk7DQogICANCiAgIHZhciBkaWdpdHMgPSBzY29yZS50b1N0cmluZygpLnNwbGl0KCcnKTsNCiAgIGZvcih2YXIgaSA9IDA7IGkgPCBkaWdpdHMubGVuZ3RoOyBpKyspDQogICAgICBlbGVtc2NvcmUuYXBwZW5kKCI8aW1nIHNyYz0naHR0cHM6Ly9ub2Rlcy10ZXN0bmV0LndhdmVzbm9kZXMuY29tL2FkZHJlc3Nlcy9kYXRhL3dlYiUyQmQlM0ElMkYlMkYzTXNTM29EWHhxREoydm16Y3ZCUWVRTGtUaG1NbXVvak43NCUyRmZvbnRfc21hbGxfIiArIGRpZ2l0c1tpXSArICIucG5nX2NvdW50JyBhbHQ9JyIgKyBkaWdpdHNbaV0gKyAiJz4iKTsNCn0NCg0KZnVuY3Rpb24gc2V0SGlnaFNjb3JlKCkNCnsNCiAgIHZhciBlbGVtc2NvcmUgPSAkKCIjaGlnaHNjb3JlIik7DQogICBlbGVtc2NvcmUuZW1wdHkoKTsNCiAgIA0KICAgdmFyIGRpZ2l0cyA9IGhpZ2hzY29yZS50b1N0cmluZygpLnNwbGl0KCcnKTsNCiAgIGZvcih2YXIgaSA9IDA7IGkgPCBkaWdpdHMubGVuZ3RoOyBpKyspDQogICAgICBlbGVtc2NvcmUuYXBwZW5kKCI8aW1nIHNyYz0naHR0cHM6Ly9ub2Rlcy10ZXN0bmV0LndhdmVzbm9kZXMuY29tL2FkZHJlc3Nlcy9kYXRhL3dlYiUyQmQlM0ElMkYlMkYzTXNTM29EWHhxREoydm16Y3ZCUWVRTGtUaG1NbXVvak43NCUyRmZvbnRfc21hbGxfIiArIGRpZ2l0c1tpXSArICIucG5nX2NvdW50JyBhbHQ9JyIgKyBkaWdpdHNbaV0gKyAiJz4iKTsNCn0NCg0KZnVuY3Rpb24gc2V0TWVkYWwoKQ0Kew0KICAgdmFyIGVsZW1tZWRhbCA9ICQoIiNtZWRhbCIpOw0KICAgZWxlbW1lZGFsLmVtcHR5KCk7DQogICANCiAgIGlmKHNjb3JlIDwgMTApDQogICAgICAvL3NpZ25hbCB0aGF0IG5vIG1lZGFsIGhhcyBiZWVuIHdvbg0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgDQogICBpZihzY29yZSA+PSAxMCkNCiAgICAgIG1lZGFsID0gImJyb256ZSI7DQogICBpZihzY29yZSA+PSAyMCkNCiAgICAgIG1lZGFsID0gInNpbHZlciI7DQogICBpZihzY29yZSA+PSAzMCkNCiAgICAgIG1lZGFsID0gImdvbGQiOw0KICAgaWYoc2NvcmUgPj0gNDApDQogICAgICBtZWRhbCA9ICJwbGF0aW51bSI7DQogICANCiAgIGVsZW1tZWRhbC5hcHBlbmQoJzxpbWcgc3JjPSJodHRwczovL25vZGVzLXRlc3RuZXQud2F2ZXNub2Rlcy5jb20vYWRkcmVzc2VzL2RhdGEvd2ViJTJCZCUzQSUyRiUyRjNNc1Mzb0RYeHFESjJ2bXpjdkJRZVFMa1RobU1tdW9qTjc0JTJGbWVkYWxfJyArIG1lZGFsICsnLnBuZ19jb3VudCIgYWx0PSInICsgbWVkYWwgKyciPicpOw0KICAgDQogICAvL3NpZ25hbCB0aGF0IGEgbWVkYWwgaGFzIGJlZW4gd29uDQogICByZXR1cm4gdHJ1ZTsNCn0NCg0KZnVuY3Rpb24gcGxheWVyRGVhZCgpDQp7DQogICAvL3N0b3AgYW5pbWF0aW5nIGV2ZXJ5dGhpbmchDQogICAkKCIuYW5pbWF0ZWQiKS5jc3MoJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJywgJ3BhdXNlZCcpOw0KICAgJCgiLmFuaW1hdGVkIikuY3NzKCctd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlJywgJ3BhdXNlZCcpOw0KICAgDQogICAvL2Ryb3AgdGhlIGJpcmQgdG8gdGhlIGZsb29yDQogICB2YXIgcGxheWVyYm90dG9tID0gJCgiI3BsYXllciIpLnBvc2l0aW9uKCkudG9wICsgJCgiI3BsYXllciIpLndpZHRoKCk7IC8vd2UgdXNlIHdpZHRoIGJlY2F1c2UgaGUnbGwgYmUgcm90YXRlZCA5MCBkZWcNCiAgIHZhciBmbG9vciA9IGZseUFyZWE7DQogICB2YXIgbW92ZXkgPSBNYXRoLm1heCgwLCBmbG9vciAtIHBsYXllcmJvdHRvbSk7DQogICAkKCIjcGxheWVyIikudHJhbnNpdGlvbih7IHk6IG1vdmV5ICsgJ3B4Jywgcm90YXRlOiA5MH0sIDEwMDAsICdlYXNlSW5PdXRDdWJpYycpOw0KICAgDQogICAvL2l0J3MgdGltZSB0byBjaGFuZ2Ugc3RhdGVzLiBhcyBvZiBub3cgd2UncmUgY29uc2lkZXJlZCBTY29yZVNjcmVlbiB0byBkaXNhYmxlIGxlZnQgY2xpY2svZmx5aW5nDQogICBjdXJyZW50c3RhdGUgPSBzdGF0ZXMuU2NvcmVTY3JlZW47DQoNCiAgIC8vZGVzdHJveSBvdXIgZ2FtZWxvb3BzDQogICBjbGVhckludGVydmFsKGxvb3BHYW1lbG9vcCk7DQogICBjbGVhckludGVydmFsKGxvb3BQaXBlbG9vcCk7DQogICBsb29wR2FtZWxvb3AgPSBudWxsOw0KICAgbG9vcFBpcGVsb29wID0gbnVsbDsNCg0KICAgLy9tb2JpbGUgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBidXp6IGJpbmRPbmNlIGV2ZW50DQogICBpZihpc0luY29tcGF0aWJsZS5hbnkoKSkNCiAgIHsNCiAgICAgIC8vc2tpcCByaWdodCB0byBzaG93aW5nIHNjb3JlDQogICAgICBzaG93U2NvcmUoKTsNCiAgIH0NCiAgIGVsc2UNCiAgIHsNCiAgICAgIC8vcGxheSB0aGUgaGl0IHNvdW5kICh0aGVuIHRoZSBkZWFkIHNvdW5kKSBhbmQgdGhlbiBzaG93IHNjb3JlDQogICAgICBzb3VuZEhpdC5wbGF5KCkuYmluZE9uY2UoImVuZGVkIiwgZnVuY3Rpb24oKSB7DQogICAgICAgICBzb3VuZERpZS5wbGF5KCkuYmluZE9uY2UoImVuZGVkIiwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICBzaG93U2NvcmUoKTsNCiAgICAgICAgIH0pOw0KICAgICAgfSk7DQogICB9DQp9DQoNCmZ1bmN0aW9uIHNob3dTY29yZSgpDQp7DQogICAvL3VuaGlkZSB1cw0KICAgJCgiI3Njb3JlYm9hcmQiKS5jc3MoImRpc3BsYXkiLCAiYmxvY2siKTsNCiAgIA0KICAgLy9yZW1vdmUgdGhlIGJpZyBzY29yZQ0KICAgc2V0QmlnU2NvcmUodHJ1ZSk7DQogICANCiAgIC8vaGF2ZSB0aGV5IGJlYXRlbiB0aGVpciBoaWdoIHNjb3JlPw0KICAgaWYoc2NvcmUgPiBoaWdoc2NvcmUpDQogICB7DQogICAgICAvL3llYWghDQogICAgICBoaWdoc2NvcmUgPSBzY29yZTsNCiAgICAgIC8vc2F2ZSBpdCENCiAgICAgIHNldENvb2tpZSgiaGlnaHNjb3JlIiwgaGlnaHNjb3JlLCA5OTkpOw0KICAgfQ0KICAgDQogICAvL3VwZGF0ZSB0aGUgc2NvcmVib2FyZA0KICAgc2V0U21hbGxTY29yZSgpOw0KICAgc2V0SGlnaFNjb3JlKCk7DQogICB2YXIgd29ubWVkYWwgPSBzZXRNZWRhbCgpOw0KICAgDQogICAvL1NXT09TSCENCiAgIHNvdW5kU3dvb3NoLnN0b3AoKTsNCiAgIHNvdW5kU3dvb3NoLnBsYXkoKTsNCiAgIA0KICAgLy9zaG93IHRoZSBzY29yZWJvYXJkDQogICAkKCIjc2NvcmVib2FyZCIpLmNzcyh7IHk6ICc0MHB4Jywgb3BhY2l0eTogMCB9KTsgLy9tb3ZlIGl0IGRvd24gc28gd2UgY2FuIHNsaWRlIGl0IHVwDQogICAkKCIjcmVwbGF5IikuY3NzKHsgeTogJzQwcHgnLCBvcGFjaXR5OiAwIH0pOw0KICAgJCgiI3Njb3JlYm9hcmQiKS50cmFuc2l0aW9uKHsgeTogJzBweCcsIG9wYWNpdHk6IDF9LCA2MDAsICdlYXNlJywgZnVuY3Rpb24oKSB7DQogICAgICAvL1doZW4gdGhlIGFuaW1hdGlvbiBpcyBkb25lLCBhbmltYXRlIGluIHRoZSByZXBsYXkgYnV0dG9uIGFuZCBTV09PU0ghDQogICAgICBzb3VuZFN3b29zaC5zdG9wKCk7DQogICAgICBzb3VuZFN3b29zaC5wbGF5KCk7DQogICAgICAkKCIjcmVwbGF5IikudHJhbnNpdGlvbih7IHk6ICcwcHgnLCBvcGFjaXR5OiAxfSwgNjAwLCAnZWFzZScpOw0KICAgICAgDQogICAgICAvL2Fsc28gYW5pbWF0ZSBpbiB0aGUgTUVEQUwhIFdPTyENCiAgICAgIGlmKHdvbm1lZGFsKQ0KICAgICAgew0KICAgICAgICAgJCgiI21lZGFsIikuY3NzKHsgc2NhbGU6IDIsIG9wYWNpdHk6IDAgfSk7DQogICAgICAgICAkKCIjbWVkYWwiKS50cmFuc2l0aW9uKHsgb3BhY2l0eTogMSwgc2NhbGU6IDEgfSwgMTIwMCwgJ2Vhc2UnKTsNCiAgICAgIH0NCiAgIH0pOw0KICAgDQogICAvL21ha2UgdGhlIHJlcGxheSBidXR0b24gY2xpY2thYmxlDQogICByZXBsYXljbGlja2FibGUgPSB0cnVlOw0KDQogICAvLyBHcmFzc1IwMHQ6IGFkZGVkIGZvciBjb21tdW5pY2F0aW5nIHRoZSBzY29yZS4NCiAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdncmFzc1Jvb3QuZ2FtZUVuZGVkJywge2RldGFpbDogeyBzY29yZTogc2NvcmUgfSB9KSk7DQp9DQoNCiQoIiNyZXBsYXkiKS5jbGljayhmdW5jdGlvbigpIHsNCiAgIC8vbWFrZSBzdXJlIHdlIGNhbiBvbmx5IGNsaWNrIG9uY2UNCiAgIGlmKCFyZXBsYXljbGlja2FibGUpDQogICAgICByZXR1cm47DQogICBlbHNlDQogICAgICByZXBsYXljbGlja2FibGUgPSBmYWxzZTsNCiAgIC8vU1dPT1NIIQ0KICAgc291bmRTd29vc2guc3RvcCgpOw0KICAgc291bmRTd29vc2gucGxheSgpOw0KICAgDQogICAvL2ZhZGUgb3V0IHRoZSBzY29yZWJvYXJkDQogICAkKCIjc2NvcmVib2FyZCIpLnRyYW5zaXRpb24oeyB5OiAnLTQwcHgnLCBvcGFjaXR5OiAwfSwgMTAwMCwgJ2Vhc2UnLCBmdW5jdGlvbigpIHsNCiAgICAgIC8vd2hlbiB0aGF0J3MgZG9uZSwgZGlzcGxheSB1cyBiYWNrIHRvIG5vdGhpbmcNCiAgICAgICQoIiNzY29yZWJvYXJkIikuY3NzKCJkaXNwbGF5IiwgIm5vbmUiKTsNCiAgICAgIA0KICAgICAgLy9zdGFydCB0aGUgZ2FtZSBvdmVyIQ0KICAgICAgc2hvd1NwbGFzaCgpOw0KICAgfSk7DQp9KTsNCg0KZnVuY3Rpb24gcGxheWVyU2NvcmUoKQ0Kew0KICAgc2NvcmUgKz0gMTsNCiAgIC8vcGxheSBzY29yZSBzb3VuZA0KICAgc291bmRTY29yZS5zdG9wKCk7DQogICBzb3VuZFNjb3JlLnBsYXkoKTsNCiAgIHNldEJpZ1Njb3JlKCk7DQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVBpcGVzKCkNCnsNCiAgIC8vRG8gYW55IHBpcGVzIG5lZWQgcmVtb3ZhbD8NCiAgICQoIi5waXBlIikuZmlsdGVyKGZ1bmN0aW9uKCkgeyByZXR1cm4gJCh0aGlzKS5wb3NpdGlvbigpLmxlZnQgPD0gLTEwMDsgfSkucmVtb3ZlKCkNCiAgIA0KICAgLy9hZGQgYSBuZXcgcGlwZSAodG9wIGhlaWdodCArIGJvdHRvbSBoZWlnaHQgICsgcGlwZWhlaWdodCA9PSBmbHlBcmVhKSBhbmQgcHV0IGl0IGluIG91ciB0cmFja2VyDQogICB2YXIgcGFkZGluZyA9IDgwOw0KICAgdmFyIGNvbnN0cmFpbnQgPSBmbHlBcmVhIC0gcGlwZWhlaWdodCAtIChwYWRkaW5nICogMik7IC8vZG91YmxlIHBhZGRpbmcgKGZvciB0b3AgYW5kIGJvdHRvbSkNCiAgIHZhciB0b3BoZWlnaHQgPSBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpKmNvbnN0cmFpbnQpICsgcGFkZGluZyk7IC8vYWRkIGxvd2VyIHBhZGRpbmcNCiAgIHZhciBib3R0b21oZWlnaHQgPSAoZmx5QXJlYSAtIHBpcGVoZWlnaHQpIC0gdG9waGVpZ2h0Ow0KICAgdmFyIG5ld3BpcGUgPSAkKCc8ZGl2IGNsYXNzPSJwaXBlIGFuaW1hdGVkIj48ZGl2IGNsYXNzPSJwaXBlX3VwcGVyIiBzdHlsZT0iaGVpZ2h0OiAnICsgdG9waGVpZ2h0ICsgJ3B4OyI+PC9kaXY+PGRpdiBjbGFzcz0icGlwZV9sb3dlciIgc3R5bGU9ImhlaWdodDogJyArIGJvdHRvbWhlaWdodCArICdweDsiPjwvZGl2PjwvZGl2PicpOw0KICAgJCgiI2ZseWFyZWEiKS5hcHBlbmQobmV3cGlwZSk7DQogICBwaXBlcy5wdXNoKG5ld3BpcGUpOw0KfQ0KDQp2YXIgaXNJbmNvbXBhdGlibGUgPSB7DQogICBBbmRyb2lkOiBmdW5jdGlvbigpIHsNCiAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkL2kpOw0KICAgfSwNCiAgIEJsYWNrQmVycnk6IGZ1bmN0aW9uKCkgew0KICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0JsYWNrQmVycnkvaSk7DQogICB9LA0KICAgaU9TOiBmdW5jdGlvbigpIHsNCiAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUGhvbmV8aVBhZHxpUG9kL2kpOw0KICAgfSwNCiAgIE9wZXJhOiBmdW5jdGlvbigpIHsNCiAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9PcGVyYSBNaW5pL2kpOw0KICAgfSwNCiAgIFNhZmFyaTogZnVuY3Rpb24oKSB7DQogICByZXR1cm4gKG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL09TIFguKlNhZmFyaS8pICYmICEgbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lLykpOw0KICAgfSwNCiAgIFdpbmRvd3M6IGZ1bmN0aW9uKCkgew0KICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0lFTW9iaWxlL2kpOw0KICAgfSwNCiAgIGFueTogZnVuY3Rpb24oKSB7DQogICByZXR1cm4gKGlzSW5jb21wYXRpYmxlLkFuZHJvaWQoKSB8fCBpc0luY29tcGF0aWJsZS5CbGFja0JlcnJ5KCkgfHwgaXNJbmNvbXBhdGlibGUuaU9TKCkgfHwgaXNJbmNvbXBhdGlibGUuT3BlcmEoKSB8fCBpc0luY29tcGF0aWJsZS5TYWZhcmkoKSB8fCBpc0luY29tcGF0aWJsZS5XaW5kb3dzKCkpOw0KICAgfQ0KfTs="
}
]
},
{
"type": 12,
"id": "968fu7FEHC4zUwrc7ccwtmJTz9S2vQnmGpMKUZFRfY7H",
"fee": 14200000,
"feeAssetId": null,
"timestamp": 1592302151783,
"version": 1,
"sender": "3MtyqKjRwAjEgTuxxdGBA4Y1LX4g4ECMkSW",
"senderPublicKey": "8LtjzAbE86S2Jj9QQLdum8Ay7mz5o4vbmT4ivAXhU9U3",
"proofs": [
"33X9bT7toptTF4smsqe4YYwgKgV8Ew4AnqK2AiY1P6mVrFqJLrZHM63Bw5XWghBcACx8hovDz9Q135Xm8Qofgs3F"
],
"data": [
{
"key": "jquery.min.js_0",
"type": "binary",
"value": "base64:LyohIGpRdWVyeSB2MS4xMC4yIHwgKGMpIDIwMDUsIDIwMTMgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UNCi8vQCBzb3VyY2VNYXBwaW5nVVJMPWpxdWVyeS0xLjEwLjIubWluLm1hcA0KKi8NCihmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT10eXBlb2YgdCxvPWUubG9jYXRpb24sYT1lLmRvY3VtZW50LHM9YS5kb2N1bWVudEVsZW1lbnQsbD1lLmpRdWVyeSx1PWUuJCxjPXt9LHA9W10sZj0iMS4xMC4yIixkPXAuY29uY2F0LGg9cC5wdXNoLGc9cC5zbGljZSxtPXAuaW5kZXhPZix5PWMudG9TdHJpbmcsdj1jLmhhc093blByb3BlcnR5LGI9Zi50cmltLHg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IHguZm4uaW5pdChlLHQscil9LHc9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD0vXFMrL2csQz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csTj0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSopKSQvLGs9L148KFx3KylccypcLz8+KD86PFwvXDE+fCkkLyxFPS9eW1xdLDp7fVxzXSokLyxTPS8oPzpefDp8LCkoPzpccypcWykrL2csQT0vXFwoPzpbIlxcXC9iZm5ydF18dVtcZGEtZkEtRl17NH0pL2csaj0vIlteIlxcXHJcbl0qInx0cnVlfGZhbHNlfG51bGx8LT8oPzpcZCtcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvZyxEPS9eLW1zLS8sTD0vLShbXGRhLXpdKS9naSxIPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0scT1mdW5jdGlvbihlKXsoYS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1lLnR5cGV8fCJjb21wbGV0ZSI9PT1hLnJlYWR5U3RhdGUpJiYoXygpLHgucmVhZHkoKSl9LF89ZnVuY3Rpb24oKXthLmFkZEV2ZW50TGlzdGVuZXI/KGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIscSwhMSksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixxLCExKSk6KGEuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIscSksZS5kZXRhY2hFdmVudCgib25sb2FkIixxKSl9O3guZm49eC5wcm90b3R5cGU9e2pxdWVyeTpmLGNvbnN0cnVjdG9yOngsaW5pdDpmdW5jdGlvbihlLG4scil7dmFyIGksbztpZighZSlyZXR1cm4gdGhpcztpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKGk9IjwiPT09ZS5jaGFyQXQoMCkmJiI+Ij09PWUuY2hhckF0KGUubGVuZ3RoLTEpJiZlLmxlbmd0aD49Mz9bbnVsbCxlLG51bGxdOk4uZXhlYyhlKSwhaXx8IWlbMV0mJm4pcmV0dXJuIW58fG4uanF1ZXJ5PyhufHxyKS5maW5kKGUpOnRoaXMuY29uc3RydWN0b3IobikuZmluZChlKTtpZihpWzFdKXtpZihuPW4gaW5zdGFuY2VvZiB4P25bMF06bix4Lm1lcmdlKHRoaXMseC5wYXJzZUhUTUwoaVsxXSxuJiZuLm5vZGVUeXBlP24ub3duZXJEb2N1bWVudHx8bjphLCEwKSksay50ZXN0KGlbMV0pJiZ4LmlzUGxhaW5PYmplY3QobikpZm9yKGkgaW4gbil4LmlzRnVuY3Rpb24odGhpc1tpXSk/dGhpc1tpXShuW2ldKTp0aGlzLmF0dHIoaSxuW2ldKTtyZXR1cm4gdGhpc31pZihvPWEuZ2V0RWxlbWVudEJ5SWQoaVsyXSksbyYmby5wYXJlbnROb2RlKXtpZihvLmlkIT09aVsyXSlyZXR1cm4gci5maW5kKGUpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1vfXJldHVybiB0aGlzLmNvbnRleHQ9YSx0aGlzLnNlbGVjdG9yPWUsdGhpc31yZXR1cm4gZS5ub2RlVHlwZT8odGhpcy5jb250ZXh0PXRoaXNbMF09ZSx0aGlzLmxlbmd0aD0xLHRoaXMpOnguaXNGdW5jdGlvbihlKT9yLnJlYWR5KGUpOihlLnNlbGVjdG9yIT09dCYmKHRoaXMuc2VsZWN0b3I9ZS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9ZS5jb250ZXh0KSx4Lm1ha2VBcnJheShlLHRoaXMpKX0sc2VsZWN0b3I6IiIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBnLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT90aGlzLnRvQXJyYXkoKTowPmU/dGhpc1t0aGlzLmxlbmd0aCtlXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9eC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHQuY29udGV4dD10aGlzLmNvbnRleHQsdH0sZWFjaDpmdW5jdGlvbihlLHQpe3JldHVybiB4LmVhY2godGhpcyxlLHQpfSxyZWFkeTpmdW5jdGlvbihlKXtyZXR1cm4geC5yZWFkeS5wcm9taXNlKCkuZG9uZShlKSx0aGlzfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubGVuZ3RoLG49K2UrKDA+ZT90OjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhuPj0wJiZ0Pm4/W3RoaXNbbl1dOltdKX0sbWFwOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayh4Lm1hcCh0aGlzLGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuY2FsbCh0LG4sdCl9KSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IobnVsbCl9LHB1c2g6aCxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX0seC5mbi5pbml0LnByb3RvdHlwZT14LmZuLHguZXh0ZW5kPXguZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbyxhLHM9YXJndW1lbnRzWzBdfHx7fSxsPTEsdT1hcmd1bWVudHMubGVuZ3RoLGM9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIHMmJihjPXMscz1hcmd1bWVudHNbMV18fHt9LGw9MiksIm9iamVjdCI9PXR5cGVvZiBzfHx4LmlzRnVuY3Rpb24ocyl8fChzPXt9KSx1PT09bCYmKHM9dGhpcywtLWwpO3U+bDtsKyspaWYobnVsbCE9KG89YXJndW1lbnRzW2xdKSlmb3IoaSBpbiBvKWU9c1tpXSxyPW9baV0scyE9PXImJihjJiZyJiYoeC5pc1BsYWluT2JqZWN0KHIpfHwobj14LmlzQXJyYXkocikpKT8obj8obj0hMSxhPWUmJnguaXNBcnJheShlKT9lOltdKTphPWUmJnguaXNQbGFpbk9iamVjdChlKT9lOnt9LHNbaV09eC5leHRlbmQoYyxhLHIpKTpyIT09dCYmKHNbaV09cikpO3JldHVybiBzfSx4LmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxub0NvbmZsaWN0OmZ1bmN0aW9uKHQpe3JldHVybiBlLiQ9PT14JiYoZS4kPXUpLHQmJmUualF1ZXJ5PT09eCYmKGUualF1ZXJ5PWwpLHh9LGlzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGUpe2U/eC5yZWFkeVdhaXQrKzp4LnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oZSl7aWYoZT09PSEwPyEtLXgucmVhZHlXYWl0OiF4LmlzUmVhZHkpe2lmKCFhLmJvZHkpcmV0dXJuIHNldFRpbWVvdXQoeC5yZWFkeSk7eC5pc1JlYWR5PSEwLGUhPT0hMCYmLS14LnJlYWR5V2FpdD4wfHwobi5yZXNvbHZlV2l0aChhLFt4XSkseC5mbi50cmlnZ2VyJiZ4KGEpLnRyaWdnZXIoInJlYWR5Iikub2ZmKCJyZWFkeSIpKX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09PXgudHlwZShlKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iYXJyYXkiPT09eC50eXBlKGUpfSxpc1dpbmRvdzpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09ZS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihlKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfSx0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9jW3kuY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciBuO2lmKCFlfHwib2JqZWN0IiE9PXgudHlwZShlKXx8ZS5ub2RlVHlwZXx8eC5pc1dpbmRvdyhlKSlyZXR1cm4hMTt0cnl7aWYoZS5jb25zdHJ1Y3RvciYmIXYuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiYhdi5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2gocil7cmV0dXJuITF9aWYoeC5zdXBwb3J0Lm93bkxhc3QpZm9yKG4gaW4gZSlyZXR1cm4gdi5jYWxsKGUsbik7Zm9yKG4gaW4gZSk7cmV0dXJuIG49PT10fHx2LmNhbGwoZSxuKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxlcnJvcjpmdW5jdGlvbihlKXt0aHJvdyBFcnJvcihlKX0scGFyc2VIVE1MOmZ1bmN0aW9uKGUsdCxuKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsOyJib29sZWFuIj09dHlwZW9mIHQmJihuPXQsdD0hMSksdD10fHxhO3ZhciByPWsuZXhlYyhlKSxpPSFuJiZbXTtyZXR1cm4gcj9bdC5jcmVhdGVFbGVtZW50KHJbMV0pXToocj14LmJ1aWxkRnJhZ21lbnQoW2VdLHQsaSksaSYmeChpKS5yZW1vdmUoKSx4Lm1lcmdlKFtdLHIuY2hpbGROb2RlcykpfSxwYXJzZUpTT046ZnVuY3Rpb24obil7cmV0dXJuIGUuSlNPTiYmZS5KU09OLnBhcnNlP2UuSlNPTi5wYXJzZShuKTpudWxsPT09bj9uOiJzdHJpbmciPT10eXBlb2YgbiYmKG49eC50cmltKG4pLG4mJkUudGVzdChuLnJlcGxhY2UoQSwiQCIpLnJlcGxhY2UoaiwiXSIpLnJlcGxhY2UoUywiIikpKT9GdW5jdGlvbigicmV0dXJuICIrbikoKTooeC5lcnJvcigiSW52YWxpZCBKU09OOiAiK24pLHQpfSxwYXJzZVhNTDpmdW5jdGlvbihuKXt2YXIgcixpO2lmKCFufHwic3RyaW5nIiE9dHlwZW9mIG4pcmV0dXJuIG51bGw7dHJ5e2UuRE9NUGFyc2VyPyhpPW5ldyBET01QYXJzZXIscj1pLnBhcnNlRnJvbVN0cmluZyhuLCJ0ZXh0L3htbCIpKToocj1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTERPTSIpLHIuYXN5bmM9ImZhbHNlIixyLmxvYWRYTUwobikpfWNhdGNoKG8pe3I9dH1yZXR1cm4gciYmci5kb2N1bWVudEVsZW1lbnQmJiFyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8eC5lcnJvcigiSW52YWxpZCBYTUw6ICIrbikscn0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbih0KXt0JiZ4LnRyaW0odCkmJihlLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKHQpe2UuZXZhbC5jYWxsKGUsdCl9KSh0KX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoRCwibXMtIikucmVwbGFjZShMLEgpfSxub2RlTmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9MCxvPWUubGVuZ3RoLGE9TShlKTtpZihuKXtpZihhKXtmb3IoO28+aTtpKyspaWYocj10LmFwcGx5KGVbaV0sbikscj09PSExKWJyZWFrfWVsc2UgZm9yKGkgaW4gZSlpZihyPXQuYXBwbHkoZVtpXSxuKSxyPT09ITEpYnJlYWt9ZWxzZSBpZihhKXtmb3IoO28+aTtpKyspaWYocj10LmNhbGwoZVtpXSxpLGVbaV0pLHI9PT0hMSlicmVha31lbHNlIGZvcihpIGluIGUpaWYocj10LmNhbGwoZVtpXSxpLGVbaV0pLHI9PT0hMSlicmVhaztyZXR1cm4gZX0sdHJpbTpiJiYhYi5jYWxsKCJcdWZlZmZcdTAwYTAiKT9mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjpiLmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKEMsIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oZSx0KXt2YXIgbj10fHxbXTtyZXR1cm4gbnVsbCE9ZSYmKE0oT2JqZWN0KGUpKT94Lm1lcmdlKG4sInN0cmluZyI9PXR5cGVvZiBlP1tlXTplKTpoLmNhbGwobixlKSksbn0saW5BcnJheTpmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYodCl7aWYobSlyZXR1cm4gbS5jYWxsKHQsZSxuKTtmb3Iocj10Lmxlbmd0aCxuPW4/MD5uP01hdGgubWF4KDAscituKTpuOjA7cj5uO24rKylpZihuIGluIHQmJnRbbl09PT1lKXJldHVybiBufXJldHVybi0xfSxtZXJnZTpmdW5jdGlvbihlLG4pe3ZhciByPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz0wO2lmKCJudW1iZXIiPT10eXBlb2Ygcilmb3IoO3I+bztvKyspZVtpKytdPW5bb107ZWxzZSB3aGlsZShuW29dIT09dCllW2krK109bltvKytdO3JldHVybiBlLmxlbmd0aD1pLGV9LGdyZXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9W10sbz0wLGE9ZS5sZW5ndGg7Zm9yKG49ISFuO2E+bztvKyspcj0hIXQoZVtvXSxvKSxuIT09ciYmaS5wdXNoKGVbb10pO3JldHVybiBpfSxtYXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9MCxvPWUubGVuZ3RoLGE9TShlKSxzPVtdO2lmKGEpZm9yKDtvPmk7aSsrKXI9dChlW2ldLGksbiksbnVsbCE9ciYmKHNbcy5sZW5ndGhdPXIpO2Vsc2UgZm9yKGkgaW4gZSlyPXQoZVtpXSxpLG4pLG51bGwhPXImJihzW3MubGVuZ3RoXT1yKTtyZXR1cm4gZC5hcHBseShbXSxzKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGUsbil7dmFyIHIsaSxvO3JldHVybiJzdHJpbmciPT10eXBlb2YgbiYmKG89ZVtuXSxuPWUsZT1vKSx4LmlzRnVuY3Rpb24oZSk/KHI9Zy5jYWxsKGFyZ3VtZW50cywyKSxpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnx8dGhpcyxyLmNvbmNhdChnLmNhbGwoYXJndW1lbnRzKSkpfSxpLmd1aWQ9ZS5ndWlkPWUuZ3VpZHx8eC5ndWlkKyssaSk6dH0sYWNjZXNzOmZ1bmN0aW9uKGUsbixyLGksbyxhLHMpe3ZhciBsPTAsdT1lLmxlbmd0aCxjPW51bGw9PXI7aWYoIm9iamVjdCI9PT14LnR5cGUocikpe289ITA7Zm9yKGwgaW4gcil4LmFjY2VzcyhlLG4sbCxyW2xdLCEwLGEscyl9ZWxzZSBpZihpIT09dCYmKG89ITAseC5pc0Z1bmN0aW9uKGkpfHwocz0hMCksYyYmKHM/KG4uY2FsbChlLGkpLG49bnVsbCk6KGM9bixuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gYy5jYWxsKHgoZSksbil9KSksbikpZm9yKDt1Pmw7bCsrKW4oZVtsXSxyLHM/aTppLmNhbGwoZVtsXSxsLG4oZVtsXSxyKSkpO3JldHVybiBvP2U6Yz9uLmNhbGwoZSk6dT9uKGVbMF0scik6YX0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LHN3YXA6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhPXt9O2ZvcihvIGluIHQpYVtvXT1lLnN0eWxlW29dLGUuc3R5bGVbb109dFtvXTtpPW4uYXBwbHkoZSxyfHxbXSk7Zm9yKG8gaW4gdCllLnN0eWxlW29dPWFbb107cmV0dXJuIGl9fSkseC5yZWFkeS5wcm9taXNlPWZ1bmN0aW9uKHQpe2lmKCFuKWlmKG49eC5EZWZlcnJlZCgpLCJjb21wbGV0ZSI9PT1hLnJlYWR5U3RhdGUpc2V0VGltZW91dCh4LnJlYWR5KTtlbHNlIGlmKGEuYWRkRXZlbnRMaXN0ZW5lcilhLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHEsITEpLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIscSwhMSk7ZWxzZXthLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHEpLGUuYXR0YWNoRXZlbnQoIm9ubG9hZCIscSk7dmFyIHI9ITE7dHJ5e3I9bnVsbD09ZS5mcmFtZUVsZW1lbnQmJmEuZG9jdW1lbnRFbGVtZW50fWNhdGNoKGkpe31yJiZyLmRvU2Nyb2xsJiZmdW5jdGlvbiBvKCl7aWYoIXguaXNSZWFkeSl7dHJ5e3IuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChlKXtyZXR1cm4gc2V0VGltZW91dChvLDUwKX1fKCkseC5yZWFkeSgpfX0oKX1yZXR1cm4gbi5wcm9taXNlKHQpfSx4LmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtjWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIE0oZSl7dmFyIHQ9ZS5sZW5ndGgsbj14LnR5cGUoZSk7cmV0dXJuIHguaXNXaW5kb3coZSk/ITE6MT09PWUubm9kZVR5cGUmJnQ/ITA6ImFycmF5Ij09PW58fCJmdW5jdGlvbiIhPT1uJiYoMD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmdD4wJiZ0LTEgaW4gZSl9cj14KGEpLGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLGwsdSxjLHAsZixkLGgsZyxtLHksdixiPSJzaXp6bGUiKy1uZXcgRGF0ZSx3PWUuZG9jdW1lbnQsVD0wLEM9MCxOPXN0KCksaz1zdCgpLEU9c3QoKSxTPSExLEE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQ/KFM9ITAsMCk6MH0saj10eXBlb2YgdCxEPTE8PDMxLEw9e30uaGFzT3duUHJvcGVydHksSD1bXSxxPUgucG9wLF89SC5wdXNoLE09SC5wdXNoLE89SC5zbGljZSxGPUguaW5kZXhPZnx8ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPXRoaXMubGVuZ3RoO2Zvcig7bj50O3QrKylpZih0aGlzW3RdPT09ZSlyZXR1cm4gdDtyZXR1cm4tMX0sQj0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLFA9IltcXHgyMFxcdFxcclxcblxcZl0iLFI9Iig/OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixXPVIucmVwbGFjZSgidyIsIncjIiksJD0iXFxbIitQKyIqKCIrUisiKSIrUCsiKig/OihbKl4kfCF+XT89KSIrUCsiKig/OihbJ1wiXSkoKD86XFxcXC58W15cXFxcXSkqPylcXDN8KCIrVysiKXwpfCkiK1ArIipcXF0iLEk9IjooIitSKyIpKD86XFwoKChbJ1wiXSkoKD86XFxcXC58W15cXFxcXSkqPylcXDN8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IiskLnJlcGxhY2UoMyw4KSsiKSopfC4qKVxcKXwpIix6PVJlZ0V4cCgiXiIrUCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitQKyIrJCIsImciKSxYPVJlZ0V4cCgiXiIrUCsiKiwiK1ArIioiKSxVPVJlZ0V4cCgiXiIrUCsiKihbPit+XXwiK1ArIikiK1ArIioiKSxWPVJlZ0V4cChQKyIqWyt+XSIpLFk9UmVnRXhwKCI9IitQKyIqKFteXFxdJ1wiXSopIitQKyIqXFxdIiwiZyIpLEo9UmVnRXhwKEkpLEc9UmVnRXhwKCJeIitXKyIkIiksUT17SUQ6UmVnRXhwKCJeIygiK1IrIikiKSxDTEFTUzpSZWdFeHAoIl5cXC4oIitSKyIpIiksVEFHOlJlZ0V4cCgiXigiK1IucmVwbGFjZSgidyIsIncqIikrIikiKSxBVFRSOlJlZ0V4cCgiXiIrJCksUFNFVURPOlJlZ0V4cCgiXiIrSSksQ0hJTEQ6UmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK1ArIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK1ArIiooPzooWystXXwpIitQKyIqKFxcZCspfCkpIitQKyIqXFwpfCkiLCJpIiksYm9vbDpSZWdFeHAoIl4oPzoiK0IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpSZWdFeHAoIl4iK1ArIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrUCsiKigoPzotXFxkKT9cXGQqKSIrUCsiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sSz0vXltee10rXHtccypcW25hdGl2ZSBcdy8sWj0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGV0PS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksdHQ9L15oXGQkL2ksbnQ9Lyd8XFwvZyxydD1SZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrUCsiP3woIitQKyIpfC4pIiwiaWciKSxpdD1mdW5jdGlvbihlLHQsbil7dmFyIHI9IjB4Iit0LTY1NTM2O3JldHVybiByIT09cnx8bj90OjA+cj9TdHJpbmcuZnJvbUNoYXJDb2RlKHIrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8cj4+MTAsNTYzMjB8MTAyMyZyKX07dHJ5e00uYXBwbHkoSD1PLmNhbGwody5jaGlsZE5vZGVzKSx3LmNoaWxkTm9kZXMpLEhbdy5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2gob3Qpe009e2FwcGx5OkgubGVuZ3RoP2Z1bmN0aW9uKGUsdCl7Xy5hcHBseShlLE8uY2FsbCh0KSl9OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGgscj0wO3doaWxlKGVbbisrXT10W3IrK10pO2UubGVuZ3RoPW4tMX19fWZ1bmN0aW9uIGF0KGUsdCxuLGkpe3ZhciBvLGEscyxsLHUsYyxkLG0seSx4O2lmKCh0P3Qub3duZXJEb2N1bWVudHx8dDp3KSE9PWYmJnAodCksdD10fHxmLG49bnx8W10sIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbjtpZigxIT09KGw9dC5ub2RlVHlwZSkmJjkhPT1sKXJldHVybltdO2lmKGgmJiFpKXtpZihvPVouZXhlYyhlKSlpZihzPW9bMV0pe2lmKDk9PT1sKXtpZihhPXQuZ2V0RWxlbWVudEJ5SWQocyksIWF8fCFhLnBhcmVudE5vZGUpcmV0dXJuIG47aWYoYS5pZD09PXMpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYodC5vd25lckRvY3VtZW50JiYoYT10Lm93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocykpJiZ2KHQsYSkmJmEuaWQ9PT1zKXJldHVybiBuLnB1c2goYSksbn1lbHNle2lmKG9bMl0pcmV0dXJuIE0uYXBwbHkobix0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpKSxuO2lmKChzPW9bM10pJiZyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gTS5hcHBseShuLHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShzKSksbn1pZihyLnFzYSYmKCFnfHwhZy50ZXN0KGUpKSl7aWYobT1kPWIseT10LHg9OT09PWwmJmUsMT09PWwmJiJvYmplY3QiIT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtjPW10KGUpLChkPXQuZ2V0QXR0cmlidXRlKCJpZCIpKT9tPWQucmVwbGFjZShudCwiXFwkJiIpOnQuc2V0QXR0cmlidXRlKCJpZCIsbSksbT0iW2lkPSciK20rIiddICIsdT1jLmxlbmd0aDt3aGlsZSh1LS0pY1t1XT1tK3l0KGNbdV0pO3k9Vi50ZXN0KGUpJiZ0LnBhcmVudE5vZGV8fHQseD1jLmpvaW4oIiwiKX1pZih4KXRyeXtyZXR1cm4gTS5hcHBseShuLHkucXVlcnlTZWxlY3RvckFsbCh4KSksbn1jYXRjaChUKXt9ZmluYWxseXtkfHx0LnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiBrdChlLnJlcGxhY2UoeiwiJDEiKSx0LG4saSl9ZnVuY3Rpb24gc3QoKXt2YXIgZT1bXTtmdW5jdGlvbiB0KG4scil7cmV0dXJuIGUucHVzaChuKz0iICIpPm8uY2FjaGVMZW5ndGgmJmRlbGV0ZSB0W2Uuc2hpZnQoKV0sdFtuXT1yfXJldHVybiB0fWZ1bmN0aW9uIGx0KGUpe3JldHVybiBlW2JdPSEwLGV9ZnVuY3Rpb24gdXQoZSl7dmFyIHQ9Zi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFlKHQpfWNhdGNoKG4pe3JldHVybiExfWZpbmFsbHl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksdD1udWxsfX1mdW5jdGlvbiBjdChlLHQpe3ZhciBuPWUuc3BsaXQoInwiKSxyPWUubGVuZ3RoO3doaWxlKHItLSlvLmF0dHJIYW5kbGVbbltyXV09dH1mdW5jdGlvbiBwdChlLHQpe3ZhciBuPXQmJmUscj1uJiYxPT09ZS5ub2RlVHlwZSYmMT09PXQubm9kZVR5cGUmJih+dC5zb3VyY2VJbmRleHx8RCktKH5lLnNvdXJjZUluZGV4fHxEKTtpZihyKXJldHVybiByO2lmKG4pd2hpbGUobj1uLm5leHRTaWJsaW5nKWlmKG49PT10KXJldHVybi0xO3JldHVybiBlPzE6LTF9ZnVuY3Rpb24gZnQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09biYmdC50eXBlPT09ZX19ZnVuY3Rpb24gZHQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PW58fCJidXR0b24iPT09bikmJnQudHlwZT09PWV9fWZ1bmN0aW9uIGh0KGUpe3JldHVybiBsdChmdW5jdGlvbih0KXtyZXR1cm4gdD0rdCxsdChmdW5jdGlvbihuLHIpe3ZhciBpLG89ZShbXSxuLmxlbmd0aCx0KSxhPW8ubGVuZ3RoO3doaWxlKGEtLSluW2k9b1thXV0mJihuW2ldPSEocltpXT1uW2ldKSl9KX0pfXM9YXQuaXNYTUw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmKGUub3duZXJEb2N1bWVudHx8ZSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiB0PyJIVE1MIiE9PXQubm9kZU5hbWU6ITF9LHI9YXQuc3VwcG9ydD17fSxwPWF0LnNldERvY3VtZW50PWZ1bmN0aW9uKGUpe3ZhciBuPWU/ZS5vd25lckRvY3VtZW50fHxlOncsaT1uLmRlZmF1bHRWaWV3O3JldHVybiBuIT09ZiYmOT09PW4ubm9kZVR5cGUmJm4uZG9jdW1lbnRFbGVtZW50PyhmPW4sZD1uLmRvY3VtZW50RWxlbWVudCxoPSFzKG4pLGkmJmkuYXR0YWNoRXZlbnQmJmkhPT1pLnRvcCYmaS5hdHRhY2hFdmVudCgib25iZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7cCgpfSksci5hdHRyaWJ1dGVzPXV0KGZ1bmN0aW9uKGUpe3JldHVybiBlLmNsYXNzTmFtZT0iaSIsIWUuZ2V0QXR0cmlidXRlKCJjbGFzc05hbWUiKX0pLHIuZ2V0RWxlbWVudHNCeVRhZ05hbWU9dXQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwZW5kQ2hpbGQobi5jcmVhdGVDb21tZW50KCIiKSksIWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGh9KSxyLmdldEVsZW1lbnRzQnlDbGFzc05hbWU9dXQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsZS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLHIuZ2V0QnlJZD11dChmdW5jdGlvbihlKXtyZXR1cm4gZC5hcHBlbmRDaGlsZChlKS5pZD1iLCFuLmdldEVsZW1lbnRzQnlOYW1lfHwhbi5nZXRFbGVtZW50c0J5TmFtZShiKS5sZW5ndGh9KSxyLmdldEJ5SWQ/KG8uZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiB0LmdldEVsZW1lbnRCeUlkIT09aiYmaCl7dmFyIG49dC5nZXRFbGVtZW50QnlJZChlKTtyZXR1cm4gbiYmbi5wYXJlbnROb2RlP1tuXTpbXX19LG8uZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShydCxpdCk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaWQiKT09PXR9fSk6KGRlbGV0ZSBvLmZpbmQuSUQsby5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHJ0LGl0KTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49dHlwZW9mIGUuZ2V0QXR0cmlidXRlTm9kZSE9PWomJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbiYmbi52YWx1ZT09PXR9fSksby5maW5kLlRBRz1yLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGUsbil7cmV0dXJuIHR5cGVvZiBuLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09aj9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOnR9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LG8uZmluZC5DTEFTUz1yLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsbil7cmV0dXJuIHR5cGVvZiBuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUhPT1qJiZoP24uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKTp0fSxtPVtdLGc9W10sKHIucXNhPUsudGVzdChuLnF1ZXJ5U2VsZWN0b3JBbGwpKSYmKHV0KGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGcucHVzaCgiXFxbIitQKyIqKD86dmFsdWV8IitCKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8Zy5wdXNoKCI6Y2hlY2tlZCIpfSksdXQoZnVuY3Rpb24oZSl7dmFyIHQ9bi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KS5zZXRBdHRyaWJ1dGUoInQiLCIiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIlt0Xj0nJ10iKS5sZW5ndGgmJmcucHVzaCgiWypeJF09IitQKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RofHxnLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IiksZy5wdXNoKCIsLio6Iil9KSksKHIubWF0Y2hlc1NlbGVjdG9yPUsudGVzdCh5PWQud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxkLm1vek1hdGNoZXNTZWxlY3Rvcnx8ZC5vTWF0Y2hlc1NlbGVjdG9yfHxkLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJnV0KGZ1bmN0aW9uKGUpe3IuZGlzY29ubmVjdGVkTWF0Y2g9eS5jYWxsKGUsImRpdiIpLHkuY2FsbChlLCJbcyE9JyddOngiKSxtLnB1c2goIiE9IixJKX0pLGc9Zy5sZW5ndGgmJlJlZ0V4cChnLmpvaW4oInwiKSksbT1tLmxlbmd0aCYmUmVnRXhwKG0uam9pbigifCIpKSx2PUsudGVzdChkLmNvbnRhaW5zKXx8ZC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihlLHQpe3ZhciBuPTk9PT1lLm5vZGVUeXBlP2UuZG9jdW1lbnRFbGVtZW50OmUscj10JiZ0LnBhcmVudE5vZGU7cmV0dXJuIGU9PT1yfHwhKCFyfHwxIT09ci5ub2RlVHlwZXx8IShuLmNvbnRhaW5zP24uY29udGFpbnMocik6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSkpfTpmdW5jdGlvbihlLHQpe2lmKHQpd2hpbGUodD10LnBhcmVudE5vZGUpaWYodD09PWUpcmV0dXJuITA7cmV0dXJuITF9LEE9ZC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBTPSEwLDA7dmFyIGk9dC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KTtyZXR1cm4gaT8xJml8fCFyLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PWk/ZT09PW58fHYodyxlKT8tMTp0PT09bnx8dih3LHQpPzE6Yz9GLmNhbGwoYyxlKS1GLmNhbGwoYyx0KTowOjQmaT8tMToxOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24/LTE6MX06ZnVuY3Rpb24oZSx0KXt2YXIgcixpPTAsbz1lLnBhcmVudE5vZGUsYT10LnBhcmVudE5vZGUscz1bZV0sbD1bdF07aWYoZT09PXQpcmV0dXJuIFM9ITAsMDtpZighb3x8IWEpcmV0dXJuIGU9PT1uPy0xOnQ9PT1uPzE6bz8tMTphPzE6Yz9GLmNhbGwoYyxlKS1GLmNhbGwoYyx0KTowO2lmKG89PT1hKXJldHVybiBwdChlLHQpO3I9ZTt3aGlsZShyPXIucGFyZW50Tm9kZSlzLnVuc2hpZnQocik7cj10O3doaWxlKHI9ci5wYXJlbnROb2RlKWwudW5zaGlmdChyKTt3aGlsZShzW2ldPT09bFtpXSlpKys7cmV0dXJuIGk/cHQoc1tpXSxsW2ldKTpzW2ldPT09dz8tMTpsW2ldPT09dz8xOjB9LG4pOmZ9LGF0Lm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXQoZSxudWxsLG51bGwsdCl9LGF0Lm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKChlLm93bmVyRG9jdW1lbnR8fGUpIT09ZiYmcChlKSx0PXQucmVwbGFjZShZLCI9JyQxJ10iKSwhKCFyLm1hdGNoZXNTZWxlY3Rvcnx8IWh8fG0mJm0udGVzdCh0KXx8ZyYmZy50ZXN0KHQpKSl0cnl7dmFyIG49eS5jYWxsKGUsdCk7aWYobnx8ci5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGkpe31yZXR1cm4gYXQodCxmLG51bGwsW2VdKS5sZW5ndGg+MH0sYXQuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS5vd25lckRvY3VtZW50fHxlKSE9PWYmJnAoZSksdihlLHQpfSxhdC5hdHRyPWZ1bmN0aW9uKGUsbil7KGUub3duZXJEb2N1bWVudHx8ZSkhPT1mJiZwKGUpO3ZhciBpPW8uYXR0ckhhbmRsZVtuLnRvTG93ZXJDYXNlKCldLGE9aSYmTC5jYWxsKG8uYXR0ckhhbmRsZSxuLnRvTG93ZXJDYXNlKCkpP2koZSxuLCFoKTp0O3JldHVybiBhPT09dD9yLmF0dHJpYnV0ZXN8fCFoP2UuZ2V0QXR0cmlidXRlKG4pOihhPWUuZ2V0QXR0cmlidXRlTm9kZShuKSkmJmEuc3BlY2lmaWVkP2EudmFsdWU6bnVsbDphfSxhdC5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitlKX0sYXQudW5pcXVlU29ydD1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLGk9MCxvPTA7aWYoUz0hci5kZXRlY3REdXBsaWNhdGVzLGM9IXIuc29ydFN0YWJsZSYmZS5zbGljZSgwKSxlLnNvcnQoQSksUyl7d2hpbGUodD1lW28rK10pdD09PWVbb10mJihpPW4ucHVzaChvKSk7d2hpbGUoaS0tKWUuc3BsaWNlKG5baV0sMSl9cmV0dXJuIGV9LGE9YXQuZ2V0VGV4dD1mdW5jdGlvbihlKXt2YXIgdCxuPSIiLHI9MCxpPWUubm9kZVR5cGU7aWYoaSl7aWYoMT09PWl8fDk9PT1pfHwxMT09PWkpe2lmKCJzdHJpbmciPT10eXBlb2YgZS50ZXh0Q29udGVudClyZXR1cm4gZS50ZXh0Q29udGVudDtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpbis9YShlKX1lbHNlIGlmKDM9PT1pfHw0PT09aSlyZXR1cm4gZS5ub2RlVmFsdWV9ZWxzZSBmb3IoO3Q9ZVtyXTtyKyspbis9YSh0KTtyZXR1cm4gbn0sbz1hdC5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpsdCxtYXRjaDpRLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnJlcGxhY2UocnQsaXQpLGVbM109KGVbNF18fGVbNV18fCIiKS5yZXBsYWNlKHJ0LGl0KSwifj0iPT09ZVsyXSYmKGVbM109IiAiK2VbM10rIiAiKSxlLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWVbMV0uc2xpY2UoMCwzKT8oZVszXXx8YXQuZXJyb3IoZVswXSksZVs0XT0rKGVbNF0/ZVs1XSsoZVs2XXx8MSk6MiooImV2ZW4iPT09ZVszXXx8Im9kZCI9PT1lWzNdKSksZVs1XT0rKGVbN10rZVs4XXx8Im9kZCI9PT1lWzNdKSk6ZVszXSYmYXQuZXJyb3IoZVswXSksZX0sUFNFVURPOmZ1bmN0aW9uKGUpe3ZhciBuLHI9IWVbNV0mJmVbMl07cmV0dXJuIFEuQ0hJTEQudGVzdChlWzBdKT9udWxsOihlWzNdJiZlWzRdIT09dD9lWzJdPWVbNF06ciYmSi50ZXN0KHIpJiYobj1tdChyLCEwKSkmJihuPXIuaW5kZXhPZigiKSIsci5sZW5ndGgtbiktci5sZW5ndGgpJiYoZVswXT1lWzBdLnNsaWNlKDAsbiksZVsyXT1yLnNsaWNlKDAsbikpLGUuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UocnQsaXQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09ZT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dH19LENMQVNTOmZ1bmN0aW9uKGUpe3ZhciB0PU5bZSsiICJdO3JldHVybiB0fHwodD1SZWdFeHAoIihefCIrUCsiKSIrZSsiKCIrUCsifCQpIikpJiZOKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHQudGVzdCgic3RyaW5nIj09dHlwZW9mIGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZXx8dHlwZW9mIGUuZ2V0QXR0cmlidXRlIT09aiYmZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGk9YXQuYXR0cihyLGUpO3JldHVybiBudWxsPT1pPyIhPSI9PT10OnQ/KGkrPSIiLCI9Ij09PXQ/aT09PW46IiE9Ij09PXQ/aSE9PW46Il49Ij09PXQ/biYmMD09PWkuaW5kZXhPZihuKToiKj0iPT09dD9uJiZpLmluZGV4T2Yobik+LTE6IiQ9Ij09PXQ/biYmaS5zbGljZSgtbi5sZW5ndGgpPT09bjoifj0iPT09dD8oIiAiK2krIiAiKS5pbmRleE9mKG4pPi0xOiJ8PSI9PT10P2k9PT1ufHxpLnNsaWNlKDAsbi5sZW5ndGgrMSk9PT1uKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvPSJudGgiIT09ZS5zbGljZSgwLDMpLGE9Imxhc3QiIT09ZS5zbGljZSgtNCkscz0ib2YtdHlwZSI9PT10O3JldHVybiAxPT09ciYmMD09PWk/ZnVuY3Rpb24oZSl7cmV0dXJuISFlLnBhcmVudE5vZGV9OmZ1bmN0aW9uKHQsbixsKXt2YXIgdSxjLHAsZixkLGgsZz1vIT09YT8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLG09dC5wYXJlbnROb2RlLHk9cyYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHY9IWwmJiFzO2lmKG0pe2lmKG8pe3doaWxlKGcpe3A9dDt3aGlsZShwPXBbZ10paWYocz9wLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT15OjE9PT1wLm5vZGVUeXBlKXJldHVybiExO2g9Zz0ib25seSI9PT1lJiYhaCYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihoPVthP20uZmlyc3RDaGlsZDptLmxhc3RDaGlsZF0sYSYmdil7Yz1tW2JdfHwobVtiXT17fSksdT1jW2VdfHxbXSxkPXVbMF09PT1UJiZ1WzFdLGY9dVswXT09PVQmJnVbMl0scD1kJiZtLmNoaWxkTm9kZXNbZF07d2hpbGUocD0rK2QmJnAmJnBbZ118fChmPWQ9MCl8fGgucG9wKCkpaWYoMT09PXAubm9kZVR5cGUmJisrZiYmcD09PXQpe2NbZV09W1QsZCxmXTticmVha319ZWxzZSBpZih2JiYodT0odFtiXXx8KHRbYl09e30pKVtlXSkmJnVbMF09PT1UKWY9dVsxXTtlbHNlIHdoaWxlKHA9KytkJiZwJiZwW2ddfHwoZj1kPTApfHxoLnBvcCgpKWlmKChzP3Aubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXk6MT09PXAubm9kZVR5cGUpJiYrK2YmJih2JiYoKHBbYl18fChwW2JdPXt9KSlbZV09W1QsZl0pLHA9PT10KSlicmVhaztyZXR1cm4gZi09aSxmPT09cnx8MD09PWYlciYmZi9yPj0wfX19LFBTRVVETzpmdW5jdGlvbihlLHQpe3ZhciBuLHI9by5wc2V1ZG9zW2VdfHxvLnNldEZpbHRlcnNbZS50b0xvd2VyQ2FzZSgpXXx8YXQuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIitlKTtyZXR1cm4gcltiXT9yKHQpOnIubGVuZ3RoPjE/KG49W2UsZSwiIix0XSxvLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoZS50b0xvd2VyQ2FzZSgpKT9sdChmdW5jdGlvbihlLG4pe3ZhciBpLG89cihlLHQpLGE9by5sZW5ndGg7d2hpbGUoYS0tKWk9Ri5jYWxsKGUsb1thXSksZVtpXT0hKG5baV09b1thXSl9KTpmdW5jdGlvbihlKXtyZXR1cm4gcihlLDAsbil9KTpyfX0scHNldWRvczp7bm90Omx0KGZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49W10scj1sKGUucmVwbGFjZSh6LCIkMSIpKTtyZXR1cm4gcltiXT9sdChmdW5jdGlvbihlLHQsbixpKXt2YXIgbyxhPXIoZSxudWxsLGksW10pLHM9ZS5sZW5ndGg7d2hpbGUocy0tKShvPWFbc10pJiYoZVtzXT0hKHRbc109bykpfSk6ZnVuY3Rpb24oZSxpLG8pe3JldHVybiB0WzBdPWUscih0LG51bGwsbyxuKSwhbi5wb3AoKX19KSxoYXM6bHQoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhdChlLHQpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOmx0KGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4odC50ZXh0Q29udGVudHx8dC5pbm5lclRleHR8fGEodCkpLmluZGV4T2YoZSk+LTF9fSksbGFuZzpsdChmdW5jdGlvbihlKXtyZXR1cm4gRy50ZXN0KGV8fCIiKXx8YXQuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrZSksZT1lLnJlcGxhY2UocnQsaXQpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24odCl7dmFyIG47ZG8gaWYobj1oP3QubGFuZzp0LmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8dC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gbj1uLnRvTG93ZXJDYXNlKCksbj09PWV8fDA9PT1uLmluZGV4T2YoZSsiLSIpO3doaWxlKCh0PXQucGFyZW50Tm9kZSkmJjE9PT10Lm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24odCl7dmFyIG49ZS5sb2NhdGlvbiYmZS5sb2NhdGlvbi5oYXNoO3JldHVybiBuJiZuLnNsaWNlKDEpPT09dC5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWR9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09Zi5hY3RpdmVFbGVtZW50JiYoIWYuaGFzRm9jdXN8fGYuaGFzRm9jdXMoKSkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzYWJsZWQ9PT0hMX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzYWJsZWQ9PT0hMH0sY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsZS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlTmFtZT4iQCJ8fDM9PT1lLm5vZGVUeXBlfHw0PT09ZS5ub2RlVHlwZSlyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGUpe3JldHVybiFvLnBzZXVkb3MuZW1wdHkoZSl9LGhlYWRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdHQudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV0LnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fHQudG9Mb3dlckNhc2UoKT09PWUudHlwZSl9LGZpcnN0Omh0KGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpodChmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6aHQoZnVuY3Rpb24oZSx0LG4pe3JldHVyblswPm4/bit0Om5dfSksZXZlbjpodChmdW5jdGlvbihlLHQpe3ZhciBuPTA7Zm9yKDt0Pm47bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxvZGQ6aHQoZnVuY3Rpb24oZSx0KXt2YXIgbj0xO2Zvcig7dD5uO24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksbHQ6aHQoZnVuY3Rpb24oZSx0LG4pe3ZhciByPTA+bj9uK3Q6bjtmb3IoOy0tcj49MDspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6aHQoZnVuY3Rpb24oZSx0LG4pe3ZhciByPTA+bj9uK3Q6bjtmb3IoO3Q+KytyOyllLnB1c2gocik7cmV0dXJuIGV9KX19LG8ucHNldWRvcy5udGg9by5wc2V1ZG9zLmVxO2ZvcihuIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KW8ucHNldWRvc1tuXT1mdChuKTtmb3IobiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KW8ucHNldWRvc1tuXT1kdChuKTtmdW5jdGlvbiBndCgpe31ndC5wcm90b3R5cGU9by5maWx0ZXJzPW8ucHNldWRvcyxvLnNldEZpbHRlcnM9bmV3IGd0O2Z1bmN0aW9uIG10KGUsdCl7dmFyIG4scixpLGEscyxsLHUsYz1rW2UrIiAiXTtpZihjKXJldHVybiB0PzA6Yy5zbGljZSgwKTtzPWUsbD1bXSx1PW8ucHJlRmlsdGVyO3doaWxlKHMpeyghbnx8KHI9WC5leGVjKHMpKSkmJihyJiYocz1zLnNsaWNlKHJbMF0ubGVuZ3RoKXx8cyksbC5wdXNoKGk9W10pKSxuPSExLChyPVUuZXhlYyhzKSkmJihuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpyWzBdLnJlcGxhY2UoeiwiICIpfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7Zm9yKGEgaW4gby5maWx0ZXIpIShyPVFbYV0uZXhlYyhzKSl8fHVbYV0mJiEocj11W2FdKHIpKXx8KG49ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOmEsbWF0Y2hlczpyfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/cy5sZW5ndGg6cz9hdC5lcnJvcihlKTprKGUsbCkuc2xpY2UoMCl9ZnVuY3Rpb24geXQoZSl7dmFyIHQ9MCxuPWUubGVuZ3RoLHI9IiI7Zm9yKDtuPnQ7dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gdnQoZSx0LG4pe3ZhciByPXQuZGlyLG89biYmInBhcmVudE5vZGUiPT09cixhPUMrKztyZXR1cm4gdC5maXJzdD9mdW5jdGlvbih0LG4saSl7d2hpbGUodD10W3JdKWlmKDE9PT10Lm5vZGVUeXBlfHxvKXJldHVybiBlKHQsbixpKX06ZnVuY3Rpb24odCxuLHMpe3ZhciBsLHUsYyxwPVQrIiAiK2E7aWYocyl7d2hpbGUodD10W3JdKWlmKCgxPT09dC5ub2RlVHlwZXx8bykmJmUodCxuLHMpKXJldHVybiEwfWVsc2Ugd2hpbGUodD10W3JdKWlmKDE9PT10Lm5vZGVUeXBlfHxvKWlmKGM9dFtiXXx8KA=="
},
{
"key": "jquery.min.js_1",
"type": "binary",
"value": "base64:dFtiXT17fSksKHU9Y1tyXSkmJnVbMF09PT1wKXtpZigobD11WzFdKT09PSEwfHxsPT09aSlyZXR1cm4gbD09PSEwfWVsc2UgaWYodT1jW3JdPVtwXSx1WzFdPWUodCxuLHMpfHxpLHVbMV09PT0hMClyZXR1cm4hMH19ZnVuY3Rpb24gYnQoZSl7cmV0dXJuIGUubGVuZ3RoPjE/ZnVuY3Rpb24odCxuLHIpe3ZhciBpPWUubGVuZ3RoO3doaWxlKGktLSlpZighZVtpXSh0LG4scikpcmV0dXJuITE7cmV0dXJuITB9OmVbMF19ZnVuY3Rpb24geHQoZSx0LG4scixpKXt2YXIgbyxhPVtdLHM9MCxsPWUubGVuZ3RoLHU9bnVsbCE9dDtmb3IoO2w+cztzKyspKG89ZVtzXSkmJighbnx8bihvLHIsaSkpJiYoYS5wdXNoKG8pLHUmJnQucHVzaChzKSk7cmV0dXJuIGF9ZnVuY3Rpb24gd3QoZSx0LG4scixpLG8pe3JldHVybiByJiYhcltiXSYmKHI9d3QocikpLGkmJiFpW2JdJiYoaT13dChpLG8pKSxsdChmdW5jdGlvbihvLGEscyxsKXt2YXIgdSxjLHAsZj1bXSxkPVtdLGg9YS5sZW5ndGgsZz1vfHxOdCh0fHwiKiIscy5ub2RlVHlwZT9bc106cyxbXSksbT0hZXx8IW8mJnQ/Zzp4dChnLGYsZSxzLGwpLHk9bj9pfHwobz9lOmh8fHIpP1tdOmE6bTtpZihuJiZuKG0seSxzLGwpLHIpe3U9eHQoeSxkKSxyKHUsW10scyxsKSxjPXUubGVuZ3RoO3doaWxlKGMtLSkocD11W2NdKSYmKHlbZFtjXV09IShtW2RbY11dPXApKX1pZihvKXtpZihpfHxlKXtpZihpKXt1PVtdLGM9eS5sZW5ndGg7d2hpbGUoYy0tKShwPXlbY10pJiZ1LnB1c2gobVtjXT1wKTtpKG51bGwseT1bXSx1LGwpfWM9eS5sZW5ndGg7d2hpbGUoYy0tKShwPXlbY10pJiYodT1pP0YuY2FsbChvLHApOmZbY10pPi0xJiYob1t1XT0hKGFbdV09cCkpfX1lbHNlIHk9eHQoeT09PWE/eS5zcGxpY2UoaCx5Lmxlbmd0aCk6eSksaT9pKG51bGwsYSx5LGwpOk0uYXBwbHkoYSx5KX0pfWZ1bmN0aW9uIFR0KGUpe3ZhciB0LG4scixpPWUubGVuZ3RoLGE9by5yZWxhdGl2ZVtlWzBdLnR5cGVdLHM9YXx8by5yZWxhdGl2ZVsiICJdLGw9YT8xOjAsYz12dChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9LHMsITApLHA9dnQoZnVuY3Rpb24oZSl7cmV0dXJuIEYuY2FsbCh0LGUpPi0xfSxzLCEwKSxmPVtmdW5jdGlvbihlLG4scil7cmV0dXJuIWEmJihyfHxuIT09dSl8fCgodD1uKS5ub2RlVHlwZT9jKGUsbixyKTpwKGUsbixyKSl9XTtmb3IoO2k+bDtsKyspaWYobj1vLnJlbGF0aXZlW2VbbF0udHlwZV0pZj1bdnQoYnQoZiksbildO2Vsc2V7aWYobj1vLmZpbHRlcltlW2xdLnR5cGVdLmFwcGx5KG51bGwsZVtsXS5tYXRjaGVzKSxuW2JdKXtmb3Iocj0rK2w7aT5yO3IrKylpZihvLnJlbGF0aXZlW2Vbcl0udHlwZV0pYnJlYWs7cmV0dXJuIHd0KGw+MSYmYnQoZiksbD4xJiZ5dChlLnNsaWNlKDAsbC0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWVbbC0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKHosIiQxIiksbixyPmwmJlR0KGUuc2xpY2UobCxyKSksaT5yJiZUdChlPWUuc2xpY2UocikpLGk+ciYmeXQoZSkpfWYucHVzaChuKX1yZXR1cm4gYnQoZil9ZnVuY3Rpb24gQ3QoZSx0KXt2YXIgbj0wLHI9dC5sZW5ndGg+MCxhPWUubGVuZ3RoPjAscz1mdW5jdGlvbihzLGwsYyxwLGQpe3ZhciBoLGcsbSx5PVtdLHY9MCxiPSIwIix4PXMmJltdLHc9bnVsbCE9ZCxDPXUsTj1zfHxhJiZvLmZpbmQuVEFHKCIqIixkJiZsLnBhcmVudE5vZGV8fGwpLGs9VCs9bnVsbD09Qz8xOk1hdGgucmFuZG9tKCl8fC4xO2Zvcih3JiYodT1sIT09ZiYmbCxpPW4pO251bGwhPShoPU5bYl0pO2IrKyl7aWYoYSYmaCl7Zz0wO3doaWxlKG09ZVtnKytdKWlmKG0oaCxsLGMpKXtwLnB1c2goaCk7YnJlYWt9dyYmKFQ9ayxpPSsrbil9ciYmKChoPSFtJiZoKSYmdi0tLHMmJngucHVzaChoKSl9aWYodis9YixyJiZiIT09dil7Zz0wO3doaWxlKG09dFtnKytdKW0oeCx5LGwsYyk7aWYocyl7aWYodj4wKXdoaWxlKGItLSl4W2JdfHx5W2JdfHwoeVtiXT1xLmNhbGwocCkpO3k9eHQoeSl9TS5hcHBseShwLHkpLHcmJiFzJiZ5Lmxlbmd0aD4wJiZ2K3QubGVuZ3RoPjEmJmF0LnVuaXF1ZVNvcnQocCl9cmV0dXJuIHcmJihUPWssdT1DKSx4fTtyZXR1cm4gcj9sdChzKTpzfWw9YXQuY29tcGlsZT1mdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT1bXSxvPUVbZSsiICJdO2lmKCFvKXt0fHwodD1tdChlKSksbj10Lmxlbmd0aDt3aGlsZShuLS0pbz1UdCh0W25dKSxvW2JdP3IucHVzaChvKTppLnB1c2gobyk7bz1FKGUsQ3QoaSxyKSl9cmV0dXJuIG99O2Z1bmN0aW9uIE50KGUsdCxuKXt2YXIgcj0wLGk9dC5sZW5ndGg7Zm9yKDtpPnI7cisrKWF0KGUsdFtyXSxuKTtyZXR1cm4gbn1mdW5jdGlvbiBrdChlLHQsbixpKXt2YXIgYSxzLHUsYyxwLGY9bXQoZSk7aWYoIWkmJjE9PT1mLmxlbmd0aCl7aWYocz1mWzBdPWZbMF0uc2xpY2UoMCkscy5sZW5ndGg+MiYmIklEIj09PSh1PXNbMF0pLnR5cGUmJnIuZ2V0QnlJZCYmOT09PXQubm9kZVR5cGUmJmgmJm8ucmVsYXRpdmVbc1sxXS50eXBlXSl7aWYodD0oby5maW5kLklEKHUubWF0Y2hlc1swXS5yZXBsYWNlKHJ0LGl0KSx0KXx8W10pWzBdLCF0KXJldHVybiBuO2U9ZS5zbGljZShzLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1hPVEubmVlZHNDb250ZXh0LnRlc3QoZSk/MDpzLmxlbmd0aDt3aGlsZShhLS0pe2lmKHU9c1thXSxvLnJlbGF0aXZlW2M9dS50eXBlXSlicmVhaztpZigocD1vLmZpbmRbY10pJiYoaT1wKHUubWF0Y2hlc1swXS5yZXBsYWNlKHJ0LGl0KSxWLnRlc3Qoc1swXS50eXBlKSYmdC5wYXJlbnROb2RlfHx0KSkpe2lmKHMuc3BsaWNlKGEsMSksZT1pLmxlbmd0aCYmeXQocyksIWUpcmV0dXJuIE0uYXBwbHkobixpKSxuO2JyZWFrfX19cmV0dXJuIGwoZSxmKShpLHQsIWgsbixWLnRlc3QoZSkpLG59ci5zb3J0U3RhYmxlPWIuc3BsaXQoIiIpLnNvcnQoQSkuam9pbigiIik9PT1iLHIuZGV0ZWN0RHVwbGljYXRlcz1TLHAoKSxyLnNvcnREZXRhY2hlZD11dChmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGYuY3JlYXRlRWxlbWVudCgiZGl2IikpfSksdXQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IiwiIyI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIil9KXx8Y3QoInR5cGV8aHJlZnxoZWlnaHR8d2lkdGgiLGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gcj90OmUuZ2V0QXR0cmlidXRlKG4sInR5cGUiPT09bi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxyLmF0dHJpYnV0ZXMmJnV0KGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGlucHV0Lz4iLGUuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGN0KCJ2YWx1ZSIsZnVuY3Rpb24oZSxuLHIpe3JldHVybiByfHwiaW5wdXQiIT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3Q6ZS5kZWZhdWx0VmFsdWV9KSx1dChmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8Y3QoQixmdW5jdGlvbihlLG4scil7dmFyIGk7cmV0dXJuIHI/dDooaT1lLmdldEF0dHJpYnV0ZU5vZGUobikpJiZpLnNwZWNpZmllZD9pLnZhbHVlOmVbbl09PT0hMD9uLnRvTG93ZXJDYXNlKCk6bnVsbH0pLHguZmluZD1hdCx4LmV4cHI9YXQuc2VsZWN0b3JzLHguZXhwclsiOiJdPXguZXhwci5wc2V1ZG9zLHgudW5pcXVlPWF0LnVuaXF1ZVNvcnQseC50ZXh0PWF0LmdldFRleHQseC5pc1hNTERvYz1hdC5pc1hNTCx4LmNvbnRhaW5zPWF0LmNvbnRhaW5zfShlKTt2YXIgTz17fTtmdW5jdGlvbiBGKGUpe3ZhciB0PU9bZV09e307cmV0dXJuIHguZWFjaChlLm1hdGNoKFQpfHxbXSxmdW5jdGlvbihlLG4pe3Rbbl09ITB9KSx0fXguQ2FsbGJhY2tzPWZ1bmN0aW9uKGUpe2U9InN0cmluZyI9PXR5cGVvZiBlP09bZV18fEYoZSk6eC5leHRlbmQoe30sZSk7dmFyIG4scixpLG8sYSxzLGw9W10sdT0hZS5vbmNlJiZbXSxjPWZ1bmN0aW9uKHQpe2ZvcihyPWUubWVtb3J5JiZ0LGk9ITAsYT1zfHwwLHM9MCxvPWwubGVuZ3RoLG49ITA7bCYmbz5hO2ErKylpZihsW2FdLmFwcGx5KHRbMF0sdFsxXSk9PT0hMSYmZS5zdG9wT25GYWxzZSl7cj0hMTticmVha31uPSExLGwmJih1P3UubGVuZ3RoJiZjKHUuc2hpZnQoKSk6cj9sPVtdOnAuZGlzYWJsZSgpKX0scD17YWRkOmZ1bmN0aW9uKCl7aWYobCl7dmFyIHQ9bC5sZW5ndGg7KGZ1bmN0aW9uIGkodCl7eC5lYWNoKHQsZnVuY3Rpb24odCxuKXt2YXIgcj14LnR5cGUobik7ImZ1bmN0aW9uIj09PXI/ZS51bmlxdWUmJnAuaGFzKG4pfHxsLnB1c2gobik6biYmbi5sZW5ndGgmJiJzdHJpbmciIT09ciYmaShuKX0pfSkoYXJndW1lbnRzKSxuP289bC5sZW5ndGg6ciYmKHM9dCxjKHIpKX1yZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGwmJnguZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgcjt3aGlsZSgocj14LmluQXJyYXkodCxsLHIpKT4tMSlsLnNwbGljZShyLDEpLG4mJihvPj1yJiZvLS0sYT49ciYmYS0tKX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT94LmluQXJyYXkoZSxsKT4tMTohKCFsfHwhbC5sZW5ndGgpfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBsPVtdLG89MCx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGw9dT1yPXQsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hbH0sbG9jazpmdW5jdGlvbigpe3JldHVybiB1PXQscnx8cC5kaXNhYmxlKCksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuIXV9LGZpcmVXaXRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIWx8fGkmJiF1fHwodD10fHxbXSx0PVtlLHQuc2xpY2U/dC5zbGljZSgpOnRdLG4/dS5wdXNoKHQpOmModCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gcC5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWl9fTtyZXR1cm4gcH0seC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGUpe3ZhciB0PVtbInJlc29sdmUiLCJkb25lIix4LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLHguQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLHguQ2FsbGJhY2tzKCJtZW1vcnkiKV1dLG49InBlbmRpbmciLHI9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBpLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sdGhlbjpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztyZXR1cm4geC5EZWZlcnJlZChmdW5jdGlvbihuKXt4LmVhY2godCxmdW5jdGlvbih0LG8pe3ZhciBhPW9bMF0scz14LmlzRnVuY3Rpb24oZVt0XSkmJmVbdF07aVtvWzFdXShmdW5jdGlvbigpe3ZhciBlPXMmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJnguaXNGdW5jdGlvbihlLnByb21pc2UpP2UucHJvbWlzZSgpLmRvbmUobi5yZXNvbHZlKS5mYWlsKG4ucmVqZWN0KS5wcm9ncmVzcyhuLm5vdGlmeSk6blthKyJXaXRoIl0odGhpcz09PXI/bi5wcm9taXNlKCk6dGhpcyxzP1tlXTphcmd1bWVudHMpfSl9KSxlPW51bGx9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/eC5leHRlbmQoZSxyKTpyfX0saT17fTtyZXR1cm4gci5waXBlPXIudGhlbix4LmVhY2godCxmdW5jdGlvbihlLG8pe3ZhciBhPW9bMl0scz1vWzNdO3Jbb1sxXV09YS5hZGQscyYmYS5hZGQoZnVuY3Rpb24oKXtuPXN9LHRbMV5lXVsyXS5kaXNhYmxlLHRbMl1bMl0ubG9jayksaVtvWzBdXT1mdW5jdGlvbigpe3JldHVybiBpW29bMF0rIldpdGgiXSh0aGlzPT09aT9yOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxpW29bMF0rIldpdGgiXT1hLmZpcmVXaXRofSksci5wcm9taXNlKGkpLGUmJmUuY2FsbChpLGkpLGl9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWcuY2FsbChhcmd1bWVudHMpLHI9bi5sZW5ndGgsaT0xIT09cnx8ZSYmeC5pc0Z1bmN0aW9uKGUucHJvbWlzZSk/cjowLG89MT09PWk/ZTp4LkRlZmVycmVkKCksYT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKHIpe3RbZV09dGhpcyxuW2VdPWFyZ3VtZW50cy5sZW5ndGg+MT9nLmNhbGwoYXJndW1lbnRzKTpyLG49PT1zP28ubm90aWZ5V2l0aCh0LG4pOi0taXx8by5yZXNvbHZlV2l0aCh0LG4pfX0scyxsLHU7aWYocj4xKWZvcihzPUFycmF5KHIpLGw9QXJyYXkociksdT1BcnJheShyKTtyPnQ7dCsrKW5bdF0mJnguaXNGdW5jdGlvbihuW3RdLnByb21pc2UpP25bdF0ucHJvbWlzZSgpLmRvbmUoYSh0LHUsbikpLmZhaWwoby5yZWplY3QpLnByb2dyZXNzKGEodCxsLHMpKTotLWk7cmV0dXJuIGl8fG8ucmVzb2x2ZVdpdGgodSxuKSxvLnByb21pc2UoKX19KSx4LnN1cHBvcnQ9ZnVuY3Rpb24odCl7dmFyIG4scixvLHMsbCx1LGMscCxmLGQ9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihkLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIiwidCIpLGQuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLG49ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpfHxbXSxyPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSwhcnx8IXIuc3R5bGV8fCFuLmxlbmd0aClyZXR1cm4gdDtzPWEuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksdT1zLmFwcGVuZENoaWxkKGEuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLG89ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxyLnN0eWxlLmNzc1RleHQ9InRvcDoxcHg7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41Iix0LmdldFNldEF0dHJpYnV0ZT0idCIhPT1kLmNsYXNzTmFtZSx0LmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1kLmZpcnN0Q2hpbGQubm9kZVR5cGUsdC50Ym9keT0hZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsdC5odG1sU2VyaWFsaXplPSEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCx0LnN0eWxlPS90b3AvLnRlc3Qoci5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLHQuaHJlZk5vcm1hbGl6ZWQ9Ii9hIj09PXIuZ2V0QXR0cmlidXRlKCJocmVmIiksdC5vcGFjaXR5PS9eMC41Ly50ZXN0KHIuc3R5bGUub3BhY2l0eSksdC5jc3NGbG9hdD0hIXIuc3R5bGUuY3NzRmxvYXQsdC5jaGVja09uPSEhby52YWx1ZSx0Lm9wdFNlbGVjdGVkPXUuc2VsZWN0ZWQsdC5lbmN0eXBlPSEhYS5jcmVhdGVFbGVtZW50KCJmb3JtIikuZW5jdHlwZSx0Lmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09YS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCx0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsdC5zaHJpbmtXcmFwQmxvY2tzPSExLHQucGl4ZWxQb3NpdGlvbj0hMSx0LmRlbGV0ZUV4cGFuZG89ITAsdC5ub0Nsb25lRXZlbnQ9ITAsdC5yZWxpYWJsZU1hcmdpblJpZ2h0PSEwLHQuYm94U2l6aW5nUmVsaWFibGU9ITAsby5jaGVja2VkPSEwLHQubm9DbG9uZUNoZWNrZWQ9by5jbG9uZU5vZGUoITApLmNoZWNrZWQscy5kaXNhYmxlZD0hMCx0Lm9wdERpc2FibGVkPSF1LmRpc2FibGVkO3RyeXtkZWxldGUgZC50ZXN0fWNhdGNoKGgpe3QuZGVsZXRlRXhwYW5kbz0hMX1vPWEuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxvLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSx0LmlucHV0PSIiPT09by5nZXRBdHRyaWJ1dGUoInZhbHVlIiksby52YWx1ZT0idCIsby5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHQucmFkaW9WYWx1ZT0idCI9PT1vLnZhbHVlLG8uc2V0QXR0cmlidXRlKCJjaGVja2VkIiwidCIpLG8uc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGw9YS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbC5hcHBlbmRDaGlsZChvKSx0LmFwcGVuZENoZWNrZWQ9by5jaGVja2VkLHQuY2hlY2tDbG9uZT1sLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxkLmF0dGFjaEV2ZW50JiYoZC5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24oKXt0Lm5vQ2xvbmVFdmVudD0hMX0pLGQuY2xvbmVOb2RlKCEwKS5jbGljaygpKTtmb3IoZiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWQuc2V0QXR0cmlidXRlKGM9Im9uIitmLCJ0IiksdFtmKyJCdWJibGVzIl09YyBpbiBlfHxkLmF0dHJpYnV0ZXNbY10uZXhwYW5kbz09PSExO2Quc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixkLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsdC5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWQuc3R5bGUuYmFja2dyb3VuZENsaXA7Zm9yKGYgaW4geCh0KSlicmVhaztyZXR1cm4gdC5vd25MYXN0PSIwIiE9PWYseChmdW5jdGlvbigpe3ZhciBuLHIsbyxzPSJwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7IixsPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTtsJiYobj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG4uc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi05OTk5cHg7bWFyZ2luLXRvcDoxcHgiLGwuYXBwZW5kQ2hpbGQobikuYXBwZW5kQ2hpbGQoZCksZC5pbm5lckhUTUw9Ijx0YWJsZT48dHI+PHRkPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLG89ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxvWzBdLnN0eWxlLmNzc1RleHQ9InBhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MDtkaXNwbGF5Om5vbmUiLHA9MD09PW9bMF0ub2Zmc2V0SGVpZ2h0LG9bMF0uc3R5bGUuZGlzcGxheT0iIixvWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQucmVsaWFibGVIaWRkZW5PZmZzZXRzPXAmJjA9PT1vWzBdLm9mZnNldEhlaWdodCxkLmlubmVySFRNTD0iIixkLnN0eWxlLmNzc1RleHQ9ImJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjFweDtib3JkZXI6MXB4O2Rpc3BsYXk6YmxvY2s7d2lkdGg6NHB4O21hcmdpbi10b3A6MSU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjElOyIseC5zd2FwKGwsbnVsbCE9bC5zdHlsZS56b29tP3t6b29tOjF9Ont9LGZ1bmN0aW9uKCl7dC5ib3hTaXppbmc9ND09PWQub2Zmc2V0V2lkdGh9KSxlLmdldENvbXB1dGVkU3R5bGUmJih0LnBpeGVsUG9zaXRpb249IjElIiE9PShlLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKXx8e30pLnRvcCx0LmJveFNpemluZ1JlbGlhYmxlPSI0cHgiPT09KGUuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxyPWQuYXBwZW5kQ2hpbGQoYS5jcmVhdGVFbGVtZW50KCJkaXYiKSksci5zdHlsZS5jc3NUZXh0PWQuc3R5bGUuY3NzVGV4dD1zLHIuc3R5bGUubWFyZ2luUmlnaHQ9ci5zdHlsZS53aWR0aD0iMCIsZC5zdHlsZS53aWR0aD0iMXB4Iix0LnJlbGlhYmxlTWFyZ2luUmlnaHQ9IXBhcnNlRmxvYXQoKGUuZ2V0Q29tcHV0ZWRTdHlsZShyLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSx0eXBlb2YgZC5zdHlsZS56b29tIT09aSYmKGQuaW5uZXJIVE1MPSIiLGQuc3R5bGUuY3NzVGV4dD1zKyJ3aWR0aDoxcHg7cGFkZGluZzoxcHg7ZGlzcGxheTppbmxpbmU7em9vbToxIix0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9Mz09PWQub2Zmc2V0V2lkdGgsZC5zdHlsZS5kaXNwbGF5PSJibG9jayIsZC5pbm5lckhUTUw9IjxkaXY+PC9kaXY+IixkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGg9IjVweCIsdC5zaHJpbmtXcmFwQmxvY2tzPTMhPT1kLm9mZnNldFdpZHRoLHQuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmKGwuc3R5bGUuem9vbT0xKSksbC5yZW1vdmVDaGlsZChuKSxuPWQ9bz1yPW51bGwpfSksbj1zPWw9dT1yPW89bnVsbCx0DQp9KHt9KTt2YXIgQj0vKD86XHtbXHNcU10qXH18XFtbXHNcU10qXF0pJC8sUD0vKFtBLVpdKS9nO2Z1bmN0aW9uIFIoZSxuLHIsaSl7aWYoeC5hY2NlcHREYXRhKGUpKXt2YXIgbyxhLHM9eC5leHBhbmRvLGw9ZS5ub2RlVHlwZSx1PWw/eC5jYWNoZTplLGM9bD9lW3NdOmVbc10mJnM7aWYoYyYmdVtjXSYmKGl8fHVbY10uZGF0YSl8fHIhPT10fHwic3RyaW5nIiE9dHlwZW9mIG4pcmV0dXJuIGN8fChjPWw/ZVtzXT1wLnBvcCgpfHx4Lmd1aWQrKzpzKSx1W2NdfHwodVtjXT1sP3t9Ont0b0pTT046eC5ub29wfSksKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pJiYoaT91W2NdPXguZXh0ZW5kKHVbY10sbik6dVtjXS5kYXRhPXguZXh0ZW5kKHVbY10uZGF0YSxuKSksYT11W2NdLGl8fChhLmRhdGF8fChhLmRhdGE9e30pLGE9YS5kYXRhKSxyIT09dCYmKGFbeC5jYW1lbENhc2UobildPXIpLCJzdHJpbmciPT10eXBlb2Ygbj8obz1hW25dLG51bGw9PW8mJihvPWFbeC5jYW1lbENhc2UobildKSk6bz1hLG99fWZ1bmN0aW9uIFcoZSx0LG4pe2lmKHguYWNjZXB0RGF0YShlKSl7dmFyIHIsaSxvPWUubm9kZVR5cGUsYT1vP3guY2FjaGU6ZSxzPW8/ZVt4LmV4cGFuZG9dOnguZXhwYW5kbztpZihhW3NdKXtpZih0JiYocj1uP2Fbc106YVtzXS5kYXRhKSl7eC5pc0FycmF5KHQpP3Q9dC5jb25jYXQoeC5tYXAodCx4LmNhbWVsQ2FzZSkpOnQgaW4gcj90PVt0XToodD14LmNhbWVsQ2FzZSh0KSx0PXQgaW4gcj9bdF06dC5zcGxpdCgiICIpKSxpPXQubGVuZ3RoO3doaWxlKGktLSlkZWxldGUgclt0W2ldXTtpZihuPyFJKHIpOiF4LmlzRW1wdHlPYmplY3QocikpcmV0dXJufShufHwoZGVsZXRlIGFbc10uZGF0YSxJKGFbc10pKSkmJihvP3guY2xlYW5EYXRhKFtlXSwhMCk6eC5zdXBwb3J0LmRlbGV0ZUV4cGFuZG98fGEhPWEud2luZG93P2RlbGV0ZSBhW3NdOmFbc109bnVsbCl9fX14LmV4dGVuZCh7Y2FjaGU6e30sbm9EYXRhOnthcHBsZXQ6ITAsZW1iZWQ6ITAsb2JqZWN0OiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAifSxoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBlPWUubm9kZVR5cGU/eC5jYWNoZVtlW3guZXhwYW5kb11dOmVbeC5leHBhbmRvXSwhIWUmJiFJKGUpfSxkYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gUihlLHQsbil9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVyhlLHQpfSxfZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFIoZSx0LG4sITApfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe3JldHVybiBXKGUsdCwhMCl9LGFjY2VwdERhdGE6ZnVuY3Rpb24oZSl7aWYoZS5ub2RlVHlwZSYmMSE9PWUubm9kZVR5cGUmJjkhPT1lLm5vZGVUeXBlKXJldHVybiExO3ZhciB0PWUubm9kZU5hbWUmJngubm9EYXRhW2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKV07cmV0dXJuIXR8fHQhPT0hMCYmZS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PXR9fSkseC5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oZSxuKXt2YXIgcixpLG89bnVsbCxhPTAscz10aGlzWzBdO2lmKGU9PT10KXtpZih0aGlzLmxlbmd0aCYmKG89eC5kYXRhKHMpLDE9PT1zLm5vZGVUeXBlJiYheC5fZGF0YShzLCJwYXJzZWRBdHRycyIpKSl7Zm9yKHI9cy5hdHRyaWJ1dGVzO3IubGVuZ3RoPmE7YSsrKWk9clthXS5uYW1lLDA9PT1pLmluZGV4T2YoImRhdGEtIikmJihpPXguY2FtZWxDYXNlKGkuc2xpY2UoNSkpLCQocyxpLG9baV0pKTt4Ll9kYXRhKHMsInBhcnNlZEF0dHJzIiwhMCl9cmV0dXJuIG99cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlP3RoaXMuZWFjaChmdW5jdGlvbigpe3guZGF0YSh0aGlzLGUpfSk6YXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaChmdW5jdGlvbigpe3guZGF0YSh0aGlzLGUsbil9KTpzPyQocyxlLHguZGF0YShzLGUpKTpudWxsfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4LnJlbW92ZURhdGEodGhpcyxlKX0pfX0pO2Z1bmN0aW9uICQoZSxuLHIpe2lmKHI9PT10JiYxPT09ZS5ub2RlVHlwZSl7dmFyIGk9ImRhdGEtIituLnJlcGxhY2UoUCwiLSQxIikudG9Mb3dlckNhc2UoKTtpZihyPWUuZ2V0QXR0cmlidXRlKGkpLCJzdHJpbmciPT10eXBlb2Ygcil7dHJ5e3I9InRydWUiPT09cj8hMDoiZmFsc2UiPT09cj8hMToibnVsbCI9PT1yP251bGw6K3IrIiI9PT1yPytyOkIudGVzdChyKT94LnBhcnNlSlNPTihyKTpyfWNhdGNoKG8pe314LmRhdGEoZSxuLHIpfWVsc2Ugcj10fXJldHVybiByfWZ1bmN0aW9uIEkoZSl7dmFyIHQ7Zm9yKHQgaW4gZSlpZigoImRhdGEiIT09dHx8IXguaXNFbXB0eU9iamVjdChlW3RdKSkmJiJ0b0pTT04iIT09dClyZXR1cm4hMTtyZXR1cm4hMH14LmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpO3JldHVybiBlPyhuPShufHwiZngiKSsicXVldWUiLGk9eC5fZGF0YShlLG4pLHImJighaXx8eC5pc0FycmF5KHIpP2k9eC5fZGF0YShlLG4seC5tYWtlQXJyYXkocikpOmkucHVzaChyKSksaXx8W10pOnR9LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49eC5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz14Ll9xdWV1ZUhvb2tzKGUsdCksYT1mdW5jdGlvbigpe3guZGVxdWV1ZShlLHQpfTsiaW5wcm9ncmVzcyI9PT1pJiYoaT1uLnNoaWZ0KCksci0tKSxpJiYoImZ4Ij09PXQmJm4udW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBvLnN0b3AsaS5jYWxsKGUsYSxvKSksIXImJm8mJm8uZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihlLHQpe3ZhciBuPXQrInF1ZXVlSG9va3MiO3JldHVybiB4Ll9kYXRhKGUsbil8fHguX2RhdGEoZSxuLHtlbXB0eTp4LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXt4Ll9yZW1vdmVEYXRhKGUsdCsicXVldWUiKSx4Ll9yZW1vdmVEYXRhKGUsbil9KX0pfX0pLHguZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihlLG4pe3ZhciByPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlJiYobj1lLGU9ImZ4IixyLS0pLHI+YXJndW1lbnRzLmxlbmd0aD94LnF1ZXVlKHRoaXNbMF0sZSk6bj09PXQ/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD14LnF1ZXVlKHRoaXMsZSxuKTt4Ll9xdWV1ZUhvb2tzKHRoaXMsZSksImZ4Ij09PWUmJiJpbnByb2dyZXNzIiE9PXRbMF0mJnguZGVxdWV1ZSh0aGlzLGUpfSl9LGRlcXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3guZGVxdWV1ZSh0aGlzLGUpfSl9LGRlbGF5OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9eC5meD94LmZ4LnNwZWVkc1tlXXx8ZTplLHQ9dHx8ImZ4Iix0aGlzLnF1ZXVlKHQsZnVuY3Rpb24odCxuKXt2YXIgcj1zZXRUaW1lb3V0KHQsZSk7bi5zdG9wPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpfX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsbil7dmFyIHIsaT0xLG89eC5EZWZlcnJlZCgpLGE9dGhpcyxzPXRoaXMubGVuZ3RoLGw9ZnVuY3Rpb24oKXstLWl8fG8ucmVzb2x2ZVdpdGgoYSxbYV0pfTsic3RyaW5nIiE9dHlwZW9mIGUmJihuPWUsZT10KSxlPWV8fCJmeCI7d2hpbGUocy0tKXI9eC5fZGF0YShhW3NdLGUrInF1ZXVlSG9va3MiKSxyJiZyLmVtcHR5JiYoaSsrLHIuZW1wdHkuYWRkKGwpKTtyZXR1cm4gbCgpLG8ucHJvbWlzZShuKX19KTt2YXIgeixYLFU9L1tcdFxyXG5cZl0vZyxWPS9cci9nLFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksSj0vXig/OmF8YXJlYSkkL2ksRz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLFE9eC5zdXBwb3J0LmdldFNldEF0dHJpYnV0ZSxLPXguc3VwcG9ydC5pbnB1dDt4LmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiB4LmFjY2Vzcyh0aGlzLHguYXR0cixlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5yZW1vdmVBdHRyKHRoaXMsZSl9KX0scHJvcDpmdW5jdGlvbihlLHQpe3JldHVybiB4LmFjY2Vzcyh0aGlzLHgucHJvcCxlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gZT14LnByb3BGaXhbZV18fGUsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbZV09dCxkZWxldGUgdGhpc1tlXX1jYXRjaChuKXt9fSl9LGFkZENsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYT0wLHM9dGhpcy5sZW5ndGgsbD0ic3RyaW5nIj09dHlwZW9mIGUmJmU7aWYoeC5pc0Z1bmN0aW9uKGUpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7eCh0aGlzKS5hZGRDbGFzcyhlLmNhbGwodGhpcyx0LHRoaXMuY2xhc3NOYW1lKSl9KTtpZihsKWZvcih0PShlfHwiIikubWF0Y2goVCl8fFtdO3M+YTthKyspaWYobj10aGlzW2FdLHI9MT09PW4ubm9kZVR5cGUmJihuLmNsYXNzTmFtZT8oIiAiK24uY2xhc3NOYW1lKyIgIikucmVwbGFjZShVLCIgIik6IiAiKSl7bz0wO3doaWxlKGk9dFtvKytdKTA+ci5pbmRleE9mKCIgIitpKyIgIikmJihyKz1pKyIgIik7bi5jbGFzc05hbWU9eC50cmltKHIpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGE9MCxzPXRoaXMubGVuZ3RoLGw9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgZSYmZTtpZih4LmlzRnVuY3Rpb24oZSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXt4KHRoaXMpLnJlbW92ZUNsYXNzKGUuY2FsbCh0aGlzLHQsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGwpZm9yKHQ9KGV8fCIiKS5tYXRjaChUKXx8W107cz5hO2ErKylpZihuPXRoaXNbYV0scj0xPT09bi5ub2RlVHlwZSYmKG4uY2xhc3NOYW1lPygiICIrbi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKFUsIiAiKToiIikpe289MDt3aGlsZShpPXRbbysrXSl3aGlsZShyLmluZGV4T2YoIiAiK2krIiAiKT49MClyPXIucmVwbGFjZSgiICIraSsiICIsIiAiKTtuLmNsYXNzTmFtZT1lP3gudHJpbShyKToiIn1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10eXBlb2YgZTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0JiYic3RyaW5nIj09PW4/dD90aGlzLmFkZENsYXNzKGUpOnRoaXMucmVtb3ZlQ2xhc3MoZSk6eC5pc0Z1bmN0aW9uKGUpP3RoaXMuZWFjaChmdW5jdGlvbihuKXt4KHRoaXMpLnRvZ2dsZUNsYXNzKGUuY2FsbCh0aGlzLG4sdGhpcy5jbGFzc05hbWUsdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXtpZigic3RyaW5nIj09PW4pe3ZhciB0LHI9MCxvPXgodGhpcyksYT1lLm1hdGNoKFQpfHxbXTt3aGlsZSh0PWFbcisrXSlvLmhhc0NsYXNzKHQpP28ucmVtb3ZlQ2xhc3ModCk6by5hZGRDbGFzcyh0KX1lbHNlKG49PT1pfHwiYm9vbGVhbiI9PT1uKSYmKHRoaXMuY2xhc3NOYW1lJiZ4Ll9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKSx0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8ZT09PSExPyIiOnguX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIil9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIHQ9IiAiK2UrIiAiLG49MCxyPXRoaXMubGVuZ3RoO2Zvcig7cj5uO24rKylpZigxPT09dGhpc1tuXS5ub2RlVHlwZSYmKCIgIit0aGlzW25dLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoVSwiICIpLmluZGV4T2YodCk+PTApcmV0dXJuITA7cmV0dXJuITF9LHZhbDpmdW5jdGlvbihlKXt2YXIgbixyLGksbz10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBpPXguaXNGdW5jdGlvbihlKSx0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIG87MT09PXRoaXMubm9kZVR5cGUmJihvPWk/ZS5jYWxsKHRoaXMsbix4KHRoaXMpLnZhbCgpKTplLG51bGw9PW8/bz0iIjoibnVtYmVyIj09dHlwZW9mIG8/bys9IiI6eC5pc0FycmF5KG8pJiYobz14Lm1hcChvLGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSkscj14LnZhbEhvb2tzW3RoaXMudHlwZV18fHgudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxyJiYic2V0ImluIHImJnIuc2V0KHRoaXMsbywidmFsdWUiKSE9PXR8fCh0aGlzLnZhbHVlPW8pKX0pO2lmKG8pcmV0dXJuIHI9eC52YWxIb29rc1tvLnR5cGVdfHx4LnZhbEhvb2tzW28ubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0sciYmImdldCJpbiByJiYobj1yLmdldChvLCJ2YWx1ZSIpKSE9PXQ/bjoobj1vLnZhbHVlLCJzdHJpbmciPT10eXBlb2Ygbj9uLnJlcGxhY2UoViwiIik6bnVsbD09bj8iIjpuKX19fSkseC5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihlKXt2YXIgdD14LmZpbmQuYXR0cihlLCJ2YWx1ZSIpO3JldHVybiBudWxsIT10P3Q6ZS50ZXh0fX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWUub3B0aW9ucyxpPWUuc2VsZWN0ZWRJbmRleCxvPSJzZWxlY3Qtb25lIj09PWUudHlwZXx8MD5pLGE9bz9udWxsOltdLHM9bz9pKzE6ci5sZW5ndGgsbD0wPmk/czpvP2k6MDtmb3IoO3M+bDtsKyspaWYobj1yW2xdLCEoIW4uc2VsZWN0ZWQmJmwhPT1pfHwoeC5zdXBwb3J0Lm9wdERpc2FibGVkP24uZGlzYWJsZWQ6bnVsbCE9PW4uZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8bi5wYXJlbnROb2RlLmRpc2FibGVkJiZ4Lm5vZGVOYW1lKG4ucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKHQ9eChuKS52YWwoKSxvKXJldHVybiB0O2EucHVzaCh0KX1yZXR1cm4gYX0sc2V0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPWUub3B0aW9ucyxvPXgubWFrZUFycmF5KHQpLGE9aS5sZW5ndGg7d2hpbGUoYS0tKXI9aVthXSwoci5zZWxlY3RlZD14LmluQXJyYXkoeChyKS52YWwoKSxvKT49MCkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fSxhdHRyOmZ1bmN0aW9uKGUsbixyKXt2YXIgbyxhLHM9ZS5ub2RlVHlwZTtpZihlJiYzIT09cyYmOCE9PXMmJjIhPT1zKXJldHVybiB0eXBlb2YgZS5nZXRBdHRyaWJ1dGU9PT1pP3gucHJvcChlLG4scik6KDE9PT1zJiZ4LmlzWE1MRG9jKGUpfHwobj1uLnRvTG93ZXJDYXNlKCksbz14LmF0dHJIb29rc1tuXXx8KHguZXhwci5tYXRjaC5ib29sLnRlc3Qobik/WDp6KSkscj09PXQ/byYmImdldCJpbiBvJiZudWxsIT09KGE9by5nZXQoZSxuKSk/YTooYT14LmZpbmQuYXR0cihlLG4pLG51bGw9PWE/dDphKTpudWxsIT09cj9vJiYic2V0ImluIG8mJihhPW8uc2V0KGUscixuKSkhPT10P2E6KGUuc2V0QXR0cmlidXRlKG4scisiIikscik6KHgucmVtb3ZlQXR0cihlLG4pLHQpKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT0wLG89dCYmdC5tYXRjaChUKTtpZihvJiYxPT09ZS5ub2RlVHlwZSl3aGlsZShuPW9baSsrXSlyPXgucHJvcEZpeFtuXXx8bix4LmV4cHIubWF0Y2guYm9vbC50ZXN0KG4pP0smJlF8fCFHLnRlc3Qobik/ZVtyXT0hMTplW3guY2FtZWxDYXNlKCJkZWZhdWx0LSIrbildPWVbcl09ITE6eC5hdHRyKGUsbiwiIiksZS5yZW1vdmVBdHRyaWJ1dGUoUT9uOnIpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihlLHQpe2lmKCF4LnN1cHBvcnQucmFkaW9WYWx1ZSYmInJhZGlvIj09PXQmJngubm9kZU5hbWUoZSwiaW5wdXQiKSl7dmFyIG49ZS52YWx1ZTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoInR5cGUiLHQpLG4mJihlLnZhbHVlPW4pLHR9fX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifSxwcm9wOmZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvLGEscz1lLm5vZGVUeXBlO2lmKGUmJjMhPT1zJiY4IT09cyYmMiE9PXMpcmV0dXJuIGE9MSE9PXN8fCF4LmlzWE1MRG9jKGUpLGEmJihuPXgucHJvcEZpeFtuXXx8bixvPXgucHJvcEhvb2tzW25dKSxyIT09dD9vJiYic2V0ImluIG8mJihpPW8uc2V0KGUscixuKSkhPT10P2k6ZVtuXT1yOm8mJiJnZXQiaW4gbyYmbnVsbCE9PShpPW8uZ2V0KGUsbikpP2k6ZVtuXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXguZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6WS50ZXN0KGUubm9kZU5hbWUpfHxKLnRlc3QoZS5ub2RlTmFtZSkmJmUuaHJlZj8wOi0xfX19fSksWD17c2V0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD09PSExP3gucmVtb3ZlQXR0cihlLG4pOksmJlF8fCFHLnRlc3Qobik/ZS5zZXRBdHRyaWJ1dGUoIVEmJngucHJvcEZpeFtuXXx8bixuKTplW3guY2FtZWxDYXNlKCJkZWZhdWx0LSIrbildPWVbbl09ITAsbn19LHguZWFjaCh4LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLG4pe3ZhciByPXguZXhwci5hdHRySGFuZGxlW25dfHx4LmZpbmQuYXR0cjt4LmV4cHIuYXR0ckhhbmRsZVtuXT1LJiZRfHwhRy50ZXN0KG4pP2Z1bmN0aW9uKGUsbixpKXt2YXIgbz14LmV4cHIuYXR0ckhhbmRsZVtuXSxhPWk/dDooeC5leHByLmF0dHJIYW5kbGVbbl09dCkhPXIoZSxuLGkpP24udG9Mb3dlckNhc2UoKTpudWxsO3JldHVybiB4LmV4cHIuYXR0ckhhbmRsZVtuXT1vLGF9OmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gcj90OmVbeC5jYW1lbENhc2UoImRlZmF1bHQtIituKV0/bi50b0xvd2VyQ2FzZSgpOm51bGx9fSksSyYmUXx8KHguYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB4Lm5vZGVOYW1lKGUsImlucHV0Iik/KGUuZGVmYXVsdFZhbHVlPW4sdCk6eiYmei5zZXQoZSxuLHIpfX0pLFF8fCh6PXtzZXQ6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPWUuZ2V0QXR0cmlidXRlTm9kZShyKTtyZXR1cm4gaXx8ZS5zZXRBdHRyaWJ1dGVOb2RlKGk9ZS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShyKSksaS52YWx1ZT1uKz0iIiwidmFsdWUiPT09cnx8bj09PWUuZ2V0QXR0cmlidXRlKHIpP246dH19LHguZXhwci5hdHRySGFuZGxlLmlkPXguZXhwci5hdHRySGFuZGxlLm5hbWU9eC5leHByLmF0dHJIYW5kbGUuY29vcmRzPWZ1bmN0aW9uKGUsbixyKXt2YXIgaTtyZXR1cm4gcj90OihpPWUuZ2V0QXR0cmlidXRlTm9kZShuKSkmJiIiIT09aS52YWx1ZT9pLnZhbHVlOm51bGx9LHgudmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oZSxuKXt2YXIgcj1lLmdldEF0dHJpYnV0ZU5vZGUobik7cmV0dXJuIHImJnIuc3BlY2lmaWVkP3IudmFsdWU6dH0sc2V0Onouc2V0fSx4LmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihlLHQsbil7ei5zZXQoZSwiIj09PXQ/ITE6dCxuKX19LHguZWFjaChbIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oZSxuKXt4LmF0dHJIb29rc1tuXT17c2V0OmZ1bmN0aW9uKGUscil7cmV0dXJuIiI9PT1yPyhlLnNldEF0dHJpYnV0ZShuLCJhdXRvIikscik6dH19fSkpLHguc3VwcG9ydC5ocmVmTm9ybWFsaXplZHx8eC5lYWNoKFsiaHJlZiIsInNyYyJdLGZ1bmN0aW9uKGUsdCl7eC5wcm9wSG9va3NbdF09e2dldDpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCw0KX19fSkseC5zdXBwb3J0LnN0eWxlfHwoeC5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZS5jc3NUZXh0fHx0fSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zdHlsZS5jc3NUZXh0PXQrIiJ9fSkseC5zdXBwb3J0Lm9wdFNlbGVjdGVkfHwoeC5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJih0LnNlbGVjdGVkSW5kZXgsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSx4LmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe3gucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSx4LnN1cHBvcnQuZW5jdHlwZXx8KHgucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpLHguZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe3gudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLG4pe3JldHVybiB4LmlzQXJyYXkobik/ZS5jaGVja2VkPXguaW5BcnJheSh4KGUpLnZhbCgpLG4pPj0wOnR9fSx4LnN1cHBvcnQuY2hlY2tPbnx8KHgudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KTt2YXIgWj0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksZXQ9L15rZXkvLHR0PS9eKD86bW91c2V8Y29udGV4dG1lbnUpfGNsaWNrLyxudD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8scnQ9L14oW14uXSopKD86XC4oLispfCkkLztmdW5jdGlvbiBpdCgpe3JldHVybiEwfWZ1bmN0aW9uIG90KCl7cmV0dXJuITF9ZnVuY3Rpb24gYXQoKXt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fXguZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oZSxuLHIsbyxhKXt2YXIgcyxsLHUsYyxwLGYsZCxoLGcsbSx5LHY9eC5fZGF0YShlKTtpZih2KXtyLmhhbmRsZXImJihjPXIscj1jLmhhbmRsZXIsYT1jLnNlbGVjdG9yKSxyLmd1aWR8fChyLmd1aWQ9eC5ndWlkKyspLChsPXYuZXZlbnRzKXx8KGw9di5ldmVudHM9e30pLChmPXYuaGFuZGxlKXx8KGY9di5oYW5kbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiB4PT09aXx8ZSYmeC5ldmVudC50cmlnZ2VyZWQ9PT1lLnR5cGU/dDp4LmV2ZW50LmRpc3BhdGNoLmFwcGx5KGYuZWxlbSxhcmd1bWVudHMpfSxmLmVsZW09ZSksbj0obnx8IiIpLm1hdGNoKFQpfHxbIiJdLHU9bi5sZW5ndGg7d2hpbGUodS0tKXM9cnQuZXhlYyhuW3VdKXx8W10sZz15PXNbMV0sbT0oc1syXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGcmJihwPXguZXZlbnQuc3BlY2lhbFtnXXx8e30sZz0oYT9wLmRlbGVnYXRlVHlwZTpwLmJpbmRUeXBlKXx8ZyxwPXguZXZlbnQuc3BlY2lhbFtnXXx8e30sZD14LmV4dGVuZCh7dHlwZTpnLG9yaWdUeXBlOnksZGF0YTpvLGhhbmRsZXI6cixndWlkOnIuZ3VpZCxzZWxlY3RvcjphLG5lZWRzQ29udGV4dDphJiZ4LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoYSksbmFtZXNwYWNlOm0uam9pbigiLiIpfSxjKSwoaD1sW2ddKXx8KGg9bFtnXT1bXSxoLmRlbGVnYXRlQ291bnQ9MCxwLnNldHVwJiZwLnNldHVwLmNhbGwoZSxvLG0sZikhPT0hMXx8KGUuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoZyxmLCExKTplLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbiIrZyxmKSkpLHAuYWRkJiYocC5hZGQuY2FsbChlLGQpLGQuaGFuZGxlci5ndWlkfHwoZC5oYW5kbGVyLmd1aWQ9ci5ndWlkKSksYT9oLnNwbGljZShoLmRlbGVnYXRlQ291bnQrKywwLGQpOmgucHVzaChkKSx4LmV2ZW50Lmdsb2JhbFtnXT0hMCk7ZT1udWxsfX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG8sYSxzLGwsdSxjLHAsZixkLGgsZyxtPXguaGFzRGF0YShlKSYmeC5fZGF0YShlKTtpZihtJiYoYz1tLmV2ZW50cykpe3Q9KHR8fCIiKS5tYXRjaChUKXx8WyIiXSx1PXQubGVuZ3RoO3doaWxlKHUtLSlpZihzPXJ0LmV4ZWModFt1XSl8fFtdLGQ9Zz1zWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtwPXguZXZlbnQuc3BlY2lhbFtkXXx8e30sZD0ocj9wLmRlbGVnYXRlVHlwZTpwLmJpbmRUeXBlKXx8ZCxmPWNbZF18fFtdLHM9c1syXSYmUmVnRXhwKCIoXnxcXC4pIitoLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGw9bz1mLmxlbmd0aDt3aGlsZShvLS0pYT1mW29dLCFpJiZnIT09YS5vcmlnVHlwZXx8biYmbi5ndWlkIT09YS5ndWlkfHxzJiYhcy50ZXN0KGEubmFtZXNwYWNlKXx8ciYmciE9PWEuc2VsZWN0b3ImJigiKioiIT09cnx8IWEuc2VsZWN0b3IpfHwoZi5zcGxpY2UobywxKSxhLnNlbGVjdG9yJiZmLmRlbGVnYXRlQ291bnQtLSxwLnJlbW92ZSYmcC5yZW1vdmUuY2FsbCg="
},
{
"key": "jquery.min.js_2",
"type": "binary",
"value": "base64:ZSxhKSk7bCYmIWYubGVuZ3RoJiYocC50ZWFyZG93biYmcC50ZWFyZG93bi5jYWxsKGUsaCxtLmhhbmRsZSkhPT0hMXx8eC5yZW1vdmVFdmVudChlLGQsbS5oYW5kbGUpLGRlbGV0ZSBjW2RdKX1lbHNlIGZvcihkIGluIGMpeC5ldmVudC5yZW1vdmUoZSxkK3RbdV0sbixyLCEwKTt4LmlzRW1wdHlPYmplY3QoYykmJihkZWxldGUgbS5oYW5kbGUseC5fcmVtb3ZlRGF0YShlLCJldmVudHMiKSl9fSx0cmlnZ2VyOmZ1bmN0aW9uKG4scixpLG8pe3ZhciBzLGwsdSxjLHAsZixkLGg9W2l8fGFdLGc9di5jYWxsKG4sInR5cGUiKT9uLnR5cGU6bixtPXYuY2FsbChuLCJuYW1lc3BhY2UiKT9uLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKHU9Zj1pPWl8fGEsMyE9PWkubm9kZVR5cGUmJjghPT1pLm5vZGVUeXBlJiYhbnQudGVzdChnK3guZXZlbnQudHJpZ2dlcmVkKSYmKGcuaW5kZXhPZigiLiIpPj0wJiYobT1nLnNwbGl0KCIuIiksZz1tLnNoaWZ0KCksbS5zb3J0KCkpLGw9MD5nLmluZGV4T2YoIjoiKSYmIm9uIitnLG49blt4LmV4cGFuZG9dP246bmV3IHguRXZlbnQoZywib2JqZWN0Ij09dHlwZW9mIG4mJm4pLG4uaXNUcmlnZ2VyPW8/MjozLG4ubmFtZXNwYWNlPW0uam9pbigiLiIpLG4ubmFtZXNwYWNlX3JlPW4ubmFtZXNwYWNlP1JlZ0V4cCgiKF58XFwuKSIrbS5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLG4ucmVzdWx0PXQsbi50YXJnZXR8fChuLnRhcmdldD1pKSxyPW51bGw9PXI/W25dOngubWFrZUFycmF5KHIsW25dKSxwPXguZXZlbnQuc3BlY2lhbFtnXXx8e30sb3x8IXAudHJpZ2dlcnx8cC50cmlnZ2VyLmFwcGx5KGkscikhPT0hMSkpe2lmKCFvJiYhcC5ub0J1YmJsZSYmIXguaXNXaW5kb3coaSkpe2ZvcihjPXAuZGVsZWdhdGVUeXBlfHxnLG50LnRlc3QoYytnKXx8KHU9dS5wYXJlbnROb2RlKTt1O3U9dS5wYXJlbnROb2RlKWgucHVzaCh1KSxmPXU7Zj09PShpLm93bmVyRG9jdW1lbnR8fGEpJiZoLnB1c2goZi5kZWZhdWx0Vmlld3x8Zi5wYXJlbnRXaW5kb3d8fGUpfWQ9MDt3aGlsZSgodT1oW2QrK10pJiYhbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKW4udHlwZT1kPjE/YzpwLmJpbmRUeXBlfHxnLHM9KHguX2RhdGEodSwiZXZlbnRzIil8fHt9KVtuLnR5cGVdJiZ4Ll9kYXRhKHUsImhhbmRsZSIpLHMmJnMuYXBwbHkodSxyKSxzPWwmJnVbbF0scyYmeC5hY2NlcHREYXRhKHUpJiZzLmFwcGx5JiZzLmFwcGx5KHUscik9PT0hMSYmbi5wcmV2ZW50RGVmYXVsdCgpO2lmKG4udHlwZT1nLCFvJiYhbi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFwLl9kZWZhdWx0fHxwLl9kZWZhdWx0LmFwcGx5KGgucG9wKCkscik9PT0hMSkmJnguYWNjZXB0RGF0YShpKSYmbCYmaVtnXSYmIXguaXNXaW5kb3coaSkpe2Y9aVtsXSxmJiYoaVtsXT1udWxsKSx4LmV2ZW50LnRyaWdnZXJlZD1nO3RyeXtpW2ddKCl9Y2F0Y2goeSl7fXguZXZlbnQudHJpZ2dlcmVkPXQsZiYmKGlbbF09Zil9cmV0dXJuIG4ucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oZSl7ZT14LmV2ZW50LmZpeChlKTt2YXIgbixyLGksbyxhLHM9W10sbD1nLmNhbGwoYXJndW1lbnRzKSx1PSh4Ll9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbZS50eXBlXXx8W10sYz14LmV2ZW50LnNwZWNpYWxbZS50eXBlXXx8e307aWYobFswXT1lLGUuZGVsZWdhdGVUYXJnZXQ9dGhpcywhYy5wcmVEaXNwYXRjaHx8Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsZSkhPT0hMSl7cz14LmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxlLHUpLG49MDt3aGlsZSgobz1zW24rK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXtlLmN1cnJlbnRUYXJnZXQ9by5lbGVtLGE9MDt3aGlsZSgoaT1vLmhhbmRsZXJzW2ErK10pJiYhZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghZS5uYW1lc3BhY2VfcmV8fGUubmFtZXNwYWNlX3JlLnRlc3QoaS5uYW1lc3BhY2UpKSYmKGUuaGFuZGxlT2JqPWksZS5kYXRhPWkuZGF0YSxyPSgoeC5ldmVudC5zcGVjaWFsW2kub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxpLmhhbmRsZXIpLmFwcGx5KG8uZWxlbSxsKSxyIT09dCYmKGUucmVzdWx0PXIpPT09ITEmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGUpLGUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSxuKXt2YXIgcixpLG8sYSxzPVtdLGw9bi5kZWxlZ2F0ZUNvdW50LHU9ZS50YXJnZXQ7aWYobCYmdS5ub2RlVHlwZSYmKCFlLmJ1dHRvbnx8ImNsaWNrIiE9PWUudHlwZSkpZm9yKDt1IT10aGlzO3U9dS5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT11Lm5vZGVUeXBlJiYodS5kaXNhYmxlZCE9PSEwfHwiY2xpY2siIT09ZS50eXBlKSl7Zm9yKG89W10sYT0wO2w+YTthKyspaT1uW2FdLHI9aS5zZWxlY3RvcisiICIsb1tyXT09PXQmJihvW3JdPWkubmVlZHNDb250ZXh0P3gocix0aGlzKS5pbmRleCh1KT49MDp4LmZpbmQocix0aGlzLG51bGwsW3VdKS5sZW5ndGgpLG9bcl0mJm8ucHVzaChpKTtvLmxlbmd0aCYmcy5wdXNoKHtlbGVtOnUsaGFuZGxlcnM6b30pfXJldHVybiBuLmxlbmd0aD5sJiZzLnB1c2goe2VsZW06dGhpcyxoYW5kbGVyczpuLnNsaWNlKGwpfSksc30sZml4OmZ1bmN0aW9uKGUpe2lmKGVbeC5leHBhbmRvXSlyZXR1cm4gZTt2YXIgdCxuLHIsaT1lLnR5cGUsbz1lLHM9dGhpcy5maXhIb29rc1tpXTtzfHwodGhpcy5maXhIb29rc1tpXT1zPXR0LnRlc3QoaSk/dGhpcy5tb3VzZUhvb2tzOmV0LnRlc3QoaSk/dGhpcy5rZXlIb29rczp7fSkscj1zLnByb3BzP3RoaXMucHJvcHMuY29uY2F0KHMucHJvcHMpOnRoaXMucHJvcHMsZT1uZXcgeC5FdmVudChvKSx0PXIubGVuZ3RoO3doaWxlKHQtLSluPXJbdF0sZVtuXT1vW25dO3JldHVybiBlLnRhcmdldHx8KGUudGFyZ2V0PW8uc3JjRWxlbWVudHx8YSksMz09PWUudGFyZ2V0Lm5vZGVUeXBlJiYoZS50YXJnZXQ9ZS50YXJnZXQucGFyZW50Tm9kZSksZS5tZXRhS2V5PSEhZS5tZXRhS2V5LHMuZmlsdGVyP3MuZmlsdGVyKGUsbyk6ZX0scHJvcHM6ImFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGV2ZW50UGhhc2UgbWV0YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmlldyB3aGljaCIuc3BsaXQoIiAiKSxmaXhIb29rczp7fSxrZXlIb29rczp7cHJvcHM6ImNoYXIgY2hhckNvZGUga2V5IGtleUNvZGUiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWUud2hpY2gmJihlLndoaWNoPW51bGwhPXQuY2hhckNvZGU/dC5jaGFyQ29kZTp0LmtleUNvZGUpLGV9fSxtb3VzZUhvb2tzOntwcm9wczoiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIGZyb21FbGVtZW50IG9mZnNldFggb2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50Ii5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihlLG4pe3ZhciByLGksbyxzPW4uYnV0dG9uLGw9bi5mcm9tRWxlbWVudDtyZXR1cm4gbnVsbD09ZS5wYWdlWCYmbnVsbCE9bi5jbGllbnRYJiYoaT1lLnRhcmdldC5vd25lckRvY3VtZW50fHxhLG89aS5kb2N1bWVudEVsZW1lbnQscj1pLmJvZHksZS5wYWdlWD1uLmNsaWVudFgrKG8mJm8uc2Nyb2xsTGVmdHx8ciYmci5zY3JvbGxMZWZ0fHwwKS0obyYmby5jbGllbnRMZWZ0fHxyJiZyLmNsaWVudExlZnR8fDApLGUucGFnZVk9bi5jbGllbnRZKyhvJiZvLnNjcm9sbFRvcHx8ciYmci5zY3JvbGxUb3B8fDApLShvJiZvLmNsaWVudFRvcHx8ciYmci5jbGllbnRUb3B8fDApKSwhZS5yZWxhdGVkVGFyZ2V0JiZsJiYoZS5yZWxhdGVkVGFyZ2V0PWw9PT1lLnRhcmdldD9uLnRvRWxlbWVudDpsKSxlLndoaWNofHxzPT09dHx8KGUud2hpY2g9MSZzPzE6MiZzPzM6NCZzPzI6MCksZX19LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXMhPT1hdCgpJiZ0aGlzLmZvY3VzKXRyeXtyZXR1cm4gdGhpcy5mb2N1cygpLCExfWNhdGNoKGUpe319LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PWF0KCkmJnRoaXMuYmx1cj8odGhpcy5ibHVyKCksITEpOnR9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiB4Lm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dH0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHgubm9kZU5hbWUoZS50YXJnZXQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe2UucmVzdWx0IT09dCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9eC5leHRlbmQobmV3IHguRXZlbnQsbix7dHlwZTplLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtyP3guZXZlbnQudHJpZ2dlcihpLG51bGwsdCk6eC5ldmVudC5kaXNwYXRjaC5jYWxsKHQsaSksaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmbi5wcmV2ZW50RGVmYXVsdCgpfX0seC5yZW1vdmVFdmVudD1hLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbiwhMSl9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0ib24iK3Q7ZS5kZXRhY2hFdmVudCYmKHR5cGVvZiBlW3JdPT09aSYmKGVbcl09bnVsbCksZS5kZXRhY2hFdmVudChyLG4pKX0seC5FdmVudD1mdW5jdGlvbihlLG4pe3JldHVybiB0aGlzIGluc3RhbmNlb2YgeC5FdmVudD8oZSYmZS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9ZSx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWUuZGVmYXVsdFByZXZlbnRlZHx8ZS5yZXR1cm5WYWx1ZT09PSExfHxlLmdldFByZXZlbnREZWZhdWx0JiZlLmdldFByZXZlbnREZWZhdWx0KCk/aXQ6b3QpOnRoaXMudHlwZT1lLG4mJnguZXh0ZW5kKHRoaXMsbiksdGhpcy50aW1lU3RhbXA9ZSYmZS50aW1lU3RhbXB8fHgubm93KCksdGhpc1t4LmV4cGFuZG9dPSEwLHQpOm5ldyB4LkV2ZW50KGUsbil9LHguRXZlbnQucHJvdG90eXBlPXtpc0RlZmF1bHRQcmV2ZW50ZWQ6b3QsaXNQcm9wYWdhdGlvblN0b3BwZWQ6b3QsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6b3QscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9aXQsZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1pdCxlJiYoZS5zdG9wUHJvcGFnYXRpb24mJmUuc3RvcFByb3BhZ2F0aW9uKCksZS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWl0LHRoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fSx4LmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxmdW5jdGlvbihlLHQpe3guZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOnQsYmluZFR5cGU6dCxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIG4scj10aGlzLGk9ZS5yZWxhdGVkVGFyZ2V0LG89ZS5oYW5kbGVPYmo7cmV0dXJuKCFpfHxpIT09ciYmIXguY29udGFpbnMocixpKSkmJihlLnR5cGU9by5vcmlnVHlwZSxuPW8uaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS50eXBlPXQpLG59fX0pLHguc3VwcG9ydC5zdWJtaXRCdWJibGVzfHwoeC5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4geC5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6KHguZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oZSl7dmFyIG49ZS50YXJnZXQscj14Lm5vZGVOYW1lKG4sImlucHV0Iil8fHgubm9kZU5hbWUobiwiYnV0dG9uIik/bi5mb3JtOnQ7ciYmIXguX2RhdGEociwic3VibWl0QnViYmxlcyIpJiYoeC5ldmVudC5hZGQociwic3VibWl0Ll9zdWJtaXQiLGZ1bmN0aW9uKGUpe2UuX3N1Ym1pdF9idWJibGU9ITB9KSx4Ll9kYXRhKHIsInN1Ym1pdEJ1YmJsZXMiLCEwKSl9KSx0KX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe2UuX3N1Ym1pdF9idWJibGUmJihkZWxldGUgZS5fc3VibWl0X2J1YmJsZSx0aGlzLnBhcmVudE5vZGUmJiFlLmlzVHJpZ2dlciYmeC5ldmVudC5zaW11bGF0ZSgic3VibWl0Iix0aGlzLnBhcmVudE5vZGUsZSwhMCkpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiB4Lm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTooeC5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKSx0KX19KSx4LnN1cHBvcnQuY2hhbmdlQnViYmxlc3x8KHguZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFoudGVzdCh0aGlzLm5vZGVOYW1lKT8oKCJjaGVja2JveCI9PT10aGlzLnR5cGV8fCJyYWRpbyI9PT10aGlzLnR5cGUpJiYoeC5ldmVudC5hZGQodGhpcywicHJvcGVydHljaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oZSl7ImNoZWNrZWQiPT09ZS5vcmlnaW5hbEV2ZW50LnByb3BlcnR5TmFtZSYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMCl9KSx4LmV2ZW50LmFkZCh0aGlzLCJjbGljay5fY2hhbmdlIixmdW5jdGlvbihlKXt0aGlzLl9qdXN0X2NoYW5nZWQmJiFlLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMSkseC5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLGUsITApfSkpLCExKTooeC5ldmVudC5hZGQodGhpcywiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7Wi50ZXN0KHQubm9kZU5hbWUpJiYheC5fZGF0YSh0LCJjaGFuZ2VCdWJibGVzIikmJih4LmV2ZW50LmFkZCh0LCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oZSl7IXRoaXMucGFyZW50Tm9kZXx8ZS5pc1NpbXVsYXRlZHx8ZS5pc1RyaWdnZXJ8fHguZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcy5wYXJlbnROb2RlLGUsITApfSkseC5fZGF0YSh0LCJjaGFuZ2VCdWJibGVzIiwhMCkpfSksdCl9LGhhbmRsZTpmdW5jdGlvbihlKXt2YXIgbj1lLnRhcmdldDtyZXR1cm4gdGhpcyE9PW58fGUuaXNTaW11bGF0ZWR8fGUuaXNUcmlnZ2VyfHwicmFkaW8iIT09bi50eXBlJiYiY2hlY2tib3giIT09bi50eXBlP2UuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOnR9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIHguZXZlbnQucmVtb3ZlKHRoaXMsIi5fY2hhbmdlIiksIVoudGVzdCh0aGlzLm5vZGVOYW1lKX19KSx4LnN1cHBvcnQuZm9jdXNpbkJ1YmJsZXN8fHguZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXt2YXIgbj0wLHI9ZnVuY3Rpb24oZSl7eC5ldmVudC5zaW11bGF0ZSh0LGUudGFyZ2V0LHguZXZlbnQuZml4KGUpLCEwKX07eC5ldmVudC5zcGVjaWFsW3RdPXtzZXR1cDpmdW5jdGlvbigpezA9PT1uKysmJmEuYWRkRXZlbnRMaXN0ZW5lcihlLHIsITApfSx0ZWFyZG93bjpmdW5jdGlvbigpezA9PT0tLW4mJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHIsITApfX19KSx4LmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7InN0cmluZyIhPXR5cGVvZiBuJiYocj1yfHxuLG49dCk7Zm9yKGEgaW4gZSl0aGlzLm9uKGEsbixyLGVbYV0sbyk7cmV0dXJuIHRoaXN9aWYobnVsbD09ciYmbnVsbD09aT8oaT1uLHI9bj10KTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj10KTooaT1yLHI9bixuPXQpKSxpPT09ITEpaT1vdDtlbHNlIGlmKCFpKXJldHVybiB0aGlzO3JldHVybiAxPT09byYmKHM9aSxpPWZ1bmN0aW9uKGUpe3JldHVybiB4KCkub2ZmKGUpLHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpLmd1aWQ9cy5ndWlkfHwocy5ndWlkPXguZ3VpZCsrKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7eC5ldmVudC5hZGQodGhpcyxlLGkscixuKX0pfSxvbmU6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMub24oZSx0LG4sciwxKX0sb2ZmOmZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvO2lmKGUmJmUucHJldmVudERlZmF1bHQmJmUuaGFuZGxlT2JqKXJldHVybiBpPWUuaGFuZGxlT2JqLHgoZS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGkubmFtZXNwYWNlP2kub3JpZ1R5cGUrIi4iK2kubmFtZXNwYWNlOmkub3JpZ1R5cGUsaS5zZWxlY3RvcixpLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBlKXtmb3IobyBpbiBlKXRoaXMub2ZmKG8sbixlW29dKTtyZXR1cm4gdGhpc31yZXR1cm4obj09PSExfHwiZnVuY3Rpb24iPT10eXBlb2YgbikmJihyPW4sbj10KSxyPT09ITEmJihyPW90KSx0aGlzLmVhY2goZnVuY3Rpb24oKXt4LmV2ZW50LnJlbW92ZSh0aGlzLGUscixuKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3guZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzWzBdO3JldHVybiByP3guZXZlbnQudHJpZ2dlcihlLG4sciwhMCk6dH19KTt2YXIgc3Q9L14uW146I1xbXC4sXSokLyxsdD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyx1dD14LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LGN0PXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O3guZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGUpe3ZhciB0LG49W10scj10aGlzLGk9ci5sZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiB0aGlzLnB1c2hTdGFjayh4KGUpLmZpbHRlcihmdW5jdGlvbigpe2Zvcih0PTA7aT50O3QrKylpZih4LmNvbnRhaW5zKHJbdF0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKHQ9MDtpPnQ7dCsrKXguZmluZChlLHJbdF0sbik7cmV0dXJuIG49dGhpcy5wdXNoU3RhY2soaT4xP3gudW5pcXVlKG4pOm4pLG4uc2VsZWN0b3I9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yKyIgIitlOmUsbn0saGFzOmZ1bmN0aW9uKGUpe3ZhciB0LG49eChlLHRoaXMpLHI9bi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHQ9MDtyPnQ7dCsrKWlmKHguY29udGFpbnModGhpcyxuW3RdKSlyZXR1cm4hMH0pfSxub3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGZ0KHRoaXMsZXx8W10sITApKX0sZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmdCh0aGlzLGV8fFtdLCExKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhZnQodGhpcywic3RyaW5nIj09dHlwZW9mIGUmJnV0LnRlc3QoZSk/eChlKTplfHxbXSwhMSkubGVuZ3RofSxjbG9zZXN0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9dGhpcy5sZW5ndGgsbz1bXSxhPXV0LnRlc3QoZSl8fCJzdHJpbmciIT10eXBlb2YgZT94KGUsdHx8dGhpcy5jb250ZXh0KTowO2Zvcig7aT5yO3IrKylmb3Iobj10aGlzW3JdO24mJm4hPT10O249bi5wYXJlbnROb2RlKWlmKDExPm4ubm9kZVR5cGUmJihhP2EuaW5kZXgobik+LTE6MT09PW4ubm9kZVR5cGUmJnguZmluZC5tYXRjaGVzU2VsZWN0b3IobixlKSkpe249by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjayhvLmxlbmd0aD4xP3gudW5pcXVlKG8pOm8pfSxpbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/eC5pbkFycmF5KHRoaXNbMF0seChlKSk6eC5pbkFycmF5KGUuanF1ZXJ5P2VbMF06ZSx0aGlzKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihlLHQpe3ZhciBuPSJzdHJpbmciPT10eXBlb2YgZT94KGUsdCk6eC5tYWtlQXJyYXkoZSYmZS5ub2RlVHlwZT9bZV06ZSkscj14Lm1lcmdlKHRoaXMuZ2V0KCksbik7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHgudW5pcXVlKHIpKX0sYWRkQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9fSk7ZnVuY3Rpb24gcHQoZSx0KXtkbyBlPWVbdF07d2hpbGUoZSYmMSE9PWUubm9kZVR5cGUpO3JldHVybiBlfXguZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4geC5kaXIoZSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB4LmRpcihlLCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gcHQoZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gcHQoZSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIHguZGlyKGUsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIHguZGlyKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB4LmRpcihlLCJuZXh0U2libGluZyIsbil9LHByZXZVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHguZGlyKGUsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKGUpe3JldHVybiB4LnNpYmxpbmcoKGUucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe3JldHVybiB4LnNpYmxpbmcoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIHgubm9kZU5hbWUoZSwiaWZyYW1lIik/ZS5jb250ZW50RG9jdW1lbnR8fGUuY29udGVudFdpbmRvdy5kb2N1bWVudDp4Lm1lcmdlKFtdLGUuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihlLHQpe3guZm5bZV09ZnVuY3Rpb24obixyKXt2YXIgaT14Lm1hcCh0aGlzLHQsbik7cmV0dXJuIlVudGlsIiE9PWUuc2xpY2UoLTUpJiYocj1uKSxyJiYic3RyaW5nIj09dHlwZW9mIHImJihpPXguZmlsdGVyKHIsaSkpLHRoaXMubGVuZ3RoPjEmJihjdFtlXXx8KGk9eC51bmlxdWUoaSkpLGx0LnRlc3QoZSkmJihpPWkucmV2ZXJzZSgpKSksdGhpcy5wdXNoU3RhY2soaSl9fSkseC5leHRlbmQoe2ZpbHRlcjpmdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT94LmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOnguZmluZC5tYXRjaGVzKGUseC5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxkaXI6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPVtdLG89ZVtuXTt3aGlsZShvJiY5IT09by5ub2RlVHlwZSYmKHI9PT10fHwxIT09by5ub2RlVHlwZXx8IXgobykuaXMocikpKTE9PT1vLm5vZGVUeXBlJiZpLnB1c2gobyksbz1vW25dO3JldHVybiBpfSxzaWJsaW5nOmZ1bmN0aW9uKGUsdCl7dmFyIG49W107Zm9yKDtlO2U9ZS5uZXh0U2libGluZykxPT09ZS5ub2RlVHlwZSYmZSE9PXQmJm4ucHVzaChlKTtyZXR1cm4gbn19KTtmdW5jdGlvbiBmdChlLHQsbil7aWYoeC5pc0Z1bmN0aW9uKHQpKXJldHVybiB4LmdyZXAoZSxmdW5jdGlvbihlLHIpe3JldHVybiEhdC5jYWxsKGUscixlKSE9PW59KTtpZih0Lm5vZGVUeXBlKXJldHVybiB4LmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PXQhPT1ufSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZihzdC50ZXN0KHQpKXJldHVybiB4LmZpbHRlcih0LGUsbik7dD14LmZpbHRlcih0LGUpfXJldHVybiB4LmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4geC5pbkFycmF5KGUsdCk+PTAhPT1ufSl9ZnVuY3Rpb24gZHQoZSl7dmFyIHQ9aHQuc3BsaXQoInwiKSxuPWUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKG4uY3JlYXRlRWxlbWVudCl3aGlsZSh0Lmxlbmd0aCluLmNyZWF0ZUVsZW1lbnQodC5wb3AoKSk7cmV0dXJuIG59dmFyIGh0PSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHByb2dyZXNzfHNlY3Rpb258c3VtbWFyeXx0aW1lfHZpZGVvIixndD0vIGpRdWVyeVxkKz0iKD86bnVsbHxcZCspIi9nLG10PVJlZ0V4cCgiPCg/OiIraHQrIilbXFxzLz5dIiwiaSIpLHl0PS9eXHMrLyx2dD0vPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbXHc6XSspW14+XSopXC8+L2dpLGJ0PS88KFtcdzpdKykvLHh0PS88dGJvZHkvaSx3dD0vPHwmIz9cdys7LyxUdD0vPCg/OnNjcmlwdHxzdHlsZXxsaW5rKS9pLEN0PS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLE50PS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLGt0PS9eJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSxFdD0vXnRydWVcLyguKikvLFN0PS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZyxBdD17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLHBhcmFtOlsxLCI8b2JqZWN0PiIsIjwvb2JqZWN0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6eC5zdXBwb3J0Lmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sanQ9ZHQoYSksRHQ9anQuYXBwZW5kQ2hpbGQoYS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7QXQub3B0Z3JvdXA9QXQub3B0aW9uLEF0LnRib2R5PUF0LnRmb290PUF0LmNvbGdyb3VwPUF0LmNhcHRpb249QXQudGhlYWQsQXQudGg9QXQudGQseC5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHguYWNjZXNzKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10P3gudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGEpLmNyZWF0ZVRleHROb2RlKGUpKX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oZSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciB0PUx0KHRoaXMsZSk7dC5hcHBlbmRDaGlsZChlKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9THQodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWU/eC5maWx0ZXIoZSx0aGlzKTp0aGlzLGk9MDtmb3IoO251bGwhPShuPXJbaV0pO2krKyl0fHwxIT09bi5ub2RlVHlwZXx8eC5jbGVhbkRhdGEoRnQobikpLG4ucGFyZW50Tm9kZSYmKHQmJnguY29udGFpbnMobi5vd25lckRvY3VtZW50LG4pJiZfdChGdChuLCJzY3JpcHQiKSksbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXt2YXIgZSx0PTA7Zm9yKDtudWxsIT0oZT10aGlzW3RdKTt0KyspezE9PT1lLm5vZGVUeXBlJiZ4LmNsZWFuRGF0YShGdChlLCExKSk7d2hpbGUoZS5maXJzdENoaWxkKWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKTtlLm9wdGlvbnMmJngubm9kZU5hbWUoZSwic2VsZWN0IikmJihlLm9wdGlvbnMubGVuZ3RoPTApfXJldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGw9PWU/ITE6ZSx0PW51bGw9PXQ/ZTp0LHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHguY2xvbmUodGhpcyxlLHQpfSl9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHguYWNjZXNzKHRoaXMsZnVuY3Rpb24oZSl7dmFyIG49dGhpc1swXXx8e30scj0wLGk9dGhpcy5sZW5ndGg7aWYoZT09PXQpcmV0dXJuIDE9PT1uLm5vZGVUeXBlP24uaW5uZXJIVE1MLnJlcGxhY2UoZ3QsIiIpOnQ7aWYoISgic3RyaW5nIiE9dHlwZW9mIGV8fFR0LnRlc3QoZSl8fCF4LnN1cHBvcnQuaHRtbFNlcmlhbGl6ZSYmbXQudGVzdChlKXx8IXguc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmeXQudGVzdChlKXx8QXRbKGJ0LmV4ZWMoZSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKSl7ZT1lLnJlcGxhY2UodnQsIjwkMT48LyQyPiIpO3RyeXtmb3IoO2k+cjtyKyspbj10aGlzW3JdfHx7fSwxPT09bi5ub2RlVHlwZSYmKHguY2xlYW5EYXRhKEZ0KG4sITEpKSxuLmlubmVySFRNTD1lKTtuPTB9Y2F0Y2gobyl7fX1uJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9eC5tYXAodGhpcyxmdW5jdGlvbihlKXtyZXR1cm5bZS5uZXh0U2libGluZyxlLnBhcmVudE5vZGVdfSksdD0wO3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihuKXt2YXIgcj1lW3QrK10saT1lW3QrK107aSYmKHImJnIucGFyZW50Tm9kZSE9PWkmJihyPXRoaXMubmV4dFNpYmxpbmcpLHgodGhpcykucmVtb3ZlKCksaS5pbnNlcnRCZWZvcmUobixyKSl9LCEwKSx0P3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlbW92ZShlLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oZSx0LG4pe2U9ZC5hcHBseShbXSxlKTt2YXIgcixpLG8sYSxzLGwsdT0wLGM9dGhpcy5sZW5ndGgscD10aGlzLGY9Yy0xLGg9ZVswXSxnPXguaXNGdW5jdGlvbihoKTtpZihnfHwhKDE+PWN8fCJzdHJpbmciIT10eXBlb2YgaHx8eC5zdXBwb3J0LmNoZWNrQ2xvbmUpJiZOdC50ZXN0KGgpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24ocil7dmFyIGk9cC5lcShyKTtnJiYoZVswXT1oLmNhbGwodGhpcyxyLGkuaHRtbCgpKSksaS5kb21NYW5pcChlLHQsbil9KTtpZihjJiYobD14LmJ1aWxkRnJhZ21lbnQoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsIW4mJnRoaXMpLHI9bC5maXJzdENoaWxkLDE9PT1sLmNoaWxkTm9kZXMubGVuZ3RoJiYobD1yKSxyKSl7Zm9yKGE9eC5tYXAoRnQobCwic2NyaXB0IiksSHQpLG89YS5sZW5ndGg7Yz51O3UrKylpPWwsdSE9PWYmJihpPXguY2xvbmUoaSwhMCwhMCksbyYmeC5tZXJnZShhLEZ0KGksInNjcmlwdCIpKSksdC5jYWxsKHRoaXNbdV0saSx1KTtpZihvKWZvcihzPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCx4Lm1hcChhLHF0KSx1PTA7bz51O3UrKylpPWFbdV0sa3QudGVzdChpLnR5cGV8fCIiKSYmIXguX2RhdGEoaSwiZ2xvYmFsRXZhbCIpJiZ4LmNvbnRhaW5zKHMsaSkmJihpLnNyYz94Ll9ldmFsVXJsKGkuc3JjKTp4Lmdsb2JhbEV2YWwoKGkudGV4dHx8aS50ZXh0Q29udGVudHx8aS5pbm5lckhUTUx8fCIiKS5yZXBsYWNlKFN0LCIiKSkpO2w9cj1udWxsfXJldHVybiB0aGlzfX0pO2Z1bmN0aW9uIEx0KGUsdCl7cmV0dXJuIHgubm9kZU5hbWUoZSwidGFibGUiKSYmeC5ub2RlTmFtZSgxPT09dC5ub2RlVHlwZT90OnQuZmlyc3RDaGlsZCwidHIiKT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxlLmFwcGVuZENoaWxkKGUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTplfWZ1bmN0aW9uIEh0KGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT14LmZpbmQuYXR0cihlLCJ0eXBlIikpKyIvIitlLnR5cGUsZX1mdW5jdGlvbiBxdChlKXt2YXIgdD1FdC5leGVjKGUudHlwZSk7cmV0dXJuIHQ/ZS50eXBlPXRbMV06ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIF90KGUsdCl7dmFyIG4scj0wO2Zvcig7bnVsbCE9KG49ZVtyXSk7cisrKXguX2RhdGEobiwiZ2xvYmFsRXZhbCIsIXR8fHguX2RhdGEodFtyXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBNdChlLHQpe2lmKDE9PT10Lm5vZGVUeXBlJiZ4Lmhhc0RhdGEoZSkpe3ZhciBuLHIsaSxvPXguX2RhdGEoZSksYT14Ll9kYXRhKHQsbykscz1vLmV2ZW50cztpZihzKXtkZWxldGUgYS5oYW5kbGUsYS5ldmVudHM9e307Zm9yKG4gaW4gcylmb3Iocj0wLGk9c1tuXS5sZW5ndGg7aT5yO3IrKyl4LmV2ZW50LmFkZCh0LG4sc1tuXVtyXSl9YS5kYXRhJiYoYS5kYXRhPXguZXh0ZW5kKHt9LGEuZGF0YSkpfX1mdW5jdGlvbiBPdChlLHQpe3ZhciBuLHIsaTtpZigxPT09dC5ub2RlVHlwZSl7aWYobj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIXguc3VwcG9ydC5ub0Nsb25lRXZlbnQmJnRbeC5leHBhbmRvXSl7aT14Ll9kYXRhKHQpO2ZvcihyIGluIGkuZXZlbnRzKXgucmVtb3ZlRXZlbnQodCxyLGkuaGFuZGxlKTt0LnJlbW92ZUF0dHJpYnV0ZSh4LmV4cGFuZG8pfSJzY3JpcHQiPT09biYmdC50ZXh0IT09ZS50ZXh0PyhIdCh0KS50ZXh0PWUudGV4dCxxdCh0KSk6Im9iamVjdCI9PT1uPyh0LnBhcmVudE5vZGUmJih0Lm91dGVySFRNTD1lLm91dGVySFRNTCkseC5zdXBwb3J0Lmh0bWw1Q2xvbmUmJmUuaW5uZXJIVE1MJiYheC50cmltKHQuaW5uZXJIVE1MKSYmKHQuaW5uZXJIVE1MPWUuaW5uZXJIVE1MKSk6ImlucHV0Ij09PW4mJkN0LnRlc3QoZS50eXBlKT8odC5kZWZhdWx0Q2hlY2tlZD10LmNoZWNrZWQ9ZS5jaGVja2VkLHQudmFsdWUhPT1lLnZhbHVlJiYodC52YWx1ZT1lLnZhbHVlKSk6Im9wdGlvbiI9PT1uP3QuZGVmYXVsdFNlbGVjdGVkPXQuc2VsZWN0ZWQ9ZS5kZWZhdWx0U2VsZWN0ZWQ6KCJpbnB1dCI9PT1ufHwidGV4dGFyZWEiPT09bikmJih0LmRlZmF1bHRWYWx1ZT1lLmRlZmF1bHRWYWx1ZSl9fXguZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGUsdCl7eC5mbltlXT1mdW5jdGlvbihlKXt2YXIgbixyPTAsaT1bXSxvPXgoZSksYT1vLmxlbmd0aC0xO2Zvcig7YT49cjtyKyspbj1yPT09YT90aGlzOnRoaXMuY2xvbmUoITApLHgob1tyXSlbdF0obiksaC5hcHBseShpLG4uZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhpKX19KTtmdW5jdGlvbiBGdChlLG4pe3ZhciByLG8sYT0wLHM9dHlwZW9mIGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1pP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUobnx8IioiKTp0eXBlb2YgZS5xdWVyeVNlbGVjdG9yQWxsIT09aT9lLnF1ZXJ5U2VsZWN0b3JBbGwobnx8IioiKTp0O2lmKCFzKWZvcihzPVtdLHI9ZS5jaGlsZE5vZGVzfHxlO251bGwhPShvPXJbYV0pO2ErKykhbnx8eC5ub2RlTmFtZShvLG4pP3MucHVzaChvKTp4Lm1lcmdlKHMsRnQobyxuKSk7cmV0dXJuIG49PT10fHxuJiZ4Lm5vZGVOYW1lKGUsbik/eC5tZXJnZShbZV0scyk6c31mdW5jdGlvbiBCdChlKXtDdC50ZXN0KGUudHlwZSkmJihlLmRlZmF1bHRDaGVja2VkPWUuY2hlY2tlZCl9eC5leHRlbmQoe2Nsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLGw9eC5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSk7aWYoeC5zdXBwb3J0Lmh0bWw1Q2xvbmV8fHguaXNYTUxEb2MoZSl8fCFtdC50ZXN0KCI8IitlLm5vZGVOYW1lKyI+Iik/bz1lLmNsb25lTm9kZSghMCk6KER0LmlubmVySFRNTD1lLm91dGVySFRNTCxEdC5yZW1vdmVDaGlsZChvPUR0LmZpcnN0Q2hpbGQpKSwhKHguc3VwcG9ydC5ub0Nsb25lRXZlbnQmJnguc3VwcG9ydC5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8eC5pc1hNTERvYyhlKSkpZm9yKHI9RnQobykscz1GdChlKSxhPTA7bnVsbCE9KGk9c1thXSk7KythKXJbYV0mJk90KGksclthXSk7aWYodClpZihuKWZvcihzPXN8fEZ0KGUpLHI9cnx8RnQobyksYT0wO251bGwhPShpPXNbYV0pO2ErKylNdChpLHJbYV0pO2Vsc2UgTXQoZSxvKTtyZXR1cm4gcj1GdChvLCJzY3JpcHQiKSxyLmxlbmd0aD4wJiZfdChyLCFsJiZGdChlLCJzY3JpcHQiKSkscj1zPWk9bnVsbCxvfSxidWlsZEZyYWdtZW50OmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLGwsdSxjLHA9ZS5sZW5ndGgsZj1kdCh0KSxkPVtdLGg9MDtmb3IoO3A+aDtoKyspaWYobz1lW2hdLG98fDA9PT1vKWlmKCJvYmplY3QiPT09eC50eXBlKG8pKXgubWVyZ2UoZCxvLm5vZGVUeXBlP1tvXTpvKTtlbHNlIGlmKHd0LnRlc3Qobykpe3M9c3x8Zi5hcHBlbmRDaGlsZCh0LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxsPShidC5leGVjKG8pfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGM9QXRbbF18fEF0Ll9kZWZhdWx0LHMuaW5uZXJIVE1MPWNbMV0rby5yZXBsYWNlKHZ0LCI8JDE+PC8kMj4iKStjWzJdLGk9Y1swXTt3aGlsZShpLS0pcz1zLmxhc3RDaGlsZDtpZigheC5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZ5dC50ZXN0KG8pJiZkLnB1c2godC5jcmVhdGVUZXh0Tm9kZSh5dC5leGVjKG8pWzBdKSksIXguc3VwcG9ydC50Ym9keSl7bz0idGFibGUiIT09bHx8eHQudGVzdChvKT8iPHRhYmxlPiIhPT1jWzFdfHx4dC50ZXN0KG8pPzA6czpzLmZpcnN0Q2hpbGQsaT1vJiZvLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGktLSl4Lm5vZGVOYW1lKHU9by5jaGlsZE5vZGVzW2ldLCJ0Ym9keSIpJiYhdS5jaGlsZE5vZGVzLmxlbmd0aCYmby5yZW1vdmVDaGlsZCh1KX14Lm1lcmdlKGQscy5jaGlsZE5vZGVzKSxzLnRleHRDb250ZW50PSIiO3doaWxlKHMuZmlyc3RDaGlsZClzLnJlbW92ZUNoaWxkKHMuZmlyc3RDaGlsZCk7cz1mLmxhc3RDaGlsZH1lbHNlIGQucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtzJiZmLnJlbW92ZUNoaWxkKHMpLHguc3VwcG9ydC5hcHBlbmRDaGVja2VkfHx4LmdyZXAoRnQoZCwiaW5wdXQiKSxCdCksaD0wO3doaWxlKG89ZFtoKytdKWlmKCghcnx8LTE9PT14LmluQXJyYXkobyxyKSkmJihhPXguY29udGFpbnMoby5vd25lckRvY3VtZW50LG8pLHM9RnQoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksYSYmX3Qocyksbikpe2k9MDt3aGlsZShvPXNbaSsrXSlrdC50ZXN0KG8udHlwZXx8IiIpJiZuLnB1c2gobyl9cmV0dXJuIHM9bnVsbCxmfSxjbGVhbkRhdGE6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYSxzPTAsbD14LmV4cGFuZG8sdT14LmNhY2hlLGM9eC5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8sZj14LmV2ZW50LnNwZWNpYWw7Zm9yKDtudWxsIT0obj1lW3NdKTtzKyspaWYoKHR8fHguYWNjZXB0RGF0YShuKSkmJihvPW5bbF0sYT1vJiZ1W29dKSl7aWYoYS5ldmVudHMpZm9yKHIgaW4gYS5ldmVudHMpZltyXT94LmV2ZW50LnJlbW92ZShuLHIpOngucmVtb3ZlRXZlbnQobixyLGEuaGFuZGxlKTsNCnVbb10mJihkZWxldGUgdVtvXSxjP2RlbGV0ZSBuW2xdOnR5cGVvZiBuLnJlbW92ZUF0dHJpYnV0ZSE9PWk/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bltsXT1udWxsLHAucHVzaChvKSl9fSxfZXZhbFVybDpmdW5jdGlvbihlKXtyZXR1cm4geC5hamF4KHt1cmw6ZSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfX0pLHguZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe2lmKHguaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3godGhpcykud3JhcEFsbChlLmNhbGwodGhpcyx0KSl9KTtpZih0aGlzWzBdKXt2YXIgdD14KGUsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCk7dGhpc1swXS5wYXJlbnROb2RlJiZ0Lmluc2VydEJlZm9yZSh0aGlzWzBdKSx0Lm1hcChmdW5jdGlvbigpe3ZhciBlPXRoaXM7d2hpbGUoZS5maXJzdENoaWxkJiYxPT09ZS5maXJzdENoaWxkLm5vZGVUeXBlKWU9ZS5maXJzdENoaWxkO3JldHVybiBlfSkuYXBwZW5kKHRoaXMpfXJldHVybiB0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHguaXNGdW5jdGlvbihlKT90aGlzLmVhY2goZnVuY3Rpb24odCl7eCh0aGlzKS53cmFwSW5uZXIoZS5jYWxsKHRoaXMsdCkpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9eCh0aGlzKSxuPXQuY29udGVudHMoKTtuLmxlbmd0aD9uLndyYXBBbGwoZSk6dC5hcHBlbmQoZSl9KX0sd3JhcDpmdW5jdGlvbihlKXt2YXIgdD14LmlzRnVuY3Rpb24oZSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihuKXt4KHRoaXMpLndyYXBBbGwodD9lLmNhbGwodGhpcyxuKTplKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7eC5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fHgodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pO3ZhciBQdCxSdCxXdCwkdD0vYWxwaGFcKFteKV0qXCkvaSxJdD0vb3BhY2l0eVxzKj1ccyooW14pXSopLyx6dD0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC8sWHQ9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFV0PS9ebWFyZ2luLyxWdD1SZWdFeHAoIl4oIit3KyIpKC4qKSQiLCJpIiksWXQ9UmVnRXhwKCJeKCIrdysiKSg/IXB4KVthLXolXSskIiwiaSIpLEp0PVJlZ0V4cCgiXihbKy1dKT0oIit3KyIpIiwiaSIpLEd0PXtCT0RZOiJibG9jayJ9LFF0PXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLdD17bGV0dGVyU3BhY2luZzowLGZvbnRXZWlnaHQ6NDAwfSxadD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGVuPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gdG4oZSx0KXtpZih0IGluIGUpcmV0dXJuIHQ7dmFyIG49dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpLHI9dCxpPWVuLmxlbmd0aDt3aGlsZShpLS0paWYodD1lbltpXStuLHQgaW4gZSlyZXR1cm4gdDtyZXR1cm4gcn1mdW5jdGlvbiBubihlLHQpe3JldHVybiBlPXR8fGUsIm5vbmUiPT09eC5jc3MoZSwiZGlzcGxheSIpfHwheC5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSl9ZnVuY3Rpb24gcm4oZSx0KXt2YXIgbixyLGksbz1bXSxhPTAscz1lLmxlbmd0aDtmb3IoO3M+YTthKyspcj1lW2FdLHIuc3R5bGUmJihvW2FdPXguX2RhdGEociwib2xkZGlzcGxheSIpLG49ci5zdHlsZS5kaXNwbGF5LHQ/KG9bYV18fCJub25lIiE9PW58fChyLnN0eWxlLmRpc3BsYXk9IiIpLCIiPT09ci5zdHlsZS5kaXNwbGF5JiZubihyKSYmKG9bYV09eC5fZGF0YShyLCJvbGRkaXNwbGF5IixsbihyLm5vZGVOYW1lKSkpKTpvW2FdfHwoaT1ubihyKSwobiYmIm5vbmUiIT09bnx8IWkpJiZ4Ll9kYXRhKHIsIm9sZGRpc3BsYXkiLGk/bjp4LmNzcyhyLCJkaXNwbGF5IikpKSk7Zm9yKGE9MDtzPmE7YSsrKXI9ZVthXSxyLnN0eWxlJiYodCYmIm5vbmUiIT09ci5zdHlsZS5kaXNwbGF5JiYiIiE9PXIuc3R5bGUuZGlzcGxheXx8KHIuc3R5bGUuZGlzcGxheT10P29bYV18fCIiOiJub25lIikpO3JldHVybiBlfXguZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4geC5hY2Nlc3M="
},
{
"key": "jquery.min.js_3",
"type": "binary",
"value": "base64:KHRoaXMsZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG8sYT17fSxzPTA7aWYoeC5pc0FycmF5KG4pKXtmb3Iobz1SdChlKSxpPW4ubGVuZ3RoO2k+cztzKyspYVtuW3NdXT14LmNzcyhlLG5bc10sITEsbyk7cmV0dXJuIGF9cmV0dXJuIHIhPT10P3guc3R5bGUoZSxuLHIpOnguY3NzKGUsbil9LGUsbixhcmd1bWVudHMubGVuZ3RoPjEpfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHJuKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHJuKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZT9lP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe25uKHRoaXMpP3godGhpcykuc2hvdygpOngodGhpcykuaGlkZSgpfSl9fSkseC5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oZSx0KXtpZih0KXt2YXIgbj1XdChlLCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1uPyIxIjpufX19fSxjc3NOdW1iZXI6e2NvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0Ijp4LnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCJ9LHN0eWxlOmZ1bmN0aW9uKGUsbixyLGkpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIG8sYSxzLGw9eC5jYW1lbENhc2UobiksdT1lLnN0eWxlO2lmKG49eC5jc3NQcm9wc1tsXXx8KHguY3NzUHJvcHNbbF09dG4odSxsKSkscz14LmNzc0hvb2tzW25dfHx4LmNzc0hvb2tzW2xdLHI9PT10KXJldHVybiBzJiYiZ2V0ImluIHMmJihvPXMuZ2V0KGUsITEsaSkpIT09dD9vOnVbbl07aWYoYT10eXBlb2Ygciwic3RyaW5nIj09PWEmJihvPUp0LmV4ZWMocikpJiYocj0ob1sxXSsxKSpvWzJdK3BhcnNlRmxvYXQoeC5jc3MoZSxuKSksYT0ibnVtYmVyIiksIShudWxsPT1yfHwibnVtYmVyIj09PWEmJmlzTmFOKHIpfHwoIm51bWJlciIhPT1hfHx4LmNzc051bWJlcltsXXx8KHIrPSJweCIpLHguc3VwcG9ydC5jbGVhckNsb25lU3R5bGV8fCIiIT09cnx8MCE9PW4uaW5kZXhPZigiYmFja2dyb3VuZCIpfHwodVtuXT0iaW5oZXJpdCIpLHMmJiJzZXQiaW4gcyYmKHI9cy5zZXQoZSxyLGkpKT09PXQpKSl0cnl7dVtuXT1yfWNhdGNoKGMpe319fSxjc3M6ZnVuY3Rpb24oZSxuLHIsaSl7dmFyIG8sYSxzLGw9eC5jYW1lbENhc2Uobik7cmV0dXJuIG49eC5jc3NQcm9wc1tsXXx8KHguY3NzUHJvcHNbbF09dG4oZS5zdHlsZSxsKSkscz14LmNzc0hvb2tzW25dfHx4LmNzc0hvb2tzW2xdLHMmJiJnZXQiaW4gcyYmKGE9cy5nZXQoZSwhMCxyKSksYT09PXQmJihhPVd0KGUsbixpKSksIm5vcm1hbCI9PT1hJiZuIGluIEt0JiYoYT1LdFtuXSksIiI9PT1yfHxyPyhvPXBhcnNlRmxvYXQoYSkscj09PSEwfHx4LmlzTnVtZXJpYyhvKT9vfHwwOmEpOmF9fSksZS5nZXRDb21wdXRlZFN0eWxlPyhSdD1mdW5jdGlvbih0KXtyZXR1cm4gZS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCl9LFd0PWZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvLGEscz1yfHxSdChlKSxsPXM/cy5nZXRQcm9wZXJ0eVZhbHVlKG4pfHxzW25dOnQsdT1lLnN0eWxlO3JldHVybiBzJiYoIiIhPT1sfHx4LmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8KGw9eC5zdHlsZShlLG4pKSxZdC50ZXN0KGwpJiZVdC50ZXN0KG4pJiYoaT11LndpZHRoLG89dS5taW5XaWR0aCxhPXUubWF4V2lkdGgsdS5taW5XaWR0aD11Lm1heFdpZHRoPXUud2lkdGg9bCxsPXMud2lkdGgsdS53aWR0aD1pLHUubWluV2lkdGg9byx1Lm1heFdpZHRoPWEpKSxsfSk6YS5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlJiYoUnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY3VycmVudFN0eWxlfSxXdD1mdW5jdGlvbihlLG4scil7dmFyIGksbyxhLHM9cnx8UnQoZSksbD1zP3Nbbl06dCx1PWUuc3R5bGU7cmV0dXJuIG51bGw9PWwmJnUmJnVbbl0mJihsPXVbbl0pLFl0LnRlc3QobCkmJiF6dC50ZXN0KG4pJiYoaT11LmxlZnQsbz1lLnJ1bnRpbWVTdHlsZSxhPW8mJm8ubGVmdCxhJiYoby5sZWZ0PWUuY3VycmVudFN0eWxlLmxlZnQpLHUubGVmdD0iZm9udFNpemUiPT09bj8iMWVtIjpsLGw9dS5waXhlbExlZnQrInB4Iix1LmxlZnQ9aSxhJiYoby5sZWZ0PWEpKSwiIj09PWw/ImF1dG8iOmx9KTtmdW5jdGlvbiBvbihlLHQsbil7dmFyIHI9VnQuZXhlYyh0KTtyZXR1cm4gcj9NYXRoLm1heCgwLHJbMV0tKG58fDApKSsoclsyXXx8InB4Iik6dH1mdW5jdGlvbiBhbihlLHQsbixyLGkpe3ZhciBvPW49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PXQ/MTowLGE9MDtmb3IoOzQ+bztvKz0yKSJtYXJnaW4iPT09biYmKGErPXguY3NzKGUsbitadFtvXSwhMCxpKSkscj8oImNvbnRlbnQiPT09biYmKGEtPXguY3NzKGUsInBhZGRpbmciK1p0W29dLCEwLGkpKSwibWFyZ2luIiE9PW4mJihhLT14LmNzcyhlLCJib3JkZXIiK1p0W29dKyJXaWR0aCIsITAsaSkpKTooYSs9eC5jc3MoZSwicGFkZGluZyIrWnRbb10sITAsaSksInBhZGRpbmciIT09biYmKGErPXguY3NzKGUsImJvcmRlciIrWnRbb10rIldpZHRoIiwhMCxpKSkpO3JldHVybiBhfWZ1bmN0aW9uIHNuKGUsdCxuKXt2YXIgcj0hMCxpPSJ3aWR0aCI9PT10P2Uub2Zmc2V0V2lkdGg6ZS5vZmZzZXRIZWlnaHQsbz1SdChlKSxhPXguc3VwcG9ydC5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PXguY3NzKGUsImJveFNpemluZyIsITEsbyk7aWYoMD49aXx8bnVsbD09aSl7aWYoaT1XdChlLHQsbyksKDA+aXx8bnVsbD09aSkmJihpPWUuc3R5bGVbdF0pLFl0LnRlc3QoaSkpcmV0dXJuIGk7cj1hJiYoeC5zdXBwb3J0LmJveFNpemluZ1JlbGlhYmxlfHxpPT09ZS5zdHlsZVt0XSksaT1wYXJzZUZsb2F0KGkpfHwwfXJldHVybiBpK2FuKGUsdCxufHwoYT8iYm9yZGVyIjoiY29udGVudCIpLHIsbykrInB4In1mdW5jdGlvbiBsbihlKXt2YXIgdD1hLG49R3RbZV07cmV0dXJuIG58fChuPXVuKGUsdCksIm5vbmUiIT09biYmbnx8KFB0PShQdHx8eCgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpLmNzcygiY3NzVGV4dCIsImRpc3BsYXk6YmxvY2sgIWltcG9ydGFudCIpKS5hcHBlbmRUbyh0LmRvY3VtZW50RWxlbWVudCksdD0oUHRbMF0uY29udGVudFdpbmRvd3x8UHRbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCx0LndyaXRlKCI8IWRvY3R5cGUgaHRtbD48aHRtbD48Ym9keT4iKSx0LmNsb3NlKCksbj11bihlLHQpLFB0LmRldGFjaCgpKSxHdFtlXT1uKSxufWZ1bmN0aW9uIHVuKGUsdCl7dmFyIG49eCh0LmNyZWF0ZUVsZW1lbnQoZSkpLmFwcGVuZFRvKHQuYm9keSkscj14LmNzcyhuWzBdLCJkaXNwbGF5Iik7cmV0dXJuIG4ucmVtb3ZlKCkscn14LmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGUsbil7eC5jc3NIb29rc1tuXT17Z2V0OmZ1bmN0aW9uKGUscixpKXtyZXR1cm4gcj8wPT09ZS5vZmZzZXRXaWR0aCYmWHQudGVzdCh4LmNzcyhlLCJkaXNwbGF5IikpP3guc3dhcChlLFF0LGZ1bmN0aW9uKCl7cmV0dXJuIHNuKGUsbixpKX0pOnNuKGUsbixpKTp0fSxzZXQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXImJlJ0KGUpO3JldHVybiBvbihlLHQscj9hbihlLG4scix4LnN1cHBvcnQuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT14LmNzcyhlLCJib3hTaXppbmciLCExLGkpLGkpOjApfX19KSx4LnN1cHBvcnQub3BhY2l0eXx8KHguY3NzSG9va3Mub3BhY2l0eT17Z2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEl0LnRlc3QoKHQmJmUuY3VycmVudFN0eWxlP2UuY3VycmVudFN0eWxlLmZpbHRlcjplLnN0eWxlLmZpbHRlcil8fCIiKT8uMDEqcGFyc2VGbG9hdChSZWdFeHAuJDEpKyIiOnQ/IjEiOiIifSxzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnN0eWxlLHI9ZS5jdXJyZW50U3R5bGUsaT14LmlzTnVtZXJpYyh0KT8iYWxwaGEob3BhY2l0eT0iKzEwMCp0KyIpIjoiIixvPXImJnIuZmlsdGVyfHxuLmZpbHRlcnx8IiI7bi56b29tPTEsKHQ+PTF8fCIiPT09dCkmJiIiPT09eC50cmltKG8ucmVwbGFjZSgkdCwiIikpJiZuLnJlbW92ZUF0dHJpYnV0ZSYmKG4ucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKSwiIj09PXR8fHImJiFyLmZpbHRlcil8fChuLmZpbHRlcj0kdC50ZXN0KG8pP28ucmVwbGFjZSgkdCxpKTpvKyIgIitpKX19KSx4KGZ1bmN0aW9uKCl7eC5zdXBwb3J0LnJlbGlhYmxlTWFyZ2luUmlnaHR8fCh4LmNzc0hvb2tzLm1hcmdpblJpZ2h0PXtnZXQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj94LnN3YXAoZSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sV3QsW2UsIm1hcmdpblJpZ2h0Il0pOnR9fSksIXguc3VwcG9ydC5waXhlbFBvc2l0aW9uJiZ4LmZuLnBvc2l0aW9uJiZ4LmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXt4LmNzc0hvb2tzW25dPXtnZXQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gcj8ocj1XdChlLG4pLFl0LnRlc3Qocik/eChlKS5wb3NpdGlvbigpW25dKyJweCI6cik6dH19fSl9KSx4LmV4cHImJnguZXhwci5maWx0ZXJzJiYoeC5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGUpe3JldHVybiAwPj1lLm9mZnNldFdpZHRoJiYwPj1lLm9mZnNldEhlaWdodHx8IXguc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMmJiJub25lIj09PShlLnN0eWxlJiZlLnN0eWxlLmRpc3BsYXl8fHguY3NzKGUsImRpc3BsYXkiKSl9LHguZXhwci5maWx0ZXJzLnZpc2libGU9ZnVuY3Rpb24oZSl7cmV0dXJuIXguZXhwci5maWx0ZXJzLmhpZGRlbihlKX0pLHguZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGUsdCl7eC5jc3NIb29rc1tlK3RdPXtleHBhbmQ6ZnVuY3Rpb24obil7dmFyIHI9MCxpPXt9LG89InN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoIiAiKTpbbl07Zm9yKDs0PnI7cisrKWlbZStadFtyXSt0XT1vW3JdfHxvW3ItMl18fG9bMF07cmV0dXJuIGl9fSxVdC50ZXN0KGUpfHwoeC5jc3NIb29rc1tlK3RdLnNldD1vbil9KTt2YXIgY249LyUyMC9nLHBuPS9cW1xdJC8sZm49L1xyP1xuL2csZG49L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGhuPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTt4LmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHgucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT14LnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT94Lm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiF4KHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmaG4udGVzdCh0aGlzLm5vZGVOYW1lKSYmIWRuLnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFDdC50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPXgodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDp4LmlzQXJyYXkobik/eC5tYXAobixmdW5jdGlvbihlKXtyZXR1cm57bmFtZTp0Lm5hbWUsdmFsdWU6ZS5yZXBsYWNlKGZuLCJcclxuIil9fSk6e25hbWU6dC5uYW1lLHZhbHVlOm4ucmVwbGFjZShmbiwiXHJcbiIpfX0pLmdldCgpfX0pLHgucGFyYW09ZnVuY3Rpb24oZSxuKXt2YXIgcixpPVtdLG89ZnVuY3Rpb24oZSx0KXt0PXguaXNGdW5jdGlvbih0KT90KCk6bnVsbD09dD8iIjp0LGlbaS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpfTtpZihuPT09dCYmKG49eC5hamF4U2V0dGluZ3MmJnguYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsKSx4LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYheC5pc1BsYWluT2JqZWN0KGUpKXguZWFjaChlLGZ1bmN0aW9uKCl7byh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihyIGluIGUpZ24ocixlW3JdLG4sbyk7cmV0dXJuIGkuam9pbigiJiIpLnJlcGxhY2UoY24sIisiKX07ZnVuY3Rpb24gZ24oZSx0LG4scil7dmFyIGk7aWYoeC5pc0FycmF5KHQpKXguZWFjaCh0LGZ1bmN0aW9uKHQsaSl7bnx8cG4udGVzdChlKT9yKGUsaSk6Z24oZSsiWyIrKCJvYmplY3QiPT10eXBlb2YgaT90OiIiKSsiXSIsaSxuLHIpfSk7ZWxzZSBpZihufHwib2JqZWN0IiE9PXgudHlwZSh0KSlyKGUsdCk7ZWxzZSBmb3IoaSBpbiB0KWduKGUrIlsiK2krIl0iLHRbaV0sbixyKX14LmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXt4LmZuW3RdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKHQsbnVsbCxlLG4pOnRoaXMudHJpZ2dlcih0KX19KSx4LmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGUpLm1vdXNlbGVhdmUodHx8ZSl9LGJpbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLm9uKGUsbnVsbCx0LG4pfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vZmYoZSxudWxsLHQpfSxkZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5vbih0LGUsbixyKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGUsIioqIik6dGhpcy5vZmYodCxlfHwiKioiLG4pfX0pO3ZhciBtbix5bix2bj14Lm5vdygpLGJuPS9cPy8seG49LyMuKiQvLHduPS8oWz8mXSlfPVteJl0qLyxUbj0vXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL2dtLENuPS9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLE5uPS9eKD86R0VUfEhFQUQpJC8sa249L15cL1wvLyxFbj0vXihbXHcuKy1dKzopKD86XC9cLyhbXlwvPyM6XSopKD86OihcZCspfCl8KS8sU249eC5mbi5sb2FkLEFuPXt9LGpuPXt9LERuPSIqLyIuY29uY2F0KCIqIik7dHJ5e3luPW8uaHJlZn1jYXRjaChMbil7eW49YS5jcmVhdGVFbGVtZW50KCJhIikseW4uaHJlZj0iIix5bj15bi5ocmVmfW1uPUVuLmV4ZWMoeW4udG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIEhuKGUpe3JldHVybiBmdW5jdGlvbih0LG4peyJzdHJpbmciIT10eXBlb2YgdCYmKG49dCx0PSIqIik7dmFyIHIsaT0wLG89dC50b0xvd2VyQ2FzZSgpLm1hdGNoKFQpfHxbXTtpZih4LmlzRnVuY3Rpb24obikpd2hpbGUocj1vW2krK10pIisiPT09clswXT8ocj1yLnNsaWNlKDEpfHwiKiIsKGVbcl09ZVtyXXx8W10pLnVuc2hpZnQobikpOihlW3JdPWVbcl18fFtdKS5wdXNoKG4pfX1mdW5jdGlvbiBxbihlLG4scixpKXt2YXIgbz17fSxhPWU9PT1qbjtmdW5jdGlvbiBzKGwpe3ZhciB1O3JldHVybiBvW2xdPSEwLHguZWFjaChlW2xdfHxbXSxmdW5jdGlvbihlLGwpe3ZhciBjPWwobixyLGkpO3JldHVybiJzdHJpbmciIT10eXBlb2YgY3x8YXx8b1tjXT9hPyEodT1jKTp0OihuLmRhdGFUeXBlcy51bnNoaWZ0KGMpLHMoYyksITEpfSksdX1yZXR1cm4gcyhuLmRhdGFUeXBlc1swXSl8fCFvWyIqIl0mJnMoIioiKX1mdW5jdGlvbiBfbihlLG4pe3ZhciByLGksbz14LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGkgaW4gbiluW2ldIT09dCYmKChvW2ldP2U6cnx8KHI9e30pKVtpXT1uW2ldKTtyZXR1cm4gciYmeC5leHRlbmQoITAsZSxyKSxlfXguZm4ubG9hZD1mdW5jdGlvbihlLG4scil7aWYoInN0cmluZyIhPXR5cGVvZiBlJiZTbilyZXR1cm4gU24uYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBpLG8sYSxzPXRoaXMsbD1lLmluZGV4T2YoIiAiKTtyZXR1cm4gbD49MCYmKGk9ZS5zbGljZShsLGUubGVuZ3RoKSxlPWUuc2xpY2UoMCxsKSkseC5pc0Z1bmN0aW9uKG4pPyhyPW4sbj10KTpuJiYib2JqZWN0Ij09dHlwZW9mIG4mJihhPSJQT1NUIikscy5sZW5ndGg+MCYmeC5hamF4KHt1cmw6ZSx0eXBlOmEsZGF0YVR5cGU6Imh0bWwiLGRhdGE6bn0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMscy5odG1sKGk/eCgiPGRpdj4iKS5hcHBlbmQoeC5wYXJzZUhUTUwoZSkpLmZpbmQoaSk6ZSl9KS5jb21wbGV0ZShyJiZmdW5jdGlvbihlLHQpe3MuZWFjaChyLG98fFtlLnJlc3BvbnNlVGV4dCx0LGVdKX0pLHRoaXN9LHguZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGUsdCl7eC5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vbih0LGUpfX0pLHguZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDp5bix0eXBlOiJHRVQiLGlzTG9jYWw6Q24udGVzdChtblsxXSksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpEbix0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDoveG1sLyxodG1sOi9odG1sLyxqc29uOi9qc29uL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOngucGFyc2VKU09OLCJ0ZXh0IHhtbCI6eC5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/X24oX24oZSx4LmFqYXhTZXR0aW5ncyksdCk6X24oeC5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SG4oQW4pLGFqYXhUcmFuc3BvcnQ6SG4oam4pLGFqYXg6ZnVuY3Rpb24oZSxuKXsib2JqZWN0Ij09dHlwZW9mIGUmJihuPWUsZT10KSxuPW58fHt9O3ZhciByLGksbyxhLHMsbCx1LGMscD14LmFqYXhTZXR1cCh7fSxuKSxmPXAuY29udGV4dHx8cCxkPXAuY29udGV4dCYmKGYubm9kZVR5cGV8fGYuanF1ZXJ5KT94KGYpOnguZXZlbnQsaD14LkRlZmVycmVkKCksZz14LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxtPXAuc3RhdHVzQ29kZXx8e30seT17fSx2PXt9LGI9MCx3PSJjYW5jZWxlZCIsQz17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKDI9PT1iKXtpZighYyl7Yz17fTt3aGlsZSh0PVRuLmV4ZWMoYSkpY1t0WzFdLnRvTG93ZXJDYXNlKCldPXRbMl19dD1jW2UudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PXQ/bnVsbDp0fSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PWI/YTpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO3JldHVybiBifHwoZT12W25dPXZbbl18fGUseVtlXT10KSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGUpe3JldHVybiBifHwocC5taW1lVHlwZT1lKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUpaWYoMj5iKWZvcih0IGluIGUpbVt0XT1bbVt0XSxlW3RdXTtlbHNlIEMuYWx3YXlzKGVbQy5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dztyZXR1cm4gdSYmdS5hYm9ydCh0KSxrKDAsdCksdGhpc319O2lmKGgucHJvbWlzZShDKS5jb21wbGV0ZT1nLmFkZCxDLnN1Y2Nlc3M9Qy5kb25lLEMuZXJyb3I9Qy5mYWlsLHAudXJsPSgoZXx8cC51cmx8fHluKSsiIikucmVwbGFjZSh4biwiIikucmVwbGFjZShrbixtblsxXSsiLy8iKSxwLnR5cGU9bi5tZXRob2R8fG4udHlwZXx8cC5tZXRob2R8fHAudHlwZSxwLmRhdGFUeXBlcz14LnRyaW0ocC5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFQpfHxbIiJdLG51bGw9PXAuY3Jvc3NEb21haW4mJihyPUVuLmV4ZWMocC51cmwudG9Mb3dlckNhc2UoKSkscC5jcm9zc0RvbWFpbj0hKCFyfHxyWzFdPT09bW5bMV0mJnJbMl09PT1tblsyXSYmKHJbM118fCgiaHR0cDoiPT09clsxXT8iODAiOiI0NDMiKSk9PT0obW5bM118fCgiaHR0cDoiPT09bW5bMV0/IjgwIjoiNDQzIikpKSkscC5kYXRhJiZwLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIHAuZGF0YSYmKHAuZGF0YT14LnBhcmFtKHAuZGF0YSxwLnRyYWRpdGlvbmFsKSkscW4oQW4scCxuLEMpLDI9PT1iKXJldHVybiBDO2w9cC5nbG9iYWwsbCYmMD09PXguYWN0aXZlKysmJnguZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IikscC50eXBlPXAudHlwZS50b1VwcGVyQ2FzZSgpLHAuaGFzQ29udGVudD0hTm4udGVzdChwLnR5cGUpLG89cC51cmwscC5oYXNDb250ZW50fHwocC5kYXRhJiYobz1wLnVybCs9KGJuLnRlc3Qobyk/IiYiOiI/IikrcC5kYXRhLGRlbGV0ZSBwLmRhdGEpLHAuY2FjaGU9PT0hMSYmKHAudXJsPXduLnRlc3Qobyk/by5yZXBsYWNlKHduLCIkMV89Iit2bisrKTpvKyhibi50ZXN0KG8pPyImIjoiPyIpKyJfPSIrdm4rKykpLHAuaWZNb2RpZmllZCYmKHgubGFzdE1vZGlmaWVkW29dJiZDLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIix4Lmxhc3RNb2RpZmllZFtvXSkseC5ldGFnW29dJiZDLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLHguZXRhZ1tvXSkpLChwLmRhdGEmJnAuaGFzQ29udGVudCYmcC5jb250ZW50VHlwZSE9PSExfHxuLmNvbnRlbnRUeXBlKSYmQy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHAuY29udGVudFR5cGUpLEMuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixwLmRhdGFUeXBlc1swXSYmcC5hY2NlcHRzW3AuZGF0YVR5cGVzWzBdXT9wLmFjY2VwdHNbcC5kYXRhVHlwZXNbMF1dKygiKiIhPT1wLmRhdGFUeXBlc1swXT8iLCAiK0RuKyI7IHE9MC4wMSI6IiIpOnAuYWNjZXB0c1siKiJdKTtmb3IoaSBpbiBwLmhlYWRlcnMpQy5zZXRSZXF1ZXN0SGVhZGVyKGkscC5oZWFkZXJzW2ldKTtpZihwLmJlZm9yZVNlbmQmJihwLmJlZm9yZVNlbmQuY2FsbChmLEMscCk9PT0hMXx8Mj09PWIpKXJldHVybiBDLmFib3J0KCk7dz0iYWJvcnQiO2ZvcihpIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KUNbaV0ocFtpXSk7aWYodT1xbihqbixwLG4sQykpe0MucmVhZHlTdGF0ZT0xLGwmJmQudHJpZ2dlcigiYWpheFNlbmQiLFtDLHBdKSxwLmFzeW5jJiZwLnRpbWVvdXQ+MCYmKHM9c2V0VGltZW91dChmdW5jdGlvbigpe0MuYWJvcnQoInRpbWVvdXQiKX0scC50aW1lb3V0KSk7dHJ5e2I9MSx1LnNlbmQoeSxrKX1jYXRjaChOKXtpZighKDI+YikpdGhyb3cgTjtrKC0xLE4pfX1lbHNlIGsoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIGsoZSxuLHIsaSl7dmFyIGMseSx2LHcsVCxOPW47MiE9PWImJihiPTIscyYmY2xlYXJUaW1lb3V0KHMpLHU9dCxhPWl8fCIiLEMucmVhZHlTdGF0ZT1lPjA/NDowLGM9ZT49MjAwJiYzMDA+ZXx8MzA0PT09ZSxyJiYodz1NbihwLEMscikpLHc9T24ocCx3LEMsYyksYz8ocC5pZk1vZGlmaWVkJiYoVD1DLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIiksVCYmKHgubGFzdE1vZGlmaWVkW29dPVQpLFQ9Qy5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpLFQmJih4LmV0YWdbb109VCkpLDIwND09PWV8fCJIRUFEIj09PXAudHlwZT9OPSJub2NvbnRlbnQiOjMwND09PWU/Tj0ibm90bW9kaWZpZWQiOihOPXcuc3RhdGUseT13LmRhdGEsdj13LmVycm9yLGM9IXYpKToodj1OLChlfHwhTikmJihOPSJlcnJvciIsMD5lJiYoZT0wKSkpLEMuc3RhdHVzPWUsQy5zdGF0dXNUZXh0PShufHxOKSsiIixjP2gucmVzb2x2ZVdpdGgoZixbeSxOLENdKTpoLnJlamVjdFdpdGgoZixbQyxOLHZdKSxDLnN0YXR1c0NvZGUobSksbT10LGwmJmQudHJpZ2dlcihjPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW0MscCxjP3k6dl0pLGcuZmlyZVdpdGgoZixbQyxOXSksbCYmKGQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbQyxwXSksLS14LmFjdGl2ZXx8eC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9cmV0dXJuIEN9LGdldEpTT046ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB4LmdldChlLHQsbiwianNvbiIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4geC5nZXQoZSx0LG4sInNjcmlwdCIpfX0pLHguZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihlLG4pe3hbbl09ZnVuY3Rpb24oZSxyLGksbyl7cmV0dXJuIHguaXNGdW5jdGlvbihyKSYmKG89b3x8aSxpPXIscj10KSx4LmFqYXgoe3VybDplLHR5cGU6bixkYXRhVHlwZTpvLGRhdGE6cixzdWNjZXNzOml9KX19KTtmdW5jdGlvbiBNbihlLG4scil7dmFyIGksbyxhLHMsbD1lLmNvbnRlbnRzLHU9ZS5kYXRhVHlwZXM7d2hpbGUoIioiPT09dVswXSl1LnNoaWZ0KCksbz09PXQmJihvPWUubWltZVR5cGV8fG4uZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihvKWZvcihzIGluIGwpaWYobFtzXSYmbFtzXS50ZXN0KG8pKXt1LnVuc2hpZnQocyk7YnJlYWt9aWYodVswXWluIHIpYT11WzBdO2Vsc2V7Zm9yKHMgaW4gcil7aWYoIXVbMF18fGUuY29udmVydGVyc1tzKyIgIit1WzBdXSl7YT1zO2JyZWFrfWl8fChpPXMpfWE9YXx8aX1yZXR1cm4gYT8oYSE9PXVbMF0mJnUudW5zaGlmdChhKSxyW2FdKTp0fWZ1bmN0aW9uIE9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLGwsdT17fSxjPWUuZGF0YVR5cGVzLnNsaWNlKCk7aWYoY1sxXSlmb3IoYSBpbiBlLmNvbnZlcnRlcnMpdVthLnRvTG93ZXJDYXNlKCldPWUuY29udmVydGVyc1thXTtvPWMuc2hpZnQoKTt3aGlsZShvKWlmKGUucmVzcG9uc2VGaWVsZHNbb10mJihuW2UucmVzcG9uc2VGaWVsZHNbb11dPXQpLCFsJiZyJiZlLmRhdGFGaWx0ZXImJih0PWUuZGF0YUZpbHRlcih0LGUuZGF0YVR5cGUpKSxsPW8sbz1jLnNoaWZ0KCkpaWYoIioiPT09bylvPWw7ZWxzZSBpZigiKiIhPT1sJiZsIT09byl7aWYoYT11W2wrIiAiK29dfHx1WyIqICIrb10sIWEpZm9yKGkgaW4gdSlpZihzPWkuc3BsaXQoIiAiKSxzWzFdPT09byYmKGE9dVtsKyIgIitzWzBdXXx8dVsiKiAiK3NbMF1dKSl7YT09PSEwP2E9dVtpXTp1W2ldIT09ITAmJihvPXNbMF0sYy51bnNoaWZ0KHNbMV0pKTticmVha31pZihhIT09ITApaWYoYSYmZVsidGhyb3dzIl0pdD1hKHQpO2Vsc2UgdHJ5e3Q9YSh0KX1jYXRjaChwKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjphP3A6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK2wrIiB0byAiK299fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6dH19eC5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi8oPzpqYXZhfGVjbWEpc2NyaXB0L30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4geC5nbG9iYWxFdmFsKGUpLGV9fX0pLHguYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXtlLmNhY2hlPT09dCYmKGUuY2FjaGU9ITEpLGUuY3Jvc3NEb21haW4mJihlLnR5cGU9IkdFVCIsZS5nbG9iYWw9ITEpfSkseC5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGUpe2lmKGUuY3Jvc3NEb21haW4pe3ZhciBuLHI9YS5oZWFkfHx4KCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybntzZW5kOmZ1bmN0aW9uKHQsaSl7bj1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLG4uYXN5bmM9ITAsZS5zY3JpcHRDaGFyc2V0JiYobi5jaGFyc2V0PWUuc2NyaXB0Q2hhcnNldCksbi5zcmM9ZS51cmwsbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oZSx0KXsodHx8IW4ucmVhZHlTdGF0ZXx8L2xvYWRlZHxjb21wbGV0ZS8udGVzdChuLnJlYWR5U3RhdGUpKSYmKG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksbj1udWxsLHR8fGkoMjAwLCJzdWNjZXNzIikpfSxyLmluc2VydEJlZm9yZShuLHIuZmlyc3RDaGlsZCl9LGFib3J0OmZ1bmN0aW9uKCl7biYmbi5vbmxvYWQodCwhMCl9fX19KTt2YXIgRm49W10sQm49Lyg9KVw/KD89JnwkKXxcP1w/Lzt4LmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9Rm4ucG9wKCl8fHguZXhwYW5kbysiXyIrdm4rKztyZXR1cm4gdGhpc1tlXT0hMCxlfX0pLHguYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24obixyLGkpe3ZhciBvLGEscyxsPW4uanNvbnAhPT0hMSYmKEJuLnRlc3Qobi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2Ygbi5kYXRhJiYhKG4uY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmQm4udGVzdChuLmRhdGEpJiYiZGF0YSIpO3JldHVybiBsfHwianNvbnAiPT09bi5kYXRhVHlwZXNbMF0/KG89bi5qc29ucENhbGxiYWNrPXguaXNGdW5jdGlvbihuLmpzb25wQ2FsbGJhY2spP24uanNvbnBDYWxsYmFjaygpOm4uanNvbnBDYWxsYmFjayxsP25bbF09bltsXS5yZXBsYWNlKEJuLCIkMSIrbyk6bi5qc29ucCE9PSExJiYobi51cmwrPShibi50ZXN0KG4udXJsKT8iJiI6Ij8iKStuLmpzb25wKyI9IitvKSxuLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gc3x8eC5lcnJvcihvKyIgd2FzIG5vdCBjYWxsZWQiKSxzWzBdfSxuLmRhdGFUeXBlc1swXT0ianNvbiIsYT1lW29dLGVbb109ZnVuY3Rpb24oKXtzPWFyZ3VtZW50c30saS5hbHdheXMoZnVuY3Rpb24oKXtlW29dPWEsbltvXSYmKG4uanNvbnBDYWxsYmFjaz1yLmpzb25wQ2FsbGJhY2ssRm4ucHVzaChvKSkscyYmeC5pc0Z1bmN0aW9uKGEpJiZhKHNbMF0pLHM9YT10fSksInNjcmlwdCIpOnR9KTt2YXIgUG4sUm4sV249MCwkbj1lLkFjdGl2ZVhPYmplY3QmJmZ1bmN0aW9uKCl7dmFyIGU7Zm9yKGUgaW4gUG4pUG5bZV0odCwhMCl9O2Z1bmN0aW9uIEluKCl7dHJ5e3JldHVybiBuZXcgZS5YTUxIdHRwUmVxdWVzdH1jYXRjaCh0KXt9fWZ1bmN0aW9uIHpuKCl7dHJ5e3JldHVybiBuZXcgZS5BY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpfWNhdGNoKHQpe319eC5hamF4U2V0dGluZ3MueGhyPWUuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzTG9jYWwmJkluKCl8fHpuKCl9OkluLFJuPXguYWpheFNldHRpbmdzLnhocigpLHguc3VwcG9ydC5jb3JzPSEhUm4mJiJ3aXRoQ3JlZGVudGlhbHMiaW4gUm4sUm49eC5zdXBwb3J0LmFqYXg9ISFSbixSbiYmeC5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKG4pe2lmKCFuLmNyb3NzRG9tYWlufHx4LnN1cHBvcnQuY29ycyl7dmFyIHI7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oaSxvKXt2YXIgYSxzLGw9bi54aHIoKTtpZihuLnVzZXJuYW1lP2wub3BlbihuLnR5cGUsbi51cmwsbi5hc3luYyxuLnVzZXJuYW1lLG4ucGFzc3dvcmQpOmwub3BlbihuLnR5cGUsbi51cmwsbi5hc3luYyksbi54aHJGaWVsZHMpZm9yKHMgaW4gbi54aHJGaWVsZHMpbFtzXT1uLnhockZpZWxkc1tzXTtuLm1pbWVUeXBlJiZsLm92ZXJyaWRlTWltZVR5cGUmJmwub3ZlcnJpZGVNaW1lVHlwZShuLm1pbWVUeXBlKSxuLmNyb3NzRG9tYWlufHxpWyJYLVJlcXVlc3RlZC1XaXRoIl18fChpWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0Iik7dHJ5e2ZvcihzIGluIGkpbC5zZXRSZXF1ZXN0SGVhZGVyKHMsaVtzXSl9Y2F0Y2godSl7fWwuc2VuZChuLmhhc0NvbnRlbnQmJm4uZGF0YXx8bnVsbCkscj1mdW5jdGlvbihlLGkpe3ZhciBzLHUsYyxwO3RyeXtpZihyJiYoaXx8ND09PWwucmVhZHlTdGF0ZSkpaWYocj10LGEmJihsLm9ucmVhZHlzdGF0ZWNoYW5nZT14Lm5vb3AsJG4mJmRlbGV0ZSBQblthXSksaSk0IT09bC5yZWFkeVN0YXRlJiZsLmFib3J0KCk7ZWxzZXtwPXt9LHM9bC5zdGF0dXMsdT1sLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLCJzdHJpbmciPT10eXBlb2YgbC5yZXNwb25zZVRleHQmJihwLnRleHQ9bC5yZXNwb25zZVRleHQpO3RyeXtjPWwuc3RhdHVzVGV4dH1jYXRjaChmKXtjPSIifXN8fCFuLmlzTG9jYWx8fG4uY3Jvc3NEb21haW4/MTIyMz09PXMmJihzPTIwNCk6cz1wLnRleHQ/MjAwOjQwNH19Y2F0Y2goZCl7aXx8bygtMSxkKX1wJiZvKHMsYyxwLHUpfSxuLmFzeW5jPzQ9PT1sLnJlYWR5U3RhdGU/c2V0VGltZW91dChyKTooYT0rK1duLCRuJiYoUG58fChQbj17fSx4KGUpLnVubG9hZCgkbikpLFBuW2FdPXIpLGwub25yZWFkeXN0YXRlY2hhbmdlPXIpOnIoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtyJiZyKHQsITApfX19fSk7dmFyIFhuLFVuLFZuPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxZbj1SZWdFeHAoIl4oPzooWystXSk9fCkoIit3KyIpKFthLXolXSopJCIsImkiKSxKbj0vcXVldWVIb29rcyQvLEduPVtucl0sUW49eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCkscj1uLmN1cigpLGk9WW4uZXhlYyh0KSxvPWkmJmlbM118fCh4LmNzc051bWJlcltlXT8iIjoicHgiKSxhPSh4LmNzc051bWJlcltlXXx8InB4IiE9PW8mJityKSYmWW4uZXhlYyh4LmNzcyhuLmVsZW0sZSkpLHM9MSxsPTIwO2lmKGEmJmFbM10hPT1vKXtvPW98fGFbM10saT1pfHxbXSxhPStyfHwxO2RvIHM9c3x8Ii41IixhLz1zLHguc3R5bGUobi5lbGVtLGUsYStvKTt3aGlsZShzIT09KHM9bi5jdXIoKS9yKSYmMSE9PXMmJi0tbCl9cmV0dXJuIGkmJihhPW4uc3RhcnQ9K2F8fCtyfHwwLG4udW5pdD1vLG4uZW5kPWlbMV0/YSsoaVsxXSsxKSppWzJdOitpWzJdKSxufV19O2Z1bmN0aW9uIEtuKCl7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtYbj10fSksWG49eC5ub3coKX1mdW5jdGlvbiBabihlLHQsbil7dmFyIHIsaT0oUW5bdF18fFtdKS5jb25jYXQoUW5bIioiXSksbz0wLGE9aS5sZW5ndGg7Zm9yKDthPm87bysrKWlmKHI9aVtvXS5jYWxsKG4sdCxlKSlyZXR1cm4gcn1mdW5jdGlvbiBlcihlLHQsbil7dmFyIHIsaSxvPTAsYT1Hbi5sZW5ndGgscz14LkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIGwuZWxlbX0pLGw9ZnVuY3Rpb24oKXtpZihpKXJldHVybiExO3ZhciB0PVhufHxLbigpLG49TWF0aC5tYXgoMCx1LnN0YXJ0VGltZSt1LmR1cmF0aW9uLXQpLHI9bi91LmR1cmF0aW9ufHwwLG89MS1yLGE9MCxsPXUudHdlZW5zLmxlbmd0aDtmb3IoO2w+YTthKyspdS50d2VlbnNbYV0ucnVuKG8pO3JldHVybiBzLm5vdGlmeVdpdGgoZSxbdSxvLG5dKSwxPm8mJmw/bjoocy5yZXNvbHZlV2l0aChlLFt1XSksITEpfSx1PXMucHJvbWlzZSh7ZWxlbTplLHByb3BzOnguZXh0ZW5kKHt9LHQpLG9wdHM6eC5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LG4pLG9yaWdpbmFsUHJvcGVydGllczp0LG9yaWdpbmFsT3B0aW9uczpuLHN0YXJ0VGltZTpYbnx8S24oKSxkdXJhdGlvbjpuLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbih0LG4pe3ZhciByPXguVHdlZW4oZSx1Lm9wdHMsdCxuLHUub3B0cy5zcGVjaWFsRWFzaW5nW3RdfHx1Lm9wdHMuZWFzaW5nKTtyZXR1cm4gdS50d2VlbnMucHVzaChyKSxyfSxzdG9wOmZ1bmN0aW9uKHQpe3ZhciBuPTAscj10P3UudHdlZW5zLmxlbmd0aDowO2lmKGkpcmV0dXJuIHRoaXM7Zm9yKGk9ITA7cj5uO24rKyl1LnR3ZWVuc1tuXS5ydW4oMSk7cmV0dXJuIHQ/cy5yZXNvbHZlV2l0aChlLFt1LHRdKTpzLnJlamVjdFdpdGgoZSxbdSx0XSksdGhpc319KSxjPXUucHJvcHM7Zm9yKHRyKGMsdS5vcHRzLnNwZWNpYWxFYXNpbmcpO2E+bztvKyspaWYocj1HbltvXS5jYWxsKHUsZSxjLHUub3B0cykpcmV0dXJuIHI7cmV0dXJuIHgubWFwKGMsWm4sdSkseC5pc0Z1bmN0aW9uKHUub3B0cy5zdGFydCkmJnUub3B0cy5zdGFydC5jYWxsKGUsdSkseC5meC50aW1lcih4LmV4dGVuZChsLHtlbGVtOmUsYW5pbTp1LHF1ZXVlOnUub3B0cy5xdWV1ZX0pKSx1LnByb2dyZXNzKHUub3B0cy5wcm9ncmVzcykuZG9uZSh1Lm9wdHMuZG9uZSx1Lm9wdHMuY29tcGxldGUpLmZhaWwodS5vcHRzLmZhaWwpLmFsd2F5cyh1Lm9wdHMuYWx3YXlzKX1mdW5jdGlvbiB0cihlLHQpe3ZhciBuLHIsaSxvLGE7Zm9yKG4gaW4gZSlpZihyPXguY2FtZWxDYXNlKG4pLGk9dFtyXSxvPWVbbl0seC5pc0FycmF5KG8pJiYoaT1vWzFdLG89ZVtuXT1vWzBdKSxuIT09ciYmKGVbcl09byxkZWxldGUgZVtuXSksYT14LmNzc0hvb2tzW3JdLGEmJiJleHBhbmQiaW4gYSl7bz1hLmV4cGFuZChvKSxkZWxldGUgZVtyXTtmb3IobiBpbiBvKW4gaW4gZXx8KGVbbl09b1tuXSx0W25dPWkpfWVsc2UgdFtyXT1pfXguQW5pbWF0aW9uPXguZXh0ZW5kKGVyLHt0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7eC5pc0Z1bmN0aW9uKGUpPyh0PWUsZT1bIioiXSk6ZT1lLnNwbGl0KCIgIik7dmFyIG4scj0wLGk9ZS5sZW5ndGg7Zm9yKDtpPnI7cisrKW49ZVtyXSxRbltuXT1RbltuXXx8W10sUW5bbl0udW5zaGlmdCh0KX0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9Hbi51bnNoaWZ0KGUpOkduLnB1c2goZSl9fSk7ZnVuY3Rpb24gbnIoZSx0LG4pe3ZhciByLGksbyxhLHMsbCx1PXRoaXMsYz17fSxwPWUuc3R5bGUsZj1lLm5vZGVUeXBlJiZubihlKSxkPXguX2RhdGEoZSwiZnhzaG93Iik7bi5xdWV1ZXx8KHM9eC5fcXVldWVIb29rcyhlLCJmeCIpLG51bGw9PXMudW5xdWV1ZWQmJihzLnVucXVldWVkPTAsbD1zLmVtcHR5LmZpcmUscy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7cy51bnF1ZXVlZHx8bCgpfSkscy51bnF1ZXVlZCsrLHUuYWx3YXlzKGZ1bmN0aW9uKCl7dS5hbHdheXMoZnVuY3Rpb24oKXtzLnVucXVldWVkLS0seC5xdWV1ZShlLCJmeCIpLmxlbmd0aHx8cy5lbXB0eS5maXJlKCl9KX0pKSwxPT09ZS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gdHx8IndpZHRoImluIHQpJiYobi5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0sImlubGluZSI9PT14LmNzcyhlLCJkaXNwbGF5IikmJiJub25lIj09PXguY3NzKGUsImZsb2F0IikmJih4LnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1sbihlLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIix4LnN1cHBvcnQuc2hyaW5rV3JhcEJsb2Nrc3x8dS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PW4ub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9bi5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1uLm92ZXJmbG93WzJdfSkpO2ZvcihyIGluIHQpaWYoaT10W3JdLFZuLmV4ZWMoaSkpe2lmKGRlbGV0ZSB0W3JdLG89b3x8InRvZ2dsZSI9PT1pLGk9PT0oZj8iaGlkZSI6InNob3ciKSljb250aW51ZTtjW3JdPWQmJmRbcl18fHguc3R5bGUoZSxyKX1pZigheC5pc0VtcHR5T2JqZWN0KGMpKXtkPyJoaWRkZW4iaW4gZCYmKGY9ZC5oaWRkZW4pOmQ9eC5fZGF0YShlLCJmeHNob3ciLHt9KSxvJiYoZC5oaWRkZW49IWYpLGY/eChlKS5zaG93KCk6dS5kb25lKGZ1bmN0aW9uKCl7eChlKS5oaWRlKCl9KSx1LmRvbmUoZnVuY3Rpb24oKXt2YXIgdDt4Ll9yZW1vdmVEYXRhKGUsImZ4c2hvdyIpO2Zvcih0IGluIGMpeC5zdHlsZShlLHQsY1t0XSl9KTtmb3IociBpbiBjKWE9Wm4oZj9kW3JdOjAscix1KSxyIGluIGR8fChkW3JdPWEuc3RhcnQsZiYmKGEuZW5kPWEuc3RhcnQsYS5zdGFydD0id2lkdGgiPT09cnx8ImhlaWdodCI9PT1yPzE6MCkpfX1mdW5jdGlvbiBycihlLHQsbixyLGkpe3JldHVybiBuZXcgcnIucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX14LlR3ZWVuPXJyLHJyLnByb3RvdHlwZT17Y29uc3RydWN0b3I6cnIsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8InN3aW5nIix0aGlzLm9wdGlvbnM9dCx0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCksdGhpcy5lbmQ9cix0aGlzLnVuaXQ9b3x8KHguY3NzTnVtYmVyW25dPyIiOiJweCIpfSxjdXI6ZnVuY3Rpb24oKXt2YXIgZT1yci5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gZSYmZS5nZXQ/ZS5nZXQodGhpcyk6cnIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGUpe3ZhciB0LG49cnIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPXQ9dGhpcy5vcHRpb25zLmR1cmF0aW9uP3guZWFzaW5nW3RoaXMuZWFzaW5nXShlLHRoaXMub3B0aW9ucy5kdXJhdGlvbiplLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6cnIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0scnIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPXJyLnByb3RvdHlwZSxyci5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIG51bGw9PWUuZWxlbVtlLnByb3BdfHxlLmVsZW0uc3R5bGUmJm51bGwhPWUuZWxlbS5zdHlsZVtlLnByb3BdPyh0PXguY3NzKGUuZWxlbSxlLnByb3AsIiIpLHQmJiJhdXRvIiE9PXQ/dDowKTplLmVsZW1bZS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGUpe3guZnguc3RlcFtlLnByb3BdP3guZnguc3RlcFtlLnByb3BdKGUpOmUuZWxlbS5zdHlsZSYmKG51bGwhPWUuZWxlbS5zdHlsZVt4LmNzc1Byb3BzW2UucHJvcF1dfHx4LmNzc0hvb2tzW2UucHJvcF0pP3guc3R5bGUoZS5lbGVtLGUucHJvcCxlLm5vdytlLnVuaXQpOmUuZWxlbVtlLnByb3BdPWUubm93fX19LHJyLnByb3BIb29rcy5zY3JvbGxUb3A9cnIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihlKXtlLmVsZW0ubm9kZVR5cGUmJmUuZWxlbS5wYXJlbnROb2RlJiYoZS5lbGVtW2UucHJvcF09ZS5ub3cpfX0seC5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihlLHQpe3ZhciBuPXguZm5bdF07eC5mblt0XT1mdW5jdGlvbihlLHIsaSl7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09dHlwZW9mIGU/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKGlyKHQsITApLGUscixpKX19KSx4LmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLmZpbHRlcihubikuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTp0fSxlLG4scil9LGFuaW1hdGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9eC5pc0VtcHR5T2JqZWN0KGUpLG89eC5zcGVlZCh0LG4sciksYT1mdW5jdGlvbigpe3ZhciB0PWVyKHRoaXMseC5leHRlbmQoe30sZSksbyk7KGl8fHguX2RhdGEodGhpcywiZmluaXNoIikpJiZ0LnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHxvLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihlLG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChyKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlJiYocj1uLG49ZSxlPXQpLG4mJmUhPT0hMSYmdGhpcy5xdWV1ZShlfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD0hMCxuPW51bGwhPWUmJmUrInF1ZXVlSG9va3MiLG89eC50aW1lcnMsYT14Ll9kYXRhKHRoaXMpO2lmKG4pYVtuXSYmYVtuXS5zdG9wJiZpKGFbbl0pO2Vscw=="
},
{
"key": "jquery.min.js_4",
"type": "binary",
"value": "base64:ZSBmb3IobiBpbiBhKWFbbl0mJmFbbl0uc3RvcCYmSm4udGVzdChuKSYmaShhW25dKTtmb3Iobj1vLmxlbmd0aDtuLS07KW9bbl0uZWxlbSE9PXRoaXN8fG51bGwhPWUmJm9bbl0ucXVldWUhPT1lfHwob1tuXS5hbmltLnN0b3AociksdD0hMSxvLnNwbGljZShuLDEpKTsodHx8IXIpJiZ4LmRlcXVldWUodGhpcyxlKX0pfSxmaW5pc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT0hMSYmKGU9ZXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsbj14Ll9kYXRhKHRoaXMpLHI9bltlKyJxdWV1ZSJdLGk9bltlKyJxdWV1ZUhvb2tzIl0sbz14LnRpbWVycyxhPXI/ci5sZW5ndGg6MDtmb3Iobi5maW5pc2g9ITAseC5xdWV1ZSh0aGlzLGUsW10pLGkmJmkuc3RvcCYmaS5zdG9wLmNhbGwodGhpcywhMCksdD1vLmxlbmd0aDt0LS07KW9bdF0uZWxlbT09PXRoaXMmJm9bdF0ucXVldWU9PT1lJiYob1t0XS5hbmltLnN0b3AoITApLG8uc3BsaWNlKHQsMSkpO2Zvcih0PTA7YT50O3QrKylyW3RdJiZyW3RdLmZpbmlzaCYmclt0XS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgbi5maW5pc2h9KX19KTtmdW5jdGlvbiBpcihlLHQpe3ZhciBuLHI9e2hlaWdodDplfSxpPTA7Zm9yKHQ9dD8xOjA7ND5pO2krPTItdCluPVp0W2ldLHJbIm1hcmdpbiIrbl09clsicGFkZGluZyIrbl09ZTtyZXR1cm4gdCYmKHIub3BhY2l0eT1yLndpZHRoPWUpLHJ9eC5lYWNoKHtzbGlkZURvd246aXIoInNob3ciKSxzbGlkZVVwOmlyKCJoaWRlIiksc2xpZGVUb2dnbGU6aXIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oZSx0KXt4LmZuW2VdPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQsZSxuLHIpfX0pLHguc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT94LmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fHguaXNGdW5jdGlvbihlKSYmZSxkdXJhdGlvbjplLGVhc2luZzpuJiZ0fHx0JiYheC5pc0Z1bmN0aW9uKHQpJiZ0fTtyZXR1cm4gci5kdXJhdGlvbj14LmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2Ygci5kdXJhdGlvbj9yLmR1cmF0aW9uOnIuZHVyYXRpb24gaW4geC5meC5zcGVlZHM/eC5meC5zcGVlZHNbci5kdXJhdGlvbl06eC5meC5zcGVlZHMuX2RlZmF1bHQsKG51bGw9PXIucXVldWV8fHIucXVldWU9PT0hMCkmJihyLnF1ZXVlPSJmeCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe3guaXNGdW5jdGlvbihyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmeC5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LHguZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn19LHgudGltZXJzPVtdLHguZng9cnIucHJvdG90eXBlLmluaXQseC5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIGUsbj14LnRpbWVycyxyPTA7Zm9yKFhuPXgubm93KCk7bi5sZW5ndGg+cjtyKyspZT1uW3JdLGUoKXx8bltyXSE9PWV8fG4uc3BsaWNlKHItLSwxKTtuLmxlbmd0aHx8eC5meC5zdG9wKCksWG49dH0seC5meC50aW1lcj1mdW5jdGlvbihlKXtlKCkmJngudGltZXJzLnB1c2goZSkmJnguZnguc3RhcnQoKX0seC5meC5pbnRlcnZhbD0xMyx4LmZ4LnN0YXJ0PWZ1bmN0aW9uKCl7VW58fChVbj1zZXRJbnRlcnZhbCh4LmZ4LnRpY2sseC5meC5pbnRlcnZhbCkpfSx4LmZ4LnN0b3A9ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFVuKSxVbj1udWxsfSx4LmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSx4LmZ4LnN0ZXA9e30seC5leHByJiZ4LmV4cHIuZmlsdGVycyYmKHguZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGUpe3JldHVybiB4LmdyZXAoeC50aW1lcnMsZnVuY3Rpb24odCl7cmV0dXJuIGU9PT10LmVsZW19KS5sZW5ndGh9KSx4LmZuLm9mZnNldD1mdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbih0KXt4Lm9mZnNldC5zZXRPZmZzZXQodGhpcyxlLHQpfSk7dmFyIG4scixvPXt0b3A6MCxsZWZ0OjB9LGE9dGhpc1swXSxzPWEmJmEub3duZXJEb2N1bWVudDtpZihzKXJldHVybiBuPXMuZG9jdW1lbnRFbGVtZW50LHguY29udGFpbnMobixhKT8odHlwZW9mIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0IT09aSYmKG89YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkscj1vcihzKSx7dG9wOm8udG9wKyhyLnBhZ2VZT2Zmc2V0fHxuLnNjcm9sbFRvcCktKG4uY2xpZW50VG9wfHwwKSxsZWZ0Om8ubGVmdCsoci5wYWdlWE9mZnNldHx8bi5zY3JvbGxMZWZ0KS0obi5jbGllbnRMZWZ0fHwwKX0pOm99LHgub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXguY3NzKGUsInBvc2l0aW9uIik7InN0YXRpYyI9PT1yJiYoZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgaT14KGUpLG89aS5vZmZzZXQoKSxhPXguY3NzKGUsInRvcCIpLHM9eC5jc3MoZSwibGVmdCIpLGw9KCJhYnNvbHV0ZSI9PT1yfHwiZml4ZWQiPT09cikmJnguaW5BcnJheSgiYXV0byIsW2Esc10pPi0xLHU9e30sYz17fSxwLGY7bD8oYz1pLnBvc2l0aW9uKCkscD1jLnRvcCxmPWMubGVmdCk6KHA9cGFyc2VGbG9hdChhKXx8MCxmPXBhcnNlRmxvYXQocyl8fDApLHguaXNGdW5jdGlvbih0KSYmKHQ9dC5jYWxsKGUsbixvKSksbnVsbCE9dC50b3AmJih1LnRvcD10LnRvcC1vLnRvcCtwKSxudWxsIT10LmxlZnQmJih1LmxlZnQ9dC5sZWZ0LW8ubGVmdCtmKSwidXNpbmciaW4gdD90LnVzaW5nLmNhbGwoZSx1KTppLmNzcyh1KX19LHguZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciBlLHQsbj17dG9wOjAsbGVmdDowfSxyPXRoaXNbMF07cmV0dXJuImZpeGVkIj09PXguY3NzKHIsInBvc2l0aW9uIik/dD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOihlPXRoaXMub2Zmc2V0UGFyZW50KCksdD10aGlzLm9mZnNldCgpLHgubm9kZU5hbWUoZVswXSwiaHRtbCIpfHwobj1lLm9mZnNldCgpKSxuLnRvcCs9eC5jc3MoZVswXSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxuLmxlZnQrPXguY3NzKGVbMF0sImJvcmRlckxlZnRXaWR0aCIsITApKSx7dG9wOnQudG9wLW4udG9wLXguY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LW4ubGVmdC14LmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnR8fHM7d2hpbGUoZSYmIXgubm9kZU5hbWUoZSwiaHRtbCIpJiYic3RhdGljIj09PXguY3NzKGUsInBvc2l0aW9uIikpZT1lLm9mZnNldFBhcmVudDtyZXR1cm4gZXx8c30pfX0pLHguZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihlLG4pe3ZhciByPS9ZLy50ZXN0KG4pO3guZm5bZV09ZnVuY3Rpb24oaSl7cmV0dXJuIHguYWNjZXNzKHRoaXMsZnVuY3Rpb24oZSxpLG8pe3ZhciBhPW9yKGUpO3JldHVybiBvPT09dD9hP24gaW4gYT9hW25dOmEuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2ldOmVbaV06KGE/YS5zY3JvbGxUbyhyP3goYSkuc2Nyb2xsTGVmdCgpOm8scj9vOngoYSkuc2Nyb2xsVG9wKCkpOmVbaV09byx0KX0sZSxpLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSk7ZnVuY3Rpb24gb3IoZSl7cmV0dXJuIHguaXNXaW5kb3coZSk/ZTo5PT09ZS5ub2RlVHlwZT9lLmRlZmF1bHRWaWV3fHxlLnBhcmVudFdpbmRvdzohMX14LmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihlLG4pe3guZWFjaCh7cGFkZGluZzoiaW5uZXIiK2UsY29udGVudDpuLCIiOiJvdXRlciIrZX0sZnVuY3Rpb24ocixpKXt4LmZuW2ldPWZ1bmN0aW9uKGksbyl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aCYmKHJ8fCJib29sZWFuIiE9dHlwZW9mIGkpLHM9cnx8KGk9PT0hMHx8bz09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4geC5hY2Nlc3ModGhpcyxmdW5jdGlvbihuLHIsaSl7dmFyIG87cmV0dXJuIHguaXNXaW5kb3cobik/bi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrZV06OT09PW4ubm9kZVR5cGU/KG89bi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgobi5ib2R5WyJzY3JvbGwiK2VdLG9bInNjcm9sbCIrZV0sbi5ib2R5WyJvZmZzZXQiK2VdLG9bIm9mZnNldCIrZV0sb1siY2xpZW50IitlXSkpOmk9PT10P3guY3NzKG4scixzKTp4LnN0eWxlKG4scixpLHMpfSxuLGE/aTp0LGEsbnVsbCl9fSl9KSx4LmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHguZm4uYW5kU2VsZj14LmZuLmFkZEJhY2ssIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz14OihlLmpRdWVyeT1lLiQ9eCwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4geH0pKX0pKHdpbmRvdyk7DQo="
}
]
}
]
}