시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 87 31 26 34.667%

문제

만수르는 조상들과 마찬가지로 말을 키우는 것을 좋아한다. 그는 카자흐스탄에서 말을 제일 많이 갖고 있다. 그렇지만 꼭 항상 그랬던 것은 아닌데, N년 전에만 해도 만수르는 그저 젊은이일 뿐이어서 말이 한마리밖에 없었다. 만수르는 돈을 많이 벌어서 부자가 되고 싶었다.

시간순으로 매 해를 0번 해부터 N-1번 해로 번호를 매기자. (즉, N-1번 해가 가장 최근이다.) 해마다 날씨는 말이 자라는데 영향을 미친다. 만수르가 기억하기로는, i번 해에 말의 마릿수가 늘어난 비율은 양의 정수 X[i]이다. 만약 i번 해 연초에 말이 h마리가 있었다면, 그 해 연말에는 말이 모두 h×X[i]마리가 된다.

말은 매해 연말에만 팔 수 있다. 만수르가 기억하기로 i번 해의 말값은 양의 정수 Y[i]였다. 즉, 매해 연말에 갖고 있는 말 중 팔 수 있는 말의 수에는 제약이 없고, 말 한마리 값은 Y[i]로 모두 같다.

만수르는 지난 N년 동안, 말을 파는 시기를 잘 정했다면 얼마나 많은 돈을 벌 수 있었을지가 궁금해졌다. 당신이 만수르를 방문했을 때 이 질문을 받게 되었다.

저녁동안 만수르의 기억은 점점 정확해져서, 총 M번의 수정을 하게 된다. 수정을 한 번 할 때마다 X[i]의 값 중 하나, 또는 Y[i]의 값 중 하나가 바뀐다. 수정을 한 번 할 때마다 만수르는 말을 팔아 서 벌 수 있는 돈의 최댓값을 물어본다. 만수르가 수정할 때마다, 수정된 내용들은 누적된다. 즉, 만수르에게 대답할 때는 지금까지 만수르가 한 수정들을 모두 반영해야 한다. 한 X[i] 또는 Y[i]가 여러 번 수정되는 경우도 가능하다.

만수르의 질문에 대한 답은 매우 큰 수일 수 있다. 큰 수를 다룰 때 생기는 문제를 피하기 위해서, 답을 109+7로 나눈 나머지를 알려주면 된다.

N = 3년에 대해서 다음과 같은 정보가 주어졌다고 하자.

  0 1 2
X 2 1 3
Y 3 4 1

이 초기 정보를 가지고, 만수르는 1번 해 연말에 모든 말을 다 팔았다면 가장 많은 돈을 벌 수 있다. 전체 과정은 다음과 같다.

  • 처음에 만수르는 말이 한 마리 있다.
  • 0번 해 연말에 만수르는 1×X[0] = 2마리의 말이 있다.
  • 1번 해 연말에 만수르는 2×X[1] = 2마리의 말이 있다.
  • 이제 말 두 마리를 모두 팔 수 있다. 전체 이익은 2×Y[1] = 8이다.

이제, M = 1번 수정을 하여 Y[1]이 2로 바뀌었다.

수정 후의 정보는 다음과 같다.

  0 1 2
X 2 1 3
Y 3 2 1

이 경우, 최적해 중 하나는 한 마리를 0번 해 연말에 팔고 2번 해 연말에 세 마리를 파는 것이다. 전체 과정은 다음과 같다

  • 처음에 만수르는 말이 한 마리 있다.
  • 0번 해 연말에 만수르는 1×X[0] = 2마리의 말이 있다.
  • 이제 이 중 한 마리를 Y[0] = 3에 팔 수 있고, 한 마리가 남아 있다.
  • 1번 해 연말에 만수르는 1×X[1] = 1마리의 말이 있다.
  • 2번 해 연말에 만수르는 1×X[2] = 3마리의 말이 있다.
  • 이제 말 세 마리를 모두 3×Y[2] = 3에 팔 수 있다. 전체 이익은 3 + 3 = 6이다.

N, X, Y와 수정된 내용의 리스트가 주어진다. 첫 번째 수정을 하기 전과, 매번 수정을 한 다음에 대해서 만수르가 말을 팔아서 벌 수 있는 돈의 최댓값을 109+7로 나눈 나머지를 구하라. 이를 위해서 함수 init, updateX, updateY를 구현해야 한다.

  • init(N, X, Y) — 그레이더는 이 함수를 맨 처음 정확히 한 번 호출한다.
    • N: 전체 해 수
    • X: 길이 N인 배열. 일 때, 는 번 해 연말에 말의 마릿수가 늘어난 비율이다.
    • Y: 길이 N인 배열. 일 때, 는 번 해 연말에 말 한마리의 값이다.
    • X와 Y는 만수르가 처음에 준 값을 나타낸다. (수정을 하기 전의 값)
    • init 함수가 종료한 후, 배열 X와 Y는 유효한 주소에 있으며, 원한다면 이 배열의 내용을 수정할 수 있다.
    • 이 함수는 X와 Y의 초기값을 가지고 만수르가 말을 팔아서 벌 수 있는 돈의 최댓값을 109+7로 나눈 나머지를 리턴해야 한다.
  • updateX(pos, val)
    • pos: 0, ..., N-1 범위 내의 정수.
    • val: X[pos]의 새로운 값.
    • 이 함수는 주어진 정보에 따라 수정을 한 후, 만수르가 말을 팔아서 벌 수 있는 돈의 최댓값을 109+7로 나눈 나머지를 리턴해야 한다.
  • updateY(pos, val)
    • pos: 0, ..., N-1 범위 내의 정수.
    • val: Y[pos]의 새로운 값.
    • 이 함수는 주어진 정보에 따라 수정을 한 후, 만수르가 말을 팔아서 벌 수 있는 돈의 최댓값을 109+7로 나눈 나머지를 리턴해야 한다.

모든 X[i]와 Y[i]의 값은 항상 (즉, 처음에도, 매번 수정을 한 다음에도) 1이상 109이하를 만족한다.

