Li4gTWFjcm9zL0NvbmZpZ3VyYXRpb24vL0JPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMgfDEwCgpCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLi4gX2BCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRGA6CgpTeW5vcHNpcwotLS0tLS0tLQoKLi4gcGFyc2VkLWxpdGVyYWw6OgoKICAgIC8vICNkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUwoKCkRlc2NyaXB0aW9uCi0tLS0tLS0tLS0tCgpgYEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlNgYCBpcyBhbiBib29sZWFuIGNvbmZpZ3VyYXRpb24gbWFjcm8gCnJlZ3VsYXRpbmcgbGlicmFyeSdzIGludGVybmFsIHVzZSBvZiBwcmVwcm9jZXNzZWQgaGVhZGVycy4gV2hlbiBkZWZpbmVkLCBpdAppbnN0cnVjdHMgdGhlIE1QTCB0byBkaXNjYXJkIHRoZSBwcmUtZ2VuZXJhdGVkIGhlYWRlcnMgZm91bmQgaW4gCmBgYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkYGAgZGlyZWN0b3J5IGFuZCB1c2UgYHByZXByb2Nlc3NvciAKbWV0YXByb2dyYW1taW5nYF9fIHRlY2huaXF1ZXMgdG8gZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeSB2ZXJzaW9ucyBvZiB0aGUgCmxpYnJhcnkgY29tcG9uZW50cyBvbiB0aGUgZmx5LgoKSW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbGlicmFyeSwgdGhlIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGJ5IGRlZmF1bHQuClRvIGNoYW5nZSB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBkZWZpbmUgCmBgQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSU2BgIGJlZm9yZSAgaW5jbHVkaW5nIGFueSBsaWJyYXJ5IApoZWFkZXIuIAoKX18gaHR0cDovL2Jvb3N0LWNvbnN1bHRpbmcuY29tL3RtcGJvb2svcHJlcHJvY2Vzc29yLmh0bWwKCgpTZWUgYWxzbwotLS0tLS0tLQoKfE1hY3Jvc3wsIHxDb25maWd1cmF0aW9ufAoKLi4gfHByZXByb2Nlc3NlZCBoZWFkZXJzfCByZXBsYWNlOjogYHByZXByb2Nlc3NlZCBoZWFkZXJzYF8KLi4gX2BwcmVwcm9jZXNzZWQgaGVhZGVyc2A6IGBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRGBfCgoKLi4gY29weXJpZ2h0OjogQ29weXJpZ2h0IKkgIDIwMDEtMjAwOSBBbGVrc2V5IEd1cnRvdm95IGFuZCBEYXZpZCBBYnJhaGFtcwogICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCiAgIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQo=