IyBJcmlzaCB0cmFuc2xhdGlvbnMgZm9yIGdwcm9mLgojIENvcHlyaWdodCAoQykgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ3Byb2YgcGFja2FnZS4KIyBLZXZpbiBQYXRyaWNrIFNjYW5uZWxsIDxzY2FubmVsbEBTTFUuRURVPiwgMjAwNSwgMjAwNy4KbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGdwcm9mIDIuMTcuOTBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA3LTA1LTE1IDE2OjQ5KzA5MzBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDctMDgtMDUgMTg6MzItMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLZXZpbiBTY2FubmVsbCA8a3NjYW5uZUBnbWFpbC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBJcmlzaCA8Z2FlaWxnZS1nbnVsaW51eEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IGFscGhhLmM6MTAyIG1pcHMuYzo1NAptc2dpZCAiPGluZGlyZWN0IGNoaWxkPiIKbXNnc3RyICI8bWFjIGluZO1yZWFjaD4iCgojOiBhbHBoYS5jOjEwNyBtaXBzLmM6NTkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdICVzOiAweCVseCB0byAweCVseFxuIgptc2dzdHIgIltmaW5kX2NhbGxdICVzOiAweCVseCBnbyAweCVseFxuIgoKIzogYWxwaGEuYzoxMjkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqc3IlcyA8aW5kaXJlY3RfY2hpbGQ+XG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGpzciVzIDxtYWNfaW5k7XJlYWNoPlxuIgoKIzogYWxwaGEuYzoxMzkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBic3IiCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjEyOCBjYWxsX2dyYXBoLmM6ODkgaGlzdC5jOjEwNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlXG4iCm1zZ3N0ciAiJXM6ICVzOiBjb21oYWRjaHLtb2NoIGdhbiBjaG9pbm5lXG4iCgojOiBiYXNpY19ibG9ja3MuYzoxOTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB3YXJuaW5nOiBpZ25vcmluZyBiYXNpYy1ibG9jayBleGVjIGNvdW50cyAodXNlIC1sIG9yIC0tbGluZSlcbiIKbXNnc3RyICIlczogcmFiaGFkaDogZOlhbmZhciBuZWFtaHNodWltIGFyIGztb24gbmEgcml07SBkZSBiaHVuYmhsb2ljICj6c+FpZCAtbCBu8yAtLWxpbmUpXG4iCgojLiBGSVhNRTogVGhpcyBvbmx5IHdvcmtzIGlmIGJmZF92bWEgaXMgdW5zaWduZWQgbG9uZy4KIzogYmFzaWNfYmxvY2tzLmM6Mjg5IGJhc2ljX2Jsb2Nrcy5jOjI5OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6JWQ6ICglczoweCVseCkgJWx1IGV4ZWN1dGlvbnNcbiIKbXNnc3RyICIlczolZDogKCVzOjB4JWx4KSAlbHUgcml0aFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6MjkwIGJhc2ljX2Jsb2Nrcy5jOjMwMAptc2dpZCAiPHVua25vd24+Igptc2dzdHIgIjxhbmFpdGhuaWQ+IgoKIzogYmFzaWNfYmxvY2tzLmM6NTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiVG9wICVkIExpbmVzOlxuIgoiXG4iCiIgICAgIExpbmUgICAgICBDb3VudFxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIiVkIFBy7W9taGztbmU6XG4iCiJcbiIKIiAgICAgTO1uZSAgICAgIEztb25cbiIKIlxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTY3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIkV4ZWN1dGlvbiBTdW1tYXJ5OlxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJBY2hvaW1yZSBSaXRlOlxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjgKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBFeGVjdXRhYmxlIGxpbmVzIGluIHRoaXMgZmlsZVxuIgptc2dzdHIgIiU5bGQgICBM7W50ZSBpbnJpdGUgc2EgY2hvbWhhZCBzZW9cbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3MAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIExpbmVzIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTlsZCAgIEztbnRlIGFybmEgcml0aFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTcxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlOS4yZiAgIFBlcmNlbnQgb2YgdGhlIGZpbGUgZXhlY3V0ZWRcbiIKbXNnc3RyICIlOS4yZiAgIEPpYXRhZOFuIGRlbiBjaG9taGFkIGEgcml0aGVhZGhcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIlOWx1ICAgVG90YWwgbnVtYmVyIG9mIGxpbmUgZXhlY3V0aW9uc1xuIgptc2dzdHIgIiIKIlxuIgoiJTlsdSAgIEztb24gaW9tbOFuIG5hIHJpdO0gZGUgbO1udGVcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NwojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBBdmVyYWdlIGV4ZWN1dGlvbnMgcGVyIGxpbmVcbiIKbXNnc3RyICIlOS4yZiAgIE1l4W5s7W9uIG5hIHJpdO0gZGUgZ2FjaCBs7W5lXG4iCgojOiBjYWxsX2dyYXBoLmM6NjgKIywgYy1mb3JtYXQKbXNnaWQgIltjZ190YWxseV0gYXJjIGZyb20gJXMgdG8gJXMgdHJhdmVyc2VkICVsdSB0aW1lc1xuIgptc2dzdHIgIltjZ190YWxseV0gdHJhc25h7W9kaCBhbiB0LWFyYyDzICVzIGdvICVzICVsdSB1YWlyZVxuIgoKIzogY2dfcHJpbnQuYzo3MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiXHRcdCAgICAgQ2FsbCBncmFwaCAoZXhwbGFuYXRpb24gZm9sbG93cylcbiIKIlxuIgptc2dzdHIgIiIKIlx0XHQgICAgIEdsYW9naHJhZiAobe1uafogaW5hIGRoaWFpZGgpXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6NzUKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlx0XHRcdENhbGwgZ3JhcGhcbiIKIlxuIgptc2dzdHIgIiIKIlx0XHRcdEdsYW9naHJhZlxuIgoiXG4iCgojOiBjZ19wcmludC5jOjc4IGhpc3QuYzo0NjYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiZ3JhbnVsYXJpdHk6IGVhY2ggc2FtcGxlIGhpdCBjb3ZlcnMgJWxkIGJ5dGUocykiCm1zZ3N0ciAiIgoiXG4iCiJncuFpbm5lYWNodDogdOEgJWxkIGJlYXJ0IGkgbmdhY2ggc2FtcGxhIgoKIzogY2dfcHJpbnQuYzo4MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiIGZvciAlLjJmJSUgb2YgJS4yZiBzZWNvbmRzXG4iCiJcbiIKbXNnc3RyICIiCiIgZG8gJS4yZiUlIGFzICUuMmYgc29pY2luZFxuIgoiXG4iCgojOiBjZ19wcmludC5jOjg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgbm8gdGltZSBwcm9wYWdhdGVkXG4iCiJcbiIKbXNnc3RyICIiCiIgbu1vciBmb3JsZWF0aGFkaCBhb24gYW1cbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo5NSBjZ19wcmludC5jOjk4IGNnX3ByaW50LmM6MTAwCm1zZ2lkICJjYWxsZWQiCm1zZ3N0ciAiZ2xhb2l0ZSIKCiM6IGNnX3ByaW50LmM6OTUgY2dfcHJpbnQuYzoxMDAKbXNnaWQgInRvdGFsIgptc2dzdHIgImlvbWzhbiIKCiM6IGNnX3ByaW50LmM6OTUKbXNnaWQgInBhcmVudHMiCm1zZ3N0ciAibeFpdGhyZWFjaGEiCgojOiBjZ19wcmludC5jOjk3IGNnX3ByaW50LmM6OTgKbXNnaWQgImluZGV4Igptc2dzdHIgImlubulhY3MiCgojOiBjZ19wcmludC5jOjk3CiMsIGMtZm9ybWF0Cm1zZ2lkICIldGltZSIKbXNnc3RyICIldGltZSAoYW0pIgoKIzogY2dfcHJpbnQuYzo5NyBjZ19wcmludC5jOjk4Cm1zZ2lkICJzZWxmIgptc2dzdHIgImbpaW4iCgojOiBjZ19wcmludC5jOjk3Cm1zZ2lkICJkZXNjZW5kYW50cyIKbXNnc3RyICJzbGVhY2h0YSIKCiM6IGNnX3ByaW50LmM6OTggaGlzdC5jOjQ5Mgptc2dpZCAibmFtZSIKbXNnc3RyICJhaW5tIgoKIzogY2dfcHJpbnQuYzoxMDAKbXNnaWQgImNoaWxkcmVuIgptc2dzdHIgIm1pYyIKCiM6IGNnX3ByaW50LmM6MTA1CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbmRleCAlJSB0aW1lICAgIHNlbGYgIGNoaWxkcmVuICAgIGNhbGxlZCAgICAgbmFtZVxuIgptc2dzdHIgImlubulhY3MgJSUgYW0gICAgZulpbiAgbWljICAgICAgICAgZ2xhb2l0ZSAgICBhaW5tXG4iCgojOiBjZ19wcmludC5jOjEyOAojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZCBhcyBhIHdob2xlPiBbJWRdXG4iCm1zZ3N0ciAiIDxjaW9nYWwgJWQgaW5hIGlvbWzhaW5lPiBbJWRdXG4iCgojOiBjZ19wcmludC5jOjM1NAojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICUxMS4xMXMgJTcuN3MgJTcuN3MgICAgIDxzcG9udOFpbmVhY2g+XG4iCgojOiBjZ19wcmludC5jOjM1NQojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTcuN3MgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFuZW91cz5cbiIKbXNnc3RyICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb2504WluZWFjaD5cbiIKCiM6IGNnX3ByaW50LmM6NTg5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJJbmRleCBieSBmdW5jdGlvbiBuYW1lXG4iCiJcbiIKbXNnc3RyICIiCiJJbm7pYWNzYWlnaCBkZSBy6WlyIGFpbm0gbmEgZmVpZGhtZVxuIgoiXG4iCgojOiBjZ19wcmludC5jOjY0NiBjZ19wcmludC5jOjY1NQojLCBjLWZvcm1hdAptc2dpZCAiPGN5Y2xlICVkPiIKbXNnc3RyICI8Y2lvZ2FsICVkPiIKCiM6IGNvcmVmaWxlLmM6NTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmFibGUgdG8gcGFyc2UgbWFwcGluZyBmaWxlICVzLlxuIgptc2dzdHIgIiVzOiBu7SBm6WlkaXIgY29taGFkIG1hcOFsYSAlcyBhIHBoYXJz4WlsLlxuIgoKIzogY29yZWZpbGUuYzo3MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLlxuIgptc2dzdHIgIiVzOiBu7W9yYmggZmjpaWRpciAlcyBhIG9zY2FpbHQuXG4iCgojOiBjb3JlZmlsZS5jOjE2NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBub3QgaW4gZXhlY3V0YWJsZSBmb3JtYXRcbiIKbXNnc3RyICIlczogJXM6IG7tbCBz6SBpIGJoZm9ybeFpZCBpbnJpdGVcbiIKCiM6IGNvcmVmaWxlLmM6MTc3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2FuJ3QgZmluZCAudGV4dCBzZWN0aW9uIGluICVzXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciByb2lubiAudGV4dCBhIGFpbXNp+iBpICVzXG4iCgojOiBjb3JlZmlsZS5jOjI1MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJhbiBvdXQgcm9vbSBmb3IgJWx1IGJ5dGVzIG9mIHRleHQgc3BhY2VcbiIKbXNnc3RyICIlczogbu1sIGdvIGxlb3Igc3DhcyBsZSBoYWdoYWlkaCAlbHUgYmVhcnQgZGUgdGjpYWNzXG4iCgojOiBjb3JlZmlsZS5jOjI2NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGRvIC1jXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciAtYyBhIGRo6WFuYW1oXG4iCgojOiBjb3JlZmlsZS5jOjMwNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IC1jIG5vdCBzdXBwb3J0ZWQgb24gYXJjaGl0ZWN0dXJlICVzXG4iCm1zZ3N0ciAiJXM6IC1jIGdhbiB0YWNh7W9jaHQgYXIgYWlsdGlyZWFjaHQgJXNcbiIKCiM6IGNvcmVmaWxlLmM6NDcwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyBubyBzeW1ib2xzXG4iCm1zZ3N0ciAiJXM6IG7tbCBzaW9tYmFpbO0gYXIgYml0aCBhZyBhbiBnY29taGFkIGAlcydcbiIKCiM6IGNvcmVmaWxlLmM6NzcyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29tZWJvZHkgbWlzY291bnRlZDogbHRhYi5sZW49JWQgaW5zdGVhZCBvZiAlbGRcbiIKbXNnc3RyICIlczog4WlyZWFtaCBt7WNoZWFydDogbHRhYi5sZW49JWQgaW4gaW9uYWQgJWxkXG4iCgojOiBnbW9uX2lvLmM6ODMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBhZGRyZXNzIHNpemUgaGFzIHVuZXhwZWN0ZWQgdmFsdWUgb2YgJXVcbiIKbXNnc3RyICIlczogbu0gcmFiaHRoYXMgYWcgc/ppbCBsZSBt6WlkIHNlb2x0YSBkZSAldVxuIgoKIzogZ21vbl9pby5jOjMyMCBnbW9uX2lvLmM6NDE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSB0b28gc2hvcnQgdG8gYmUgYSBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogdOEgYW4gY29taGFkIHLzZ2hlYXJyIGEgYmhlaXRoIGluYSBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzozMzAgZ21vbl9pby5jOjQ1OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgYmFkIG1hZ2ljIGNvb2tpZVxuIgptc2dzdHIgIiVzOiBmaWFu4W4gZHJh7W9jaHRhIGdvIGhvbGMgYWcgYW4gZ2NvbWhhZCBgJXMnXG4iCgojOiBnbW9uX2lvLmM6MzQxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uICVkXG4iCm1zZ3N0ciAiJXM6IHThIGxlYWdhbiBnYW4gdGFjYe1vY2h0IGFnIGFuIGdjb21oYWQgYCVzJzogJWRcbiIKCiM6IGdtb25faW8uYzozNzEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogZm91bmQgYmFkIHRhZyAlZCAoZmlsZSBjb3JydXB0ZWQ/KVxuIgptc2dzdHIgIiVzOiAlczogYWltc+1vZGggZHJvY2gtY2hsaWIgJWQgKGNvbWhhZCB0cnVhaWxsaXRoZT8pXG4iCgojOiBnbW9uX2lvLmM6NDM4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcHJvZmlsaW5nIHJhdGUgaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IG7tbCBhbiBy4XRhIHBy82lm7WxpdGhlIGNvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzo0ODkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogbmVhbWgtY2hvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzo1MTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICclcycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluIGdtb24ub3V0IGZvcm1hdFxuIgptc2dzdHIgIiVzOiBpcyBjb3P6aWwgbmFjaCBiaGZ1aWwgY29taGFkICclcycgaSBiaGZvcm3haWQgZ21vbi5vdXRcbiIKCiM6IGdtb25faW8uYzo1MjkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkLyVkIGJpbnNcbiIKbXNnc3RyICIlczogY29taGFkY2hy7W9jaCBnYW4gY2hvaW5uZSBpIG5kaWFpZGggJWQvJWQgZ2FiaGThbiDhIGzpYW1oXG4iCgojOiBnbW9uX2lvLmM6NTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0aW1lIGlzIGluIHRpY2tzLCBub3Qgc2Vjb25kc1xuIgptc2dzdHIgImlzIGkgZHRpY2Vhbm5hIGFuIHQtYW0sIG7tIGkgc29pY2luZO1cbiIKCiM6IGdtb25faW8uYzo1NjkgZ21vbl9pby5jOjc0NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRvbid0IGtub3cgaG93IHRvIGRlYWwgd2l0aCBmaWxlIGZvcm1hdCAlZFxuIgptc2dzdHIgIiVzOiBu7WwgYSBmaGlvcyBhZ2FtIGNvbmFzIGZvcm3haWQgJWQgYSBs4WltaHNl4WlsXG4iCgojOiBnbW9uX2lvLmM6NTc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJGaWxlIGAlcycgKHZlcnNpb24gJWQpIGNvbnRhaW5zOlxuIgptc2dzdHIgIklzIGkgZ2NvbWhhZCBgJXMnIChsZWFnYW4gJWQpIG5hIG3tcmVhbm5hIHNlbzpcbiIKCiM6IGdtb25faW8uYzo1NzkKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgaGlzdG9ncmFtIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBoaXN0ZWFncmFpbVxuIgoKIzogZ21vbl9pby5jOjU4MAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBoaXN0b2dyYW0gcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBoaXN0ZWFncmFpbVxuIgoKIzogZ21vbl9pby5jOjU4MgojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBnbGFvZ2hyYWlmXG4iCgojOiBnbW9uX2lvLmM6NTgzCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBnbGFvZ2hyYWlmXG4iCgojOiBnbW9uX2lvLmM6NTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGJhc2ljLWJsb2NrIGNvdW50IHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBs7W4gbmEgbWJ1bmJobG9jXG4iCgojOiBnbW9uX2lvLmM6NTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGJhc2ljLWJsb2NrIGNvdW50IHJlY29yZHNcbiIKbXNnc3RyICJcdCVkIHRhaWZlYWQgbO1uIG5hIG1idW5iaGxvY1xuIgoKIzogZ3Byb2YuYzoxNTgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlVzYWdlOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxUVpdW25hbWVdXSBbLUkgZGlyc11cbiIKIlx0Wy1kW251bV1dIFstayBmcm9tL3RvXSBbLW0gbWluLWNvdW50XSBbLXQgdGFibGUtbGVuZ3RoXVxuIgoiXHRbLS1bbm8tXWFubm90YXRlZC1zb3VyY2VbPW5hbWVdXSBbLS1bbm8tXWV4ZWMtY291bnRzWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV1mbGF0LXByb2ZpbGVbPW5hbWVdXSBbLS1bbm8tXWdyYXBoWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV10aW1lPW5hbWVdIFstLWFsbC1saW5lc10gWy0tYnJpZWZdIFstLWRlYnVnWz1sZXZlbF1dXG4iCiJcdFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1kaXJzXSBbLS1kaXNwbGF5LXVudXNlZC1mdW5jdGlvbnNdXG4iCiJcdFstLWZpbGUtZm9ybWF0PW5hbWVdIFstLWZpbGUtaW5mb10gWy0taGVscF0gWy0tbGluZV0gWy0tbWluLWNvdW50PW5dXG4iCiJcdFstLW5vLXN0YXRpY10gWy0tcHJpbnQtcGF0aF0gWy0tc2VwYXJhdGUtZmlsZXNdXG4iCiJcdFstLXN0YXRpYy1jYWxsLWdyYXBoXSBbLS1zdW1dIFstLXRhYmxlLWxlbmd0aD1sZW5dIFstLXRyYWRpdGlvbmFsXVxuIgoiXHRbLS12ZXJzaW9uXSBbLS13aWR0aD1uXSBbLS1pZ25vcmUtbm9uLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZGVtYW5nbGVbPVNUWUxFXV0gWy0tbm8tZGVtYW5nbGVdIFtARklMRV1cbiIKIlx0W2ltYWdlLWZpbGVdIFtwcm9maWxlLWZpbGUuLi5dXG4iCm1zZ3N0ciAiIgoi2nPhaWQ6ICVzIFstW2FiY0RoaWxMc1R2d3h5el1dIFstW0FDZUVmRkpuTk9wUHFRWl1bYWlubV1dIFstSSBjb21oYWRsYW5uYV1cbiIKIlx0Wy1kW3VpbWhpcl1dIFstayDzL2dvXSBbLW0g7W9zbWjpaWRdIFstdCBmYWR04WJsYV1cbiIKIlx0Wy0tW25vLV1hbm5vdGF0ZWQtc291cmNlWz1haW5tXV0gWy0tW25vLV1leGVjLWNvdW50c1s9YWlubV1dXG4iCiJcdFstLVtuby1dZmxhdC1wcm9maWxlWz1haW5tXV0gWy0tW25vLV1ncmFwaFs9YWlubV1dXG4iCiJcdFstLVtuby1ddGltZT1haW5tXSBbLS1hbGwtbGluZXNdIFstLWJyaWVmXSBbLS1kZWJ1Z1s9bGVpYmjpYWxdXVxuIgoiXHRbLS1mdW5jdGlvbi1vcmRlcmluZ10gWy0tZmlsZS1vcmRlcmluZ11cbiIKIlx0Wy0tZGlyZWN0b3J5LXBhdGg9Y29taGFkbGFubmFdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9YWlubV0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWZhZF0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1TNTF1dIFstLW5vLWRlbWFuZ2xlXSBbQENPTUhBRF1cbiIKIlx0W2NvbWhhZC3tb21o4V0gW2NvbWhhZC1wcvNpZu1sZS4uLl1cbiIKCiM6IGdwcm9mLmM6MTc0CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZXBvcnQgYnVncyB0byAlc1xuIgptc2dzdHIgIlNlb2wgdHVhaXJpc2PtIGZhYmh0YW5uYSBjaHVpZyAlc1xuIgoKIzogZ3Byb2YuYzoyNTAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkZWJ1Z2dpbmcgbm90IHN1cHBvcnRlZDsgLWQgaWdub3JlZFxuIgptc2dzdHIgIiVzOiBu7SB0aGFjYe10ZWFyIGxlIGTtZmhhYmh0+jsgcmlubmVhZGggbmVhbWhzaHVpbSBhciAtZFxuIgoKIzogZ3Byb2YuYzozMzAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGZpbGUgZm9ybWF0ICVzXG4iCm1zZ3N0ciAiJXM6IGZvcm3haWQgYW5haXRobmlkIGNob21oYWlkICVzXG4iCgojLiBUaGlzIG91dHB1dCBpcyBpbnRlbmRlZCB0byBmb2xsb3cgdGhlIEdOVSBzdGFuZGFyZHMgZG9jdW1lbnQuCiM6IGdwcm9mLmM6NDE0CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgZ3Byb2YgJXNcbiIKbXNnc3RyICJncHJvZiBHTlUgJXNcbiIKCiM6IGdwcm9mLmM6NDE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJCYXNlZCBvbiBCU0QgZ3Byb2YsIGNvcHlyaWdodCAxOTgzIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKbXNnc3RyICJCdW5haXRoZSBhciBncHJvZiBCU0QsIGPzaXBjaGVhcnQgMTk4MyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuXG4iCgojOiBncHJvZi5jOjQxNgojLCBjLWZvcm1hdAptc2dpZCAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFudHkuXG4iCm1zZ3N0ciAiSXMgc2FvcmJob2dlYXJyYSDpIGFuIGNs4XIgc2VvLiAgTu1sIGJhcuFudGEgYXIgY2hvciBhciBiaXRoIGxlaXMgYW4gZ2Ns4XIgc2VvLlxuIgoKIzogZ3Byb2YuYzo0NTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGRlbWFuZ2xpbmcgc3R5bGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBzdO1sIGFuYWl0aG5pZCBk7WNob3NjYXJ0aGEgYCVzJ1xuIgoKIzogZ3Byb2YuYzo0NzcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBPbmx5IG9uZSBvZiAtLWZ1bmN0aW9uLW9yZGVyaW5nIGFuZCAtLWZpbGUtb3JkZXJpbmcgbWF5IGJlIHNwZWNpZmllZC5cbiIKbXNnc3RyICIlczogTu0gY2hlYWRh7XRlYXIgYWNoIGNlYW5uIGFtaOFpbiBkZSAtLWZ1bmN0aW9uLW9yZGVyaW5nIGFndXMgLS1maWxlLW9yZGVyaW5nIGEgYmhlaXRoIHNvbnJhaXRoZS5cbiIKCiM6IGdwcm9mLmM6NTI3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29ycnksIGZpbGUgZm9ybWF0IGBwcm9mJyBpcyBub3QgeWV0IHN1cHBvcnRlZFxuIgptc2dzdHIgIiVzOiB04SBicvNuIG9ybSwgbu0gdGhhY2HtdGVhciBsZSBmb3Jt4WlkIGBwcm9mJyBm83NcbiIKCiM6IGdwcm9mLmM6NTgxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZ21vbi5vdXQgZmlsZSBpcyBtaXNzaW5nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiVzOiBoaXN0ZWFncmFtIGFyIGlhcnJhaWRoIPMgY2hvbWhhZCBnbW9uLm91dFxuIgoKIzogZ3Byb2YuYzo1ODgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBnbW9uLm91dCBmaWxlIGlzIG1pc3NpbmcgY2FsbC1ncmFwaCBkYXRhXG4iCm1zZ3N0ciAiJXM6IHNvbnJh7SBnbGFvZ2hyYWlmIGFyIGlhcnJhaWRoIPMgY2hvbWhhZCBnbW9uLm91dFxuIgoKIzogaGlzdC5jOjEzMwojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IGRpbWVuc2lvbiB1bml0IGNoYW5nZWQgYmV0d2VlbiBoaXN0b2dyYW0gcmVjb3Jkc1xuIgoiJXM6IGZyb20gJyVzJ1xuIgoiJXM6IHRvICclcydcbiIKbXNnc3RyICIiCiIlczogYXRocmHtb2RoIGFvbmFkIHRvaXNlIGlkaXIgdGFpZmlkIGhpc3RlYWdyYWltXG4iCiIlczog8yAnJXMnXG4iCiIlczogZ28gJyVzJ1xuIgoKIzogaGlzdC5jOjE0MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IGRpbWVuc2lvbiBhYmJyZXZpYXRpb24gY2hhbmdlZCBiZXR3ZWVuIGhpc3RvZ3JhbSByZWNvcmRzXG4iCiIlczogZnJvbSAnJWMnXG4iCiIlczogdG8gJyVjJ1xuIgptc2dzdHIgIiIKIiVzOiBhdGhyYe1vZGggZ2lvcnL6Y2jhbiB0b2lzZSBpZGlyIHRhaWZpZCBoaXN0ZWFncmFpbVxuIgoiJXM6IPMgJyVjJ1xuIgoiJXM6IGdvICclYydcbiIKCiM6IGhpc3QuYzoxNTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkaWZmZXJlbnQgc2NhbGVzIGluIGhpc3RvZ3JhbSByZWNvcmRzIgptc2dzdHIgIiVzOiBzY+FsYe0gZGlmcmn6bGEgaSBkdGFpZmlkIGhpc3RlYWdyYWltIgoKIzogaGlzdC5jOjE5NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG92ZXJsYXBwaW5nIGhpc3RvZ3JhbSByZWNvcmRzXG4iCm1zZ3N0ciAiJXM6IHRhaWZpZCBmaG9ybHVpdGVhY2hhIGhpc3RlYWdyYWltXG4iCgojOiBoaXN0LmM6MjI4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgRU9GIGFmdGVyIHJlYWRpbmcgJXUgb2YgJXUgc2FtcGxlc1xuIgptc2dzdHIgIiVzOiAlczogY29taGFkY2hy7W9jaCBnYW4gY2hvaW5uZSBpIG5kaWFpZGggbOlpbWggJXUgYXMgJXUgc2FtcGxhXG4iCgojOiBoaXN0LmM6NDYyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlYyVjL2NhbGwiCm1zZ3N0ciAiJWMlYy9nbGFvIgoKIzogaGlzdC5jOjQ3MAojLCBjLWZvcm1hdAptc2dpZCAiIgoiIGZvciAlLjJmJSUgb2YgJS4yZiAlc1xuIgoiXG4iCm1zZ3N0ciAiIgoiIGRvICUuMmYlJSBhcyAlLjJmICVzXG4iCiJcbiIKCiM6IGhpc3QuYzo0NzYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiRWFjaCBzYW1wbGUgY291bnRzIGFzICVnICVzLlxuIgptc2dzdHIgIiIKIlxuIgoiSXMgZmn6ICVnICVzIOkgZ2FjaCBzYW1wbGEuXG4iCgojOiBoaXN0LmM6NDgxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgbm8gdGltZSBhY2N1bXVsYXRlZFxuIgoiXG4iCm1zZ3N0ciAiIgoiIG7tb3IgY2FybmFkaCBhb24gYW1cbiIKIlxuIgoKIzogaGlzdC5jOjQ4OAptc2dpZCAiY3VtdWxhdGl2ZSIKbXNnc3RyICJjYXJuYWNoIgoKIzogaGlzdC5jOjQ4OAptc2dpZCAic2VsZiAgIgptc2dzdHIgImbpaW4gICIKCiM6IGhpc3QuYzo0ODgKbXNnaWQgInRvdGFsICIKbXNnc3RyICJpb21s4W4gIgoKIzogaGlzdC5jOjQ5MQptc2dpZCAidGltZSIKbXNnc3RyICJhbSIKCiM6IGhpc3QuYzo0OTEKbXNnaWQgImNhbGxzIgptc2dzdHIgImdsYW9ubmEiCgojOiBoaXN0LmM6NTgwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiXG4iCiJmbGF0IHByb2ZpbGU6XG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIlxuIgoicHLzaWbtbCBjaG90aHJvbTpcbiIKCiM6IGhpc3QuYzo1ODYKIywgYy1mb3JtYXQKbXNnaWQgIkZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICJQcvNpZu1sIGNob3Rocm9tOlxuIgoKIzogaGlzdC5jOjcwNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZvdW5kIGEgc3ltYm9sIHRoYXQgY292ZXJzIHNldmVyYWwgaGlzdG9ncmFtIHJlY29yZHMiCm1zZ3N0ciAiJXM6IGFpbXPtb2RoIHNpb21iYWlsIGEgYmhhaW5lYW5uIGxlIGhpbHRhaWZpZCBoaXN0ZWFncmFpbSIKCiM6IG1pcHMuYzo3MQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbCIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogamFsIgoKIzogbWlwcy5jOjk2CiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDogamFsclxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCgojOiBzb3VyY2UuYzoxNjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3QgbG9jYXRlIGAlcydcbiIKbXNnc3RyICIlczogbu1vcmJoIGZo6WlkaXIgYCVzJyBhIGFpbXNp+lxuIgoKIzogc291cmNlLmM6MjM3CiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogRmlsZSAlczpcbiIKbXNnc3RyICIqKiogQ29taGFkICVzOlxuIgoKIzogdXRpbHMuYzo5OQojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZD4iCm1zZ3N0ciAiIDxjaW9nYWwgJWQ+IgoKI34gbXNnaWQgIiVzOiBgJXMnIGlzIGluY29tcGF0aWJsZSB3aXRoIGZpcnN0IGdtb24gZmlsZVxuIgojfiBtc2dzdHIgIiVzOiBu7WwgYCVzJyBjb21ob2lyafpuYWNoIGxlaXMgYW4gY2jpYWQgY2hvbWhhZCBnbW9uXG4iCg==