시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 16 MB 137 71 46 47.423%

문제

0, ... , n-1로 번호가 매겨진 n명의 사람으로 구성된 소셜 네트워크를 만들자. 이 네트워크에 있는 사람들 중 어떤 쌍은 서로 친구가 된다. 즉, 사람 x가 사람 y의 친구가 되면, 사람 y도 사람 x의 친구가 된다.

사람들은 n 단계를 거쳐서 네트워크에 추가되는데, 각 단계를 0부터 n-1로 번호를 매기자. 사람 i는 단계 i에 추가된다. 단계 0에서, 사람 0은 이 네트워크에 있는 유일한 사람으로 추가된다. 다음 n-1개의 각 단계에서, 초대자가 새로 사람 하나를 네트워크에 추가한다. 초대자는 이 단계에 네트워크에 이미 들어와 있는 사람 중 하나이다. 단계 i에서 (0 < i < n), 이 단계의 초대자는 새로 들어오는 사람 를 다음 프로토콜 중 하나를 사용하여 네트워크에 추가한다.

  • IAmYourFriend는 사람 i를 초대자의 친구로만 등록한다.
  • MyFriendsAreYourFriends는 사람 i를 초대자의 현재 모든 친구의 친구로 등록한다. 이 경우 사람 i는 초대자의 친구가 아니다.
  • WeAreYourFriends는 사람 i를 초대자와, 초대자의 현재 모든 친구의 친구로 등록한다.

네트워크를 다 만든 다음에는 설문을 위해서 표본을 구하고자 한다. 표본은 네트워크에 속한 사람들로 구성된 모임이다. 친구끼리는 서로 좋아하는 것이 비슷하기 때문에, 표본에 속하는 사람들 중에는 서로 친구인 쌍이 있으면 안 된다. 각 사람마다 설문에서 쓰이는 신뢰도가 있는데, 이는 양의 정수로 표현된다. 우리는 신뢰도의 총합이 최대인 표본을 구하려 한다.

단계 초대자 프로토콜 추가되는 친구 관계
1 0 IAmYourFriend (1, 0)
2 0 MyFriendsAreYourFriends (2, 1)
3 1 WeAreYourFriends (3, 1), (3, 0), (3, 2)
4 2 MyFriendsAreYourFriends (4, 1), (4, 3)
5 0 IAmYourFriend (5, 0)

처음 네트워크에는 사람 0만 있다. 단계 1의 초대자(사람 0)는 새로 사람 1을 IAmYourFriend 프로토콜로 추가해서, 서로 친구가 된다. 단계 2의 초대자(이번에도 사람 0)는 사람 2를 MyFriendsAreYourFriends로 추가하는데,사람 1(초대자의 유일한 친구)이 사람 2의 유일한 친구가 된다. 단계 3의 초대자(사람 1)는 사람 3을WeAreYourFriends로 추가하는데, 사람 3은 사람 1(초대자)과 사람 0, 2 (초대자의 친구들)의 친구가 된다. 단계 4와 단계 5도 표에 보인 바와 같다. 최종적인 네트워크는 다음 그림과 같고, 동그라미 안의 숫자는 사람의 번호이고, 동그라미 아래의 숫자는 이 사람의 신뢰도를 나타낸다. 사람 3과 5로 이루어진 표본의 신뢰도의 총합은 20 + 15 = 35인데, 이는 가능한 신뢰도의 총합 중 최대이다.

각 단계의 기술과 각 사람의 신뢰도가 주어졌을 때, 신뢰도의 총합이 최대인 표본을 구하시오.

입력

첫째 줄에 사람의 수 n이 주어진다.

둘째 줄에 각 사람의 신뢰도가 공백으로 구분되어 주어진다.

셋째 줄에는 각 단계의 정보가 host1 protocol1 host2 protocol2 ... hostn-1 protocoln-1과 같은 형식으로 주어진다. (단계 0에는 초대자가 없기 때문에 host0과 protocol0은 주어지지 않는다) host는 i번 단계의 초대자이고, protocol의 값이 0이면 IAmYourFriend, 1이면 MyFriendsAreYourFriends, 2이면 WeAreYourFriends 프로토콜이다.

문제는 다음 두 조건 중 하나이다.

  • 2 ≤ n ≤ 1,000, 1 ≤ 신뢰도 ≤ 1,000,000
  • 2 ≤ n ≤ 100,000, 1 ≤ 신뢰도 ≤ 10,000

출력

신뢰도의 총합이 최대인 표본에 대한 신뢰도의 총합을 출력한다.

