IyBHZXJtYW4gbGFuZ3VhZ2UgZmlsZSBmb3IgR05VIEJhc2ggNC4wCiMgQ29weXJpZ2h0IChDKSAxOTk2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBiYXNoIHBhY2thZ2UuCiMgTmlscyBOYXVtYW5uIDxubmF1QGdteC5uZXQ+LCAxOTk2LCAyMDA4Lgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogYmFzaCA0LjAtcHJlMVxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDktMDItMTkgMTQ6NTMtMDUwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwOC0xMi0yMCAxNjo1NiswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IE5pbHMgTmF1bWFubiA8bm5hdUBnbXgubmV0PlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDx0cmFuc2xhdGlvbi10ZWFtLWRlQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOC1iaXRcbiIKCiM6IGFycmF5ZnVuYy5jOjUwCm1zZ2lkICJiYWQgYXJyYXkgc3Vic2NyaXB0Igptc2dzdHIgIkZhbHNjaGVyIEZlbGRiZXplaWNobmVyLiIKCiM6IGFycmF5ZnVuYy5jOjMxMyBidWlsdGlucy9kZWNsYXJlLmRlZjo0NzQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgY29udmVydCBpbmRleGVkIHRvIGFzc29jaWF0aXZlIGFycmF5Igptc2dzdHIgIiVzOiBLYW5uIG5pY2h0IGRhcyBpbmRpemllcnRlIGluIGVpbiBhc3NvemlhdGl2ZXMgQXJyYXkgdW13YW5kZWxuLiIKCiM6IGFycmF5ZnVuYy5jOjQ3OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgYXNzb2NpYXRpdmUgYXJyYXkga2V5Igptc2dzdHIgIiVzOiBVbmf8bHRpZ2VyIFNjaGz8c3NlbCBm/HIgZGFzIGFzc296aWF0aXZlIEFycmF5LiIKCiM6IGFycmF5ZnVuYy5jOjQ4MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBhc3NpZ24gdG8gbm9uLW51bWVyaWMgaW5kZXgiCm1zZ3N0ciAiJXM6IEthbm4gbmljaHQgYXVmIGVpbmVuIG5pY2h0LW51bWVyaXNjaGVuIEluZGV4IHp1d2Vpc2VuLiIKCiM6IGFycmF5ZnVuYy5jOjUxNwojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBtdXN0IHVzZSBzdWJzY3JpcHQgd2hlbiBhc3NpZ25pbmcgYXNzb2NpYXRpdmUgYXJyYXkiCm1zZ3N0ciAiIgoKIzogYmFzaGhpc3QuYzozNzkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgY3JlYXRlOiAlcyIKbXNnc3RyICIlczogS2FubiBkaWUgRGF0ZWkgJXMgbmljaHQgZXJ6ZXVnZW4uIgoKIzogYmFzaGxpbmUuYzozNDEzCm1zZ2lkICJiYXNoX2V4ZWN1dGVfdW5peF9jb21tYW5kOiBjYW5ub3QgZmluZCBrZXltYXAgZm9yIGNvbW1hbmQiCm1zZ3N0ciAiIgoKIzogYmFzaGxpbmUuYzozNDkxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIG5vdCBgXCInIgptc2dzdHIgIiVzOiBEYXMgZXJzdGUgbmljaHQgTGVlcnplaWNoZW4gaXN0IG5pY2h0IGBcXCcuIgoKIzogYmFzaGxpbmUuYzozNTIwCiMsIGMtZm9ybWF0Cm1zZ2lkICJubyBjbG9zaW5nIGAlYycgaW4gJXMiCm1zZ3N0ciAiZmVobGVuZGUgc2NobGll32VuZGUgYCVjJyBpbiAlcy4iCgojOiBiYXNobGluZS5jOjM1NTQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBtaXNzaW5nIGNvbG9uIHNlcGFyYXRvciIKbXNnc3RyICIlczogRmVobGVuZGVyIERvcHBlbHB1bmt0LiIKCiM6IGJ1aWx0aW5zL2JpbmQuZGVmOjEyMCBidWlsdGlucy9iaW5kLmRlZjoxMjMKbXNnaWQgImxpbmUgZWRpdGluZyBub3QgZW5hYmxlZCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9iaW5kLmRlZjoyMDYKIywgYy1mb3JtYXQKbXNnaWQgImAlcyc6IGludmFsaWQga2V5bWFwIG5hbWUiCm1zZ3N0ciAiYCVzJzogVW5n/Gx0aWdlciBLRVlNQVAgTmFtZS4iCgojOiBidWlsdGlucy9iaW5kLmRlZjoyNDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgcmVhZDogJXMiCm1zZ3N0ciAiJXM6IE5pY2h0IGxlc2JhcjogJXMiCgojOiBidWlsdGlucy9iaW5kLmRlZjoyNjAKIywgYy1mb3JtYXQKbXNnaWQgImAlcyc6IGNhbm5vdCB1bmJpbmQiCm1zZ3N0ciAiYCVzJzogQmluZHVuZyBrYW5uIG5pY2h0IGdlbPZzdCB3ZXJkZW4uIgoKIzogYnVpbHRpbnMvYmluZC5kZWY6Mjk1IGJ1aWx0aW5zL2JpbmQuZGVmOjMyNQojLCBjLWZvcm1hdAptc2dpZCAiYCVzJzogdW5rbm93biBmdW5jdGlvbiBuYW1lIgptc2dzdHIgIiVzOiBVbmJla2FubnRlciBGdW5rdGlvbnNuYW1lLiIKCiM6IGJ1aWx0aW5zL2JpbmQuZGVmOjMwMwojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgbm90IGJvdW5kIHRvIGFueSBrZXlzLlxuIgptc2dzdHIgIiVzIGlzdCBrZWluZXIgVGFzdGUgenVnZW9yZG5ldC5cbiIKCiM6IGJ1aWx0aW5zL2JpbmQuZGVmOjMwNwojLCBjLWZvcm1hdAptc2dpZCAiJXMgY2FuIGJlIGludm9rZWQgdmlhICIKbXNnc3RyICIlcyBrYW5uIGF1ZmdlcnVmZW4gd2VyZGVuIGR1cmNoICIKCiM6IGJ1aWx0aW5zL2JyZWFrLmRlZjo3NyBidWlsdGlucy9icmVhay5kZWY6MTE3Cm1zZ2lkICJsb29wIGNvdW50Igptc2dzdHIgIlNjaGxlaWZlbiBa5GhsZXIiCgojOiBidWlsdGlucy9icmVhay5kZWY6MTM3Cm1zZ2lkICJvbmx5IG1lYW5pbmdmdWwgaW4gYSBgZm9yJywgYHdoaWxlJywgb3IgYHVudGlsJyBsb29wIgptc2dzdHIgIm51ciBpbiBlaW5lciBgZm9yJywgYHdoaWxlJyBvZGVyIGB1bnRpbCcgU2NobGVpZmUgc2lubnZvbGwuIgoKIzogYnVpbHRpbnMvY2FsbGVyLmRlZjoxMzMKbXNnaWQgIiIKIlJldHVybnMgdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgc3Vicm91dGluZSBjYWxsLlxuIgoiICAgIFxuIgoiICAgIFdpdGhvdXQgRVhQUiwgcmV0dXJucyAiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY2QuZGVmOjIxNQptc2dpZCAiSE9NRSBub3Qgc2V0Igptc2dzdHIgIkhPTUUgaXN0IG5pY2h0IHp1Z2V3aWVzZW4uIgoKIzogYnVpbHRpbnMvY2QuZGVmOjIyNwptc2dpZCAiT0xEUFdEIG5vdCBzZXQiCm1zZ3N0ciAiT0xEUFdEIGlzdCBuaWNodCB6dWdld2llc2VuLiIKCiMgRGVidWcgQXVzZ2FiZQojOiBidWlsdGlucy9jb21tb24uYzoxMDEKIywgYy1mb3JtYXQKbXNnaWQgImxpbmUgJWQ6ICIKbXNnc3RyICJaZWlsZSAlZDogIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MTM5IGVycm9yLmM6MjYwCiMsIGMtZm9ybWF0Cm1zZ2lkICJ3YXJuaW5nOiAiCm1zZ3N0ciAiV2FybnVuZzogIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MTUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdXNhZ2U6ICIKbXNnc3RyICIlczogR2VicmF1Y2g6ICIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjE2NiB0ZXN0LmM6ODIyCm1zZ2lkICJ0b28gbWFueSBhcmd1bWVudHMiCm1zZ3N0ciAiWnUgdmllbGUgQXJndW1lbnRlLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjE5MSBzaGVsbC5jOjQ5MyBzaGVsbC5jOjc3NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKbXNnc3RyICIlczogRWluIG51bWVyaXNjaGVyIFBhcmVtZXRlciBpc3QgZXJmb3JkZXJsaWNoLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjE5OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG51bWVyaWMgYXJndW1lbnQgcmVxdWlyZWQiCm1zZ3N0ciAiJXM6IEVpbiBudW1lcmlzY2hlciBQYXJhbWV0ZXIgaXN0IGVyZm9yZGVybGljaC4iCgojOiBidWlsdGlucy9jb21tb24uYzoyMDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgZm91bmQiCm1zZ3N0ciAiJXM6IE5pY2h0IGdlZnVuZGVuLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjIxNCBzaGVsbC5jOjc4NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIgptc2dzdHIgIiVzOiBVbmf8bHRpZ2UgT3B0aW9uIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBvcHRpb24gbmFtZSIKbXNnc3RyICIlczogVW5n/Gx0aWdlciBPcHRpb25zbmFtZS4iCgojOiBidWlsdGlucy9jb21tb24uYzoyMjggZ2VuZXJhbC5jOjIzMSBnZW5lcmFsLmM6MjM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBub3QgYSB2YWxpZCBpZGVudGlmaWVyIgptc2dzdHIgImAlcyc6IElzdCBrZWluIGf8bHRpZ2VyIEJlemVpY2huZXIuIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjM4Cm1zZ2lkICJpbnZhbGlkIG9jdGFsIG51bWJlciIKbXNnc3RyICJVbmf8bHRpZ2UgT2t0YWx6YWhsLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI0MAptc2dpZCAiaW52YWxpZCBoZXggbnVtYmVyIgptc2dzdHIgIlVuZ/xsdGlnZSBoZXhhZGV6aW1hbGUgWmFobC4iCgojOiBidWlsdGlucy9jb21tb24uYzoyNDIgZXhwci5jOjEyNTUKbXNnaWQgImludmFsaWQgbnVtYmVyIgptc2dzdHIgIlVuZ/xsdGlnZSBaYWhsLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI1MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgc2lnbmFsIHNwZWNpZmljYXRpb24iCm1zZ3N0ciAiJXM6IFVuZ/xsdGlnZSBTaWduYWxiZXplaWNobnVuZy4iCgojOiBidWlsdGlucy9jb21tb24uYzoyNTcKIywgYy1mb3JtYXQKbXNnaWQgImAlcyc6IG5vdCBhIHBpZCBvciB2YWxpZCBqb2Igc3BlYyIKbXNnc3RyICJgJXMnOiBJc3Qga2VpbmUgZ/xsdGlnZSBQcm96ZXNzLSBvZGVyIEpvYmJlemVpY2hudW5nLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI2NCBlcnJvci5jOjQ1MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJlYWRvbmx5IHZhcmlhYmxlIgptc2dzdHIgIiVzOiBTY2hyZWliZ2VzY2j8dHp0ZSBWYXJpYWJsZS4iCgojOiBidWlsdGlucy9jb21tb24uYzoyNzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlcyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiJXM6ICVzIGlzdCBhdd9lcmhhbGIgZGVzIEf8bHRpZ2tlaXRzYmVyZWljaGVzLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI3MiBidWlsdGlucy9jb21tb24uYzoyNzQKbXNnaWQgImFyZ3VtZW50Igptc2dzdHIgIkFyZ3VtZW50IgoKIzogYnVpbHRpbnMvY29tbW9uLmM6Mjc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiJXMgaXN0IGF132VyaGFsYiBkZXMgR/xsdGlna2VpdHNiZXJlaWNoZXMuIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm8gc3VjaCBqb2IiCm1zZ3N0ciAiJXM6IEtlaW4gc29sY2hlIEpvYi4iCgojOiBidWlsdGlucy9jb21tb24uYzoyOTAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBubyBqb2IgY29udHJvbCIKbXNnc3RyICIlczogS2VpbmUgSm9iIFN0ZXVlcnVuZyBpbiBkaWVzZXIgU2hlbGwuIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjkyCm1zZ2lkICJubyBqb2IgY29udHJvbCIKbXNnc3RyICJLZWluZSBKb2IgU3RldWVydW5nIGluIGRpZXNlciBTaGVsbC4iCgojOiBidWlsdGlucy9jb21tb24uYzozMDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByZXN0cmljdGVkIgptc2dzdHIgIiVzOiBnZXNwZXJydCIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMwNAptc2dpZCAicmVzdHJpY3RlZCIKbXNnc3RyICJnZXNwZXJydCIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vdCBhIHNoZWxsIGJ1aWx0aW4iCm1zZ3N0ciAiJXM6IElzdCBrZWluIFNoZWxsIEtvbW1hbmRvLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMyMQojLCBjLWZvcm1hdAptc2dpZCAid3JpdGUgZXJyb3I6ICVzIgptc2dzdHIgIlNjaHJlaWJmZWhsZXI6ICVzLiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMyOQojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3Igc2V0dGluZyB0ZXJtaW5hbCBhdHRyaWJ1dGVzOiAlcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21tb24uYzozMzEKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIGdldHRpbmcgdGVybWluYWwgYXR0cmlidXRlczogJXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6NTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZXJyb3IgcmV0cmlldmluZyBjdXJyZW50IGRpcmVjdG9yeTogJXM6ICVzXG4iCm1zZ3N0ciAiJXM6IEthbm4gZGFzIG5pY2h0IGFrdHVlbGxlIFZlcnplaWNobmlzIHdpZWRlcmZpbmRlbjogJXM6ICVzXG4iCgojOiBidWlsdGlucy9jb21tb24uYzo2MjkgYnVpbHRpbnMvY29tbW9uLmM6NjMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYW1iaWd1b3VzIGpvYiBzcGVjIgptc2dzdHIgIiVzOiBNZWhyZGV1dGlnZSBKb2IgQmV6ZWljaG51bmcuIgoKIzogYnVpbHRpbnMvY29tcGxldGUuZGVmOjI3MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgYWN0aW9uIG5hbWUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY29tcGxldGUuZGVmOjQzMCBidWlsdGlucy9jb21wbGV0ZS5kZWY6NjE1CiM6IGJ1aWx0aW5zL2NvbXBsZXRlLmRlZjo4MTMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBubyBjb21wbGV0aW9uIHNwZWNpZmljYXRpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY29tcGxldGUuZGVmOjY2Nwptc2dpZCAid2FybmluZzogLUYgb3B0aW9uIG1heSBub3Qgd29yayBhcyB5b3UgZXhwZWN0Igptc2dzdHIgIldhcm51bmc6IERpZSAtRiBPcHRpb24ga/ZubnRlIHVuZXJ3YXJ0ZXRlIEVyZ2Vibmlzc2UgbGllZmVybi4iCgojOiBidWlsdGlucy9jb21wbGV0ZS5kZWY6NjY5Cm1zZ2lkICJ3YXJuaW5nOiAtQyBvcHRpb24gbWF5IG5vdCB3b3JrIGFzIHlvdSBleHBlY3QiCm1zZ3N0ciAiV2FybnVuZzogRGllIC1DIE9wdGlvbiBr9m5udGUgdW5lcndhcnRldGUgRXJnZWJuaXNzZSBsaWVmZXJuLiIKCiM6IGJ1aWx0aW5zL2NvbXBsZXRlLmRlZjo3ODYKbXNnaWQgIm5vdCBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbXBsZXRpb24gZnVuY3Rpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZGVjbGFyZS5kZWY6MTIyCm1zZ2lkICJjYW4gb25seSBiZSB1c2VkIGluIGEgZnVuY3Rpb24iCm1zZ3N0ciAia2FubiBudXIgaW5uZXJoYWxiIGVpbmVyIEZ1bmt0aW9uIGJlbnV0enQgd2VyZGVuLiIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjM1Mwptc2dpZCAiY2Fubm90IHVzZSBgLWYnIHRvIG1ha2UgZnVuY3Rpb25zIgptc2dzdHIgIk1pdCBgLWYnIGv2bm5lbiBrZWluZSBGdW5rdGlvbmVuIGVyemV1Z3Qgd2VyZGVuLiIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjM2NSBleGVjdXRlX2NtZC5jOjQ4MTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByZWFkb25seSBmdW5jdGlvbiIKbXNnc3RyICIlczogU2NocmVpYmdlc2No/HR6dGUgRnVua3Rpb24uIgoKIzogYnVpbHRpbnMvZGVjbGFyZS5kZWY6NDYxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGRlc3Ryb3kgYXJyYXkgdmFyaWFibGVzIGluIHRoaXMgd2F5Igptc2dzdHIgIiVzOiBLYW5uIEZlbGR2YXJpYWJsZW4gbmljaHQgYXVmIGRpZXNlIEFydCBs9nNjaGVuLiIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjQ2OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBjb252ZXJ0IGFzc29jaWF0aXZlIHRvIGluZGV4ZWQgYXJyYXkiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZW5hYmxlLmRlZjoxMzcgYnVpbHRpbnMvZW5hYmxlLmRlZjoxNDUKbXNnaWQgImR5bmFtaWMgbG9hZGluZyBub3QgYXZhaWxhYmxlIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2VuYWJsZS5kZWY6MzEyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgb3BlbiBzaGFyZWQgb2JqZWN0ICVzOiAlcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9lbmFibGUuZGVmOjMzNQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGZpbmQgJXMgaW4gc2hhcmVkIG9iamVjdCAlczogJXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZW5hYmxlLmRlZjo0NTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgZHluYW1pY2FsbHkgbG9hZGVkIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2VuYWJsZS5kZWY6NDc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGRlbGV0ZTogJXMiCm1zZ3N0ciAiJXM6IEthbm4gbmljaHQgbPZzY2hlbjogJXMiCgojOiBidWlsdGlucy9ldmFsZmlsZS5jOjEzNCBidWlsdGlucy9oYXNoLmRlZjoxNjkgZXhlY3V0ZV9jbWQuYzo0Njc1CiM6IHNoZWxsLmM6MTQzOQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGlzIGEgZGlyZWN0b3J5Igptc2dzdHIgIiVzOiBpc3QgZWluIFZlcnplaWNobmlzLiIKCiM6IGJ1aWx0aW5zL2V2YWxmaWxlLmM6MTM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IGEgcmVndWxhciBmaWxlIgptc2dzdHIgIiVzOiBJc3Qga2VpbmUgbm9ybWFsZSBEYXRlaS4iCgojOiBidWlsdGlucy9ldmFsZmlsZS5jOjE0NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgaXMgdG9vIGxhcmdlIgptc2dzdHIgIiVzOiBEaWUgRGF0ZWkgaXN0IHp1IGdyb98uIgoKIzogYnVpbHRpbnMvZXZhbGZpbGUuYzoxODUgZXhlY3V0ZV9jbWQuYzo0NzQ1IHNoZWxsLmM6MTQ0OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBleGVjdXRlIGJpbmFyeSBmaWxlIgptc2dzdHIgIiVzOiBLYW5uIGRpZSBEYXRlaSBuaWNodCBhdXNm/GhyZW4uIgoKIzogYnVpbHRpbnMvZXhlYy5kZWY6MjEyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGV4ZWN1dGU6ICVzIgptc2dzdHIgIiVzOiBLYW5uIG5pY2h0IGF1c2b8aHJlbjogJXMiCgojOiBidWlsdGlucy9leGl0LmRlZjo2NQojLCBjLWZvcm1hdAptc2dpZCAibG9nb3V0XG4iCm1zZ3N0ciAiQWJnZW1lbGRldFxuIgoKIzogYnVpbHRpbnMvZXhpdC5kZWY6ODgKbXNnaWQgIm5vdCBsb2dpbiBzaGVsbDogdXNlIGBleGl0JyIKbXNnc3RyICJLZWluZSBMb2dpbiBTaGVsbDogTWl0IGV4aXQgYWJtZWxkZW4uIgoKIzogYnVpbHRpbnMvZXhpdC5kZWY6MTIwCiMsIGMtZm9ybWF0Cm1zZ2lkICJUaGVyZSBhcmUgc3RvcHBlZCBqb2JzLlxuIgptc2dzdHIgIkVzIGdpYnQgbm9jaCBhbmdlaGFsdGVuZSBQcm96ZXNzZS5cbiIKCiM6IGJ1aWx0aW5zL2V4aXQuZGVmOjEyMgojLCBjLWZvcm1hdAptc2dpZCAiVGhlcmUgYXJlIHJ1bm5pbmcgam9icy5cbiIKbXNnc3RyICJFcyBnaWJ0IG5vY2ggbGF1ZmVuZGUgUHJvemVzc2UuXG4iCgojOiBidWlsdGlucy9mYy5kZWY6MjYxCm1zZ2lkICJubyBjb21tYW5kIGZvdW5kIgptc2dzdHIgIktlaW4gS29tbWFuZG8gZ2VmdW5kZW4uIgoKIzogYnVpbHRpbnMvZmMuZGVmOjM0MQptc2dpZCAiaGlzdG9yeSBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2ZjLmRlZjozNjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiB0ZW1wIGZpbGU6ICVzIgptc2dzdHIgIiVzOiBLYW5uIGRpZSB0ZW1wcuRyZSBEYXRlaSBuaWNodCD2ZmZuZW46ICVzIgoKIzogYnVpbHRpbnMvZmdfYmcuZGVmOjE0OSBidWlsdGlucy9qb2JzLmRlZjoyODIKbXNnaWQgImN1cnJlbnQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZmdfYmcuZGVmOjE1OAojLCBjLWZvcm1hdAptc2dpZCAiam9iICVkIHN0YXJ0ZWQgd2l0aG91dCBqb2IgY29udHJvbCIKbXNnc3RyICJKb2IgJWQgd3VyZGUgb2huZSBKb2JzdGV1ZXJ1bmcgZ2VzdGFydGV0LiIKCiM6IGJ1aWx0aW5zL2dldG9wdC5jOjExMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCm1zZ3N0ciAiJXM6IFVuZ/xsdGlnZSBPcHRpb24gLS0gJWNcbiIKCiM6IGJ1aWx0aW5zL2dldG9wdC5jOjExMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlY1xuIgptc2dzdHIgIiVzOiBEaWVzZSBPcHRpb24gZXJmb3JkZXJ0IGVpbiBBcmd1bWVudCAtLSAlY1xuIgoKIzogYnVpbHRpbnMvaGFzaC5kZWY6OTIKbXNnaWQgImhhc2hpbmcgZGlzYWJsZWQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvaGFzaC5kZWY6MTM4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaGFzaCB0YWJsZSBlbXB0eVxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hhc2guZGVmOjI0NAojLCBjLWZvcm1hdAptc2dpZCAiaGl0c1x0Y29tbWFuZFxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hlbHAuZGVmOjEzMAojLCBjLWZvcm1hdAptc2dpZCAiU2hlbGwgY29tbWFuZHMgbWF0Y2hpbmcga2V5d29yZCBgIgptc2dpZF9wbHVyYWwgIlNoZWxsIGNvbW1hbmRzIG1hdGNoaW5nIGtleXdvcmRzIGAiCm1zZ3N0clswXSAiIgptc2dzdHJbMV0gIiIKCiM6IGJ1aWx0aW5zL2hlbHAuZGVmOjE2OAojLCBjLWZvcm1hdAptc2dpZCAiIgoibm8gaGVscCB0b3BpY3MgbWF0Y2ggYCVzJy4gIFRyeSBgaGVscCBoZWxwJyBvciBgbWFuIC1rICVzJyBvciBgaW5mbyAlcycuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hlbHAuZGVmOjE4NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBvcGVuOiAlcyIKbXNnc3RyICIlczogS2FubiBkaWUgRGF0ZWkgbmljaHQg9mZmbmVuOiAlcyIKCiM6IGJ1aWx0aW5zL2hlbHAuZGVmOjMzNwojLCBjLWZvcm1hdAptc2dpZCAiIgoiVGhlc2Ugc2hlbGwgY29tbWFuZHMgYXJlIGRlZmluZWQgaW50ZXJuYWxseS4gIFR5cGUgYGhlbHAnIHRvIHNlZSB0aGlzIGxpc3QuXG4iCiJUeXBlIGBoZWxwIG5hbWUnIHRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgdGhlIGZ1bmN0aW9uIGBuYW1lJy5cbiIKIlVzZSBgaW5mbyBiYXNoJyB0byBmaW5kIG91dCBtb3JlIGFib3V0IHRoZSBzaGVsbCBpbiBnZW5lcmFsLlxuIgoiVXNlIGBtYW4gLWsnIG9yIGBpbmZvJyB0byBmaW5kIG91dCBtb3JlIGFib3V0IGNvbW1hbmRzIG5vdCBpbiB0aGlzIGxpc3QuXG4iCiJcbiIKIkEgc3RhciAoKikgbmV4dCB0byBhIG5hbWUgbWVhbnMgdGhhdCB0aGUgY29tbWFuZCBpcyBkaXNhYmxlZC5cbiIKIlxuIgptc2dzdHIgIiIKIkRpZSBTaGVsbCBLb21tYW5kb3Mgc2luZCBpbnRlcm4gZGVmaW5pZXJ0LiAgTWl0IGBoZWxwJyBrYW5uIGVpbmUgTGlzdGVcbiIKImFuZ2VzZWhlbiB3ZXJkZW4uICBEdXJjaCBgaGVscCBOYW1lJyB3aXJkIGVpbmUgQmVzY2hyZWlidW5nIGRlclxuIgoiRnVua3Rpb24gYE5hbWUnIGFuZ2V6ZWlndC4gIERpZSBEb2t1bWVudGF0aW9uIGlzdCBtaXQgYGluZm8gYmFzaCdcbiIKImVpbnNlaGJhci4gIERldGFpbGxpZXJ0ZSBCZXNjaHJlaWJ1bmdlbiBkZXIgU2hlbGxrb21tYW5kb3Mgc2luZCBtaXRcbiIKImBtYW4gLWsnIG9kZXIgYGluZm8nIGFicnVmYmFyLlxuIgoiXG4iCiJFaW4gU3Rlcm4gKCopIG5lYmVuIGRlbSBOYW1lbiBrZW5uemVpY2huZXQgZGVha3RpdmllcnRlIEtvbW1hbmRvcy5cbiIKIlxuIgoKIzogYnVpbHRpbnMvaGlzdG9yeS5kZWY6MTU0Cm1zZ2lkICJjYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgb2YgLWFucnciCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvaGlzdG9yeS5kZWY6MTg2Cm1zZ2lkICJoaXN0b3J5IHBvc2l0aW9uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hpc3RvcnkuZGVmOjM2NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGhpc3RvcnkgZXhwYW5zaW9uIGZhaWxlZCIKbXNnc3RyICIlczogSGlzdG9yeSBTdWJzdGl0dXRpb24gZ2VzY2hlaXRlcnQuIgoKIzogYnVpbHRpbnMvaW5saWIuZGVmOjcxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW5saWIgZmFpbGVkIgptc2dzdHIgIiVzOiBpbmxpYiBnZXNjaGVpdGVydC4iCgojOiBidWlsdGlucy9qb2JzLmRlZjoxMDkKbXNnaWQgIm5vIG90aGVyIG9wdGlvbnMgYWxsb3dlZCB3aXRoIGAteCciCm1zZ3N0ciAiS2VpbmUgd2VpdGVyZW4gT3B0aW9uZW4gbWl0IGAteCcgZXJsYXVidC4iCgojOiBidWlsdGlucy9raWxsLmRlZjoxOTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBhcmd1bWVudHMgbXVzdCBiZSBwcm9jZXNzIG9yIGpvYiBJRHMiCm1zZ3N0ciAiJXM6IERpZSBBcmd1bWVudGUgbfxzc2VuIFByb3plc3MtIG9kZXIgSm9iYmV6ZWljaG51bmdlbiBzZWluLiIKCiM6IGJ1aWx0aW5zL2tpbGwuZGVmOjI2MAptc2dpZCAiVW5rbm93biBlcnJvciIKbXNnc3RyICJVbmJla2FubnRlciBGZWhsZXIuIgoKIzogYnVpbHRpbnMvbGV0LmRlZjo5NSBidWlsdGlucy9sZXQuZGVmOjEyMCBleHByLmM6NTAxIGV4cHIuYzo1MTYKbXNnaWQgImV4cHJlc3Npb24gZXhwZWN0ZWQiCm1zZ3N0ciAiQXVzZHJ1Y2sgZXJ3YXJ0ZXQuIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MjQxIGJ1aWx0aW5zL3JlYWQuZGVmOjI3MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIHNwZWNpZmljYXRpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MjQ5IGJ1aWx0aW5zL3JlYWQuZGVmOjI3OQojLCBjLWZvcm1hdAptc2dpZCAiJWQ6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yOiAlcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9tYXBmaWxlLmRlZjoyNTggYnVpbHRpbnMvbWFwZmlsZS5kZWY6Mjk2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBsaW5lIGNvdW50Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjI2OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgYXJyYXkgb3JpZ2luIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjI4NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgY2FsbGJhY2sgcXVhbnR1bSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9tYXBmaWxlLmRlZjozMTgKbXNnaWQgImVtcHR5IGFycmF5IHZhcmlhYmxlIG5hbWUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MzM5Cm1zZ2lkICJhcnJheSB2YXJpYWJsZSBzdXBwb3J0IHJlcXVpcmVkIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3ByaW50Zi5kZWY6MzY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBtaXNzaW5nIGZvcm1hdCBjaGFyYWN0ZXIiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvcHJpbnRmLmRlZjo1NDQKIywgYy1mb3JtYXQKbXNnaWQgImAlYyc6IGludmFsaWQgZm9ybWF0IGNoYXJhY3RlciIKbXNnc3RyICIiCgojOiBidWlsdGlucy9wcmludGYuZGVmOjU3MQojLCBjLWZvcm1hdAptc2dpZCAid2FybmluZzogJXM6ICVzIgptc2dzdHIgIldhcm51bmc6ICVzOiAlcyIKCiM6IGJ1aWx0aW5zL3ByaW50Zi5kZWY6NzUwCm1zZ2lkICJtaXNzaW5nIGhleCBkaWdpdCBmb3IgXFx4Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjoxOTUKbXNnaWQgIm5vIG90aGVyIGRpcmVjdG9yeSIKbXNnc3RyICJrZWluIGFuZGVyZXMgVmVyemVpY2huaXMiCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NDYyCm1zZ2lkICI8bm8gY3VycmVudCBkaXJlY3Rvcnk+Igptc2dzdHIgIjxrZWluIGFrdHVlbGxlcyBWZXJ6ZWljaG5pcz4iCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NTA2Cm1zZ2lkICJkaXJlY3Rvcnkgc3RhY2sgZW1wdHkiCm1zZ3N0ciAiZGVyIFZlcnplaWNobmlzc3RhcGVsIGlzdCBsZWVyIgoKIzogYnVpbHRpbnMvcHVzaGQuZGVmOjUwOAptc2dpZCAiZGlyZWN0b3J5IHN0YWNrIGluZGV4Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjo2ODMKbXNnaWQgIiIKIkRpc3BsYXkgdGhlIGxpc3Qgb2YgY3VycmVudGx5IHJlbWVtYmVyZWQgZGlyZWN0b3JpZXMuICBEaXJlY3Rvcmllc1xuIgoiICAgIGZpbmQgdGhlaXIgd2F5IG9udG8gdGhlIGxpc3Qgd2l0aCB0aGUgYHB1c2hkJyBjb21tYW5kOyB5b3UgY2FuIGdldFxuIgoiICAgIGJhY2sgdXAgdGhyb3VnaCB0aGUgbGlzdCB3aXRoIHRoZSBgcG9wZCcgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWNcdGNsZWFyIHRoZSBkaXJlY3Rvcnkgc3RhY2sgYnkgZGVsZXRpbmcgYWxsIG9mIHRoZSBlbGVtZW50c1xuIgoiICAgICAgLWxcdGRvIG5vdCBwcmludCB0aWxkZS1wcmVmaXhlZCB2ZXJzaW9ucyBvZiBkaXJlY3RvcmllcyByZWxhdGl2ZVxuIgoiICAgIFx0dG8geW91ciBob21lIGRpcmVjdG9yeVxuIgoiICAgICAgLXBcdHByaW50IHRoZSBkaXJlY3Rvcnkgc3RhY2sgd2l0aCBvbmUgZW50cnkgcGVyIGxpbmVcbiIKIiAgICAgIC12XHRwcmludCB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggb25lIGVudHJ5IHBlciBsaW5lIHByZWZpeGVkXG4iCiIgICAgXHR3aXRoIGl0cyBwb3NpdGlvbiBpbiB0aGUgc3RhY2tcbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICArTlx0RGlzcGxheXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duICIKImJ5XG4iCiIgICAgXHRkaXJzIHdoZW4gaW52b2tlZCB3aXRob3V0IG9wdGlvbnMsIHN0YXJ0aW5nIHdpdGggemVyby5cbiIKIiAgICBcbiIKIiAgICAgIC1OXHREaXNwbGF5cyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IHNob3duICIKImJ5XG4iCiJcdGRpcnMgd2hlbiBpbnZva2VkIHdpdGhvdXQgb3B0aW9ucywgc3RhcnRpbmcgd2l0aCB6ZXJvLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NzA1Cm1zZ2lkICIiCiJBZGRzIGEgZGlyZWN0b3J5IHRvIHRoZSB0b3Agb2YgdGhlIGRpcmVjdG9yeSBzdGFjaywgb3Igcm90YXRlc1xuIgoiICAgIHRoZSBzdGFjaywgbWFraW5nIHRoZSBuZXcgdG9wIG9mIHRoZSBzdGFjayB0aGUgY3VycmVudCB3b3JraW5nXG4iCiIgICAgZGlyZWN0b3J5LiAgV2l0aCBubyBhcmd1bWVudHMsIGV4Y2hhbmdlcyB0aGUgdG9wIHR3byBkaXJlY3Rvcmllcy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLW5cdFN1cHByZXNzZXMgdGhlIG5vcm1hbCBjaGFuZ2Ugb2YgZGlyZWN0b3J5IHdoZW4gYWRkaW5nXG4iCiIgICAgXHRkaXJlY3RvcmllcyB0byB0aGUgc3RhY2ssIHNvIG9ubHkgdGhlIHN0YWNrIGlzIG1hbmlwdWxhdGVkLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICAgICtOXHRSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZ1xuIgoiICAgIFx0ZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGhcbiIKIiAgICBcdHplcm8pIGlzIGF0IHRoZSB0b3AuXG4iCiIgICAgXG4iCiIgICAgICAtTlx0Um90YXRlcyB0aGUgc3RhY2sgc28gdGhhdCB0aGUgTnRoIGRpcmVjdG9yeSAoY291bnRpbmdcbiIKIiAgICBcdGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aFxuIgoiICAgIFx0emVybykgaXMgYXQgdGhlIHRvcC5cbiIKIiAgICBcbiIKIiAgICAgIGRpclx0QWRkcyBESVIgdG8gdGhlIGRpcmVjdG9yeSBzdGFjayBhdCB0aGUgdG9wLCBtYWtpbmcgaXQgdGhlXG4iCiIgICAgXHRuZXcgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay4iCm1zZ3N0ciAiIgoiTGVndCBlaW4gVmVyemVpY2huaXNlaW50cmFnIGF1ZiBkZW4gVmVyemVpY2huaXNzdGFwZWwgYWIgb2RlciByb3RpZXJ0XG4iCiJkZW4gU3RhcGVsIHNvLCBkYXNzIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyBvYmVuIGxpZWd0LiAgT2huZSBBcmd1bWVudGVcbiIKIndlcmRlbiBkaWUgYmVpZGVuIG9iZXJlbiBFaW50cuRnZSB2ZXJ0YXVzY2h0LlxuIgoiXG4iCiIgICAgT3B0aW9uZW46IFxuIgoiICAgICAgIC1uXHRWZXJtZWlkZXQgZGFzIFdlY2hzZWxuIGRlcyBWZXJ6ZWljaG5pc3Nlcywgc28gZGFzc1xuIgoiXHRudXIgZGVyIFZlcnplaWNobmlzc3RhcGVsIGdl5G5kZXJ0IHdpcmQuXG4iCiJcbiIKIiAgICBBcmd1bWVudGU6XG4iCiIgICAgICArTlx0Um90aWVydCBkZW4gVmVyemVpY2huaXNzdGFwZWwsIGRhc3MgZGFzIE4tdGUgVmVyemVpY2huaXNcbiIKIlx0dm9uIGxpbmtzLCBkYXMgdm9uIGBkaXJzJyBhbmdlemVpZ3Qgd2lyZCwgbmFjaCBvYmVuIGtvbW10LiAgRGllIFrkaGx1bmdcbiIKIlx0YmVnaW5udCBkYWJlaSBtaXQgTnVsbC5cbiIKIlxuIgoiICAgICAgLU5cdFJvdGllcnQgZGVuIFZlcnplaWNobmlzc3RhcGVsLCBkYXNzIGRhcyBOLXRlIFZlcnplaWNobmlzXG4iCiJcdHZvbiByZWNodHMsIGRhcyB2b24gYGRpcnMnIGFuZ2V6ZWlndCB3aXJkLCBuYWNoIG9iZW4ga29tbXQuICBEaWUgXG4iCiJcdFrkaGx1bmcgYmVnaW5udCBkYWJlaSBtaXQgTnVsbC5cbiIKIlxuIgoiICAgICAgZGlyXHRMZWd0IERJUiBhdWYgZGVuIFZlcnplaWNobmlzc3RhcGVsIHVuZCB3ZWNoc2VsdCBpbiBkaWVzZXNcbiIKIiAgICAgIFZlcnplaWNobmlzLlxuIgoiICAgIFxuIgoiICAgIERhcyBgZGlycycgS29tbWFuZG8gemVpZ3QgZGVuIFZlcnVlaWNobmlzc3RhcGVsIGFuLiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjo3MzAKbXNnaWQgIiIKIlJlbW92ZXMgZW50cmllcyBmcm9tIHRoZSBkaXJlY3Rvcnkgc3RhY2suICBXaXRoIG5vIGFyZ3VtZW50cywgcmVtb3Zlc1xuIgoiICAgIHRoZSB0b3AgZGlyZWN0b3J5IGZyb20gdGhlIHN0YWNrLCBhbmQgY2hhbmdlcyB0byB0aGUgbmV3IHRvcCBkaXJlY3RvcnkuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1uXHRTdXBwcmVzc2VzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIHJlbW92aW5nXG4iCiIgICAgXHRkaXJlY3RvcmllcyBmcm9tIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCArMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGZpcnN0IGRpcmVjdG9yeSwgYHBvcGQgKzEnIHRoZSBzZWNvbmQuXG4iCiIgICAgXG4iCiIgICAgICAtTlx0UmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCAtMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGxhc3QgZGlyZWN0b3J5LCBgcG9wZCAtMScgdGhlIG5leHQgdG8gbGFzdC5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay4iCm1zZ3N0ciAiIgoiRXJudGZlcm50IEVpbnRy5GdlIHZvbSBTdGFwZWwuICBPaG5lIEFyZ3VtZW50ZSB3aXJkIGRlciBvYmVyc3RlIEVpbnRyYWdcbiIKIiAgICBnZWz2c2NodCB1bmQgYW5zY2hsaWXfZW5kIGluIGRhcyBkYXMgbmV1ZSBvYmVuIGxpZWdlZGUgVmVyemVpY2huaXNcbiIKIiAgICBnZXdlY2hzZWx0LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbmVuOlxuIgoiICAgICAgLW5cdFZlcm1laWRldCBkYXMgV2VjaHNlbG4gZGVzIFZlcnplaWNobmlzc2VzLCBzbyBkYXNzXG4iCiJcdG51ciBkZXIgVmVyemVpY2huaXNzdGFwZWwgZ2XkbmRlcnQgd2lyZC5cbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudGU6XG4iCiIgICAgICArTlx0RW50ZmVybnQgZGVuIE4tdGVuIEVpbnRyYWcgdm9uIGxpbmtzLCBkZXIgdm9uIGBkaXJzJ1xuIgoiXHRhbmdlemVpZ3Qgd2lyZC4gIERhYmVpIGJlZ2lubnQgZGllIFrkaGx1bmcgdm9uIE51bGwuICBTb1xuIgoiXHRlbnRmZXJudCB6LkIuIGBwb3BkICswJyBkZW4gZXJzdGVuIHVuZCBgcG9wZCArMScgZGVuIHp3ZWl0ZW5cbiIKIlx0RWludHJhZy5cbiIKIiAgICBcbiIKIiAgICAgIC1OXHRFbnRmZXJudCBkZW4gTi10ZW4gRWludHJhZyB2b24gcmVjaHRzLCBkZXIgdm9uIGBkaXJzJ1xuIgoiXHRhbmdlemVpZ3Qgd2lyZC4gIERhYmVpIGJlZ2lubnQgZGllIFrkaGx1bmcgdm9uIE51bGwuICBTb1xuIgoiXHRlbnRmZXJudCB6LkIuIGBwb3BkIC0wJyBkZW4gbGV0enRlbiB1bmQgYHBvcGQgKzEnIGRlbiB2b3JsZXR6dGVuXG4iCiJcdEVpbnRyYWcuXG4iCiIgICAgXG4iCiIgICAgRGFzIGBkaXJzJyBLb21tYW5kbyB6ZWlndCBkZW4gVmVyemVpY2huaXNzdGFwZWwgYW4uIgoKIzogYnVpbHRpbnMvcmVhZC5kZWY6MjQ4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCB0aW1lb3V0IHNwZWNpZmljYXRpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvcmVhZC5kZWY6NTc0CiMsIGMtZm9ybWF0Cm1zZ2lkICJyZWFkIGVycm9yOiAlZDogJXMiCm1zZ3N0ciAiTGVzZWZlaGxlcjogJWQ6ICVzIgoKIzogYnVpbHRpbnMvcmV0dXJuLmRlZjo3Mwptc2dpZCAiY2FuIG9ubHkgYHJldHVybicgZnJvbSBhIGZ1bmN0aW9uIG9yIHNvdXJjZWQgc2NyaXB0Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3NldC5kZWY6NzY4Cm1zZ2lkICJjYW5ub3Qgc2ltdWx0YW5lb3VzbHkgdW5zZXQgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zZXQuZGVmOjgwNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCB1bnNldCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zZXQuZGVmOjgxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCB1bnNldDogcmVhZG9ubHkgJXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc2V0LmRlZjo4MjMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgYW4gYXJyYXkgdmFyaWFibGUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc2V0YXR0ci5kZWY6MTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IGEgZnVuY3Rpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc2hpZnQuZGVmOjcxIGJ1aWx0aW5zL3NoaWZ0LmRlZjo3Nwptc2dpZCAic2hpZnQgY291bnQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc2hvcHQuZGVmOjI1NAptc2dpZCAiY2Fubm90IHNldCBhbmQgdW5zZXQgc2hlbGwgb3B0aW9ucyBzaW11bHRhbmVvdXNseSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zaG9wdC5kZWY6MzE5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBzaGVsbCBvcHRpb24gbmFtZSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zb3VyY2UuZGVmOjEyOAptc2dpZCAiZmlsZW5hbWUgYXJndW1lbnQgcmVxdWlyZWQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc291cmNlLmRlZjoxNTMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIG5vdCBmb3VuZCIKbXNnc3RyICIlczogRGF0ZWkgbmljaHQgZ2VmdW5kZW4uIgoKIzogYnVpbHRpbnMvc3VzcGVuZC5kZWY6MTAxCm1zZ2lkICJjYW5ub3Qgc3VzcGVuZCIKbXNnc3RyICIiCgojIGxvZ291dAojOiBidWlsdGlucy9zdXNwZW5kLmRlZjoxMTEKbXNnaWQgImNhbm5vdCBzdXNwZW5kIGEgbG9naW4gc2hlbGwiCm1zZ3N0ciAiS2FubiBkaWUgTG9naW5zaGVsbCBuaWNodCB1bnRlcmJyZWNoZW4uIgoKIzogYnVpbHRpbnMvdHlwZS5kZWY6MjM0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBhbGlhc2VkIHRvIGAlcydcbiIKbXNnc3RyICIiCgojOiBidWlsdGlucy90eXBlLmRlZjoyNTUKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzIGEgc2hlbGwga2V5d29yZFxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3R5cGUuZGVmOjI3NAojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgYSBmdW5jdGlvblxuIgptc2dzdHIgIiVzIGlzdCBlaW5lIEZ1bmt0aW9uLlxuIgoKIzogYnVpbHRpbnMvdHlwZS5kZWY6Mjk2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBhIHNoZWxsIGJ1aWx0aW5cbiIKbXNnc3RyICIiCgojOiBidWlsdGlucy90eXBlLmRlZjozMTcgYnVpbHRpbnMvdHlwZS5kZWY6MzkxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyAlc1xuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3R5cGUuZGVmOjMzNwojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgaGFzaGVkICglcylcbiIKbXNnc3RyICIiCgojOiBidWlsdGlucy91bGltaXQuZGVmOjM3MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgbGltaXQgYXJndW1lbnQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvdWxpbWl0LmRlZjozOTgKIywgYy1mb3JtYXQKbXNnaWQgImAlYyc6IGJhZCBjb21tYW5kIgptc2dzdHIgImAlYyc6IEZhbHNjaGVzIEtvbW1hbmRvLiIKCiM6IGJ1aWx0aW5zL3VsaW1pdC5kZWY6NDI3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGdldCBsaW1pdDogJXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvdWxpbWl0LmRlZjo0NTMKbXNnaWQgImxpbWl0Igptc2dzdHIgIkdyZW56ZSIKCiM6IGJ1aWx0aW5zL3VsaW1pdC5kZWY6NDY1IGJ1aWx0aW5zL3VsaW1pdC5kZWY6NzY1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IG1vZGlmeSBsaW1pdDogJXMiCm1zZ3N0ciAiJXM6IEthbm4gZGllIEdyZW56ZSBuaWNodCDkbmRlcm46ICVzIgoKIzogYnVpbHRpbnMvdW1hc2suZGVmOjExOAptc2dpZCAib2N0YWwgbnVtYmVyIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3VtYXNrLmRlZjoyMzEKIywgYy1mb3JtYXQKbXNnaWQgImAlYyc6IGludmFsaWQgc3ltYm9saWMgbW9kZSBvcGVyYXRvciIKbXNnc3RyICIiCgojOiBidWlsdGlucy91bWFzay5kZWY6Mjg2CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJWMnOiBpbnZhbGlkIHN5bWJvbGljIG1vZGUgY2hhcmFjdGVyIgptc2dzdHIgIiIKCiM6IGVycm9yLmM6ODkgZXJyb3IuYzozMjAgZXJyb3IuYzozMjIgZXJyb3IuYzozMjQKbXNnaWQgIiBsaW5lICIKbXNnc3RyICIgWmVpbGUgIgoKIzogZXJyb3IuYzoxNjQKIywgYy1mb3JtYXQKbXNnaWQgImxhc3QgY29tbWFuZDogJXNcbiIKbXNnc3RyICJMZXR6dGVzIEtvbW1hbmRvOiAlc1xuIgoKIzogZXJyb3IuYzoxNzIKIywgYy1mb3JtYXQKbXNnaWQgIkFib3J0aW5nLi4uIgptc2dzdHIgIkFiYnJ1Y2guLi4iCgojOiBlcnJvci5jOjQwNQptc2dpZCAidW5rbm93biBjb21tYW5kIGVycm9yIgptc2dzdHIgIiIKCiM6IGVycm9yLmM6NDA2Cm1zZ2lkICJiYWQgY29tbWFuZCB0eXBlIgptc2dzdHIgIiIKCiMgUHJvZ3JhbW1pZXJmZWhsZXIKIzogZXJyb3IuYzo0MDcKbXNnaWQgImJhZCBjb25uZWN0b3IiCm1zZ3N0ciAiIgoKIzogZXJyb3IuYzo0MDgKIywgZnV6enkKbXNnaWQgImJhZCBqdW1wIgptc2dzdHIgIkZhbHNjaGVyIFNwcnVuZyAlZC4iCgojOiBlcnJvci5jOjQ0NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVuYm91bmQgdmFyaWFibGUiCm1zZ3N0ciAiJXMgaXN0IG5pY2h0IGdlc2V0enQuIgoKIzogZXZhbC5jOjE4MQojLCBjLWZvcm1hdAptc2dpZCAiXGF0aW1lZCBvdXQgd2FpdGluZyBmb3IgaW5wdXQ6IGF1dG8tbG9nb3V0XG4iCm1zZ3N0ciAiXGFadSBsYW5nZSBrZWluZSBFaW5nYWJlOiBBdXRvbWF0aXNjaCBhdXNnZWxvZ2d0LlxuIgoKIzogZXhlY3V0ZV9jbWQuYzo0OTEKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZWRpcmVjdCBzdGFuZGFyZCBpbnB1dCBmcm9tIC9kZXYvbnVsbDogJXMiCm1zZ3N0ciAiS2FubiBuaWNodCBkaWUgU3RhbmRhcmRlaW5nYWJlIHZvbiAvZGV2L251bGwgdW1sZWl0ZW46ICVzIgoKIzogZXhlY3V0ZV9jbWQuYzoxMTEyCiMsIGMtZm9ybWF0Cm1zZ2lkICJUSU1FRk9STUFUOiBgJWMnOiBpbnZhbGlkIGZvcm1hdCBjaGFyYWN0ZXIiCm1zZ3N0ciAiVElNRUZPUk1BVDogYCVjJzogVW5n/Gx0aWdlcyBGb3JtYXR6ZWljaGVuLiIKCiM6IGV4ZWN1dGVfY21kLmM6MjAxMQptc2dpZCAicGlwZSBlcnJvciIKbXNnc3RyICJQaXBlLUZlaGxlciIKCiM6IGV4ZWN1dGVfY21kLmM6NDM2MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJlc3RyaWN0ZWQ6IGNhbm5vdCBzcGVjaWZ5IGAvJyBpbiBjb21tYW5kIG5hbWVzIgptc2dzdHIgIiVzOiBWZXJib3RlbjogIGAvJyBpc3QgaW4gS29tbWFuZG9uYW1lbiB1bnp1bORzc2lnLiIKCiM6IGV4ZWN1dGVfY21kLmM6NDQ1NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvbW1hbmQgbm90IGZvdW5kIgptc2dzdHIgIiVzOiBLb21tYW5kbyBuaWNodCBnZWZ1bmRlbi4iCgojOiBleGVjdXRlX2NtZC5jOjQ3MDgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IGJhZCBpbnRlcnByZXRlciIKbXNnc3RyICIlczogaXN0IGVpbiBWZXJ6ZWljaG5pcy4iCgojOiBleGVjdXRlX2NtZC5jOjQ4NTcKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgZHVwbGljYXRlIGZkICVkIHRvIGZkICVkIgptc2dzdHIgIkthbm4gZmQgJWQgbmljaHQgYXVmIGZkIDAgdmVyZG9wcGVsbjogJXMiCgojOiBleHByLmM6MjQxCm1zZ2lkICJleHByZXNzaW9uIHJlY3Vyc2lvbiBsZXZlbCBleGNlZWRlZCIKbXNnc3RyICJadSB2aWVsZSBSZWt1cnNpb25lbiBpbiBBdXNkcnVjay4iCgojOiBleHByLmM6MjY1CiMsIGZ1enp5Cm1zZ2lkICJyZWN1cnNpb24gc3RhY2sgdW5kZXJmbG93Igptc2dzdHIgIlJla3Vyc2lvbnNzdGFwZWwgbGVlci4iCgojOiBleHByLmM6Mzc5Cm1zZ2lkICJzeW50YXggZXJyb3IgaW4gZXhwcmVzc2lvbiIKbXNnc3RyICJTeW50YXhmZWhsZXIgaW0gQXVzZHJ1Y2suIgoKIzogZXhwci5jOjQxOQptc2dpZCAiYXR0ZW1wdGVkIGFzc2lnbm1lbnQgdG8gbm9uLXZhcmlhYmxlIgptc2dzdHIgIlp1d2Vpc3VuZyB6dSBlaW5lciBOaWNodC1WYXJpYWJsZW4gdmVyc3VjaHQuIgoKIzogZXhwci5jOjQ0MCBleHByLmM6NDQ1IGV4cHIuYzo3NTYKbXNnaWQgImRpdmlzaW9uIGJ5IDAiCm1zZ3N0ciAiRGl2aXNpb24gZHVyY2ggMC4iCgojOiBleHByLmM6NDcxCiMsIGZ1enp5Cm1zZ2lkICJidWc6IGJhZCBleHBhc3NpZ24gdG9rZW4iCm1zZ3N0ciAiRmVobGVyOiBGYWxzY2hlcyBadXdlaXN1bmdzemVpY2hlbiAlZC4iCgojOiBleHByLmM6NTEzCm1zZ2lkICJgOicgZXhwZWN0ZWQgZm9yIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCm1zZ3N0ciAiYDonIGVyd2FydGV0IGb8ciBlaW4gYmVkaW5ndGVuIEF1c2RydWNrLiIKCiM6IGV4cHIuYzo3ODEKbXNnaWQgImV4cG9uZW50IGxlc3MgdGhhbiAwIgptc2dzdHIgIkRlciBFeHBvbmVudCBpc3Qga2xlaW5lciBhbHMgMC4iCgojOiBleHByLmM6ODI2Cm1zZ2lkICJpZGVudGlmaWVyIGV4cGVjdGVkIGFmdGVyIHByZS1pbmNyZW1lbnQgb3IgcHJlLWRlY3JlbWVudCIKbXNnc3RyICIiCiJOYWNoIGVpbmVtIFBy5Glua3JlbWVudCBvZGVyIFBy5GRla3JlbWVudCB3aXJkIGVpbiBCZXplaWNobmVyIGVyd2FydGV0LiIKCiM6IGV4cHIuYzo4NTQKbXNnaWQgIm1pc3NpbmcgYCknIgptc2dzdHIgIkZlaGxlbmRlIGApJyIKCiM6IGV4cHIuYzo4OTcgZXhwci5jOjExNzUKIywgZnV6enkKbXNnaWQgInN5bnRheCBlcnJvcjogb3BlcmFuZCBleHBlY3RlZCIKbXNnc3RyICJTeW50YXggRmVobGVyOiBVbmVyd2FydGV0ZXMgRGF0ZWllbmRlLiIKCiM6IGV4cHIuYzoxMTc3Cm1zZ2lkICJzeW50YXggZXJyb3I6IGludmFsaWQgYXJpdGhtZXRpYyBvcGVyYXRvciIKbXNnc3RyICJTeW50YXhmZWhsZXI6IFVuZ/xsdGlnZXIgYXJpdGhtZXRpc2NoZXIgT3BlcmF0b3IuIgoKIzogZXhwci5jOjEyMDEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlcyVzJXM6ICVzIChlcnJvciB0b2tlbiBpcyBcIiVzXCIpIgptc2dzdHIgIiVzOiAlczogJXMgKEZlaGxlcnZlcnVyc2FjaGVuZGVzIFdvcnQgaXN0IFxcXCIlc1xcXCIpLlxuIgoKIzogZXhwci5jOjEyNTkKbXNnaWQgImludmFsaWQgYXJpdGhtZXRpYyBiYXNlIgptc2dzdHIgIlVuZ/xsdGlnZSBCYXNpcy4iCgojOiBleHByLmM6MTI3OQptc2dpZCAidmFsdWUgdG9vIGdyZWF0IGZvciBiYXNlIgptc2dzdHIgIkRlciBXZXJ0IGlzdCB6dSBncm/fIGb8ciBkaWUgYWt0dWVsbGUgQmFzaXMuIgoKIzogZXhwci5jOjEzMjgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogZXhwcmVzc2lvbiBlcnJvclxuIgptc2dzdHIgIlVtbGVua2ZlaGxlciIKCiM6IGdlbmVyYWwuYzo2MQptc2dpZCAiZ2V0Y3dkOiBjYW5ub3QgYWNjZXNzIHBhcmVudCBkaXJlY3RvcmllcyIKbXNnc3RyICJnZXR3ZDogS2FubiBuaWNodCBhdWYgZGFzIPxiZXJnZW9yZG5ldGUgVmVyemVpY2huaXMgenVncmVpZmVuLiIKCiM6IGlucHV0LmM6OTQgc3Vic3QuYzo0NTU5CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgcmVzZXQgbm9kZWxheSBtb2RlIGZvciBmZCAlZCIKbXNnc3RyICJLb25udGUgZGVuIE5vLURlbGF5IE1vZHVzIGb8ciBmZCAlZCBuaWNodCB3aWVkZXIgaGVyc3RlbGxlbi4iCgojOiBpbnB1dC5jOjI1OAojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGFsbG9jYXRlIG5ldyBmaWxlIGRlc2NyaXB0b3IgZm9yIGJhc2ggaW5wdXQgZnJvbSBmZCAlZCIKbXNnc3RyICJLYW5uIGtlaW5lbiBuZXVlbiBGaWxlZGVza3JpcHRvciBm/HIgZGllIEVpbmdhYmUgdm9uIGZkICVkIHp1d2Vpc2VuLiIKCiMgRGVidWcgQXVzZ2FiZQojOiBpbnB1dC5jOjI2NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInNhdmVfYmFzaF9pbnB1dDogYnVmZmVyIGFscmVhZHkgZXhpc3RzIGZvciBuZXcgZmQgJWQiCm1zZ3N0ciAiY2hlY2tfYmFzaF9pbnB1dDogYnVmZmVyIGFscmVhZHkgZXhpc3RzIGZvciBuZXcgZmQgJWQiCgojOiBqb2JzLmM6NDY2Cm1zZ2lkICJzdGFydF9waXBlbGluZTogcGdycCBwaXBlIgptc2dzdHIgInN0YXJ0X3BpcGVsaW5lOiBwZ3JwIHBpcGUiCgojOiBqb2JzLmM6ODg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJmb3JrZWQgcGlkICVkIGFwcGVhcnMgaW4gcnVubmluZyBqb2IgJWQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjEwMDUKIywgYy1mb3JtYXQKbXNnaWQgImRlbGV0aW5nIHN0b3BwZWQgam9iICVkIHdpdGggcHJvY2VzcyBncm91cCAlbGQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjExMTAKIywgYy1mb3JtYXQKbXNnaWQgImFkZF9wcm9jZXNzOiBwcm9jZXNzICU1bGQgKCVzKSBpbiB0aGVfcGlwZWxpbmUiCm1zZ3N0ciAiIgoKIzogam9icy5jOjExMTMKIywgYy1mb3JtYXQKbXNnaWQgImFkZF9wcm9jZXNzOiBwaWQgJTVsZCAoJXMpIG1hcmtlZCBhcyBzdGlsbCBhbGl2ZSIKbXNnc3RyICIiCgojIFByb2dyYW1taWVyZmVobGVyCiM6IGpvYnMuYzoxNDAxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiZGVzY3JpYmVfcGlkOiAlbGQ6IG5vIHN1Y2ggcGlkIgptc2dzdHIgImRlc2NyaWJlX3BpZDogUHJvemXfLU51bW1lciBleGlzdGllcnQgbmljaHQgKCVkKSFcbiIKCiM6IGpvYnMuYzoxNDE2CiMsIGMtZm9ybWF0Cm1zZ2lkICJTaWduYWwgJWQiCm1zZ3N0ciAiU2lnbmFsICVkIgoKIzogam9icy5jOjE0MzAgam9icy5jOjE0NTUKbXNnaWQgIkRvbmUiCm1zZ3N0ciAiRmVydGlnIgoKIzogam9icy5jOjE0MzUgc2lnbGlzdC5jOjEyMgptc2dpZCAiU3RvcHBlZCIKbXNnc3RyICJBbmdlaGFsdGVuIgoKIzogam9icy5jOjE0MzkKIywgYy1mb3JtYXQKbXNnaWQgIlN0b3BwZWQoJXMpIgptc2dzdHIgIkFuZ2VoYWx0ZW4oJXMpIgoKIzogam9icy5jOjE0NDMKbXNnaWQgIlJ1bm5pbmciCm1zZ3N0ciAiTOR1ZnQiCgojOiBqb2JzLmM6MTQ1NwojLCBjLWZvcm1hdAptc2dpZCAiRG9uZSglZCkiCm1zZ3N0ciAiRmVydGlnKCVkKSIKCiM6IGpvYnMuYzoxNDU5CiMsIGMtZm9ybWF0Cm1zZ2lkICJFeGl0ICVkIgptc2dzdHIgIkV4aXQgJWQiCgojOiBqb2JzLmM6MTQ2Mgptc2dpZCAiVW5rbm93biBzdGF0dXMiCm1zZ3N0ciAiVW5iZWthbm50ZXIgU3RhdHVzIgoKIzogam9icy5jOjE1NDkKIywgYy1mb3JtYXQKbXNnaWQgIihjb3JlIGR1bXBlZCkgIgptc2dzdHIgIihTcGVpY2hlcmFienVnIGdlc2NocmllYmVuKSAiCgojOiBqb2JzLmM6MTU2OAojLCBjLWZvcm1hdAptc2dpZCAiICAod2Q6ICVzKSIKbXNnc3RyICIgICh3ZDogJXMpIgoKIyBpbnRlcm5lciBGZWhsZXIKIzogam9icy5jOjE3NzEKIywgYy1mb3JtYXQKbXNnaWQgImNoaWxkIHNldHBnaWQgKCVsZCB0byAlbGQpIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyMDk5IG5vam9icy5jOjU4NQojLCBjLWZvcm1hdAptc2dpZCAid2FpdDogcGlkICVsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIHNoZWxsIgptc2dzdHIgIndhaXQ6IFByb3pl3yAlbGQgd3VyZGUgbmljaHQgdm9uIGRpZXNlciBTaGVsbCBnZXN0YXJ0ZXQuIgoKIzogam9icy5jOjIzMjYKIywgYy1mb3JtYXQKbXNnaWQgIndhaXRfZm9yOiBObyByZWNvcmQgb2YgcHJvY2VzcyAlbGQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjI1OTgKIywgYy1mb3JtYXQKbXNnaWQgIndhaXRfZm9yX2pvYjogam9iICVkIGlzIHN0b3BwZWQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjI4MjAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBqb2IgaGFzIHRlcm1pbmF0ZWQiCm1zZ3N0ciAiJXM6IFByb2dyYW1tIGlzdCBiZWVuZGV0LiIKCiM6IGpvYnMuYzoyODI5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogam9iICVkIGFscmVhZHkgaW4gYmFja2dyb3VuZCIKbXNnc3RyICIiCgojIERlYnVnIEF1c2dhYmUKIzogam9icy5jOjM0OTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBsaW5lICVkOiAiCm1zZ3N0ciAiJXM6IFplaWxlICVkOiAiCgojOiBqb2JzLmM6MzUwNiBub2pvYnMuYzo4MTQKIywgYy1mb3JtYXQKbXNnaWQgIiAoY29yZSBkdW1wZWQpIgptc2dzdHIgIiAoU3BlaWNoZXJhYnp1ZyBnZXNjaHJpZWJlbikiCgojOiBqb2JzLmM6MzUxOCBqb2JzLmM6MzUzMQojLCBjLWZvcm1hdAptc2dpZCAiKHdkIG5vdzogJXMpXG4iCm1zZ3N0ciAiKGdlZ2Vud+RydGlnZXMgQXJiZWl0c3ZlcnplaWNobmlzIGlzdDogJXMpXG4iCgojIGludGVybmVyIEZlaGxlcgojOiBqb2JzLmM6MzU2Mwptc2dpZCAiaW5pdGlhbGl6ZV9qb2JfY29udHJvbDogZ2V0cGdycCBmYWlsZWQiCm1zZ3N0ciAiaW5pdGlhbGl6ZV9qb2JzOiBnZXRwZ3JwIHdhciBuaWNodCBlcmZvbGdyZWljaC4iCgojIGludGVybmVyIEZlaGxlcgojOiBqb2JzLmM6MzYyMwptc2dpZCAiaW5pdGlhbGl6ZV9qb2JfY29udHJvbDogbGluZSBkaXNjaXBsaW5lIgptc2dzdHIgImluaXRpYWxpemVfam9iX2NvbnRyb2w6IGxpbmUgZGlzY2lwbGluZSIKCiMgaW50ZXJuZXIgRmVobGVyCiM6IGpvYnMuYzozNjMzCm1zZ2lkICJpbml0aWFsaXplX2pvYl9jb250cm9sOiBzZXRwZ2lkIgptc2dzdHIgImluaXRpYWxpemVfam9iX2NvbnRyb2w6IHNldHBnaWQiCgojOiBqb2JzLmM6MzY2MQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBwcm9jZXNzIGdyb3VwICglZCkiCm1zZ3N0ciAiIgoKIzogam9icy5jOjM2NjYKbXNnaWQgIm5vIGpvYiBjb250cm9sIGluIHRoaXMgc2hlbGwiCm1zZ3N0ciAiS2VpbmUgSm9iIFN0ZXVlcnVuZyBpbiBkaWVzZXIgU2hlbGwuIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzoyOTYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJtYWxsb2M6IGZhaWxlZCBhc3NlcnRpb246ICVzXG4iCm1zZ3N0ciAibWFsbG9jOiAgRmVobGVyIGJlaSBTcGVpY2hlcnp1d2Vpc3VuZzogJXNcbiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MzEyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcclxuIgoibWFsbG9jOiAlczolZDogYXNzZXJ0aW9uIGJvdGNoZWRcclxuIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MzEzCm1zZ2lkICJ1bmtub3duIgptc2dzdHIgIlVuYmVrYW5udCIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6Nzk3Cm1zZ2lkICJtYWxsb2M6IGJsb2NrIG9uIGZyZWUgbGlzdCBjbG9iYmVyZWQiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzo4NzQKbXNnaWQgImZyZWU6IGNhbGxlZCB3aXRoIGFscmVhZHkgZnJlZWQgYmxvY2sgYXJndW1lbnQiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzo4NzcKbXNnaWQgImZyZWU6IGNhbGxlZCB3aXRoIHVuYWxsb2NhdGVkIGJsb2NrIGFyZ3VtZW50Igptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6ODk2Cm1zZ2lkICJmcmVlOiB1bmRlcmZsb3cgZGV0ZWN0ZWQ7IG1oX25ieXRlcyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzo5MDIKbXNnaWQgImZyZWU6IHN0YXJ0IGFuZCBlbmQgY2h1bmsgc2l6ZXMgZGlmZmVyIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MTAwMQptc2dpZCAicmVhbGxvYzogY2FsbGVkIHdpdGggdW5hbGxvY2F0ZWQgYmxvY2sgYXJndW1lbnQiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzoxMDE2Cm1zZ2lkICJyZWFsbG9jOiB1bmRlcmZsb3cgZGV0ZWN0ZWQ7IG1oX25ieXRlcyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy9tYWxsb2MuYzoxMDIyCm1zZ2lkICJyZWFsbG9jOiBzdGFydCBhbmQgZW5kIGNodW5rIHNpemVzIGRpZmZlciIKbXNnc3RyICIiCgojOiBsaWIvbWFsbG9jL3RhYmxlLmM6MTc3CiMsIGMtZm9ybWF0Cm1zZ2lkICJyZWdpc3Rlcl9hbGxvYzogYWxsb2MgdGFibGUgaXMgZnVsbCB3aXRoIEZJTkRfQUxMT0M/XG4iCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy90YWJsZS5jOjE4NAojLCBjLWZvcm1hdAptc2dpZCAicmVnaXN0ZXJfYWxsb2M6ICVwIGFscmVhZHkgaW4gdGFibGUgYXMgYWxsb2NhdGVkP1xuIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvdGFibGUuYzoyMjAKIywgYy1mb3JtYXQKbXNnaWQgInJlZ2lzdGVyX2ZyZWU6ICVwIGFscmVhZHkgaW4gdGFibGUgYXMgZnJlZT9cbiIKbXNnc3RyICIiCgojOiBsaWIvc2gvZm10dWxvbmcuYzoxMDEKbXNnaWQgImludmFsaWQgYmFzZSIKbXNnc3RyICIiCgojOiBsaWIvc2gvbmV0b3Blbi5jOjE2OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGhvc3QgdW5rbm93biIKbXNnc3RyICIiCgojOiBsaWIvc2gvbmV0b3Blbi5jOjE3NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgc2VydmljZSIKbXNnc3RyICIiCgojOiBsaWIvc2gvbmV0b3Blbi5jOjMwNgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGJhZCBuZXR3b3JrIHBhdGggc3BlY2lmaWNhdGlvbiIKbXNnc3RyICIiCgojOiBsaWIvc2gvbmV0b3Blbi5jOjM0Ngptc2dpZCAibmV0d29yayBvcGVyYXRpb25zIG5vdCBzdXBwb3J0ZWQiCm1zZ3N0ciAiIgoKIyBEdSBvZGVyIFNpZT8KIzogbWFpbGNoZWNrLmM6NDMzCm1zZ2lkICJZb3UgaGF2ZSBtYWlsIGluICRfIgptc2dzdHIgIlNpZSBoYWJlbiBQb3N0IGluICRfLiIKCiM6IG1haWxjaGVjay5jOjQ1OAptc2dpZCAiWW91IGhhdmUgbmV3IG1haWwgaW4gJF8iCm1zZ3N0ciAiU2llIGhhYmVuIG5ldWUgUG9zdCBpbiAkXy4iCgojOiBtYWlsY2hlY2suYzo0NzQKIywgYy1mb3JtYXQKbXNnaWQgIlRoZSBtYWlsIGluICVzIGhhcyBiZWVuIHJlYWRcbiIKbXNnc3RyICJEaWUgUG9zdCBpbiAlcyB3dXJkZSBiZXJlaXRzIGdlbGVzZW4uXG4iCgojOiBtYWtlX2NtZC5jOjMyMgojLCBmdXp6eQptc2dpZCAic3ludGF4IGVycm9yOiBhcml0aG1ldGljIGV4cHJlc3Npb24gcmVxdWlyZWQiCm1zZ3N0ciAiU3ludGF4ZmVobGVyIGltIEF1c2RydWNrLiIKCiM6IG1ha2VfY21kLmM6MzI0CiMsIGZ1enp5Cm1zZ2lkICJzeW50YXggZXJyb3I6IGA7JyB1bmV4cGVjdGVkIgptc2dzdHIgIlN5bnRheCBGZWhsZXI6IFVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUuIgoKIzogbWFrZV9jbWQuYzozMjUKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3I6IGAoKCVzKSknIgptc2dzdHIgIlN5bnRheCBGZWhsZXIiCgojIGludGVybmVyIEZlaGxlcgojOiBtYWtlX2NtZC5jOjU2NwojLCBjLWZvcm1hdAptc2dpZCAibWFrZV9oZXJlX2RvY3VtZW50OiBiYWQgaW5zdHJ1Y3Rpb24gdHlwZSAlZCIKbXNnc3RyICJtYWtlX2hlcmVfZG9jdW1lbnQ6IEZhbHNjaGVyIEJlZmVobHN0eXAgJWQuIgoKIzogbWFrZV9jbWQuYzo2NTEKIywgYy1mb3JtYXQKbXNnaWQgImhlcmUtZG9jdW1lbnQgYXQgbGluZSAlZCBkZWxpbWl0ZWQgYnkgZW5kLW9mLWZpbGUgKHdhbnRlZCBgJXMnKSIKbXNnc3RyICIiCgojOiBtYWtlX2NtZC5jOjc0NgojLCBjLWZvcm1hdAptc2dpZCAibWFrZV9yZWRpcmVjdGlvbjogcmVkaXJlY3Rpb24gaW5zdHJ1Y3Rpb24gYCVkJyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiIgoKIzogcGFyc2UueToyOTg2IHBhcnNlLnk6MzIxOAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIG1hdGNoaW5nIGAlYyciCm1zZ3N0ciAiRGF0ZWllbmRlIGJlaW0gU3VjaGVuIG5hY2ggYCVjJyBlcnJlaWNodC4iCgojOiBwYXJzZS55OjM3MjIKIywgZnV6enkKbXNnaWQgInVuZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIGBdXSciCm1zZ3N0ciAiRGF0ZWllbmRlIGJlaW0gU3VjaGVuIG5hY2ggYCVjJyBlcnJlaWNodC4iCgojOiBwYXJzZS55OjM3MjcKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbjogdW5leHBlY3RlZCB0b2tlbiBgJXMnIgptc2dzdHIgIlN5bnRheGZlaGxlciBiZWltIHVuZXJ3YXJ0ZXRlbiBXb3J0IGAlcyciCgojOiBwYXJzZS55OjM3MzEKIywgZnV6enkKbXNnaWQgInN5bnRheCBlcnJvciBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgptc2dzdHIgIlN5bnRheGZlaGxlciBpbSBBdXNkcnVjay4iCgojOiBwYXJzZS55OjM4MDkKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgdG9rZW4gYCVzJywgZXhwZWN0ZWQgYCknIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzgxMwojLCBmdXp6eQptc2dpZCAiZXhwZWN0ZWQgYCknIgptc2dzdHIgImApJyBlcndhcnRldC4iCgojOiBwYXJzZS55OjM4NDEKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgYXJndW1lbnQgYCVzJyB0byBjb25kaXRpb25hbCB1bmFyeSBvcGVyYXRvciIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM4NDUKbXNnaWQgInVuZXhwZWN0ZWQgYXJndW1lbnQgdG8gY29uZGl0aW9uYWwgdW5hcnkgb3BlcmF0b3IiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozODg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmV4cGVjdGVkIHRva2VuIGAlcycsIGNvbmRpdGlvbmFsIGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZCIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM4ODkKbXNnaWQgImNvbmRpdGlvbmFsIGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZCIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM5MDYKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgYXJndW1lbnQgYCVzJyB0byBjb25kaXRpb25hbCBiaW5hcnkgb3BlcmF0b3IiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozOTEwCm1zZ2lkICJ1bmV4cGVjdGVkIGFyZ3VtZW50IHRvIGNvbmRpdGlvbmFsIGJpbmFyeSBvcGVyYXRvciIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM5MjEKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgdG9rZW4gYCVjJyBpbiBjb25kaXRpb25hbCBjb21tYW5kIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzkyNAojLCBjLWZvcm1hdAptc2dpZCAidW5leHBlY3RlZCB0b2tlbiBgJXMnIGluIGNvbmRpdGlvbmFsIGNvbW1hbmQiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozOTI4CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmV4cGVjdGVkIHRva2VuICVkIGluIGNvbmRpdGlvbmFsIGNvbW1hbmQiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTo1MTk1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IgbmVhciB1bmV4cGVjdGVkIHRva2VuIGAlcyciCm1zZ3N0ciAiU3ludGF4ZmVobGVyIGJlaW0gdW5lcndhcnRldGVuIFdvcnQgYCVzJyIKCiM6IHBhcnNlLnk6NTIxMwojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yIG5lYXIgYCVzJyIKbXNnc3RyICJTeW50YXhmZWhsZXIgYmVpbSB1bmVyd2FydGV0ZW4gV29ydCBgJXMnIgoKIzogcGFyc2UueTo1MjIzCm1zZ2lkICJzeW50YXggZXJyb3I6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCm1zZ3N0ciAiU3ludGF4IEZlaGxlcjogVW5lcndhcnRldGVzIERhdGVpZW5kZS4iCgojOiBwYXJzZS55OjUyMjMKbXNnaWQgInN5bnRheCBlcnJvciIKbXNnc3RyICJTeW50YXggRmVobGVyIgoKIyBEdSBvZGVyIFNpZT8KIzogcGFyc2UueTo1Mjg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJVc2UgXCIlc1wiIHRvIGxlYXZlIHRoZSBzaGVsbC5cbiIKbXNnc3RyICJCZW51dHplIFwiJXNcIiB1bSBkaWUgU2hlbGwgenUgdmVybGFzc2VuLlxuIgoKIzogcGFyc2UueTo1NDQ3Cm1zZ2lkICJ1bmV4cGVjdGVkIEVPRiB3aGlsZSBsb29raW5nIGZvciBtYXRjaGluZyBgKSciCm1zZ3N0ciAiRGF0ZWllbmRlIGJlaW0gU3VjaGVuIG5hY2ggcGFzc2VuZGVyIGApJyBlcnJlaWNodC4iCgojOiBwY29tcGxldGUuYzoxMDE4CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb21wbGV0aW9uOiBmdW5jdGlvbiBgJXMnIG5vdCBmb3VuZCIKbXNnc3RyICIiCgojOiBwY29tcGxpYi5jOjE3OQojLCBjLWZvcm1hdAptc2dpZCAicHJvZ2NvbXBfaW5zZXJ0OiAlczogTlVMTCBDT01QU1BFQyIKbXNnc3RyICIiCgojOiBwcmludF9jbWQuYzoyODUKIywgYy1mb3JtYXQKbXNnaWQgInByaW50X2NvbW1hbmQ6IGJhZCBjb25uZWN0b3IgYCVkJyIKbXNnc3RyICJwcmludF9jb21tYW5kOiBGYWxzY2hlcyBWZXJiaW5kdW5nc3plaWNoZW4gYCVkJy4iCgojOiBwcmludF9jbWQuYzoxMzQ4CiMsIGMtZm9ybWF0Cm1zZ2lkICJjcHJpbnRmOiBgJWMnOiBpbnZhbGlkIGZvcm1hdCBjaGFyYWN0ZXIiCm1zZ3N0ciAiIgoKIzogcmVkaXIuYzoxMDUKbXNnaWQgImZpbGUgZGVzY3JpcHRvciBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiIgoKIzogcmVkaXIuYzoxNDgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBhbWJpZ3VvdXMgcmVkaXJlY3QiCm1zZ3N0ciAiJXM6IE1laHJkZXV0aWdlIFVtbGVua3VuZy4iCgojOiByZWRpci5jOjE1MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZSIKbXNnc3RyICIlczogS2FubiBleGlzdGllcmVuZGUgRGF0ZWkgbmljaHQg/GJlcnNjaHJlaWJlbi4iCgojOiByZWRpci5jOjE1NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJlc3RyaWN0ZWQ6IGNhbm5vdCByZWRpcmVjdCBvdXRwdXQiCm1zZ3N0ciAiJXM6IEdlc3BlcnJ0OiBEaWUgQXVzZ2FiZSBkYXJmIG5pY2h0IHVtZ2VsZWl0ZXQgd2VyZGVuLiIKCiM6IHJlZGlyLmM6MTYyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY3JlYXRlIHRlbXAgZmlsZSBmb3IgaGVyZS1kb2N1bWVudDogJXMiCm1zZ3N0ciAiIgoKIzogcmVkaXIuYzo1MTcKbXNnaWQgIi9kZXYvKHRjcHx1ZHApL2hvc3QvcG9ydCBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgbmV0d29ya2luZyIKbXNnc3RyICIiCgojOiByZWRpci5jOjEwMjMKbXNnaWQgInJlZGlyZWN0aW9uIGVycm9yOiBjYW5ub3QgZHVwbGljYXRlIGZkIgptc2dzdHIgIiIKCiM6IHNoZWxsLmM6MzI4Cm1zZ2lkICJjb3VsZCBub3QgZmluZCAvdG1wLCBwbGVhc2UgY3JlYXRlISIKbXNnc3RyICJLb25udGUgZGFzIC90bXAgVmVyemVpY2huaXMgbmljaHQgZmluZGVuLCBiaXR0ZSBhbmxlZ2VuLiIKCiM6IHNoZWxsLmM6MzMyCm1zZ2lkICIvdG1wIG11c3QgYmUgYSB2YWxpZCBkaXJlY3RvcnkgbmFtZSIKbXNnc3RyICIvdG1wIG113yBlaW4gZ/xsdGlnZXIgVmVyemVpY2huaXNuYW1lIHNlaW4uIgoKIzogc2hlbGwuYzo4NzYKIywgYy1mb3JtYXQKbXNnaWQgIiVjJWM6IGludmFsaWQgb3B0aW9uIgptc2dzdHIgIiVjJWM6IFVuZ/xsdGlnZSBPcHRpb24iCgojOiBzaGVsbC5jOjE2MzgKbXNnaWQgIkkgaGF2ZSBubyBuYW1lISIKbXNnc3RyICJJY2ggaGFiZSBrZWluZW4gQmVudXR6ZXJuYW1lbiEiCgojOiBzaGVsbC5jOjE3NzgKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBiYXNoLCB2ZXJzaW9uICVzLSglcylcbiIKbXNnc3RyICJHTlUgYmFzaCwgVmVyc2lvbiAlcy0oJXMpXG4iCgojOiBzaGVsbC5jOjE3NzkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlVzYWdlOlx0JXMgW0dOVSBsb25nIG9wdGlvbl0gW29wdGlvbl0gLi4uXG4iCiJcdCVzIFtHTlUgbG9uZyBvcHRpb25dIFtvcHRpb25dIHNjcmlwdC1maWxlIC4uLlxuIgptc2dzdHIgIiIKIkJlbnV0enVuZzpcdCVzIFtMYW5nZSBHTlUgT3B0aW9uXSBbT3B0aW9uXSAuLi5cbiIKIlx0XHQlcyBbTGFuZ2UgR05VIE9wdGlvbl0gW09wdGlvbl0gU2NyaXB0LURhdGVpIC4uLlxuIgoKIzogc2hlbGwuYzoxNzgxCm1zZ2lkICJHTlUgbG9uZyBvcHRpb25zOlxuIgptc2dzdHIgIkxhbmdlIEdOVSBPcHRpb25lbjpcbiIKCiM6IHNoZWxsLmM6MTc4NQptc2dpZCAiU2hlbGwgb3B0aW9uczpcbiIKbXNnc3RyICJTaGVsbC1PcHRpb25lbjpcbiIKCiM6IHNoZWxsLmM6MTc4Ngptc2dpZCAiXHQtaXJzRCBvciAtYyBjb21tYW5kIG9yIC1PIHNob3B0X29wdGlvblx0XHQoaW52b2NhdGlvbiBvbmx5KVxuIgptc2dzdHIgIlx0LWlyc0Qgb2RlciAtYyBLb21tYW5kb1x0XHQoTnVyIEF1ZnJ1ZilcbiIKCiM6IHNoZWxsLmM6MTgwMQojLCBjLWZvcm1hdAptc2dpZCAiXHQtJXMgb3IgLW8gb3B0aW9uXG4iCm1zZ3N0ciAiXHQtJXMgb2RlciBPcHRpb24gLW9cbiIKCiM6IHNoZWxsLmM6MTgwNwojLCBjLWZvcm1hdAptc2dpZCAiVHlwZSBgJXMgLWMgXCJoZWxwIHNldFwiJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzaGVsbCBvcHRpb25zLlxuIgptc2dzdHIgImAlcyAtYyBcImhlbHAgc2V0XCInIGb8ciBtZWhyIEluZm9ybWF0aW9uZW4g/GJlciBTaGVsbC1PcHRpb25lbi5cbiIKCiM6IHNoZWxsLmM6MTgwOAojLCBjLWZvcm1hdAptc2dpZCAiVHlwZSBgJXMgLWMgaGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2hlbGwgYnVpbHRpbiBjb21tYW5kcy5cbiIKbXNnc3RyICJgJXMgLWMgaGVscCcgZvxyIG1laHIgSW5mb3JtYXRpb24g/GJlciBTaGVsbC1Lb21tYW5kb3MuXG4iCgojOiBzaGVsbC5jOjE4MDkKIywgYy1mb3JtYXQKbXNnaWQgIlVzZSB0aGUgYGJhc2hidWcnIGNvbW1hbmQgdG8gcmVwb3J0IGJ1Z3MuXG4iCm1zZ3N0ciAiTWl0IGRlbSBgYmFzaGJ1ZycgS29tbWFuZG8ga/ZubmVuIEZlaGxlciBnZW1lbGRldCB3ZXJkZW4uXG4iCgojOiBzaWcuYzo1ODMKIywgYy1mb3JtYXQKbXNnaWQgInNpZ3Byb2NtYXNrOiAlZDogaW52YWxpZCBvcGVyYXRpb24iCm1zZ3N0ciAic2lncHJvY21hc2s6ICVkOiBVbmf8bHRpZ2UgT3BlcmF0aW9uIgoKIzogc2lnbGlzdC5jOjQ3Cm1zZ2lkICJCb2d1cyBzaWduYWwiCm1zZ3N0ciAiRmFsc2NoZXMgU2lnbmFsLiIKCiM6IHNpZ2xpc3QuYzo1MAptc2dpZCAiSGFuZ3VwIgptc2dzdHIgIkF1ZmdlbGVndCIKCiM6IHNpZ2xpc3QuYzo1NAptc2dpZCAiSW50ZXJydXB0Igptc2dzdHIgIlVudGVyYnJvY2hlbiIKCiM6IHNpZ2xpc3QuYzo1OAptc2dpZCAiUXVpdCIKbXNnc3RyICJRdWl0IgoKIzogc2lnbGlzdC5jOjYyCm1zZ2lkICJJbGxlZ2FsIGluc3RydWN0aW9uIgptc2dzdHIgIlVuZ/xsdGlnZSBBbndlaXN1bmcuIgoKIyBXYXMgaGVpc3N0IGRhcz8KIzogc2lnbGlzdC5jOjY2CiMsIGZ1enp5Cm1zZ2lkICJCUFQgdHJhY2UvdHJhcCIKbXNnc3RyICJCUFQgdHJhY2UvdHJhcCIKCiM6IHNpZ2xpc3QuYzo3NAptc2dpZCAiQUJPUlQgaW5zdHJ1Y3Rpb24iCm1zZ3N0ciAiQWJicnVjaGtvbW1hbmRvIgoKIzogc2lnbGlzdC5jOjc4Cm1zZ2lkICJFTVQgaW5zdHJ1Y3Rpb24iCm1zZ3N0ciAiRU1ULUtvbW1hbmRvIgoKIzogc2lnbGlzdC5jOjgyCm1zZ2lkICJGbG9hdGluZyBwb2ludCBleGNlcHRpb24iCm1zZ3N0ciAiR2xlaXRrb21tYWZlaGxlciIKCiM6IHNpZ2xpc3QuYzo4Ngptc2dpZCAiS2lsbGVkIgptc2dzdHIgIkdla2lsbHQiCgojOiBzaWdsaXN0LmM6OTAKbXNnaWQgIkJ1cyBlcnJvciIKbXNnc3RyICJCdXMtRmVobGVyIgoKIzogc2lnbGlzdC5jOjk0Cm1zZ2lkICJTZWdtZW50YXRpb24gZmF1bHQiCm1zZ3N0ciAiU3BlaWNoZXJ6dWdyaWZmc2ZlaGxlciIKCiM6IHNpZ2xpc3QuYzo5OAptc2dpZCAiQmFkIHN5c3RlbSBjYWxsIgptc2dzdHIgIkZhbHNjaGVyIFN5c3RlbWF1ZnJ1ZiIKCiM6IHNpZ2xpc3QuYzoxMDIKbXNnaWQgIkJyb2tlbiBwaXBlIgptc2dzdHIgIlVudGVyYnJvY2hlbmUgUGlwZSIKCiM6IHNpZ2xpc3QuYzoxMDYKbXNnaWQgIkFsYXJtIGNsb2NrIgptc2dzdHIgIldlY2tlciIKCiM6IHNpZ2xpc3QuYzoxMTAKbXNnaWQgIlRlcm1pbmF0ZWQiCm1zZ3N0ciAiQmVlbmRldCIKCiM6IHNpZ2xpc3QuYzoxMTQKbXNnaWQgIlVyZ2VudCBJTyBjb25kaXRpb24iCm1zZ3N0ciAiRHJpbmdlbmRlIElPLUJlZGluZ3VuZyIKCiM6IHNpZ2xpc3QuYzoxMTgKbXNnaWQgIlN0b3BwZWQgKHNpZ25hbCkiCm1zZ3N0ciAiQW5nZWhhbHRlbiAoU2lnbmFsKSIKCiM6IHNpZ2xpc3QuYzoxMjYKbXNnaWQgIkNvbnRpbnVlIgptc2dzdHIgIlByb3pl32JlYXJiZWl0dW5nIHdpZWRlciBhdWZnZW5vbW1lbi4iCgojOiBzaWdsaXN0LmM6MTM0Cm1zZ2lkICJDaGlsZCBkZWF0aCBvciBzdG9wIgptc2dzdHIgIktpbmRwcm96Zd8gYWJnZWJyb2NoZW4gb2RlciBnZXN0b3BwdC4iCgojOiBzaWdsaXN0LmM6MTM4Cm1zZ2lkICJTdG9wcGVkICh0dHkgaW5wdXQpIgptc2dzdHIgIkFuZ2VoYWx0ZW4gKFRlcm1pbmFsZWluZ2FiZSkiCgojOiBzaWdsaXN0LmM6MTQyCm1zZ2lkICJTdG9wcGVkICh0dHkgb3V0cHV0KSIKbXNnc3RyICJBbmdlaGFsdGVuIChUZXJtaW5hbGF1c2dhYmUpIgoKIzogc2lnbGlzdC5jOjE0Ngptc2dpZCAiSS9PIHJlYWR5Igptc2dzdHIgIkUvQSBmZXJ0aWciCgojOiBzaWdsaXN0LmM6MTUwCm1zZ2lkICJDUFUgbGltaXQiCm1zZ3N0ciAiUmVjaGVuemVpdGdyZW56ZSIKCiM6IHNpZ2xpc3QuYzoxNTQKbXNnaWQgIkZpbGUgbGltaXQiCm1zZ3N0ciAiR3JlbnplIGb8ciBEYXRlaWdy9t9lIgoKIzogc2lnbGlzdC5jOjE1OAptc2dpZCAiQWxhcm0gKHZpcnR1YWwpIgptc2dzdHIgIkFsYXJtIChWaXJ0dWVsbCkiCgojOiBzaWdsaXN0LmM6MTYyCm1zZ2lkICJBbGFybSAocHJvZmlsZSkiCm1zZ3N0ciAiQWxhcm0gKFByb2ZpbCkiCgojOiBzaWdsaXN0LmM6MTY2Cm1zZ2lkICJXaW5kb3cgY2hhbmdlZCIKbXNnc3RyICJGZW5zdGVyIGdl5G5kZXJ0LiIKCiM6IHNpZ2xpc3QuYzoxNzAKbXNnaWQgIlJlY29yZCBsb2NrIgptc2dzdHIgIkRhdGVpIGJsb2NraWVydC4iCgojOiBzaWdsaXN0LmM6MTc0Cm1zZ2lkICJVc2VyIHNpZ25hbCAxIgptc2dzdHIgIk51dHplci1TaWduYWwgMSIKCiM6IHNpZ2xpc3QuYzoxNzgKbXNnaWQgIlVzZXIgc2lnbmFsIDIiCm1zZ3N0ciAiTnV0emVyLVNpZ25hbCAyIgoKIzogc2lnbGlzdC5jOjE4Mgptc2dpZCAiSEZUIGlucHV0IGRhdGEgcGVuZGluZyIKbXNnc3RyICJIRlQgRWluZ2FiZWRhdGVuIGF1c3N0ZWhlbmQuIgoKIzogc2lnbGlzdC5jOjE4Ngptc2dpZCAicG93ZXIgZmFpbHVyZSBpbW1pbmVudCIKbXNnc3RyICJTcGFubnVuZ3NhdXNmYWxsIHN0ZWh0IGJldm9yLiIKCiM6IHNpZ2xpc3QuYzoxOTAKbXNnaWQgInN5c3RlbSBjcmFzaCBpbW1pbmVudCIKbXNnc3RyICJTeXN0ZW1hdXNmYWxsIHN0ZWh0IGJldm9yLiIKCiM6IHNpZ2xpc3QuYzoxOTQKbXNnaWQgIm1pZ3JhdGUgcHJvY2VzcyB0byBhbm90aGVyIENQVSIKbXNnc3RyICJWZXJsZWdlIGRlbiBQcm96Zd8gYXVmIGVpbmVuIGFuZGVyZW4gUHJvemVzc29yLiIKCiM6IHNpZ2xpc3QuYzoxOTgKbXNnaWQgInByb2dyYW1taW5nIGVycm9yIgptc2dzdHIgIlByb2dyYW1taWVyZmVobGVyIgoKIzogc2lnbGlzdC5jOjIwMgptc2dpZCAiSEZUIG1vbml0b3IgbW9kZSBncmFudGVkIgptc2dzdHIgIkhGVC1Nb25pdG9ybW9kdXMgZXJsYXVidC4iCgojOiBzaWdsaXN0LmM6MjA2Cm1zZ2lkICJIRlQgbW9uaXRvciBtb2RlIHJldHJhY3RlZCIKbXNnc3RyICJIRlQtTW9uaXRvcm1vZHVzIGFiZ2VzY2hhbHRldC4iCgojOiBzaWdsaXN0LmM6MjEwCm1zZ2lkICJIRlQgc291bmQgc2VxdWVuY2UgaGFzIGNvbXBsZXRlZCIKbXNnc3RyICJIRlQtVG9uZm9sZ2UgYmVlbmRldC4iCgojOiBzaWdsaXN0LmM6MjE0Cm1zZ2lkICJJbmZvcm1hdGlvbiByZXF1ZXN0Igptc2dzdHIgIkluZm9ybWF0aW9uc2FuZm9yZGVydW5nIgoKIzogc2lnbGlzdC5jOjIyMgptc2dpZCAiVW5rbm93biBTaWduYWwgIyIKbXNnc3RyICJVbmJla2FubnRlIFNpZ25hbG51bW1lci4iCgojOiBzaWdsaXN0LmM6MjI0CiMsIGMtZm9ybWF0Cm1zZ2lkICJVbmtub3duIFNpZ25hbCAjJWQiCm1zZ3N0ciAiVW5iZWthbm50ZXMgU2lnbmFsIE5yLjogJWQuIgoKIzogc3Vic3QuYzoxMTgxIHN1YnN0LmM6MTMwMgojLCBjLWZvcm1hdAptc2dpZCAiYmFkIHN1YnN0aXR1dGlvbjogbm8gY2xvc2luZyBgJXMnIGluICVzIgptc2dzdHIgIkZhbHNjaGUgRXJzZXR6dW5nOiBLZWluZSBzY2hsaWXfZW5kZSBgJXMnIGluIGAlcycgZW50aGFsdGVuLiIKCiM6IHN1YnN0LmM6MjQ1OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBhc3NpZ24gbGlzdCB0byBhcnJheSBtZW1iZXIiCm1zZ3N0ciAiJXM6IEthbm4gZWluZW0gRmVsZGVsZW1lbnQga2VpbmUgTGlzdGUgenV3ZWlzZW4uIgoKIzogc3Vic3QuYzo0NDU2IHN1YnN0LmM6NDQ3Mgptc2dpZCAiY2Fubm90IG1ha2UgcGlwZSBmb3IgcHJvY2VzcyBzdWJzdGl0dXRpb24iCm1zZ3N0ciAiS2FubiBrZWluZSBQaXBlIGb8ciBkaWUgUHJvemXfZXJzZXR6dW5nIGVyemV1Z2VuLiIKCiM6IHN1YnN0LmM6NDUwNAptc2dpZCAiY2Fubm90IG1ha2UgY2hpbGQgZm9yIHByb2Nlc3Mgc3Vic3RpdHV0aW9uIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDU0OQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IG9wZW4gbmFtZWQgcGlwZSAlcyBmb3IgcmVhZGluZyIKbXNnc3RyICJLYW5uIG5pY2h0IGRpZSBiZW5hbm50ZSBQaXBlICVzIHp1bSBsZXNlbiD2ZmZuZW4uIgoKIzogc3Vic3QuYzo0NTUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgb3BlbiBuYW1lZCBwaXBlICVzIGZvciB3cml0aW5nIgptc2dzdHIgIkthbm4gbmljaHQgZGllIGJlbmFubnRlIFBpcGUgJXMgenVtIHNjaHJlaWJlbiD2ZmZuZW4uIgoKIzogc3Vic3QuYzo0NTY5CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgZHVwbGljYXRlIG5hbWVkIHBpcGUgJXMgYXMgZmQgJWQiCm1zZ3N0ciAiS2FubiBkaWUgYmVuYW5udGUgUGlwZSAlcyBuaWNodCBhdWYgZmQgJWQuIgoKIzogc3Vic3QuYzo0NzY1Cm1zZ2lkICJjYW5ub3QgbWFrZSBwaXBlIGZvciBjb21tYW5kIHN1YnN0aXR1dGlvbiIKbXNnc3RyICJLYW5uIGtlaW5lIFBpcGVzIGb8ciBLb21tYW5kb2Vyc2V0enVuZyBlcnpldWdlbi4iCgojOiBzdWJzdC5jOjQ3OTkKbXNnaWQgImNhbm5vdCBtYWtlIGNoaWxkIGZvciBjb21tYW5kIHN1YnN0aXR1dGlvbiIKbXNnc3RyICJLYW5uIGtlaW5lbiBVbnRlcnByb3plc3MgZvxyIGRpZSBLb21tYW5kb2Vyc2V0enVuZyBlcnpldWdlbi4iCgojIGludGVybmVyIEZlaGxlcgojOiBzdWJzdC5jOjQ4MTYKbXNnaWQgImNvbW1hbmRfc3Vic3RpdHV0ZTogY2Fubm90IGR1cGxpY2F0ZSBwaXBlIGFzIGZkIDEiCm1zZ3N0ciAiS29tbWFuZG9lcnNldHp1bmc6IEthbm4gUGlwZSBuaWNodCBhbHMgZmQgMSBkdXBsaXppZXJlbi4iCgojOiBzdWJzdC5jOjUzMTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBwYXJhbWV0ZXIgbnVsbCBvciBub3Qgc2V0Igptc2dzdHIgIiVzOiBQYXJhbWV0ZXIgaXN0IE51bGwgb2RlciBuaWNodCBnZXNldHp0LiIKCiMgaW50ZXJuZXIgRmVobGVyCiM6IHN1YnN0LmM6NTYwOAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHN1YnN0cmluZyBleHByZXNzaW9uIDwgMCIKbXNnc3RyICIlczogVGVpbHN0cmluZy1BdXNkcnVjayA8IDAuIgoKIzogc3Vic3QuYzo2NjYwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYmFkIHN1YnN0aXR1dGlvbiIKbXNnc3RyICIlczogRmFsc2NoZSBWYXJpYWJsZW5lcnNldHp1bmcuIgoKIzogc3Vic3QuYzo2NzQwCiMsIGMtZm9ybWF0Cm1zZ2lkICIkJXM6IGNhbm5vdCBhc3NpZ24gaW4gdGhpcyB3YXkiCm1zZ3N0ciAiJCVzOiBLYW5uIHNvIG5pY2h0IHp1d2Vpc2VuLiIKCiM6IHN1YnN0LmM6NzQ5OQojLCBjLWZvcm1hdAptc2dpZCAiYmFkIHN1YnN0aXR1dGlvbjogbm8gY2xvc2luZyBcImBcIiBpbiAlcyIKbXNnc3RyICJGYWxzY2hlIEVyc2V0enVuZzogS2VpbmUgc2NobGll32VuZGUgXCJgXCIgaW4gJXMuIgoKIzogc3Vic3QuYzo4Mzc1CiMsIGMtZm9ybWF0Cm1zZ2lkICJubyBtYXRjaDogJXMiCm1zZ3N0ciAiS2VpbmUgRW50c3ByZWNodW5nOiAlcyIKCiM6IHRlc3QuYzoxNDUKbXNnaWQgImFyZ3VtZW50IGV4cGVjdGVkIgptc2dzdHIgIkFyZ3VtZW50IGVyd2FydGV0LiIKCiM6IHRlc3QuYzoxNTQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQiCm1zZ3N0ciAiJXM6IEdhbnp6YWhsaWdlciBBdXNkcnVjayBlcndhcnRldC4iCgojOiB0ZXN0LmM6MjYyCm1zZ2lkICJgKScgZXhwZWN0ZWQiCm1zZ3N0ciAiYCknIGVyd2FydGV0LiIKCiM6IHRlc3QuYzoyNjQKIywgYy1mb3JtYXQKbXNnaWQgImApJyBleHBlY3RlZCwgZm91bmQgJXMiCm1zZ3N0ciAiYCknIGVyd2FydGV0LCAlcyBnZWZ1bmRlbi4iCgojOiB0ZXN0LmM6Mjc5IHRlc3QuYzo2ODggdGVzdC5jOjY5MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVuYXJ5IG9wZXJhdG9yIGV4cGVjdGVkIgptc2dzdHIgIiVzOiBFaW5zdGVsbGlnZXIgKHVu5HJlcikgT3BlcmF0b3IgZXJ3YXJ0ZXQuIgoKIzogdGVzdC5jOjQ0NCB0ZXN0LmM6NzMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYmluYXJ5IG9wZXJhdG9yIGV4cGVjdGVkIgptc2dzdHIgIiVzOiBad2Vpc3RlbGxpZ2VyIChiaW7kcmVyKSBPcGVyYXRvciBlcndhcnRldC4iCgojOiB0ZXN0LmM6ODA2Cm1zZ2lkICJtaXNzaW5nIGBdJyIKbXNnc3RyICJGZWhsZW5kZSBgXSciCgojOiB0cmFwLmM6MjAxCm1zZ2lkICJpbnZhbGlkIHNpZ25hbCBudW1iZXIiCm1zZ3N0ciAiVW5n/Gx0aWdlIFNpZ25hbG51bW1lci4iCgojOiB0cmFwLmM6MzI0CiMsIGMtZm9ybWF0Cm1zZ2lkICJydW5fcGVuZGluZ190cmFwczogYmFkIHZhbHVlIGluIHRyYXBfbGlzdFslZF06ICVwIgptc2dzdHIgIiIKCiM6IHRyYXAuYzozMjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKInJ1bl9wZW5kaW5nX3RyYXBzOiBzaWduYWwgaGFuZGxlciBpcyBTSUdfREZMLCByZXNlbmRpbmcgJWQgKCVzKSB0byBteXNlbGYiCm1zZ3N0ciAiIgoKIyBQcm9ncmFtbWllcmZlaGxlcgojOiB0cmFwLmM6MzcyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0cmFwX2hhbmRsZXI6IGJhZCBzaWduYWwgJWQiCm1zZ3N0ciAidHJhcF9oYW5kbGVyOiBGYWxzY2hlcyBTaWduYWwgJWQuIgoKIzogdmFyaWFibGVzLmM6MzU4CiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciBpbXBvcnRpbmcgZnVuY3Rpb24gZGVmaW5pdGlvbiBmb3IgYCVzJyIKbXNnc3RyICJGZWhsZXIgYmVpbSBJbXBvcnRpZXJlbiBkZXIgRnVua3Rpb25zZGVmaW5pdGlvbiBm/HIgYCVzJy4iCgojOiB2YXJpYWJsZXMuYzo3MzYKIywgYy1mb3JtYXQKbXNnaWQgInNoZWxsIGxldmVsICglZCkgdG9vIGhpZ2gsIHJlc2V0dGluZyB0byAxIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjE4OTgKbXNnaWQgIm1ha2VfbG9jYWxfdmFyaWFibGU6IG5vIGZ1bmN0aW9uIGNvbnRleHQgYXQgY3VycmVudCBzY29wZSIKbXNnc3RyICIiCgojOiB2YXJpYWJsZXMuYzozMTI3Cm1zZ2lkICJhbGxfbG9jYWxfdmFyaWFibGVzOiBubyBmdW5jdGlvbiBjb250ZXh0IGF0IGN1cnJlbnQgc2NvcGUiCm1zZ3N0ciAiIgoKIzogdmFyaWFibGVzLmM6MzM0NCB2YXJpYWJsZXMuYzozMzUzCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIGNoYXJhY3RlciAlZCBpbiBleHBvcnRzdHIgZm9yICVzIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjMzNTkKIywgYy1mb3JtYXQKbXNnaWQgIm5vIGA9JyBpbiBleHBvcnRzdHIgZm9yICVzIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjM3OTQKbXNnaWQgInBvcF92YXJfY29udGV4dDogaGVhZCBvZiBzaGVsbF92YXJpYWJsZXMgbm90IGEgZnVuY3Rpb24gY29udGV4dCIKbXNnc3RyICIiCgojOiB2YXJpYWJsZXMuYzozODA3Cm1zZ2lkICJwb3BfdmFyX2NvbnRleHQ6IG5vIGdsb2JhbF92YXJpYWJsZXMgY29udGV4dCIKbXNnc3RyICIiCgojOiB2YXJpYWJsZXMuYzozODgxCm1zZ2lkICJwb3Bfc2NvcGU6IGhlYWQgb2Ygc2hlbGxfdmFyaWFibGVzIG5vdCBhIHRlbXBvcmFyeSBlbnZpcm9ubWVudCBzY29wZSIKbXNnc3RyICIiCgojOiB2ZXJzaW9uLmM6NDYKIywgZnV6enkKbXNnaWQgIkNvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCm1zZ3N0ciAiQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKCiM6IHZlcnNpb24uYzo0Nwptc2dpZCAiIgoiTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRwOi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuIgoiaHRtbD5cbiIKbXNnc3RyICIiCiJMaXplbnogR1BMdjMrOiBHTlUgR1BMIFZlcnNpb24gMyBvZGVyIGr8bmdlciA8aHR0cDovL2dudS5vcmcvbGljZW5zZXMvZ3BsLiIKImh0bWw+XG4iCgojOiB2ZXJzaW9uLmM6ODYKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBiYXNoLCB2ZXJzaW9uICVzICglcylcbiIKbXNnc3RyICJHTlUgYmFzaCwgVmVyc2lvbiAlcyAoJXMpXG4iCgojOiB2ZXJzaW9uLmM6OTEKIywgYy1mb3JtYXQKbXNnaWQgIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LlxuIgptc2dzdHIgIkRpZXMgaXN0IGZyZWllIFNvZnR3YXJlLiAgU2llIGRhcmYgdmVy5G5kZXJ0IHVuZCB2ZXJ0ZWlsdCB3ZXJkZW4uXG4iCgojOiB2ZXJzaW9uLmM6OTIKIywgYy1mb3JtYXQKbXNnaWQgIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiRvxyIGRpZXNlcyBQcm9ncmFtbSBiZXN0ZWh0IGtlaW5lcmxlaSBHYXJhbnRpZS5cbiIKCiM6IHhtYWxsb2MuYzo5MgojLCBjLWZvcm1hdAptc2dpZCAieG1hbGxvYzogY2Fubm90IGFsbG9jYXRlICVsdSBieXRlcyAoJWx1IGJ5dGVzIGFsbG9jYXRlZCkiCm1zZ3N0ciAieG1hbGxvYzogS2FubiAlbHUgQnl0ZXMgbmljaHQgcmVzZXJ2aWVyZW4gKCVsdSBieXRlcyByZXNlcnZpZXJ0KS4iCgojOiB4bWFsbG9jLmM6OTQKIywgYy1mb3JtYXQKbXNnaWQgInhtYWxsb2M6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAieG1hbGxvYzogS2FubiBuaWNodCAlbHUgQnl0ZXMgcmVzZXJ2aWVyZW4uIgoKIzogeG1hbGxvYy5jOjExNAojLCBjLWZvcm1hdAptc2dpZCAieHJlYWxsb2M6IGNhbm5vdCByZWFsbG9jYXRlICVsdSBieXRlcyAoJWx1IGJ5dGVzIGFsbG9jYXRlZCkiCm1zZ3N0ciAieHJlYWxsb2M6IEthbm4gJWx1IEJ5dGVzIG5pY2h0IHJlc2VydmllcmVuICglbHUgYnl0ZXMgcmVzZXJ2aWVydCkuIgoKIzogeG1hbGxvYy5jOjExNgojLCBjLWZvcm1hdAptc2dpZCAieHJlYWxsb2M6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAieHJlYWxsb2M6IEthbm4gbmljaHQgJWx1IEJ5dGVzIHJlc2VydmllcmVuLiIKCiM6IHhtYWxsb2MuYzoxNTAKIywgYy1mb3JtYXQKbXNnaWQgInhtYWxsb2M6ICVzOiVkOiBjYW5ub3QgYWxsb2NhdGUgJWx1IGJ5dGVzICglbHUgYnl0ZXMgYWxsb2NhdGVkKSIKbXNnc3RyICIiCiJ4bWFsbG9jOiAlczolZDogS2FubiBuaWNodCAlbHUgQnl0ZXMgcmVzZXJ2aWVyZW4gKCVsdSBieXRlcyByZXNlcnZpZXJ0KS4iCgojOiB4bWFsbG9jLmM6MTUyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ4bWFsbG9jOiAlczolZDogY2Fubm90IGFsbG9jYXRlICVsdSBieXRlcyIKbXNnc3RyICJ4bWFsbG9jOiAlczolZDogS2FubiBuaWNodCAlbHUgQnl0ZXMgcmVzZXJ2aWVyZW4uIgoKIzogeG1hbGxvYy5jOjE3NAojLCBjLWZvcm1hdAptc2dpZCAieHJlYWxsb2M6ICVzOiVkOiBjYW5ub3QgcmVhbGxvY2F0ZSAlbHUgYnl0ZXMgKCVsdSBieXRlcyBhbGxvY2F0ZWQpIgptc2dzdHIgIiIKInhyZWFsbG9jOiAlczolZDogS2FubiBuaWNodCAlbHUgQnl0ZXMgcmVzZXJ2aWVyZW4gKCVsdSBieXRlcyByZXNlcnZpZXJ0KS4iCgojOiB4bWFsbG9jLmM6MTc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ4cmVhbGxvYzogJXM6JWQ6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAieHJlYWxsb2M6ICVzOiVkOiBLYW5uIG5pY2h0ICVsdSBCeXRlcyByZXNlcnZpZXJlbi4iCgojOiBidWlsdGlucy5jOjQzCm1zZ2lkICJhbGlhcyBbLXBdIFtuYW1lWz12YWx1ZV0gLi4uIF0iCm1zZ3N0ciAiYWxpYXMgWy1wXSBbTmFtZVs9V2VydF0gLi4uIF0iCgojOiBidWlsdGlucy5jOjQ3Cm1zZ2lkICJ1bmFsaWFzIFstYV0gbmFtZSBbbmFtZSAuLi5dIgptc2dzdHIgInVuYWxpYXMgWy1hXSBOYW1lIFtOYW1lIC4uLl0iCgojOiBidWlsdGlucy5jOjUxCm1zZ2lkICIiCiJiaW5kIFstbHB2c1BWU10gWy1tIGtleW1hcF0gWy1mIGZpbGVuYW1lXSBbLXEgbmFtZV0gWy11IG5hbWVdIFstciBrZXlzZXFdIFstIgoieCBrZXlzZXE6c2hlbGwtY29tbWFuZF0gW2tleXNlcTpyZWFkbGluZS1mdW5jdGlvbiBvciByZWFkbGluZS1jb21tYW5kXSIKbXNnc3RyICIiCiJiaW5kIFstbHB2c1BWU10gWy1tIFRhc3RhdHVydGFiZWxsZV0gWy1mIERhdGVpbmFtZV0gWy1xIE5hbWVdIFstdSBOYW1lXSBbLXIgIgoiVGFzdGVuZm9sZ2U6U2hlbGwgS29tbWFuZG9dIFtUYXN0ZW5mb2xnZTpyZWFkbGluZSBGdW5rdGlvbiBvZGVyIEtvbW1hbmRvXSIKCiM6IGJ1aWx0aW5zLmM6NTQKbXNnaWQgImJyZWFrIFtuXSIKbXNnc3RyICJicmVhayBbbl0iCgojOiBidWlsdGlucy5jOjU2Cm1zZ2lkICJjb250aW51ZSBbbl0iCm1zZ3N0ciAiY29udGludWUgW25dIgoKIzogYnVpbHRpbnMuYzo1OAptc2dpZCAiYnVpbHRpbiBbc2hlbGwtYnVpbHRpbiBbYXJnIC4uLl1dIgptc2dzdHIgImJ1aWx0aW4gW1NoZWxsa29tbWFuZG8gW0FyZ3VtZW50IC4uLl1dIgoKIzogYnVpbHRpbnMuYzo2MQptc2dpZCAiY2FsbGVyIFtleHByXSIKbXNnc3RyICJjYWxsZXIgW0F1c2RydWNrXSIKCiM6IGJ1aWx0aW5zLmM6NjQKbXNnaWQgImNkIFstTHwtUF0gW2Rpcl0iCm1zZ3N0ciAiY2QgWy1MfC1QXSBbVmVyemVpY2huaXNdIgoKIzogYnVpbHRpbnMuYzo2Ngptc2dpZCAicHdkIFstTFBdIgptc2dzdHIgInB3ZCBbLUxQXSIKCiM6IGJ1aWx0aW5zLmM6NjgKbXNnaWQgIjoiCm1zZ3N0ciAiOiIKCiM6IGJ1aWx0aW5zLmM6NzAKbXNnaWQgInRydWUiCm1zZ3N0ciAiV2FociIKCiM6IGJ1aWx0aW5zLmM6NzIKbXNnaWQgImZhbHNlIgptc2dzdHIgIkZhbHNjaCIKCiM6IGJ1aWx0aW5zLmM6NzQKbXNnaWQgImNvbW1hbmQgWy1wVnZdIGNvbW1hbmQgW2FyZyAuLi5dIgptc2dzdHIgImNvbW1hbmQgWy1wVnZdIEtvbW1hbmRvIFtBcmd1bWVudCAuLi5dIgoKIzogYnVpbHRpbnMuYzo3Ngptc2dpZCAiZGVjbGFyZSBbLWFBZkZpbHJ0dXhdIFstcF0gW25hbWVbPXZhbHVlXSAuLi5dIgptc2dzdHIgImRlY2xhcmUgWy1hQWZGaWxydHV4XSBbLXBdIFtOYW1lWz1XZXJ0XSAuLi5dIgoKIwojOiBidWlsdGlucy5jOjc4Cm1zZ2lkICJ0eXBlc2V0IFstYUFmRmlscnR1eF0gWy1wXSBuYW1lWz12YWx1ZV0gLi4uIgptc2dzdHIgInR5cGVzZXQgWy1hQWZGaWxydHV4XSBbLXBdIE5hbWVbPVdlcnRdIC4uLiIKCiM6IGJ1aWx0aW5zLmM6ODAKbXNnaWQgImxvY2FsIFtvcHRpb25dIG5hbWVbPXZhbHVlXSAuLi4iCm1zZ3N0ciAibG9jYWwgW09wdGlvbl0gTmFtZVs9V2VydF0gLi4uIgoKIzogYnVpbHRpbnMuYzo4Mwptc2dpZCAiZWNobyBbLW5lRV0gW2FyZyAuLi5dIgptc2dzdHIgImVjaG8gWy1uZUVdIFtBcmd1bWVudCAuLi5dIgoKIzogYnVpbHRpbnMuYzo4Nwptc2dpZCAiZWNobyBbLW5dIFthcmcgLi4uXSIKbXNnc3RyICJlY2hvIFstbl0gW0FyZ3VtZW50IC4uLl0iCgojOiBidWlsdGlucy5jOjkwCm1zZ2lkICJlbmFibGUgWy1hXSBbLWRucHNdIFstZiBmaWxlbmFtZV0gW25hbWUgLi4uXSIKbXNnc3RyICJlbmFibGUgWy1hXSBbLWRucHNdIFstZiBEYXRlaW5hbWVdIFtOYW1lIC4uLl0iCgojOiBidWlsdGlucy5jOjkyCm1zZ2lkICJldmFsIFthcmcgLi4uXSIKbXNnc3RyICJldmFsIFtBcmd1bWVudCAuLi5dIgoKIzogYnVpbHRpbnMuYzo5NAptc2dpZCAiZ2V0b3B0cyBvcHRzdHJpbmcgbmFtZSBbYXJnXSIKbXNnc3RyICJnZXRvcHRzIE9wdGlvbmVuIFZhcmlhYmxlIFtBcmd1bWVudGVdIgoKIzogYnVpbHRpbnMuYzo5Ngptc2dpZCAiZXhlYyBbLWNsXSBbLWEgbmFtZV0gW2NvbW1hbmQgW2FyZ3VtZW50cyAuLi5dXSBbcmVkaXJlY3Rpb24gLi4uXSIKbXNnc3RyICJleGVjIFstY2xdIFstYSBOYW1lXSBbS29tbWFuZG8gW0FyZ3VtZW50ZSAuLi5dXSBbVW1sZWl0dW5nIC4uLl0iCgojOiBidWlsdGlucy5jOjk4Cm1zZ2lkICJleGl0IFtuXSIKbXNnc3RyICJleGl0IFtuXSIKCiM6IGJ1aWx0aW5zLmM6MTAwCm1zZ2lkICJsb2dvdXQgW25dIgptc2dzdHIgImxvZ291dCBbbl0iCgojOiBidWlsdGlucy5jOjEwMwptc2dpZCAiZmMgWy1lIGVuYW1lXSBbLWxucl0gW2ZpcnN0XSBbbGFzdF0gb3IgZmMgLXMgW3BhdD1yZXBdIFtjb21tYW5kXSIKbXNnc3RyICIiCiJmYyBbLWUgRWRpdG9yXSBbLWxucl0gW0FuZmFuZ10gW0VuZGVdIG9kZXIgZmMgLXMgW011c3Rlcj1FcnNldHp1bmddICIKIltLb21tYW5kb10iCgojOiBidWlsdGlucy5jOjEwNwptc2dpZCAiZmcgW2pvYl9zcGVjXSIKbXNnc3RyICJmZyBbSm9iYmV6ZWljaG51bmddIgoKIzogYnVpbHRpbnMuYzoxMTEKbXNnaWQgImJnIFtqb2Jfc3BlYyAuLi5dIgptc2dzdHIgImJnIFtKb2JiZXplaWNobnVuZyAuLi5dIgoKIzogYnVpbHRpbnMuYzoxMTQKbXNnaWQgImhhc2ggWy1scl0gWy1wIHBhdGhuYW1lXSBbLWR0XSBbbmFtZSAuLi5dIgptc2dzdHIgImhhc2ggWy1scl0gWy1wIFBmYWRuYW1lXSBbLWR0XSBbTmFtZSAuLi5dIgoKIzogYnVpbHRpbnMuYzoxMTcKbXNnaWQgImhlbHAgWy1kc10gW3BhdHRlcm4gLi4uXSIKbXNnc3RyICJoZWxwIFstZHNdIFtNdXN0ZXIgLi4uXSIKCiM6IGJ1aWx0aW5zLmM6MTIxCm1zZ2lkICIiCiJoaXN0b3J5IFstY10gWy1kIG9mZnNldF0gW25dIG9yIGhpc3RvcnkgLWFucncgW2ZpbGVuYW1lXSBvciBoaXN0b3J5IC1wcyBhcmcgIgoiW2FyZy4uLl0iCm1zZ3N0ciAiIgoiaGlzdG9yeSBbLWNdIFstZCBPZmZzZXRdIFtuXSBvZGVyIGhpc3RvcnkgLWFucncgW0RhdGVpbmFtZV0gb2RlciBoaXN0b3J5IC1wcyAiCiJBcmd1bWVudCBbQXJndW1lbnQuLi5dIgoKIzogYnVpbHRpbnMuYzoxMjUKbXNnaWQgImpvYnMgWy1sbnByc10gW2pvYnNwZWMgLi4uXSBvciBqb2JzIC14IGNvbW1hbmQgW2FyZ3NdIgptc2dzdHIgImpvYnMgWy1sbnByc10gW0pvYmJlei4gLi4uXSBvciBqb2JzIC14IEtvbW1hbmRvIFtBcmddIgoKIzogYnVpbHRpbnMuYzoxMjkKbXNnaWQgImRpc293biBbLWhdIFstYXJdIFtqb2JzcGVjIC4uLl0iCm1zZ3N0ciAiZGlzb3duIFstaF0gWy1hcl0gW0pvYmJlemVpY2hudW5nIC4uLl0iCgojOiBidWlsdGlucy5jOjEzMgptc2dpZCAiIgoia2lsbCBbLXMgc2lnc3BlYyB8IC1uIHNpZ251bSB8IC1zaWdzcGVjXSBwaWQgfCBqb2JzcGVjIC4uLiBvciBraWxsIC1sICIKIltzaWdzcGVjXSIKbXNnc3RyICIiCiJraWxsIFstcyBTaWduYWxuYW1lIHwgLW4gU2lnbmFsbnVtbWVyIHwgLVNpZ25hbG5hbWVdIFtwaWQgfCBqb2JdIC4uLiBvZGVyICIKImtpbGwgLWwgW1NpZ25hbG5hbWVdIgoKIzogYnVpbHRpbnMuYzoxMzQKbXNnaWQgImxldCBhcmcgW2FyZyAuLi5dIgptc2dzdHIgImxldCBBcmd1bWVudCBbQXJndW1lbnQgLi4uXSIKCiM6IGJ1aWx0aW5zLmM6MTM2Cm1zZ2lkICIiCiJyZWFkIFstZXJzXSBbLWEgYXJyYXldIFstZCBkZWxpbV0gWy1pIHRleHRdIFstbiBuY2hhcnNdIFstcCBwcm9tcHRdIFstdCAiCiJ0aW1lb3V0XSBbLXUgZmRdIFtuYW1lIC4uLl0iCm1zZ3N0ciAiIgoicmVhZCBbLWVyc10gWy1hIEZlbGRdIFstZCBCZWdyZW56ZXJdIFstaSBUZXh0XSBbLW4gWmVpY2hlbmFuemFobF0gWy1wICIKIlByb21wdF0gWy10IFplaXRsaW1pdF0gWy11IGZkXSBbTmFtZSAuLi5dIgoKIzogYnVpbHRpbnMuYzoxMzgKbXNnaWQgInJldHVybiBbbl0iCm1zZ3N0ciAicmV0dXJuIFtuXSIKCiM6IGJ1aWx0aW5zLmM6MTQwCm1zZ2lkICJzZXQgWy0tYWJlZmhrbW5wdHV2eEJDSFBdIFstbyBvcHRpb24tbmFtZV0gW2FyZyAuLi5dIgptc2dzdHIgInNldCBbLS1hYmVmaGttbnB0dXZ4QkNIUF0gWy1vIE9wdGlvbl0gW0FSRyAuLi5dIgoKIzogYnVpbHRpbnMuYzoxNDIKbXNnaWQgInVuc2V0IFstZl0gWy12XSBbbmFtZSAuLi5dIgptc2dzdHIgInVuc2V0IFstZl0gWy12XSBbTkFNRSAuLi5dIgoKIzogYnVpbHRpbnMuYzoxNDQKbXNnaWQgImV4cG9ydCBbLWZuXSBbbmFtZVs9dmFsdWVdIC4uLl0gb3IgZXhwb3J0IC1wIgptc2dzdHIgImV4cG9ydCBbLWZuXSBbTmFtZVs9V2VydF0gLi4uXSBvZGVyIGV4cG9ydCAtcCIKCiM6IGJ1aWx0aW5zLmM6MTQ2Cm1zZ2lkICJyZWFkb25seSBbLWFmXSBbbmFtZVs9dmFsdWVdIC4uLl0gb3IgcmVhZG9ubHkgLXAiCm1zZ3N0ciAicmVhZG9ubHkgWy1hZl0gW05hbWVbPVdlcnRdIC4uLl0gb2RlciByZWFkb25seSAtcCIKCiM6IGJ1aWx0aW5zLmM6MTQ4Cm1zZ2lkICJzaGlmdCBbbl0iCm1zZ3N0ciAic2hpZnQgW25dIgoKIzogYnVpbHRpbnMuYzoxNTAKbXNnaWQgInNvdXJjZSBmaWxlbmFtZSBbYXJndW1lbnRzXSIKbXNnc3RyICJzb3VyY2UgRGF0ZWluYW1lIFtBcmd1bWVudGVdIgoKIzogYnVpbHRpbnMuYzoxNTIKbXNnaWQgIi4gZmlsZW5hbWUgW2FyZ3VtZW50c10iCm1zZ3N0ciAiLiBEYXRlaW5hbWUgW0FyZ3VtZW50ZV0iCgojOiBidWlsdGlucy5jOjE1NQptc2dpZCAic3VzcGVuZCBbLWZdIgptc2dzdHIgInN1c3BlbmQgWy1mXSIKCiM6IGJ1aWx0aW5zLmM6MTU4Cm1zZ2lkICJ0ZXN0IFtleHByXSIKbXNnc3RyICJ0ZXN0IFtBdXNkcnVja10iCgojOiBidWlsdGlucy5jOjE2MAptc2dpZCAiWyBhcmcuLi4gXSIKbXNnc3RyICJbIEFyZ3VtZW50Li4uIF0iCgojOiBidWlsdGlucy5jOjE2Mgptc2dpZCAidGltZXMiCm1zZ3N0ciAidGltZXMiCgojOiBidWlsdGlucy5jOjE2NAptc2dpZCAidHJhcCBbLWxwXSBbW2FyZ10gc2lnbmFsX3NwZWMgLi4uXSIKbXNnc3RyICJ0cmFwIFstbHBdIFtbQXJndW1lbnRdIFNpZ25hbGJlemVpY2hudW5nIC4uLl0iCgojOiBidWlsdGlucy5jOjE2Ngptc2dpZCAidHlwZSBbLWFmcHRQXSBuYW1lIFtuYW1lIC4uLl0iCm1zZ3N0ciAidHlwZSBbLWFmcHRQXSBOYW1lIFtOYW1lIC4uLl0iCgojOiBidWlsdGlucy5jOjE2OQptc2dpZCAidWxpbWl0IFstU0hhY2RlZmlsbW5wcXJzdHV2eF0gW2xpbWl0XSIKbXNnc3RyICJ1bGltaXQgWy1TSGFjZGVmaWxtbnBxcnN0dXZ4XSBbR3Jlbnp3ZXJ0XSIKCiM6IGJ1aWx0aW5zLmM6MTcyCm1zZ2lkICJ1bWFzayBbLXBdIFstU10gW21vZGVdIgptc2dzdHIgInVtYXNrIFstcF0gWy1TXSBbTW9kdXNdIgoKIzogYnVpbHRpbnMuYzoxNzUKbXNnaWQgIndhaXQgW2lkXSIKbXNnc3RyICJ3YWl0IFtpZF0iCgojOiBidWlsdGlucy5jOjE3OQptc2dpZCAid2FpdCBbcGlkXSIKbXNnc3RyICJ3YWl0IFtwaWRdIgoKIzogYnVpbHRpbnMuYzoxODIKbXNnaWQgImZvciBOQU1FIFtpbiBXT1JEUyAuLi4gXSA7IGRvIENPTU1BTkRTOyBkb25lIgptc2dzdHIgImZvciBOYW1lIFtpbiBXb3J0bGlzdGUgLi4uIF0gOyBkbyBLb21tYW5kb3M7IGRvbmUiCgojOiBidWlsdGlucy5jOjE4NAptc2dpZCAiZm9yICgoIGV4cDE7IGV4cDI7IGV4cDMgKSk7IGRvIENPTU1BTkRTOyBkb25lIgptc2dzdHIgImZvciAoKCBBdXNkcjE7IEF1c2RyMjsgQXVzZHIzICkpOyBkbyBLb21tYW5kb3M7IGRvbmUiCgojOiBidWlsdGlucy5jOjE4Ngptc2dpZCAic2VsZWN0IE5BTUUgW2luIFdPUkRTIC4uLiA7XSBkbyBDT01NQU5EUzsgZG9uZSIKbXNnc3RyICJzZWxlY3QgTmFtZSBbaW4gV29ydGxpc3RlIC4uLiA7XSBkbyBLb21tYW5kb3M7IGRvbmUiCgojOiBidWlsdGlucy5jOjE4OAptc2dpZCAidGltZSBbLXBdIHBpcGVsaW5lIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTkwCm1zZ2lkICJjYXNlIFdPUkQgaW4gW1BBVFRFUk4gW3wgUEFUVEVSTl0uLi4pIENPTU1BTkRTIDs7XS4uLiBlc2FjIgptc2dzdHIgImNhc2UgV29ydCBpbiBbTXVzdGVyIFt8IE11c3Rlcl0uLi4pIEtvbW1hbmRvcyA7O10uLi4gZXNhYyIKCiM6IGJ1aWx0aW5zLmM6MTkyCm1zZ2lkICIiCiJpZiBDT01NQU5EUzsgdGhlbiBDT01NQU5EUzsgWyBlbGlmIENPTU1BTkRTOyB0aGVuIENPTU1BTkRTOyBdLi4uIFsgZWxzZSAiCiJDT01NQU5EUzsgXSBmaSIKbXNnc3RyICIiCiJpZiBLb21tYW5kb3M7IHRoZW4gS29tbWFuZG9zOyBbIGVsaWYgS29tbWFuZG9zOyB0aGVuIEtvbW1hbmRvczsgXS4uLiBcbiIKIlx0WyBlbHNlIEtvbW1hbmRvczsgXSBmaSIKCiM6IGJ1aWx0aW5zLmM6MTk0Cm1zZ2lkICJ3aGlsZSBDT01NQU5EUzsgZG8gQ09NTUFORFM7IGRvbmUiCm1zZ3N0ciAid2hpbGUgS29tbWFuZG9zOyBkbyBLb21tYW5kb3M7IGRvbmUiCgojOiBidWlsdGlucy5jOjE5Ngptc2dpZCAidW50aWwgQ09NTUFORFM7IGRvIENPTU1BTkRTOyBkb25lIgptc2dzdHIgInVudGlsIEtvbW1hbmRvczsgZG8gS29tbWFuZG9zOyBkb25lIgoKIzogYnVpbHRpbnMuYzoxOTgKbXNnaWQgImNvcHJvYyBbTkFNRV0gY29tbWFuZCBbcmVkaXJlY3Rpb25zXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIwMAptc2dpZCAiZnVuY3Rpb24gbmFtZSB7IENPTU1BTkRTIDsgfSBvciBuYW1lICgpIHsgQ09NTUFORFMgOyB9Igptc2dzdHIgImZ1bmN0aW9uIE5hbWUgeyBLb21tYW5kb3MgOyB9IG9kZXIgTmFtZSAoKSB7IEtvbW1hbmRvcyA7IH0iCgojOiBidWlsdGlucy5jOjIwMgptc2dpZCAieyBDT01NQU5EUyA7IH0iCm1zZ3N0ciAieyBLb21tYW5kb3MgOyB9IgoKIzogYnVpbHRpbnMuYzoyMDQKbXNnaWQgImpvYl9zcGVjIFsmXSIKbXNnc3RyICJKb2JiZXplaWNobnVuZyBbJl0iCgojOiBidWlsdGlucy5jOjIwNgptc2dpZCAiKCggZXhwcmVzc2lvbiApKSIKbXNnc3RyICIoKCBBdXNkcnVjayApKSIKCiM6IGJ1aWx0aW5zLmM6MjA4Cm1zZ2lkICJbWyBleHByZXNzaW9uIF1dIgptc2dzdHIgIltbIEF1c2RydWNrIF1dIgoKIzogYnVpbHRpbnMuYzoyMTAKbXNnaWQgInZhcmlhYmxlcyAtIE5hbWVzIGFuZCBtZWFuaW5ncyBvZiBzb21lIHNoZWxsIHZhcmlhYmxlcyIKbXNnc3RyICJ2YXJpYWJsZXMgLSBOYW1lbiB1bmQgQmVkZXV0dW5nIGVpbmlnZXIgU2hlbGwgVmFyaWFibGVuIgoKIzogYnVpbHRpbnMuYzoyMTMKbXNnaWQgInB1c2hkIFstbl0gWytOIHwgLU4gfCBkaXJdIgptc2dzdHIgInB1c2hkIFstbl0gWytOIHwgLU4gfCBWZXJ6ZWljaG5pc10iCgojOiBidWlsdGlucy5jOjIxNwptc2dpZCAicG9wZCBbLW5dIFsrTiB8IC1OXSIKbXNnc3RyICJwb3BkIFstbl0gWytOIHwgLU5dIgoKIzogYnVpbHRpbnMuYzoyMjEKbXNnaWQgImRpcnMgWy1jbHB2XSBbK05dIFstTl0iCm1zZ3N0ciAiZGlycyBbLWNscHZdIFsrTl0gWy1OXSIKCiM6IGJ1aWx0aW5zLmM6MjI0Cm1zZ2lkICJzaG9wdCBbLXBxc3VdIFstb10gW29wdG5hbWUgLi4uXSIKbXNnc3RyICJzaG9wdCBbLXBxc3VdIFstb10gW09wdGlvbnNuYW1lIC4uLl0iCgojOiBidWlsdGlucy5jOjIyNgptc2dpZCAicHJpbnRmIFstdiB2YXJdIGZvcm1hdCBbYXJndW1lbnRzXSIKbXNnc3RyICJwcmludGYgWy12IHZhcl0gRm9ybWF0IFtBcmd1bWVudGVdIgoKIzogYnVpbHRpbnMuYzoyMjkKbXNnaWQgIiIKImNvbXBsZXRlIFstYWJjZGVmZ2prc3V2XSBbLXByXSBbLW8gb3B0aW9uXSBbLUEgYWN0aW9uXSBbLUcgZ2xvYnBhdF0gWy1XICIKIndvcmRsaXN0XSAgWy1GIGZ1bmN0aW9uXSBbLUMgY29tbWFuZF0gWy1YIGZpbHRlcnBhdF0gWy1QIHByZWZpeF0gWy1TIHN1ZmZpeF0gIgoiW25hbWUgLi4uXSIKbXNnc3RyICIiCiJjb21wbGV0ZSBbLWFiY2RlZmdqa3N1dl0gWy1wcl0gWy1vIE9wdGlvbl0gWy1BIEFrdGlvbl0gWy1HIFN1Y2htdXN0ZXJdIFstVyAiCiJXb3J0bGlzdGVdICBbLUYgRnVua3Rpb25dIFstQyBLb21tYW5kb10gWy1YIEZpbHRlcm11c3Rlcl0gWy1QIFByZWZpeF0gWy1TICIKIlN1ZmZpeF0gW05hbWUgLi4uXSIKCiM6IGJ1aWx0aW5zLmM6MjMzCm1zZ2lkICIiCiJjb21wZ2VuIFstYWJjZGVmZ2prc3V2XSBbLW8gb3B0aW9uXSAgWy1BIGFjdGlvbl0gWy1HIGdsb2JwYXRdIFstVyB3b3JkbGlzdF0gICIKIlstRiBmdW5jdGlvbl0gWy1DIGNvbW1hbmRdIFstWCBmaWx0ZXJwYXRdIFstUCBwcmVmaXhdIFstUyBzdWZmaXhdIFt3b3JkXSIKbXNnc3RyICIiCiJjb21wZ2VuIFstYWJjZGVmZ2prc3V2XSBbLW8gT3B0aW9uXSAgWy1BIEFrdGlvbl0gWy1HIFN1Y2htdXN0ZXJdIFstVyAiCiJXb3J0bGlzdGVdICBbLUYgRnVua3Rpb25dIFstQyBLb21tYW5kb10gWy1YIEZpbHRlcm11c3Rlcl0gWy1QIFByZWZpeF0gWy1TICIKIlN1ZmZpeF0gW1dvcnRdIgoKIzogYnVpbHRpbnMuYzoyMzcKbXNnaWQgImNvbXBvcHQgWy1vfCtvIG9wdGlvbl0gW25hbWUgLi4uXSIKbXNnc3RyICJjb21wb3B0IFstb3wrbyBPcHRpb25dIFtOYW1lIC4uLl0iCgojOiBidWlsdGlucy5jOjI0MAptc2dpZCAiIgoibWFwZmlsZSBbLW4gY291bnRdIFstTyBvcmlnaW5dIFstcyBjb3VudF0gWy10XSBbLXUgZmRdIFstQyBjYWxsYmFja10gWy1jICIKInF1YW50dW1dIFthcnJheV0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoyNDIKbXNnaWQgIiIKInJlYWRhcnJheSBbLW4gY291bnRdIFstTyBvcmlnaW5dIFstcyBjb3VudF0gWy10XSBbLXUgZmRdIFstQyBjYWxsYmFja10gWy1jICIKInF1YW50dW1dIFthcnJheV0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoyNTQKbXNnaWQgIiIKIkRlZmluZSBvciBkaXNwbGF5IGFsaWFzZXMuXG4iCiIgICAgXG4iCiIgICAgV2l0aG91dCBhcmd1bWVudHMsIGBhbGlhcycgcHJpbnRzIHRoZSBsaXN0IG9mIGFsaWFzZXMgaW4gdGhlIHJldXNhYmxlXG4iCiIgICAgZm9ybSBgYWxpYXMgTkFNRT1WQUxVRScgb24gc3RhbmRhcmQgb3V0cHV0LlxuIgoiICAgIFxuIgoiICAgIE90aGVyd2lzZSwgYW4gYWxpYXMgaXMgZGVmaW5lZCBmb3IgZWFjaCBOQU1FIHdob3NlIFZBTFVFIGlzIGdpdmVuLlxuIgoiICAgIEEgdHJhaWxpbmcgc3BhY2UgaW4gVkFMVUUgY2F1c2VzIHRoZSBuZXh0IHdvcmQgdG8gYmUgY2hlY2tlZCBmb3JcbiIKIiAgICBhbGlhcyBzdWJzdGl0dXRpb24gd2hlbiB0aGUgYWxpYXMgaXMgZXhwYW5kZWQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1wXHRQcmludCBhbGwgZGVmaW5lZCBhbGlhc2VzIGluIGEgcmV1c2FibGUgZm9ybWF0XG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgYWxpYXMgcmV0dXJucyB0cnVlIHVubGVzcyBhIE5BTUUgaXMgc3VwcGxpZWQgZm9yIHdoaWNoIG5vIGFsaWFzIGhhcyAiCiJiZWVuXG4iCiIgICAgZGVmaW5lZC4iCm1zZ3N0ciAiIgoiRGVmaW5pZXJ0IEFsaWFzZSBvZGVyIHplaWd0IHNpZSBhbi5cbiIKIiAgICBcbiIKIiAgICBPaG5lIEFyZ3VtZW50ZSB3aXJkIGRpZSBMaXN0ZSBkZXIgQWxpYXNlIChTeW5vbnltZSkgaW4gZGVyIEZvcm0gXG4iCiIgICAgYGFsaWFzIE5hbWU9V2VydCcgYXVmIGRpZSBTdGFuZGFyZGF1c2dhYmUgZ2VkcnVja3QuXG4iCiJcbiIKIiAgICBTb25zdCB3aXJkIGVpbiBBbGlhcyBm/HIgamVkZW4gYW5nZWdlYmVuZW4gTmFtZW4gZGVmaW5pZXJ0LCBm/HIgZGVuIGVpblxuIgoiICAgIFdlcnQgYW5nZWdlYmVuIHd1cmRlLiAgXG4iCiIgICAgQSB0cmFpbGluZyBzcGFjZSBpbiBWQUxVRSBjYXVzZXMgdGhlIG5leHQgd29yZCB0byBiZSBjaGVja2VkIGZvclxuIgoiICAgIGFsaWFzIHN1YnN0aXR1dGlvbiB3aGVuIHRoZSBhbGlhcyBpcyBleHBhbmRlZC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLXBcdFByaW50IGFsbCBkZWZpbmVkIGFsaWFzZXMgaW4gYSByZXVzYWJsZSBmb3JtYXRcbiIKIiAgICBcbiIKIiAgICBS/GNrZ2FiZXdlcnQ6XG4iCiIgICAgTWVsZGV0IEVyZm9sZywgYXXfZXIgd2VubiBOQU1FIG5pY2h0IGV4aXN0aWVydC4iCgojOiBidWlsdGlucy5jOjI3Ngptc2dpZCAiIgoiUmVtb3ZlIGVhY2ggTkFNRSBmcm9tIHRoZSBsaXN0IG9mIGRlZmluZWQgYWxpYXNlcy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHJlbW92ZSBhbGwgYWxpYXMgZGVmaW5pdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgUmV0dXJuIHN1Y2Nlc3MgdW5sZXNzIGEgTkFNRSBpcyBub3QgYW4gZXhpc3RpbmcgYWxpYXMuIgptc2dzdHIgIiIKIkVudGZlcm5lIGplZGVuIE5hbWVuIHZvbiBkZXIgQWxpYXNsaXN0ZS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25lbjpcbiIKIiAgICAgIC1hXHRFbmZlcm5lIGFsbGUgQWxpYXMgRGVmaW5pdGlvbmVuLlxuIgoiICAgIFxuIgoiICAgIEdpYnQgaW1tZXIgRXJmb2xnIHp1cvxjaywgd2VubiBkZXIgTmFtZSBleGlzdGllcnQuIgoKIzogYnVpbHRpbnMuYzoyODkKbXNnaWQgIiIKIlNldCBSZWFkbGluZSBrZXkgYmluZGluZ3MgYW5kIHZhcmlhYmxlcy5cbiIKIiAgICBcbiIKIiAgICBCaW5kIGEga2V5IHNlcXVlbmNlIHRvIGEgUmVhZGxpbmUgZnVuY3Rpb24gb3IgYSBtYWNybywgb3Igc2V0IGFcbiIKIiAgICBSZWFkbGluZSB2YXJpYWJsZS4gIFRoZSBub24tb3B0aW9uIGFyZ3VtZW50IHN5bnRheCBpcyBlcXVpdmFsZW50IHRvXG4iCiIgICAgdGhhdCBmb3VuZCBpbiB+Ly5pbnB1dHJjLCBidXQgbXVzdCBiZSBwYXNzZWQgYXMgYSBzaW5nbGUgYXJndW1lbnQ6XG4iCiIgICAgZS5nLiwgYmluZCAnXCJcXEMteFxcQy1yXCI6IHJlLXJlYWQtaW5pdC1maWxlJy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLW0gIGtleW1hcCAgICAgICAgIFVzZSBLRVlNQVAgYXMgdGhlIGtleW1hcCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoaXNcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kLiAgQWNjZXB0YWJsZSBrZXltYXAgbmFtZXMgYXJlIGVtYWNzLFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWNzLXN0YW5kYXJkLCBlbWFjcy1tZXRhLCBlbWFjcy1jdGx4LCB2aSwgdmktIgoibW92ZSxcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICB2aS1jb21tYW5kLCBhbmQgdmktaW5zZXJ0LlxuIgoiICAgICAgLWwgICAgICAgICAgICAgICAgIExpc3QgbmFtZXMgb2YgZnVuY3Rpb25zLlxuIgoiICAgICAgLVAgICAgICAgICAgICAgICAgIExpc3QgZnVuY3Rpb24gbmFtZXMgYW5kIGJpbmRpbmdzLlxuIgoiICAgICAgLXAgICAgICAgICAgICAgICAgIExpc3QgZnVuY3Rpb25zIGFuZCBiaW5kaW5ncyBpbiBhIGZvcm0gdGhhdCBjYW4gYmVcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWQgYXMgaW5wdXQuXG4iCiIgICAgICAtUyAgICAgICAgICAgICAgICAgTGlzdCBrZXkgc2VxdWVuY2VzIHRoYXQgaW52b2tlIG1hY3JvcyBhbmQgdGhlaXIgIgoidmFsdWVzXG4iCiIgICAgICAtcyAgICAgICAgICAgICAgICAgTGlzdCBrZXkgc2VxdWVuY2VzIHRoYXQgaW52b2tlIG1hY3JvcyBhbmQgdGhlaXIgIgoidmFsdWVzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYSBmb3JtIHRoYXQgY2FuIGJlIHJldXNlZCBhcyBpbnB1dC5cbiIKIiAgICAgIC1WICAgICAgICAgICAgICAgICBMaXN0IHZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXNcbiIKIiAgICAgIC12ICAgICAgICAgICAgICAgICBMaXN0IHZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXMgaW4gYSBmb3JtIHRoYXQgY2FuXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgYmUgcmV1c2VkIGFzIGlucHV0LlxuIgoiICAgICAgLXEgIGZ1bmN0aW9uLW5hbWUgIFF1ZXJ5IGFib3V0IHdoaWNoIGtleXMgaW52b2tlIHRoZSBuYW1lZCBmdW5jdGlvbi5cbiIKIiAgICAgIC11ICBmdW5jdGlvbi1uYW1lICBVbmJpbmQgYWxsIGtleXMgd2hpY2ggYXJlIGJvdW5kIHRvIHRoZSBuYW1lZCAiCiJmdW5jdGlvbi5cbiIKIiAgICAgIC1yICBrZXlzZXEgICAgICAgICBSZW1vdmUgdGhlIGJpbmRpbmcgZm9yIEtFWVNFUS5cbiIKIiAgICAgIC1mICBmaWxlbmFtZSAgICAgICBSZWFkIGtleSBiaW5kaW5ncyBmcm9tIEZJTEVOQU1FLlxuIgoiICAgICAgLXggIGtleXNlcTpzaGVsbC1jb21tYW5kXHRDYXVzZSBTSEVMTC1DT01NQU5EIHRvIGJlIGV4ZWN1dGVkIHdoZW5cbiIKIiAgICBcdFx0XHRcdEtFWVNFUSBpcyBlbnRlcmVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIGJpbmQgcmV0dXJucyAwIHVubGVzcyBhbiB1bnJlY29nbml6ZWQgb3B0aW9uIGlzIGdpdmVuIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzozMjYKbXNnaWQgIiIKIkV4aXQgZm9yLCB3aGlsZSwgb3IgdW50aWwgbG9vcHMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBhIEZPUiwgV0hJTEUgb3IgVU5USUwgbG9vcC4gIElmIE4gaXMgc3BlY2lmaWVkLCBicmVhayBOIGVuY2xvc2luZ1xuIgoiICAgIGxvb3BzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFRoZSBleGl0IHN0YXR1cyBpcyAwIHVubGVzcyBOIGlzIG5vdCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4iCm1zZ3N0ciAiIgoiQmVlbmRldCBmb3IsIHdoaWxlIG9kZXIgdW50aWwgU2NobGVpZmVuLlxuIgoiICAgIFxuIgoiICAgIEJyZWFrIGJlZW5kZXQgZWluZSBGT1IsIFdISUxFIG9kZXIgVU5USUwgU2NobGVpZmUuICBXZW5uIE4gYW5nZWdlYmVuICIKImlzdCwgd2VyZGVuIE4gZ2VzY2hhY2h0ZWx0ZVxuIgoiICAgIFNjaGxlaWZlbiBiZWVuZGV0LlxuIgoiICAgIFxuIgoiICAgIFL8Y2tnYWJld2VydDpcbiIKIiAgICBEZXIgUvxja2dhYmV3ZXJ0IGlzdCAwLCBlcyBzZWkgZGVuIE4gaXN0IGdy9t9lciBvZGVyIGdsZWljaCAxLiIKCiM6IGJ1aWx0aW5zLmM6MzM4Cm1zZ2lkICIiCiJSZXN1bWUgZm9yLCB3aGlsZSwgb3IgdW50aWwgbG9vcHMuXG4iCiIgICAgXG4iCiIgICAgUmVzdW1lcyB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGVuY2xvc2luZyBGT1IsIFdISUxFIG9yIFVOVElMIGxvb3AuXG4iCiIgICAgSWYgTiBpcyBzcGVjaWZpZWQsIHJlc3VtZXMgdGhlIE50aCBlbmNsb3NpbmcgbG9vcC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBUaGUgZXhpdCBzdGF0dXMgaXMgMCB1bmxlc3MgTiBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuIgptc2dzdHIgIiIKIlNwcmluZ3QgenVtIFNjaGxlaWZlbmFuZmFuZyB2b24gZm9yLCB3aGlsZSwgb2RlciB1bnRpbCBTY2hsZWlmZW4uXG4iCiIgICAgXG4iCiIgICAgQ29udGlub3VlIHNwcmluZ3QgenVtIFNjaGxlaWZlbmFuZmFuZyBkZXIgYWt0dWVsbGVuIEZPUiwgV0hJTEUgb2RlciAiCiJVTlRJTCBcbiIKIiAgICBTY2hsZWlmZS4gV2VubiBOIGFuZ2VnZWJlbiBpc3QsIHdlcmRlbiBOIHdpcmQgenVtIEJlZ2lubiBkZXIgTi10ZW5cbiIKIiAgICD8YmVyZ2VvcmRuZXRlbiBTY2hsZWlmZSBnZXNwcnVuZ2VuLlxuIgoiICAgIFxuIgoiICAgIFL8Y2tnYWJld2VydDpcbiIKIiAgICBEZXIgUvxja2dhYmV3ZXJ0IGlzdCAwLCBhdd9lciB3ZW5uIE4gZ3L232VyIG9kZXIgZ2xlaWNoIDEgaXN0LiIKCiM6IGJ1aWx0aW5zLmM6MzUwCm1zZ2lkICIiCiJFeGVjdXRlIHNoZWxsIGJ1aWx0aW5zLlxuIgoiICAgIFxuIgoiICAgIEV4ZWN1dGUgU0hFTEwtQlVJTFRJTiB3aXRoIGFyZ3VtZW50cyBBUkdzIHdpdGhvdXQgcGVyZm9ybWluZyBjb21tYW5kXG4iCiIgICAgbG9va3VwLiAgVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2lzaCB0byByZWltcGxlbWVudCBhIHNoZWxsIGJ1aWx0aW5cbiIKIiAgICBhcyBhIHNoZWxsIGZ1bmN0aW9uLCBidXQgbmVlZCB0byBleGVjdXRlIHRoZSBidWlsdGluIHdpdGhpbiB0aGUgIgoiZnVuY3Rpb24uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgU0hFTEwtQlVJTFRJTiwgb3IgZmFsc2UgaWYgU0hFTEwtQlVJTFRJTiBpc1xuIgoiICAgIG5vdCBhIHNoZWxsIGJ1aWx0aW4uLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjM2NQptc2dpZCAiIgoiUmV0dXJuIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHN1YnJvdXRpbmUgY2FsbC5cbiIKIiAgICBcbiIKIiAgICBXaXRob3V0IEVYUFIsIHJldHVybnMgXCIkbGluZSAkZmlsZW5hbWVcIi4gIFdpdGggRVhQUiwgcmV0dXJuc1xuIgoiICAgIFwiJGxpbmUgJHN1YnJvdXRpbmUgJGZpbGVuYW1lXCI7IHRoaXMgZXh0cmEgaW5mb3JtYXRpb24gY2FuIGJlIHVzZWQgdG9cbiIKIiAgICBwcm92aWRlIGEgc3RhY2sgdHJhY2UuXG4iCiIgICAgXG4iCiIgICAgVGhlIHZhbHVlIG9mIEVYUFIgaW5kaWNhdGVzIGhvdyBtYW55IGNhbGwgZnJhbWVzIHRvIGdvIGJhY2sgYmVmb3JlIHRoZVxuIgoiICAgIGN1cnJlbnQgb25lOyB0aGUgdG9wIGZyYW1lIGlzIGZyYW1lIDAuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyAwIHVubGVzcyB0aGUgc2hlbGwgaXMgbm90IGV4ZWN1dGluZyBhIHNoZWxsIGZ1bmN0aW9uIG9yIEVYUFJcbiIKIiAgICBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjM4Mwptc2dpZCAiIgoiQ2hhbmdlIHRoZSBzaGVsbCB3b3JraW5nIGRpcmVjdG9yeS5cbiIKIiAgICBcbiIKIiAgICBDaGFuZ2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIERJUi4gIFRoZSBkZWZhdWx0IERJUiBpcyB0aGUgdmFsdWUgb2YgIgoidGhlXG4iCiIgICAgSE9NRSBzaGVsbCB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBUaGUgdmFyaWFibGUgQ0RQQVRIIGRlZmluZXMgdGhlIHNlYXJjaCBwYXRoIGZvciB0aGUgZGlyZWN0b3J5ICIKImNvbnRhaW5pbmdcbiIKIiAgICBESVIuICBBbHRlcm5hdGl2ZSBkaXJlY3RvcnkgbmFtZXMgaW4gQ0RQQVRIIGFyZSBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAiCiIoOikuXG4iCiIgICAgQSBudWxsIGRpcmVjdG9yeSBuYW1lIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIElmIERJUiAiCiJiZWdpbnNcbiIKIiAgICB3aXRoIGEgc2xhc2ggKC8pLCB0aGVuIENEUEFUSCBpcyBub3QgdXNlZC5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgZGlyZWN0b3J5IGlzIG5vdCBmb3VuZCwgYW5kIHRoZSBzaGVsbCBvcHRpb24gYGNkYWJsZV92YXJzJyBpcyAiCiJzZXQsXG4iCiIgICAgdGhlIHdvcmQgaXMgYXNzdW1lZCB0byBiZSAgYSB2YXJpYWJsZSBuYW1lLiAgSWYgdGhhdCB2YXJpYWJsZSBoYXMgYSAiCiJ2YWx1ZSxcbiIKIiAgICBpdHMgdmFsdWUgaXMgdXNlZCBmb3IgRElSLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAgIC1MXHRmb3JjZSBzeW1ib2xpYyBsaW5rcyB0byBiZSBmb2xsb3dlZFxuIgoiICAgICAgICAtUFx0dXNlIHRoZSBwaHlzaWNhbCBkaXJlY3Rvcnkgc3RydWN0dXJlIHdpdGhvdXQgZm9sbG93aW5nIHN5bWJvbGljXG4iCiIgICAgXHRsaW5rc1xuIgoiICAgIFxuIgoiICAgIFRoZSBkZWZhdWx0IGlzIHRvIGZvbGxvdyBzeW1ib2xpYyBsaW5rcywgYXMgaWYgYC1MJyB3ZXJlIHNwZWNpZmllZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIDAgaWYgdGhlIGRpcmVjdG9yeSBpcyBjaGFuZ2VkOyBub24temVybyBvdGhlcndpc2UuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NDExCm1zZ2lkICIiCiJQcmludCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLUxcdHByaW50IHRoZSB2YWx1ZSBvZiAkUFdEIGlmIGl0IG5hbWVzIHRoZSBjdXJyZW50IHdvcmtpbmdcbiIKIiAgICBcdGRpcmVjdG9yeVxuIgoiICAgICAgLVBcdHByaW50IHRoZSBwaHlzaWNhbCBkaXJlY3RvcnksIHdpdGhvdXQgYW55IHN5bWJvbGljIGxpbmtzXG4iCiIgICAgXG4iCiIgICAgQnkgZGVmYXVsdCwgYHB3ZCcgYmVoYXZlcyBhcyBpZiBgLUwnIHdlcmUgc3BlY2lmaWVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgMCB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5XG4iCiIgICAgY2Fubm90IGJlIHJlYWQuIgptc2dzdHIgIiIKIkdpYnQgZGVuIE5hbWVuIGRlcyBha3R1ZWxsZW4gQXJiZWl0c3ZlcnplaWNobmlzIGF1cy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25lbjpcbiIKIiAgICAgIC1MXHRHaWJ0IGRlbiBXZXJ0IGRlciAkUFdEIFVtZ2VidW5nc3ZhcmlhYmxlIGF1cywgd2VubiBkaWVzZVxuIgoiXHRhdWYgZGFzIGFrdHVlbGxlIEFyYmVpdHN2ZXJ6ZWljaG5pcyB2ZXJ3ZWlzdC5cbiIKIlxuIgoiICAgICAgLVBcdEdpYnQgZGVuIHdpcmtsaWNoZW4gVmVyemVpY2huaXNuYWhlbiBhdXMsIG9obmUgc3ltYm9saXNjaGUgIgoiVmVyd2Vpc2UuXG4iCiIgICAgXG4iCiIgICAgU3RhbmRhcmRt5N9pZyB3aXJkIGRpZSAtTCBPcHRpb24gdmVyd2VuZGV0LlxuIgoiICAgIFxuIgoiICAgIFL8Y2tnYWJld2VydDpcbiIKIiAgICBEZXIgUvxja2dhYmV3ZXJ0IGlzdCAwLCBhdd9lciB3ZW5uIGVpbmUgdW5n/Gx0aWdlIE9wdGlvbiBhbmdlZ2ViZW4gb2RlciAiCiJkYXMgYWt0dWVsbGVcbiIKIiAgICBWZXJ6ZWljaG5pcyBuaWNodCBnZWxlc2VuIHdlcmRlbiBrYW5uLiIKCiMgY29sb24KIzogYnVpbHRpbnMuYzo0MjgKbXNnaWQgIiIKIk51bGwgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBObyBlZmZlY3Q7IHRoZSBjb21tYW5kIGRvZXMgbm90aGluZy5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBBbHdheXMgc3VjY2VlZHMuIgptc2dzdHIgIiIKIkxlZXJhbndlaXN1bmcuXG4iCiJcbiIKIiAgICBMZWVyYW53ZWlzdW5nOyBkYXMgS29tbWFuZG8gaGF0IGtlaW5lIFdpcmt1bmcuXG4iCiJcbiIKIiAgICBS/GNrZ2FiZXdlcnQ6XG4iCiIgICAgRGFzIEtvbW1hbmRvIGlzdCBpbW1lciBlcmZvbGdyZWljaC4iCgojOiBidWlsdGlucy5jOjQzOQptc2dpZCAiIgoiUmV0dXJuIGEgc3VjY2Vzc2Z1bCByZXN1bHQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgQWx3YXlzIHN1Y2NlZWRzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjQ0OAptc2dpZCAiIgoiUmV0dXJuIGFuIHVuc3VjY2Vzc2Z1bCByZXN1bHQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgQWx3YXlzIGZhaWxzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjQ1Nwptc2dpZCAiIgoiRXhlY3V0ZSBhIHNpbXBsZSBjb21tYW5kIG9yIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY29tbWFuZHMuXG4iCiIgICAgXG4iCiIgICAgUnVucyBDT01NQU5EIHdpdGggQVJHUyBzdXBwcmVzc2luZyAgc2hlbGwgZnVuY3Rpb24gbG9va3VwLCBvciBkaXNwbGF5XG4iCiIgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBDT01NQU5Ecy4gIENhbiBiZSB1c2VkIHRvIGludm9rZSAiCiJjb21tYW5kc1xuIgoiICAgIG9uIGRpc2sgd2hlbiBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSBleGlzdHMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1wXHR1c2UgYSBkZWZhdWx0IHZhbHVlIGZvciBQQVRIIHRoYXQgaXMgZ3VhcmFudGVlZCB0byBmaW5kIGFsbCBvZlxuIgoiICAgIFx0dGhlIHN0YW5kYXJkIHV0aWxpdGllc1xuIgoiICAgICAgLXZcdHByaW50IGEgZGVzY3JpcHRpb24gb2YgQ09NTUFORCBzaW1pbGFyIHRvIHRoZSBgdHlwZScgYnVpbHRpblxuIgoiICAgICAgLVZcdHByaW50IGEgbW9yZSB2ZXJib3NlIGRlc2NyaXB0aW9uIG9mIGVhY2ggQ09NTUFORFxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgZXhpdCBzdGF0dXMgb2YgQ09NTUFORCwgb3IgZmFpbHVyZSBpZiBDT01NQU5EIGlzIG5vdCBmb3VuZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo0NzYKbXNnaWQgIiIKIlNldCB2YXJpYWJsZSB2YWx1ZXMgYW5kIGF0dHJpYnV0ZXMuXG4iCiIgICAgXG4iCiIgICAgRGVjbGFyZSB2YXJpYWJsZXMgYW5kIGdpdmUgdGhlbSBhdHRyaWJ1dGVzLiAgSWYgbm8gTkFNRXMgYXJlIGdpdmVuLFxuIgoiICAgIGRpc3BsYXkgdGhlIGF0dHJpYnV0ZXMgYW5kIHZhbHVlcyBvZiBhbGwgdmFyaWFibGVzLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtZlx0cmVzdHJpY3QgYWN0aW9uIG9yIGRpc3BsYXkgdG8gZnVuY3Rpb24gbmFtZXMgYW5kIGRlZmluaXRpb25zXG4iCiIgICAgICAtRlx0cmVzdHJpY3QgZGlzcGxheSB0byBmdW5jdGlvbiBuYW1lcyBvbmx5IChwbHVzIGxpbmUgbnVtYmVyIGFuZFxuIgoiICAgIFx0c291cmNlIGZpbGUgd2hlbiBkZWJ1Z2dpbmcpXG4iCiIgICAgICAtcFx0ZGlzcGxheSB0aGUgYXR0cmlidXRlcyBhbmQgdmFsdWUgb2YgZWFjaCBOQU1FXG4iCiIgICAgXG4iCiIgICAgT3B0aW9ucyB3aGljaCBzZXQgYXR0cmlidXRlczpcbiIKIiAgICAgIC1hXHR0byBtYWtlIE5BTUVzIGluZGV4ZWQgYXJyYXlzIChpZiBzdXBwb3J0ZWQpXG4iCiIgICAgICAtQVx0dG8gbWFrZSBOQU1FcyBhc3NvY2lhdGl2ZSBhcnJheXMgKGlmIHN1cHBvcnRlZClcbiIKIiAgICAgIC1pXHR0byBtYWtlIE5BTUVzIGhhdmUgdGhlIGBpbnRlZ2VyJyBhdHRyaWJ1dGVcbiIKIiAgICAgIC1sXHR0byBjb252ZXJ0IE5BTUVzIHRvIGxvd2VyIGNhc2Ugb24gYXNzaWdubWVudFxuIgoiICAgICAgLXJcdHRvIG1ha2UgTkFNRXMgcmVhZG9ubHlcbiIKIiAgICAgIC10XHR0byBtYWtlIE5BTUVzIGhhdmUgdGhlIGB0cmFjZScgYXR0cmlidXRlXG4iCiIgICAgICAtdVx0dG8gY29udmVydCBOQU1FcyB0byB1cHBlciBjYXNlIG9uIGFzc2lnbm1lbnRcbiIKIiAgICAgIC14XHR0byBtYWtlIE5BTUVzIGV4cG9ydFxuIgoiICAgIFxuIgoiICAgIFVzaW5nIGArJyBpbnN0ZWFkIG9mIGAtJyB0dXJucyBvZmYgdGhlIGdpdmVuIGF0dHJpYnV0ZS5cbiIKIiAgICBcbiIKIiAgICBWYXJpYWJsZXMgd2l0aCB0aGUgaW50ZWdlciBhdHRyaWJ1dGUgaGF2ZSBhcml0aG1ldGljIGV2YWx1YXRpb24gKHNlZVxuIgoiICAgIHRoZSBgbGV0JyBjb21tYW5kKSBwZXJmb3JtZWQgd2hlbiB0aGUgdmFyaWFibGUgaXMgYXNzaWduZWQgYSB2YWx1ZS5cbiIKIiAgICBcbiIKIiAgICBXaGVuIHVzZWQgaW4gYSBmdW5jdGlvbiwgYGRlY2xhcmUnIG1ha2VzIE5BTUVzIGxvY2FsLCBhcyB3aXRoIHRoZSAiCiJgbG9jYWwnXG4iCiIgICAgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIHN1cHBsaWVkIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1MTIKbXNnaWQgIiIKIlNldCB2YXJpYWJsZSB2YWx1ZXMgYW5kIGF0dHJpYnV0ZXMuXG4iCiIgICAgXG4iCiIgICAgT2Jzb2xldGUuICBTZWUgYGhlbHAgZGVjbGFyZScuIgptc2dzdHIgIiIKIlNldHp0IFZhcmlhYmxlbiBXZXJ0ZSB1bmQgRWlnZW5zY2hhZnRlblxuIgoiXG4iCiIgICAgVmVyYWx0ZXQuICBTaWVoZSBgaGVscCBkZWNsYXJlJy4iCgojOiBidWlsdGlucy5jOjUyMAptc2dpZCAiIgoiRGVmaW5lIGxvY2FsIHZhcmlhYmxlcy5cbiIKIiAgICBcbiIKIiAgICBDcmVhdGUgYSBsb2NhbCB2YXJpYWJsZSBjYWxsZWQgTkFNRSwgYW5kIGdpdmUgaXQgVkFMVUUuICBPUFRJT04gY2FuXG4iCiIgICAgYmUgYW55IG9wdGlvbiBhY2NlcHRlZCBieSBgZGVjbGFyZScuXG4iCiIgICAgXG4iCiIgICAgTG9jYWwgdmFyaWFibGVzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aGluIGEgZnVuY3Rpb247IHRoZXkgYXJlIHZpc2libGVcbiIKIiAgICBvbmx5IHRvIHRoZSBmdW5jdGlvbiB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkIGFuZCBpdHMgY2hpbGRyZW4uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCwgYW4gZXJyb3Igb2NjdXJzLFxuIgoiICAgIG9yIHRoZSBzaGVsbCBpcyBub3QgZXhlY3V0aW5nIGEgZnVuY3Rpb24uIgptc2dzdHIgIiIKIkRlZmluaWVydCBsb2thbGUgVmF0aWFibGVuLlxuIgoiICAgIFxuIgoiICAgIEVyemV1Z3QgZWluZSBMb2thbGUgVmFyaWFibGUgTkFNRSB1bmQgd2Vpc3QgaWhyIGRlbiBXZXJ0IFZBTFVFIHp1LiAgIgoiT1BUSU9OXG4iCiIgICAga2FubiBlaW5lIGJlbGllYmlnZSB2b24gYGRlY2xhcmUnIGFremVwdGllcnRlIE9wdGlvbiBzZWluLlxuIgoiXG4iCiIgICAgTG9rYWxlIFZhcmlhYmxlbiBr9m5uZW4gbnVyIGlubmVyaGFsYiBlaW5lciBGdW5rdGlvbiBiZW51dHp0IHdlcmRlbi4gIgoiU2llXG4iCiIgICAgc2luZCBudXIgaW4gZGVyIHNpZSBlcnpldWdlbmRlbiBGdW5rdGlvbiB1bmQgaWhyZW4gS2luZGVybiAiCiJzaWNodGJhci4gICAgXG4iCiIgICAgXG4iCiIgICAgUvxja2dhYmV3ZXJ0OlxuIgoiICAgIExpZWZlcnQgXCJFcmZvbGdcIiBhdd9lciBiZWkgZWluZXIgdW5n/Gx0aWdlbiBPcHRpb24sIGVpbmVtIEZlaGxlciBvZGVyXG4iCiIgICAgZGllIFNoZWxsIGb8aHJ0IGtlaW5lIEZ1bmt0aW9uIGF1cy4iCgojOiBidWlsdGlucy5jOjUzNwptc2dpZCAiIgoiV3JpdGUgYXJndW1lbnRzIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQuXG4iCiIgICAgXG4iCiIgICAgRGlzcGxheSB0aGUgQVJHcyBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0IGZvbGxvd2VkIGJ5IGEgbmV3bGluZS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLW5cdGRvIG5vdCBhcHBlbmQgYSBuZXdsaW5lXG4iCiIgICAgICAtZVx0ZW5hYmxlIGludGVycHJldGF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgYmFja3NsYXNoIGVzY2FwZXNcbiIKIiAgICAgIC1FXHRleHBsaWNpdGx5IHN1cHByZXNzIGludGVycHJldGF0aW9uIG9mIGJhY2tzbGFzaCBlc2NhcGVzXG4iCiIgICAgXG4iCiIgICAgYGVjaG8nIGludGVycHJldHMgdGhlIGZvbGxvd2luZyBiYWNrc2xhc2gtZXNjYXBlZCBjaGFyYWN0ZXJzOlxuIgoiICAgICAgXFxhXHRhbGVydCAoYmVsbClcbiIKIiAgICAgIFxcYlx0YmFja3NwYWNlXG4iCiIgICAgICBcXGNcdHN1cHByZXNzIGZ1cnRoZXIgb3V0cHV0XG4iCiIgICAgICBcXGVcdGVzY2FwZSBjaGFyYWN0ZXJcbiIKIiAgICAgIFxcZlx0Zm9ybSBmZWVkXG4iCiIgICAgICBcXG5cdG5ldyBsaW5lXG4iCiIgICAgICBcXHJcdGNhcnJpYWdlIHJldHVyblxuIgoiICAgICAgXFx0XHRob3Jpem9udGFsIHRhYlxuIgoiICAgICAgXFx2XHR2ZXJ0aWNhbCB0YWJcbiIKIiAgICAgIFxcXFxcdGJhY2tzbGFzaFxuIgoiICAgICAgXFwwbm5uXHR0aGUgY2hhcmFjdGVyIHdob3NlIEFTQ0lJIGNvZGUgaXMgTk5OIChvY3RhbCkuICBOTk4gY2FuIGJlXG4iCiIgICAgXHQwIHRvIDMgb2N0YWwgZGlnaXRzXG4iCiIgICAgICBcXHhISFx0dGhlIGVpZ2h0LWJpdCBjaGFyYWN0ZXIgd2hvc2UgdmFsdWUgaXMgSEggKGhleGFkZWNpbWFsKS4gIEhIXG4iCiIgICAgXHRjYW4gYmUgb25lIG9yIHR3byBoZXggZGlnaXRzXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhIHdyaXRlIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1NzEKbXNnaWQgIiIKIldyaXRlIGFyZ3VtZW50cyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LlxuIgoiICAgIFxuIgoiICAgIERpc3BsYXkgdGhlIEFSR3Mgb24gdGhlIHN0YW5kYXJkIG91dHB1dCBmb2xsb3dlZCBieSBhIG5ld2xpbmUuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1uXHRkbyBub3QgYXBwZW5kIGEgbmV3bGluZVxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYSB3cml0ZSBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NTg2Cm1zZ2lkICIiCiJFbmFibGUgYW5kIGRpc2FibGUgc2hlbGwgYnVpbHRpbnMuXG4iCiIgICAgXG4iCiIgICAgRW5hYmxlcyBhbmQgZGlzYWJsZXMgYnVpbHRpbiBzaGVsbCBjb21tYW5kcy4gIERpc2FibGluZyBhbGxvd3MgeW91IHRvXG4iCiIgICAgZXhlY3V0ZSBhIGRpc2sgY29tbWFuZCB3aGljaCBoYXMgdGhlIHNhbWUgbmFtZSBhcyBhIHNoZWxsIGJ1aWx0aW5cbiIKIiAgICB3aXRob3V0IHVzaW5nIGEgZnVsbCBwYXRobmFtZS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHByaW50IGEgbGlzdCBvZiBidWlsdGlucyBzaG93aW5nIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgZW5hYmxlZFxuIgoiICAgICAgLW5cdGRpc2FibGUgZWFjaCBOQU1FIG9yIGRpc3BsYXkgYSBsaXN0IG9mIGRpc2FibGVkIGJ1aWx0aW5zXG4iCiIgICAgICAtcFx0cHJpbnQgdGhlIGxpc3Qgb2YgYnVpbHRpbnMgaW4gYSByZXVzYWJsZSBmb3JtYXRcbiIKIiAgICAgIC1zXHRwcmludCBvbmx5IHRoZSBuYW1lcyBvZiBQb3NpeCBgc3BlY2lhbCcgYnVpbHRpbnNcbiIKIiAgICBcbiIKIiAgICBPcHRpb25zIGNvbnRyb2xsaW5nIGR5bmFtaWMgbG9hZGluZzpcbiIKIiAgICAgIC1mXHRMb2FkIGJ1aWx0aW4gTkFNRSBmcm9tIHNoYXJlZCBvYmplY3QgRklMRU5BTUVcbiIKIiAgICAgIC1kXHRSZW1vdmUgYSBidWlsdGluIGxvYWRlZCB3aXRoIC1mXG4iCiIgICAgXG4iCiIgICAgV2l0aG91dCBvcHRpb25zLCBlYWNoIE5BTUUgaXMgZW5hYmxlZC5cbiIKIiAgICBcbiIKIiAgICBUbyB1c2UgdGhlIGB0ZXN0JyBmb3VuZCBpbiAkUEFUSCBpbnN0ZWFkIG9mIHRoZSBzaGVsbCBidWlsdGluXG4iCiIgICAgdmVyc2lvbiwgdHlwZSBgZW5hYmxlIC1uIHRlc3QnLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTkFNRSBpcyBub3QgYSBzaGVsbCBidWlsdGluIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2MTQKbXNnaWQgIiIKIkV4ZWN1dGUgYXJndW1lbnRzIGFzIGEgc2hlbGwgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBDb21iaW5lIEFSR3MgaW50byBhIHNpbmdsZSBzdHJpbmcsIHVzZSB0aGUgcmVzdWx0IGFzIGlucHV0IHRvIHRoZSAiCiJzaGVsbCxcbiIKIiAgICBhbmQgZXhlY3V0ZSB0aGUgcmVzdWx0aW5nIGNvbW1hbmRzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgZXhpdCBzdGF0dXMgb2YgY29tbWFuZCBvciBzdWNjZXNzIGlmIGNvbW1hbmQgaXMgbnVsbC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2MjYKbXNnaWQgIiIKIlBhcnNlIG9wdGlvbiBhcmd1bWVudHMuXG4iCiIgICAgXG4iCiIgICAgR2V0b3B0cyBpcyB1c2VkIGJ5IHNoZWxsIHByb2NlZHVyZXMgdG8gcGFyc2UgcG9zaXRpb25hbCBwYXJhbWV0ZXJzXG4iCiIgICAgYXMgb3B0aW9ucy5cbiIKIiAgICBcbiIKIiAgICBPUFRTVFJJTkcgY29udGFpbnMgdGhlIG9wdGlvbiBsZXR0ZXJzIHRvIGJlIHJlY29nbml6ZWQ7IGlmIGEgbGV0dGVyXG4iCiIgICAgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiwgdGhlIG9wdGlvbiBpcyBleHBlY3RlZCB0byBoYXZlIGFuIGFyZ3VtZW50LFxuIgoiICAgIHdoaWNoIHNob3VsZCBiZSBzZXBhcmF0ZWQgZnJvbSBpdCBieSB3aGl0ZSBzcGFjZS5cbiIKIiAgICBcbiIKIiAgICBFYWNoIHRpbWUgaXQgaXMgaW52b2tlZCwgZ2V0b3B0cyB3aWxsIHBsYWNlIHRoZSBuZXh0IG9wdGlvbiBpbiB0aGVcbiIKIiAgICBzaGVsbCB2YXJpYWJsZSAkbmFtZSwgaW5pdGlhbGl6aW5nIG5hbWUgaWYgaXQgZG9lcyBub3QgZXhpc3QsIGFuZFxuIgoiICAgIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBhcmd1bWVudCB0byBiZSBwcm9jZXNzZWQgaW50byB0aGUgc2hlbGxcbiIKIiAgICB2YXJpYWJsZSBPUFRJTkQuICBPUFRJTkQgaXMgaW5pdGlhbGl6ZWQgdG8gMSBlYWNoIHRpbWUgdGhlIHNoZWxsIG9yXG4iCiIgICAgYSBzaGVsbCBzY3JpcHQgaXMgaW52b2tlZC4gIFdoZW4gYW4gb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50LFxuIgoiICAgIGdldG9wdHMgcGxhY2VzIHRoYXQgYXJndW1lbnQgaW50byB0aGUgc2hlbGwgdmFyaWFibGUgT1BUQVJHLlxuIgoiICAgIFxuIgoiICAgIGdldG9wdHMgcmVwb3J0cyBlcnJvcnMgaW4gb25lIG9mIHR3byB3YXlzLiAgSWYgdGhlIGZpcnN0IGNoYXJhY3RlclxuIgoiICAgIG9mIE9QVFNUUklORyBpcyBhIGNvbG9uLCBnZXRvcHRzIHVzZXMgc2lsZW50IGVycm9yIHJlcG9ydGluZy4gIEluXG4iCiIgICAgdGhpcyBtb2RlLCBubyBlcnJvciBtZXNzYWdlcyBhcmUgcHJpbnRlZC4gIElmIGFuIGludmFsaWQgb3B0aW9uIGlzXG4iCiIgICAgc2VlbiwgZ2V0b3B0cyBwbGFjZXMgdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQgaW50byBPUFRBUkcuICBJZiBhXG4iCiIgICAgcmVxdWlyZWQgYXJndW1lbnQgaXMgbm90IGZvdW5kLCBnZXRvcHRzIHBsYWNlcyBhICc6JyBpbnRvIE5BTUUgYW5kXG4iCiIgICAgc2V0cyBPUFRBUkcgdG8gdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQuICBJZiBnZXRvcHRzIGlzIG5vdCBpblxuIgoiICAgIHNpbGVudCBtb2RlLCBhbmQgYW4gaW52YWxpZCBvcHRpb24gaXMgc2VlbiwgZ2V0b3B0cyBwbGFjZXMgJz8nIGludG9cbiIKIiAgICBOQU1FIGFuZCB1bnNldHMgT1BUQVJHLiAgSWYgYSByZXF1aXJlZCBhcmd1bWVudCBpcyBub3QgZm91bmQsIGEgJz8nXG4iCiIgICAgaXMgcGxhY2VkIGluIE5BTUUsIE9QVEFSRyBpcyB1bnNldCwgYW5kIGEgZGlhZ25vc3RpYyBtZXNzYWdlIGlzXG4iCiIgICAgcHJpbnRlZC5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgc2hlbGwgdmFyaWFibGUgT1BURVJSIGhhcyB0aGUgdmFsdWUgMCwgZ2V0b3B0cyBkaXNhYmxlcyB0aGVcbiIKIiAgICBwcmludGluZyBvZiBlcnJvciBtZXNzYWdlcywgZXZlbiBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mXG4iCiIgICAgT1BUU1RSSU5HIGlzIG5vdCBhIGNvbG9uLiAgT1BURVJSIGhhcyB0aGUgdmFsdWUgMSBieSBkZWZhdWx0LlxuIgoiICAgIFxuIgoiICAgIEdldG9wdHMgbm9ybWFsbHkgcGFyc2VzIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgKCQwIC0gJDkpLCBidXQgaWZcbiIKIiAgICBtb3JlIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIHRoZXkgYXJlIHBhcnNlZCBpbnN0ZWFkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyBpZiBhbiBvcHRpb24gaXMgZm91bmQ7IGZhaWxzIGlmIHRoZSBlbmQgb2Ygb3B0aW9ucyBpc1xuIgoiICAgIGVuY291bnRlcmVkIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2NjgKbXNnaWQgIiIKIlJlcGxhY2UgdGhlIHNoZWxsIHdpdGggdGhlIGdpdmVuIGNvbW1hbmQuXG4iCiIgICAgXG4iCiIgICAgRXhlY3V0ZSBDT01NQU5ELCByZXBsYWNpbmcgdGhpcyBzaGVsbCB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbS5cbiIKIiAgICBBUkdVTUVOVFMgYmVjb21lIHRoZSBhcmd1bWVudHMgdG8gQ09NTUFORC4gIElmIENPTU1BTkQgaXMgbm90ICIKInNwZWNpZmllZCxcbiIKIiAgICBhbnkgcmVkaXJlY3Rpb25zIHRha2UgZWZmZWN0IGluIHRoZSBjdXJyZW50IHNoZWxsLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYSBuYW1lXHRwYXNzIE5BTUUgYXMgdGhlIHplcm90aCBhcmd1bWVudCB0byBDT01NQU5EXG4iCiIgICAgICAtY1x0XHRleGVjdXRlIENPTU1BTkQgd2l0aCBhbiBlbXB0eSBlbnZpcm9ubWVudFxuIgoiICAgICAgLWxcdFx0cGxhY2UgYSBkYXNoIGluIHRoZSB6ZXJvdGggYXJndW1lbnQgdG8gQ09NTUFORFxuIgoiICAgIFxuIgoiICAgIElmIHRoZSBjb21tYW5kIGNhbm5vdCBiZSBleGVjdXRlZCwgYSBub24taW50ZXJhY3RpdmUgc2hlbGwgZXhpdHMsICIKInVubGVzc1xuIgoiICAgIHRoZSBzaGVsbCBvcHRpb24gYGV4ZWNmYWlsJyBpcyBzZXQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBDT01NQU5EIGlzIG5vdCBmb3VuZCBvciBhIHJlZGlyZWN0aW9uIGVycm9yICIKIm9jY3Vycy4iCm1zZ3N0ciAiIgoKIyBleGl0CiM6IGJ1aWx0aW5zLmM6Njg5Cm1zZ2lkICIiCiJFeGl0IHRoZSBzaGVsbC5cbiIKIiAgICBcbiIKIiAgICBFeGl0cyB0aGUgc2hlbGwgd2l0aCBhIHN0YXR1cyBvZiBOLiAgSWYgTiBpcyBvbWl0dGVkLCB0aGUgZXhpdCBzdGF0dXNcbiIKIiAgICBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKIkJlZW5kZXQgZGllIGFrdHVlbGxlIFNoZWxsLlxuIgoiXG4iCiIgICAgQmVlbmR0IGRpZSBkaWUgYWt0dWVsbGUgU2hlbGwgbWl0IGRlbSBS/GNrZ2FiZXdlcnQgTi4gIFdlbm4gTiBuaWNodCAiCiJhbmdlZ2ViZW4gaXN0LFxuIgoiICAgIHdpcmQgZGVyIFL8Y2tnYWJld2VydCBkZXMgbGV0enRlbiBhdXNnZWb8aHJ0ZW4gS29tbWFuZG9zIPxiZXJub21tZW4uIgoKIzogYnVpbHRpbnMuYzo2OTgKbXNnaWQgIiIKIkV4aXQgYSBsb2dpbiBzaGVsbC5cbiIKIiAgICBcbiIKIiAgICBFeGl0cyBhIGxvZ2luIHNoZWxsIHdpdGggZXhpdCBzdGF0dXMgTi4gIFJldHVybnMgYW4gZXJyb3IgaWYgbm90ICIKImV4ZWN1dGVkXG4iCiIgICAgaW4gYSBsb2dpbiBzaGVsbC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3MDgKbXNnaWQgIiIKIkRpc3BsYXkgb3IgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIHRoZSBoaXN0b3J5IGxpc3QuXG4iCiIgICAgXG4iCiIgICAgZmMgaXMgdXNlZCB0byBsaXN0IG9yIGVkaXQgYW5kIHJlLWV4ZWN1dGUgY29tbWFuZHMgZnJvbSB0aGUgaGlzdG9yeSAiCiJsaXN0LlxuIgoiICAgIEZJUlNUIGFuZCBMQVNUIGNhbiBiZSBudW1iZXJzIHNwZWNpZnlpbmcgdGhlIHJhbmdlLCBvciBGSVJTVCBjYW4gYmUgYVxuIgoiICAgIHN0cmluZywgd2hpY2ggbWVhbnMgdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgYmVnaW5uaW5nIHdpdGggdGhhdFxuIgoiICAgIHN0cmluZy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWUgRU5BTUVcdHNlbGVjdCB3aGljaCBlZGl0b3IgdG8gdXNlLiAgRGVmYXVsdCBpcyBGQ0VESVQsIHRoZW4gIgoiRURJVE9SLFxuIgoiICAgIFx0XHR0aGVuIHZpXG4iCiIgICAgICAtbCBcdGxpc3QgbGluZXMgaW5zdGVhZCBvZiBlZGl0aW5nXG4iCiIgICAgICAtblx0b21pdCBsaW5lIG51bWJlcnMgd2hlbiBsaXN0aW5nXG4iCiIgICAgICAtclx0cmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGxpbmVzIChuZXdlc3QgbGlzdGVkIGZpcnN0KVxuIgoiICAgIFxuIgoiICAgIFdpdGggdGhlIGBmYyAtcyBbcGF0PXJlcCAuLi5dIFtjb21tYW5kXScgZm9ybWF0LCBDT01NQU5EIGlzXG4iCiIgICAgcmUtZXhlY3V0ZWQgYWZ0ZXIgdGhlIHN1YnN0aXR1dGlvbiBPTEQ9TkVXIGlzIHBlcmZvcm1lZC5cbiIKIiAgICBcbiIKIiAgICBBIHVzZWZ1bCBhbGlhcyB0byB1c2Ugd2l0aCB0aGlzIGlzIHI9J2ZjIC1zJywgc28gdGhhdCB0eXBpbmcgYHIgY2MnXG4iCiIgICAgcnVucyB0aGUgbGFzdCBjb21tYW5kIGJlZ2lubmluZyB3aXRoIGBjYycgYW5kIHR5cGluZyBgcicgcmUtZXhlY3V0ZXNcbiIKIiAgICB0aGUgbGFzdCBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyBvciBzdGF0dXMgb2YgZXhlY3V0ZWQgY29tbWFuZDsgbm9uLXplcm8gaWYgYW4gZXJyb3IgIgoib2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjczOAptc2dpZCAiIgoiTW92ZSBqb2IgdG8gdGhlIGZvcmVncm91bmQuXG4iCiIgICAgXG4iCiIgICAgUGxhY2UgdGhlIGpvYiBpZGVudGlmaWVkIGJ5IEpPQl9TUEVDIGluIHRoZSBmb3JlZ3JvdW5kLCBtYWtpbmcgaXQgdGhlXG4iCiIgICAgY3VycmVudCBqb2IuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3Mgbm90aW9uIG9mIHRoZVxuIgoiICAgIGN1cnJlbnQgam9iIGlzIHVzZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgU3RhdHVzIG9mIGNvbW1hbmQgcGxhY2VkIGluIGZvcmVncm91bmQsIG9yIGZhaWx1cmUgaWYgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjc1Mwptc2dpZCAiIgoiTW92ZSBqb2JzIHRvIHRoZSBiYWNrZ3JvdW5kLlxuIgoiICAgIFxuIgoiICAgIFBsYWNlIHRoZSBqb2JzIGlkZW50aWZpZWQgYnkgZWFjaCBKT0JfU1BFQyBpbiB0aGUgYmFja2dyb3VuZCwgYXMgaWYgIgoidGhleVxuIgoiICAgIGhhZCBiZWVuIHN0YXJ0ZWQgd2l0aCBgJicuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3MgIgoibm90aW9uXG4iCiIgICAgb2YgdGhlIGN1cnJlbnQgam9iIGlzIHVzZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBqb2IgY29udHJvbCBpcyBub3QgZW5hYmxlZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NzY3Cm1zZ2lkICIiCiJSZW1lbWJlciBvciBkaXNwbGF5IHByb2dyYW0gbG9jYXRpb25zLlxuIgoiICAgIFxuIgoiICAgIERldGVybWluZSBhbmQgcmVtZW1iZXIgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgZWFjaCBjb21tYW5kIE5BTUUuICBJZlxuIgoiICAgIG5vIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIGluZm9ybWF0aW9uIGFib3V0IHJlbWVtYmVyZWQgY29tbWFuZHMgaXMgIgoiZGlzcGxheWVkLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtZFx0XHRmb3JnZXQgdGhlIHJlbWVtYmVyZWQgbG9jYXRpb24gb2YgZWFjaCBOQU1FXG4iCiIgICAgICAtbFx0XHRkaXNwbGF5IGluIGEgZm9ybWF0IHRoYXQgbWF5IGJlIHJldXNlZCBhcyBpbnB1dFxuIgoiICAgICAgLXAgcGF0aG5hbWVcdHVzZSBQQVRITkFNRSBpcyB0aGUgZnVsbCBwYXRobmFtZSBvZiBOQU1FXG4iCiIgICAgICAtclx0XHRmb3JnZXQgYWxsIHJlbWVtYmVyZWQgbG9jYXRpb25zXG4iCiIgICAgICAtdFx0XHRwcmludCB0aGUgcmVtZW1iZXJlZCBsb2NhdGlvbiBvZiBlYWNoIE5BTUUsIHByZWNlZGluZ1xuIgoiICAgIFx0XHRlYWNoIGxvY2F0aW9uIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgTkFNRSBpZiBtdWx0aXBsZVxuIgoiICAgIFx0XHROQU1FcyBhcmUgZ2l2ZW5cbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBOQU1FXHRcdEVhY2ggTkFNRSBpcyBzZWFyY2hlZCBmb3IgaW4gJFBBVEggYW5kIGFkZGVkIHRvIHRoZSBsaXN0XG4iCiIgICAgXHRcdG9mIHJlbWVtYmVyZWQgY29tbWFuZHMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBOQU1FIGlzIG5vdCBmb3VuZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3OTIKbXNnaWQgIiIKIkRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgYnVpbHRpbiBjb21tYW5kcy5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5cyBicmllZiBzdW1tYXJpZXMgb2YgYnVpbHRpbiBjb21tYW5kcy4gIElmIFBBVFRFUk4gaXNcbiIKIiAgICBzcGVjaWZpZWQsIGdpdmVzIGRldGFpbGVkIGhlbHAgb24gYWxsIGNvbW1hbmRzIG1hdGNoaW5nIFBBVFRFUk4sXG4iCiIgICAgb3RoZXJ3aXNlIHRoZSBsaXN0IG9mIGhlbHAgdG9waWNzIGlzIHByaW50ZWQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1kXHRvdXRwdXQgc2hvcnQgZGVzY3JpcHRpb24gZm9yIGVhY2ggdG9waWNcbiIKIiAgICAgIC1tXHRkaXNwbGF5IHVzYWdlIGluIHBzZXVkby1tYW5wYWdlIGZvcm1hdFxuIgoiICAgICAgLXNcdG91dHB1dCBvbmx5IGEgc2hvcnQgdXNhZ2Ugc3lub3BzaXMgZm9yIGVhY2ggdG9waWMgbWF0Y2hpbmdcbiIKIiAgICBcdFBBVFRFUk5cbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBQQVRURVJOXHRQYXR0ZXJuIHNwZWNpZml5aW5nIGEgaGVscCB0b3BpY1xuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgUEFUVEVSTiBpcyBub3QgZm91bmQgb3IgYW4gaW52YWxpZCBvcHRpb24gaXMgIgoiZ2l2ZW4uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6ODE2Cm1zZ2lkICIiCiJEaXNwbGF5IG9yIG1hbmlwdWxhdGUgdGhlIGhpc3RvcnkgbGlzdC5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5IHRoZSBoaXN0b3J5IGxpc3Qgd2l0aCBsaW5lIG51bWJlcnMsIHByZWZpeGluZyBlYWNoIG1vZGlmaWVkXG4iCiIgICAgZW50cnkgd2l0aCBhIGAqJy4gIEFuIGFyZ3VtZW50IG9mIE4gbGlzdHMgb25seSB0aGUgbGFzdCBOIGVudHJpZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1jXHRjbGVhciB0aGUgaGlzdG9yeSBsaXN0IGJ5IGRlbGV0aW5nIGFsbCBvZiB0aGUgZW50cmllc1xuIgoiICAgICAgLWQgb2Zmc2V0XHRkZWxldGUgdGhlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0IE9GRlNFVC5cbiIKIiAgICBcbiIKIiAgICAgIC1hXHRhcHBlbmQgaGlzdG9yeSBsaW5lcyBmcm9tIHRoaXMgc2Vzc2lvbiB0byB0aGUgaGlzdG9yeSBmaWxlXG4iCiIgICAgICAtblx0cmVhZCBhbGwgaGlzdG9yeSBsaW5lcyBub3QgYWxyZWFkeSByZWFkIGZyb20gdGhlIGhpc3RvcnkgZmlsZVxuIgoiICAgICAgLXJcdHJlYWQgdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5kIHRoZSBjb250ZW50cyB0byB0aGUgaGlzdG9yeVxuIgoiICAgIFx0bGlzdFxuIgoiICAgICAgLXdcdHdyaXRlIHRoZSBjdXJyZW50IGhpc3RvcnkgdG8gdGhlIGhpc3RvcnkgZmlsZVxuIgoiICAgIFx0YW5kIGFwcGVuZCB0aGVtIHRvIHRoZSBoaXN0b3J5IGxpc3RcbiIKIiAgICBcbiIKIiAgICAgIC1wXHRwZXJmb3JtIGhpc3RvcnkgZXhwYW5zaW9uIG9uIGVhY2ggQVJHIGFuZCBkaXNwbGF5IHRoZSByZXN1bHRcbiIKIiAgICBcdHdpdGhvdXQgc3RvcmluZyBpdCBpbiB0aGUgaGlzdG9yeSBsaXN0XG4iCiIgICAgICAtc1x0YXBwZW5kIHRoZSBBUkdzIHRvIHRoZSBoaXN0b3J5IGxpc3QgYXMgYSBzaW5nbGUgZW50cnlcbiIKIiAgICBcbiIKIiAgICBJZiBGSUxFTkFNRSBpcyBnaXZlbiwgaXQgaXMgdXNlZCBhcyB0aGUgaGlzdG9yeSBmaWxlLiAgT3RoZXJ3aXNlLFxuIgoiICAgIGlmICRISVNURklMRSBoYXMgYSB2YWx1ZSwgdGhhdCBpcyB1c2VkLCBlbHNlIH4vLmJhc2hfaGlzdG9yeS5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgJEhJU1RUSU1FRk9STUFUIHZhcmlhYmxlIGlzIHNldCBhbmQgbm90IG51bGwsIGl0cyB2YWx1ZSBpcyB1c2VkXG4iCiIgICAgYXMgYSBmb3JtYXQgc3RyaW5nIGZvciBzdHJmdGltZSgzKSB0byBwcmludCB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkXG4iCiIgICAgd2l0aCBlYWNoIGRpc3BsYXllZCBoaXN0b3J5IGVudHJ5LiAgTm8gdGltZSBzdGFtcHMgYXJlIHByaW50ZWQgIgoib3RoZXJ3aXNlLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjg1Mgptc2dpZCAiIgoiRGlzcGxheSBzdGF0dXMgb2Ygam9icy5cbiIKIiAgICBcbiIKIiAgICBMaXN0cyB0aGUgYWN0aXZlIGpvYnMuICBKT0JTUEVDIHJlc3RyaWN0cyBvdXRwdXQgdG8gdGhhdCBqb2IuXG4iCiIgICAgV2l0aG91dCBvcHRpb25zLCB0aGUgc3RhdHVzIG9mIGFsbCBhY3RpdmUgam9icyBpcyBkaXNwbGF5ZWQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1sXHRsaXN0cyBwcm9jZXNzIElEcyBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIGluZm9ybWF0aW9uXG4iCiIgICAgICAtblx0bGlzdCBvbmx5IHByb2Nlc3NlcyB0aGF0IGhhdmUgY2hhbmdlZCBzdGF0dXMgc2luY2UgdGhlIGxhc3RcbiIKIiAgICBcdG5vdGlmaWNhdGlvblxuIgoiICAgICAgLXBcdGxpc3RzIHByb2Nlc3MgSURzIG9ubHlcbiIKIiAgICAgIC1yXHRyZXN0cmljdCBvdXRwdXQgdG8gcnVubmluZyBqb2JzXG4iCiIgICAgICAtc1x0cmVzdHJpY3Qgb3V0cHV0IHRvIHN0b3BwZWQgam9ic1xuIgoiICAgIFxuIgoiICAgIElmIC14IGlzIHN1cHBsaWVkLCBDT01NQU5EIGlzIHJ1biBhZnRlciBhbGwgam9iIHNwZWNpZmljYXRpb25zIHRoYXRcbiIKIiAgICBhcHBlYXIgaW4gQVJHUyBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aCB0aGUgcHJvY2VzcyBJRCBvZiB0aGF0IGpvYidzXG4iCiIgICAgcHJvY2VzcyBncm91cCBsZWFkZXIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbiBvciBhbiBlcnJvciBvY2N1cnMuXG4iCiIgICAgSWYgLXggaXMgdXNlZCwgcmV0dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgQ09NTUFORC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo4NzkKbXNnaWQgIiIKIlJlbW92ZSBqb2JzIGZyb20gY3VycmVudCBzaGVsbC5cbiIKIiAgICBcbiIKIiAgICBSZW1vdmVzIGVhY2ggSk9CU1BFQyBhcmd1bWVudCBmcm9tIHRoZSB0YWJsZSBvZiBhY3RpdmUgam9icy4gIFdpdGhvdXRcbiIKIiAgICBhbnkgSk9CU1BFQ3MsIHRoZSBzaGVsbCB1c2VzIGl0cyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgam9iLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYVx0cmVtb3ZlIGFsbCBqb2JzIGlmIEpPQlNQRUMgaXMgbm90IHN1cHBsaWVkXG4iCiIgICAgICAtaFx0bWFyayBlYWNoIEpPQlNQRUMgc28gdGhhdCBTSUdIVVAgaXMgbm90IHNlbnQgdG8gdGhlIGpvYiBpZiB0aGVcbiIKIiAgICBcdHNoZWxsIHJlY2VpdmVzIGEgU0lHSFVQXG4iCiIgICAgICAtclx0cmVtb3ZlIG9ubHkgcnVubmluZyBqb2JzXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBvciBKT0JTUEVDIGlzIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjg5OAptc2dpZCAiIgoiU2VuZCBhIHNpZ25hbCB0byBhIGpvYi5cbiIKIiAgICBcbiIKIiAgICBTZW5kIHRoZSBwcm9jZXNzZXMgaWRlbnRpZmllZCBieSBQSUQgb3IgSk9CU1BFQyB0aGUgc2lnbmFsIG5hbWVkIGJ5XG4iCiIgICAgU0lHU1BFQyBvciBTSUdOVU0uICBJZiBuZWl0aGVyIFNJR1NQRUMgbm9yIFNJR05VTSBpcyBwcmVzZW50LCB0aGVuXG4iCiIgICAgU0lHVEVSTSBpcyBhc3N1bWVkLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtcyBzaWdcdFNJRyBpcyBhIHNpZ25hbCBuYW1lXG4iCiIgICAgICAtbiBzaWdcdFNJRyBpcyBhIHNpZ25hbCBudW1iZXJcbiIKIiAgICAgIC1sXHRsaXN0IHRoZSBzaWduYWwgbmFtZXM7IGlmIGFyZ3VtZW50cyBmb2xsb3cgYC1sJyB0aGV5IGFyZVxuIgoiICAgIFx0YXNzdW1lZCB0byBiZSBzaWduYWwgbnVtYmVycyBmb3Igd2hpY2ggbmFtZXMgc2hvdWxkIGJlIGxpc3RlZFxuIgoiICAgIFxuIgoiICAgIEtpbGwgaXMgYSBzaGVsbCBidWlsdGluIGZvciB0d28gcmVhc29uczogaXQgYWxsb3dzIGpvYiBJRHMgdG8gYmUgdXNlZFxuIgoiICAgIGluc3RlYWQgb2YgcHJvY2VzcyBJRHMsIGFuZCBhbGxvd3MgcHJvY2Vzc2VzIHRvIGJlIGtpbGxlZCBpZiB0aGUgbGltaXRcbiIKIiAgICBvbiBwcm9jZXNzZXMgdGhhdCB5b3UgY2FuIGNyZWF0ZSBpcyByZWFjaGVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjkyMQptc2dpZCAiIgoiRXZhbHVhdGUgYXJpdGhtZXRpYyBleHByZXNzaW9ucy5cbiIKIiAgICBcbiIKIiAgICBFdmFsdWF0ZSBlYWNoIEFSRyBhcyBhbiBhcml0aG1ldGljIGV4cHJlc3Npb24uICBFdmFsdWF0aW9uIGlzIGRvbmUgaW5cbiIKIiAgICBmaXhlZC13aWR0aCBpbnRlZ2VycyB3aXRoIG5vIGNoZWNrIGZvciBvdmVyZmxvdywgdGhvdWdoIGRpdmlzaW9uIGJ5IDBcbiIKIiAgICBpcyB0cmFwcGVkIGFuZCBmbGFnZ2VkIGFzIGFuIGVycm9yLiAgVGhlIGZvbGxvd2luZyBsaXN0IG9mIG9wZXJhdG9ycyBpc1xuIgoiICAgIGdyb3VwZWQgaW50byBsZXZlbHMgb2YgZXF1YWwtcHJlY2VkZW5jZSBvcGVyYXRvcnMuICBUaGUgbGV2ZWxzIGFyZSAiCiJsaXN0ZWRcbiIKIiAgICBpbiBvcmRlciBvZiBkZWNyZWFzaW5nIHByZWNlZGVuY2UuXG4iCiIgICAgXG4iCiIgICAgXHRpZCsrLCBpZC0tXHR2YXJpYWJsZSBwb3N0LWluY3JlbWVudCwgcG9zdC1kZWNyZW1lbnRcbiIKIiAgICBcdCsraWQsIC0taWRcdHZhcmlhYmxlIHByZS1pbmNyZW1lbnQsIHByZS1kZWNyZW1lbnRcbiIKIiAgICBcdC0sICtcdFx0dW5hcnkgbWludXMsIHBsdXNcbiIKIiAgICBcdCEsIH5cdFx0bG9naWNhbCBhbmQgYml0d2lzZSBuZWdhdGlvblxuIgoiICAgIFx0KipcdFx0ZXhwb25lbnRpYXRpb25cbiIKIiAgICBcdCosIC8sICVcdFx0bXVsdGlwbGljYXRpb24sIGRpdmlzaW9uLCByZW1haW5kZXJcbiIKIiAgICBcdCssIC1cdFx0YWRkaXRpb24sIHN1YnRyYWN0aW9uXG4iCiIgICAgXHQ8PCwgPj5cdFx0bGVmdCBhbmQgcmlnaHQgYml0d2lzZSBzaGlmdHNcbiIKIiAgICBcdDw9LCA+PSwgPCwgPlx0Y29tcGFyaXNvblxuIgoiICAgIFx0PT0sICE9XHRcdGVxdWFsaXR5LCBpbmVxdWFsaXR5XG4iCiIgICAgXHQmXHRcdGJpdHdpc2UgQU5EXG4iCiIgICAgXHReXHRcdGJpdHdpc2UgWE9SXG4iCiIgICAgXHR8XHRcdGJpdHdpc2UgT1JcbiIKIiAgICBcdCYmXHRcdGxvZ2ljYWwgQU5EXG4iCiIgICAgXHR8fFx0XHRsb2dpY2FsIE9SXG4iCiIgICAgXHRleHByID8gZXhwciA6IGV4cHJcbiIKIiAgICBcdFx0XHRjb25kaXRpb25hbCBvcGVyYXRvclxuIgoiICAgIFx0PSwgKj0sIC89LCAlPSxcbiIKIiAgICBcdCs9LCAtPSwgPDw9LCA+Pj0sXG4iCiIgICAgXHQmPSwgXj0sIHw9XHRhc3NpZ25tZW50XG4iCiIgICAgXG4iCiIgICAgU2hlbGwgdmFyaWFibGVzIGFyZSBhbGxvd2VkIGFzIG9wZXJhbmRzLiAgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlXG4iCiIgICAgaXMgcmVwbGFjZWQgYnkgaXRzIHZhbHVlIChjb2VyY2VkIHRvIGEgZml4ZWQtd2lkdGggaW50ZWdlcikgd2l0aGluXG4iCiIgICAgYW4gZXhwcmVzc2lvbi4gIFRoZSB2YXJpYWJsZSBuZWVkIG5vdCBoYXZlIGl0cyBpbnRlZ2VyIGF0dHJpYnV0ZVxuIgoiICAgIHR1cm5lZCBvbiB0byBiZSB1c2VkIGluIGFuIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgT3BlcmF0b3JzIGFyZSBldmFsdWF0ZWQgaW4gb3JkZXIgb2YgcHJlY2VkZW5jZS4gIFN1Yi1leHByZXNzaW9ucyBpblxuIgoiICAgIHBhcmVudGhlc2VzIGFyZSBldmFsdWF0ZWQgZmlyc3QgYW5kIG1heSBvdmVycmlkZSB0aGUgcHJlY2VkZW5jZVxuIgoiICAgIHJ1bGVzIGFib3ZlLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIElmIHRoZSBsYXN0IEFSRyBldmFsdWF0ZXMgdG8gMCwgbGV0IHJldHVybnMgMTsgbGV0IHJldHVybnMgMCBvdGhlcndpc2UuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjk2Ngptc2dpZCAiIgoiUmVhZCBhIGxpbmUgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQgYW5kIHNwbGl0IGl0IGludG8gZmllbGRzLlxuIgoiICAgIFxuIgoiICAgIFJlYWRzIGEgc2luZ2xlIGxpbmUgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQsIG9yIGZyb20gZmlsZSBkZXNjcmlwdG9yIEZEXG4iCiIgICAgaWYgdGhlIC11IG9wdGlvbiBpcyBzdXBwbGllZC4gIFRoZSBsaW5lIGlzIHNwbGl0IGludG8gZmllbGRzIGFzIHdpdGggIgoid29yZFxuIgoiICAgIHNwbGl0dGluZywgYW5kIHRoZSBmaXJzdCB3b3JkIGlzIGFzc2lnbmVkIHRvIHRoZSBmaXJzdCBOQU1FLCB0aGUgc2Vjb25kXG4iCiIgICAgd29yZCB0byB0aGUgc2Vjb25kIE5BTUUsIGFuZCBzbyBvbiwgd2l0aCBhbnkgbGVmdG92ZXIgd29yZHMgYXNzaWduZWQgdG9cbiIKIiAgICB0aGUgbGFzdCBOQU1FLiAgT25seSB0aGUgY2hhcmFjdGVycyBmb3VuZCBpbiAkSUZTIGFyZSByZWNvZ25pemVkIGFzICIKIndvcmRcbiIKIiAgICBkZWxpbWl0ZXJzLlxuIgoiICAgIFxuIgoiICAgIElmIG5vIE5BTUVzIGFyZSBzdXBwbGllZCwgdGhlIGxpbmUgcmVhZCBpcyBzdG9yZWQgaW4gdGhlIFJFUExZICIKInZhcmlhYmxlLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYSBhcnJheVx0YXNzaWduIHRoZSB3b3JkcyByZWFkIHRvIHNlcXVlbnRpYWwgaW5kaWNlcyBvZiB0aGUgYXJyYXlcbiIKIiAgICBcdFx0dmFyaWFibGUgQVJSQVksIHN0YXJ0aW5nIGF0IHplcm9cbiIKIiAgICAgIC1kIGRlbGltXHRjb250aW51ZSB1bnRpbCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIERFTElNIGlzIHJlYWQsIHJhdGhlclxuIgoiICAgIFx0XHR0aGFuIG5ld2xpbmVcbiIKIiAgICAgIC1lXHRcdHVzZSBSZWFkbGluZSB0byBvYnRhaW4gdGhlIGxpbmUgaW4gYW4gaW50ZXJhY3RpdmUgc2hlbGxcbiIKIiAgICAgIC1pIHRleHRcdFVzZSBURVhUIGFzIHRoZSBpbml0aWFsIHRleHQgZm9yIFJlYWRsaW5lXG4iCiIgICAgICAtbiBuY2hhcnNcdHJldHVybiBhZnRlciByZWFkaW5nIE5DSEFSUyBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHdhaXRpbmdcbiIKIiAgICBcdFx0Zm9yIGEgbmV3bGluZVxuIgoiICAgICAgLXAgcHJvbXB0XHRvdXRwdXQgdGhlIHN0cmluZyBQUk9NUFQgd2l0aG91dCBhIHRyYWlsaW5nIG5ld2xpbmUgYmVmb3JlXG4iCiIgICAgXHRcdGF0dGVtcHRpbmcgdG8gcmVhZFxuIgoiICAgICAgLXJcdFx0ZG8gbm90IGFsbG93IGJhY2tzbGFzaGVzIHRvIGVzY2FwZSBhbnkgY2hhcmFjdGVyc1xuIgoiICAgICAgLXNcdFx0ZG8gbm90IGVjaG8gaW5wdXQgY29taW5nIGZyb20gYSB0ZXJtaW5hbFxuIgoiICAgICAgLXQgdGltZW91dFx0dGltZSBvdXQgYW5kIHJldHVybiBmYWlsdXJlIGlmIGEgY29tcGxldGUgbGluZSBvZiBpbnB1dCAiCiJpc1xuIgoiICAgIFx0XHRub3QgcmVhZCB3aXRoaW50IFRJTUVPVVQgc2Vjb25kcy4gIFRoZSB2YWx1ZSBvZiB0aGUgVE1PVVRcbiIKIiAgICBcdFx0dmFyaWFibGUgaXMgdGhlIGRlZmF1bHQgdGltZW91dC4gIFRJTUVPVVQgbWF5IGJlIGFcbiIKIiAgICBcdFx0ZnJhY3Rpb25hbCBudW1iZXIuICBJZiBUSU1FT1VUIGlzIDAsIHJlYWQgcmV0dXJucyBzdWNjZXNzIG9ubHlcbiIKIiAgICBcdFx0aWYgaW5wdXQgaXMgYXZhaWxhYmxlIG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBkZXNjcmlwdG9yLiAgVGhlXG4iCiIgICAgXHRcdGV4aXQgc3RhdHVzIGlzIGdyZWF0ZXIgdGhhbiAxMjggaWYgdGhlIHRpbWVvdXQgaXMgZXhjZWVkZWRcbiIKIiAgICAgIC11IGZkXHRcdHJlYWQgZnJvbSBmaWxlIGRlc2NyaXB0b3IgRkQgaW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgaW5wdXRcbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBUaGUgcmV0dXJuIGNvZGUgaXMgemVybywgdW5sZXNzIGVuZC1vZi1maWxlIGlzIGVuY291bnRlcmVkLCByZWFkIHRpbWVzICIKIm91dCxcbiIKIiAgICBvciBhbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciBpcyBzdXBwbGllZCBhcyB0aGUgYXJndW1lbnQgdG8gLXUuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTAwNgptc2dpZCAiIgoiUmV0dXJuIGZyb20gYSBzaGVsbCBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBDYXVzZXMgYSBmdW5jdGlvbiBvciBzb3VyY2VkIHNjcmlwdCB0byBleGl0IHdpdGggdGhlIHJldHVybiB2YWx1ZVxuIgoiICAgIHNwZWNpZmllZCBieSBOLiAgSWYgTiBpcyBvbWl0dGVkLCB0aGUgcmV0dXJuIHN0YXR1cyBpcyB0aGF0IG9mIHRoZVxuIgoiICAgIGxhc3QgY29tbWFuZCBleGVjdXRlZCB3aXRoaW4gdGhlIGZ1bmN0aW9uIG9yIHNjcmlwdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIE4sIG9yIGZhaWx1cmUgaWYgdGhlIHNoZWxsIGlzIG5vdCBleGVjdXRpbmcgYSBmdW5jdGlvbiBvciBzY3JpcHQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTAxOQptc2dpZCAiIgoiU2V0IG9yIHVuc2V0IHZhbHVlcyBvZiBzaGVsbCBvcHRpb25zIGFuZCBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuXG4iCiIgICAgXG4iCiIgICAgQ2hhbmdlIHRoZSB2YWx1ZSBvZiBzaGVsbCBhdHRyaWJ1dGVzIGFuZCBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIG9yXG4iCiIgICAgZGlzcGxheSB0aGUgbmFtZXMgYW5kIHZhbHVlcyBvZiBzaGVsbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1hICBNYXJrIHZhcmlhYmxlcyB3aGljaCBhcmUgbW9kaWZpZWQgb3IgY3JlYXRlZCBmb3IgZXhwb3J0LlxuIgoiICAgICAgLWIgIE5vdGlmeSBvZiBqb2IgdGVybWluYXRpb24gaW1tZWRpYXRlbHkuXG4iCiIgICAgICAtZSAgRXhpdCBpbW1lZGlhdGVseSBpZiBhIGNvbW1hbmQgZXhpdHMgd2l0aCBhIG5vbi16ZXJvIHN0YXR1cy5cbiIKIiAgICAgIC1mICBEaXNhYmxlIGZpbGUgbmFtZSBnZW5lcmF0aW9uIChnbG9iYmluZykuXG4iCiIgICAgICAtaCAgUmVtZW1iZXIgdGhlIGxvY2F0aW9uIG9mIGNvbW1hbmRzIGFzIHRoZXkgYXJlIGxvb2tlZCB1cC5cbiIKIiAgICAgIC1rICBBbGwgYXNzaWdubWVudCBhcmd1bWVudHMgYXJlIHBsYWNlZCBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIGFcbiIKIiAgICAgICAgICBjb21tYW5kLCBub3QganVzdCB0aG9zZSB0aGF0IHByZWNlZGUgdGhlIGNvbW1hbmQgbmFtZS5cbiIKIiAgICAgIC1tICBKb2IgY29udHJvbCBpcyBlbmFibGVkLlxuIgoiICAgICAgLW4gIFJlYWQgY29tbWFuZHMgYnV0IGRvIG5vdCBleGVjdXRlIHRoZW0uXG4iCiIgICAgICAtbyBvcHRpb24tbmFtZVxuIgoiICAgICAgICAgIFNldCB0aGUgdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byBvcHRpb24tbmFtZTpcbiIKIiAgICAgICAgICAgICAgYWxsZXhwb3J0ICAgIHNhbWUgYXMgLWFcbiIKIiAgICAgICAgICAgICAgYnJhY2VleHBhbmQgIHNhbWUgYXMgLUJcbiIKIiAgICAgICAgICAgICAgZW1hY3MgICAgICAgIHVzZSBhbiBlbWFjcy1zdHlsZSBsaW5lIGVkaXRpbmcgaW50ZXJmYWNlXG4iCiIgICAgICAgICAgICAgIGVycmV4aXQgICAgICBzYW1lIGFzIC1lXG4iCiIgICAgICAgICAgICAgIGVycnRyYWNlICAgICBzYW1lIGFzIC1FXG4iCiIgICAgICAgICAgICAgIGZ1bmN0cmFjZSAgICBzYW1lIGFzIC1UXG4iCiIgICAgICAgICAgICAgIGhhc2hhbGwgICAgICBzYW1lIGFzIC1oXG4iCiIgICAgICAgICAgICAgIGhpc3RleHBhbmQgICBzYW1lIGFzIC1IXG4iCiIgICAgICAgICAgICAgIGhpc3RvcnkgICAgICBlbmFibGUgY29tbWFuZCBoaXN0b3J5XG4iCiIgICAgICAgICAgICAgIGlnbm9yZWVvZiAgICB0aGUgc2hlbGwgd2lsbCBub3QgZXhpdCB1cG9uIHJlYWRpbmcgRU9GXG4iCiIgICAgICAgICAgICAgIGludGVyYWN0aXZlLWNvbW1lbnRzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdyBjb21tZW50cyB0byBhcHBlYXIgaW4gaW50ZXJhY3RpdmUgY29tbWFuZHNcbiIKIiAgICAgICAgICAgICAga2V5d29yZCAgICAgIHNhbWUgYXMgLWtcbiIKIiAgICAgICAgICAgICAgbW9uaXRvciAgICAgIHNhbWUgYXMgLW1cbiIKIiAgICAgICAgICAgICAgbm9jbG9iYmVyICAgIHNhbWUgYXMgLUNcbiIKIiAgICAgICAgICAgICAgbm9leGVjICAgICAgIHNhbWUgYXMgLW5cbiIKIiAgICAgICAgICAgICAgbm9nbG9iICAgICAgIHNhbWUgYXMgLWZcbiIKIiAgICAgICAgICAgICAgbm9sb2cgICAgICAgIGN1cnJlbnRseSBhY2NlcHRlZCBidXQgaWdub3JlZFxuIgoiICAgICAgICAgICAgICBub3RpZnkgICAgICAgc2FtZSBhcyAtYlxuIgoiICAgICAgICAgICAgICBub3Vuc2V0ICAgICAgc2FtZSBhcyAtdVxuIgoiICAgICAgICAgICAgICBvbmVjbWQgICAgICAgc2FtZSBhcyAtdFxuIgoiICAgICAgICAgICAgICBwaHlzaWNhbCAgICAgc2FtZSBhcyAtUFxuIgoiICAgICAgICAgICAgICBwaXBlZmFpbCAgICAgdGhlIHJldHVybiB2YWx1ZSBvZiBhIHBpcGVsaW5lIGlzIHRoZSBzdGF0dXMgb2ZcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBsYXN0IGNvbW1hbmQgdG8gZXhpdCB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgemVybyBpZiBubyBjb21tYW5kIGV4aXRlZCB3aXRoIGEgbm9uLXplcm8gIgoic3RhdHVzXG4iCiIgICAgICAgICAgICAgIHBvc2l4ICAgICAgICBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGJhc2ggd2hlcmUgdGhlIGRlZmF1bHRcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBkaWZmZXJzIGZyb20gdGhlIFBvc2l4IHN0YW5kYXJkIHRvXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB0aGUgc3RhbmRhcmRcbiIKIiAgICAgICAgICAgICAgcHJpdmlsZWdlZCAgIHNhbWUgYXMgLXBcbiIKIiAgICAgICAgICAgICAgdmVyYm9zZSAgICAgIHNhbWUgYXMgLXZcbiIKIiAgICAgICAgICAgICAgdmkgICAgICAgICAgIHVzZSBhIHZpLXN0eWxlIGxpbmUgZWRpdGluZyBpbnRlcmZhY2VcbiIKIiAgICAgICAgICAgICAgeHRyYWNlICAgICAgIHNhbWUgYXMgLXhcbiIKIiAgICAgIC1wICBUdXJuZWQgb24gd2hlbmV2ZXIgdGhlIHJlYWwgYW5kIGVmZmVjdGl2ZSB1c2VyIGlkcyBkbyBub3QgbWF0Y2guXG4iCiIgICAgICAgICAgRGlzYWJsZXMgcHJvY2Vzc2luZyBvZiB0aGUgJEVOViBmaWxlIGFuZCBpbXBvcnRpbmcgb2Ygc2hlbGxcbiIKIiAgICAgICAgICBmdW5jdGlvbnMuICBUdXJuaW5nIHRoaXMgb3B0aW9uIG9mZiBjYXVzZXMgdGhlIGVmZmVjdGl2ZSB1aWQgYW5kXG4iCiIgICAgICAgICAgZ2lkIHRvIGJlIHNldCB0byB0aGUgcmVhbCB1aWQgYW5kIGdpZC5cbiIKIiAgICAgIC10ICBFeGl0IGFmdGVyIHJlYWRpbmcgYW5kIGV4ZWN1dGluZyBvbmUgY29tbWFuZC5cbiIKIiAgICAgIC11ICBUcmVhdCB1bnNldCB2YXJpYWJsZXMgYXMgYW4gZXJyb3Igd2hlbiBzdWJzdGl0dXRpbmcuXG4iCiIgICAgICAtdiAgUHJpbnQgc2hlbGwgaW5wdXQgbGluZXMgYXMgdGhleSBhcmUgcmVhZC5cbiIKIiAgICAgIC14ICBQcmludCBjb21tYW5kcyBhbmQgdGhlaXIgYXJndW1lbnRzIGFzIHRoZXkgYXJlIGV4ZWN1dGVkLlxuIgoiICAgICAgLUIgIHRoZSBzaGVsbCB3aWxsIHBlcmZvcm0gYnJhY2UgZXhwYW5zaW9uXG4iCiIgICAgICAtQyAgSWYgc2V0LCBkaXNhbGxvdyBleGlzdGluZyByZWd1bGFyIGZpbGVzIHRvIGJlIG92ZXJ3cml0dGVuXG4iCiIgICAgICAgICAgYnkgcmVkaXJlY3Rpb24gb2Ygb3V0cHV0LlxuIgoiICAgICAgLUUgIElmIHNldCwgdGhlIEVSUiB0cmFwIGlzIGluaGVyaXRlZCBieSBzaGVsbCBmdW5jdGlvbnMuXG4iCiIgICAgICAtSCAgRW5hYmxlICEgc3R5bGUgaGlzdG9yeSBzdWJzdGl0dXRpb24uICBUaGlzIGZsYWcgaXMgb25cbiIKIiAgICAgICAgICBieSBkZWZhdWx0IHdoZW4gdGhlIHNoZWxsIGlzIGludGVyYWN0aXZlLlxuIgoiICAgICAgLVAgIElmIHNldCwgZG8gbm90IGZvbGxvdyBzeW1ib2xpYyBsaW5rcyB3aGVuIGV4ZWN1dGluZyBjb21tYW5kc1xuIgoiICAgICAgICAgIHN1Y2ggYXMgY2Qgd2hpY2ggY2hhbmdlIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiIKIiAgICAgIC1UICBJZiBzZXQsIHRoZSBERUJVRyB0cmFwIGlzIGluaGVyaXRlZCBieSBzaGVsbCBmdW5jdGlvbnMuXG4iCiIgICAgICAtICAgQXNzaWduIGFueSByZW1haW5pbmcgYXJndW1lbnRzIHRvIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuXG4iCiIgICAgICAgICAgVGhlIC14IGFuZCAtdiBvcHRpb25zIGFyZSB0dXJuZWQgb2ZmLlxuIgoiICAgIFxuIgoiICAgIFVzaW5nICsgcmF0aGVyIHRoYW4gLSBjYXVzZXMgdGhlc2UgZmxhZ3MgdG8gYmUgdHVybmVkIG9mZi4gIFRoZVxuIgoiICAgIGZsYWdzIGNhbiBhbHNvIGJlIHVzZWQgdXBvbiBpbnZvY2F0aW9uIG9mIHRoZSBzaGVsbC4gIFRoZSBjdXJyZW50XG4iCiIgICAgc2V0IG9mIGZsYWdzIG1heSBiZSBmb3VuZCBpbiAkLS4gIFRoZSByZW1haW5pbmcgbiBBUkdzIGFyZSBwb3NpdGlvbmFsXG4iCiIgICAgcGFyYW1ldGVycyBhbmQgYXJlIGFzc2lnbmVkLCBpbiBvcmRlciwgdG8gJDEsICQyLCAuLiAkbi4gIElmIG5vXG4iCiIgICAgQVJHcyBhcmUgZ2l2ZW4sIGFsbCBzaGVsbCB2YXJpYWJsZXMgYXJlIHByaW50ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMTAxCm1zZ2lkICIiCiJVbnNldCB2YWx1ZXMgYW5kIGF0dHJpYnV0ZXMgb2Ygc2hlbGwgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgRm9yIGVhY2ggTkFNRSwgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHZhcmlhYmxlIG9yIGZ1bmN0aW9uLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtZlx0dHJlYXQgZWFjaCBOQU1FIGFzIGEgc2hlbGwgZnVuY3Rpb25cbiIKIiAgICAgIC12XHR0cmVhdCBlYWNoIE5BTUUgYXMgYSBzaGVsbCB2YXJpYWJsZVxuIgoiICAgIFxuIgoiICAgIFdpdGhvdXQgb3B0aW9ucywgdW5zZXQgZmlyc3QgdHJpZXMgdG8gdW5zZXQgYSB2YXJpYWJsZSwgYW5kIGlmIHRoYXQgIgoiZmFpbHMsXG4iCiIgICAgdHJpZXMgdG8gdW5zZXQgYSBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBTb21lIHZhcmlhYmxlcyBjYW5ub3QgYmUgdW5zZXQ7IGFsc28gc2VlIGByZWFkb25seScuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbiBvciBhIE5BTUUgaXMgcmVhZC1vbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExMjEKbXNnaWQgIiIKIlNldCBleHBvcnQgYXR0cmlidXRlIGZvciBzaGVsbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgTWFya3MgZWFjaCBOQU1FIGZvciBhdXRvbWF0aWMgZXhwb3J0IHRvIHRoZSBlbnZpcm9ubWVudCBvZiBzdWJzZXF1ZW50bHlcbiIKIiAgICBleGVjdXRlZCBjb21tYW5kcy4gIElmIFZBTFVFIGlzIHN1cHBsaWVkLCBhc3NpZ24gVkFMVUUgYmVmb3JlICIKImV4cG9ydGluZy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWZcdHJlZmVyIHRvIHNoZWxsIGZ1bmN0aW9uc1xuIgoiICAgICAgLW5cdHJlbW92ZSB0aGUgZXhwb3J0IHByb3BlcnR5IGZyb20gZWFjaCBOQU1FXG4iCiIgICAgICAtcFx0ZGlzcGxheSBhIGxpc3Qgb2YgYWxsIGV4cG9ydGVkIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zXG4iCiIgICAgXG4iCiIgICAgQW4gYXJndW1lbnQgb2YgYC0tJyBkaXNhYmxlcyBmdXJ0aGVyIG9wdGlvbiBwcm9jZXNzaW5nLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgTkFNRSBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExNDAKbXNnaWQgIiIKIk1hcmsgc2hlbGwgdmFyaWFibGVzIGFzIHVuY2hhbmdlYWJsZS5cbiIKIiAgICBcbiIKIiAgICBNYXJrIGVhY2ggTkFNRSBhcyByZWFkLW9ubHk7IHRoZSB2YWx1ZXMgb2YgdGhlc2UgTkFNRXMgbWF5IG5vdCBiZVxuIgoiICAgIGNoYW5nZWQgYnkgc3Vic2VxdWVudCBhc3NpZ25tZW50LiAgSWYgVkFMVUUgaXMgc3VwcGxpZWQsIGFzc2lnbiBWQUxVRVxuIgoiICAgIGJlZm9yZSBtYXJraW5nIGFzIHJlYWQtb25seS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHJlZmVyIHRvIGluZGV4ZWQgYXJyYXkgdmFyaWFibGVzXG4iCiIgICAgICAtQVx0cmVmZXIgdG8gYXNzb2NpYXRpdmUgYXJyYXkgdmFyaWFibGVzXG4iCiIgICAgICAtZlx0cmVmZXIgdG8gc2hlbGwgZnVuY3Rpb25zXG4iCiIgICAgICAtcFx0ZGlzcGxheSBhIGxpc3Qgb2YgYWxsIHJlYWRvbmx5IHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zXG4iCiIgICAgXG4iCiIgICAgQW4gYXJndW1lbnQgb2YgYC0tJyBkaXNhYmxlcyBmdXJ0aGVyIG9wdGlvbiBwcm9jZXNzaW5nLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgTkFNRSBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExNjEKbXNnaWQgIiIKIlNoaWZ0IHBvc2l0aW9uYWwgcGFyYW1ldGVycy5cbiIKIiAgICBcbiIKIiAgICBSZW5hbWUgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyAkTisxLCROKzIgLi4uIHRvICQxLCQyIC4uLiAgSWYgTiBpc1xuIgoiICAgIG5vdCBnaXZlbiwgaXQgaXMgYXNzdW1lZCB0byBiZSAxLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTiBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gJCMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTE3MyBidWlsdGlucy5jOjExODgKbXNnaWQgIiIKIkV4ZWN1dGUgY29tbWFuZHMgZnJvbSBhIGZpbGUgaW4gdGhlIGN1cnJlbnQgc2hlbGwuXG4iCiIgICAgXG4iCiIgICAgUmVhZCBhbmQgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIEZJTEVOQU1FIGluIHRoZSBjdXJyZW50IHNoZWxsLiAgVGhlXG4iCiIgICAgZW50cmllcyBpbiAkUEFUSCBhcmUgdXNlZCB0byBmaW5kIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBGSUxFTkFNRS5cbiIKIiAgICBJZiBhbnkgQVJHVU1FTlRTIGFyZSBzdXBwbGllZCwgdGhleSBiZWNvbWUgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVyc1xuIgoiICAgIHdoZW4gRklMRU5BTUUgaXMgZXhlY3V0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQgaW4gRklMRU5BTUU7IGZhaWxzIGlmXG4iCiIgICAgRklMRU5BTUUgY2Fubm90IGJlIHJlYWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTIwNAptc2dpZCAiIgoiU3VzcGVuZCBzaGVsbCBleGVjdXRpb24uXG4iCiIgICAgXG4iCiIgICAgU3VzcGVuZCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgc2hlbGwgdW50aWwgaXQgcmVjZWl2ZXMgYSBTSUdDT05UIHNpZ25hbC5cbiIKIiAgICBVbmxlc3MgZm9yY2VkLCBsb2dpbiBzaGVsbHMgY2Fubm90IGJlIHN1c3BlbmRlZC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWZcdGZvcmNlIHRoZSBzdXNwZW5kLCBldmVuIGlmIHRoZSBzaGVsbCBpcyBhIGxvZ2luIHNoZWxsXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBqb2IgY29udHJvbCBpcyBub3QgZW5hYmxlZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTIyMAptc2dpZCAiIgoiRXZhbHVhdGUgY29uZGl0aW9uYWwgZXhwcmVzc2lvbi5cbiIKIiAgICBcbiIKIiAgICBFeGl0cyB3aXRoIGEgc3RhdHVzIG9mIDAgKHRydWUpIG9yIDEgKGZhbHNlKSBkZXBlbmRpbmcgb25cbiIKIiAgICB0aGUgZXZhbHVhdGlvbiBvZiBFWFBSLiAgRXhwcmVzc2lvbnMgbWF5IGJlIHVuYXJ5IG9yIGJpbmFyeS4gIFVuYXJ5XG4iCiIgICAgZXhwcmVzc2lvbnMgYXJlIG9mdGVuIHVzZWQgdG8gZXhhbWluZSB0aGUgc3RhdHVzIG9mIGEgZmlsZS4gIFRoZXJlXG4iCiIgICAgYXJlIHN0cmluZyBvcGVyYXRvcnMgYXMgd2VsbCwgYW5kIG51bWVyaWMgY29tcGFyaXNvbiBvcGVyYXRvcnMuXG4iCiIgICAgXG4iCiIgICAgRmlsZSBvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAtYSBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzLlxuIgoiICAgICAgLWIgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGJsb2NrIHNwZWNpYWwuXG4iCiIgICAgICAtYyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgY2hhcmFjdGVyIHNwZWNpYWwuXG4iCiIgICAgICAtZCBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBkaXJlY3RvcnkuXG4iCiIgICAgICAtZSBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzLlxuIgoiICAgICAgLWYgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGV4aXN0cyBhbmQgaXMgYSByZWd1bGFyIGZpbGUuXG4iCiIgICAgICAtZyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgc2V0LWdyb3VwLWlkLlxuIgoiICAgICAgLWggRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGEgc3ltYm9saWMgbGluay5cbiIKIiAgICAgIC1MIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyBhIHN5bWJvbGljIGxpbmsuXG4iCiIgICAgICAtayBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaGFzIGl0cyBgc3RpY2t5JyBiaXQgc2V0LlxuIgoiICAgICAgLXAgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGEgbmFtZWQgcGlwZS5cbiIKIiAgICAgIC1yIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyByZWFkYWJsZSBieSB5b3UuXG4iCiIgICAgICAtcyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzIGFuZCBpcyBub3QgZW1wdHkuXG4iCiIgICAgICAtUyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBzb2NrZXQuXG4iCiIgICAgICAtdCBGRCAgICAgICAgICBUcnVlIGlmIEZEIGlzIG9wZW5lZCBvbiBhIHRlcm1pbmFsLlxuIgoiICAgICAgLXUgRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBzZXQtdXNlci1pZC5cbiIKIiAgICAgIC13IEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgd3JpdGFibGUgYnkgeW91LlxuIgoiICAgICAgLXggRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBleGVjdXRhYmxlIGJ5IHlvdS5cbiIKIiAgICAgIC1PIEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgZWZmZWN0aXZlbHkgb3duZWQgYnkgeW91LlxuIgoiICAgICAgLUcgRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBlZmZlY3RpdmVseSBvd25lZCBieSB5b3VyIGdyb3VwLlxuIgoiICAgICAgLU4gRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZSBpdCB3YXMgbGFzdCAiCiJyZWFkLlxuIgoiICAgIFxuIgoiICAgICAgRklMRTEgLW50IEZJTEUyICBUcnVlIGlmIGZpbGUxIGlzIG5ld2VyIHRoYW4gZmlsZTIgKGFjY29yZGluZyB0b1xuIgoiICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gZGF0ZSkuXG4iCiIgICAgXG4iCiIgICAgICBGSUxFMSAtb3QgRklMRTIgIFRydWUgaWYgZmlsZTEgaXMgb2xkZXIgdGhhbiBmaWxlMi5cbiIKIiAgICBcbiIKIiAgICAgIEZJTEUxIC1lZiBGSUxFMiAgVHJ1ZSBpZiBmaWxlMSBpcyBhIGhhcmQgbGluayB0byBmaWxlMi5cbiIKIiAgICBcbiIKIiAgICBTdHJpbmcgb3BlcmF0b3JzOlxuIgoiICAgIFxuIgoiICAgICAgLXogU1RSSU5HICAgICAgVHJ1ZSBpZiBzdHJpbmcgaXMgZW1wdHkuXG4iCiIgICAgXG4iCiIgICAgICAtbiBTVFJJTkdcbiIKIiAgICAgICAgIFNUUklORyAgICAgIFRydWUgaWYgc3RyaW5nIGlzIG5vdCBlbXB0eS5cbiIKIiAgICBcbiIKIiAgICAgIFNUUklORzEgPSBTVFJJTkcyXG4iCiIgICAgICAgICAgICAgICAgICAgICBUcnVlIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbC5cbiIKIiAgICAgIFNUUklORzEgIT0gU1RSSU5HMlxuIgoiICAgICAgICAgICAgICAgICAgICAgVHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IGVxdWFsLlxuIgoiICAgICAgU1RSSU5HMSA8IFNUUklORzJcbiIKIiAgICAgICAgICAgICAgICAgICAgIFRydWUgaWYgU1RSSU5HMSBzb3J0cyBiZWZvcmUgU1RSSU5HMiAiCiJsZXhpY29ncmFwaGljYWxseS5cbiIKIiAgICAgIFNUUklORzEgPiBTVFJJTkcyXG4iCiIgICAgICAgICAgICAgICAgICAgICBUcnVlIGlmIFNUUklORzEgc29ydHMgYWZ0ZXIgU1RSSU5HMiBsZXhpY29ncmFwaGljYWxseS5cbiIKIiAgICBcbiIKIiAgICBPdGhlciBvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAtbyBPUFRJT04gICAgICBUcnVlIGlmIHRoZSBzaGVsbCBvcHRpb24gT1BUSU9OIGlzIGVuYWJsZWQuXG4iCiIgICAgICAhIEVYUFIgICAgICAgICBUcnVlIGlmIGV4cHIgaXMgZmFsc2UuXG4iCiIgICAgICBFWFBSMSAtYSBFWFBSMiBUcnVlIGlmIGJvdGggZXhwcjEgQU5EIGV4cHIyIGFyZSB0cnVlLlxuIgoiICAgICAgRVhQUjEgLW8gRVhQUjIgVHJ1ZSBpZiBlaXRoZXIgZXhwcjEgT1IgZXhwcjIgaXMgdHJ1ZS5cbiIKIiAgICBcbiIKIiAgICAgIGFyZzEgT1AgYXJnMiAgIEFyaXRobWV0aWMgdGVzdHMuICBPUCBpcyBvbmUgb2YgLWVxLCAtbmUsXG4iCiIgICAgICAgICAgICAgICAgICAgICAtbHQsIC1sZSwgLWd0LCBvciAtZ2UuXG4iCiIgICAgXG4iCiIgICAgQXJpdGhtZXRpYyBiaW5hcnkgb3BlcmF0b3JzIHJldHVybiB0cnVlIGlmIEFSRzEgaXMgZXF1YWwsIG5vdC1lcXVhbCxcbiIKIiAgICBsZXNzLXRoYW4sIGxlc3MtdGhhbi1vci1lcXVhbCwgZ3JlYXRlci10aGFuLCBvciBncmVhdGVyLXRoYW4tb3ItZXF1YWxcbiIKIiAgICB0aGFuIEFSRzIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIEVYUFIgZXZhbHVhdGVzIHRvIHRydWU7IGZhaWxzIGlmIEVYUFIgZXZhbHVhdGVzIHRvXG4iCiIgICAgZmFsc2Ugb3IgYW4gaW52YWxpZCBhcmd1bWVudCBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMjk2Cm1zZ2lkICIiCiJFdmFsdWF0ZSBjb25kaXRpb25hbCBleHByZXNzaW9uLlxuIgoiICAgIFxuIgoiICAgIFRoaXMgaXMgYSBzeW5vbnltIGZvciB0aGUgXCJ0ZXN0XCIgYnVpbHRpbiwgYnV0IHRoZSBsYXN0IGFyZ3VtZW50IG11c3RcbiIKIiAgICBiZSBhIGxpdGVyYWwgYF0nLCB0byBtYXRjaCB0aGUgb3BlbmluZyBgWycuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTMwNQptc2dpZCAiIgoiRGlzcGxheSBwcm9jZXNzIHRpbWVzLlxuIgoiICAgIFxuIgoiICAgIFByaW50cyB0aGUgYWNjdW11bGF0ZWQgdXNlciBhbmQgc3lzdGVtIHRpbWVzIGZvciB0aGUgc2hlbGwgYW5kIGFsbCBvZiAiCiJpdHNcbiIKIiAgICBjaGlsZCBwcm9jZXNzZXMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgQWx3YXlzIHN1Y2NlZWRzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjEzMTcKbXNnaWQgIiIKIlRyYXAgc2lnbmFscyBhbmQgb3RoZXIgZXZlbnRzLlxuIgoiICAgIFxuIgoiICAgIERlZmluZXMgYW5kIGFjdGl2YXRlcyBoYW5kbGVycyB0byBiZSBydW4gd2hlbiB0aGUgc2hlbGwgcmVjZWl2ZXMgIgoic2lnbmFsc1xuIgoiICAgIG9yIG90aGVyIGNvbmRpdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgQVJHIGlzIGEgY29tbWFuZCB0byBiZSByZWFkIGFuZCBleGVjdXRlZCB3aGVuIHRoZSBzaGVsbCByZWNlaXZlcyB0aGVcbiIKIiAgICBzaWduYWwocykgU0lHTkFMX1NQRUMuICBJZiBBUkcgaXMgYWJzZW50IChhbmQgYSBzaW5nbGUgU0lHTkFMX1NQRUNcbiIKIiAgICBpcyBzdXBwbGllZCkgb3IgYC0nLCBlYWNoIHNwZWNpZmllZCBzaWduYWwgaXMgcmVzZXQgdG8gaXRzIG9yaWdpbmFsXG4iCiIgICAgdmFsdWUuICBJZiBBUkcgaXMgdGhlIG51bGwgc3RyaW5nIGVhY2ggU0lHTkFMX1NQRUMgaXMgaWdub3JlZCBieSB0aGVcbiIKIiAgICBzaGVsbCBhbmQgYnkgdGhlIGNvbW1hbmRzIGl0IGludm9rZXMuXG4iCiIgICAgXG4iCiIgICAgSWYgYSBTSUdOQUxfU1BFQyBpcyBFWElUICgwKSBBUkcgaXMgZXhlY3V0ZWQgb24gZXhpdCBmcm9tIHRoZSBzaGVsbC4gICIKIklmXG4iCiIgICAgYSBTSUdOQUxfU1BFQyBpcyBERUJVRywgQVJHIGlzIGV4ZWN1dGVkIGJlZm9yZSBldmVyeSBzaW1wbGUgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBJZiBubyBhcmd1bWVudHMgYXJlIHN1cHBsaWVkLCB0cmFwIHByaW50cyB0aGUgbGlzdCBvZiBjb21tYW5kcyAiCiJhc3NvY2lhdGVkXG4iCiIgICAgd2l0aCBlYWNoIHNpZ25hbC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWxcdHByaW50IGEgbGlzdCBvZiBzaWduYWwgbmFtZXMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgbnVtYmVyc1xuIgoiICAgICAgLXBcdGRpc3BsYXkgdGhlIHRyYXAgY29tbWFuZHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggU0lHTkFMX1NQRUNcbiIKIiAgICBcbiIKIiAgICBFYWNoIFNJR05BTF9TUEVDIGlzIGVpdGhlciBhIHNpZ25hbCBuYW1lIGluIDxzaWduYWwuaD4gb3IgYSBzaWduYWwgIgoibnVtYmVyLlxuIgoiICAgIFNpZ25hbCBuYW1lcyBhcmUgY2FzZSBpbnNlbnNpdGl2ZSBhbmQgdGhlIFNJRyBwcmVmaXggaXMgb3B0aW9uYWwuICBBXG4iCiIgICAgc2lnbmFsIG1heSBiZSBzZW50IHRvIHRoZSBzaGVsbCB3aXRoIFwia2lsbCAtc2lnbmFsICQkXCIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhIFNJR1NQRUMgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyAiCiJnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMzQ5Cm1zZ2lkICIiCiJEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IGNvbW1hbmQgdHlwZS5cbiIKIiAgICBcbiIKIiAgICBGb3IgZWFjaCBOQU1FLCBpbmRpY2F0ZSBob3cgaXQgd291bGQgYmUgaW50ZXJwcmV0ZWQgaWYgdXNlZCBhcyBhXG4iCiIgICAgY29tbWFuZCBuYW1lLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYVx0ZGlzcGxheSBhbGwgbG9jYXRpb25zIGNvbnRhaW5pbmcgYW4gZXhlY3V0YWJsZSBuYW1lZCBOQU1FO1xuIgoiICAgIFx0aW5jbHVkZXMgYWxpYXNlcywgYnVpbHRpbnMsIGFuZCBmdW5jdGlvbnMsIGlmIGFuZCBvbmx5IGlmXG4iCiIgICAgXHR0aGUgYC1wJyBvcHRpb24gaXMgbm90IGFsc28gdXNlZFxuIgoiICAgICAgLWZcdHN1cHByZXNzIHNoZWxsIGZ1bmN0aW9uIGxvb2t1cFxuIgoiICAgICAgLVBcdGZvcmNlIGEgUEFUSCBzZWFyY2ggZm9yIGVhY2ggTkFNRSwgZXZlbiBpZiBpdCBpcyBhbiBhbGlhcyxcbiIKIiAgICBcdGJ1aWx0aW4sIG9yIGZ1bmN0aW9uLCBhbmQgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZGlzayBmaWxlXG4iCiIgICAgXHR0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkXG4iCiIgICAgICAtcFx0cmV0dXJucyBlaXRoZXIgdGhlIG5hbWUgb2YgdGhlIGRpc2sgZmlsZSB0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkLFxuIgoiICAgIFx0b3Igbm90aGluZyBpZiBgdHlwZSAtdCBOQU1FJyB3b3VsZCBub3QgcmV0dXJuIGBmaWxlJy5cbiIKIiAgICAgIC10XHRvdXRwdXQgYSBzaW5nbGUgd29yZCB3aGljaCBpcyBvbmUgb2YgYGFsaWFzJywgYGtleXdvcmQnLFxuIgoiICAgIFx0YGZ1bmN0aW9uJywgYGJ1aWx0aW4nLCBgZmlsZScgb3IgYCcsIGlmIE5BTUUgaXMgYW4gYWxpYXMsIHNoZWxsXG4iCiIgICAgXHRyZXNlcnZlZCB3b3JkLCBzaGVsbCBmdW5jdGlvbiwgc2hlbGwgYnVpbHRpbiwgZGlzayBmaWxlLCBvciBub3RcbiIKIiAgICBcdGZvdW5kLCByZXNwZWN0aXZlbHlcbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBOQU1FXHRDb21tYW5kIG5hbWUgdG8gYmUgaW50ZXJwcmV0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIGFsbCBvZiB0aGUgTkFNRXMgYXJlIGZvdW5kOyBmYWlscyBpZiBhbnkgYXJlIG5vdCAiCiJmb3VuZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMzgwCm1zZ2lkICIiCiJNb2RpZnkgc2hlbGwgcmVzb3VyY2UgbGltaXRzLlxuIgoiICAgIFxuIgoiICAgIFByb3ZpZGVzIGNvbnRyb2wgb3ZlciB0aGUgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byB0aGUgc2hlbGwgYW5kICIKInByb2Nlc3Nlc1xuIgoiICAgIGl0IGNyZWF0ZXMsIG9uIHN5c3RlbXMgdGhhdCBhbGxvdyBzdWNoIGNvbnRyb2wuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1TXHR1c2UgdGhlIGBzb2Z0JyByZXNvdXJjZSBsaW1pdFxuIgoiICAgICAgLUhcdHVzZSB0aGUgYGhhcmQnIHJlc291cmNlIGxpbWl0XG4iCiIgICAgICAtYVx0YWxsIGN1cnJlbnQgbGltaXRzIGFyZSByZXBvcnRlZFxuIgoiICAgICAgLWJcdHRoZSBzb2NrZXQgYnVmZmVyIHNpemVcbiIKIiAgICAgIC1jXHR0aGUgbWF4aW11bSBzaXplIG9mIGNvcmUgZmlsZXMgY3JlYXRlZFxuIgoiICAgICAgLWRcdHRoZSBtYXhpbXVtIHNpemUgb2YgYSBwcm9jZXNzJ3MgZGF0YSBzZWdtZW50XG4iCiIgICAgICAtZVx0dGhlIG1heGltdW0gc2NoZWR1bGluZyBwcmlvcml0eSAoYG5pY2UnKVxuIgoiICAgICAgLWZcdHRoZSBtYXhpbXVtIHNpemUgb2YgZmlsZXMgd3JpdHRlbiBieSB0aGUgc2hlbGwgYW5kIGl0cyBjaGlsZHJlblxuIgoiICAgICAgLWlcdHRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIHNpZ25hbHNcbiIKIiAgICAgIC1sXHR0aGUgbWF4aW11bSBzaXplIGEgcHJvY2VzcyBtYXkgbG9jayBpbnRvIG1lbW9yeVxuIgoiICAgICAgLW1cdHRoZSBtYXhpbXVtIHJlc2lkZW50IHNldCBzaXplXG4iCiIgICAgICAtblx0dGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW4gZmlsZSBkZXNjcmlwdG9yc1xuIgoiICAgICAgLXBcdHRoZSBwaXBlIGJ1ZmZlciBzaXplXG4iCiIgICAgICAtcVx0dGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGluIFBPU0lYIG1lc3NhZ2UgcXVldWVzXG4iCiIgICAgICAtclx0dGhlIG1heGltdW0gcmVhbC10aW1lIHNjaGVkdWxpbmcgcHJpb3JpdHlcbiIKIiAgICAgIC1zXHR0aGUgbWF4aW11bSBzdGFjayBzaXplXG4iCiIgICAgICAtdFx0dGhlIG1heGltdW0gYW1vdW50IG9mIGNwdSB0aW1lIGluIHNlY29uZHNcbiIKIiAgICAgIC11XHR0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlciBwcm9jZXNzZXNcbiIKIiAgICAgIC12XHR0aGUgc2l6ZSBvZiB2aXJ0dWFsIG1lbW9yeVxuIgoiICAgICAgLXhcdHRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlIGxvY2tzXG4iCiIgICAgXG4iCiIgICAgSWYgTElNSVQgaXMgZ2l2ZW4sIGl0IGlzIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXNvdXJjZTsgdGhlXG4iCiIgICAgc3BlY2lhbCBMSU1JVCB2YWx1ZXMgYHNvZnQnLCBgaGFyZCcsIGFuZCBgdW5saW1pdGVkJyBzdGFuZCBmb3IgdGhlXG4iCiIgICAgY3VycmVudCBzb2Z0IGxpbWl0LCB0aGUgY3VycmVudCBoYXJkIGxpbWl0LCBhbmQgbm8gbGltaXQsIHJlc3BlY3RpdmVseS5cbiIKIiAgICBPdGhlcndpc2UsIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaXMgcHJpbnRlZC4gIElmXG4iCiIgICAgbm8gb3B0aW9uIGlzIGdpdmVuLCB0aGVuIC1mIGlzIGFzc3VtZWQuXG4iCiIgICAgXG4iCiIgICAgVmFsdWVzIGFyZSBpbiAxMDI0LWJ5dGUgaW5jcmVtZW50cywgZXhjZXB0IGZvciAtdCwgd2hpY2ggaXMgaW4gc2Vjb25kcyxcbiIKIiAgICAtcCwgd2hpY2ggaXMgaW4gaW5jcmVtZW50cyBvZiA1MTIgYnl0ZXMsIGFuZCAtdSwgd2hpY2ggaXMgYW4gdW5zY2FsZWRcbiIKIiAgICBudW1iZXIgb2YgcHJvY2Vzc2VzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQgb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0MjUKbXNnaWQgIiIKIkRpc3BsYXkgb3Igc2V0IGZpbGUgbW9kZSBtYXNrLlxuIgoiICAgIFxuIgoiICAgIFNldHMgdGhlIHVzZXIgZmlsZS1jcmVhdGlvbiBtYXNrIHRvIE1PREUuICBJZiBNT0RFIGlzIG9taXR0ZWQsIHByaW50c1xuIgoiICAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBtYXNrLlxuIgoiICAgIFxuIgoiICAgIElmIE1PREUgYmVnaW5zIHdpdGggYSBkaWdpdCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYW4gb2N0YWwgbnVtYmVyO1xuIgoiICAgIG90aGVyd2lzZSBpdCBpcyBhIHN5bWJvbGljIG1vZGUgc3RyaW5nIGxpa2UgdGhhdCBhY2NlcHRlZCBieSBjaG1vZCgxKS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLXBcdGlmIE1PREUgaXMgb21pdHRlZCwgb3V0cHV0IGluIGEgZm9ybSB0aGF0IG1heSBiZSByZXVzZWQgYXMgaW5wdXRcbiIKIiAgICAgIC1TXHRtYWtlcyB0aGUgb3V0cHV0IHN5bWJvbGljOyBvdGhlcndpc2UgYW4gb2N0YWwgbnVtYmVyIGlzIG91dHB1dFxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTU9ERSBpcyBpbnZhbGlkIG9yIGFuIGludmFsaWQgb3B0aW9uIGlzIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0NDUKbXNnaWQgIiIKIldhaXQgZm9yIGpvYiBjb21wbGV0aW9uIGFuZCByZXR1cm4gZXhpdCBzdGF0dXMuXG4iCiIgICAgXG4iCiIgICAgV2FpdHMgZm9yIHRoZSBwcm9jZXNzIGlkZW50aWZpZWQgYnkgSUQsIHdoaWNoIG1heSBiZSBhIHByb2Nlc3MgSUQgb3IgYVxuIgoiICAgIGpvYiBzcGVjaWZpY2F0aW9uLCBhbmQgcmVwb3J0cyBpdHMgdGVybWluYXRpb24gc3RhdHVzLiAgSWYgSUQgaXMgbm90XG4iCiIgICAgZ2l2ZW4sIHdhaXRzIGZvciBhbGwgY3VycmVudGx5IGFjdGl2ZSBjaGlsZCBwcm9jZXNzZXMsIGFuZCB0aGUgcmV0dXJuXG4iCiIgICAgc3RhdHVzIGlzIHplcm8uICBJZiBJRCBpcyBhIGEgam9iIHNwZWNpZmljYXRpb24sIHdhaXRzIGZvciBhbGwgIgoicHJvY2Vzc2VzXG4iCiIgICAgaW4gdGhlIGpvYidzIHBpcGVsaW5lLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiBJRDsgZmFpbHMgaWYgSUQgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiAiCiJpc1xuIgoiICAgIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0NjMKbXNnaWQgIiIKIldhaXQgZm9yIHByb2Nlc3MgY29tcGxldGlvbiBhbmQgcmV0dXJuIGV4aXQgc3RhdHVzLlxuIgoiICAgIFxuIgoiICAgIFdhaXRzIGZvciB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgYW5kIHJlcG9ydHMgaXRzIHRlcm1pbmF0aW9uIHN0YXR1cy4gIElmXG4iCiIgICAgUElEIGlzIG5vdCBnaXZlbiwgYWxsIGN1cnJlbnRseSBhY3RpdmUgY2hpbGQgcHJvY2Vzc2VzIGFyZSB3YWl0ZWQgZm9yLFxuIgoiICAgIGFuZCB0aGUgcmV0dXJuIGNvZGUgaXMgemVyby4gIFBJRCBtdXN0IGJlIGEgcHJvY2VzcyBJRC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgSUQ7IGZhaWxzIGlmIElEIGlzIGludmFsaWQgb3IgYW4gaW52YWxpZCBvcHRpb24gIgoiaXNcbiIKIiAgICBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNDc4Cm1zZ2lkICIiCiJFeGVjdXRlIGNvbW1hbmRzIGZvciBlYWNoIG1lbWJlciBpbiBhIGxpc3QuXG4iCiIgICAgXG4iCiIgICAgVGhlIGBmb3InIGxvb3AgZXhlY3V0ZXMgYSBzZXF1ZW5jZSBvZiBjb21tYW5kcyBmb3IgZWFjaCBtZW1iZXIgaW4gYVxuIgoiICAgIGxpc3Qgb2YgaXRlbXMuICBJZiBgaW4gV09SRFMgLi4uOycgaXMgbm90IHByZXNlbnQsIHRoZW4gYGluIFwiJEBcIicgaXNcbiIKIiAgICBhc3N1bWVkLiAgRm9yIGVhY2ggZWxlbWVudCBpbiBXT1JEUywgTkFNRSBpcyBzZXQgdG8gdGhhdCBlbGVtZW50LCBhbmRcbiIKIiAgICB0aGUgQ09NTUFORFMgYXJlIGV4ZWN1dGVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0OTIKbXNnaWQgIiIKIkFyaXRobWV0aWMgZm9yIGxvb3AuXG4iCiIgICAgXG4iCiIgICAgRXF1aXZhbGVudCB0b1xuIgoiICAgIFx0KCggRVhQMSApKVxuIgoiICAgIFx0d2hpbGUgKCggRVhQMiApKTsgZG9cbiIKIiAgICBcdFx0Q09NTUFORFNcbiIKIiAgICBcdFx0KCggRVhQMyApKVxuIgoiICAgIFx0ZG9uZVxuIgoiICAgIEVYUDEsIEVYUDIsIGFuZCBFWFAzIGFyZSBhcml0aG1ldGljIGV4cHJlc3Npb25zLiAgSWYgYW55IGV4cHJlc3Npb24gaXNcbiIKIiAgICBvbWl0dGVkLCBpdCBiZWhhdmVzIGFzIGlmIGl0IGV2YWx1YXRlcyB0byAxLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE1MTAKbXNnaWQgIiIKIlNlbGVjdCB3b3JkcyBmcm9tIGEgbGlzdCBhbmQgZXhlY3V0ZSBjb21tYW5kcy5cbiIKIiAgICBcbiIKIiAgICBUaGUgV09SRFMgYXJlIGV4cGFuZGVkLCBnZW5lcmF0aW5nIGEgbGlzdCBvZiB3b3Jkcy4gIFRoZVxuIgoiICAgIHNldCBvZiBleHBhbmRlZCB3b3JkcyBpcyBwcmludGVkIG9uIHRoZSBzdGFuZGFyZCBlcnJvciwgZWFjaFxuIgoiICAgIHByZWNlZGVkIGJ5IGEgbnVtYmVyLiAgSWYgYGluIFdPUkRTJyBpcyBub3QgcHJlc2VudCwgYGluIFwiJEBcIidcbiIKIiAgICBpcyBhc3N1bWVkLiAgVGhlIFBTMyBwcm9tcHQgaXMgdGhlbiBkaXNwbGF5ZWQgYW5kIGEgbGluZSByZWFkXG4iCiIgICAgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQuICBJZiB0aGUgbGluZSBjb25zaXN0cyBvZiB0aGUgbnVtYmVyXG4iCiIgICAgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIGRpc3BsYXllZCB3b3JkcywgdGhlbiBOQU1FIGlzIHNldFxuIgoiICAgIHRvIHRoYXQgd29yZC4gIElmIHRoZSBsaW5lIGlzIGVtcHR5LCBXT1JEUyBhbmQgdGhlIHByb21wdCBhcmVcbiIKIiAgICByZWRpc3BsYXllZC4gIElmIEVPRiBpcyByZWFkLCB0aGUgY29tbWFuZCBjb21wbGV0ZXMuICBBbnkgb3RoZXJcbiIKIiAgICB2YWx1ZSByZWFkIGNhdXNlcyBOQU1FIHRvIGJlIHNldCB0byBudWxsLiAgVGhlIGxpbmUgcmVhZCBpcyBzYXZlZFxuIgoiICAgIGluIHRoZSB2YXJpYWJsZSBSRVBMWS4gIENPTU1BTkRTIGFyZSBleGVjdXRlZCBhZnRlciBlYWNoIHNlbGVjdGlvblxuIgoiICAgIHVudGlsIGEgYnJlYWsgY29tbWFuZCBpcyBleGVjdXRlZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNTMxCm1zZ2lkICIiCiJSZXBvcnQgdGltZSBjb25zdW1lZCBieSBwaXBlbGluZSdzIGV4ZWN1dGlvbi5cbiIKIiAgICBcbiIKIiAgICBFeGVjdXRlIFBJUEVMSU5FIGFuZCBwcmludCBhIHN1bW1hcnkgb2YgdGhlIHJlYWwgdGltZSwgdXNlciBDUFUgdGltZSxcbiIKIiAgICBhbmQgc3lzdGVtIENQVSB0aW1lIHNwZW50IGV4ZWN1dGluZyBQSVBFTElORSB3aGVuIGl0IHRlcm1pbmF0ZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1wXHRwcmludCB0aGUgdGltaW5nIHN1bW1hcnkgaW4gdGhlIHBvcnRhYmxlIFBvc2l4IGZvcm1hdFxuIgoiICAgIFxuIgoiICAgIFRoZSB2YWx1ZSBvZiB0aGUgVElNRUZPUk1BVCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBvdXRwdXQgZm9ybWF0LlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFRoZSByZXR1cm4gc3RhdHVzIGlzIHRoZSByZXR1cm4gc3RhdHVzIG9mIFBJUEVMSU5FLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE1NDgKbXNnaWQgIiIKIkV4ZWN1dGUgY29tbWFuZHMgYmFzZWQgb24gcGF0dGVybiBtYXRjaGluZy5cbiIKIiAgICBcbiIKIiAgICBTZWxlY3RpdmVseSBleGVjdXRlIENPTU1BTkRTIGJhc2VkIHVwb24gV09SRCBtYXRjaGluZyBQQVRURVJOLiAgVGhlXG4iCiIgICAgYHwnIGlzIHVzZWQgdG8gc2VwYXJhdGUgbXVsdGlwbGUgcGF0dGVybnMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTU2MAptc2dpZCAiIgoiRXhlY3V0ZSBjb21tYW5kcyBiYXNlZCBvbiBjb25kaXRpb25hbC5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGlmIENPTU1BTkRTJyBsaXN0IGlzIGV4ZWN1dGVkLiAgSWYgaXRzIGV4aXQgc3RhdHVzIGlzIHplcm8sIHRoZW4gIgoidGhlXG4iCiIgICAgYHRoZW4gQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQuICBPdGhlcndpc2UsIGVhY2ggYGVsaWYgQ09NTUFORFMnIGxpc3QgIgoiaXNcbiIKIiAgICBleGVjdXRlZCBpbiB0dXJuLCBhbmQgaWYgaXRzIGV4aXQgc3RhdHVzIGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nXG4iCiIgICAgYHRoZW4gQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQgYW5kIHRoZSBpZiBjb21tYW5kIGNvbXBsZXRlcy4gICIKIk90aGVyd2lzZSxcbiIKIiAgICB0aGUgYGVsc2UgQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQsIGlmIHByZXNlbnQuICBUaGUgZXhpdCBzdGF0dXMgb2YgIgoidGhlXG4iCiIgICAgZW50aXJlIGNvbnN0cnVjdCBpcyB0aGUgZXhpdCBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZCwgb3IgIgoiemVyb1xuIgoiICAgIGlmIG5vIGNvbmRpdGlvbiB0ZXN0ZWQgdHJ1ZS5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNTc3Cm1zZ2lkICIiCiJFeGVjdXRlIGNvbW1hbmRzIGFzIGxvbmcgYXMgYSB0ZXN0IHN1Y2NlZWRzLlxuIgoiICAgIFxuIgoiICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZVxuIgoiICAgIGB3aGlsZScgQ09NTUFORFMgaGFzIGFuIGV4aXQgc3RhdHVzIG9mIHplcm8uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTU4OQptc2dpZCAiIgoiRXhlY3V0ZSBjb21tYW5kcyBhcyBsb25nIGFzIGEgdGVzdCBkb2VzIG5vdCBzdWNjZWVkLlxuIgoiICAgIFxuIgoiICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZVxuIgoiICAgIGB1bnRpbCcgQ09NTUFORFMgaGFzIGFuIGV4aXQgc3RhdHVzIHdoaWNoIGlzIG5vdCB6ZXJvLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MDEKbXNnaWQgIiIKIkNyZWF0ZSBhIGNvcHJvY2VzcyBuYW1lZCBOQU1FLlxuIgoiICAgIFxuIgoiICAgIEV4ZWN1dGUgQ09NTUFORCBhc3luY2hyb25vdXNseSwgd2l0aCB0aGUgc3RhbmRhcmQgb3V0cHV0IGFuZCBzdGFuZGFyZFxuIgoiICAgIGlucHV0IG9mIHRoZSBjb21tYW5kIGNvbm5lY3RlZCB2aWEgYSBwaXBlIHRvIGZpbGUgZGVzY3JpcHRvcnMgYXNzaWduZWRcbiIKIiAgICB0byBpbmRpY2VzIDAgYW5kIDEgb2YgYW4gYXJyYXkgdmFyaWFibGUgTkFNRSBpbiB0aGUgZXhlY3V0aW5nIHNoZWxsLlxuIgoiICAgIFRoZSBkZWZhdWx0IE5BTUUgaXMgXCJDT1BST0NcIi5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBleGl0IHN0YXR1cyBvZiBDT01NQU5ELiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MTUKbXNnaWQgIiIKIkRlZmluZSBzaGVsbCBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBDcmVhdGUgYSBzaGVsbCBmdW5jdGlvbiBuYW1lZCBOQU1FLiAgV2hlbiBpbnZva2VkIGFzIGEgc2ltcGxlIGNvbW1hbmQsXG4iCiIgICAgTkFNRSBydW5zIENPTU1BTkRzIGluIHRoZSBjYWxsaW5nIHNoZWxsJ3MgY29udGV4dC4gIFdoZW4gTkFNRSBpcyAiCiJpbnZva2VkLFxuIgoiICAgIHRoZSBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gYXMgJDEuLi4kbiwgYW5kIHRoZSBmdW5jdGlvbidzXG4iCiIgICAgbmFtZSBpcyBpbiAkRlVOQ05BTUUuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBOQU1FIGlzIHJlYWRvbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MjkKbXNnaWQgIiIKIkdyb3VwIGNvbW1hbmRzIGFzIGEgdW5pdC5cbiIKIiAgICBcbiIKIiAgICBSdW4gYSBzZXQgb2YgY29tbWFuZHMgaW4gYSBncm91cC4gIFRoaXMgaXMgb25lIHdheSB0byByZWRpcmVjdCBhblxuIgoiICAgIGVudGlyZSBzZXQgb2YgY29tbWFuZHMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY0MQptc2dpZCAiIgoiUmVzdW1lIGpvYiBpbiBmb3JlZ3JvdW5kLlxuIgoiICAgIFxuIgoiICAgIEVxdWl2YWxlbnQgdG8gdGhlIEpPQl9TUEVDIGFyZ3VtZW50IHRvIHRoZSBgZmcnIGNvbW1hbmQuICBSZXN1bWUgYVxuIgoiICAgIHN0b3BwZWQgb3IgYmFja2dyb3VuZCBqb2IuICBKT0JfU1BFQyBjYW4gc3BlY2lmeSBlaXRoZXIgYSBqb2IgbmFtZVxuIgoiICAgIG9yIGEgam9iIG51bWJlci4gIEZvbGxvd2luZyBKT0JfU1BFQyB3aXRoIGEgYCYnIHBsYWNlcyB0aGUgam9iIGluXG4iCiIgICAgdGhlIGJhY2tncm91bmQsIGFzIGlmIHRoZSBqb2Igc3BlY2lmaWNhdGlvbiBoYWQgYmVlbiBzdXBwbGllZCBhcyBhblxuIgoiICAgIGFyZ3VtZW50IHRvIGBiZycuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSByZXN1bWVkIGpvYi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNjU2Cm1zZ2lkICIiCiJFdmFsdWF0ZSBhcml0aG1ldGljIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgVGhlIEVYUFJFU1NJT04gaXMgZXZhbHVhdGVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZm9yIGFyaXRobWV0aWNcbiIKIiAgICBldmFsdWF0aW9uLiAgRXF1aXZhbGVudCB0byBcImxldCBFWFBSRVNTSU9OXCIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyAxIGlmIEVYUFJFU1NJT04gZXZhbHVhdGVzIHRvIDA7IHJldHVybnMgMCBvdGhlcndpc2UuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY2OAptc2dpZCAiIgoiRXhlY3V0ZSBjb25kaXRpb25hbCBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIFJldHVybnMgYSBzdGF0dXMgb2YgMCBvciAxIGRlcGVuZGluZyBvbiB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgIgoiY29uZGl0aW9uYWxcbiIKIiAgICBleHByZXNzaW9uIEVYUFJFU1NJT04uICBFeHByZXNzaW9ucyBhcmUgY29tcG9zZWQgb2YgdGhlIHNhbWUgcHJpbWFyaWVzICIKInVzZWRcbiIKIiAgICBieSB0aGUgYHRlc3QnIGJ1aWx0aW4sIGFuZCBtYXkgYmUgY29tYmluZWQgdXNpbmcgdGhlIGZvbGxvd2luZyAiCiJvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAoIEVYUFJFU1NJT04gKVx0UmV0dXJucyB0aGUgdmFsdWUgb2YgRVhQUkVTU0lPTlxuIgoiICAgICAgISBFWFBSRVNTSU9OXHRcdFRydWUgaWYgRVhQUkVTU0lPTiBpcyBmYWxzZTsgZWxzZSBmYWxzZVxuIgoiICAgICAgRVhQUjEgJiYgRVhQUjJcdFRydWUgaWYgYm90aCBFWFBSMSBhbmQgRVhQUjIgYXJlIHRydWU7IGVsc2UgZmFsc2VcbiIKIiAgICAgIEVYUFIxIHx8IEVYUFIyXHRUcnVlIGlmIGVpdGhlciBFWFBSMSBvciBFWFBSMiBpcyB0cnVlOyBlbHNlIGZhbHNlXG4iCiIgICAgXG4iCiIgICAgV2hlbiB0aGUgYD09JyBhbmQgYCE9JyBvcGVyYXRvcnMgYXJlIHVzZWQsIHRoZSBzdHJpbmcgdG8gdGhlIHJpZ2h0IG9mXG4iCiIgICAgdGhlIG9wZXJhdG9yIGlzIHVzZWQgYXMgYSBwYXR0ZXJuIGFuZCBwYXR0ZXJuIG1hdGNoaW5nIGlzIHBlcmZvcm1lZC5cbiIKIiAgICBXaGVuIHRoZSBgPX4nIG9wZXJhdG9yIGlzIHVzZWQsIHRoZSBzdHJpbmcgdG8gdGhlIHJpZ2h0IG9mIHRoZSBvcGVyYXRvclxuIgoiICAgIGlzIG1hdGNoZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgVGhlICYmIGFuZCB8fCBvcGVyYXRvcnMgZG8gbm90IGV2YWx1YXRlIEVYUFIyIGlmIEVYUFIxIGlzIHN1ZmZpY2llbnQgdG9cbiIKIiAgICBkZXRlcm1pbmUgdGhlIGV4cHJlc3Npb24ncyB2YWx1ZS5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICAwIG9yIDEgZGVwZW5kaW5nIG9uIHZhbHVlIG9mIEVYUFJFU1NJT04uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY5NAptc2dpZCAiIgoiQ29tbW9uIHNoZWxsIHZhcmlhYmxlIG5hbWVzIGFuZCB1c2FnZS5cbiIKIiAgICBcbiIKIiAgICBCQVNIX1ZFUlNJT05cdFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgQmFzaC5cbiIKIiAgICBDRFBBVEhcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoXG4iCiIgICAgXHRcdGZvciBkaXJlY3RvcmllcyBnaXZlbiBhcyBhcmd1bWVudHMgdG8gYGNkJy5cbiIKIiAgICBHTE9CSUdOT1JFXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIGRlc2NyaWJpbmcgZmlsZW5hbWVzIHRvXG4iCiIgICAgXHRcdGJlIGlnbm9yZWQgYnkgcGF0aG5hbWUgZXhwYW5zaW9uLlxuIgoiICAgIEhJU1RGSUxFXHRUaGUgbmFtZSBvZiB0aGUgZmlsZSB3aGVyZSB5b3VyIGNvbW1hbmQgaGlzdG9yeSBpcyBzdG9yZWQuXG4iCiIgICAgSElTVEZJTEVTSVpFXHRUaGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdGhpcyBmaWxlIGNhbiBjb250YWluLlxuIgoiICAgIEhJU1RTSVpFXHRUaGUgbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBsaW5lcyB0aGF0IGEgcnVubmluZ1xuIgoiICAgIFx0XHRzaGVsbCBjYW4gYWNjZXNzLlxuIgoiICAgIEhPTUVcdFRoZSBjb21wbGV0ZSBwYXRobmFtZSB0byB5b3VyIGxvZ2luIGRpcmVjdG9yeS5cbiIKIiAgICBIT1NUTkFNRVx0VGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgaG9zdC5cbiIKIiAgICBIT1NUVFlQRVx0VGhlIHR5cGUgb2YgQ1BVIHRoaXMgdmVyc2lvbiBvZiBCYXNoIGlzIHJ1bm5pbmcgdW5kZXIuXG4iCiIgICAgSUdOT1JFRU9GXHRDb250cm9scyB0aGUgYWN0aW9uIG9mIHRoZSBzaGVsbCBvbiByZWNlaXB0IG9mIGFuIEVPRlxuIgoiICAgIFx0XHRjaGFyYWN0ZXIgYXMgdGhlIHNvbGUgaW5wdXQuICBJZiBzZXQsIHRoZW4gdGhlIHZhbHVlXG4iCiIgICAgXHRcdG9mIGl0IGlzIHRoZSBudW1iZXIgb2YgRU9GIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgc2VlblxuIgoiICAgIFx0XHRpbiBhIHJvdyBvbiBhbiBlbXB0eSBsaW5lIGJlZm9yZSB0aGUgc2hlbGwgd2lsbCBleGl0XG4iCiIgICAgXHRcdChkZWZhdWx0IDEwKS4gIFdoZW4gdW5zZXQsIEVPRiBzaWduaWZpZXMgdGhlIGVuZCBvZiBpbnB1dC5cbiIKIiAgICBNQUNIVFlQRVx0QSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY3VycmVudCBzeXN0ZW0gQmFzaCBpcyBydW5uaW5nIG9uLlxuIgoiICAgIE1BSUxDSEVDS1x0SG93IG9mdGVuLCBpbiBzZWNvbmRzLCBCYXNoIGNoZWNrcyBmb3IgbmV3IG1haWwuXG4iCiIgICAgTUFJTFBBVEhcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZW5hbWVzIHdoaWNoIEJhc2ggY2hlY2tzXG4iCiIgICAgXHRcdGZvciBuZXcgbWFpbC5cbiIKIiAgICBPU1RZUEVcdFRoZSB2ZXJzaW9uIG9mIFVuaXggdGhpcyB2ZXJzaW9uIG9mIEJhc2ggaXMgcnVubmluZyBvbi5cbiIKIiAgICBQQVRIXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCB3aGVuXG4iCiIgICAgXHRcdGxvb2tpbmcgZm9yIGNvbW1hbmRzLlxuIgoiICAgIFBST01QVF9DT01NQU5EXHRBIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSBwcmludGluZyBvZiBlYWNoXG4iCiIgICAgXHRcdHByaW1hcnkgcHJvbXB0LlxuIgoiICAgIFBTMVx0XHRUaGUgcHJpbWFyeSBwcm9tcHQgc3RyaW5nLlxuIgoiICAgIFBTMlx0XHRUaGUgc2Vjb25kYXJ5IHByb21wdCBzdHJpbmcuXG4iCiIgICAgUFdEXHRcdFRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiIKIiAgICBTSEVMTE9QVFNcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZW5hYmxlZCBzaGVsbCBvcHRpb25zLlxuIgoiICAgIFRFUk1cdFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHRlcm1pbmFsIHR5cGUuXG4iCiIgICAgVElNRUZPUk1BVFx0VGhlIG91dHB1dCBmb3JtYXQgZm9yIHRpbWluZyBzdGF0aXN0aWNzIGRpc3BsYXllZCBieSB0aGVcbiIKIiAgICBcdFx0YHRpbWUnIHJlc2VydmVkIHdvcmQuXG4iCiIgICAgYXV0b19yZXN1bWVcdE5vbi1udWxsIG1lYW5zIGEgY29tbWFuZCB3b3JkIGFwcGVhcmluZyBvbiBhIGxpbmUgYnlcbiIKIiAgICBcdFx0aXRzZWxmIGlzIGZpcnN0IGxvb2tlZCBmb3IgaW4gdGhlIGxpc3Qgb2YgY3VycmVudGx5XG4iCiIgICAgXHRcdHN0b3BwZWQgam9icy4gIElmIGZvdW5kIHRoZXJlLCB0aGF0IGpvYiBpcyBmb3JlZ3JvdW5kZWQuXG4iCiIgICAgXHRcdEEgdmFsdWUgb2YgYGV4YWN0JyBtZWFucyB0aGF0IHRoZSBjb21tYW5kIHdvcmQgbXVzdFxuIgoiICAgIFx0XHRleGFjdGx5IG1hdGNoIGEgY29tbWFuZCBpbiB0aGUgbGlzdCBvZiBzdG9wcGVkIGpvYnMuICBBXG4iCiIgICAgXHRcdHZhbHVlIG9mIGBzdWJzdHJpbmcnIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgd29yZCBtdXN0XG4iCiIgICAgXHRcdG1hdGNoIGEgc3Vic3RyaW5nIG9mIHRoZSBqb2IuICBBbnkgb3RoZXIgdmFsdWUgbWVhbnMgdGhhdFxuIgoiICAgIFx0XHR0aGUgY29tbWFuZCBtdXN0IGJlIGEgcHJlZml4IG9mIGEgc3RvcHBlZCBqb2IuXG4iCiIgICAgaGlzdGNoYXJzXHRDaGFyYWN0ZXJzIGNvbnRyb2xsaW5nIGhpc3RvcnkgZXhwYW5zaW9uIGFuZCBxdWlja1xuIgoiICAgIFx0XHRzdWJzdGl0dXRpb24uICBUaGUgZmlyc3QgY2hhcmFjdGVyIGlzIHRoZSBoaXN0b3J5XG4iCiIgICAgXHRcdHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIsIHVzdWFsbHkgYCEnLiAgVGhlIHNlY29uZCBpc1xuIgoiICAgIFx0XHR0aGUgYHF1aWNrIHN1YnN0aXR1dGlvbicgY2hhcmFjdGVyLCB1c3VhbGx5IGBeJy4gIFRoZVxuIgoiICAgIFx0XHR0aGlyZCBpcyB0aGUgYGhpc3RvcnkgY29tbWVudCcgY2hhcmFjdGVyLCB1c3VhbGx5IGAjJy5cbiIKIiAgICBISVNUSUdOT1JFXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIHVzZWQgdG8gZGVjaWRlIHdoaWNoXG4iCiIgICAgXHRcdGNvbW1hbmRzIHNob3VsZCBiZSBzYXZlZCBvbiB0aGUgaGlzdG9yeSBsaXN0LlxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTc1MQptc2dpZCAiIgoiQWRkIGRpcmVjdG9yaWVzIHRvIHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIEFkZHMgYSBkaXJlY3RvcnkgdG8gdGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHN0YWNrLCBvciByb3RhdGVzXG4iCiIgICAgdGhlIHN0YWNrLCBtYWtpbmcgdGhlIG5ldyB0b3Agb2YgdGhlIHN0YWNrIHRoZSBjdXJyZW50IHdvcmtpbmdcbiIKIiAgICBkaXJlY3RvcnkuICBXaXRoIG5vIGFyZ3VtZW50cywgZXhjaGFuZ2VzIHRoZSB0b3AgdHdvIGRpcmVjdG9yaWVzLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtblx0U3VwcHJlc3NlcyB0aGUgbm9ybWFsIGNoYW5nZSBvZiBkaXJlY3Rvcnkgd2hlbiBhZGRpbmdcbiIKIiAgICBcdGRpcmVjdG9yaWVzIHRvIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJvdGF0ZXMgdGhlIHN0YWNrIHNvIHRoYXQgdGhlIE50aCBkaXJlY3RvcnkgKGNvdW50aW5nXG4iCiIgICAgXHRmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aFxuIgoiICAgIFx0emVybykgaXMgYXQgdGhlIHRvcC5cbiIKIiAgICBcbiIKIiAgICAgIC1OXHRSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZ1xuIgoiICAgIFx0ZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoXG4iCiIgICAgXHR6ZXJvKSBpcyBhdCB0aGUgdG9wLlxuIgoiICAgIFxuIgoiICAgICAgZGlyXHRBZGRzIERJUiB0byB0aGUgZGlyZWN0b3J5IHN0YWNrIGF0IHRoZSB0b3AsIG1ha2luZyBpdCB0aGVcbiIKIiAgICBcdG5ldyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuIgoiICAgIFxuIgoiICAgIFRoZSBgZGlycycgYnVpbHRpbiBkaXNwbGF5cyB0aGUgZGlyZWN0b3J5IHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBhcmd1bWVudCBpcyBzdXBwbGllZCBvciB0aGUgZGlyZWN0b3J5XG4iCiIgICAgY2hhbmdlIGZhaWxzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE3ODUKbXNnaWQgIiIKIlJlbW92ZSBkaXJlY3RvcmllcyBmcm9tIHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIFJlbW92ZXMgZW50cmllcyBmcm9tIHRoZSBkaXJlY3Rvcnkgc3RhY2suICBXaXRoIG5vIGFyZ3VtZW50cywgcmVtb3Zlc1xuIgoiICAgIHRoZSB0b3AgZGlyZWN0b3J5IGZyb20gdGhlIHN0YWNrLCBhbmQgY2hhbmdlcyB0byB0aGUgbmV3IHRvcCBkaXJlY3RvcnkuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1uXHRTdXBwcmVzc2VzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIHJlbW92aW5nXG4iCiIgICAgXHRkaXJlY3RvcmllcyBmcm9tIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCArMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGZpcnN0IGRpcmVjdG9yeSwgYHBvcGQgKzEnIHRoZSBzZWNvbmQuXG4iCiIgICAgXG4iCiIgICAgICAtTlx0UmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCAtMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGxhc3QgZGlyZWN0b3J5LCBgcG9wZCAtMScgdGhlIG5leHQgdG8gbGFzdC5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgYXJndW1lbnQgaXMgc3VwcGxpZWQgb3IgdGhlIGRpcmVjdG9yeVxuIgoiICAgIGNoYW5nZSBmYWlscy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxODE1Cm1zZ2lkICIiCiJEaXNwbGF5IGRpcmVjdG9yeSBzdGFjay5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5IHRoZSBsaXN0IG9mIGN1cnJlbnRseSByZW1lbWJlcmVkIGRpcmVjdG9yaWVzLiAgRGlyZWN0b3JpZXNcbiIKIiAgICBmaW5kIHRoZWlyIHdheSBvbnRvIHRoZSBsaXN0IHdpdGggdGhlIGBwdXNoZCcgY29tbWFuZDsgeW91IGNhbiBnZXRcbiIKIiAgICBiYWNrIHVwIHRocm91Z2ggdGhlIGxpc3Qgd2l0aCB0aGUgYHBvcGQnIGNvbW1hbmQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1jXHRjbGVhciB0aGUgZGlyZWN0b3J5IHN0YWNrIGJ5IGRlbGV0aW5nIGFsbCBvZiB0aGUgZWxlbWVudHNcbiIKIiAgICAgIC1sXHRkbyBub3QgcHJpbnQgdGlsZGUtcHJlZml4ZWQgdmVyc2lvbnMgb2YgZGlyZWN0b3JpZXMgcmVsYXRpdmVcbiIKIiAgICBcdHRvIHlvdXIgaG9tZSBkaXJlY3RvcnlcbiIKIiAgICAgIC1wXHRwcmludCB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggb25lIGVudHJ5IHBlciBsaW5lXG4iCiIgICAgICAtdlx0cHJpbnQgdGhlIGRpcmVjdG9yeSBzdGFjayB3aXRoIG9uZSBlbnRyeSBwZXIgbGluZSBwcmVmaXhlZFxuIgoiICAgIFx0d2l0aCBpdHMgcG9zaXRpb24gaW4gdGhlIHN0YWNrXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdERpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biAiCiJieVxuIgoiICAgIFx0ZGlycyB3aGVuIGludm9rZWQgd2l0aG91dCBvcHRpb25zLCBzdGFydGluZyB3aXRoIHplcm8uXG4iCiIgICAgXG4iCiIgICAgICAtTlx0RGlzcGxheXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSByaWdodCBvZiB0aGUgbGlzdCBzaG93biAiCiJieVxuIgoiICAgIFx0ZGlycyB3aGVuIGludm9rZWQgd2l0aG91dCBvcHRpb25zLCBzdGFydGluZyB3aXRoIHplcm8uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTg0NAptc2dpZCAiIgoiU2V0IGFuZCB1bnNldCBzaGVsbCBvcHRpb25zLlxuIgoiICAgIFxuIgoiICAgIENoYW5nZSB0aGUgc2V0dGluZyBvZiBlYWNoIHNoZWxsIG9wdGlvbiBPUFROQU1FLiAgV2l0aG91dCBhbnkgb3B0aW9uXG4iCiIgICAgYXJndW1lbnRzLCBsaXN0IGFsbCBzaGVsbCBvcHRpb25zIHdpdGggYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIG9yIG5vdCAiCiJlYWNoXG4iCiIgICAgaXMgc2V0LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtb1x0cmVzdHJpY3QgT1BUTkFNRXMgdG8gdGhvc2UgZGVmaW5lZCBmb3IgdXNlIHdpdGggYHNldCAtbydcbiIKIiAgICAgIC1wXHRwcmludCBlYWNoIHNoZWxsIG9wdGlvbiB3aXRoIGFuIGluZGljYXRpb24gb2YgaXRzIHN0YXR1c1xuIgoiICAgICAgLXFcdHN1cHByZXNzIG91dHB1dFxuIgoiICAgICAgLXNcdGVuYWJsZSAoc2V0KSBlYWNoIE9QVE5BTUVcbiIKIiAgICAgIC11XHRkaXNhYmxlICh1bnNldCkgZWFjaCBPUFROQU1FXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIE9QVE5BTUUgaXMgZW5hYmxlZDsgZmFpbHMgaWYgYW4gaW52YWxpZCBvcHRpb24gaXNcbiIKIiAgICBnaXZlbiBvciBPUFROQU1FIGlzIGRpc2FibGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE4NjUKbXNnaWQgIiIKIkZvcm1hdHMgYW5kIHByaW50cyBBUkdVTUVOVFMgdW5kZXIgY29udHJvbCBvZiB0aGUgRk9STUFULlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtdiB2YXJcdGFzc2lnbiB0aGUgb3V0cHV0IHRvIHNoZWxsIHZhcmlhYmxlIFZBUiByYXRoZXIgdGhhblxuIgoiICAgIFx0XHRkaXNwbGF5IGl0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXRcbiIKIiAgICBcbiIKIiAgICBGT1JNQVQgaXMgYSBjaGFyYWN0ZXIgc3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIG9iamVjdHM6ICIKInBsYWluXG4iCiIgICAgY2hhcmFjdGVycywgd2hpY2ggYXJlIHNpbXBseSBjb3BpZWQgdG8gc3RhbmRhcmQgb3V0cHV0OyBjaGFyYWN0ZXIgIgoiZXNjYXBlXG4iCiIgICAgc2VxdWVuY2VzLCB3aGljaCBhcmUgY29udmVydGVkIGFuZCBjb3BpZWQgdG8gdGhlIHN0YW5kYXJkIG91dHB1dDsgYW5kXG4iCiIgICAgZm9ybWF0IHNwZWNpZmljYXRpb25zLCBlYWNoIG9mIHdoaWNoIGNhdXNlcyBwcmludGluZyBvZiB0aGUgbmV4dCAiCiJzdWNjZXNzaXZlXG4iCiIgICAgYXJndW1lbnQuXG4iCiIgICAgXG4iCiIgICAgSW4gYWRkaXRpb24gdG8gdGhlIHN0YW5kYXJkIGZvcm1hdCBzcGVjaWZpY2F0aW9ucyBkZXNjcmliZWQgaW4gcHJpbnRmIgoiKDEpXG4iCiIgICAgYW5kIHByaW50ZigzKSwgcHJpbnRmIGludGVycHJldHM6XG4iCiIgICAgXG4iCiIgICAgICAlYlx0ZXhwYW5kIGJhY2tzbGFzaCBlc2NhcGUgc2VxdWVuY2VzIGluIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50XG4iCiIgICAgICAlcVx0cXVvdGUgdGhlIGFyZ3VtZW50IGluIGEgd2F5IHRoYXQgY2FuIGJlIHJldXNlZCBhcyBzaGVsbCBpbnB1dFxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYSB3cml0ZSBvciAiCiJhc3NpZ25tZW50XG4iCiIgICAgZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE4OTIKbXNnaWQgIiIKIlNwZWNpZnkgaG93IGFyZ3VtZW50cyBhcmUgdG8gYmUgY29tcGxldGVkIGJ5IFJlYWRsaW5lLlxuIgoiICAgIFxuIgoiICAgIEZvciBlYWNoIE5BTUUsIHNwZWNpZnkgaG93IGFyZ3VtZW50cyBhcmUgdG8gYmUgY29tcGxldGVkLiAgSWYgbm8gIgoib3B0aW9uc1xuIgoiICAgIGFyZSBzdXBwbGllZCwgZXhpc3RpbmcgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9ucyBhcmUgcHJpbnRlZCBpbiBhIHdheSAiCiJ0aGF0XG4iCiIgICAgYWxsb3dzIHRoZW0gdG8gYmUgcmV1c2VkIGFzIGlucHV0LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtcFx0cHJpbnQgZXhpc3RpbmcgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9ucyBpbiBhIHJldXNhYmxlIGZvcm1hdFxuIgoiICAgICAgLXJcdHJlbW92ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgZWFjaCBOQU1FLCBvciwgaWYgbm9cbiIKIiAgICBcdE5BTUVzIGFyZSBzdXBwbGllZCwgYWxsIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbnNcbiIKIiAgICBcbiIKIiAgICBXaGVuIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLCB0aGUgYWN0aW9ucyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgdGhlXG4iCiIgICAgdXBwZXJjYXNlLWxldHRlciBvcHRpb25zIGFyZSBsaXN0ZWQgYWJvdmUuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTkxNQptc2dpZCAiIgoiRGlzcGxheSBwb3NzaWJsZSBjb21wbGV0aW9ucyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgSW50ZW5kZWQgdG8gYmUgdXNlZCBmcm9tIHdpdGhpbiBhIHNoZWxsIGZ1bmN0aW9uIGdlbmVyYXRpbmcgcG9zc2libGVcbiIKIiAgICBjb21wbGV0aW9ucy4gIElmIHRoZSBvcHRpb25hbCBXT1JEIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCBtYXRjaGVzICIKImFnYWluc3RcbiIKIiAgICBXT1JEIGFyZSBnZW5lcmF0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTkzMAptc2dpZCAiIgoiTW9kaWZ5IG9yIGRpc3BsYXkgY29tcGxldGlvbiBvcHRpb25zLlxuIgoiICAgIFxuIgoiICAgIE1vZGlmeSB0aGUgY29tcGxldGlvbiBvcHRpb25zIGZvciBlYWNoIE5BTUUsIG9yLCBpZiBubyBOQU1FcyBhcmUgIgoic3VwcGxpZWQsXG4iCiIgICAgdGhlIGNvbXBsZXRpb24gY3VycmVudGx5IGJlZ2luIGV4ZWN1dGVkLiAgSWYgbm8gT1BUSU9OcyBhcmUgZ2l2ZW5tLCAiCiJwcmludFxuIgoiICAgIHRoZSBjb21wbGV0aW9uIG9wdGlvbnMgZm9yIGVhY2ggTkFNRSBvciB0aGUgY3VycmVudCBjb21wbGV0aW9uICIKInNwZWNpZmljYXRpb24uXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICBcdC1vIG9wdGlvblx0U2V0IGNvbXBsZXRpb24gb3B0aW9uIE9QVElPTiBmb3IgZWFjaCBOQU1FXG4iCiIgICAgXG4iCiIgICAgVXNpbmcgYCtvJyBpbnN0ZWFkIG9mIGAtbycgdHVybnMgb2ZmIHRoZSBzcGVjaWZpZWQgb3B0aW9uLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICBcbiIKIiAgICBFYWNoIE5BTUUgcmVmZXJzIHRvIGEgY29tbWFuZCBmb3Igd2hpY2ggYSBjb21wbGV0aW9uIHNwZWNpZmljYXRpb24gbXVzdFxuIgoiICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGRlZmluZWQgdXNpbmcgdGhlIGBjb21wbGV0ZScgYnVpbHRpbi4gIElmIG5vIE5BTUVzXG4iCiIgICAgYXJlIHN1cHBsaWVkLCBjb21wb3B0IG11c3QgYmUgY2FsbGVkIGJ5IGEgZnVuY3Rpb24gY3VycmVudGx5IGdlbmVyYXRpbmdcbiIKIiAgICBjb21wbGV0aW9ucywgYW5kIHRoZSBvcHRpb25zIGZvciB0aGF0IGN1cnJlbnRseS1leGVjdXRpbmcgY29tcGxldGlvblxuIgoiICAgIGdlbmVyYXRvciBhcmUgbW9kaWZpZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBOQU1FIGRvZXMgbm90XG4iCiIgICAgaGF2ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBkZWZpbmVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5NTgKbXNnaWQgIiIKIlJlYWQgbGluZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQgaW50byBhbiBhcnJheSB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBSZWFkIGxpbmVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IGludG8gdGhlIGFycmF5IHZhcmlhYmxlIEFSUkFZLCBvciAiCiJmcm9tXG4iCiIgICAgZmlsZSBkZXNjcmlwdG9yIEZEIGlmIHRoZSAtdSBvcHRpb24gaXMgc3VwcGxpZWQuICBUaGUgdmFyaWFibGUgTUFQRklMRSAiCiJpc1xuIgoiICAgIHRoZSBkZWZhdWx0IEFSUkFZLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtbiBjb3VudFx0Q29weSBhdCBtb3N0IENPVU5UIGxpbmVzLiAgSWYgQ09VTlQgaXMgMCwgYWxsIGxpbmVzIGFyZSAiCiJjb3BpZWQuXG4iCiIgICAgICAtTyBvcmlnaW5cdEJlZ2luIGFzc2lnbmluZyB0byBBUlJBWSBhdCBpbmRleCBPUklHSU4uICBUaGUgZGVmYXVsdCAiCiJpbmRleCBpcyAwLlxuIgoiICAgICAgLXMgY291bnQgXHREaXNjYXJkIHRoZSBmaXJzdCBDT1VOVCBsaW5lcyByZWFkLlxuIgoiICAgICAgLXRcdFx0UmVtb3ZlIGEgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGVhY2ggbGluZSByZWFkLlxuIgoiICAgICAgLXUgZmRcdFx0UmVhZCBsaW5lcyBmcm9tIGZpbGUgZGVzY3JpcHRvciBGRCBpbnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCAiCiJpbnB1dC5cbiIKIiAgICAgIC1DIGNhbGxiYWNrXHRFdmFsdWF0ZSBDQUxMQkFDSyBlYWNoIHRpbWUgUVVBTlRVTSBsaW5lcyBhcmUgcmVhZC5cbiIKIiAgICAgIC1jIHF1YW50dW1cdFNwZWNpZnkgdGhlIG51bWJlciBvZiBsaW5lcyByZWFkIGJldHdlZW4gZWFjaCBjYWxsIHRvICIKIkNBTExCQUNLLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICAgIEFSUkFZXHRcdEFycmF5IHZhcmlhYmxlIG5hbWUgdG8gdXNlIGZvciBmaWxlIGRhdGEuXG4iCiIgICAgXG4iCiIgICAgSWYgLUMgaXMgc3VwcGxpZWQgd2l0aG91dCAtYywgdGhlIGRlZmF1bHQgcXVhbnR1bSBpcyA1MDAwLiAgV2hlblxuIgoiICAgIENBTExCQUNLIGlzIGV2YWx1YXRlZCwgaXQgaXMgc3VwcGxpZWQgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGFycmF5XG4iCiIgICAgZWxlbWVudCB0byBiZSBhc3NpZ25lZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50LlxuIgoiICAgIFxuIgoiICAgIElmIG5vdCBzdXBwbGllZCB3aXRoIGFuIGV4cGxpY2l0IG9yaWdpbiwgbWFwZmlsZSB3aWxsIGNsZWFyIEFSUkFZICIKImJlZm9yZVxuIgoiICAgIGFzc2lnbmluZyB0byBpdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIGdpdmVuIG9yIEFSUkFZIGlzIHJlYWRvbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5OTAKbXNnaWQgIiIKIlJlYWQgbGluZXMgZnJvbSBhIGZpbGUgaW50byBhbiBhcnJheSB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBBIHN5bm9ueW0gZm9yIGBtYXBmaWxlJy4iCm1zZ3N0ciAiIgoKI34gbXNnaWQgIk1pc3NpbmcgYH0nIgojfiBtc2dzdHIgIkZlaGxlbmRlIGB9Jy4iCgojfiBtc2dpZCAiYnJhY2VfZXhwYW5kPiAiCiN+IG1zZ3N0ciAiS2xhbW1lcmVyd2VpdGVydW5nPiIKCiN+IG1zZ2lkICJBdHRlbXB0IHRvIGZyZWUgdW5rbm93biBjb21tYW5kIHR5cGUgYCVkJy5cbiIKI34gbXNnc3RyICJWZXJzdWNoZSBkZW4gdW5iZWthbm50ZW4gS29tbWFuZG90eXAgYCVkJyB6dSBmcmVpenVnZWJlbi5cbiIKCiN+IG1zZ2lkICJSZXBvcnQgdGhpcyB0byAlc1xuIgojfiBtc2dzdHIgIlNjaGlja2UgZWluZSBGZWhsZXJtZWxkdW5nIGFuOiAlc1xuIgoKI34gbXNnaWQgIlN0b3BwaW5nIG15c2VsZi4uLiIKI34gbXNnc3RyICJBYmJydWNoIC4uLiIKCiN+IG1zZ2lkICJUZWxsICVzIHRvIGZpeCB0aGlzIHNvbWVkYXkuXG4iCiN+IG1zZ3N0ciAiU2NoaWNrZSBlaW5lIEZlaGxlcm1lbGR1bmcgYW46ICVzXG4iCgojIFByb2dyYW1taWVyZmVobGVyCiN+IG1zZ2lkICJleGVjdXRlX2NvbW1hbmQ6IGJhZCBjb21tYW5kIHR5cGUgYCVkJyIKI34gbXNnc3RyICJleGVjdXRlX2NvbW1hbmQ6IEZhbHNjaGVyIEtvbW1hbmRvdHlwIGAlZCcuIgoKI34gbXNnaWQgInJlYWxcdCIKI34gbXNnc3RyICJHZXNhbXRcdCIKCiN+IG1zZ2lkICJ1c2VyXHQiCiN+IG1zZ3N0ciAiTnV0emVyXHQiCgojfiBtc2dpZCAic3lzXHQiCiN+IG1zZ3N0ciAiU3lzdGVtXHQiCgojfiBtc2dpZCAiIgojfiAicmVhbFx0MG0wLjAwc1xuIgojfiAidXNlclx0MG0wLjAwc1xuIgojfiAic3lzXHQwbTAuMDBzXG4iCiN+IG1zZ3N0ciAiIgojfiAiR2VzYW10XHQwbTAuMDBzXG4iCiN+ICJOdXR6ZXJcdDBtMC4wMHNcbiIKI34gIlN5c3RlbVx0MG0wLjAwc1xuIgoKI34gbXNnaWQgImNhbm5vdCBkdXBsaWNhdGUgZmQgJWQgdG8gZmQgMTogJXMiCiN+IG1zZ3N0ciAiS2FubiBmZCAlZCBuaWNodCBhdWYgZmQgMSB2ZXJkb3BwZWxuOiAlcyIKCiN+IG1zZ2lkICIlczogb3V0cHV0IHJlZGlyZWN0aW9uIHJlc3RyaWN0ZWQiCiN+IG1zZ3N0ciAiJXM6IERhcyBVbWxlbmtlbiBkZXIgQXVzZ2FiZSBpc3QgdmVyYm90ZW4uIgoKI34gbXNnaWQgIk91dCBvZiBtZW1vcnkhIgojfiBtc2dzdHIgIkFyYmVpdHNzcGVpY2hlciBlcnNjaPZwZnQhIgoKIyBEZWJ1ZyBBdXNnYWJlCiN+IG1zZ2lkICJZb3UgaGF2ZSBhbHJlYWR5IGFkZGVkIGl0ZW0gYCVzJ1xuIgojfiBtc2dzdHIgIllvdSBoYXZlIGFscmVhZHkgYWRkZWQgaXRlbSBgJXMnLlxuIgoKIyBEZWJ1ZyBBdXNnYWJlCiN+IG1zZ2lkICJZb3UgaGF2ZSBlbnRlcmVkICVkICglZCkgaXRlbXMuICBUaGUgZGlzdHJpYnV0aW9uIGlzOlxuIgojfiBtc2dzdHIgIllvdSBoYXZlIGVudGVyZWQgJWQgKCVkKSBpdGVtcy4gVGhlIGRpc3RyaWJ1dGlvbiBpczpcbiIKCiN+IG1zZ2lkICI8dW5rbm93bj4iCiN+IG1zZ3N0ciAiPHVuYmVrYW5udD4iCgojfiBtc2dpZCAiJXM6IGJnIGJhY2tncm91bmQgam9iPyIKI34gbXNnc3RyICIlczogYmcgSGludGVyZ3J1bmRwcm96Zd8/IgoKIyBQcm9ncmFtbWllcmZlaGxlcgojfiBtc2dpZCAiIgojfiAiUmVkaXJlY3Rpb24gaW5zdHJ1Y3Rpb24gZnJvbSB5eXBhcnNlICgpICclZCcgaXNcbiIKI34gIm91dCBvZiByYW5nZSBpbiBtYWtlX3JlZGlyZWN0aW9uICgpLiIKI34gbXNnc3RyICIiCiN+ICJVbWxlbmt1bmcgdm9uIHl5cGFyc2UoKSBgJWQnIGluIG1ha2VfcmVkaXJlY3Rpb25cbiIKI34gImlzdCBhdd9lcmhhbGIgZGVzIHp1bORzc2lnZW4gQmVyZWljaHMuIgoKIyBQcm9ncmFtbWllcmZlaGxlcgojfiBtc2dpZCAiY2xlYW5fc2ltcGxlX2NvbW1hbmQgKCkgZ290IGEgY29tbWFuZCB3aXRoIHR5cGUgJWQuIgojfiBtc2dzdHIgImNsZWFuX3NpbXBsZV9jb21tYW5kICgpIGVyaGllbHQgZWluIEtvbW1hbmRvIHZvbSBUeXAgJWQuIgoKI34gbXNnaWQgImdvdCBlcnJubyAlZCB3aGlsZSB3YWl0aW5nIGZvciAlZCIKI34gbXNnc3RyICJFcmhpZWx0IEZlaGxlcm51bW1lciAlZCBiZWltIFdhcnRlbiBhdWYgJWQuIgoKI34gbXNnaWQgInN5bnRheCBlcnJvciBuZWFyIHVuZXhwZWN0ZWQgdG9rZW4gYCVjJyIKI34gbXNnc3RyICJTeW50YXhmZWhsZXIgYmVpbSB1bmVyd2FydGV0ZW4gWmVpY2hlbiBgJWMnIgoKI34gbXNnaWQgInByaW50X2NvbW1hbmQ6IGJhZCBjb21tYW5kIHR5cGUgYCVkJyIKI34gbXNnc3RyICJwcmludF9jb21tYW5kOiBGYWxzY2hlciBLb21tYW5kb3R5cCBgJWQnLiIKCiN+IG1zZ2lkICJjcHJpbnRmOiBiYWQgYCUlJyBhcmd1bWVudCAoJWMpIgojfiBtc2dzdHIgImNwcmludGY6IEZhbHNjaGVzIGAlJScgQXJndW1lbnQgKCVjKSIKCiN+IG1zZ2lkICJvcHRpb24gYCVzJyByZXF1aXJlcyBhbiBhcmd1bWVudCIKI34gbXNnc3RyICJPcHRpb24gYCVzJyBlcmZvcmRlcnQgZWluIEFyZ3VtZW50LiIKCiN+IG1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiIKI34gbXNnc3RyICIlczogT3B0aW9uIG5pY2h0IGVya2FubnQuIgoKI34gbXNnaWQgImAtYycgcmVxdWlyZXMgYW4gYXJndW1lbnQiCiN+IG1zZ3N0ciAiYC1jJyBlcmZvcmRlcnQgZWluIEFyZ3VtZW50LiIKCiN+IG1zZ2lkICIlczogY2Fubm90IGV4ZWN1dGUgZGlyZWN0b3JpZXMiCiN+IG1zZ3N0ciAiJXM6IEthbm4gVmVyemVpY2huaXNzZSBuaWNodCBhdXNm/GhyZW4uIgoKIyBpbnRlcm5lciBGZWhsZXIKI34gbXNnaWQgIkJhZCBjb2RlIGluIHNpZy5jOiBzaWdwcm9jbWFzayIKI34gbXNnc3RyICJGYWxzY2hlciBDb2RlIGluIHNpZy5jOiBTaWdwcm9jbWFzay4iCgojfiBtc2dpZCAiY2FuJ3QgbWFrZSBwaXBlcyBmb3IgcHJvY2VzcyBzdWJzdGl0dXRpb246ICVzIgojfiBtc2dzdHIgIkthbm4ga2VpbmUgUGlwZXMgZvxyIGRpZSBQcm96Zd9lcnNldHp1bmcgZXJ6ZXVnZW46ICVzLiIKCiN+IG1zZ2lkICJyZWFkaW5nIgojfiBtc2dzdHIgImxlc2UiCgojfiBtc2dpZCAicHJvY2VzcyBzdWJzdGl0dXRpb24iCiN+IG1zZ3N0ciAiUHJvemXfZXJzZXR6dW5nIgoKI34gbXNnaWQgImNvbW1hbmQgc3Vic3RpdHV0aW9uIgojfiBtc2dzdHIgIktvbW1hbmRvZXJzZXR6dW5nIgoKIyBpbnRlcm5lciBGZWhsZXIKI34gbXNnaWQgIkNhbid0IHJlb3BlbiBwaXBlIHRvIGNvbW1hbmQgc3Vic3RpdHV0aW9uIChmZCAlZCk6ICVzIgojfiBtc2dzdHIgIkthbm4gUGlwZSBm/HIgS29tbWFuZG9lcnNldHp1bmcgbmljaHQgd2llZGVyIPZmZm5lbiAoZmQgJWQpOiAlcy4iCgojfiBtc2dpZCAiJCVjOiB1bmJvdW5kIHZhcmlhYmxlIgojfiBtc2dzdHIgIiQlYyBpc3QgbmljaHQgZ2VzZXR6dC4iCgojfiBtc2dpZCAiJXM6IGJhZCBhcml0aG1ldGljIHN1YnN0aXR1dGlvbiIKI34gbXNnc3RyICIlczogRmFsc2NoZSBhcml0aG1ldGlzY2hlIEVyc2V0enVuZy4iCgojfiBtc2dpZCAiLSVzOiBiaW5hcnkgb3BlcmF0b3IgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiLSVzOiBad2Vpc3RlbGxpZ2VyIChiaW7kcmVyKSBPcGVyYXRvciBlcndhcnRldC4iCgojfiBtc2dpZCAiJXNbJXM6IGJhZCBzdWJzY3JpcHQiCiN+IG1zZ3N0ciAiJXNbJXM6IEZhbHNjaGVyIEluZGV4LiIKCiN+IG1zZ2lkICJbJXM6IGJhZCBzdWJzY3JpcHQiCiN+IG1zZ3N0ciAiWyVzOiBGYWxzY2hlciBJbmRleC4iCgojIFRlc3Rwcm9ncmFtbSBm/HIgc2hfZ2V0b3B0cwojfiBtc2dpZCAiZGlnaXRzIG9jY3VyIGluIHR3byBkaWZmZXJlbnQgYXJndi1lbGVtZW50cy5cbiIKI34gbXNnc3RyICJaaWZmZXIgdGF1Y2h0IGluIHp3ZWkgdmVyc2NoaWVkZW5lbiBFbGVtZW50ZW4gdm9uIGFyZ3YgYXVmLlxuIgoKI34gbXNnaWQgIm9wdGlvbiAlY1xuIgojfiBtc2dzdHIgIk9wdGlvbiAlY1xuIgoKI34gbXNnaWQgIm9wdGlvbiBhXG4iCiN+IG1zZ3N0ciAiT3B0aW9uIGFcbiIKCiN+IG1zZ2lkICJvcHRpb24gYlxuIgojfiBtc2dzdHIgIk9wdGlvbiBiXG4iCgojfiBtc2dpZCAib3B0aW9uIGMgd2l0aCB2YWx1ZSBgJXMnXG4iCiN+IG1zZ3N0ciAiT3B0aW9uIGMgbWl0IFdlcnQgYCVzJ1xuIgoKIyBUZXN0cHJvZ3JhbW0gZvxyIHNoX2dldG9wdHMKI34gbXNnaWQgIj8/IHNoX2dldG9wdCByZXR1cm5lZCBjaGFyYWN0ZXIgY29kZSAwJW8gPz9cbiIKI34gbXNnc3RyICI/PyBzaF9nZXRvcHQgZ2FiIENvZGUgMCVvIHp1cvxjaz8/XG4iCgojIFRlc3Rwcm9ncmFtbSBm/HIgc2hfZ2V0b3B0cwojfiBtc2dpZCAibm9uLW9wdGlvbiBBUkdWLWVsZW1lbnRzOiAiCiN+IG1zZ3N0ciAiRWxlbWVudGUgdm9uIEFSR1YsIGRpZSBrZWluZSBPcHRpb25lbiBzaW5kOiAiCgojIG1rYnVpbGx0aW5zIEhpbGZzcHJvZ3JhbW0KI34gbXNnaWQgIiVzOiBVbmtub3duIGZsYWcgJXMuXG4iCiN+IG1zZ3N0ciAiJXM6IFVuYmVrYW5udGVyIFNjaGFsdGVyICVzLlxuIgoKIyBta2J1aWx0aW5zIEhpbGZzcHJvZ3JhbW0KI34gbXNnaWQgIlVua25vd24gZGlyZWN0aXZlIGAlcyciCiN+IG1zZ3N0ciAiVW5iZWthbm50ZSBBbndlaXN1bmcgYCVzJy4iCgojfiBtc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnQiCiN+IG1zZ3N0ciAiJXMgZXJmb3JkZXJ0IGVpbiBBcmd1bWVudC4iCgojfiBtc2dpZCAiJXMgbXVzdCBiZSBpbnNpZGUgb2YgYSAkQlVJTFRJTiBibG9jayIKI34gbXNnc3RyICIlcyBtdd8gaW5uZXJoYWxiIGVpbmVzICRCVUlMVElOIEJsb2NrcyBzdGVoZW4uIgoKI34gbXNnaWQgIiVzIGZvdW5kIGJlZm9yZSAkRU5EIgojfiBtc2dzdHIgIiVzIHZvciAkRU5EIGdlZnVuZGVuLiIKCiN+IG1zZ2lkICIlcyBhbHJlYWR5IGhhcyBhIGZ1bmN0aW9uICglcykiCiN+IG1zZ3N0ciAiJXMgaGF0IHNjaG9uIGVpbmUgRnVua3Rpb24gKCVzKS4iCgojIGRvY25hbWUgLS0+IEJlemVpY2hudW5nID8/CiN+IG1zZ2lkICIlcyBhbHJlYWR5IGhhZCBhIGRvY25hbWUgKCVzKSIKI34gbXNnc3RyICIlcyBoYXQgc2Nob24gZWluZSBCZXplaWNobnVuZyAoJXMpLiIKCiN+IG1zZ2lkICIlcyBhbHJlYWR5IGhhcyBzaG9ydCBkb2N1bWVudGF0aW9uICglcykiCiN+IG1zZ3N0ciAiJXMgaGF0IHNjaG9uIGVpbmUgS3VyemJlc2NocmVpYnVuZyAoJXMpLiIKCiN+IG1zZ2lkICIlcyBhbHJlYWR5IGhhcyBhICVzIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiJXMgaXN0IHNjaG9uICAlcyBkZWZpbmllcnQuIgoKIyBta2J1aWxkaW5zIEhpbGZzcHJvZ3JhbW0KI34gbXNnaWQgIm1rYnVpbHRpbnM6IE91dCBvZiB2aXJ0dWFsIG1lbW9yeSFcbiIKI34gbXNnc3RyICJta2J1aWx0aW5zOiBWaXJ0dWVsbGVyIFNwZWljaGVyIGVyc2No9nBmdCFcbiIKCiN+IG1zZ2lkICJyZWFkIFstcl0gWy1wIHByb21wdF0gWy1hIGFycmF5XSBbLWVdIFtuYW1lIC4uLl0iCiN+IG1zZ3N0ciAiIgojfiAicmVhZCBbLXJdIFstcCBFaW5nYWJlYXVmZm9yZGVydW5nXSBbLWEgRmVsZHZhcmlhYmxlXSBbLWVdIFtOYW1lIC4uLl0iCgojfiBtc2dpZCAiJVtESUdJVFMgfCBXT1JEXSBbJl0iCiN+IG1zZ3N0ciAiJVtaaWZmZXJuIHwgV29ydF0gWyZdIgoKI34gbXNnaWQgInZhcmlhYmxlcyAtIFNvbWUgdmFyaWFibGUgbmFtZXMgYW5kIG1lYW5pbmdzIgojfiBtc2dzdHIgIlZhcmlhYmxlbiAtIEVpbmlnZSBWYXJpYWJsZW5uYW1lbiB1bmQgaWhyZSBCZWRldXR1bmciCgojIGFsaWFzCiN+IG1zZ2lkICJgYWxpYXMnIHdpdGggbm8gYXJndW1lbnRzIG9yIHdpdGggdGhlIC1wIG9wdGlvbiBwcmludHMgdGhlIGxpc3QiCiN+IG1zZ3N0ciAiYGFsaWFzJyBvaG5lIEFyZ3VtZW50ZSBvZGVyIG1pdCBkZXIgT3B0aW9uIC1wIGdpYnQgZGllIExpc3RlIGRlciIKCiN+IG1zZ2lkICJvZiBhbGlhc2VzIGluIHRoZSBmb3JtIGFsaWFzIE5BTUU9VkFMVUUgb24gc3RhbmRhcmQgb3V0cHV0LiIKI34gbXNnc3RyICJTeW5vbnltZSBpbiBkZXIgRm9ybSBOQU1FPVdFUlQgYXVmIGRpZSBTdGFuZGFyZGF1c2dhYmUgYXVzLiIKCiN+IG1zZ2lkICJPdGhlcndpc2UsIGFuIGFsaWFzIGlzIGRlZmluZWQgZm9yIGVhY2ggTkFNRSB3aG9zZSBWQUxVRSBpcyBnaXZlbi4iCiN+IG1zZ3N0ciAiIgojfiAiU29uc3Qgd2lyZCBlaW4gU3lub255bSBm/HIgamVkZW4gTkFNRU4gZGVmaW5pZXJ0LCBkZXNzZW4gV0VSVCBhbmdlZ2ViZW4gIgojfiAid2lyZC4iCgojfiBtc2dpZCAiQSB0cmFpbGluZyBzcGFjZSBpbiBWQUxVRSBjYXVzZXMgdGhlIG5leHQgd29yZCB0byBiZSBjaGVja2VkIGZvciIKI34gbXNnc3RyICIiCiN+ICJFaW4gTGVlcnplaWNoZW4gbmFjaCBXRVJUIGJld2lya3QsIGRh3yBkYXMgbuRjaHN0ZSBXT1JUIGF1ZiBlaW4gU3lub255bSIKCiN+IG1zZ2lkICJhbGlhcyBzdWJzdGl0dXRpb24gd2hlbiB0aGUgYWxpYXMgaXMgZXhwYW5kZWQuICBBbGlhcyByZXR1cm5zIgojfiBtc2dzdHIgIiIKI34gInVudGVyc3VjaHQgd2lyZCB3ZW5uIFNZTk9OWU0gYXVzZ2V3ZXJ0ZXQgd2lyZC4gYEFsaWFzJyBnaWJ0IHdhaHIgenVy/GNrLCIKCiN+IG1zZ2lkICJ0cnVlIHVubGVzcyBhIE5BTUUgaXMgZ2l2ZW4gZm9yIHdoaWNoIG5vIGFsaWFzIGhhcyBiZWVuIGRlZmluZWQuIgojfiBtc2dzdHIgIiIKI34gImF132VyIHdlbm4gZWluIE5BTUUgYW5nZWdlYmVuIHd1cmRlLCBm/HIgZGVuIGtlaW4gU1lOT05ZTSB2b3JoYW5kZW4gaXN0LiIKCiMgdW5hbGlhcwojfiBtc2dpZCAiIgojfiAiUmVtb3ZlIE5BTUVzIGZyb20gdGhlIGxpc3Qgb2YgZGVmaW5lZCBhbGlhc2VzLiAgSWYgdGhlIC1hIG9wdGlvbiBpcyBnaXZlbiwiCiN+IG1zZ3N0ciAiRW50ZmVybnQgTkFNRW4gYXVzIGRlciBMaXN0ZSBkZXIgU3lub255bWUuIFdlbm4gZGllIE9wdGlvbiAtYSIKCiN+IG1zZ2lkICJ0aGVuIHJlbW92ZSBhbGwgYWxpYXMgZGVmaW5pdGlvbnMuIgojfiBtc2dzdHIgImFuZ2VnZWJlbiBpc3QsIHdlcmRlbiBhbGxlIFN5bm9ueW1lIGdlbPZzY2h0LiIKCiMgcmVhZGxpbmUKI34gbXNnaWQgIkJpbmQgYSBrZXkgc2VxdWVuY2UgdG8gYSBSZWFkbGluZSBmdW5jdGlvbiwgb3IgdG8gYSBtYWNyby4gIFRoZSIKI34gbXNnc3RyICIiCiN+ICJWZXJiaW5kZXQgZWluZSBUYXN0ZW5mb2xnZSBtaXQgZWluZXIgUmVhZGxpbmUtRnVua3Rpb24gb2RlciBlaW5lbSBNYWtyby4gIgojfiAiRGllIgoKI34gbXNnaWQgInN5bnRheCBpcyBlcXVpdmFsZW50IHRvIHRoYXQgZm91bmQgaW4gfi8uaW5wdXRyYywgYnV0IG11c3QgYmUiCiN+IG1zZ3N0ciAiIgojfiAiU3ludGF4IGVudHNwcmljaHQgZGVyIGRlciBEYXRlaSBgfi8uaW5wdXRyYycsIHNpZSBtdd8gamVkb2NoIGFscyBBcmd1bWVudCIKCiN+IG1zZ2lkICIiCiN+ICJwYXNzZWQgYXMgYSBzaW5nbGUgYXJndW1lbnQ6IGJpbmQgJ1wiXFxDLXhcXEMtclwiOiByZS1yZWFkLWluaXQtZmlsZScuIgojfiBtc2dzdHIgImFuZ2VnZWJlbiB3ZXJkZW4uIFouQi46IGJpbmQgJ1wiXFxDLXhcXEMtclwiOiByZS1yZWFkLWluaXQtZmlsZScuIgoKI34gbXNnaWQgIkFyZ3VtZW50cyB3ZSBhY2NlcHQ6IgojfiBtc2dzdHIgIkf8bHRpZ2UgQXJndW1lbnRlOiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1tICBrZXltYXAgICAgICAgICBVc2UgYGtleW1hcCcgYXMgdGhlIGtleW1hcCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoaXMiCiN+IG1zZ3N0ciAiIgojfiAiICAtbSBUYXN0YXR1cnRhYmVsbGUgd+RobHQgZGllIFRhc3RhdHVydGFiZWxsZSBm/HIgZGllIERhdWVyIGRpZXNlcyAiCiN+ICJLb21tYW5kb3MuIgoKI34gbXNnaWQgIiAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuICBBY2NlcHRhYmxlIGtleW1hcCBuYW1lcyBhcmUgZW1hY3MsIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgICAgICAgICAgIE32Z2xpY2hlIE5hbWVuIGb8ciBUYXN0YXR1cnRhYmVsbGVuIHNpbmQ6IGVtYWNzIgoKI34gbXNnaWQgIiIKI34gIiAgICAgICAgICAgICAgICAgICAgIGVtYWNzLXN0YW5kYXJkLCBlbWFjcy1tZXRhLCBlbWFjcy1jdGx4LCB2aSwgdmktbW92ZSwiCiN+IG1zZ3N0ciAiIgojfiAiICAgICAgICAgICAgICAgICAgICAgZW1hY3Mtc3RhbmRhcmQsIGVtYWNzLW1ldGEsIGVtYWNzLWN0bHgsIHZpLCB2aS1tb3ZlLCIKCiN+IG1zZ2lkICIgICAgICAgICAgICAgICAgICAgICB2aS1jb21tYW5kLCBhbmQgdmktaW5zZXJ0LiIKI34gbXNnc3RyICIgICAgICAgICAgICAgICAgICAgICB2aS1jb21tYW5kLCB1bmQgdmktaW5zZXJ0LiIKCiN+IG1zZ2lkICIgIC1sICAgICAgICAgICAgICAgICBMaXN0IG5hbWVzIG9mIGZ1bmN0aW9ucy4iCiN+IG1zZ3N0ciAiICAtbCAgICAgICAgICAgICAgICAgTGlzdGV0IGRpZSBOYW1lbiBkZXIgRnVua3Rpb25lbi4iCgojfiBtc2dpZCAiICAtUCAgICAgICAgICAgICAgICAgTGlzdCBmdW5jdGlvbiBuYW1lcyBhbmQgYmluZGluZ3MuIgojfiBtc2dzdHIgIiIKI34gIiAgLVAgICAgICAgICAgICAgICAgIExpc3RldCBkaWUgTmFtZW4gZGVyIEZ1bmt0aW9uIHVuZCBkZXJlbiAiCiN+ICJUYXN0ZW56dW9yZG51bmcuIgoKI34gbXNnaWQgIiIKI34gIiAgLXAgICAgICAgICAgICAgICAgIExpc3QgZnVuY3Rpb25zIGFuZCBiaW5kaW5ncyBpbiBhIGZvcm0gdGhhdCBjYW4gYmUiCiN+IG1zZ3N0ciAiIgojfiAiICAtcCAgICAgICAgICAgICAgICAgTGlzdGV0IGRpZSBGdW5rdGlvbnNuYW1lbiB1bmQgZGVyZW4gVGFzdGVuenVvcmRudW5nICIKI34gInNvLCIKCiN+IG1zZ2lkICIgICAgICAgICAgICAgICAgICAgICByZXVzZWQgYXMgaW5wdXQuIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgICAgICAgICAgIGRh3yBzaWUgYWxzIEVpbmdhYmUgd2llZGVydmVyd2VuZGV0IHdlcmRlbiBr9m5uZW4uIgoKI34gbXNnaWQgIiAgLXIgIGtleXNlcSAgICAgICAgIFJlbW92ZSB0aGUgYmluZGluZyBmb3IgS0VZU0VRLiIKI34gbXNnc3RyICIgIC1yICBUYXN0ZW5mb2xnZSAgICBFbnRmZXJudCBkaWUgWnVvcmRudW5nIGb8ciBUYXN0ZW5mb2xnZS4iCgojfiBtc2dpZCAiICAtZiAgZmlsZW5hbWUgICAgICAgUmVhZCBrZXkgYmluZGluZ3MgZnJvbSBGSUxFTkFNRS4iCiN+IG1zZ3N0ciAiICAtZiAgRGF0ZWluYW1lICAgICAgTGllc3QgZGllIFRhc3Rlbnp1b3JkbnVuZ2VuIHZvbiBEYXRlaW5hbWUuIgoKI34gbXNnaWQgIiIKI34gIiAgLXEgIGZ1bmN0aW9uLW5hbWUgIFF1ZXJ5IGFib3V0IHdoaWNoIGtleXMgaW52b2tlIHRoZSBuYW1lZCBmdW5jdGlvbi4iCiN+IG1zZ3N0ciAiIgojfiAiICAtcSAgRnVua3Rpb25zbmFtZSAgR2lidCBkaWUgVGFzdGVuenVvcmRudW5nIGb8ciBkZW4gRnVua3Rpb25zbmFtZW4gYXVzLiIKCiN+IG1zZ2lkICIgIC1WICAgICAgICAgICAgICAgICBMaXN0IHZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXMiCiN+IG1zZ3N0ciAiICAtViAgICAgICAgICAgICAgICAgR2lidCBWYXJpYWJsZW5uYW1lbiB1bmQgZGVyZW4gV2VydGUgYXVzLiIKCiN+IG1zZ2lkICIiCiN+ICIgIC12ICAgICAgICAgICAgICAgICBMaXN0IHZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXMgaW4gYSBmb3JtIHRoYXQgY2FuIgojfiBtc2dzdHIgIiIKI34gIiAgLXYgICAgICAgICAgICAgICAgIEdpYnQgVmFyaWFibGVubmFtZW4gdW5kIGRlcmVuIFdlcnRlIGluIGVpbmVyIEZvcm0gIgojfiAiYXVzLCIKCiN+IG1zZ2lkICIgICAgICAgICAgICAgICAgICAgICBiZSByZXVzZWQgYXMgaW5wdXQuIgojfiBtc2dzdHIgIiAgICAgICAgICAgICAgICAgICAgIGRpZSBhbHMgRWluZ2FiZSB3aWVkZXJ2ZXJ3ZW5kZXQgd2VyZGVuIGthbm4uIgoKI34gbXNnaWQgIiIKI34gIiAgLVMgICAgICAgICAgICAgICAgIExpc3Qga2V5IHNlcXVlbmNlcyB0aGF0IGludm9rZSBtYWNyb3MgYW5kIHRoZWlyICIKI34gInZhbHVlcyIKI34gbXNnc3RyICIgIC1TICAgICAgICAgICAgICAgICBHaWJ0IFRhc3RlbmZvbGdlbiBhdXMsIGRpZSBNYWtyb3MgYXVmcnVmZW4uIgoKI34gbXNnaWQgIiIKI34gIiAgLXMgICAgICAgICAgICAgICAgIExpc3Qga2V5IHNlcXVlbmNlcyB0aGF0IGludm9rZSBtYWNyb3MgYW5kIHRoZWlyICIKI34gInZhbHVlcyBpbiIKI34gbXNnc3RyICIgIC1zICAgICAgICAgICAgICAgICBHaWJ0IFRhc3RlbmZvbGdlbiBhdXMsIGRpZSBNYWtyb3MgYXVmcnVmZW4uIgoKI34gbXNnaWQgIiAgICAgICAgICAgICAgICAgICAgIGEgZm9ybSB0aGF0IGNhbiBiZSByZXVzZWQgYXMgaW5wdXQuIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgICAgICAgICAgIERpZSBBdXNnYWJlIGthbm4gYWxzIEVpbmdhYmUgd2llZGVydmVyd2VuZGV0IHdlcmRlbi4iCgojIGJyZWFrCiN+IG1zZ2lkICJFeGl0IGZyb20gd2l0aGluIGEgRk9SLCBXSElMRSBvciBVTlRJTCBsb29wLiAgSWYgTiBpcyBzcGVjaWZpZWQsIgojfiBtc2dzdHIgIiIKI34gIkJyaWNodCBlaW5lIGZvciwgd2hpbGUgb2RlciB1bnRpbCBTY2hsZWlmZSBhYi4gV2VubiBOIGFuZ2VnZWJlbiBpc3QsIGRhbm4iCgojfiBtc2dpZCAiYnJlYWsgTiBsZXZlbHMuIgojfiBtc2dzdHIgIndlcmRlbiBOIFNjaGxlaWZlbmViZW5lbiB2ZXJsYXNzZW4uIgoKIyBjb250aW51ZQojfiBtc2dpZCAiUmVzdW1lIHRoZSBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIEZPUiwgV0hJTEUgb3IgVU5USUwgbG9vcC4iCiN+IG1zZ3N0ciAiIgojfiAiU3ByaW5ndCB6dXIgbuRjaHN0ZW4gSXRlcmF0aW9uIGRlciBmb3IsIHdoaWxlIG9kZXIgdW50aWwgU2NobGVpZmUuIFdlbm4gTiIKCiN+IG1zZ2lkICJJZiBOIGlzIHNwZWNpZmllZCwgcmVzdW1lIGF0IHRoZSBOLXRoIGVuY2xvc2luZyBsb29wLiIKI34gbXNnc3RyICIiCiN+ICJhbmdlZ2ViZW4gaXN0LCB3aXJkIG1pdCBkZXIgTi10ZW4g/GJlcmdlb3JkbmV0ZW4gU2NobGVpZmUgZm9ydGdlZmFocmVuLiIKCiMgYnVpbHRpbgojfiBtc2dpZCAiUnVuIGEgc2hlbGwgYnVpbHRpbi4gIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdpc2ggdG8gcmVuYW1lIGEiCiN+IG1zZ3N0ciAiIgojfiAiRvxocnQgZWluZSBTaGVsbGZ1bmt0aW9uIGF1cy4gRGFzIGlzdCBu/HR6bGljaCwgd2VubiBlaW5lIFNoZWxsZnVua3Rpb24iCgojfiBtc2dpZCAic2hlbGwgYnVpbHRpbiB0byBiZSBhIGZ1bmN0aW9uLCBidXQgbmVlZCB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUiCiN+IG1zZ3N0ciAidW1iZW5hbm50IHd1cmRlLCBhYmVyIGRhcyB1cnNwcvxuZ2xpY2hlIFZlcmhhbHRlbiBiZW72dGlndCB3aXJkLiIKCiN+IG1zZ2lkICJidWlsdGluIHdpdGhpbiB0aGUgZnVuY3Rpb24gaXRzZWxmLiIKI34gbXNnc3RyICIgIgoKIyBjZAojfiBtc2dpZCAiQ2hhbmdlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0byBESVIuICBUaGUgdmFyaWFibGUgJEhPTUUgaXMgdGhlIgojfiBtc2dzdHIgIiIKI34gIlNldHp0IGRhcyBBcmJlaXRzdmVyemVpY2huaXMgYXVmIFZlcnouIFdlbm4gVmVyei4gbmljaHQgYW5nZWdlYmVuIGlzdCwgIgojfiAiZGFubiIKCiN+IG1zZ2lkICJkZWZhdWx0IERJUi4gIFRoZSB2YXJpYWJsZSAkQ0RQQVRIIGRlZmluZXMgdGhlIHNlYXJjaCBwYXRoIGZvciIKI34gbXNnc3RyICIiCiN+ICJ3aXJkIGluIGRhcyAkSE9NRS1WZXJ6ZWljaG5pcyBnZXdlY2hzZWx0LiBJbiBkZXIgVmFyaWFibGUgJENEUEFUSCBrYW5uICIKI34gImVpbmUiCgojfiBtc2dpZCAidGhlIGRpcmVjdG9yeSBjb250YWluaW5nIERJUi4gIEFsdGVybmF0aXZlIGRpcmVjdG9yeSBuYW1lcyBpbiBDRFBBVEgiCiN+IG1zZ3N0ciAiIgojfiAiZHVyY2ggRG9wcGVscHVua3QgKDopIGdldHJlbm50ZSBMaXN0ZSBhbmdlZ2ViZW4gd2VyZGVuLCBpbiBkZW5lbiBWZXJ6LiAiCiN+ICJnZXN1Y2h0IgoKI34gbXNnaWQgImFyZSBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAoOikuICBBIG51bGwgZGlyZWN0b3J5IG5hbWUgaXMgdGhlIHNhbWUgYXMiCiN+IG1zZ3N0ciAid2lyZC4gQmVnaW5udCBWZXJ6LiBtaXQgZWluZW0gYC8nLCB3aXJkICRDRFBBVEggbmljaHQgYmVudXR6dC4iCgojfiBtc2dpZCAidGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBpLmUuIGAuJy4gIElmIERJUiBiZWdpbnMgd2l0aCBhIHNsYXNoICgvKSwiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBkYXMgVmVyemVpY2huaXMgbmljaHQgZ2VmdW5kZW4gd2lyZCB1bmQgZGllIFNoZWxsb3B0aW9uIGBjZGFibGVfdmFycyciCgojfiBtc2dpZCAidGhlbiAkQ0RQQVRIIGlzIG5vdCB1c2VkLiAgSWYgdGhlIGRpcmVjdG9yeSBpcyBub3QgZm91bmQsIGFuZCB0aGUiCiN+IG1zZ3N0ciAiIgojfiAiZ2VzZXR6dCBpc3QsIGRhbm4gd2lyZCBWZXJ6LiBhbHMgZWluIFZhcmlhYmxlbm5hbWUgaW50ZXJwcmV0aWVydC4gRXJnaWJ0IgoKI34gbXNnaWQgInNoZWxsIG9wdGlvbiBgY2RhYmxlX3ZhcnMnIGlzIHNldCwgdGhlbiB0cnkgdGhlIHdvcmQgYXMgYSB2YXJpYWJsZSIKI34gbXNnc3RyICJkaWVzIGVpbmVuIFdlcnQgZvxyIGRpZSBWYXJpYWJsZSwgZGFubiB3aXJkIGRhcyBha3R1ZWxsZSIKCiN+IG1zZ2lkICJuYW1lLiAgSWYgdGhhdCB2YXJpYWJsZSBoYXMgYSB2YWx1ZSwgdGhlbiBjZCB0byB0aGUgdmFsdWUgb2YgdGhhdCIKI34gbXNnc3RyICIiCiN+ICJWZXJ6ZWljaG5pcyBhdWYgZGllc2VuIFdlcnQgZ2VzZXR6dC4gT3B0aW9uIC1QIHZlcmFubGHfdCBjZCBzeW1ib2xpc2NoZSIKCiN+IG1zZ2lkICIiCiN+ICJ2YXJpYWJsZS4gIFRoZSAtUCBvcHRpb24gc2F5cyB0byB1c2UgdGhlIHBoeXNpY2FsIGRpcmVjdG9yeSBzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAiVmVyd2Vpc2UgenUgaWdub3JpZXJlbjsgIC1MIGVyendpbmd0IGRhcyBCZW51dHplbiBzeW1ib2xpc2NoZXIiCgojfiBtc2dpZCAiIgojfiAiaW5zdGVhZCBvZiBmb2xsb3dpbmcgc3ltYm9saWMgbGlua3M7IHRoZSAtTCBvcHRpb24gZm9yY2VzIHN5bWJvbGljIGxpbmtzIgojfiBtc2dzdHIgIlZlcndlaXNlLiIKCiN+IG1zZ2lkICJ0byBiZSBmb2xsb3dlZC4iCiN+IG1zZ3N0ciAiICIKCiMgcHdkCiN+IG1zZ2lkICJQcmludCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gIFdpdGggdGhlIC1QIG9wdGlvbiwgcHdkIHByaW50cyIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IGRhcyBBcmJlaXRzdmVyemVpY2huaXMgYXVzLiBEaWUgQW5nYWJlIHZvbiAtUCBpZ25vcmllcnQgc3ltYm9saXNjaGUiCgojfiBtc2dpZCAidGhlIHBoeXNpY2FsIGRpcmVjdG9yeSwgd2l0aG91dCBhbnkgc3ltYm9saWMgbGlua3M7IHRoZSAtTCBvcHRpb24iCiN+IG1zZ3N0ciAiVmVyd2Vpc2UuIE1pdCAtTCB3aXJkIGRhcyBWZXJ3ZW5kZW4gdm9uIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzZW4iCgojfiBtc2dpZCAibWFrZXMgcHdkIGZvbGxvdyBzeW1ib2xpYyBsaW5rcy4iCiN+IG1zZ3N0ciAiZXJ6d3VuZ2VuLiIKCiMgY29tbWFuZAojfiBtc2dpZCAiIgojfiAiUnVucyBDT01NQU5EIHdpdGggQVJHUyBpZ25vcmluZyBzaGVsbCBmdW5jdGlvbnMuICBJZiB5b3UgaGF2ZSBhIHNoZWxsIgojfiBtc2dzdHIgIiIKI34gIkb8aHJ0IGRhcyBLb21tYW5kbyBtaXQgZGVuIEFyZ3VtZW50ZW4gYXVzLCBvaG5lIGRpZSBTaGVsbGZ1bmt0aW9uZW4genUiCgojfiBtc2dpZCAiZnVuY3Rpb24gY2FsbGVkIGBscycsIGFuZCB5b3Ugd2lzaCB0byBjYWxsIHRoZSBjb21tYW5kIGBscycsIHlvdSBjYW4iCiN+IG1zZ3N0ciAiYmVy/GNrc2ljaHRpZ2VuLiAgV2VubiBlaW5lIFNoZWxsZnVua3Rpb24gYGxzJyBkZWZpbmllcnQgaXN0LCBm/GhydCIKCiN+IG1zZ2lkICIiCiN+ICJzYXkgXCJjb21tYW5kIGxzXCIuICBJZiB0aGUgLXAgb3B0aW9uIGlzIGdpdmVuLCBhIGRlZmF1bHQgdmFsdWUgaXMgdXNlZCIKI34gbXNnc3RyICJcImNvbW1hbmQgbHNcIiBkYXMgS29tbWFuZG8gYGxzJyBhdXMuICBNaXQgZGVyIE9wdGlvbiAtcCB3aXJkIGVpbiIKCiN+IG1zZ2lkICIiCiN+ICJmb3IgUEFUSCB0aGF0IGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgb2YgdGhlIHN0YW5kYXJkIHV0aWxpdGllcy4gIElmIgojfiBtc2dzdHIgIlN0YW5kYXJkd2VydCBm/HIgUEFUSCB2ZXJ3ZW5kZXQuICAtdiBnaWJ0IGVpbmUga3VyemUgQmVzY2hyZWlidW5nIgoKI34gbXNnaWQgIiIKI34gInRoZSAtViBvciAtdiBvcHRpb24gaXMgZ2l2ZW4sIGEgc3RyaW5nIGlzIHByaW50ZWQgZGVzY3JpYmluZyBDT01NQU5ELiIKI34gbXNnc3RyICJkZXMgS29tbWFuZG9zIGF1czsgLVYgZWluZSBhdXNm/GhybGljaGUuIgoKI34gbXNnaWQgIlRoZSAtViBvcHRpb24gcHJvZHVjZXMgYSBtb3JlIHZlcmJvc2UgZGVzY3JpcHRpb24uIgojfiBtc2dzdHIgIiAiCgojIGRlY2xhcmUKI34gbXNnaWQgIkRlY2xhcmUgdmFyaWFibGVzIGFuZC9vciBnaXZlIHRoZW0gYXR0cmlidXRlcy4gIElmIG5vIE5BTUVzIGFyZSIKI34gbXNnc3RyICIiCiN+ICJEZWtsYXJpZXJ0IFZhcmlhYmxlbiBvZGVyIHdlaXN0IGlobmVuIFdlcnRlIHp1LiAgV2VubiBrZWluIE5hbWUgYW5nZWdlYmVuIgoKI34gbXNnaWQgImdpdmVuLCB0aGVuIGRpc3BsYXkgdGhlIHZhbHVlcyBvZiB2YXJpYWJsZXMgaW5zdGVhZC4gIFRoZSAtcCBvcHRpb24iCiN+IG1zZ3N0ciAiIgojfiAiaXN0LCBkYW5uIHdpcmQgZGVyIFdlcnQgZGVyIFZhcmlhYmxlbiBhdXNnZWdlYmVuLiAgT3B0aW9uIC1wIGdpYnQgZGllIgoKI34gbXNnaWQgIndpbGwgZGlzcGxheSB0aGUgYXR0cmlidXRlcyBhbmQgdmFsdWVzIG9mIGVhY2ggTkFNRS4iCiN+IG1zZ3N0ciAiTWVya21hbGUgdW5kIFdlcnRlIGRlciBOYW1lbiBhdXMuIgoKI34gbXNnaWQgIlRoZSBmbGFncyBhcmU6IgojfiBtc2dzdHIgIkRpZSBTY2hhbHRlciBzaW5kOiIKCiN+IG1zZ2lkICIgIC1hXHR0byBtYWtlIE5BTUVzIGFycmF5cyAoaWYgc3VwcG9ydGVkKSIKI34gbXNnc3RyICIgIC1hXHREZWtsYXJpZXJ0IE5hbWUgYWxzIEZlbGR2YXJpYWJsZSAod2VubiB1bnRlcnN0/HR6dCkuIgoKI34gbXNnaWQgIiAgLWZcdHRvIHNlbGVjdCBmcm9tIGFtb25nIGZ1bmN0aW9uIG5hbWVzIG9ubHkiCiN+IG1zZ3N0ciAiICAtZlx0WmVpZ3QgbnVyIEZ1bmt0aW9uc25hbWVuLiIKCiN+IG1zZ2lkICIgIC1GXHR0byBkaXNwbGF5IGZ1bmN0aW9uIG5hbWVzIHdpdGhvdXQgZGVmaW5pdGlvbnMiCiN+IG1zZ3N0ciAiICAtRlx0WmVpZ3QgRnVua3Rpb25zbmFtZW4gb2huZSBEZWZpbml0aW9uIGFuLiIKCiN+IG1zZ2lkICIgIC1yXHR0byBtYWtlIE5BTUVzIHJlYWRvbmx5IgojfiBtc2dzdHIgIiAgLXJcdFNldHp0IE5hbWUgYXVmIGBudXIgTGVzZW4nLVN0YXR1cy4iCgojfiBtc2dpZCAiICAteFx0dG8gbWFrZSBOQU1FcyBleHBvcnQiCiN+IG1zZ3N0ciAiICAteFx0TWFya2llcnQgTmFtZSBm/HIgYXV0b21hdGlzY2hlbiBFeHBvcnQgaW4gYWxsZSBTdWJzaGVsbHMuIgoKI34gbXNnaWQgIiAgLWlcdHRvIG1ha2UgTkFNRXMgaGF2ZSB0aGUgYGludGVnZXInIGF0dHJpYnV0ZSBzZXQiCiN+IG1zZ3N0ciAiICAtaVx0U2V0enQgZGVuIFR5cCB2b24gTmFtZSBhdWYgR2FuenphaGwuIgoKI34gbXNnaWQgIlZhcmlhYmxlcyB3aXRoIHRoZSBpbnRlZ2VyIGF0dHJpYnV0ZSBoYXZlIGFyaXRobWV0aWMgZXZhbHVhdGlvbiAoc2VlIgojfiBtc2dzdHIgIiIKI34gIldlbm4gZGVyIFZhcmlhYmxlbiBlaW4gV2VydCB6dWdld2llc2VuIHdpcmQgKHNpZWhlIGBsZXQnKSwgZmluZGV0IGVpbmUiCgojfiBtc2dpZCAiYGxldCcpIGRvbmUgd2hlbiB0aGUgdmFyaWFibGUgaXMgYXNzaWduZWQgdG8uIgojfiBtc2dzdHIgImFyaXRobWV0aXNjaGUgQXVzd2VydHVuZyBzdGF0dC4iCgojfiBtc2dpZCAiV2hlbiBkaXNwbGF5aW5nIHZhbHVlcyBvZiB2YXJpYWJsZXMsIC1mIGRpc3BsYXlzIGEgZnVuY3Rpb24ncyBuYW1lIgojfiBtc2dzdHIgIiIKI34gIldlbm4gVmFyaWFibGVud2VydGUgYW5nZXplaWd0IHdlcmRlbiwgZ2lidCBkaWUgT3B0aW9uIC1mIEZ1bmt0aW9uc25hbWVuIgoKI34gbXNnaWQgImFuZCBkZWZpbml0aW9uLiAgVGhlIC1GIG9wdGlvbiByZXN0cmljdHMgdGhlIGRpc3BsYXkgdG8gZnVuY3Rpb24iCiN+IG1zZ3N0ciAidW5kIC1kZWZpbml0aW9uZW4gYXVzLiBEaWUgT3B0aW9uIC1GIGJlc2NocuRua3QgZGllIEF1c2dhYmUgYXVmIgoKI34gbXNnaWQgIm5hbWUgb25seS4iCiN+IG1zZ3N0ciAiRnVua3Rpb25zbmFtZW4uIgoKI34gbXNnaWQgIiIKI34gIlVzaW5nIGArJyBpbnN0ZWFkIG9mIGAtJyB0dXJucyBvZmYgdGhlIGdpdmVuIGF0dHJpYnV0ZSBpbnN0ZWFkLiAgV2hlbiIKI34gbXNnc3RyICJgKycgc3RhdHQgYC0nIHNjaGFsdGV0IGRhcyBhbmdlZ2ViZW5lIE1lcmttYWwgYWIuIGBkZWNsYXJlJyIKCiN+IG1zZ2lkICJ1c2VkIGluIGEgZnVuY3Rpb24sIG1ha2VzIE5BTUVzIGxvY2FsLCBhcyB3aXRoIHRoZSBgbG9jYWwnIGNvbW1hbmQuIgojfiBtc2dzdHIgImlubmVyaGFsYiBlaW5lciBGdW5rdGlvbiB3aXJrdCB3aWUgYGxvY2FsJy4iCgojIHR5cHNldAojfiBtc2dpZCAiT2Jzb2xldGUuICBTZWUgYGRlY2xhcmUnLiIKI34gbXNnc3RyICJWZXJhbHRldC4gU2llaGUgYGRlY2xhcmUnLiIKCiMgbG9jYWwKI34gbXNnaWQgIkNyZWF0ZSBhIGxvY2FsIHZhcmlhYmxlIGNhbGxlZCBOQU1FLCBhbmQgZ2l2ZSBpdCBWQUxVRS4gIExPQ0FMIgojfiBtc2dzdHIgIiIKI34gIkVyemV1Z3QgZWluZSBsb2thbGUgVmFyaWFibGUgTmFtZSB1bmQgd2Vpc3QgaWhyIFdlcnQgenUuIERpZSBBbndlaXN1bmcgIgojfiAia2FubiIKCiN+IG1zZ2lkICJoYXZlIGEgdmlzaWJsZSBzY29wZSByZXN0cmljdGVkIHRvIHRoYXQgZnVuY3Rpb24gYW5kIGl0cyBjaGlsZHJlbi4iCiN+IG1zZ3N0ciAibnVyIGlubmVyaGFsYiBkaWVzZXIgRnVua3Rpb24gdW5kIGFsbGVuIFVudGVyZnVua3Rpb25lbiB6dWfkbmdsaWNoLiIKCiMgZWNobwojfiBtc2dpZCAiT3V0cHV0IHRoZSBBUkdzLiAgSWYgLW4gaXMgc3BlY2lmaWVkLCB0aGUgdHJhaWxpbmcgbmV3bGluZSBpcyIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IGRpZSBBcmd1bWVudGUgYXVzLiBXZW5uIC1uIGFuZ2VnZWJlbiBpc3QsIHdpcmQga2VpbiBaZWlsZW51bWJydWNoIgoKI34gbXNnaWQgInN1cHByZXNzZWQuICBJZiB0aGUgLWUgb3B0aW9uIGlzIGdpdmVuLCBpbnRlcnByZXRhdGlvbiBvZiB0aGUiCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWb8Z3QuIERpZSBPcHRpb24gLWUgaW50ZXJwcmV0aWVydCBmb2xnZW5kZSBTb25kZXJ6ZWljaGVuIHp1ciAiCiN+ICJGb3JtYXRpZXJ1bmciCgojfiBtc2dpZCAiZm9sbG93aW5nIGJhY2tzbGFzaC1lc2NhcGVkIGNoYXJhY3RlcnMgaXMgdHVybmVkIG9uOiIKI34gbXNnc3RyICJkZXIgQXVzZ2FiZToiCgojfiBtc2dpZCAiXHRcXGFcdGFsZXJ0IChiZWxsKSIKI34gbXNnc3RyICJcdFxcYVx0QWxhcm0gKEdsb2NrZSkuIgoKI34gbXNnaWQgIlx0XFxiXHRiYWNrc3BhY2UiCiN+IG1zZ3N0ciAiXHRcXGJcdFNjaHJpdHQgenVy/GNrLiIKCiN+IG1zZ2lkICJcdFxcY1x0c3VwcHJlc3MgdHJhaWxpbmcgbmV3bGluZSIKI34gbXNnc3RyICJcdFxcY1x0S2VpbiBaZWlsZW51bWJydWNoLiIKCiN+IG1zZ2lkICJcdFxcRVx0ZXNjYXBlIGNoYXJhY3RlciIKI34gbXNnc3RyICJcdFxcRVx0RXNjYXBlLVplaWNoZW4uIgoKI34gbXNnaWQgIlx0XFxmXHRmb3JtIGZlZWQiCiN+IG1zZ3N0ciAiXHRcXGZcdFNlaXRlbnZvcnNjaHViLiIKCiN+IG1zZ2lkICJcdFxcblx0bmV3IGxpbmUiCiN+IG1zZ3N0ciAiXHRcXG5cdFplaWxlbnVtYnJ1Y2guIgoKI34gbXNnaWQgIlx0XFxyXHRjYXJyaWFnZSByZXR1cm4iCiN+IG1zZ3N0ciAiXHRcXHJcdFdhZ2Vucvxja2xhdWYuIgoKI34gbXNnaWQgIlx0XFx0XHRob3Jpem9udGFsIHRhYiIKI34gbXNnc3RyICJcdFxcdFx0SG9yaXpvbnRhbGVyIFRhYnVsYXRvci4iCgojfiBtc2dpZCAiXHRcXHZcdHZlcnRpY2FsIHRhYiIKI34gbXNnc3RyICJcdFxcdlx0VmVydGlrYWxlciBUYWJ1bGF0b3IuIgoKI34gbXNnaWQgIlx0XFxcXFx0YmFja3NsYXNoIgojfiBtc2dzdHIgIlx0XFxcXFx0RGFzIFplaWNoZW4gYFxcJy4iCgojfiBtc2dpZCAiXHRcXG51bVx0dGhlIGNoYXJhY3RlciB3aG9zZSBBU0NJSSBjb2RlIGlzIE5VTSAob2N0YWwpLiIKI34gbXNnc3RyICJcdFxcbnVtXHREYXMgWmVpY2hlbiBtaXQgZGVtIChva3RhbGVuKSBBU0NJSS1Db2RlIG51bS4iCgojfiBtc2dpZCAiIgojfiAiWW91IGNhbiBleHBsaWNpdGx5IHR1cm4gb2ZmIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYWJvdmUgY2hhcmFjdGVycyIKI34gbXNnc3RyICIiCiN+ICJEaWUgT3B0aW9uIC1FIHNjaGFsdGV0IGRpZSBBdXN3ZXJ0dW5nIGRlciBvYmVuIGFuZ2VnZWJlbmVuIFNvbmRlcnplaWNoZW4iCgojfiBtc2dpZCAid2l0aCB0aGUgLUUgb3B0aW9uLiIKI34gbXNnc3RyICJhYi4iCgojfiBtc2dpZCAiIgojfiAiT3V0cHV0IHRoZSBBUkdzLiAgSWYgLW4gaXMgc3BlY2lmaWVkLCB0aGUgdHJhaWxpbmcgbmV3bGluZSBpcyBzdXBwcmVzc2VkLiIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IEFSR1VNRU5URSBhdXMuIERpZSBPcHRpb24gLW4gdmVyaGluZGVydCBkZW4gYWJzY2hsaWXfZW5kZW4gIgojfiAiWmVpbGVudW1icnVjaC4iCgojIGVuYWJsZQojfiBtc2dpZCAiRW5hYmxlIGFuZCBkaXNhYmxlIGJ1aWx0aW4gc2hlbGwgY29tbWFuZHMuICBUaGlzIGFsbG93cyIKI34gbXNnc3RyICJTY2hhbHRldCBTaGVsbGZ1bmt0aW9uZW4gYWIgdW5kIGFuLiBEYW1pdCBrYW5uIGVpbiBnbGVpY2huYW1pZ2VzIgoKI34gbXNnaWQgInlvdSB0byB1c2UgYSBkaXNrIGNvbW1hbmQgd2hpY2ggaGFzIHRoZSBzYW1lIG5hbWUgYXMgYSBzaGVsbCIKI34gbXNnc3RyICJleHRlcm5lcyBLb21tYW5kbyBhbnN0YXR0IGRlcyBTaGVsbGtvbW1hbmRvcyBiZW51dHp0IHdlcmRlbi4iCgojfiBtc2dpZCAiYnVpbHRpbi4gIElmIC1uIGlzIHVzZWQsIHRoZSBOQU1FcyBiZWNvbWUgZGlzYWJsZWQ7IG90aGVyd2lzZSIKI34gbXNnc3RyICItbiBzY2hhbHRldCBOYW1lbiBhYiwgc29uc3Qgd2VyZGVuIE5BTUVuIGFuZ2VzY2hhbHRldC4iCgojfiBtc2dpZCAiTkFNRXMgYXJlIGVuYWJsZWQuICBGb3IgZXhhbXBsZSwgdG8gdXNlIHRoZSBgdGVzdCcgZm91bmQgb24geW91ciIKI34gbXNnc3RyICJVbSB6LkIuIGRpZSBleHRlcm5lIEZ1bmt0aW9uIGB0ZXN0JyB6dSB2ZXJ3ZW5kZW4sIgoKI34gbXNnaWQgInBhdGggaW5zdGVhZCBvZiB0aGUgc2hlbGwgYnVpbHRpbiB2ZXJzaW9uLCB0eXBlIGBlbmFibGUgLW4gdGVzdCcuIgojfiBtc2dzdHIgIiIKI34gIm113yBgZW5hYmxlIC1uIHRlc3QnIGVpbmdlZ2ViZW4gd2VyZGVuLiBBdWYgU3lzdGVtZW4sIGRpZSBCaWJpbGlvdGhla2VuIgoKI34gbXNnaWQgIk9uIHN5c3RlbXMgc3VwcG9ydGluZyBkeW5hbWljIGxvYWRpbmcsIHRoZSAtZiBvcHRpb24gbWF5IGJlIHVzZWQiCiN+IG1zZ3N0ciAiIgojfiAiZHluYW1pc2NoIG5hY2hsYWRlbiBr9m5uZW4sIGthbm4gZGllIE9wdGlvbiAtZiBnZW51dHp0IHdlcmRlbiwgdW0gbmV1ZSIKCiN+IG1zZ2lkICJ0byBsb2FkIG5ldyBidWlsdGlucyBmcm9tIHRoZSBzaGFyZWQgb2JqZWN0IEZJTEVOQU1FLiAgVGhlIC1kIgojfiBtc2dzdHIgIiIKI34gIlNoZWxsZnVua3Rpb25lbiBhdXMgZGVyIGR5bmFtaXNjaGVuIEJpYmlsaW90aGVrIERhdGVpbmFtZSB6dSBsYWRlbi4gLWQiCgojfiBtc2dpZCAib3B0aW9uIHdpbGwgZGVsZXRlIGEgYnVpbHRpbiBwcmV2aW91c2x5IGxvYWRlZCB3aXRoIC1mLiAgSWYgbm8iCiN+IG1zZ3N0ciAiZW50bORkdCBkeW5hbWlzY2ggZ2VsYWRlbmUgU2hlbGxmdW5rdGlvbmVuIHdpZWRlci4gV2VubiIKCiN+IG1zZ2lkICJub24tb3B0aW9uIG5hbWVzIGFyZSBnaXZlbiwgb3IgdGhlIC1wIG9wdGlvbiBpcyBzdXBwbGllZCwgYSBsaXN0IgojfiBtc2dzdHIgImtlaW5lIE9wdGlvbiBvZGVyIC1wIGFuZ2VnZWJlbiBpc3QsIHdpcmQgZWluZSBMaXN0ZSBkZXIiCgojfiBtc2dpZCAib2YgYnVpbHRpbnMgaXMgcHJpbnRlZC4gIFRoZSAtYSBvcHRpb24gbWVhbnMgdG8gcHJpbnQgZXZlcnkgYnVpbHRpbiIKI34gbXNnc3RyICJTaGVsbGZ1bmt0aW9uZW4gYXVzZ2VnZWJlbi4gLWEgZ2lidCBlaW5lIExpc3RlIGRlciBTaGVsbGZ1bmt0aW9uZW4iCgojfiBtc2dpZCAid2l0aCBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuYWJsZWQuICBUaGUgLXMgb3B0aW9uIgojfiBtc2dzdHIgIiIKI34gImF1cywgaW4gZGVyIGVpbi0gdW5kIGF1c2dlc2NoYWx0ZXRlIEZ1bmt0aW9uZW4gZ2VrZW5uemVpY2huZXQgc2luZDsgLXMiCgojfiBtc2dpZCAicmVzdHJpY3RzIHRoZSBvdXRwdXQgdG8gdGhlIFBvc2l4LjIgYHNwZWNpYWwnIGJ1aWx0aW5zLiAgVGhlIC1uIgojfiBtc2dzdHIgImJlc2NocuRua3QgZGllIEF1c2dhYmUgYXVmIFBvc2l4LjItU2hlbGxmdW5rdGlvbmVuLiAtbiIKCiN+IG1zZ2lkICJvcHRpb24gZGlzcGxheXMgYSBsaXN0IG9mIGFsbCBkaXNhYmxlZCBidWlsdGlucy4iCiN+IG1zZ3N0ciAiemVpZ3QgZWluZSBMaXN0ZSBhbGxlciBhYmdlc2NoYWx0ZXRlciBGdW5rdGlvbmVuIGFuLiIKCiMgZXZhbAojfiBtc2dpZCAiIgojfiAiUmVhZCBBUkdzIGFzIGlucHV0IHRvIHRoZSBzaGVsbCBhbmQgZXhlY3V0ZSB0aGUgcmVzdWx0aW5nIGNvbW1hbmQocykuIgojfiBtc2dzdHIgIlZlcmJpbmRldCBkaWUgQXJndW1lbnRlIHp1IGVpbmVyIEtvbW1hbmRvemVpbGUgdW5kIGb8aHJ0IHNpZSBhdXMuIgoKIyBnZXRvcHRzCiN+IG1zZ2lkICJHZXRvcHRzIGlzIHVzZWQgYnkgc2hlbGwgcHJvY2VkdXJlcyB0byBwYXJzZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuIgojfiBtc2dzdHIgIlNoZWxscHJvemVkdXJlbiBiZW51dHplbiBnZXRvcHRzLCB1bSBkaWUgS29tbWFuZG96ZW9sZSBhdXN6dXdlcnRlbi4iCgojfiBtc2dpZCAiT1BUU1RSSU5HIGNvbnRhaW5zIHRoZSBvcHRpb24gbGV0dGVycyB0byBiZSByZWNvZ25pemVkOyBpZiBhIGxldHRlciIKI34gbXNnc3RyICIiCiN+ICJPcHRzdHJpbmcgZW50aORsdCBkaWUgenUgZXJrZW5uZW5kZW4gQnVjaHN0YWJlbi4gRm9sZ3QgZWluZW0gQnVjaHN0YWJlbiAiCiN+ICJlaW4iCgojfiBtc2dpZCAiaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiwgdGhlIG9wdGlvbiBpcyBleHBlY3RlZCB0byBoYXZlIGFuIGFyZ3VtZW50LCIKI34gbXNnc3RyICJEb3BwZWxwdW5rdCwgZGFubiBlcndhcnRldCBkaWUgRnVua3Rpb24gZWluIEFyZ3VtZW50LCBkYXMgZHVyY2ggZWluIgoKI34gbXNnaWQgIndoaWNoIHNob3VsZCBiZSBzZXBhcmF0ZWQgZnJvbSBpdCBieSB3aGl0ZSBzcGFjZS4iCiN+IG1zZ3N0ciAiTGVlcnplaWNoZW4gdm9tIE9wdGlvbnN6ZWljaGVuIGdldHJlbm50IGlzdC4iCgojfiBtc2dpZCAiRWFjaCB0aW1lIGl0IGlzIGludm9rZWQsIGdldG9wdHMgd2lsbCBwbGFjZSB0aGUgbmV4dCBvcHRpb24gaW4gdGhlIgojfiBtc2dzdHIgIiIKI34gIkJlaSBqZWRlbSBBdWZydWYgd2Vpc3QgZ2V0b3B0IGRpZSBu5GNoc3RlIE9wdGlvbiBkZXIgU2hlbGwtVmFyaWFibGVuICIKI34gIiRuYW1lIHp1LCIKCiN+IG1zZ2lkICJzaGVsbCB2YXJpYWJsZSAkbmFtZSwgaW5pdGlhbGl6aW5nIG5hbWUgaWYgaXQgZG9lcyBub3QgZXhpc3QsIGFuZCIKI34gbXNnc3RyICJlcnpldWd0IHNpZSBnZWdlYmVuZW5mYWxscyB1bmQgc2V0enQgZGVuIFplaWdlciBpbiBkZXIiCgojfiBtc2dpZCAidGhlIGluZGV4IG9mIHRoZSBuZXh0IGFyZ3VtZW50IHRvIGJlIHByb2Nlc3NlZCBpbnRvIHRoZSBzaGVsbCIKI34gbXNnc3RyICJTaGVsbHZhcmlhYmxlbiBPUFRJTkQgYXVmIGRpZSBu5GNoc3RlIGFienVhcmJlaXRlbmRlIE9wdGlvbi4iCgojfiBtc2dpZCAidmFyaWFibGUgT1BUSU5ELiAgT1BUSU5EIGlzIGluaXRpYWxpemVkIHRvIDEgZWFjaCB0aW1lIHRoZSBzaGVsbCBvciIKI34gbXNnc3RyICJPUFRJTkQgd2lyZCBiZWltIFN0YXJ0IGRlciBTaGVsbCBtaXQgMSBpbml0aWFsaXNpZXJ0LiIKCiN+IG1zZ2lkICJhIHNoZWxsIHNjcmlwdCBpcyBpbnZva2VkLiAgV2hlbiBhbiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQsIgojfiBtc2dzdHIgIkVyd2FydGV0IGVpbmUgT3B0aW9uIGVpbiBBcmd1bWVudCwgd2lyZCBkaWVzZXMgQXJndW1lbnQgaW4gZGVyIgoKI34gbXNnaWQgImdldG9wdHMgcGxhY2VzIHRoYXQgYXJndW1lbnQgaW50byB0aGUgc2hlbGwgdmFyaWFibGUgT1BUQVJHLiIKI34gbXNnc3RyICJTaGVsbHZhcmlhYmxlbiBPUFRBUkcgenVy/GNrZ2VnZWJlbi4iCgojfiBtc2dpZCAiZ2V0b3B0cyByZXBvcnRzIGVycm9ycyBpbiBvbmUgb2YgdHdvIHdheXMuICBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIgojfiBtc2dzdHIgIiIKI34gIkVzIGdpYnQgendlaSBN9mdsaWNoa2VpdGVuIGRlciBGZWhsZXJiZWhhbmRsdW5nLiAgV2VubiBkYXMgZXJzdGUgWmVpY2hlbiAiCiN+ICJ2b24iCgojfiBtc2dpZCAib2YgT1BUU1RSSU5HIGlzIGEgY29sb24sIGdldG9wdHMgdXNlcyBzaWxlbnQgZXJyb3IgcmVwb3J0aW5nLiAgSW4iCiN+IG1zZ3N0ciAiIgojfiAiT1BUU1RSSU5HIGVpbiBEb3BwZWxwdW5rdCBpc3QsIHdpcmQga2VpbmUgRmVobGVybWVsZHVuZyBhbmdlemVpZ3QgIgojfiAiKFwic3RpbGxlIgoKI34gbXNnaWQgInRoaXMgbW9kZSwgbm8gZXJyb3IgbWVzc2FnZXMgYXJlIHByaW50ZWQuICBJZiBhbiBpbGxlZ2FsIG9wdGlvbiBpcyIKI34gbXNnc3RyICIiCiN+ICJGZWhsZXJtZWxkdW5nXCIpIFdlbm4gZWluIHVuZ/xsdGlnZXMgT3B0aW9uc3plaWNoZW4gZXJrYW5udCB3aXJkLCBkYW5uICIKI34gIndpcmQiCgojfiBtc2dpZCAic2VlbiwgZ2V0b3B0cyBwbGFjZXMgdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQgaW50byBPUFRBUkcuICBJZiBhIgojfiBtc2dzdHIgIiIKI34gImVzIGRlciBTaGVsbHZhcmlhYmxlbiBPUFRBUkcgenVnZXdpZXNlbi4gIFdlbm4gZWluIEFyZ3VtZW50IGZlaGx0LCBkYW5uIgoKI34gbXNnaWQgInJlcXVpcmVkIGFyZ3VtZW50IGlzIG5vdCBmb3VuZCwgZ2V0b3B0cyBwbGFjZXMgYSAnOicgaW50byBOQU1FIGFuZCIKI34gbXNnc3RyICJ3aXJkIGRlciBTaGVsbHZhcmlhYmxlbiBOQU1FIGVpbiAnOicgenVnZXdpZXNlbiB1bmQgYW4gT1BUQVJHIGRhcyAiCgojfiBtc2dpZCAic2V0cyBPUFRBUkcgdG8gdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQuICBJZiBnZXRvcHRzIGlzIG5vdCBpbiIKI34gbXNnc3RyICIiCiN+ICJPcHRpb25zemVpY2hlbiD8YmVyZ2ViZW4uICBXZW5uIGdldG9wdCBzaWNoIG5pY2h0IGltIFwic3RpbGxlblwiIE1vZHVzIgoKI34gbXNnaWQgInNpbGVudCBtb2RlLCBhbmQgYW4gaWxsZWdhbCBvcHRpb24gaXMgc2VlbiwgZ2V0b3B0cyBwbGFjZXMgJz8nIGludG8iCiN+IG1zZ3N0ciAiIgojfiAiYmVmaW5kZXQgdW5kIGVpbiB1bmf8bHRpZ2VzIE9wdGlvbnN6ZWljaGVuIGVya2FubnQgd2lyZCwgd2Vpc3QgZ2V0b3B0IGRlciIKCiN+IG1zZ2lkICJOQU1FIGFuZCB1bnNldHMgT1BUQVJHLiAgSWYgYSByZXF1aXJlZCBvcHRpb24gaXMgbm90IGZvdW5kLCBhICc/JyIKI34gbXNnc3RyICIiCiN+ICJWYXJpYWJsZSBOYW1lICc/JyB6dSB1bmQgbPZzY2h0IE9QVEFSRy4gIFdlbm4gZWluZSBlcmZvcmRlcmxpY2hlIE9wdGlvbiAiCiN+ICJuaWNodCIKCiN+IG1zZ2lkICJpcyBwbGFjZWQgaW4gTkFNRSwgT1BUQVJHIGlzIHVuc2V0LCBhbmQgYSBkaWFnbm9zdGljIG1lc3NhZ2UgaXMiCiN+IG1zZ3N0ciAiIgojfiAiZ2VmdW5kZW4gd3VyZGUsIHdpcmQgYD9gIGFuIE5BTUUgenVnZXdpZXNlbiwgT1BUQVJHIGdlbPZzY2h0IHVuZCBlaW5lICIKI34gIkZlaGxlci0iCgojfiBtc2dpZCAicHJpbnRlZC4iCiN+IG1zZ3N0ciAibWVsZHVuZyBhdXNnZWdlYmVuLiIKCiN+IG1zZ2lkICJJZiB0aGUgc2hlbGwgdmFyaWFibGUgT1BURVJSIGhhcyB0aGUgdmFsdWUgMCwgZ2V0b3B0cyBkaXNhYmxlcyB0aGUiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBkaWUgU2hlbGx2YXJpYWJsZSBPUFRFUlIgZGVuIFdlcnQgMCBiZXNpdHp0LCB1bnRlcmRy/GNrdCBnZXRvcHRzIGRpZSAiCiN+ICJBdXMtIgoKI34gbXNnaWQgInByaW50aW5nIG9mIGVycm9yIG1lc3NhZ2VzLCBldmVuIGlmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YiCiN+IG1zZ3N0ciAiIgojfiAiZ2FiZSB2b24gRmVobGVybWVsZHVuZ2VuLCBhdWNoIGRhbm4sIHdlbm4gZGFzIGVyc3RlIFplaWNoZW4gdm9uIE9QVFNUUklORyAiCiN+ICJrZWluIgoKI34gbXNnaWQgIk9QVFNUUklORyBpcyBub3QgYSBjb2xvbi4gIE9QVEVSUiBoYXMgdGhlIHZhbHVlIDEgYnkgZGVmYXVsdC4iCiN+IG1zZ3N0ciAiRG9wcGVscHVua3QgaXN0LiAgT1BURVJSIGhhdCBzdGFuZGFyZG3k32lnIGRlbiBXZXJ0IDEuIgoKI34gbXNnaWQgIkdldG9wdHMgbm9ybWFsbHkgcGFyc2VzIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgKCQwIC0gJDkpLCBidXQgaWYiCiN+IG1zZ3N0ciAiIgojfiAiR2V0b3B0cyB3ZXJ0ZXQgbm9ybWFsZXJ3ZWlzZSBkaWUg/GJlcmdlYmVuZW4gUGFyYW1ldGVyICQwIC0gJDkgYXVzLCBhYmVyICIKI34gIndlbm4iCgojfiBtc2dpZCAibW9yZSBhcmd1bWVudHMgYXJlIGdpdmVuLCB0aGV5IGFyZSBwYXJzZWQgaW5zdGVhZC4iCiN+IG1zZ3N0ciAibWVociBBcmd1bWVudGUgYW5nZWdlYmVuIHNpbmQsIHdlcmRlbiBkaWVzZSBhdWNoIGF1c2dld2VydGV0LiIKCiMgZXhlYwojfiBtc2dpZCAiRXhlYyBGSUxFLCByZXBsYWNpbmcgdGhpcyBzaGVsbCB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbS4iCiN+IG1zZ3N0ciAiRvxydCBEYXRlaSBhdXMgdW5kIGVyc2V0enQgZGllIFNoZWxsIGR1cmNoIGRhcyBhbmdlZ2ViZW5lIFByb2dyYW1tLiIKCiN+IG1zZ2lkICJJZiBGSUxFIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSByZWRpcmVjdGlvbnMgdGFrZSBlZmZlY3QgaW4gdGhpcyIKI34gbXNnc3RyICIiCiN+ICJXZW5uIGtlaW4gS29tbWFuZG8gYW5nZWdlYmVuIGlzdCwgd2VyZGVuIGRpZSBFaW4tL0F1c2dhYmV1bWxlaXR1bmdlbiBhdWYgIgojfiAiZGllIgoKI34gbXNnaWQgInNoZWxsLiAgSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGAtbCcsIHRoZW4gcGxhY2UgYSBkYXNoIGluIHRoZSIKI34gbXNnc3RyICIiCiN+ICJhdWZydWZlbmRlIFNoZWxsIGFuZ2V3ZW5kZXQuICBXZW5uIGRhcyBlcnN0ZSBBcmd1bWVudCAtbCBpc3QsIGRhbm4gd2lyZCAiCiN+ICJkaWVzZXMiCgojfiBtc2dpZCAiemVyb3RoIGFyZyBwYXNzZWQgdG8gRklMRSwgYXMgbG9naW4gZG9lcy4gIElmIHRoZSBgLWMnIG9wdGlvbiIKI34gbXNnc3RyICIiCiN+ICJhbHMgbnVsbHRlcyBBcmd1bWVudCBhbiBkaWUgRGF0ZWkg/GJlcmdlYmVuICh3aWUgbG9naW4pLiAgTWl0IGRlciAtYyAiCiN+ICJPcHRpb24iCgojfiBtc2dpZCAiaXMgc3VwcGxpZWQsIEZJTEUgaXMgZXhlY3V0ZWQgd2l0aCBhIG51bGwgZW52aXJvbm1lbnQuICBUaGUgYC1hJyIKI34gbXNnc3RyICIiCiN+ICJ3aXJkIGRpZSBEYXRlaSBvaG5lIGdlc2V0enRlIFVtZ2VidW5nc3ZhcmlhYmxlbiBhdXNnZWb8aHJ0LiAgRGllIC1hIE9wdGlvbiIKCiN+IG1zZ2lkICJvcHRpb24gbWVhbnMgdG8gbWFrZSBzZXQgYXJndlswXSBvZiB0aGUgZXhlY3V0ZWQgcHJvY2VzcyB0byBOQU1FLiIKI34gbXNnc3RyICJzZXR6dCBhcmd2WzBdIGRlcyBhdXNnZWb8aHJ0ZW4gUHJvemXfZXMgYXVmIE5hbWUuIgoKI34gbXNnaWQgIklmIHRoZSBmaWxlIGNhbm5vdCBiZSBleGVjdXRlZCBhbmQgdGhlIHNoZWxsIGlzIG5vdCBpbnRlcmFjdGl2ZSwiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBkaWUgRGF0ZWkgbmljaHQgYXVzZ2Vm/GhydCB3ZXJkZW4ga2FubiB1bmQgZGllIFNoZWxsIG5pY2h0ICIKI34gImludGVyYWt0aXYgaXN0LCIKCiN+IG1zZ2lkICJ0aGVuIHRoZSBzaGVsbCBleGl0cywgdW5sZXNzIHRoZSB2YXJpYWJsZSBcIm5vX2V4aXRfb25fZmFpbGVkX2V4ZWNcIiIKI34gbXNnc3RyICIiCiN+ICJkYW5uIHdpcmQgc2llIHZlcmxhc3NlbiwgYXXfZXIgZGllIFZhcmlhYmxlIFwibm9fZXhpdF9vbl9mYWlsZWRfZXhlY1wiIGlzdCIKCiN+IG1zZ2lkICJpcyBzZXQuIgojfiBtc2dzdHIgImdlc2V0enQuIgoKI34gbXNnaWQgImlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCiN+IG1zZ3N0ciAiZGVyIFL8Y2trZWhyc3RhdHVzIGRlcyB6dWxldHp0IGF1c2dlZvxocnRlbiBLb21tYW5kb3MgdmVyd2VuZGV0LiIKCiMgZmMKI34gbXNnaWQgIiIKI34gIkZJUlNUIGFuZCBMQVNUIGNhbiBiZSBudW1iZXJzIHNwZWNpZnlpbmcgdGhlIHJhbmdlLCBvciBGSVJTVCBjYW4gYmUgYSIKI34gbXNnc3RyICIiCiN+ICJBbmZhbmcgdW5kIEVuZGUgYmV6ZWljaG5lbiBlaW5lbiBCZXJlaWNoIG9kZXIsIHdlbm4gQW5mYW5nIGVpbmUgIgojfiAiWmVpY2hlbmtldHRlIgoKI34gbXNnaWQgInN0cmluZywgd2hpY2ggbWVhbnMgdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgYmVnaW5uaW5nIHdpdGggdGhhdCIKI34gbXNnc3RyICJpc3QsIGRhcyBsZXR6dGUgS29tbWFuZG8gd2VsY2hlcyBtaXQgZGllc2VyIFplaWNoa2V0dGUgYmVnaW5udC4iCgojfiBtc2dpZCAic3RyaW5nLiIKI34gbXNnc3RyICIgIgoKI34gbXNnaWQgIiIKI34gIiAgIC1lIEVOQU1FIHNlbGVjdHMgd2hpY2ggZWRpdG9yIHRvIHVzZS4gIERlZmF1bHQgaXMgRkNFRElULCB0aGVuIEVESVRPUiwiCiN+IG1zZ3N0ciAiIgojfiAiICAgLWUgRWRpdG9yIGlzdCBkZXIgYXVmenVydWZlbmRlIFRleHRlZGl0b3IuICBTdGFuZGFyZG3k32lnIHdpcmQgRkNFRElULCAiCiN+ICJkYW5uIgoKI34gbXNnaWQgIiIKI34gIiAgICAgIHRoZW4gdGhlIGVkaXRvciB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCByZWFkbGluZSBlZGl0aW5nIgojfiBtc2dzdHIgIiIKI34gIiAgICAgIEVESVRPUiwgYW5zY2hsaWXfZW5kIGRlciBkZW0gcmVhZGxpbmUgTW9kdXMgZW50c3ByZWNoZW5kZSBFZGl0b3IiCgojfiBtc2dpZCAiICAgICAgbW9kZSwgdGhlbiB2aS4iCiN+IG1zZ3N0ciAiICAgICAgdW5kIHNvbnN0IHZpIGF1ZmdlcnVmZW4uIgoKI34gbXNnaWQgIiAgIC1sIG1lYW5zIGxpc3QgbGluZXMgaW5zdGVhZCBvZiBlZGl0aW5nLiIKI34gbXNnc3RyICIgICAtbCB6ZWlndCBudXIgZGllIFplaWxlbiBhbi4iCgojfiBtc2dpZCAiICAgLW4gbWVhbnMgbm8gbGluZSBudW1iZXJzIGxpc3RlZC4iCiN+IG1zZ3N0ciAiICAgLW4gdW50ZXJkcvxja3QgZGFzIEFuemVpZ2VuIHZvbiBaZWlsZW5udW1tZXJuLiIKCiN+IG1zZ2lkICIiCiN+ICIgICAtciBtZWFucyByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGluZXMgKG1ha2luZyBpdCBuZXdlc3QgbGlzdGVkICIKI34gImZpcnN0KS4iCiN+IG1zZ3N0ciAiIgojfiAiICAgLXIgZHJlaHQgZGllIFNvcnRpZXJyZWloZW5mb2xnZSB1bSAoavxuZ3N0ZXIgRWludHJhZyB3aXJkIHp1ZXJzdCAiCiN+ICJhbmdlemVpZ3QpLiIKCiN+IG1zZ2lkICJXaXRoIHRoZSBgZmMgLXMgW3BhdD1yZXAgLi4uXSBbY29tbWFuZF0nIGZvcm1hdCwgdGhlIGNvbW1hbmQgaXMiCiN+IG1zZ3N0ciAiIgojfiAiTWl0IGBmYyAtcyBbTXVzdGVyPUVyc2V0enVuZyAuLi5dIFtjb21tYW5kXScgd2lyZCBkYXMgS29tbWFuZG8gd2llZGVyaG9sdCwiCgojfiBtc2dpZCAicmUtZXhlY3V0ZWQgYWZ0ZXIgdGhlIHN1YnN0aXR1dGlvbiBPTEQ9TkVXIGlzIHBlcmZvcm1lZC4iCiN+IG1zZ3N0ciAibmFjaGRlbSBkaWUgU3Vic3RpdHV0aW9uIEFsdD1OZXUgZHVyY2hnZWb8aHJ0IHd1cmRlLiIKCiN+IG1zZ2lkICJBIHVzZWZ1bCBhbGlhcyB0byB1c2Ugd2l0aCB0aGlzIGlzIHI9J2ZjIC1zJywgc28gdGhhdCB0eXBpbmcgYHIgY2MnIgojfiBtc2dzdHIgIiIKI34gIkVpbmUgbvx0emxpY2hlIEFsaWFzZXJzZXR6dW5nIGthbm4gcj0nZmMgLXMnIHNlaW4sIG1pdCBkZXIgei5CLiBkdXJjaCBgciAiCiN+ICJjY2AiCgojfiBtc2dpZCAicnVucyB0aGUgbGFzdCBjb21tYW5kIGJlZ2lubmluZyB3aXRoIGBjYycgYW5kIHR5cGluZyBgcicgcmUtZXhlY3V0ZXMiCiN+IG1zZ3N0ciAiIgojfiAiZGFzIGxldHp0ZSBLb21tYW5kbyB3ZWxjaGVzIG1pdCBgY2MnIGJlZ2lubnQgYXVmZ2VydWZlbiB3aXJkIHVuZCBkaWUgIgojfiAiRWluZ2FiZSIKCiMgZmcKI34gbXNnaWQgIlBsYWNlIEpPQl9TUEVDIGluIHRoZSBmb3JlZ3JvdW5kLCBhbmQgbWFrZSBpdCB0aGUgY3VycmVudCBqb2IuICBJZiIKI34gbXNnc3RyICJCcmluZ3QgZGVuIG1pdCBgXlonIGFuZ2VoYWx0ZW5lbiBKb2IgaW4gZGVuIFZvcmRlcmdydW5kLiAgV2VubiBlaW5lIgoKI34gbXNnaWQgIkpPQl9TUEVDIGlzIG5vdCBwcmVzZW50LCB0aGUgc2hlbGwncyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgam9iIGlzIgojfiBtc2dzdHIgIiIKI34gIkpvYmJlemVpY2hudW5nIGFuZ2VnZWJlbiBpc3QsIGRhbm4gd2lyZCBkZXIgenVsZXR6dCBhbmdlaGFsdGVuZSBKb2IgaW0iCgojfiBtc2dpZCAidXNlZC4iCiN+IG1zZ3N0ciAiVm9yZGVyZ3J1bmQgZ2VzdGFydGV0LiIKCiMgYmcKI34gbXNnaWQgIlBsYWNlIEpPQl9TUEVDIGluIHRoZSBiYWNrZ3JvdW5kLCBhcyBpZiBpdCBoYWQgYmVlbiBzdGFydGVkIHdpdGgiCiN+IG1zZ3N0ciAiIgojfiAiU3RhcnRldCBlaW5lbiBtaXQgYF5aJyBhbmdlaGFsdGVuZW4gSm9iIGltIEhpbnRlcmdydW5kLCBhbHMgb2IgZXIgbWl0IGAmJyIKCiN+IG1zZ2lkICJgJicuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3Mgbm90aW9uIG9mIHRoZSBjdXJyZW50IgojfiBtc2dzdHIgIiIKI34gImdlc3RhcnRldCB3b3JkZW4gd+RyZS4gSXN0IGtlaW5lIEpvYmJlemVpY2hudW5nIGFuZ2VnZWJlbiwgd2lyZCBkZXIgIgojfiAienVsZXR6dCIKCiN+IG1zZ2lkICJqb2IgaXMgdXNlZC4iCiN+IG1zZ3N0ciAiYW5nZWhhbHRlbmUgSm9iIGltIEhpbnRlcmdydW5kIGdlc3RhcnRldC4iCgojIGhhc2gKI34gbXNnaWQgIkZvciBlYWNoIE5BTUUsIHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBjb21tYW5kIGlzIGRldGVybWluZWQgYW5kIgojfiBtc2dzdHIgIiIKI34gIkb8ciBqZWRlbiBhbmdlZ2ViZW5lbiBOYW1lbiB3aXJkIGRlciB2b2xsc3TkbmRpZ2UgUGZhZG5hbWUgZGVzIEtvbW1hbmRvcyIKCiN+IG1zZ2lkICJyZW1lbWJlcmVkLiAgSWYgdGhlIC1wIG9wdGlvbiBpcyBzdXBwbGllZCwgUEFUSE5BTUUgaXMgdXNlZCBhcyB0aGUiCiN+IG1zZ3N0ciAiIgojfiAiZXJtaXR0ZWx0IHVuZCBnZW1lcmt0LiAgV2VubiBkaWUgLXAgT3B0aW9uIGFuZ2VnZWJlbiB3aXJkLCBkYW5uIHdpcmQgZGVyIgoKI34gbXNnaWQgImZ1bGwgcGF0aG5hbWUgb2YgTkFNRSwgYW5kIG5vIHBhdGggc2VhcmNoIGlzIHBlcmZvcm1lZC4gIFRoZSAtciIKI34gbXNnc3RyICIiCiN+ICJQZmFkbmFtZSB2ZXJ3ZW5kZXQgdW5kIGtlaW5lIFN1Y2hlIGR1cmNoZ2Vm/GhydC4gIERpZSAtciBPcHRpb24gbPZzY2h0IGRpZSIKCiN+IG1zZ2lkICJvcHRpb24gY2F1c2VzIHRoZSBzaGVsbCB0byBmb3JnZXQgYWxsIHJlbWVtYmVyZWQgbG9jYXRpb25zLiAgSWYgbm8iCiN+IG1zZ3N0ciAiIgojfiAiZ2VzcGVpY2hlcnRlbiBQZmFkZS4gIFdlbm4ga2VpbmUgT3B0aW9uIGFuZ2VnZWJlbiBpc3QsIGRhbm4gd2VyZGVuIGFsbGUiCgojfiBtc2dpZCAiIgojfiAiYXJndW1lbnRzIGFyZSBnaXZlbiwgaW5mb3JtYXRpb24gYWJvdXQgcmVtZW1iZXJlZCBjb21tYW5kcyBpcyBkaXNwbGF5ZWQuIgojfiBtc2dzdHIgImdlc3BlaWNoZXJ0ZW4gS29tbWFuZG9zIGFuZ2V6ZWlndC4iCgojIGhlbHAKI34gbXNnaWQgIkRpc3BsYXkgaGVscGZ1bCBpbmZvcm1hdGlvbiBhYm91dCBidWlsdGluIGNvbW1hbmRzLiAgSWYgUEFUVEVSTiBpcyIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IEhpbGZldGV4dGUgZvxyIGRpZSBlaW5nZWJhdXRlbiBLb21tYW5kb3MgYXVzLiAgV2VubiBlaW4gTXVzdGVyICIKI34gImFuZ2VnZWJlbiIKCiN+IG1zZ2lkICJzcGVjaWZpZWQsIGdpdmVzIGRldGFpbGVkIGhlbHAgb24gYWxsIGNvbW1hbmRzIG1hdGNoaW5nIFBBVFRFUk4sIgojfiBtc2dzdHIgIiIKI34gImlzdCwgZGFubiB3aXJkIGVpbmUgZGV0YWlsaWVydGUgQmVzY2hyZWlidW5nIGRlciBLb21tYW5kb3MgYW5nZXplaWd0LCBkaWUgIgojfiAiZGVtIgoKI34gbXNnaWQgIm90aGVyd2lzZSBhIGxpc3Qgb2YgdGhlIGJ1aWx0aW5zIGlzIHByaW50ZWQuIgojfiBtc2dzdHIgIiIKI34gIk11c3RlciBlbnRzcHJlY2hlbi4gIFNvbnN0IHdlcmRlbiBkaWUgZWluZ2ViYXV0ZW4gS29tbWFuZG9zIGdlbGlzdGV0LiIKCiMgaGlzdG9yeQojfiBtc2dpZCAiRGlzcGxheSB0aGUgaGlzdG9yeSBsaXN0IHdpdGggbGluZSBudW1iZXJzLiAgTGluZXMgbGlzdGVkIHdpdGgiCiN+IG1zZ3N0ciAiIgojfiAiWmVpZ3QgZGVuIEtvbW1hbmRvemVpbGVuc3BlaWNoZXIgbWl0IFplaWxlbm51bW1lcm4gYW4uICBNaXQgYConIG1hcmtpZXJ0ZSIKCiN+IG1zZ2lkICJ3aXRoIGEgYConIGhhdmUgYmVlbiBtb2RpZmllZC4gIEFyZ3VtZW50IG9mIE4gc2F5cyB0byBsaXN0IG9ubHkiCiN+IG1zZ3N0ciAiIgojfiAiWmVpbGVuIHd1cmRlbiB2ZXLkbmRlcnQuICBNaXQgZWluZXIgWmFobCBhbHMgQXJndW1lbnQgd2lyZCBudXIgZGllICIKI34gImFuZ2VnZWJlbmUiCgojfiBtc2dpZCAidGhlIGxhc3QgTiBsaW5lcy4gIFRoZSAtYyBvcHRpb24gY2F1c2VzIHRoZSBoaXN0b3J5IGxpc3QgdG8gYmUiCiN+IG1zZ3N0ciAiIgojfiAiQW56YWhsIFplaWxlbiBhdXNnZWdlYmVuLiAgTWl0IGRlciBgLWMnIE9wdGlvbiBrYW5uIGRlciAiCiN+ICJLb21tYW5kb3plaWxlbnNwZWljaGVyIgoKI34gbXNnaWQgIiIKI34gImNsZWFyZWQgYnkgZGVsZXRpbmcgYWxsIG9mIHRoZSBlbnRyaWVzLiAgVGhlIGAtdycgb3B0aW9uIHdyaXRlcyBvdXQgdGhlIgojfiBtc2dzdHIgIiIKI34gImdlbPZzY2h0IHdlcmRlbi4gIElzdCBkaWUgYC13JyBPcHRpb24gYW5nZWdlYmVuLCAgd2lyZCBkZXIgS29tbWFuZG96ZWlsZW4tIgoKI34gbXNnaWQgIiIKI34gImN1cnJlbnQgaGlzdG9yeSB0byB0aGUgaGlzdG9yeSBmaWxlOyAgYC1yJyBtZWFucyB0byByZWFkIHRoZSBmaWxlIGFuZCIKI34gbXNnc3RyICIiCiN+ICJzcGVpY2hlciBpbiBkaWUgaGlzdG9yeSBEYXRlaSBnZXNjaHJpZWJlbi4gYC1yJyBsaWVzdCBkaWVzZSBEYXRlaSB1bmQgZvxndCIKCiN+IG1zZ2lkICJhcHBlbmQgdGhlIGNvbnRlbnRzIHRvIHRoZSBoaXN0b3J5IGxpc3QgaW5zdGVhZC4gIGAtYScgbWVhbnMiCiN+IG1zZ3N0ciAiIgojfiAiaWhyZW4gSW5oYWx0IGFuIGRlbiBLb21tYW5kb3plaWxlbnNwZWljaGVyIGFuLiAgRHVyY2ggZGllIE9wdGlvbiBgLWEnICIKI34gImthbm4gZGVyIgoKI34gbXNnaWQgInRvIGFwcGVuZCBoaXN0b3J5IGxpbmVzIGZyb20gdGhpcyBzZXNzaW9uIHRvIHRoZSBoaXN0b3J5IGZpbGUuIgojfiBtc2dzdHIgIiIKI34gIktvbW1hbmRvemVpbGVuc3BlaWNoZXIgZGVyIFNpdHp1bmcgYW4gZGllIGhpc3RvcnkgRGF0ZWkgYW5nZWb8Z3Qgd2VyZGVuLiIKCiN+IG1zZ2lkICJBcmd1bWVudCBgLW4nIG1lYW5zIHRvIHJlYWQgYWxsIGhpc3RvcnkgbGluZXMgbm90IGFscmVhZHkgcmVhZCIKI34gbXNnc3RyICIiCiN+ICJEYXMgQXJndW1lbnQgYC1uJyBiZXdpcmt0LCBkYd8gYWxsZSBaZWlsZW4gZGllIG5vY2ggbmljaHQgYXVzIGRlciBoaXN0b3J5ICIKI34gIkRhdGVpIgoKI34gbXNnaWQgImZyb20gdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5kIHRoZW0gdG8gdGhlIGhpc3RvcnkgbGlzdC4gIElmIgojfiBtc2dzdHIgIiIKI34gImdlbGVzZW4gd3VyZGVuIGFuIGRlbiBLb21tYW5kb3plaWxlbnNwZWljaGVyIGFuZ2Vm/Gd0IHdlcmRlbi4gIFdlbm4gZWluICIKI34gIkRhdGVpLSIKCiN+IG1zZ2lkICJGSUxFTkFNRSBpcyBnaXZlbiwgdGhlbiB0aGF0IGlzIHVzZWQgYXMgdGhlIGhpc3RvcnkgZmlsZSBlbHNlIgojfiBtc2dzdHIgIiIKI34gIm5hbWUgYW5nZWdlYmVuIGlzdCwgZGFubiB3aXJkIGRpZXNlciBhbHMgTmFtZSBkZXIgaGlzdG9yeSBEYXRlaSAiCiN+ICJ2ZXJ3ZW5kZXQuICBTb25zdCIKCiN+IG1zZ2lkICJpZiAkSElTVEZJTEUgaGFzIGEgdmFsdWUsIHRoYXQgaXMgdXNlZCwgZWxzZSB+Ly5iYXNoX2hpc3RvcnkuIgojfiBtc2dzdHIgIiIKI34gIndpcmQgZGVyIEluaGFsdCBkZXIgVmFyaWFibGVuICRISVNURklMRSB1bmQgYW5zY2hsaWXfZW5kIH4vLmJhc2hfaGlzdG9yeSAiCiN+ICJ2ZXJ3ZW5kZXQuIgoKI34gbXNnaWQgIklmIHRoZSAtcyBvcHRpb24gaXMgc3VwcGxpZWQsIHRoZSBub24tb3B0aW9uIEFSR3MgYXJlIGFwcGVuZGVkIHRvIgojfiBtc2dzdHIgIiIKI34gIkR1cmNoIGRpZSAtcyBPcHRpb24gd2lyZCBiZXdpcmt0LCBkYd8gZGllIE5pY2h0LU9wdGlvbnMtQXJndW1lbnRlIGFscyAiCiN+ICJlaWdlbmUiCgojfiBtc2dpZCAidGhlIGhpc3RvcnkgbGlzdCBhcyBhIHNpbmdsZSBlbnRyeS4gIFRoZSAtcCBvcHRpb24gbWVhbnMgdG8gcGVyZm9ybSIKI34gbXNnc3RyICIiCiN+ICJaZWlsZSBhbiBkZW4gS29tbWFuZG9zcGVpY2hlciBhbmdlZvxndCB3ZXJkZW4uICBNaXQgLXAgd2lyZCBm/HIgamVkZXMgIgojfiAiQXJndW1lbnQiCgojfiBtc2dpZCAiIgojfiAiaGlzdG9yeSBleHBhbnNpb24gb24gZWFjaCBBUkcgYW5kIGRpc3BsYXkgdGhlIHJlc3VsdCwgd2l0aG91dCBzdG9yaW5nIgojfiBtc2dzdHIgIiIKI34gImRpZSBLb21tYW5kb3N1YnN0aXR1dGlvbiBkdXJjaGdlZvxocnQgdW5kIGRhcyBFcmdlYm5pcyBhbmdlemVpZ3QsICBvaG5lICIKI34gImplZG9jaCIKCiN+IG1zZ2lkICJhbnl0aGluZyBpbiB0aGUgaGlzdG9yeSBsaXN0LiIKI34gbXNnc3RyICJldHdhcyBpbSBLb21tYW5kb3plaWxlbnNwZWljaGVyIGFienVsZWdlbi4iCgojIGpvYnMKI34gbXNnaWQgIkxpc3RzIHRoZSBhY3RpdmUgam9icy4gIFRoZSAtbCBvcHRpb24gbGlzdHMgcHJvY2VzcyBpZCdzIGluIGFkZGl0aW9uIgojfiBtc2dzdHIgIiIKI34gIkdpYnQgZWluZSBMaXN0ZSBkZXIgYWt0aXZlbiBKb2JzIGF1cy4gIE1pdCBkZXIgLWwgT3B0aW9uIHdlcmRlbiAiCiN+ICJ6dXPkdHpsaWNoIGRpZSIKCiN+IG1zZ2lkICJ0byB0aGUgbm9ybWFsIGluZm9ybWF0aW9uOyB0aGUgLXAgb3B0aW9uIGxpc3RzIHByb2Nlc3MgaWQncyBvbmx5LiIKI34gbXNnc3RyICIiCiN+ICJQcm96Zd9udW1tZXJuIHVuZCBtaXQgZGVyIC1wIE9wdGlvbiBudXIgZGllIFByb3pl3251bW1lcm4gYXVzZ3NnZWdlYmVuLiIKCiN+IG1zZ2lkICIiCiN+ICJJZiAtbiBpcyBnaXZlbiwgb25seSBwcm9jZXNzZXMgdGhhdCBoYXZlIGNoYW5nZWQgc3RhdHVzIHNpbmNlIHRoZSBsYXN0IgojfiBtc2dzdHIgIiIKI34gIkRpZSBPcHRpb24gLW4gYmV3aXJrdCwgZGHfIG51ciBKb2JzIGFuZ2V6ZWlndCB3ZXJkZW4sIGRpZSBpaHJlbiBTdGF0dXMgIgojfiAic2VpZCBkZW0iCgojfiBtc2dpZCAiIgojfiAibm90aWZpY2F0aW9uIGFyZSBwcmludGVkLiAgSk9CU1BFQyByZXN0cmljdHMgb3V0cHV0IHRvIHRoYXQgam9iLiAgVGhlIgojfiBtc2dzdHIgIiIKI34gImxldHp0ZW4gQXVmcnVmIGdl5G5kZXJ0IGhhYmVuLiBKb2JiZXouIGJlc2NocuRua3QgZGllIEFuemVpZ2UgYXVmIGRpZXNlbiAiCiN+ICJKb2IuIgoKI34gbXNnaWQgIi1yIGFuZCAtcyBvcHRpb25zIHJlc3RyaWN0IG91dHB1dCB0byBydW5uaW5nIGFuZCBzdG9wcGVkIGpvYnMgb25seSwiCiN+IG1zZ3N0ciAiIgojfiAiLXIgemVpZ3QgbnVyIGxhdWZlbmRlIHVuZCAtcyBudXIgZ2VzdG9wcHRlIEpvYnMgYW4uICBXZW5uIGtlaW5lIE9wdGlvbmVuIgoKI34gbXNnaWQgInJlc3BlY3RpdmVseS4gIFdpdGhvdXQgb3B0aW9ucywgdGhlIHN0YXR1cyBvZiBhbGwgYWN0aXZlIGpvYnMgaXMiCiN+IG1zZ3N0ciAiYW5nZWdlYmVuIHNpbmQsIGRhbm4gd2lyZCBkZXIgU3RhdHVzIGFsbGVyIGFrdGl2ZW4gSm9icyBhbmdlemVpZ3QuIgoKI34gbXNnaWQgIiIKI34gInByaW50ZWQuICBJZiAteCBpcyBnaXZlbiwgQ09NTUFORCBpcyBydW4gYWZ0ZXIgYWxsIGpvYiBzcGVjaWZpY2F0aW9ucyIKI34gbXNnc3RyICIiCiN+ICJXZW5uIC14IGluIGRlciBLb21tYW5kb3plaWxlIGFuZ2VnZWJlbiBpc3QsIHdpcmQgZGFzIEtvbW1hbmRvIGF1c2dlZvxocnQgIgojfiAidW5kIgoKI34gbXNnaWQgIiIKI34gInRoYXQgYXBwZWFyIGluIEFSR1MgaGF2ZSBiZWVuIHJlcGxhY2VkIHdpdGggdGhlIHByb2Nlc3MgSUQgb2YgdGhhdCBqb2IncyIKI34gbXNnc3RyICJ2b3JoZXIgYWxsZSB2b3Jrb21tZW5kZW4gSm9ic3BlemlmaWthdGlvbmVuIGR1cmNoIGlocmUgUHJvemXfbnVtbWVyIgoKI34gbXNnaWQgInByb2Nlc3MgZ3JvdXAgbGVhZGVyLiIKI34gbXNnc3RyICJlcnNldHp0LiIKCiMgZGlzb3duCiN+IG1zZ2lkICJSZW1vdmVzIGVhY2ggSk9CU1BFQyBhcmd1bWVudCBmcm9tIHRoZSB0YWJsZSBvZiBhY3RpdmUgam9icy4iCiN+IG1zZ3N0ciAiRW50ZmVybnQgZGllIGFuZ2VnZWJlbmVuIEpvYnMgdm9uIGRlciBMaXN0ZSBkZXIgYWt0aXZlbiBKb2JzLiIKCiMga2lsbAojfiBtc2dpZCAiU2VuZCB0aGUgcHJvY2Vzc2VzIG5hbWVkIGJ5IFBJRCAob3IgSk9CKSB0aGUgc2lnbmFsIFNJR1NQRUMuICBJZiIKI34gbXNnc3RyICIiCiN+ICJTZW5kZXQgZGVuIGR1cmNoIHBpZCAob2RlciBqb2IpIGFuZ2VnZWJlbmVuIFByb3plc3NlbiBkYXMgU2lnbmFsICIKI34gIlNJR1NQRUMuICBXZW5uIgoKI34gbXNnaWQgIiIKI34gIlNJR1NQRUMgaXMgbm90IHByZXNlbnQsIHRoZW4gU0lHVEVSTSBpcyBhc3N1bWVkLiAgQW4gYXJndW1lbnQgb2YgYC1sJyIKI34gbXNnc3RyICIiCiN+ICJrZWluIFNpZ25hbCBhbmdlZ2ViZW4gaXN0IHdpcmQgU0lHVEVSTSBnZXNlbmRldC4gIE1pdCBkZXIgT3B0aW9uIC1sIGthbm4gIgojfiAiZWluZSIKCiN+IG1zZ2lkICJsaXN0cyB0aGUgc2lnbmFsIG5hbWVzOyBpZiBhcmd1bWVudHMgZm9sbG93IGAtbCcgdGhleSBhcmUgYXNzdW1lZCB0byIKI34gbXNnc3RyICIiCiN+ICJMaXN0ZSBkZXIgbfZnbGljaGVuIFNpZ25hbG5hbWVuIGFuZ2V6ZWlndCB3ZXJkZW4uICBXZW5uIFphaGxlbiBuYWNoIGRlciAiCiN+ICJPcHRpb24iCgojfiBtc2dpZCAiYmUgc2lnbmFsIG51bWJlcnMgZm9yIHdoaWNoIG5hbWVzIHNob3VsZCBiZSBsaXN0ZWQuICBLaWxsIGlzIGEgc2hlbGwiCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWdlYmVuIHdlcmRlbiwgIHdpcmQgZGVyZW4gU2lnbmFsYmV6ZWljaG51bmcgYW5nZXplaWd0LiAgS2lsbCBpc3QgYXVzICIKI34gInp3ZWkiCgojfiBtc2dpZCAiYnVpbHRpbiBmb3IgdHdvIHJlYXNvbnM6IGl0IGFsbG93cyBqb2IgSURzIHRvIGJlIHVzZWQgaW5zdGVhZCBvZiIKI34gbXNnc3RyICIiCiN+ICJHcvxuZGVuIGVpbmUgU2hlbGxmdW5rdGlvbjogZXMga/ZubmVuIEpvYmJlemVpY2hudW5nZW4gYW5zdGF0dCAiCiN+ICJQcm96Zd9udW1tZXJuIgoKI34gbXNnaWQgInByb2Nlc3MgSURzLCBhbmQsIGlmIHlvdSBoYXZlIHJlYWNoZWQgdGhlIGxpbWl0IG9uIHByb2Nlc3NlcyB0aGF0IgojfiBtc2dzdHIgIiIKI34gImdlbnV0enQgd2VyZGVuIHVuZCwgd2VubiBkaWUgbWF4aW1hbGUgQW56YWhsIGxhdWZlbmRlciBQcm96ZXNzZSBlcnJlaWNodCAiCiN+ICJpc3QiCgojfiBtc2dpZCAiIgojfiAieW91IGNhbiBjcmVhdGUsIHlvdSBkb24ndCBoYXZlIHRvIHN0YXJ0IGEgcHJvY2VzcyB0byBraWxsIGFub3RoZXIgb25lLiIKI34gbXNnc3RyICIiCiN+ICJicmF1Y2h0IGtlaW4gd2VpdGVyZXIgUHJvemXfIGdlc3RhcnRldCB6dSB3ZXJkZW4sIHVtIGVpbmVuIGFuZGVyZW4genUgIgojfiAiYmVlbmRlbi4iCgojIGxldAojfiBtc2dpZCAiRWFjaCBBUkcgaXMgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZC4gIEV2YWx1YXRpb24iCiN+IG1zZ3N0ciAiIgojfiAiSmVkZXMgQXJndW1lbnQgaXN0IGVpbiBhdXN6dXdlcnRlbmRlciBhcml0aG1ldGlzY2hlciBBdXNkcnVjay4gIEVzIHdlcmRlbiAiCiN+ICJsb25nIgoKI34gbXNnaWQgImlzIGRvbmUgaW4gbG9uZyBpbnRlZ2VycyB3aXRoIG5vIGNoZWNrIGZvciBvdmVyZmxvdywgdGhvdWdoIGRpdmlzaW9uIgojfiBtc2dzdHIgIiIKI34gImludGVnZXIgVmFyaWFibGVuIHZlcndlbmRldC4gIEVpbiDcYmVybGF1ZnRlc3Qgd2lyZCBuaWNodCBhdXNnZWb8aHJ0LCAiCiN+ICJqZWRvY2giCgojfiBtc2dpZCAiYnkgMCBpcyB0cmFwcGVkIGFuZCBmbGFnZ2VkIGFzIGFuIGVycm9yLiAgVGhlIGZvbGxvd2luZyBsaXN0IG9mIgojfiBtc2dzdHIgIiIKI34gIndpcmQgZWluZSBEaXZpc2lvbiBkdXJjaCAwIGVya2FubnQgdW5kIGFscyBGZWhsZXIgZ2VrZW5uemVpY2huZXQuICBEaWUiCgojfiBtc2dpZCAib3BlcmF0b3JzIGlzIGdyb3VwZWQgaW50byBsZXZlbHMgb2YgZXF1YWwtcHJlY2VkZW5jZSBvcGVyYXRvcnMuIgojfiBtc2dzdHIgIkxpc3RlIHZvbiBPcGVyYXRvcmVuIGlzdCBpbiBHcnVwcGVuIGdsZWljaGVuIFZvcnJhbmdzIGdlb3JkbmV0LiIKCiN+IG1zZ2lkICJUaGUgbGV2ZWxzIGFyZSBsaXN0ZWQgaW4gb3JkZXIgb2YgZGVjcmVhc2luZyBwcmVjZWRlbmNlLiIKI34gbXNnc3RyICJEaWUgR3J1cHBlbiBzZWxic3Qgc2luZCBuYWNoIGFibmVobWVuZGVtIFZvcnJhbmcgc29ydGllcnQuIgoKI34gbXNnaWQgIlx0LSwgK1x0XHR1bmFyeSBtaW51cywgcGx1cyIKI34gbXNnc3RyICJcdC0sICtcdFx0Vm9yemVpY2hlbi4iCgojfiBtc2dpZCAiXHQhLCB+XHRcdGxvZ2ljYWwgYW5kIGJpdHdpc2UgbmVnYXRpb24iCiN+IG1zZ3N0ciAiXHQhLCB+XHRcdExvZ2lzY2hlIHVuZCBiaXR3ZWlzZSBOZWdhdGlvbi4iCgojfiBtc2dpZCAiXHQqLCAvLCAlXHRcdG11bHRpcGxpY2F0aW9uLCBkaXZpc2lvbiwgcmVtYWluZGVyIgojfiBtc2dzdHIgIlx0KiwgLywgJVx0XHRNdWx0aXBsaWthdGlvbiwgRGl2aXNpb24gdW5kIE1vZHVsby4iCgojfiBtc2dpZCAiXHQrLCAtXHRcdGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJcdCssIC1cdFx0QWRkaXRpb24gdW5kIFN1YnRyYWt0aW9uLiIKCiN+IG1zZ2lkICJcdDw8LCA+Plx0XHRsZWZ0IGFuZCByaWdodCBiaXR3aXNlIHNoaWZ0cyIKI34gbXNnc3RyICJcdDw8LCA+Plx0XHRCaXR3ZWlzZSBMaW5rcy0gdW5kIFJlY2h0c3ZlcnNjaGllYnVuZy4iCgojfiBtc2dpZCAiXHQ8PSwgPj0sIDwsID5cdGNvbXBhcmlzb24iCiN+IG1zZ3N0ciAiXHQ8PSwgPj0sIDwsID5cdFZlcmdsZWljaHNvcGVyYXRvcmVuLiIKCiN+IG1zZ2lkICJcdD09LCAhPVx0XHRlcXVhbGl0eSwgaW5lcXVhbGl0eSIKI34gbXNnc3RyICJcdD09LCAhPVx0XHRHbGVpY2ggdW5kIHVuZ2xlaWNoLiIKCiN+IG1zZ2lkICJcdCZcdFx0Yml0d2lzZSBBTkQiCiN+IG1zZ3N0ciAiXHQmXHRcdEJpdHdlaXNlcyBVTkQuIgoKI34gbXNnaWQgIlx0Xlx0XHRiaXR3aXNlIFhPUiIKI34gbXNnc3RyICJcdF5cdFx0Qml0d2Vpc2VzIFhPUi4iCgojfiBtc2dpZCAiXHR8XHRcdGJpdHdpc2UgT1IiCiN+IG1zZ3N0ciAiXHR8XHRcdEJpdHdlaXNlcyBPUi4iCgojfiBtc2dpZCAiXHQmJlx0XHRsb2dpY2FsIEFORCIKI34gbXNnc3RyICJcdCYmXHRcdExvZ2lzY2hlcyBVTkQuIgoKI34gbXNnaWQgIlx0fHxcdFx0bG9naWNhbCBPUiIKI34gbXNnc3RyICJcdHx8XHRcdExvZ2lzY2hlcyBPREVSLiIKCiN+IG1zZ2lkICJcdGV4cHIgPyBleHByIDogZXhwciIKI34gbXNnc3RyICJcdEF1c2RydWNrMSA/IEF1c2RydWNrMiA6IEF1c2RydWNrMyIKCiN+IG1zZ2lkICJcdFx0XHRjb25kaXRpb25hbCBleHByZXNzaW9uIgojfiBtc2dzdHIgIlx0XHRcdEJlZGluZ3RlIEJlZmVobHNhdXNm/GhydW5nLiIKCiN+IG1zZ2lkICJcdD0sICo9LCAvPSwgJT0sIgojfiBtc2dzdHIgIlx0PSwgKj0sIC89LCAlPSwiCgojfiBtc2dpZCAiXHQrPSwgLT0sIDw8PSwgPj49LCIKI34gbXNnc3RyICJcdCs9LCAtPSwgPDw9LCA+Pj0sIgoKI34gbXNnaWQgIlx0Jj0sIF49LCB8PVx0YXNzaWdubWVudCIKI34gbXNnc3RyICJcdCY9LCBePSwgfD1cdFp1d2Vpc3VuZ2VuLiIKCiN+IG1zZ2lkICJpcyByZXBsYWNlZCBieSBpdHMgdmFsdWUgKGNvZXJjZWQgdG8gYSBsb25nIGludGVnZXIpIHdpdGhpbiIKI34gbXNnc3RyICIiCiN+ICJBdXNkcnVjayBkdXJjaCBpaHJlbiBpbiBsb25nIGludGVnZXIgdW1nZXdhbmRlbHRlbiBXZXJ0IGVyc2V0enQuIFVtICIKCiN+IG1zZ2lkICJhbiBleHByZXNzaW9uLiAgVGhlIHZhcmlhYmxlIG5lZWQgbm90IGhhdmUgaXRzIGludGVnZXIgYXR0cmlidXRlIgojfiBtc2dzdHIgImRpZSBWYXJpYWJsZSBpbiBlaW5lbSBBdXNkcnVjayB2ZXJ3ZW5kZW4genUga/ZubmVuLCBtdd8gaWhyICIKCiN+IG1zZ2lkICJ0dXJuZWQgb24gdG8gYmUgdXNlZCBpbiBhbiBleHByZXNzaW9uLiIKI34gbXNnc3RyICJJbnRlZ2VyYXR0cmlidXQgbmljaHQgYWt0aXZpZXJ0IHNlaW4uIgoKI34gbXNnaWQgIk9wZXJhdG9ycyBhcmUgZXZhbHVhdGVkIGluIG9yZGVyIG9mIHByZWNlZGVuY2UuICBTdWItZXhwcmVzc2lvbnMgaW4iCiN+IG1zZ3N0ciAiRGllIE9wZXJhdG9yZW4gd2VyZGVuIGluIFJlaWhlbmZvbGdlIGlocmVzIFZvcnJhbmdzIGF1c2dld2VydGV0LiIKCiN+IG1zZ2lkICJwYXJlbnRoZXNlcyBhcmUgZXZhbHVhdGVkIGZpcnN0IGFuZCBtYXkgb3ZlcnJpZGUgdGhlIHByZWNlZGVuY2UiCiN+IG1zZ3N0ciAiIgojfiAiR2VrbGFtbWVydGUgVGVpbGF1c2Ry/GNrZSB3ZXJkZW4genVlcnN0IGF1c2dld2VydGV0IHVuZCBr9m5uZW4gdm9uIGRlbiIKCiN+IG1zZ2lkICJydWxlcyBhYm92ZS4iCiN+IG1zZ3N0ciAib2JlbiBhbmdlZ2ViZW5lbiBWb3JyYW5ncmVnZWxuIGFid2VpY2hlbi4iCgojfiBtc2dpZCAiSWYgdGhlIGxhc3QgQVJHIGV2YWx1YXRlcyB0byAwLCBsZXQgcmV0dXJucyAxOyAwIGlzIHJldHVybmVkIgojfiBtc2dzdHIgIldlbm4gZGFzIHp1bGV0enQgYXVzZ2V3ZXJ0ZXRlIEFyZ3VtZW50IDAgZXJnaWJ0LCBsaWVmZXJ0IGxldCAiCgojfiBtc2dpZCAib3RoZXJ3aXNlLiIKI34gbXNnc3RyICIxIGFscyBS/GNrZ2FiZXdlcnQsIHNvbnN0IDAuIgoKIyByZWFkCiN+IG1zZ2lkICJPbmUgbGluZSBpcyByZWFkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0LCBhbmQgdGhlIGZpcnN0IHdvcmQgaXMiCiN+IG1zZ3N0ciAiIgojfiAiRXMgd2lyZCBlaW5lIFplaWxlIHZvbiBkZXIgU3RhbmRhcmRlaW5nYWJlIGdlbGVzZW4gdW5kIGRhcyBlcnN0ZSBXb3J0IGRlciIKCiN+IG1zZ2lkICIiCiN+ICJhc3NpZ25lZCB0byB0aGUgZmlyc3QgTkFNRSwgdGhlIHNlY29uZCB3b3JkIHRvIHRoZSBzZWNvbmQgTkFNRSwgYW5kIHNvIgojfiBtc2dzdHIgIiIKI34gImVyc3RlbiBWYXJpYWJsZW4gTkFNRSB6dWdld2llc2VuLCBkYXMgendlaXRlIFdvcnQgZGVyIHp3ZWl0ZW4gVmFyaWFibGVuICIKI34gInVuZCBzbyIKCiN+IG1zZ2lkICIiCiN+ICJvbiwgd2l0aCBsZWZ0b3ZlciB3b3JkcyBhc3NpZ25lZCB0byB0aGUgbGFzdCBOQU1FLiAgT25seSB0aGUgY2hhcmFjdGVycyIKI34gbXNnc3RyICIiCiN+ICJ3ZWl0ZXIsICBiaXMgZWluIFdvcnQgZGVyIGxldHp0ZW4gVmFyaWFibGVuIHp1Z2V3aWVzZW4gd3VyZGUuICBOdXIgZGllIGluICIKI34gIiRJRlMiCgojfiBtc2dpZCAiZm91bmQgaW4gJElGUyBhcmUgcmVjb2duaXplZCBhcyB3b3JkIGRlbGltaXRlcnMuICBUaGUgcmV0dXJuIGNvZGUgaXMiCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWdlYmVuZW4gWmVpY2hlbiB3ZXJkZW4gYWxzIFRyZW5uemVpY2hlbiBlcmthbm50LiAgV2VubiBrZWluIEVPRiAiCiN+ICJaZWljaGVuIgoKI34gbXNnaWQgIiIKI34gInplcm8sIHVubGVzcyBlbmQtb2YtZmlsZSBpcyBlbmNvdW50ZXJlZC4gIElmIG5vIE5BTUVzIGFyZSBzdXBwbGllZCwgdGhlIgojfiBtc2dzdHIgIiIKI34gImF1ZmdldHJldGVuIGlzdCwgaXN0IGRlciBS/GNrZ2FiZXdlcnQgTnVsbC4gIFdlbm4ga2VpbiBOQU1FIGFuZ2VnZWJlbiAiCiN+ICJ3dXJkZSwiCgojfiBtc2dpZCAiIgojfiAibGluZSByZWFkIGlzIHN0b3JlZCBpbiB0aGUgUkVQTFkgdmFyaWFibGUuICBJZiB0aGUgLXIgb3B0aW9uIGlzIGdpdmVuLCIKI34gbXNnc3RyICIiCiN+ICJ2ZXJ3ZW5kZXQgcmVhZCBkaWUgUkVQTFkgVmFyaWFibGUuICBEdXJjaCBkaWUgT3B0aW9uIC1yIHdpcmQgZGFzICIKI34gIkF1c3dlcnRlbiB2b24iCgojfiBtc2dpZCAidGhpcyBzaWduaWZpZXMgYHJhdycgaW5wdXQsIGFuZCBiYWNrc2xhc2ggZXNjYXBpbmcgaXMgZGlzYWJsZWQuICBJZiIKI34gbXNnc3RyICIiCiN+ICJtaXQgYFxcJyBtYXJraWVydGVuICBTb25kZXJ6ZWljaGVuIHVudGVyZHL8Y2t0LiAgV2VubiBkaWUgT3B0aW9uIC1yICIKI34gImFuZ2VnZWJlbiIKCiN+IG1zZ2lkICJ0aGUgYC1wJyBvcHRpb24gaXMgc3VwcGxpZWQsIHRoZSBzdHJpbmcgc3VwcGxpZWQgYXMgYW4gYXJndW1lbnQgaXMiCiN+IG1zZ3N0ciAiIgojfiAiaXN0LCBkYW5uIHdpcmQgZGllIEVpbmdhYmVhdWZmb3JkZXJ1bmcgb2huZSBlaW5lbiBhYnNjaGxpZd9lbmRlbiAiCiN+ICJaZWlsZW51bWJydWNoIgoKI34gbXNnaWQgIiIKI34gIm91dHB1dCB3aXRob3V0IGEgdHJhaWxpbmcgbmV3bGluZSBiZWZvcmUgYXR0ZW1wdGluZyB0byByZWFkLiAgSWYgLWEgaXMiCiN+IG1zZ3N0ciAiIgojfiAiYW5nZXplaWd0LiAgV2VubiBkaWUgT3B0aW9uIC1hIGFuZ2VnZWJlbiBpc3QsIGRhbm4gd2lyZCBkaWUgRWluZ2FiZSBhbiBkaWUiCgojfiBtc2dpZCAiIgojfiAic3VwcGxpZWQsIHRoZSB3b3JkcyByZWFkIGFyZSBhc3NpZ25lZCB0byBzZXF1ZW50aWFsIGluZGljZXMgb2YgQVJSQVksIgojfiBtc2dzdHIgIiIKI34gIkZlbGR2YXJpYWJsZSBBUlJBWSD8YmVyZ2ViZW4gdW5kIGb8ciBqZWRlbiBFaW50cmFnIGRlciBJbmRleCB2b24gTnVsbCAiCiN+ICJiZWdpbm5lbmQiCgojfiBtc2dpZCAic3RhcnRpbmcgYXQgemVyby4gIElmIC1lIGlzIHN1cHBsaWVkIGFuZCB0aGUgc2hlbGwgaXMgaW50ZXJhY3RpdmUsIgojfiBtc2dzdHIgIiIKI34gInVtIEVpbnMgZXJo9mh0IHdpcmQuICBNaXQgZGVyIC1lIE9wdGlvbiB3aXJkIGJlaSBlaW5lciBpbnRlcmFrdGl2ZW4gU2hlbGwgIgojfiAiZGllIgoKI34gbXNnaWQgInJlYWRsaW5lIGlzIHVzZWQgdG8gb2J0YWluIHRoZSBsaW5lLiIKI34gbXNnc3RyICIiCiN+ICJkaWUgcmVhZGxpbmUgRnVua3Rpb25lbiBha3RpdmllcnQsIHVtIGRpZSBFaW5nYWJlemVpbGUgenUgZWRpdGllcmVuLiIKCiMgcmV0dXJuCiN+IG1zZ2lkICIiCiN+ICJDYXVzZXMgYSBmdW5jdGlvbiB0byBleGl0IHdpdGggdGhlIHJldHVybiB2YWx1ZSBzcGVjaWZpZWQgYnkgTi4gIElmIE4iCiN+IG1zZ3N0ciAiIgojfiAiQmVlbmRldCBlaW5lIFNoZWxsZnVua3Rpb24gdW5kIHNldHp0IGRlbiBS/GNrZ2FiZXdlcnQgYXVmIE4uICBXZW5uIGtlaW4gIgojfiAiUvxja2dhLSIKCiN+IG1zZ2lkICJpcyBvbWl0dGVkLCB0aGUgcmV0dXJuIHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuIgojfiBtc2dzdHIgIiIKI34gImJld2VydCBhbmdlZ2ViZW4gaXN0LCB3aXJkIGRlciBkZXMgenVsZXR6dCBhdXNnZWb8aHJ0ZW4gS29tbWFuZG9zICIKI34gInZlcndlbmRldC4iCgojIHNldAojfiBtc2dpZCAiICAgIC1hICBNYXJrIHZhcmlhYmxlcyB3aGljaCBhcmUgbW9kaWZpZWQgb3IgY3JlYXRlZCBmb3IgZXhwb3J0LiIKI34gbXNnc3RyICIiCiN+ICIgICAgLWEgIE1hcmtpZXJ0IGVyemV1Z3RlIG9kZXIgdmVy5G5kZXJ0ZSBWYXJpYWJsZW4gYWxzIGV4cG9ydGllcmJhci4iCgojfiBtc2dpZCAiICAgIC1iICBOb3RpZnkgb2Ygam9iIHRlcm1pbmF0aW9uIGltbWVkaWF0ZWx5LiIKI34gbXNnc3RyICIgICAgLWIgIFplaWd0IGRhcyBCZWVuZGVuIHZvbiBQcm96ZXNzZW4gc29mb3J0IGFuLiIKCiN+IG1zZ2lkICIgICAgLWUgIEV4aXQgaW1tZWRpYXRlbHkgaWYgYSBjb21tYW5kIGV4aXRzIHdpdGggYSBub24temVybyBzdGF0dXMuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtZSAgQmVlbmRldCBkaWUgU2hlbGwgc29mb3J0LCB3ZW5uIGVpbiBLb21tYW5kbyBlaW4gRmVobGVyICIKI34gInp1cvxja2xpZWZlcnQuIgoKI34gbXNnaWQgIiAgICAtZiAgRGlzYWJsZSBmaWxlIG5hbWUgZ2VuZXJhdGlvbiAoZ2xvYmJpbmcpLiIKI34gbXNnc3RyICIgICAgLWYgIFVudGVyZHL8Y2t0IGRhcyBFcnpldWdlbiB2b24gRGF0ZWluYW1lbi4iCgojfiBtc2dpZCAiICAgIC1oICBSZW1lbWJlciB0aGUgbG9jYXRpb24gb2YgY29tbWFuZHMgYXMgdGhleSBhcmUgbG9va2VkIHVwLiIKI34gbXNnc3RyICIgICAgLWggIFNwZWljaGVydCBkaWUgZWluZ2VnZWJlbmVuIEtvbW1hbmRvcyBzb2ZvcnQuIgoKI34gbXNnaWQgIiIKI34gIiAgICAtaSAgRm9yY2UgdGhlIHNoZWxsIHRvIGJlIGFuIFwiaW50ZXJhY3RpdmVcIiBvbmUuICBJbnRlcmFjdGl2ZSBzaGVsbHMiCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1pICBFcnp3aW5ndCwgZGHfIGRpZSBTaGVsbCBpbnRlcmFrdGl2IGFyYmVpdGV0LiAgSW50ZXJha3RpdmUgU2hlbGxzIgoKI34gbXNnaWQgIiAgICAgICAgYWx3YXlzIHJlYWQgYH4vLmJhc2hyYycgb24gc3RhcnR1cC4iCiN+IG1zZ3N0ciAiIgojfiAiICAgICAgICBpbnRlcnByZXRpZXJlbiBiZWltIEF1ZnJ1ZmVuIGRlbiBJbmhhbHQgZGVyIERhdGVpICBgfi8uYmFzaHJjJy4iCgojfiBtc2dpZCAiICAgIC1rICBBbGwgYXNzaWdubWVudCBhcmd1bWVudHMgYXJlIHBsYWNlZCBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIGEiCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1rICBEaWUga29tcGxldHRlIEtvbW1hbmRvemVpbGUgd2lyZCBpbiBkaWUgVW1nZWJ1bmcgZGVyIEZ1bmt0aW9uIgoKI34gbXNnaWQgIiAgICAgICAgY29tbWFuZCwgbm90IGp1c3QgdGhvc2UgdGhhdCBwcmVjZWRlIHRoZSBjb21tYW5kIG5hbWUuIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgZ2VzY2hyaWViZW4sIG5pY2h0IGJsb98gZGllIEFyZ3VtZW50ZSBuYWNoIGRlbSBGdW5rdGlvbnNuYW1lbi4iCgojfiBtc2dpZCAiICAgIC1tICBKb2IgY29udHJvbCBpcyBlbmFibGVkLiIKI34gbXNnc3RyICIgICAgLW0gIEpvYnN0ZXVlcnVuZyB3aXJkIGFrdGl2aWVydC4iCgojfiBtc2dpZCAiICAgIC1uICBSZWFkIGNvbW1hbmRzIGJ1dCBkbyBub3QgZXhlY3V0ZSB0aGVtLiIKI34gbXNnc3RyICIgICAgLW4gIEtvbW1hbmRvcyB3ZXJkZW4gZ2VsZXNlbiBhYmVyIG5pY2h0IGF1c2dlZvxocnQuIgoKI34gbXNnaWQgIiAgICAtbyBvcHRpb24tbmFtZSIKI34gbXNnc3RyICIgICAgLW8gT3B0aW9uIgoKI34gbXNnaWQgIiAgICAgICAgU2V0IHRoZSB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIG9wdGlvbi1uYW1lOiIKI34gbXNnc3RyICIgICAgICAgIFNldHp0IGRpZSBhbmdlZ2ViZW5lIE9wdGlvbjoiCgojfiBtc2dpZCAiICAgICAgICAgICAgYWxsZXhwb3J0ICAgIHNhbWUgYXMgLWEiCiN+IG1zZ3N0ciAiICAgICAgICAgICAgYWxsZXhwb3J0ICAgIFdpZSBkaWUgT3B0aW9uIC1hLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBicmFjZWV4cGFuZCAgc2FtZSBhcyAtQiIKI34gbXNnc3RyICIgICAgICAgICAgICBicmFjZWV4cGFuZCAgV2llIGRpZSBPcHRpb24gLUIuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIGVtYWNzICAgICAgICB1c2UgYW4gZW1hY3Mtc3R5bGUgbGluZSBlZGl0aW5nIGludGVyZmFjZSIKI34gbXNnc3RyICIiCiN+ICIgICAgICAgICAgICBlbWFjcyAgICAgICAgU2NoYWx0ZXQgZGVuIEtvbW1hbmRvemVpbGVuZWRpdG9yIGluIGRlbiBlbWFjcy0iCiN+ICJTdGlsLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBlcnJleGl0ICAgICAgc2FtZSBhcyAtZSIKI34gbXNnc3RyICIgICAgICAgICAgICBlcnJleGl0ICAgICAgV2llIGRpZSBPcHRpb24gLWUuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIGhhc2hhbGwgICAgICBzYW1lIGFzIC1oIgojfiBtc2dzdHIgIiAgICAgICAgICAgIGhhc2hhbGwgICAgICBXaWUgZGllIE9wdGlvbiAtaC4iCgojfiBtc2dpZCAiICAgICAgICAgICAgaGlzdGV4cGFuZCAgIHNhbWUgYXMgLUgiCiN+IG1zZ3N0ciAiICAgICAgICAgICAgaGlzdGV4cGFuZCAgIFdpZSBkaWUgT3B0aW9uIC1ILiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBpZ25vcmVlb2YgICAgdGhlIHNoZWxsIHdpbGwgbm90IGV4aXQgdXBvbiByZWFkaW5nIEVPRiIKI34gbXNnc3RyICIiCiN+ICIgICAgICAgICAgICBpZ25vcmVlb2YgICAgU2hlbGwgd2lyZCBuYWNoIGRlbSAgTGVzZW4gdm9uIEVPRiBuaWNodCAiCiN+ICJ2ZXJsYXNzZW4gLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBpbnRlcmFjdGl2ZS1jb21tZW50cyIKI34gbXNnc3RyICIgICAgICAgICAgICBpbnRlcmFjdGl2ZS1jb21tZW50cyIKCiN+IG1zZ2lkICIiCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3cgY29tbWVudHMgdG8gYXBwZWFyIGluIGludGVyYWN0aXZlIGNvbW1hbmRzIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICBLb21tZW50YXJlIHdlcmRlbiBhdWNoIGluIGRlciBLb21tYW5kb3plaWxlICIKI34gImVybGF1YnQuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIGtleXdvcmQgICAgICBzYW1lIGFzIC1rIgojfiBtc2dzdHIgIiAgICAgICAgICAgIGtleXdvcmQgICAgICBXaWUgZGllIE9wdGlvbiAtay4iCgojfiBtc2dpZCAiICAgICAgICAgICAgbW9uaXRvciAgICAgIHNhbWUgYXMgLW0iCiN+IG1zZ3N0ciAiICAgICAgICAgICAgbW9uaXRvciAgICAgIFdpZSBkaWUgT3B0aW9uIC1tLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBub2Nsb2JiZXIgICAgc2FtZSBhcyAtQyIKI34gbXNnc3RyICIgICAgICAgICAgICBub2Nsb2JiZXIgICAgV2llIGRpZSBPcHRpb24gLUMuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIG5vZXhlYyAgICAgICBzYW1lIGFzIC1uIgojfiBtc2dzdHIgIiAgICAgICAgICAgIG5vZXhlYyAgICAgICBXaWUgZGllIE9wdGlvbiAtbi4iCgojfiBtc2dpZCAiICAgICAgICAgICAgbm9nbG9iICAgICAgIHNhbWUgYXMgLWYiCiN+IG1zZ3N0ciAiICAgICAgICAgICAgbm9nbG9iICAgICAgIFdpZSBkaWUgT3B0aW9uIC1mLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBub3RpZnkgICAgICAgc2F2ZSBhcyAtYiIKI34gbXNnc3RyICIgICAgICAgICAgICBub3RpZnkgICAgICAgV2llIGRpZSBPcHRpb24gLWIuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIG5vdW5zZXQgICAgICBzYW1lIGFzIC11IgojfiBtc2dzdHIgIiAgICAgICAgICAgIG5vdW5zZXQgICAgICBXaWUgZGllIE9wdGlvbiAtdS4iCgojfiBtc2dpZCAiICAgICAgICAgICAgb25lY21kICAgICAgIHNhbWUgYXMgLXQiCiN+IG1zZ3N0ciAiICAgICAgICAgICAgb25lY21kICAgICAgIFdpZSBkaWUgT3B0aW9uIC10LiIKCiN+IG1zZ2lkICIgICAgICAgICAgICBwaHlzaWNhbCAgICAgc2FtZSBhcyAtUCIKI34gbXNnc3RyICIgICAgICAgICAgICBwaHlzaWNhbCAgICAgV2llIGRpZSBPcHRpb24gLVAuIgoKI34gbXNnaWQgIiIKI34gIiAgICAgICAgICAgIHBvc2l4ICAgICAgICBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGJhc2ggd2hlcmUgdGhlIGRlZmF1bHQiCiN+IG1zZ3N0ciAiIgojfiAiICAgICAgICAgICAgcG9zaXggICAgICAgIMRuZGVydCBkYXMgVmVyaGFsdGVuIGRlciBTaGVsbCwgd28gc2llIHZvbSwiCgojfiBtc2dpZCAiIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBkaWZmZXJzIGZyb20gdGhlIDEwMDMuMiBzdGFuZGFyZCB0byIKI34gbXNnc3RyICIgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMy4yIFN0YW5kYXJkIGFid2VpY2h0LCB6dSBlaW5lbSBQT1NJWCAiCgojfiBtc2dpZCAiICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHRoZSBzdGFuZGFyZCIKI34gbXNnc3RyICIgICAgICAgICAgICAgICAgICAgICAgICAga29tcGF0aWJlbGVuIFZlcmhhbHRlbi4iCgojfiBtc2dpZCAiICAgICAgICAgICAgcHJpdmlsZWdlZCAgIHNhbWUgYXMgLXAiCiN+IG1zZ3N0ciAiICAgICAgICAgICAgcHJpdmlsZWdlZCAgIFdpZSBkaWUgT3B0aW9uIC1wLiIKCiN+IG1zZ2lkICIgICAgICAgICAgICB2ZXJib3NlICAgICAgc2FtZSBhcyAtdiIKI34gbXNnc3RyICIgICAgICAgICAgICB2ZXJib3NlICAgICAgV2llIGRpZSBPcHRpb24gLXYuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIHZpICAgICAgICAgICB1c2UgYSB2aS1zdHlsZSBsaW5lIGVkaXRpbmcgaW50ZXJmYWNlIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgIHZpICAgICAgICAgICBTY2hhbHRldCBkZW4gS29tbWFuZG96ZWlsZW5lZGl0b3IgaW4gZGVuIHZpLVN0aWwuIgoKI34gbXNnaWQgIiAgICAgICAgICAgIHh0cmFjZSAgICAgICBzYW1lIGFzIC14IgojfiBtc2dzdHIgIiAgICAgICAgICAgIHh0cmFjZSAgICAgICBXaWUgZGllIE9wdGlvbiAteC4iCgojfiBtc2dpZCAiIgojfiAiICAgIC1wICBUdXJuZWQgb24gd2hlbmV2ZXIgdGhlIHJlYWwgYW5kIGVmZmVjdGl2ZSB1c2VyIGlkcyBkbyBub3QgbWF0Y2guIgojfiBtc2dzdHIgIiIKI34gIiAgICAtcCAgSXN0IGFrdGl2aWVydCwgd2VubiBkaWUgcmVhbGUgdW5kIGVmZmVrdGl2ZSBOdXR6ZXIgSUQgbmljaHQgIgojfiAi/GJlcmVpbi0iCgojfiBtc2dpZCAiICAgICAgICBEaXNhYmxlcyBwcm9jZXNzaW5nIG9mIHRoZSAkRU5WIGZpbGUgYW5kIGltcG9ydGluZyBvZiBzaGVsbCIKI34gbXNnc3RyICIiCiN+ICIgICAgICAgIHN0aW1tZW4uICBEaWUgJEVOViBEYXRlaSB3aXJkIG5pY2h0IGF1c2dlZvxocnQgdW5kIGtlaW5lICIKI34gIlNoZWxsZnVuay0iCgojfiBtc2dpZCAiIgojfiAiICAgICAgICBmdW5jdGlvbnMuICBUdXJuaW5nIHRoaXMgb3B0aW9uIG9mZiBjYXVzZXMgdGhlIGVmZmVjdGl2ZSB1aWQgYW5kIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgdGlvbmVuIGltcG9ydGllcnQuICBEYXMgRGVha3RpdmllcmVuIGRpZXNlciBPcHRpb24gc2V0enQgZGllICIKI34gIkVmZmVrdGl2ZSIKCiN+IG1zZ2lkICIgICAgICAgIGdpZCB0byBiZSBzZXQgdG8gdGhlIHJlYWwgdWlkIGFuZCBnaWQuIgojfiBtc2dzdHIgIiAgICAgICAgdWlkIHVuZCBnaWQgYXVmIGRpZSBSZWFsZSB1aWQgdW5kIGdpZC4iCgojfiBtc2dpZCAiICAgIC10ICBFeGl0IGFmdGVyIHJlYWRpbmcgYW5kIGV4ZWN1dGluZyBvbmUgY29tbWFuZC4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC10ICBCZWVuZGV0IGRpZSBTaGVsbCBzb2ZvcnQgbmFjaCBBdXNm/Ghlcm4gZWluZXMgZWluemVsbmVuIEtvbW1hbmRvcy4iCgojfiBtc2dpZCAiICAgIC11ICBUcmVhdCB1bnNldCB2YXJpYWJsZXMgYXMgYW4gZXJyb3Igd2hlbiBzdWJzdGl0dXRpbmcuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtdSAgRGVyIFZlcnN1Y2ggbGVlcmUgKHVuZ2VzZXR6dGUpIFZhcmlhYmxlbiB6dSBlcndlaXRlcm4gZXJ6ZXVndCAiCiN+ICJlaW5lbiBGZWhsZXIuIgoKI34gbXNnaWQgIiAgICAtdiAgUHJpbnQgc2hlbGwgaW5wdXQgbGluZXMgYXMgdGhleSBhcmUgcmVhZC4iCiN+IG1zZ3N0ciAiICAgIC12ICBHaWJ0IGRpZSBLb21tYW5kb3plaWxlbiBhdXMgd2llIHNpZSBnZWxlc2VuZW4gd3VyZGVuLiIKCiN+IG1zZ2lkICIgICAgLXggIFByaW50IGNvbW1hbmRzIGFuZCB0aGVpciBhcmd1bWVudHMgYXMgdGhleSBhcmUgZXhlY3V0ZWQuIgojfiBtc2dzdHIgIiIKI34gIiAgICAteCAgR2lidCBkaWUgS29tbWFuZG9zIG1pdCBpaHJlbiBBcmd1bWVudGVuIGF1cyB3aWUgZXMgYXVzZ2Vm/GhydCAiCiN+ICJ3aXJkLiIKCiN+IG1zZ2lkICIgICAgLUIgIHRoZSBzaGVsbCB3aWxsIHBlcmZvcm0gYnJhY2UgZXhwYW5zaW9uIgojfiBtc2dzdHIgIiAgICAtQiAgU2NoYWx0ZXQgZGllIEtsYW1tZXJuZXJ3ZWl0ZXJ1bmcgZGVyIFNoZWxsIGVpbi4iCgojfiBtc2dpZCAiICAgIC1IICBFbmFibGUgISBzdHlsZSBoaXN0b3J5IHN1YnN0aXR1dGlvbi4gIFRoaXMgZmxhZyBpcyBvbiIKI34gbXNnc3RyICIiCiN+ICIgICAgLUggIFNjaGFsdGV0IGRlbiBadWdyaWZmIGF1ZiBkZW4gS29tbWFuZG96ZWlsZW5zcGVpY2hlciBkdXJjaCBgIScgZWluLiIKCiN+IG1zZ2lkICIgICAgICAgIGJ5IGRlZmF1bHQuIgojfiBtc2dzdHIgIiAgICAgICAgRGllc2UgT3B0aW9uIGlzdCBzdGFuZGFyZG3k32lnIGFrdGl2aWVydC4iCgojfiBtc2dpZCAiICAgIC1DICBJZiBzZXQsIGRpc2FsbG93IGV4aXN0aW5nIHJlZ3VsYXIgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1DICBWZXJoaW5kZXJ0IGRhcyDcYmVyc2NocmVpYmVuIHZvbiBleGlzdGllcmVuZGVuIERhdGVpZW4gZHVyY2giCgojfiBtc2dpZCAiICAgICAgICBieSByZWRpcmVjdGlvbiBvZiBvdXRwdXQuIgojfiBtc2dzdHIgIiAgICAgICAgVW1sZWl0ZW4gZGVyIEF1c2dhYmUgKHdpZSBub2Nsb2JiZXIpLiIKCiN+IG1zZ2lkICIgICAgLVAgIElmIHNldCwgZG8gbm90IGZvbGxvdyBzeW1ib2xpYyBsaW5rcyB3aGVuIGV4ZWN1dGluZyBjb21tYW5kcyIKI34gbXNnc3RyICIiCiN+ICIgICAgLVAgIFN5bWJvbGlzY2hlIFZlcndlaXNlIHdlcmRlbiBiZWltIEF1c2b8aHJlbiB2b24gS29tbWFuZG9zLCB3aWUgei4iCiN+ICJCLiBjZCIKCiN+IG1zZ2lkICIgICAgICAgIHN1Y2ggYXMgY2Qgd2hpY2ggY2hhbmdlIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4iCiN+IG1zZ3N0ciAiICAgICAgICB3ZWxjaGVzIGRhcyBha3R1ZWxsZSBBcmJlaXRzdmVyemVpY2huaXMg5G5kZXJ0LCBpZ25vcmllcnQuIgoKI34gbXNnaWQgIlVzaW5nICsgcmF0aGVyIHRoYW4gLSBjYXVzZXMgdGhlc2UgZmxhZ3MgdG8gYmUgdHVybmVkIG9mZi4gIFRoZSIKI34gbXNnc3RyICIiCiN+ICJEdXJjaCBgKycgYW4gU3RlbGxlIHZvbiBgLScga2FubiBlaW5lIE9wdGlvbiBkZWFrdGl2aWVydCB3ZXJkZW4uICBEaWUgIgojfiAiT3B0aW9uZW4iCgojfiBtc2dpZCAiZmxhZ3MgY2FuIGFsc28gYmUgdXNlZCB1cG9uIGludm9jYXRpb24gb2YgdGhlIHNoZWxsLiAgVGhlIGN1cnJlbnQiCiN+IG1zZ3N0ciAiIgojfiAia/ZubmVuIGF1Y2ggYmVpbSBBdWZydWYgZGVyIFNoZWxsIGJlbnV0enQgd2VyZGVuLiAgRGllIGdlZ2Vud+RydGlnICIKI34gImFrdGl2aWVydGVuIgoKI34gbXNnaWQgIiIKI34gInNldCBvZiBmbGFncyBtYXkgYmUgZm91bmQgaW4gJC0uICBUaGUgcmVtYWluaW5nIG4gQVJHcyBhcmUgcG9zaXRpb25hbCIKI34gbXNnc3RyICIiCiN+ICJPcHRpb25lbiBzaW5kIGluIGRlciBWYXJpYWJsZW4gJC0gZ2VzcGVpY2hlcnQuICBEaWUgdmVyYmxlaWJlbmRlbiBuICIKI34gIkFyZ3VtZW50ZSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXJzIGFuZCBhcmUgYXNzaWduZWQsIGluIG9yZGVyLCB0byAkMSwgJDIsIC4uICRuLiAgSWYgbm8iCiN+IG1zZ3N0ciAiIgojfiAic2luZCBQYXJhbWV0ZXIgdW5kIHdlcmRlbiBkZW4gVmFyaWFibGVuICQxLCAkMiwgLi4gJG4genVnZXdpZXNlbi4gIFdlbm4gIgojfiAia2VpbiIKCiN+IG1zZ2lkICJBUkdzIGFyZSBnaXZlbiwgYWxsIHNoZWxsIHZhcmlhYmxlcyBhcmUgcHJpbnRlZC4iCiN+IG1zZ3N0ciAiQXJndW1lbnQgYW5nZWdlYmVuIGlzdCwgZGFubiB3ZXJkZW4gYWxsZSBTaGVsbHZhcmlhYmxlbiBhdXNnZWdlYmVuLiIKCiMgdW5zZXQKI34gbXNnaWQgIkZvciBlYWNoIE5BTUUsIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyB2YXJpYWJsZSBvciBmdW5jdGlvbi4gIEdpdmVuIgojfiBtc2dzdHIgIiIKI34gIkb8ciBqZWRlbiBhbmdlZ2ViZW5lbiBOQU1FbiB3aXJkIGRpZSBlbnRzcHJlY2hlbmRlIFZhcmlhYmxlIG9kZXIgRnVua3Rpb24gIgojfiAiZ2UtIgoKI34gbXNnaWQgInRoZSBgLXYnLCB1bnNldCB3aWxsIG9ubHkgYWN0IG9uIHZhcmlhYmxlcy4gIEdpdmVuIHRoZSBgLWYnIGZsYWcsIgojfiBtc2dzdHIgIiIKI34gImz2c2NodC4gIE1pdCBgLXYnIHdlcmRlbiBudXIgVmFyaWFibGVuIHVuZCBtaXQgYC1mJyBudXIgRnVua3Rpb25lbiAiCiN+ICJnZWz2c2NodC4iCgojfiBtc2dpZCAidW5zZXQgd2lsbCBvbmx5IGFjdCBvbiBmdW5jdGlvbnMuICBXaXRoIG5laXRoZXIgZmxhZywgdW5zZXQgZmlyc3QiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBrZWluIFNjaGFsdGVyIGFuZ2VnZWJlbiBpc3QsIHdpcmQgenVu5GNoc3QgZWluZSBWYXJpYWJsZSBnZXN1Y2h0IHVuZCAiCiN+ICJ3ZW5uIgoKI34gbXNnaWQgInRyaWVzIHRvIHVuc2V0IGEgdmFyaWFibGUsIGFuZCBpZiB0aGF0IGZhaWxzLCB0aGVuIHRyaWVzIHRvIHVuc2V0IGEiCiN+IG1zZ3N0ciAiIgojfiAiZWluZSBzb2xjaGUgbmljaHQgZ2VmdW5kZW4gd3VyZGUsIGRhbm4gd2lyZCB2ZXJzdWNodCBlaW5lIEZ1bmt0aW9uIHp1ICIKI34gImz2c2NoZW4uIgoKI34gbXNnaWQgIiIKI34gImZ1bmN0aW9uLiAgU29tZSB2YXJpYWJsZXMgKHN1Y2ggYXMgUEFUSCBhbmQgSUZTKSBjYW5ub3QgYmUgdW5zZXQ7IGFsc28iCiN+IG1zZ3N0ciAiIgojfiAiRWluaWdlIFZhcmlhYmxlbiAoei5CLiBQQVRIIHVuZCBJRlMpIGv2bm5lbiBuaWNodCBnZWz2c2NodCB3ZXJkZW4uICBTaWVoZSIKCiN+IG1zZ2lkICJzZWUgcmVhZG9ubHkuIgojfiBtc2dzdHIgImRpZXNiZXr8Z2xpY2ggYXVjaCBkaWUgSGlsZmUgZGVyIEZ1bmt0aW9uIHJlYWRvbmx5LiIKCiMgZXhwb3J0CiN+IG1zZ2lkICJOQU1FcyBhcmUgbWFya2VkIGZvciBhdXRvbWF0aWMgZXhwb3J0IHRvIHRoZSBlbnZpcm9ubWVudCBvZiIKI34gbXNnc3RyICIiCiN+ICJEaWUgTkFNRW4gd2VyZGVuIGb8ciBkZW4gYXV0b21hdGlzY2hlbiBFeHBvcnQgaW4gZGllIFVtZ2VidW5nIHZvbiBkZXIgIgojfiAiU2hlbGwiCgojfiBtc2dpZCAic3Vic2VxdWVudGx5IGV4ZWN1dGVkIGNvbW1hbmRzLiAgSWYgdGhlIC1mIG9wdGlvbiBpcyBnaXZlbiwiCiN+IG1zZ3N0ciAiIgojfiAiZ2VzdGFydGV0ZW4gUHJvemVzc2UgbWFya2llcnQuICBXZW5uIGRpZSAtZiBPcHRpb24gYW5nZWdlbmVuIGlzdCwgZGFubiAiCiN+ICJiZXplaWNoLSIKCiN+IG1zZ2lkICJ0aGUgTkFNRXMgcmVmZXIgdG8gZnVuY3Rpb25zLiAgSWYgbm8gTkFNRXMgYXJlIGdpdmVuLCBvciBpZiBgLXAnIgojfiBtc2dzdHIgIiIKI34gIm5lbiBkaWUgTkFNRSduIEZ1bmt0aW9uZW4uICBXZW5uIGtlaW5lIE5BTUVuIGFuZ2VnZWJlbiBzaW5kLCBvZGVyIGRpZSBgLXAnIgoKI34gbXNnaWQgImlzIGdpdmVuLCBhIGxpc3Qgb2YgYWxsIG5hbWVzIHRoYXQgYXJlIGV4cG9ydGVkIGluIHRoaXMgc2hlbGwgaXMiCiN+IG1zZ3N0ciAiIgojfiAiT3B0aW9uIGFuZ2VnZWJlbiBpc3QsIGRhbm4gd2lyZCBlaW5lIExpc3RlIGFsbGVyIHZvbiBkZXIgU2hlbGwgIgojfiAiZXhwb3J0aWVydGVyIgoKI34gbXNnaWQgInByaW50ZWQuICBBbiBhcmd1bWVudCBvZiBgLW4nIHNheXMgdG8gcmVtb3ZlIHRoZSBleHBvcnQgcHJvcGVydHkiCiN+IG1zZ3N0ciAiIgojfiAiTmFtZW4gYXVzZ2VnZWJlbi4gIE1pdCBkZW0gQXJndW1lbnQgYC1uJyB3aXJkIGRpZSBFeHBvcnRlaWdlbnNjaGFmdCBkZXMgIgojfiAiTkFNRU5zIgoKI34gbXNnaWQgImZyb20gc3Vic2VxdWVudCBOQU1Fcy4gIEFuIGFyZ3VtZW50IG9mIGAtLScgZGlzYWJsZXMgZnVydGhlciBvcHRpb24iCiN+IG1zZ3N0ciAiIgojfiAiZ2Vs9nNjaHQuICBFaW4gQXJndW1lbnQgYC0tJyB2ZXJoaW5kZXJ0LCBkYd8gbmFjaCBkaWVzZW0gWmVpY2hlbiB3ZWl0ZXJlIgoKI34gbXNnaWQgInByb2Nlc3NpbmcuIgojfiBtc2dzdHIgIk9wdGlvbmVuIGF1c2dld2VydGV0IHdlcmRlbi4iCgojIHJlYWRvbmx5CiN+IG1zZ2lkICIiCiN+ICJUaGUgZ2l2ZW4gTkFNRXMgYXJlIG1hcmtlZCByZWFkb25seSBhbmQgdGhlIHZhbHVlcyBvZiB0aGVzZSBOQU1FcyBtYXkiCiN+IG1zZ3N0ciAiIgojfiAiRGllIGFuZ2VnZWJlbmVuIE5BTUVuIHdlcmRlbiBhbHMgTnVyLUxlc2VuIG1hcmtpZXJ0LiAgRGVyZW4gSW5oYWx0ZSBr9m5uZW4iCgojfiBtc2dpZCAibm90IGJlIGNoYW5nZWQgYnkgc3Vic2VxdWVudCBhc3NpZ25tZW50LiAgSWYgdGhlIC1mIG9wdGlvbiBpcyBnaXZlbiwiCiN+IG1zZ3N0ciAiIgojfiAibmljaHQgbWVociBnZeRuZGVydCB3ZXJkZW4uICBXZW5uIGRpZSAtZiBPcHRpb24gYW5nZWdlYmVuIHdpcmQsIGRhbm4gIgojfiAid2VyZGVuIG51ciIKCiN+IG1zZ2lkICJ0aGVuIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBOQU1FcyBhcmUgc28gbWFya2VkLiAgSWYgbm8iCiN+IG1zZ3N0ciAiIgojfiAiRnVua3Rpb25lbiBtYXJraWVydC4gIE9obmUgb2RlciBtaXQgZGVtIGAtcCcgQXJndW1lbnQsIHdlcmRlbiBhbGxlIGF1ZiAiCiN+ICJOdXItICIKCiN+IG1zZ2lkICIiCiN+ICJhcmd1bWVudHMgYXJlIGdpdmVuLCBvciBpZiBgLXAnIGlzIGdpdmVuLCBhIGxpc3Qgb2YgYWxsIHJlYWRvbmx5IG5hbWVzIgojfiBtc2dzdHIgIiIKI34gIkxlc2VuIGdlc2V0enRlIE5hbWVuIGF1c2dlZ2ViZW4uICBNaXQgZGVtIEFyZ3VtZW50IGAtbicga2FubiBkaWUgTnVyLUxlc2UiCgojfiBtc2dpZCAiIgojfiAiaXMgcHJpbnRlZC4gIEFuIGFyZ3VtZW50IG9mIGAtbicgc2F5cyB0byByZW1vdmUgdGhlIHJlYWRvbmx5IHByb3BlcnR5IgojfiBtc2dzdHIgIiIKI34gIkVpZ2Vuc2NoYWZ0IGb8ciBkaWUgYW5nZWdlYmVuZW4gTmFtZW4gZW50ZmVybnQgd2VyZGVuLiAgRGVyIGAtYScgU2NoYWx0ZXIiCgojfiBtc2dpZCAiZnJvbSBzdWJzZXF1ZW50IE5BTUVzLiAgVGhlIGAtYScgb3B0aW9uIG1lYW5zIHRvIHRyZWF0IGVhY2ggTkFNRSBhcyIKI34gbXNnc3RyICIiCiN+ICJiZXdpcmt0LCBkYd8gamVkZXIgTmFtZSBhbHMgRmVsZHZhcmlhYmxlIGJlaGFuZGVsdCB3aXJkLiAgRGFzIEFyZ3VtZW50ICIKI34gImAtLSciCgojfiBtc2dpZCAiYW4gYXJyYXkgdmFyaWFibGUuICBBbiBhcmd1bWVudCBvZiBgLS0nIGRpc2FibGVzIGZ1cnRoZXIgb3B0aW9uIgojfiBtc2dzdHIgInVudGVyZHL8Y2t0IGRhcyBBdXN3ZXJ0ZW4gd2VpdGVyZXIgT3B0aW9uZW4uIgoKIyBzaGlmdAojfiBtc2dpZCAiIgojfiAiVGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyBmcm9tICROKzEgLi4uIGFyZSByZW5hbWVkIHRvICQxIC4uLiAgSWYgTiBpcyIKI34gbXNnc3RyICIiCiN+ICJEaWUgUG9zaXRpb25zdmFyaWFibGVuICROKzEgLi4uIHdlcmRlbiBuYWNoICQxIC4uLiB1bWJlbmFubnQuICBXZW5uIE4gIgojfiAibmljaHQiCgojfiBtc2dpZCAibm90IGdpdmVuLCBpdCBpcyBhc3N1bWVkIHRvIGJlIDEuIgojfiBtc2dzdHIgImFuZ2VnZWJlbiBpc3QsIGRhbm4gd2lyZCAxIHZlcndlbmRldC4iCgojIHNvdXJjZQojfiBtc2dpZCAiUmVhZCBhbmQgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIEZJTEVOQU1FIGFuZCByZXR1cm4uICBUaGUgcGF0aG5hbWVzIgojfiBtc2dzdHIgIiIKI34gIkxpZXN0IHVuZCBm/GhydCBhbnNjaGxpZd9lbmQgZGllIEtvbW1hbmRvcyBpbiBEQVRFSU5BTUUgYXVzLiAgJFBBVEggd2lyZCIKCiN+IG1zZ2lkICJpbiAkUEFUSCBhcmUgdXNlZCB0byBmaW5kIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBGSUxFTkFNRS4iCiN+IG1zZ3N0ciAiYWxzIFN1Y2hwZmFkIGJlbnV0enQsIHVtIERBVEVJTkFNRSB6dSBmaW5kZW4uIgoKIyBzdXNwZW5kCiN+IG1zZ2lkICJTdXNwZW5kIHRoZSBleGVjdXRpb24gb2YgdGhpcyBzaGVsbCB1bnRpbCBpdCByZWNlaXZlcyBhIFNJR0NPTlQiCiN+IG1zZ3N0ciAiIgojfiAiSORsdCBkYXMgQXVzZvxocmVuIGRlciBTaGVsbCBzb2xhbmdlIGFuLCBiaXMgc2llIGRhcyBTaWduYWwgU0lHQ09OVCAiCiN+ICJlbXBm5G5ndC4iCgojfiBtc2dpZCAic2lnbmFsLiAgVGhlIGAtZicgaWYgc3BlY2lmaWVkIHNheXMgbm90IHRvIGNvbXBsYWluIGFib3V0IHRoaXMiCiN+IG1zZ3N0ciAiIgojfiAiRGllIGAtZicgT3B0aW9uIHVudGVyZHL8Y2t0IGVpbmUgV2FybnVuZywgd2VubiBlcyBzaWNoIHVtIGVpbmUgTG9naW4gU2hlbGwiCgojfiBtc2dpZCAiYmVpbmcgYSBsb2dpbiBzaGVsbCBpZiBpdCBpczsganVzdCBzdXNwZW5kIGFueXdheS4iCiN+IG1zZ3N0ciAiaGFuZGVsdCB1bmQgaORsdCBhdWNoIGRlcmVuIEFiYXJiZWl0dW5nIGFuLiIKCiMgdGVzdAojfiBtc2dpZCAiRXhpdHMgd2l0aCBhIHN0YXR1cyBvZiAwICh0cnVlbmVzcykgb3IgMSAoZmFsc2VuZXNzKSBkZXBlbmRpbmcgb24iCiN+IG1zZ3N0ciAiIgojfiAiTGllZmVydCBkZW4gUvxja2dhYmV3ZXJ0IDAgKHdhaHIpIG9kZXIgMSAoZmFsc2NoKSwgYWJo5G5naWcgdm9tIEVyZ2VibmlzICIKI34gImRlcyIKCiN+IG1zZ2lkICJ0aGUgZXZhbHVhdGlvbiBvZiBFWFBSLiAgRXhwcmVzc2lvbnMgbWF5IGJlIHVuYXJ5IG9yIGJpbmFyeS4gIFVuYXJ5IgojfiBtc2dzdHIgIiIKI34gIkF1c2RydWNrZXMgRVhQUi4gIERpZSBBdXNkcvxja2Uga/ZubmVuIGVpbi0gKHVu5HIpIG9kZXIgendlaXN0ZWxsaWcgIgojfiAiKGJpbuRyKSBzZWluLiIKCiN+IG1zZ2lkICJleHByZXNzaW9ucyBhcmUgb2Z0ZW4gdXNlZCB0byBleGFtaW5lIHRoZSBzdGF0dXMgb2YgYSBmaWxlLiAgVGhlcmUiCiN+IG1zZ3N0ciAiIgojfiAiRWluc3RlbGxpZ2UgQXVzZHL8Y2tlIHdlcmRlbiBvZnQgenVtIEVybWl0dGVsbiBlaW5lcyBEYXRlaXp1c3RhbmRlcyAiCiN+ICJ2ZXJ3ZW5kZXQuIgoKI34gbXNnaWQgImFyZSBzdHJpbmcgb3BlcmF0b3JzIGFzIHdlbGwsIGFuZCBudW1lcmljIGNvbXBhcmlzb24gb3BlcmF0b3JzLiIKI34gbXNnc3RyICIiCiN+ICJFcyBnaWJ0IGF132VyZGVuIFplaWNoZW5rZXR0ZW4tIHVuZCBudW1lcmlzY2hlIFZlcmdsZWljaHNvcGVyYXRvcmVuLiIKCiN+IG1zZ2lkICJGaWxlIG9wZXJhdG9yczoiCiN+IG1zZ3N0ciAiRGF0ZWkgT3BlcmF0b3JlbjoiCgojfiBtc2dpZCAiICAgIC1iIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyBibG9jayBzcGVjaWFsLiIKI34gbXNnc3RyICIiCiN+ICIgICAgLWIgREFURUkgICAgICAgV2Fociwgd2VubiBkZXIgRGF0ZWluYW1lIGVpbiBCbG9ja2dlcuR0IGJlemVpY2huZXQuIgoKI34gbXNnaWQgIiAgICAtYyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgY2hhcmFjdGVyIHNwZWNpYWwuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtYyBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRlciBEYXRlaW5hbWUgZWluIHNlcXVlbnRpZWxsZXMgR2Vy5HQgIgojfiAiYmV6ZWljaG5ldC4iCgojfiBtc2dpZCAiICAgIC1kIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyBhIGRpcmVjdG9yeS4iCiN+IG1zZ3N0ciAiICAgIC1kIERBVEVJICAgICAgIFdhaHIsIHdlbm4gZXMgZWluIFZlcnplaWNobmlzIGlzdC4iCgojfiBtc2dpZCAiICAgIC1lIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBleGlzdHMuIgojfiBtc2dzdHIgIiAgICAtZSBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRpZSBEYXRlaSBleGlzdGllcnQuIgoKI34gbXNnaWQgIiAgICAtZiBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzIGFuZCBpcyBhIHJlZ3VsYXIgZmlsZS4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1mIERBVEVJICAgICAgIFdhaHIsIHdlbm4gZGllIERhdGVpIGV4aXN0aWVydCB1bmQgZWluZSByZWd1bORyZSBEYXRlaSAiCiN+ICJpc3QuIgoKI34gbXNnaWQgIiAgICAtZyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgc2V0LWdyb3VwLWlkLiIKI34gbXNnc3RyICIgICAgLWcgREFURUkgICAgICAgV2Fociwgd2VubiBkYXMgU0dJRCBCaXQgZ2VzZXR6dCBpc3QuIgoKI34gbXNnaWQgIiAgICAtaCBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBzeW1ib2xpYyBsaW5rLiAgVXNlIFwiLUxcIi4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1oIERBVEVJICAgICAgIFdhaHIsIHdlbm4gRklMRSBzeW1ib2xpc2NoZXIgVmVyd2VpcyBpc3QuIChCZXNzZXIgLUwgIgojfiAidmVydy4pIgoKI34gbXNnaWQgIiAgICAtTCBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBzeW1ib2xpYyBsaW5rLiIKI34gbXNnc3RyICIgICAgLUwgREFURUkgICAgICAgV2Fociwgd2VubiBGSUlFIGVpbmVuIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzIGlzdC4iCgojfiBtc2dpZCAiICAgIC1rIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBoYXMgaXRzIFwic3RpY2t5XCIgYml0IHNldC4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1rIERBVEVJICAgICAgIFdhaHIsIHdlbm4gbnVyIGRlciBCZXNpdHplciBkaWUgRGF0ZWkg5G5kZXJuIGRhcmYgIgojfiAiKHN0aWNreSkuIgoKI34gbXNnaWQgIiAgICAtcCBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBuYW1lZCBwaXBlLiIKI34gbXNnc3RyICIiCiN+ICIgICAgLXAgREFURUkgICAgICAgV2Fociwgd2VubiBGSUxFIGVpbmUgYmVuYW5udGUgUGlwZWxpbmUgKG5hbWVkIHBpcGUpICIKI34gImlzdC4iCgojfiBtc2dpZCAiICAgIC1yIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyByZWFkYWJsZSBieSB5b3UuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtciBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRpZSBEYXRlaSB2b20gYWt0dWVsbGVuIEJlbnV0emVyIGxlc2JhciBpc3QuIgoKI34gbXNnaWQgIiAgICAtcyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzIGFuZCBpcyBub3QgZW1wdHkuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtcyBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRpZSBEYXRlaSBleGlzdGllcnQgdW5kIG5pY2h0IGxlZXIgaXN0LiIKCiN+IG1zZ2lkICIgICAgLVMgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGEgc29ja2V0LiIKI34gbXNnc3RyICIgICAgLVMgREFURUkgICAgICAgV2Fociwgd2VubiBkaWUgRGF0ZWkgZWluIFwiU29ja2V0XCIgaXN0LiIKCiN+IG1zZ2lkICIgICAgLXQgRkQgICAgICAgICAgVHJ1ZSBpZiBGRCBpcyBvcGVuZWQgb24gYSB0ZXJtaW5hbC4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC10IEZEICAgICAgICAgIFdhaHIsIHdlbm4gZGllIERhdGVpbnVtbWVyIEZEIGb8ciBlaW4gVGVybWluYWwgIgojfiAiZ2X2ZmZuZXQgaXN0LiIKCiN+IG1zZ2lkICIgICAgLXUgRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBzZXQtdXNlci1pZC4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIC11IERBVEVJICAgICAgIFdhaHIsIHdlbm4gZvxyIGRpZXNlIERhdGVpIGRhcyBTVUlEIEJpdCBnZXNldHp0IGlzdC4iCgojfiBtc2dpZCAiICAgIC13IEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgd3JpdGFibGUgYnkgeW91LiIKI34gbXNnc3RyICIiCiN+ICIgICAgLXcgREFURUkgICAgICAgV2Fociwgd2VubiBkaWUgRGF0ZWkgdm9tIGFrdHVlbGxlbiBCZW51dHplciBzY2hyZWliYmFyICIKI34gImlzdC4iCgojfiBtc2dpZCAiICAgIC14IEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgZXhlY3V0YWJsZSBieSB5b3UuIgojfiBtc2dzdHIgIiIKI34gIiAgICAteCBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRpZSBEYXRlaSB2b20gYWt0dWVsbGVuIEJlbnV0emVyIGF1c2b8aHJiYXIgIgojfiAiaXN0LiIKCiN+IG1zZ2lkICIgICAgLU8gRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBlZmZlY3RpdmVseSBvd25lZCBieSB5b3UuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtTyBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIGRlciBha3R1ZWxsZSBCZW51dHplciBFaWdlbnT8bWVyIGRlciBEYXRlaSAiCiN+ICJpc3QuIgoKI34gbXNnaWQgIiIKI34gIiAgICAtRyBGSUxFICAgICAgICBUcnVlIGlmIHRoZSBmaWxlIGlzIGVmZmVjdGl2ZWx5IG93bmVkIGJ5IHlvdXIgZ3JvdXAuIgojfiBtc2dzdHIgIiIKI34gIiAgICAtRyBEQVRFSSAgICAgICBXYWhyLCB3ZW5uIEdJRCBkZXMgQmVudXR6ZXJzIHVuZCBkZXIgRGF0ZWkgIgojfiAi/GJlcmVpbnN0aW1tZW4uIgoKI34gbXNnaWQgIiAgRklMRTEgLW50IEZJTEUyICBUcnVlIGlmIGZpbGUxIGlzIG5ld2VyIHRoYW4gKGFjY29yZGluZyB0byIKI34gbXNnc3RyICIiCiN+ICIgIERBVEVJMSAtbnQgREFURUkyICBXYWhyLCB3ZW5uIGRlciBsZXR6dGUgxG5kZXJ1bmdzemVpdHB1bmt0IHZvbiBEQVRFSTEgIgojfiAiavxuZ2VyIgoKI34gbXNnaWQgIiAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gZGF0ZSkgZmlsZTIuIgojfiBtc2dzdHIgIiAgICAgICAgICAgICAgICAgICBpc3QgYWxzIGRlciB2b24gREFURUkyLiIKCiN+IG1zZ2lkICIgIEZJTEUxIC1vdCBGSUxFMiAgVHJ1ZSBpZiBmaWxlMSBpcyBvbGRlciB0aGFuIGZpbGUyLiIKI34gbXNnc3RyICIgIERBVEVJMSAtb3QgREFURUkyICBXYWhyLCB3ZW5uIERBVEVJMSDkbHRlciBpc3QgYWxzIERBVEVJMi4iCgojfiBtc2dpZCAiICBGSUxFMSAtZWYgRklMRTIgIFRydWUgaWYgZmlsZTEgaXMgYSBoYXJkIGxpbmsgdG8gZmlsZTIuIgojfiBtc2dzdHIgIiIKI34gIiAgREFURUkxIC1lZiBEQVRFSTIgIFdhaHIsIHdlbm4gYmVpZGUgSW5vZGVzIPxiZXJlaW5zdGltbWVuIChoYXJkIGxpbmspLiIKCiN+IG1zZ2lkICJTdHJpbmcgb3BlcmF0b3JzOiIKI34gbXNnc3RyICJPcGVyYXRvcmVuIGb8ciBaZWljaGVua2V0dGVuIChTdHJpbmdzKToiCgojfiBtc2dpZCAiICAgIC16IFNUUklORyAgICAgIFRydWUgaWYgc3RyaW5nIGlzIGVtcHR5LiIKI34gbXNnc3RyICIgICAgLXogU1RSSU5HICAgICAgV2Fociwgd2VubiBkaWUgTORuZ2UgZGVyIFplaWNoZW5rZXR0ZSBOdWxsIGlzdC4iCgojfiBtc2dpZCAiICAgIC1uIFNUUklORyIKI34gbXNnc3RyICIgICAgLW4gU1RSSU5HIgoKI34gbXNnaWQgIiAgICBTVFJJTkcgICAgICAgICBUcnVlIGlmIHN0cmluZyBpcyBub3QgZW1wdHkuIgojfiBtc2dzdHIgIiIKI34gIiAgICBTVFJJTkcgICAgICAgICBXYWhyLCB3ZW5uIGRpZSBM5G5nZSBkZXIgWmVpY2hlbmtldHRlIGdy9t9lciBhbHMgTnVsbCAiCiN+ICJpc3QuIgoKI34gbXNnaWQgIiAgICBTVFJJTkcxID0gU1RSSU5HMiIKI34gbXNnc3RyICIgICAgU1RSSU5HMSA9IFNUUklORzIiCgojfiBtc2dpZCAiICAgICAgICAgICAgICAgICAgIFRydWUgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLiIKI34gbXNnc3RyICIgICAgICAgICAgICAgICAgICAgV2Fociwgd2VubiBkaWUgWmVpY2hlbmtldHRlbiBpZGVudGlzY2ggc2luZC4iCgojfiBtc2dpZCAiICAgIFNUUklORzEgIT0gU1RSSU5HMiIKI34gbXNnc3RyICIgICAgU1RSSU5HMSAhPSBTVFJJTkcyIgoKI34gbXNnaWQgIiAgICAgICAgICAgICAgICAgICBUcnVlIGlmIHRoZSBzdHJpbmdzIGFyZSBub3QgZXF1YWwuIgojfiBtc2dzdHIgIiIKI34gIiAgICAgICAgICAgICAgICAgICBXYWhyLCB3ZW5uIGRpZSBaZWljaGVua2V0dGVuIHVudGVyc2NoaWVkbGljaCBzaW5kLiIKCiN+IG1zZ2lkICIgICAgU1RSSU5HMSA8IFNUUklORzIiCiN+IG1zZ3N0ciAiICAgIFNUUklORzEgPCBTVFJJTkcyIgoKI34gbXNnaWQgIiIKI34gIiAgICAgICAgICAgICAgICAgICBUcnVlIGlmIFNUUklORzEgc29ydHMgYmVmb3JlIFNUUklORzIgbGV4aWNvZ3JhcGhpY2FsbHkiCiN+IG1zZ3N0ciAiIgojfiAiICAgICAgICAgICAgICAgICAgIFdhaHIsIHdlbm4gU1RSSU5HMSB2b3IgU1RSSU5HMiBhbHBoYWJldGlzY2ggZ2VvcmRuZXQgIgojfiAiaXN0LiIKCiN+IG1zZ2lkICIgICAgU1RSSU5HMSA+IFNUUklORzIiCiN+IG1zZ3N0ciAiICAgIFNUUklORzEgPiBTVFJJTkcyIgoKI34gbXNnaWQgIiIKI34gIiAgICAgICAgICAgICAgICAgICBUcnVlIGlmIFNUUklORzEgc29ydHMgYWZ0ZXIgU1RSSU5HMiBsZXhpY29ncmFwaGljYWxseSIKI34gbXNnc3RyICIiCiN+ICIgICAgICAgICAgICAgICAgICAgV2Fociwgd2VubiBTVFJJTkcxIG5hY2ggU1RSSU5HMiBhbHBoYWJldGlzY2ggZ2VvcmRuZXQgIgojfiAiaXN0LiIKCiN+IG1zZ2lkICJPdGhlciBvcGVyYXRvcnM6IgojfiBtc2dzdHIgIkFuZGVyZSBPcGVyYXRvcmVuOiIKCiN+IG1zZ2lkICIgICAgISBFWFBSICAgICAgICAgVHJ1ZSBpZiBleHByIGlzIGZhbHNlLiIKI34gbXNnc3RyICIgICAgISBFWFBSICAgICAgICAgV2Fociwgd2VubiBkZXIgQXVzZHJ1Y2sgRVhQUiBgZmFsc2NoJyBsaWVmZXJ0LiIKCiN+IG1zZ2lkICIgICAgRVhQUjEgLWEgRVhQUjIgVHJ1ZSBpZiBib3RoIGV4cHIxIEFORCBleHByMiBhcmUgdHJ1ZS4iCiN+IG1zZ3N0ciAiIgojfiAiICAgIEVYUFIxIC1hIEVYUFIyIFdhaHIsIHdlbm4gZGllIEF1c2Ry/GNrZSBFWFBSMSB1bmQgRVhQUjIgYHdhaHInICIKI34gImxpZWZlcm4uIgoKI34gbXNnaWQgIiAgICBFWFBSMSAtbyBFWFBSMiBUcnVlIGlmIGVpdGhlciBleHByMSBPUiBleHByMiBpcyB0cnVlLiIKI34gbXNnc3RyICIiCiN+ICIgICAgRVhQUjEgLW8gRVhQUjIgV2Fociwgd2VubiBlbnR3ZWRlciBFWFBSMSBvZGVyIEVYUFIyIHdhaHIgbGllZmVybi4iCgojfiBtc2dpZCAiICAgIGFyZzEgT1AgYXJnMiAgIEFyaXRobWV0aWMgdGVzdHMuICBPUCBpcyBvbmUgb2YgLWVxLCAtbmUsIgojfiBtc2dzdHIgIiIKI34gIiAgICBhcmcxIE9QIGFyZzIgICBBcml0aG1ldGlzY2hlIE9wZXJhdG9yZW4uIE9QIGthbm4gLWVxLCAtbmUsIC1sdCwgLWxlLCAtIgojfiAiZ3QiCgojfiBtc2dpZCAiICAgICAgICAgICAgICAgICAgIC1sdCwgLWxlLCAtZ3QsIG9yIC1nZS4iCiN+IG1zZ3N0ciAiICAgICAgICAgICAgICAgICAgIG9kZXIgLWdlIHNlaW4uIgoKI34gbXNnaWQgIkFyaXRobWV0aWMgYmluYXJ5IG9wZXJhdG9ycyByZXR1cm4gdHJ1ZSBpZiBBUkcxIGlzIGVxdWFsLCBub3QtZXF1YWwsIgojfiBtc2dzdHIgIiIKI34gIkRpZXNlIGJpbuRyZW4gYXJpdGhtZXRpc2NoZW4gT3BlcmF0b3JlbiBsaWVmZXJuIFdhaHIsIHdlbm4gQVJHMSBnbGVpY2gsIgoKI34gbXNnaWQgIiIKI34gImxlc3MtdGhhbiwgbGVzcy10aGFuLW9yLWVxdWFsLCBncmVhdGVyLXRoYW4sIG9yIGdyZWF0ZXItdGhhbi1vci1lcXVhbCIKI34gbXNnc3RyICIiCiN+ICJ1bmdsZWljaCwga2xlaW5lciBhbHMsIGtsZWluZXIgZ2xlaWNoLCBncvbfZXIgYWxzIG9kZXIgZ3L232VyIGdsZWljaCIKCiN+IG1zZ2lkICJ0aGFuIEFSRzIuIgojfiBtc2dzdHIgIkFSRzIgaXN0LiIKCiMgWwojfiBtc2dpZCAiVGhpcyBpcyBhIHN5bm9ueW0gZm9yIHRoZSBcInRlc3RcIiBidWlsdGluLCBidXQgdGhlIGxhc3QiCiN+IG1zZ3N0ciAiIgojfiAiRGllcyBpc3QgZWluIFN5bm9ueW0gZvxyIGRpZSBTaGVsbGZ1bmt0aW9uIHRlc3QuICBEYXMgbGV0enRlIEFyZ3VtZW50IG113yAiCiN+ICJlaW4iCgojfiBtc2dpZCAiYXJndW1lbnQgbXVzdCBiZSBhIGxpdGVyYWwgYF0nLCB0byBtYXRjaCB0aGUgb3BlbmluZyBgWycuIgojfiBtc2dzdHIgImBdJyBzZWluLCBkYXMgbWl0IGRlbSD2ZmZuZW5kZW4gYFsnIGtvcnJlc3BvbmRpZXJ0LiIKCiMgdGltZXMKI34gbXNnaWQgIlByaW50IHRoZSBhY2N1bXVsYXRlZCB1c2VyIGFuZCBzeXN0ZW0gdGltZXMgZm9yIHByb2Nlc3NlcyBydW4gZnJvbSIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IGRpZSB2ZXJicmF1Y2h0ZSBCZW51dHplci0gdW5kIFN5c3RlbXplaXQgZvxyIGRpZSBTaGVsbCB1bmQgZGVyIHZvbiIKCiN+IG1zZ2lkICJ0aGUgc2hlbGwuIgojfiBtc2dzdHIgImlociBnZXN0YXJ0ZXRlbiBQcm96ZXNzZSBhdXMuIgoKIyB0cmFwCiN+IG1zZ2lkICJUaGUgY29tbWFuZCBBUkcgaXMgdG8gYmUgcmVhZCBhbmQgZXhlY3V0ZWQgd2hlbiB0aGUgc2hlbGwgcmVjZWl2ZXMiCiN+IG1zZ3N0ciAiIgojfiAiRGllIFNoZWxsIGbkbmd0IGRpZSBpbiBTSUdfU1BFQyBhbmdlZ2ViZW5lbiBTaWduYWxlIGFiIGb8aHJ0IGRhcyBLb21tYW5kbyAiCiN+ICJBUkciCgojfiBtc2dpZCAic2lnbmFsKHMpIFNJR05BTF9TUEVDLiAgSWYgQVJHIGlzIGFic2VudCBhbGwgc3BlY2lmaWVkIHNpZ25hbHMgYXJlIgojfiBtc2dzdHIgIiIKI34gImF1cy4gIFdlbm4ga2VpbiBBUkcgYW5nZWdlYmVuIGlzdCwgd2VyZGVuIGFsbGUgYmV6ZWljaG5ldGVuIFNpZ25hbGUgIgojfiAienVy/GNrLSIKCiN+IG1zZ2lkICJyZXNldCB0byB0aGVpciBvcmlnaW5hbCB2YWx1ZXMuICBJZiBBUkcgaXMgdGhlIG51bGwgc3RyaW5nIGVhY2giCiN+IG1zZ3N0ciAiIgojfiAiZ2VzZXR6dC4gIElzdCBBUkcgZWluZSBsZWVyZSBaZWljaGVua2V0dGUsIGRhbm4gd2lyZCBqZWRlcyBhbmdlZ2VibmUgU2lnLSIKCiN+IG1zZ2lkICJTSUdOQUxfU1BFQyBpcyBpZ25vcmVkIGJ5IHRoZSBzaGVsbCBhbmQgYnkgdGhlIGNvbW1hbmRzIGl0IGludm9rZXMuIgojfiBtc2dzdHIgIiIKI34gIm5hbCB2b24gZGVyIFNoZWxsIHVuZCBkZW4gdm9uIGlociBhdWZnZXJ1ZmVuZW4gS29tbWFuZG9zIGlnbm9yaWVydC4gIFdlbm4gIgojfiAiZGFzIgoKI34gbXNnaWQgIklmIFNJR05BTF9TUEVDIGlzIEVYSVQgKDApIHRoZSBjb21tYW5kIEFSRyBpcyBleGVjdXRlZCBvbiBleGl0IGZyb20iCiN+IG1zZ3N0ciAiIgojfiAiU2lnbmFsIEVYSVQgKDApIGFiZ2VmYW5nZW4gd2lyZCwgZGFubiB3aXJkIEFSRyBiZWkgVmVybGFzc2VuIGRlciBTaGVsbCAiCiN+ICJhdXNnZS0iCgojfiBtc2dpZCAidGhlIHNoZWxsLiAgSWYgU0lHTkFMX1NQRUMgaXMgREVCVUcsIEFSRyBpcyBleGVjdXRlZCBhZnRlciBldmVyeSIKI34gbXNnc3RyICIiCiN+ICJm/GhydC4gIER1cmNoIEFiZmFuZ2VuIGRlcyBTaWduYWxzIERFQlVHLCB3aXJkIEFSRyBuYWNoIGplZGVtIEtvbW1hbmRvIgoKI34gbXNnaWQgImNvbW1hbmQuICBJZiBBUkcgaXMgYC1wJyB0aGVuIHRoZSB0cmFwIGNvbW1hbmRzIGFzc29jaWF0ZWQgd2l0aCIKI34gbXNnc3RyICIiCiN+ICJhdWZnZXJ1ZmVuLiAgTWl0IGAtcCcgd2VyZGVuIEtvbW1hbmRvcyBhbmdlemVpZ3QsIGRpZSBm/HIgamVkZXMgIgojfiAiYWJnZWZhbmdlbmUiCgojfiBtc2dpZCAiZWFjaCBTSUdOQUxfU1BFQyBhcmUgZGlzcGxheWVkLiAgSWYgbm8gYXJndW1lbnRzIGFyZSBzdXBwbGllZCBvciBpZiIKI34gbXNnc3RyICIiCiN+ICJTaWduYWwgYXVzZ2Vm/GhydCB3ZXJkZW4uICBXZW5uIGtlaW5lIEFyZ3VtZW50ZSBhbmdlZ2ViZW4gc2luZCwgb2RlciB3ZW5uICIKI34gImRhcyIKCiN+IG1zZ2lkICJvbmx5IGAtcCcgaXMgZ2l2ZW4sIHRyYXAgcHJpbnRzIHRoZSBsaXN0IG9mIGNvbW1hbmRzIGFzc29jaWF0ZWQgd2l0aCIKI34gbXNnc3RyICIiCiN+ICJBcmd1bWVudCBgLXAnIGFuZ2VnZWJlbiBpc3QsIHdpcmQgZWluZSAgTGlzdGUgZGVyIEtvbW1hbmRvcyBm/HIgamVkZXMgIgojfiAiYWJnZWZhbi0iCgojfiBtc2dpZCAiIgojfiAiZWFjaCBzaWduYWwgbnVtYmVyLiAgU0lHTkFMX1NQRUMgaXMgZWl0aGVyIGEgc2lnbmFsIG5hbWUgaW4gPHNpZ25hbC5oPiIKI34gbXNnc3RyICIiCiN+ICJnZW5lIFNpZ25hbCBhbmdlemVpZ3QuICBTSUdOQUxfU1BFQyBpc3QgZW50d2VkZXIgZWluIFNpZ25hbG5hbWUgKGF1cyAiCiN+ICJzaWduYWwuaCkiCgojfiBtc2dpZCAiIgojfiAib3IgYSBzaWduYWwgbnVtYmVyLiAgYHRyYXAgLWwnIHByaW50cyBhIGxpc3Qgb2Ygc2lnbmFsIG5hbWVzIGFuZCB0aGVpciIKI34gbXNnc3RyICIiCiN+ICJvZGVyIGVpbmUgU2lnbmFsbnVtbWVyLiAgYHRyYXAgLWwnIGdpYnQgZWluZSBMaXN0ZSBkZXIgU2lnbmFsbmFtZW4gdW5kICIKI34gImRlciBlbnQtIgoKI34gbXNnaWQgImNvcnJlc3BvbmRpbmcgbnVtYmVycy4gIE5vdGUgdGhhdCBhIHNpZ25hbCBjYW4gYmUgc2VudCB0byB0aGUgc2hlbGwiCiN+IG1zZ3N0ciAiIgojfiAic3ByZWNoZW5kZW4gTnVtbWVybiBhdXMuICBFaW4gU2lnbmFsIGthbm4gYW4gZWluZSBTaGVsbCBtaXQgZGVtIEJlZmVobCAiCiN+ICJcImtpbGwiCgojfiBtc2dpZCAid2l0aCBcImtpbGwgLXNpZ25hbCAkJFwiLiIKI34gbXNnc3RyICItc2lnbmFsICQkXCIgZ2VzZW5kZXQgd2VyZGVuLiIKCiMgdHlwZQojfiBtc2dpZCAiRm9yIGVhY2ggTkFNRSwgaW5kaWNhdGUgaG93IGl0IHdvdWxkIGJlIGludGVycHJldGVkIGlmIHVzZWQgYXMgYSIKI34gbXNnc3RyICIiCiN+ICJHaWJ0IGF1cywgd2llIGRlciBhbmdlZ2ViZW5lIE5BTUUgaW50ZXJwcmV0aWVydCB3/HJkZSwgd2VubiBlciBpbiBkZXIiCgojfiBtc2dpZCAiSWYgdGhlIC10IG9wdGlvbiBpcyB1c2VkLCByZXR1cm5zIGEgc2luZ2xlIHdvcmQgd2hpY2ggaXMgb25lIG9mIgojfiBtc2dzdHIgIiIKI34gIkRpZSBPcHRpb24gLXQgYmV3aXJrdCwgZGHfIGVpbnMgZGVyIFdvcnRlOiBgYWxpYXMnLCBga2V5d29yZCcsIGBmdW5jdGlvbicsIgoKI34gbXNnaWQgIiIKI34gImBhbGlhcycsIGBrZXl3b3JkJywgYGZ1bmN0aW9uJywgYGJ1aWx0aW4nLCBgZmlsZScgb3IgYCcsIGlmIE5BTUUgaXMgYW4iCiN+IG1zZ3N0ciAiIgojfiAiYGZpbGUnIG9kZXIgYCcgYXVzZ2VnZWJlbiB3aXJkLCB3ZW5uIE5BTUUgZWluIEFsaWFzLCBlaW4gaW4gZGVyIFNoZWxsICIKI34gInJlc2VyLSIKCiN+IG1zZ2lkICIiCiN+ICJhbGlhcywgc2hlbGwgcmVzZXJ2ZWQgd29yZCwgc2hlbGwgZnVuY3Rpb24sIHNoZWxsIGJ1aWx0aW4sIGRpc2sgZmlsZSwiCiN+IG1zZ3N0ciAiIgojfiAidmllcnRlcyBXb3J0LCBlaW5lIFNrcmlwdGZ1bmt0aW9uLCBlaW5lIGVpbmdlYmF1dGUgU2hlbGxmdW5rdGlvbiwgZWluZSAiCiN+ICJEYXRlaSIKCiN+IG1zZ2lkICJvciB1bmZvdW5kLCByZXNwZWN0aXZlbHkuIgojfiBtc2dzdHIgImlzdCBvZGVyIGtlaW4gS29tbWFuZG90eXAgZ2VmdW5kZW4gd3VyZGUuIgoKI34gbXNnaWQgIklmIHRoZSAtcCBmbGFnIGlzIHVzZWQsIGVpdGhlciByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBkaXNrIGZpbGUiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBkZXIgLXAgU2NoYWx0ZXIgYW5nZWdlYmVuIGlzdCwgZGFubiB3aXJkLCB3ZW5uIGVpbmUgZW50c3ByZWNoZW5kZSAiCiN+ICJEYXRlaSIKCiN+IG1zZ2lkICJ0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkLCBvciBub3RoaW5nIGlmIC10IHdvdWxkIG5vdCByZXR1cm4gYGZpbGUnLiIKI34gbXNnc3RyICJleGlzdGllcnQsIGlociBOYW1lIGF1c2dlZ2VnZWJlbiwiCgojfiBtc2dpZCAiSWYgdGhlIC1hIGZsYWcgaXMgdXNlZCwgZGlzcGxheXMgYWxsIG9mIHRoZSBwbGFjZXMgdGhhdCBjb250YWluIGFuIgojfiBtc2dzdHIgIiIKI34gIk1pdCBkZW0gLWEgU2NoYWx0ZXIgd2VyZGVuIGFsbGUgYXVzZvxocmJhcmVuIERhdGVpZW4gbWl0IGRlbSBOYW1lbiBgZmlsZSciCgojfiBtc2dpZCAiIgojfiAiZXhlY3V0YWJsZSBuYW1lZCBgZmlsZScuICBUaGlzIGluY2x1ZGVzIGFsaWFzZXMgYW5kIGZ1bmN0aW9ucywgaWYgYW5kIgojfiBtc2dzdHIgIiIKI34gImFuZ2V6ZWlndC4gIERpZXNlcyBzY2hsaWXfdCBBbGlhc2UgdW5kIEZ1bmt0aW9uZW4gZWluLCBhYmVyIG51ciBkYW5uIgoKI34gbXNnaWQgIm9ubHkgaWYgdGhlIC1wIGZsYWcgaXMgbm90IGFsc28gdXNlZC4iCiN+IG1zZ3N0ciAid2VubiBuaWNodCBnbGVpY2h6ZWl0aWcgZGVyIC1wIFNjaGFsdGVyIGdlc2V0enQgaXN0LiIKCiN+IG1zZ2lkICJUeXBlIGFjY2VwdHMgLWFsbCwgLXBhdGgsIGFuZCAtdHlwZSBpbiBwbGFjZSBvZiAtYSwgLXAsIGFuZCAtdCwiCiN+IG1zZ3N0ciAiIgojfiAiVHlwZSBha3plcHRpZXJ0IGF1Y2ggZGllIEFyZ3VtZW50ZSAtYWxsLCAtcGF0aCB1bmQgLXR5cGUgYW4gU3RlbGxlIHZvbiAtYSwiCgojfiBtc2dpZCAicmVzcGVjdGl2ZWx5LiIKI34gbXNnc3RyICItcCB1bmQgLXQuIgoKIyB1bGltaXQKI34gbXNnaWQgIlVsaW1pdCBwcm92aWRlcyBjb250cm9sIG92ZXIgdGhlIHJlc291cmNlcyBhdmFpbGFibGUgdG8gcHJvY2Vzc2VzIgojfiBtc2dzdHIgIiIKI34gIlVsaW1pdCBzdGV1ZXJ0IGRpZSBSZXNzb3VyY2VuLCBkaWUgZGVuIHZvbiBkZXIgU2hlbGwgYXVmZ2VydWZlbmVuICIKI34gIlByb3plc3NlbiIKCiN+IG1zZ2lkICJzdGFydGVkIGJ5IHRoZSBzaGVsbCwgb24gc3lzdGVtcyB0aGF0IGFsbG93IHN1Y2ggY29udHJvbC4gIElmIGFuIgojfiBtc2dzdHIgIiIKI34gInp1ciBWZXJm/Gd1bmcgc3RlaGVuLCB3ZW5uIGRhcyBTeXN0ZW0gUmVzc291cmNlbnN0ZXVlcnVuZyB1bnRlcnN0/HR6dC4gICIKI34gIldlbm4iCgojfiBtc2dpZCAib3B0aW9uIGlzIGdpdmVuLCBpdCBpcyBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOiIKI34gbXNnc3RyICJlaW5lIE9wdGlvbiBhbmdlZ2ViZSBpc3QsIGRhbm4gd2lyZCBzaWUgd2llIGZvbGd0IGludGVycHJldGllcnQ6IgoKI34gbXNnaWQgIiAgICAtU1x0dXNlIHRoZSBgc29mdCcgcmVzb3VyY2UgbGltaXQiCiN+IG1zZ3N0ciAiICAgIC1TXHROdXR6ZSBkaWUgYHdlaWNoZSAoc29mdCknIFJlc3NvdXJjZW5laW5zdGVsbHVuZy4iCgojfiBtc2dpZCAiICAgIC1IXHR1c2UgdGhlIGBoYXJkJyByZXNvdXJjZSBsaW1pdCIKI34gbXNnc3RyICIgICAgLUhcdE51dHplIGRpZSBgaGFydGUgKGhhcmQpJyBSZXNzb3VyY2VuZWluc3RlbGx1bmcuIgoKI34gbXNnaWQgIiAgICAtYVx0YWxsIGN1cnJlbnQgbGltaXRzIGFyZSByZXBvcnRlZCIKI34gbXNnc3RyICIgICAgLWFcdERpZSBnZWdlbnfkcnRpZ2UgUmVzc291cmNlbmVpbnN0ZWxsdW5nIHdpcmQgYXVzZ2VnZWJlbi4iCgojfiBtc2dpZCAiICAgIC1jXHR0aGUgbWF4aW11bSBzaXplIG9mIGNvcmUgZmlsZXMgY3JlYXRlZCIKI34gbXNnc3RyICIgICAgLWNcdERpZSBtYXhpbWFsZSBHcvbfZSBkZXIgZXJ6ZXVndGVuIGNvcmUtRGF0ZWllbi4iCgojIGb8ciBlaW4gUHJvemXfIG9kZXIgZvxyIGFsbGU/CiN+IG1zZ2lkICIgICAgLWRcdHRoZSBtYXhpbXVtIHNpemUgb2YgYSBwcm9jZXNzJ3MgZGF0YSBzZWdtZW50IgojfiBtc2dzdHIgIiAgICAtZFx0RGllIG1heGltYWxlIEdy9t9lIGRlcyBEYXRlbnNlZ21lbnRlcyBlaW5lcyBQcm96ZXNzZXMuIgoKI34gbXNnaWQgIiAgICAtbVx0dGhlIG1heGltdW0gcmVzaWRlbnQgc2V0IHNpemUiCiN+IG1zZ3N0ciAiIgojfiAiICAgIC1tXHRNYXhpbWFsZSBHcvbfZSBkZXMgbmljaHQgYXVzenVsYWdlbmRlbiAocmVzaWRlbnRlbikgIgojfiAiUHJvemXfc3BlaWNoZXJzLiIKCiN+IG1zZ2lkICIgICAgLXNcdHRoZSBtYXhpbXVtIHN0YWNrIHNpemUiCiN+IG1zZ3N0ciAiICAgIC1zXHREaWUgbWF4aW1hbGUgR3L232UgZGVzIFN0YXBlbHNwZWljaGVycy4iCgojfiBtc2dpZCAiICAgIC10XHR0aGUgbWF4aW11bSBhbW91bnQgb2YgY3B1IHRpbWUgaW4gc2Vjb25kcyIKI34gbXNnc3RyICIgICAgLXRcdERpZSBtYXhpbWFsIHZlcmb8Z2JhcmUgQ1BVLVplaXQgKGluIFNla3VuZGVuKS4iCgojfiBtc2dpZCAiICAgIC1mXHR0aGUgbWF4aW11bSBzaXplIG9mIGZpbGVzIGNyZWF0ZWQgYnkgdGhlIHNoZWxsIgojfiBtc2dzdHIgIiIKI34gIiAgICAtZlx0RGllIG1heGltYWwgZXJsYXVidGUgR3L232UgZvxyIHZvbiBkZXIgU2hlbGwgZXJ6ZXVndGUgRGF0ZWllbi4iCgojfiBtc2dpZCAiICAgIC1wXHR0aGUgcGlwZSBidWZmZXIgc2l6ZSIKI34gbXNnc3RyICIgICAgLXBcdERpZSBHcvbfZSBkZXMgUGlwZWxpbmUtUHVmZmVycy4iCgojfiBtc2dpZCAiICAgIC1uXHR0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3BlbiBmaWxlIGRlc2NyaXB0b3JzIgojfiBtc2dzdHIgIiAgICAtblx0RGllIG1heGltYWxlIEFuemFobCBnbGVpY2h6ZWl0aWcgZ2X2ZmZuZXRlciBEYXRlaWVuLiIKCiN+IG1zZ2lkICIgICAgLXVcdHRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VyIHByb2Nlc3NlcyIKI34gbXNnc3RyICIgICAgLXVcdERpZSBtYXhpbWFsZSBBbnphaGwgdm9uIFByb3plc3NlbiBkZXMgQmVudXR6ZXJzLiIKCiN+IG1zZ2lkICIgICAgLXZcdHRoZSBzaXplIG9mIHZpcnR1YWwgbWVtb3J5IgojfiBtc2dzdHIgIiAgICAtdlx0RGllIEdy9t9lIGRlcyB2aXJ0dWVsbGVuIEFyYmVpdHNzcGVpY2hlcnMuIgoKI34gbXNnaWQgIklmIExJTUlUIGlzIGdpdmVuLCBpdCBpcyB0aGUgbmV3IHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuIgojfiBtc2dzdHIgIiIKI34gIldlbm4gZWluZSBHcmVuemUgYW5nZWdlYmVuIGlzdCwgd2lyZCBkaWUgUmVzb3VjZSBhdWYgZGllc2VuIFdlcnQgZ2VzZXR6dC4iCgojfiBtc2dpZCAiT3RoZXJ3aXNlLCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGlzIHByaW50ZWQuIgojfiBtc2dzdHIgIiIKI34gIlNvbnN0IHdpcmQgZGVyIGdlZ2Vud+RydGlnIGVpbmdlc3RlbGx0ZSBXZXJ0IGF1c2dlZ2ViZW4uICBXZW5uIGtlaW5lICIKI34gIk9wdGlvbiIKCiN+IG1zZ2lkICJJZiBubyBvcHRpb24gaXMgZ2l2ZW4sIHRoZW4gLWYgaXMgYXNzdW1lZC4gIFZhbHVlcyBhcmUgaW4gMWsiCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWdlYmVuIGlzdCB3aXJkIC1mIHZlcndlbmRldC4gIERpZSBFaW5oZWl0IGlzdCAxayBhdd9lciBm/HIgLXQsIGRlcmVuIgoKI34gbXNnaWQgImluY3JlbWVudHMsIGV4Y2VwdCBmb3IgLXQsIHdoaWNoIGlzIGluIHNlY29uZHMsIC1wLCB3aGljaCBpcyBpbiIKI34gbXNnc3RyICIiCiN+ICJXZXJ0IGluIFNla3VuZGVuIGFuZ2VnZWJlbiB3aXJkLCAgLXAsIGRlc3NlbiBFaW5oZWl0IDUxMiBieXRlcyBpc3QgdW5kIC11LCIKCiN+IG1zZ2lkICJpbmNyZW1lbnRzIG9mIDUxMiBieXRlcywgYW5kIC11LCB3aGljaCBpcyBhbiB1bnNjYWxlZCBudW1iZXIgb2YiCiN+IG1zZ3N0ciAiZvxyIGRhcyBkaWUgQW56YWhsIGRlciBQcm96ZXNzZSB2ZXJ3ZW5kZXQiCgojfiBtc2dpZCAicHJvY2Vzc2VzLiIKI34gbXNnc3RyICJ3aXJkLiIKCiMgdW1hc2sKI34gbXNnaWQgIiIKI34gIlRoZSB1c2VyIGZpbGUtY3JlYXRpb24gbWFzayBpcyBzZXQgdG8gTU9ERS4gIElmIE1PREUgaXMgb21pdHRlZCwgb3IgaWYiCiN+IG1zZ3N0ciAiIgojfiAiRGllIERhdGVpZXJ6ZXVndW5nc21hc2tlIHdpcmQgYXVmIE1PREUgZ2VzZXR6dC4gIFdlbm4gTU9ERSBuaWNodCwgb2RlciAtUyIKCiN+IG1zZ2lkICIiCiN+ICJgLVMnIGlzIHN1cHBsaWVkLCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgbWFzayBpcyBwcmludGVkLiAgVGhlIGAtUyciCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWdlYmVuIGlzdCwgZGFubiB3aXJkIGRpZSBha3R1ZWxsZSBEYXRlaWVyemV1Z3VuZ3NtYXNrZSBhdXNnZWdlYmVuLiIKCiN+IG1zZ2lkICIiCiN+ICJvcHRpb24gbWFrZXMgdGhlIG91dHB1dCBzeW1ib2xpYzsgb3RoZXJ3aXNlIGFuIG9jdGFsIG51bWJlciBpcyBvdXRwdXQuIgojfiBtc2dzdHIgIiIKI34gIkRpZSBgLVMnIE9wdGlvbiBiZXdpcmt0LCBkYd8gZGllIHN5bWJvbGlzY2hlIEVudHNwcmVjaHVuZyBhdXNnZWdlYmVuICIKI34gIndpcmQuICIKCiN+IG1zZ2lkICJJZiBNT0RFIGJlZ2lucyB3aXRoIGEgZGlnaXQsIGl0IGlzIGludGVycHJldGVkIGFzIGFuIG9jdGFsIG51bWJlciwiCiN+IG1zZ3N0ciAiIgojfiAiV2VubiBNT0RFIG1pdCBlaW5lciBaaWZmZXIgYmVnaW5udCwgd2lyZCBkaWVzZSBhbHMgT2t0YWx6YWhsICIKI34gImludGVycHJldGllcnQuIgoKI34gbXNnaWQgIiIKI34gIm90aGVyd2lzZSBpdCBpcyBhIHN5bWJvbGljIG1vZGUgc3RyaW5nIGxpa2UgdGhhdCBhY2NlcHRlZCBieSBjaG1vZCgxKS4iCiN+IG1zZ3N0ciAiIgojfiAiQW5zb25zdGVuIHdpcmQgZWluZSBzeW1ib2xpc2NoZSBOb3RhdGlvbiAoYW5hbG9nIGNobW9kKDEpKSBhbmdlbm9tbWVuLiIKCiMgd2FpdAojfiBtc2dpZCAiIgojfiAiV2FpdCBmb3IgdGhlIHNwZWNpZmllZCBwcm9jZXNzIGFuZCByZXBvcnQgaXRzIHRlcm1pbmF0aW9uIHN0YXR1cy4gIElmIgojfiBtc2dzdHIgIiIKI34gIldhcnRldCBhdWYgZGFzIEJlZW5kZW4gZGVyIGFuZ2VnZWJlbmVuIFByb3plc3NlIHVuZCBnaWJ0IGRlcmVuICIKI34gIlL8Y2tnYWJld2VydCIKCiN+IG1zZ2lkICJOIGlzIG5vdCBnaXZlbiwgYWxsIGN1cnJlbnRseSBhY3RpdmUgY2hpbGQgcHJvY2Vzc2VzIGFyZSB3YWl0ZWQgZm9yLCIKI34gbXNnc3RyICJhdXMuICBXZW5uIGtlaW5lIFByb3plc3NlIGFuZ2VnZWJlbiBzaW5kLCB3aXJkIGF1ZiBhbGxlIGFrdGl2ZW4iCgojfiBtc2dpZCAiYW5kIHRoZSByZXR1cm4gY29kZSBpcyB6ZXJvLiAgTiBtYXkgYmUgYSBwcm9jZXNzIElEIG9yIGEgam9iIgojfiBtc2dzdHIgIiIKI34gIkhpbnRlcmdydW5kcHJvemVzc2UgZ2V3YXJ0ZXQgdW5kIE51bGwgenVy/GNrZ2VnZWJlbi4gIEFuIHdhaXQga/ZubmVuIgoKI34gbXNnaWQgInNwZWNpZmljYXRpb247IGlmIGEgam9iIHNwZWMgaXMgZ2l2ZW4sIGFsbCBwcm9jZXNzZXMgaW4gdGhlIGpvYidzIgojfiBtc2dzdHIgIiIKI34gIlByb3pl3251bW1lcm4gdW5kIEpvYmJlemVpY2hudW5nZW4g/GJlcmdlYmVuIHdlcmRlbi4gIFdlbm4gIgojfiAiSm9iYmV6ZWljaG51bmdlbiIKCiN+IG1zZ2lkICJwaXBlbGluZSBhcmUgd2FpdGVkIGZvci4iCiN+IG1zZ3N0ciAiIgojfiAiYW5nZWdlYmVuIHNpbmQsIGRhbm4gd2lyZCBhdWYgYWxsZSBQcm96ZXNzZSBpbiBkZXIgSm9iLVBpcGVsaW5lIGdld2FydGV0ICIKI34gInVuZCIKCiN+IG1zZ2lkICJhbmQgdGhlIHJldHVybiBjb2RlIGlzIHplcm8uICBOIGlzIGEgcHJvY2VzcyBJRDsgaWYgaXQgaXMgbm90IGdpdmVuLCIKI34gbXNnc3RyICJOdWxsIHp1cvxja2dlZ2ViZW4uIgoKI34gbXNnaWQgImFsbCBjaGlsZCBwcm9jZXNzZXMgb2YgdGhlIHNoZWxsIGFyZSB3YWl0ZWQgZm9yLiIKI34gbXNnc3RyICIgIgoKIyBmb3IKI34gbXNnaWQgIlRoZSBgZm9yJyBsb29wIGV4ZWN1dGVzIGEgc2VxdWVuY2Ugb2YgY29tbWFuZHMgZm9yIGVhY2ggbWVtYmVyIGluIGEiCiN+IG1zZ3N0ciAiIgojfiAiYGZvcicgZvxocnQgZWluZSBSZWloZSB2b24gS29tbWFuZG9zIGb8ciBqZWRlbiBFaW50cmFnIGVpbmVyIExpc3RlIGF1cy4iCgojfiBtc2dpZCAiIgojfiAibGlzdCBvZiBpdGVtcy4gIElmIGBpbiBXT1JEUyAuLi47JyBpcyBub3QgcHJlc2VudCwgdGhlbiBgaW4gXCIkQFwiJyBpcyIKI34gbXNnc3RyICJPaG5lIGBpbiBXT1JUTElTVEUnIHdpcmQgYWxzIEFyZ3VtZW50IGBpbiBcIiRAXCInIHZlcndlbmRldC4iCgojfiBtc2dpZCAiIgojfiAiYXNzdW1lZC4gIEZvciBlYWNoIGVsZW1lbnQgaW4gV09SRFMsIE5BTUUgaXMgc2V0IHRvIHRoYXQgZWxlbWVudCwgYW5kIgojfiBtc2dzdHIgIk5BTUUgd2lyZCBuYWNoZWluYW5kZXIgZWluIEVsZW1lbnQgYXVzIFdPUlRMSVNURSB6dWdld2llc2VuIgoKI34gbXNnaWQgInRoZSBDT01NQU5EUyBhcmUgZXhlY3V0ZWQuIgojfiBtc2dzdHIgInVuZCBkaWUgS09NTUFORE9TIGF1c2dlZvxocnQuIgoKIyBzZWxlY3QKI34gbXNnaWQgIlRoZSBXT1JEUyBhcmUgZXhwYW5kZWQsIGdlbmVyYXRpbmcgYSBsaXN0IG9mIHdvcmRzLiAgVGhlIgojfiBtc2dzdHIgIiIKI34gIkRpZSBXT1JURSB3ZXJkZW4gZXJ3ZWl0ZXJ0IHVuZCBlcnpldWdlbiBlaW5lIFdvcnRsaXN0ZS4gIERpZXNlIHdpcmQgYWxzIgoKI34gbXNnaWQgInNldCBvZiBleHBhbmRlZCB3b3JkcyBpcyBwcmludGVkIG9uIHRoZSBzdGFuZGFyZCBlcnJvciwgZWFjaCIKI34gbXNnc3RyICJudW1lcmllcnRlIExpc3RlIGF1ZiBkZW0gU3RhbmRhcmRmZWhsZXJrYW5hbCBhdXNnZWdlYmVuLiIKCiN+IG1zZ2lkICJwcmVjZWRlZCBieSBhIG51bWJlci4gIElmIGBpbiBXT1JEUycgaXMgbm90IHByZXNlbnQsIGBpbiBcIiRAXCInIgojfiBtc2dzdHIgIiIKI34gIldlbm4gYGluIFdPUlRFJyBuaWNodCBhbmdlZ2ViZW4gaXN0LCBkYW5uIHdpcmQgYGluIFwiJEBcIicgdmVyd2VuZGV0LiIKCiN+IG1zZ2lkICJpcyBhc3N1bWVkLiAgVGhlIFBTMyBwcm9tcHQgaXMgdGhlbiBkaXNwbGF5ZWQgYW5kIGEgbGluZSByZWFkIgojfiBtc2dzdHIgIiIKI34gIkRhcyBQUzMtUHJvbXQgd2lyZCBhbmdlemVpZ3QgdW5kIGVpbmUgWmVpbGUgdm9uIGRlciBTdGFuZGFyZGVpbmdhYmUgIgojfiAiZ2VsZXNlbi4iCgojfiBtc2dpZCAiZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQuICBJZiB0aGUgbGluZSBjb25zaXN0cyBvZiB0aGUgbnVtYmVyIgojfiBtc2dzdHIgIiIKI34gIldlbm4gZGllIGdlbGVzZW5lIFplaWxlIGVpbmUgWmVpbGVubnVtbWVyIGRlciBhbmdlemVpZ3RlbiBMaXN0ZSBlbmjkbHQsICIKI34gImRhbm4iCgojfiBtc2dpZCAiY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIGRpc3BsYXllZCB3b3JkcywgdGhlbiBOQU1FIGlzIHNldCIKI34gbXNnc3RyICJ3aXJkIE5BTUUgZW50c3ByZWNoZW5kIGRlbSBXT1JUIGluIGRlciBiZXplaWNobmV0ZW4gWmVpbGUgZ2VzZXR6dC4iCgojfiBtc2dpZCAidG8gdGhhdCB3b3JkLiAgSWYgdGhlIGxpbmUgaXMgZW1wdHksIFdPUkRTIGFuZCB0aGUgcHJvbXB0IGFyZSIKI34gbXNnc3RyICIiCiN+ICJXaXJkIGVpbmUgbGVlcmUgWmVpY2hlbmtldHRlIGdlbGVzZW4sICBkYW5uIHdpcmQgZGllIExpc3RlIGVybmV1dCAiCiN+ICJhbmdlemVpZ3QuIgoKI34gbXNnaWQgInJlZGlzcGxheWVkLiAgSWYgRU9GIGlzIHJlYWQsIHRoZSBjb21tYW5kIGNvbXBsZXRlcy4gIEFueSBvdGhlciIKI34gbXNnc3RyICIiCiN+ICJNaXIgZWluZW0gRU9GIFplaWNoZW4gd2lyZCBkaWUgRWluZ2FiZSBhYmdlYnJvY2hlbi4gIEplZGVyIGFuZGVyZSBJbmhhbHQgIgojfiAiZGVyIgoKI34gbXNnaWQgInZhbHVlIHJlYWQgY2F1c2VzIE5BTUUgdG8gYmUgc2V0IHRvIG51bGwuICBUaGUgbGluZSByZWFkIGlzIHNhdmVkIgojfiBtc2dzdHIgIiIKI34gIlplaWNoZW5rZXR0ZSBiZXdpcmt0LCBkYd8gTkFNRSBhdWYgTnVsbCBnZXNldHp0IHdpcmQuICBEaWUgZ2VsZXNlbmUgWmVpbGUgIgojfiAid2lyZCIKCiN+IG1zZ2lkICJpbiB0aGUgdmFyaWFibGUgUkVQTFkuICBDT01NQU5EUyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgZWFjaCBzZWxlY3Rpb24iCiN+IG1zZ3N0ciAiIgojfiAiaW4gZGVyIFZhcmlhYmxlIFJFUExZIGdlc3BlaWNoZXJ0LiAgRGllIEtPTU1BTkRPUyB3ZXJkZW4gc28gbGFuZ2UgIgojfiAid2llZGVyaG9sdCwiCgojfiBtc2dpZCAidW50aWwgYSBicmVhayBvciByZXR1cm4gY29tbWFuZCBpcyBleGVjdXRlZC4iCiN+IG1zZ3N0ciAiYmlzIGRpZSBTY2hsZWlmZSBtaXQgYnJlYWsgb2RlciByZXR1cm4gdmVybGFzc2VuIHdpcmQuIgoKIyBjYXNlCiN+IG1zZ2lkICJTZWxlY3RpdmVseSBleGVjdXRlIENPTU1BTkRTIGJhc2VkIHVwb24gV09SRCBtYXRjaGluZyBQQVRURVJOLiAgVGhlIgojfiBtc2dzdHIgIkb8aHJ0IEtPTU1BTkRPUyBhYmjkbmdpZyB2b24gZWluZW0gV09SVCBhdXMsIGRhcyBNVVNURVIgZW50c3ByaWNodC4iCgojfiBtc2dpZCAiYHwnIGlzIHVzZWQgdG8gc2VwYXJhdGUgbXVsdGlwbGUgcGF0dGVybnMuIgojfiBtc2dzdHIgIkRhcyBaZWljaGVuIGB8JyB0cmVubnQgbWVocmVyZSBNdXN0ZXIuIgoKIyBpZgojfiBtc2dpZCAiIgojfiAiVGhlIGlmIENPTU1BTkRTIGFyZSBleGVjdXRlZC4gIElmIHRoZSBleGl0IHN0YXR1cyBpcyB6ZXJvLCB0aGVuIHRoZSB0aGVuIgojfiBtc2dzdHIgIiIKI34gIkRpZSBLT01NQU5ET1Mgd2VyZGVuIGF1c2dld2VydGV0LiBJc3QgZGVyIFL8Y2tnYWJld2VydCBOdWxsLCBkYW5uIHdlcmRlbiAiCiN+ICJkaWUiCgojfiBtc2dpZCAiIgojfiAiQ09NTUFORFMgYXJlIGV4ZWN1dGVkLiAgT3RoZXJ3aXNlLCBlYWNoIG9mIHRoZSBlbGlmIENPTU1BTkRTIGFyZSBleGVjdXRlZCIKI34gbXNnc3RyICIiCiN+ICJ0aGVuIEtPTU1BTkRPUyBhdXNnZWb8aHJ0LiBBbnNvbnN0ZW4gd2VyZGVuIGRpZSBlbGlmIEtPTU1BTkRPUyBkZXIgUmVpaGUgIgojfiAibmFjaCIKCiN+IG1zZ2lkICIiCiN+ICJpbiB0dXJuLCBhbmQgaWYgdGhlIGV4aXQgc3RhdHVzIGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHRoZW4gQ09NTUFORFMiCiN+IG1zZ3N0ciAiIgojfiAiYXVzZ2V3ZXJ0ZXQgdW5kIGJlaSBlaW5lbSBS/GNrZ2FiZXdlcnQgTnVsbCBkaWUgZGF6dWdlaPZyaWdlbiBLT01NQU5ET1MiCgojfiBtc2dpZCAiIgojfiAiYXJlIGV4ZWN1dGVkIGFuZCB0aGUgaWYgY29tbWFuZCBjb21wbGV0ZXMuICBPdGhlcndpc2UsIHRoZSBlbHNlIENPTU1BTkRTIgojfiBtc2dzdHIgImF1c2dlZvxocnQgdW5kIGlmIGJlZW5kZXQuIFNvbnN0IHdpcmQsIHdlbm4gZWluIGVsc2UgS29tbWFuZG96d2VpZyIKCiN+IG1zZ2lkICIiCiN+ICJhcmUgZXhlY3V0ZWQsIGlmIHByZXNlbnQuICBUaGUgZXhpdCBzdGF0dXMgaXMgdGhlIGV4aXQgc3RhdHVzIG9mIHRoZSBsYXN0IgojfiBtc2dzdHIgIiIKI34gImV4aXN0aWVydCwgZGllc2VyIGF1c2dlZvxocnQuIERlciBFeGl0c3RhdHVzIGlzdCBkZXIgZGVzIGxldHp0ZW4gS29tbWFuZG9zIgoKI34gbXNnaWQgImNvbW1hbmQgZXhlY3V0ZWQsIG9yIHplcm8gaWYgbm8gY29uZGl0aW9uIHRlc3RlZCB0cnVlLiIKI34gbXNnc3RyICJvZGVyIE51bGwsIHdlbm4ga2VpbmUgQmVkaW5ndW5nIHdhaHIgZXJnYWIuIgoKIyB3aGlsZQojfiBtc2dpZCAiRXhwYW5kIGFuZCBleGVjdXRlIENPTU1BTkRTIGFzIGxvbmcgYXMgdGhlIGZpbmFsIGNvbW1hbmQgaW4gdGhlIgojfiBtc2dzdHIgIiIKI34gIldpZWRlcmhvbHQgZGVuIFNjaGxlaWZlbmv2cnBlciBgZG8gS09NTUFORE9TIGRvbmUnIHNvIGxhbmdlIGRpZSBsZXR6dGUiCgojfiBtc2dpZCAiYHdoaWxlJyBDT01NQU5EUyBoYXMgYW4gZXhpdCBzdGF0dXMgb2YgemVyby4iCiN+IG1zZ3N0ciAiS29tbWFuZG8gYHdoaWxlIEtPTU1BTkRPUycgZWluZW4gUvxja2tlaHJzdGF0dXMgTnVsbCBsaWVmZXJ0LiIKCiMgdW50aWwKI34gbXNnaWQgImB1bnRpbCcgQ09NTUFORFMgaGFzIGFuIGV4aXQgc3RhdHVzIHdoaWNoIGlzIG5vdCB6ZXJvLiIKI34gbXNnc3RyICIiCiN+ICJLb21tYW5kbyBpbiBgdW50aWwgS09NTUFORE9TJyBlaW5lbiBS/GNra2VocnN0YXR1cyB1bmdsZWljaCBOdWxsIGxpZWZlcnQuIgoKIyBmdW5jdGlvbgojfiBtc2dpZCAiQ3JlYXRlIGEgc2ltcGxlIGNvbW1hbmQgaW52b2tlZCBieSBOQU1FIHdoaWNoIHJ1bnMgQ09NTUFORFMuIgojfiBtc2dzdHIgIkVyemV1Z3QgZWluZSBuZXVlIFNoZWxsZnVua3Rpb24gTkFNRSwgZGllIEtPTU1BTkRPUyBhdXNm/GhydC4gIgoKI34gbXNnaWQgIkFyZ3VtZW50cyBvbiB0aGUgY29tbWFuZCBsaW5lIGFsb25nIHdpdGggTkFNRSBhcmUgcGFzc2VkIHRvIHRoZSIKI34gbXNnc3RyICJOQU1FIHVuZCBLb21tYW5kb3plaWxlbmFndW1lbnRlIHdlcmRlbiBhbiBkaWUgRnVua3Rpb24gYWxzICQwIC4uICRuIgoKI34gbXNnaWQgImZ1bmN0aW9uIGFzICQwIC4uICRuLiIKI34gbXNnc3RyICL8YmVyZ2ViZW4uIgoKIyBncm91cGluZ19icmFjZXMKI34gbXNnaWQgIlJ1biBhIHNldCBvZiBjb21tYW5kcyBpbiBhIGdyb3VwLiAgVGhpcyBpcyBvbmUgd2F5IHRvIHJlZGlyZWN0IGFuIgojfiBtc2dzdHIgIiIKI34gIkb8aHJ0IEtvbW1hbmRvcyBpbiBlaW5lciBHcnVwcGUgYXVzLiAgRGFzIGlzdCBlaW5lIE32Z2xpY2hrZWl0IGRpZSAiCiN+ICJBdXNnYWJlIHZvbiIKCiN+IG1zZ2lkICJlbnRpcmUgc2V0IG9mIGNvbW1hbmRzLiIKI34gbXNnc3RyICJlaW5lciBHcnVwcGUgS29tbWFuZG9zIHVtenVsZWl0ZW4uIgoKIyBmZ19wZXJjZW50CiN+IG1zZ2lkICJUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGBmZycgY29tbWFuZC4gIFJlc3VtZSBhIHN0b3BwZWQgb3IgYmFja2dyb3VuZCIKI34gbXNnc3RyICIiCiN+ICJJc3Qg5GhubGljaCBkZW0gYGZnJyBLb21tYW5kby4gIE5pbW10IGVpbmVuIGFuZ2VoYWx0ZW5lbiBvZGVyIGhpbnRlcmdydW5kICIKI34gIkpvYiIKCiN+IG1zZ2lkICJqb2IuICBJZiB5b3Ugc3BlY2lmaXkgRElHSVRTLCB0aGVuIHRoYXQgam9iIGlzIHVzZWQuICBJZiB5b3Ugc3BlY2lmeSIKI34gbXNnc3RyICIiCiN+ICJ3aWVkZXIgYXVmLiAgV2VubiBlaW5lIEpvYm51bW1lciBhbmdlZ2ViZW4gaXN0LCBkYW5uIHdpcmQgZGllc2VyICIKI34gImF1Zmdlbm9tbWVuLiIKCiN+IG1zZ2lkICIiCiN+ICJXT1JELCB0aGVuIHRoZSBqb2Igd2hvc2UgbmFtZSBiZWdpbnMgd2l0aCBXT1JEIGlzIHVzZWQuICBGb2xsb3dpbmcgdGhlIgojfiBtc2dzdHIgIiIKI34gIldlbm4gZWluZSBaZWljaGVua2V0dGUgYW5nZWdlYmVuIGlzdCwgZGFubiB3aXJkIGRlciBKb2IgZGVyIG1pdCBkaWVzZW4gIgojfiAiWmVpY2hlbiIKCiN+IG1zZ2lkICJqb2Igc3BlY2lmaWNhdGlvbiB3aXRoIGEgYCYnIHBsYWNlcyB0aGUgam9iIGluIHRoZSBiYWNrZ3JvdW5kLiIKI34gbXNnc3RyICJiZWdpbm50IHdpZWRlciBhdWZnZW5vbW1lbi4gIGAmJyBicmluZ3QgZGVuIEpvYiBpbiBkZW4gSGludGVyZ3J1bmQuIgoKIyB2YXJpYWJsZV9oZWxwCiN+IG1zZ2lkICJCQVNIX1ZFUlNJT04gICAgVGhlIHZlcnNpb24gbnVtYmVycyBvZiB0aGlzIEJhc2guIgojfiBtc2dzdHIgIkJBU0hfVkVSU0lPTiAgICBWZXJzaW9uc251bW1lciBkZXIgQmFzaC4iCgojfiBtc2dpZCAiQ0RQQVRIICAgICAgICAgIEEgY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoIgojfiBtc2dzdHIgIiIKI34gIkNEUEFUSCAgICAgICAgICBFaW5lIGR1cmNoIERvcHBlbHB1bmt0IGdldHJlbm50ZSBMaXN0ZSB2b24gIgojfiAiVmVyemVpY2huaXNzZW4sIGRpZSIKCiN+IG1zZ2lkICJcdFx0d2hlbiB0aGUgYXJndW1lbnQgdG8gYGNkJyBpcyBub3QgZm91bmQgaW4gdGhlIGN1cnJlbnQiCiN+IG1zZ3N0ciAiXHRcdGR1cmNoc3VjaHQgd2VyZGVuLCB3ZW5uIGRhcyBBcmd1bWVudCB2b24gYGNkJyBuaWNodCBpbSIKCiN+IG1zZ2lkICJcdFx0ZGlyZWN0b3J5LiIKI34gbXNnc3RyICJcdFx0YWt0dWVsbGVuIFZlcnplaWNobmlzIGdlZnVuZGVuIHdpcmQuIgoKI34gbXNnaWQgIiIKI34gIkhJU1RGSUxFICAgICAgICBUaGUgbmFtZSBvZiB0aGUgZmlsZSB3aGVyZSB5b3VyIGNvbW1hbmQgaGlzdG9yeSBpcyBzdG9yZWQuIgojfiBtc2dzdHIgIkhJU1RGSUxFICAgICAgICBEYXRlaSwgZGllIGRlbiBLb21tYW5kb3plaWxlbnNwZWljaGVyIGVudGjkbHQuICAiCgojfiBtc2dpZCAiSElTVEZJTEVTSVpFICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0aGlzIGZpbGUgY2FuIGNvbnRhaW4uIgojfiBtc2dzdHIgIiIKI34gIkhJU1RGSUxFU0laRSAgICBNYXhpbWFsZSBaZWlsZW5hbnphaGwsIGRpZSBkaWVzZSBEYXRlaSBlbnRoYWx0ZW4gZGFyZi4iCgojfiBtc2dpZCAiSElTVFNJWkUgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBoaXN0b3J5IGxpbmVzIHRoYXQgYSBydW5uaW5nIgojfiBtc2dzdHIgIiIKI34gIkhJU1RTSVpFICAgICAgICBNYXhpbWFsZSBBbnphaGwgdm9uIFplaWxlbiwgYXVmIGRpZSBkZXIgSGlzdG9yeW1lY2hhbmlzbXVzIgoKI34gbXNnaWQgIlx0XHRzaGVsbCBjYW4gYWNjZXNzLiIKI34gbXNnc3RyICJcdFx0ZGVyIFNoZWxsIHp1cvxja2dyZWlmZW4ga2Fubi4iCgojfiBtc2dpZCAiSE9NRSAgICAgICAgICAgIFRoZSBjb21wbGV0ZSBwYXRobmFtZSB0byB5b3VyIGxvZ2luIGRpcmVjdG9yeS4iCiN+IG1zZ3N0ciAiSE9NRSAgICAgICAgICAgIEhlaW1hdHZlcnplaWNobmlzIGRlcyBha3R1ZWxsZW4gQmVudXR6ZXJzLiIKCiN+IG1zZ2lkICIiCiN+ICJIT1NUVFlQRSAgICAgICAgVGhlIHR5cGUgb2YgQ1BVIHRoaXMgdmVyc2lvbiBvZiBCYXNoIGlzIHJ1bm5pbmcgdW5kZXIuIgojfiBtc2dzdHIgIiIKI34gIkhPU1RUWVBFICAgICAgICBDUFUtVHlwIGRlcyBSZWNobmVycywgYXVmIGRlbSBkaWUgQmFzaCBnZWdlbnfkcnRpZyBs5HVmdC4iCgojfiBtc2dpZCAiIgojfiAiSUdOT1JFRU9GICAgICAgIENvbnRyb2xzIHRoZSBhY3Rpb24gb2YgdGhlIHNoZWxsIG9uIHJlY2VpcHQgb2YgYW4gRU9GIgojfiBtc2dzdHIgIiIKI34gIklHTk9SRUVPRiAgICAgICBMZWd0IGRpZSBSZWFrdGlvbiBkZXIgU2hlbGwgYXVmIGVpbiBFT0YtWmVpY2hlbiBmZXN0LiIKCiN+IG1zZ2lkICJcdFx0Y2hhcmFjdGVyIGFzIHRoZSBzb2xlIGlucHV0LiAgSWYgc2V0LCB0aGVuIHRoZSB2YWx1ZSIKI34gbXNnc3RyICJcdFx0V2VubiBkaWUgVmFyaWFibGUgZWluZSBnYW56ZSBaYWhsIGVudGjkbHQsIHdpcmQgZGllc2UgQW56YWhsIgoKI34gbXNnaWQgIlx0XHRvZiBpdCBpcyB0aGUgbnVtYmVyIG9mIEVPRiBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHNlZW4iCiN+IG1zZ3N0ciAiXHRcdEVPRiBaZWljaGVuIChDdHJsLUQpIGFiZ2V3YXJ0ZXQsIGJpcyBkaWUgU2hlbGwgdmVybGFzc2VuIHdpcmQuIgoKI34gbXNnaWQgIlx0XHRpbiBhIHJvdyBvbiBhbiBlbXB0eSBsaW5lIGJlZm9yZSB0aGUgc2hlbGwgd2lsbCBleGl0IgojfiBtc2dzdHIgIlx0XHREZXIgVm9yZ2FiZXdlcnQgaXN0IDEwLiBJc3QgSUdOT1JFRU9GIG5pY2h0IGdlc2V0enQsIgoKI34gbXNnaWQgIlx0XHQoZGVmYXVsdCAxMCkuICBXaGVuIHVuc2V0LCBFT0Ygc2lnbmlmaWVzIHRoZSBlbmQgb2YgaW5wdXQuIgojfiBtc2dzdHIgIlx0XHRzaWduYWxpc2llcnQgRU9GIGRhcyBFbmRlIGRlciBFaW5nYWJlLiIKCiN+IG1zZ2lkICJNQUlMQ0hFQ0tcdEhvdyBvZnRlbiwgaW4gc2Vjb25kcywgQmFzaCBjaGVja3MgZm9yIG5ldyBtYWlsLiIKI34gbXNnc3RyICIiCiN+ICJNQUlMQ0hFQ0tcdFplaXRpbnRlcnZhbGwgW3NdLCBpbiBkZW0gbmFjaCBhbmdla29tbWVuZXIgUG9zdCBnZXN1Y2h0IHdpcmQuIgoKI34gbXNnaWQgIk1BSUxQQVRIXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIGZpbGVuYW1lcyB3aGljaCBCYXNoIGNoZWNrcyIKI34gbXNnc3RyICIiCiN+ICJNQUlMUEFUSFx0RWluZSBkdXJjaCBEb3BwZWxwdW5rdCBnZXRyZW5udGUgTGlzdGUgdm9uIERhdGVpZW4sIGRpZSBuYWNoIgoKI34gbXNnaWQgIlx0XHRmb3IgbmV3IG1haWwuIgojfiBtc2dzdHIgIlx0XHRuZXUgYW5nZWtvbW1lbmVyIFBvc3QgZHVyY2hzdWNodCB3ZXJkZW4uIgoKI34gbXNnaWQgIk9TVFlQRVx0XHRUaGUgdmVyc2lvbiBvZiBVbml4IHRoaXMgdmVyc2lvbiBvZiBCYXNoIGlzIHJ1bm5pbmcgb24uIgojfiBtc2dzdHIgIiIKI34gIk9TVFlQRVx0XHRCZXRyaWVic3N5c3RlbXZlcnNpb24sIGF1ZiBkZXIgZGllIEJhc2ggZ2VnZW535HJ0aWcgbOR1ZnQuIgoKI34gbXNnaWQgIlBBVEggICAgICAgICAgICBBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCB3aGVuIgojfiBtc2dzdHIgIlBBVEhcdFx0RHVyY2ggRG9wcGVscHVua3QgZ2V0cmVubnRlIExpc3RlIHZvbiBWZXJ6ZWljaG5pc3NlbiwgZGllICIKCiN+IG1zZ2lkICJcdFx0bG9va2luZyBmb3IgY29tbWFuZHMuIgojfiBtc2dzdHIgIlx0XHRuYWNoIEtvbW1hbmRvcyBkdXJjaHN1Y2h0IHdlcmRlbi4iCgojfiBtc2dpZCAiUFJPTVBUX0NPTU1BTkQgIEEgY29tbWFuZCB0byBiZSBleGVjdXRlZCBiZWZvcmUgdGhlIHByaW50aW5nIG9mIGVhY2giCiN+IG1zZ3N0ciAiIgojfiAiUFJPTVBUX0NPTU1BTkQgIEtvbW1hbmRvLCBkYXMgdm9yIGRlciBBbnplaWdlIGVpbmVyIHByaW3kcmVuICIKI34gIkVpbmdhYmVhdWZmb3JkZXJ1bmciCgojfiBtc2dpZCAiXHRcdHByaW1hcnkgcHJvbXB0LiIKI34gbXNnc3RyICJcdFx0KFBTMSkgYXVzZ2Vm/GhydCB3aXJkLiIKCiN+IG1zZ2lkICJQUzEgICAgICAgICAgICAgVGhlIHByaW1hcnkgcHJvbXB0IHN0cmluZy4iCiN+IG1zZ3N0ciAiIgojfiAiUFMxICAgICAgICAgICAgIFplaWNoZW5rZXR0ZSwgZGllIGRpZSBwcmlt5HJlIEVpbmdhYmVhdWZmb3JkZXJ1bmcgZW50aORsdC4iCgojfiBtc2dpZCAiUFMyICAgICAgICAgICAgIFRoZSBzZWNvbmRhcnkgcHJvbXB0IHN0cmluZy4iCiN+IG1zZ3N0ciAiIgojfiAiUFMyICAgICAgICAgICAgIFplaWNoZW5rZXR0ZSwgZGllIGRpZSBzZWt1bmTkcmUgRWluZ2FiZWF1ZmZvcmRlcnVuZyAiCiN+ICJlbnRo5Gx0LiIKCiN+IG1zZ2lkICJURVJNICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgdGVybWluYWwgdHlwZS4iCiN+IG1zZ3N0ciAiVEVSTSAgICAgICAgICAgIE5hbWUgZGVzIGFrdHVlbGxlbiBUZXJtaW5hbHR5cHMuIgoKI34gbXNnaWQgImF1dG9fcmVzdW1lICAgICBOb24tbnVsbCBtZWFucyBhIGNvbW1hbmQgd29yZCBhcHBlYXJpbmcgb24gYSBsaW5lIGJ5IgojfiBtc2dzdHIgIiIKI34gImF1dG9fcmVzdW1lICAgICBFaW4gV2VydCB1bmdsZWljaCBOdWxsIGJld2lya3QsIGRh3yBlaW4gZWluemVsbmVzICIKI34gIktvbW1hbmRvIGF1ZiIKCiN+IG1zZ2lkICJcdFx0aXRzZWxmIGlzIGZpcnN0IGxvb2tlZCBmb3IgaW4gdGhlIGxpc3Qgb2YgY3VycmVudGx5IgojfiBtc2dzdHIgIlx0XHRlaW5lciBaZWlsZSB6dW7kY2hzdCBpbiBkZXIgTGlzdGUgZ2VnZW535HJ0aWcgZ2VzdG9wcHRlciBKb2JzIgoKI34gbXNnaWQgIlx0XHRzdG9wcGVkIGpvYnMuICBJZiBmb3VuZCB0aGVyZSwgdGhhdCBqb2IgaXMgZm9yZWdyb3VuZGVkLiIKI34gbXNnc3RyICJcdFx0Z2VzdWNodCB1bmQgZGllc2VyIGluIGRlbiBWb3JkZXJncnVuZCBnZWhvbHQgd2lyZC4gYGV4YWN0JyIKCiN+IG1zZ2lkICJcdFx0QSB2YWx1ZSBvZiBgZXhhY3QnIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgd29yZCBtdXN0IgojfiBtc2dzdHIgIlx0XHRiZXdpcmt0LCBkYd8gZGFzIEtvbW1hbmRvIGdlbmF1IGRlbSBLb21tYW5kbyBpbiBkZXIiCgojfiBtc2dpZCAiXHRcdGV4YWN0bHkgbWF0Y2ggYSBjb21tYW5kIGluIHRoZSBsaXN0IG9mIHN0b3BwZWQgam9icy4gIEEiCiN+IG1zZ3N0ciAiXHRcdExpc3RlIGRlciBnZXN0b3BwdGVuIEpvYnMgZW50c3ByZWNoZW4gbXXfLiBXZW5uIGRpZSBWYXJpYWJsZSIKCiN+IG1zZ2lkICJcdFx0dmFsdWUgb2YgYHN1YnN0cmluZycgbWVhbnMgdGhhdCB0aGUgY29tbWFuZCB3b3JkIG11c3QiCiN+IG1zZ3N0ciAiXHRcdGRlbiBXZXJ0IGBzdWJzdHJpbmcnIGVudGjkbHQsIG113yBkYXMgS29tbWFuZG8gZWluZW0gU3Vic3RyaW5nIgoKI34gbXNnaWQgIlx0XHRtYXRjaCBhIHN1YnN0cmluZyBvZiB0aGUgam9iLiAgQW55IG90aGVyIHZhbHVlIG1lYW5zIHRoYXQiCiN+IG1zZ3N0ciAiXHRcdGRlciBKb2JiZXplaWNobnVuZyBlbnRzcHJlY2hlbi4gQmVpIGVpbmVtIGFuZGVyZW4gV2VydCBt/HNzZW4iCgojfiBtc2dpZCAiXHRcdHRoZSBjb21tYW5kIG11c3QgYmUgYSBwcmVmaXggb2YgYSBzdG9wcGVkIGpvYi4iCiN+IG1zZ3N0ciAiXHRcdGRpZSBlcnN0ZW4gWmVpY2hlbiD8YmVyZWluc3RpbW1lbi4iCgojfiBtc2dpZCAiY29tbWFuZF9vcmllbnRlZF9oaXN0b3J5IgojfiBtc2dzdHIgImNvbW1hbmRfb3JpZW50ZWRfaGlzdG9yeSIKCiN+IG1zZ2lkICIiCiN+ICIgICAgICAgICAgICAgICAgTm9uLW51bGwgbWVhbnMgdG8gc2F2ZSBtdWx0aXBsZS1saW5lIGNvbW1hbmRzIHRvZ2V0aGVyIG9uIgojfiBtc2dzdHIgIlx0XHRNZWhyemVpbGlnZSBLb21tYW5kb3Mgd2VyZGVuIGltIEtvbW1hbmRvemVpbGVuc3BlaWNoZXIgaW4gZWluZXIiCgojfiBtc2dpZCAiICAgICAgICAgICAgICAgIGEgc2luZ2xlIGhpc3RvcnkgbGluZS4iCiN+IG1zZ3N0ciAiXHRcdFplaWxlIGFiZ2VsZWd0LCB3ZW5uIGRpZSBWYXJpYWJsZSB1bmdsZWljaCBOdWxsIGdlc2V0enQgaXN0LiIKCiN+IG1zZ2lkICJoaXN0Y2hhcnMgICAgICAgQ2hhcmFjdGVycyBjb250cm9sbGluZyBoaXN0b3J5IGV4cGFuc2lvbiBhbmQgcXVpY2siCiN+IG1zZ3N0ciAiIgojfiAiaGlzdGNoYXJzICAgICAgIFplaWNoZW4sIGRpZSBkaWUgQmVmZWhsc3dpZWRlcmhvbHVuZyB1bmQgZGllICIKI34gIlNjaG5lbGxlcnNldHp1bmciCgojfiBtc2dpZCAiXHRcdHN1YnN0aXR1dGlvbi4gIFRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgdGhlIGhpc3RvcnkiCiN+IG1zZ3N0ciAiXHRcdHN0ZXVlcm4uIEFuIGVyc3RlciBTdGVsbGUgc3RlaHQgZGFzIEJlZmVobHN3aWVkZXJob2x1bmdzemVpY2hlbiIKCiN+IG1zZ2lkICJcdFx0c3Vic3RpdHV0aW9uIGNoYXJhY3RlciwgdXN1YWxseSBgIScuICBUaGUgc2Vjb25kIGlzIgojfiBtc2dzdHIgIlx0XHQobm9ybWFsZXJ3ZWlzZSBgIScpOyBhbiB6d2VpdGVyIGRhcyBgU2NobmVsbC1FcnNldHplbi1aZWljaGVuJyIKCiN+IG1zZ2lkICJcdFx0dGhlIGBxdWljayBzdWJzdGl0dXRpb24nIGNoYXJhY3RlciwgdXN1YWxseSBgXicuICBUaGUiCiN+IG1zZ3N0ciAiXHRcdChub3JtYWxlcndlaXNlIGBeJykuIERhcyBkcml0dGUgWmVpY2hlbiBpc3QgZGFzIgoKI34gbXNnaWQgIlx0XHR0aGlyZCBpcyB0aGUgYGhpc3RvcnkgY29tbWVudCcgY2hhcmFjdGVyLCB1c3VhbGx5IGAjJy4iCiN+IG1zZ3N0ciAiXHRcdGBLb21tZW50YXJ6ZWljaGVuJyAobm9ybWFsZXJ3ZWlzZSBgIycpLiIKCiN+IG1zZ2lkICJISVNUQ09OVFJPTFx0U2V0IHRvIGEgdmFsdWUgb2YgYGlnbm9yZXNwYWNlJywgaXQgbWVhbnMgZG9uJ3QgZW50ZXIiCiN+IG1zZ3N0ciAiSElTVENPTlRST0xcdEdlc2V0enQgYXVmIGBpZ25vcmVzcGFjZScgd2VyZGVuIGtlaW5lIG1pdCBlaW5lbSIKCiN+IG1zZ2lkICJcdFx0bGluZXMgd2hpY2ggYmVnaW4gd2l0aCBhIHNwYWNlIG9yIHRhYiBvbiB0aGUgaGlzdG9yeSIKI34gbXNnc3RyICIiCiN+ICJcdFx0TGVlcnplaWNoZW4gb2RlciBUYWJ1bGF0b3IgYmVnaW5uZW5kZW4gWmVpbGVuIGltIEtvbW1hbmRvc3BlaWNoZXIiCgojfiBtc2dpZCAiXHRcdGxpc3QuICBTZXQgdG8gYSB2YWx1ZSBvZiBgaWdub3JlZHVwcycsIGl0IG1lYW5zIGRvbid0IgojfiBtc2dzdHIgIlx0XHRhYmdlbGVndC4gRGVyIFdlcnQgYGlnbm9yZWR1cHMnIHZlcmhpbmRlcnQgZGFzIFNwZWljaGVybiIKCiN+IG1zZ2lkICJcdFx0ZW50ZXIgbGluZXMgd2hpY2ggbWF0Y2ggdGhlIGxhc3QgZW50ZXJlZCBsaW5lLiAgU2V0IHRvIgojfiBtc2dzdHIgIlx0XHRhdWZlaW5hbmRlcmZvbGdlbmRlciBpZGVudGlzY2hlciBaZWlsZW4uIGBpZ25vcmVib3RoJyIKCiN+IG1zZ2lkICJcdFx0YGlnbm9yZWJvdGgnIG1lYW5zIHRvIGNvbWJpbmUgdGhlIHR3byBvcHRpb25zLiAgVW5zZXQsIgojfiBtc2dzdHIgIlx0XHRrb21iaW5pZXJ0IGJlaWRlIEVpbnN0ZWxsdW5nZW4uIFdlbm4gZGllIFZhcmlhYmxlIgoKI34gbXNnaWQgIlx0XHRvciBzZXQgdG8gYW55IG90aGVyIHZhbHVlIHRoYW4gdGhvc2UgYWJvdmUgbWVhbnMgdG8gc2F2ZSIKI34gbXNnc3RyICJcdFx0bmljaHQgb2RlciBhdWYgZWluZW4gYW5kZXJlbiBXZXJ0IGdlc2V0enQgaXN0LCB3ZXJkZW4gYWxsZSIKCiN+IG1zZ2lkICJcdFx0YWxsIGxpbmVzIG9uIHRoZSBoaXN0b3J5IGxpc3QuIgojfiBtc2dzdHIgIlx0XHRlaW5nZWdlYmVuZW4gWmVpbGVuIGltIEtvbW1hbmRvc3BlaWNoZXIgYWJnZWxlZ3QuIgoKIyBwdXNoZAojfiBtc2dpZCAiQWRkcyBhIGRpcmVjdG9yeSB0byB0aGUgdG9wIG9mIHRoZSBkaXJlY3Rvcnkgc3RhY2ssIG9yIHJvdGF0ZXMiCiN+IG1zZ3N0ciAiIgojfiAiTGVndCBlaW4gVmVyemVpY2huaXNuYW1lbiBhdWYgZGVuIFZlcnplaWNobmlzc3RhcGVsIG9kZXIgcm90aWVydCBkaWVzZW4gIgojfiAic28sIgoKIyBHaWJ0J3MgZGVubiBhdWNoIGFuZGVyZSBhbHMgImFrdHVlbGxlIiBBcmJlaXRzdmVyemVpY2huaXNzZT8KIyAiQXJiZWl0IiBpbXBsaXppZXJ0IC5tLkUuICJha3R1ZWxsIgojIGNrCiN+IG1zZ2lkICJ0aGUgc3RhY2ssIG1ha2luZyB0aGUgbmV3IHRvcCBvZiB0aGUgc3RhY2sgdGhlIGN1cnJlbnQgd29ya2luZyIKI34gbXNnc3RyICJkYd8gZGFzIEFyYmVpdHN2ZXJ6ZWljaG5pcyBhdWYgZGVyIFNwaXR6ZSBkZXMgU3RhcGVscyBsaWVndC4gT2huZSIKCiN+IG1zZ2lkICJkaXJlY3RvcnkuICBXaXRoIG5vIGFyZ3VtZW50cywgZXhjaGFuZ2VzIHRoZSB0b3AgdHdvIGRpcmVjdG9yaWVzLiIKI34gbXNnc3RyICIiCiN+ICJBcmd1bWVudGUgd2VyZGVuIGRpZSBvYmVyc3RlbiB6d2VpIFZlcnplaWNobmlzc2UgYXVmIGRlbSBTdGFwZWwgIgojfiAidmVydGF1c2NodC4iCgojfiBtc2dpZCAiK05cdFJvdGF0ZXMgdGhlIHN0YWNrIHNvIHRoYXQgdGhlIE50aCBkaXJlY3RvcnkgKGNvdW50aW5nIgojfiBtc2dzdHIgIiIKI34gIitOXHRSb3RpZXJ0IGRlbiBTdGFwZWwgc28sIGRh3yBkYXMgTid0ZSBWZXJ6ZWljaG5pcyAoYW5nZXplaWd0IHZvbiBgZGlycycsIgoKI34gbXNnaWQgIlx0ZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biBieSBgZGlycycpIGlzIGF0IHRoZSB0b3AuIgojfiBtc2dzdHIgImdleuRobHQgdm9uIGxpbmtzKSBzaWNoIGFuIGRlciBTcGl0emUgZGVzIFN0YXBlbHMgYmVmaW5kZXQuIgoKI34gbXNnaWQgIi1OXHRSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZyIKI34gbXNnc3RyICIiCiN+ICItTlx0Um90aWVydCBkZW4gU3RhcGVsIHNvLCBkYd8gZGFzIE4ndGUgVmVyemVpY2huaXMgKGFuZ2V6ZWlndCB2b24gYGRpcnMnLCIKCiN+IG1zZ2lkICJcdGZyb20gdGhlIHJpZ2h0KSBpcyBhdCB0aGUgdG9wLiIKI34gbXNnc3RyICJnZXrkaGx0IHZvbiByZWNodHMpIHNpY2ggYW4gZGVyIFNwaXR6ZSBkZXMgU3RhcGVscyBiZWZpbmRldC4iCgojfiBtc2dpZCAiLW5cdHN1cHByZXNzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIGFkZGluZyBkaXJlY3RvcmllcyIKI34gbXNnc3RyICItblx0dW50ZXJkcvxja3QgZGFzIFdlY2hzZWxuIGluIGRhcyBWZXJ6ZWljaG5pcyBiZWltIEhpbnp1ZvxnZW4genVtIgoKI34gbXNnaWQgIlx0dG8gdGhlIHN0YWNrLCBzbyBvbmx5IHRoZSBzdGFjayBpcyBtYW5pcHVsYXRlZC4iCiN+IG1zZ3N0ciAiXHRTdGFwZWwsIHNvIGRh3yBudXIgZGVyIFN0YXBlbCB2ZXLkbmRlcnQgd2lyZC4iCgojfiBtc2dpZCAiZGlyXHRhZGRzIERJUiB0byB0aGUgZGlyZWN0b3J5IHN0YWNrIGF0IHRoZSB0b3AsIG1ha2luZyBpdCB0aGUiCiN+IG1zZ3N0ciAiRElSXHRMZWd0IERJUiBhdWYgZGllIFNwaXR6ZSBkZXMgVmVyemVpY2huaXNzdGFwZWxzIHVuZCB3ZWNoc2VsdCIKCiN+IG1zZ2lkICJZb3UgY2FuIHNlZSB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggdGhlIGBkaXJzJyBjb21tYW5kLiIKI34gbXNnc3RyICIiCiN+ICJEZXIgVmVyemVpY2huaXNzdGFwZWwga2FubiBtaXQgZGVtIEtvbW1hbmRvIGBkaXJzJyBhbmdlemVpZ3Qgd2VyZGVuLiIKCiMgcHVzaGQKI34gbXNnaWQgIlJlbW92ZXMgZW50cmllcyBmcm9tIHRoZSBkaXJlY3Rvcnkgc3RhY2suICBXaXRoIG5vIGFyZ3VtZW50cywiCiN+IG1zZ3N0ciAiIgojfiAiRW50ZmVybnQgRWludHLkZ2Ugdm9tIFZlcnplaWNobmlzc3RhcGVsLiBPaG5lIEFyZ3VtZW50ZSB3aXJkIGRpZSBTcGl0emUgIgojfiAiZGVzIgoKI34gbXNnaWQgInJlbW92ZXMgdGhlIHRvcCBkaXJlY3RvcnkgZnJvbSB0aGUgc3RhY2ssIGFuZCBjZCdzIHRvIHRoZSBuZXciCiN+IG1zZ3N0ciAiU3RhcGVscyBlbnRmZXJudCB1bmQgaW4gZGFzIFZlcnplaWNobmlzIGdld2VjaHNlbHQsIGRhcyBkYW5uIGFuIGRlciIKCiN+IG1zZ2lkICIrTlx0cmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3QiCiN+IG1zZ3N0ciAiIgojfiAiK05cdEVudGZlcm50IGRlbiBOJ3RlbiBFaW50cmFnIHZvbSBTdGFwZWwsICBnZXrkaGx0IHZvbiBOdWxsIHZvbiBkZXIgIgojfiAiTGlzdGUsIgoKI34gbXNnaWQgIlx0c2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoIHplcm8uICBGb3IgZXhhbXBsZTogYHBvcGQgKzAnIgojfiBtc2dzdHIgIlx0ZGllIGBkaXJzJyBhbnplaWd0LiBCZWlzcGllbHN3ZWlzZSBlbnRmZXJuZW4gYHBvcGQgKzAnIGRhcyIKCiN+IG1zZ2lkICJcdHJlbW92ZXMgdGhlIGZpcnN0IGRpcmVjdG9yeSwgYHBvcGQgKzEnIHRoZSBzZWNvbmQuIgojfiBtc2dzdHIgIlx0ZXJzdGUgVmVyemVpY2huaXMgdW5kIGBwb3BkICsxJyBkYXMgendlaXRlLiIKCiN+IG1zZ2lkICItTlx0cmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IgojfiBtc2dzdHIgIiIKI34gIi1OXHRFbnRmZXJudCBkZW4gTid0ZW4gRWludHJhZyB2b20gU3RhcGVsLCBiZWdpbmVuZCByZWNodHMgYmVpIE51bGwgaW4gZGVyIgoKI34gbXNnaWQgIlx0c2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoIHplcm8uICBGb3IgZXhhbXBsZTogYHBvcGQgLTAnIgojfiBtc2dzdHIgIlx0TGlzdGUsIGRpZSBgZGlycycgYW5nZWlndC4gQmVpc3BpZWxzd2Vpc2UgZW50ZmVybmVuIGBwb3BkIC0wJyIKCiN+IG1zZ2lkICJcdHJlbW92ZXMgdGhlIGxhc3QgZGlyZWN0b3J5LCBgcG9wZCAtMScgdGhlIG5leHQgdG8gbGFzdC4iCiN+IG1zZ3N0ciAiXHRkYXMgbGV0enRlIFZlcnplaWNobmlzIHVuZCBgcG9wZCAtMScgZGFzIHZvcmxldHp0ZS4iCgojfiBtc2dpZCAiIgojfiAiLW5cdHN1cHByZXNzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIHJlbW92aW5nIGRpcmVjdG9yaWVzIgojfiBtc2dzdHIgIiIKI34gIi1uXHRWZXJoaW5kZXJ0IGRhcyBXZWNoc2VsbiBkZXMgQXJiZWl0c3ZlcnplaWNobmlzc2VzIHdlbm4gVmVyemVpY2huaXNzZSIKCiN+IG1zZ2lkICJcdGZyb20gdGhlIHN0YWNrLCBzbyBvbmx5IHRoZSBzdGFjayBpcyBtYW5pcHVsYXRlZC4iCiN+IG1zZ3N0ciAiXHR2b20gU3RhcGVsIGVudGZlcm50IHdlcmRlbiwgc28gZGHfIG51ciBkZXIgU3RhcGVsIHZlcuRuZGVydCB3aXJkLiIKCiMgZGlycwojfiBtc2dpZCAiRGlzcGxheSB0aGUgbGlzdCBvZiBjdXJyZW50bHkgcmVtZW1iZXJlZCBkaXJlY3Rvcmllcy4gIERpcmVjdG9yaWVzIgojfiBtc2dzdHIgIiIKI34gIlplaWd0IGRpZSBMaXN0ZSBkZXIgZ2VnZW535HJ0aWcgZ2VzcGVpY2hlcnRlbiBWZXJ6ZWljaG5pc3NlIGFuLiAgIgojfiAiR2VzcGVpY2hlcnQiCgojfiBtc2dpZCAiZmluZCB0aGVpciB3YXkgb250byB0aGUgbGlzdCB3aXRoIHRoZSBgcHVzaGQnIGNvbW1hbmQ7IHlvdSBjYW4gZ2V0IgojfiBtc2dzdHIgIiIKI34gIndlcmRlbiBkaWUgVmVyemVpY2huaXNzZSBkdXJjaCBkYXMgYHBvcGQnIEtvbW1hbmRvIHVuZCBr9m5uZW4gZHVyY2ggZGFzICIKI34gImBwdXNoZCciCgojfiBtc2dpZCAiYmFjayB1cCB0aHJvdWdoIHRoZSBsaXN0IHdpdGggdGhlIGBwb3BkJyBjb21tYW5kLiIKI34gbXNnc3RyICJLb21tYW5kbyB3aWVkZXIgdm9tIFN0YXBlbCBlbnRmZXJudCB3ZXJkZW4uIgoKI34gbXNnaWQgIiIKI34gIlRoZSAtbCBmbGFnIHNwZWNpZmllcyB0aGF0IGBkaXJzJyBzaG91bGQgbm90IHByaW50IHNob3J0aGFuZCB2ZXJzaW9ucyIKI34gbXNnc3RyICIiCiN+ICJXZW5uIGRpZSAtbCBPcHRpb24gYW5nZWdlYmVuIGlzdCwgZGFubiB3ZXJkZW4ga2VpbmUgS3VyenZlcnNpb25lbiBkZXIgIgojfiAiVmVyemVpY2gtIgoKI34gbXNnaWQgIiIKI34gIm9mIGRpcmVjdG9yaWVzIHdoaWNoIGFyZSByZWxhdGl2ZSB0byB5b3VyIGhvbWUgZGlyZWN0b3J5LiAgVGhpcyBtZWFucyIKI34gbXNnc3RyICIiCiN+ICJuaXNzZSBhbmdlemVpZ3QsIGRpZSByZWxhdGl2IHp1bSBIZWltYXR2ZXJ6ZWljaG5pcyBzaW5kLiAgRXMgd2lyZCBhbHNvIGFuIgoKI34gbXNnaWQgInRoYXQgYH4vYmluJyBtaWdodCBiZSBkaXNwbGF5ZWQgYXMgYC9ob21lcy9iZm94L2JpbicuICBUaGUgLXYgZmxhZyIKI34gbXNnc3RyICIiCiN+ICJTdGVsbGUgdm9uIGB+L2JpbicgZGVyIGFic29sdXRlIFBmYWQgYC9ob21lL2Zvby9iaW4nIGFuZ2V6ZWlndC4gIE1pdCBkZXIgLSIKI34gInYiCgojfiBtc2dpZCAiY2F1c2VzIGBkaXJzJyB0byBwcmludCB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggb25lIGVudHJ5IHBlciBsaW5lLCIKI34gbXNnc3RyICIiCiN+ICJPcHRpb24gd2lyZCB2b24gYGRpcnMnIGVpbiBFaW50cmFnIHBybyBaZWlsZSBhdXNnZWdlYmVuLiAgRGllIFBvc2l0aW9uIGltIgoKI34gbXNnaWQgIiIKI34gInByZXBlbmRpbmcgdGhlIGRpcmVjdG9yeSBuYW1lIHdpdGggaXRzIHBvc2l0aW9uIGluIHRoZSBzdGFjay4gIFRoZSAtcCIKI34gbXNnc3RyICIiCiN+ICJTdGFwZWwgd2lyZCB2b3Jhbmdlc3RlbGx0LiAgRGllIC1wIE9wdGlvbiB3aXJrdCDkaG5saWNoLCBlcyB3aXJkICIKI34gImFsbGVyZGluZ3MiCgojfiBtc2dpZCAiZmxhZyBkb2VzIHRoZSBzYW1lIHRoaW5nLCBidXQgdGhlIHN0YWNrIHBvc2l0aW9uIGlzIG5vdCBwcmVwZW5kZWQuIgojfiBtc2dzdHIgIiIKI34gIm5pY2h0IGRpZSBQb3NpdGlvbiBpbSBTdGFwZWwgYW5nZXplaWd0LiAgV2VubiAtYyBhbmdlZ2ViZW4gaXN0LCBkYW1tICIKI34gIndlcmRlbiIKCiN+IG1zZ2lkICIiCiN+ICJUaGUgLWMgZmxhZyBjbGVhcnMgdGhlIGRpcmVjdG9yeSBzdGFjayBieSBkZWxldGluZyBhbGwgb2YgdGhlIGVsZW1lbnRzLiIKI34gbXNnc3RyICJhbGxlIEVpbnRy5GdlIHZvbSBWZXJ6ZWljaG5pc3N0YXBlbCBnZWz2c2NodC4iCgojfiBtc2dpZCAiIgojfiAiK05cdGRpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biBieSIKI34gbXNnc3RyICIiCiN+ICIrTlx0WmVpZ3QgZGVuIE4ndGVuIEVpbnRyYWcsIGdleuRobHQgdm9uIGxpbmtzIGJlZ2dpbm5lbmQgYmVpIE51bGwsIGF1cyIKCiN+IG1zZ2lkICJcdGRpcnMgd2hlbiBpbnZva2VkIHdpdGhvdXQgb3B0aW9ucywgc3RhcnRpbmcgd2l0aCB6ZXJvLiIKI34gbXNnc3RyICJcdGRlciBMaXN0ZSwgZGllIHZvbiBgZGlycycgb2huZSBPcHRpb25lbiBhbmdlemVpZ3Qgd2lyZC4iCgojfiBtc2dpZCAiIgojfiAiLU5cdGRpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gYnkiCiN+IG1zZ3N0ciAiIgojfiAiLU5cdFplaWd0IGRlbiBOJ3RlbiBFaW50cmFnLCBnZXrkaGx0IHZvbiByZWNodHMgYmVnZ2lubmVuZCBiZWkgTnVsbCwgYXVzIgoKIyBzaG9wdF9idWlsdGluCiN+IG1zZ2lkICJUb2dnbGUgdGhlIHZhbHVlcyBvZiB2YXJpYWJsZXMgY29udHJvbGxpbmcgb3B0aW9uYWwgYmVoYXZpb3IuIgojfiBtc2dzdHIgIiIKI34gIsRuZGVydCBkaWUgV2VydGUgdm9uIFZhcmlhYmxlbiBkaWUgenVz5HR6bGljaGUgRWlnZW5zY2hhZnRlbiBkZXIgU2hlbGwgIgojfiAic3RldWVybi4iCgojfiBtc2dpZCAiVGhlIC1zIGZsYWcgbWVhbnMgdG8gZW5hYmxlIChzZXQpIGVhY2ggT1BUTkFNRTsgdGhlIC11IGZsYWciCiN+IG1zZ3N0ciAiIgojfiAiTWl0IGRlciAtcyBPcHRpb24gd2lyZCBqZWRlciBPUFRJT05TTUFNRSBnZXNldHp0LiAgRGllIC11IE9wdGlvbiBzZXR6dCAiCiN+ICJqZWRlbiIKCiN+IG1zZ2lkICJ1bnNldHMgZWFjaCBPUFROQU1FLiAgVGhlIC1xIGZsYWcgc3VwcHJlc3NlcyBvdXRwdXQ7IHRoZSBleGl0IgojfiBtc2dzdHIgIiIKI34gIk9QVElPTlNOQU1FTiB6dXL8Y2suICBEaWUgLXEgT3B0aW9uIHVudGVyZHL8Y2t0IEF1c2dhYmVuLiAgRGVyICIKI34gIlL8Y2tnYWJld2VydCIKCiN+IG1zZ2lkICJzdGF0dXMgaW5kaWNhdGVzIHdoZXRoZXIgZWFjaCBPUFROQU1FIGlzIHNldCBvciB1bnNldC4gIFRoZSAtbyIKI34gbXNnc3RyICIiCiN+ICJkZXMgS29tbWFuZG9zIGdpYnQgYW4gb2IgZGVyIE9QVElPTlNOQU1FIGVpbi0gb2RlciBhdXNnZXNjaGFsdGVuIHd1cmRlLiAgIgojfiAiRGllIgoKI34gbXNnaWQgIm9wdGlvbiByZXN0cmljdHMgdGhlIE9QVE5BTUVzIHRvIHRob3NlIGRlZmluZWQgZm9yIHVzZSB3aXRoIgojfiBtc2dzdHIgIiIKI34gIk9wdGlvbiBiZXNjaHLkbmt0IGRpZSBPUFRJT05TTkFNRU4gYXVmIGplbmUgZGllIG1pdCBgc2V0IC1vJyBiZW51dHp0ICIKI34gIndlcmRlbiIKCiN+IG1zZ2lkICJgc2V0IC1vJy4gIFdpdGggbm8gb3B0aW9ucywgb3Igd2l0aCB0aGUgLXAgb3B0aW9uLCBhIGxpc3Qgb2YgYWxsIgojfiBtc2dzdHIgIiIKI34gImv2bm5lbi4gIE9obmUgb2RlciBtaXQgZGVyIC1wIE9wdGlvbiB3aXJkIGVpbmUgTGlzdGUgYWxsZXIgYHNldHRhYmxlJyAiCiN+ICJPcHRpb25lbiIKCiN+IG1zZ2lkICJzZXR0YWJsZSBvcHRpb25zIGlzIGRpc3BsYXllZCwgd2l0aCBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgb3IiCiN+IG1zZ3N0ciAiIgojfiAibWl0IGVpbmVyIE1hcmtpZXJ1bmcgb2IgZGllIGFuZ2VnZWJlbmUgT3B0aW9uIGdlc2V0enQgb2RlciBuaWNodCBnZXNldHp0IgoKI34gbXNnaWQgIm5vdCBlYWNoIGlzIHNldC4iCiN+IG1zZ3N0ciAiaXN0IGFuZ2V6ZWlndC4iCg==