시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 11 6 6 54.545%

문제

선영: "상근이가 총을 먼저 쐈어요!"

상덕: "아니에요. 희원이가 있는 쪽에서 총소리가 먼저 났어요!"

논쟁은 얼마 전에 있었던 큰 총격전에 대한 재판내내 계속 되었다. 다행히도 총격전에 참가한 모든 사람은 죽지 않았다. 하지만, 총이 발사된 순서는 모두가 동의하지 않았다. 모든 사람은 최대 한 발을 발사했다. 하지만, 모든 일이 너무나 빠르게 일어났다. 총이 발사된 순서를 알아내야 유죄와 무죄를 판결할 수 있기 때문에, 순서를 알아내는 것은 매우 중요하다.

갑자기 경찰관 현우가 논쟁에 끼어들었다.

현우: "난 총격전이 일어난 그 시점의 위성 사진을 가지고 있다. 너희들이 어디에 있는 지를 정확하게 알 수 있지. 상덕이는 상근이보다 희원이에게 매우 가깝게 있었고, 선영이는 상근이보다 희원이에게 조금 가깝게 있었군. 소리는 1초에 340m를 움직이지. 상덕이는 상근이가 총을 먼저 쐈다고 하더라도, 희원이의 총소리를 먼저 들었을 거야. 그런데, 선영이는 희원이에게 조금 가깝게 있었는데도 상근이의 총소리를 먼저 들었네? 상근이가 제일 처음으로 총을 발사한 사람이네!"

위와 같은 상황이 주어졌을 때, 총을 발사한 순서를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 최대 100개이다.

테스트 케이스의 첫째 줄에는 총격전에 연루된 사람의 수 n (2 ≤ n ≤ 100)과 진술의 수 m (1 ≤ m ≤ 1000) 이 주어진다.

다음 n개 줄에는 사람의 이름 S와 그 사람의 위치 x와 y가 주어진다. 이름은 길이가 최대 20이며, 알파벳 소문자와 대문자로만 이루어져 있다. 좌표는 원점으로부터 떨어진 거리이며 단위는 미터이다.

다음 m개 줄에는 각 사람의 진술 "S1 heard S2 firing before S3"가 주어진다. S1, S2, S3은 사람의 이름이며, S2 ≠ S3이다.

만약, 어떤 사람이 S2, S3로 언급된 적이 없으면, 그 사람은 총을 쏘지 않았다고 가정한다. 두 사람이 같은 장소에 있는 경우는 없다.

테스트 케이스는 정답에 영향을 주지 않기 위해 거리의 오차가 10-7보다 작게 만들어져 있다.

출력

각 테스트 케이스 마다 총을 쏜 순서를 출력한다. 만약, 가능한 순서가 여러가지라면 "UNKNOWN"을 출력하고, 가능한 순서가 없는 경우에는 "IMPOSSIBLE"을 출력한다.

예제 입력 1

3
4 2
BillyTheKid 0 0
Andy 10 0
John 19 0
Larry 20 0
Andy heard BillyTheKid firing before John
Larry heard John firing before BillyTheKid
2 2
Andy 0 0
Beate 0 1
Andy heard Beate firing before Andy
Beate heard Andy firing before Beate
3 1
Andy 0 0
Beate 0 1
Charles 1 3
Beate heard Andy firing before Charles

예제 출력 1

BillyTheKid John
IMPOSSIBLE
UNKNOWN

힌트

