LyoKICogTG9jYWxlIGRlZmluaXRpb25zIGZvciBBbGJhbmlhbgogKgogKiBDb3B5cmlnaHQgMjAwMiBBbGV4YW5kcmUgSnVsbGlhcmQgZm9yIENvZGVXZWF2ZXJzCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNwcmFnbWEgY29kZV9wYWdlKDEyNTApCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX0FMQkFOSUFOLCBTVUJMQU5HX0RFRkFVTFQKewogIExPQ0FMRV9GT05UU0lHTkFUVVJFIEwiXHgwMDI3XHg4MDAwXHgzODA4XHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAyXHgwMDAwXHgwMDAwXHgwNDAwXHgwMDEyXHgwMDAwXHgwMDAwXHhjNWQ0IgogIExPQ0FMRV9JQ0FMRU5EQVJUWVBFICIxIgogIExPQ0FMRV9JQ0VOVFVSWSAiMSIKICBMT0NBTEVfSUNPVU5UUlkgIjM1NSIKICBMT0NBTEVfSUNVUlJESUdJVFMgIjIiCiAgTE9DQUxFX0lDVVJSRU5DWSAiMSIKICBMT0NBTEVfSURBVEUgIjIiCiAgTE9DQUxFX0lEQVlMWkVSTyAiMSIKICBMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UgIjEyNTAiCiAgTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UgIjg1MiIKICBMT0NBTEVfSURFRkFVTFRDT1VOVFJZICIzNTUiCiAgTE9DQUxFX0lERUZBVUxURUJDRElDQ09ERVBBR0UgIjIwODgwIgogIExPQ0FMRV9JREVGQVVMVExBTkdVQUdFICIwNDFjIgogIExPQ0FMRV9JREVGQVVMVE1BQ0NPREVQQUdFICIxMDAyOSIKICBMT0NBTEVfSURFRkFVTFRVTklYQ09ERVBBR0UgIjI4NTkyIgogIExPQ0FMRV9JRElHSVRTICIyIgogIExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04gIjEiCiAgTE9DQUxFX0lGSVJTVERBWU9GV0VFSyAiMCIKICBMT0NBTEVfSUZJUlNUV0VFS09GWUVBUiAiMCIKICBMT0NBTEVfSUlOVExDVVJSRElHSVRTICIyIgogIExPQ0FMRV9JTEFOR1VBR0UgIjA0MWMiCiAgTE9DQUxFX0lMREFURSAiMiIKICBMT0NBTEVfSUxaRVJPICIxIgogIExPQ0FMRV9JTUVBU1VSRSAiMCIKICBMT0NBTEVfSU1PTkxaRVJPICIxIgogIExPQ0FMRV9JTkVHQ1VSUiAiNSIKICBMT0NBTEVfSU5FR05VTUJFUiAiMSIKICBMT0NBTEVfSU5FR1NFUEJZU1BBQ0UgIjAiCiAgTE9DQUxFX0lORUdTSUdOUE9TTiAiMSIKICBMT0NBTEVfSU5FR1NZTVBSRUNFREVTICIwIgogIExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUiAiMCIKICBMT0NBTEVfSVBBUEVSU0laRSAiOSIKICBMT0NBTEVfSVBPU1NFUEJZU1BBQ0UgIjAiCiAgTE9DQUxFX0lQT1NTSUdOUE9TTiAiMSIKICBMT0NBTEVfSVBPU1NZTVBSRUNFREVTICIwIgogIExPQ0FMRV9JVElNRSAiMCIKICBMT0NBTEVfSVRJTUVNQVJLUE9TTiAiMCIKICBMT0NBTEVfSVRMWkVSTyAiMCIKICBMT0NBTEVfUzExNTkgIlBEIgogIExPQ0FMRV9TMjM1OSAiTUQiCiAgTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSAiQUxCIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTEgIkjrbiIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUUyICJNYXIiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FMyAiTetyIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTQgIkVuaiIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUU1ICJQcmUiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiAiU2h0IgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTcgIkRpZSIKICBMT0NBTEVfU0FCQlJFVkxBTkdOQU1FICJTUUkiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxICJKYW4iCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyICJTaGsiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzICJNYXIiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0ICJQcmkiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1ICJNYWoiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2ICJRZXIiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3ICJLb3IiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4ICJHc2giCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5ICJTaHQiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCAiVGV0IgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEgIk7rbiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyICJEaGoiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMyAiIgogIExPQ0FMRV9TQ09VTlRSWSAiQWxiYW5pYSIKICBMT0NBTEVfU0NVUlJFTkNZICJMZWsiCiAgTE9DQUxFX1NEQVRFICItIgogIExPQ0FMRV9TREFZTkFNRTEgImUgaOtu6yIKICBMT0NBTEVfU0RBWU5BTUUyICJlIG1hcnTrIgogIExPQ0FMRV9TREFZTkFNRTMgImUgbetya3Vy6yIKICBMT0NBTEVfU0RBWU5BTUU0ICJlIGVuanRlIgogIExPQ0FMRV9TREFZTkFNRTUgImUgcHJlbXRlIgogIExPQ0FMRV9TREFZTkFNRTYgImUgc2h0dW7rIgogIExPQ0FMRV9TREFZTkFNRTcgImUgZGllbCIKICBMT0NBTEVfU0RFQ0lNQUwgIiwiCiAgTE9DQUxFX1NFTkdDT1VOVFJZICJBbGJhbmlhIgogIExPQ0FMRV9TRU5HQ1VSUk5BTUUgIkFsYmFuaWFuIExlayIKICBMT0NBTEVfU0VOR0xBTkdVQUdFICJBbGJhbmlhbiIKICBMT0NBTEVfU0dST1VQSU5HICIzOzAiCiAgTE9DQUxFX1NJTlRMU1lNQk9MICJBTEwiCiAgTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUgIkFMIgogIExPQ0FMRV9TSVNPNjM5TEFOR05BTUUgInNxIgogIExPQ0FMRV9TTEFOR1VBR0UgIkFsYmFuaWFuIgogIExPQ0FMRV9TTElTVCAiOyIKICBMT0NBTEVfU0xPTkdEQVRFICJ5eXl5LU1NLWRkIgogIExPQ0FMRV9TTU9OREVDSU1BTFNFUCAiLCIKICBMT0NBTEVfU01PTkdST1VQSU5HICIzOzAiCiAgTE9DQUxFX1NNT05USE5BTUUxICJqYW5hciIKICBMT0NBTEVfU01PTlRITkFNRTIgInNoa3VydCIKICBMT0NBTEVfU01PTlRITkFNRTMgIm1hcnMiCiAgTE9DQUxFX1NNT05USE5BTUU0ICJwcmlsbCIKICBMT0NBTEVfU01PTlRITkFNRTUgIm1haiIKICBMT0NBTEVfU01PTlRITkFNRTYgInFlcnNob3IiCiAgTE9DQUxFX1NNT05USE5BTUU3ICJrb3JyaWsiCiAgTE9DQUxFX1NNT05USE5BTUU4ICJndXNodCIKICBMT0NBTEVfU01PTlRITkFNRTkgInNodGF0b3IiCiAgTE9DQUxFX1NNT05USE5BTUUxMCAidGV0b3IiCiAgTE9DQUxFX1NNT05USE5BTUUxMSAibutudG9yIgogIExPQ0FMRV9TTU9OVEhOQU1FMTIgImRoamV0b3IiCiAgTE9DQUxFX1NNT05USE5BTUUxMyAiIgogIExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAgIi4iCiAgTE9DQUxFX1NOQU1FICJzcS1BTCIKICBMT0NBTEVfU05BVElWRUNUUllOQU1FICJTaHFpcOtyaWEiCiAgTE9DQUxFX1NOQVRJVkVDVVJSTkFNRSAiTGVrIgogIExPQ0FMRV9TTkFUSVZFRElHSVRTICIwMTIzNDU2Nzg5IgogIExPQ0FMRV9TTkFUSVZFTEFOR05BTUUgInNocWlwZSIKICBMT0NBTEVfU05FR0FUSVZFU0lHTiAiLSIKICBMT0NBTEVfU1BPU0lUSVZFU0lHTiAiIgogIExPQ0FMRV9TU0NSSVBUUyAiTGF0bjsiCiAgTE9DQUxFX1NTSE9SVERBVEUgInl5eXktTU0tZGQiCiAgTE9DQUxFX1NTT1JUTkFNRSAiRGVmYXVsdCIKICBMT0NBTEVfU1RIT1VTQU5EICIuIgogIExPQ0FMRV9TVElNRSAiOiIKICBMT0NBTEVfU1RJTUVGT1JNQVQgImg6bW06c3MudHQiCiAgTE9DQUxFX1NZRUFSTU9OVEggInl5eXktTU0iCgogIExHUlBJRF9XRVNURVJOX0VVUk9QRStMR1JQSURfUkVTX0JBU0UgIldlc3Rlcm4gRXVyb3BlIGFuZCBVbml0ZWQgU3RhdGVzIgogIExHUlBJRF9DRU5UUkFMX0VVUk9QRStMR1JQSURfUkVTX0JBU0UgIkNlbnRyYWwgRXVyb3BlIgogIExHUlBJRF9CQUxUSUMrTEdSUElEX1JFU19CQVNFICJCYWx0aWMiCiAgTEdSUElEX0dSRUVLK0xHUlBJRF9SRVNfQkFTRSAiR3JlZWsiCiAgTEdSUElEX0NZUklMTElDK0xHUlBJRF9SRVNfQkFTRSAiQ3lyaWxsaWMiCiAgTEdSUElEX1RVUktJU0grTEdSUElEX1JFU19CQVNFICJUdXJraWMiCiAgTEdSUElEX0pBUEFORVNFK0xHUlBJRF9SRVNfQkFTRSAiSmFwYW5lc2UiCiAgTEdSUElEX0tPUkVBTitMR1JQSURfUkVTX0JBU0UgIktvcmVhbiIKICBMR1JQSURfVFJBRElUSU9OQUxfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIlRyYWRpdGlvbmFsIENoaW5lc2UiCiAgTEdSUElEX1NJTVBMSUZJRURfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIlNpbXBsaWZpZWQgQ2hpbmVzZSIKICBMR1JQSURfVEhBSStMR1JQSURfUkVTX0JBU0UgIlRoYWkiCiAgTEdSUElEX0hFQlJFVytMR1JQSURfUkVTX0JBU0UgIkhlYnJldyIKICBMR1JQSURfQVJBQklDK0xHUlBJRF9SRVNfQkFTRSAiQXJhYmljIiAKICBMR1JQSURfVklFVE5BTUVTRStMR1JQSURfUkVTX0JBU0UgIlZpZXRuYW1lc2UiCiAgTEdSUElEX0lORElDK0xHUlBJRF9SRVNfQkFTRSAiSW5kaWMiCiAgTEdSUElEX0dFT1JHSUFOK0xHUlBJRF9SRVNfQkFTRSAiR2VvcmdpYW4iCiAgTEdSUElEX0FSTUVOSUFOK0xHUlBJRF9SRVNfQkFTRSAiQXJtZW5pYW4iIAp9Cg==