init을 호출한 후, 그레이더는 updateX와 updateY를 여러 번 호출할 것이다. updateX와 updateY의 전체 호출 회수는 M이다.

입력

  • 1번 줄: N
  • 2번 줄: X[0] … X[N - 1]
  • 3번 줄: Y[0] … Y[N - 1]
  • 4번 줄: M
  • 5 ~ M + 4번 줄: type pos val에 해당하는 세 숫자 (type=1이면 updateX이고 type=2이면 updateY).

1 ≤ N ≤ 500,000, 0 ≤ M ≤ 100,000

출력

처음 init의 리턴값을 출력하고, 차례로 updateX와 updateY의 모든 호출에 대한 리턴값을 출력한다.

예제 입력 1

3
2 1 3
3 4 1
1
2 1 2

예제 출력 1

8
6
W3sicHJvYmxlbV9pZCI6IjEwOTIyIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViOWQwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHVjODcwXHVjMGMxXHViNGU0XHVhY2ZjIFx1YjljOFx1Y2MyY1x1YWMwMFx1YzljMFx1Yjg1YyBcdWI5ZDBcdWM3NDQgXHVkMGE0XHVjNmIwXHViMjk0IFx1YWM4M1x1Yzc0NCBcdWM4OGJcdWM1NDRcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjI5NCBcdWNlNzRcdWM3OTBcdWQ3NTBcdWMyYTRcdWQwYzRcdWM1ZDBcdWMxMWMgXHViOWQwXHVjNzQ0IFx1YzgxY1x1Yzc3YyBcdWI5Y2VcdWM3NzQmbmJzcDtcdWFjMTZcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzBcdWI5Y2MgXHVhZjJkIFx1ZDU2ZFx1YzBjMSBcdWFkZjhcdWI3YWNcdWIzNTggXHVhYzgzXHVjNzQwIFx1YzU0NFx1YjJjY1x1YjM3MCwgTlx1YjE0NCBcdWM4MDRcdWM1ZDBcdWI5Y2MgXHVkNTc0XHViM2M0IFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCBcdWFkZjhcdWM4MDAgXHVjODBhXHVjNzQwXHVjNzc0XHVjNzdjIFx1YmZkMFx1Yzc3NFx1YzViNFx1YzExYyBcdWI5ZDBcdWM3NzQgXHVkNTVjXHViOWM4XHViOWFjXHViYzE2XHVjNWQwIFx1YzVjNlx1YzVjOFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IFx1YjNjOFx1Yzc0NCBcdWI5Y2VcdWM3NzQgXHViYzhjXHVjNWI0XHVjMTFjIFx1YmQ4MFx1Yzc5MFx1YWMwMCBcdWI0MThcdWFjZTAgXHVjMmY2XHVjNWM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWMyZGNcdWFjMDRcdWMyMWNcdWM3M2NcdWI4NWMgXHViOWU0IFx1ZDU3NFx1Yjk3YyAwXHViYzg4IFx1ZDU3NFx1YmQ4MFx1ZDEzMCBOLTFcdWJjODggXHVkNTc0XHViODVjIFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWI5ZTRcdWFlMzBcdWM3OTAuIChcdWM5ODksIE4tMVx1YmM4OCBcdWQ1NzRcdWFjMDAgXHVhYzAwXHVjN2E1IFx1Y2Q1Y1x1YWRmY1x1Yzc3NFx1YjJlNC4pIFx1ZDU3NFx1YjljOFx1YjJlNCBcdWIwYTBcdWM1MjhcdWIyOTQgXHViOWQwXHVjNzc0IFx1Yzc5MFx1Yjc3Y1x1YjI5NFx1YjM3MCBcdWM2MDFcdWQ1YTVcdWM3NDQgXHViYmY4XHVjZTVjXHViMmU0LiBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHVhZTMwXHVjNWI1XHVkNTU4XHVhZTMwXHViODVjXHViMjk0LCBpXHViYzg4IFx1ZDU3NFx1YzVkMCBcdWI5ZDBcdWM3NTggXHViOWM4XHViOWJmXHVjMjE4XHVhYzAwIFx1YjI5OFx1YzViNFx1YjA5YyBcdWJlNDRcdWM3MjhcdWM3NDAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBYW2ldXHVjNzc0XHViMmU0LiBcdWI5Y2NcdWM1N2QgaVx1YmM4OCBcdWQ1NzQgXHVjNWYwXHVjZDA4XHVjNWQwIFx1YjlkMFx1Yzc3NCBoXHViOWM4XHViOWFjXHVhYzAwIFx1Yzc4OFx1YzVjOFx1YjJlNFx1YmE3NCwgXHVhZGY4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDBcdWIyOTQgXHViOWQwXHVjNzc0IFx1YmFhOFx1YjQ1MCBoJnRpbWVzO1hbaV1cdWI5YzhcdWI5YWNcdWFjMDAgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5ZDBcdWM3NDAgXHViOWU0XHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMFx1YjljYyBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YWUzMFx1YzViNVx1ZDU1OFx1YWUzMFx1Yjg1YyBpXHViYzg4IFx1ZDU3NFx1Yzc1OCBcdWI5ZDBcdWFjMTJcdWM3NDAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBZW2ldXHVjNjAwXHViMmU0LiBcdWM5ODksIFx1YjllNFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YjI5NCBcdWI5ZDAgXHVjOTExIFx1ZDMxNCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YjlkMFx1Yzc1OCBcdWMyMThcdWM1ZDBcdWIyOTQgXHVjODFjXHVjNTdkXHVjNzc0IFx1YzVjNlx1YWNlMCwgXHViOWQwIFx1ZDU1Y1x1YjljOFx1YjlhYyBcdWFjMTJcdWM3NDAgWVtpXVx1Yjg1YyBcdWJhYThcdWI0NTAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHVjOWMwXHViMDljIE5cdWIxNDQgXHViM2Q5XHVjNTQ4LCBcdWI5ZDBcdWM3NDQgXHVkMzBjXHViMjk0IFx1YzJkY1x1YWUzMFx1Yjk3YyBcdWM3OTggXHVjODE1XHVkNTg4XHViMmU0XHViYTc0IFx1YzViY1x1YjljOFx1YjA5OCBcdWI5Y2VcdWM3NDAgXHViM2M4XHVjNzQ0IFx1YmM4YyBcdWMyMTggXHVjNzg4XHVjNWM4XHVjNzQ0XHVjOWMwXHVhYzAwIFx1YWQ4MVx1YWUwOFx1ZDU3NFx1Yzg0Y1x1YjJlNC4gXHViMmY5XHVjMmUwXHVjNzc0IFx1YjljY1x1YzIxOFx1Yjk3NFx1Yjk3YyBcdWJjMjlcdWJiMzhcdWQ1ODhcdWM3NDQgXHViNTRjIFx1Yzc3NCBcdWM5YzhcdWJiMzhcdWM3NDQgXHViYzFiXHVhYzhjIFx1YjQxOFx1YzVjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjODAwXHViMTQxXHViM2Q5XHVjNTQ4IFx1YjljY1x1YzIxOFx1Yjk3NFx1Yzc1OCBcdWFlMzBcdWM1YjVcdWM3NDAgXHVjODEwXHVjODEwIFx1YzgxNVx1ZDY1NVx1ZDU3NFx1YzgzOFx1YzExYywgXHVjZDFkIE1cdWJjODhcdWM3NTggXHVjMjE4XHVjODE1XHVjNzQ0IFx1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NWMgXHViYzg4IFx1ZDU2MCBcdWI1NGNcdWI5YzhcdWIyZTQgWFtpXVx1Yzc1OCBcdWFjMTIgXHVjOTExIFx1ZDU1OFx1YjA5OCwgXHViNjEwXHViMjk0IFlbaV1cdWM3NTggXHVhYzEyIFx1YzkxMSBcdWQ1NThcdWIwOThcdWFjMDAgXHViYzE0XHViMDEwXHViMmU0LiBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTVjIFx1YmM4OCBcdWQ1NjAgXHViNTRjXHViOWM4XHViMmU0IFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCBcdWI5ZDBcdWM3NDQgXHVkMzE0XHVjNTQ0IFx1YzExYyBcdWJjOGMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIzYzhcdWM3NTggXHVjZDVjXHViMzEzXHVhYzEyXHVjNzQ0IFx1YmIzY1x1YzViNFx1YmNmOFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YzIxOFx1YzgxNVx1ZDU2MCBcdWI1NGNcdWI5YzhcdWIyZTQsIFx1YzIxOFx1YzgxNVx1YjQxYyBcdWIwYjRcdWM2YTlcdWI0ZTRcdWM3NDAgXHViMjA0XHVjODAxXHViNDFjXHViMmU0LiBcdWM5ODksIFx1YjljY1x1YzIxOFx1Yjk3NFx1YzVkMFx1YWM4YyBcdWIzMDBcdWIyZjVcdWQ1NjAgXHViNTRjXHViMjk0IFx1YzljMFx1YWUwOFx1YWU0Y1x1YzljMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHVkNTVjIFx1YzIxOFx1YzgxNVx1YjRlNFx1Yzc0NCBcdWJhYThcdWI0NTAgXHViYzE4XHVjNjAxXHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVkNTVjIFhbaV0gXHViNjEwXHViMjk0IFlbaV1cdWFjMDAgXHVjNWVjXHViN2VjIFx1YmM4OCBcdWMyMThcdWM4MTVcdWI0MThcdWIyOTQgXHVhY2JkXHVjNmIwXHViM2M0IFx1YWMwMFx1YjJhNVx1ZDU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjMjE4XHViOTc0XHVjNzU4IFx1YzljOFx1YmIzOFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQwIFx1YjllNFx1YzZiMCBcdWQwNzAgXHVjMjE4XHVjNzdjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1ZDA3MCBcdWMyMThcdWI5N2MgXHViMmU0XHViOGYwIFx1YjU0YyBcdWMwZGRcdWFlMzBcdWIyOTQgXHViYjM4XHVjODFjXHViOTdjIFx1ZDUzY1x1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWMsIFx1YjJmNVx1Yzc0NCAxMDxzdXA+OTxcL3N1cD4rN1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YzU0Y1x1YjgyNFx1YzhmY1x1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPk4gPSAzXHViMTQ0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYyBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YzgxNVx1YmNmNFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6MjAlXCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+Jm5ic3A7PFwvdGg+XHJcblx0XHRcdDx0aD4wPFwvdGg+XHJcblx0XHRcdDx0aD4xPFwvdGg+XHJcblx0XHRcdDx0aD4yPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5YPFwvdGg+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlk8XC90aD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPlx1Yzc3NCBcdWNkMDhcdWFlMzAgXHVjODE1XHViY2Y0XHViOTdjIFx1YWMwMFx1YzljMFx1YWNlMCwgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDFcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWJhYThcdWI0ZTAgXHViOWQwXHVjNzQ0IFx1YjJlNCBcdWQzMTRcdWM1NThcdWIyZTRcdWJhNzQgXHVhYzAwXHVjN2E1IFx1YjljZVx1Yzc0MCBcdWIzYzhcdWM3NDQgXHViYzhjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzgwNFx1Y2NiNCBcdWFjZmNcdWM4MTVcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWNjOThcdWM3NGNcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IFx1YjlkMFx1Yzc3NCBcdWQ1NWMgXHViOWM4XHViOWFjIFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+MFx1YmM4OCBcdWQ1NzQgXHVjNWYwXHViOWQwXHVjNWQwIFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCAxJnRpbWVzO1hbMF0gPSAyXHViOWM4XHViOWFjXHVjNzU4IFx1YjlkMFx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPjFcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgMiZ0aW1lcztYWzFdID0gMlx1YjljOFx1YjlhY1x1Yzc1OCBcdWI5ZDBcdWM3NzQgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzRcdWM4MWMgXHViOWQwIFx1YjQ1MCBcdWI5YzhcdWI5YWNcdWI5N2MgXHViYWE4XHViNDUwIFx1ZDMxNCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWM4MDRcdWNjYjQgXHVjNzc0XHVjNzc1XHVjNzQwIDImdGltZXM7WVsxXSA9IDhcdWM3NzRcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzc0XHVjODFjLCBNID0gMVx1YmM4OCBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTU4XHVjNWVjIFlbMV1cdWM3NzQgMlx1Yjg1YyBcdWJjMTRcdWIwMGNcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzIxOFx1YzgxNSBcdWQ2YzRcdWM3NTggXHVjODE1XHViY2Y0XHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD4mbmJzcDs8XC90aD5cclxuXHRcdFx0PHRoPjA8XC90aD5cclxuXHRcdFx0PHRoPjE8XC90aD5cclxuXHRcdFx0PHRoPjI8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlg8XC90aD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+WTxcL3RoPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+XHVjNzc0IFx1YWNiZFx1YzZiMCwgXHVjZDVjXHVjODAxXHVkNTc0IFx1YzkxMSBcdWQ1NThcdWIwOThcdWIyOTQgXHVkNTVjIFx1YjljOFx1YjlhY1x1Yjk3YyAwXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHVkMzE0XHVhY2UwIDJcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWMxMzggXHViOWM4XHViOWFjXHViOTdjIFx1ZDMwY1x1YjI5NCBcdWFjODNcdWM3NzRcdWIyZTQuIFx1YzgwNFx1Y2NiNCBcdWFjZmNcdWM4MTVcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNDxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1Y2M5OFx1Yzc0Y1x1YzVkMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHViOWQwXHVjNzc0IFx1ZDU1YyBcdWI5YzhcdWI5YWMgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT4wXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDEmdGltZXM7WFswXSA9IDJcdWI5YzhcdWI5YWNcdWM3NTggXHViOWQwXHVjNzc0IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzc0XHVjODFjIFx1Yzc3NCBcdWM5MTEgXHVkNTVjIFx1YjljOFx1YjlhY1x1Yjk3YyBZWzBdID0gM1x1YzVkMCBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YWNlMCwgXHVkNTVjIFx1YjljOFx1YjlhY1x1YWMwMCBcdWIwYThcdWM1NDQgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT4xXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDEmdGltZXM7WFsxXSA9IDFcdWI5YzhcdWI5YWNcdWM3NTggXHViOWQwXHVjNzc0IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+Mlx1YmM4OCBcdWQ1NzQgXHVjNWYwXHViOWQwXHVjNWQwIFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCAxJnRpbWVzO1hbMl0gPSAzXHViOWM4XHViOWFjXHVjNzU4IFx1YjlkMFx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Yzc3NFx1YzgxYyBcdWI5ZDAgXHVjMTM4IFx1YjljOFx1YjlhY1x1Yjk3YyBcdWJhYThcdWI0NTAgMyZ0aW1lcztZWzJdID0gM1x1YzVkMCBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjODA0XHVjY2I0IFx1Yzc3NFx1Yzc3NVx1Yzc0MCAzICsgMyA9IDZcdWM3NzRcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+TiwgWCwgWVx1YzY0MCBcdWMyMThcdWM4MTVcdWI0MWMgXHViMGI0XHVjNmE5XHVjNzU4IFx1YjlhY1x1YzJhNFx1ZDJiOFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjMjE4XHVjODE1XHVjNzQ0IFx1ZDU1OFx1YWUzMCBcdWM4MDRcdWFjZmMsIFx1YjllNFx1YmM4OCBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTVjIFx1YjJlNFx1Yzc0Y1x1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMgXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YjlkMFx1Yzc0NCBcdWQzMTRcdWM1NDRcdWMxMWMgXHViYzhjIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViM2M4XHVjNzU4IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0NCAxMDxzdXA+OTxcL3N1cD4rN1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YWQ2Y1x1ZDU1OFx1Yjc3Yy4gXHVjNzc0XHViOTdjIFx1YzcwNFx1ZDU3NFx1YzExYyBcdWQ1NjhcdWMyMTggaW5pdCwgdXBkYXRlWCwgdXBkYXRlWVx1Yjk3YyBcdWFkNmNcdWQ2MDRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPmluaXQoTiwgWCwgWSkgJm1kYXNoOyBcdWFkZjhcdWI4MDhcdWM3NzRcdWIzNTRcdWIyOTQgXHVjNzc0IFx1ZDU2OFx1YzIxOFx1Yjk3YyBcdWI5ZTggXHVjYzk4XHVjNzRjIFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWQ1NWMgXHViYzg4IFx1ZDYzOFx1Y2Q5Y1x1ZDU1Y1x1YjJlNC5cclxuXHQ8dWw+XHJcblx0XHQ8bGk+TjogXHVjODA0XHVjY2I0IFx1ZDU3NCBcdWMyMTg8XC9saT5cclxuXHRcdDxsaT5YOiBcdWFlMzhcdWM3NzQgTlx1Yzc3OCBcdWJjMzBcdWM1ZjQuIFx1Yzc3YyBcdWI1NGMsIFx1YjI5NCBcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWI5ZDBcdWM3NTggXHViOWM4XHViOWJmXHVjMjE4XHVhYzAwIFx1YjI5OFx1YzViNFx1YjA5YyBcdWJlNDRcdWM3MjhcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0XHQ8bGk+WTogXHVhZTM4XHVjNzc0IE5cdWM3NzggXHViYzMwXHVjNWY0LiBcdWM3N2MgXHViNTRjLCBcdWIyOTQgXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHViOWQwIFx1ZDU1Y1x1YjljOFx1YjlhY1x1Yzc1OCBcdWFjMTJcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0XHQ8bGk+WFx1YzY0MCBZXHViMjk0IFx1YjljY1x1YzIxOFx1Yjk3NFx1YWMwMCBcdWNjOThcdWM3NGNcdWM1ZDAgXHVjOTAwIFx1YWMxMlx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQuIChcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTU4XHVhZTMwIFx1YzgwNFx1Yzc1OCBcdWFjMTIpPFwvbGk+XHJcblx0XHQ8bGk+aW5pdCBcdWQ1NjhcdWMyMThcdWFjMDAgXHVjODg1XHViOGNjXHVkNTVjIFx1ZDZjNCwgXHViYzMwXHVjNWY0IFhcdWM2NDAgWVx1YjI5NCBcdWM3MjBcdWQ2YThcdWQ1NWMgXHVjOGZjXHVjMThjXHVjNWQwIFx1Yzc4OFx1YzczY1x1YmE3MCwgXHVjNmQwXHVkNTVjXHViMmU0XHViYTc0IFx1Yzc3NCBcdWJjMzBcdWM1ZjRcdWM3NTggXHViMGI0XHVjNmE5XHVjNzQ0IFx1YzIxOFx1YzgxNVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdFx0PGxpPlx1Yzc3NCBcdWQ1NjhcdWMyMThcdWIyOTQgWFx1YzY0MCBZXHVjNzU4IFx1Y2QwOFx1YWUzMFx1YWMxMlx1Yzc0NCBcdWFjMDBcdWM5YzBcdWFjZTAgXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YjlkMFx1Yzc0NCBcdWQzMTRcdWM1NDRcdWMxMWMgXHViYzhjIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViM2M4XHVjNzU4IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0NCAxMDxzdXA+OTxcL3N1cD4rN1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YjlhY1x1ZDEzNFx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPnVwZGF0ZVgocG9zLCB2YWwpXHJcblx0PHVsPlxyXG5cdFx0PGxpPnBvczogMCwgLi4uLCBOLTEgXHViYzk0XHVjNzA0IFx1YjBiNFx1Yzc1OCBcdWM4MTVcdWMyMTguPFwvbGk+XHJcblx0XHQ8bGk+dmFsOiBYW3Bvc11cdWM3NTggXHVjMGM4XHViODVjXHVjNmI0IFx1YWMxMi48XC9saT5cclxuXHRcdDxsaT5cdWM3NzQgXHVkNTY4XHVjMjE4XHViMjk0IFx1YzhmY1x1YzViNFx1YzljNCBcdWM4MTVcdWJjZjRcdWM1ZDAgXHViNTMwXHViNzdjIFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NWMgXHVkNmM0LCBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHViOWQwXHVjNzQ0IFx1ZDMxNFx1YzU0NFx1YzExYyBcdWJjOGMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIzYzhcdWM3NTggXHVjZDVjXHViMzEzXHVhYzEyXHVjNzQ0IDEwPHN1cD45PFwvc3VwPis3XHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHViOWFjXHVkMTM0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+dXBkYXRlWShwb3MsIHZhbClcclxuXHQ8dWw+XHJcblx0XHQ8bGk+cG9zOiAwLCAuLi4sIE4tMSBcdWJjOTRcdWM3MDQgXHViMGI0XHVjNzU4IFx1YzgxNVx1YzIxOC48XC9saT5cclxuXHRcdDxsaT52YWw6IFlbcG9zXVx1Yzc1OCBcdWMwYzhcdWI4NWNcdWM2YjQgXHVhYzEyLjxcL2xpPlxyXG5cdFx0PGxpPlx1Yzc3NCBcdWQ1NjhcdWMyMThcdWIyOTQgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YzgxNVx1YmNmNFx1YzVkMCBcdWI1MzBcdWI3N2MgXHVjMjE4XHVjODE1XHVjNzQ0IFx1ZDU1YyBcdWQ2YzQsIFx1YjljY1x1YzIxOFx1Yjk3NFx1YWMwMCBcdWI5ZDBcdWM3NDQgXHVkMzE0XHVjNTQ0XHVjMTFjIFx1YmM4YyBcdWMyMTggXHVjNzg4XHViMjk0IFx1YjNjOFx1Yzc1OCBcdWNkNWNcdWIzMTNcdWFjMTJcdWM3NDQgMTA8c3VwPjk8XC9zdXA+KzdcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBYW2ldXHVjNjQwIFlbaV1cdWM3NTggXHVhYzEyXHVjNzQwIFx1ZDU2ZFx1YzBjMSAoXHVjOTg5LCBcdWNjOThcdWM3NGNcdWM1ZDBcdWIzYzQsIFx1YjllNFx1YmM4OCBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTVjIFx1YjJlNFx1Yzc0Y1x1YzVkMFx1YjNjNCkgMVx1Yzc3NFx1YzBjMSAxMDxzdXA+OTxcL3N1cD5cdWM3NzRcdWQ1NThcdWI5N2MgXHViOWNjXHVjODcxXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5pbml0XHVjNzQ0IFx1ZDYzOFx1Y2Q5Y1x1ZDU1YyBcdWQ2YzQsIFx1YWRmOFx1YjgwOFx1Yzc3NFx1YjM1NFx1YjI5NCB1cGRhdGVYXHVjNjQwIHVwZGF0ZVlcdWI5N2MgXHVjNWVjXHViN2VjIFx1YmM4OCBcdWQ2MzhcdWNkOWNcdWQ1NjAgXHVhYzgzXHVjNzc0XHViMmU0LiB1cGRhdGVYXHVjNjQwIHVwZGF0ZVlcdWM3NTggXHVjODA0XHVjY2I0IFx1ZDYzOFx1Y2Q5YyBcdWQ2OGNcdWMyMThcdWIyOTQgTVx1Yzc3NFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6Ijx1bD5cclxuXHQ8bGk+MVx1YmM4OCBcdWM5MDQ6IE48XC9saT5cclxuXHQ8bGk+Mlx1YmM4OCBcdWM5MDQ6IFhbMF0gJmhlbGxpcDsgWFtOIC0gMV08XC9saT5cclxuXHQ8bGk+M1x1YmM4OCBcdWM5MDQ6IFlbMF0gJmhlbGxpcDsgWVtOIC0gMV08XC9saT5cclxuXHQ8bGk+NFx1YmM4OCBcdWM5MDQ6IE08XC9saT5cclxuXHQ8bGk+NSB+IE0gKyA0XHViYzg4IFx1YzkwNDogdHlwZSBwb3MgdmFsXHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NCBcdWMxMzggXHVjMjJiXHVjNzkwICh0eXBlPTFcdWM3NzRcdWJhNzQgdXBkYXRlWFx1Yzc3NFx1YWNlMCB0eXBlPTJcdWM3NzRcdWJhNzQgdXBkYXRlWSkuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+MSAmbGU7IE4gJmxlOyA1MDAsMDAwLCAwICZsZTsgTSAmbGU7IDEwMCwwMDA8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjOThcdWM3NGMgaW5pdFx1Yzc1OCBcdWI5YWNcdWQxMzRcdWFjMTJcdWM3NDQgXHVjZDljXHViODI1XHVkNTU4XHVhY2UwLCBcdWNjMjhcdWI4NDBcdWI4NWMgdXBkYXRlWFx1YzY0MCB1cGRhdGVZXHVjNzU4IFx1YmFhOFx1YjRlMCBcdWQ2MzhcdWNkOWNcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YjlhY1x1ZDEzNFx1YWMxMlx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMTA5MjIiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJIb3JzZXMiLCJkZXNjcmlwdGlvbiI6IjxwPk1hbnN1ciBsb3ZlcyB0byBicmVlZCBob3JzZXMsIGp1c3QgbGlrZSBoaXMgYW5jaWVudCBhbmNlc3RvcnMgZGlkLiBIZSBub3cgaGFzIHRoZSBsYXJnZXN0IGhlcmQgaW4gS2F6YWtoc3Rhbi4gQnV0IHRoaXMgd2FzIG5vdCBhbHdheXMgdGhlIGNhc2UuIE4geWVhcnMgYWdvLCBNYW5zdXIgd2FzIGp1c3QgYSBkemhpZ2l0IChLYXpha2ggZm9yIGEgeW91bmcgbWFuKSBhbmQgaGUgb25seSBoYWQgYSBzaW5nbGUgaG9yc2UuIEhlIGRyZWFtZWQgdG8gbWFrZSBhIGxvdCBvZiBtb25leSBhbmQgdG8gZmluYWxseSBiZWNvbWUgYSBiYWkgKEthemFraCBmb3IgYSB2ZXJ5IHJpY2ggcGVyc29uKS48XC9wPlxyXG5cclxuPHA+TGV0IHVzIG51bWJlciB0aGUgeWVhcnMgZnJvbSAwIHRvIE4tMSBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIChpLmUuLCB5ZWFyIE4tMSBpcyB0aGUgbW9zdCByZWNlbnQgb25lKS4gVGhlIHdlYXRoZXIgb2YgZWFjaCB5ZWFyIGluZmx1ZW5jZWQgdGhlIGdyb3d0aCBvZiB0aGUgaGVyZC4gRm9yIGVhY2ggeWVhciBpLCBNYW5zdXIgcmVtZW1iZXJzIGEgcG9zaXRpdmUgaW50ZWdlciBncm93dGggY29lZmZpY2llbnQgWFtpXS4gSWYgeW91IHN0YXJ0ZWQgeWVhciBpIHdpdGggaCBob3JzZXMsIHlvdSBlbmRlZCB0aGUgeWVhciB3aXRoIGgmdGltZXM7WFtpXSBob3JzZXMgaW4geW91ciBoZXJkLjxcL3A+XHJcblxyXG48cD5Ib3JzZXMgY291bGQgb25seSBiZSBzb2xkIGF0IHRoZSBlbmQgb2YgYSB5ZWFyLiBGb3IgZWFjaCB5ZWFyIGksIE1hbnN1ciByZW1lbWJlcnMgYSBwb3NpdGl2ZSBpbnRlZ2VyIFlbaV06IHRoZSBwcmljZSBmb3Igd2hpY2ggaGUgY291bGQgc2VsbCBhIGhvcnNlIGF0IHRoZSBlbmQgb2YgeWVhciBpLiBBZnRlciBlYWNoIHllYXIsIGl0IHdhcyBwb3NzaWJsZSB0byBzZWxsIGFyYml0cmFyaWx5IG1hbnkgaG9yc2VzLCBlYWNoIGF0IHRoZSBzYW1lIHByaWNlIFlbaV0uPFwvcD5cclxuXHJcbjxwPk1hbnN1ciB3b25kZXJzIHdoYXQgaXMgdGhlIGxhcmdlc3QgYW1vdW50IG9mIG1vbmV5IGhlIGNvdWxkIGhhdmUgbm93IGlmIGhlIGhhZCBjaG9zZW4gdGhlIGJlc3QgbW9tZW50cyB0byBzZWxsIGhpcyBob3JzZXMgZHVyaW5nIHRoZSBOIHllYXJzLiBZb3UgaGF2ZSB0aGUgaG9ub3Igb2YgYmVpbmcgYSBndWVzdCBvbiBNYW5zdXImcnNxdW87cyB0b2kgKEthemFraCBmb3IgaG9saWRheSksIGFuZCBoZSBhc2tlZCB5b3UgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24uPFwvcD5cclxuXHJcbjxwPk1hbnN1ciZyc3F1bztzIG1lbW9yeSBpbXByb3ZlcyB0aHJvdWdob3V0IHRoZSBldmVuaW5nLCBhbmQgc28gaGUgbWFrZXMgYSBzZXF1ZW5jZSBvZiBNIHVwZGF0ZXMuIEVhY2ggdXBkYXRlIHdpbGwgY2hhbmdlIGVpdGhlciBvbmUgb2YgdGhlIHZhbHVlcyBYW2ldIG9yIG9uZSBvZiB0aGUgdmFsdWVzIFlbaV0uIEFmdGVyIGVhY2ggdXBkYXRlIGhlIGFnYWluIGFza3MgeW91IHRoZSBsYXJnZXN0IGFtb3VudCBvZiBtb25leSBoZSBjb3VsZCBoYXZlIGVhcm5lZCBieSBzZWxsaW5nIGhpcyBob3JzZXMuIE1hbnN1ciZyc3F1bztzIHVwZGF0ZXMgYXJlIGN1bXVsYXRpdmU6IGVhY2ggb2YgeW91ciBhbnN3ZXJzIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCBhbGwgb2YgdGhlIHByZXZpb3VzIHVwZGF0ZXMuIE5vdGUgdGhhdCBhIHNpbmdsZSBYW2ldIG9yIFlbaV0gbWF5IGJlIHVwZGF0ZWQgbXVsdGlwbGUgdGltZXMuPFwvcD5cclxuXHJcbjxwPlRoZSBhY3R1YWwgYW5zd2VycyB0byBNYW5zdXImcnNxdW87cyBxdWVzdGlvbnMgY2FuIGJlIGh1Z2UuIEluIG9yZGVyIHRvIGF2b2lkIHdvcmtpbmcgd2l0aCBsYXJnZSBudW1iZXJzLCB5b3UgYXJlIG9ubHkgcmVxdWlyZWQgdG8gcmVwb3J0IHRoZSBhbnN3ZXJzIG1vZHVsbyAxMDxzdXA+OTxcL3N1cD4rNy48XC9wPlxyXG5cclxuPHA+U3VwcG9zZSB0aGF0IHRoZXJlIGFyZSBOID0gMyB5ZWFycywgd2l0aCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6MjAlXCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+Jm5ic3A7PFwvdGg+XHJcblx0XHRcdDx0aD4wPFwvdGg+XHJcblx0XHRcdDx0aD4xPFwvdGg+XHJcblx0XHRcdDx0aD4yPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5YPFwvdGg+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlk8XC90aD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPkZvciB0aGVzZSBpbml0aWFsIHZhbHVlcywgTWFuc3VyIGNhbiBlYXJuIHRoZSBtb3N0IGlmIGhlIHNlbGxzIGJvdGggaGlzIGhvcnNlcyBhdCB0aGUgZW5kIG9mIHllYXIgMS4gVGhlIGVudGlyZSBwcm9jZXNzIHdpbGwgbG9vayBhcyBmb2xsb3dzOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkluaXRpYWxseSwgTWFuc3VyIGhhcyAxIGhvcnNlLjxcL2xpPlxyXG5cdDxsaT5BZnRlciB5ZWFyIDAgaGUgd2lsbCBoYXZlIDEmdGltZXM7WFswXSA9IDIgaG9yc2VzLjxcL2xpPlxyXG5cdDxsaT5BZnRlciB5ZWFyIDEgaGUgd2lsbCBoYXZlIDImdGltZXM7WFsxXSA9IDJob3JzZXMuPFwvbGk+XHJcblx0PGxpPkhlIGNhbiBub3cgc2VsbCB0aG9zZSB0d28gaG9yc2VzLiBUaGUgdG90YWwgcHJvZml0IHdpbGwgYmUgMiZ0aW1lcztZWzFdID0gOC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5UaGVuLCBzdXBwb3NlIHRoYXQgdGhlcmUgaXMgTSA9IDEgdXBkYXRlOiBjaGFuZ2luZyBZWzFdIHRvIDIuPFwvcD5cclxuXHJcbjxwPkFmdGVyIHRoZSB1cGRhdGUgd2Ugd2lsbCBoYXZlOjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6MjAlXCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+Jm5ic3A7PFwvdGg+XHJcblx0XHRcdDx0aD4wPFwvdGg+XHJcblx0XHRcdDx0aD4xPFwvdGg+XHJcblx0XHRcdDx0aD4yPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5YPFwvdGg+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlk8XC90aD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPkluIHRoaXMgY2FzZSwgb25lIG9mIHRoZSBvcHRpbWFsc29sdXRpb25zIGlzIHRvIHNlbGwgb25lIGhvcnNlIGFmdGVyIHllYXIgMCBhbmQgdGhlbiB0aHJlZSBob3JzZXMgYWZ0ZXIgeWVhciAyLiBUaGUgZW50aXJlIHByb2Nlc3Mgd2lsbCBsb29rIGFzIGZvbGxvd3M6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SW5pdGlhbGx5LCBNYW5zdXIgaGFzIDEgaG9yc2UuPFwvbGk+XHJcblx0PGxpPkFmdGVyIHllYXIgMCBoZSB3aWxsIGhhdmUgMSZ0aW1lcztYWzBdID0gMiBob3JzZXMuPFwvbGk+XHJcblx0PGxpPkhlIGNhbiBub3cgc2VsbCBvbmUgb2YgdGhvc2UgaG9yc2VzIGZvciBZWzBdID0gMywgYW5kIGhhdmUgb25lIGhvcnNlIGxlZnQuPFwvbGk+XHJcblx0PGxpPkFmdGVyIHllYXIgMSBoZSB3aWxsIGhhdmUgMSZ0aW1lcztYWzFdID0gMSBob3JzZS48XC9saT5cclxuXHQ8bGk+QWZ0ZXIgeWVhciAyIGhlIHdpbGwgaGF2ZSAxJnRpbWVzO1hbMl0gPSAzIGhvcnNlcy48XC9saT5cclxuXHQ8bGk+SGUgY2FuIG5vdyBzZWxsIHRob3NlIHRocmVlIGhvcnNlcyBmb3IgMyZ0aW1lcztZWzJdID0gMy4gVGhlIHRvdGFsIGFtb3VudCBvZiBtb25leSBpcyAzICsgMyA9IDYuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+WW91IGFyZSBnaXZlbiBOLCBYLCBZLCBhbmQgdGhlIGxpc3Qgb2YgdXBkYXRlcy4gQmVmb3JlIHRoZSBmaXJzdCB1cGRhdGUsIGFuZCBhZnRlciBldmVyeSB1cGRhdGUsIGNvbXB1dGUgdGhlIG1heGltYWwgYW1vdW50IG9mIG1vbmV5IHRoYXQgTWFuc3VyIGNvdWxkIGdldCBmb3IgaGlzIGhvcnNlcywgbW9kdWxvIDEwPHN1cD45PFwvc3VwPis3LiBZb3UgbmVlZCB0byBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9ucyBpbml0LCB1cGRhdGVYLCBhbmQgdXBkYXRlWS48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5pbml0KE4sIFgsIFkpICZtZGFzaDsgVGhlIGdyYWRlciB3aWxsIGNhbGwgdGhpcyBmdW5jdGlvbiBmaXJzdCBhbmQgZXhhY3RseSBvbmNlLlxyXG5cdDx1bD5cclxuXHRcdDxsaT5OOiB0aGUgbnVtYmVyIG9mIHllYXJzLjxcL2xpPlxyXG5cdFx0PGxpPlg6IGFuIGFycmF5IG9mIGxlbmd0aCBOLiBGb3IgMCAmbGU7IGkgJmxlOyBOLTEsIFhbaV0gZ2l2ZXMgdGhlIGdyb3d0aCBjb2VmZmljaWVudCBmb3IgeWVhciBpLjxcL2xpPlxyXG5cdFx0PGxpPlk6IGFuIGFycmF5IG9mIGxlbmd0aCBOLiBGb3IgMCAmbGU7IGkgJmxlOyBOLTEsIFlbaV0gZ2l2ZXMgdGhlIHByaWNlIG9mIGEgaG9yc2UgYWZ0ZXIgeWVhciBpLjxcL2xpPlxyXG5cdFx0PGxpPk5vdGUgdGhhdCBib3RoIFggYW5kIFkgc3BlY2lmeSB0aGUgaW5pdGlhbCB2YWx1ZXMgZ2l2ZW4gYnkgTWFuc3VyIChiZWZvcmUgYW55IHVwZGF0ZXMpLjxcL2xpPlxyXG5cdFx0PGxpPkFmdGVyIGluaXQgdGVybWluYXRlcywgdGhlIGFycmF5cyBYIGFuZCBZIHJlbWFpbiB2YWxpZCwgYW5kIHlvdSBtYXkgbW9kaWZ5IHRoZWlyIGNvbnRlbnRzIGlmIHlvdSB3aXNoLjxcL2xpPlxyXG5cdFx0PGxpPlRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBtYXhpbWFsIGFtb3VudCBvZiBtb25leSBNYW5zdXIgY291bGQgZ2V0IGZvciB0aGVzZSBpbml0aWFsIHZhbHVlcyBvZiBYIGFuZCBZLCBtb2R1bG8gMTA8c3VwPjk8XC9zdXA+KzcuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPnVwZGF0ZVgocG9zLCB2YWwpXHJcblx0PHVsPlxyXG5cdFx0PGxpPnBvczogYW4gaW50ZWdlciBmcm9tIHRoZSByYW5nZSAwLCAuLi4sIE4tMS48XC9saT5cclxuXHRcdDxsaT52YWw6IHRoZSBuZXcgdmFsdWUgZm9yIFhbcG9zXS48XC9saT5cclxuXHRcdDxsaT5UaGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0aGUgbWF4aW1hbCBhbW91bnQgb2YgbW9uZXkgTWFuc3VyIGNvdWxkIGdldCBhZnRlciB0aGlzIHVwZGF0ZSwgbW9kdWxvIDEwPHN1cD45PFwvc3VwPis3LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT51cGRhdGVZKHBvcywgdmFsKVxyXG5cdDx1bD5cclxuXHRcdDxsaT5wb3M6IGFuIGludGVnZXIgZnJvbSB0aGUgcmFuZ2UgMCwgLi4uLCBOLTEuPFwvbGk+XHJcblx0XHQ8bGk+dmFsOiB0aGUgbmV3IHZhbHVlIGZvciBZW3Bvc10uPFwvbGk+XHJcblx0XHQ8bGk+VGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIG1heGltYWwgYW1vdW50IG9mIG1vbmV5IE1hbnN1ciBjb3VsZCBnZXQgYWZ0ZXIgdGhpcyB1cGRhdGUsIG1vZHVsbyAxMDxzdXA+OTxcL3N1cD4rNy48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Zb3UgbWF5IGFzc3VtZSB0aGF0IGFsbCB0aGUgaW5pdGlhbCwgYXMgd2VsbCBhcyB1cGRhdGVkIHZhbHVlcyBvZiBYW2ldIGFuZCBZW2ldIGFyZSBiZXR3ZWVuIDEgYW5kIDEwPHN1cD45PFwvc3VwPiBpbmNsdXNpdmUuPFwvcD5cclxuXHJcbjxwPkFmdGVyIGNhbGxpbmcgaW5pdCwgdGhlIGdyYWRlciB3aWxsIGNhbGwgdXBkYXRlWCBhbmQgdXBkYXRlWSBzZXZlcmFsIHRpbWVzLiBUaGUgdG90YWwgbnVtYmVyIG9mIGNhbGxzIHRvIHVwZGF0ZVggYW5kIHVwZGF0ZVkgd2lsbCBiZSBNLjxcL3A+XHJcbiIsImlucHV0IjoiPHVsPlxyXG5cdDxsaT5saW5lIDE6IE48XC9saT5cclxuXHQ8bGk+bGluZSAyOiBYWzBdICZoZWxsaXA7IFhbTiAtIDFdPFwvbGk+XHJcblx0PGxpPmxpbmUgMzogWVswXSAmaGVsbGlwOyBZW04gLSAxXTxcL2xpPlxyXG5cdDxsaT5saW5lIDQ6IE08XC9saT5cclxuXHQ8bGk+bGluZXMgNSwgJmhlbGxpcDssIE0gKyA0OiB0aHJlZSBudW1iZXJzIHR5cGUgcG9zIHZhbCAodHlwZT0xIGZvciB1cGRhdGVYIGFuZCB0eXBlPTIgZm9yIHVwZGF0ZVkpLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPjEgJmxlOyBOICZsZTsgNTAwLDAwMCwgMCAmbGU7IE0gJmxlOyAxMDAsMDAwPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+UHJpbnRzIHRoZSByZXR1cm4gdmFsdWUgb2YgaW5pdCBmb2xsb3dlZCBieSB0aGUgcmV0dXJuIHZhbHVlcyBvZiBhbGwgY2FsbHMgdG8gdXBkYXRlWCBhbmQgdXBkYXRlWS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=