LyoKICogTG9jYWxlIGRlZmluaXRpb25zIGZvciBBbGJhbmlhbgogKgogKiBDb3B5cmlnaHQgMjAwMiBBbGV4YW5kcmUgSnVsbGlhcmQgZm9yIENvZGVXZWF2ZXJzCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNwcmFnbWEgY29kZV9wYWdlKDEyNTApCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX0FMQkFOSUFOLCBTVUJMQU5HX0RFRkFVTFQKewogIExPQ0FMRV9GT05UU0lHTkFUVVJFIEwiXHgwMDI3XHg4MDAwXHgzODA4XHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAyXHgwMDAwXHgwMDAwXHgwNDAwXHgwMDEyXHgwMDAwXHgwMDAwXHhjNWQ0IgogIExPQ0FMRV9JQ0FMRU5EQVJUWVBFICIxIgogIExPQ0FMRV9JQ0VOVFVSWSAiMSIKICBMT0NBTEVfSUNPVU5UUlkgIjM1NSIKICBMT0NBTEVfSUNVUlJESUdJVFMgIjIiCiAgTE9DQUxFX0lDVVJSRU5DWSAiMSIKICBMT0NBTEVfSURBVEUgIjIiCiAgTE9DQUxFX0lEQVlMWkVSTyAiMSIKICBMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UgIjEyNTAiCiAgTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UgIjg1MiIKICBMT0NBTEVfSURFRkFVTFRDT1VOVFJZICIzNTUiCiAgTE9DQUxFX0lERUZBVUxURUJDRElDQ09ERVBBR0UgIjIwODgwIgogIExPQ0FMRV9JREVGQVVMVExBTkdVQUdFICIwNDFjIgogIExPQ0FMRV9JREVGQVVMVE1BQ0NPREVQQUdFICIxMDAyOSIKICBMT0NBTEVfSURFRkFVTFRVTklYQ09ERVBBR0UgIjI4NTkyIgogIExPQ0FMRV9JRElHSVRTICIyIgogIExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04gIjEiCiAgTE9DQUxFX0lGSVJTVERBWU9GV0VFSyAiMCIKICBMT0NBTEVfSUZJUlNUV0VFS09GWUVBUiAiMCIKICBMT0NBTEVfSUlOVExDVVJSRElHSVRTICIyIgogIExPQ0FMRV9JTEFOR1VBR0UgIjA0MWMiCiAgTE9DQUxFX0lMREFURSAiMiIKICBMT0NBTEVfSUxaRVJPICIxIgogIExPQ0FMRV9JTUVBU1VSRSAiMCIKICBMT0NBTEVfSU1PTkxaRVJPICIxIgogIExPQ0FMRV9JTkVHQ1VSUiAiNSIKICBMT0NBTEVfSU5FR05VTUJFUiAiMSIKICBMT0NBTEVfSU5FR1NFUEJZU1BBQ0UgIjAiCiAgTE9DQUxFX0lORUdTSUdOUE9TTiAiMSIKICBMT0NBTEVfSU5FR1NZTVBSRUNFREVTICIwIgogIExPQ0FMRV9JTkVVVFJBTCAiMCIKICBMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIgIjAiCiAgTE9DQUxFX0lQQVBFUlNJWkUgIjkiCiAgTE9DQUxFX0lQT1NTRVBCWVNQQUNFICIwIgogIExPQ0FMRV9JUE9TU0lHTlBPU04gIjEiCiAgTE9DQUxFX0lQT1NTWU1QUkVDRURFUyAiMCIKICBMT0NBTEVfSVJFQURJTkdMQVlPVVQgIjAiCiAgTE9DQUxFX0lUSU1FICIwIgogIExPQ0FMRV9JVElNRU1BUktQT1NOICIwIgogIExPQ0FMRV9JVExaRVJPICIwIgogIExPQ0FMRV9TMTE1OSAiUEQiCiAgTE9DQUxFX1MyMzU5ICJNRCIKICBMT0NBTEVfU0FCQlJFVkNUUllOQU1FICJBTEIiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSAiSOtuIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTIgIk1hciIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUUzICJN63IiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCAiRW5qIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTUgIlByZSIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUU2ICJTaHQiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNyAiRGllIgogIExPQ0FMRV9TQUJCUkVWTEFOR05BTUUgIlNRSSIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEgIkphbiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIgIlNoayIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMgIk1hciIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTQgIlByaSIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTUgIk1haiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYgIlFlciIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcgIktvciIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTggIkdzaCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTkgIlNodCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwICJUZXQiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSAiTutuIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIgIkRoaiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzICIiCiAgTE9DQUxFX1NDT1VOVFJZICJBbGJhbmlhIgogIExPQ0FMRV9TQ1VSUkVOQ1kgIkxlayIKICBMT0NBTEVfU0RBVEUgIi0iCiAgTE9DQUxFX1NEQVlOQU1FMSAiZSBo627rIgogIExPQ0FMRV9TREFZTkFNRTIgImUgbWFydOsiCiAgTE9DQUxFX1NEQVlOQU1FMyAiZSBt63JrdXLrIgogIExPQ0FMRV9TREFZTkFNRTQgImUgZW5qdGUiCiAgTE9DQUxFX1NEQVlOQU1FNSAiZSBwcmVtdGUiCiAgTE9DQUxFX1NEQVlOQU1FNiAiZSBzaHR1busiCiAgTE9DQUxFX1NEQVlOQU1FNyAiZSBkaWVsIgogIExPQ0FMRV9TREVDSU1BTCAiLCIKICBMT0NBTEVfU0VOR0NPVU5UUlkgIkFsYmFuaWEiCiAgTE9DQUxFX1NFTkdDVVJSTkFNRSAiQWxiYW5pYW4gTGVrIgogIExPQ0FMRV9TRU5HTEFOR1VBR0UgIkFsYmFuaWFuIgogIExPQ0FMRV9TR1JPVVBJTkcgIjM7MCIKICBMT0NBTEVfU0lOVExTWU1CT0wgIkFMTCIKICBMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSAiQUwiCiAgTE9DQUxFX1NJU082MzlMQU5HTkFNRSAic3EiCiAgTE9DQUxFX1NMQU5HVUFHRSAiQWxiYW5pYW4iCiAgTE9DQUxFX1NMSVNUICI7IgogIExPQ0FMRV9TTE9OR0RBVEUgInl5eXktTU0tZGQiCiAgTE9DQUxFX1NNT05ERUNJTUFMU0VQICIsIgogIExPQ0FMRV9TTU9OR1JPVVBJTkcgIjM7MCIKICBMT0NBTEVfU01PTlRITkFNRTEgImphbmFyIgogIExPQ0FMRV9TTU9OVEhOQU1FMiAic2hrdXJ0IgogIExPQ0FMRV9TTU9OVEhOQU1FMyAibWFycyIKICBMT0NBTEVfU01PTlRITkFNRTQgInByaWxsIgogIExPQ0FMRV9TTU9OVEhOQU1FNSAibWFqIgogIExPQ0FMRV9TTU9OVEhOQU1FNiAicWVyc2hvciIKICBMT0NBTEVfU01PTlRITkFNRTcgImtvcnJpayIKICBMT0NBTEVfU01PTlRITkFNRTggImd1c2h0IgogIExPQ0FMRV9TTU9OVEhOQU1FOSAic2h0YXRvciIKICBMT0NBTEVfU01PTlRITkFNRTEwICJ0ZXRvciIKICBMT0NBTEVfU01PTlRITkFNRTExICJu6250b3IiCiAgTE9DQUxFX1NNT05USE5BTUUxMiAiZGhqZXRvciIKICBMT0NBTEVfU01PTlRITkFNRTEzICIiCiAgTE9DQUxFX1NNT05USE9VU0FORFNFUCAiLiIKICBMT0NBTEVfU05BTUUgInNxLUFMIgogIExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUgIlNocWlw63JpYSIKICBMT0NBTEVfU05BVElWRUNVUlJOQU1FICJMZWsiCiAgTE9DQUxFX1NOQVRJVkVESUdJVFMgIjAxMjM0NTY3ODkiCiAgTE9DQUxFX1NOQVRJVkVESVNQTEFZTkFNRSAic2hxaXBlIChTaHFpcOtyaWEpIgogIExPQ0FMRV9TTkFUSVZFTEFOR05BTUUgInNocWlwZSIKICBMT0NBTEVfU05FR0FUSVZFU0lHTiAiLSIKICBMT0NBTEVfU1BPU0lUSVZFU0lHTiAiIgogIExPQ0FMRV9TU0NSSVBUUyAiTGF0bjsiCiAgTE9DQUxFX1NTSE9SVERBVEUgInl5eXktTU0tZGQiCiAgTE9DQUxFX1NTT1JUTkFNRSAiRGVmYXVsdCIKICBMT0NBTEVfU1RIT1VTQU5EICIuIgogIExPQ0FMRV9TVElNRSAiOiIKICBMT0NBTEVfU1RJTUVGT1JNQVQgImg6bW06c3MudHQiCiAgTE9DQUxFX1NZRUFSTU9OVEggInl5eXktTU0iCgogIExHUlBJRF9XRVNURVJOX0VVUk9QRStMR1JQSURfUkVTX0JBU0UgIldlc3Rlcm4gRXVyb3BlIGFuZCBVbml0ZWQgU3RhdGVzIgogIExHUlBJRF9DRU5UUkFMX0VVUk9QRStMR1JQSURfUkVTX0JBU0UgIkNlbnRyYWwgRXVyb3BlIgogIExHUlBJRF9CQUxUSUMrTEdSUElEX1JFU19CQVNFICJCYWx0aWMiCiAgTEdSUElEX0dSRUVLK0xHUlBJRF9SRVNfQkFTRSAiR3JlZWsiCiAgTEdSUElEX0NZUklMTElDK0xHUlBJRF9SRVNfQkFTRSAiQ3lyaWxsaWMiCiAgTEdSUElEX1RVUktJU0grTEdSUElEX1JFU19CQVNFICJUdXJraWMiCiAgTEdSUElEX0pBUEFORVNFK0xHUlBJRF9SRVNfQkFTRSAiSmFwYW5lc2UiCiAgTEdSUElEX0tPUkVBTitMR1JQSURfUkVTX0JBU0UgIktvcmVhbiIKICBMR1JQSURfVFJBRElUSU9OQUxfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIlRyYWRpdGlvbmFsIENoaW5lc2UiCiAgTEdSUElEX1NJTVBMSUZJRURfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIlNpbXBsaWZpZWQgQ2hpbmVzZSIKICBMR1JQSURfVEhBSStMR1JQSURfUkVTX0JBU0UgIlRoYWkiCiAgTEdSUElEX0hFQlJFVytMR1JQSURfUkVTX0JBU0UgIkhlYnJldyIKICBMR1JQSURfQVJBQklDK0xHUlBJRF9SRVNfQkFTRSAiQXJhYmljIiAKICBMR1JQSURfVklFVE5BTUVTRStMR1JQSURfUkVTX0JBU0UgIlZpZXRuYW1lc2UiCiAgTEdSUElEX0lORElDK0xHUlBJRF9SRVNfQkFTRSAiSW5kaWMiCiAgTEdSUElEX0dFT1JHSUFOK0xHUlBJRF9SRVNfQkFTRSAiR2VvcmdpYW4iCiAgTEdSUElEX0FSTUVOSUFOK0xHUlBJRF9SRVNfQkFTRSAiQXJtZW5pYW4iIAp9Cg==