시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 56 31 28 60.870%

문제

한신이는 젊고, 똑똑하고 매우 유명한 정치인이다. 그럼에도 그는 여전히 자신의 성공을 위해서도 인간관계는 중요한것이라고 믿고있다. 다음달에 열릴 국회의원선거에서 한신이는 자신의 당이 반드시 이기길 희망한다. 그러기 위해서 최고의원의 지지가 필요하다.

이 최고의원의 지지를 받기위해 한신이는 전략을 세웠다. 그는 그 최고의원을 직접적으로 만날수 없다면 그를 알고있는 인맥을 이용하여 만날것이다. 이것을 위해서 우선 정치인들의 친밀도를 조사하였는데 친밀도를 다음 4단계로 나누어서 기록해놓았다.

최측근 [1] / 측근 [2] / 비즈니스관계 [3] / 지인 [4]

[두 사람의 관계는 이 4가지 경우중 반드시 해당되며, 적(enemy)는 존재하지 않는다.]

한신이는 지인보다는 최측근 친구에게 소개받기 원한다. 그래서 최고의원을 만나기까지의 인맥간 친밀도의 합을 최소화하고 싶어한다.

N명의 정치인 명단으로부터 그들의 인맥 친밀도가 주어진다. 정치인 리스트를 보고 한신이가 최고의원을 만나기까지의 친밀도의 합 중에서 가장 작은 값을 구하면 된다.

입력

맨위 첫 번째 줄에 T(1 <T< 100)는 테스트케이스 수를 의미한다. 이것을 따라 다음줄에 각 테스트 케이스가 주어지는데, 첫 번째 줄에는 N과 M이 주어진다. N(N ≤ 20)은 관계의 개수를 의미하며, M(5 ≤M≤ 20)은 정치인의 수를 나타낸다. 이 다음 N줄에는 정치인 x, 그의 친구 y (0 ≤x,y< M), 두사람간의 친밀도 z(1 ≤z≤ 4)를 입력받는다. 정치인 0번은 한신이를 나타내고 M-1은 최고의원을 의미한다.

출력

각 테스트 케이스는 "Case #x: "의 형식으로 출력되며 x는 케이스 번호(1부터 시작)을 의미한다. 콜론뒤에 한신이가 최고의원을 만날수 있다면 0번 정치인(한신이)를 시작으로 M-1번 정치인(최고의원)까지 만난 순서대로 출력하면 되고, 최고의원을 만날수 없는 경우엔 -1을 출력하면 된다.

예제 입력 1

2
7 5
0 1 2
1 3 4
0 2 1
0 4 3
3 2 3
3 4 4
2 4 1
3 5
0 1 2
1 3 4
4 2 1

예제 출력 1

Case #1: 0 2 4
Case #2: -1

힌트

첫 번째 테스트 케이스에서 보면 한신이는 1번 정치인(한신이의 측근[2])에게 3번 정치인(1번 정치인의 지인[4])을 소개받고, 이 3번 정치인은 4번 정치인(3번 정치인의 지인[4])을 만나는 경우 2+4+4 = 10이다.

한신이가 곧바로 4번 정치인(한신이의 비즈니스관계[3])에게 얘기할수 있지만 대신에 2번 정치인(한신이의 최측근[1])에게 4번 정치인(2번 정치인의 최측근[1])을 소개 받아 만난다면 한신이는 더 좋은 인상으로 최고의원을 만날수 있을것이다.

