IyBJcmlzaCB0cmFuc2xhdGlvbnMgZm9yIGdwcm9mLgojIENvcHlyaWdodCAoQykgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ3Byb2YgcGFja2FnZS4KIyBLZXZpbiBQYXRyaWNrIFNjYW5uZWxsIDxzY2FubmVsbEBTTFUuRURVPiwgMjAwNS4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogZ3Byb2YgMi4xNS45NlxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDUtMDMtMDMgMjE6MDUrMTAzMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwNS0wOS0xMyAxODozMi0wNTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEtldmluIFBhdHJpY2sgU2Nhbm5lbGwgPHNjYW5uZWxsQFNMVS5FRFU+XG4iCiJMYW5ndWFnZS1UZWFtOiBJcmlzaCA8Z2FAbGkub3JnPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBhbHBoYS5jOjEwMiBtaXBzLmM6NTQKbXNnaWQgIjxpbmRpcmVjdCBjaGlsZD4iCm1zZ3N0ciAiPG1hYyBpbmTtcmVhY2g+IgoKIzogYWxwaGEuYzoxMTkgbWlwcy5jOjcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAlczogMHglbHggdG8gMHglbHhcbiIKbXNnc3RyICJbZmluZF9jYWxsXSAlczogMHglbHggZ28gMHglbHhcbiIKCiM6IGFscGhhLmM6MTQxCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPGluZGlyZWN0X2NoaWxkPlxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqc3IlcyA8bWFjX2luZO1yZWFjaD5cbiIKCiM6IGFscGhhLmM6MTUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDogYnNyIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBic3IiCgojOiBiYXNpY19ibG9ja3MuYzoxMjggY2FsbF9ncmFwaC5jOjg5IGhpc3QuYzo5NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlXG4iCm1zZ3N0ciAiJXM7ICVzOiBjb21oYWRjaHLtb2NoIGdhbiBjaG9pbm5lXG4iCgojOiBiYXNpY19ibG9ja3MuYzoxOTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB3YXJuaW5nOiBpZ25vcmluZyBiYXNpYy1ibG9jayBleGVjIGNvdW50cyAodXNlIC1sIG9yIC0tbGluZSlcbiIKbXNnc3RyICIlczogcmFiaGFkaDogZOlhbmZhciBuZWFtaHNodWltIGFyIGztb24gbmEgcml07SBkZSBiaHVuYmhsb2ljICj6c+FpZCAtbCBu8yAtLWxpbmUpXG4iCgojLiBGSVhNRTogVGhpcyBvbmx5IHdvcmtzIGlmIGJmZF92bWEgaXMgdW5zaWduZWQgbG9uZy4KIzogYmFzaWNfYmxvY2tzLmM6Mjg3IGJhc2ljX2Jsb2Nrcy5jOjI5NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6JWQ6ICglczoweCVseCkgJWx1IGV4ZWN1dGlvbnNcbiIKbXNnc3RyICIlczolZDogKCVzOjB4JWx4KSAlbHUgcml0aFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6Mjg4IGJhc2ljX2Jsb2Nrcy5jOjI5OAptc2dpZCAiPHVua25vd24+Igptc2dzdHIgIjxhbmFpdGhuaWQ+IgoKIzogYmFzaWNfYmxvY2tzLmM6NTQxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiVG9wICVkIExpbmVzOlxuIgoiXG4iCiIgICAgIExpbmUgICAgICBDb3VudFxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIiVkIFBy7W9taGztbmU6XG4iCiJcbiIKIiAgICAgTO1uZSAgICAgIEztb25cbiIKIlxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTY1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIkV4ZWN1dGlvbiBTdW1tYXJ5OlxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJBY2hvaW1yZSBSaXRlOlxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjYKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBFeGVjdXRhYmxlIGxpbmVzIGluIHRoaXMgZmlsZVxuIgptc2dzdHIgIiU5bGQgICBM7W50ZSBpbnJpdGUgc2EgY2hvbWhhZCBzZW9cbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU2OAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIExpbmVzIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTlsZCAgIEztbnRlIGFybmEgcml0aFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTY5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlOS4yZiAgIFBlcmNlbnQgb2YgdGhlIGZpbGUgZXhlY3V0ZWRcbiIKbXNnc3RyICIlOS4yZiAgIEPpYXRhZOFuIGRlbiBjaG9taGFkIGEgcml0aGVhZGhcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIlOWx1ICAgVG90YWwgbnVtYmVyIG9mIGxpbmUgZXhlY3V0aW9uc1xuIgptc2dzdHIgIiIKIlxuIgoiJTlsdSAgIEztb24gaW9tbOFuIG5hIHJpdO0gZGUgbO1udGVcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NQojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBBdmVyYWdlIGV4ZWN1dGlvbnMgcGVyIGxpbmVcbiIKbXNnc3RyICIlOS4yZiAgIE1l4W5s7W9uIG5hIHJpdO0gZGUgZ2FjaCBs7W5lXG4iCgojOiBjYWxsX2dyYXBoLmM6NjgKIywgYy1mb3JtYXQKbXNnaWQgIltjZ190YWxseV0gYXJjIGZyb20gJXMgdG8gJXMgdHJhdmVyc2VkICVsdSB0aW1lc1xuIgptc2dzdHIgIltjZ190YWxseV0gdHJhc25h7W9kaCBhbiB0LWFyYyDzICVzIGdvICVzICVsdSB1YWlyZVxuIgoKIzogY2dfcHJpbnQuYzo3MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiXHRcdCAgICAgQ2FsbCBncmFwaCAoZXhwbGFuYXRpb24gZm9sbG93cylcbiIKIlxuIgptc2dzdHIgIiIKIlx0XHQgICAgIEdsYW9naHJhZiAobe1uafogaW5hIGRoaWFpZGgpXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6NzUKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlx0XHRcdENhbGwgZ3JhcGhcbiIKIlxuIgptc2dzdHIgIiIKIlx0XHRcdEdsYW9naHJhZlxuIgoiXG4iCgojOiBjZ19wcmludC5jOjc4IGhpc3QuYzozNTkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiZ3JhbnVsYXJpdHk6IGVhY2ggc2FtcGxlIGhpdCBjb3ZlcnMgJWxkIGJ5dGUocykiCm1zZ3N0ciAiIgoiXG4iCiJncuFpbm5lYWNodDogdOEgJWxkIGJlYXJ0IGkgbmdhY2ggc2FtcGxhIgoKIzogY2dfcHJpbnQuYzo4MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiIGZvciAlLjJmJSUgb2YgJS4yZiBzZWNvbmRzXG4iCiJcbiIKbXNnc3RyICIiCiIgZG8gJS4yZiUlIGFzICUuMmYgc29pY2luZFxuIgoiXG4iCgojOiBjZ19wcmludC5jOjg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgbm8gdGltZSBwcm9wYWdhdGVkXG4iCiJcbiIKbXNnc3RyICIiCiIgbu1vciBmb3JsZWF0aGFkaCBhb24gYW1cbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo5NSBjZ19wcmludC5jOjk4IGNnX3ByaW50LmM6MTAwCm1zZ2lkICJjYWxsZWQiCm1zZ3N0ciAiZ2xhb2l0ZSIKCiM6IGNnX3ByaW50LmM6OTUgY2dfcHJpbnQuYzoxMDAKbXNnaWQgInRvdGFsIgptc2dzdHIgImlvbWzhbiIKCiM6IGNnX3ByaW50LmM6OTUKbXNnaWQgInBhcmVudHMiCm1zZ3N0ciAibeFpdGhyZWFjaGEiCgojOiBjZ19wcmludC5jOjk3IGNnX3ByaW50LmM6OTgKbXNnaWQgImluZGV4Igptc2dzdHIgImlubulhY3MiCgojOiBjZ19wcmludC5jOjk3CiMsIGMtZm9ybWF0Cm1zZ2lkICIldGltZSIKbXNnc3RyICIldGltZSAoYW0pIgoKIzogY2dfcHJpbnQuYzo5NyBjZ19wcmludC5jOjk4Cm1zZ2lkICJzZWxmIgptc2dzdHIgImbpaW4iCgojOiBjZ19wcmludC5jOjk3Cm1zZ2lkICJkZXNjZW5kYW50cyIKbXNnc3RyICJzbGVhY2h0YSIKCiM6IGNnX3ByaW50LmM6OTggaGlzdC5jOjM4NQptc2dpZCAibmFtZSIKbXNnc3RyICJhaW5tIgoKIzogY2dfcHJpbnQuYzoxMDAKbXNnaWQgImNoaWxkcmVuIgptc2dzdHIgIm1pYyIKCiM6IGNnX3ByaW50LmM6MTA1CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbmRleCAlJSB0aW1lICAgIHNlbGYgIGNoaWxkcmVuICAgIGNhbGxlZCAgICAgbmFtZVxuIgptc2dzdHIgImlubulhY3MgJSUgYW0gICAgZulpbiAgbWljICAgICAgICAgZ2xhb2l0ZSAgICBhaW5tXG4iCgojOiBjZ19wcmludC5jOjEyOAojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZCBhcyBhIHdob2xlPiBbJWRdXG4iCm1zZ3N0ciAiIDxjaW9nYWwgJWQgaW5hIGlvbWzhaW5lPiBbJWRdXG4iCgojOiBjZ19wcmludC5jOjM1NAojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICUxMS4xMXMgJTcuN3MgJTcuN3MgICAgIDxzcG9udOFpbmVhY2g+XG4iCgojOiBjZ19wcmludC5jOjM1NQojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTcuN3MgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFuZW91cz5cbiIKbXNnc3RyICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb2504WluZWFjaD5cbiIKCiM6IGNnX3ByaW50LmM6NTg5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJJbmRleCBieSBmdW5jdGlvbiBuYW1lXG4iCiJcbiIKbXNnc3RyICIiCiJJbm7pYWNzYWlnaCBkZSBy6WlyIGFpbm0gbmEgZmVpZGhtZVxuIgoiXG4iCgojOiBjZ19wcmludC5jOjY0NiBjZ19wcmludC5jOjY1NQojLCBjLWZvcm1hdAptc2dpZCAiPGN5Y2xlICVkPiIKbXNnc3RyICI8Y2lvZ2FsICVkPiIKCiM6IGNvcmVmaWxlLmM6NjQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3Qgb3BlbiAlcy5cbiIKbXNnc3RyICIlczogbu1vcmJoIGZo6WlkaXIgJXMgYSBvc2NhaWx0LlxuIgoKIzogY29yZWZpbGUuYzo3OCBjb3JlZmlsZS5jOjExMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVuYWJsZSB0byBwYXJzZSBtYXBwaW5nIGZpbGUgJXMuXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciBjb21oYWQgbWFw4WxhICVzIGEgcGhhcnPhaWwuXG4iCgojOiBjb3JlZmlsZS5jOjE1NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBub3QgaW4gYS5vdXQgZm9ybWF0XG4iCm1zZ3N0ciAiJXM6ICVzOiBu7SBzYW4gZmhvcm3haWQgYS5vdXRcbiIKCiM6IGNvcmVmaWxlLmM6MTY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2FuJ3QgZmluZCAudGV4dCBzZWN0aW9uIGluICVzXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciByb2lubiAudGV4dCBhIGFpbXNp+iBpICVzXG4iCgojOiBjb3JlZmlsZS5jOjIyNAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJhbiBvdXQgcm9vbSBmb3IgJWx1IGJ5dGVzIG9mIHRleHQgc3BhY2VcbiIKbXNnc3RyICIlczogbu1sIGdvIGxlb3Igc3DhcyBsZSBoYWdoYWlkaCAlbHUgYmVhcnQgZGUgdGjpYWNzXG4iCgojOiBjb3JlZmlsZS5jOjIzOAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGRvIC1jXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciAtYyBhIGRo6WFuYW1oXG4iCgojOiBjb3JlZmlsZS5jOjI3MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IC1jIG5vdCBzdXBwb3J0ZWQgb24gYXJjaGl0ZWN0dXJlICVzXG4iCm1zZ3N0ciAiJXM6IC1jIGdhbiB0YWNh7W9jaHQgYXIgYWlsdGlyZWFjaHQgJXNcbiIKCiM6IGNvcmVmaWxlLmM6NDM3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyBubyBzeW1ib2xzXG4iCm1zZ3N0ciAiJXM6IG7tbCBzaW9tYmFpbO0gYXIgYml0aCBhZyBhbiBnY29taGFkIGAlcydcbiIKCiM6IGNvcmVmaWxlLmM6NzUxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29tZWJvZHkgbWlzY291bnRlZDogbHRhYi5sZW49JWQgaW5zdGVhZCBvZiAlbGRcbiIKbXNnc3RyICIlczog4WlyZWFtaCBt7WNoZWFydDogbHRhYi5sZW49JWQgaW4gaW9uYWQgJWxkXG4iCgojOiBnbW9uX2lvLmM6ODMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBhZGRyZXNzIHNpemUgaGFzIHVuZXhwZWN0ZWQgdmFsdWUgb2YgJXVcbiIKbXNnc3RyICIlczogbu0gcmFiaHRoYXMgYWcgc/ppbCBsZSBt6WlkIHNlb2x0YSBkZSAldVxuIgoKIzogZ21vbl9pby5jOjMxNyBnbW9uX2lvLmM6NDEzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSB0b28gc2hvcnQgdG8gYmUgYSBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogdOEgYW4gY29taGFkIHLzZ2hlYXJyIGEgYmhlaXRoIGluYSBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzozMjcgZ21vbl9pby5jOjQ1NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgYmFkIG1hZ2ljIGNvb2tpZVxuIgptc2dzdHIgIiVzOiBmaWFu4W4gZHJh7W9jaHRhIGdvIGhvbGMgYWcgYW4gZ2NvbWhhZCBgJXMnXG4iCgojOiBnbW9uX2lvLmM6MzM4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uICVkXG4iCm1zZ3N0ciAiJXM6IHThIGxlYWdhbiBnYW4gdGFjYe1vY2h0IGFnIGFuIGdjb21oYWQgYCVzJzogJWRcbiIKCiM6IGdtb25faW8uYzozNjgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogZm91bmQgYmFkIHRhZyAlZCAoZmlsZSBjb3JydXB0ZWQ/KVxuIgptc2dzdHIgIiVzOiAlczogYWltc+1vZGggZHJvY2gtY2hsaWIgJWQgKGNvbWhhZCB0cnVhaWxsaXRoZT8pXG4iCgojOiBnbW9uX2lvLmM6NDM1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcHJvZmlsaW5nIHJhdGUgaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IG7tbCBhbiBy4XRhIHBy82lm7WxpdGhlIGNvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzo0ODMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogbmVhbWgtY2hvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIKCiM6IGdtb25faW8uYzo1MTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICclcycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluIGdtb24ub3V0IGZvcm1hdFxuIgptc2dzdHIgIiVzOiBpcyBjb3P6aWwgbmFjaCBiaGZ1aWwgY29taGFkICclcycgaSBiaGZvcm3haWQgZ21vbi5vdXRcbiIKCiM6IGdtb25faW8uYzo1MzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkLyVkIGJpbnNcbiIKbXNnc3RyICIlczogY29taGFkY2hy7W9jaCBnYW4gY2hvaW5uZSBpIG5kaWFpZGggJWQvJWQgZ2FiaGThbiDhIGzpYW1oXG4iCgojOiBnbW9uX2lvLmM6NTY1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ0aW1lIGlzIGluIHRpY2tzLCBub3Qgc2Vjb25kc1xuIgptc2dzdHIgImlzIGkgZHRpY2Vhbm5hIGFuIHQtYW0sIG7tIGkgc29pY2luZO1cbiIKCiM6IGdtb25faW8uYzo1NzEgZ21vbl9pby5jOjc0NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRvbid0IGtub3cgaG93IHRvIGRlYWwgd2l0aCBmaWxlIGZvcm1hdCAlZFxuIgptc2dzdHIgIiVzOiBu7WwgYSBmaGlvcyBhZ2FtIGNvbmFzIGZvcm3haWQgJWQgYSBs4WltaHNl4WlsXG4iCgojOiBnbW9uX2lvLmM6NTc4CiMsIGMtZm9ybWF0Cm1zZ2lkICJGaWxlIGAlcycgKHZlcnNpb24gJWQpIGNvbnRhaW5zOlxuIgptc2dzdHIgIklzIGkgZ2NvbWhhZCBgJXMnIChsZWFnYW4gJWQpIG5hIG3tcmVhbm5hIHNlbzpcbiIKCiM6IGdtb25faW8uYzo1ODEKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgaGlzdG9ncmFtIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBoaXN0ZWFncmFpbVxuIgoKIzogZ21vbl9pby5jOjU4MgojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBoaXN0b2dyYW0gcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBoaXN0ZWFncmFpbVxuIgoKIzogZ21vbl9pby5jOjU4NAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBnbGFvZ2hyYWlmXG4iCgojOiBnbW9uX2lvLmM6NTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBnbGFvZ2hyYWlmXG4iCgojOiBnbW9uX2lvLmM6NTg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGJhc2ljLWJsb2NrIGNvdW50IHJlY29yZFxuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBs7W4gbmEgbWJ1bmJobG9jXG4iCgojOiBnbW9uX2lvLmM6NTg4CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGJhc2ljLWJsb2NrIGNvdW50IHJlY29yZHNcbiIKbXNnc3RyICJcdCVkIHRhaWZlYWQgbO1uIG5hIG1idW5iaGxvY1xuIgoKIzogZ3Byb2YuYzoxNjAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlVzYWdlOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxUVpdW25hbWVdXSBbLUkgZGlyc11cbiIKIlx0Wy1kW251bV1dIFstayBmcm9tL3RvXSBbLW0gbWluLWNvdW50XSBbLXQgdGFibGUtbGVuZ3RoXVxuIgoiXHRbLS1bbm8tXWFubm90YXRlZC1zb3VyY2VbPW5hbWVdXSBbLS1bbm8tXWV4ZWMtY291bnRzWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV1mbGF0LXByb2ZpbGVbPW5hbWVdXSBbLS1bbm8tXWdyYXBoWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV10aW1lPW5hbWVdIFstLWFsbC1saW5lc10gWy0tYnJpZWZdIFstLWRlYnVnWz1sZXZlbF1dXG4iCiJcdFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1kaXJzXSBbLS1kaXNwbGF5LXVudXNlZC1mdW5jdGlvbnNdXG4iCiJcdFstLWZpbGUtZm9ybWF0PW5hbWVdIFstLWZpbGUtaW5mb10gWy0taGVscF0gWy0tbGluZV0gWy0tbWluLWNvdW50PW5dXG4iCiJcdFstLW5vLXN0YXRpY10gWy0tcHJpbnQtcGF0aF0gWy0tc2VwYXJhdGUtZmlsZXNdXG4iCiJcdFstLXN0YXRpYy1jYWxsLWdyYXBoXSBbLS1zdW1dIFstLXRhYmxlLWxlbmd0aD1sZW5dIFstLXRyYWRpdGlvbmFsXVxuIgoiXHRbLS12ZXJzaW9uXSBbLS13aWR0aD1uXSBbLS1pZ25vcmUtbm9uLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZGVtYW5nbGVbPVNUWUxFXV0gWy0tbm8tZGVtYW5nbGVdXG4iCiJcdFtpbWFnZS1maWxlXSBbcHJvZmlsZS1maWxlLi4uXVxuIgptc2dzdHIgIiIKItpz4WlkOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxUVpdW2Fpbm1dXSBbLUkgY29taGFkbGFubmFdXG4iCiJcdFstZFt1aW1oaXJdXSBbLWsg8y9nb10gWy1tIO1vc21o6WlkXSBbLXQgZmFkdOFibGFdXG4iCiJcdFstLVtuby1dYW5ub3RhdGVkLXNvdXJjZVs9YWlubV1dIFstLVtuby1dZXhlYy1jb3VudHNbPWFpbm1dXVxuIgoiXHRbLS1bbm8tXWZsYXQtcHJvZmlsZVs9YWlubV1dIFstLVtuby1dZ3JhcGhbPWFpbm1dXVxuIgoiXHRbLS1bbm8tXXRpbWU9YWlubV0gWy0tYWxsLWxpbmVzXSBbLS1icmllZl0gWy0tZGVidWdbPWxlaWJo6WFsXV1cbiIKIlx0Wy0tZnVuY3Rpb24tb3JkZXJpbmddIFstLWZpbGUtb3JkZXJpbmddXG4iCiJcdFstLWRpcmVjdG9yeS1wYXRoPWNvbWhhZGxhbm5hXSBbLS1kaXNwbGF5LXVudXNlZC1mdW5jdGlvbnNdXG4iCiJcdFstLWZpbGUtZm9ybWF0PWFpbm1dIFstLWZpbGUtaW5mb10gWy0taGVscF0gWy0tbGluZV0gWy0tbWluLWNvdW50PW5dXG4iCiJcdFstLW5vLXN0YXRpY10gWy0tcHJpbnQtcGF0aF0gWy0tc2VwYXJhdGUtZmlsZXNdXG4iCiJcdFstLXN0YXRpYy1jYWxsLWdyYXBoXSBbLS1zdW1dIFstLXRhYmxlLWxlbmd0aD1mYWRdIFstLXRyYWRpdGlvbmFsXVxuIgoiXHRbLS12ZXJzaW9uXSBbLS13aWR0aD1uXSBbLS1pZ25vcmUtbm9uLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZGVtYW5nbGVbPVNUzUxdXSBbLS1uby1kZW1hbmdsZV1cbiIKIlx0W2NvbWhhZC3tb21o4V0gW2NvbWhhZC1wcvNpZu1sZS4uLl1cbiIKCiM6IGdwcm9mLmM6MTc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZXBvcnQgYnVncyB0byAlc1xuIgptc2dzdHIgIlNlb2wgdHVhaXJpc2PtIGZhYmh0YW5uYSBjaHVpZyAlc1xuIgoKIzogZ3Byb2YuYzoyNDgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkZWJ1Z2dpbmcgbm90IHN1cHBvcnRlZDsgLWQgaWdub3JlZFxuIgptc2dzdHIgIiVzOiBu7SB0aGFjYe10ZWFyIGxlIGTtZmhhYmh0+jsgcmlubmVhZGggbmVhbWhzaHVpbSBhciAtZFxuIgoKIzogZ3Byb2YuYzozMjgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGZpbGUgZm9ybWF0ICVzXG4iCm1zZ3N0ciAiJXM6IGZvcm3haWQgYW5haXRobmlkIGNob21oYWlkICVzXG4iCgojLiBUaGlzIG91dHB1dCBpcyBpbnRlbmRlZCB0byBmb2xsb3cgdGhlIEdOVSBzdGFuZGFyZHMgZG9jdW1lbnQuCiM6IGdwcm9mLmM6NDEyCiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgZ3Byb2YgJXNcbiIKbXNnc3RyICJncHJvZiBHTlUgJXNcbiIKCiM6IGdwcm9mLmM6NDEzCiMsIGMtZm9ybWF0Cm1zZ2lkICJCYXNlZCBvbiBCU0QgZ3Byb2YsIGNvcHlyaWdodCAxOTgzIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKbXNnc3RyICJCdW5haXRoZSBhciBncHJvZiBCU0QsIGPzaXBjaGVhcnQgMTk4MyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuXG4iCgojOiBncHJvZi5jOjQxNAojLCBjLWZvcm1hdAptc2dpZCAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFudHkuXG4iCm1zZ3N0ciAiSXMgc2FvcmJob2dlYXJyYSDpIGFuIGNs4XIgc2VvLiAgTu1sIGJhcuFudGEgYXIgY2hvciBhciBiaXRoIGxlaXMgYW4gZ2Ns4XIgc2VvLlxuIgoKIzogZ3Byb2YuYzo0NTUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGRlbWFuZ2xpbmcgc3R5bGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBzdO1sIGFuYWl0aG5pZCBk7WNob3NjYXJ0aGEgYCVzJ1xuIgoKIzogZ3Byb2YuYzo0NzUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBPbmx5IG9uZSBvZiAtLWZ1bmN0aW9uLW9yZGVyaW5nIGFuZCAtLWZpbGUtb3JkZXJpbmcgbWF5IGJlIHNwZWNpZmllZC5cbiIKbXNnc3RyICIlczogTu0gY2hlYWRh7XRlYXIgYWNoIGNlYW5uIGFtaOFpbiBkZSAtLWZ1bmN0aW9uLW9yZGVyaW5nIGFndXMgLS1maWxlLW9yZGVyaW5nIGEgYmhlaXRoIHNvbnJhaXRoZS5cbiIKCiM6IGdwcm9mLmM6NTI1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29ycnksIGZpbGUgZm9ybWF0IGBwcm9mJyBpcyBub3QgeWV0IHN1cHBvcnRlZFxuIgptc2dzdHIgIiVzOiB04SBicvNuIG9ybSwgbu0gdGhhY2HtdGVhciBsZSBmb3Jt4WlkIGBwcm9mJyBm83NcbiIKCiM6IGdwcm9mLmM6NTc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZ21vbi5vdXQgZmlsZSBpcyBtaXNzaW5nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiVzOiBoaXN0ZWFncmFtIGFyIGlhcnJhaWRoIPMgY2hvbWhhZCBnbW9uLm91dFxuIgoKIzogZ3Byb2YuYzo1ODEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBnbW9uLm91dCBmaWxlIGlzIG1pc3NpbmcgY2FsbC1ncmFwaCBkYXRhXG4iCm1zZ3N0ciAiJXM6IHNvbnJh7SBnbGFvZ2hyYWlmIGFyIGlhcnJhaWRoIPMgY2hvbWhhZCBnbW9uLm91dFxuIgoKIzogaGlzdC5jOjEyNgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGAlcycgaXMgaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IG7tbCBgJXMnIGNvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIKCiM6IGhpc3QuYzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogdW5leHBlY3RlZCBFT0YgYWZ0ZXIgcmVhZGluZyAldSBvZiAldSBzYW1wbGVzXG4iCm1zZ3N0ciAiJXM6ICVzOiBjb21oYWRjaHLtb2NoIGdhbiBjaG9pbm5lIGkgbmRpYWlkaCBs6WltaCAldSBhcyAldSBzYW1wbGFcbiIKCiM6IGhpc3QuYzozNTUKIywgYy1mb3JtYXQKbXNnaWQgIiVjJWMvY2FsbCIKbXNnc3RyICIlYyVjL2dsYW8iCgojOiBoaXN0LmM6MzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmICVzXG4iCiJcbiIKbXNnc3RyICIiCiIgZG8gJS4yZiUlIGFzICUuMmYgJXNcbiIKIlxuIgoKIzogaGlzdC5jOjM2OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJFYWNoIHNhbXBsZSBjb3VudHMgYXMgJWcgJXMuXG4iCm1zZ3N0ciAiIgoiXG4iCiJJcyBmafogJWcgJXMg6SBnYWNoIHNhbXBsYS5cbiIKCiM6IGhpc3QuYzozNzQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiBubyB0aW1lIGFjY3VtdWxhdGVkXG4iCiJcbiIKbXNnc3RyICIiCiIgbu1vciBjYXJuYWRoIGFvbiBhbVxuIgoiXG4iCgojOiBoaXN0LmM6MzgxCm1zZ2lkICJjdW11bGF0aXZlIgptc2dzdHIgImNhcm5hY2giCgojOiBoaXN0LmM6MzgxCm1zZ2lkICJzZWxmICAiCm1zZ3N0ciAiZulpbiAgIgoKIzogaGlzdC5jOjM4MQptc2dpZCAidG90YWwgIgptc2dzdHIgImlvbWzhbiAiCgojOiBoaXN0LmM6Mzg0Cm1zZ2lkICJ0aW1lIgptc2dzdHIgImFtIgoKIzogaGlzdC5jOjM4NAptc2dpZCAiY2FsbHMiCm1zZ3N0ciAiZ2xhb25uYSIKCiM6IGhpc3QuYzo0NzMKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiXG4iCiJcbiIKImZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICIiCiJcbiIKIlxuIgoiXG4iCiJwcvNpZu1sIGNob3Rocm9tOlxuIgoKIzogaGlzdC5jOjQ3OQojLCBjLWZvcm1hdAptc2dpZCAiRmxhdCBwcm9maWxlOlxuIgptc2dzdHIgIlBy82lm7WwgY2hvdGhyb206XG4iCgojOiBtaXBzLmM6ODIKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWwiCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbCIKCiM6IG1pcHMuYzoxMDcKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbHJcbiIKCiM6IHNvdXJjZS5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBsb2NhdGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBu7W9yYmggZmjpaWRpciBgJXMnIGEgYWltc2n6XG4iCgojOiBzb3VyY2UuYzoyMzcKIywgYy1mb3JtYXQKbXNnaWQgIioqKiBGaWxlICVzOlxuIgptc2dzdHIgIioqKiBDb21oYWQgJXM6XG4iCgojOiB1dGlscy5jOjEwNwojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZD4iCm1zZ3N0ciAiIDxjaW9nYWwgJWQ+Igo=