시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 (하단 참고)512 MB55251944.186%

문제

Albert는 높이가 서로 다른 n개의 상자를 갖고 있는데 각 상자는 직육면체 모양이다. 편의상 0번부터 n-1번까지 번호가 붙어있다. i번째 상자의 높이는 H[i]이고 밑면의 넓이는 W[i] 이다. 이 때, i번째 상자의 부피는 H[i] × W[i] 이다 (여기서 W[i]는 밑면의 "넓이"를 나타낸다). Albert는 언제나 상자를 높이 순으로 정렬해두기 때문에 H[0] < H[1] < ... < H[n-1]을 만족한다.

Alice는 Albert에게 상자 두 개를 빌리기로 했는데 Albert는 왠지 순순히 빌려주고 싶지 않아서 아래와 같은 조건을 달았다.

  • 조건: Alice가 빌리는 상자 두 개의 높이 차이는 X를 넘을 수 없다 (즉, i번째 상자와 j번째 상자를 고른다면 | H[i] - H[j] | ≤ X 를 만족해야한다).

Alice는 흔쾌히 승낙했고, 물건을 옮길 때 사용해야 하기 때문에 두 상자의 부피의 합이 최대가 되는 한 쌍의 상자를 고르기로 했다.

예를 들어 n = 3, H = [3, 5, 8], W = [8, 16, 6], X = 3이라 하자.

  • 각 상자의 부피는 순서대로 24, 80, 48이다.
  • Albert가 제시한 조건을 만족하는 (i, j)쌍은 (0, 1)과 (1, 2)가 있다.
  • 두 가지 방법 중 1번 상자와 2번 상자를 빌리면 부피의 합이 80 + 48 = 128이 된다.
  • 같은 예에서 만약 X = 1이라면 Albert가 제시한 조건을 만족하는 쌍이 존재하지 않는다 (출력 항목 참고).

다른 예로, n = 4, H = [3, 10, 18, 20], W = [8, 11, 9, 3], X = 7이라 하자.

  • 각 상자의 부피는 순서대로 24, 110, 162, 60이다.
  • Albert가 제시한 조건을 만족하는 (i, j)쌍은 (0, 1)과 (2, 3)이 있다.
  • 두 가지 방법 중 2번 상자와 3번 상자를 빌리면 부피의 합이 162 + 60 = 222이 된다.
  • 같은 예에서 만약 X = 8이라면 1번과 2번 상자를 빌려 부피의 합이 272가 되도록 할 수 있다.

입력으로 n, X, 그리고 H[0] ... H[n-1], W[0] ... W[n-1] 이 주어졌을 때,  Alice를 도와 Albert가 제시한 조건을 어기지 않으면서 부피의 합이 최대가 되는 한 쌍의 상자를 골라보자. 단, 이 문제의 경우 n이 크기 때문에 상자의 높이와 밑면 넓이가 직접 주어지지 않고, 이를 생성하는 방법이 입력으로 주어진다 (입력 항목 참고).

입력

첫 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스는 세 줄에 걸쳐 주어진다.

첫 줄에 n과 X가 공백으로 구분되어 주어진다. 두 번째 줄에 네 개의 정수 hs, ha, hb, hc 가 공백으로 구분되어 주어진다. 세 번째 줄에 네 개의 정수 ws, wa, wb, wc 가 공백으로 구분되어 주어진다.

이를 이용해 H[i]와 W[i]를 구하기 위해 아래 공식을 이용한다 (0 ≤ i ≤ n-1 임에 유의하자): ("%"는 통상 프로그래밍 언어에서 쓰이는 정수 나눗셈 연산의 나머지를 구하는 연산이다 (modulo))

  • i = 0 일 때:
    • H[i] = (hs % hc) + 1
    • W[i] = (ws % wc) + 1
  • 1 ≤ i ≤ n-1 인 i에 대하여:
    • H[i] = H[i-1] + 1 + ( (H[i-1] * ha  + hb) % hc)
    • W[i] = (W[i-1] * wa + wb) % wc + 1

위의 연산시 integer overflow를 피하기 위해 64-bit 정수 타입을 사용하는 것을 권장한다.

출력

각 테스트 케이스에 대하여 Alice가 상자 한 쌍을 빌릴 수 없다면 -1을 출력한다. 빌릴 수 있다면, 가능한 모든 쌍 중 부피의 합의 최대값을 출력한다.

제한

  • 1 ≤ T ≤ 10
  • 2 ≤ n ≤ 5,000,000
  • 1 ≤ X, hs, ha, hb, hc, ws, wa, wb, wc ≤ 109
  • 각 테스트 케이스의 모든 0 ≤ i ≤ n-1 인 i에 대하여 1 ≤ H[i], W[i] ≤ 109

서브태스크 1 (9점)

  • 2 ≤ n ≤ 100,000

서브태스크 2 (16점)

  • 2 ≤ n ≤ 2,000,000

 

예제 입력 1

7
3 1
2 3 7 5
7 3 8 17
3 3
2 3 7 5
7 3 8 17
4 7
2 3 7 10
7 3 8 11
4 8
2 3 7 10
7 3 8 11
10 20
1 17 31 23
7 4 8 41
6 1000000000
123456 1 1 180001
654321 1000000000 1 180161
6 1000000000
123456 1 1 180001
2021 1000000000 1 180161

예제 출력 1

-1
128
222
272
6311
182109717128
178794695372

예제 1-4: 본문에서 다루었다.

예제 5: 이 예제의 H, W 값은 아래와 같다.

  • H = [2,22,37,54,61,72,86,108,113,134]
  • W = [8,41,9,4,25,27,35,26,31,10]

예제 6: 이 예제의 H, W 값은 아래와 같다.

  • H = [123457,246916,313833,447667,535334,710668]
  • W = [113839,172370,109296,122144,9432,179310]

예제 7: 이 예제의 H, W 값은 아래와 같다.

  • H = [123457,246916,313833,447667,535334,710668]
  • W = [2022,129668,123587,119610,146310,141374]

힌트

아래 표에 제공된 각 언어별 예제 코드는 H[0 ... n-1]과 W[0 ... n-1]를 생성하는 코드이다. 아래 코드를 그대로 사용하여도 되고, 이를 직접 구현해도 된다. 출제진이 의도한 해법은 아래 코드를 사용하며 제한 시간 내에 정답을 구한다.

C/C++ Java Pypy3
int n, x;
long long hs, ha, hb, hc, 
          ws, wa, wb, wc;
// stdin에서 입력을 받는다.

long long H[n], W[n];

