IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgUgojIPLV09PLycog0MXSxdfPxCDEzNEgUgojCiMgQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUiBwYWNrYWdlLgojIEFsZXhleSBTaGlwdW5vdiA8ZGFjdHlsb3JoaXphIGF0IGdtYWlsPiAyMDA4CiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IFIgMi45LjBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDIwLTAzLTI0IDEwOjUzLTA3MDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTgtMDQtMDcgMDE6MTctMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBBbGV4ZXkgU2hpcHVub3YgPGRhY3R5bG9yaGl6YUBnbWFpbC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBSdXNzaWFuXG4iCiJMYW5ndWFnZTogcnVcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9S09JOC1SXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTM7IHBsdXJhbD0obiUxMD09MSAmJiBuJTEwMCE9MTEgPyAwIDogbiUxMD49MiAmJiBuIgoiJTEwPD00ICYmIChuJTEwMDwxMCB8fCBuJTEwMD49MjApID8gMSA6IDIpO1xuIgoiWC1HZW5lcmF0b3I6IFBvZWRpdCAxLjguNy4xXG4iCgojOiBncGFyLmM6NDczCm1zZ2lkICJ1cGRhdGVHQ29udGV4dCBtdXN0IG9ubHkgYmUgY2FsbGVkIGFmdGVyIGluaXRHQ29udGV4dCIKbXNnc3RyICIiCgojOiBncmlkLmM6MjEyCm1zZ2lkICJjYW5ub3QgY2xpcCB0byByb3RhdGVkIHZpZXdwb3J0Igptc2dzdHIgIs7FIM3Px9Ugz8LSxdrB1NggxM8g0M/XxdLO1dTPyiDPy8/OzsnD2SIKCiM6IGdyaWQuYzo2OTcgZ3JpZC5jOjcwMiBncmlkLmM6NzkyIGdyaWQuYzo3OTcKbXNnaWQgImNhbm5vdCBwb3AgdGhlIHRvcC1sZXZlbCB2aWV3cG9ydCAoJ2dyaWQnIGFuZCAnZ3JhcGhpY3MnIG91dHB1dCBtaXhlZD8pIgptc2dzdHIgIiIKIs7FIM3Px9UgydrXzMXe2CDPy8/OzsnD1SDXxdLIzsXHzyDV0s/XztEgKNfZ18/E2SAnZ3JpZCcgySAnZ3JhcGhpY3MnICIKItPNxdvBzMnT2D8pIgoKIzogZ3JpZC5jOjk3OQptc2dpZCAiYXR0ZW1wdCB0byBwbG90IG9uIG51bGwgZGV2aWNlIgptc2dzdHIgItDP0NnUy8Eg3sXS1MnU2CDOwSDO1czF18/NINXT1NLPytPU18UiCgojOiBncmlkLmM6MTQwMAptc2dpZCAidGhlcmUgaXMgbm8gbGF5b3V0IGRlZmluZWQiCm1zZ3N0ciAizsXUINrBxMHOzs/HzyDc08vJ2sEiCgojOiBncmlkLmM6MTYyMAptc2dpZCAicG9seWdvbiBlZGdlIG5vdCBmb3VuZCAoemVyby13aWR0aCBvciB6ZXJvLWhlaWdodD8pIgptc2dzdHIgIsvSwcogzc7Px8/Vx8/M2M7Jy8EgzsUgzsHKxMXOICjO1czF18HRINvJ0snOwSDJzMkg19nTz9TBPykiCgojOiBncmlkLmM6MTYyOQptc2dpZCAicG9seWdvbiBlZGdlIG5vdCBmb3VuZCIKbXNnc3RyICLL0sHKIM3Oz8fP1cfPzNjOycvBIM7FIM7BysTFziIKCiM6IGdyaWQuYzoxNzgzCm1zZ2lkICJyZXF1aXJlIGF0IGxlYXN0IHR3byBwb2ludHMgdG8gZHJhdyBhcnJvdyIKbXNnc3RyICLOwcTPIMvByyDNyc7JzdXNIMTXxSDUz97LySwg3tTPwtkgzsHSydPP18HU2CDT1NLFzMvVIgoKIzogZ3JpZC5jOjIxMDIKbXNnaWQgIm5vbi1maW5pdGUgY29udHJvbCBwb2ludCBpbiBYc3BsaW5lIgptc2dzdHIgIs7FLcvPzsXezsHRIMvPztTSz8zYzsHRINTP3svBINcgWHNwbGluZSIKCiM6IGdyaWQuYzoyOTgyCm1zZ2lkICJub24tZmluaXRlIHggb3IgeSBpbiBncmFwaGljcyBwYXRoIgptc2dzdHIgIsLF08vPzsXeztnKIHggyczJIHkg1yDL0snXz8ogy9LBxsnLwSIKCiM6IGdyaWQuYzozMDI2Cm1zZ2lkICJFbXB0eSByYXN0ZXIiCm1zZ3N0ciAi8NXT1M/KINLB09TSIgoKIzogZ3JpZC5jOjM1MDkKbXNnaWQgImludmFsaWQgcGxvdHRpbmcgc3ltYm9sIgptc2dzdHIgIs7F0NLB18nM2M7ZyiDTyc3Xz8wgx9LBxsnLwSIKCiM6IGdyaWQuYzozNTk3Cm1zZ2lkICJ1bmFibGUgdG8gY2xpcCB0byByb3RhdGVkIHJlY3RhbmdsZSIKbXNnc3RyICLOxSDNz8fVIM/C0sXawdTYIMTPINDP18XSztXUz8fPIN7F1NnSxcjVx8/M2M7Jy8EiCgojOiBsYXlvdXQuYzo2MDAKbXNnaWQgImludmFsaWQgJ2xheW91dC5wb3Mucm93JyIKbXNnc3RyICLOxdDSwdfJzNjO2cogJ2xheW91dC5wb3Mucm93JyIKCiM6IGxheW91dC5jOjYwNAptc2dpZCAiaW52YWxpZCAnbGF5b3V0LnBvcy5jb2wnIgptc2dzdHIgIs7F0NLB18nM2M7ZyiAnbGF5b3V0LnBvcy5jb2wnIgoKIzogbWF0cml4LmM6NTAKbXNnaWQgInNpbmd1bGFyIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCIKbXNnc3RyICLTyc7H1czR0s7B0SDU0sHO08bP0s3Bw8nPzs7B0SDNwdTSycPBIgoKIzogc3RhdGUuYzoxNzAKbXNnaWQgInVuYWJsZSB0byBzdG9yZSAnZ3JpZCcgc3RhdGUuICBUb28gbWFueSBkZXZpY2VzIG9wZW4/Igptc2dzdHIgIs7FIM3Px9Ug08/I0sHOydTYINPP09TP0c7JxSAnZ3JpZCcuIO/Uy9LZ1M8g08zJ28vPzSDNzs/HzyDV09TSz8rT1Nc/IgoKIzogdW5pdC5jOjY1Cm1zZ2lkICJDYW5ub3QgY3JlYXRlIHVuaXQgc2NhbGFyIGZyb20gMC1sZW5ndGggdW5pdCB2ZWN0b3IiCm1zZ3N0ciAiIgoKIzogdW5pdC5jOjc4OSB1bml0LmM6MTI4OAptc2dpZCAiaW52YWxpZCB1bml0IG9yIHVuaXQgbm90IHlldCBpbXBsZW1lbnRlZCIKbXNnc3RyICLOxdDSwdfJzNjOwdEgyczJIM7FINLB2tLBws/Uwc7OwdEgxcTJzsnDwSIKCiM6IHVuaXQuYzoxMzQ1IHVuaXQuYzoxMzc2Cm1zZ2lkICJWaWV3cG9ydCBoYXMgemVybyBkaW1lbnNpb24ocykiCm1zZ3N0ciAi78vPzs7Jw8Egyc3FxdQgzs/M2CDJ2s3F0sXOycoiCgojOiB1bml0LmM6MTQwOCB1bml0LmM6MTQyMyB1bml0LmM6MTQzOCB1bml0LmM6MTQ1Mwptc2dpZCAiVW5zdXBwb3J0ZWQgdW5pdCBjb252ZXJzaW9uIgptc2dzdHIgIu7F0M/ExMXS1snXwcXNwdEgy8/O18XS08nRIMXEyc7JwyDJ2s3F0sXOydEiCgojOiB1bml0LmM6MTU0NQptc2dpZCAiSW52YWxpZCB1bml0Igptc2dzdHIgIu7F0NLB18nM2M7B0SDFxMnOycPBIgoKIzogdW5pdC5jOjE1NjAKbXNnaWQgIid1bml0cycgbXVzdCBiZSBjaGFyYWN0ZXIiCm1zZ3N0ciAixcTJzsnD2SDEz8zWxc4gwtnU2CDC1cvXwc3JIgoKIzogdW5pdC5jOjE1NjMKbXNnaWQgIid1bml0cycgbXVzdCBiZSBvZiBsZW5ndGggPiAwIgptc2dzdHIgIsXEyc7Jw9kgxM/M1s7ZIMLZ1NggxMzJzs/KID4gMCIKCiM6IHVuaXQuYzoxNTc0Cm1zZ2lkICIiCiJkYXRhIG11c3QgYmUgZWl0aGVyIE5VTEwsIGhhdmUgbGVuZ3RoIDEsIG9yIG1hdGNoIHRoZSBsZW5ndGggb2YgdGhlIGZpbmFsICIKInVuaXQgdmVjdG9yIgptc2dzdHIgIiIKCiM6IHVuaXQuYzoxNTg2Cm1zZ2lkICJubyBzdHJpbmcgc3VwcGxpZWQgZm9yICdzdHJ3aWR0aC9oZWlnaHQnIHVuaXQiCm1zZ3N0ciAiIgoKIzogdW5pdC5jOjE1OTAKbXNnaWQgIm5vICdncm9iJyBzdXBwbGllZCBmb3IgJ2dyb2J3aWR0aC9oZWlnaHQnIHVuaXQiCm1zZ3N0ciAiIgoKIzogdW5pdC5jOjE2MDgKbXNnaWQgIidnUGF0aCcgbXVzdCBoYXZlIGRlcHRoIDEgaW4gJ2dyb2J3aWR0aC9oZWlnaHQnIHVuaXRzIgptc2dzdHIgIiIKCiM6IHVuaXQuYzoxNjEzCm1zZ2lkICJub24tTlVMTCB2YWx1ZSBzdXBwbGllZCBmb3IgcGxhaW4gdW5pdCIKbXNnc3RyICIiCgojOiB1bml0LmM6MTY2NiB1bml0LmM6MTcwMCB1bml0LmM6MTc0OQptc2dpZCAib2xkIHZlcnNpb24gb2YgdW5pdCBjbGFzcyBpcyBubyBsb25nZXIgYWxsb3dlZCIKbXNnc3RyICIiCgojOiB1bml0LmM6MTY3Mgptc2dpZCAib2JqZWN0IGlzIG5vdCBjb2VyY2libGUgdG8gYSB1bml0Igptc2dzdHIgIiIKCiM6IHVuaXQuYzoxNjk4Cm1zZ2lkICJvYmplY3QgaXMgbm90IGEgdW5pdCIKbXNnc3RyICIiCgojOiB1bml0LmM6MTgzMAptc2dpZCAidW5pdHMgY2FuIG9ubHkgYmUgbXVsdGlwbGllZCB3aXRoIG51bWVyaWNzIGFuZCBpbnRlZ2VycyIKbXNnc3RyICIiCgojOiB2aWV3cG9ydC5jOjMxNQptc2dpZCAibm9uLWZpbml0ZSBsb2NhdGlvbiBhbmQvb3Igc2l6ZSBmb3Igdmlld3BvcnQiCm1zZ3N0ciAizsUty8/Oxd7Oz8Ug0M/Mz9bFzsnFIMkvyczJINLB2s3F0iDPy8/OzsnD2SIKCiN+IG1zZ2lkICJ1bmltcGxlbWVudGVkIHVuaXQgZnVuY3Rpb24iCiN+IG1zZ3N0ciAizsUg0sHa0sHCz9TBzs7B0SDFxMnOyd7OwdEgxtXOy8PJ0SIKCiN+IG1zZ2lkICJJbnZhbGlkIGNpcmNsZSByYWRpdXMgKG11c3QgYmUgbm9uLW5lZ2F0aXZlKSIKI34gbXNnc3RyICLuxdDSwdfJzNjO2cog0sHEydXTIMvS1cfBICjEz8zWxc4gwtnU2CDOxc/U0snDwdTFzNjO2c0pIgo=