W3sicHJvYmxlbV9pZCI6Ijk2OTQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJiMzRcdWM1YzdcdWM3NDQgXHVjNTQ0XHViMjkwXHViMGQwXHVhYzAwIFx1YzU0NFx1YjJjOFx1Yjc3YyBcdWIyMDRcdWFkNmNcdWI5N2MgXHVjNTQ0XHViMjkwXHViMGQwXHVhYzAwIFx1YmIzOFx1YzgxY1x1YjJlNCIsImRlc2NyaXB0aW9uIjoiPHA+XHVkNTVjXHVjMmUwXHVjNzc0XHViMjk0IFx1YzgwYVx1YWNlMCwgXHViNjExXHViNjExXHVkNTU4XHVhY2UwIFx1YjllNFx1YzZiMCBcdWM3MjBcdWJhODVcdWQ1NWMgXHVjODE1XHVjZTU4XHVjNzc4XHVjNzc0XHViMmU0LiBcdWFkZjhcdWI3ZmNcdWM1ZDBcdWIzYzQgXHVhZGY4XHViMjk0IFx1YzVlY1x1YzgwNFx1ZDc4OCBcdWM3OTBcdWMyZTBcdWM3NTggXHVjMTMxXHVhY2Y1XHVjNzQ0IFx1YzcwNFx1ZDU3NFx1YzExY1x1YjNjNCBcdWM3NzhcdWFjMDRcdWFkMDBcdWFjYzRcdWIyOTQgXHVjOTExXHVjNjk0XHVkNTVjXHVhYzgzXHVjNzc0XHViNzdjXHVhY2UwIFx1YmJmZlx1YWNlMFx1Yzc4OFx1YjJlNC4gXHViMmU0XHVjNzRjXHViMmVjXHVjNWQwIFx1YzVmNFx1YjliNCBcdWFkNmRcdWQ2OGNcdWM3NThcdWM2ZDBcdWMxMjBcdWFjNzBcdWM1ZDBcdWMxMWMgXHVkNTVjXHVjMmUwXHVjNzc0XHViMjk0IFx1Yzc5MFx1YzJlMFx1Yzc1OCBcdWIyZjlcdWM3NzQgXHViYzE4XHViNGRjXHVjMmRjIFx1Yzc3NFx1YWUzMFx1YWUzOCBcdWQ3NmNcdWI5ZGRcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjdlY1x1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVjZDVjXHVhY2UwXHVjNzU4XHVjNmQwXHVjNzU4IFx1YzljMFx1YzljMFx1YWMwMCBcdWQ1NDRcdWM2OTRcdWQ1NThcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91c2VydXBsb2FkXC92dW1idW15XC8yMDE1MTBcLzM2YjA3ZWFiMjY4Nzk3ZWFjOTNlMmZmYjVmMzdmZTlhLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDEwcHggMTBweFwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM3NzQgXHVjZDVjXHVhY2UwXHVjNzU4XHVjNmQwXHVjNzU4IFx1YzljMFx1YzljMFx1Yjk3YyBcdWJjMWJcdWFlMzBcdWM3MDRcdWQ1NzQgXHVkNTVjXHVjMmUwXHVjNzc0XHViMjk0IFx1YzgwNFx1YjdiNVx1Yzc0NCBcdWMxMzhcdWM2ZTBcdWIyZTQuIFx1YWRmOFx1YjI5NCBcdWFkZjggXHVjZDVjXHVhY2UwXHVjNzU4XHVjNmQwXHVjNzQ0IFx1YzljMVx1YzgxMVx1YzgwMVx1YzczY1x1Yjg1YyBcdWI5Y2NcdWIwYTBcdWMyMTggXHVjNWM2XHViMmU0XHViYTc0IFx1YWRmOFx1Yjk3YyBcdWM1NGNcdWFjZTBcdWM3ODhcdWIyOTQgXHVjNzc4XHViOWU1XHVjNzQ0IFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWI5Y2NcdWIwYTBcdWFjODNcdWM3NzRcdWIyZTQuIFx1Yzc3NFx1YWM4M1x1Yzc0NCBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVjNmIwXHVjMTIwIFx1YzgxNVx1Y2U1OFx1Yzc3OFx1YjRlNFx1Yzc1OCBcdWNlNWNcdWJjMDBcdWIzYzRcdWI5N2MgXHVjODcwXHVjMGFjXHVkNTU4XHVjNjAwXHViMjk0XHViMzcwIFx1Y2U1Y1x1YmMwMFx1YjNjNFx1Yjk3YyBcdWIyZTRcdWM3NGMgNFx1YjJlOFx1YWNjNFx1Yjg1YyBcdWIwOThcdWIyMDRcdWM1YjRcdWMxMWMgXHVhZTMwXHViODVkXHVkNTc0XHViMTkzXHVjNTU4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNkNWNcdWNlMjFcdWFkZmMgWzFdIFwvIFx1Y2UyMVx1YWRmYyBbMl0gXC8gXHViZTQ0XHVjOTg4XHViMmM4XHVjMmE0XHVhZDAwXHVhY2M0IFszXSBcLyBcdWM5YzBcdWM3NzggWzRdPFwvcD5cclxuXHJcbjxwPltcdWI0NTAgXHVjMGFjXHViNzhjXHVjNzU4IFx1YWQwMFx1YWNjNFx1YjI5NCBcdWM3NzQgNFx1YWMwMFx1YzljMCBcdWFjYmRcdWM2YjBcdWM5MTEgXHViYzE4XHViNGRjXHVjMmRjIFx1ZDU3NFx1YjJmOVx1YjQxOFx1YmE3MCwgXHVjODAxKGVuZW15KVx1YjI5NCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0Ll08XC9wPlxyXG5cclxuPHA+XHVkNTVjXHVjMmUwXHVjNzc0XHViMjk0IFx1YzljMFx1Yzc3OFx1YmNmNFx1YjJlNFx1YjI5NCBcdWNkNWNcdWNlMjFcdWFkZmMgXHVjZTVjXHVhZDZjXHVjNWQwXHVhYzhjIFx1YzE4Y1x1YWMxY1x1YmMxYlx1YWUzMCBcdWM2ZDBcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1Yjc5OFx1YzExYyBcdWNkNWNcdWFjZTBcdWM3NThcdWM2ZDBcdWM3NDQgXHViOWNjXHViMDk4XHVhZTMwXHVhZTRjXHVjOWMwXHVjNzU4IFx1Yzc3OFx1YjllNVx1YWMwNCBcdWNlNWNcdWJjMDBcdWIzYzRcdWM3NTggXHVkNTY5XHVjNzQ0IFx1Y2Q1Y1x1YzE4Y1x1ZDY1NFx1ZDU1OFx1YWNlMCBcdWMyZjZcdWM1YjRcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPk5cdWJhODVcdWM3NTggXHVjODE1XHVjZTU4XHVjNzc4IFx1YmE4NVx1YjJlOFx1YzczY1x1Yjg1Y1x1YmQ4MFx1ZDEzMCBcdWFkZjhcdWI0ZTRcdWM3NTggXHVjNzc4XHViOWU1IFx1Y2U1Y1x1YmMwMFx1YjNjNFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YzgxNVx1Y2U1OFx1Yzc3OCBcdWI5YWNcdWMyYTRcdWQyYjhcdWI5N2MgXHViY2Y0XHVhY2UwIFx1ZDU1Y1x1YzJlMFx1Yzc3NFx1YWMwMCBcdWNkNWNcdWFjZTBcdWM3NThcdWM2ZDBcdWM3NDQgXHViOWNjXHViMDk4XHVhZTMwXHVhZTRjXHVjOWMwXHVjNzU4IFx1Y2U1Y1x1YmMwMFx1YjNjNFx1Yzc1OCBcdWQ1NjkgXHVjOTExXHVjNWQwXHVjMTFjIFx1YWMwMFx1YzdhNSBcdWM3OTFcdWM3NDAgXHVhYzEyXHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWI5ZThcdWM3MDQgXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDAgVCgxICZsdDtUJmx0OyAxMDApXHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOFx1Y2YwMFx1Yzc3NFx1YzJhNCBcdWMyMThcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTVjXHViMmU0LiBcdWM3NzRcdWFjODNcdWM3NDQgXHViNTMwXHViNzdjIFx1YjJlNFx1Yzc0Y1x1YzkwNFx1YzVkMCBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTRcdWIzNzAsIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IE5cdWFjZmMgTVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIE4oTiAmbGU7IDIwKVx1Yzc0MCBcdWFkMDBcdWFjYzRcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1Yzc1OFx1YmJmOFx1ZDU1OFx1YmE3MCwgTSg1ICZsZTtNJmxlOyAyMClcdWM3NDAgXHVjODE1XHVjZTU4XHVjNzc4XHVjNzU4IFx1YzIxOFx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQuIFx1Yzc3NCBcdWIyZTRcdWM3NGMgTlx1YzkwNFx1YzVkMFx1YjI5NCBcdWM4MTVcdWNlNThcdWM3NzggeCwgXHVhZGY4XHVjNzU4IFx1Y2U1Y1x1YWQ2YyB5ICgwICZsZTt4LHkmbHQ7IE0pLCBcdWI0NTBcdWMwYWNcdWI3OGNcdWFjMDRcdWM3NTggXHVjZTVjXHViYzAwXHViM2M0IHooMSAmbGU7eiZsZTsgNClcdWI5N2MgXHVjNzg1XHViODI1XHViYzFiXHViMjk0XHViMmU0LiBcdWM4MTVcdWNlNThcdWM3NzggMFx1YmM4OFx1Yzc0MCBcdWQ1NWNcdWMyZTBcdWM3NzRcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHVhY2UwIE0tMVx1Yzc0MCBcdWNkNWNcdWFjZTBcdWM3NThcdWM2ZDBcdWM3NDQgXHVjNzU4XHViYmY4XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0ICZxdW90O0Nhc2UgI3g6ICZxdW90O1x1Yzc1OCBcdWQ2MTVcdWMyZGRcdWM3M2NcdWI4NWMgXHVjZDljXHViODI1XHViNDE4XHViYTcwIHhcdWIyOTQgXHVjZjAwXHVjNzc0XHVjMmE0IFx1YmM4OFx1ZDYzOCgxXHViZDgwXHVkMTMwIFx1YzJkY1x1Yzc5MSlcdWM3NDQgXHVjNzU4XHViYmY4XHVkNTVjXHViMmU0LiBcdWNmNWNcdWI4NjBcdWI0YTRcdWM1ZDAgXHVkNTVjXHVjMmUwXHVjNzc0XHVhYzAwIFx1Y2Q1Y1x1YWNlMFx1Yzc1OFx1YzZkMFx1Yzc0NCBcdWI5Y2NcdWIwYTBcdWMyMTggXHVjNzg4XHViMmU0XHViYTc0IDBcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4KFx1ZDU1Y1x1YzJlMFx1Yzc3NClcdWI5N2MgXHVjMmRjXHVjNzkxXHVjNzNjXHViODVjIE0tMVx1YmM4OCBcdWM4MTVcdWNlNThcdWM3NzgoXHVjZDVjXHVhY2UwXHVjNzU4XHVjNmQwKVx1YWU0Y1x1YzljMCBcdWI5Y2NcdWIwOWMgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YmE3NCBcdWI0MThcdWFjZTAsIFx1Y2Q1Y1x1YWNlMFx1Yzc1OFx1YzZkMFx1Yzc0NCBcdWI5Y2NcdWIwYTBcdWMyMTggXHVjNWM2XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkNCAtMVx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5cdWNjYWIgXHViYzg4XHVjOWY4IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDBcdWMxMWMgXHViY2Y0XHViYTc0IFx1ZDU1Y1x1YzJlMFx1Yzc3NFx1YjI5NCAxXHViYzg4IFx1YzgxNVx1Y2U1OFx1Yzc3OChcdWQ1NWNcdWMyZTBcdWM3NzRcdWM3NTggXHVjZTIxXHVhZGZjWzJdKVx1YzVkMFx1YWM4YyAzXHViYzg4IFx1YzgxNVx1Y2U1OFx1Yzc3OCgxXHViYzg4IFx1YzgxNVx1Y2U1OFx1Yzc3OFx1Yzc1OCBcdWM5YzBcdWM3NzhbNF0pXHVjNzQ0IFx1YzE4Y1x1YWMxY1x1YmMxYlx1YWNlMCwgXHVjNzc0IDNcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4XHVjNzQwIDRcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4KDNcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4XHVjNzU4IFx1YzljMFx1Yzc3OFs0XSlcdWM3NDQgXHViOWNjXHViMDk4XHViMjk0IFx1YWNiZFx1YzZiMCAyKzQrNCA9IDEwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQ1NWNcdWMyZTBcdWM3NzRcdWFjMDAgXHVhY2U3XHViYzE0XHViODVjIDRcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4KFx1ZDU1Y1x1YzJlMFx1Yzc3NFx1Yzc1OCBcdWJlNDRcdWM5ODhcdWIyYzhcdWMyYTRcdWFkMDBcdWFjYzRbM10pXHVjNWQwXHVhYzhjIFx1YzU5OFx1YWUzMFx1ZDU2MFx1YzIxOCBcdWM3ODhcdWM5YzBcdWI5Y2MgXHViMzAwXHVjMmUwXHVjNWQwIDJcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4KFx1ZDU1Y1x1YzJlMFx1Yzc3NFx1Yzc1OCBcdWNkNWNcdWNlMjFcdWFkZmNbMV0pXHVjNWQwXHVhYzhjIDRcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4KDJcdWJjODggXHVjODE1XHVjZTU4XHVjNzc4XHVjNzU4IFx1Y2Q1Y1x1Y2UyMVx1YWRmY1sxXSlcdWM3NDQgXHVjMThjXHVhYzFjIFx1YmMxYlx1YzU0NCBcdWI5Y2NcdWIwOWNcdWIyZTRcdWJhNzQgXHVkNTVjXHVjMmUwXHVjNzc0XHViMjk0IFx1YjM1NCBcdWM4OGJcdWM3NDAgXHVjNzc4XHVjMGMxXHVjNzNjXHViODVjIFx1Y2Q1Y1x1YWNlMFx1Yzc1OFx1YzZkMFx1Yzc0NCBcdWI5Y2NcdWIwYTBcdWMyMTggXHVjNzg4XHVjNzQ0XHVhYzgzXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiOTY5NCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6Ikl0J3MgTm90IFdoYXQgWW91IEtub3cgQnV0IFdobyBZb3UgS25vdyIsImRlc2NyaXB0aW9uIjoiPHA+S2hhaXJ5IGlzIGEgeW91bmcsIHNtYXJ0IGFuZCBoaWdobHkgdGFsZW50ZWQgcG9saXRpY2lhbi4gSG93ZXZlciwgaGUgc3RpbGwgYmVsaWV2ZXMgdGhhdCBmb3Igc3VjY2VzcywgYW5kIGVzcGVjaWFsbHkgdG8gb2J0YWluIHNvbWV0aGluZywgb25lJiMzOTtzIG5ldHdvcmsgb2YgcGVyc29uYWwgY29udGFjdHMgaXMgZXNzZW50aWFsLiBOZXh0IG1vbnRoIHdpbGwgYmUgdGhlIFN1cHJlbWUgQ291bmNpbCBlbGVjdGlvbiBvZiBoaXMgcG9saXRpY2FsIHBhcnR5LiBIZSB3YW50cyB0byBjb250ZXN0IGFuZCByZWFsbHkgaG9wZSB0byB3aW4gaW4gdGhlIGVsZWN0aW9uLiBUaGVyZWZvcmUsIHN1cHBvcnQgZnJvbSB0b3AgaW5mbHVlbnRpYWwgcG9saXRpY2lhbiBpcyBuZWVkZWQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlczJcL25vdHdoYXQucG5nXCIgc3R5bGU9XCJmbG9hdDpyaWdodDsgaGVpZ2h0OjI2M3B4OyB3aWR0aDoxODlweFwiIFwvPlRpbWUgaXMgcnVubmluZyBvdXQsIHRoZXJlZm9yZSBoZSBwbGFucyBhIHN0cmF0ZWd5LiBJZiBoZSBjYW5ub3QgbWV0IHRoZSB0b3AgcGVyc29uIGRpcmVjdGx5IGhlIHdpbCB1c2Ugb3RoZXIgcG9saXRpY2lhbnMgdG8gaW50cm9kdWNlIGhpbSB0byB0aGlzIHRvcCBsZWFkZXIuIEluIG9yZGVyIHRvIGRvIHRoaXMsIGhlIG1vZGVscyB0aGUgc3RyZW5ndGggb2YgcmVsYXRpb25zaGlwIGFtb25nIHRoZSBwb2xpdGljaWFucy48XC9wPlxyXG5cclxuPHA+VGhlIHN0cmVuZ3RoIG9mIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBwZW9wbGUgaXMgcmVwcmVzZW50ZWQgYXMgZm9sbG93czogRmFpdGhmdWwgKDEpLCBDbG9zZSAoMiksIEJ1ZGRpZXMgKDMpIGFuZCBBY3F1YWludGFuY2UgKDQpLiBCZXR3ZWVuIHR3byBwb2xpdGljaWFucywgZWl0aGVyIG9uZSBvZiB0aGVtIHdpbGwgbm9ybWFsbHkgc3RpbXVsYXRlIHRoZSBjb21tdW5pY2F0aW9uLiBObyByZXByZXNlbnRhdGlvbiBmb3IgZW5lbXkuIEl0IHdpbGwgYmUgbXVjaCBiZXR0ZXIgaWYgYSBmYWl0aGZ1bCBmcmllbmQgaW50cm9kdWNlcyBLaGFpcnkgdG8gc29tZW9uZSByYXRoZXIgdGhhbiBhbiBhY3F1YWludGFuY2UuIFNvIEtoYWlyeSB3YW50cyB0byBtaW5pbWl6ZSB0aGUgc3VtIG9mIHN0cmVuZ3RoIG9mIHRoZSByZWxhdGlvbnMgaGUgaXMgdXNpbmcgdG8gbWV0IHRoZSB0b3AgaW5mbHVlbnRpYWwgcG9saXRpY2lhbi48XC9wPlxyXG5cclxuPHA+RnJvbSBhIGxpc3Qgb2YgTiBwb2xpdGljaWFucywgZ2l2ZW4gdGhlaXIgcmVsYXRpb25zaGlwIHN0cmVuZ3RocywgZmluZCBhIGxpc3Qgb2YgcG9saXRpY2lhbnMgc28gdGhhdCBLaGFpcnkgbWV0cyB0aGUgdG9wIGluZmx1ZW50aWFsIHBvbGl0aWNpYW4gdGhyb3VnaCB0aGVtIHdoaWxlIHRoZSBzdW0gb2Ygc3RyZW5ndGggb2YgYWxsIHRoZSByZWxhdGlvbnNoaXBzIGhlIHVzZWQgaXMgbWluaW1pemVkLjxcL3A+XHJcblxyXG48cD5Zb3VyIHRhc2sgaXMgdG8gY29tZSBvdXQgd2l0aCBhIHNlcXVlbmNlIG9mIHBvbGl0aWNpYW5zIHRoYXQgS2hhaXJ5IG5lZWRzIHRvIG1ldCBpbiBvcmRlciB0byBnZXQgaW50cm9kdWNlZCB0byB0aGUgdG9wIGluZmx1ZW50aWFsIHBvbGl0aWNpYW4uPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCBpcyBUIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgY2FzZXMsIDEgJmx0O1QmbHQ7IDEwMC4gVGhpcyBpcyBmb2xsb3dlZCBieSB0aGUgdGVzdCBjYXNlcy4gRWFjaCBjYXNlIGNvbnNpc3RzIG9mIHNldmVyYWwgbGluZXMuIFRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIDIgbnVtYmVycywgZmlyc3QgaXMgTiB3aGljaCByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgcmVsYXRpb25zaGlwcywgTiAmbGU7IDIwLCBhbmQgTSB3aGljaCByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgcG9saXRpY2lhbnMsIDUgJmxlO00mbGU7IDIwLiBFYWNoIG9mIHRoZSBuZXh0IE4gbGluZXMgY29udGFpbnMgdGhyZWUgaW50ZWdlcnMgdGhhdCByZXByZXNlbnQgcG9saXRpY2lhbiB4LCBoaXNcL2hlciBmcmllbmQgeSAoMCAmbGU7eCx5Jmx0OyBNKSBhbmQgdGhlIHN0cmVuZ3RoIG9mIHJlbGF0aW9uc2hpcCB6ICgxICZsZTt6JmxlOyA0KS4gcG9saXRpY2lhbiB4PTAgcmVwcmVzZW50cyBLaGFpcnkgYW5kIHBvbGl0aWNpYW4geD1NLTEgcmVwcmVzZW50cyB0aGUgdG9wIHBvbGl0aWNpYW4uPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggdGVzdCBjYXNlLCB0aGUgb3V0cHV0IGNvbnRhaW5zIGEgbGluZSBpbiB0aGUgZm9ybWF0IENhc2UgI3g6IHdoZXJlIHggaXMgdGhlIGNhc2UgbnVtYmVyIChzdGFydGluZyBmcm9tIDEpIGZvbGxvd2VkIGJ5IGEgY29sb24sIGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2Ugb2YgcG9saXRpY2lhbiB0byBtZXQuIElmIHRoZXJlIGlzIG11bHRpcGxlIHZhbGlkIHNlcXVlbmNlIG9mIHBvbGl0aWNpYW4gcHJpbnQgYW55IG9mIHRoZW0uIFRoZSBsaXN0IG11c3Qgc3RhcnQgd2l0aCAwIChLaGFpcnkmIzM5O3MgaWQpIGFuZCBlbmQgd2l0aCBNLTEsIHRoZSB0b3AgcG9saXRpY2lhbi4gSWYgdGhlcmUgaXMgbm8gd2F5IEtoYWlyeSBjYW4gbWV0IGhlIHRvIHBvbGl0aWNpYW4sIHByaW50IC0xLjxcL3A+XHJcbiIsImhpbnQiOiI8cD5FeHBsYW5hdGlvbiBmb3IgdGhlIGZpcnN0IGNhc2U6PFwvcD5cclxuXHJcbjxwPktoYWlyeSBjYW4gYXNrIHBvbGl0aWNpYW4gMSAoc3RyZW5ndGggMiwgY2xvc2UpIHRvIGludHJvZHVjZSBoaW0gdG8gcG9saXRpY2lhbiAzIChzdHJlbmd0aCA0LCBhY3F1YWludGFuY2UpLCB3aG8gY2FuIGZpbmFseSBpbnRyb2R1Y2UgS2hhaXJ5IHRvIHBvbGl0aWNpYW4gNCAoc3RyZW5ndGggNCwgYWNxdWFpbnRhbmNlKS4gSW4gdGhhdCB3YXkgdG90YWwgc3RyZW5ndGggdXNlZCBpbiB0aGlzIHNpdHVhdGlvbiBpcyAyKzQrNCA9IDEwLjxcL3A+XHJcblxyXG48cD5LaGFpcnkgY2FuIHN0cmFpZ2h0bHkgdGFsayB0byBwb2xpdGljaWFuIDQgKHN0cmVuZ3RoIDMsIGJ1ZHkpLiBCdXQgaW5zdGVhZCBpZiBLaGFpcnkgYXNrcyBwb2xpdGljaWFuIDIgKHN0cmVuZ3RoIDEsIGZhaXRoZnVsKSB0byBpbnRyb2R1Y2UgaGltIHRvIHBvbGl0aWNpYW4gNCAoc3RyZW5ndGggMSwgYWdhaW4gZmFpdGhmdWwpICZuZGFzaDsgdGhlIHRvdGFsIHN0cmVuZ3RoIHVzZWQuPFwvcD5cclxuXHJcbjxwPmluIHRoaXMgc2l0dWF0aW9uIGlzIDIsIHdoaWNoIGlzIGJldHRlciB0aGFuIHRoZSBvdGhlciB0d28gc2l0dWF0aW9ucyBhbmQgS2hhaXJ5IGlzIG1vcmUgbGlrZWx5IHRvIG1ha2UgYSBnb2QgaW1wcmVzc2lvbi48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==