시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB59373572.917%

문제

$N + M$개의 게이트로 구성된 회로가 있다. 게이트들은 $0$부터 $N + M - 1$까지 번호가 붙어 있다. 게이트 $0$부터 $N - 1$까지는 임계 게이트들이고, 게이트 $N$부터 $N + M - 1$까지는 소스 게이트들이다.

게이트 $0$을 제외한 각 게이트의 출력은 하나이고 정확히 하나의 임계 게이트의 입력으로 연결된다. 좀더 구체적으로, 각 게이트 $i$의 ($1 \le i \le N + M - 1$) 출력은 게이트 $P[i]$의 입력이다. ($0 \le P[i] \le N-1$) 중요하게, $P[i] \lt i$가 항상 성립한다. 또, $P[0] = -1$이다. 즉, 게이트 $0$의 출력은 다른 어떤 게이트의 입력으로도 연결되지 않는다. 모든 임계 게이트는 하나 이상의 입력을 가진다. 모든 소스 게이트는 입력이 없다.

각 게이트는 $0$ 혹은 $1$의 값이 될 수 있는 상태를 가진다. 게이트의 출력은 그 게이트의 상태와 같다. 소스 게이트들의 상태는 입력 배열 $A$로 (배열 크기 $M$) 주어진다. 즉, 각 $j$에 대해 ($0 \le j \le M - 1$), $A[j]$의 값이 게이트 $N + j$의 상태이다.

각 임계 게이트의 상태는 해당 게이트의 입력에 따라 다음과 같이 결정된다. 각 임계 게이트에는 임계치를 결정하는 파라미터가 정해져 있다. $c$개의 입력을 가진 임계 게이트의 파라미터는 $1$ 이상 $c$ 이하의 정수이다. 파라미터가 $p$인 임계 게이트의 상태는, 입력 중 $p$개 이상이 $1$인 경우 $1$이고, 그렇지 않은 경우 $0$이다.

예를 들어, 아래 그림처럼 $N = 3$개의 임계 게이트와 $M = 4$개의 소스 게이트가 있는 회로가 있다고 하자. 게이트 $0$의 입력은 게이트 $1$과 $6$(의 출력)이고, 게이트 $1$의 입력은 게이트 $2$, $4$, $5$이며, 게이트 $2$의 입력은 게이트 $3$이다.

이 회로에서 게이트 $3$과 $5$의 상태는 $1$이고 게이트 $4$와 $6$의 상태는 $0$이라고 하자. 게이트 $2$, $1$, $0$의 파라미터는 각각 $1$, $2$, $2$라고 하자. 이 경우, 게이트 $2$의 상태는 $1$, 게이트 $1$의 상태는 $1$, 게이트 $0$의 상태는 $0$이 된다. 위의 상황은 아래 그림에 표시되어 있다. 게이트의 상태가 $1$인 것들이 검은 색으로 표시되어 있다.

소스 게이트들의 상태는 $Q$번 업데이트된다. 각 업데이트는 두 정수 $L$, $R$로 ($N \le L \le R \le N + M - 1$) 표현된다. 업데이트의 의미는 번호가 $L$부터 $R$까지인 모든 소스 게이트의 상태를 뒤집는 것이다. 뒤집는다는 것의 의미는 $0$을 $1$로, $1$을 $0$으로 바꾸는 것이다. 업데이트에 의해 변경된 게이트들의 상태는 이후의 업데이트에 영향을 받지 않는 한 유지된다.

초기 상태를 입력 받고, 각 업데이트 이후에 게이트 $0$의 상태가 $1$이 되도록 만들 수 있는 임계 게이트 파라미터 설정 방법의 경우의 수를 계산하는 프로그램을 작성하라. 두 파라미터 설정 방법이 다르다는 것은, 임계 게이트 중 하나라도 다른 파라미터 값을 가진다는 것으로 정의된다. 경우의 수 값이 매우 클 수 있으므로 그 값을 $1\,000\,002\,022$으로 나눈 나머지를 결과로 제시해야 한다.

위의 예에서 게이트 $0$, $1$, $2$는 각각 $2$, $3$, $1$개의 입력이 있으므로, 가능한 파라미터 설정 방법은 $6$가지가 있다. 가능한 방법들 중 $2$가지에서 게이트 $0$의 상태는 $1$이 된다.

구현

다음 2개의 함수를 구현해야 한다.

void init(int N, int M, int[] P, int[] A)
  • $N$: 임계 게이트의 개수.
  • $M$: 소스 게이트의 개수.
  • $P$: 임계 게이트의 입력을 표현한 크기 $N + M$인 배열.
  • $A$: 소스 게이트의 초기 상태를 표현한 크기 $M$인 배열.
  • 이 함수는 모든 count_ways 호출 이전에 정확히 한번 호출된다.
int count_ways(int L, int R)
  • $L$, $R$: 업데이트에 의해 뒤집히는 소스 게이트들의 번호 범위.
  • 이 함수는 지정된 업데이트를 수행한 후, 게이트 $0$의 상태가 $1$이 되게 만드는 파라미터 설정 방법의 경우의 수를 $1\,000\,002\,022$로 나눈 나머지를 리턴해야 한다.
  • 이 함수는 정확히 $Q$번 호출된다.

예제

다음 호출들을 보자:

init(3, 4, [-1, 0, 1, 2, 1, 1, 0], [1, 0, 1, 0])

이 회로는 본문에서 설명한 것과 같다.

count_ways(3, 4)

게이트 $3$과 $4$를 뒤집는다. 즉, 게이트 $3$의 상태는 $0$이 되고 게이트 $4$의 상태는 $1$이 된다. 게이트 $0$의 상태가 $1$이 되게 하는 $2$가지 파라미터 설정이 아래 그림에 표현되어 있다.

설정 $1$ 설정 $2$

위의 방법 이외의 모든 다른 설정에서 게이트 $0$의 상태가 $0$이 된다. 따라서, 이 함수 호출은 $2$를 리턴해야 한다.

count_ways(4, 5)

게이트 $4$와 $5$를 뒤집는다. 모든 소스 게이트의 상태가 $0$이 되었다. 이 경우 파라미터 설정을 어떻게 해도 게이트 $0$의 상태는 $0$이다. 따라서, 이 함수 호출은 $0$을 리턴해야 한다.

count_ways(3, 6)

모든 소스 게이트의 상태가 $1$로 바뀐다. 이 경우 파라미터 설정을 어떻게 해도 게이트 $0$의 상태는 $1$이다. 따라서, 이 함수 호출은 $6$을 리턴해야 한다.

제한

  • $1 \le N, M \le 100\,000$
  • $1 \le Q \le 100\,000$
  • $P[0] = -1$
  • $0 \le P[i] \lt i$이고 $P[i] \le N - 1$ ($1 \le i \le N + M - 1$)
  • 각 임계 게이트는 최소 하나의 입력이 있다. (모든 $i$($0 \le i \le N - 1$)에 대해 최소 하나의 $x$($i \lt x \le N + M - 1$)가 있어서 $P[x] = i$이다.)
  • $0 \le A[j] \le 1$ ($0 \le j \le M - 1$)
  • $N \le L \le R \le N + M - 1$

서브태스크

번호배점제한
12

$N = 1$, $M \le 1000$, $Q \le 5$

27

$N, M \le 1000$, $Q \le 5$, 각 임계 게이트에는 정확히 $2$개의 입력이 있다.

39

$N, M \le 1000$, $Q \le 5$

44

$M = N + 1$, $M = 2^z$ (양의 정수 $z$), $P[i] = \lfloor\frac{i - 1}{2}\rfloor$ ($1 \le i \le N + M - 1$), $L = R$

512

$M = N + 1$, $M = 2^z$ (양의 정수 $z$), $P[i] = \lfloor\frac{i - 1}{2}\rfloor$ ($1 \le i \le N + M - 1$)

627

각 임계 게이트에는 정확히 $2$개의 입력이 있다.

728

$N, M \le 5000$

811

추가적인 제한이 없다.

