IyBUcmFuc2xhdGlvbiBvZiBncmlkLnBvdCB0byBGcmVuY2gKIyBDb3B5cmlnaHQgKEMpIDIwMDUgVGhlIFIgRm91bmRhdGlvbgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBncmlkIFIgcGFja2FnZS4KIyBQaGlsaXBwZSBHcm9zamVhbiA8cGhncm9zamVhbkBzY2l2aWV3cy5vcmc+LCAyMDA1LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBSIDIuMTIuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTYtMDQtMDEgMTA6MDEtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxNC0wMy0xNyAxMDo0OCswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFBoaWxpcHBlIEdyb3NqZWFuIDxwaGdyb3NqZWFuQHNjaXZpZXdzLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IEZyZW5jaCA8Ui1jb3JlQHItcHJvamVjdC5vcmc+XG4iCiJMYW5ndWFnZTogZnJcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gPiAxKTtcbiIKIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS42LjRcbiIKCiM6IGdyaWQuYzoyMTIKbXNnaWQgImNhbm5vdCBjbGlwIHRvIHJvdGF0ZWQgdmlld3BvcnQiCm1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjb3VwZXIgdW5lIHZ1ZSBwaXZvdOllIgoKIzogZ3JpZC5jOjY5NyBncmlkLmM6NzAyIGdyaWQuYzo3OTIgZ3JpZC5jOjc5Nwptc2dpZCAiY2Fubm90IHBvcCB0aGUgdG9wLWxldmVsIHZpZXdwb3J0ICgnZ3JpZCcgYW5kICdncmFwaGljcycgb3V0cHV0IG1peGVkPykiCm1zZ3N0ciAiIgoiaW1wb3NzaWJsZSBkZSByZW5kcmUgbGEgdnVlIGRlIHBsdXMgaGF1dCBuaXZlYXUgYWN0aXZlIChzb3J0aWVzICdncmlkJyBldCAiCiInZ3JhcGhpY3MnIG1peOllcyA/KSIKCiM6IGdyaWQuYzo5NzcKbXNnaWQgImF0dGVtcHQgdG8gcGxvdCBvbiBudWxsIGRldmljZSIKbXNnc3RyICJ0ZW50YXRpdmUgZGUgZGVzc2luIGRhbnMgdW4gcOlyaXBo6XJpcXVlICdudWxsJyIKCiM6IGdyaWQuYzoxMzA5Cm1zZ2lkICJ0aGVyZSBpcyBubyBsYXlvdXQgZGVmaW5lZCIKbXNnc3RyICJhdWN1bmUgbWlzZSBlbiBwYWdlIGTpZmluaWUiCgojOiBncmlkLmM6MTUyOQptc2dpZCAicG9seWdvbiBlZGdlIG5vdCBmb3VuZCAoemVyby13aWR0aCBvciB6ZXJvLWhlaWdodD8pIgptc2dzdHIgImV4dHLpbWl06SBkZSBwb2x5Z29uZSBub24gdHJvdXbpIChsb25ndWV1ciBvdSBsYXJnZXVyIG51bGxlPykiCgojOiBncmlkLmM6MTUzOAptc2dpZCAicG9seWdvbiBlZGdlIG5vdCBmb3VuZCIKbXNnc3RyICJleHRy6W1pdOlzIGRlIHBvbHlnb25lIG5vbiB0cm91dulzIgoKIzogZ3JpZC5jOjE2OTIKbXNnaWQgInJlcXVpcmUgYXQgbGVhc3QgdHdvIHBvaW50cyB0byBkcmF3IGFycm93Igptc2dzdHIgImlsIGZhdXQgYXUgbW9pbnMgZGV1eCBwb2ludHMgcG91ciB0cmFjZXIgdW5lIGZs6GNoZSIKCiM6IGdyaWQuYzoyMDA4Cm1zZ2lkICJub24tZmluaXRlIGNvbnRyb2wgcG9pbnQgaW4gWHNwbGluZSIKbXNnc3RyICJwb2ludCBkZSBjb250cvRsZSBub24gZmluaSBkYW5zIFhzcGxpbmUiCgojOiBncmlkLmM6Mjg3Mwptc2dpZCAibm9uLWZpbml0ZSB4IG9yIHkgaW4gZ3JhcGhpY3MgcGF0aCIKbXNnc3RyICJ4IG91IHkgaW5maW5pcyBkYW5zIGxlIGNoZW1pbiBncmFwaGlxdWUiCgojOiBncmlkLmM6MjkxNAptc2dpZCAiRW1wdHkgcmFzdGVyIgptc2dzdHIgImdyYXBoaXF1ZSByYXN0ZXIgdmlkZSIKCiM6IGdyaWQuYzozMzY4Cm1zZ2lkICJpbnZhbGlkIHBsb3R0aW5nIHN5bWJvbCIKbXNnc3RyICJzeW1ib2xlcyBncmFwaGlxdWVzIGluY29ycmVjdHMiCgojOiBncmlkLmM6MzQ1NAptc2dpZCAidW5hYmxlIHRvIGNsaXAgdG8gcm90YXRlZCByZWN0YW5nbGUiCm1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjb3VwZXIgYXUgcmVjdGFuZ2xlIHBpdm906SIKCiM6IGxheW91dC5jOjU4OQptc2dpZCAiaW52YWxpZCAnbGF5b3V0LnBvcy5yb3cnIgptc2dzdHIgIidsYXlvdXQucG9zLnJvdycgaW5jb3JyZWN0IgoKIzogbGF5b3V0LmM6NTkzCm1zZ2lkICJpbnZhbGlkICdsYXlvdXQucG9zLmNvbCciCm1zZ3N0ciAiJ2xheW91dC5wb3MuY29sJyBpbmNvcnJlY3QiCgojOiBtYXRyaXguYzo1MAptc2dpZCAic2luZ3VsYXIgdHJhbnNmb3JtYXRpb24gbWF0cml4Igptc2dzdHIgIm1hdHJpY2UgZGUgdHJhbnNmb3JtYXRpb24gc2luZ3VsaehyZSIKCiM6IHN0YXRlLmM6MTcwCm1zZ2lkICJ1bmFibGUgdG8gc3RvcmUgJ2dyaWQnIHN0YXRlLiAgVG9vIG1hbnkgZGV2aWNlcyBvcGVuPyIKbXNnc3RyICIiCiJJbXBvc3NpYmxlIGRlIGNvbnNlcnZlciBsJ+l0YXQgZGUgJ2dyaWQnLiBUcm9wIGRlIHDpcmlwaOlyaXF1ZXMgb3V2ZXJ0cyA/IgoKIzogdW5pdC5jOjI2MCB1bml0LmM6NDEwIHVuaXQuYzoxMjEwIHVuaXQuYzoxMjkwIHVuaXQuYzoxMzcwIHVuaXQuYzoxNDUwCm1zZ2lkICJ1bmltcGxlbWVudGVkIHVuaXQgZnVuY3Rpb24iCm1zZ3N0ciAiZm9uY3Rpb24gZCd1bml06SBub24gaW1wbOltZW506WUiCgojOiB1bml0LmM6ODkzIHVuaXQuYzoxNjQ1Cm1zZ2lkICJpbnZhbGlkIHVuaXQgb3IgdW5pdCBub3QgeWV0IGltcGxlbWVudGVkIgptc2dzdHIgInVuaXTpIG5vbiBhdXRvcmlz6WUgb3UgcGFzIGVuY29yZSBpbXBs6W1lbnTpZSIKCiM6IHVuaXQuYzoxNzAyIHVuaXQuYzoxNzMzCm1zZ2lkICJWaWV3cG9ydCBoYXMgemVybyBkaW1lbnNpb24ocykiCm1zZ3N0ciAiTGUgem9uZSBhY3RpdmUgKFZpZXdwb3J0KSBhIGRlcyBkaW1lbnNpb25zIG51bGxlcyIKCiM6IHVuaXQuYzoxNzY1IHVuaXQuYzoxNzgwIHVuaXQuYzoxNzk1IHVuaXQuYzoxODEwCm1zZ2lkICJVbnN1cHBvcnRlZCB1bml0IGNvbnZlcnNpb24iCm1zZ3N0ciAiQ29udmVyc2lvbiBkJ3VuaXTpcyBub24gc3VwcG9ydOllIgoKIzogdW5pdC5jOjE4OTgKbXNnaWQgIkludmFsaWQgdW5pdCIKbXNnc3RyICJVbml06SBpbmNvcnJlY3RlIgoKIzogdW5pdC5jOjE5MTQKbXNnaWQgIid1bml0cycgbXVzdCBiZSBjaGFyYWN0ZXIiCm1zZ3N0ciAibGVzIHVuaXTpcyBkYW5zICd1bml0cycgZG9pdmVudCDqdHJlIHVuZSBjaGHubmUgZGUgY2FyYWN06HJlcyIKCiM6IHVuaXQuYzoxOTE3Cm1zZ2lkICIndW5pdHMnIG11c3QgYmUgb2YgbGVuZ3RoID4gMCIKbXNnc3RyICJMZXMgdW5pdOlzIGRhbnMgJ3VuaXRzJyBkb2l2ZW50IOp0cmUgZGUgbG9uZ3VldXIgPiAwIgoKIzogdmlld3BvcnQuYzozMTUKbXNnaWQgIm5vbi1maW5pdGUgbG9jYXRpb24gYW5kL29yIHNpemUgZm9yIHZpZXdwb3J0Igptc2dzdHIgInBvc2l0aW9uIGV0IC8gb3UgdGFpbGxlIGRlIHZ1ZSBub24gZmluaWVzIgoKI34gbXNnaWQgIkludmFsaWQgY2lyY2xlIHJhZGl1cyAobXVzdCBiZSBub24tbmVnYXRpdmUpIgojfiBtc2dzdHIgIlJheW9uIGRlIGNlcmNsZSBpbmNvcnJlY3QgKGRvaXQg6nRyZSBwb3NpdGlmIG91IG51bCkiCg==