시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
10 초 128 MB 287 66 36 22.642%

문제

N개의 도시와, 서로 다른 두 도시를 잇는 E개의 도로로 이루어진 나라가 있다. 각 도시는 1번부터 N번까지 번호가 매겨져 있으며, 도로는 양방 통행 도로이다. 즉 i번 도시와 j번 도시 사이에 도로가 존재한다면 i번 도시에서 j번 도시로 이동할 수 있을 뿐더러 j번 도시에서 i번 도시로도 이동할 수 있다.

이 나라의 교통 체계는 매우 복잡해서, 이를 간소화하는 작업을 벌이려고 한다. 간소화를 위한 방법으로는 크게 두 가지가 있다. 두 도시를 연결하는 특정한 도로를 골라서 없애는 단순한 방법이 있고, 특정한 도시를 골라서 이 도시로 들어오거나 나가는 모든 도로를 없애는 방법이 있다.

이러한 교통 체계의 단순화는 면밀한 검토가 필요한 복잡한 작업이 된다. 따라서 몇 개의 질문을 만들어 놓고, 이 질문들에 대한 답을 구해낸 후 이를 토대로 단순화 작업을 벌이기로 하였다. 질문의 유형은 아래의 두 가지 중 하나를 따른다.

  1. 두 개의 도시 A, B가 있고, 도시 G1과 도시 G2를 잇는 도로가 있다. 도시 G1과 도시 G2 사이의 도로를 없앤 후에도 도시 A에서 도시 B로 이동할 수 있는가?
  2. 세 개의 도시 A, B, C가 있다. 도시 C로 들어오거나 나가는 모든 도로를 없앤 후에도 도시 A에서 도시 B로 이동할 수 있는가?

이 나라의 현재 교통 체계에 대한 정보와 위의 유형에 해당되는 여러 개의 질문들이 주어졌을 때, 교통 체계의 단순화를 위해 주어진 질문들에 대한 답을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 도시의 개수 N과 도로의 개수 E가 주어진다. (2 ≤ N ≤ 100,000, 1 ≤ E ≤ 500,000) 이어서 E개의 줄에 걸쳐 각 줄에 N 이하의 서로 다른 두 자연수가 주어지는데, 이는 두 자연수를 번호로 하는 두 개의 도시 사이에 도로가 존재함을 의미한다. 같은 도로가 여러 번 입력으로 주어지지 않으며, 임의의 두 도시 사이에 항상 이동할 수 있는 경로가 하나 이상 존재하는 교통 체계만이 입력으로 주어진다.

다음 줄에는 질문의 개수 Q가 주어진다. (1 ≤ Q ≤ 300,000) 이어서 Q개의 줄에 걸쳐 질문에 대한 정보가 주어지는데, 각 줄의 첫 번째 자연수는 질문의 유형을 나타내는 1 또는 2이다. 질문이 유형 1에 해당하는 경우는 N 이하의 네 개의 자연수 A, B, G1, G2가 순서대로 주어진다. A와 B는 서로 다르며, G1과 G2 사이에 항상 도로가 존재하는 경우만이 입력으로 주어진다. 질문이 유형 2에 해당하는 경우는 N 이하의 서로 다른 자연수 A, B, C가 순서대로 주어진다.

출력

Q개의 줄에 걸쳐 각 질문에 대한 답을 한 줄에 하나씩 yes나 no로 출력한다. 질문의 답이 "이동할 수 있다"이면 yes를, "이동할 수 없다"이면 no를 출력하면 된다.

예제 입력 1

13 15
1 2
2 3
3 5
2 4
4 6
2 6
1 4
1 7
7 8
7 9
7 10
8 11
8 12
9 12
12 13
5
1 5 13 1 2
1 6 2 1 4
1 13 6 7 8
2 13 6 7
2 13 6 8

예제 출력 1

yes
yes
yes
no
yes

힌트

