시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
5 초 512 MB 5 3 3 100.000%

문제

이노폴리스에서는 자율 주행 택시가 운행하고 있다. 이 도시의 도로망은 n + 1개의 택시를 탈 수 있는 정류 장과 이들을 잇는 n개의 도로로 이루어져 있다. 도로 하나마다 가로등이 있다. i 번 가로등이 켜져 있다면, 정류장 i와 정류장 i + 1를 잇는 도로를 밝힌다. 만약 꺼져 있다면, 이 도로는 어둡다.

보안 문제로, 자율 주행 택시는 가로등이 켜진 도로만 달릴 수 있다. 다른 말로 하면, 택시가 정류장 a에서 정류장 b로 가려면 (a < b), 정류장 a과 정류장 a + 1를 잇는 도로, 정류장 a + 1과 정류장 a + 2를 잇는 도로, . . . , 정류장 b − 1과 정류장 b를 잇는 도로의 가로등이 켜져야 한다.

고장이 나거나, 수리를 하면 가로등이 켜지거나 꺼질 수 있다.

시점 0에서는 가로등의 초기 상황이 주어진다. 1, 2, . . . , q 시간이 지나면 다음 두 상황 중 하나가 벌어질 수 있다.

  • toggle i” — i 번 가로등이 반전된다. 즉, 이 가로등이 켜져 있었다면 꺼지고, 꺼져 있었다면 켜진다.
  • query a b” — 자율 주행 택시를 운영하는 곳의 대표가 다음을 궁금해한다. 시점 0에서 시작해서 현재에 이르기 까지 자율 주행 택시가 정류장 a에서 정류장 b까지 운행할 수 있었던 총 시간은 얼마일까?

자율 주행 택시를 운영하는 곳이 이 질의를 답하는 것을 도와주자

입력

첫번째 줄에는 두 정수 n, q가 주어진다. (1 ≤ n, q ≤ 300 000) — 이는 가로등의 수와 이벤트의 개수이다.

두번째 줄에는 최초의 가로등 상태를 알려주는 문자열 s가 주어진다. (|s| = n), 만약 가로등 i가 켜져 있으면 si는 ‘1’이고, 가로등 i가 꺼져 있으면 si는 ‘0’이다.

다음 q 줄 각각은 이벤트를 설명한다. 이 중 i 번째 줄은 i 시간이 지났을 때 이벤트를 설명한다.

  • toggle i” (1 ≤ i ≤ n) — 가로등 i이 반전된다.
  • query a b” (1 ≤ a < b ≤ n + 1) — 정류장 a에서 정류장 b까지 자율 주행 택시가 운행할 수 있었던 총 시간 수를 계산한다.

이벤트 중 최소 하나는 query이다.

출력

각각의 query 이벤트마다 하나의 정수를 출력하고, 이 수는 질의에 대한 답이다.

예제 입력 1

5 7
11011
query 1 2
query 1 2
query 1 6
query 3 4
toggle 3
query 3 4
query 1 6

예제 출력 1

1
2
0
0
1
2

힌트

예제 입력의 결과는 다음과 같다.

시간 가로등 상태 이벤트 응답
1 11011    
    query 1 2 1
2 11011    
    query 1 2 1 and 2
3 11011    
    query 1 6 None
4 11011    
    query 3 4 None
5 11011    
    toggle 3  
6 11111    
    query 3 4 6
7 11111    
    query 1 6 6 and 7
