시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB166393122.963%

문제

승현이가 사는 마을은 N 개의 교차로와 M 개의 양방 통행 도로로 이루어져 있다. 각 도로는 서로 다른 두 교차로를 연결하고, 임의의 두 교차로를 1개 이상의 도로를 통해 오고 갈 수 있다. 또한, 임의의 두 교차로에 대해 서로를 직접 연결하는 도로는 최대 1개 존재한다. 이 마을은 주민 편의를 위해 각 교차로에 1부터 N까지의 번호를 붙여 놓았다.

일요일에 승현이는 자신의 집에서 출발하여 같은 마을에 사는 친구인 민수네 집에 놀러 갔다. 승현이는 이사를 온 지 얼마 되지 않았기 때문에 마을의 도로망에 대해 아는 것이 전혀 없고, 오직 자신의 집과 민수네 집만 구별할 수 있었기 때문에 오랫동안 길을 헤매다가 민수네 집에 도착했다고 한다.

승현이는 출발 이후 자신의 집이 있는 교차로에 다시 들르지 않았고, 민수네 집이 있는 교차로에 도착한 후에는 바로 민수네 집에 들어갔다는 것을 기억한다. 승현이는 민수네 집에 놀러갈 때 방문했을 가능성이 있는 교차로가 몇 개 있는지 궁금해졌다. 지적 호기심이 많은 승현이는 여기에서 한발 더 나아가, 자신의 집이 a번 교차로에 있고 민수의 집이 b번 교차로에 있었다면 방문했을 가능성이 있는 교차로가 몇 개나 있는지도 궁금해졌다.

궁금해하는 승현이를 도와줄 프로그램을 작성하자.

입력

첫 번째 줄에 테스트 케이스의 수 T (1 ≤ T ≤ 1,000)가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 승현이가 살고 있는 마을의 교차로의 수 N (2 ≤ N ≤ 200,000) 과 도로의 수 M (1 ≤ M ≤ 500,000)이 공백으로 구분되어 주어진다. 이후 M 개의 줄에는 두 개의 정수 u와 v가 공백으로 구분되어 주어지는데, 이는 마을에 u번 교차로와 v 번 교차로를 직접 연결하는 도로가 존재함을 뜻한다. 그 다음 줄에는 승현이가 궁금해한 횟수 Q (1 ≤ Q ≤ 500, 000)가 주어진다. 그 다음 Q개 줄에는 승현이의 질문에 대한 정보가 주어진다. 이 중 i (1 ≤ i ≤ Q)번째 줄에는 두 개의 정수 ai와 bi (1 ≤ ai, bi ≤ N, ai ≠ bi)가 공백을 사이에 두고 주어지는데, 이는 승현이네 집이 ai 번 교차로에 있고, 민수네 집이 bi 번 교차로에 있는 경우에 대해서 승현이의 질문에 대답해야 함을 뜻한다.

모든 테스트 케이스에서 N 의 합이 200,000을 넘지 않고, M 의 합과 Q의 합은 각각 500,000을 넘지 않는다.

출력

각 테스트 케이스에 대해 Q개의 줄을 출력한다. 이 중 i (1 ≤ i ≤ Q)번째 줄에는 i번째로 주어진 질문에 대해서, 즉 승현이네 집이 ai번 교차로에 있고, 민수네 집이 bi번 교차로에 있는 경우에 대해서 승현이가 민수네 집에 놀러가면서 방문했을 가능성이 있는 교차로의 개수를 출력한다. 서로 다른 테스트 케이스 사이에 빈 줄을 출력하면 안 된다.

예제 입력 1

1
5 5
1 2
1 3
2 4
4 5
2 5
5
1 2
1 4
2 3
2 5
3 5

예제 출력 1