W3sicHJvYmxlbV9pZCI6IjE3MzQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWFkNTBcdWQxYjUgXHVjY2I0XHVhY2M0IiwiZGVzY3JpcHRpb24iOiI8cD5OXHVhYzFjXHVjNzU4IFx1YjNjNFx1YzJkY1x1YzY0MCwgXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3OCBcdWI0NTAgXHViM2M0XHVjMmRjXHViOTdjIFx1Yzc4N1x1YjI5NCBFXHVhYzFjXHVjNzU4IFx1YjNjNFx1Yjg1Y1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgXHViMDk4XHViNzdjXHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVhYzAxIFx1YjNjNFx1YzJkY1x1YjI5NCAxXHViYzg4XHViZDgwXHVkMTMwIE5cdWJjODhcdWFlNGNcdWM5YzAgXHViYzg4XHVkNjM4XHVhYzAwIFx1YjllNFx1YWNhOFx1YzgzOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1YjNjNFx1Yjg1Y1x1YjI5NCBcdWM1OTFcdWJjMjkgXHVkMWI1XHVkNTg5IFx1YjNjNFx1Yjg1Y1x1Yzc3NFx1YjJlNC4gXHVjOTg5IGlcdWJjODggXHViM2M0XHVjMmRjXHVjNjQwIGpcdWJjODggXHViM2M0XHVjMmRjIFx1YzBhY1x1Yzc3NFx1YzVkMCBcdWIzYzRcdWI4NWNcdWFjMDAgXHVjODc0XHVjN2FjXHVkNTVjXHViMmU0XHViYTc0IGlcdWJjODggXHViM2M0XHVjMmRjXHVjNWQwXHVjMTFjIGpcdWJjODggXHViM2M0XHVjMmRjXHViODVjIFx1Yzc3NFx1YjNkOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjNzQ0IFx1YmZkMFx1YjM1NFx1YjdlYyBqXHViYzg4IFx1YjNjNFx1YzJkY1x1YzVkMFx1YzExYyBpXHViYzg4IFx1YjNjNFx1YzJkY1x1Yjg1Y1x1YjNjNCBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0IFx1YjA5OFx1Yjc3Y1x1Yzc1OCBcdWFkNTBcdWQxYjUgXHVjY2I0XHVhY2M0XHViMjk0IFx1YjllNFx1YzZiMCBcdWJjZjVcdWM3YTFcdWQ1NzRcdWMxMWMsIFx1Yzc3NFx1Yjk3YyBcdWFjMDRcdWMxOGNcdWQ2NTRcdWQ1NThcdWIyOTQgXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YmM4Y1x1Yzc3NFx1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1YWMwNFx1YzE4Y1x1ZDY1NFx1Yjk3YyBcdWM3MDRcdWQ1NWMgXHViYzI5XHViYzk1XHVjNzNjXHViODVjXHViMjk0IFx1ZDA2Y1x1YWM4YyBcdWI0NTAgXHVhYzAwXHVjOWMwXHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHViNDUwIFx1YjNjNFx1YzJkY1x1Yjk3YyBcdWM1ZjBcdWFjYjBcdWQ1NThcdWIyOTQgXHVkMmI5XHVjODE1XHVkNTVjIFx1YjNjNFx1Yjg1Y1x1Yjk3YyBcdWFjZThcdWI3N2NcdWMxMWMgXHVjNWM2XHVjNTYwXHViMjk0IFx1YjJlOFx1YzIxY1x1ZDU1YyBcdWJjMjlcdWJjOTVcdWM3NzQgXHVjNzg4XHVhY2UwLCBcdWQyYjlcdWM4MTVcdWQ1NWMgXHViM2M0XHVjMmRjXHViOTdjIFx1YWNlOFx1Yjc3Y1x1YzExYyBcdWM3NzQgXHViM2M0XHVjMmRjXHViODVjIFx1YjRlNFx1YzViNFx1YzYyNFx1YWM3MFx1YjA5OCBcdWIwOThcdWFjMDBcdWIyOTQgXHViYWE4XHViNGUwIFx1YjNjNFx1Yjg1Y1x1Yjk3YyBcdWM1YzZcdWM1NjBcdWIyOTQgXHViYzI5XHViYzk1XHVjNzc0IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0XHViN2VjXHVkNTVjIFx1YWQ1MFx1ZDFiNSBcdWNjYjRcdWFjYzRcdWM3NTggXHViMmU4XHVjMjFjXHVkNjU0XHViMjk0IFx1YmE3NFx1YmMwMFx1ZDU1YyBcdWFjODBcdWQxYTBcdWFjMDAgXHVkNTQ0XHVjNjk0XHVkNTVjIFx1YmNmNVx1YzdhMVx1ZDU1YyBcdWM3OTFcdWM1YzVcdWM3NzQgXHViNDFjXHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMgXHViYTg3IFx1YWMxY1x1Yzc1OCBcdWM5YzhcdWJiMzhcdWM3NDQgXHViOWNjXHViNGU0XHVjNWI0IFx1YjE5M1x1YWNlMCwgXHVjNzc0IFx1YzljOFx1YmIzOFx1YjRlNFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQ0IFx1YWQ2Y1x1ZDU3NFx1YjBiOCBcdWQ2YzQgXHVjNzc0XHViOTdjIFx1ZDFhMFx1YjMwMFx1Yjg1YyBcdWIyZThcdWMyMWNcdWQ2NTQgXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YmM4Y1x1Yzc3NFx1YWUzMFx1Yjg1YyBcdWQ1NThcdWM2MDBcdWIyZTQuIFx1YzljOFx1YmIzOFx1Yzc1OCBcdWM3MjBcdWQ2MTVcdWM3NDAgXHVjNTQ0XHViNzk4XHVjNzU4IFx1YjQ1MCBcdWFjMDBcdWM5YzAgXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yjk3YyBcdWI1MzBcdWI5NzhcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+XHViNDUwIFx1YWMxY1x1Yzc1OCBcdWIzYzQ8c3BhbiBzdHlsZT1cImxpbmUtaGVpZ2h0OjIwLjhweFwiPlx1YzJkYyBBLCBCXHVhYzAwIFx1Yzc4OFx1YWNlMCwgXHViM2M0XHVjMmRjIEcxXHVhY2ZjIFx1YjNjNFx1YzJkYyBHMlx1Yjk3YyBcdWM3ODdcdWIyOTQgXHViM2M0XHViODVjXHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHViM2M0XHVjMmRjIEcxXHVhY2ZjIFx1YjNjNFx1YzJkYyBHMiBcdWMwYWNcdWM3NzRcdWM3NTggXHViM2M0XHViODVjXHViOTdjIFx1YzVjNlx1YzU2NCBcdWQ2YzRcdWM1ZDBcdWIzYzQgXHViM2M0XHVjMmRjIEFcdWM1ZDBcdWMxMWMgXHViM2M0XHVjMmRjIEJcdWI4NWMgXHVjNzc0XHViM2Q5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyOTRcdWFjMDA/PFwvc3Bhbj48XC9saT5cclxuXHQ8bGk+PHNwYW4gc3R5bGU9XCJsaW5lLWhlaWdodDoxLjZlbVwiPlx1YzEzOCBcdWFjMWNcdWM3NTggXHViM2M0XHVjMmRjIEEsIEIsIENcdWFjMDAgXHVjNzg4XHViMmU0LiBcdWIzYzRcdWMyZGMgQ1x1Yjg1YyBcdWI0ZTRcdWM1YjRcdWM2MjRcdWFjNzBcdWIwOTggXHViMDk4XHVhYzAwXHViMjk0IFx1YmFhOFx1YjRlMCBcdWIzYzRcdWI4NWNcdWI5N2MgXHVjNWM2XHVjNTY0IFx1ZDZjNFx1YzVkMFx1YjNjNCBcdWIzYzRcdWMyZGMgQVx1YzVkMFx1YzExYyBcdWIzYzRcdWMyZGMgQlx1Yjg1YyBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NFx1YWMwMD88XC9zcGFuPjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1Yzc3NCBcdWIwOThcdWI3N2NcdWM3NTggXHVkNjA0XHVjN2FjIFx1YWQ1MFx1ZDFiNSBcdWNjYjRcdWFjYzRcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YzgxNVx1YmNmNFx1YzY0MCBcdWM3MDRcdWM3NTggXHVjNzIwXHVkNjE1XHVjNWQwIFx1ZDU3NFx1YjJmOVx1YjQxOFx1YjI5NCBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzU4IFx1YzljOFx1YmIzOFx1YjRlNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWFkNTBcdWQxYjUgXHVjY2I0XHVhY2M0XHVjNzU4IFx1YjJlOFx1YzIxY1x1ZDY1NFx1Yjk3YyBcdWM3MDRcdWQ1NzQgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YzljOFx1YmIzOFx1YjRlNFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWIzYzRcdWMyZGNcdWM3NTggXHVhYzFjXHVjMjE4IE5cdWFjZmMgXHViM2M0XHViODVjXHVjNzU4IFx1YWMxY1x1YzIxOCBFXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDIgJmxlOyBOICZsZTsgMTAwLDAwMCwgMSAmbGU7IEUgJmxlOyA1MDAsMDAwKSBcdWM3NzRcdWM1YjRcdWMxMWMgRVx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwIFx1YWMwMSBcdWM5MDRcdWM1ZDAgTiBcdWM3NzRcdWQ1NThcdWM3NTggXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3OCBcdWI0NTAgXHVjNzkwXHVjNWYwXHVjMjE4XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NFx1YjM3MCwgXHVjNzc0XHViMjk0IFx1YjQ1MCBcdWM3OTBcdWM1ZjBcdWMyMThcdWI5N2MgXHViYzg4XHVkNjM4XHViODVjIFx1ZDU1OFx1YjI5NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YjNjNFx1YzJkYyBcdWMwYWNcdWM3NzRcdWM1ZDAgXHViM2M0XHViODVjXHVhYzAwIFx1Yzg3NFx1YzdhY1x1ZDU2OFx1Yzc0NCBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuIFx1YWMxOVx1Yzc0MCBcdWIzYzRcdWI4NWNcdWFjMDAgXHVjNWVjXHViN2VjIFx1YmM4OCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWMwXHVjOWMwIFx1YzU0YVx1YzczY1x1YmE3MCwgXHVjNzg0XHVjNzU4XHVjNzU4IFx1YjQ1MCBcdWIzYzRcdWMyZGMgXHVjMGFjXHVjNzc0XHVjNWQwIFx1ZDU2ZFx1YzBjMSBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWI4NWNcdWFjMDAgXHVkNTU4XHViMDk4IFx1Yzc3NFx1YzBjMSBcdWM4NzRcdWM3YWNcdWQ1NThcdWIyOTQgXHVhZDUwXHVkMWI1IFx1Y2NiNFx1YWNjNFx1YjljY1x1Yzc3NCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWIyZTRcdWM3NGMgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzljOFx1YmIzOFx1Yzc1OCBcdWFjMWNcdWMyMTggUVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICgxICZsZTsgUSAmbGU7IDMwMCwwMDApIFx1Yzc3NFx1YzViNFx1YzExYyBRXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAgXHVjOWM4XHViYjM4XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWM4MTVcdWJjZjRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWMwXHViMjk0XHViMzcwLCBcdWFjMDEgXHVjOTA0XHVjNzU4IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNzkwXHVjNWYwXHVjMjE4XHViMjk0IFx1YzljOFx1YmIzOFx1Yzc1OCBcdWM3MjBcdWQ2MTVcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IDEgXHViNjEwXHViMjk0IDJcdWM3NzRcdWIyZTQuIFx1YzljOFx1YmIzOFx1Yzc3NCBcdWM3MjBcdWQ2MTUgMVx1YzVkMCBcdWQ1NzRcdWIyZjlcdWQ1NThcdWIyOTQgXHVhY2JkXHVjNmIwXHViMjk0IE4gXHVjNzc0XHVkNTU4XHVjNzU4IFx1YjEyNCBcdWFjMWNcdWM3NTggXHVjNzkwXHVjNWYwXHVjMjE4IEEsIEIsIEcxLCBHMlx1YWMwMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBBXHVjNjQwIEJcdWIyOTQgXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3NFx1YmE3MCwgRzFcdWFjZmMgRzIgXHVjMGFjXHVjNzc0XHVjNWQwIFx1ZDU2ZFx1YzBjMSBcdWIzYzRcdWI4NWNcdWFjMDAgXHVjODc0XHVjN2FjXHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YjljY1x1Yzc3NCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM5YzhcdWJiMzhcdWM3NzQgXHVjNzIwXHVkNjE1IDJcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YjI5NCBOIFx1Yzc3NFx1ZDU1OFx1Yzc1OCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1Yzc5MFx1YzVmMFx1YzIxOCBBLCBCLCBDXHVhYzAwIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+UVx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwIFx1YWMwMSBcdWM5YzhcdWJiMzhcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YjJmNVx1Yzc0NCBcdWQ1NWMgXHVjOTA0XHVjNWQwIFx1ZDU1OFx1YjA5OFx1YzUyOSB5ZXNcdWIwOTggbm9cdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWM5YzhcdWJiMzhcdWM3NTggXHViMmY1XHVjNzc0ICZxdW90O1x1Yzc3NFx1YjNkOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0JnF1b3Q7XHVjNzc0XHViYTc0IHllc1x1Yjk3YywgJnF1b3Q7XHVjNzc0XHViM2Q5XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWIyZTQmcXVvdDtcdWM3NzRcdWJhNzQgbm9cdWI5N2MgXHVjZDljXHViODI1XHVkNTU4XHViYTc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxNzM0IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiUE9MSUNJSkEiLCJkZXNjcmlwdGlvbiI6IjxwPlRvIGhlbHAgY2FwdHVyZSBjcmltaW5hbHMgb24gdGhlIHJ1biwgdGhlIHBvbGljZSBhcmUgaW50cm9kdWNpbmcgYSBuZXcgY29tcHV0ZXIgc3lzdGVtLiBUaGUgYXJlYSBjb3ZlcmVkIGJ5IHRoZSBwb2xpY2UgY29udGFpbnMgTiBjaXRpZXMgYW5kIEUgYmlkaXJlY3Rpb25hbCByb2FkcyBjb25uZWN0aW5nIHRoZW0uIFRoZSBjaXRpZXMgYXJlIGxhYmVsbGVkIDEgdG8gTi4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIHBvbGljZSBvZnRlbiB3YW50IHRvIGNhdGNoIGNyaW1pbmFscyB0cnlpbmcgdG8gZ2V0IGZyb20gb25lIGNpdHkgdG8gYW5vdGhlci4gSW5zcGVjdG9ycywgbG9va2luZyBhdCBhIG1hcCwgdHJ5IHRvIGRldGVybWluZSB3aGVyZSB0byBzZXQgdXAgYmFycmljYWRlcyBhbmQgcm9hZGJsb2Nrcy4gVGhlIG5ldyBjb21wdXRlciBzeXN0ZW0gc2hvdWxkIGFuc3dlciB0aGUgZm9sbG93aW5nIHR3byB0eXBlcyBvZiBxdWVyaWVzOiZuYnNwOzxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPkNvbnNpZGVyIHR3byBjaXRpZXMgQSBhbmQgQiwgYW5kIGEgcm9hZCBjb25uZWN0aW5nIGNpdGllcyBHPHN1Yj4xPFwvc3ViPiBhbmQgRzxzdWI+MjxcL3N1Yj4uIENhbiB0aGUgY3JpbWluYWxzIGdldCBmcm9tIGNpdHkgQSB0byBjaXR5IEIgaWYgdGhhdCBvbmUgcm9hZCBpcyBibG9ja2VkIGFuZCB0aGUgY3JpbWluYWxzIGNhbiYjMzk7dCB1c2UgaXQ/Jm5ic3A7PFwvbGk+XHJcblx0PGxpPkNvbnNpZGVyIHRocmVlIGNpdGllcyBBLCBCIGFuZCBDLiBDYW4gdGhlIGNyaW1pbmFscyBnZXQgZnJvbSBjaXR5IEEgdG8gY2l0eSBCIGlmIHRoZSBlbnRpcmUgY2l0eSAmbmJzcDtDIGlzIGN1dCBvZmYgYW5kIHRoZSBjcmltaW5hbHMgY2FuJiMzOTt0IGVudGVyIHRoYXQgY2l0eT8mbmJzcDs8XC9saT5cclxuPFwvb2w+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdGhhdCBpbXBsZW1lbnRzIHRoZSBkZXNjcmliZWQgc3lzdGVtLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgY29udGFpbnMgdHdvIGludGVnZXJzIE4gYW5kIEUgKDIgJmxlOyBOICZsZTsgMTAwMDAwLCAxICZsZTsgRSAmbGU7IDUwMDAwMCksIHRoZSBudW1iZXIgb2YgY2l0aWVzIGFuZCByb2Fkcy4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RWFjaCBvZiB0aGUgZm9sbG93aW5nIEUgbGluZXMgY29udGFpbnMgdHdvIGRpc3RpbmN0IGludGVnZXJzIGJldHdlZW4gMSBhbmQgTiAmbmRhc2g7IHRoZSBsYWJlbHMgb2YgdHdvIGNpdGllcyBjb25uZWN0ZWQgYnkgYSByb2FkLiBUaGVyZSB3aWxsIGJlIGF0IG1vc3Qgb25lIHJvYWQgYmV0d2VlbiBhbnkgcGFpciBvZiBjaXRpZXMuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBmb2xsb3dpbmcgbGluZSBjb250YWlucyB0aGUgaW50ZWdlciBRICgxICZsZTsgUSAmbGU7IDEwMDAwMCksIHRoZSBudW1iZXIgb2YgcXVlcmllcyB0aGUgc3lzdGVtIGlzIGJlaW5nIHRlc3RlZCBvbi4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RWFjaCBvZiB0aGUgZm9sbG93aW5nIFEgbGluZXMgY29udGFpbnMgZWl0aGVyIGZvdXIgb3IgZml2ZSBpbnRlZ2Vycy4gVGhlIGZpcnN0IG9mIHRoZXNlIGludGVnZXJzIGlzIHRoZSB0eXBlIG9mIHRoZSBxdWVyeSAmbmRhc2g7IDEgb3IgMi4mbmJzcDs8XC9wPlxyXG5cclxuPHA+SWYgdGhlIHF1ZXJ5IGlzIG9mIHR5cGUgMSwgdGhlbiB0aGUgc2FtZSBsaW5lIGNvbnRhaW5zIGZvdXIgbW9yZSBpbnRlZ2VycyBBLCBCLCBHPHN1Yj4xPFwvc3ViPiBhbmQgRzxzdWI+MjxcL3N1Yj4gYXMgZGVzY3JpYmVkIGVhcmxpZXIuIEEgYW5kIEIgd2lsbCBiZSBkaWZmZXJlbnQuIEc8c3ViPjE8XC9zdWI+IGFuZCBHPHN1Yj4yPFwvc3ViPiB3aWxsIHJlcHJlc2VudCBhbiBleGlzdGluZyByb2FkLiZuYnNwOzxcL3A+XHJcblxyXG48cD5JZiB0aGUgcXVlcnkgaXMgb2YgdHlwZSAyLCB0aGVuIHRoZSBzYW1lIGxpbmUgY29udGFpbnMgdGhyZWUgbW9yZSBpbnRlZ2VycyBBLCBCIGFuZCBDLiBBLCBCIGFuZCBDIHdpbGwgYmUgZGlzdGluY3QgaW50ZWdlcnMuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSB0ZXN0IGRhdGEgd2lsbCBiZSBzdWNoIHRoYXQgaXQgaXMgaW5pdGlhbGx5IHBvc3NpYmxlIHRvIGdldCBmcm9tIGVhY2ggY2l0eSB0byBldmVyeSBvdGhlciBjaXR5LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCB0aGUgYW5zd2VycyB0byBhbGwgUSBxdWVyaWVzLCBvbmUgcGVyIGxpbmUuIFRoZSBhbnN3ZXIgdG8gYSBxdWVyeSBjYW4gYmUgJnF1b3Q7eWVzJnF1b3Q7IG9yICZxdW90O25vJnF1b3Q7LiZuYnNwOzxcL3A+XHJcblxyXG48cD5Ob3RlOiBpZiB5b3VyIHByb2dyYW0gY29ycmVjdGx5IGFuc3dlcnMgYWxsIHF1ZXN0aW9ucyBvZiBvbmUgdHlwZSBidXQgbm90IHRoZSBvdGhlciwgaXQgd2lsbCByZWNlaXZlIDUwJSBvZiB0aGUgc2NvcmUgZm9yIHRoYXQgY2FzZS4gRXZlbiB0aGVuIHlvdXIgcHJvZ3JhbSBuZWVkcyB0byBhbnN3ZXIgYWxsIFEgcXVlcmllcyAodGhlIG90aGVyIHF1ZXJpZXMgY2FuIGJlIGFuc3dlcmVkIGFyYml0cmFyaWx5KS4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=