LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQXJhYmljIChFZ3lwdCkKICoKICoJKGFyYWJpYyBzdHJpbmdzIGluIGlzby04ODU5LTYpCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwYzAxIikKLyogTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIiIpICovCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJBcmFiaWMgKEVneXB0KSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJhcmUiKQovKiBMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiRWd5cHQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSwiRUdZIikKLyogTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsIiIpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQwMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTYiKQovKiBMT0NWQUwoTE9DQUxFX1NMSVNULCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIi4iKQovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywiMDEyMzQ1Njc4OSIpCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCLMIikKTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiQUVEIikKTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCwiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCIuIikKTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcsIjMiKQovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpICovCkxPQ1ZBTChMT0NBTEVfU0RBVEUsIi8iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikKTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCAieXl5eS9NTS9kZCIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCAi5SB5eXl5IE1NTU2sIGRkIGRkZGQiKQpMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFULCAidHQgaDptbTpzcyIpCi8qIExPQ1ZBTChMT0NBTEVfSURBVEUsIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lMREFURSkgKi8KTE9DVkFMKExPQ0FMRV9JVElNRSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ0VOVFVSWSkgKi8KTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfSU1PTkxaRVJPKSAqLwpMT0NWQUwoTE9DQUxFX1MxMTU5LCAi1SIpCkxPQ1ZBTChMT0NBTEVfUzIzNTksICLlIikKTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIpICovCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwix+TDy+bq5iIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCLH5Mvkx8vHwSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCLH5MPRyNnHwSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCLH5M7l6tMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwix+TM5dnnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsIsfk08jKIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsIsfkw83PIikKCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUxLCLmIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIssiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywi0SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU0LCLOIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsIswiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwi0yIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU3LCLNIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsIurmx+rRIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwi4cjRx+rRIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywi5cfR0yIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsIsXI0erkIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwi5cfq6CIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsIuro5urnIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywi6ujk6uciKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCLD2tPX0yIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksItPIyuXI0SIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCLD48royNEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwi5ujh5cjRIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsIs/q0+XI0SIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKSAqLwoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwi6ubHIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwi4cjRIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywi5cfRIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwixcjRIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwi5cfqIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwi6ujmIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywi6ujkIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiw9rTIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwi08jlIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIsPjyiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCLm6OEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiz+rTIikKLyogTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKLyogTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJhciIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiRUciKQo=