ICAgICAgIGh0dHBzOi8vb3Blbi53ZWl4aW4ucXEuY29tL2Nvbm5lY3Qvb2F1dGgyL2F1dGhvcml6ZQ0KICAgICAgICAgICAgICA/YXBwaWQ9e2NvcnBfaWR9DQogICAgICAgICAgICAgICZyZWRpcmVjdF91cmk9e2NhbGxiYWNrfQ0KICAgICAgICAgICAgICAmcmVzcG9uc2VfdHlwZT1jb2RlDQogICAgICAgICAgICAgICZzY29wZT1zbnNhcGlfYmFzZQ0KICAgICAgICAgICAgICAmc3RhdGU9e3RpY2tldH0NCiAgICAgICAgICAgICAgI3dlY2hhdF9yZWRpcmVjdA0KDQogICAgICAgIEFyZ3M6DQogICAgICAgICAgICB0aWNrZXQ6IOaJq+eggeeZu+W9leelqOaNrg0KDQogICAgICAgIFJldHVybnM6DQogICAgICAgICAgICBzdHI6IOWujOaVtOeahCBPQXV0aDIg5o6I5p2DIFVSTA0KICAgICAgICAiIiINCiAgICAgICAgIyDlm57osIPlnLDlnYA6IOW9k+WJjeWQjuerr+eahCBhdXRoX3FyY29kZS9zY2FuIOerr+eCuQ0KICAgICAgICAjIOS8geW+ruimgeaxgiByZWRpcmVjdF91cmkg5b+F6aG7IFVSTC1lbmNvZGUNCiAgICAgICAgY2FsbGJhY2tfdXJsID0gc2VsZi5fZ2V0X3NjYW5fY2FsbGJhY2tfdXJsKCkNCiAgICAgICAgZW5jb2RlZF9jYWxsYmFjayA9IGNhbGxiYWNrX3VybCAgIyB1cmxlbmNvZGUg55WZ57uZ5YmN56uv5YGaLOi/memHjOWBh+WumumFjee9ruW3suaYr+WQiOazlSBVUkwNCg0KICAgICAgICBwYXJhbXMgPSB7DQogICAgICAgICAgICAiYXBwaWQiOiBzZXR0aW5ncy53ZWNvbV9jb3JwX2lkLA0KICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6IGVuY29kZWRfY2FsbGJhY2ssDQogICAgICAgICAgICAicmVzcG9uc2VfdHlwZSI6ICJjb2RlIiwNCiAgICAgICAgICAgICJzY29wZSI6ICJzbnNhcGlfYmFzZSIsDQogICAgICAgICAgICAic3RhdGUiOiB0aWNrZXQsDQogICAgICAgIH0NCiAgICAgICAgcXVlcnkgPSB1cmxlbmNvZGUocGFyYW1zKQ0KICAgICAgICByZXR1cm4gZiJodHRwczovL29wZW4ud2VpeGluLnFxLmNvbS9jb25uZWN0L29hdXRoMi9hdXRob3JpemU/e3F1ZXJ5fSN3ZWNoYXRfcmVkaXJlY3QiDQoNCiAgICBkZWYgX2dldF9zY2FuX2NhbGxiYWNrX3VybChzZWxmKSAtPiBzdHI6DQogICAgICAgICIiIuiOt+WPliBPQXV0aCDlm57osIPlnLDlnYAo5b+F6aG75piv57ud5a+5IFVSTCzkvIHlvq4gT0F1dGgyIOimgeaxginjgIINCg0KICAgICAgICDkvJjlhYjnuqc6DQogICAgICAgICAgMS4gc2V0dGluZ3MucXJjb2RlX29hdXRoX2NhbGxiYWNrKFdFQ09NX1FSQ09ERV9DQUxMQkFDSyDnjq/looPlj5jph48pDQogICAgICAgICAgMi4gc2V0dGluZ3Mud2Vjb21fc3NvX2NhbGxiYWNrX2Jhc2UgKyAvYXBpL2F1dGhfcXJjb2RlL3NjYW4oU1NPIOmFjee9ruWkjeeUqCkNCiAgICAgICAgICAzLiDlhZzlupU655u45a+56Lev5b6EIC9hcGkvYXV0aF9xcmNvZGUvc2NhbijkvIHlvq7kvJrmiqXplJks5Y+q5Li65LiN5oqbIDUwMCkNCg0KICAgICAgICDms6jmhI865YWc5bqV6L+U5Zue55u45a+56Lev5b6E5Lya6K6p5LyB5b6uIFdlYlZpZXcg5ou8IGhvc3Qg5aSx6LSlIOKGkiBpT1Mg5oqlDQogICAgICAgIE5TVVJMRXJyb3JDYW5ub3RGaW5kSG9zdOOAgueUn+S6p+mDqOe9suW/hemhu+mFjSBXRUNPTV9RUkNPREVfQ0FMTEJBQ0vjgIINCiAgICAgICAgIiIiDQogICAgICAgICMgMS4g5LyY5YWIOuaJq+eggeS4k+eUqCBjYWxsYmFjayBVUkwNCiAgICAgICAgZXhwbGljaXQgPSBnZXRhdHRyKHNldHRpbmdzLCAicXJjb2RlX29hdXRoX2NhbGxiYWNrIiwgIiIpDQogICAgICAgIGlmIGV4cGxpY2l0Og0KICAgICAgICAgICAgcmV0dXJuIGV4cGxpY2l0DQogICAgICAgICMgMi4gZmFsbGJhY2s6U1NPIGNhbGxiYWNrIGJhc2Ug5ou85omr56CB6Lev5b6EDQogICAgICAgIHNzb19iYXNlID0gZ2V0YXR0cihzZXR0aW5ncywgIndlY29tX3Nzb19jYWxsYmFja19iYXNlIiwgIiIpDQogICAgICAgIGlmIHNzb19iYXNlOg0KICAgICAgICAgICAgcmV0dXJuIGYie3Nzb19iYXNlLnJzdHJpcCgnLycpfS9hcGkvYXV0aF9xcmNvZGUvc2NhbiINCiAgICAgICAgIyAzLiDlhZzlupU655u45a+56Lev5b6EKOS7heeUqOS6juW8gOWPkSznlJ/kuqfkvJrmiqXplJkpDQogICAgICAgIHJldHVybiAiL2FwaS9hdXRoX3FyY29kZS9zY2FuIg0KDQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAjIHNjYW46IOWkhOeQhuS8geW+riBPQXV0aCBjb2RlIOWbnuiwgw0KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgYXN5bmMgZGVmIHByb2Nlc3Nfc2NhbigNCiAgICAgICAgc2VsZiwgdGlja2V0OiBzdHIsIGNvZGU6IHN0ciwgYXV0b19jb25maXJtOiBib29sID0gVHJ1ZQ0KICAgICkgLT4gRGljdFtzdHIsIEFueV06DQogICAgICAgICIiIuWkhOeQhuaJq+eggeWbnuiwgzog55SoIGNvZGUg5o2iIHVzZXJpZCzlhpkgUmVkaXMg5L6bIGNvbmZpcm0g56uv54K55raI6LS544CCDQoNCiAgICAgICAgdjAuNy4xIGhvdGZpeCAjMTIwIOaUuemAoDog6buY6K6kIGF1dG9fY29uZmlybT1UcnVlLA0KICAgICAgICDmiavnoIHmiJDlip8gPSDoh6rliqjnmbvlvZUo5LiN5YaN6KaB5rGC5omL5py656uv54K556Gu6K6kKeOAgg0KICAgICAgICDljp/lm6A65LyB5b6uIEFwcCDnq6/msqHmnInjgIznoa7orqTnmbvlvZXjgI1VSSzml6cgY29uZmlybSDmraXpqqTlnKjnlJ/kuqfml6Dms5XotbDpgJrjgIINCg0KICAgICAgICDmtYHnqIs6DQogICAgICAgICAgMS4g5qCh6aqMIHRpY2tldCDlrZjlnKgo5ZCm5YiZ56Wo5o2u6L+H5pyfKQ0KICAgICAgICAgIDIuIGRldiDmqKHlvI8g4oaSIOeUqOmihOiuviBkZXYg55So5oi36Lez6L+H5LyB5b6uIEFQSQ0KICAgICAgICAgIDMuIOeUn+S6p+aooeW8jyDihpIg6LCD5LyB5b6uIGdldF9vYXV0aF91c2VyX2luZm8oY29kZSkg5ou/IHVzZXJpZA0KICAgICAgICAgIDQuIOWG