LyoKCVdBU1RFIERlbW8gUHJvamVjdDoKCVNhbXBsZSBXQVNURSBPYmplY3QgSGFuZGxlcnMKCglDb3B5cmlnaHQgqSAxOTkzLTE5OTggTWFyY28gUGlvdmFuZWxsaQoJQWxsIFJpZ2h0cyBSZXNlcnZlZAoqLwoKI2lmbmRlZiBfV0FTVEVfCiNpbmNsdWRlICJXQVNURS5oIgojZW5kaWYKCgovLyBQSUNUVVJFUwoKcGFzY2FsIE9TRXJyIEhhbmRsZU5ld1BpY3R1cmUoUG9pbnQgKmRlZmF1bHRPYmplY3RTaXplLCBXRU9iamVjdFJlZmVyZW5jZSBvYmplY3RSZWYpOwpwYXNjYWwgT1NFcnIgSGFuZGxlRGlzcG9zZVBpY3R1cmUoV0VPYmplY3RSZWZlcmVuY2Ugb2JqZWN0UmVmKTsKcGFzY2FsIE9TRXJyIEhhbmRsZURyYXdQaWN0dXJlKGNvbnN0IFJlY3QgKmRlc3RSZWN0LCBXRU9iamVjdFJlZmVyZW5jZSBvYmplY3RSZWYpOwoKLy8gU09VTkRTCgplbnVtIHsKCWtTb3VuZEljb25JRAk9CTU1MAp9OwoKcGFzY2FsIE9TRXJyIEhhbmRsZU5ld1NvdW5kKFBvaW50ICpkZWZhdWx0T2JqZWN0U2l6ZSwgV0VPYmplY3RSZWZlcmVuY2Ugb2JqZWN0UmVmKTsKcGFzY2FsIE9TRXJyIEhhbmRsZURyYXdTb3VuZChjb25zdCBSZWN0ICpkZXN0UmVjdCwgV0VPYmplY3RSZWZlcmVuY2Ugb2JqZWN0UmVmKTsKcGFzY2FsIEJvb2xlYW4gSGFuZGxlQ2xpY2tTb3VuZChQb2ludCBoaXRQdCwgRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLAoJCQkJCVVJbnQzMiBjbGlja1RpbWUsIFdFT2JqZWN0UmVmZXJlbmNlIG9iamVjdFJlZik7Cg==