2
4
3
3
5
W3sicHJvYmxlbV9pZCI6IjEwODgwIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViMGI0XHVhYzAwIFx1YzViNFx1YjUxNFx1Yjk3YyBcdWFjNzBcdWNjZDBcdWFjMTRcdWIzNTRcdWI3N2M/IiwiZGVzY3JpcHRpb24iOiI8cD5cdWMyYjlcdWQ2MDRcdWM3NzRcdWFjMDAgXHVjMGFjXHViMjk0IFx1YjljOFx1Yzc0NFx1Yzc0MCBOIFx1YWMxY1x1Yzc1OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM2NDAgTSBcdWFjMWNcdWM3NTggXHVjNTkxXHViYzI5IFx1ZDFiNVx1ZDU4OSBcdWIzYzRcdWI4NWNcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC4gXHVhYzAxIFx1YjNjNFx1Yjg1Y1x1YjI5NCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1YjQ1MCBcdWFkNTBcdWNjMjhcdWI4NWNcdWI5N2MgXHVjNWYwXHVhY2IwXHVkNTU4XHVhY2UwLCBcdWM3ODRcdWM3NThcdWM3NTggXHViNDUwIFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1Yjk3YyAxXHVhYzFjIFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWIzYzRcdWI4NWNcdWI5N2MgXHVkMWI1XHVkNTc0IFx1YzYyNFx1YWNlMCBcdWFjMDggXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViNjEwXHVkNTVjLCBcdWM3ODRcdWM3NThcdWM3NTggXHViNDUwIFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1YzVkMCBcdWIzMDBcdWQ1NzQgXHVjMTFjXHViODVjXHViOTdjIFx1YzljMVx1YzgxMSBcdWM1ZjBcdWFjYjBcdWQ1NThcdWIyOTQgXHViM2M0XHViODVjXHViMjk0IFx1Y2Q1Y1x1YjMwMCAxXHVhYzFjIFx1Yzg3NFx1YzdhY1x1ZDU1Y1x1YjJlNC4gXHVjNzc0IFx1YjljOFx1Yzc0NFx1Yzc0MCBcdWM4ZmNcdWJiZmMgXHVkM2I4XHVjNzU4XHViOTdjIFx1YzcwNFx1ZDU3NCBcdWFjMDEgXHVhZDUwXHVjYzI4XHViODVjXHVjNWQwIDFcdWJkODBcdWQxMzAgTlx1YWU0Y1x1YzljMFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWI5N2MgXHViZDk5XHVjNWVjIFx1YjE5M1x1YzU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzdjXHVjNjk0XHVjNzdjXHVjNWQwIFx1YzJiOVx1ZDYwNFx1Yzc3NFx1YjI5NCBcdWM3OTBcdWMyZTBcdWM3NTggXHVjOWQxXHVjNWQwXHVjMTFjIFx1Y2Q5Y1x1YmMxY1x1ZDU1OFx1YzVlYyBcdWFjMTlcdWM3NDAgXHViOWM4XHVjNzQ0XHVjNWQwIFx1YzBhY1x1YjI5NCBcdWNlNWNcdWFkNmNcdWM3NzggXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1YzVkMCBcdWIxODBcdWI3ZWMgXHVhYzE0XHViMmU0LiBcdWMyYjlcdWQ2MDRcdWM3NzRcdWIyOTQgXHVjNzc0XHVjMGFjXHViOTdjIFx1YzYyOCBcdWM5YzAgXHVjNWJjXHViOWM4IFx1YjQxOFx1YzljMCBcdWM1NGFcdWM1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YjljOFx1Yzc0NFx1Yzc1OCBcdWIzYzRcdWI4NWNcdWI5ZGRcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YzU0NFx1YjI5NCBcdWFjODNcdWM3NzQgXHVjODA0XHVkNjAwIFx1YzVjNlx1YWNlMCwgXHVjNjI0XHVjOWMxIFx1Yzc5MFx1YzJlMFx1Yzc1OCBcdWM5ZDFcdWFjZmMgXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1YjljYyBcdWFkNmNcdWJjYzRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YzVjOFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHVjNjI0XHViN2FiXHViM2Q5XHVjNTQ4IFx1YWUzOFx1Yzc0NCBcdWQ1ZTRcdWI5ZTRcdWIyZTRcdWFjMDAgXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1YzVkMCBcdWIzYzRcdWNjMjlcdWQ1ODhcdWIyZTRcdWFjZTAgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWMyYjlcdWQ2MDRcdWM3NzRcdWIyOTQgXHVjZDljXHViYzFjIFx1Yzc3NFx1ZDZjNCBcdWM3OTBcdWMyZTBcdWM3NTggXHVjOWQxXHVjNzc0IFx1Yzc4OFx1YjI5NCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM1ZDAgXHViMmU0XHVjMmRjIFx1YjRlNFx1Yjk3NFx1YzljMCBcdWM1NGFcdWM1NThcdWFjZTAsIFx1YmJmY1x1YzIxOFx1YjEyNCBcdWM5ZDFcdWM3NzQgXHVjNzg4XHViMjk0IFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1YzVkMCBcdWIzYzRcdWNjMjlcdWQ1NWMgXHVkNmM0XHVjNWQwXHViMjk0IFx1YmMxNFx1Yjg1YyBcdWJiZmNcdWMyMThcdWIxMjQgXHVjOWQxXHVjNWQwIFx1YjRlNFx1YzViNFx1YWMxNFx1YjJlNFx1YjI5NCBcdWFjODNcdWM3NDQgXHVhZTMwXHVjNWI1XHVkNTVjXHViMmU0LiBcdWMyYjlcdWQ2MDRcdWM3NzRcdWIyOTQgXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1YzVkMCBcdWIxODBcdWI3ZWNcdWFjMDggXHViNTRjIFx1YmMyOVx1YmIzOFx1ZDU4OFx1Yzc0NCBcdWFjMDBcdWIyYTVcdWMxMzFcdWM3NzQgXHVjNzg4XHViMjk0IFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1YWMwMCBcdWJhODcgXHVhYzFjIFx1Yzc4OFx1YjI5NFx1YzljMCBcdWFkODFcdWFlMDhcdWQ1NzRcdWM4NGNcdWIyZTQuIFx1YzljMFx1YzgwMSBcdWQ2MzhcdWFlMzBcdWMyZWNcdWM3NzQgXHViOWNlXHVjNzQwIFx1YzJiOVx1ZDYwNFx1Yzc3NFx1YjI5NCBcdWM1ZWNcdWFlMzBcdWM1ZDBcdWMxMWMgXHVkNTVjXHViYzFjIFx1YjM1NCBcdWIwOThcdWM1NDRcdWFjMDAsIFx1Yzc5MFx1YzJlMFx1Yzc1OCBcdWM5ZDFcdWM3NzQgYVx1YmM4OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM1ZDAgXHVjNzg4XHVhY2UwIFx1YmJmY1x1YzIxOFx1Yzc1OCBcdWM5ZDFcdWM3NzQgYlx1YmM4OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM1ZDAgXHVjNzg4XHVjNWM4XHViMmU0XHViYTc0IFx1YmMyOVx1YmIzOFx1ZDU4OFx1Yzc0NCBcdWFjMDBcdWIyYTVcdWMxMzFcdWM3NzQgXHVjNzg4XHViMjk0IFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1YWMwMCBcdWJhODcgXHVhYzFjXHViMDk4IFx1Yzc4OFx1YjI5NFx1YzljMFx1YjNjNCBcdWFkODFcdWFlMDhcdWQ1NzRcdWM4NGNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWQ4MVx1YWUwOFx1ZDU3NFx1ZDU1OFx1YjI5NCBcdWMyYjlcdWQ2MDRcdWM3NzRcdWI5N2MgXHViM2M0XHVjNjQwXHVjOTA0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWM3OTAuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzIxOCBUICgxICZsZTsgVCAmbGU7IDEsMDAwKVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YzJiOVx1ZDYwNFx1Yzc3NFx1YWMwMCBcdWMwYjRcdWFjZTAgXHVjNzg4XHViMjk0IFx1YjljOFx1Yzc0NFx1Yzc1OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM3NTggXHVjMjE4IE4gKDIgJmxlOyBOICZsZTsgMjAwLDAwMCkgXHVhY2ZjIFx1YjNjNFx1Yjg1Y1x1Yzc1OCBcdWMyMTggTSAoMSAmbGU7IE0gJmxlOyA1MDAsMDAwKVx1Yzc3NCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNzc0XHVkNmM0IE0gXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCB1XHVjNjQwIHZcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTRcdWIzNzAsIFx1Yzc3NFx1YjI5NCBcdWI5YzhcdWM3NDRcdWM1ZDAgdVx1YmM4OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM2NDAgdiBcdWJjODggXHVhZDUwXHVjYzI4XHViODVjXHViOTdjIFx1YzljMVx1YzgxMSBcdWM1ZjBcdWFjYjBcdWQ1NThcdWIyOTQgXHViM2M0XHViODVjXHVhYzAwIFx1Yzg3NFx1YzdhY1x1ZDU2OFx1Yzc0NCBcdWI3M2JcdWQ1NWNcdWIyZTQuIFx1YWRmOCBcdWIyZTRcdWM3NGMgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzJiOVx1ZDYwNFx1Yzc3NFx1YWMwMCBcdWFkODFcdWFlMDhcdWQ1NzRcdWQ1NWMgXHVkNjlmXHVjMjE4IFEgKDEgJmxlOyBRICZsZTsgNTAwLCAwMDApXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhZGY4IFx1YjJlNFx1Yzc0YyBRXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWMyYjlcdWQ2MDRcdWM3NzRcdWM3NTggXHVjOWM4XHViYjM4XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWM4MTVcdWJjZjRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzQgXHVjOTExIGkgKDEgJmxlOyBpICZsZTsgUSlcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IGE8c3ViPmk8XC9zdWI+XHVjNjQwIGI8c3ViPmk8XC9zdWI+ICgxICZsZTsgYTxzdWI+aTxcL3N1Yj4sIGI8c3ViPmk8XC9zdWI+ICZsZTsgTiwgYTxzdWI+aTxcL3N1Yj4gJm5lOyBiPHN1Yj5pPFwvc3ViPilcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzQ0IFx1YzBhY1x1Yzc3NFx1YzVkMCBcdWI0NTBcdWFjZTAgXHVjOGZjXHVjNWI0XHVjOWMwXHViMjk0XHViMzcwLCBcdWM3NzRcdWIyOTQgXHVjMmI5XHVkNjA0XHVjNzc0XHViMTI0IFx1YzlkMVx1Yzc3NCBhPHN1Yj5pPFwvc3ViPiBcdWJjODggXHVhZDUwXHVjYzI4XHViODVjXHVjNWQwIFx1Yzc4OFx1YWNlMCwgXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1Yzc3NCBiPHN1Yj5pPFwvc3ViPiBcdWJjODggXHVhZDUwXHVjYzI4XHViODVjXHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDAgXHViMzAwXHVkNTc0XHVjMTFjIFx1YzJiOVx1ZDYwNFx1Yzc3NFx1Yzc1OCBcdWM5YzhcdWJiMzhcdWM1ZDAgXHViMzAwXHViMmY1XHVkNTc0XHVjNTdjIFx1ZDU2OFx1Yzc0NCBcdWI3M2JcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwXHVjMTFjIE4gXHVjNzU4IFx1ZDU2OVx1Yzc3NCAyMDAsMDAwXHVjNzQ0IFx1YjExOFx1YzljMCBcdWM1NGFcdWFjZTAsIE0gXHVjNzU4IFx1ZDU2OVx1YWNmYyBRXHVjNzU4IFx1ZDU2OVx1Yzc0MCBcdWFjMDFcdWFjMDEgNTAwLDAwMFx1Yzc0NCBcdWIxMThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YjMwMFx1ZDU3NCBRXHVhYzFjXHVjNzU4IFx1YzkwNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1Yzc3NCBcdWM5MTEgaSAoMSAmbGU7IGkgJmxlOyBRKVx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgaVx1YmM4OFx1YzlmOFx1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjOWM4XHViYjM4XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYywgXHVjOTg5IFx1YzJiOVx1ZDYwNFx1Yzc3NFx1YjEyNCBcdWM5ZDFcdWM3NzQgYTxzdWI+aTxcL3N1Yj5cdWJjODggXHVhZDUwXHVjYzI4XHViODVjXHVjNWQwIFx1Yzc4OFx1YWNlMCwgXHViYmZjXHVjMjE4XHViMTI0IFx1YzlkMVx1Yzc3NCBiPHN1Yj5pPFwvc3ViPlx1YmM4OCBcdWFkNTBcdWNjMjhcdWI4NWNcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMgXHVjMmI5XHVkNjA0XHVjNzc0XHVhYzAwIFx1YmJmY1x1YzIxOFx1YjEyNCBcdWM5ZDFcdWM1ZDAgXHViMTgwXHViN2VjXHVhYzAwXHViYTc0XHVjMTFjIFx1YmMyOVx1YmIzOFx1ZDU4OFx1Yzc0NCBcdWFjMDBcdWIyYTVcdWMxMzFcdWM3NzQgXHVjNzg4XHViMjk0IFx1YWQ1MFx1Y2MyOFx1Yjg1Y1x1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTQgXHVjMGFjXHVjNzc0XHVjNWQwIFx1YmU0OCBcdWM5MDRcdWM3NDQgXHVjZDljXHViODI1XHVkNTU4XHViYTc0IFx1YzU0OCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMTA4ODAiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJWaXNpdGluZyBGcmllbmQiLCJkZXNjcmlwdGlvbiI6IjxwPlRoZSB2aWxsYWdlIHdoZXJlIFN1bmdoeWVvbiBsaXZlcyBjb25zaXN0cyBvZiAkTiQgaW50ZXJzZWN0aW9ucyBhbmQgJE0kIHR3by13YXkgcm9hZHMuIFRoZSBpbnRlcnNlY3Rpb25zIGFyZSBudW1iZXJlZCBieSBpbnRlZ2VycyBmcm9tICQxJCB0byAkTiQuPFwvcD5cclxuXHJcbjxwPkVhY2ggdHdvLXdheSByb2FkIGNvbm5lY3RzIHR3byBkaWZmZXJlbnQgaW50ZXJzZWN0aW9ucywgdGhlcmUgaXMgYSBwYXRoIGFsb25nIHRoZSByb2FkcyBiZXR3ZWVuIGFueSB0d28gaW50ZXJzZWN0aW9ucy4gQWxzbywgZm9yIGFueSB0d28gaW50ZXJzZWN0aW9ucywgdGhlcmUgaXMgYXQgbW9zdCBvbmUgcm9hZCBkaXJlY3RseSBjb25uZWN0aW5nIHRoZW0uPFwvcD5cclxuXHJcbjxwPk9uIFN1bmRheSwgU3VuZ2h5ZW9uIGxlZnQgaGVyIGhvdXNlIGFuZCB3ZW50IHRvIHBsYXkgYXQgdGhlIGhvdXNlIG9mIGhlciBmcmllbmQgQ2hhbmdraSwgd2hvIGxpdmVzIGluIHRoZSBzYW1lIHZpbGxhZ2UuIFNpbmNlIFN1bmdoeWVvbiBoYXMganVzdCBtb3ZlZCBpbiwgc2hlIGRvZXNuJiMzOTt0IGtub3cgYW55dGhpbmcgYWJvdXQgdGhlIHZpbGxhZ2UmIzM5O3Mgcm9hZCBuZXR3b3JrLCBhbmQgc2hlIGNhbiBvbmx5IGRpc3Rpbmd1aXNoIGhlciBob3VzZSBhbmQgQ2hhbmdraSYjMzk7cyBob3VzZTogYWxsIG90aGVyIGhvdXNlcyBsb29rIHRoZSBzYW1lIHRvIGhlci4gQWZ0ZXIgd2FuZGVyaW5nIGZvciBhIGxvbmcgdGltZSwgc2hlIGZpbmFsbHkgYXJyaXZlZCBhdCBDaGFuZ2tpJiMzOTtzIGhvdXNlLjxcL3A+XHJcblxyXG48cD5TdW5naHllb24gcmVtZW1iZXJzIHRoYXQsIGFmdGVyIGRlcGFydHVyZSwgc2hlIGRpZCBub3QgdmlzaXQgdGhlIGludGVyc2VjdGlvbiB3aGVyZSBoZXIgaG91c2Ugd2FzIGxvY2F0ZWQgYW55bW9yZSwgYW5kIHNoZSBpbW1lZGlhdGVseSBlbnRlcmVkIENoYW5na2kmIzM5O3MgaG91c2Ugd2hlbiBzaGUgcmVhY2hlZCB0aGUgaW50ZXJzZWN0aW9uIHdoZXJlIENoYW5na2kmIzM5O3MgaG91c2Ugd2FzIGxvY2F0ZWQuPFwvcD5cclxuXHJcbjxwPlN1bmdoeWVvbiB3b25kZXJlZCBob3cgbWFueSBpbnRlcnNlY3Rpb25zIHNoZSBtaWdodCBoYXZlIHZpc2l0ZWQgd2hlbiBzaGUgd2VudCB0byBwbGF5IGF0IENoYW5na2kmIzM5O3MgaG91c2UuIEluIG90aGVyIHdvcmRzLCBvdXQgb2YgJE4kIGludGVyc2VjdGlvbnMsIHNoZSB3YW50cyB0byBjb3VudCBzdWNoIGludGVyc2VjdGlvbnMgJFYkIHRoYXQgdGhlcmUgZXhpc3RzIGEgcG9zc2libGUgcGF0aCBmb3IgaGVyIHdoaWNoIHZpc2l0ZWQgJFYkLjxcL3A+XHJcblxyXG48cD5DdXJpb3VzIFN1bmdoeWVvbiB3ZW50IGEgc3RlcCBmdXJ0aGVyIGhlcmUsIGFuZCBzaGUgd29uZGVyZWQgaG93IG1hbnkgZGlmZmVyZW50IGludGVyc2VjdGlvbnMgc2hlIG1pZ2h0IGhhdmUgdmlzaXRlZCBpZiBoZXIgaG91c2Ugd2FzIGF0IGludGVyc2VjdGlvbiAkQSQgYW5kIENoYW5na2kmIzM5O3MgaG91c2Ugd2FzIGF0IGludGVyc2VjdGlvbiAkQiQuIFNoZSB3YW50cyB0aGUgYW5zd2VyIGZvciBtYW55IGRpZmZlcmVudCBwYWlycyAkKEEsIEIpJC48XC9wPlxyXG5cclxuPHA+V3JpdGUgYSBwcm9ncmFtIHRvIGhlbHAgU3VuZ2h5ZW9uIGFuZCBDaGFuZ2tpLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgY29udGFpbnMgYW4gaW50ZWdlciAkVCQsIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcyAoJDEgXFxsZSBUIFxcbGUgMTAwMCQpLiBUaGUgdGVzdCBjYXNlcyBmb2xsb3cuPFwvcD5cclxuXHJcbjxwPlRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggdGVzdCBjYXNlIGNvbnRhaW5zIHR3byBpbnRlZ2VycyAkTiQgYW5kICRNJCwgdGhlIG51bWJlciBvZiBpbnRlcnNlY3Rpb25zIGFuZCB0aGUgbnVtYmVyIG9mIHJvYWRzICgkMiBcXGxlIE4gXFxsZSAyMDBcXCwwMDAkLCAkMSBcXGxlIE0gXFxsZSA1MDBcXCwwMDAkKS48XC9wPlxyXG5cclxuPHA+RWFjaCBvZiB0aGUgbmV4dCAkTSQgbGluZXMgY29udGFpbnMgdHdvIGludGVnZXJzICRVX2kkIGFuZCAkVl9pJCB3aGljaCBtZWFuIHRoZXJlIGlzIGEgdHdvLXdheSByb2FkIGJldHdlZW4gdGhlc2UgaW50ZXJzZWN0aW9ucyAoJDEgXFxsZSBVX2ksIFZfaSBcXGxlIE4kLCAkVV9pIFxcbmUgVl9pJCkuIFRoZXJlIGlzIGEgcGF0aCBhbG9uZyB0aGUgcm9hZHMgYmV0d2VlbiBhbnkgdHdvIGludGVyc2VjdGlvbnMuIEFsc28sIGZvciBhbnkgdHdvIGludGVyc2VjdGlvbnMsIHRoZXJlIGlzIGF0IG1vc3Qgb25lIHJvYWQgZGlyZWN0bHkgY29ubmVjdGluZyB0aGVtLjxcL3A+XHJcblxyXG48cD5UaGUgbmV4dCBsaW5lIGNvbnRhaW5zIGFuIGludGVnZXIgJFEkLCB0aGUgbnVtYmVyIG9mIHF1ZXN0aW9ucyAoJDEgXFxsZSBRIFxcbGUgNTAwXFwsMDAwJCkuPFwvcD5cclxuXHJcbjxwPkVhY2ggb2YgdGhlIG5leHQgJFEkIGxpbmVzIGNvbnRhaW5zIHR3byBpbnRlZ2VycyAkQV9qJCBhbmQgJEJfaiQgd2hpY2ggbWVhbiB5b3UgaGF2ZSB0byBmaW5kIHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IGludGVyc2VjdGlvbnMgU3VuZ2h5ZW9uIG1pZ2h0IGhhdmUgdmlzaXRlZCBpZiBoZXIgaG91c2Ugd2FzIGF0IGludGVyc2VjdGlvbiAkQV9pJCBhbmQgQ2hhbmdraSYjMzk7cyBob3VzZSB3YXMgYXQgaW50ZXJzZWN0aW9uICRCX2kkICgkMSBcXGxlIEFfaiwgQl9qIFxcbGUgTiQsICRBX2ogXFxuZSBCX2okKS48XC9wPlxyXG5cclxuPHA+VGhlIHN1bSBvZiAkTiQgb3ZlciBhbGwgdGVzdCBjYXNlcyBkb2VzIG5vdCBleGNlZWQgJDIwMFxcLDAwMCQuIFRoZSBzdW0gb2YgJE0kIG92ZXIgYWxsIHRlc3QgY2FzZXMgZG9lcyBub3QgZXhjZWVkICQ1MDBcXCwwMDAkLiBUaGUgc3VtIG9mICRRJCBvdmVyIGFsbCB0ZXN0IGNhc2VzIGRvZXMgbm90IGV4Y2VlZCAkNTAwXFwsMDAwJC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UsIHByaW50ICRRJCBsaW5lcy4gVGhlICRpJC10aCBvZiB0aGVzZSAkUSQgbGluZXMgbXVzdCBjb250YWluIHRoZSBudW1iZXIgb2YgaW50ZXJzZWN0aW9ucyBTdW5naHllb24gbWlnaHQgaGF2ZSB2aXNpdGVkIGlmIGhlciBob3VzZSB3YXMgYXQgaW50ZXJzZWN0aW9uICRBX2kkIGFuZCBDaGFuZ2tpJiMzOTtzIGhvdXNlIHdhcyBhdCBpbnRlcnNlY3Rpb24gJEJfaSQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==