LyoKICogTG9jYWxlIGRlZmluaXRpb25zIGZvciBXZWxzaCAoVW5pdGVkIEtpbmdkb20pCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZCBmb3IgQ29kZVdlYXZlcnMKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI3ByYWdtYSBjb2RlX3BhZ2UoMjg2MDQpCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX1dFTFNILCBTVUJMQU5HX0RFRkFVTFQKewogIExPQ0FMRV9GT05UU0lHTkFUVVJFIEwiXHgwMDJmXHg4MDAwXHgzODA4XHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAwXHgwMDAxXHgwMDAwXHgwMDAwXHg0MDAwXHgwMWZmXHgwMDNmXHg4MDAwXHhmZmZmIgogIExPQ0FMRV9JQ0FMRU5EQVJUWVBFICIxIgogIExPQ0FMRV9JQ0VOVFVSWSAiMCIKICBMT0NBTEVfSUNPVU5UUlkgIjQ0IgogIExPQ0FMRV9JQ1VSUkRJR0lUUyAiMiIKICBMT0NBTEVfSUNVUlJFTkNZICIwIgogIExPQ0FMRV9JREFURSAiMSIKICBMT0NBTEVfSURBWUxaRVJPICIxIgogIExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSAiMjg2MDQiCiAgTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UgIjg1MCIKICBMT0NBTEVfSURFRkFVTFRDT1VOVFJZICI0NCIKICBMT0NBTEVfSURFRkFVTFRFQkNESUNDT0RFUEFHRSAiMjAyODUiCiAgTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UgIjA0MDkiCiAgTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UgIjEwMDAwIgogIExPQ0FMRV9JREVGQVVMVFVOSVhDT0RFUEFHRSAiMjg2MDQiCiAgTE9DQUxFX0lESUdJVFMgIjIiCiAgTE9DQUxFX0lESUdJVFNVQlNUSVRVVElPTiAiMSIKICBMT0NBTEVfSUZJUlNUREFZT0ZXRUVLICIwIgogIExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSICIwIgogIExPQ0FMRV9JSU5UTENVUlJESUdJVFMgIjIiCiAgTE9DQUxFX0lMQU5HVUFHRSAiMDQ5MiIKICBMT0NBTEVfSUxEQVRFICIxIgogIExPQ0FMRV9JTFpFUk8gIjEiCiAgTE9DQUxFX0lNRUFTVVJFICIwIgogIExPQ0FMRV9JTU9OTFpFUk8gIjEiCiAgTE9DQUxFX0lORUdDVVJSICIxIgogIExPQ0FMRV9JTkVHTlVNQkVSICIxIgogIExPQ0FMRV9JTkVHU0VQQllTUEFDRSAiMCIKICBMT0NBTEVfSU5FR1NJR05QT1NOICIzIgogIExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMgIjEiCiAgTE9DQUxFX0lORVVUUkFMICIwIgogIExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUiAiMCIKICBMT0NBTEVfSVBBUEVSU0laRSAiOSIKICBMT0NBTEVfSVBPU1NFUEJZU1BBQ0UgIjAiCiAgTE9DQUxFX0lQT1NTSUdOUE9TTiAiMyIKICBMT0NBTEVfSVBPU1NZTVBSRUNFREVTICIxIgogIExPQ0FMRV9JUkVBRElOR0xBWU9VVCAiMCIKICBMT0NBTEVfSVRJTUUgIjEiCiAgTE9DQUxFX0lUSU1FTUFSS1BPU04gIjAiCiAgTE9DQUxFX0lUTFpFUk8gIjEiCiAgTE9DQUxFX1MxMTU5ICJ5YiIKICBMT0NBTEVfUzIzNTkgInlwIgogIExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUgIkdCUiIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUUxICJMbG4iCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiAiTWF3IgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTMgIk1lciIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUU0ICJJYXUiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSAiR3dlIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTYgIlNhZCIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUU3ICJTdWwiCiAgTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSAiQ1lNIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSAiSW9uIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiAiQ2h3IgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMyAiTWF3IgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCAiRWJyIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSAiTWFpIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiAiTWVoIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNyAiR29yIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCAiQXdzIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSAiTWVkIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAgIkh5ZCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExICJUY2giCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiAiUmhnIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMgIiIKICBMT0NBTEVfU0NPVU5UUlkgIkN5bXJ1IgogIExPQ0FMRV9TQ1VSUkVOQ1kgIqMiCiAgTE9DQUxFX1NEQVRFICIvIgogIExPQ0FMRV9TREFZTkFNRTEgIkR5ZGQgTGx1biIKICBMT0NBTEVfU0RBWU5BTUUyICJEeWRkIE1hd3J0aCIKICBMT0NBTEVfU0RBWU5BTUUzICJEeWRkIE1lcmNoZXIiCiAgTE9DQUxFX1NEQVlOQU1FNCAiRHlkZCBJYXUiCiAgTE9DQUxFX1NEQVlOQU1FNSAiRHlkZCBHd2VuZXIiCiAgTE9DQUxFX1NEQVlOQU1FNiAiRHlkZCBTYWR3cm4iCiAgTE9DQUxFX1NEQVlOQU1FNyAiRHlkZCBTdWwiCiAgTE9DQUxFX1NERUNJTUFMICIuIgogIExPQ0FMRV9TRU5HQ09VTlRSWSAiV2FsZXMiCiAgTE9DQUxFX1NFTkdDVVJSTkFNRSAiVUsgUG91bmQgU3RlcmxpbmciCiAgTE9DQUxFX1NFTkdMQU5HVUFHRSAiV2Vsc2giCiAgTE9DQUxFX1NHUk9VUElORyAiMzswIgogIExPQ0FMRV9TSU5UTFNZTUJPTCAiR0JQIgogIExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FICJHQiIKICBMT0NBTEVfU0lTTzYzOUxBTkdOQU1FICJjeSIKICBMT0NBTEVfU0xBTkdVQUdFICJXZWxzaCAoVW5pdGVkIEtpbmdkb20pIgogIExPQ0FMRV9TTElTVCAiLCIKICBMT0NBTEVfU0xPTkdEQVRFICJkZCBNTU1NIHl5eXkiCiAgTE9DQUxFX1NNT05ERUNJTUFMU0VQICIuIgogIExPQ0FMRV9TTU9OR1JPVVBJTkcgIjM7MCIKICBMT0NBTEVfU01PTlRITkFNRTEgIklvbmF3ciIKICBMT0NBTEVfU01PTlRITkFNRTIgIkNod2Vmcm9yIgogIExPQ0FMRV9TTU9OVEhOQU1FMyAiTWF3cnRoIgogIExPQ0FMRV9TTU9OVEhOQU1FNCAiRWJyaWxsIgogIExPQ0FMRV9TTU9OVEhOQU1FNSAiTWFpIgogIExPQ0FMRV9TTU9OVEhOQU1FNiAiTWVoZWZpbiIKICBMT0NBTEVfU01PTlRITkFNRTcgIkdvcmZmZW5uYWYiCiAgTE9DQUxFX1NNT05USE5BTUU4ICJBd3N0IgogIExPQ0FMRV9TTU9OVEhOQU1FOSAiTWVkaSIKICBMT0NBTEVfU01PTlRITkFNRTEwICJIeWRyZWYiCiAgTE9DQUxFX1NNT05USE5BTUUxMSAiVGFjaHdlZGQiCiAgTE9DQUxFX1NNT05USE5BTUUxMiAiUmhhZ2Z5ciIKICBMT0NBTEVfU01PTlRITkFNRTEzICIiCiAgTE9DQUxFX1NNT05USE9VU0FORFNFUCAiLCIKICBMT0NBTEVfU05BTUUgImN5LUdCIgogIExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUgIkN5bXJ1IgogIExPQ0FMRV9TTkFUSVZFQ1VSUk5BTUUgInB1bnQiCiAgTE9DQUxFX1NOQVRJVkVESUdJVFMgIjAxMjM0NTY3ODkiCiAgTE9DQUxFX1NOQVRJVkVESVNQTEFZTkFNRSAiQ3ltcmFlZyAoQ3ltcnUpIgogIExPQ0FMRV9TTkFUSVZFTEFOR05BTUUgIkN5bXJhZWciCiAgTE9DQUxFX1NORUdBVElWRVNJR04gIi0iCiAgTE9DQUxFX1NPUEVOVFlQRUxBTkdVQUdFVEFHICJXRUwgIgogIExPQ0FMRV9TUE9TSVRJVkVTSUdOICIiCiAgTE9DQUxFX1NTQ1JJUFRTICJMYXRuOyIKICBMT0NBTEVfU1NIT1JUREFURSAiZGQvTU0veXl5eSIKICBMT0NBTEVfU1NIT1JUVElNRSAiSEg6bW0iCiAgTE9DQUxFX1NTT1JUTkFNRSAiRGVmYXVsdCIKICBMT0NBTEVfU1RIT1VTQU5EICIsIgogIExPQ0FMRV9TVElNRSAiOiIKICBMT0NBTEVfU1RJTUVGT1JNQVQgIkhIOm1tOnNzIgogIExPQ0FMRV9TWUVBUk1PTlRIICJNTU1NIHl5eXkiCiAgCiAgTEdSUElEX1dFU1RFUk5fRVVST1BFK0xHUlBJRF9SRVNfQkFTRSAiVW5vbCBHb3JsbGV3aW4gRXdyb3AgYSBVbmVkaWciCiAgTEdSUElEX0NFTlRSQUxfRVVST1BFK0xHUlBJRF9SRVNfQkFTRSAiQ2Fub2xvZyBFd3JvcCIKICBMR1JQSURfQkFMVElDK0xHUlBJRF9SRVNfQkFTRSAiQmFsdGlnIgogIExHUlBJRF9HUkVFSytMR1JQSURfUkVTX0JBU0UgIkdyb2VnIgogIExHUlBJRF9DWVJJTExJQytMR1JQSURfUkVTX0JBU0UgIkN5cmlsbGljIgogIExHUlBJRF9UVVJLSVNIK0xHUlBJRF9SRVNfQkFTRSAiVHVya2ljIgogIExHUlBJRF9KQVBBTkVTRStMR1JQSURfUkVTX0JBU0UgIlNpYXBhbmVhaWRkIgogIExHUlBJRF9LT1JFQU4rTEdSUElEX1JFU19CQVNFICJDb3JlYSIKICBMR1JQSURfVFJBRElUSU9OQUxfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIlRzZWluaWFpZGQgVHJhZGRvZGlhZG9sIgogIExHUlBJRF9TSU1QTElGSUVEX0NISU5FU0UrTEdSUElEX1JFU19CQVNFICJUc2VpbmlhaWRkIFN5bWxlaWRkaWVkaWciCiAgTEdSUElEX1RIQUkrTEdSUElEX1JFU19CQVNFICJUaGFpIgogIExHUlBJRF9IRUJSRVcrTEdSUElEX1JFU19CQVNFICJIZWJyYWVnIgogIExHUlBJRF9BUkFCSUMrTEdSUElEX1JFU19CQVNFICJBcmFiZWciCiAgTEdSUElEX1ZJRVROQU1FU0UrTEdSUElEX1JFU19CQVNFICJGaWV0bmFtZWciCiAgTEdSUElEX0lORElDK0xHUlBJRF9SRVNfQkFTRSAiSW5kaWMiCiAgTEdSUElEX0dFT1JHSUFOK0xHUlBJRF9SRVNfQkFTRSAiR2VvcmdpYW4iCiAgTEdSUElEX0FSTUVOSUFOK0xHUlBJRF9SRVNfQkFTRSAiQXJtZW5pYSIKfQo=