W3sicHJvYmxlbV9pZCI6IjE3NjM2IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVhYzAwXHViODVjXHViNGYxIiwiZGVzY3JpcHRpb24iOiI8cD5cdWM3NzRcdWIxNzhcdWQzZjRcdWI5YWNcdWMyYTRcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjNzkwXHVjNzI4IFx1YzhmY1x1ZDU4OSBcdWQwZGRcdWMyZGNcdWFjMDAgXHVjNmI0XHVkNTg5XHVkNTU4XHVhY2UwIFx1Yzc4OFx1YjJlNC4gXHVjNzc0IFx1YjNjNFx1YzJkY1x1Yzc1OCBcdWIzYzRcdWI4NWNcdWI5ZGRcdWM3NDAgbiArIDFcdWFjMWNcdWM3NTggXHVkMGRkXHVjMmRjXHViOTdjIFx1ZDBjOCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YzgxNVx1Yjk1OCBcdWM3YTVcdWFjZmMgXHVjNzc0XHViNGU0XHVjNzQ0IFx1Yzc4N1x1YjI5NCBuXHVhYzFjXHVjNzU4IFx1YjNjNFx1Yjg1Y1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWIzYzRcdWI4NWMgXHVkNTU4XHViMDk4XHViOWM4XHViMmU0IFx1YWMwMFx1Yjg1Y1x1YjRmMVx1Yzc3NCBcdWM3ODhcdWIyZTQuIGkgXHViYzg4IFx1YWMwMFx1Yjg1Y1x1YjRmMVx1Yzc3NCBcdWNmMWNcdWM4MzggXHVjNzg4XHViMmU0XHViYTc0LCBcdWM4MTVcdWI5NThcdWM3YTUgaVx1YzY0MCBcdWM4MTVcdWI5NThcdWM3YTUgaSArIDFcdWI5N2MgXHVjNzg3XHViMjk0IFx1YjNjNFx1Yjg1Y1x1Yjk3YyBcdWJjMWRcdWQ3OGNcdWIyZTQuIFx1YjljY1x1YzU3ZCBcdWFlYmNcdWM4MzggXHVjNzg4XHViMmU0XHViYTc0LCBcdWM3NzQgXHViM2M0XHViODVjXHViMjk0IFx1YzViNFx1YjQ2MVx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViY2Y0XHVjNTQ4IFx1YmIzOFx1YzgxY1x1Yjg1YywgXHVjNzkwXHVjNzI4IFx1YzhmY1x1ZDU4OSBcdWQwZGRcdWMyZGNcdWIyOTQgXHVhYzAwXHViODVjXHViNGYxXHVjNzc0IFx1Y2YxY1x1YzljNCBcdWIzYzRcdWI4NWNcdWI5Y2MgXHViMmVjXHViOWI0IFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YjJlNFx1Yjk3OCBcdWI5ZDBcdWI4NWMgXHVkNTU4XHViYTc0LCBcdWQwZGRcdWMyZGNcdWFjMDAgXHVjODE1XHViOTU4XHVjN2E1IGFcdWM1ZDBcdWMxMWMgXHVjODE1XHViOTU4XHVjN2E1IGJcdWI4NWMgXHVhYzAwXHViODI0XHViYTc0IChhICZsdDsgYiksIFx1YzgxNVx1Yjk1OFx1YzdhNSBhXHVhY2ZjIFx1YzgxNVx1Yjk1OFx1YzdhNSBhICsgMVx1Yjk3YyBcdWM3ODdcdWIyOTQgXHViM2M0XHViODVjLCBcdWM4MTVcdWI5NThcdWM3YTUgYSArIDFcdWFjZmMgXHVjODE1XHViOTU4XHVjN2E1IGEgKyAyXHViOTdjIFx1Yzc4N1x1YjI5NCBcdWIzYzRcdWI4NWMsIC4gLiAuICwgXHVjODE1XHViOTU4XHVjN2E1IGIgJm1pbnVzOyAxXHVhY2ZjIFx1YzgxNVx1Yjk1OFx1YzdhNSBiXHViOTdjIFx1Yzc4N1x1YjI5NCBcdWIzYzRcdWI4NWNcdWM3NTggXHVhYzAwXHViODVjXHViNGYxXHVjNzc0IFx1Y2YxY1x1YzgzOFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWNlMFx1YzdhNVx1Yzc3NCBcdWIwOThcdWFjNzBcdWIwOTgsIFx1YzIxOFx1YjlhY1x1Yjk3YyBcdWQ1NThcdWJhNzQgXHVhYzAwXHViODVjXHViNGYxXHVjNzc0IFx1Y2YxY1x1YzljMFx1YWM3MFx1YjA5OCBcdWFlYmNcdWM5YzggXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjMmRjXHVjODEwIDBcdWM1ZDBcdWMxMWNcdWIyOTQgXHVhYzAwXHViODVjXHViNGYxXHVjNzU4IFx1Y2QwOFx1YWUzMCBcdWMwYzFcdWQ2NjlcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAxLCAyLCAuIC4gLiAsIHEgXHVjMmRjXHVhYzA0XHVjNzc0IFx1YzljMFx1YjA5OFx1YmE3NCBcdWIyZTRcdWM3NGMgXHViNDUwIFx1YzBjMVx1ZDY2OSBcdWM5MTEgXHVkNTU4XHViMDk4XHVhYzAwIFx1YmM4Y1x1YzViNFx1YzljOCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiZsZHF1bzs8Y29kZT50b2dnbGUgaTxcL2NvZGU+JnJkcXVvOyAmbWRhc2g7IGkgXHViYzg4IFx1YWMwMFx1Yjg1Y1x1YjRmMVx1Yzc3NCBcdWJjMThcdWM4MDRcdWI0MWNcdWIyZTQuIFx1Yzk4OSwgXHVjNzc0IFx1YWMwMFx1Yjg1Y1x1YjRmMVx1Yzc3NCBcdWNmMWNcdWM4MzggXHVjNzg4XHVjNWM4XHViMmU0XHViYTc0IFx1YWViY1x1YzljMFx1YWNlMCwgXHVhZWJjXHVjODM4IFx1Yzc4OFx1YzVjOFx1YjJlNFx1YmE3NCBcdWNmMWNcdWM5YzRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiZsZHF1bzs8Y29kZT5xdWVyeSBhIGI8XC9jb2RlPiZyZHF1bzsgJm1kYXNoOyBcdWM3OTBcdWM3MjggXHVjOGZjXHVkNTg5IFx1ZDBkZFx1YzJkY1x1Yjk3YyBcdWM2YjRcdWM2MDFcdWQ1NThcdWIyOTQgXHVhY2YzXHVjNzU4IFx1YjMwMFx1ZDQ1Y1x1YWMwMCBcdWIyZTRcdWM3NGNcdWM3NDQgXHVhZDgxXHVhZTA4XHVkNTc0XHVkNTVjXHViMmU0LiBcdWMyZGNcdWM4MTAgMFx1YzVkMFx1YzExYyBcdWMyZGNcdWM3OTFcdWQ1NzRcdWMxMWMgXHVkNjA0XHVjN2FjXHVjNWQwIFx1Yzc3NFx1Yjk3NFx1YWUzMCBcdWFlNGNcdWM5YzAgXHVjNzkwXHVjNzI4IFx1YzhmY1x1ZDU4OSBcdWQwZGRcdWMyZGNcdWFjMDAgXHVjODE1XHViOTU4XHVjN2E1IGFcdWM1ZDBcdWMxMWMgXHVjODE1XHViOTU4XHVjN2E1IGJcdWFlNGNcdWM5YzAgXHVjNmI0XHVkNTg5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWM1YzhcdWIzNTggXHVjZDFkIFx1YzJkY1x1YWMwNFx1Yzc0MCBcdWM1YmNcdWI5YzhcdWM3N2NcdWFlNGM/PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzkwXHVjNzI4IFx1YzhmY1x1ZDU4OSBcdWQwZGRcdWMyZGNcdWI5N2MgXHVjNmI0XHVjNjAxXHVkNTU4XHViMjk0IFx1YWNmM1x1Yzc3NCBcdWM3NzQgXHVjOWM4XHVjNzU4XHViOTdjIFx1YjJmNVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NDQgXHViM2M0XHVjNjQwXHVjOGZjXHVjNzkwPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MCBcdWM4MTVcdWMyMTggbiwgcVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICgxICZsZTsgbiwgcSAmbGU7IDMwMCAwMDApICZtZGFzaDsgXHVjNzc0XHViMjk0IFx1YWMwMFx1Yjg1Y1x1YjRmMVx1Yzc1OCBcdWMyMThcdWM2NDAgXHVjNzc0XHViY2E0XHVkMmI4XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNDUwXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWNkNWNcdWNkMDhcdWM3NTggXHVhYzAwXHViODVjXHViNGYxIFx1YzBjMVx1ZDBkY1x1Yjk3YyBcdWM1NGNcdWI4MjRcdWM4ZmNcdWIyOTQgXHViYjM4XHVjNzkwXHVjNWY0IHNcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAofHN8ID0gbiksIFx1YjljY1x1YzU3ZCBcdWFjMDBcdWI4NWNcdWI0ZjEgaVx1YWMwMCBcdWNmMWNcdWM4MzggXHVjNzg4XHVjNzNjXHViYTc0IHM8c3ViPmk8XC9zdWI+XHViMjk0ICZsc3F1bzsxJnJzcXVvO1x1Yzc3NFx1YWNlMCwgXHVhYzAwXHViODVjXHViNGYxIGlcdWFjMDAgXHVhZWJjXHVjODM4IFx1Yzc4OFx1YzczY1x1YmE3NCBzPHN1Yj5pPFwvc3ViPlx1YjI5NCAmbHNxdW87MCZyc3F1bztcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjJlNFx1Yzc0YyBxIFx1YzkwNCBcdWFjMDFcdWFjMDFcdWM3NDAgXHVjNzc0XHViY2E0XHVkMmI4XHViOTdjIFx1YzEyNFx1YmE4NVx1ZDU1Y1x1YjJlNC4gXHVjNzc0IFx1YzkxMSBpIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM3NDAgaSBcdWMyZGNcdWFjMDRcdWM3NzQgXHVjOWMwXHViMGFjXHVjNzQ0IFx1YjU0YyBcdWM3NzRcdWJjYTRcdWQyYjhcdWI5N2MgXHVjMTI0XHViYTg1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiZsZHF1bzs8Y29kZT50b2dnbGUgaTxcL2NvZGU+JnJkcXVvOyAoMSAmbGU7IGkgJmxlOyBuKSAmbWRhc2g7IFx1YWMwMFx1Yjg1Y1x1YjRmMSBpXHVjNzc0IFx1YmMxOFx1YzgwNFx1YjQxY1x1YjJlNC48XC9saT5cclxuXHQ8bGk+JmxkcXVvOzxjb2RlPnF1ZXJ5IGEgYjxcL2NvZGU+JnJkcXVvOyAoMSAmbGU7IGEgJmx0OyBiICZsZTsgbiArIDEpICZtZGFzaDsgXHVjODE1XHViOTU4XHVjN2E1IGFcdWM1ZDBcdWMxMWMgXHVjODE1XHViOTU4XHVjN2E1IGJcdWFlNGNcdWM5YzAgXHVjNzkwXHVjNzI4IFx1YzhmY1x1ZDU4OSBcdWQwZGRcdWMyZGNcdWFjMDAgXHVjNmI0XHVkNTg5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWM1YzhcdWIzNTggXHVjZDFkIFx1YzJkY1x1YWMwNCBcdWMyMThcdWI5N2MgXHVhY2M0XHVjMGIwXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1Yzc3NFx1YmNhNFx1ZDJiOCBcdWM5MTEgXHVjZDVjXHVjMThjIFx1ZDU1OFx1YjA5OFx1YjI5NCA8Y29kZT5xdWVyeTxcL2NvZGU+XHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMVx1YWMwMVx1Yzc1OCA8Y29kZT5xdWVyeTxcL2NvZGU+IFx1Yzc3NFx1YmNhNFx1ZDJiOFx1YjljOFx1YjJlNCBcdWQ1NThcdWIwOThcdWM3NTggXHVjODE1XHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWNlMCwgXHVjNzc0IFx1YzIxOFx1YjI5NCBcdWM5YzhcdWM3NThcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YjJmNVx1Yzc3NFx1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiPHA+XHVjNjA4XHVjODFjIFx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWFjYjBcdWFjZmNcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjUwJTtcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5cdWMyZGNcdWFjMDQ8XC90aD5cclxuXHRcdFx0PHRoPlx1YWMwMFx1Yjg1Y1x1YjRmMSBcdWMwYzFcdWQwZGM8XC90aD5cclxuXHRcdFx0PHRoPlx1Yzc3NFx1YmNhNFx1ZDJiODxcL3RoPlxyXG5cdFx0XHQ8dGg+XHVjNzUxXHViMmY1PFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTAxMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+cXVlcnkgMSAyPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+MTEwMTE8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPnF1ZXJ5IDEgMjxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4xIGFuZCAyPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjExMDExPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT5xdWVyeSAxIDY8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Tm9uZTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD40PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTAxMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+cXVlcnkgMyA0PFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPk5vbmU8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+NTxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+MTEwMTE8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPnRvZ2dsZSAzPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD42PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTExMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+cXVlcnkgMyA0PFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjY8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+NzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+MTExMTE8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPnF1ZXJ5IDEgNjxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD42IGFuZCA3PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcbiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMTc2MzYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTdHJlZXQgTGFtcHMiLCJkZXNjcmlwdGlvbiI6IjxwPlRoZXJlIGlzIGEgc2VsZi1kcml2aW5nIHRheGkgaW4gSW5ub3BvbGlzIHRoYXQgZHJpdmVzIG9uIGEgbG9uZyBzdHJlZXQuIFRoZSBzdHJlZXQgY29uc2lzdHMgb2YgbiArIDEgdGF4aSBzdG9wcyBhbmQgbiBzZWdtZW50cyBjb25uZWN0aW5nIGFkamFjZW50IHN0b3BzLiBUaGVyZSBpcyBhIHN0cmVldCBsYW1wIG9uIGVhY2ggc2VnbWVudC4gVGhlIGktdGggbGFtcCBpbGx1bWluYXRlcyB0aGUgc2VnbWVudCBjb25uZWN0aW5nIHN0b3AgaSBhbmQgaSsgMSwgaWYgdGhlIGxhbXAgaXMgb24uIE90aGVyd2lzZSwgaXQmcnNxdW87cyBkYXJrIG9uIHRoZSBzZWdtZW50LjxcL3A+XHJcblxyXG48cD5Gb3IgdGhlIHB1cnBvc2Ugb2Ygc2FmZXR5IHRoZSBzZWxmLWRyaXZpbmcgdGF4aSBjYW4gb25seSBkcml2ZSBvbiB0aGUgc2VnbWVudHMgdGhhdCBhcmUgaWxsdW1pbmF0ZWQuIEluIG90aGVyIHdvcmRzLCB0aGUgdGF4aSBjYW4gZHJpdmUgZnJvbSB0aGUgc3RvcCBhIHRvIHRoZSBzdG9wIGIgKGEgJmx0OyBiKSwgaWYgdGhlIHNlZ21lbnRzIGJldHdlZW4gYSBhbmQgYSsgMSwgYSArIDEgYW5kIGEgKyAyLCAuIC4gLiAsIGIgJm1pbnVzOyAxIGFuZCBiIGFyZSBpbGx1bWluYXRlZC48XC9wPlxyXG5cclxuPHA+QWZ0ZXIgYnJlYWtkb3ducyBvciByZXBhaXJzIHRoZSBzdHJlZXQgbGFtcHMgY2FuIHR1cm4gb24gb3IgdHVybiBvZmYuIFlvdSBhcmUgZ2l2ZW4gdGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGxhbXBzIGF0IHRoZSBtb21lbnQgMC4gQWZ0ZXIgdGhhdCBpbiB0aGUgZW5kIG9mIGhvdXJzIDEsIDIsIC4gLiAuICwgcSBldmVudHMgdGFrZSBwbGFjZS4gRXhhY3RseSBvbmUgZXZlbnQgdGFrZXMgcGxhY2UgaW4gdGhlIGVuZCBvZiBlYWNoIGhvdXIsIHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgZXZlbnRzOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiZsZHF1bzs8Y29kZT50b2dnbGUgaTxcL2NvZGU+JnJkcXVvOyAmbWRhc2g7IHRoZSBpLXRoIGxhbXAgY2hhbmdlcyBpdHMgc3RhdGU6IGlmIHRoZSBsYW1wIHdhcyBvbiwgaXQgdHVybnMgb2ZmLCBpZiB0aGUgbGFtcCB3YXMgb2ZmLCBpdCB0dXJucyBvbi48XC9saT5cclxuXHQ8bGk+JmxkcXVvOzxjb2RlPnF1ZXJ5IGEgYjxcL2NvZGU+JnJkcXVvOyAmbWRhc2g7IHRoZSBoZWFkIG9mIHRoZSBzZWxmLWRyaXZpbmcgdGF4aSBkZXBhcnRtZW50IHdvbmRlcnMsIHdoYXQgaXMgdGhlIHRvdGFsIHRpbWUgaW4gaG91cnMgZnJvbSAwIHVwIHRvIHRoZSBjdXJyZW50IHRpbWUgd2hlbiB0aGUgdGF4aSB3YXMgYWJsZSB0byBkcml2ZSBmcm9tIHN0b3AgYSB0byBzdG9wIGIuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+SGVscCB0aGUgaGVhZCBvZiBzZWxmLWRyaXZpbmcgdGF4aSBkZXBhcnRtZW50IHRvIGFuc3dlciB0aGUgcXVlc3Rpb25zLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgY29udGFpbnMgdHdvIGludGVnZXJzIG4gYW5kIHEgKDEgJmxlOyBuLCBxICZsZTsgMzAwIDAwMCkgJm1kYXNoOyB0aGUgbnVtYmVyIG9mIHN0cmVldCBsYW1wcyBhbmQgbnVtYmVyIG9mIGV2ZW50cy48XC9wPlxyXG5cclxuPHA+VGhlIHNlY29uZCBsaW5lIGNvbnRhaW5zIGEgc3RyaW5nIHMgdGhhdCBkZXNjcmliZXMgdGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGxhbXBzICh8c3wgPSBuKSwgczxzdWI+aTxcL3N1Yj4gaXMgJmxzcXVvOzEmcnNxdW87IGlmIHRoZSBpLXRoIGxhbXAgaXMgb24sIGFuZCBzPHN1Yj5pPFwvc3ViPiBpcyAmbHNxdW87MCZyc3F1bzsgaWYgdGhlIGktdGggbGFtcCBpcyBvZmYuPFwvcD5cclxuXHJcbjxwPkVhY2ggb2YgdGhlIGZvbGxvd2luZyBxIGxpbmVzIGRlc2NyaWJlcyBldmVudHMuIFRoZSBpLXRoIG9mIHRoZXNlIGxpbmVzIGRlc2NyaWJlcyBhbiBldmVudCB0aGF0IHRha2VzIHBsYWNlIGluIHRoZSBlbmQgb2YgdGhlIGhvdXIgaS48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4mbGRxdW87PGNvZGU+dG9nZ2xlIGk8XC9jb2RlPiZyZHF1bzsgKDEgJmxlOyBpICZsZTsgbikgJm1kYXNoOyB0aGUgaS10aCBsYW1wIGNoYW5nZXMgaXRzIHN0YXRlLjxcL2xpPlxyXG5cdDxsaT4mbGRxdW87PGNvZGU+cXVlcnkgYSBiPFwvY29kZT4mcmRxdW87ICgxICZsZTsgYSAmbHQ7IGIgJmxlOyBuICsgMSkgJm1kYXNoOyBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBob3VycyB1bnRpbCB0aGUgY3VycmVudCBtb21lbnQgd2hlbiB0aGUgdGF4aSB3YXMgYWJsZSB0byBkcml2ZSBmcm9tIHN0b3AgYSB0byBzdG9wIGIuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+QXQgbGVhc3Qgb25lIG9mIHRoZSBldmVudHMgaXMgPGNvZGU+cXVlcnk8XC9jb2RlPi48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCA8Y29kZT5xdWVyeTxcL2NvZGU+IGV2ZW50IHByaW50IGEgc2luZ2xlIGludGVnZXI6IHRoZSBhbnN3ZXIgdG8gdGhlIHF1ZXN0aW9uLjxcL3A+XHJcbiIsImhpbnQiOiI8cD5JbiB0aGUgc2FtcGxlIHRlc3Q6PFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDo1MCU7XCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+SG91cjxcL3RoPlxyXG5cdFx0XHQ8dGg+TGFtcCBzdGF0ZXM8XC90aD5cclxuXHRcdFx0PHRoPlF1ZXJ5PFwvdGg+XHJcblx0XHRcdDx0aD5BbnN3ZXI8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjExMDExPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT5xdWVyeSAxIDI8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTAxMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+cXVlcnkgMSAyPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjEgYW5kIDI8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+MTEwMTE8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPnF1ZXJ5IDEgNjxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD5Ob25lPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjExMDExPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT5xdWVyeSAzIDQ8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Tm9uZTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD41PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTAxMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+dG9nZ2xlIDM8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjY8XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjExMTExPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+Jm5ic3A7PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT5xdWVyeSAzIDQ8XC9jb2RlPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+NjxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD43PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4xMTExMTxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4mbmJzcDs8XC90ZD5cclxuXHRcdFx0PHRkPiZuYnNwOzxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGNvZGU+cXVlcnkgMSA2PFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjYgYW5kIDc8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=