IyBDb3B5cmlnaHQgMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KIwojIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwojIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKIwojICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAojIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgojIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiMgJElkJAoKIyBEZWZhdWx0IGxvY2FsaXplZCByZXNvdXJjZXMgZm9yIGV4YW1wbGUgc2VydmxldHMKIyBUaGlzIGxvY2FsZSBpcyBmcl9GUgoKaGVsbG93b3JsZC50aXRsZT1TYWx1dCBsZSBNb25kZSEKCnJlcXVlc3RpbmZvLnRpdGxlPUV4ZW1wbGUgZCcnaW5mb3JtYXRpb24gc3VyIGxhIHJlcXXqdGUKcmVxdWVzdGluZm8ubGFiZWwubWV0aG9kPU3pdGhvZGU6CnJlcXVlc3RpbmZvLmxhYmVsLnJlcXVlc3R1cmk9VVJJIGRlIHJlcXXqdGU6CnJlcXVlc3RpbmZvLmxhYmVsLnByb3RvY29sPVByb3RvY29sZToKcmVxdWVzdGluZm8ubGFiZWwucGF0aGluZm89SW5mbyBkZSBjaGVtaW46CnJlcXVlc3RpbmZvLmxhYmVsLnJlbW90ZWFkZHI9QWRyZXNzZSBkaXN0YW50ZToKCnJlcXVlc3RoZWFkZXIudGl0bGU9RXhlbXBsZSBkJydpbmZvcm1hdGlvbiBzdXIgbGVzIGVudOp0ZSBkZSByZXF16nRlCgpyZXF1ZXN0cGFyYW1zLnRpdGxlPUV4ZW1wbGUgZGUgcmVxdep0ZSBhdmVjIHBhcmFt6nRyZXMKcmVxdWVzdHBhcmFtcy5wYXJhbXMtaW4tcmVxPVBhcmFt6nRyZXMgZGFucyBsYSByZXF16nRlOgpyZXF1ZXN0cGFyYW1zLm5vLXBhcmFtcz1QYXMgZGUgcGFyYW3qdHJlLCBtZXJjaSBkYW5zIHNhaXNpciBxdWVscXUndW5zCnJlcXVlc3RwYXJhbXMuZmlyc3RuYW1lPVBy6W5vbToKcmVxdWVzdHBhcmFtcy5sYXN0bmFtZT1Ob206Cgpjb29raWVzLnRpdGxlPUV4ZW1wbGUgZCcndXRpbGlzYXRpb24gZGUgQ29va2llcwpjb29raWVzLmNvb2tpZXM9Vm90cmUgbmF2aWdhdGV1ciByZXRvdXJuZSBsZXMgY29va2llcyBzdWl2YW50Ogpjb29raWVzLm5vLWNvb2tpZXM9Vm90cmUgbmF2aWdhdGV1ciBuZSByZXRvdXJuZSBhdWN1biBjb29raWUKY29va2llcy5tYWtlLWNvb2tpZT1DculhdGlvbiBkJyd1biBjb29raWUg4CByZXRvdXJuZXIg4CB2b3RyZSBuYXZpZ2F0ZXVyCmNvb2tpZXMubmFtZT1Ob206CmNvb2tpZXMudmFsdWU9VmFsZXVyOgpjb29raWVzLnNldD1Wb3VzIHZlbmV6IGQnJ2Vudm95ZXIgbGUgY29va2llIHN1aXZhbnQg4CB2b3RyZSBuYXZpZ2F0ZXVyOgoKc2Vzc2lvbnMudGl0bGU9RXhlbXBsZSBkZSBTZXNzaW9ucwpzZXNzaW9ucy5pZD1JRCBkZSBTZXNzaW9uOgpzZXNzaW9ucy5jcmVhdGVkPUNy6WUgbGU6CnNlc3Npb25zLmxhc3RhY2Nlc3NlZD1EZXJuaWVyIGFjY+hzOgpzZXNzaW9ucy5kYXRhPUxlcyBkb25u6WVzIGV4aXN0YW50ZXMgZGFucyB2b3RyZSBzZXNzaW9uOgpzZXNzaW9ucy5hZGRkYXRhPUFqb3V0ZXIgZGVzIGRvbm7pZXMg4CB2b3RyZSBzZXNzaW9uCnNlc3Npb25zLmRhdGFuYW1lPU5vbSBkZSBsJydBdHRyaWJ1dCBkZSBTZXNzaW9uOgpzZXNzaW9ucy5kYXRhdmFsdWU9VmFsZXVyIGRlIGwnJ0F0dHJpYnV0IGRlIFNlc3Npb246Cg==