시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (추가 시간 없음) 512 MB111444072.727%

문제

Albert는 최근 소수 (prime)에 대해 배웠다. 1보다 큰 양의 정수 p의 약수가 1과 p뿐인 경우 p를 소수라 한다. 만약 n개의 소수 p[1], p[2], ..., p[n] 이 아래 조건을 만족하면 이는 "연속한 소수" 라고 한다:

  • p[1], ..., p[n]이 n개의 고유한 (서로 다른) 소수이며
  • min(p[1], ..., p[n]) <= q <= max(p[1], ..., p[n]) 을 만족하는 모든 정수 q에 대해 q가 소수이면 p[1], ..., p[n]중 하나와 같다.

예를 들어 [5, 3, 2, 7]과 [11, 7, 5, 13]은 연속한 소수이며 [2, 5, 7]이나 [5, 13, 17] 혹은 [2, 2, 3, 5]는 연속한 소수가 아니다.

Albert는 혼자 할 수 있는 놀이를 생각하던 중, 소수 만들기 라는 게임을 해보기로 했다.

먼저 임의의 양의 정수 n개를 선택한다 (편의상 x[1], x[2], ..., x[n] 이라 하자). 이를 연속한 소수 n개로 바꾸고 싶은데, 아래와 같은 제약이 따른다.

  • 각 정수 x[i]를 임의의 소수로 바꿀 수 있고, x[i]가 이미 소수인 경우라도 다른 소수로 바꿀 수 있다. (x[i]가 이미 소수인 경우, 바꾸지 않아도 된다.)
  • 어떤 정수 y를 임의의 소수 p로 바꾸는데 | p - y | 만큼의 벌점이 발생한다.

예를 들어 n = 3 이고 x = [7, 13, 3]이라 하자.

  • 이미 모든 수가 소수이지만, 연속한 소수가 아니다.
  • 이 세 정수를 [5, 7, 11]로 바꾸는 경우 벌점은 |5 - 7| + |7 - 13| + |11 - 3| = 16이 발생한다.
  • 다른 방법으로, x[2]를 13에서 11로 바꾸고 (벌점 2 발생) x[3]을 3에서 5로 바꾸면 (벌점 2 발생) 총 벌점은 4가 발생하고, 결과로 [7, 11, 5]를 얻게 되는데 이는 연속한 소수이다 (순서는 상관 없음에 유의하자).

다른 예로, n = 3 이고 x = [2, 2, 2]라 하자.

  • 가령 첫 수를 3으로 바꾸고 마지막 수를 5로 바꾸면 벌점이 4 발생하고 결과로 [3, 2, 5]를 얻게 된다.

입력으로 Albert가 처음에 고른 n개의 정수 x[1], ..., x[n]이 주어졌을 때, 이를 n개의 연속한 소수로 바꾸기 위해 필요한 최소한의 벌점을 구해보자.

입력

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

각 테스트 케이스는 두 줄에 나누어 주어지는데 첫 줄에 n이 주어지고 다음 줄에 n개의 정수가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스에 대해 입력으로 주어진 정수를 연속된 소수로 바꾸기 위해 필요한 최소한의 벌점을 각 줄에 출력한다.

제한

  • 1 ≤ T ≤ 10
  • 1 ≤ n ≤ 200
  • 1 ≤ x[i] ≤ 100,000 (1 ≤ i ≤ n)

예제 입력 1

4
3
2 2 2
4
5 7 12 12
3
7 13 3
7
74 79 7 16 46 68 71

예제 출력 1

4
2
4
106

예제 1: 본문에서 다루었다

예제 2: 추가 설명 없음

예제 3: 본문에서 다루었다

예제 4: 입력으로 주어진 정수를 다음 7개의 고유한 소수로 바꾸는 경우를 생각해보자: 73 79 53 59 61 67 71 이 때 벌점은 1 + 0 + 46 + 43 + 15 + 1 + 0 = 106으로 최소가 된다.

