IyAtKi0gY29kaW5nOiBpc28tODg1OS0xIC0qLQoiIiIgUHl0aG9uICdlc2NhcGUnIENvZGVjCgoKV3JpdHRlbiBieSBNYXJ0aW4gdi4gTPZ3aXMgKG1hcnRpbkB2LmxvZXdpcy5kZSkuCgoiIiIKaW1wb3J0IGNvZGVjcwoKY2xhc3MgQ29kZWMoY29kZWNzLkNvZGVjKToKCiAgICBlbmNvZGUgPSBjb2RlY3MuZXNjYXBlX2VuY29kZQogICAgZGVjb2RlID0gY29kZWNzLmVzY2FwZV9kZWNvZGUKCmNsYXNzIFN0cmVhbVdyaXRlcihDb2RlYyxjb2RlY3MuU3RyZWFtV3JpdGVyKToKICAgIHBhc3MKCmNsYXNzIFN0cmVhbVJlYWRlcihDb2RlYyxjb2RlY3MuU3RyZWFtUmVhZGVyKToKICAgIHBhc3MKCmRlZiBnZXRyZWdlbnRyeSgpOgoKICAgIHJldHVybiAoQ29kZWMuZW5jb2RlLENvZGVjLmRlY29kZSxTdHJlYW1SZWFkZXIsU3RyZWFtV3JpdGVyKQo=