IyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgYmlzb24gcGFja2FnZS4KIyBFc3RvbmlhbiB0cmFuc2xhdGlvbnMgZm9yIGJpc29uLgojIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUb29tYXMgU29vbWUgPFRvb21hcy5Tb29tZUBtaWNyb2xpbmsuZWU+LCAyMDExLgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogYmlzb24tcnVudGltZSAyLjUtcmMxXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWJpc29uQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEyLTEyLTEyIDE2OjA5KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTEtMDUtMDMgMjI6MTkrMDMwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBUb29tYXMgU29vbWUgPFRvb21hcy5Tb29tZUBtaWNyb2xpbmsuZWU+XG4iCiJMYW5ndWFnZS1UZWFtOiBFc3RvbmlhbiA8bGludXgtZWVAbGlzdHMuZWVuZXQuZWU+XG4iCiJMYW5ndWFnZTogZXRcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTVcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDgtYml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKCiM6IGRhdGEvZ2xyLmM6ODU1IGRhdGEveWFjYy5jOjc3Ngptc2dpZCAic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1cCIKbXNnc3RyICJz/G50YWtzaSB2aWdhOiBlaSBzYWEgdG9ldGFkYSIKCiM6IGRhdGEvZ2xyLmM6MTcyOQptc2dpZCAic3ludGF4IGlzIGFtYmlndW91cyIKbXNnc3RyICJz/G50YWtzIG9uIHNlZ2FuZSIKCiM6IGRhdGEvZ2xyLmM6MjAxNCBkYXRhL2dsci5jOjIwOTQgZGF0YS9nbHIuYzoyMTM0IGRhdGEvZ2xyLmM6MjM5OQojOiBkYXRhL2xhbHIxLmNjOjk0NyBkYXRhL2xhbHIxLmNjOjk2NyBkYXRhL3lhY2MuYzoxMzUxIGRhdGEveWFjYy5jOjE4NTYKIzogZGF0YS95YWNjLmM6MTg2Mgptc2dpZCAic3ludGF4IGVycm9yIgptc2dzdHIgInP8bnRha3NpIHZpZ2EiCgojOiBkYXRhL2dsci5jOjIwOTUgZGF0YS9sYWxyMS5jYzo5NDggZGF0YS95YWNjLmM6MTM1MgojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzIgptc2dzdHIgInP8bnRha3NpIHZpZ2EsIG9vdGFtYXR1ICVzIgoKIzogZGF0YS9nbHIuYzoyMDk2IGRhdGEvbGFscjEuY2M6OTQ5IGRhdGEveWFjYy5jOjEzNTMKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIgptc2dzdHIgInP8bnRha3NpIHZpZ2EsIG9vdGFtYXR1ICVzLCBvb3Rhc2luICVzIgoKIzogZGF0YS9nbHIuYzoyMDk3IGRhdGEvbGFscjEuY2M6OTUwIGRhdGEveWFjYy5jOjEzNTQKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVzIgptc2dzdHIgInP8bnRha3NpIHZpZ2EsIG9vdGFtYXR1ICVzLCBvb3Rhc2luICVzIHb1aSAlcyIKCiM6IGRhdGEvZ2xyLmM6MjA5OCBkYXRhL2xhbHIxLmNjOjk1MSBkYXRhL3lhY2MuYzoxMzU1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMsIGV4cGVjdGluZyAlcyBvciAlcyBvciAlcyIKbXNnc3RyICJz/G50YWtzaSB2aWdhLCBvb3RhbWF0dSAlcywgb290YXNpbiAlcyB29WkgJXMgdvVpICVzIgoKIzogZGF0YS9nbHIuYzoyMDk5IGRhdGEvbGFscjEuY2M6OTUyIGRhdGEveWFjYy5jOjEzNTYKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVzIG9yICVzIG9yICVzIgptc2dzdHIgInP8bnRha3NpIHZpZ2EsIG9vdGFtYXR1ICVzLCBvb3Rhc2luICVzIHb1aSAlcyB29WkgJXMgdvVpICVzIgoKIzogZGF0YS9nbHIuYzoyNDU5IGRhdGEveWFjYy5jOjE0MzYgZGF0YS95YWNjLmM6MTQzOCBkYXRhL3lhY2MuYzoxNjE2CiM6IGRhdGEveWFjYy5jOjIwMTMKbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCm1zZ3N0ciAibeRsdSBvbiBvdHNhcyIK