Ly8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAqCi8vICogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwovLyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi8vICoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KLy8gIDExLzE3Lzk5ICAgIGFsaXUgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRyYW5zbGl0ZXJhdG9ycy4KCi8vIFBsZWFzZSBzZWFyY2ggZm9yICdEVVAgRklYTUUnIC0gZHVwbGljYXRlIGxhbmcvY291bnRyeSBuYW1lcyBjb21tZW50ZWQgb3V0CgoKCnJvb3QgewogICAgVmVyc2lvbiB7ICIzIiB9CiAgICAiJSVFVVJPIiB7ICJFdXJvIiB9ICAgICAgICAgLy8gRXVybyB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQiIgICAgeyAiQm9rbVx1MDBlNWwiIH0gIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlTlkiICAgeyAiTnlub3JzayIgfSAgICAgIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQUwiIHsgIlx1MDBDNWxhbmQiIH0gLy8gQWxhbmQgdmFyaWFudCBkaXNwbGF5IG5hbWUKICAgICIlJVVDQVJVTEVTIiB7ICJVQ0FSdWxlcy50eHQifSAvLyBVQ0FSdWxlcwogICAgLy8gbm8gY29sbGF0aW9uIGVsZW1lbnRzIGFueSBtb3JlCiAgICAvLyBDb2xsYXRpb25FbGVtZW50cyB7IAogICAgLy8JICAgIFZlcnNpb24geyAiMS4wIiB9CiAgICAvLwkJT3ZlcnJpZGUgeyAiRkFMU0UiIH0KICAgIC8vCQlTZXF1ZW5jZSB7ICIiIH0KICAgIC8vIH0gICAgCiAgICAvLyBGb3JtYXRzIGZvciB0aGUgZGlzcGxheSBuYW1lIG9mIGEgbG9jYWxlLCBmb3IgYSBsaXN0IG9mCiAgICAvLyBpdGVtcywgYW5kIGZvciBjb21wb3NpbmcgdHdvIGl0ZW1zIGluIGEgbGlzdCBpbnRvIG9uZSBpdGVtLgogICAgLy8gVGhlIGxpc3QgcGF0dGVybnMgYXJlIHVzZWQgaW4gdGhlIHZhcmlhbnQgbmFtZSBhbmQgaW4gdGhlCiAgICAvLyBmdWxsIGRpc3BsYXkgbmFtZS4KICAgIC8vCiAgICAvLyBUaGlzIGlzIHRoZSBsYW5ndWFnZS1uZXV0cmFsIGZvcm0gb2YgdGhpcyByZXNvdXJjZS4KICAgIC8vCiAgICBMb2NhbGVOYW1lUGF0dGVybnMgewogICAgICAgICB7CiAgICAgICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0gKHsyfSl9IiwgLy8gRGlzcGxheSBuYW1lCiAgICAgICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0sezJ9fDMjezF9LHsyfSx7M319IiwgLy8gTGlzdAogICAgICAgICAgICAiezB9LHsxfSIgLy8gTGlzdCBjb21wb3NpdGlvbgogICAgICAgICB9CiAgICB9CgogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC8vIEJFR0lOIFRyYW5zbGl0ZXJhdG9yIHN1cHBvcnQKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgCiAgICAvLyBTZWUgYWxzbyBpY3UvZGF0YS90cmFuc2xpdC9pbmRleC50eHQKCiAgICBUcmFuc2xpdGVyYXRvck5hbWVQYXR0ZXJuIHsKICAgICAgICAvLyBGb3JtYXQgZm9yIHRoZSBkaXNwbGF5IG5hbWUgb2YgYSBUcmFuc2xpdGVyYXRvci4KICAgICAgICAvLyBUaGlzIGlzIHRoZSBsYW5ndWFnZS1uZXV0cmFsIGZvcm0gb2YgdGhpcyByZXNvdXJjZS4KICAgICAgICAiezAsY2hvaWNlLDAjfDEjezF9fDIjezF9LXsyfX0iIC8vIERpc3BsYXkgbmFtZQogICAgfQoKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBFTkQgVHJhbnNsaXRlcmF0b3Igc3VwcG9ydAogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLy8gQkVHSU4gQnJlYWtJdGVyYXRvciBzdXBwb3J0CiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIENoYXJhY3RlckJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcyBhbmQgZW5jbG9zaW5nIG1hcmtzIChzaW5jZSB3ZSBuZXZlcgogICAgICAgIC8vIHB1dCBhIGJyZWFrIGJlZm9yZSBpZ25vcmUgY2hhcmFjdGVycywgdGhpcyBrZWVwcyBjb21iaW5pbmcKICAgICAgICAvLyBhY2NlbnRzIHdpdGggdGhlIGJhc2UgY2hhcmFjdGVycyB0aGV5IG1vZGlmeSkKICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdXTsiCgogICAgICAgIC8vIG90aGVyIGNhdGVnb3J5IGRlZmluaXRpb25zCiAgICAgICAgImNob3Nlb25nPVtcdTExMDAtXHUxMTVmXTsiCiAgICAgICAgImp1bmdzZW9uZz1bXHUxMTYwLVx1MTFhN107IgogICAgICAgICJqb25nc2Vvbmc9W1x1MTFhOC1cdTExZmZdOyIKICAgICAgICAic3Vyci1oaT1bXHVkODAwLVx1ZGJmZl07IgogICAgICAgICJzdXJyLWxvPVtcdWRjMDAtXHVkZmZmXTsiCgogICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3RlciwgZXhjZXB0IGFzIGZvbGxvd3M6CiAgICAgICAgIi47IgoKICAgICAgICAvLyBrZWVwIENSTEYgc2VxdWVuY2VzIHRvZ2V0aGVyCiAgICAgICAgIlxyXG47IgoKICAgICAgICAvLyBrZWVwIHN1cnJvZ2F0ZSBwYWlycyB0b2dldGhlcgogICAgICAgICJ7c3Vyci1oaX17c3Vyci1sb307IgoKICAgICAgICAvLyBrZWVwIEhhbmd1bCBzeWxsYWJsZXMgc3BlbGxlZCBvdXQgdXNpbmcgY29uam9pbmluZyBqYW1vIHRvZ2V0aGVyCiAgICAgICAgIntjaG9zZW9uZ30qe2p1bmdzZW9uZ30qe2pvbmdzZW9uZ30qOyIKCiAgICAgICAgLy8gdmFyaW91cyBhZGRpdGlvbnMgZm9yIEhpbmRpIHN1cHBvcnQKICAgICAgICAibnVrdGE9W1x1MDkzY107IgogICAgICAgICJkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCiAgICAgICAgInZpcmFtYT1bXHUwOTRkXTsiCiAgICAgICAgImRldlZvd2VsU2lnbj1bXHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M107IgogICAgICAgICJkZXZDb25zb25hbnQ9W1x1MDkxNS1cdTA5MzldOyIKICAgICAgICAiZGV2TnVrdGFDb25zb25hbnQ9W1x1MDk1OC1cdTA5NWZdOyIKICAgICAgICAiZGV2Q2hhckVuZD1bXHUwOTAyXHUwOTAzXHUwOTUxLVx1MDk1NF07IgogICAgICAgICJ6d2o9W1x1MjAwZF07IgogICAgICAgIAogICAgICAgICJkZXZDQU1OPSh7ZGV2Q29uc29uYW50fXtudWt0YX0/KTsiCiAgICAgICAgImRldkNvbnNvbmFudDE9KHtkZXZOdWt0YUNvbnNvbmFudH18e2RldkNBTU59KTsiCiAgICAgICAgImRldkNvbmp1bmN0PSgoe2RldkNvbnNvbmFudDF9e3ZpcmFtYX17endqfT8pP3tkZXZDb25zb25hbnQxfSk7IgoKICAgICAgICAie2RldkNvbmp1bmN0fXtkZXZWb3dlbFNpZ259P3tkZXZDaGFyRW5kfT87IgogICAgICAgICJ7ZGFuZGF9e251a3RhfTsiCiAgICB9CgogICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZmluZGluZyB3b3JkIGJvdW5kYXJpZXMKICAgIFdvcmRCcmVha1J1bGVzIHsKICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzLAogICAgICAgIC8vIGFsbCBvZiB3aGljaCBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgYWxnb3JpdGhtCiAgICAgICAgIiRpZ25vcmU9W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgoKICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAogICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKICAgICAgICAiZGFuZGE9W1x1MDk2NFx1MDk2NV07IgogICAgICAgICJrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRdOyIKICAgICAgICAia2F0YT1bXHUzMDk5LVx1MzA5Y1x1MzBhMS1cdTMwZmVdOyIKICAgICAgICAiaGlyYT1bXHUzMDQxLVx1MzA5ZVx1MzBmY107IgogICAgICAgICJsZXQ9W1tbOkw6XVs6TWM6XV0tW3trYW5qaX17a2F0YX17aGlyYX1dXTsiCiAgICAgICAgImRndD1bOk46XTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkOiBjdXJyZW50bHkKICAgICAgICAvLyBkYXNoZXMsIGFwb3N0cm9waGVzLCBxdW90YXRpb24gbWFya3MsIGFuZCBwZXJpb2RzCiAgICAgICAgIm1pZC13b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ1xcLl07IgoKICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKICAgICAgICAvLyBhcG9zdHJvcGhlcywgcW91dGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBjb21tYXMsIGFuZCB0aGUgQXJhYmljCiAgICAgICAgLy8gZGVjaW1hbCBwb2ludAogICAgICAgICJtaWQtbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgoKICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKICAgICAgICAvLyB0aGUgcGVyaW9kLCB0aGUgbnVtYmVyIHNpZ24sIGFuZCBhbGwgY3VycmVuY3kgc3ltYm9scyBleGNlcHQgdGhlIGNlbnRzIHNpZ24KICAgICAgICAicHJlLW51bT1bW1s6U2M6XS1bXHUwMGEyXV1cXCNcXC5dOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGVuZCBvZiBhIG51bWJlcjogY3VycmVudGx5CiAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CiAgICAgICAgLy8gc2lnbnMsIHRoZSBjZW50cyBzaWduLCBhbmQgdGhlIGFtcGVyc2FuZAogICAgICAgICJwb3N0LW51bT1bXFwlXFwmXHUwMGEyXHUwNjZhXHUyMDMwXHUyMDMxXTsiCgogICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yczogY3VycmVudGx5IExGLCBGRiwgUFMsIGFuZCBMUwogICAgICAgICJscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKCiAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCiAgICAgICAgIndzPVtbOlpzOl1cdF07IgoKICAgICAgICAvLyBhIHdvcmQgaXMgYSBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGxldHRlciBhbmQKICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKICAgICAgICAid29yZD0oe2xldH0rKHttaWQtd29yZH17bGV0fSspKntkYW5kYX0/KTsiCgogICAgICAgIC8vIGEgbnVtYmVyIGlzIGEgc2VxdWVuY2Ugb2YgZGlnaXRzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGRpZ2l0IGFuZAogICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdy4KICAgICAgICAibnVtYmVyPSh7ZGd0fSsoe21pZC1udW19e2RndH0rKSopOyIKCiAgICAgICAgLy8gYnJlYWsgYWZ0ZXIgZXZlcnkgY2hhcmFjdGVyLCB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucwogICAgICAgIC8vICh0aGlzIHdpbGwgY2F1c2UgcHVuY3R1YXRpb24gbWFya3MgdGhhdCBhcmVuJ3QgY29uc2lkZXJlZAogICAgICAgIC8vIHBhcnQgb2Ygd29yZHMgb3IgbnVtYmVycyB0byBiZSB0cmVhdGVkIGFzIHdvcmRzIHVudG8gdGhlbXNlbHZlcykKICAgICAgICAiLjsiCgogICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKICAgICAgICAvLyAoaW5jbHVkaW5nIGp1c3Qgb25lIG9mIGVpdGhlciksIHBsdXMgYW4gb3B0aW9uYWwgdHJhaWxpbmcKICAgICAgICAvLyBudW1iZXItc3VmZml4IGNoYXJhY3RlcgogICAgICAgICJ7d29yZH0/KHtudW1iZXJ9e3dvcmR9KSooe251bWJlcn17cG9zdC1udW19Pyk/OyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycwogICAgICAgIC8vIHRoYXQgc3RhcnRzIHdpdGggYSBudW1iZXItcHJlZml4IGNoYXJhY3RlciBhbmQgYSBudW1iZXIsCiAgICAgICAgLy8gYW5kIG1heSBlbmQgd2l0aCBhIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCiAgICAgICAgIntwcmUtbnVtfSh7bnVtYmVyfXt3b3JkfSkqKHtudW1iZXJ9e3Bvc3QtbnVtfT8pPzsiCgogICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQogICAgICAgICJ7d3N9KlxyP3tsc30/OyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthdGFrYW5hCiAgICAgICAgIntrYXRhfSo7IgoKICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgSGlyYWdhbmEKICAgICAgICAie2hpcmF9KjsiCgogICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYW5qaQogICAgICAgICJ7a2Fuaml9KjsiCiAgICB9CgogICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZGV0ZXJtaW5pbmcgbGVnYWwgbGluZS1icmVha2luZyBwb3NpdGlvbnMKICAgIExpbmVCcmVha1J1bGVzIHsKICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzCiAgICAgICAgIiRpZ25vcmU9W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgoKICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycwogICAgICAgICJkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgY2F1c2UgYSBicmVhazogRVRYLCB0YWIsIExGLCBGRiwgTFMsIGFuZCBQUwogICAgICAgICJicmVhaz1bXHUwMDAzXHRcblxmXHUyMDI4XHUyMDI5XTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgcHJldmVudCBhIGJyZWFrOiB0aGUgbm9uLWJyZWFraW5nIHNwYWNlCiAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycwogICAgICAgICJuYnNwPVtcdTAwYTBcdTIwMDdcdTIwMTFcdWZlZmZdOyIKCiAgICAgICAgLy8gd2hpdGVzcGFjZTogc3BhY2Ugc2VwYXJhdG9ycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLCBleGNlcHQgZm9yCiAgICAgICAgLy8gQ1IgYW5kIHRoZSBvdGhlciBjaGFyYWN0ZXJzIG1lbnRpb25lZCBhYm92ZQogICAgICAgICJzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tW3tuYnNwfXticmVha31ccl1dOyIKCiAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucwogICAgICAgICJkYXNoPVtbWzpQZDpdXHUwMGFkXS1be25ic3B9XV07IgoKICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgcHJlY2VkZSBpdDogY3VycmVuY3kgc3ltYm9scwogICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgogICAgICAgICJwcmUtd29yZD1bW1s6U2M6XS1bXHUwMGEyXV1bOlBzOl1cXFwiXFxcJ107IgoKICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgZm9sbG93IGl0OiBlbmRpbmcgcHVuY3R1YXRpb24sCiAgICAgICAgLy8gb3RoZXIgcHVuY3R1YXRpb24gdGhhdCB1c3VhbGx5IG9jY3VycyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsCiAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCiAgICAgICAgInBvc3Qtd29yZD1bWzpQZTpdXFwhXFxcIlxcXCdcXCVcXC5cXCxcXDpcXDtcXD9cdTAwYTJcdTAwYjBcdTA2NmFcdTIwMzAtXHUyMDM0IgogICAgICAgICAgICAgICAgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKICAgICAgICAgICAgICAgICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgogICAgICAgICAgICAgICAgIlx1MzBjM1x1MzBlM1x1MzBlNVx1MzBlN1x1MzBlZVx1MzBmNVx1MzBmNlx1MzBmYy1cdTMwZmVcdWZmMDFcdWZmMGMiCiAgICAgICAgICAgICAgICAiXHVmZjBlXHVmZjFmXTsiCgogICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCiAgICAgICAgLy8gQ0pLIGRpYWNyaXRpY3MKICAgICAgICAia2Fuamk9W1tcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZFx1MzA0MS1cdTMwOTRcdTMwYTEtXHUzMGZhXS1be3Bvc3Qtd29yZH17JGlnbm9yZX1dXTsiCgogICAgICAgIC8vIGRpZ2l0cwogICAgICAgICJkaWdpdD1bWzpOZDpdWzpObzpdXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IHBlcmlvZHMgYW5kIGNvbW1hcwogICAgICAgICJtaWQtbnVtPVtcXC5cXCxdOyIKCiAgICAgICAgLy8gZXZlcnl0aGluZyBub3QgbWVudGlvbmVkIGFib3ZlLCBwbHVzIHRoZSBxdW90ZSBtYXJrcyAod2hpY2ggYXJlIGJvdGgKICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKICAgICAgICAiY2hhcj1bXnticmVha317c3BhY2V9e2Rhc2h9e2thbmppfXtuYnNwfXskaWdub3JlfXtwcmUtd29yZH17cG9zdC13b3JkfXttaWQtbnVtfXtkYW5kYX1cclxcXCJcXFwnXTsiCgogICAgICAgIC8vIGEgIm51bWJlciIgaXMgYSBydW4gb2YgcHJlZml4IGNoYXJhY3RlcnMgYW5kIGRhc2hlcywgZm9sbG93ZWQgYnkgb25lIG9yCiAgICAgICAgLy8gbW9yZSBkaWdpdHMgd2l0aCBpc29sYXRlZCBudW1iZXItcHVuY3R1YXRpb24gY2hhcmFjdGVycyBpbnRlcnNwZXJzZWQKICAgICAgICAibnVtYmVyPShbe3ByZS13b3JkfXtkYXNofV0qe2RpZ2l0fSsoe21pZC1udW19e2RpZ2l0fSspKik7IgoKICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCiAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCiAgICAgICAgLy8gY2hhcmFjdGVycyAodGhpcyBpbmNsdWRlcyBMYXRpbiBsZXR0ZXJzKQogICAgICAgICJ3b3JkLWNvcmU9KFt7cHJlLXdvcmR9e2NoYXJ9XSp8e2thbmppfXx7bnVtYmVyfSk7IgoKICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKICAgICAgICAvLyBtb3JlIGRhc2hlcyBvciBhIHJ1biBvZiB3b3JkLXN1ZmZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbAogICAgICAgIC8vIHJ1biBvZiB3aGl0ZXNwYWNlCiAgICAgICAgIndvcmQtc3VmZml4PSgoe2Rhc2h9K3x7cG9zdC13b3JkfSope3NwYWNlfSopOyIKCiAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKICAgICAgICAvLyBhIHdvcmQgY29yZSBhbmQgYSB3b3JkIHN1ZmZpeCAodGhlIHN5bnRheCBvZiA8d29yZC1jb3JlPiBhbmQgPHdvcmQtc3VmZml4PgogICAgICAgIC8vIGFjdHVhbGx5IGFsbG93cyBlaXRoZXIgb2YgdGhlbSB0byBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nLCBwdXR0aW5nIGEgYnJlYWsKICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCiAgICAgICAgIndvcmQ9KHtwcmUtd29yZH0qe3dvcmQtY29yZX17d29yZC1zdWZmaXh9KTsiCgogICAgICAgIC8vIGZpbmFsbHksIHRoZSBydWxlIHRoYXQgZG9lcyB0aGUgd29yazogS2VlcCB0b2dldGhlciBhbnkgcnVuIG9mIHdvcmRzIHRoYXQKICAgICAgICAvLyBhcmUgam9pbmVkIGJ5IHJ1bnMgb2Ygb25lIG9mIG1vcmUgbm9uLXNwYWNpbmcgbWFyay4gIEFsc28ga2VlcCBhIHRyYWlsaW5nCiAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycwogICAgICAgIC8vICJ3aW4iIG92ZXIgbmJzcCdzKQogICAgICAgICJ7d29yZH0oe25ic3B9K3t3b3JkfSkqXHI/e2JyZWFrfT87IgogICAgfQoKICAgIC8vIGRlZmF1bHQgcnVsZXMgZm9yIGZpbmRpbmcgc2VudGVuY2UgYm91bmRhcmllcwogICAgU2VudGVuY2VCcmVha1J1bGVzIHsKICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzCiAgICAgICAgIiRpZ25vcmU9W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgoKICAgICAgICAvLyBsb3dlcmNhc2UgbGV0dGVycwogICAgICAgICJsYz1bOkxsOl07IgogICAgICAgIAogICAgICAgIC8vIHVwcGVyY2FzZSBMYXRpbiBsZXR0ZXJzCiAgICAgICAgInVjTGF0aW49W0EtWl07IgoKICAgICAgICAvLyB3aGl0ZXNwYWNlIChsaW5lIHNlcGFyYXRvcnMgYXJlIHRyZWF0ZWQgYXMgd2hpdGVzcGFjZSkKICAgICAgICAic3BhY2U9W1x0XHJcZlxuXHUyMDI4WzpaczpdXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHdoaWNoIG1heSBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgc2VudGVuY2U6ICJzdGFydGluZwogICAgICAgIC8vIHB1bmN0dWF0aW9uIiBhbmQgcXVvdGF0aW9uIG1hcmtzCiAgICAgICAgInN0YXJ0PVtbOlBzOl1cXFwiXFxcJ107IgoKICAgICAgICAvLyBwdW5jdHVhdGlvbiB3aXRoIG1heSBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2U6ICJlbmRpbmcgcHVuY3R1YXRpb24iCiAgICAgICAgLy8gYW5kIHF1b3RhdGlvbiBtYXJrcwogICAgICAgICJlbmQ9W1s6UGU6XVxcXCJcXFwnXTsiCgogICAgICAgIC8vIGRpZ2l0cwogICAgICAgICJkaWdpdD1bOk46XTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCB1bmFtYmlndW91c2x5IHNpZ25hbCB0aGUgZW5kIG9mIGEgc2VudGVuY2UKICAgICAgICAidGVybT1bXFwhXFw/XHUzMDAyXHVmZjAxXHVmZjFmXTsiCgogICAgICAgIC8vIHBlcmlvZHMsIHdoaWNoIE1BWSBzaWduYWwgdGhlIGVuZCBvZiBhIHNlbnRlbmNlCiAgICAgICAgInBlcmlvZD1bXFwuXHVmZjBlXTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBtYXkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlOiBiYXNpY2FsbHkgYW55dGhpbmcKICAgICAgICAvLyBub3QgbWVudGlvbmVkIGFib3ZlIChsb3dlcmNhc2UgbGV0dGVycyBhbmQgZGlnaXRzIGFyZSBzcGVjaWZpY2FsbHkgZXhjbHVkZWQpCiAgICAgICAgInNlbnQtc3RhcnQ9W157bGN9e3VjTGF0aW59e3NwYWNlfXtzdGFydH17ZW5kfXtkaWdpdH17dGVybX17cGVyaW9kfVx1MjAyOXskaWdub3JlfV07IgoKICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yCiAgICAgICAgImRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKCiAgICAgICAgLy8gYWx3YXlzIGJyZWFrIHNlbnRlbmNlcyBhZnRlciBwYXJhZ3JhcGggc2VwYXJhdG9ycwogICAgICAgICIuKj9cdTIwMjk/OyIKCiAgICAgICAgLy8gYWx3YXlzIGJyZWFrIGFmdGVyIGEgZGFuZGEsIGlmIGl0J3MgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZQogICAgICAgICIuKj97ZGFuZGF9e3NwYWNlfSo7IgoKICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgcGVyaW9kLCBza2lwIG92ZXIgYWRkaXRpb25hbCBwZXJpb2RzIGFuZCBlbmRpbmcgcHVuY3R1YXRpb24KICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvciwgYnJlYWsgYWZ0ZXIgdGhlCiAgICAgICAgLy8gcGFyYWdyYXBoIHNlcGFyYXRvcgogICAgICAgICIuKj97cGVyaW9kfVt7cGVyaW9kfXtlbmR9XSp7c3BhY2V9Klx1MjAyOTsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBwZXJpb2QsIHNraXAgb3ZlciBhZGRpdGlvbmFsIHBlcmlvZHMgYW5kIGVuZGluZyBwdW5jdHVhdGlvbiwKICAgICAgICAvLyBmb2xsb3dlZCBieSBvcHRpb25hbCB3aGl0ZXNwYWNlLCBmb2xsb3dlZCBieSBvcHRpb25hbCBzdGFydGluZyBwdW5jdHVhdGlvbiwKICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIHNvbWV0aGluZyB0aGF0IGNhbiBzdGFydCBhIHNlbnRlbmNlCiAgICAgICAgLy8gKGJhc2ljYWxseSwgYSBjYXBpdGFsIGxldHRlciksIHRoZW4gcHV0IHRoZSBzZW50ZW5jZSBicmVhayBiZXR3ZWVuIHRoZQogICAgICAgIC8vIHdoaXRlc3BhY2UgYW5kIHRoZSBvcGVuaW5nIHB1bmN0dWF0aW9uCiAgICAgICAgIi4qP3twZXJpb2R9W3twZXJpb2R9e2VuZH1dKntzcGFjZX0qLyh7c3RhcnR9KntzZW50LXN0YXJ0fXx7c3RhcnR9K3t1Y0xhdGlufSk7IgogICAgICAgIAogICAgICAgIC8vIHNhbWUgYXMgYWJvdmUsIGV4Y2VwdCB0aGF0IHRoZXJlJ3MgYSBzZW50ZW5jZSBicmVhayBiZWZvcmUgYSBMYXRpbiBjYXBpdGFsCiAgICAgICAgLy8gbGV0dGVyIG9ubHkgaWYgdGhlcmUncyBhdCBsZWFzdCBvbmUgc3BhY2UgYWZ0ZXIgdGhlIHBlcmlvZAogICAgICAgICIuKj97cGVyaW9kfVt7cGVyaW9kfXtlbmR9XSp7c3BhY2V9Ky97dWNMYXRpbn07IgoKICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgc2VudGVuY2UtdGVybWluYXRpbmcgY2hhcmFjdGVyLCBza2lwIG92ZXIgYW55IGFkZGl0aW9uYWwKICAgICAgICAvLyB0ZXJtaW5hdG9ycywgcGVyaW9kcywgb3IgZW5kaW5nIHB1bmN0dWF0aW9uLCBmb2xsb3dlZCBieSBhbnkgd2hpdGVzcGFjZSwKICAgICAgICAvLyBmb2xsb3dlZCBieSBhIFNJTkdMRSBvcHRpb25hbCBwYXJhZ3JhcGggc2VwYXJhdG9yLCBhbmQgcHV0IHRoZSBicmVhayB0aGVyZQogICAgICAgICIuKj97dGVybX1be3Rlcm19e3BlcmlvZH17ZW5kfV0qe3NwYWNlfSpcdTIwMjk/OyIKCiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBydWxlcyBhcmUgaGVyZSB0byBhaWQgaW4gYmFja3dhcmRzIGl0ZXJhdGlvbi4gIFRoZSBhdXRvbWF0aWNhbGx5CiAgICAgICAgLy8gZ2VuZXJhdGVkIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZSB3aWxsIHJld2luZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQogICAgICAgIC8vIHBhcmFncmFwaCBhbGwgdGhlIHRpbWUgKG9yIGFsbCB0aGUgd2F5IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50CiAgICAgICAgLy8gaWYgdGhlIGRvY3VtZW50IGRvZXNuJ3QgdXNlIHRoZSBVbmljb2RlIFBTIGNoYXJhY3RlcikgYmVjYXVzZSB0aGUgb25seQogICAgICAgIC8vIHVuYW1iaWd1b3VzIGNoYXJhY3RlciBwYWlycyBhcmUgdGhvc2UgaW52b2x2aW5nIHBhcmFncmFwaCBzZXBhcmF0b3JzLgogICAgICAgIC8vIFRoZXNlIHNwZWNpZnkgYSBmZXcgbW9yZSB1bmFtYmlndW91cyBicmVha2luZyBzaXR1YXRpb25zLgoKICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgc2VudGVuY2Utc3RhcnRpbmcgY2hhcmFjdGVyLCBmb2xsb3dlZCBieSBzdGFydGluZyBwdW5jdHVhdGlvbgogICAgICAgIC8vIChyZW1lbWJlciwgd2UncmUgaXRlcmF0aW5nIGJhY2t3YXJkcyksIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZgogICAgICAgIC8vIHdoaXRlc3BhY2UsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZiBlbmRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkCiAgICAgICAgLy8gYnkgYSBwZXJpb2QsIHRoaXMgaXMgYSBzYWZlIHBsYWNlIHRvIHR1cm4gYXJvdW5kCiAgICAgICAgIiFbe3NlbnQtc3RhcnR9e3VjTGF0aW59XXtzdGFydH0qe3NwYWNlfSt7ZW5kfSp7cGVyaW9kfTsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBsZXR0ZXIgb3IgYSBkaWdpdCwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mCiAgICAgICAgLy8gc3RhcnRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZiB3aGl0ZXNwYWNlLAogICAgICAgIC8vIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZiBlbmRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5CiAgICAgICAgLy8gYSBzZW50ZW5jZSB0ZXJtaW5hdG9yLCB0aGlzIGlzIGEgc2FmZSBwbGFjZSB0byB0dXJuIGFyb3VuZAogICAgICAgICIhW3tzZW50LXN0YXJ0fXtsY317ZGlnaXR9XXtzdGFydH0qe3NwYWNlfSp7ZW5kfSp7dGVybX07IgogICAgfQoKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBFTkQgQnJlYWtJdGVyYXRvciBzdXBwb3J0CiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIEFtUG1NYXJrZXJzIHsgCiAgICAgICAgICAgICJBTSIsCiAgICAgICAgICAgICJQTSIsCiAgICB9CiAgICBDb3VudHJpZXMgeyAKICAgICAgICBBRiB7ICJBZmdoYW5pc3RhbiIgfQogICAgICAgIEFMIHsgIkFsYmFuaWEiIH0KICAgICAgICBEWiB7ICJBbGdlcmlhIiB9CiAgICAgICAgQUQgeyAiQW5kb3JyYSIgfQogICAgICAgIEFPIHsgIkFuZ29sYSIgfQogICAgICAgIEFJIHsgIkFuZ3VpbGxhIiB9CiAgICAgICAgQVIgeyAiQXJnZW50aW5hIiB9CiAgICAgICAgQU0geyAiQXJtZW5pYSIgfQogICAgICAgIEFXIHsgIkFydWJhIiB9CiAgICAgICAgQVUgeyAiQXVzdHJhbGlhIiB9CiAgICAgICAgQVQgeyAiQXVzdHJpYSIgfQogICAgICAgIEFaIHsgIkF6ZXJiYWlqYW4iIH0KICAgICAgICBCUyB7ICJCYWhhbWFzIiB9CiAgICAgICAgQkggeyAiQmFocmFpbiIgfQogICAgICAgIEJEIHsgIkJhbmdsYWRlc2giIH0KICAgICAgICBCQiB7ICJCYXJiYWRvcyIgfQogICAgICAgIEJZIHsgIkJlbGFydXMiIH0KICAgICAgICBCRSB7ICJCZWxnaXVtIiB9CiAgICAgICAgQlogeyAiQmVsaXplIiB9CiAgICAgICAgQkogeyAiQmVuaW4iIH0KICAgICAgICBCTSB7ICJCZXJtdWRhIiB9CiAgICAgICAgQlQgeyAiQmh1dGFuIiB9CiAgICAgICAgQk8geyAiQm9saXZpYSIgfQogICAgICAgIEJBIHsgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIH0KICAgICAgICBCVyB7ICJCb3Rzd2FuYSIgfQogICAgICAgIEJSIHsgIkJyYXppbCIgfQogICAgICAgIEJOIHsgIkJydW5laSIgfQogICAgICAgIEJHIHsgIkJ1bGdhcmlhIiB9CiAgICAgICAgQkYgeyAiQnVya2luYSBGYXNvIiB9CiAgICAgICAgQkkgeyAiQnVydW5kaSIgfQogICAgICAgIEtIIHsgIkNhbWJvZGlhIiB9CiAgICAgICAgQ00geyAiQ2FtZXJvb24iIH0KICAgICAgICBDQSB7ICJDYW5hZGEiIH0KICAgICAgICBDViB7ICJDYXBlIFZlcmRlIiB9CiAgICAgICAgQ0YgeyAiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiB9CiAgICAgICAgVEQgeyAiQ2hhZCIgfQogICAgICAgIENMIHsgIkNoaWxlIiB9CiAgICAgICAgQ04geyAiQ2hpbmEiIH0KICAgICAgICBDTyB7ICJDb2xvbWJpYSIgfQogICAgICAgIEtNIHsgIkNvbW9yb3MiIH0KICAgICAgICBDRyB7ICJDb25nbyIgfQogICAgICAgIENSIHsgIkNvc3RhIFJpY2EiIH0KICAgICAgICBDSSB7ICJDXHUwMEY0dGUgZCdJdm9pcmUiIH0KICAgICAgICBIUiB7ICJDcm9hdGlhIiB9CiAgICAgICAgQ1UgeyAiQ3ViYSIgfQogICAgICAgIENZIHsgIkN5cHJ1cyIgfQogICAgICAgIENaIHsgIkN6ZWNoIFJlcHVibGljIiB9CiAgICAgICAgREsgeyAiRGVubWFyayIgfQogICAgICAgIERKIHsgIkRqaWJvdXRpIiB9CiAgICAgICAgRE0geyAiRG9taW5pY2EiIH0KICAgICAgICBETyB7ICJEb21pbmljYW4gUmVwdWJsaWMiIH0KICAgICAgICBUUCB7ICJFYXN0IFRpbW9yIiB9CiAgICAgICAgRUMgeyAiRWN1YWRvciIgfQogICAgICAgIEVHIHsgIkVneXB0IiB9CiAgICAgICAgU1YgeyAiRWwgU2FsdmFkb3IiIH0KICAgICAgICBHUSB7ICJFcXVhdG9yaWFsIEd1aW5lYSIgfQogICAgICAgIEVSIHsgIkVyaXRyZWEiIH0KICAgICAgICBFRSB7ICJFc3RvbmlhIiB9CiAgICAgICAgRVQgeyAiRXRoaW9waWEiIH0KICAgICAgICBGSiB7ICJGaWppIiB9CiAgICAgICAgRkkgeyAiRmlubGFuZCIgfQogICAgICAgIEZPIHsgIkZhcm9lIElzbGFuZHMiIH0gLy8gaHR0cDovL3d3dy5kaW4uZGUvZ3JlbWllbi9uYXMvbmFiZC9pc28zMTY2bWEvY29kbHN0cDEvZW5fbGlzdHAxLmh0bWwKICAgICAgICBGUiB7ICJGcmFuY2UiIH0KICAgICAgICBHRiB7ICJGcmVuY2ggR3VpYW5hIiB9CiAgICAgICAgR0wgeyAiR3JlZW5sYW5kIiB9IC8vIGh0dHA6Ly93d3cuZGluLmRlL2dyZW1pZW4vbmFzL25hYmQvaXNvMzE2Nm1hL2NvZGxzdHAxL2VuX2xpc3RwMS5odG1sCiAgICAgICAgUEYgeyAiRnJlbmNoIFBvbHluZXNpYSIgfQogICAgICAgIFRGIHsgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgfQogICAgICAgIEdBIHsgIkdhYm9uIiB9CiAgICAgICAgR00geyAiR2FtYmlhIiB9CiAgICAgICAgR0UgeyAiR2VvcmdpYSIgfQogICAgICAgIERFIHsgIkdlcm1hbnkiIH0KICAgICAgICBHSCB7ICJHaGFuYSIgfQogICAgICAgIEdSIHsgIkdyZWVjZSIgfQogICAgICAgIEdQIHsgIkd1YWRlbG91cGUiIH0KICAgICAgICBHVCB7ICJHdWF0ZW1hbGEiIH0KICAgICAgICBHTiB7ICJHdWluZWEiIH0KICAgICAgICBHVyB7ICJHdWluZWEtQmlzc2F1IiB9CiAgICAgICAgR1kgeyAiR3V5YW5hIiB9CiAgICAgICAgSFQgeyAiSGFpdGkiIH0KICAgICAgICBITiB7ICJIb25kdXJhcyIgfQogICAgICAgIEhLIHsgIkhvbmcgS29uZyIgfQogICAgICAgIEhVIHsgIkh1bmdhcnkiIH0KICAgICAgICBJUyB7ICJJY2VsYW5kIiB9CiAgICAgICAgSU4geyAiSW5kaWEiIH0KICAgICAgICBJRCB7ICJJbmRvbmVzaWEiIH0KICAgICAgICBJUiB7ICJJcmFuIiB9CiAgICAgICAgSVEgeyAiSXJhcSIgfQogICAgICAgIElFIHsgIklyZWxhbmQiIH0KICAgICAgICBJTCB7ICJJc3JhZWwiIH0KICAgICAgICBJVCB7ICJJdGFseSIgfQogICAgICAgIEpNIHsgIkphbWFpY2EiIH0KICAgICAgICBKUCB7ICJKYXBhbiIgfQogICAgICAgIEpPIHsgIkpvcmRhbiIgfQogICAgICAgIEtaIHsgIkthemFraHN0YW4iIH0KICAgICAgICBLRSB7ICJLZW55YSIgfQogICAgICAgIEtJIHsgIktpcmliYXRpIiB9CiAgICAgICAgS1AgeyAiTm9ydGggS29yZWEiIH0KICAgICAgICBLUiB7ICJTb3V0aCBLb3JlYSIgfQogICAgICAgIEtXIHsgIkt1d2FpdCIgfQogICAgICAgIEtHIHsgIkt5cmd5enN0YW4iIH0KICAgICAgICBMQSB7ICJMYW9zIiB9CiAgICAgICAgTFYgeyAiTGF0dmlhIiB9CiAgICAgICAgTEIgeyAiTGViYW5vbiIgfQogICAgICAgIExTIHsgIkxlc290aG8iIH0KICAgICAgICBMUiB7ICJMaWJlcmlhIiB9CiAgICAgICAgTFkgeyAiTGlieWEiIH0KICAgICAgICBMSSB7ICJMaWVjaHRlbnN0ZWluIiB9CiAgICAgICAgTFQgeyAiTGl0aHVhbmlhIiB9CiAgICAgICAgTFUgeyAiTHV4ZW1ib3VyZyIgfQogICAgICAgIE1LIHsgIk1hY2Vkb25pYSIgfQogICAgICAgIE1HIHsgIk1hZGFnYXNjYXIiIH0KICAgICAgICBNWSB7ICJNYWxheXNpYSIgfQogICAgICAgIE1MIHsgIk1hbGkiIH0KICAgICAgICBNVCB7ICJNYWx0YSIgfQogICAgICAgIE1RIHsgIk1hcnRpbmlxdWUiIH0KICAgICAgICBNUiB7ICJNYXVyaXRhbmlhIiB9CiAgICAgICAgTVUgeyAiTWF1cml0aXVzIiB9CiAgICAgICAgWVQgeyAiTWF5b3R0ZSIgfQogICAgICAgIE1YIHsgIk1leGljbyIgfQogICAgICAgIEZNIHsgIk1pY3JvbmVzaWEiIH0KICAgICAgICBNRCB7ICJNb2xkb3ZhIiB9CiAgICAgICAgTUMgeyAiTW9uYWNvIiB9CiAgICAgICAgTU4geyAiTW9uZ29saWEiIH0KICAgICAgICBNUyB7ICJNb250c2VycmF0IiB9CiAgICAgICAgTUEgeyAiTW9yb2NjbyIgfQogICAgICAgIE1aIHsgIk1vemFtYmlxdWUiIH0KICAgICAgICBNTSB7ICJNeWFubWFyIiB9CiAgICAgICAgTkEgeyAiTmFtaWJpYSIgfQogICAgICAgIE5QIHsgIk5lcGFsIiB9CiAgICAgICAgTkwgeyAiTmV0aGVybGFuZHMiIH0KICAgICAgICBBTiB7ICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgfQogICAgICAgIE5DIHsgIk5ldyBDYWxlZG9uaWEiIH0KICAgICAgICBOWiB7ICJOZXcgWmVhbGFuZCIgfQogICAgICAgIE5JIHsgIk5pY2FyYWd1YSIgfQogICAgICAgIE5FIHsgIk5pZ2VyIiB9CiAgICAgICAgTkcgeyAiTmlnZXJpYSIgfQogICAgICAgIE5VIHsgIk5pdWUiIH0KICAgICAgICBOTyB7ICJOb3J3YXkiIH0KICAgICAgICBPTSB7ICJPbWFuIiB9CiAgICAgICAgUEsgeyAiUGFraXN0YW4iIH0KICAgICAgICBQQSB7ICJQYW5hbWEiIH0KICAgICAgICBQRyB7ICJQYXB1YSBOZXcgR3VpbmVhIiB9CiAgICAgICAgUFkgeyAiUGFyYWd1YXkiIH0KICAgICAgICBQRSB7ICJQZXJ1IiB9CiAgICAgICAgUEggeyAiUGhpbGlwcGluZXMiIH0KICAgICAgICBQTCB7ICJQb2xhbmQiIH0KICAgICAgICBQVCB7ICJQb3J0dWdhbCIgfQogICAgICAgIFBSIHsgIlB1ZXJ0byBSaWNvIiB9CiAgICAgICAgUUEgeyAiUWF0YXIiIH0KICAgICAgICBSTyB7ICJSb21hbmlhIiB9CiAgICAgICAgUlUgeyAiUnVzc2lhIiB9CiAgICAgICAgUlcgeyAiUndhbmRhIiB9CiAgICAgICAgU0EgeyAiU2F1ZGkgQXJhYmlhIiB9CiAgICAgICAgU04geyAiU2VuZWdhbCIgfQogICAgICAgIFNQIHsgIlNlcmJpYSIgfQogICAgICAgIFNDIHsgIlNleWNoZWxsZXMiIH0KICAgICAgICBTTCB7ICJTaWVycmEgTGVvbmUiIH0KICAgICAgICBTRyB7ICJTaW5nYXBvcmUiIH0KICAgICAgICBTSyB7ICJTbG92YWtpYSIgfQogICAgICAgIFNJIHsgIlNsb3ZlbmlhIiB9CiAgICAgICAgU08geyAiU29tYWxpYSIgfQogICAgICAgIFpBIHsgIlNvdXRoIEFmcmljYSIgfQogICAgICAgIEVTIHsgIlNwYWluIiB9CiAgICAgICAgTEsgeyAiU3JpIExhbmthIiB9CiAgICAgICAgU0QgeyAiU3VkYW4iIH0KICAgICAgICBTUiB7ICJTdXJpbmFtZSIgfQogICAgICAgIFNaIHsgIlN3YXppbGFuZCIgfQogICAgICAgIFNFIHsgIlN3ZWRlbiIgfQogICAgICAgIENIIHsgIlN3aXR6ZXJsYW5kIiB9CiAgICAgICAgU1kgeyAiU3lyaWEiIH0KICAgICAgICBUVyB7ICJUYWl3YW4iIH0KICAgICAgICBUSiB7ICJUYWppa2lzdGFuIiB9CiAgICAgICAgVFogeyAiVGFuemFuaWEiIH0KICAgICAgICBUSCB7ICJUaGFpbGFuZCIgfQogICAgICAgIFRHIHsgIlRvZ28iIH0KICAgICAgICBUSyB7ICJUb2tlbGF1IiB9CiAgICAgICAgVE8geyAiVG9uZ2EiIH0KICAgICAgICBUVCB7ICJUcmluaWRhZCBhbmQgVG9iYWdvIiB9CiAgICAgICAgVE4geyAiVHVuaXNpYSIgfQogICAgICAgIFRSIHsgIlR1cmtleSIgfQogICAgICAgIFRNIHsgIlR1cmttZW5pc3RhbiIgfQogICAgICAgIFVHIHsgIlVnYW5kYSIgfQogICAgICAgIFVBIHsgIlVrcmFpbmUiIH0KICAgICAgICBBRSB7ICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgfQogICAgICAgIEdCIHsgIlVuaXRlZCBLaW5nZG9tIiB9CiAgICAgICAgVVMgeyAiVW5pdGVkIFN0YXRlcyIgfQogICAgICAgIFVZIHsgIlVydWd1YXkiIH0KICAgICAgICBVWiB7ICJVemJla2lzdGFuIiB9CiAgICAgICAgVlUgeyAiVmFudWF0dSIgfQogICAgICAgIFZBIHsgIlZhdGljYW4iIH0KICAgICAgICBWRSB7ICJWZW5lenVlbGEiIH0KICAgICAgICBWTiB7ICJWaWV0bmFtIiB9CiAgICAgICAgVkcgeyAiQnJpdGlzaCBWaXJnaW4gSXNsYW5kcyIgfQogICAgICAgIFZJIHsgIlUuUy4gVmlyZ2luIElzbGFuZHMiIH0KICAgICAgICBFSCB7ICJXZXN0ZXJuIFNhaGFyYSIgfQogICAgICAgIFlFIHsgIlllbWVuIiB9CiAgICAgICAgWVUgeyAiWXVnb3NsYXZpYSIgfQogICAgICAgIFpSIHsgIlphaXJlIiB9CiAgICAgICAgWk0geyAiWmFtYmlhIiB9CiAgICAgICAgWlcgeyAiWmltYmFid2UiIH0KICAgIH0KICAgIEN1cnJlbmN5RWxlbWVudHMgeyAKICAgICAgICAgICAgIlx1MDBBNCIsCiAgICAgICAgICAgICJYWFgiLAogICAgICAgICAgICAiIiwKICAgIH0KICAgIERhdGVUaW1lRWxlbWVudHMgeyAKICAgICAgICAgICAgIjEiLAogICAgICAgICAgICAiMSIsCiAgICB9CiAgICBEYXRlVGltZVBhdHRlcm5zIHsgCiAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsCiAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsCiAgICAgICAgICAgICJoOm1tOnNzIGEiLAogICAgICAgICAgICAiaDptbSBhIiwKICAgICAgICAgICAgIkVFRUUsIE1NTU0gZCwgeXl5eSIsCiAgICAgICAgICAgICJNTU1NIGQsIHl5eXkiLAogICAgICAgICAgICAiTU1NIGQsIHl5eXkiLAogICAgICAgICAgICAiTS9kL3l5IiwKICAgICAgICAgICAgInsxfSB7MH0iLAogICAgfQogICAgRGF5QWJicmV2aWF0aW9ucyB7IAogICAgICAgICAgICAiU3VuIiwKICAgICAgICAgICAgIk1vbiIsCiAgICAgICAgICAgICJUdWUiLAogICAgICAgICAgICAiV2VkIiwKICAgICAgICAgICAgIlRodSIsCiAgICAgICAgICAgICJGcmkiLAogICAgICAgICAgICAiU2F0IiwKICAgIH0KICAgIERheU5hbWVzIHsgCiAgICAgICAgICAgICJTdW5kYXkiLAogICAgICAgICAgICAiTW9uZGF5IiwKICAgICAgICAgICAgIlR1ZXNkYXkiLAogICAgICAgICAgICAiV2VkbmVzZGF5IiwKICAgICAgICAgICAgIlRodXJzZGF5IiwKICAgICAgICAgICAgIkZyaWRheSIsCiAgICAgICAgICAgICJTYXR1cmRheSIsCiAgICB9CiAgICBFcmFzIHsgCiAgICAgICAgICAgICJCQyIsCiAgICAgICAgICAgICJBRCIsCiAgICB9CiAgICBMYW5ndWFnZXMgeyAKICAgICAgICBhYSAgeyAiQWZhciIgfQogICAgICAgIGFiICB7ICJBYmtoYXppYW4iIH0KICAgICAgICBhY2UgeyAiQWNoaW5lc2UiIH0KICAgICAgICBhY2ggeyAiQWNvbGkiIH0gCiAgICAgICAgYWRhIHsgIkFkYW5nbWUiIH0gICAgICAKICAgICAgICBhZSAgeyAiQXZlc3RhbiIgfSAgCiAgICAgICAgYWYgIHsgIkFmcmlrYWFucyIgfQogICAgICAgIGFmYSB7ICJBZnJvLUFzaWF0aWMgKE90aGVyKSIgfQogICAgICAgIGFmaCB7ICJBZnJpaGlsaSIgfSAgICAgICAgICAgICAgIAogICAgICAgIGFrYSB7ICJBa2FuIiB9CiAgICAgICAgYWtrIHsgIkFra2FkaWVuIiB9ICAgICAgICAgIAogICAgICAgIGFsZSB7ICJBbGV1dCIgfSAKICAgICAgICBhbGcgeyAgIkFsZ29ucXVpYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgYW0gIHsgIkFtaGFyaWMiIH0KICAgICAgICBhbmcgeyAiRW5nbGlzaCwgT2xkIChjYS40NTAtMTEwMCkiIH0gICAgICAgIAogICAgICAgIGFwYSB7ICJBcGFjaGUgTGFuZ3VhZ2VzIn0gICAgICAgICAgICAKICAgICAgICBhciAgeyAiQXJhYmljIiB9CiAgICAgICAgYXJjIHsgIkFyYW1haWMiIH0KICAgICAgICBhcm4geyAiQXJhdWNhbmlhbiIgfQogICAgICAgIGFycCB7ICJBcmFwYWhvIiB9CiAgICAgICAgYXJ0IHsgIkFydGlmaWNpYWwgKE90aGVyKSIgfSAgICAgICAgICAgCiAgICAgICAgYXJ3IHsgIkFyYXdhayIgfSAgICAgICAgICAgICAKICAgICAgICBhcyAgeyAiQXNzYW1lc2UiIH0gICAgCiAgICAgICAgYXRoIHsgIkF0aGFwYXNrYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgYXVzIHsgIkF1c3RyYWxpYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgYXZhIHsgIkF2YXJpYyIgfSAgICAgICAKICAgICAgICBhd2EgeyAiQXdhZGhpIiB9ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGF5ICB7ICJBeW1hcmEiIH0gICAgICAgICAgICAgCiAgICAgICAgYXogIHsgIkF6ZXJiYWlqYW5pIiB9ICAgICAgICAKICAgICAgICBiYSAgeyAiQmFzaGtpciIgfQogICAgICAgIGJhZCB7ICJCYW5kYSIgfQogICAgICAgIGJhaSB7ICJCYW1pbGVrZSBMYW5ndWFnZXMiIH0KICAgICAgICBiYWwgeyAiQmFsdXVjaGkiIH0KICAgICAgICBiYW0geyAiQmFtYmFyYSIgfQogICAgICAgIGJhbiB7ICJCYWxpbmVzZSIgfQogICAgICAgIGJhcyB7ICJCYXNhIiB9CiAgICAgICAgYmF0IHsgIkJhbHRpYyAoT3RoZXIpIiB9CiAgICAgICAgYmUgIHsgIkJlbGFydXNpYW4iIH0KICAgICAgICBiZWogeyAiQmVqYSIgfQogICAgICAgIGJlbSB7ICJCZW1iYSIgfSAgICAgICAgICAgICAKICAgICAgICBiZXIgeyAiQmViZXIiIH0KICAgICAgICBiZyAgeyAiQnVsZ2FyaWFuIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgYmggIHsgIkJpaGFyaSIgfSAgIAogICAgICAgIGJobyB7ICJCaG9qcHVyaSIgfQogICAgICAgIGJpICB7ICJCaXNsYW1hIiB9CiAgICAgICAgYmlrIHsgIkJpa29sIiB9CiAgICAgICAgYmluIHsgIkJpbmkiIH0KICAgICAgICBibGEgeyAiU2lrc2lrYSIgfQogICAgICAgIGJuICB7ICJCZW5nYWxpIiB9CiAgICAgICAgYm50IHsgIkJhbnR1IiB9CiAgICAgICAgYm8gIHsgIlRpYmV0YW4iIH0KICAgICAgICBiciAgeyAiQnJlbnRvbiIgfQogICAgICAgIGJyYSB7ICJCcmFqIiB9CiAgICAgICAgYnMgIHsgIkJvc25pYW4ifQogICAgICAgIGJ0ayB7ICJCYXRhayIgfQogICAgICAgIGJ1YSB7ICJCdXJpYXQiIH0gICAgICAgICAgICAgICAgICAgICAKICAgICAgICBidWcgeyAiQnVnaW5lc2UiIH0KICAgICAgICBjYSAgeyAiQ2F0YWxhbiIgfQogICAgICAgIGNhZCB7ICJDYWRkbyIgfQogICAgICAgIGNhaSB7ICJDZW50cmFsIEFtZXJpY2FuIEluZGlhbiAoT3RoZXIpIiB9CiAgICAgICAgY2FyIHsgIkNhcmliIiB9CiAgICAgICAgY2F1IHsgIkNhdWNhc2lhbiAoT3RoZXIpICIgfSAgICAgICAgICAgICAgCiAgICAgICAgY2UgIHsgIkNoZWNoZW4iIH0KICAgICAgICBjZWIgeyAiQ2VidWFubyIgfQogICAgICAgIGNlbCB7ICJDZWx0aWMgKE90aGVyKSIgfSAKICAgICAgICBjaCAgeyAiQ2hhbW9ycm8iIH0KICAgICAgICBjaGIgeyAiQ2hpYmNoYSIgfSAgIAogICAgICAgIGNoZyB7ICJDaGFnYXRhaSIgfQogICAgICAgIGNoayB7ICJDaHV1a2VzZSIgfQogICAgICAgIGNobSB7ICJNYXJpIiB9ICAgICAgICAKICAgICAgICBjaG4geyAiQ2hpbm9vayBKYXJnb24iIH0KICAgICAgICBjaG8geyAiQ2hvY3RhdyIgfQogICAgICAgIGNocCB7ICJDaGlwZXd5YW4iIH0KICAgICAgICBjaHIgeyAiQ2hlcm9rZWUiIH0KICAgICAgICBjaHkgeyAiQ2hleWVubmUiIH0KICAgICAgICBjbWMgeyAiQ2hhbWljIExhbmd1YWdlcyIgfQogICAgICAgIGNvICB7ICJDb3JzaWNhbiIgfQogICAgICAgIGNvcCB7ICJDb3B0aWMiIH0KICAgICAgICBjcGUgeyAiQ3Jlb2xlcyBhbmQgUGlkZ2lucywgRW5nbGlzaC1iYXNlZCAoT3RoZXIpIiB9CiAgICAgICAgY3BmIHsgIkNyZW9sZXMgYW5kIFBpZGdpbnMsIEZyZW5jaC1iYXNlZCAoT3RoZXIpIiB9ICAgICAgICAgICAKICAgICAgICBjcmUgeyAiQ3JlZSIgfQogICAgICAgIGNycCB7ICJDcmVvbGVzIGFuZCBQaWRnaW5zIChPdGhlcikiIH0KICAgICAgICBjcyAgeyAiQ3plY2giIH0KICAgICAgICBjdSAgeyAiQ2h1cmNoIFNsYXZpYyIgfQogICAgICAgIGN1cyB7ICJDdXNoaXRpYyAoT3RoZXIpIiB9ICAgICAgICAgICAKICAgICAgICBjdiAgeyAiQ2h1dmFzaCIgfQogICAgICAgIGN5ICB7ICJXZWxzaCIgfSAgICAgICAgICAgICAgCiAgICAgICAgZGEgIHsgIkRhbmlzaCIgfSAKICAgICAgICBkYWsgeyAiRGFrb3RhIiB9ICAgICAgICAgICAgICAKICAgICAgICBkYXkgeyAiRGF5YWsiIH0KICAgICAgICBkZSAgeyAiR2VybWFuIiB9CiAgICAgICAgZGVsIHsgIkRlbGF3YXJlIiB9CiAgICAgICAgZGVuIHsgIlNsYXZlIiB9CiAgICAgICAgZGdyIHsgIkRvZ3JpYiIgfQogICAgICAgIGRpbiB7ICJEaW5rYSIgfQogICAgICAgIGRpdiB7ICJEaXZlaGkiIH0KICAgICAgICBkb2kgeyAiRG9ncmkiIH0KICAgICAgICBkcmEgeyAiRHJhdmlkaWFuIChPdGhlcikiIH0KICAgICAgICBkdWEgeyAiRHVhbGEiIH0gICAgICAgICAgICAKICAgICAgICBkdW0geyAiRHV0Y2gsIE1pZGRsZSAoY2EuIDEwNTAtMTM1MCkiIH0KICAgICAgICBkeXUgeyAiRHl1bGEiIH0KICAgICAgICBkeiAgeyAiQmh1dGFuaSIgfSAKICAgICAgICBkem8geyAiRHpvbmdraGEiIH0KICAgICAgICBlZmkgeyAiRWZpayIgfQogICAgICAgIGVneSB7ICJFZ3lwdGlhbiAoQW5jaWVudCkiIH0KICAgICAgICBla2EgeyAiRWthanVrIiB9CiAgICAgICAgZWwgIHsgIkdyZWVrIiB9IC8vICBNb2Rlcm4gKDE0NTMtKQogICAgICAgIGVseCB7ICJFbGFtaXRlIiB9CiAgICAgICAgZW4gIHsgIkVuZ2xpc2giIH0KICAgICAgICBlbm0geyAiRW5nbGlzaCwgTWlkZGxlKCAxMTAwIC0xNTAwKSIgfQogICAgICAgIGVvICB7ICJFc3BlcmFudG8iIH0gICAgICAgICAgCiAgICAgICAgZXMgIHsgIlNwYW5pc2giIH0gICAgICAgICAgICAKICAgICAgICBldCAgeyAiRXN0b25pYW4iIH0KICAgICAgICBldSAgeyAiQmFzcXVlIiB9CiAgICAgICAgZXdlIHsgIkV3ZSIgfQogICAgICAgIGV3byB7ICJFd29uZG8iIH0KICAgICAgICBmYSAgeyAiUGVyc2lhbiIgfSAKICAgICAgICBmYW4geyAiRmFuZyIgfQogICAgICAgIGZhdCB7ICJGYW50aSIgfSAgICAgICAgICAKICAgICAgICBmaSAgeyAiRmlubmlzaCIgfQogICAgICAgIGZpdSB7ICJGaW5ubyAtIFVncmlhbiIgfQogICAgICAgIGZqICB7ICJGaWppIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgZm8gIHsgIkZhZXJvZXNlIiB9ICAgICAgICAgICAKICAgICAgICBmb24geyAiRm9uIiB9ICAgICAgICAgICAgCiAgICAgICAgZnIgIHsgIkZyZW5jaCIgfQogICAgICAgIGZybSB7ICJGcmVuY2gsIE1pZGRsZSAoY2EuMTQwMC0xNjAwKSIgfQogICAgICAgIGZybyB7ICJGcmVuY2gsIE9sZCAoODQyLWNhLjE0MDApIiB9CiAgICAgICAgZnVsIHsgIkZ1bGFoIiB9CiAgICAgICAgZnVyIHsgIkZyaXVsaWFuIiB9CiAgICAgICAgZnkgIHsgIkZyaXNpYW4iIH0gCiAgICAgICAgZ2EgIHsgIklyaXNoIiB9CiAgICAgICAgZ2FhIHsgIkdhIiB9CiAgICAgICAgZ2F5IHsgIkdheW8iIH0KICAgICAgICBnYmEgeyJHYmF5YSIgfSAgICAgICAgICAgCiAgICAgICAgZ2QgIHsgIlNjb3RzIEdhZWxpYyIgfSAgCiAgICAgICAgZ2VtIHsgIkdlcm1hbmljIChPdGhlcikiIH0KICAgICAgICBnaWwgeyAiR2lsYmVydGVzZSIgfQoJCWdsICB7ICJHYWxsZWdhbiIgfSAKICAgICAgICBnbGEgeyAiR2FlbGljIChTY290cykiIH0gIAogICAgICAgIGdtaCB7ICJHZXJtYW4sIE1pZGRsZSBIaWdoIChjYS4xMDUwLTE1MDApIiB9CiAgICAgICAgZ24gIHsgIkd1YXJhbmkiIH0gICAgICAgICAgICAKICAgICAgICBnb2ggeyAiIEdlcm1hbiwgT2xkIEhpZ2ggKGNhLjc1MC0xMDUwKSIgfQogICAgICAgIGdvbiB7ICJHb25kaSIgfQogICAgICAgIGdvciB7ICJHb3JvbnRhbG8iIH0KICAgICAgICBnb3QgeyAiR290aGljIiB9CiAgICAgICAgZ3JiIHsgIkdlcmJvIiB9CiAgICAgICAgZ3JjIHsgIkdyZWVrLCBBbmNpZW50ICh0byAxNDUzKSIgfQogICAgICAgIGd1ICB7ICJHdWphcmF0aSIgfQogICAgICAgIGd2ICB7ICJNYW54IiB9ICAgICAgICAgICAKICAgICAgICBnd2kgeyAiR3dpY2gnaW4iIH0KICAgICAgICBoYWkgeyAiSGFpZGEiIH0KICAgICAgICBoYXUgeyAiSGF1c2EiIH0KICAgICAgICBoYXcgeyAiSGF3YWlpYW4iIH0gICAgICAgICAgICAKICAgICAgICBoZSAgeyAiSGVicmV3IiB9CiAgICAgICAgaGkgIHsgIkhpbmRpIiB9IAogICAgICAgIGhpbSB7ICJIaW1hY2hhbGkiIH0gICAgICAgICAgICAgCiAgICAgICAgaGl0IHsgIkhpdHRpdGUiIH0KICAgICAgICBobW4geyAiSG1vbmciIH0gICAgICAgICAgICAgCiAgICAgICAgaG8gIHsgIkhpcmkgTW90dSIgfQogICAgICAgIGhyICB7ICJDcm9hdGlhbiIgfQogICAgICAgIGh1ICB7ICJIdW5nYXJpYW4iIH0KICAgICAgICBodXAgeyAiSHVwYSIgfQogICAgICAgIGh5ICB7ICJBcm1lbmlhbiIgfQogICAgICAgIGh6ICB7ICJIZXJlcm8iIH0KICAgICAgICBpYSAgeyAiSW50ZXJsaW5ndWEiIH0gICAgICAgIAogICAgICAgIGliYSB7ICJJYmFuIiB9ICAgICAgICAgIAogICAgICAgIGlibyB7ICJJZ2JvIiB9CiAgICAgICAgaWQgIHsgIkluZG9uZXNpYW4iIH0gICAgICAgICAgICAgICAKICAgICAgICBpZSAgeyAiSW50ZXJsaW5ndWUiIH0gICAgICAgIAogICAgICAgIGlqbyB7ICJJam8iIH0KICAgICAgICBpayAgeyAiSW51cGlhayIgfQogICAgICAgIGlsbyB7ICJJbG9rbyIgfQogICAgICAgIGluYyB7ICJJbmRpYyAoT3RoZXIpIiB9CiAgICAgICAgaW5lIHsgIkluZG8tRXVyb3BlYW4iIH0gICAgICAgICAgCiAgICAgICAgaXJhIHsgIklyYW5pYW4gIiB9ICAgICAgICAgICAgCiAgICAgICAgaXJvIHsgIklyb2d1b2lhbiAgTGFuZ3VhZ2VzIiB9ICAgICAgICAgICAgICAKICAgICAgICBpcyAgeyAiSWNlbGFuZGljIiB9CiAgICAgICAgaXQgIHsgIkl0YWxpYW4iIH0gICAgICAgICAgICAKICAgICAgICBpdSAgeyAiSW51a2l0dXQiIH0gICAgICAgICAgIAogICAgICAgIGl3ICB7ICJIZWJyZXciIH0gICAgICAgICAgICAgCiAgICAgICAgamEgIHsgIkphcGFuZXNlIiB9ICAgICAgICAgICAKICAgICAgICBqcHIgeyAiSnVkZW8tUGVyc2lhbiIgfQogICAgICAgIGpyYiB7ICJKdWRlby1BcmFiaWMiIH0KICAgICAgICBqdyAgeyAiSmF2YW5lc2UiIH0gICAgICAgICAgIAogICAgICAgIGthICB7ICJHZW9yZ2lhbiIgfSAgICAgICAgICAgCiAgICAgICAga2FhIHsgIkthcmEtS2FscGFrIiB9CiAgICAgICAga2FiIHsgIkthYnlsZSIgfQogICAgICAgIGthYyB7ICJLYWNoaW4iIH0KICAgICAgICBrYW0geyAiS2FtYmEiIH0KICAgICAgICBrYXIgeyAiS2FyZW4iIH0gICAgICAgICAgICAKICAgICAgICBrYXUgeyAiS2FudXJpIiB9CiAgICAgICAga2F3IHsgIkthd2kiIH0gICAgICAgICAgIAogICAgICAgIGtoYSB7ICJLaGFzaSIgfQogICAgICAgIGtoaSB7ICJLaG9pc2FuIiB9CiAgICAgICAga2hvIHsgIktob3RhbmVzZSIgfQogICAgICAgIGtpICB7ICJLaWt1eXUiIH0gICAKICAgICAgICBrayAgeyAiS2F6YWtoIiB9CiAgICAgICAga2wgIHsgIkthbGFhbGxpc3V0IiB9ICAgCiAgICAgICAga20gIHsgIktobWVyIiB9ICAKICAgICAgICBrbWIgeyAiS2ltYnVuZHUiIH0gICAgICAgICAKICAgICAgICBrbiAgeyAiS2FubmFkYSIgfQogICAgICAgIGtvICB7ICJLb3JlYW4iIH0gICAKICAgICAgICBrb2sgeyAiS29ua2FuaSIgfSAgICAgICAgICAgIAogICAgICAgIGtvbiB7ICJLb25nbyIgfQogICAgICAgIGtvcyB7ICJLb3NyZWFuIiB9CiAgICAgICAga3BlIHsgIktwZWxsZSIgfQogICAgICAgIGtybyB7ICJLcnUiIH0KICAgICAgICBrcnUgeyAiS3VydWNraCIgfQogICAgICAgIGtzICB7ICJLYXNobWlyaSIgfQogICAgICAgIGt1ICB7ICJLdXJkaXNoIiB9CiAgICAgICAga3VtIHsgIkt1bXlrIiB9ICAgICAgCiAgICAgICAga3V0IHsgIkt1dGVuYWkiIH0KICAgICAgICBrdiAgeyAiS29taSIgfQogICAgICAgIGt3ICB7ICJDb3JuaXNoIiB9ICAgICAgICAgICAgCiAgICAgICAga3kgIHsgIktpcmdoaXoiIH0KICAgICAgICBsYSAgeyAiTGF0aW4iIH0gICAgICAgICAgICAgIAogICAgICAgIGxhZCB7ICJMYWRpbm8iIH0KICAgICAgICBsYWggeyAiTGFobmRhIiB9CiAgICAgICAgbGFtIHsgIkxhbWJhIiB9CiAgICAgICAgbGIgIHsgIkxldHplYnVyZ2VzY2giIH0gCiAgICAgICAgbGV6IHsgIkxlemdoaWFuIiB9CiAgICAgICAgbGluIHsgIkxpbmdhbGEiIH0KICAgICAgICBsaXQgeyAiTGl0aHVhbmlhbiIgfQogICAgICAgIGxuICB7ICJMaW5nYWxhIiB9ICAgICAgICAgICAgCiAgICAgICAgbG8gIHsgIkxhbyIgfQogICAgICAgIGxvbCB7ICJNb25nbyIgfSAgICAgICAgICAKICAgICAgICBsb3ogeyAiTG96aSIgfQogICAgICAgIGx0ICB7ICJMaXRodWFuaWFuIiB9ICAgICAgICAgCiAgICAgICAgbHVhIHsgIkx1YmEtTHVsdWEiIH0KICAgICAgICBsdWIgeyAiTHViYS1LYXRhbmdhIiB9CiAgICAgICAgbHVnIHsgIkdhbmRhIiB9CiAgICAgICAgbHVpIHsgIkx1aXNlZW5vIiB9CiAgICAgICAgbHVuIHsgIkx1bmRhIiB9CiAgICAgICAgbHVvIHsgIkx1YSIgfQogICAgICAgIGx1cyB7ICJMdXNoYWkiIH0KICAgICAgICBsdiAgeyAiTGF0dmlhbiAoTGV0dGlzaCkiIH0KICAgICAgICBtYWQgeyAiTWFkdXJlc2UiIH0KICAgICAgICBtYWcgeyAiTWFnYWhpIiB9CiAgICAgICAgbWFpIHsgIk1haXRoaWxpIiB9CiAgICAgICAgbWFrIHsgIk1ha2FzYXIiIH0gICAgICAgIAogICAgICAgIG1hbiB7ICJNYW5kaW5ndWUiIH0KICAgICAgICBtYXAgeyAiQXVzdHJvbmVzaWFuIiB9CiAgICAgICAgbWFzIHsgIk1hc2FpIiB9CiAgICAgICAgbWRyIHsgIk1hbmRhciIgfQogICAgICAgIG1lbiB7ICJNZW5kZSIgfQogICAgICAgIG1nICB7ICJNYWxhZ2FzeSIgfSAgICAgICAgICAgCiAgICAgICAgbWdhIHsgIklyaXNoLCBNaWRkbGUgKDkwMC0xMjAwKSIgfQogICAgICAgIG1oCXsgIk1hcnNoYWxsIn0KICAgICAgICBtaSAgeyAiTWFvcmkiIH0gICAgICAgICAgICAgIAogICAgICAgIG1pYyB7ICJNaWMtTWFjIiB9CiAgICAgICAgbWluIHsgIk1pbmFuZ2thYmF1IiB9CiAgICAgICAgbWlzIHsgIk1pc2NlbGxhbmVvdXMgTGFuZ3VhZ2VzIiB9CiAgICAgICAgbWsgIHsgIk1hY2Vkb25pYW4iIH0gICAgIAogICAgICAgIG1raCB7ICJNb24tS2htZXIgKE9odGVyKSIgfQogICAgICAgIG1sICB7ICJNYWxheWFsYW0iIH0gICAgICAgICAgCiAgICAgICAgbW4gIHsgIk1vbmdvbGlhbiIgfQogICAgICAgIG1uYyB7ICJNYW5jaHUiIH0KICAgICAgICBtbmkgeyAiTWFuaXB1cmkiIH0KICAgICAgICBtbm8geyAiTWFub2JvIExhbmd1YWdlcyIgfQogICAgICAgIG1vICB7ICJNb2xkYXZpYW4iIH0KICAgICAgICBtb2ggeyAiTW9oYXdrIiB9ICAgICAgICAgIAogICAgICAgIG1vcyB7ICJNb3NzaSIgfQogICAgICAgIG1yICB7ICJNYXJhdGhpIiB9IAogICAgICAgIG1zICB7ICJNYWxheSIgfSAgICAgICAgICAgICAgCiAgICAgICAgbXQgIHsgIk1hbHRlc2UiIH0gCiAgICAgICAgbXVsIHsgIk11bHRpcGxlIExhbmd1YWdlcyIgfQogICAgICAgIG11biB7ICJNdW5kYSBMYW5ndWFnZXMiIH0KICAgICAgICBtdXMgeyAiQ3JlZWsiIH0KICAgICAgICBtd3IgeyAiTWFyd2FyaSIgfSAKICAgICAgICBteSAgeyAiQnVybWVzZSIgfQogICAgICAgIG15biB7ICJNYXlhbiIgfQogICAgICAgIG5hICB7ICJOYXVydSIgfSAKICAgICAgICBuYWggeyAiTmFodWF0bCIgfQogICAgICAgIG5haSB7ICJOb3J0aCBBbWVyaWNhbiBJbmRpYW4gKE9odGVyKSIgfQogICAgICAgIG5iICB7ICJOb3J3ZWdpYW4gQm9rbVx1MDBlNWwiIH0gICAgCiAgICAgICAgbmQgIHsgIk5kZWJlbGUsIE5vcnRoIiB9ICAgCiAgICAgICAgbmRzIHsgIkxvdyBHZXJtYW47IExvdyBTYXhvbiIgfSAKICAgICAgICBuZSAgeyAiTmVwYWxpIiB9ICAKICAgICAgICBuZXcgeyAiTmV3YXJpIiB9ICAgIAogICAgICAgIG5nICB7ICJOZG9uZ2EiIH0gICAKICAgICAgICBuaWEgeyAiTmlhcyIgfQogICAgICAgIG5pYyB7ICJOaWdlciAtIEtvcmRvZmFuaWFuIiB9CiAgICAgICAgbml1IHsgIk5pdWVhbiIgfQogICAgICAgIG5sICB7ICJEdXRjaCIgfSAgCiAgICAgICAgbm4gIHsgIk5vcndlZ2lhbiBOeW5vcnNrIiB9CiAgICAgICAgbm8gIHsgIk5vcndlZ2lhbiIgfQogICAgICAgIG5vbiB7ICJOb3JzZSwgT2xkIiB9IAogICAgICAgIG5yICB7ICJOZGViZWxlLCBTb3V0aCIgfQogICAgICAgIG5zbyB7ICJTb3RobywgTm9ydGhlcm4iIH0KICAgICAgICBudWIgeyAiTnViaWFuIExhbmd1YWdlcyIgfQogICAgICAgIG52ICB7Ik5hdmFqbyJ9CiAgICAgICAgbnkgIHsgIiBDaGljaGV3YTsgTnlhbmphIiB9ICAgICAgICAgICAKICAgICAgICBueW0geyAiTnlhbXdlemkiIH0KICAgICAgICBueW8geyAiTnlvcm8iIH0gCiAgICAgICAgbnppIHsgIk56aW1hIiB9CiAgICAgICAgb2MgIHsgIlByb3Zlblx1MDBFN2FsOyBPY2NpdGFuIChwb3N0IDE1MDApIn0KICAgICAgICBvamkgeyAiT2ppYndhIiB9ICAgICAgICAgIAogICAgICAgIG9tICB7ICJPcm9tbyAoQWZhbikiIH0KICAgICAgICBvciAgeyAiT3JpeWEiIH0gICAgICAgICAgICAgIAogICAgICAgIG9zICB7ICJPc3NldGljIiB9CiAgICAgICAgb3NhIHsgIk9zYWdlIiB9ICAgICAKICAgICAgICBvdGEgeyAiVHVya2lzaCAoT3R0b21hbiBFbXBpcmUpIiB9ICAgICAgCiAgICAgICAgb3RvIHsgIk90b21pYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgcGEgIHsgIlB1bmphYmkiIH0gICAgICAgICAgICAKICAgICAgICBwYWEgeyAiUGFwdWFuIChPaHRlcikiIH0KICAgICAgICBwYWcgeyAiUGFuZ2FzaW5hbiIgfQogICAgICAgIHBhbCB7ICJQYWhsYXZpIiB9CiAgICAgICAgcGFtIHsgInBhbXBhbWdhIiB9CiAgICAgICAgcGFwIHsgIlBhcGlhbWVudG8iIH0KICAgICAgICBwYXUgeyAiUGFsYXVhbiIgfQogICAgICAgIHBlbyB7ICJQZXJzaWFuIE9sZCAoY2EuNjAwLTQwMCBCLkMuKSIgIH0gICAgCiAgICAgICAgcGhpIHsgIlBoaWxpcHBpbmUgKE90aGVyKSIgfQogICAgICAgIHBobiB7ICJQaG9lbmljaWFuIiB9ICAgIAogICAgICAgIHBpICB7ICJQYWxpIiB9ICAKICAgICAgICBwbCAgeyAiUG9saXNoIiB9ICAgICAgICAgICAgIAogICAgICAgIHBvbiB7ICJQb2hucGVpYW4iIH0KICAgICAgICBwcmEgeyAiUHJha3JpdCBMYW5ndWFnZXMiIH0KICAgICAgICBwcm8geyAgIlByb3ZlbudhbCwgT2xkICh0byAxNTAwKSIgfSAgICAgCiAgICAgICAgcHMgIHsgIlBhc2h0byAoUHVzaHRvKSIgfSAgCiAgICAgICAgcHQgIHsgIlBvcnR1Z3Vlc2UiIH0KICAgICAgICBxdSAgeyAiUXVlY2h1YSIgfSAgICAgICAgICAgIAogICAgICAgIHJhaiB7ICJSYWphc3RhbmkiIH0KICAgICAgICByYXAgeyAiUmFwYW51aSIgfQogICAgICAgIHJhciB7ICJSYXJvdG9uZ2FuIiB9CiAgICAgICAgcm0gIHsgIlJoYWV0by1Sb21hbmNlIiB9CiAgICAgICAgcm4gIHsgIlJ1bmRpIiB9ICAgICAgICAKICAgICAgICBybyAgeyAiUm9tYW5pYW4iIH0gICAKICAgICAgICByb2EgeyAiUm9tYW5jZSAoT3RoZXIpIiB9CiAgICAgICAgcm9tIHsgIlJvbWFueSIgfSAgICAKICAgICAgICBydSAgeyAiUnVzc2lhbiIgfSAgICAgCiAgICAgICAgcncgIHsgIktpbnlhcndhbmRhIiB9ICAgICAgICAKICAgICAgICBzYSAgeyAiU2Fuc2tyaXQiIH0KICAgICAgICBzYWQgeyAiU2FuZGF3ZSIgfSAgIAogICAgICAgIHNhaCB7ICJZYWt1dCIgfQogICAgICAgIHNhaSB7ICJTb3V0aCBBbWVyaWNhbiBJbmRpYW4gKE9odGVyKSIgfSAgICAgICAgICAgCiAgICAgICAgc2FsIHsgIlNhbGlzaGFuIiB9CiAgICAgICAgc2FtIHsgIlNhbXJpdGFuIiB9CiAgICAgICAgc2FzIHsgIlNhc2thIiB9CiAgICAgICAgc2F0IHsgIlNhbnRhbGkiIH0KICAgICAgICBzYyAgeyAiU2FyZGluaWFuIiB9ICAKICAgICAgICBzY28geyAiU2NvdHMiIH0KICAgICAgICBzZCAgeyAiU2luZGhpIiB9CiAgICAgICAgc2UgIHsgIk5vcnRoZXJuIFNhbWkiIH0KLy8gaHR0cDovL2xjd2ViLmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yL2VuZ2xhbmduLmh0bWwgCi8vIHNob3VsZCBwcm92aWRlIHRoZSBjb3JyZWN0IGxhbmd1YWdlIGNvZGUgc29vbiAKLy8gICAgICAgIHNlIHsgIlNhbWkgTGFuZ3VhZ2VzIiB9ICAgICAgICAvLyBEVVAgRklYTUUKICAgICAgICBzZWwgeyAiU2Vsa3VwIiB9CiAgICAgICAgc2VtIHsgIlNlbWl0aWMiIH0gICAgICAgICAKICAgICAgICBzZyAgeyAiU2FuZ28iIH0KICAgICAgICBzZ2EgeyAiSXJpc2gsIE9sZCAodG8gOTAwKSIgfQogICAgICAgIHNnbiB7ICJTaWduIExhbmd1YWdlcyIgfQogICAgICAgIHNoICB7ICJTZXJiby1Dcm9hdGlhbiIgfSAgICAgCiAgICAgICAgc2huIHsgIlNoYW4iIH0gICAKICAgICAgICBzaSAgeyAiU2luaGFsZXNlIiB9CiAgICAgICAgc2lkIHsgIlNpZGFtbyIgfQogICAgICAgIHNpbyB7ICJTaW91YW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgc2l0IHsgIlNpbm8tVGliZXRhbiAoT3RoZXIpIiB9CiAgICAgICAgc2sgIHsgIlNsb3ZhayIgfSAgICAgICAgICAgICAKICAgICAgICBzbCAgeyAiU2xvdmVuaWFuIiB9ICAgCiAgICAgICAgc20gIHsgIlNhbW9hbiIgfSAgICAgICAgICAKICAgICAgICBzbiAgeyAiU2hvbmEiIH0KICAgICAgICBzbmsgeyAiU29uaW5rZSIgfQogICAgICAgIHNvICB7ICJTb21hbGkiIH0KICAgICAgICBzb2cgeyAiU29nZGllbiIgfSAgICAgICAKICAgICAgICBzb24geyAiU29uZ2hhaSIgfQogICAgICAgIHNxICB7ICJBbGJhbmlhbiIgfQogICAgICAgIHNyICB7ICJTZXJiaWFuIiB9ICAgCiAgICAgICAgc3JyIHsgIlNlcmVyIiB9ICAgICAKICAgICAgICBzcyAgeyAiU3dhdGkiIH0gICAKICAgICAgICBzc2EgeyAiTmlsby1TYWhhcmFtIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgc3QgIHsgIlNvdGhvLCBTb3V0aGVybiIgfQogICAgICAgIHN1ICB7ICJTdW5kYW5lc2UiIH0KICAgICAgICBzdWsgeyAiU3VrdW1hIiB9CiAgICAgICAgc3VzIHsgIlN1c3UiIH0gICAgICAgICAgCiAgICAgICAgc3V4IHsgIlN1bWVyaWFuIn0KICAgICAgICBzdiAgeyAiU3dlZGlzaCIgfQogICAgICAgIHN3ICB7ICJTd2FoaWxpIiB9ICAgICAgICAgICAgCiAgICAgICAgc3lyIHsgIlN5cmlhYyIgfQogICAgICAgIHRhICB7ICJUYW1pbCIgfSAgICAgICAgICAgICAgCiAgICAgICAgdGFpIHsgIlRhaSAoT3RoZXIpIiB9ICAgICAgICAgICAgCiAgICAgICAgdGUgIHsgIlRlbHVndSIgfSAgICAgCiAgICAgICAgdGVtIHsgIlRpbW5lIiB9CiAgICAgICAgdGVyIHsgIlRlcmVubyIgfQogICAgICAgIHRldCB7ICJUZXR1bSIgfSAgICAgICAgCiAgICAgICAgdGcgIHsgIlRhamlrIiB9ICAgICAgICAKICAgICAgICB0aCAgeyAiVGhhaSIgfSAgICAgICAgICAgICAgIAogICAgICAgIHRpZyB7ICJUaWdyZSIgfSAgICAgICAgICAgIAogICAgICAgIHRpciB7ICJUaWdyaW55YSIgfSAKICAgICAgICB0aXYgeyAiVGl2IiB9CiAgICAgICAgdGsgIHsgIlR1cmttZW4iIH0gCiAgICAgICAgdGwgIHsgIlRhZ2Fsb2ciIH0KICAgICAgICB0bGkgeyAiVGxpbmdpdCIgfSAgICAgICAgICAKICAgICAgICB0bWggeyAiVGFtYXNoZWsiIH0gICAgICAKICAgICAgICB0biAgeyAiVHN3YW5hIiB9CiAgICAgICAgdG9nIHsgIlRvbmdhIChOeWFzYSkiIH0KICAgICAgICB0b24geyAiVG9uZ2FuIChUb25nYSBJc2xhbmRzKSIgfQogICAgICAgIHRyICB7ICJUdXJraXNoIiB9ICAgICAgICAgICAgCiAgICAgICAgdHMgIHsgIlRzb25nYSIgfSAgICAKICAgICAgICB0c2kgeyAiVHNpbXNoaWFuIiB9ICAgICAgICAgICAKICAgICAgICB0dCAgeyAiVGF0YXIiIH0gICAgICAgICAgICAgIAogICAgICAgIHR1bSB7ICJUdW1idWthIiB9CiAgICAgICAgdHVyIHsgIlR1cmtpc2giIH0KICAgICAgICB0dXQgeyAiQWx0YWljIChPdGhlcikiIH0gICAgICAgICAgCiAgICAgICAgdHZsIHsgIlR1dmFsdSIgfQogICAgICAgIHR3ICB7ICJUd2kiIH0gICAgCiAgICAgICAgdHkgIHsgIlRhaGl0aWFuIiB9ICAgICAgICAgIAogICAgICAgIHR5diB7ICJUdXZpbmlhbiIgfSAgICAgICAgICAgCiAgICAgICAgdWcgIHsgIlVpZ2h1ciIgfSAgICAgICAgICAgICAKICAgICAgICB1Z2EgeyAiVWdhcml0aWMiIH0gICAgICAgICAgICAKICAgICAgICB1ayAgeyAiVWtyYWluaWFuIiB9ICAgCiAgICAgICAgdW1iIHsgIlVtYnVuZHUiIH0KICAgICAgICB1bmQgeyAiVW5kZXRlcm1pbmVkIiB9ICAgICAgIAogICAgICAgIHVyICB7ICJVcmR1IiB9ICAgICAgICAgICAgICAgCiAgICAgICAgdXogIHsgIlV6YmVrIiB9ICAgICAgICAgICAgCiAgICAgICAgdmFpIHsgIlZhaSIgfQogICAgICAgIHZlbiB7ICJWZW5kYSIgfSAgCiAgICAgICAgdmkgIHsgIlZpZXRuYW1lc2UiIH0gICAgICAgICAKICAgICAgICB2byAgeyAiVm9sYXB1ayIgfSAgICAKICAgICAgICB2b3QgIHsgIlZvdGljIiB9CiAgICAgICAgd2FrIHsgIldha2FzaGFuIExhbmd1YWdlcyIgfQogICAgICAgIHdhbCB7ICJXYWxhbW8iIH0KICAgICAgICB3YXIgeyAiV2FyYXkiIH0KICAgICAgICB3YXMgeyAiV2FzaG8iIH0gICAgICAgIAogICAgICAgIHdlbiB7ICJTb3JiaWFuIExhbmd1YWdlcyIgfQogICAgICAgIHdvICB7ICJXb2xvZiIgfSAgICAgICAgICAgICAgCiAgICAgICAgeGggIHsgIlhob3NhIiB9CiAgICAgICAgeWFvIHsgIllhbyIgfQogICAgICAgIHlhcCB7ICJZYXBlc2UiIH0gICAgICAgICAgICAgIAogICAgICAgIHlpICB7ICJZaWRkaXNoIiB9ICAgICAgICAgICAgCiAgICAgICAgeW9yICB7ICJZb3J1YmEiIH0gICAgICAgCiAgICAgICAgeXBrIHsgIll1cGlrIExhbmd1YWdlcyIgfQogICAgICAgIHphICB7ICJaaHVhbmciIH0gICAgICAgICAgICAgCiAgICAgICAgemFwIHsgIlphcG90ZWMiIH0KICAgICAgICB6ZW4geyAiWmVuYWdhIiB9ICAgICAgCiAgICAgICAgemggIHsgIkNoaW5lc2UiIH0KICAgICAgICB6bmQgeyAiWmFuZGUiIH0KICAgICAgICB6dSAgeyAiWnVsdSIgfSAgICAgCiAgICAgICAgenVuIHsgIlp1bmkiIH0gICAgICAgICAgCiAgICB9CiAgICBMb2NhbGVJRCB7ICIwMDAwIiB9CiAgICBMb2NhbGVTdHJpbmcgeyAiZW4iIH0KICAgIE1vbnRoQWJicmV2aWF0aW9ucyB7IAogICAgICAgICAgICAiSmFuIiwKICAgICAgICAgICAgIkZlYiIsCiAgICAgICAgICAgICJNYXIiLAogICAgICAgICAgICAiQXByIiwKICAgICAgICAgICAgIk1heSIsCiAgICAgICAgICAgICJKdW4iLAogICAgICAgICAgICAiSnVsIiwKICAgICAgICAgICAgIkF1ZyIsCiAgICAgICAgICAgICJTZXAiLAogICAgICAgICAgICAiT2N0IiwKICAgICAgICAgICAgIk5vdiIsCiAgICAgICAgICAgICJEZWMiLAogICAgICAgICAgICAiIiwKICAgIH0KICAgIE1vbnRoTmFtZXMgeyAKICAgICAgICAgICAgIkphbnVhcnkiLAogICAgICAgICAgICAiRmVicnVhcnkiLAogICAgICAgICAgICAiTWFyY2giLAogICAgICAgICAgICAiQXByaWwiLAogICAgICAgICAgICAiTWF5IiwKICAgICAgICAgICAgIkp1bmUiLAogICAgICAgICAgICAiSnVseSIsCiAgICAgICAgICAgICJBdWd1c3QiLAogICAgICAgICAgICAiU2VwdGVtYmVyIiwKICAgICAgICAgICAgIk9jdG9iZXIiLAogICAgICAgICAgICAiTm92ZW1iZXIiLAogICAgICAgICAgICAiRGVjZW1iZXIiLAogICAgICAgICAgICAiIiwKICAgIH0KICAgIE51bWJlckVsZW1lbnRzIHsgCiAgICAgICAgICAgICIuIiwKICAgICAgICAgICAgIiwiLAogICAgICAgICAgICAiOyIsCiAgICAgICAgICAgICIlIiwKICAgICAgICAgICAgIjAiLAogICAgICAgICAgICAiIyIsCiAgICAgICAgICAgICItIiwKICAgICAgICAgICAgIkUiLAogICAgICAgICAgICAiXHUyMDMwIiwKICAgICAgICAgICAgIlx1MjIxRSIsCiAgICAgICAgICAgICJcdUZGRkQiLAogICAgfQogICAgTnVtYmVyUGF0dGVybnMgeyAKICAgICAgICAgICAgIiMsIyMwLiMjIzstIywjIzAuIyMjIiwKICAgICAgICAgICAgIlx1MDBBNCAjLCMjMC4wMDstXHUwMEE0ICMsIyMwLjAwIiwKICAgICAgICAgICAgIiMsIyMwJSIsCiAgICB9CiAgICBTaG9ydENvdW50cnkgeyAiIiB9CiAgICBTaG9ydExhbmd1YWdlIHsgImVuZyIgfQogICAgbG9jYWxQYXR0ZXJuQ2hhcnMgeyAiR3lNZGtIbXNTRURGd1dhaEt6WWUiIH0KICAgIHpvbmVTdHJpbmdzIHsgCiAgICAgICAgewogICAgICAgICAgICAgICAgIlBTVCIsCiAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJQU1QiLAogICAgICAgICAgICAgICAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiUERUIiwKICAgICAgICAgICAgICAgICJTYW4gRnJhbmNpc2NvIiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIk1TVCIsCiAgICAgICAgICAgICAgICAiTW91bnRhaW4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiTVNUIiwKICAgICAgICAgICAgICAgICJNb3VudGFpbiBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJNRFQiLAogICAgICAgICAgICAgICAgIkRlbnZlciIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJQTlQiLAogICAgICAgICAgICAgICAgIk1vdW50YWluIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIk1TVCIsCiAgICAgICAgICAgICAgICAiTW91bnRhaW4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiTVNUIiwKICAgICAgICAgICAgICAgICJQaG9lbml4IiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIkNTVCIsCiAgICAgICAgICAgICAgICAiQ2VudHJhbCBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJDU1QiLAogICAgICAgICAgICAgICAgIkNlbnRyYWwgRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiQ0RUIiwKICAgICAgICAgICAgICAgICJDaGljYWdvIiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIkVTVCIsCiAgICAgICAgICAgICAgICAiRWFzdGVybiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJFU1QiLAogICAgICAgICAgICAgICAgIkVhc3Rlcm4gRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiRURUIiwKICAgICAgICAgICAgICAgICJOZXcgWW9yayIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJJRVQiLAogICAgICAgICAgICAgICAgIkVhc3Rlcm4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiRVNUIiwKICAgICAgICAgICAgICAgICJFYXN0ZXJuIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkVTVCIsCiAgICAgICAgICAgICAgICAiSW5kaWFuYXBvbGlzIiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIlBSVCIsCiAgICAgICAgICAgICAgICAiQXRsYW50aWMgU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiQVNUIiwKICAgICAgICAgICAgICAgICJBdGxhbnRpYyBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJBRFQiLAogICAgICAgICAgICAgICAgIkhhbGlmYXgiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiSFNUIiwKICAgICAgICAgICAgICAgICJIYXdhaWkgU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiSFNUIiwKICAgICAgICAgICAgICAgICJIYXdhaWkgRGF5bGlnaHQgVGltZSIsCiAgICAgICAgICAgICAgICAiSERUIiwKICAgICAgICAgICAgICAgICJIb25vbHVsdSIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJBU1QiLAogICAgICAgICAgICAgICAgIkFsYXNrYSBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJBU1QiLAogICAgICAgICAgICAgICAgIkFsYXNrYSBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJBRFQiLAogICAgICAgICAgICAgICAgIkFuY2hvcmFnZSIsCiAgICAgICAgfQogICAgfQp9Cgo=