W3sicHJvYmxlbV9pZCI6IjI1NDQxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViNTE0XHVjOWMwXHVkMTM4IFx1ZDY4Y1x1Yjg1YyIsImRlc2NyaXB0aW9uIjoiPHA+JE4gKyBNJFx1YWMxY1x1Yzc1OCA8c3Ryb25nPlx1YWM4Y1x1Yzc3NFx1ZDJiODxcL3N0cm9uZz5cdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjIFx1ZDY4Y1x1Yjg1Y1x1YWMwMCBcdWM3ODhcdWIyZTQuIFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjRlNFx1Yzc0MCAkMCRcdWJkODBcdWQxMzAgJE4gKyBNIC0gMSRcdWFlNGNcdWM5YzAgXHViYzg4XHVkNjM4XHVhYzAwIFx1YmQ5OVx1YzViNCBcdWM3ODhcdWIyZTQuIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWJkODBcdWQxMzAgJE4gLSAxJFx1YWU0Y1x1YzljMFx1YjI5NCA8c3Ryb25nPlx1Yzc4NFx1YWNjNCBcdWFjOGNcdWM3NzRcdWQyYjg8XC9zdHJvbmc+XHViNGU0XHVjNzc0XHVhY2UwLCBcdWFjOGNcdWM3NzRcdWQyYjggJE4kXHViZDgwXHVkMTMwICROICsgTSAtIDEkXHVhZTRjXHVjOWMwXHViMjk0IDxzdHJvbmc+XHVjMThjXHVjMmE0IFx1YWM4Y1x1Yzc3NFx1ZDJiODxcL3N0cm9uZz5cdWI0ZTRcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWM3NDQgXHVjODFjXHVjNjc4XHVkNTVjIFx1YWMwMSBcdWFjOGNcdWM3NzRcdWQyYjhcdWM3NTggXHVjZDljXHViODI1XHVjNzQwIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YWNlMCBcdWM4MTVcdWQ2NTVcdWQ3ODggXHVkNTU4XHViMDk4XHVjNzU4IFx1Yzc4NFx1YWNjNCBcdWFjOGNcdWM3NzRcdWQyYjhcdWM3NTggPHN0cm9uZz5cdWM3ODVcdWI4MjU8XC9zdHJvbmc+XHVjNzNjXHViODVjIFx1YzVmMFx1YWNiMFx1YjQxY1x1YjJlNC4gXHVjODgwXHViMzU0IFx1YWQ2Y1x1Y2NiNFx1YzgwMVx1YzczY1x1Yjg1YywgXHVhYzAxIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkaSRcdWM3NTggKCQxIFxcbGUgaSBcXGxlIE4gKyBNIC0gMSQpIFx1Y2Q5Y1x1YjgyNVx1Yzc0MCBcdWFjOGNcdWM3NzRcdWQyYjggJFBbaV0kXHVjNzU4IFx1Yzc4NVx1YjgyNVx1Yzc3NFx1YjJlNC4gKCQwIFxcbGUgUFtpXSBcXGxlIE4tMSQpIFx1YzkxMVx1YzY5NFx1ZDU1OFx1YWM4YywgJFBbaV0gXFxsdCBpJFx1YWMwMCBcdWQ1NmRcdWMwYzEgXHVjMTMxXHViOWJkXHVkNTVjXHViMmU0LiBcdWI2MTAsICRQWzBdID0gLTEkXHVjNzc0XHViMmU0LiBcdWM5ODksIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWM3NTggXHVjZDljXHViODI1XHVjNzQwIFx1YjJlNFx1Yjk3OCBcdWM1YjRcdWI1YTQgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNzU4IFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1Y1x1YjNjNCBcdWM1ZjBcdWFjYjBcdWI0MThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LiBcdWJhYThcdWI0ZTAgXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjI5NCBcdWQ1NThcdWIwOTggXHVjNzc0XHVjMGMxXHVjNzU4IFx1Yzc4NVx1YjgyNVx1Yzc0NCBcdWFjMDBcdWM5YzRcdWIyZTQuIFx1YmFhOFx1YjRlMCBcdWMxOGNcdWMyYTQgXHVhYzhjXHVjNzc0XHVkMmI4XHViMjk0IFx1Yzc4NVx1YjgyNVx1Yzc3NCBcdWM1YzZcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWFjOGNcdWM3NzRcdWQyYjhcdWIyOTQgJDAkIFx1ZDYzOVx1Yzc0MCAkMSRcdWM3NTggXHVhYzEyXHVjNzc0IFx1YjQyMCBcdWMyMTggXHVjNzg4XHViMjk0IDxzdHJvbmc+XHVjMGMxXHVkMGRjPFwvc3Ryb25nPlx1Yjk3YyBcdWFjMDBcdWM5YzRcdWIyZTQuIFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWNkOWNcdWI4MjVcdWM3NDAgXHVhZGY4IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWM2NDAgXHVhYzE5XHViMmU0LiBcdWMxOGNcdWMyYTQgXHVhYzhjXHVjNzc0XHVkMmI4XHViNGU0XHVjNzU4IFx1YzBjMVx1ZDBkY1x1YjI5NCBcdWM3ODVcdWI4MjUgXHViYzMwXHVjNWY0ICRBJFx1Yjg1YyAoXHViYzMwXHVjNWY0IFx1ZDA2Y1x1YWUzMCAkTSQpIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjOTg5LCBcdWFjMDEgJGokXHVjNWQwIFx1YjMwMFx1ZDU3NCAoJDAgXFxsZSBqIFxcbGUgTSAtIDEkKSwgJEFbal0kXHVjNzU4IFx1YWMxMlx1Yzc3NCBcdWFjOGNcdWM3NzRcdWQyYjggJE4gKyBqJFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWM3ODRcdWFjYzQgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNzU4IFx1YzBjMVx1ZDBkY1x1YjI5NCBcdWQ1NzRcdWIyZjkgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNzU4IFx1Yzc4NVx1YjgyNVx1YzVkMCBcdWI1MzBcdWI3N2MgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWFjYjBcdWM4MTVcdWI0MWNcdWIyZTQuIFx1YWMwMSBcdWM3ODRcdWFjYzQgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNWQwXHViMjk0IFx1Yzc4NFx1YWNjNFx1Y2U1OFx1Yjk3YyBcdWFjYjBcdWM4MTVcdWQ1NThcdWIyOTQgPHN0cm9uZz5cdWQzMGNcdWI3N2NcdWJiZjhcdWQxMzA8XC9zdHJvbmc+XHVhYzAwIFx1YzgxNVx1ZDU3NFx1YzgzOCBcdWM3ODhcdWIyZTQuICRjJFx1YWMxY1x1Yzc1OCBcdWM3ODVcdWI4MjVcdWM3NDQgXHVhYzAwXHVjOWM0IFx1Yzc4NFx1YWNjNCBcdWFjOGNcdWM3NzRcdWQyYjhcdWM3NTggXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwXHViMjk0ICQxJCBcdWM3NzRcdWMwYzEgJGMkIFx1Yzc3NFx1ZDU1OFx1Yzc1OCBcdWM4MTVcdWMyMThcdWM3NzRcdWIyZTQuIFx1ZDMwY1x1Yjc3Y1x1YmJmOFx1ZDEzMFx1YWMwMCAkcCRcdWM3NzggXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQsIFx1Yzc4NVx1YjgyNSBcdWM5MTEgJHAkXHVhYzFjIFx1Yzc3NFx1YzBjMVx1Yzc3NCAkMSRcdWM3NzggXHVhY2JkXHVjNmIwICQxJFx1Yzc3NFx1YWNlMCwgXHVhZGY4XHViODA3XHVjOWMwIFx1YzU0YVx1Yzc0MCBcdWFjYmRcdWM2YjAgJDAkXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCBcdWM1NDRcdWI3OTggXHVhZGY4XHViOWJjXHVjYzk4XHViN2ZjICROID0gMyRcdWFjMWNcdWM3NTggXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YzY0MCAkTSA9IDQkXHVhYzFjXHVjNzU4IFx1YzE4Y1x1YzJhNCBcdWFjOGNcdWM3NzRcdWQyYjhcdWFjMDAgXHVjNzg4XHViMjk0IFx1ZDY4Y1x1Yjg1Y1x1YWMwMCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWFjOGNcdWM3NzRcdWQyYjggJDAkXHVjNzU4IFx1Yzc4NVx1YjgyNVx1Yzc0MCBcdWFjOGNcdWM3NzRcdWQyYjggJDEkXHVhY2ZjICQ2JChcdWM3NTggXHVjZDljXHViODI1KVx1Yzc3NFx1YWNlMCwgXHVhYzhjXHVjNzc0XHVkMmI4ICQxJFx1Yzc1OCBcdWM3ODVcdWI4MjVcdWM3NDAgXHVhYzhjXHVjNzc0XHVkMmI4ICQyJCwgJDQkLCAkNSRcdWM3NzRcdWJhNzAsIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMiRcdWM3NTggXHVjNzg1XHViODI1XHVjNzQwIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMyRcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvMGYyYTkxNWEtMGZjMS00YWNmLTk3MmEtNzU0ZGU1N2JjM2QwXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyMDdweDsgaGVpZ2h0OiAyMzNweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjNzc0IFx1ZDY4Y1x1Yjg1Y1x1YzVkMFx1YzExYyBcdWFjOGNcdWM3NzRcdWQyYjggJDMkXHVhY2ZjICQ1JFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgJDEkXHVjNzc0XHVhY2UwIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkNCRcdWM2NDAgJDYkXHVjNzU4IFx1YzBjMVx1ZDBkY1x1YjI5NCAkMCRcdWM3NzRcdWI3N2NcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWFjOGNcdWM3NzRcdWQyYjggJDIkLCAkMSQsICQwJFx1Yzc1OCBcdWQzMGNcdWI3N2NcdWJiZjhcdWQxMzBcdWIyOTQgXHVhYzAxXHVhYzAxICQxJCwgJDIkLCAkMiRcdWI3N2NcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWM3NzQgXHVhY2JkXHVjNmIwLCBcdWFjOGNcdWM3NzRcdWQyYjggJDIkXHVjNzU4IFx1YzBjMVx1ZDBkY1x1YjI5NCAkMSQsIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMSRcdWM3NTggXHVjMGMxXHVkMGRjXHViMjk0ICQxJCwgXHVhYzhjXHVjNzc0XHVkMmI4ICQwJFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgJDAkXHVjNzc0IFx1YjQxY1x1YjJlNC4gXHVjNzA0XHVjNzU4IFx1YzBjMVx1ZDY2OVx1Yzc0MCBcdWM1NDRcdWI3OTggXHVhZGY4XHViOWJjXHVjNWQwIFx1ZDQ1Y1x1YzJkY1x1YjQxOFx1YzViNCBcdWM3ODhcdWIyZTQuIFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWFjMDAgJDEkXHVjNzc4IFx1YWM4M1x1YjRlNFx1Yzc3NCBcdWFjODBcdWM3NDAgXHVjMGM5XHVjNzNjXHViODVjIFx1ZDQ1Y1x1YzJkY1x1YjQxOFx1YzViNCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZTkxYmNkYmItM2FkYi00ODUwLWFhODAtZGUwZmU5ZWVkMDc0XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyMDdweDsgaGVpZ2h0OiAyMzNweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjMThjXHVjMmE0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjRlNFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgJFEkXHViYzg4IFx1YzVjNVx1YjM3MFx1Yzc3NFx1ZDJiOFx1YjQxY1x1YjJlNC4gXHVhYzAxIFx1YzVjNVx1YjM3MFx1Yzc3NFx1ZDJiOFx1YjI5NCBcdWI0NTAgXHVjODE1XHVjMjE4ICRMJCwgJFIkXHViODVjICgkTiBcXGxlIEwgXFxsZSBSIFxcbGUgTiArIE0gLSAxJCkgXHVkNDVjXHVkNjA0XHViNDFjXHViMmU0LiBcdWM1YzVcdWIzNzBcdWM3NzRcdWQyYjhcdWM3NTggXHVjNzU4XHViYmY4XHViMjk0IFx1YmM4OFx1ZDYzOFx1YWMwMCAkTCRcdWJkODBcdWQxMzAgJFIkXHVhZTRjXHVjOWMwXHVjNzc4IFx1YmFhOFx1YjRlMCBcdWMxOGNcdWMyYTQgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNzU4IFx1YzBjMVx1ZDBkY1x1Yjk3YyBcdWI0YTRcdWM5ZDFcdWIyOTQgXHVhYzgzXHVjNzc0XHViMmU0LiBcdWI0YTRcdWM5ZDFcdWIyOTRcdWIyZTRcdWIyOTQgXHVhYzgzXHVjNzU4IFx1Yzc1OFx1YmJmOFx1YjI5NCAkMCRcdWM3NDQgJDEkXHViODVjLCAkMSRcdWM3NDQgJDAkXHVjNzNjXHViODVjIFx1YmMxNFx1YWZiOFx1YjI5NCBcdWFjODNcdWM3NzRcdWIyZTQuIFx1YzVjNVx1YjM3MFx1Yzc3NFx1ZDJiOFx1YzVkMCBcdWM3NThcdWQ1NzQgXHViY2MwXHVhY2JkXHViNDFjIFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjRlNFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgXHVjNzc0XHVkNmM0XHVjNzU4IFx1YzVjNVx1YjM3MFx1Yzc3NFx1ZDJiOFx1YzVkMCBcdWM2MDFcdWQ1YTVcdWM3NDQgXHViYzFiXHVjOWMwIFx1YzU0YVx1YjI5NCBcdWQ1NWMgXHVjNzIwXHVjOWMwXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNkMDhcdWFlMzAgXHVjMGMxXHVkMGRjXHViOTdjIFx1Yzc4NVx1YjgyNSBcdWJjMWJcdWFjZTAsIFx1YWMwMSBcdWM1YzVcdWIzNzBcdWM3NzRcdWQyYjggXHVjNzc0XHVkNmM0XHVjNWQwIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWM3NTggXHVjMGMxXHVkMGRjXHVhYzAwICQxJFx1Yzc3NCBcdWI0MThcdWIzYzRcdWI4NWQgXHViOWNjXHViNGU0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOCBcdWQzMGNcdWI3N2NcdWJiZjhcdWQxMzAgXHVjMTI0XHVjODE1IFx1YmMyOVx1YmM5NVx1Yzc1OCBcdWFjYmRcdWM2YjBcdWM3NTggXHVjMjE4XHViOTdjIFx1YWNjNFx1YzBiMFx1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHViNzdjLiBcdWI0NTAgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwIFx1YzEyNFx1YzgxNSBcdWJjMjlcdWJjOTVcdWM3NzQgXHViMmU0XHViOTc0XHViMmU0XHViMjk0IFx1YWM4M1x1Yzc0MCwgXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOCBcdWM5MTEgXHVkNTU4XHViMDk4XHViNzdjXHViM2M0IFx1YjJlNFx1Yjk3OCBcdWQzMGNcdWI3N2NcdWJiZjhcdWQxMzAgXHVhYzEyXHVjNzQ0IFx1YWMwMFx1YzljNFx1YjJlNFx1YjI5NCBcdWFjODNcdWM3M2NcdWI4NWMgXHVjODE1XHVjNzU4XHViNDFjXHViMmU0LiBcdWFjYmRcdWM2YjBcdWM3NTggXHVjMjE4IFx1YWMxMlx1Yzc3NCBcdWI5ZTRcdWM2YjAgXHVkMDc0IFx1YzIxOCBcdWM3ODhcdWM3M2NcdWJiYzBcdWI4NWMgXHVhZGY4IFx1YWMxMlx1Yzc0NCAkMVxcLDAwMFxcLDAwMlxcLDAyMiRcdWM3M2NcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWFjYjBcdWFjZmNcdWI4NWMgXHVjODFjXHVjMmRjXHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YzYwOFx1YzVkMFx1YzExYyBcdWFjOGNcdWM3NzRcdWQyYjggJDAkLCAkMSQsICQyJFx1YjI5NCBcdWFjMDFcdWFjMDEgJDIkLCAkMyQsICQxJFx1YWMxY1x1Yzc1OCBcdWM3ODVcdWI4MjVcdWM3NzQgXHVjNzg4XHVjNzNjXHViYmMwXHViODVjLCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwIFx1YzEyNFx1YzgxNSBcdWJjMjlcdWJjOTVcdWM3NDAgJDYkXHVhYzAwXHVjOWMwXHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVhYzAwXHViMmE1XHVkNTVjIFx1YmMyOVx1YmM5NVx1YjRlNCBcdWM5MTEgJDIkXHVhYzAwXHVjOWMwXHVjNWQwXHVjMTFjIFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWM3NTggXHVjMGMxXHVkMGRjXHViMjk0ICQxJFx1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiIiLCJvdXRwdXQiOiIiLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgXFxsZSBOLCBNIFxcbGUgMTAwXFwsMDAwJDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlIFEgXFxsZSAxMDBcXCwwMDAkPFwvbGk+XHJcblx0PGxpPiRQWzBdID0gLTEkPFwvbGk+XHJcblx0PGxpPiQwIFxcbGUgUFtpXSBcXGx0IGkkXHVjNzc0XHVhY2UwICRQW2ldIFxcbGUgTiAtIDEkICgkMSBcXGxlIGkgXFxsZSBOICsgTSAtIDEkKTxcL2xpPlxyXG5cdDxsaT5cdWFjMDEgXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjI5NCBcdWNkNWNcdWMxOGMgXHVkNTU4XHViMDk4XHVjNzU4IFx1Yzc4NVx1YjgyNVx1Yzc3NCBcdWM3ODhcdWIyZTQuIChcdWJhYThcdWI0ZTAgJGkkKCQwIFxcbGUgaSBcXGxlIE4gLSAxJClcdWM1ZDAgXHViMzAwXHVkNTc0IFx1Y2Q1Y1x1YzE4YyBcdWQ1NThcdWIwOThcdWM3NTggJHgkKCRpIFxcbHQgeCBcXGxlIE4gKyBNIC0gMSQpXHVhYzAwIFx1Yzc4OFx1YzViNFx1YzExYyAkUFt4XSA9IGkkXHVjNzc0XHViMmU0Lik8XC9saT5cclxuXHQ8bGk+JDAgXFxsZSBBW2pdIFxcbGUgMSQgKCQwIFxcbGUgaiBcXGxlIE0gLSAxJCk8XC9saT5cclxuXHQ8bGk+JE4gXFxsZSBMIFxcbGUgUiBcXGxlIE4gKyBNIC0gMSQ8XC9saT5cclxuPFwvdWw+XHJcbiIsInN1YnRhc2sxIjoiPHA+JE4gPSAxJCwgJE0gXFxsZSAxMDAwJCwgJFEgXFxsZSA1JDxcL3A+XHJcbiIsInN1YnRhc2syIjoiPHA+JE4sIE0gXFxsZSAxMDAwJCwgJFEgXFxsZSA1JCwgXHVhYzAxIFx1Yzc4NFx1YWNjNCBcdWFjOGNcdWM3NzRcdWQyYjhcdWM1ZDBcdWIyOTQgXHVjODE1XHVkNjU1XHVkNzg4ICQyJFx1YWMxY1x1Yzc1OCBcdWM3ODVcdWI4MjVcdWM3NzQgXHVjNzg4XHViMmU0LjxcL3A+XHJcbiIsInN1YnRhc2szIjoiPHA+JE4sIE0gXFxsZSAxMDAwJCwgJFEgXFxsZSA1JDxcL3A+XHJcbiIsInN1YnRhc2s0IjoiPHA+JE0gPSBOICsgMSQsICRNID0gMl56JCAoXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCAkeiQpLCAkUFtpXSA9IFxcbGZsb29yXFxmcmFje2kgLSAxfXsyfVxccmZsb29yJCAoJDEgXFxsZSBpIFxcbGUgTiArIE0gLSAxJCksICRMID0gUiQ8XC9wPlxyXG4iLCJzdWJ0YXNrNSI6IjxwPiRNID0gTiArIDEkLCAkTSA9IDJeeiQgKFx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMTggJHokKSwgJFBbaV0gPSBcXGxmbG9vclxcZnJhY3tpIC0gMX17Mn1cXHJmbG9vciQgKCQxIFxcbGUgaSBcXGxlIE4gKyBNIC0gMSQpPFwvcD5cclxuIiwic3VidGFzazYiOiI8cD5cdWFjMDEgXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YzVkMFx1YjI5NCBcdWM4MTVcdWQ2NTVcdWQ3ODggJDIkXHVhYzFjXHVjNzU4IFx1Yzc4NVx1YjgyNVx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuIiwic3VidGFzazciOiI8cD4kTiwgTSBcXGxlIDUwMDAkPFwvcD5cclxuIiwic3VidGFzazgiOiI8cD5cdWNkOTRcdWFjMDBcdWM4MDFcdWM3NzggXHVjODFjXHVkNTVjXHVjNzc0IFx1YzVjNlx1YjJlNC48XC9wPlxyXG4iLCJjdXN0b21faW1wbGVtZW50YXRpb24iOiI8cD5cdWIyZTRcdWM3NGMgMlx1YWMxY1x1Yzc1OCBcdWQ1NjhcdWMyMThcdWI5N2MgXHVhZDZjXHVkNjA0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuPGNvZGU+dm9pZCBpbml0KGludCBOLCBpbnQgTSwgaW50W10gUCwgaW50W10gQSlcclxuPFwvY29kZT48XC9wcmU+XHJcblxyXG48dWw+XHJcblx0PGxpPiROJDogXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWFjMWNcdWMyMTguPFwvbGk+XHJcblx0PGxpPiRNJDogXHVjMThjXHVjMmE0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWFjMWNcdWMyMTguPFwvbGk+XHJcblx0PGxpPiRQJDogXHVjNzg0XHVhY2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWM3ODVcdWI4MjVcdWM3NDQgXHVkNDVjXHVkNjA0XHVkNTVjIFx1ZDA2Y1x1YWUzMCAkTiArIE0kXHVjNzc4IFx1YmMzMFx1YzVmNC48XC9saT5cclxuXHQ8bGk+JEEkOiBcdWMxOGNcdWMyYTQgXHVhYzhjXHVjNzc0XHVkMmI4XHVjNzU4IFx1Y2QwOFx1YWUzMCBcdWMwYzFcdWQwZGNcdWI5N2MgXHVkNDVjXHVkNjA0XHVkNTVjIFx1ZDA2Y1x1YWUzMCAkTSRcdWM3NzggXHViYzMwXHVjNWY0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzQgXHVkNTY4XHVjMjE4XHViMjk0IFx1YmFhOFx1YjRlMCA8Y29kZT5jb3VudF93YXlzPFwvY29kZT4gXHVkNjM4XHVjZDljIFx1Yzc3NFx1YzgwNFx1YzVkMCBcdWM4MTVcdWQ2NTVcdWQ3ODggXHVkNTVjXHViYzg4IFx1ZDYzOFx1Y2Q5Y1x1YjQxY1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cHJlPlxyXG48Y29kZT5pbnQgY291bnRfd2F5cyhpbnQgTCwgaW50IFIpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kTCQsICRSJDogXHVjNWM1XHViMzcwXHVjNzc0XHVkMmI4XHVjNWQwIFx1Yzc1OFx1ZDU3NCBcdWI0YTRcdWM5ZDFcdWQ3ODhcdWIyOTQgXHVjMThjXHVjMmE0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1YjRlNFx1Yzc1OCBcdWJjODhcdWQ2MzggXHViYzk0XHVjNzA0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzQgXHVkNTY4XHVjMjE4XHViMjk0IFx1YzljMFx1YzgxNVx1YjQxYyBcdWM1YzVcdWIzNzBcdWM3NzRcdWQyYjhcdWI5N2MgXHVjMjE4XHVkNTg5XHVkNTVjIFx1ZDZjNCwgXHVhYzhjXHVjNzc0XHVkMmI4ICQwJFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWFjMDAgJDEkXHVjNzc0IFx1YjQxOFx1YWM4YyBcdWI5Y2NcdWI0ZGNcdWIyOTQgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwIFx1YzEyNFx1YzgxNSBcdWJjMjlcdWJjOTVcdWM3NTggXHVhY2JkXHVjNmIwXHVjNzU4IFx1YzIxOFx1Yjk3YyAkMVxcLDAwMFxcLDAwMlxcLDAyMiRcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzQgXHVkNTY4XHVjMjE4XHViMjk0IFx1YzgxNVx1ZDY1NVx1ZDc4OCAkUSRcdWJjODggXHVkNjM4XHVjZDljXHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIiwiY3VzdG9tX2V4YW1wbGUiOiI8cD5cdWIyZTRcdWM3NGMgXHVkNjM4XHVjZDljXHViNGU0XHVjNzQ0IFx1YmNmNFx1Yzc5MDo8XC9wPlxyXG5cclxuPHByZT5cclxuPGNvZGU+aW5pdCgzLCA0LCBbLTEsIDAsIDEsIDIsIDEsIDEsIDBdLCBbMSwgMCwgMSwgMF0pXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+XHVjNzc0IFx1ZDY4Y1x1Yjg1Y1x1YjI5NCBcdWJjZjhcdWJiMzhcdWM1ZDBcdWMxMWMgXHVjMTI0XHViYTg1XHVkNTVjIFx1YWM4M1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbjxjb2RlPmNvdW50X3dheXMoMywgNClcclxuPFwvY29kZT48XC9wcmU+XHJcblxyXG48cD5cdWFjOGNcdWM3NzRcdWQyYjggJDMkXHVhY2ZjICQ0JFx1Yjk3YyBcdWI0YTRcdWM5ZDFcdWIyOTRcdWIyZTQuIFx1Yzk4OSwgXHVhYzhjXHVjNzc0XHVkMmI4ICQzJFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgJDAkXHVjNzc0IFx1YjQxOFx1YWNlMCBcdWFjOGNcdWM3NzRcdWQyYjggJDQkXHVjNzU4IFx1YzBjMVx1ZDBkY1x1YjI5NCAkMSRcdWM3NzQgXHViNDFjXHViMmU0LiBcdWFjOGNcdWM3NzRcdWQyYjggJDAkXHVjNzU4IFx1YzBjMVx1ZDBkY1x1YWMwMCAkMSRcdWM3NzQgXHViNDE4XHVhYzhjIFx1ZDU1OFx1YjI5NCAkMiRcdWFjMDBcdWM5YzAgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwIFx1YzEyNFx1YzgxNVx1Yzc3NCBcdWM1NDRcdWI3OTggXHVhZGY4XHViOWJjXHVjNWQwIFx1ZDQ1Y1x1ZDYwNFx1YjQxOFx1YzViNCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRoLWNlbnRlciB0ZC1jZW50ZXJcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5cdWMxMjRcdWM4MTUgJDEkPFwvdGg+XHJcblx0XHRcdDx0aD5cdWMxMjRcdWM4MTUgJDIkPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2JlMGJkY2VjLTM5YTctNDEwMC05MWJjLTk4MTM2N2M3NWIyYVwvLVwvY3JvcFwvMzY0eDQyMlwvMCwwXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAxODJweDsgaGVpZ2h0OiAyMTFweDtcIiBcLz48XC90ZD5cclxuXHRcdFx0PHRkPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvYmUwYmRjZWMtMzlhNy00MTAwLTkxYmMtOTgxMzY3Yzc1YjJhXC8tXC9jcm9wXC8zNjR4NDIyXC80MzQsMFwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMTgycHg7IGhlaWdodDogMjExcHg7XCIgXC8+PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcblxyXG48cD5cdWM3MDRcdWM3NTggXHViYzI5XHViYzk1IFx1Yzc3NFx1YzY3OFx1Yzc1OCBcdWJhYThcdWI0ZTAgXHViMmU0XHViOTc4IFx1YzEyNFx1YzgxNVx1YzVkMFx1YzExYyBcdWFjOGNcdWM3NzRcdWQyYjggJDAkXHVjNzU4IFx1YzBjMVx1ZDBkY1x1YWMwMCAkMCRcdWM3NzQgXHViNDFjXHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMsIFx1Yzc3NCBcdWQ1NjhcdWMyMTggXHVkNjM4XHVjZDljXHVjNzQwICQyJFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG48Y29kZT5jb3VudF93YXlzKDQsIDUpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+XHVhYzhjXHVjNzc0XHVkMmI4ICQ0JFx1YzY0MCAkNSRcdWI5N2MgXHViNGE0XHVjOWQxXHViMjk0XHViMmU0LiBcdWJhYThcdWI0ZTAgXHVjMThjXHVjMmE0IFx1YWM4Y1x1Yzc3NFx1ZDJiOFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWFjMDAgJDAkXHVjNzc0IFx1YjQxOFx1YzVjOFx1YjJlNC4gXHVjNzc0IFx1YWNiZFx1YzZiMCBcdWQzMGNcdWI3N2NcdWJiZjhcdWQxMzAgXHVjMTI0XHVjODE1XHVjNzQ0IFx1YzViNFx1YjViYlx1YWM4YyBcdWQ1NzRcdWIzYzQgXHVhYzhjXHVjNzc0XHVkMmI4ICQwJFx1Yzc1OCBcdWMwYzFcdWQwZGNcdWIyOTQgJDAkXHVjNzc0XHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMsIFx1Yzc3NCBcdWQ1NjhcdWMyMTggXHVkNjM4XHVjZDljXHVjNzQwICQwJFx1Yzc0NCBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG48Y29kZT5jb3VudF93YXlzKDMsIDYpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1YzE4Y1x1YzJhNCBcdWFjOGNcdWM3NzRcdWQyYjhcdWM3NTggXHVjMGMxXHVkMGRjXHVhYzAwICQxJFx1Yjg1YyBcdWJjMTRcdWIwMTBcdWIyZTQuIFx1Yzc3NCBcdWFjYmRcdWM2YjAgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwIFx1YzEyNFx1YzgxNVx1Yzc0NCBcdWM1YjRcdWI1YmJcdWFjOGMgXHVkNTc0XHViM2M0IFx1YWM4Y1x1Yzc3NFx1ZDJiOCAkMCRcdWM3NTggXHVjMGMxXHVkMGRjXHViMjk0ICQxJFx1Yzc3NFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjLCBcdWM3NzQgXHVkNTY4XHVjMjE4IFx1ZDYzOFx1Y2Q5Y1x1Yzc0MCAkNiRcdWM3NDQgXHViOWFjXHVkMTM0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJjdXN0b21fc2FtcGxlZ3JhZGVyIjoiPHA+XHVjMGQ4XHVkNTBjIFx1YWRmOFx1YjgwOFx1Yzc3NFx1YjM1NFx1YjI5NCBcdWIyZTRcdWM3NGNcdWM3NTggXHVjNTkxXHVjMmRkXHVjNzNjXHViODVjIFx1Yzc4NVx1YjgyNVx1Yzc0NCBcdWJjMWJcdWIyOTRcdWIyZTQ6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+bGluZSAkMSQ6ICROIFxcLCBNIFxcLCBRJDxcL2xpPlxyXG5cdDxsaT5saW5lICQyJDogJFBbMF0gXFwsIFBbMV0gXFwsIFxcbGRvdHMgXFwsIFBbTiArIE0gLSAxXSQ8XC9saT5cclxuXHQ8bGk+bGluZSAkMyQ6ICRBWzBdIFxcLCBBWzFdIFxcLCBcXGxkb3RzIFxcLCBBW00gLSAxXSQ8XC9saT5cclxuXHQ8bGk+bGluZSAkNCArIGskICgkMCBcXGxlIGsgXFxsZSBRIC0gMSQpOiBcdWM1YzVcdWIzNzBcdWM3NzRcdWQyYjgkayRcdWM3NTggJEwkXHVhY2ZjICRSJDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YzBkOFx1ZDUwYyBcdWFkZjhcdWI4MDhcdWM3NzRcdWIzNTRcdWIyOTQgXHViMmU0XHVjNzRjXHVjNzU4IFx1Y2Q5Y1x1YjgyNVx1Yzc0NCBcdWMwZGRcdWMxMzFcdWQ1NWNcdWIyZTQ6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+bGluZSAkMSArIGskICgkMCBcXGxlIGsgXFxsZSBRIC0gMSQpOiBcdWM1YzVcdWIzNzBcdWM3NzRcdWQyYjggJGskXHVjNWQwIFx1YjMwMFx1ZDU1YyA8Y29kZT5jb3VudF93YXlzPFwvY29kZT5cdWM3NTggXHViOWFjXHVkMTM0IFx1YWMxMjxcL2xpPlxyXG48XC91bD5cclxuIiwiY3VzdG9tX2F0dGFjaG1lbnQiOiI8dWw+XHJcblx0PGxpPjxhIGhyZWY9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC8yYWIwMGJkMS1mN2E1LTQyYmMtOWYwOS01NmE1ZjFiODFiYWVcL1wiPmNpcmN1aXQuemlwPFwvYT48XC9saT5cclxuPFwvdWw+XHJcbiJ9LHsicHJvYmxlbV9pZCI6IjI1NDQxIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiRGlnaXRhbCBDaXJjdWl0IiwiZGVzY3JpcHRpb24iOiI8cD5UaGVyZSBpcyBhIGNpcmN1aXQsIHdoaWNoIGNvbnNpc3RzIG9mICROICsgTSQmbmJzcDs8c3Ryb25nPmdhdGVzPFwvc3Ryb25nPiZuYnNwO251bWJlcmVkIGZyb20gJDAkIHRvICROICsgTSAtIDEkLiBHYXRlcyAkMCQgdG8gJE4gLSAxJCBhcmUmbmJzcDs8c3Ryb25nPnRocmVzaG9sZCBnYXRlczxcL3N0cm9uZz4sIHdoZXJlYXMgZ2F0ZXMgJE4kIHRvICROICsgTSAtIDEkIGFyZSZuYnNwOzxzdHJvbmc+c291cmNlIGdhdGVzPFwvc3Ryb25nPi48XC9wPlxyXG5cclxuPHA+RWFjaCBnYXRlLCBleGNlcHQgZm9yIGdhdGUgJDAkLCBpcyBhbiZuYnNwOzxzdHJvbmc+aW5wdXQ8XC9zdHJvbmc+Jm5ic3A7dG8gZXhhY3RseSBvbmUgdGhyZXNob2xkIGdhdGUuIFNwZWNpZmljYWxseSwgZm9yIGVhY2ggJGkkIHN1Y2ggdGhhdCAkMSBcXGxlIGkgXFxsZSBOICsgTSAtIDEkLCBnYXRlICRpJCBpcyBhbiBpbnB1dCB0byBnYXRlICRQW2ldJCwgd2hlcmUgJDAgXFxsZSBQW2ldIFxcbGUgTi0xJC4gSW1wb3J0YW50bHksIHdlIGFsc28gaGF2ZSAkUFtpXSBcXGx0IGkkLiBNb3Jlb3Zlciwgd2UgYXNzdW1lICRQWzBdID0gLTEkLiBFYWNoIHRocmVzaG9sZCBnYXRlIGhhcyBvbmUgb3IgbW9yZSBpbnB1dHMuIFNvdXJjZSBnYXRlcyBkbyBub3QgaGF2ZSBhbnkgaW5wdXRzLjxcL3A+XHJcblxyXG48cD5FYWNoIGdhdGUgaGFzIGEmbmJzcDs8c3Ryb25nPnN0YXRlPFwvc3Ryb25nPiZuYnNwO3doaWNoIGlzIGVpdGhlciAkMCQgb3IgJDEkLiBUaGUgaW5pdGlhbCBzdGF0ZXMgb2YgdGhlIHNvdXJjZSBnYXRlcyBhcmUgZ2l2ZW4gYnkgYW4gYXJyYXkgJEEkIG9mICRNJCBpbnRlZ2Vycy4gVGhhdCBpcywgZm9yIGVhY2ggJGokIHN1Y2ggdGhhdCAkMCBcXGxlIGogXFxsZSBNIC0gMSQsIHRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBzb3VyY2UgZ2F0ZSAkTiArIGokIGlzICRBW2pdJC48XC9wPlxyXG5cclxuPHA+VGhlIHN0YXRlIG9mIGVhY2ggdGhyZXNob2xkIGdhdGUgZGVwZW5kcyBvbiB0aGUgc3RhdGVzIG9mIGl0cyBpbnB1dHMgYW5kIGlzIGRldGVybWluZWQgYXMgZm9sbG93cy4gRmlyc3QsIGVhY2ggdGhyZXNob2xkIGdhdGUgaXMgYXNzaWduZWQgYSB0aHJlc2hvbGQmbmJzcDs8c3Ryb25nPnBhcmFtZXRlcjxcL3N0cm9uZz4uIFRoZSBwYXJhbWV0ZXIgYXNzaWduZWQgdG8gYSB0aHJlc2hvbGQgZ2F0ZSB3aXRoICRjJCBpbnB1dHMgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gJDEkIGFuZCAkYyQgKGluY2x1c2l2ZSkuIFRoZW4sIHRoZSBzdGF0ZSBvZiBhIHRocmVzaG9sZCBnYXRlIHdpdGggcGFyYW1ldGVyICRwJCBpcyAkMSQsIGlmIGF0IGxlYXN0ICRwJCBvZiBpdHMgaW5wdXRzIGhhdmUgc3RhdGUgJDEkLCBhbmQgJDAkIG90aGVyd2lzZS48XC9wPlxyXG5cclxuPHA+Rm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlcmUgYXJlICROID0gMyQgdGhyZXNob2xkIGdhdGVzIGFuZCAkTSA9IDQkIHNvdXJjZSBnYXRlcy4gVGhlIGlucHV0cyB0byBnYXRlICQwJCBhcmUgZ2F0ZXMgJDEkIGFuZCAkNiQsIHRoZSBpbnB1dHMgdG8gZ2F0ZSAkMSQgYXJlIGdhdGVzICQyJCwgJDQkLCBhbmQgJDUkLCBhbmQgdGhlIG9ubHkgaW5wdXQgdG8gZ2F0ZSAkMiQgaXMgZ2F0ZSAkMyQuPFwvcD5cclxuXHJcbjxwPlRoaXMgZXhhbXBsZSBpcyBpbGx1c3RyYXRlZCBpbiB0aGUgZm9sbG93aW5nIHBpY3R1cmUuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvMGYyYTkxNWEtMGZjMS00YWNmLTk3MmEtNzU0ZGU1N2JjM2QwXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyMDdweDsgaGVpZ2h0OiAyMzNweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+U3VwcG9zZSB0aGF0IHNvdXJjZSBnYXRlcyAkMyQgYW5kICQ1JCBoYXZlIHN0YXRlICQxJCwgd2hpbGUgc291cmNlIGdhdGVzICQ0JCBhbmQgJDYkIGhhdmUgc3RhdGUgJDAkLiBBc3N1bWUgd2UgYXNzaWduIHBhcmFtZXRlcnMgJDEkLCAkMiQgYW5kICQyJCB0byB0aHJlc2hvbGQgZ2F0ZXMgJDIkLCAkMSQgYW5kICQwJCByZXNwZWN0aXZlbHkuIEluIHRoaXMgY2FzZSwgZ2F0ZSAkMiQgaGFzIHN0YXRlICQxJCwgZ2F0ZSAkMSQgaGFzIHN0YXRlICQxJCBhbmQgZ2F0ZSAkMCQgaGFzIHN0YXRlICQwJC4gVGhpcyBhc3NpZ25tZW50IG9mIHBhcmFtZXRlciB2YWx1ZXMgYW5kIHRoZSBzdGF0ZXMgaXMgaWxsdXN0cmF0ZWQgaW4gdGhlIGZvbGxvd2luZyBwaWN0dXJlLiBHYXRlcyB3aG9zZSBzdGF0ZSBpcyAkMSQgYXJlIG1hcmtlZCBpbiBibGFjay48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lOTFiY2RiYi0zYWRiLTQ4NTAtYWE4MC1kZTBmZTllZWQwNzRcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDIwN3B4OyBoZWlnaHQ6IDIzM3B4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5UaGUgc3RhdGVzIG9mIHRoZSBzb3VyY2UgZ2F0ZXMgd2lsbCB1bmRlcmdvICRRJCB1cGRhdGVzLiBFYWNoIHVwZGF0ZSBpcyBkZXNjcmliZWQgYnkgdHdvIGludGVnZXJzICRMJCBhbmQgJFIkICgkTiBcXGxlIEwgXFxsZSBSIFxcbGUgTiArIE0gLSAxJCkgYW5kIHRvZ2dsZXMgdGhlIHN0YXRlcyBvZiBhbGwgc291cmNlIGdhdGVzIG51bWJlcmVkIGJldHdlZW4gJEwkIGFuZCAkUiQsIGluY2x1c2l2ZS4gVGhhdCBpcywgZm9yIGVhY2ggJGkkIHN1Y2ggdGhhdCAkTCBcXGxlIGkgXFxsZSBSJCwgc291cmNlIGdhdGUgJGkkIGNoYW5nZXMgaXRzIHN0YXRlIHRvICQxJCwgaWYgaXRzIHN0YXRlIGlzICQwJCwgb3IgdG8gJDAkLCBpZiBpdHMgc3RhdGUgaXMgJDEkLiBUaGUgbmV3IHN0YXRlIG9mIGVhY2ggdG9nZ2xlZCBnYXRlIHJlbWFpbnMgdW5jaGFuZ2VkIHVudGlsIGl0IGlzIHBvc3NpYmx5IHRvZ2dsZWQgYnkgb25lIG9mIHRoZSBsYXRlciB1cGRhdGVzLjxcL3A+XHJcblxyXG48cD5Zb3VyIGdvYWwgaXMgdG8gY291bnQsIGFmdGVyIGVhY2ggdXBkYXRlLCBob3cgbWFueSBkaWZmZXJlbnQgYXNzaWdubWVudHMgb2YgcGFyYW1ldGVycyB0byB0aHJlc2hvbGQgZ2F0ZXMgcmVzdWx0IGluIGdhdGUgJDAkIGhhdmluZyBzdGF0ZSAkMSQuIFR3byBhc3NpZ25tZW50cyBhcmUgY29uc2lkZXJlZCBkaWZmZXJlbnQgaWYgdGhlcmUgZXhpc3RzIGF0IGxlYXN0IG9uZSB0aHJlc2hvbGQgZ2F0ZSB0aGF0IGhhcyBhIGRpZmZlcmVudCB2YWx1ZSBvZiBpdHMgcGFyYW1ldGVyIGluIGJvdGggYXNzaWdubWVudHMuIEFzIHRoZSBudW1iZXIgb2Ygd2F5cyBjYW4gYmUgbGFyZ2UsIHlvdSBzaG91bGQgY29tcHV0ZSBpdCBtb2R1bG8gJDFcXCwwMDBcXCwwMDJcXCwwMjIkLjxcL3A+XHJcblxyXG48cD5Ob3RlIHRoYXQgaW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoZXJlIGFyZSAkNiQgZGlmZmVyZW50IGFzc2lnbm1lbnRzIG9mIHBhcmFtZXRlcnMgdG8gdGhyZXNob2xkIGdhdGVzLCBzaW5jZSBnYXRlcyAkMCQsICQxJCBhbmQgJDIkIGhhdmUgJDIkLCAkMyQgYW5kICQxJCBpbnB1dHMgcmVzcGVjdGl2ZWx5LiBJbiAkMiQgb3V0IG9mIHRoZXNlICQ2JCBhc3NpZ25tZW50cywgZ2F0ZSAkMCQgaGFzIHN0YXRlICQxJC48XC9wPlxyXG4iLCJpbnB1dCI6IiIsIm91dHB1dCI6IiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgXFxsZSBOLCBNIFxcbGUgMTAwXFwsMDAwJDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlIFEgXFxsZSAxMDBcXCwwMDAkPFwvbGk+XHJcblx0PGxpPiRQWzBdID0gLTEkPFwvbGk+XHJcblx0PGxpPiQwIFxcbGUgUFtpXSBcXGx0IGkkIGFuZCAkUFtpXSBcXGxlIE4gLSAxJCAoZm9yIGVhY2ggJGkkIHN1Y2ggdGhhdCAkMSBcXGxlIGkgXFxsZSBOICsgTSAtIDEkKTxcL2xpPlxyXG5cdDxsaT5FYWNoIHRocmVzaG9sZCBnYXRlIGhhcyBhdCBsZWFzdCBvbmUgaW5wdXQgKGZvciBlYWNoICRpJCBzdWNoIHRoYXQgJDAgXFxsZSBpIFxcbGUgTiAtIDEkIHRoZXJlIGV4aXN0cyBhbiBpbmRleCAkeCQgc3VjaCB0aGF0ICRpIFxcbHQgeCBcXGxlIE4gKyBNIC0gMSQgYW5kICRQW3hdID0gaSQpLjxcL2xpPlxyXG5cdDxsaT4kMCBcXGxlIEFbal0gXFxsZSAxJCAoZm9yIGVhY2ggJGokIHN1Y2ggdGhhdCAkMCBcXGxlIGogXFxsZSBNIC0gMSQpPFwvbGk+XHJcblx0PGxpPiROIFxcbGUgTCBcXGxlIFIgXFxsZSBOICsgTSAtIDEkPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzdWJ0YXNrMSI6IjxwPiROID0gMSQsICRNIFxcbGUgMTAwMCQsICRRIFxcbGUgNSQ8XC9wPlxyXG4iLCJzdWJ0YXNrMiI6IjxwPiROLCBNIFxcbGUgMTAwMCQsICRRIFxcbGUgNSQsIGVhY2ggdGhyZXNob2xkIGdhdGUgaGFzIGV4YWN0bHkgdHdvIGlucHV0cy48XC9wPlxyXG4iLCJzdWJ0YXNrMyI6IjxwPiROLCBNIFxcbGUgMTAwMCQsICRRIFxcbGUgNSQ8XC9wPlxyXG4iLCJzdWJ0YXNrNCI6IjxwPiRNID0gTiArIDEkLCAkTSA9IDJeeiQgKGZvciBzb21lIHBvc2l0aXZlIGludGVnZXIgJHokKSwgJFBbaV0gPSBcXGxmbG9vclxcZnJhY3tpIC0gMX17Mn1cXHJmbG9vciQgKGZvciBlYWNoICRpJCBzdWNoIHRoYXQgJDEgXFxsZSBpIFxcbGUgTiArIE0gLSAxJCksICRMID0gUiQ8XC9wPlxyXG4iLCJzdWJ0YXNrNSI6IjxwPiRNID0gTiArIDEkLCAkTSA9IDJeeiQgKGZvciBzb21lIHBvc2l0aXZlIGludGVnZXIgJHokKSwgJFBbaV0gPSBcXGxmbG9vclxcZnJhY3tpIC0gMX17Mn1cXHJmbG9vciQgKGZvciBlYWNoICRpJCBzdWNoIHRoYXQgJDEgXFxsZSBpIFxcbGUgTiArIE0gLSAxJCk8XC9wPlxyXG4iLCJzdWJ0YXNrNiI6IjxwPkVhY2ggdGhyZXNob2xkIGdhdGUgaGFzIGV4YWN0bHkgdHdvIGlucHV0cy48XC9wPlxyXG4iLCJzdWJ0YXNrNyI6IjxwPiROLCBNIFxcbGUgNTAwMCQ8XC9wPlxyXG4iLCJzdWJ0YXNrOCI6IjxwPk5vIGFkZGl0aW9uYWwgY29uc3RyYWludHMuPFwvcD5cclxuIiwiY3VzdG9tX2ltcGxlbWVudGF0aW9uIjoiPHA+WW91ciB0YXNrIGlzIHRvIGltcGxlbWVudCB0d28gcHJvY2VkdXJlcy48XC9wPlxyXG5cclxuPHByZT5cclxuPGNvZGU+dm9pZCBpbml0KGludCBOLCBpbnQgTSwgaW50W10gUCwgaW50W10gQSlcclxuPFwvY29kZT48XC9wcmU+XHJcblxyXG48dWw+XHJcblx0PGxpPiROJDogdGhlIG51bWJlciBvZiB0aHJlc2hvbGQgZ2F0ZXMuPFwvbGk+XHJcblx0PGxpPiRNJDogdGhlIG51bWJlciBvZiBzb3VyY2UgZ2F0ZXMuPFwvbGk+XHJcblx0PGxpPiRQJDogYW4gYXJyYXkgb2YgbGVuZ3RoICROICsgTSQgZGVzY3JpYmluZyB0aGUgaW5wdXRzIHRvIHRoZSB0aHJlc2hvbGQgZ2F0ZXMuPFwvbGk+XHJcblx0PGxpPiRBJDogYW4gYXJyYXkgb2YgbGVuZ3RoICRNJCBkZXNjcmliaW5nIHRoZSBpbml0aWFsIHN0YXRlcyBvZiB0aGUgc291cmNlIGdhdGVzLjxcL2xpPlxyXG5cdDxsaT5UaGlzIHByb2NlZHVyZSBpcyBjYWxsZWQgZXhhY3RseSBvbmNlLCBiZWZvcmUgYW55IGNhbGxzIHRvIDxjb2RlPmNvdW50X3dheXM8XC9jb2RlPi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cHJlPlxyXG48Y29kZT5pbnQgY291bnRfd2F5cyhpbnQgTCwgaW50IFIpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kTCQsICRSJDogdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHJhbmdlIG9mIHNvdXJjZSBnYXRlcywgd2hvc2Ugc3RhdGVzIGFyZSB0b2dnbGVkLjxcL2xpPlxyXG5cdDxsaT5UaGlzIHByb2NlZHVyZSBzaG91bGQgZmlyc3QgcGVyZm9ybSB0aGUgc3BlY2lmaWVkIHVwZGF0ZSwgYW5kIHRoZW4gcmV0dXJuIHRoZSBudW1iZXIgb2Ygd2F5cywgbW9kdWxvICQxOzAwMDswMDI7MDIyJCwgb2YgYXNzaWduaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHRocmVzaG9sZCBnYXRlcywgd2hpY2ggcmVzdWx0IGluIGdhdGUgJDAkIGhhdmluZyBzdGF0ZSAkMSQuPFwvbGk+XHJcblx0PGxpPlRoaXMgcHJvY2VkdXJlIGlzIGNhbGxlZCBleGFjdGx5ICRRJCB0aW1lcy48XC9saT5cclxuPFwvdWw+XHJcbiIsImN1c3RvbV9leGFtcGxlIjoiPHA+Q29uc2lkZXIgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBjYWxsczo8XC9wPlxyXG5cclxuPHByZT5cclxuPGNvZGU+aW5pdCgzLCA0LCBbLTEsIDAsIDEsIDIsIDEsIDEsIDBdLCBbMSwgMCwgMSwgMF0pXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+VGhpcyBleGFtcGxlIGlzIGlsbHVzdHJhdGVkIGluIHRoZSB0YXNrIGRlc2NyaXB0aW9uIGFib3ZlLjxcL3A+XHJcblxyXG48cHJlPlxyXG48Y29kZT5jb3VudF93YXlzKDMsIDQpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+VGhpcyB0b2dnbGVzIHRoZSBzdGF0ZXMgb2YgZ2F0ZXMgJDMkIGFuZCAkNCQsIGkuZS4gdGhlIHN0YXRlIG9mIGdhdGUgJDMkIGJlY29tZXMgJDAkLCBhbmQgdGhlIHN0YXRlIG9mIGdhdGUgJDQkIGJlY29tZXMgJDEkLiBUd28gd2F5cyBvZiBhc3NpZ25pbmcgdGhlIHBhcmFtZXRlcnMgd2hpY2ggcmVzdWx0IGluIGdhdGUgJDAkIGhhdmluZyBzdGF0ZSAkMSQgYXJlIGlsbHVzdHJhdGVkIGluIHRoZSBwaWN0dXJlcyBiZWxvdy48XC9wPlxyXG5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGgtY2VudGVyIHRkLWNlbnRlclwiPlxyXG5cdDx0aGVhZD5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPldheSAkMSQ8XC90aD5cclxuXHRcdFx0PHRoPldheSAkMiQ8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvYmUwYmRjZWMtMzlhNy00MTAwLTkxYmMtOTgxMzY3Yzc1YjJhXC8tXC9jcm9wXC8zNjR4NDIyXC8wLDBcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDE4MnB4OyBoZWlnaHQ6IDIxMXB4O1wiIFwvPjxcL3RkPlxyXG5cdFx0XHQ8dGQ+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9iZTBiZGNlYy0zOWE3LTQxMDAtOTFiYy05ODEzNjdjNzViMmFcLy1cL2Nyb3BcLzM2NHg0MjJcLzQzNCwwXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAxODJweDsgaGVpZ2h0OiAyMTFweDtcIiBcLz48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPkluIGFsbCBvdGhlciBhc3NpZ25tZW50cyBvZiBwYXJhbWV0ZXJzLCBnYXRlICQwJCBoYXMgc3RhdGUgJDAkLiBUaHVzLCB0aGUgcHJvY2VkdXJlIHNob3VsZCByZXR1cm4gJDIkLjxcL3A+XHJcblxyXG48cHJlPlxyXG48Y29kZT5jb3VudF93YXlzKDQsIDUpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHA+VGhpcyB0b2dnbGVzIHRoZSBzdGF0ZXMgb2YgZ2F0ZXMgJDQkIGFuZCAkNSQuIEFzIGEgcmVzdWx0LCBhbGwgc291cmNlIGdhdGVzIGhhdmUgc3RhdGUgJDAkLCBhbmQgZm9yIGFueSBhc3NpZ25tZW50IG9mIHBhcmFtZXRlcnMsIGdhdGUgJDAkIGhhcyBzdGF0ZSAkMCQuIFRodXMsIHRoZSBwcm9jZWR1cmUgc2hvdWxkIHJldHVybiAkMCQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbjxjb2RlPmNvdW50X3dheXMoMywgNilcclxuPFwvY29kZT48XC9wcmU+XHJcblxyXG48cD5UaGlzIGNoYW5nZXMgdGhlIHN0YXRlcyBvZiBhbGwgc291cmNlIGdhdGVzIHRvICQxJC4gQXMgYSByZXN1bHQsIGZvciBhbnkgYXNzaWdubWVudCBvZiBwYXJhbWV0ZXJzLCBnYXRlICQwJCBoYXMgc3RhdGUgJDEkLiBUaHVzLCB0aGUgcHJvY2VkdXJlIHNob3VsZCByZXR1cm4gJDYkLjxcL3A+XHJcbiIsImN1c3RvbV9zYW1wbGVncmFkZXIiOiI8cD5UaGUgc2FtcGxlIGdyYWRlciByZWFkcyB0aGUgaW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+bGluZSAkMSQ6ICROIFxcLCBNIFxcLCBRJDxcL2xpPlxyXG5cdDxsaT5saW5lICQyJDogJFBbMF0gXFwsIFBbMV0gXFwsIFxcbGRvdHMgXFwsIFBbTiArIE0gLSAxXSQ8XC9saT5cclxuXHQ8bGk+bGluZSAkMyQ6ICRBWzBdIFxcLCBBWzFdIFxcLCBcXGxkb3RzIFxcLCBBW00gLSAxXSQ8XC9saT5cclxuXHQ8bGk+bGluZSAkNCArIGskICgkMCBcXGxlIGsgXFxsZSBRIC0gMSQpOiAkTCBcXCwgUiQgZm9yIHVwZGF0ZSAkayQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5UaGUgc2FtcGxlIGdyYWRlciBwcmludHMgeW91ciBhbnN3ZXJzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPmxpbmUgJDEgKyBrJCAoJDAgXFxsZSBrIFxcbGUgUSAtIDEkKTogdGhlIHJldHVybiB2YWx1ZSBvZiA8Y29kZT5jb3VudF93YXlzPFwvY29kZT4gZm9yIHVwZGF0ZSAkayQ8XC9saT5cclxuPFwvdWw+XHJcbiIsImN1c3RvbV9hdHRhY2htZW50IjoiPHVsPlxyXG5cdDxsaT48YSBocmVmPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvMmFiMDBiZDEtZjdhNS00MmJjLTlmMDktNTZhNWYxYjgxYmFlXC9cIj5jaXJjdWl0LnppcDxcL2E+PFwvbGk+XHJcbjxcL3VsPlxyXG4ifV0=

샘플 그레이더

샘플 그레이더는 다음의 양식으로 입력을 받는다:

  • line $1$: $N \, M \, Q$
  • line $2$: $P[0] \, P[1] \, \ldots \, P[N + M - 1]$
  • line $3$: $A[0] \, A[1] \, \ldots \, A[M - 1]$
  • line $4 + k$ ($0 \le k \le Q - 1$): 업데이트$k$의 $L$과 $R$

샘플 그레이더는 다음의 출력을 생성한다:

  • line $1 + k$ ($0 \le k \le Q - 1$): 업데이트 $k$에 대한 count_ways의 리턴 값

첨부

출처

Olympiad > International Olympiad in Informatics > IOI 2022 > Day 2 4번

  • 문제를 만든 사람: Prabowo Djonatan

제출할 수 있는 언어

C++17, C++20, C++17 (Clang), C++20 (Clang)

채점 및 기타 정보

  • 예제는 채점하지 않는다.
  • 이 문제의 채점 우선 순위는 2이다.