Ly8geyBkZy1kbyBhc3NlbWJsZSAgfQovLyBPcmlnaW46IE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KLy8gVGVzdCB0aGF0IGEgZnJpZW5kIGRlY2xhcmF0aW9uIHdpdGggYW4gZXhwbGljaXQgOjogZmluZHMgdGhlIHJpZ2h0IGZuLgoKbmFtZXNwYWNlIE0gewpjbGFzcyBTOyAKfQp2b2lkIGZvbyhNOjpTICopOwoKbmFtZXNwYWNlIE0gewpjbGFzcyBTIHsKICBmcmllbmQgdm9pZCAoOjpmb28pKFMgKik7CiAgdm9pZCBGbigpOyAKICBzdGF0aWMgUyBzOwp9Owp9IAoKdm9pZCAoZm9vKShNOjpTICpwdHIpIHsKICBNOjpTOjpzLkZuKCk7CiAgcHRyLT5GbigpOwp9IAo=