LyoKICogU3dlZGlzaCByZXNvdXJjZXMgZm9yIFdMREFQMzIKICoKICogQ29weXJpZ2h0IDIwMDcgRGFuaWVsIE55bGFuZGVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJ3aW5kZWYuaCIKCkxBTkdVQUdFIExBTkdfU1dFRElTSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRQp7CiAgICAwICJMeWNrYWRlcyIKICAgIDEgIk9wZXJhdGlvbnMgRXJyb3IiCiAgICAyICJQcm90b2tvbGxmZWwiCiAgICAzICJUaW1lIExpbWl0IEV4Y2VlZGVkIgogICAgNCAiU2l6ZSBMaW1pdCBFeGNlZWRlZCIKICAgIDUgIkNvbXBhcmUgRmFsc2UiCiAgICA2ICJDb21wYXJlIFRydWUiCiAgICA3ICJBdXRoZW50aWNhdGlvbiBNZXRob2QgTm90IFN1cHBvcnRlZCIKICAgIDggIlN0cm9uZyBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCIKICAgIDkgIlJlZmVycmFsICh2MikiCiAgICAxMCAiUmVmZXJyYWwiCiAgICAxMSAiQWRtaW5pc3RyYXRpb24gTGltaXQgRXhjZWVkZWQiCiAgICAxMiAiVW5hdmFpbGFibGUgQ3JpdGljYWwgRXh0ZW5zaW9uIgogICAgMTMgIkNvbmZpZGVudGlhbGl0eSBSZXF1aXJlZCIKICAgIDE0ICIiCiAgICAxNSAiIgogICAgMTYgIkluZ2V0IHPlZGFudCBhdHRyaWJ1dCIKICAgIDE3ICJPZGVmaW5pZXJhZCB0eXAiCiAgICAxOCAiSW5hcHByb3ByaWF0ZSBNYXRjaGluZyIKICAgIDE5ICJDb25zdHJhaW50IFZpb2xhdGlvbiIKICAgIDIwICJBdHRyaWJ1dCBlbGxlciB25HJkZSBmaW5ucyIKICAgIDIxICJPZ2lsdGlnIHN5bnRheCIKICAgIDIyICIiCiAgICAyMyAiIgogICAgMjQgIiIKICAgIDI1ICIiCiAgICAyNiAiIgogICAgMjcgIiIKICAgIDI4ICIiCiAgICAyOSAiIgogICAgMzAgIiIKICAgIDMxICIiCiAgICAzMiAiSW5nZXQgc+VkYW50IG9iamVrdCIKICAgIDMzICJBbGlhcyBQcm9ibGVtIgogICAgMzQgIkludmFsaWQgRE4gU3ludGF4IgogICAgMzUgIklzIExlYWYiCiAgICAzNiAiQWxpYXMgRGVyZWZlcmVuY2UgUHJvYmxlbSIKICAgIDM3ICIiCiAgICAzOCAiIgogICAgMzkgIiIKICAgIDQwICIiCiAgICA0MSAiIgogICAgNDIgIiIKICAgIDQzICIiCiAgICA0NCAiIgogICAgNDUgIiIKICAgIDQ2ICIiCiAgICA0NyAiIgogICAgNDggIkluYXBwcm9wcmlhdGUgQXV0aGVudGljYXRpb24iCiAgICA0OSAiSW52YWxpZCBDcmVkZW50aWFscyIKICAgIDUwICJJbnN1ZmZpY2llbnQgUmlnaHRzIgogICAgNTEgIlVwcHRhZ2VuIgogICAgNTIgIk90aWxsZ+RuZ2xpZyIKICAgIDUzICJVbndpbGxpbmcgVG8gUGVyZm9ybSIKICAgIDU0ICJMb29wIERldGVjdGVkIgogICAgNTUgIiIKICAgIDU2ICIiCiAgICA1NyAiIgogICAgNTggIiIKICAgIDU5ICIiCiAgICA2MCAiU29ydCBDb250cm9sIE1pc3NpbmciCiAgICA2MSAiSW5kZXggcmFuZ2UgZXJyb3IiCiAgICA2MiAiIgogICAgNjMgIiIKICAgIDY0ICJOYW1pbmcgVmlvbGF0aW9uIgogICAgNjUgIk9iamVjdCBDbGFzcyBWaW9sYXRpb24iCiAgICA2NiAiTm90IGFsbG93ZWQgb24gTm9uLWxlYWYiCiAgICA2NyAiTm90IGFsbG93ZWQgb24gUkROIgogICAgNjggIkZpbm5zIHJlZGFuIgogICAgNjkgIk5vIE9iamVjdCBDbGFzcyBNb2RzIgogICAgNzAgIlJlc3VsdHMgVG9vIExhcmdlIgogICAgNzEgIkFmZmVjdHMgTXVsdGlwbGUgRFNBcyIKICAgIDcyICIiCiAgICA3MyAiIgogICAgNzQgIiIKICAgIDc1ICIiCiAgICA3NiAiIgogICAgNzcgIiIKICAgIDc4ICIiCiAgICA3OSAiIgogICAgODAgIk90aGVyIgogICAgODEgIlNlcnZlciBEb3duIgogICAgODIgIkxva2FsdCBmZWwiCiAgICA4MyAiRW5jb2RpbmcgRXJyb3IiCiAgICA4NCAiRGVjb2RpbmcgRXJyb3IiCiAgICA4NSAiVGlkc2dy5G5zIPZ2ZXJzdGlnZW4iCiAgICA4NiAiQXV0aCBVbmtub3duIgogICAgODcgIkZpbHRlciBFcnJvciIKICAgIDg4ICJVc2VyIENhbmNlbGxlZCIKICAgIDg5ICJQYXJhbWV0ZXIgRXJyb3IiCiAgICA5MCAiTm8gTWVtb3J5IgogICAgOTEgIkNhbid0IGNvbm5lY3QgdG8gdGhlIExEQVAgc2VydmVyIgogICAgOTIgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdmVyc2lvbiBvZiB0aGUgTERBUCBwcm90b2NvbCIKICAgIDkzICJTcGVjaWZpZWQgY29udHJvbCB3YXMgbm90IGZvdW5kIGluIG1lc3NhZ2UiCiAgICA5NCAiTm8gcmVzdWx0IHByZXNlbnQgaW4gbWVzc2FnZSIKICAgIDk1ICJNb3JlIHJlc3VsdHMgcmV0dXJuZWQiCiAgICA5NiAiTG9vcCB3aGlsZSBoYW5kbGluZyByZWZlcnJhbHMiCiAgICA5NyAiUmVmZXJyYWwgaG9wIGxpbWl0IGV4Y2VlZGVkIgp9Cg==