예제 입력 1

6
13 3 6 20 10 15
0 0 0 1 1 2 2 1 0 0

예제 출력 1

35
W3sicHJvYmxlbV9pZCI6IjEwMDc1IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjZTVjXHVhZDZjIiwiZGVzY3JpcHRpb24iOiI8cD4wLCAuLi4gLCBuLTFcdWI4NWMgXHViYzg4XHVkNjM4XHVhYzAwIFx1YjllNFx1YWNhOFx1YzljNCBuXHViYTg1XHVjNzU4IFx1YzBhY1x1Yjc4Y1x1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWMgXHVjMThjXHVjMTVjIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1Yjk3YyBcdWI5Y2NcdWI0ZTRcdWM3OTAuIFx1Yzc3NCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YzBhY1x1Yjc4Y1x1YjRlNCBcdWM5MTEgXHVjNWI0XHViNWE0IFx1YzMwZFx1Yzc0MCBcdWMxMWNcdWI4NWMgXHVjZTVjXHVhZDZjXHVhYzAwIFx1YjQxY1x1YjJlNC4gXHVjOTg5LCBcdWMwYWNcdWI3OGMgeFx1YWMwMCBcdWMwYWNcdWI3OGMgeVx1Yzc1OCBcdWNlNWNcdWFkNmNcdWFjMDAgXHViNDE4XHViYTc0LCBcdWMwYWNcdWI3OGMgeVx1YjNjNCBcdWMwYWNcdWI3OGMgeFx1Yzc1OCBcdWNlNWNcdWFkNmNcdWFjMDAgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWMwYWNcdWI3OGNcdWI0ZTRcdWM3NDAgbiBcdWIyZThcdWFjYzRcdWI5N2MgXHVhYzcwXHVjY2QwXHVjMTFjIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWNkOTRcdWFjMDBcdWI0MThcdWIyOTRcdWIzNzAsIFx1YWMwMSBcdWIyZThcdWFjYzRcdWI5N2MgMFx1YmQ4MFx1ZDEzMCBuLTFcdWI4NWMgXHViYzg4XHVkNjM4XHViOTdjIFx1YjllNFx1YWUzMFx1Yzc5MC4gXHVjMGFjXHViNzhjIGlcdWIyOTQgXHViMmU4XHVhY2M0IGlcdWM1ZDAgXHVjZDk0XHVhYzAwXHViNDFjXHViMmU0LiBcdWIyZThcdWFjYzQgMFx1YzVkMFx1YzExYywgXHVjMGFjXHViNzhjIDBcdWM3NDAgXHVjNzc0IFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWM3ODhcdWIyOTQgXHVjNzIwXHVjNzdjXHVkNTVjIFx1YzBhY1x1Yjc4Y1x1YzczY1x1Yjg1YyBcdWNkOTRcdWFjMDBcdWI0MWNcdWIyZTQuIFx1YjJlNFx1Yzc0YyBuLTFcdWFjMWNcdWM3NTggXHVhYzAxIFx1YjJlOFx1YWNjNFx1YzVkMFx1YzExYywgXHVjZDA4XHViMzAwXHVjNzkwXHVhYzAwIFx1YzBjOFx1Yjg1YyBcdWMwYWNcdWI3OGMgXHVkNTU4XHViMDk4XHViOTdjIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWNkOTRcdWFjMDBcdWQ1NWNcdWIyZTQuIFx1Y2QwOFx1YjMwMFx1Yzc5MFx1YjI5NCBcdWM3NzQgXHViMmU4XHVhY2M0XHVjNWQwIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWM3NzRcdWJiZjggXHViNGU0XHVjNWI0XHVjNjQwIFx1Yzc4OFx1YjI5NCBcdWMwYWNcdWI3OGMgXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YjJlNC4gXHViMmU4XHVhY2M0IGlcdWM1ZDBcdWMxMWMgKDAgJmx0OyBpICZsdDsgbiksIFx1Yzc3NCBcdWIyZThcdWFjYzRcdWM3NTggXHVjZDA4XHViMzAwXHVjNzkwXHViMjk0IFx1YzBjOFx1Yjg1YyBcdWI0ZTRcdWM1YjRcdWM2MjRcdWIyOTQgXHVjMGFjXHViNzhjIFx1Yjk3YyBcdWIyZTRcdWM3NGMgXHVkNTA0XHViODVjXHVkMWEwXHVjZjVjIFx1YzkxMSBcdWQ1NThcdWIwOThcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTU4XHVjNWVjIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWNkOTRcdWFjMDBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SUFtWW91ckZyaWVuZFx1YjI5NCBcdWMwYWNcdWI3OGMgaVx1Yjk3YyBcdWNkMDhcdWIzMDBcdWM3OTBcdWM3NTggXHVjZTVjXHVhZDZjXHViODVjXHViOWNjIFx1YjRmMVx1Yjg1ZFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+TXlGcmllbmRzQXJlWW91ckZyaWVuZHNcdWIyOTQgXHVjMGFjXHViNzhjIGlcdWI5N2MgXHVjZDA4XHViMzAwXHVjNzkwXHVjNzU4IFx1ZDYwNFx1YzdhYyBcdWJhYThcdWI0ZTAgXHVjZTVjXHVhZDZjXHVjNzU4IFx1Y2U1Y1x1YWQ2Y1x1Yjg1YyBcdWI0ZjFcdWI4NWRcdWQ1NWNcdWIyZTQuIFx1Yzc3NCBcdWFjYmRcdWM2YjAgXHVjMGFjXHViNzhjIGlcdWIyOTQgXHVjZDA4XHViMzAwXHVjNzkwXHVjNzU4IFx1Y2U1Y1x1YWQ2Y1x1YWMwMCBcdWM1NDRcdWIyYzhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPldlQXJlWW91ckZyaWVuZHNcdWIyOTQgXHVjMGFjXHViNzhjIGlcdWI5N2MgXHVjZDA4XHViMzAwXHVjNzkwXHVjNjQwLCBcdWNkMDhcdWIzMDBcdWM3OTBcdWM3NTggXHVkNjA0XHVjN2FjIFx1YmFhOFx1YjRlMCBcdWNlNWNcdWFkNmNcdWM3NTggXHVjZTVjXHVhZDZjXHViODVjIFx1YjRmMVx1Yjg1ZFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWI5N2MgXHViMmU0IFx1YjljY1x1YjRlMCBcdWIyZTRcdWM3NGNcdWM1ZDBcdWIyOTQgXHVjMTI0XHViYjM4XHVjNzQ0IFx1YzcwNFx1ZDU3NFx1YzExYyBcdWQ0NWNcdWJjZjhcdWM3NDQgXHVhZDZjXHVkNTU4XHVhY2UwXHVjNzkwIFx1ZDU1Y1x1YjJlNC4gXHVkNDVjXHViY2Y4XHVjNzQwIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWMxOGRcdWQ1NWMgXHVjMGFjXHViNzhjXHViNGU0XHViODVjIFx1YWQ2Y1x1YzEzMVx1YjQxYyBcdWJhYThcdWM3ODRcdWM3NzRcdWIyZTQuIFx1Y2U1Y1x1YWQ2Y1x1YjA3Y1x1YjlhY1x1YjI5NCBcdWMxMWNcdWI4NWMgXHVjODhiXHVjNTQ0XHVkNTU4XHViMjk0IFx1YWM4M1x1Yzc3NCBcdWJlNDRcdWMyYjdcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwLCBcdWQ0NWNcdWJjZjhcdWM1ZDAgXHVjMThkXHVkNTU4XHViMjk0IFx1YzBhY1x1Yjc4Y1x1YjRlNCBcdWM5MTFcdWM1ZDBcdWIyOTQgXHVjMTFjXHViODVjIFx1Y2U1Y1x1YWQ2Y1x1Yzc3OCBcdWMzMGRcdWM3NzQgXHVjNzg4XHVjNzNjXHViYTc0IFx1YzU0OCBcdWI0MWNcdWIyZTQuIFx1YWMwMSBcdWMwYWNcdWI3OGNcdWI5YzhcdWIyZTQgXHVjMTI0XHViYjM4XHVjNWQwXHVjMTFjIFx1YzRmMFx1Yzc3NFx1YjI5NCBcdWMyZTBcdWI4YjBcdWIzYzRcdWFjMDAgXHVjNzg4XHViMjk0XHViMzcwLCBcdWM3NzRcdWIyOTQgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOFx1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWI0MWNcdWIyZTQuIFx1YzZiMFx1YjlhY1x1YjI5NCBcdWMyZTBcdWI4YjBcdWIzYzRcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzc0IFx1Y2Q1Y1x1YjMwMFx1Yzc3OCBcdWQ0NWNcdWJjZjhcdWM3NDQgXHVhZDZjXHVkNTU4XHViODI0IFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjUwJVwiPlxyXG5cdDx0aGVhZD5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlx1YjJlOFx1YWNjNDxcL3RoPlxyXG5cdFx0XHQ8dGg+XHVjZDA4XHViMzAwXHVjNzkwPFwvdGg+XHJcblx0XHRcdDx0aD5cdWQ1MDRcdWI4NWNcdWQxYTBcdWNmNWM8XC90aD5cclxuXHRcdFx0PHRoPlx1Y2Q5NFx1YWMwMFx1YjQxOFx1YjI5NCBcdWNlNWNcdWFkNmMgXHVhZDAwXHVhY2M0PFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4wPFwvdGQ+XHJcblx0XHRcdDx0ZD5JQW1Zb3VyRnJpZW5kPFwvdGQ+XHJcblx0XHRcdDx0ZD4oMSwgMCk8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+MDxcL3RkPlxyXG5cdFx0XHQ8dGQ+TXlGcmllbmRzQXJlWW91ckZyaWVuZHM8XC90ZD5cclxuXHRcdFx0PHRkPigyLCAxKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD5XZUFyZVlvdXJGcmllbmRzPFwvdGQ+XHJcblx0XHRcdDx0ZD4oMywgMSksICgzLCAwKSwgKDMsIDIpPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPk15RnJpZW5kc0FyZVlvdXJGcmllbmRzPFwvdGQ+XHJcblx0XHRcdDx0ZD4oNCwgMSksICg0LCAzKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD41PFwvdGQ+XHJcblx0XHRcdDx0ZD4wPFwvdGQ+XHJcblx0XHRcdDx0ZD5JQW1Zb3VyRnJpZW5kPFwvdGQ+XHJcblx0XHRcdDx0ZD4oNSwgMCk8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPlx1Y2M5OFx1Yzc0YyBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWM1ZDBcdWIyOTQgXHVjMGFjXHViNzhjIDBcdWI5Y2MgXHVjNzg4XHViMmU0LiBcdWIyZThcdWFjYzQgMVx1Yzc1OCBcdWNkMDhcdWIzMDBcdWM3OTAoXHVjMGFjXHViNzhjIDApXHViMjk0IFx1YzBjOFx1Yjg1YyBcdWMwYWNcdWI3OGMgMVx1Yzc0NCBJQW1Zb3VyRnJpZW5kIFx1ZDUwNFx1Yjg1Y1x1ZDFhMFx1Y2Y1Y1x1Yjg1YyBcdWNkOTRcdWFjMDBcdWQ1NzRcdWMxMWMsIFx1YzExY1x1Yjg1YyBcdWNlNWNcdWFkNmNcdWFjMDAgXHViNDFjXHViMmU0LiBcdWIyZThcdWFjYzQgMlx1Yzc1OCBcdWNkMDhcdWIzMDBcdWM3OTAoXHVjNzc0XHViYzg4XHVjNWQwXHViM2M0IFx1YzBhY1x1Yjc4YyAwKVx1YjI5NCBcdWMwYWNcdWI3OGMgMlx1Yjk3YyBNeUZyaWVuZHNBcmVZb3VyRnJpZW5kc1x1Yjg1YyBcdWNkOTRcdWFjMDBcdWQ1NThcdWIyOTRcdWIzNzAsXHVjMGFjXHViNzhjIDEoXHVjZDA4XHViMzAwXHVjNzkwXHVjNzU4IFx1YzcyMFx1Yzc3Y1x1ZDU1YyBcdWNlNWNcdWFkNmMpXHVjNzc0IFx1YzBhY1x1Yjc4YyAyXHVjNzU4IFx1YzcyMFx1Yzc3Y1x1ZDU1YyBcdWNlNWNcdWFkNmNcdWFjMDAgXHViNDFjXHViMmU0LiBcdWIyZThcdWFjYzQgM1x1Yzc1OCBcdWNkMDhcdWIzMDBcdWM3OTAoXHVjMGFjXHViNzhjIDEpXHViMjk0IFx1YzBhY1x1Yjc4YyAzXHVjNzQ0V2VBcmVZb3VyRnJpZW5kc1x1Yjg1YyBcdWNkOTRcdWFjMDBcdWQ1NThcdWIyOTRcdWIzNzAsIFx1YzBhY1x1Yjc4YyAzXHVjNzQwIFx1YzBhY1x1Yjc4YyAxKFx1Y2QwOFx1YjMwMFx1Yzc5MClcdWFjZmMgXHVjMGFjXHViNzhjIDAsIDIgKFx1Y2QwOFx1YjMwMFx1Yzc5MFx1Yzc1OCBcdWNlNWNcdWFkNmNcdWI0ZTQpXHVjNzU4IFx1Y2U1Y1x1YWQ2Y1x1YWMwMCBcdWI0MWNcdWIyZTQuIFx1YjJlOFx1YWNjNCA0XHVjNjQwIFx1YjJlOFx1YWNjNCA1XHViM2M0IFx1ZDQ1Y1x1YzVkMCBcdWJjZjRcdWM3NzggXHViYzE0XHVjNjQwIFx1YWMxOVx1YjJlNC4gXHVjZDVjXHVjODg1XHVjODAxXHVjNzc4IFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YjI5NCBcdWIyZTRcdWM3NGMgXHVhZGY4XHViOWJjXHVhY2ZjIFx1YWMxOVx1YWNlMCwgXHViM2Q5XHVhZGY4XHViNzdjXHViYmY4IFx1YzU0OFx1Yzc1OCBcdWMyMmJcdWM3OTBcdWIyOTQgXHVjMGFjXHViNzhjXHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yzc3NFx1YWNlMCwgXHViM2Q5XHVhZGY4XHViNzdjXHViYmY4IFx1YzU0NFx1Yjc5OFx1Yzc1OCBcdWMyMmJcdWM3OTBcdWIyOTQgXHVjNzc0IFx1YzBhY1x1Yjc4Y1x1Yzc1OCBcdWMyZTBcdWI4YjBcdWIzYzRcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWMwYWNcdWI3OGMgM1x1YWNmYyA1XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWQ0NWNcdWJjZjhcdWM3NTggXHVjMmUwXHViOGIwXHViM2M0XHVjNzU4IFx1Y2QxZFx1ZDU2OVx1Yzc0MCAyMCArIDE1ID0gMzVcdWM3NzhcdWIzNzAsIFx1Yzc3NFx1YjI5NCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVjMmUwXHViOGIwXHViM2M0XHVjNzU4IFx1Y2QxZFx1ZDU2OSBcdWM5MTEgXHVjZDVjXHViMzAwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2ZyaWVuZC5wbmdcIiBzdHlsZT1cImhlaWdodDoxOTNweDsgd2lkdGg6MzIwcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1YjJlOFx1YWNjNFx1Yzc1OCBcdWFlMzBcdWMyMjBcdWFjZmMgXHVhYzAxIFx1YzBhY1x1Yjc4Y1x1Yzc1OCBcdWMyZTBcdWI4YjBcdWIzYzRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjMmUwXHViOGIwXHViM2M0XHVjNzU4IFx1Y2QxZFx1ZDU2OVx1Yzc3NCBcdWNkNWNcdWIzMDBcdWM3NzggXHVkNDVjXHViY2Y4XHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjMGFjXHViNzhjXHVjNzU4IFx1YzIxOCBuXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNDU4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWFjMDEgXHVjMGFjXHViNzhjXHVjNzU4IFx1YzJlMFx1YjhiMFx1YjNjNFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjMTRiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWFjMDEgXHViMmU4XHVhY2M0XHVjNzU4IFx1YzgxNVx1YmNmNFx1YWMwMCBob3N0PHN1Yj4xPFwvc3ViPiBwcm90b2NvbDxzdWI+MTxcL3N1Yj4gaG9zdDxzdWI+MjxcL3N1Yj4gcHJvdG9jb2w8c3ViPjI8XC9zdWI+IC4uLiBob3N0PHN1Yj5uLTE8XC9zdWI+IHByb3RvY29sPHN1Yj5uLTE8XC9zdWI+XHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWQ2MTVcdWMyZGRcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoXHViMmU4XHVhY2M0IDBcdWM1ZDBcdWIyOTQgXHVjZDA4XHViMzAwXHVjNzkwXHVhYzAwIFx1YzVjNlx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgaG9zdDxzdWI+MDxcL3N1Yj5cdWFjZmMgcHJvdG9jb2w8c3ViPjA8XC9zdWI+XHVjNzQwIFx1YzhmY1x1YzViNFx1YzljMFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQpIGhvc3RcdWIyOTQgaVx1YmM4OCBcdWIyZThcdWFjYzRcdWM3NTggXHVjZDA4XHViMzAwXHVjNzkwXHVjNzc0XHVhY2UwLCBwcm90b2NvbFx1Yzc1OCBcdWFjMTJcdWM3NzQgMFx1Yzc3NFx1YmE3NCBJQW1Zb3VyRnJpZW5kLCAxXHVjNzc0XHViYTc0IE15RnJpZW5kc0FyZVlvdXJGcmllbmRzLCAyXHVjNzc0XHViYTc0IFdlQXJlWW91ckZyaWVuZHMgXHVkNTA0XHViODVjXHVkMWEwXHVjZjVjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJiMzhcdWM4MWNcdWIyOTQgXHViMmU0XHVjNzRjIFx1YjQ1MCBcdWM4NzBcdWFjNzQgXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4yICZsZTsgbiAmbGU7IDEsMDAwLCAxICZsZTsgXHVjMmUwXHViOGIwXHViM2M0ICZsZTsgMSwwMDAsMDAwPFwvbGk+XHJcblx0PGxpPjIgJmxlOyBuICZsZTsgMTAwLDAwMCwgMSAmbGU7IFx1YzJlMFx1YjhiMFx1YjNjNCAmbGU7IDEwLDAwMDxcL2xpPlxyXG48XC91bD5cclxuIiwib3V0cHV0IjoiPHA+XHVjMmUwXHViOGIwXHViM2M0XHVjNzU4IFx1Y2QxZFx1ZDU2OVx1Yzc3NCBcdWNkNWNcdWIzMDBcdWM3NzggXHVkNDVjXHViY2Y4XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWMyZTBcdWI4YjBcdWIzYzRcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxMDA3NSIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkZyaWVuZCIsImRlc2NyaXB0aW9uIjoiPHA+V2UgYnVpbGQgYSBzb2NpYWwgbmV0d29yayBmcm9tIG4gcGVvcGxlIG51bWJlcmVkIDAsIC4uLiAsIG4tMS4gU29tZSBwYWlycyBvZiBwZW9wbGUgaW4gdGhlIG5ldHdvcmsgd2lsbCBiZSBmcmllbmRzLiBJZiBwZXJzb24geCBiZWNvbWVzIGEgZnJpZW5kIG9mIHBlcnNvbiB5LCB0aGVuIHBlcnNvbiB5IGFsc28gYmVjb21lcyBhIGZyaWVuZCBvZiBwZXJzb24geC48XC9wPlxyXG5cclxuPHA+VGhlIHBlb3BsZSBhcmUgYWRkZWQgdG8gdGhlIG5ldHdvcmsgaW4gbiBzdGFnZXMsIHdoaWNoIGFyZSBhbHNvIG51bWJlcmVkIGZyb20gMCB0byBuLTEuIFBlcnNvbiBpIGlzIGFkZGVkIGluIHN0YWdlIGkuIEluIHN0YWdlIDAsIHBlcnNvbiAwIGlzIGFkZGVkIGFzIHRoZSBvbmx5IHBlcnNvbiBvZiB0aGUgbmV0d29yay4gSW4gZWFjaCBvZiB0aGUgbmV4dCBuLTEgc3RhZ2VzLCBhIHBlcnNvbiBpcyBhZGRlZCB0byB0aGUgbmV0d29yayBieSBhIGhvc3QsIHdobyBtYXkgYmUgYW55IHBlcnNvbiBhbHJlYWR5IGluIHRoZSBuZXR3b3JrLiBBdCBzdGFnZSBpICgwICZsdDsgaSAmbHQ7IG4pLCB0aGUgaG9zdCBmb3IgdGhhdCBzdGFnZSBjYW4gYWRkIHRoZSBpbmNvbWluZyBwZXJzb24gaSBpbnRvIHRoZSBuZXR3b3JrIGJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHRocmVlIHByb3RvY29sczo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT48ZW0+SUFtWW91ckZyaWVuZDxcL2VtPiBtYWtlcyBwZXJzb24gaSBhIGZyaWVuZCBvZiB0aGUgaG9zdCBvbmx5LjxcL2xpPlxyXG5cdDxsaT48ZW0+TXlGcmllbmRzQXJlWW91ckZyaWVuZHM8XC9lbT4gbWFrZXMgcGVyc29uIGkgYSBmcmllbmQgb2YgZWFjaCBwZXJzb24sIHdobyBpcyBhIGZyaWVuZCBvZiB0aGUgaG9zdCBhdCB0aGlzIG1vbWVudC4gTm90ZSB0aGF0IHRoaXMgcHJvdG9jb2wgZG9lcyBub3QgbWFrZSBwZXJzb24gaSBhIGZyaWVuZCBvZiB0aGUgaG9zdC48XC9saT5cclxuXHQ8bGk+PGVtPldlQXJlWW91ckZyaWVuZHM8XC9lbT4gbWFrZXMgcGVyc29uIGkgYSBmcmllbmQgb2YgdGhlIGhvc3QsIGFuZCBhbHNvIGEgZnJpZW5kIG9mIGVhY2ggcGVyc29uLCB3aG8gaXMgYSBmcmllbmQgb2YgdGhlIGhvc3QgYXQgdGhpcyBtb21lbnQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+QWZ0ZXIgd2UgYnVpbGQgdGhlIG5ldHdvcmsgd2Ugd291bGQgbGlrZSB0byBwaWNrIGEgc2FtcGxlIGZvciBhIHN1cnZleSwgdGhhdCBpcywgY2hvb3NlIGEgZ3JvdXAgb2YgcGVvcGxlIGZyb20gdGhlIG5ldHdvcmsuIFNpbmNlIGZyaWVuZHMgdXN1YWxseSBoYXZlIHNpbWlsYXIgaW50ZXJlc3RzLCB0aGUgc2FtcGxlIHNob3VsZCBub3QgaW5jbHVkZSBhbnkgcGFpciBvZiBwZW9wbGUgd2hvIGFyZSBmcmllbmRzIHdpdGggZWFjaCBvdGhlci4gRWFjaCBwZXJzb24gaGFzIGEgc3VydmV5IGNvbmZpZGVuY2UsIGV4cHJlc3NlZCBhcyBhIHBvc2l0aXZlIGludGVnZXIsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGZpbmQgYSBzYW1wbGUgd2l0aCB0aGUgbWF4aW11bSB0b3RhbCBjb25maWRlbmNlLjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6NDExcHhcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5zdGFnZTxcL3RoPlxyXG5cdFx0XHQ8dGg+aG9zdDxcL3RoPlxyXG5cdFx0XHQ8dGg+cHJvdG9jb2w8XC90aD5cclxuXHRcdFx0PHRoPmZyaWVuZCByZWxhdGlvbiBhZGRlZDxcL3RoPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGhlYWQ+XHJcblx0PHRib2R5PlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0XHQ8dGQ+MDxcL3RkPlxyXG5cdFx0XHQ8dGQ+SUFtWW91ckZyaWVuZDxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDEsIDApPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjA8XC90ZD5cclxuXHRcdFx0PHRkPk15RnJpZW5kc0FyZVlvdXJGcmllbmRzPFwvdGQ+XHJcblx0XHRcdDx0ZD4oMiwgMSk8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0XHQ8dGQ+V2VBcmVZb3VyRnJpZW5kczxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDMsIDEpLCAoMywgMCksICgzLCAyKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD40PFwvdGQ+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD5NeUZyaWVuZHNBcmVZb3VyRnJpZW5kczxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDQsIDEpLCAoNCwgMyk8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+NTxcL3RkPlxyXG5cdFx0XHQ8dGQ+MDxcL3RkPlxyXG5cdFx0XHQ8dGQ+SUFtWW91ckZyaWVuZDxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDUsIDApPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcblxyXG48cD5Jbml0aWFsbHkgdGhlIG5ldHdvcmsgY29udGFpbnMgb25seSBwZXJzb24gMC4gVGhlIGhvc3Qgb2Ygc3RhZ2UgMSAocGVyc29uIDApIGludml0ZXMgdGhlIG5ldyBwZXJzb24gMSB0aHJvdWdoIHRoZSBJQW1Zb3VyRnJpZW5kIHByb3RvY29sLCBoZW5jZSB0aGV5IGJlY29tZSBmcmllbmRzLiBUaGUgaG9zdCBvZiBzdGFnZSAyIChwZXJzb24gMCBhZ2FpbikgaW52aXRlcyBwZXJzb24gMiBieSBNeUZyaWVuZHNBcmVZb3VyRnJpZW5kcywgd2hpY2ggbWFrZXMgcGVyc29uIDEgKHRoZSBvbmx5IGZyaWVuZCBvZiB0aGUgaG9zdCkgdGhlIG9ubHkgZnJpZW5kIG9mIHBlcnNvbiAyLiBUaGUgaG9zdCBvZiBzdGFnZSAzIChwZXJzb24gMSkgYWRkcyBwZXJzb24gMyB0aHJvdWdoIFdlQXJlWW91ckZyaWVuZHMsIHdoaWNoIG1ha2VzIHBlcnNvbiAzIGEgZnJpZW5kIG9mIHBlcnNvbiAxICh0aGUgaG9zdCkgYW5kIHBlb3BsZSAwIGFuZCAyICh0aGUgZnJpZW5kcyBvZiB0aGUgaG9zdCkuIFN0YWdlcyA0IGFuZCA1IGFyZSBhbHNvIHNob3duIGluIHRoZSB0YWJsZSBhYm92ZS4gVGhlIGZpbmFsIG5ldHdvcmsgaXMgc2hvd24gaW4gdGhlIGZvbGxvd2luZyBmaWd1cmUsIGluIHdoaWNoIHRoZSBudW1iZXJzIGluc2lkZSB0aGUgY2lyY2xlcyBzaG93IHRoZSBsYWJlbHMgb2YgcGVvcGxlLCBhbmQgdGhlIG51bWJlcnMgbmV4dCB0byB0aGUgY2lyY2xlcyBzaG93IHRoZSBzdXJ2ZXkgY29uZmlkZW5jZS4gVGhlIHNhbXBsZSBjb25zaXN0aW5nIG9mIHBlb3BsZSAzIGFuZCA1IGhhcyB0b3RhbHN1cnZleSBjb25maWRlbmNlIGVxdWFsIHRvIDIwICsgMTUgPSAzNSwgd2hpY2ggaXMgdGhlIG1heGltdW0gcG9zc2libGUgdG90YWwgY29uZmlkZW5jZS48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9mcmllbmQucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTkzcHg7IHdpZHRoOjMyMHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPkdpdmVuIHRoZSBkZXNjcmlwdGlvbiBvZiBlYWNoIHN0YWdlIGFuZCB0aGUgY29uZmlkZW5jZSB2YWx1ZSBvZiBlYWNoIHBlcnNvbiwgZmluZCBhIHNhbXBsZSB3aXRoIHRoZSBtYXhpbXVtIHRvdGFsIGNvbmZpZGVuY2UuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+ZmluZFNhbXBsZShuLCBjb25maWRlbmNlLCBob3N0LCBwcm90b2NvbClcclxuXHQ8dWw+XHJcblx0XHQ8bGk+bjogdGhlIG51bWJlciBvZiBwZW9wbGUuPFwvbGk+XHJcblx0XHQ8bGk+Y29uZmlkZW5jZTogYXJyYXkgb2YgbGVuZ3RoIG47IGNvbmZpZGVuY2VbaV0gZ2l2ZXMgdGhlIGNvbmZpZGVuY2UgdmFsdWUgb2YgcGVyc29uIGkuPFwvbGk+XHJcblx0XHQ8bGk+aG9zdDogYXJyYXkgb2YgbGVuZ3RoIG47IGhvc3RbaV0gZ2l2ZXMgdGhlIGhvc3Qgb2Ygc3RhZ2UgaS48XC9saT5cclxuXHRcdDxsaT5wcm90b2NvbDogYXJyYXkgb2YgbGVuZ3RoIG47IHByb3RvY29sW2ldIGdpdmVzIHRoZSBwcm90b2NvbCBjb2RlIHVzZWQgaW4gc3RhZ2UgaSAoMCAmbHQ7IGkgJmx0OyBuKTogMCBmb3IgSUFtWW91ckZyaWVuZCwgMSBmb3IgTXlGcmllbmRzQXJlWW91ckZyaWVuZHMsIGFuZCAyIGZvciBXZUFyZVlvdXJGcmllbmRzLjxcL2xpPlxyXG5cdFx0PGxpPlNpbmNlIHRoZXJlIGlzIG5vIGhvc3QgaW4gc3RhZ2UgMCwgaG9zdFswXSBhbmQgcHJvdG9jb2xbMF0gYXJlIHVuZGVmaW5lZCBhbmQgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBieSB5b3VyIHByb2dyYW0uPFwvbGk+XHJcblx0XHQ8bGk+VGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIG1heGltdW0gcG9zc2libGUgdG90YWwgY29uZmlkZW5jZSBvZiBhIHNhbXBsZS48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcbiIsImlucHV0IjoiPHVsPlxyXG5cdDxsaT5saW5lIDE6IG48XC9saT5cclxuXHQ8bGk+bGluZSAyOiBjb25maWRlbmNlWzBdLCAuLi4sIGNvbmZpZGVuY2Vbbi0xXTxcL2xpPlxyXG5cdDxsaT5saW5lIDM6IGhvc3RbMV0sIHByb3RvY29sWzFdLCBob3N0WzJdLCBwcm90b2NvbFsyXSwgLi4uLCBob3N0W24tMV0sIHByb3RvY29sW24tMV08XC9saT5cclxuPFwvdWw+XHJcbiIsIm91dHB1dCI6IjxwPlByaW50IHJldHVybiB2YWx1ZSBvZiBmdW5jdGlvbiZuYnNwO2ZpbmRTYW1wbGUuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d