W3sicHJvYmxlbV9pZCI6IjM2NTciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWNkMWRcdWFjYTlcdWM4MDQiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzEyMFx1YzYwMTogJnF1b3Q7XHVjMGMxXHVhZGZjXHVjNzc0XHVhYzAwIFx1Y2QxZFx1Yzc0NCBcdWJhM2NcdWM4MDAgXHVjNDA4XHVjNWI0XHVjNjk0ISZxdW90OzxcL3A+XHJcblxyXG48cD5cdWMwYzFcdWIzNTU6ICZxdW90O1x1YzU0NFx1YjJjOFx1YzVkMFx1YzY5NC4gXHVkNzZjXHVjNmQwXHVjNzc0XHVhYzAwIFx1Yzc4OFx1YjI5NCBcdWNhYmRcdWM1ZDBcdWMxMWMgXHVjZDFkXHVjMThjXHViOWFjXHVhYzAwIFx1YmEzY1x1YzgwMCBcdWIwYWNcdWM1YjRcdWM2OTQhJnF1b3Q7PFwvcD5cclxuXHJcbjxwPlx1YjE3Y1x1YzdjMVx1Yzc0MCBcdWM1YmNcdWI5YzggXHVjODA0XHVjNWQwIFx1Yzc4OFx1YzVjOFx1YjM1OCBcdWQwNzAgXHVjZDFkXHVhY2E5XHVjODA0XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWM3YWNcdWQzMTBcdWIwYjRcdWIwYjQgXHVhY2M0XHVjMThkIFx1YjQxOFx1YzVjOFx1YjJlNC4gXHViMmU0XHVkNTg5XHVkNzg4XHViM2M0IFx1Y2QxZFx1YWNhOVx1YzgwNFx1YzVkMCBcdWNjMzhcdWFjMDBcdWQ1NWMgXHViYWE4XHViNGUwIFx1YzBhY1x1Yjc4Y1x1Yzc0MCBcdWM4ZmRcdWM5YzAgXHVjNTRhXHVjNTU4XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MsIFx1Y2QxZFx1Yzc3NCBcdWJjMWNcdWMwYWNcdWI0MWMgXHVjMjFjXHVjMTFjXHViMjk0IFx1YmFhOFx1YjQ1MFx1YWMwMCBcdWIzZDlcdWM3NThcdWQ1NThcdWM5YzAgXHVjNTRhXHVjNTU4XHViMmU0LiBcdWJhYThcdWI0ZTAgXHVjMGFjXHViNzhjXHVjNzQwIFx1Y2Q1Y1x1YjMwMCBcdWQ1NWMgXHViYzFjXHVjNzQ0IFx1YmMxY1x1YzBhY1x1ZDU4OFx1YjJlNC4gXHVkNTU4XHVjOWMwXHViOWNjLCBcdWJhYThcdWI0ZTAgXHVjNzdjXHVjNzc0IFx1YjEwOFx1YmIzNFx1YjA5OCBcdWJlNjBcdWI5NzRcdWFjOGMgXHVjNzdjXHVjNWI0XHViMGFjXHViMmU0LiBcdWNkMWRcdWM3NzQgXHViYzFjXHVjMGFjXHViNDFjIFx1YzIxY1x1YzExY1x1Yjk3YyBcdWM1NGNcdWM1NDRcdWIwYjRcdWM1N2MgXHVjNzIwXHVjOGM0XHVjNjQwIFx1YmIzNFx1YzhjNFx1Yjk3YyBcdWQzMTBcdWFjYjBcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAsIFx1YzIxY1x1YzExY1x1Yjk3YyBcdWM1NGNcdWM1NDRcdWIwYjRcdWIyOTQgXHVhYzgzXHVjNzQwIFx1YjllNFx1YzZiMCBcdWM5MTFcdWM2OTRcdWQ1NThcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMxMVx1Yzc5MFx1YWUzMCBcdWFjYmRcdWNjMzBcdWFkMDAgXHVkNjA0XHVjNmIwXHVhYzAwIFx1YjE3Y1x1YzdjMVx1YzVkMCBcdWIwN2NcdWM1YjRcdWI0ZTRcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDYwNFx1YzZiMDogJnF1b3Q7XHViMDljIFx1Y2QxZFx1YWNhOVx1YzgwNFx1Yzc3NCBcdWM3N2NcdWM1YjRcdWIwOWMgXHVhZGY4IFx1YzJkY1x1YzgxMFx1Yzc1OCBcdWM3MDRcdWMxMzEgXHVjMGFjXHVjOWM0XHVjNzQ0IFx1YWMwMFx1YzljMFx1YWNlMCBcdWM3ODhcdWIyZTQuIFx1YjEwOFx1ZDc2Y1x1YjRlNFx1Yzc3NCBcdWM1YjRcdWI1MTRcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YzljMFx1Yjk3YyBcdWM4MTVcdWQ2NTVcdWQ1NThcdWFjOGMgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWM5YzAuIFx1YzBjMVx1YjM1NVx1Yzc3NFx1YjI5NCBcdWMwYzFcdWFkZmNcdWM3NzRcdWJjZjRcdWIyZTQgXHVkNzZjXHVjNmQwXHVjNzc0XHVjNWQwXHVhYzhjIFx1YjllNFx1YzZiMCBcdWFjMDBcdWFlNWRcdWFjOGMgXHVjNzg4XHVjNWM4XHVhY2UwLCBcdWMxMjBcdWM2MDFcdWM3NzRcdWIyOTQgXHVjMGMxXHVhZGZjXHVjNzc0XHViY2Y0XHViMmU0IFx1ZDc2Y1x1YzZkMFx1Yzc3NFx1YzVkMFx1YWM4YyBcdWM4NzBcdWFlMDggXHVhYzAwXHVhZTVkXHVhYzhjIFx1Yzc4OFx1YzVjOFx1YWQ3MC4gXHVjMThjXHViOWFjXHViMjk0IDFcdWNkMDhcdWM1ZDAgMzQwbVx1Yjk3YyBcdWM2YzBcdWM5YzFcdWM3NzRcdWM5YzAuIFx1YzBjMVx1YjM1NVx1Yzc3NFx1YjI5NCBcdWMwYzFcdWFkZmNcdWM3NzRcdWFjMDAgXHVjZDFkXHVjNzQ0IFx1YmEzY1x1YzgwMCBcdWM0MDhcdWIyZTRcdWFjZTAgXHVkNTU4XHViMzU0XHViNzdjXHViM2M0LCBcdWQ3NmNcdWM2ZDBcdWM3NzRcdWM3NTggXHVjZDFkXHVjMThjXHViOWFjXHViOTdjIFx1YmEzY1x1YzgwMCBcdWI0ZTRcdWM1YzhcdWM3NDQgXHVhYzcwXHVjNTdjLiBcdWFkZjhcdWI3ZjBcdWIzNzAsIFx1YzEyMFx1YzYwMVx1Yzc3NFx1YjI5NCBcdWQ3NmNcdWM2ZDBcdWM3NzRcdWM1ZDBcdWFjOGMgXHVjODcwXHVhZTA4IFx1YWMwMFx1YWU1ZFx1YWM4YyBcdWM3ODhcdWM1YzhcdWIyOTRcdWIzNzBcdWIzYzQmbmJzcDtcdWMwYzFcdWFkZmNcdWM3NzRcdWM3NTggXHVjZDFkXHVjMThjXHViOWFjXHViOTdjIFx1YmEzY1x1YzgwMCBcdWI0ZTRcdWM1YzhcdWIxMjQ/IFx1YzBjMVx1YWRmY1x1Yzc3NFx1YWMwMCBcdWM4MWNcdWM3N2MgXHVjYzk4XHVjNzRjXHVjNzNjXHViODVjIFx1Y2QxZFx1Yzc0NCBcdWJjMWNcdWMwYWNcdWQ1NWMgXHVjMGFjXHViNzhjXHVjNzc0XHViMTI0ISZxdW90OzxcL3A+XHJcblxyXG48cD5cdWM3MDRcdWM2NDAgXHVhYzE5XHVjNzQwIFx1YzBjMVx1ZDY2OVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWNkMWRcdWM3NDQgXHViYzFjXHVjMGFjXHVkNTVjIFx1YzIxY1x1YzExY1x1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWFjMWNcdWMyMThcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YWMxY1x1YzIxOFx1YjI5NCBcdWNkNWNcdWIzMDAgMTAwXHVhYzFjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVjZDFkXHVhY2E5XHVjODA0XHVjNWQwIFx1YzVmMFx1YjhlOFx1YjQxYyBcdWMwYWNcdWI3OGNcdWM3NTggXHVjMjE4IG4gKDIgJmxlOyBuICZsZTsgMTAwKVx1YWNmYyBcdWM5YzRcdWMyMjBcdWM3NTggXHVjMjE4IG0gKDEgJmxlOyBtICZsZTsgMTAwMCkgXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHVjNzRjIG5cdWFjMWMgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzBhY1x1Yjc4Y1x1Yzc1OCBcdWM3NzRcdWI5ODQgU1x1YzY0MCBcdWFkZjggXHVjMGFjXHViNzhjXHVjNzU4IFx1YzcwNFx1Y2U1OCB4XHVjNjQwIHlcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzRcdWI5ODRcdWM3NDAgXHVhZTM4XHVjNzc0XHVhYzAwIFx1Y2Q1Y1x1YjMwMCAyMFx1Yzc3NFx1YmE3MCwgXHVjNTRjXHVkMzBjXHViY2IzIFx1YzE4Y1x1YmIzOFx1Yzc5MFx1YzY0MCBcdWIzMDBcdWJiMzhcdWM3OTBcdWI4NWNcdWI5Y2MgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC4gXHVjODhjXHVkNDVjXHViMjk0IFx1YzZkMFx1YzgxMFx1YzczY1x1Yjg1Y1x1YmQ4MFx1ZDEzMCBcdWI1YThcdWM1YjRcdWM5YzQgXHVhYzcwXHViOWFjXHVjNzc0XHViYTcwIFx1YjJlOFx1YzcwNFx1YjI5NCBcdWJiZjhcdWQxMzBcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjJlNFx1Yzc0YyBtXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWFjMDEgXHVjMGFjXHViNzhjXHVjNzU4IFx1YzljNFx1YzIyMCAmcXVvdDtTMSBoZWFyZCBTMiBmaXJpbmcgYmVmb3JlIFMzJnF1b3Q7XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gUzEsIFMyLCBTM1x1Yzc0MCBcdWMwYWNcdWI3OGNcdWM3NTggXHVjNzc0XHViOTg0XHVjNzc0XHViYTcwLCBTMiAmbmU7IFMzXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWM1N2QsIFx1YzViNFx1YjVhNCBcdWMwYWNcdWI3OGNcdWM3NzQgUzIsIFMzXHViODVjIFx1YzViOFx1YWUwOVx1YjQxYyBcdWM4MDFcdWM3NzQgXHVjNWM2XHVjNzNjXHViYTc0LCBcdWFkZjggXHVjMGFjXHViNzhjXHVjNzQwIFx1Y2QxZFx1Yzc0NCBcdWMzZDhcdWM5YzAgXHVjNTRhXHVjNTU4XHViMmU0XHVhY2UwIFx1YWMwMFx1YzgxNVx1ZDU1Y1x1YjJlNC4gXHViNDUwIFx1YzBhY1x1Yjc4Y1x1Yzc3NCBcdWFjMTlcdWM3NDAgXHVjN2E1XHVjMThjXHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWM2YjBcdWIyOTQgXHVjNWM2XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1YzgxNVx1YjJmNVx1YzVkMCBcdWM2MDFcdWQ1YTVcdWM3NDQgXHVjOGZjXHVjOWMwIFx1YzU0YVx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVhYzcwXHViOWFjXHVjNzU4IFx1YzYyNFx1Y2MyOFx1YWMwMCAxMDxzdXA+LTc8XC9zdXA+XHViY2Y0XHViMmU0IFx1Yzc5MVx1YWM4YyBcdWI5Y2NcdWI0ZTRcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0IFx1YjljOFx1YjJlNCBcdWNkMWRcdWM3NDQgXHVjM2RjIFx1YzIxY1x1YzExY1x1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YjljY1x1YzU3ZCwgXHVhYzAwXHViMmE1XHVkNTVjIFx1YzIxY1x1YzExY1x1YWMwMCBcdWM1ZWNcdWI3ZWNcdWFjMDBcdWM5YzBcdWI3N2NcdWJhNzQgJnF1b3Q7VU5LTk9XTiZxdW90O1x1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjZTAsIFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWMyMWNcdWMxMWNcdWFjMDAgXHVjNWM2XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCAmcXVvdDtJTVBPU1NJQkxFJnF1b3Q7XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIzNjU3IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiU21va2luZyBndW4iLCJkZXNjcmlwdGlvbiI6IjxwPkFuZHk6ICZyZHF1bztCaWxseSB0aGUgS2lkIFx1ZmIwMXJlZCBcdWZiMDFyc3QhJnJkcXVvOzxcL3A+XHJcblxyXG48cD5MYXJyeTogJnJkcXVvO05vLCBJJnJzcXVvO20gc3VyZSBJIGhlYXJkIHRoZSBcdWZiMDFyc3Qgc2hvdCBjb21pbmcgZnJvbSBKb2huISZyZHF1bzs8XC9wPlxyXG5cclxuPHA+VGhlIGFyZ3VtZW50cyB3ZW50IGJhY2sgYW5kIGZvcnRoIGR1cmluZyB0aGUgdHJpYWwgYWZ0ZXIgdGhlIGJpZyBzaG9vdC1kb3duLCBzb21ld2hlcmUgaW4gdGhlIG9sZCB3aWxkIHdlc3QuIE1pcmFjdWxvdXNseSwgZXZlcnlib2R5IGhhZCBzdXJ2aXZlZCAoYWx0aG91Z2ggdGhlcmUgd2VyZSBzZXJpb3VzIGluanVyaWVzKSwgYnV0IG5vYm9keSBjb3VsZCBhZ3JlZSBhYm91dCB0aGUgZXhhY3Qgc2VxdWVuY2Ugb2Ygc2hvdHMgdGhhdCBoYWQgYmVlbiBcdWZiMDFyZWQuIEl0IHdhcyBrbm93biB0aGF0IGV2ZXJ5Ym9keSBoYWQgXHVmYjAxcmVkIGF0IG1vc3Qgb25lIHNob3QsIGJ1dCBldmVyeXRoaW5nIGhhZCBoYXBwZW5lZCB2ZXJ5IGZhc3QuIERldGVybWluaW5nIHRoZSBwcmVjaXNlIG9yZGVyIG9mIHRoZSBzaG90cyB3YXMgaW1wb3J0YW50IGZvciBhc3NpZ25pbmcgZ3VpbHQgYW5kIHBlbmFsdGllcy48XC9wPlxyXG5cclxuPHA+QnV0IHRoZW4gdGhlIHNoZXJpZmYsIFdpbGx5IHRoZSBXaXNlLCBpbnRlcnJ1cHRlZDogJnJkcXVvO0xvb2ssIEkmcnNxdW87dmUgZ290IGEgc2F0ZWxsaXRlIGltYWdlIGZyb20gdGhlIHRpbWUgb2YgdGhlIHNob290aW5nLCBzaG93aW5nIGV4YWN0bHkgd2hlcmUgZXZlcnlib2R5IHdhcyBsb2NhdGVkLiBBcyBpdCB0dXJucyBvdXQsIExhcnJ5IHdhcyBsb2NhdGVkIG11Y2ggY2xvc2VyIHRvIEpvaG4gdGhhbiB0byBCaWxseSB0aGUgS2lkLCB3aGlsZSBBbmR5IHdhcyBsb2NhdGVkIGp1c3Qgc2xpZ2h0bHkgY2xvc2VyIHRvIEpvaG4gdGhhbiB0byBCaWxseSB0aGUgS2lkLiBUaHVzLCBiZWNhdXNlIHNvdW5kIHRyYXZlbHMgd2l0aCBhIFx1ZmIwMW5pdGUgc3BlZWQgb2YgMzQwIG1ldGVycyBwZXIgc2Vjb25kLCBMYXJyeSBtYXkgaGF2ZSBoZWFyZCBKb2huJnJzcXVvO3Mgc2hvdCBcdWZiMDFyc3QsIGV2ZW4gaWYgQmlsbHkgdGhlIEtpZCBcdWZiMDFyZWQgXHVmYjAxcnN0LiBCdXQsIGFsdGhvdWdoIEFuZHkgd2FzIGNsb3NlciB0byBKb2huIHRoYW4gdG8gQmlsbHkgdGhlIEtpZCwgaGUgaGVhcmQgQmlsbHkgdGhlIEtpZCZyc3F1bztzIHNob3QgXHVmYjAxcnN0ICZuZGFzaDsgc28gd2Uga25vdyBmb3IgYSBmYWN0IHRoYXQgQmlsbHkgdGhlIEtpZCB3YXMgdGhlIG9uZSB3aG8gXHVmYjAxcmVkIFx1ZmIwMXJzdCE8XC9wPlxyXG5cclxuPHA+WW91ciB0YXNrIGlzIHRvIHdyaXRlIGEgcHJvZ3JhbSB0byBkZWR1Y2UgdGhlIGV4YWN0IHNlcXVlbmNlIG9mIHNob3RzIFx1ZmIwMXJlZCBpbiBzaXR1YXRpb25zIGxpa2UgdGhlIGFib3ZlLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+T24gdGhlIFx1ZmIwMXJzdCBsaW5lIGEgcG9zaXRpdmUgaW50ZWdlcjogdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzLCBhdCBtb3N0IDEwMC4gQWZ0ZXIgdGhhdCBwZXIgdGVzdCBjYXNlOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPm9uZSBsaW5lIHdpdGggdHdvIGludGVnZXJzIG4gKDIgJmxlOyBuICZsZTsgMTAwKSBhbmQgbSAoMSAmbGU7IG0gJmxlOyAxIDAwMCk6IHRoZSBudW1iZXIgb2YgcGVvcGxlIGludm9sdmVkIGFuZCB0aGUgbnVtYmVyIG9mIG9ic2VydmF0aW9ucy48XC9saT5cclxuXHQ8bGk+biBsaW5lcyB3aXRoIGEgc3RyaW5nIFMsIGNvbnNpc3Rpbmcgb2YgdXAgdG8gMjAgbG93ZXIgYW5kIHVwcGVyIGNhc2UgbGV0dGVycywgYW5kIHR3byBpbnRlZ2VycyB4IGFuZCB5ICgwICZsZTsgeCwgeSAmbGU7IDEgMDAwIDAwMCk6IHRoZSB1bmlxdWUgaWRlbnRpXHVmYjAxZXIgZm9yIGEgcGVyc29uIGFuZCBoaXNcL2hlciBwb3NpdGlvbiBpbiBDYXJ0ZXNpYW4gY29vcmRpbmF0ZXMsIGluIG1ldHJlcyBmcm9tIHRoZSBvcmlnaW4uPFwvbGk+XHJcblx0PGxpPm0gbGluZXMgb2YgdGhlIGZvcm0gJmxkcXVvO1MxIGhlYXJkIFMyIGZpcmluZyBiZWZvcmUgUzMmcmRxdW87LCB3aGVyZSBTMSwgUzIgYW5kIFMzIGFyZSBpZGVudGlcdWZiMDFlcnMgYW1vbmcgdGhlIHBlb3BsZSBpbnZvbHZlZCwgYW5kIFMyICZuZTsgUzMuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+SWYgYSBwZXJzb24gd2FzIG5ldmVyIG1lbnRpb25lZCBhcyBTMiBvciBTMywgdGhlbiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgcGVyc29uIG5ldmVyIFx1ZmIwMXJlZCwgYW5kIG9ubHkgYWN0ZWQgYXMgYSB3aXRuZXNzLiBObyB0d28gcGVyc29ucyBhcmUgbG9jYXRlZCBpbiB0aGUgc2FtZSBwb3NpdGlvbi48XC9wPlxyXG5cclxuPHA+VGhlIHRlc3QgY2FzZXMgYXJlIGNvbnN0cnVjdGVkIHNvIHRoYXQgYW4gZXJyb3Igb2YgbGVzcyB0aGFuIDEwPHN1cD4tNzxcL3N1cD4gaW4gb25lIGRpc3RhbmNlIGNhbGN1bGF0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGUgb3V0cHV0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlBlciB0ZXN0IGNhc2U6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+b25lIGxpbmUgd2l0aCB0aGUgb3JkZXJpbmcgb2YgdGhlIHNob290ZXJzIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGFsbCBvZiB0aGUgb2JzZXJ2YXRpb25zLCBmb3JtYXR0ZWQgYXMgdGhlIGlkZW50aVx1ZmIwMWVycyBzZXBhcmF0ZWQgYnkgc2luZ2xlIHNwYWNlcy48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5JZiBtdWx0aXBsZSBkaXN0aW5jdCBvcmRlcmluZ3MgYXJlIHBvc3NpYmxlLCBvdXRwdXQgJmxkcXVvO1VOS05PV04mcmRxdW87IGluc3RlYWQuIElmIG5vIG9yZGVyaW5nIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgb2JzZXJ2YXRpb25zLCBvdXRwdXQgJmxkcXVvO0lNUE9TU0lCTEUmcmRxdW87IGluc3RlYWQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d