IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IC0tbXNnaWQgYW5kIC0tbXNnc3RyIG9wdGlvbnMuCgpjYXQgPDxcRU9GID4gbWctdGVzdDMucG8KIyBHZXJtYW4gdHJhbnNsYXRpb25zIGZvciBHTlUgZ2V0dGV4dCBwYWNrYWdlLgojIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NiwgMTk5NywgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IEdOVSBnZXR0ZXh0IDAuMTEtcHJlMVxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDEtMTItMDggMjA6MzMrMDEwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0xMS0wNCAxMjoyNSswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthcmwgRWljaHdhbGRlciA8a2VAc3VzZS5kZT5cbiIKIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8ZGVAbGkub3JnPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKCiM6IGFyZ21hdGNoLmM6MTQxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIGFyZ3VtZW50IGAlcycgZm9yIGAlcyciCm1zZ3N0ciAidW5n/Gx0aWdlcyBBcmd1bWVudCC7JXOrIGb8ciC7JXOrIgoKIzogYXJnbWF0Y2guYzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgImFtYmlndW91cyBhcmd1bWVudCBgJXMnIGZvciBgJXMnIgptc2dzdHIgIm1laHJkZXV0aWdlcyBBcmd1bWVudCC7JXOrIGb8ciC7JXOrIgoKIzogYXJnbWF0Y2guYzoxNjIKbXNnaWQgIlZhbGlkIGFyZ3VtZW50cyBhcmU6Igptc2dzdHIgIkf8bHRpZ2UgQXJndW1lbnRlIHNpbmQ6IgoKIzogY29weS1maWxlLmM6NjAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHdoaWxlIG9wZW5pbmcgXCIlc1wiIGZvciByZWFkaW5nIgptc2dzdHIgItZmZm5lbiBkZXIgRGF0ZWkguyVzqyB6dW0gTGVzZW4gZmVobGdlc2NobGFnZW4iCgojOiBjb3B5LWZpbGUuYzo2NwojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IG9wZW4gYmFja3VwIGZpbGUgXCIlc1wiIGZvciB3cml0aW5nIgptc2dzdHIgItZmZm5lbiBkZXIgU2ljaGVydW5nc2RhdGVpILslc6sgenVtIFNjaHJlaWJlbiBmZWhsZ2VzY2hsYWdlbiIKCiM6IGNvcHktZmlsZS5jOjgwCiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciByZWFkaW5nIFwiJXNcIiIKbXNnc3RyICJGZWhsZXIgYmVpbSBMZXNlbiB2b24guyVzqyIKCiM6IGNvcHktZmlsZS5jOjg2IGNvcHktZmlsZS5jOjkwCiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciB3cml0aW5nIFwiJXNcIiIKbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gdm9uILslc6siCgojOiBjb3B5LWZpbGUuYzo5MgojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3IgYWZ0ZXIgcmVhZGluZyBcIiVzXCIiCm1zZ3N0ciAiRmVobGVyIG5hY2ggZGVtIExlc2VuIHZvbiC7JXOrIgoKIzogZXJyb3IuYzoxMTUKbXNnaWQgIlVua25vd24gc3lzdGVtIGVycm9yIgptc2dzdHIgIlVuYmVrYW5udGVyIFN5c3RlbWZlaGxlciIKCiM6IGV4ZWN1dGUuYzoxNzAgZXhlY3V0ZS5jOjIwNSBwaXBlLWJpZGkuYzoxNTYgcGlwZS1iaWRpLmM6MTkxIHBpcGUtaW4uYzoxNjkKIzogcGlwZS1pbi5jOjIwNSBwaXBlLW91dC5jOjE2OSBwaXBlLW91dC5jOjIwNSB3YWl0LXByb2Nlc3MuYzoxMzYKIywgYy1mb3JtYXQKbXNnaWQgIiVzIHN1YnByb2Nlc3MgZmFpbGVkIgptc2dzdHIgIlN1YnByb3plc3MgJXMgZmVobGdlc2NobGFnZW4iCgojOiBnZXRvcHQuYzo2OTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYCVzJyBpcyBhbWJpZ3VvdXNcbiIKbXNnc3RyICIlczogT3B0aW9uILslc6sgaXN0IG1laHJkZXV0aWdcbiIKCiM6IGdldG9wdC5jOjcxNgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgLS0lcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBPcHRpb24guy0tJXOrIGVyd2FydGV0IGtlaW4gQXJndW1lbnRcbiIKCiM6IGdldG9wdC5jOjcyMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJWMlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBPcHRpb24guyVjJXOrIGVyd2FydGV0IGtlaW4gQXJndW1lbnRcbiIKCiM6IGdldG9wdC5jOjczOSBnZXRvcHQuYzo5MTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYCVzJyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBPcHRpb24guyVzqyBlcndhcnRldCBlaW4gQXJndW1lbnRcbiIKCiM6IGdldG9wdC5jOjc2OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gYC0tJXMnXG4iCm1zZ3N0ciAiJXM6IHVuYmVrYW5udGUgT3B0aW9uILstLSVzq1xuIgoKIzogZ2V0b3B0LmM6NzcyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgJWMlcydcbiIKbXNnc3RyICIlczogdW5iZWthbm50ZSBPcHRpb24guyVjJXOrXG4iCgojOiBnZXRvcHQuYzo3OTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgptc2dzdHIgIiVzOiB1bnp1bORzc2lnZSBPcHRpb24gLS0gJWNcbiIKCiM6IGdldG9wdC5jOjgwMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIC0tICVjXG4iCm1zZ3N0ciAiJXM6IHVuZ/xsdGlnZSBPcHRpb24gLS0gJWNcbiIKCiM6IGdldG9wdC5jOjgzMSBnZXRvcHQuYzo5NjEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJWNcbiIKbXNnc3RyICIlczogT3B0aW9uIGVyd2FydGV0IGVpbiBBcmd1bWVudCAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtVyAlcycgaXMgYW1iaWd1b3VzXG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LVcgJXOrIGlzdCBtZWhyZGV1dGlnXG4iCgojOiBnZXRvcHQuYzo4OTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LVcgJXOrIGVyd2FydGV0IGtlaW4gQXJndW1lbnRcbiIKCiM6IGphdmFjb21wLmM6NDY1Cm1zZ2lkICJKYXZhIGNvbXBpbGVyIG5vdCBmb3VuZCwgdHJ5IGluc3RhbGxpbmcgZ2NqIG9yIHNldCAkSkFWQUMiCm1zZ3N0ciAiIgoiSmF2YS1Db21waWxlciBuaWNodCBnZWZ1bmRlbjsgYml0dGUgu2djaqsgaW5zdGFsbGllcmVuIG9kZXIgJEpBVkFDIHNldHplbiIKCiM6IGphdmFleGVjLmM6NDA0Cm1zZ2lkICJKYXZhIHZpcnR1YWwgbWFjaGluZSBub3QgZm91bmQsIHRyeSBpbnN0YWxsaW5nIGdpaiBvciBzZXQgJEpBVkEiCm1zZ3N0ciAiIgoiVmlydHVlbGxlIEphdmEtTWFzY2hpbmUgbmljaHQgZ2VmdW5kZW47IGJpdHRlILtnY2qrIGluc3RhbGxpZXJlbiBvZGVyXG4iCiIkSkFWQSBzZXR6ZW4iCgojOiBvYnN0YWNrLmM6NDc0IHhlcnJvci5jOjc1IHhtYWxsb2MuYzo1Ngptc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJ2aXJ0dWVsbGVyIFNwZWljaGVyIGVyc2No9nBmdCIKCiM6IHBpcGUtYmlkaS5jOjExOSBwaXBlLWJpZGkuYzoxMjEgcGlwZS1pbi5jOjEzNiBwaXBlLW91dC5jOjEzNgptc2dpZCAiY2Fubm90IGNyZWF0ZSBwaXBlIgptc2dzdHIgIkVzIGlzdCBuaWNodCBt9mdsaWNoLCBlaW5lIFBpcGUgenUgZXJ6ZXVnZW4iCgojOiB3YWl0LXByb2Nlc3MuYzoxMTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzIHN1YnByb2Nlc3MiCm1zZ3N0ciAiU3VicHJvemVzcyAlcyIKCiM6IHdhaXQtcHJvY2Vzcy5jOjEyOQojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyBnb3QgZmF0YWwgc2lnbmFsIgptc2dzdHIgIlN1YnByb3plc3MgJXMgaGF0IGVpbiBmYXRhbGVzIFNpZ25hbCBlcmhhbHRlbiIKCiMgQSBwYXR0ZXJuIHNwZWNpZmllZCBmb3IgdGhlIG1zZ2lkIG9ubHkgbXVzdCBub3QgYmUgbWF0Y2hlZCB3aXRoIHRoZSBtc2dzdHIuCm1zZ2lkICJHU0ctOSIKbXNnc3RyICJBbnRpdGVycm9yLUVpbmhlaXQiCkVPRgoKOiAke01TR0dSRVA9bXNnZ3JlcH0KTENfTUVTU0FHRVM9QyBMQ19BTEw9IFwKJHtNU0dHUkVQfSAtSyAtZSBlcnJvciAtVCAtZSBTcGVpY2hlciAtbyBtZy10ZXN0My50bXAgbWctdGVzdDMucG8gPm1nLXRlc3QzLmVyciAyPiYxCnJlc3VsdD0kPwpjYXQgbWctdGVzdDMuZXJyIHwgZ3JlcCAtdiAnd2FybmluZzogTG9jYWxlIGNoYXJzZXQnIHwgZ3JlcCAtdiAnXiAnCnRlc3QgJHJlc3VsdCA9IDAgfHwgeyBFeGl0IDE7IH0KTENfQUxMPUMgdHIgLWQgJ1xyJyA8IG1nLXRlc3QzLnRtcCA+IG1nLXRlc3QzLm91dCB8fCBFeGl0IDEKCmNhdCA8PFxFT0YgPiBtZy10ZXN0My5vawojIEdlcm1hbiB0cmFuc2xhdGlvbnMgZm9yIEdOVSBnZXR0ZXh0IHBhY2thZ2UuCiMgQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGdldHRleHQgMC4xMS1wcmUxXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMi0wOCAyMDozMyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTA0IDEyOjI1KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2FybCBFaWNod2FsZGVyIDxrZUBzdXNlLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogY29weS1maWxlLmM6NjAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHdoaWxlIG9wZW5pbmcgXCIlc1wiIGZvciByZWFkaW5nIgptc2dzdHIgItZmZm5lbiBkZXIgRGF0ZWkguyVzqyB6dW0gTGVzZW4gZmVobGdlc2NobGFnZW4iCgojOiBjb3B5LWZpbGUuYzo4MAojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3IgcmVhZGluZyBcIiVzXCIiCm1zZ3N0ciAiRmVobGVyIGJlaW0gTGVzZW4gdm9uILslc6siCgojOiBjb3B5LWZpbGUuYzo4NiBjb3B5LWZpbGUuYzo5MAojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3Igd3JpdGluZyBcIiVzXCIiCm1zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIHZvbiC7JXOrIgoKIzogY29weS1maWxlLmM6OTIKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIGFmdGVyIHJlYWRpbmcgXCIlc1wiIgptc2dzdHIgIkZlaGxlciBuYWNoIGRlbSBMZXNlbiB2b24guyVzqyIKCiM6IGVycm9yLmM6MTE1Cm1zZ2lkICJVbmtub3duIHN5c3RlbSBlcnJvciIKbXNnc3RyICJVbmJla2FubnRlciBTeXN0ZW1mZWhsZXIiCgojOiBvYnN0YWNrLmM6NDc0IHhlcnJvci5jOjc1IHhtYWxsb2MuYzo1Ngptc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJ2aXJ0dWVsbGVyIFNwZWljaGVyIGVyc2No9nBmdCIKRU9GCgo6ICR7RElGRj1kaWZmfQoke0RJRkZ9IG1nLXRlc3QzLm9rIG1nLXRlc3QzLm91dApyZXN1bHQ9JD8KCmV4aXQgJHJlc3VsdAo=