W3sicHJvYmxlbV9pZCI6IjIxMzk1IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjNWYwXHVjMThkXHVkNTVjIFx1YzE4Y1x1YzIxOCBcdWI5Y2NcdWI0ZTRcdWFlMzAiLCJkZXNjcmlwdGlvbiI6IjxwPkFsYmVydFx1YjI5NCBcdWNkNWNcdWFkZmMgXHVjMThjXHVjMjE4IChwcmltZSlcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YmMzMFx1YzZlMFx1YjJlNC4gMVx1YmNmNFx1YjJlNCBcdWQwNzAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBwXHVjNzU4IFx1YzU3ZFx1YzIxOFx1YWMwMCAxXHVhY2ZjIHBcdWJmZDBcdWM3NzggXHVhY2JkXHVjNmIwIHBcdWI5N2MgXHVjMThjXHVjMjE4XHViNzdjIFx1ZDU1Y1x1YjJlNC4gXHViOWNjXHVjNTdkIG5cdWFjMWNcdWM3NTggXHVjMThjXHVjMjE4Jm5ic3A7cFsxXSwgcFsyXSwgLi4uLCBwW25dIFx1Yzc3NCBcdWM1NDRcdWI3OTggXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YmE3NCBcdWM3NzRcdWIyOTQgJnF1b3Q7XHVjNWYwXHVjMThkXHVkNTVjIFx1YzE4Y1x1YzIxOCZxdW90OyBcdWI3N2NcdWFjZTAgXHVkNTVjXHViMmU0OjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPnBbMV0sIC4uLiwgcFtuXVx1Yzc3NCBuXHVhYzFjXHVjNzU4IFx1YWNlMFx1YzcyMFx1ZDU1YyAoXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3OCkgXHVjMThjXHVjMjE4XHVjNzc0XHViYTcwPFwvbGk+XHJcblx0PGxpPm1pbihwWzFdLCAuLi4sIHBbbl0pICZsdDs9IHEmbmJzcDsmbHQ7PSBtYXgocFsxXSwgLi4uLCBwW25dKSBcdWM3NDQgXHViOWNjXHVjODcxXHVkNTU4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWM4MTVcdWMyMTggcVx1YzVkMCBcdWIzMDBcdWQ1NzQgcVx1YWMwMCBcdWMxOGNcdWMyMThcdWM3NzRcdWJhNzQgcFsxXSwgLi4uLCBwW25dXHVjOTExIFx1ZDU1OFx1YjA5OFx1YzY0MCBcdWFjMTlcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCBbNSwgMywgMiwgN11cdWFjZmMgWzExLCA3LCA1LCAxM11cdWM3NDAmbmJzcDtcdWM1ZjBcdWMxOGRcdWQ1NWMgXHVjMThjXHVjMjE4XHVjNzc0XHViYTcwIFsyLCA1LCA3XVx1Yzc3NFx1YjA5OCBbNSwgMTMsIDE3XSBcdWQ2MzlcdWM3NDAgWzIsIDIsIDMsIDVdXHViMjk0Jm5ic3A7XHVjNWYwXHVjMThkXHVkNTVjIFx1YzE4Y1x1YzIxOFx1YWMwMCBcdWM1NDRcdWIyYzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPkFsYmVydFx1YjI5NCZuYnNwO1x1ZDYzY1x1Yzc5MCBcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIxODBcdWM3NzRcdWI5N2MgXHVjMGRkXHVhYzAxXHVkNTU4XHViMzU4IFx1YzkxMSwgXHVjMThjXHVjMjE4IFx1YjljY1x1YjRlNFx1YWUzMCBcdWI3N2NcdWIyOTQgXHVhYzhjXHVjNzg0XHVjNzQ0IFx1ZDU3NFx1YmNmNFx1YWUzMFx1Yjg1YyBcdWQ1ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmEzY1x1YzgwMCBcdWM3ODRcdWM3NThcdWM3NTggXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBuXHVhYzFjXHViOTdjIFx1YzEyMFx1ZDBkZFx1ZDU1Y1x1YjJlNCAoXHVkM2I4XHVjNzU4XHVjMGMxIHhbMV0sIHhbMl0sIC4uLiwgeFtuXSBcdWM3NzRcdWI3N2MgXHVkNTU4XHVjNzkwKS4gXHVjNzc0XHViOTdjIFx1YzVmMFx1YzE4ZFx1ZDU1YyBcdWMxOGNcdWMyMTggblx1YWMxY1x1Yjg1YyBcdWJjMTRcdWFmYjhcdWFjZTAgXHVjMmY2XHVjNzQwXHViMzcwLCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzQwIFx1YzgxY1x1YzU3ZFx1Yzc3NCBcdWI1MzBcdWI5NzhcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVhYzAxIFx1YzgxNVx1YzIxOCB4W2ldXHViOTdjIFx1Yzc4NFx1Yzc1OFx1Yzc1OCBcdWMxOGNcdWMyMThcdWI4NWMgXHViYzE0XHVhZmMwIFx1YzIxOCBcdWM3ODhcdWFjZTAsIHhbaV1cdWFjMDAgXHVjNzc0XHViYmY4IFx1YzE4Y1x1YzIxOFx1Yzc3OCBcdWFjYmRcdWM2YjBcdWI3N2NcdWIzYzQgXHViMmU0XHViOTc4IFx1YzE4Y1x1YzIxOFx1Yjg1YyBcdWJjMTRcdWFmYzAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gKHhbaV1cdWFjMDAgXHVjNzc0XHViYmY4IFx1YzE4Y1x1YzIxOFx1Yzc3OCBcdWFjYmRcdWM2YjAsIFx1YmMxNFx1YWZiOFx1YzljMCBcdWM1NGFcdWM1NDRcdWIzYzQgXHViNDFjXHViMmU0Lik8XC9saT5cclxuXHQ8bGk+XHVjNWI0XHViNWE0IFx1YzgxNVx1YzIxOCB5XHViOTdjIFx1Yzc4NFx1Yzc1OFx1Yzc1OCBcdWMxOGNcdWMyMTggcFx1Yjg1YyBcdWJjMTRcdWFmYjhcdWIyOTRcdWIzNzAgfCBwIC0geSZuYnNwO3wgXHViOWNjXHVkMDdjXHVjNzU4IFx1YmM4Y1x1YzgxMFx1Yzc3NCBcdWJjMWNcdWMwZGRcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCBuID0gMyBcdWM3NzRcdWFjZTAgeCA9IFs3LCAxMywgM11cdWM3NzRcdWI3N2MgXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1Yzc3NFx1YmJmOCBcdWJhYThcdWI0ZTAgXHVjMjE4XHVhYzAwIFx1YzE4Y1x1YzIxOFx1Yzc3NFx1YzljMFx1YjljYywgXHVjNWYwXHVjMThkXHVkNTVjIFx1YzE4Y1x1YzIxOFx1YWMwMCBcdWM1NDRcdWIyYzhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Yzc3NCBcdWMxMzggXHVjODE1XHVjMjE4XHViOTdjIFs1LCA3LCAxMV1cdWI4NWMgXHViYzE0XHVhZmI4XHViMjk0IFx1YWNiZFx1YzZiMCBcdWJjOGNcdWM4MTBcdWM3NDAmbmJzcDt8NSAtIDd8ICsgfDcgLSAxM3wgKyB8MTEgLSAzfCA9IDE2XHVjNzc0IFx1YmMxY1x1YzBkZFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViMmU0XHViOTc4IFx1YmMyOVx1YmM5NVx1YzczY1x1Yjg1YywgeFsyXVx1Yjk3YyAxM1x1YzVkMFx1YzExYyAxMVx1Yjg1YyBcdWJjMTRcdWFmYjhcdWFjZTAgKFx1YmM4Y1x1YzgxMCAyIFx1YmMxY1x1YzBkZCkgeFszXVx1Yzc0NCAzXHVjNWQwXHVjMTFjIDVcdWI4NWMgXHViYzE0XHVhZmI4XHViYTc0IChcdWJjOGNcdWM4MTAgMiBcdWJjMWNcdWMwZGQpIFx1Y2QxZCBcdWJjOGNcdWM4MTBcdWM3NDAgNFx1YWMwMCBcdWJjMWNcdWMwZGRcdWQ1NThcdWFjZTAsIFx0XHVhY2IwXHVhY2ZjXHViODVjIFs3LCAxMSwgNV1cdWI5N2MgXHVjNWJiXHVhYzhjIFx1YjQxOFx1YjI5NFx1YjM3MCBcdWM3NzRcdWIyOTQgXHVjNWYwXHVjMThkXHVkNTVjIFx1YzE4Y1x1YzIxOFx1Yzc3NFx1YjJlNCAoXHVjMjFjXHVjMTFjXHViMjk0IFx1YzBjMVx1YWQwMCBcdWM1YzZcdWM3NGNcdWM1ZDAgXHVjNzIwXHVjNzU4XHVkNTU4XHVjNzkwKS48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWIyZTRcdWI5NzggXHVjNjA4XHViODVjLCBuID0gMyBcdWM3NzRcdWFjZTAgeCA9IFsyLCAyLCAyXVx1Yjc3YyBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVhYzAwXHViODM5IFx1Y2NhYiBcdWMyMThcdWI5N2MgM1x1YzczY1x1Yjg1YyBcdWJjMTRcdWFmYjhcdWFjZTAgXHViOWM4XHVjOWMwXHViOWM5IFx1YzIxOFx1Yjk3YyA1XHViODVjIFx1YmMxNFx1YWZiOFx1YmE3NCZuYnNwO1x1YmM4Y1x1YzgxMFx1Yzc3NCA0IFx1YmMxY1x1YzBkZFx1ZDU1OFx1YWNlMCBcdWFjYjBcdWFjZmNcdWI4NWMgWzMsIDIsIDVdXHViOTdjIFx1YzViYlx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzg1XHViODI1XHVjNzNjXHViODVjIEFsYmVydFx1YWMwMCBcdWNjOThcdWM3NGNcdWM1ZDAgXHVhY2UwXHViOTc4IG5cdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IHhbMV0sIC4uLiwgeFtuXVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWM3NzRcdWI5N2Mgblx1YWMxY1x1Yzc1OCBcdWM1ZjBcdWMxOGRcdWQ1NWMgXHVjMThjXHVjMjE4XHViODVjIFx1YmMxNFx1YWZiOFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVkNTQ0XHVjNjk0XHVkNTVjIFx1Y2Q1Y1x1YzE4Y1x1ZDU1Y1x1Yzc1OCBcdWJjOGNcdWM4MTBcdWM3NDQgXHVhZDZjXHVkNTc0XHViY2Y0XHVjNzkwLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiIFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzIxOCBUXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWIyOTQgXHViNDUwIFx1YzkwNFx1YzVkMCBcdWIwOThcdWIyMDRcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWMwXHViMjk0XHViMzcwIFx1Y2NhYiBcdWM5MDRcdWM1ZDAgblx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWFjZTAgXHViMmU0XHVjNzRjIFx1YzkwNFx1YzVkMCBuXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzQgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWM4MTVcdWMyMThcdWI5N2MgXHVjNWYwXHVjMThkXHViNDFjIFx1YzE4Y1x1YzIxOFx1Yjg1YyBcdWJjMTRcdWFmYjhcdWFlMzAgXHVjNzA0XHVkNTc0IFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWNkNWNcdWMxOGNcdWQ1NWNcdWM3NTggXHViYzhjXHVjODEwXHVjNzQ0IFx1YWMwMSBcdWM5MDRcdWM1ZDAgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4xICZsZTsgVCAmbGU7IDEwPFwvbGk+XHJcblx0PGxpPjEgJmxlOyBuICZsZTsgMjAwPFwvbGk+XHJcblx0PGxpPjEgJmxlOyB4W2ldICZsZTsgMTAwLDAwMCAoMSAmbGU7IGkgJmxlOyBuKTxcL2xpPlxyXG48XC91bD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMSI6IjxwPlx1YzYwOFx1YzgxYyAxOiBcdWJjZjhcdWJiMzhcdWM1ZDBcdWMxMWMgXHViMmU0XHViOGU4XHVjNWM4XHViMmU0PFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyAyOiBcdWNkOTRcdWFjMDAgXHVjMTI0XHViYTg1IFx1YzVjNlx1Yzc0YzxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgMzogXHViY2Y4XHViYjM4XHVjNWQwXHVjMTFjIFx1YjJlNFx1YjhlOFx1YzVjOFx1YjJlNDxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNDogXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWM4MTVcdWMyMThcdWI5N2MgXHViMmU0XHVjNzRjIDdcdWFjMWNcdWM3NTggXHVhY2UwXHVjNzIwXHVkNTVjIFx1YzE4Y1x1YzIxOFx1Yjg1YyBcdWJjMTRcdWFmYjhcdWIyOTQgXHVhY2JkXHVjNmIwXHViOTdjIFx1YzBkZFx1YWMwMVx1ZDU3NFx1YmNmNFx1Yzc5MDombmJzcDs3MyA3OSA1MyA1OSA2MSA2NyA3MSBcdWM3NzQgXHViNTRjIFx1YmM4Y1x1YzgxMFx1Yzc0MCAxICsgMCArIDQ2ICsgNDMgKyAxNSArIDEgKyAwID0gMTA2XHVjNzNjXHViODVjIFx1Y2Q1Y1x1YzE4Y1x1YWMwMCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMjEzOTUiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJDb25zZWN1dGl2ZSBQcmltZXMiLCJkZXNjcmlwdGlvbiI6IjxwPkFsYmVydCBoYXMgcmVjZW50bHkgbGVhcm5lZCBhYm91dCBwcmltZSBudW1iZXJzLiBBIHBvc2l0aXZlIGludGVnZXIgcCBncmVhdGVyIHRoYW4gMSBpcyBjYWxsZWQgYSZuYnNwOzxlbT5wcmltZTxcL2VtPiZuYnNwO2lmIGl0cyBvbmx5IGRpdmlzb3JzIGFyZSAxIGFuZCBwLjxcL3A+XHJcblxyXG48cD5JZiBuIHByaW1lIG51bWJlcnMgcFsxXSwgcFsyXSwgLi4uLCBwW25dIHNhdGlzZnkgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zLCB0aGV5IGFyZSBjYWxsZWQgPGVtPmNvbnNlY3V0aXZlIHByaW1lczxcL2VtPi48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5wWzFdLCAuLi4sIHBbbl0gYXJlIG4gZGlzdGluY3QgcHJpbWVzPFwvbGk+XHJcblx0PGxpPkZvciBldmVyeSBpbnRlZ2VyIHEgd2l0aCBtaW4ocFsxXSwgLi4uLCBwW25dKSAmbHQ7PSBxJm5ic3A7Jmx0Oz0gbWF4KHBbMV0sIC4uLiwgcFtuXSksIGlmIHEgaXMgYSBwcmltZSwgdGhlbiBxIG11c3QgYmUgZXF1YWwgdG8gb25lIG9mJm5ic3A7cFsxXSwgLi4uLCBwW25dLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkZvciBpbnN0YW5jZSwgYm90aCBbNSwgMywgMiwgN10gYW5kJm5ic3A7WzExLCA3LCA1LCAxM10gYXJlIGNvbnNlY3V0aXZlIHByaW1lcywgYnV0IFsyLCA1LCA3XSBvciBbNSwgMTMsIDE3XSBvciBbMiwgMiwgMywgNV0gaXMgbm90LjxcL3A+XHJcblxyXG48cD5BbGJlcnQgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmcgZ2FtZSB3aXRoIGNvbnNlY3V0aXZlIHByaW1lcy48XC9wPlxyXG5cclxuPHA+Rmlyc3QsIEFsYmVydCBwaWNrcyBuIGFyYml0cmFyeSBpbnRlZ2VycyZuYnNwOyhsZXQgdXMgY2FsbCB0aGVzZSBudW1iZXJzIHhbMV0sIHhbMl0sIC4uLiwgeFtuXSkuIEFsYmVydCB0aGVuIHRyYW5zZm9ybXMgdGhlc2UgaW50ZWdlcnMgdG8gbiBjb25zZWN1dGl2ZSBwcmltZXMsIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBydWxlczo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5BbnkgeFtpXSBjYW4gYmUgdHJhbnNmb3JtZWQmbmJzcDtpbnRvIGFueSBwcmltZSwgZXZlbiBpZiB4W2ldIG1heSBhbHJlYWR5IGJlIGEgcHJpbWUuIChJZiB4W2ldIGlzIGFscmVhZHkgYSBwcmltZSwgQWxiZXJ0IG1heSBub3QgbmVlZCB0byB0cmFuc2Zvcm0gaXQuKTxcL2xpPlxyXG5cdDxsaT5UcmFuc2Zvcm1pbmcgYW4gaW50ZWdlciB5IGludG8gYSBwcmltZSBwIHJlc3VsdHMgaW4gYSBwZW5hbHR5IG9mIHwgcCAtIHkgfC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Gb3IgaW5zdGFuY2UsIHN1cHBvc2UgdGhhdCBuID0gMyBhbmQgeCA9IFs3LCAxMywgM10uPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+RXZlbiB0aG91Z2ggYWxsIHRocmVlIG51bWJlcnMgYXJlIHByaW1lcywgdGhleSBhcmUgbm90IGNvbnNlY3V0aXZlIHByaW1lcy48XC9saT5cclxuXHQ8bGk+SWYgQWxiZXJ0IHRyYW5zZm9ybXMgdGhlc2UgbnVtYmVycyBpbnRvIFs1LCA3LCAxMV0sIHRoZSBvdmVyYWxsIHBlbmFsdHkgd2lsbCBiZSB8NSAtIDd8ICsgfDcgLSAxM3wgKyB8MTEgLSAzfCA9IDE2LjxcL2xpPlxyXG5cdDxsaT5BbHRlcm5hdGl2ZWx5LCBBbGJlcnQgY2FuIHRyYW5zZm9ybSB4WzJdIGZyb20gMTMgdG8gMTEgYW5kIHhbM10gZnJvbSAzIHRvIDUsIGFuZCBvYnRhaW4gWzcsIDExLCA1XSB3aXRoIHRoZSBvdmVyYWxsIHBlbmFsdHkgb2YgNC4gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiBwcmltZXMgZG9lcyBub3QgbWF0dGVyLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkhlcmUgaXMgYW5vdGhlciBleGFtcGxlOiBsZXQgbiA9IDMgYW5kIHggPSBbMiwgMiwgMl0uPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SWYgQWxiZXJ0IHRyYW5zZm9ybXMgdGhlIGZpcnN0IG51bWJlciBpbnRvIDMgYW5kIHRoZSBsYXN0IG9uZSBpbnRvIDUsIHRoZW4gdGhlIG92ZXJhbGwgcGVuYWx0eSB3b3VsZCBiZSA0IGFuZCB0aGUgcmVzdWx0aW5nIG51bWJlcnMgd2lsbCBiZSBbMywgMiwgNV0uPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+R2l2ZW4gdGhlIG4gaW50ZWdlcnMgeFsxXSwgLi4uLCB4W25dIHRoYXQgQWxiZXJ0IHBpY2tlZCBpbml0aWFsbHksIGNhbGN1bGF0ZSB0aGUgc21hbGxlc3QgcGVuYWx0eSBuZWVkZWQgdG8gdHJhbnNmb3JtIHRob3NlIG51bWJlcnMgaW50byBuIGNvbnNlY3V0aXZlIHByaW1lcy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMsIFQuPFwvcD5cclxuXHJcbjxwPkVhY2ggdGVzdCBjYXNlIHdpbGwgYmUgZ2l2ZW4gb3ZlciB0d28gbGluZXMuPFwvcD5cclxuXHJcbjxwPlRoZSBmaXJzdCBsaW5lIHdpbGwgY29udGFpbiBuIGFuZCB0aGUgc2Vjb25kIGxpbmUgd2lsbCBjb250YWluIG4gaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IGEgd2hpdGVzcGFjZS48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UsIG91dHB1dCB0aGUgbWluaW11bSBwZW5hbHR5IG5lZWRlZCBpbiBvcmRlciB0byB0cmFuc2Zvcm0gdGhlIGdpdmVuIG51bWJlcnMgdG8gY29uc2VjdXRpdmUgcHJpbWVzLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+MSAmbGU7IFQgJmxlOyAxMDxcL2xpPlxyXG5cdDxsaT4xICZsZTsgbiAmbGU7IDIwMDxcL2xpPlxyXG5cdDxsaT4xICZsZTsgeFtpXSAmbGU7IDEwMCwwMDAgKDEgJmxlOyBpICZsZTsgbik8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5DYXNlIDE6IFVzZWQgaW4gdGhlIHByb2JsZW0gc3RhdGVtZW50LjxcL3A+XHJcblxyXG48cD5DYXNlIDI6IE5vIGV4cGxhbmF0aW9uLjxcL3A+XHJcblxyXG48cD5DYXNlIDM6IFVzZWQgaW4gdGhlIHByb2JsZW0gc3RhdGVtZW50LjxcL3A+XHJcblxyXG48cD5DYXNlIDQ6IENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2V2ZW4gcHJpbWUgbnVtYmVyczombmJzcDs3MyA3OSA1MyA1OSA2MSA2NyA3MSBJbiB0aGlzIGNhc2UsIHRoZSBwZW5hbHR5IHdvdWxkIGJlIG1pbmltaXplZCB0byAxICsgMCArIDQ2ICsgNDMgKyAxNSArIDEgKyAwID0gMTA2LjxcL3A+XHJcbiJ9XQ==