LyoKICogR2VybWFuIHJlc291cmNlcyBmb3IgV0xEQVAzMgogKgogKiBDb3B5cmlnaHQgMjAwNSBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIDAgIkVyZm9sZ3JlaWNoIgogICAgMSAiT3BlcmF0aW9uc2ZlaGxlciIKICAgIDIgIlByb3Rva29sbGZlaGxlciIKICAgIDMgIlplaXRsaW1pdCD8YmVyc2Nocml0dGVuIgogICAgNCAiR3L232VubGltaXQg/GJlcnNjaHJpdHRlbiIKICAgIDUgIlZlcmdsZWljaCBmYWxzY2giCiAgICA2ICJWZXJnbGVpY2ggd2FociIKICAgIDcgIkF1dGhlbnRpZml6aWVydW5nc21ldGhvZGUgbmljaHQgdW50ZXJzdPx0enQiCiAgICA4ICJTdGFya2UgQXV0aGVudGlmaXppZXJ1bmcgZXJmb3JkZXJsaWNoIgogICAgOSAiV2VpdGVybGVpdHVuZyAodjIpIgogICAgMTAgIldlaXRlcmxlaXR1bmciCiAgICAxMSAiVmVyd2FsdHVuZ3NsaW1pdCD8YmVyc2Nocml0dGVuIgogICAgMTIgIktyaXRpc2NoZSBFcndlaXRlcnVuZyBuaWNodCB2ZXJm/GdiYXIiCiAgICAxMyAiVmVydHJhdWxpY2hrZWl0IGVyZm9yZGVybGljaCIKICAgIDE0ICIiCiAgICAxNSAiIgogICAgMTYgIkF0dHJpYnV0IG5pY2h0IHZvcmhhbmRlbiIKICAgIDE3ICJOaWNodCBkZWZpbmllcnRlciBUeXAiCiAgICAxOCAiVW56dWzkc3NpZ2VyIFZlcmdsZWljaCIKICAgIDE5ICJSZXN0cmlrdGlvbnN2ZXJsZXR6dW5nIgogICAgMjAgIkF0dHJpYnV0IG9kZXIgV2VydCB2b3JoYW5kZW4iCiAgICAyMSAiVW5n/Gx0aWdlIFN5bnRheCIKICAgIDIyICIiCiAgICAyMyAiIgogICAgMjQgIiIKICAgIDI1ICIiCiAgICAyNiAiIgogICAgMjcgIiIKICAgIDI4ICIiCiAgICAyOSAiIgogICAgMzAgIiIKICAgIDMxICIiCiAgICAzMiAiT2JqZWt0IG5pY2h0IHZvcmhhbmRlbiIKICAgIDMzICJBbGlhc3Byb2JsZW0iCiAgICAzNCAiVW5n/Gx0aWdlIEROIFN5bnRheCIKICAgIDM1ICJFbmRrbm90ZW4iCiAgICAzNiAiQWxpYXMgRGVyZWZlcmVuemllcnVuZ3Nwcm9ibGVtIgogICAgMzcgIiIKICAgIDM4ICIiCiAgICAzOSAiIgogICAgNDAgIiIKICAgIDQxICIiCiAgICA0MiAiIgogICAgNDMgIiIKICAgIDQ0ICIiCiAgICA0NSAiIgogICAgNDYgIiIKICAgIDQ3ICIiCiAgICA0OCAiRmVobGVyaGFmdGUgQXV0aGVudGlmaXppZXJ1bmciCiAgICA0OSAiQW5tZWxkZWluZm9ybWF0aW9uZW4gZmVobGVyaGFmdCIKICAgIDUwICJOaWNodCBhdXNyZWljaGVuZGUgUmVjaHRlIgogICAgNTEgIkJlc2No5GZ0aWd0IgogICAgNTIgIk5pY2h0IHZlcmb8Z2JhciIKICAgIDUzICJBdXNm/GhydW5nIHZlcndlaWdlcnQiCiAgICA1NCAiU2NobGVpZmUgZXJrYW5udCIKICAgIDU1ICIiCiAgICA1NiAiIgogICAgNTcgIiIKICAgIDU4ICIiCiAgICA1OSAiIgogICAgNjAgIkZlaGxlbmRlIFNvcnRpZXJzdGV1ZXJ1bmciCiAgICA2MSAiSW5kZXhiZXJlaWNoc2ZlaGxlciIKICAgIDYyICIiCiAgICA2MyAiIgogICAgNjQgIkJlbm5lbnVuZ3N2ZXJsZXR6dW5nIgogICAgNjUgIk9iamVrdGtsYXNzZSB2ZXJsZXR6dCIKICAgIDY2ICJOaWNodCBlcmxhdWJ0IGb8ciBOaWNodC1FbmRrbm90ZW4iCiAgICA2NyAiTmljaHQgZXJsYXVidCBm/HIgUkROIgogICAgNjggIkJlcmVpdHMgdm9yaGFuZGVuIgogICAgNjkgIktlaW5lIE9iamVrdGtsYXNzZW5tb2RpZmlrYXRpb25lbiIKICAgIDcwICJFcmdlYm5pc3NlIHp1IGdyb98iCiAgICA3MSAiTWVocmVyZSBEU0FzIGJldHJvZmZlbiIKICAgIDcyICIiCiAgICA3MyAiIgogICAgNzQgIiIKICAgIDc1ICIiCiAgICA3NiAiIgogICAgNzcgIiIKICAgIDc4ICIiCiAgICA3OSAiIgogICAgODAgIkFuZGVyZSIKICAgIDgxICJTZXJ2ZXIgaGVydW50ZXJnZWZhaHJlbiIKICAgIDgyICJMb2thbGVyIEZlaGxlciIKICAgIDgzICJLb2RpZXJ1bmdzZmVobGVyIgogICAgODQgIkRla29kaWVydW5nc2ZlaGxlciIKICAgIDg1ICJaZWl0/GJlcnNjaHJlaXR1bmciCiAgICA4NiAiVW5iZWthbm50ZSBBdXRoZW50aWZpemllcnVuZyIKICAgIDg3ICJGaWx0ZXJmZWhsZXIiCiAgICA4OCAiQmVudXR6ZXJhYmJydWNoIgogICAgODkgIlBhcmFtZXRlcmZlaGxlciIKICAgIDkwICJOaWNodCBnZW78Z2VuZCBTcGVpY2hlciIKICAgIDkxICJLYW5uIG5pY2h0IHp1bSBMREFQIFNlcnZlciB2ZXJiaW5kZW4iCiAgICA5MiAiRGllIE9wZXJhdGlvbiB3aXJkIGR1cmNoIGRpZXNlcyBMREFQIFByb3Rva29sbCBuaWNodCB1bnRlcnN0/HR6dCIKICAgIDkzICJBbmdlZ2ViZW5lcyBTdGV1ZXJvYmpla3Qgd3VyZGUgaW4gZGVyIE1lbGR1bmcgbmljaHQgZ2VmdW5kZW4iCiAgICA5NCAiS2VpbmUgRXJnZWJuaXNzZSBpbiBkZXIgTWVsZHVuZyB2b3JoYW5kZW4iCiAgICA5NSAiV2VpdGVyZSBFcmdlYm5pc3NlIGdlZnVuZGVuIgogICAgOTYgIlNjaGxlaWZlIHfkaHJlbmQgZGVyIEFiYXJiZWl0dW5nIHZvbiBXZWl0ZXJsZWl0dW5nZW4iCiAgICA5NyAi3GJlcnNjaHJlaXR1bmcgZGVyIG1heGltYWxlbiBBbnphaGwgdm9uIFdlaXRlcmxlaXR1bmdlbiIKfQo=