LyogICAgIAoqIENvcHlyaWdodCCpIHsxOTk3LTE5OTl9LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioKKiBGaWxlIFRYVEJEUlkuSAoqCiogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CioKKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCiogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRlZCB0eXBlZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCiogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVjbGFyYXRpb24uCiogICAwNy8wOS85NyAgICBqZml0eiAgICAgICBPYnNvbGV0ZS4gIE5vdyBicmtpdGVyLmgKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKi8KCiNpZm5kZWYgVFhUQkRSWV9ICiNkZWZpbmUgVFhUQkRSWV9ICgojaW5jbHVkZSAidW5pY29kZS9icmtpdGVyLmgiCgojZW5kaWYgLy8gX1RYVEJEUlkKLy9lb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK