IyBEYW5pc2ggbWVzc2FnZXMgZm9yIG9wY29kZXMuCiMgQ29weXJpZ2h0IChDKSAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIEtlbGQgU2ltb25zZW4gPGtlbGRAZGt1dWcuZGs+LCAyMDAyLgojIENocmlzdGlhbiBSb3NlIDxtZW50aG9zQG1lbnRob3MuY29tPiwgMjAwMS4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogb3Bjb2RlcyAyLjEyLjkxXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMi0wNy0yMyAxNTo1NS0wNDAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAyLTA5LTA3IDE5OjM1KzAyMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2VsZCBTaW1vbnNlbiA8a2VsZEBka3V1Zy5kaz5cbiIKIkxhbmd1YWdlLVRlYW06IERhbmlzaCA8ZGFuc2tAa2xpZC5kaz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogYWxwaGEtb3BjLmM6MzM1Cm1zZ2lkICJicmFuY2ggb3BlcmFuZCB1bmFsaWduZWQiCm1zZ3N0ciAib3BlcmFuZGVuIGZvciBiZXRpbmdldCBob3AgbGlnZ2VyIHDlIHNr5nYgYWRyZXNzZSIKCiM6IGFscGhhLW9wYy5jOjM1OCBhbHBoYS1vcGMuYzozODAKbXNnaWQgImp1bXAgaGludCB1bmFsaWduZWQiCm1zZ3N0ciAiaG9wcGVy5WRldCBsaWdnZXIgcOUgc2vmdiBhZHJlc3NlIgoKIzogYXJjLWRpcy5jOjUyCm1zZ2lkICJJbGxlZ2FsIGxpbW0gcmVmZXJlbmNlIGluIGxhc3QgaW5zdHJ1Y3Rpb24hXG4iCm1zZ3N0ciAiVWd5bGRpZyBsaW1tLXJlZmVyZW5jZSBpIHNpZHN0ZSBpbnN0cnVrdGlvbiFcbiIKCiM6IGFybS1kaXMuYzo1MDcKbXNnaWQgIjxpbGxlZ2FsIHByZWNpc2lvbj4iCm1zZ3N0ciAiPHVneWxkaWcgcHLmY2lzaW9uPiIKCiM6IGFybS1kaXMuYzoxMDEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJVbnJlY29nbmlzZWQgcmVnaXN0ZXIgbmFtZSBzZXQ6ICVzXG4iCm1zZ3N0ciAiVWtlbmR0IHJlZ2lzdGVybmF2biBlciBhbmdpdmV0OiAlc1xuIgoKIzogYXJtLWRpcy5jOjEwMTcKIywgYy1mb3JtYXQKbXNnaWQgIlVucmVjb2duaXNlZCBkaXNhc3NlbWJsZXIgb3B0aW9uOiAlc1xuIgptc2dzdHIgIlVrZW5kdCBkaXNhc3NlbWJsZXJhbHRlcm5hdGl2OiAlc1xuIgoKIzogYXJtLWRpcy5jOjExOTEKbXNnaWQgIiIKIlxuIgoiVGhlIGZvbGxvd2luZyBBUk0gc3BlY2lmaWMgZGlzYXNzZW1ibGVyIG9wdGlvbnMgYXJlIHN1cHBvcnRlZCBmb3IgdXNlIHdpdGhcbiIKInRoZSAtTSBzd2l0Y2g6XG4iCm1zZ3N0ciAiIgoiXG4iCiJG+GxnZW5kZSBBUk0tc3BlY2lmaWtrZSBkaXNhc3NlbWJsZXJhbHRlcm5hdGl2IHVuZGVyc3T4dHRlcyBmb3IgYnJ1Z1xuIgoic2FtbWVuIG1lZCBmbGFnZXQgLU06XG4iCgojOiBhdnItZGlzLmM6MTE4IGF2ci1kaXMuYzoxMjgKbXNnaWQgInVuZGVmaW5lZCIKbXNnc3RyICJ1ZGVmaW5lcmV0IgoKIzogYXZyLWRpcy5jOjE4MAptc2dpZCAiSW50ZXJuYWwgZGlzYXNzZW1ibGVyIGVycm9yIgptc2dzdHIgIkludGVybiBmZWpsIGkgZGlzYXNzZW1ibGVyZW4iCgojOiBhdnItZGlzLmM6MjI4CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmtub3duIGNvbnN0cmFpbnQgYCVjJyIKbXNnc3RyICJ1a2VuZHQgYmVncuZuc25pbmcgXCIlY1wiIgoKIzogY2dlbi1hc20uYzozNDYgZnIzMC1pYmxkLmM6MTk1IGZydi1pYmxkLmM6MTk1IG0zMnItaWJsZC5jOjE5NQojOiBvcGVucmlzYy1pYmxkLmM6MTk1IHhzdG9ybXkxNi1pYmxkLmM6MTk1CiMsIGMtZm9ybWF0Cm1zZ2lkICJvcGVyYW5kIG91dCBvZiByYW5nZSAoJWxkIG5vdCBiZXR3ZWVuICVsZCBhbmQgJWxkKSIKbXNnc3RyICJvcGVyYW5kZW4gZXIgdWRlbiBmb3IgaW50ZXJ2YWxsZXQgKCVsZCBlciBpa2tlIG1lbGxlbSAlbGQgb2cgJWxkKSIKCiM6IGNnZW4tYXNtLmM6MzY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJvcGVyYW5kIG91dCBvZiByYW5nZSAoJWx1IG5vdCBiZXR3ZWVuICVsdSBhbmQgJWx1KSIKbXNnc3RyICJvcGVyYW5kZW4gZXIgdWRlbiBmb3IgaW50ZXJ2YWxsZXQgKCVsdSBlciBpa2tlIG1lbGxlbSAlbHUgb2cgJWx1KSIKCiM6IGQzMHYtZGlzLmM6MzEyCiMsIGMtZm9ybWF0Cm1zZ2lkICI8dW5rbm93biByZWdpc3RlciAlZD4iCm1zZ3N0ciAiPHVrZW5kdCByZWdpc3RlciAlZD4iCgojLiBDYW4ndCBoYXBwZW4uCiM6IGRpcy1idWYuYzo1NwojLCBjLWZvcm1hdAptc2dpZCAiVW5rbm93biBlcnJvciAlZFxuIgptc2dzdHIgIlVrZW5kdCBmZWpsICVkXG4iCgojOiBkaXMtYnVmLmM6NjIKIywgYy1mb3JtYXQKbXNnaWQgIkFkZHJlc3MgMHgleCBpcyBvdXQgb2YgYm91bmRzLlxuIgptc2dzdHIgIkFkcmVzc2VuIDB4JXggbGlnZ2VyIHVkZW4gZm9yIHRpbGxhZHRlIGdy5m5zZXIuXG4iCgojOiBmcjMwLWFzbS5jOjMyMyBmcnYtYXNtLmM6NTk1IG0zMnItYXNtLmM6MzI1IG9wZW5yaXNjLWFzbS5jOjI0NAojOiB4c3Rvcm15MTYtYXNtLmM6MjMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJVbnJlY29nbml6ZWQgZmllbGQgJWQgd2hpbGUgcGFyc2luZy5cbiIKbXNnc3RyICJVa2VuZHQgZmVsdCAlZCB2ZWQgdG9sa25pbmcuXG4iCgojOiBmcjMwLWFzbS5jOjM3MyBmcnYtYXNtLmM6NjQ1IG0zMnItYXNtLmM6Mzc1IG9wZW5yaXNjLWFzbS5jOjI5NAojOiB4c3Rvcm15MTYtYXNtLmM6MjgxCm1zZ2lkICJtaXNzaW5nIG1uZW1vbmljIGluIHN5bnRheCBzdHJpbmciCm1zZ3N0ciAiTWFuZ2xlciBtbmVtb25pYyBpIHN5bnRha3NzdHJlbmciCgojLiBXZSBjb3VsZG4ndCBwYXJzZSBpdC4KIzogZnIzMC1hc20uYzo1MDkgZnIzMC1hc20uYzo1MTMgZnIzMC1hc20uYzo2MDAgZnIzMC1hc20uYzo3MDIgZnJ2LWFzbS5jOjc4MQojOiBmcnYtYXNtLmM6Nzg1IGZydi1hc20uYzo4NzIgZnJ2LWFzbS5jOjk3NCBtMzJyLWFzbS5jOjUxMSBtMzJyLWFzbS5jOjUxNQojOiBtMzJyLWFzbS5jOjYwMiBtMzJyLWFzbS5jOjcwNCBvcGVucmlzYy1hc20uYzo0MzAgb3BlbnJpc2MtYXNtLmM6NDM0CiM6IG9wZW5yaXNjLWFzbS5jOjUyMSBvcGVucmlzYy1hc20uYzo2MjMgeHN0b3JteTE2LWFzbS5jOjQxNwojOiB4c3Rvcm15MTYtYXNtLmM6NDIxIHhzdG9ybXkxNi1hc20uYzo1MDggeHN0b3JteTE2LWFzbS5jOjYxMAptc2dpZCAidW5yZWNvZ25pemVkIGluc3RydWN0aW9uIgptc2dzdHIgInVrZW5kdCBpbnN0cnVrdGlvbiIKCiM6IGZyMzAtYXNtLmM6NTU2IGZydi1hc20uYzo4MjggbTMyci1hc20uYzo1NTggb3BlbnJpc2MtYXNtLmM6NDc3CiM6IHhzdG9ybXkxNi1hc20uYzo0NjQKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciAoZXhwZWN0ZWQgY2hhciBgJWMnLCBmb3VuZCBgJWMnKSIKbXNnc3RyICJzeW50YWtzZmVqbCAodGVnbmV0IFwiJWNcIiBmb3J2ZW50ZWRlcywgZmFuZHQgXCIlY1wiKSIKCiM6IGZyMzAtYXNtLmM6NTY2IGZydi1hc20uYzo4MzggbTMyci1hc20uYzo1Njggb3BlbnJpc2MtYXNtLmM6NDg3CiM6IHhzdG9ybXkxNi1hc20uYzo0NzQKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciAoZXhwZWN0ZWQgY2hhciBgJWMnLCBmb3VuZCBlbmQgb2YgaW5zdHJ1Y3Rpb24pIgptc2dzdHIgInN5bnRha3NmZWpsICh0ZWduZXQgXCIlY1wiIGZvcnZlbnRlZGVzLCBmYW5kdCBzbHV0IHDlIGluc3RydWt0aW9uKSIKCiM6IGZyMzAtYXNtLmM6NTk0IGZydi1hc20uYzo4NjYgbTMyci1hc20uYzo1OTYgb3BlbnJpc2MtYXNtLmM6NTE1CiM6IHhzdG9ybXkxNi1hc20uYzo1MDIKbXNnaWQgImp1bmsgYXQgZW5kIG9mIGxpbmUiCm1zZ3N0ciAic25hdnMgdmVkIHNsdXRuaW5nIHDlIGxpbmplbiIKCiM6IGZyMzAtYXNtLmM6NzAxIGZydi1hc20uYzo5NzMgbTMyci1hc20uYzo3MDMgb3BlbnJpc2MtYXNtLmM6NjIyCiM6IHhzdG9ybXkxNi1hc20uYzo2MDkKbXNnaWQgInVucmVjb2duaXplZCBmb3JtIG9mIGluc3RydWN0aW9uIgptc2dzdHIgInVrZW5kdCBmb3JtIGFmIGluc3RydWt0aW9uIgoKIzogZnIzMC1hc20uYzo3MTMgZnJ2LWFzbS5jOjk4NSBtMzJyLWFzbS5jOjcxNSBvcGVucmlzYy1hc20uYzo2MzQKIzogeHN0b3JteTE2LWFzbS5jOjYyMQojLCBjLWZvcm1hdAptc2dpZCAiYmFkIGluc3RydWN0aW9uIGAlLjUwcy4uLiciCm1zZ3N0ciAiZmVqbGFndGlnIGluc3RydWt0aW9uIFwiJS41MHMuLi5cIiIKCiM6IGZyMzAtYXNtLmM6NzE2IGZydi1hc20uYzo5ODggbTMyci1hc20uYzo3MTggb3BlbnJpc2MtYXNtLmM6NjM3CiM6IHhzdG9ybXkxNi1hc20uYzo2MjQKIywgYy1mb3JtYXQKbXNnaWQgImJhZCBpbnN0cnVjdGlvbiBgJS41MHMnIgptc2dzdHIgImZlamxhZ3RpZyBpbnN0cnVrdGlvbiBcIiUuNTBzXCIiCgojLiBEZWZhdWx0IHRleHQgdG8gcHJpbnQgaWYgYW4gaW5zdHJ1Y3Rpb24gaXNuJ3QgcmVjb2duaXplZC4KIzogZnIzMC1kaXMuYzozOSBmcnYtZGlzLmM6MzkgbTMyci1kaXMuYzozOSBtbWl4LWRpcy5jOjI4MiBvcGVucmlzYy1kaXMuYzozOQojOiB4c3Rvcm15MTYtZGlzLmM6MzkKbXNnaWQgIip1bmtub3duKiIKbXNnc3RyICIqdWtlbmR0KiIKCiM6IGZyMzAtZGlzLmM6MzE4IGZydi1kaXMuYzozNjAgbTMyci1kaXMuYzoyNDkgb3BlbnJpc2MtZGlzLmM6MTM2CiM6IHhzdG9ybXkxNi1kaXMuYzoxNjkKIywgYy1mb3JtYXQKbXNnaWQgIlVucmVjb2duaXplZCBmaWVsZCAlZCB3aGlsZSBwcmludGluZyBpbnNuLlxuIgptc2dzdHIgIlVrZW5kdCBmZWx0ICVkIHZlZCB1ZHNrcmlmdCBhZiBpbnN0cnVrdGlvbi5cbiIKCiM6IGZyMzAtaWJsZC5jOjE2NiBmcnYtaWJsZC5jOjE2NiBtMzJyLWlibGQuYzoxNjYgb3BlbnJpc2MtaWJsZC5jOjE2NgojOiB4c3Rvcm15MTYtaWJsZC5jOjE2NgojLCBjLWZvcm1hdAptc2dpZCAib3BlcmFuZCBvdXQgb2YgcmFuZ2UgKCVsZCBub3QgYmV0d2VlbiAlbGQgYW5kICVsdSkiCm1zZ3N0ciAib3BlcmFuZGVuIGVyIHVkZW4gZm9yIGludGVydmFsbGV0ICglbGQgZXIgaWtrZSBtZWxsZW0gJWxkIG9nICVsdSkiCgojOiBmcjMwLWlibGQuYzoxNzkgZnJ2LWlibGQuYzoxNzkgbTMyci1pYmxkLmM6MTc5IG9wZW5yaXNjLWlibGQuYzoxNzkKIzogeHN0b3JteTE2LWlibGQuYzoxNzkKIywgYy1mb3JtYXQKbXNnaWQgIm9wZXJhbmQgb3V0IG9mIHJhbmdlICglbHUgbm90IGJldHdlZW4gMCBhbmQgJWx1KSIKbXNnc3RyICJvcGVyYW5kZW4gdWRlbiBmb3IgaW50ZXJ2YWxsZXQgKCVsdSBpa2tlIG1lbGxlbSAwIG9nICVsdSkiCgojOiBmcjMwLWlibGQuYzo3MzAgZnJ2LWlibGQuYzo4MjAgbTMyci1pYmxkLmM6NjU5IG9wZW5yaXNjLWlibGQuYzo2MzMKIzogeHN0b3JteTE2LWlibGQuYzo2NzgKIywgYy1mb3JtYXQKbXNnaWQgIlVucmVjb2duaXplZCBmaWVsZCAlZCB3aGlsZSBidWlsZGluZyBpbnNuLlxuIgptc2dzdHIgIlVrZW5kdCBmZWx0ICVkIHZlZCBrb25zdHJ1a3Rpb24gYWYgaW5zdHJ1a3Rpb24uXG4iCgojOiBmcjMwLWlibGQuYzo5MzcgZnJ2LWlibGQuYzoxMTAzIG0zMnItaWJsZC5jOjc5MiBvcGVucmlzYy1pYmxkLmM6NzM1CiM6IHhzdG9ybXkxNi1pYmxkLmM6ODI2CiMsIGMtZm9ybWF0Cm1zZ2lkICJVbnJlY29nbml6ZWQgZmllbGQgJWQgd2hpbGUgZGVjb2RpbmcgaW5zbi5cbiIKbXNnc3RyICJVa2VuZHQgZmVsdCAlZCB2ZWQgYWZrb2RuaW5nIGFmIGluc3RydWt0aW9uLlxuIgoKIzogZnIzMC1pYmxkLmM6MTA4NiBmcnYtaWJsZC5jOjEzNDggbTMyci1pYmxkLmM6OTAyIG9wZW5yaXNjLWlibGQuYzo4MTUKIzogeHN0b3JteTE2LWlibGQuYzo5MzkKIywgYy1mb3JtYXQKbXNnaWQgIlVucmVjb2duaXplZCBmaWVsZCAlZCB3aGlsZSBnZXR0aW5nIGludCBvcGVyYW5kLlxuIgptc2dzdHIgIlVrZW5kdCBmZWx0ICVkIHZlZCBoZW50bmluZyBhZiBoZWx0YWxzb3BlcmFuZC5cbiIKCiM6IGZyMzAtaWJsZC5jOjEyMTUgZnJ2LWlibGQuYzoxNTczIG0zMnItaWJsZC5jOjk5MiBvcGVucmlzYy1pYmxkLmM6ODc1CiM6IHhzdG9ybXkxNi1pYmxkLmM6MTAzMgojLCBjLWZvcm1hdAptc2dpZCAiVW5yZWNvZ25pemVkIGZpZWxkICVkIHdoaWxlIGdldHRpbmcgdm1hIG9wZXJhbmQuXG4iCm1zZ3N0ciAiVWtlbmR0IGZlbHQgJWQgdmVkIGhlbnRuaW5nIGFmIHZtYS1vcGVyYW5kLlxuIgoKIzogZnIzMC1pYmxkLmM6MTM0OSBmcnYtaWJsZC5jOjE4MDcgbTMyci1pYmxkLmM6MTA5MCBvcGVucmlzYy1pYmxkLmM6OTQ0CiM6IHhzdG9ybXkxNi1pYmxkLmM6MTEzNAojLCBjLWZvcm1hdAptc2dpZCAiVW5yZWNvZ25pemVkIGZpZWxkICVkIHdoaWxlIHNldHRpbmcgaW50IG9wZXJhbmQuXG4iCm1zZ3N0ciAiVWtlbmR0IGZlbHQgJWQgdmVkIGluZHN0aWxsaW5nIGFmIGhlbHRhbHNvcGVyYW5kLlxuIgoKIzogZnIzMC1pYmxkLmM6MTQ3MSBmcnYtaWJsZC5jOjIwMjkgbTMyci1pYmxkLmM6MTE3NiBvcGVucmlzYy1pYmxkLmM6MTAwMQojOiB4c3Rvcm15MTYtaWJsZC5jOjEyMjQKIywgYy1mb3JtYXQKbXNnaWQgIlVucmVjb2duaXplZCBmaWVsZCAlZCB3aGlsZSBzZXR0aW5nIHZtYSBvcGVyYW5kLlxuIgptc2dzdHIgIlVrZW5kdCBmZWx0ICVkIHZlZCBpbmRzdGlsbGluZyBhZiB2bWEtb3BlcmFuZC5cbiIKCiM6IGg4MzAwLWRpcy5jOjM4NQojLCBjLWZvcm1hdAptc2dpZCAiSG1tbW0gJXgiCm1zZ3N0ciAiSG1tbW0gJXgiCgojOiBoODMwMC1kaXMuYzozOTYKIywgYy1mb3JtYXQKbXNnaWQgIkRvbid0IHVuZGVyc3RhbmQgJXggXG4iCm1zZ3N0ciAiRm9yc3TlciBpa2tlICV4IFxuIgoKIzogaDg1MDAtZGlzLmM6MTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW4ndCBjb3BlIHdpdGggaW5zZXJ0ICVkXG4iCm1zZ3N0ciAia2FuIGlra2UgaW5kc+Z0dGUgJWRcbiIKCiMuIENvdWxkbid0IHVuZGVyc3RhbmQgYW55dGhpbmcuCiM6IGg4NTAwLWRpcy5jOjM1MAojLCBjLWZvcm1hdAptc2dpZCAiJTAyeFx0XHQqdW5rbm93bioiCm1zZ3N0ciAiJTAyeFx0XHQqdWtlbmR0KiIKCiM6IGkzODYtZGlzLmM6MTY0OQptc2dpZCAiPGludGVybmFsIGRpc2Fzc2VtYmxlciBlcnJvcj4iCm1zZ3N0ciAiPGludGVybiBmZWpsIGkgZGlzYXNzZW1ibGVyZW4+IgoKIzogbTEwMjAwLWRpcy5jOjE5OQojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93blx0MHglMDJ4Igptc2dzdHIgInVrZW5kdFx0MHglMDJ4IgoKIzogbTEwMjAwLWRpcy5jOjMzOQojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93blx0MHglMDRseCIKbXNnc3RyICJ1a2VuZHRcdDB4JTA0bHgiCgojOiBtMTAzMDAtZGlzLmM6Njg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmtub3duXHQweCUwNHgiCm1zZ3N0ciAidWtlbmR0XHQweCUwNHgiCgojOiBtNjhrLWRpcy5jOjQyOQojLCBjLWZvcm1hdAptc2dpZCAiPGludGVybmFsIGVycm9yIGluIG9wY29kZSB0YWJsZTogJXMgJXM+XG4iCm1zZ3N0ciAiPGludGVybiBmZWpsIGkgaW5zdHJ1a3Rpb25zdGFiZWxsZW46ICVzICVzPlxuIgoKIzogbTY4ay1kaXMuYzoxMDA3CiMsIGMtZm9ybWF0Cm1zZ2lkICI8ZnVuY3Rpb24gY29kZSAlZD4iCm1zZ3N0ciAiPGZ1bmt0aW9uc2tvZGUgJWQ+IgoKIzogbTg4ay1kaXMuYzoyNTUKIywgYy1mb3JtYXQKbXNnaWQgIiMgPGRpcyBlcnJvcjogJTA4eD4iCm1zZ3N0ciAiIyA8ZGlzYXNzZW1ibGVyZmVqbDogJTA4eD4iCgojOiBtaXBzLWRpcy5jOjMzNwojLCBjLWZvcm1hdAptc2dpZCAiIyBpbnRlcm5hbCBlcnJvciwgdW5kZWZpbmVkIG1vZGlmaWVyKCVjKSIKbXNnc3RyICIjIGludGVybiBmZWpsLCB1a2VuZHQgbW9kaWZpa2F0b3IoJWMpIgoKIzogbWlwcy1kaXMuYzoxMjA5CiMsIGMtZm9ybWF0Cm1zZ2lkICIjIGludGVybmFsIGRpc2Fzc2VtYmxlciBlcnJvciwgdW5yZWNvZ25pc2VkIG1vZGlmaWVyICglYykiCm1zZ3N0ciAiIyBpbnRlcm4gZGlzYXNzZW1ibGVyLWZlamwsIHVrZW5kdCBtb2RpZmlrYXRvciAoJWMpIgoKIzogbW1peC1kaXMuYzozNAojLCBjLWZvcm1hdAptc2dpZCAiQmFkIGNhc2UgJWQgKCVzKSBpbiAlczolZFxuIgptc2dzdHIgIkZlamxhZ3RpZyAnY2FzZScgJWQgKCVzKSBpICVzOiVkXG4iCgojOiBtbWl4LWRpcy5jOjQ0CiMsIGMtZm9ybWF0Cm1zZ2lkICJJbnRlcm5hbDogTm9uLWRlYnVnZ2VkIGNvZGUgKHRlc3QtY2FzZSBtaXNzaW5nKTogJXM6JWQiCm1zZ3N0ciAiSW50ZXJudDogaWtrZS1mZWpsdGVzdGV0IGtvZGUgKHRlc3QtdGlsZuZsZGUgbWFuZ2xlcik6ICVzOiVkIgoKIzogbW1peC1kaXMuYzo1Mwptc2dpZCAiKHVua25vd24pIgptc2dzdHIgIih1a2VuZHQpIgoKIzogbW1peC1kaXMuYzo1MTcKIywgYy1mb3JtYXQKbXNnaWQgIip1bmtub3duIG9wZXJhbmRzIHR5cGU6ICVkKiIKbXNnc3RyICIqdWtlbmR0IG9wZXJhbmRzdHlwZTogJWQqIgoKIy4gSSBhbmQgWiBhcmUgb3V0cHV0IG9wZXJhbmRzIGFuZCBjYW5gdCBiZSBpbW1lZGlhdGUKIy4gKiBBIGlzIGFuIGFkZHJlc3MgYW5kIHdlIGNhbmB0IGhhdmUgdGhlIGFkZHJlc3Mgb2YKIy4gKiBhbiBpbW1lZGlhdGUgZWl0aGVyLiBXZSBkb24ndCBrbm93IGhvdyBtdWNoIHRvIGluY3JlYXNlCiMuICogYW9mZnNldHAgYnkgc2luY2Ugd2hhdGV2ZXIgZ2VuZXJhdGVkIHRoaXMgaXMgYnJva2VuCiMuICogYW55d2F5IQojLgojOiBuczMyay1kaXMuYzo2MjgKbXNnaWQgIiQ8dW5kZWZpbmVkPiIKbXNnc3RyICIkPHVkZWZpbmVyZXQ+IgoKIzogcHBjLW9wYy5jOjc3NyBwcGMtb3BjLmM6ODEwCm1zZ2lkICJpbnZhbGlkIGNvbmRpdGlvbmFsIG9wdGlvbiIKbXNnc3RyICJ1Z3lsZGlndCBiZXRpbmdldCBmbGFnIgoKIzogcHBjLW9wYy5jOjgxMgptc2dpZCAiYXR0ZW1wdCB0byBzZXQgeSBiaXQgd2hlbiB1c2luZyArIG9yIC0gbW9kaWZpZXIiCm1zZ3N0ciAiZm9yc/hnIHDlIGF0IHPmdHRlIHktYml0dGVuIG7lciBtb2RpZmlrYXRvcmVuICsgZWxsZXIgLSBibGV2IGJydWd0IgoKIzogcHBjLW9wYy5jOjg0NCBwcGMtb3BjLmM6ODk2Cm1zZ2lkICJvZmZzZXQgbm90IGEgbXVsdGlwbGUgb2YgNCIKbXNnc3RyICJhZnPmdCBpa2tlIGV0IHByb2R1a3QgYWYgNCIKCiM6IHBwYy1vcGMuYzo4NjkKbXNnaWQgIm9mZnNldCBub3QgYmV0d2VlbiAtMjA0OCBhbmQgMjA0NyIKbXNnc3RyICJhZnPmdCBpa2tlIG1lbGxlbSAtMjA0OCBvZyAyMDQ3IgoKIzogcHBjLW9wYy5jOjg5NAptc2dpZCAib2Zmc2V0IG5vdCBiZXR3ZWVuIC04MTkyIGFuZCA4MTkxIgptc2dzdHIgImFmc+Z0IGlra2UgbWVsbGVtIC04MTkyIG9nIDgxOTEiCgojOiBwcGMtb3BjLmM6OTIyCm1zZ2lkICJpZ25vcmluZyBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGluIGJyYW5jaCBvZmZzZXQiCm1zZ3N0ciAiaWdub3JlcmVyIG1pbmRzdGUgYmV0eWRlbmRlIGJpdCBpIGFmc+Z0IGZvciBiZXRpbmdldCBob3AiCgojOiBwcGMtb3BjLmM6OTU2IHBwYy1vcGMuYzo5OTMKbXNnaWQgImlsbGVnYWwgYml0bWFzayIKbXNnc3RyICJ1Z3lsZGlnIGJpdG1hc2tlIgoKIzogcHBjLW9wYy5jOjEwNjYKbXNnaWQgInZhbHVlIG91dCBvZiByYW5nZSIKbXNnc3RyICJ25nJkaWVuIGVyIHVkZW4gZm9yIGludGVydmFsbGV0IgoKIzogcHBjLW9wYy5jOjExNDIKbXNnaWQgImluZGV4IHJlZ2lzdGVyIGluIGxvYWQgcmFuZ2UiCm1zZ3N0ciAiaW5kZWtzcmVnaXN0cmV0IGVyIGkgaW5kbOZzbmluZ3NpbnRlcnZhbGxldCIKCiM6IHBwYy1vcGMuYzoxMTU4Cm1zZ2lkICJpbnZhbGlkIHJlZ2lzdGVyIG9wZXJhbmQgd2hlbiB1cGRhdGluZyIKbXNnc3RyICJ1Z3lsZGlnIHJlZ2lzdGVyb3BlcmFuZCB2ZWQgb3BkYXRlcmluZyIKCiMuIE1hcmsgYXMgbm9uLXZhbGlkIGluc3RydWN0aW9uCiM6IHNwYXJjLWRpcy5jOjc1MAptc2dpZCAidW5rbm93biIKbXNnc3RyICJ1a2VuZHQiCgojOiBzcGFyYy1kaXMuYzo4MjUKIywgYy1mb3JtYXQKbXNnaWQgIkludGVybmFsIGVycm9yOiAgYmFkIHNwYXJjLW9wY29kZS5oOiBcIiVzXCIsICUjLjhseCwgJSMuOGx4XG4iCm1zZ3N0ciAiSW50ZXJuIGZlamw6ICBk5XJsaWcgc3BhcmMtb3Bjb2RlLmg6IFwiJXNcIiwgJSMuOGx4LCAlIy44bHhcbiIKCiM6IHNwYXJjLWRpcy5jOjgzNgojLCBjLWZvcm1hdAptc2dpZCAiSW50ZXJuYWwgZXJyb3I6IGJhZCBzcGFyYy1vcGNvZGUuaDogXCIlc1wiLCAlIy44bHgsICUjLjhseFxuIgptc2dzdHIgIkludGVybiBmZWpsOiBk5XJsaWcgc3BhcmMtb3Bjb2RlLmg6IFwiJXNcIiwgJSMuOGx4LCAlIy44bHhcbiIKCiM6IHNwYXJjLWRpcy5jOjg4NQojLCBjLWZvcm1hdAptc2dpZCAiSW50ZXJuYWwgZXJyb3I6IGJhZCBzcGFyYy1vcGNvZGUuaDogXCIlc1wiID09IFwiJXNcIlxuIgptc2dzdHIgIkludGVybiBmZWpsOiBk5XJsaWcgc3BhcmMtb3Bjb2RlLmg6IFwiJXNcIiA9PSBcIiVzXCJcbiIKCiM6IHY4NTAtZGlzLmM6MjI0CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmtub3duIG9wZXJhbmQgc2hpZnQ6ICV4XG4iCm1zZ3N0ciAidWtlbmR0IG9wZXJhbmRza2lmdG5pbmc6ICV4XG4iCgojOiB2ODUwLWRpcy5jOjIzNgojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBwb3AgcmVnOiAlZFxuIgptc2dzdHIgInVrZW5kdCBwb3AtcmVnaXN0ZXI6ICVkXG4iCgojLiBUaGUgZnVuY3Rpb25zIHVzZWQgdG8gaW5zZXJ0IGFuZCBleHRyYWN0IGNvbXBsaWNhdGVkIG9wZXJhbmRzLgojLiBOb3RlOiBUaGVyZSBpcyBhIGNvbnNwaXJhY3kgYmV0d2VlbiB0aGVzZSBmdW5jdGlvbnMgYW5kCiMuIHY4NTBfaW5zZXJ0X29wZXJhbmQoKSBpbiBnYXMvY29uZmlnL3RjLXY4NTAuYy4gIEVycm9yIG1lc3NhZ2VzCiMuIGNvbnRhaW5pbmcgdGhlIHN0cmluZyAnb3V0IG9mIHJhbmdlJyB3aWxsIGJlIGlnbm9yZWQgdW5sZXNzIGEKIy4gc3BlY2lmaWMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBnaXZlbiB0byBHQVMuCiM6IHY4NTAtb3BjLmM6NjgKbXNnaWQgImRpc3BsYWNlbWVudCB2YWx1ZSBpcyBub3QgaW4gcmFuZ2UgYW5kIGlzIG5vdCBhbGlnbmVkIgptc2dzdHIgImZvcnNreWRuaW5nc3bmcmRpZW4gZXIgaWtrZSBpbmRlbmZvciBpbnRlcnZhbGxldCBvZyBsaWdnZXIgaWtrZSBw5SBsaWdlIGFkcmVzc2UiCgojOiB2ODUwLW9wYy5jOjY5Cm1zZ2lkICJkaXNwbGFjZW1lbnQgdmFsdWUgaXMgb3V0IG9mIHJhbmdlIgptc2dzdHIgImZvcnNreWRuaW5nc3bmcmRpZW4gZXIgdWRlbiBmb3IgaW50ZXJ2YWxsZXQiCgojOiB2ODUwLW9wYy5jOjcwCm1zZ2lkICJkaXNwbGFjZW1lbnQgdmFsdWUgaXMgbm90IGFsaWduZWQiCm1zZ3N0ciAiZm9yc2t5ZG5pbmdzduZyZGllbiBsaWdnZXIgaWtrZSBw5SBsaWdlIGFkcmVzc2UiCgojOiB2ODUwLW9wYy5jOjcyCm1zZ2lkICJpbW1lZGlhdGUgdmFsdWUgaXMgb3V0IG9mIHJhbmdlIgptc2dzdHIgInVtaWRkZWxiYXIgduZyZGkgZXIgdWRlbiBmb3IgaW50ZXJ2YWxsZXQiCgojOiB2ODUwLW9wYy5jOjgzCm1zZ2lkICJicmFuY2ggdmFsdWUgbm90IGluIHJhbmdlIGFuZCB0byBvZGQgb2Zmc2V0Igptc2dzdHIgInbmcmRpZW4gZm9yIGJldGluZ2V0IGhvcCBlciBpa2tlIGluZGVuIGZvciBpbnRlcnZhbGxldCBvZyB0aWwgZXQgdWxpZ2UgYWZz5nQiCgojOiB2ODUwLW9wYy5jOjg1IHY4NTAtb3BjLmM6MTE3Cm1zZ2lkICJicmFuY2ggdmFsdWUgb3V0IG9mIHJhbmdlIgptc2dzdHIgInbmcmRpZW4gZm9yIGJldGluZ2V0IGhvcCBlciB1ZGVuIGZvciBpbnRlcnZhbGxldCIKCiM6IHY4NTAtb3BjLmM6ODggdjg1MC1vcGMuYzoxMjAKbXNnaWQgImJyYW5jaCB0byBvZGQgb2Zmc2V0Igptc2dzdHIgImJldGluZ2V0IGhvcCB0aWwgdWxpZ2UgYWZz5nQiCgojOiB2ODUwLW9wYy5jOjExNQptc2dpZCAiYnJhbmNoIHZhbHVlIG5vdCBpbiByYW5nZSBhbmQgdG8gYW4gb2RkIG9mZnNldCIKbXNnc3RyICJ25nJkaWVuIGZvciBiZXRpbmdldCBob3AgZXIgaWtrZSBpbmRlbmZvciBpbnRlcnZhbGxldCBvZyB0aWwgZXQgdWxpZ2UgYWZz5nQiCgojOiB2ODUwLW9wYy5jOjM0Ngptc2dpZCAiaW52YWxpZCByZWdpc3RlciBmb3Igc3RhY2sgYWRqdXN0bWVudCIKbXNnc3RyICJ1Z3lsZGlndCByZWdpc3RlciBmb3Igc3Rha2p1c3RlcmluZyIKCiM6IHY4NTAtb3BjLmM6MzcwCm1zZ2lkICJpbW1lZGlhdGUgdmFsdWUgbm90IGluIHJhbmdlIGFuZCBub3QgZXZlbiIKbXNnc3RyICJ1bWlkZGVsYmFyIHbmcmRpIGVyIGlra2UgaW5kZW5mb3IgaW50ZXJ2YWxsZXQgb2cgaWtrZSBsaWdlIgoKIzogdjg1MC1vcGMuYzozNzUKbXNnaWQgImltbWVkaWF0ZSB2YWx1ZSBtdXN0IGJlIGV2ZW4iCm1zZ3N0ciAidW1pZGRlbGJhciB25nJkaSBza2FsIHbmcmUgbGlnZSIKCiM6IHhzdG9ybXkxNi1hc20uYzo3NAptc2dpZCAiQmFkIHJlZ2lzdGVyIGluIHByZWluY3JlbWVudCIKbXNnc3RyICJGb3JrZXJ0IHJlZ2lzdGVyIGkgcHLmaW5rcmVtZW50IgoKIzogeHN0b3JteTE2LWFzbS5jOjc5Cm1zZ2lkICJCYWQgcmVnaXN0ZXIgaW4gcG9zdGluY3JlbWVudCIKbXNnc3RyICJGb3JrZXJ0IHJlZ2lzdGVyIGkgcG9zdGlua3JlbWVudCIKCiM6IHhzdG9ybXkxNi1hc20uYzo4MQptc2dpZCAiQmFkIHJlZ2lzdGVyIG5hbWUiCm1zZ3N0ciAiRm9ya2VydCByZWdpc3Rlcm5hdm4iCgojOiB4c3Rvcm15MTYtYXNtLmM6ODUKbXNnaWQgIkxhYmVsIGNvbmZsaWN0cyB3aXRoIHJlZ2lzdGVyIG5hbWUiCm1zZ3N0ciAiRXRpa2V0dGUga29uZmxpa3RlciBtZWQgcmVnaXN0ZXJuYXZuIgoKIzogeHN0b3JteTE2LWFzbS5jOjg5Cm1zZ2lkICJMYWJlbCBjb25mbGljdHMgd2l0aCBgUngnIgptc2dzdHIgIkV0aWtldHRlIGtvbmZsaWt0ZXIgbWVkICdSeCciCgojOiB4c3Rvcm15MTYtYXNtLmM6OTEKbXNnaWQgIkJhZCBpbW1lZGlhdGUgZXhwcmVzc2lvbiIKbXNnc3RyICJGb3JrZXJ0IHVtaWRkZWxiYXJ0IHVkdHJ5ayIKCiM6IHhzdG9ybXkxNi1hc20uYzoxMjAKbXNnaWQgIlNtYWxsIG9wZXJhbmQgd2FzIG5vdCBhbiBpbW1lZGlhdGUgbnVtYmVyIgptc2dzdHIgIkxpbGxlIG9wZXJhbmQgdmFyIGlra2UgZXQgdW1pZGRlbGJhcnQgdGFsIgoKI34gbXNnaWQgInVucmVjb2duaXplZCBrZXl3b3JkL3JlZ2lzdGVyIG5hbWUiCiN+IG1zZ3N0ciAidWtlbmR0IG5hdm4gcOUgbvhnbGVvcmQvcmVnaXN0ZXIiCg==