LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQ3JvYXRpYQogKgkoQ3JvYXRpYW4gc3RyaW5ncyBpbiBjcDEyNTApCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwNDFhIikKLyogTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIiIpICovCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJDcm9hdGlhbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJocnYiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiaHJ2YXRza2kiKQovKiBMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJDcm9hdGlhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIkhSViIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJIcnZhdHNrYSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQxYSIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTAiKQovKiBMT0NWQUwoTE9DQUxFX1NMSVNULCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSKSAqLwpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiS24iKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCJIUksiKQovKiBMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKSAqLwpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywiMzswIikKLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywiMiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRU5DWSwiMyIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR0NVUlIsIjgiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NEQVRFLCIuIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TVElNRSwiOiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1NIT1JUREFURSwiZGQvTU0teXl5eSIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCJkZGQsIGQuIE1NTU0geXl5eSIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RJTUVGT1JNQVQpICovCi8qIExPQ1ZBTChMT0NBTEVfSURBVEUsIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lMREFURSkgKi8KTE9DVkFMKExPQ0FMRV9JVElNRSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ0VOVFVSWSkgKi8KTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfSU1PTkxaRVJPKSAqLwovKiBMT0NWQUwoTE9DQUxFX1MxMTU5LCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TMjM1OSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSKSAqLwoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsInBvbmVkamVsamFrIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsInV0b3JhayIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJzcmlqZWRhIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsIuhldHZydGFrIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsInBldGFrIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsInN1Ym90YSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU3LCJuZWRqZWxqYSIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwicG9uIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsInV0byIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCJzcmkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwi6GV0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsInBldCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCJzdWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywibmVkIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsInNpamXoYW5qIikgCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsInZlbGph6GEiKSAKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywib1wyMzZ1amFrIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwidHJhdmFuaiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTUsInN2aWJhbmoiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCJsaXBhbmoiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCJzcnBhbmoiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCJrb2xvdm96IikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwicnVqYW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwibGlzdG9wYWQiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwic3R1ZGVuaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCJwcm9zaW5hYyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwic2lqIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwidmVsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywib1wyMzZ1IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwidHJhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwic3ZpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwibGlwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywic3JwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwia29sIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwicnVqIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsImxpcyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJzdHUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwicHJvIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpCgovKiBMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImhyIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJIUiIpCgovKiBHcmVnb3JpamFuc2tpIGthbGVuZGFyICovCg==