H[0] = hs % hc + 1;
W[0] = ws % wc + 1;
for(int i = 1; i <= n-1; i++) {
  H[i] = H[i-1] + 1 
       + (H[i-1] * ha + hb) % hc;
  W[i] = (W[i-1] * wa + wb) % wc + 1;
}
int n, x;
long hs, ha, hb, hc,
     ws, wa, wb, wc;
// stdin에서 입력을 받는다.

long[] H = new long[n], W = new long[n];

H[0] = hs % hc + 1;
W[0] = ws % wc + 1;
for(int i = 1; i <= n-1; i++) {
  H[i] = H[i-1] + 1 
       + (H[i-1] * ha + hb) % hc;
  W[i] = (W[i-1] * wa + wb) % wc + 1;
}
n,x = # stdin에서 입력을 받는다.
hs,ha,hb,hc = # stdin에서 입력을 받는다.
ws,wa,wb,wc = # stdin에서 입력을 받는다.

H, W = [0 for i in range(n)], [0 for i in range(n)]

H[0] = hs % hc + 1
W[0] = ws % wc + 1
for i in range(1, n):
  H[i] = H[i-1] + 1 + (H[i-1] * ha + hb) % hc
  W[i] = (W[i-1] * wa + wb) % wc + 1
W3sicHJvYmxlbV9pZCI6IjIxOTgyIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjMGMxXHVjNzkwIFx1YmU0Y1x1YjlhY1x1YWUzMCIsImRlc2NyaXB0aW9uIjoiPHA+QWxiZXJ0XHViMjk0IFx1YjE5Mlx1Yzc3NFx1YWMwMCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4Jm5ic3A7blx1YWMxY1x1Yzc1OCBcdWMwYzFcdWM3OTBcdWI5N2MgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YjI5NFx1YjM3MCBcdWFjMDEgXHVjMGMxXHVjNzkwXHViMjk0Jm5ic3A7XHVjOWMxXHVjNzIxXHViYTc0XHVjY2I0IFx1YmFhOFx1YzU5MVx1Yzc3NFx1YjJlNC4gXHVkM2I4XHVjNzU4XHVjMGMxIDBcdWJjODhcdWJkODBcdWQxMzAgbi0xXHViYzg4XHVhZTRjXHVjOWMwIFx1YmM4OFx1ZDYzOFx1YWMwMCBcdWJkOTlcdWM1YjRcdWM3ODhcdWIyZTQuIGlcdWJjODhcdWM5ZjggXHVjMGMxXHVjNzkwXHVjNzU4IFx1YjE5Mlx1Yzc3NFx1YjI5NCBIW2ldXHVjNzc0XHVhY2UwIFx1YmMxMVx1YmE3NFx1Yzc1OCBcdWIxMTNcdWM3NzRcdWIyOTQgV1tpXSZuYnNwO1x1Yzc3NFx1YjJlNC4gXHVjNzc0IFx1YjU0YywgaVx1YmM4OFx1YzlmOCBcdWMwYzFcdWM3OTBcdWM3NTggXHViZDgwXHVkNTNjXHViMjk0IEhbaV0gJnRpbWVzOyBXW2ldIFx1Yzc3NFx1YjJlNCAoXHVjNWVjXHVhZTMwXHVjMTFjIFdbaV1cdWIyOTQgXHViYzExXHViYTc0XHVjNzU4ICZxdW90O1x1YjExM1x1Yzc3NCZxdW90O1x1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQpLiBBbGJlcnRcdWIyOTQgXHVjNWI4XHVjODFjXHViMDk4IFx1YzBjMVx1Yzc5MFx1Yjk3YyBcdWIxOTJcdWM3NzQgXHVjMjFjXHVjNzNjXHViODVjIFx1YzgxNVx1YjgyY1x1ZDU3NFx1YjQ1MFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgSFswXSAmbHQ7IEhbMV0gJmx0OyAuLi4gJmx0OyBIW24tMV1cdWM3NDQgXHViOWNjXHVjODcxXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5BbGljZVx1YjI5NCBBbGJlcnRcdWM1ZDBcdWFjOGMgXHVjMGMxXHVjNzkwIFx1YjQ1MCBcdWFjMWNcdWI5N2MgXHViZTRjXHViOWFjXHVhZTMwXHViODVjIFx1ZDU4OFx1YjI5NFx1YjM3MCBBbGJlcnRcdWIyOTQgXHVjNjYwXHVjOWMwIFx1YzIxY1x1YzIxY1x1ZDc4OCZuYnNwO1x1YmU0Y1x1YjgyNFx1YzhmY1x1YWNlMCBcdWMyZjZcdWM5YzAgXHVjNTRhXHVjNTQ0XHVjMTFjIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjJlY1x1YzU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWM4NzBcdWFjNzQ6Jm5ic3A7QWxpY2VcdWFjMDAgXHViZTRjXHViOWFjXHViMjk0Jm5ic3A7XHVjMGMxXHVjNzkwIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHViMTkyXHVjNzc0IFx1Y2MyOFx1Yzc3NFx1YjI5NCBYXHViOTdjIFx1YjExOFx1Yzc0NCBcdWMyMTggXHVjNWM2XHViMmU0IChcdWM5ODksIGlcdWJjODhcdWM5ZjggXHVjMGMxXHVjNzkwXHVjNjQwIGpcdWJjODhcdWM5ZjggXHVjMGMxXHVjNzkwXHViOTdjIFx1YWNlMFx1Yjk3OFx1YjJlNFx1YmE3NCB8IEhbaV0gLSBIW2pdIHwgJmxlOyBYIFx1Yjk3YyBcdWI5Y2NcdWM4NzFcdWQ1NzRcdWM1N2NcdWQ1NWNcdWIyZTQpLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkFsaWNlXHViMjk0IFx1ZDc1NFx1Y2Y4Y1x1ZDc4OCBcdWMyYjlcdWIwOTlcdWQ1ODhcdWFjZTAsIFx1YmIzY1x1YWM3NFx1Yzc0NCBcdWM2MmVcdWFlMzggXHViNTRjIFx1YzBhY1x1YzZhOVx1ZDU3NFx1YzU3YyBcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YjQ1MCBcdWMwYzFcdWM3OTBcdWM3NTggXHViZDgwXHVkNTNjXHVjNzU4IFx1ZDU2OVx1Yzc3NCBcdWNkNWNcdWIzMDBcdWFjMDAgXHViNDE4XHViMjk0IFx1ZDU1YyBcdWMzMGRcdWM3NTggXHVjMGMxXHVjNzkwXHViOTdjIFx1YWNlMFx1Yjk3NFx1YWUzMFx1Yjg1YyBcdWQ1ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQgbiA9IDMsIEggPSBbMywgNSwgOF0sIFcgPSBbOCwgMTYsIDZdLCBYID0gM1x1Yzc3NFx1Yjc3YyBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVhYzAxIFx1YzBjMVx1Yzc5MFx1Yzc1OCBcdWJkODBcdWQ1M2NcdWIyOTQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIDI0LCA4MCwgNDhcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPkFsYmVydFx1YWMwMCBcdWM4MWNcdWMyZGNcdWQ1NWMgXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCAoaSwgailcdWMzMGRcdWM3NDAgKDAsIDEpXHVhY2ZjICgxLCAyKVx1YWMwMCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YjQ1MCBcdWFjMDBcdWM5YzAgXHViYzI5XHViYzk1IFx1YzkxMSAxXHViYzg4IFx1YzBjMVx1Yzc5MFx1YzY0MCAyXHViYzg4IFx1YzBjMVx1Yzc5MFx1Yjk3YyBcdWJlNGNcdWI5YWNcdWJhNzQgXHViZDgwXHVkNTNjXHVjNzU4IFx1ZDU2OVx1Yzc3NCA4MCArIDQ4ID0gMTI4XHVjNzc0IFx1YjQxY1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVhYzE5XHVjNzQwIFx1YzYwOFx1YzVkMFx1YzExYyBcdWI5Y2NcdWM1N2QgWCA9IDFcdWM3NzRcdWI3N2NcdWJhNzQgQWxiZXJ0XHVhYzAwIFx1YzgxY1x1YzJkY1x1ZDU1YyBcdWM4NzBcdWFjNzRcdWM3NDQgXHViOWNjXHVjODcxXHVkNTU4XHViMjk0IFx1YzMwZFx1Yzc3NCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0IChcdWNkOWNcdWI4MjUgXHVkNTZkXHViYWE5IFx1Y2MzOFx1YWNlMCkuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHViMmU0XHViOTc4IFx1YzYwOFx1Yjg1YywgbiA9IDQsIEggPSBbMywgMTAsIDE4LCAyMF0sIFcgPSBbOCwgMTEsIDksIDNdLCBYID0gN1x1Yzc3NFx1Yjc3YyBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVhYzAxIFx1YzBjMVx1Yzc5MFx1Yzc1OCBcdWJkODBcdWQ1M2NcdWIyOTQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIDI0LCAxMTAsIDE2MiwgNjBcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPkFsYmVydFx1YWMwMCBcdWM4MWNcdWMyZGNcdWQ1NWMgXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCAoaSwgailcdWMzMGRcdWM3NDAgKDAsIDEpXHVhY2ZjICgyLCAzKVx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YjQ1MCBcdWFjMDBcdWM5YzAgXHViYzI5XHViYzk1IFx1YzkxMSAyXHViYzg4IFx1YzBjMVx1Yzc5MFx1YzY0MCAzXHViYzg4IFx1YzBjMVx1Yzc5MFx1Yjk3YyBcdWJlNGNcdWI5YWNcdWJhNzQgXHViZDgwXHVkNTNjXHVjNzU4IFx1ZDU2OVx1Yzc3NCAxNjIgKyA2MCA9IDIyMlx1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YWMxOVx1Yzc0MCBcdWM2MDhcdWM1ZDBcdWMxMWMgXHViOWNjXHVjNTdkIFggPSA4XHVjNzc0XHViNzdjXHViYTc0IDFcdWJjODhcdWFjZmMgMlx1YmM4OCBcdWMwYzFcdWM3OTBcdWI5N2MgXHViZTRjXHViODI0IFx1YmQ4MFx1ZDUzY1x1Yzc1OCBcdWQ1NjlcdWM3NzQgMjcyXHVhYzAwIFx1YjQxOFx1YjNjNFx1Yjg1ZCBcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgbiwgWCwgXHVhZGY4XHViOWFjXHVhY2UwIEhbMF0gLi4uIEhbbi0xXSwgV1swXSAuLi4gV1tuLTFdIFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCZuYnNwOyBBbGljZVx1Yjk3YyBcdWIzYzRcdWM2NDAgQWxiZXJ0XHVhYzAwIFx1YzgxY1x1YzJkY1x1ZDU1YyBcdWM4NzBcdWFjNzRcdWM3NDQgXHVjNWI0XHVhZTMwXHVjOWMwIFx1YzU0YVx1YzczY1x1YmE3NFx1YzExYyBcdWJkODBcdWQ1M2NcdWM3NTggXHVkNTY5XHVjNzc0IFx1Y2Q1Y1x1YjMwMFx1YWMwMCBcdWI0MThcdWIyOTQgXHVkNTVjIFx1YzMwZFx1Yzc1OCBcdWMwYzFcdWM3OTBcdWI5N2MgXHVhY2U4XHViNzdjXHViY2Y0XHVjNzkwLiBcdWIyZTgsIFx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM3NTggXHVhY2JkXHVjNmIwIG5cdWM3NzQgXHVkMDZjXHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWMwYzFcdWM3OTBcdWM3NTggXHViMTkyXHVjNzc0XHVjNjQwIFx1YmMxMVx1YmE3NCZuYnNwO1x1YjExM1x1Yzc3NFx1YWMwMCBcdWM5YzFcdWM4MTEgXHVjOGZjXHVjNWI0XHVjOWMwXHVjOWMwIFx1YzU0YVx1YWNlMCwgXHVjNzc0XHViOTdjIFx1YzBkZFx1YzEzMVx1ZDU1OFx1YjI5NCBcdWJjMjlcdWJjOTVcdWM3NzQgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNCAoXHVjNzg1XHViODI1IFx1ZDU2ZFx1YmFhOSBcdWNjMzhcdWFjZTApLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiIFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzIxOCBUXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWIyOTQgXHVjMTM4Jm5ic3A7XHVjOTA0XHVjNWQwIFx1YWM3OFx1Y2NkMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Y2NhYiBcdWM5MDRcdWM1ZDAgblx1YWNmYyBYXHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWI0NTAgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWIxMjQgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCBoPHN1Yj5zPFwvc3ViPiwgaDxzdWI+YTxcL3N1Yj4sIGg8c3ViPmI8XC9zdWI+LCBoPHN1Yj5jPFwvc3ViPiBcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YzEzOCBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjEyNCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IHc8c3ViPnM8XC9zdWI+LCB3PHN1Yj5hPFwvc3ViPiwgdzxzdWI+YjxcL3N1Yj4sIHc8c3ViPmM8XC9zdWI+IFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0XHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU3NCBIW2ldXHVjNjQwIFdbaV1cdWI5N2MgXHVhZDZjXHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWM1NDRcdWI3OTggXHVhY2Y1XHVjMmRkXHVjNzQ0IFx1Yzc3NFx1YzZhOVx1ZDU1Y1x1YjJlNCAoMCAmbGU7IGkgJmxlOyBuLTEgXHVjNzg0XHVjNWQwIFx1YzcyMFx1Yzc1OFx1ZDU1OFx1Yzc5MCk6ICgmcXVvdDslJnF1b3Q7XHViMjk0IFx1ZDFiNVx1YzBjMSBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3OThcdWJjMGQgXHVjNWI4XHVjNWI0XHVjNWQwXHVjMTFjIFx1YzRmMFx1Yzc3NFx1YjI5NCBcdWM4MTVcdWMyMTggXHViMDk4XHViMjE3XHVjMTQ4IFx1YzVmMFx1YzBiMFx1Yzc1OCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHVhZDZjXHVkNTU4XHViMjk0IFx1YzVmMFx1YzBiMFx1Yzc3NFx1YjJlNCAobW9kdWxvKSk8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5pID0gMCBcdWM3N2MgXHViNTRjOlxyXG5cdDx1bD5cclxuXHRcdDxsaT5IW2ldID0gKGg8c3ViPnM8XC9zdWI+ICUgaDxzdWI+YzxcL3N1Yj4pICsgMTxcL2xpPlxyXG5cdFx0PGxpPldbaV0gPSAodzxzdWI+czxcL3N1Yj4gJSB3PHN1Yj5jPFwvc3ViPikgKyAxPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPjEgJmxlOyZuYnNwO2kgJmxlOyZuYnNwO24tMSZuYnNwO1x1Yzc3OCBpXHVjNWQwIFx1YjMwMFx1ZDU1OFx1YzVlYzpcclxuXHQ8dWw+XHJcblx0XHQ8bGk+SFtpXSA9IEhbaS0xXSArIDEgKyAoIChIW2ktMV0gKiBoPHN1Yj5hPFwvc3ViPiZuYnNwOyArIGg8c3ViPmI8XC9zdWI+KSAlIGg8c3ViPmM8XC9zdWI+KTxcL2xpPlxyXG5cdFx0PGxpPldbaV0gPSAoV1tpLTFdICogdzxzdWI+YTxcL3N1Yj4gKyB3PHN1Yj5iPFwvc3ViPikgJSB3PHN1Yj5jPFwvc3ViPiArIDE8XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM3MDRcdWM3NTggXHVjNWYwXHVjMGIwXHVjMmRjIGludGVnZXIgb3ZlcmZsb3dcdWI5N2MgXHVkNTNjXHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCA2NC1iaXQgXHVjODE1XHVjMjE4IFx1ZDBjMFx1Yzc4NVx1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NThcdWIyOTQgXHVhYzgzXHVjNzQ0IFx1YWQ4Y1x1YzdhNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NThcdWM1ZWMgQWxpY2VcdWFjMDAgXHVjMGMxXHVjNzkwIFx1ZDU1YyBcdWMzMGRcdWM3NDQgXHViZTRjXHViOWI0IFx1YzIxOCBcdWM1YzZcdWIyZTRcdWJhNzQgLTFcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWJlNGNcdWI5YjQgXHVjMjE4IFx1Yzc4OFx1YjJlNFx1YmE3NCwgXHVhYzAwXHViMmE1XHVkNTVjIFx1YmFhOFx1YjRlMCBcdWMzMGQgXHVjOTExIFx1YmQ4MFx1ZDUzY1x1Yzc1OCBcdWQ1NjlcdWM3NTggXHVjZDVjXHViMzAwXHVhYzEyXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiPHA+XHVjNTQ0XHViNzk4IFx1ZDQ1Y1x1YzVkMCBcdWM4MWNcdWFjZjVcdWI0MWMgXHVhYzAxIFx1YzViOFx1YzViNFx1YmNjNCBcdWM2MDhcdWM4MWMgXHVjZjU0XHViNGRjXHViMjk0Jm5ic3A7SFswIC4uLiBuLTFdXHVhY2ZjIFdbMCAuLi4gbi0xXVx1Yjk3YyZuYnNwO1x1YzBkZFx1YzEzMVx1ZDU1OFx1YjI5NCBcdWNmNTRcdWI0ZGNcdWM3NzRcdWIyZTQuJm5ic3A7XHVjNTQ0XHViNzk4IFx1Y2Y1NFx1YjRkY1x1Yjk3YyBcdWFkZjhcdWIzMDBcdWI4NWMgXHVjMGFjXHVjNmE5XHVkNTU4XHVjNWVjXHViM2M0IFx1YjQxOFx1YWNlMCwgXHVjNzc0XHViOTdjIFx1YzljMVx1YzgxMSBcdWFkNmNcdWQ2MDRcdWQ1NzRcdWIzYzQgXHViNDFjXHViMmU0LiBcdWNkOWNcdWM4MWNcdWM5YzRcdWM3NzQmbmJzcDtcdWM3NThcdWIzYzRcdWQ1NWMgXHVkNTc0XHViYzk1XHVjNzQwJm5ic3A7XHVjNTQ0XHViNzk4IFx1Y2Y1NFx1YjRkY1x1Yjk3YyBcdWMwYWNcdWM2YTlcdWQ1NThcdWJhNzAmbmJzcDtcdWM4MWNcdWQ1NWMgXHVjMmRjXHVhYzA0IFx1YjBiNFx1YzVkMCBcdWM4MTVcdWIyZjVcdWM3NDQgXHVhZDZjXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48dGFibGUgYm9yZGVyPVwiMVwiIGNlbGxwYWRkaW5nPVwiMVwiIGNlbGxzcGFjaW5nPVwiMVwiIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIj5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5DXC9DKys8XC90ZD5cclxuXHRcdFx0PHRkPkphdmE8XC90ZD5cclxuXHRcdFx0PHRkPlB5cHkzPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHQ8cHJlPlxyXG5pbnQgbiwgeDtcclxubG9uZyBsb25nIGhzLCBoYSwgaGIsIGhjLCBcclxuJm5ic3A7ICAgICAgICAgd3MsIHdhLCB3Yiwgd2M7XHJcblwvXC8gc3RkaW5cdWM1ZDBcdWMxMWMgXHVjNzg1XHViODI1XHVjNzQ0IFx1YmMxYlx1YjI5NFx1YjJlNC5cclxuXHJcbmxvbmcgbG9uZyBIW25dLCBXW25dO1xyXG5cclxuSFswXSA9IGhzICUgaGMgKyAxO1xyXG5XWzBdID0gd3MgJSB3YyArIDE7XHJcbmZvcihpbnQgaSA9IDE7IGkgJmx0Oz0gbi0xOyBpKyspIHtcclxuJm5ic3A7IEhbaV0gPSBIW2ktMV0gKyAxIFxyXG4mbmJzcDsgICAgICArIChIW2ktMV0gKiBoYSArIGhiKSAlIGhjO1xyXG4mbmJzcDsgV1tpXSA9IChXW2ktMV0gKiB3YSArIHdiKSAlIHdjICsgMTtcclxufVxyXG48XC9wcmU+XHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdDxwcmU+XHJcbmludCBuLCB4O1xyXG5sb25nIGhzLCBoYSwgaGIsIGhjLFxyXG4mbmJzcDsgJm5ic3A7ICB3cywgd2EsIHdiLCB3YztcclxuXC9cLyBzdGRpblx1YzVkMFx1YzExYyBcdWM3ODVcdWI4MjVcdWM3NDQgXHViYzFiXHViMjk0XHViMmU0LlxyXG5cclxubG9uZ1tdIEggPSBuZXcgbG9uZ1tuXSwgVyA9IG5ldyBsb25nW25dO1xyXG5cclxuSFswXSA9IGhzICUgaGMgKyAxO1xyXG5XWzBdID0gd3MgJSB3YyArIDE7XHJcbmZvcihpbnQgaSA9IDE7IGkgJmx0Oz0gbi0xOyBpKyspIHtcclxuJm5ic3A7IEhbaV0gPSBIW2ktMV0gKyAxIFxyXG4mbmJzcDsgICAgICArIChIW2ktMV0gKiBoYSArIGhiKSAlIGhjO1xyXG4mbmJzcDsgV1tpXSA9IChXW2ktMV0gKiB3YSArIHdiKSAlIHdjICsgMTtcclxufVxyXG48XC9wcmU+XHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdDxwcmU+XHJcbm4seCA9ICMgc3RkaW5cdWM1ZDBcdWMxMWMgXHVjNzg1XHViODI1XHVjNzQ0IFx1YmMxYlx1YjI5NFx1YjJlNC5cclxuaHMsaGEsaGIsaGMgPSAjIHN0ZGluXHVjNWQwXHVjMTFjIFx1Yzc4NVx1YjgyNVx1Yzc0NCBcdWJjMWJcdWIyOTRcdWIyZTQuXHJcbndzLHdhLHdiLHdjID0gIyBzdGRpblx1YzVkMFx1YzExYyBcdWM3ODVcdWI4MjVcdWM3NDQgXHViYzFiXHViMjk0XHViMmU0LlxyXG5cclxuSCwgVyA9IFswIGZvciBpIGluIHJhbmdlKG4pXSwgWzAgZm9yIGkgaW4gcmFuZ2UobildXHJcblxyXG5IWzBdID0gaHMgJSBoYyArIDFcclxuV1swXSA9IHdzICUgd2MgKyAxXHJcbmZvciBpIGluIHJhbmdlKDEsIG4pOlxyXG4mbmJzcDsgSFtpXSA9IEhbaS0xXSArIDEgKyAoSFtpLTFdICogaGEgKyBoYikgJSBoY1xyXG4mbmJzcDsgV1tpXSA9IChXW2ktMV0gKiB3YSArIHdiKSAlIHdjICsgMVxyXG48XC9wcmU+XHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG4iLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4xICZsZTsgVCAmbGU7IDEwPFwvbGk+XHJcblx0PGxpPjIgJmxlOyBuICZsZTsgNSwwMDAsMDAwPFwvbGk+XHJcblx0PGxpPjEgJmxlOyBYLCBoPHN1Yj5zPFwvc3ViPiwgaDxzdWI+YTxcL3N1Yj4sIGg8c3ViPmI8XC9zdWI+LCBoPHN1Yj5jPFwvc3ViPiwgdzxzdWI+czxcL3N1Yj4sIHc8c3ViPmE8XC9zdWI+LCB3PHN1Yj5iPFwvc3ViPiwgdzxzdWI+YzxcL3N1Yj4mbmJzcDsmbGU7IDEwPHN1cD45PFwvc3VwPjxcL2xpPlxyXG5cdDxsaT5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWJhYThcdWI0ZTAgMCAmbGU7IGkgJmxlOyBuLTEgXHVjNzc4IGlcdWM1ZDAgXHViMzAwXHVkNTU4XHVjNWVjIDEgJmxlOyBIW2ldLCBXW2ldJm5ic3A7JmxlOyAxMDxzdXA+OTxcL3N1cD48XC9saT5cclxuPFwvdWw+XHJcbiIsInN1YnRhc2sxIjoiPHVsPlxyXG5cdDxsaT4yICZsZTsgbiAmbGU7IDEwMCwwMDA8XC9saT5cclxuPFwvdWw+XHJcbiIsInN1YnRhc2syIjoiPHVsPlxyXG5cdDxsaT4yICZsZTsgbiAmbGU7IDIsMDAwLDAwMDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPiZuYnNwOzxcL3A+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5cdWM2MDhcdWM4MWMgMS00OiBcdWJjZjhcdWJiMzhcdWM1ZDBcdWMxMWMgXHViMmU0XHViOGU4XHVjNWM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNTombmJzcDtcdWM3NzQgXHVjNjA4XHVjODFjXHVjNzU4IEgsIFcgXHVhYzEyXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SCA9IFsyLDIyLDM3LDU0LDYxLDcyLDg2LDEwOCwxMTMsMTM0XTxcL2xpPlxyXG5cdDxsaT5XID0gWzgsNDEsOSw0LDI1LDI3LDM1LDI2LDMxLDEwXTxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyA2OiZuYnNwO1x1Yzc3NCBcdWM2MDhcdWM4MWNcdWM3NTggSCwgVyBcdWFjMTJcdWM3NDAgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5IID0gWzEyMzQ1NywyNDY5MTYsMzEzODMzLDQ0NzY2Nyw1MzUzMzQsNzEwNjY4XTxcL2xpPlxyXG5cdDxsaT5XID0gWzExMzgzOSwxNzIzNzAsMTA5Mjk2LDEyMjE0NCw5NDMyLDE3OTMxMF08XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNzombmJzcDtcdWM3NzQgXHVjNjA4XHVjODFjXHVjNzU4IEgsIFcgXHVhYzEyXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SCA9IFsxMjM0NTcsMjQ2OTE2LDMxMzgzMyw0NDc2NjcsNTM1MzM0LDcxMDY2OF08XC9saT5cclxuXHQ8bGk+VyA9IFsyMDIyLDEyOTY2OCwxMjM1ODcsMTE5NjEwLDE0NjMxMCwxNDEzNzRdPFwvbGk+XHJcbjxcL3VsPlxyXG4ifSx7InByb2JsZW1faWQiOiIyMTk4MiIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkJvcnJvd2luZyBCb3hlcyIsImRlc2NyaXB0aW9uIjoiPHA+QWxiZXJ0IGhhcyBuIGJveGVzIHdpdGggZGlzdGluY3QgaGVpZ2h0IHdoZXJlIGVhY2ggYm94IGlzIGEgY3Vib2lkIChmb3IgY29udmVuaWVuY2UsIGJveGVzIGFyZSBudW1iZXJlZCBmcm9tIDAgdG8gbi0xKS4gVGhlIGktdGggYm94JiMzOTtzIGhlaWdodCBpcyBIW2ldIGFuZCB0aGUgKHN1cmZhY2UpIGFyZWEgb2YgaXRzIGJvdHRvbSBmYWNlIGlzIFdbaV0uIEhlbmNlLCBpdHMgdm9sdW1lIGlzJm5ic3A7SFtpXSAmdGltZXM7IFdbaV0gKG5vdGUgdGhhdCBXW2ldIGlzIHRoZSBhcmVhIG9mIHRoZSBib3R0b20gb2YgYSBib3gpLjxcL3A+XHJcblxyXG48cD5TaW5jZSBBbGJlcnQgYWx3YXlzIHNvcnRzIGhpcyBib3hlcyBieSBoZWlnaHQsIHdlIGtub3cgdGhhdCBIWzBdICZsdDsgSFsxXSAmbHQ7IC4uLiAmbHQ7IEhbbi0xXS48XC9wPlxyXG5cclxuPHA+QWxpY2Ugd2FudHMgdG8gYm9ycm93IHR3byBib3hlcyBmcm9tIEFsYmVydCwgYW5kIEFsYmVydCBpcyB2ZXJ5IHJlbHVjdGFudCAtLSBoZW5jZSwgQWxiZXJ0IGFza2VkIEFsaWNlIHRvIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb246PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+Q29uZGl0aW9uOiBUaGUgdHdvIGJveGVzIHRoYXQgQWxpY2UgYm9ycm93cyBtdXN0IG5vdCBleGNlZWQgWCBpbiB0aGVpciBoZWlnaHQgZGlmZmVyZW5jZSAodGhhdCBpcywgaWYgdGhlIGktdGggYW5kIGotdGggYm94ZXMgYXJlIHBpY2tlZCwgdGhlbiZuYnNwO3wgSFtpXSAtIEhbal0gfCAmbGU7IFggbXVzdCBiZSBzYXRpc2ZpZWQpLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkFsaWNlIGFjY2VwdGVkLCBhbmQgc2luY2Ugc2hlIG5lZWRzIGJveGVzIGZvciBtb3ZpbmcsIHNoZSB3YW50cyB0byBtYXhpbWl6ZSB0aGUgc3VtIG9mIHZvbHVtZXMgb2YgdHdvIGJveGVzLjxcL3A+XHJcblxyXG48cD5Gb3IgaW5zdGFuY2UsIHN1cHBvc2UmbmJzcDtuID0gMywgSCA9IFszLCA1LCA4XSwgVyA9IFs4LCAxNiwgNl0sIGFuZCBYID0gMy4mbmJzcDs8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Cb3hlcyYjMzk7IHZvbHVtZXMgYXJlJm5ic3A7MjQsIDgwLCBhbmQgNDgsIHJlc3BlY3RpdmVseS48XC9saT5cclxuXHQ8bGk+VGhlcmUgYXJlIHR3byBwYWlycyBvZiBib3hlcyB0aGF0IHNhdGlzZnkgdGhlIGNvbmRpdGlvbiBvZiBBbGJlcnQmIzM5O3M6ICgwLCAxKSBhbmQmbmJzcDsoMSwgMikuPFwvbGk+XHJcblx0PGxpPklmIEFsaWNlIGdvZXMgd2l0aCBib3ggMSBhbmQgYm94IDIsIHRoZW4gdGhlIHRvdGFsIHZvbHVtZSB3aWxsIGJlJm5ic3A7ODAgKyA0OCA9IDEyOC48XC9saT5cclxuXHQ8bGk+SW4gdGhlIHNhbWUgZXhhbXBsZSwgaWYgWCA9IDEsIHRoZW4gdGhlcmUgYXJlIG5vIHBhaXJzIG9mIGJveGVzIHRoYXQgc2F0aXNmeSB0aGUgY29uZGl0aW9uIChzZWUgU2FtcGxlIE91dHB1dCkuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+SW4gYW5vdGhlciBleGFtcGxlLCBzdXBwb3NlJm5ic3A7biA9IDQsIEggPSBbMywgMTAsIDE4LCAyMF0sIFcgPSBbOCwgMTEsIDksIDNdLCBhbmQgWCA9IDcuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+Qm94ZXMmIzM5OyB2b2x1bWVzIGFyZSZuYnNwOzI0LCAxMTAsIDE2MiwgYW5kIDYwLCByZXNwZWN0aXZlbHkuPFwvbGk+XHJcblx0PGxpPlRoZXJlIGFyZSB0d28gcGFpcnMgb2YgYm94ZXMgdGhhdCBzYXRpc2Z5IHRoZSBjb25kaXRpb24gb2YgQWxiZXJ0JiMzOTtzOiAoMCwgMSkgYW5kJm5ic3A7KDIsIDMpLjxcL2xpPlxyXG5cdDxsaT5JZiBBbGljZSBnb2VzIHdpdGggYm94IDIgYW5kIGJveCAzLCB0aGVuIHRoZSB0b3RhbCB2b2x1bWUgd2lsbCBiZSAxNjIgKyA2MCA9IDIyMi48XC9saT5cclxuXHQ8bGk+SW4gdGhlIHNhbWUgZXhhbXBsZSwgaWYgWCA9IDgsIHRoZW4gQWxpY2UgY2FuIGJvcnJvdyBib3ggMSBhbmQgMiBpbnN0ZWFkIHRvIGFjaGlldmUgdG90YWwgdm9sdW1lIG9mIDI3Mi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5HaXZlbiBuLCBYLCBhbmQmbmJzcDtIWzBdIC4uLiBIW24tMV0gYXMgd2VsbCBhcyZuYnNwO1dbMF0gLi4uIFdbbi0xXSwgaGVscCBBbGljZSBmaW5kIGEgcGFpciBvZiBib3hlcyB3aXRoIG1heGltdW0gdG90YWwgdm9sdW1lIHdoaWxlIG1lZXRpbmcgQWxiZXJ0JiMzOTtzIGNvbmRpdGlvbi4gTm90ZSB0aGF0IG4gaXMgbGFyZ2UgaW4gdGhpcyBwcm9ibGVtLCBhbmQgdGhlcmVmb3JlIHRoZSBpbnB1dCB3aWxsIGNvbnNpc3Qgb2YgaG93IEgmIzM5O3MgYW5kIFcmIzM5O3MgY2FuIGJlIGdlbmVyYXRlZCBpbnN0ZWFkIG9mIHRoZWlyIGFjdHVhbCB2YWx1ZXMgKHNlZSBTYW1wbGUgSW5wdXQpLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgdGhlIGlucHV0IHdpbGwgY29udGFpbiBhIHNpbmdsZSBpbnRlZ2VyLCBULCB0aGUgbnVtYmVyIG9mIHRlc3QgY2Fzcy48XC9wPlxyXG5cclxuPHA+RWFjaCB0ZXN0IGNhc2Ugd2lsbCBjb25zaXN0IG9mIHRocmVlIGxpbmVzLjxcL3A+XHJcblxyXG48cD5UaGUgZmlyc3QgbGluZSB3aWxsIGNvbnRhaW4gbiBhbmQgWCwgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuIFRoZSBzZWNvbmQgbGluZSB3aWxsIGNvbnRhaW4gZm91ciBpbnRlZ2VycywmbmJzcDtoPHN1Yj5zPFwvc3ViPiwgaDxzdWI+YTxcL3N1Yj4sIGg8c3ViPmI8XC9zdWI+LCBhbmQgaDxzdWI+YzxcL3N1Yj4sIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLiBUaGUgdGhpcmQgbGluZSB3aWxsIGNvbnRhaW4gZm91ciBpbnRlZ2VycywgdzxzdWI+czxcL3N1Yj4sIHc8c3ViPmE8XC9zdWI+LCB3PHN1Yj5iPFwvc3ViPiwgYW5kIHc8c3ViPmM8XC9zdWI+LCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS48XC9wPlxyXG5cclxuPHA+VXNpbmcgdGhlc2UsIHlvdSB3aWxsIGNvbXB1dGUgSFtpXSYjMzk7cyZuYnNwO2FuZCBXW2ldJiMzOTtzIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYSBiZWxvdyAocmVjYWxsIHRoYXQmbmJzcDswICZsZTsgaSAmbGU7IG4tMSk6ICgmcXVvdDslJnF1b3Q7IGlzIHRoZSBhcml0aG1ldGljIG1vZHVsbyBvcGVyYXRvciB0eXBpY2FsbHkgdXNlZCBpbiBtb2Rlcm4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzKTxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPldoZW4gaSA9IDA6XHJcblx0PHVsPlxyXG5cdFx0PGxpPkhbaV0gPSAoaDxzdWI+czxcL3N1Yj4gJSBoPHN1Yj5jPFwvc3ViPikgKyAxPFwvbGk+XHJcblx0XHQ8bGk+V1tpXSA9ICh3PHN1Yj5zPFwvc3ViPiAlIHc8c3ViPmM8XC9zdWI+KSArIDE8XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+Rm9yIGkgd2l0aCAxICZsZTsmbmJzcDtpICZsZTsmbmJzcDtuLTE6XHJcblx0PHVsPlxyXG5cdFx0PGxpPkhbaV0gPSBIW2ktMV0gKyAxICsgKCAoSFtpLTFdICogaDxzdWI+YTxcL3N1Yj4mbmJzcDsgKyBoPHN1Yj5iPFwvc3ViPikgJSBoPHN1Yj5jPFwvc3ViPik8XC9saT5cclxuXHRcdDxsaT5XW2ldID0gKFdbaS0xXSAqIHc8c3ViPmE8XC9zdWI+ICsgdzxzdWI+YjxcL3N1Yj4pICUgdzxzdWI+YzxcL3N1Yj4gKyAxPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+KDY0LWJpdCBpbnRlZ2VyIHR5cGVzIGFyZSByZWNvbW1lbmRlZCB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93IGlzc3Vlcy4pPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggdGVzdCBjYXNlLCBpZiBBbGljZSBjYW4mIzM5O3QgYm9ycm93IGJveGVzLCB0aGVuIG91dHB1dCAtMS4gSWYgc2hlIGNhbiwgdGhlbiBvdXRwdXQgdGhlIG1heGltdW0gdG90YWwgdm9sdW1lIG9mIHR3byBib3hlcyBzaGUgY2FuIGFjaGlldmUuPFwvcD5cclxuIiwiaGludCI6IjxwPkJlbG93LCB5b3UgY2FuIGZpbmQgc2FtcGxlIGNvZGUgdGhhdCBjYW4gZ2VuZXJhdGUgSFswIC4uLiBuLTFdIGFuZCBXWzAgLi4uIG4tMV0gaW4gZWFjaCBsYW5ndWFnZS4gWW91IG1heSB1c2UgdGhlIHByb3ZpZGVkIGNvZGUgYXMtaXMgb3IgeW91IG1heSBpbXBsZW1lbnQgeW91ciBvd24uIChJbnRlbmRlZCBzb2x1dGlvbnMgZG8gdXNlIHRoZSBzYW1lIGNvZGUgYXMgYmVsb3cgYW5kIGNhbiBwcm9kdWNlIGNvcnJlY3QgYW5zd2VycyB3aXRoaW4gdGltZSBsaW1pdC4pPFwvcD5cclxuXHJcbjx0YWJsZSBib3JkZXI9XCIxXCIgY2VsbHBhZGRpbmc9XCIxXCIgY2VsbHNwYWNpbmc9XCIxXCIgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPkNcL0MrKzxcL3RkPlxyXG5cdFx0XHQ8dGQ+SmF2YTxcL3RkPlxyXG5cdFx0XHQ8dGQ+UHlweTM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdDxwcmU+XHJcbmludCBuLCB4O1xyXG5sb25nIGxvbmcgaHMsIGhhLCBoYiwgaGMsIFxyXG4mbmJzcDsgICAgICAgICB3cywgd2EsIHdiLCB3YztcclxuXC9cLyBUYWtlIGlucHV0IGZyb20gc3RkaW4uXHJcblxyXG5sb25nIGxvbmcgSFtuXSwgV1tuXTtcclxuXHJcbkhbMF0gPSBocyAlIGhjICsgMTtcclxuV1swXSA9IHdzICUgd2MgKyAxO1xyXG5mb3IoaW50IGkgPSAxOyBpICZsdDs9IG4tMTsgaSsrKSB7XHJcbiZuYnNwOyBIW2ldID0gSFtpLTFdICsgMSBcclxuJm5ic3A7ICAgICAgKyAoSFtpLTFdICogaGEgKyBoYikgJSBoYztcclxuJm5ic3A7IFdbaV0gPSAoV1tpLTFdICogd2EgKyB3YikgJSB3YyArIDE7XHJcbn1cclxuPFwvcHJlPlxyXG5cdFx0XHQ8XC90ZD5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHQ8cHJlPlxyXG5pbnQgbiwgeDtcclxubG9uZyBocywgaGEsIGhiLCBoYyxcclxuJm5ic3A7ICZuYnNwOyAgd3MsIHdhLCB3Yiwgd2M7XHJcblwvXC8gVGFrZSBpbnB1dCBmcm9tIHN0ZGluLlxyXG5cclxubG9uZ1tdIEggPSBuZXcgbG9uZ1tuXSwgVyA9IG5ldyBsb25nW25dO1xyXG5cclxuSFswXSA9IGhzICUgaGMgKyAxO1xyXG5XWzBdID0gd3MgJSB3YyArIDE7XHJcbmZvcihpbnQgaSA9IDE7IGkgJmx0Oz0gbi0xOyBpKyspIHtcclxuJm5ic3A7IEhbaV0gPSBIW2ktMV0gKyAxIFxyXG4mbmJzcDsgICAgICArIChIW2ktMV0gKiBoYSArIGhiKSAlIGhjO1xyXG4mbmJzcDsgV1tpXSA9IChXW2ktMV0gKiB3YSArIHdiKSAlIHdjICsgMTtcclxufVxyXG48XC9wcmU+XHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdDxwcmU+XHJcbm4seCA9ICMgVGFrZSBpbnB1dCBmcm9tIHN0ZGluLlxyXG5ocyxoYSxoYixoYyA9ICMgVGFrZSBpbnB1dCBmcm9tIHN0ZGluLlxyXG53cyx3YSx3Yix3YyA9ICMgVGFrZSBpbnB1dCBmcm9tIHN0ZGluLlxyXG5cclxuSCwgVyA9IFswIGZvciBpIGluIHJhbmdlKG4pXSwgWzAgZm9yIGkgaW4gcmFuZ2UobildXHJcblxyXG5IWzBdID0gaHMgJSBoYyArIDFcclxuV1swXSA9IHdzICUgd2MgKyAxXHJcbmZvciBpIGluIHJhbmdlKDEsIG4pOlxyXG4mbmJzcDsgSFtpXSA9IEhbaS0xXSArIDEgKyAoSFtpLTFdICogaGEgKyBoYikgJSBoY1xyXG4mbmJzcDsgV1tpXSA9IChXW2ktMV0gKiB3YSArIHdiKSAlIHdjICsgMVxyXG48XC9wcmU+XHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+MSAmbGU7IFQgJmxlOyAxMDxcL2xpPlxyXG5cdDxsaT4yICZsZTsgbiAmbGU7IDUsMDAwLDAwMDxcL2xpPlxyXG5cdDxsaT4xICZsZTsgWCwgaDxzdWI+czxcL3N1Yj4sIGg8c3ViPmE8XC9zdWI+LCBoPHN1Yj5iPFwvc3ViPiwgaDxzdWI+YzxcL3N1Yj4sIHc8c3ViPnM8XC9zdWI+LCB3PHN1Yj5hPFwvc3ViPiwgdzxzdWI+YjxcL3N1Yj4sIHc8c3ViPmM8XC9zdWI+Jm5ic3A7JmxlOyAxMDxzdXA+OTxcL3N1cD48XC9saT5cclxuXHQ8bGk+Rm9yIGVhY2ggdGVzdCBjYXNlIGFuZCBmb3IgZWFjaCBpIHdpdGgmbmJzcDswICZsZTsgaSAmbGU7IG4tMTombmJzcDsxICZsZTsgSFtpXSwgV1tpXSZuYnNwOyZsZTsgMTA8c3VwPjk8XC9zdXA+PFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzdWJ0YXNrMSI6Ijx1bD5cclxuXHQ8bGk+MiAmbGU7IG4gJmxlOyAxMDAsMDAwPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzdWJ0YXNrMiI6Ijx1bD5cclxuXHQ8bGk+MiAmbGU7IG4gJmxlOyA1LDAwMCwwMDA8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5DYXNlcyAxLTQ6IERpc2N1c3NlZCBpbiB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQuPFwvcD5cclxuXHJcbjxwPkNhc2UgNTogVmFsdWVzIGZvciBIIGFuZCBXIGFyZSBhcyBmb2xsb3dzOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkggPSBbMiwyMiwzNyw1NCw2MSw3Miw4NiwxMDgsMTEzLDEzNF08XC9saT5cclxuXHQ8bGk+VyA9IFs4LDQxLDksNCwyNSwyNywzNSwyNiwzMSwxMF08XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5DYXNlIDY6IFZhbHVlcyBmb3IgSCBhbmQgVyBhcmUgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5IID0gWzEyMzQ1NywyNDY5MTYsMzEzODMzLDQ0NzY2Nyw1MzUzMzQsNzEwNjY4XTxcL2xpPlxyXG5cdDxsaT5XID0gWzExMzgzOSwxNzIzNzAsMTA5Mjk2LDEyMjE0NCw5NDMyLDE3OTMxMF08XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5DYXNlIDc6IFZhbHVlcyBmb3IgSCBhbmQgVyBhcmUgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5IID0gWzEyMzQ1NywyNDY5MTYsMzEzODMzLDQ0NzY2Nyw1MzUzMzQsNzEwNjY4XTxcL2xpPlxyXG5cdDxsaT5XID0gWzIwMjIsMTI5NjY4LDEyMzU4NywxMTk2MTAsMTQ2MzEwLDE0MTM3NF08XC9saT5cclxuPFwvdWw+XHJcbiJ9XQ==

시간 제한

  • Java 8: 3 초

채점 및 기타 정보

  • 예제는 채점하지 않는다.