Ly8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMS0yMDA4LgovLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgovLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKCi8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCgovLyBCb29zdC5SdW50aW1lLlBhcmFtCiNkZWZpbmUgQk9PU1RfUlRfUEFSQU1fV0lERV9TVFJJTkcKI2luY2x1ZGUgPGJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvbmFtZWRfcGFyYW1ldGVyLmhwcD4KI2luY2x1ZGUgPGJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyc2VyLmhwcD4KCm5hbWVzcGFjZSBydCAgPSBib29zdDo6d2lkZV9ydW50aW1lOwpuYW1lc3BhY2UgY2xhID0gYm9vc3Q6OndpZGVfcnVudGltZTo6Y2xhOwoKLy8gU1RMCiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkgewogICAgd2NoYXJfdCogYXJndltdID0geyBMImJhc2ljIiwgTCIt4OHi4yIsIEwiMjUiIH07CiAgICBpbnQgYXJnYyA9IHNpemVvZihhcmd2KS9zaXplb2YoY2hhciopOwoKICAgIHRyeSB7CiAgICAgICAgY2xhOjpwYXJzZXIgUDsKCiAgICAgICAgUCA8PCBjbGE6Om5hbWVkX3BhcmFtZXRlcjxpbnQ+KCBMIuDh4uMiICk7CgogICAgICAgIFAucGFyc2UoIGFyZ2MsIGFyZ3YgKTsKCiAgICAgICAgc3RkOjp3Y291dCA8PCBMIuDh4uMgPSAiIDw8IFAuZ2V0PGludD4oIEwi4OHi4yIgKSA8PCBzdGQ6OmVuZGw7CiAgICB9CiAgICBjYXRjaCggcnQ6OmxvZ2ljX2Vycm9yIGNvbnN0JiBleCApIHsKICAgICAgICBzdGQ6Ondjb3V0IDw8IEwiTG9naWMgRXJyb3I6ICIgPDwgZXgubXNnKCkgPDwgc3RkOjplbmRsOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKLy8gRU9GCg==