시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB161442936.250%

문제

유명한 영웅 백준은 퀘스트를 받아 혼자 모험을 하는 중에 미로를 발견하였다. 미로 주변으로 길이 없으므로 백준은 반드시 미로를 통과해야 한다.

백준은 이 미로를 잘 모르기 때문에 길이 나누어지면 그 중 무작위로 길을 택해 그쪽으로 이동할 것이다. 또한 백준은 완벽한 기억력을 가졌기 때문에 같은 길을 두 번 들어서는 일은 없고 더 이상 길이 없을 거라고 확신했을 때만 왔던 길을 돌아갈 것이다. 즉, 왔던 길을 돌아가기 전까지 안 가본 길은 다 둘러볼 것이다.

백준의 동료인 당신은 백준이 떠나고 뒤늦게 미로의 정보를 가지고 있는 지도를 발견하고는 백준이 미로를 탈출하는데 얼마나 걸릴지 궁금해서 걸음의 기댓값을 구하고자 한다. 당신은 미로를 잘 살펴본 결과 미로는 같은 지점으로 돌아오는 사이클이 없고 2×2 이상의 공간이 없다는 것을 알았다. 미로에는 입구와 출구가 각각 하나만 있고 길 옆에 출구가 있더라도 길이 나누어져 있다고 가정한다.

아래의 간단한 지도의 예를 보자.

##s###
#....#
#t####

입구는 "s"로 표시되어 있고 출구는 "t"로 표시되어 있다. 

입구에서 남쪽으로 1칸 이동했을 때 길이 갈라지는데 여기서 서쪽을 선택하고 2칸 이동하면 출구를 찾을 수 있다. 반면 동쪽을 선택했을 시 4칸 이동하여 다시 돌아오고 남은길이 서쪽밖에 없으므로 서쪽으로 2칸 이동하면 출구를 찾을 수 있다.

따라서 백준이 입구에서 출구까지 나가는데 걸음의 기댓값은 \( 1 + \frac{1}{2} \cdot (4 + 2) + \frac{1}{2} \cdot 2 = 5 \) 이다.

입력

  • 첫째 줄에는 테스트 케이스의 개수 n (0 < n ≤ 100) 이 주어진다.
  • 각 테스트 케이스에 대해서
    • 첫째 줄에는 미로의 크기를 나타내는 두 정수 3 ≤ h, w ≤ 96 가 주어진다. 
    • 다음 줄부터 h번에 걸쳐 문자가 w개 주어진다.
      • #은 벽이다.
      • s와 t는 각각 입구와 출구다.
      • .은 길이다.
    • 미로의 경계는 입구와 출구를 제외하고 전부 벽이다.
    • 입구와 출구는 항상 미로의 경계에 있다.

출력

i번째 테스트 케이스에 대해 i번째 줄에 걸음의 기댓값을 반올림하여 둘째 자리까지 출력한다.

예제 입력 1

1
3 6
##s###
#....#
#t####

예제 출력 1

5.00
W3sicHJvYmxlbV9pZCI6IjIwNDciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJiZjhcdWI4NWMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzcyMFx1YmE4NVx1ZDU1YyBcdWM2MDFcdWM2YzUgXHViYzMxXHVjOTAwXHVjNzQwIFx1ZDAxOFx1YzJhNFx1ZDJiOFx1Yjk3YyBcdWJjMWJcdWM1NDQgXHVkNjNjXHVjNzkwIFx1YmFhOFx1ZDVkOFx1Yzc0NCBcdWQ1NThcdWIyOTQgXHVjOTExXHVjNWQwJm5ic3A7XHViYmY4XHViODVjXHViOTdjIFx1YmMxY1x1YWNhY1x1ZDU1OFx1YzYwMFx1YjJlNC4gXHViYmY4XHViODVjIFx1YzhmY1x1YmNjMFx1YzczY1x1Yjg1YyBcdWFlMzhcdWM3NzQgXHVjNWM2XHVjNzNjXHViYmMwXHViODVjJm5ic3A7XHViYzMxXHVjOTAwXHVjNzQwIFx1YmMxOFx1YjRkY1x1YzJkYyBcdWJiZjhcdWI4NWNcdWI5N2MgXHVkMWI1XHVhY2ZjXHVkNTc0XHVjNTdjJm5ic3A7XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJjMzFcdWM5MDBcdWM3NDAgXHVjNzc0IFx1YmJmOFx1Yjg1Y1x1Yjk3YyBcdWM3OTggXHViYWE4XHViOTc0XHVhZTMwJm5ic3A7XHViNTRjXHViYjM4XHVjNWQwIFx1YWUzOFx1Yzc3NCBcdWIwOThcdWIyMDRcdWM1YjRcdWM5YzBcdWJhNzQmbmJzcDtcdWFkZjggXHVjOTExIFx1YmIzNFx1Yzc5MVx1YzcwNFx1Yjg1YyBcdWFlMzhcdWM3NDQgXHVkMGRkXHVkNTc0IFx1YWRmOFx1Y2FiZFx1YzczY1x1Yjg1YyBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVhYzgzXHVjNzc0XHViMmU0LiBcdWI2MTBcdWQ1NWMgXHViYzMxXHVjOTAwXHVjNzQwIFx1YzY0NFx1YmNiZFx1ZDU1YyBcdWFlMzBcdWM1YjVcdWI4MjVcdWM3NDQgXHVhYzAwXHVjODRjXHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFjMTlcdWM3NDAgXHVhZTM4XHVjNzQ0IFx1YjQ1MCZuYnNwO1x1YmM4OCBcdWI0ZTRcdWM1YjRcdWMxMWNcdWIyOTQgXHVjNzdjXHVjNzQwIFx1YzVjNlx1YWNlMCBcdWIzNTQgXHVjNzc0XHVjMGMxJm5ic3A7XHVhZTM4XHVjNzc0IFx1YzVjNlx1Yzc0NCBcdWFjNzBcdWI3N2NcdWFjZTAgXHVkNjU1XHVjMmUwXHVkNTg4XHVjNzQ0IFx1YjU0Y1x1YjljYyBcdWM2NTRcdWIzNTggXHVhZTM4XHVjNzQ0IFx1YjNjY1x1YzU0NFx1YWMwOCBcdWFjODNcdWM3NzRcdWIyZTQuJm5ic3A7XHVjOTg5LCBcdWM2NTRcdWIzNTggXHVhZTM4XHVjNzQ0Jm5ic3A7XHViM2NjXHVjNTQ0XHVhYzAwXHVhZTMwIFx1YzgwNFx1YWU0Y1x1YzljMCBcdWM1NDggXHVhYzAwXHViY2Y4Jm5ic3A7XHVhZTM4XHVjNzQwIFx1YjJlNCBcdWI0NThcdWI3ZWNcdWJjZmMmbmJzcDtcdWFjODNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmMzMVx1YzkwMFx1Yzc1OCBcdWIzZDlcdWI4Y2NcdWM3NzggXHViMmY5XHVjMmUwXHVjNzQwIFx1YmMzMVx1YzkwMFx1Yzc3NCBcdWI1YTBcdWIwOThcdWFjZTAmbmJzcDtcdWI0YTRcdWIyYTZcdWFjOGMgXHViYmY4XHViODVjXHVjNzU4IFx1YzgxNVx1YmNmNFx1Yjk3YyBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHViMjk0IFx1YzljMFx1YjNjNFx1Yjk3YyBcdWJjMWNcdWFjYWNcdWQ1NThcdWFjZTBcdWIyOTQmbmJzcDtcdWJjMzFcdWM5MDBcdWM3NzQgXHViYmY4XHViODVjXHViOTdjIFx1ZDBjOFx1Y2Q5Y1x1ZDU1OFx1YjI5NFx1YjM3MCBcdWM1YmNcdWI5YzhcdWIwOTggXHVhYzc4XHViOWI0XHVjOWMwJm5ic3A7XHVhZDgxXHVhZTA4XHVkNTc0XHVjMTFjIFx1YWM3OFx1Yzc0Y1x1Yzc1OCBcdWFlMzBcdWIzMTNcdWFjMTJcdWM3NDQgXHVhZDZjXHVkNTU4XHVhY2UwXHVjNzkwJm5ic3A7XHVkNTVjXHViMmU0LiZuYnNwO1x1YjJmOVx1YzJlMFx1Yzc0MCBcdWJiZjhcdWI4NWNcdWI5N2MgXHVjNzk4IFx1YzBiNFx1ZDNiNFx1YmNmOCBcdWFjYjBcdWFjZmMgXHViYmY4XHViODVjXHViMjk0IFx1YWMxOVx1Yzc0MCBcdWM5YzBcdWM4MTBcdWM3M2NcdWI4NWMgXHViM2NjXHVjNTQ0XHVjNjI0XHViMjk0IFx1YzBhY1x1Yzc3NFx1ZDA3NFx1Yzc3NCBcdWM1YzZcdWFjZTAgMiZ0aW1lczsyIFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWFjZjVcdWFjMDRcdWM3NzQgXHVjNWM2XHViMmU0XHViMjk0IFx1YWM4M1x1Yzc0NCBcdWM1NGNcdWM1NThcdWIyZTQuIFx1YmJmOFx1Yjg1Y1x1YzVkMFx1YjI5NCZuYnNwO1x1Yzc4NVx1YWQ2Y1x1YzY0MCBcdWNkOWNcdWFkNmNcdWFjMDAgXHVhYzAxXHVhYzAxIFx1ZDU1OFx1YjA5OFx1YjljYyBcdWM3ODhcdWFjZTAgXHVhZTM4Jm5ic3A7XHVjNjA2XHVjNWQwIFx1Y2Q5Y1x1YWQ2Y1x1YWMwMCBcdWM3ODhcdWIzNTRcdWI3N2NcdWIzYzQgXHVhZTM4XHVjNzc0IFx1YjA5OFx1YjIwNFx1YzViNFx1YzgzOCZuYnNwO1x1Yzc4OFx1YjJlNFx1YWNlMCZuYnNwO1x1YWMwMFx1YzgxNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNTQ0XHViNzk4XHVjNzU4Jm5ic3A7XHVhYzA0XHViMmU4XHVkNTVjIFx1YzljMFx1YjNjNFx1Yzc1OCBcdWM2MDhcdWI5N2MgXHViY2Y0XHVjNzkwLjxcL3A+XHJcblxyXG48cHJlPlxyXG4jI3MjIyNcclxuIy4uLi4jXHJcbiN0IyMjIzxcL3ByZT5cclxuXHJcbjxwPlx1Yzc4NVx1YWQ2Y1x1YjI5NCZuYnNwOyZxdW90O3MmcXVvdDtcdWI4NWMgXHVkNDVjXHVjMmRjXHViNDE4XHVjNWI0IFx1Yzc4OFx1YWNlMCBcdWNkOWNcdWFkNmNcdWIyOTQmbmJzcDsmcXVvdDt0JnF1b3Q7XHViODVjIFx1ZDQ1Y1x1YzJkY1x1YjQxOFx1YzViNCBcdWM3ODhcdWIyZTQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlx1Yzc4NVx1YWQ2Y1x1YzVkMFx1YzExYyZuYnNwO1x1YjBhOFx1Y2FiZFx1YzczY1x1Yjg1YyAxXHVjZTc4IFx1Yzc3NFx1YjNkOVx1ZDU4OFx1Yzc0NCBcdWI1NGMgXHVhZTM4XHVjNzc0IFx1YWMwOFx1Yjc3Y1x1YzljMFx1YjI5NFx1YjM3MCZuYnNwO1x1YzVlY1x1YWUzMFx1YzExYyBcdWMxMWNcdWNhYmRcdWM3NDQgXHVjMTIwXHVkMGRkXHVkNTU4XHVhY2UwIDJcdWNlNzggXHVjNzc0XHViM2Q5XHVkNTU4XHViYTc0IFx1Y2Q5Y1x1YWQ2Y1x1Yjk3YyBcdWNjM2VcdWM3NDQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViYzE4XHViYTc0Jm5ic3A7XHViM2Q5XHVjYWJkXHVjNzQ0IFx1YzEyMFx1ZDBkZFx1ZDU4OFx1Yzc0NCBcdWMyZGMgNFx1Y2U3OCBcdWM3NzRcdWIzZDlcdWQ1NThcdWM1ZWMmbmJzcDtcdWIyZTRcdWMyZGMmbmJzcDtcdWIzY2NcdWM1NDRcdWM2MjRcdWFjZTAgXHViMGE4XHVjNzQwXHVhZTM4XHVjNzc0IFx1YzExY1x1Y2FiZFx1YmMxNlx1YzVkMCBcdWM1YzZcdWM3M2NcdWJiYzBcdWI4NWMmbmJzcDtcdWMxMWNcdWNhYmRcdWM3M2NcdWI4NWMmbmJzcDsyXHVjZTc4IFx1Yzc3NFx1YjNkOVx1ZDU1OFx1YmE3NCBcdWNkOWNcdWFkNmNcdWI5N2MgXHVjYzNlXHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjUzMFx1Yjc3Y1x1YzExYyBcdWJjMzFcdWM5MDBcdWM3NzQgXHVjNzg1XHVhZDZjXHVjNWQwXHVjMTFjJm5ic3A7XHVjZDljXHVhZDZjXHVhZTRjXHVjOWMwIFx1YjA5OFx1YWMwMFx1YjI5NFx1YjM3MCBcdWFjNzhcdWM3NGNcdWM3NTggXHVhZTMwXHViMzEzXHVhYzEyXHVjNzQwIDxzcGFuIHN0eWxlPVwibGluZS1oZWlnaHQ6MS42ZW1cIj5cXCgmbmJzcDsxICsgXFxmcmFjezF9ezJ9IFxcY2RvdCZuYnNwOyg0ICsgMikgKyBcXGZyYWN7MX17Mn0mbmJzcDtcXGNkb3QmbmJzcDsyJm5ic3A7PSA1IFxcKSZuYnNwO1x1Yzc3NFx1YjJlNC48XC9zcGFuPjxcL3A+XHJcbiIsImlucHV0IjoiPHVsPlxyXG5cdDxsaT5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVhYzFjXHVjMjE4IG4gKDAgJmx0OyBuICZsZTsgMTAwKSBcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWNcclxuXHQ8dWw+XHJcblx0XHQ8bGk+XHVjY2FiXHVjOWY4Jm5ic3A7XHVjOTA0XHVjNWQwXHViMjk0IFx1YmJmOFx1Yjg1Y1x1Yzc1OCBcdWQwNmNcdWFlMzBcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IFx1YjQ1MCBcdWM4MTVcdWMyMTggMyAmbGU7Jm5ic3A7aCwgdyAmbGU7Jm5ic3A7OTYmbmJzcDtcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiZuYnNwOzxcL2xpPlxyXG5cdFx0PGxpPlx1YjJlNFx1Yzc0YyZuYnNwO1x1YzkwNFx1YmQ4MFx1ZDEzMCBoXHViYzg4XHVjNWQwIFx1YWM3OFx1Y2NkMCBcdWJiMzhcdWM3OTBcdWFjMDAgd1x1YWMxYyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuXHJcblx0XHQ8dWw+XHJcblx0XHRcdDxsaT4jXHVjNzQwJm5ic3A7XHViY2JkXHVjNzc0XHViMmU0LjxcL2xpPlxyXG5cdFx0XHQ8bGk+c1x1YzY0MCB0XHViMjk0IFx1YWMwMVx1YWMwMSBcdWM3ODVcdWFkNmNcdWM2NDAgXHVjZDljXHVhZDZjXHViMmU0LjxcL2xpPlxyXG5cdFx0XHQ8bGk+Llx1Yzc0MCBcdWFlMzhcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0XHQ8XC91bD5cclxuXHRcdDxcL2xpPlxyXG5cdFx0PGxpPlx1YmJmOFx1Yjg1Y1x1Yzc1OCBcdWFjYmRcdWFjYzRcdWIyOTQgXHVjNzg1XHVhZDZjXHVjNjQwIFx1Y2Q5Y1x1YWQ2Y1x1Yjk3YyBcdWM4MWNcdWM2NzhcdWQ1NThcdWFjZTAgXHVjODA0XHViZDgwIFx1YmNiZFx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHRcdDxsaT5cdWM3ODVcdWFkNmNcdWM2NDAgXHVjZDljXHVhZDZjXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWJiZjhcdWI4NWNcdWM3NTggXHVhY2JkXHVhY2M0XHVjNWQwIFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcbiIsIm91dHB1dCI6IjxwPmlcdWJjODhcdWM5ZjggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzQgaVx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjNzRjXHVjNzU4IFx1YWUzMFx1YjMxM1x1YWMxMlx1Yzc0NCBcdWJjMThcdWM2MmNcdWI5YmNcdWQ1NThcdWM1ZWMgXHViNDU4XHVjOWY4Jm5ic3A7XHVjNzkwXHViOWFjXHVhZTRjXHVjOWMwIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIyMDQ3IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiTGFieXJpbnRoIiwiZGVzY3JpcHRpb24iOiI8cD5BIHdlbGwta25vd24gaGVybywgbGV0JiMzOTtzIHNheSBoaXMgbmFtZSBpcyBDb25hbiwgaXMgb24gYSBxdWVzdC4gT24gaGlzIHdheSB0byBxdWVzdCBjb21wbGV0aW9uLCBDb25hbiBmaW5kcyBoaW1zZWxmIGF0IHRoZSBlbnRyYW5jZSBvZiBhIGxhYnlyaW50aC4gVGhlcmUgaXMgbm8gd2F5IGFyb3VuZCB0aGUgbGFieXJpbnRoLCBzbyBDb25hbiB3aWxsIGhhdmUgdG8gZW50ZXIgYW5kIFx1MDAxY2ZpbmQgdGhlIGV4aXQgYXQgdGhlIG90aGVyIHNpZGUuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkJlY2F1c2UgQ29uYW4ga25vd3MgdmVyeSBsaXR0bGUgYWJvdXQgdGhlIGxhYnlyaW50aCBoZSBpcyBhYm91dCB0byBlbnRlciBhbmQgYWxzbyBsYWNrcyBwc3ljaGljIGFiaWxpdGllcywgYXQgZXZlcnkgaW50ZXJzZWN0aW9uIGhlIHJhbmRvbWx5IGNob29zZXMgaG93IHRvIGNvbnRpbnVlIG9uIGhpcyBzZWFyY2ggZm9yIHRoZSBleGl0LiBDb25hbiBkb2VzIGhhdmUgYSBwZXJmZWN0IG1lbW9yeSBhbmQgd2lsbCBtYWtlIHN1cmUgdGhhdCBoZSB3aWxsIG5ldmVyIGVudGVyIGEgcGF0aCBpbiB0aGUgc2FtZSBkaXJlY3Rpb24gdHdpY2UuIE1vcmVvdmVyLCBoZSBvbmx5IGdvZXMgYmFjayBvbiBhIHBhdGggd2hlcmUgaGUgY2FtZSBmcm9tIHdoZW4gaGUgaXMgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhpcyB3aWxsIHRha2UgaGltIGNsb3NlciB0byB0aGUgZXhpdC4gU28sIHdoZW5ldmVyIGhlJiMzOTtzIGV4cGxvcmluZyBhIHBhdGgsIGhlIHdpbGwgZXhwbG9yZSB0aGF0IHBhdGggYXMgZmFyIGFzIGhlIGNhbiwgYmVmb3JlIGdvaW5nIGJhY2suPFwvcD5cclxuXHJcbjxwPllvdXIgdGFzayBpcyB0byB3cml0ZSBhIHByb2dyYW0gdGhhdCwgZ2l2ZW4gYSBtYXAgb2YgdGhlIGxhYnlyaW50aCwgZGV0ZXJtaW5lcyB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHN0ZXBzIENvbmFuIHdpbGwgdGFrZSB0aHJvdWdoIHRoZSBsYWJ5cmludGguIFRoZSBleGl0IG9mIHRoZSBsYWJ5cmludGggaXMgYWx3YXlzIHJlYWNoYWJsZSBmcm9tIHRoZSBlbnRyYW5jZS4gVGhlcmUgd2lsbCBiZSBubyBjeWNsZXMgb3IgZW1wdHkgcm9vbXMgKG9mIGRpbWVuc2lvbiAyJnRpbWVzOzIgb3IgYWJvdmUpIGluIHRoZSBsYWJ5cmludGguIEEgcGFzc2FnZSBuZXh0IHRvIHRoZSBleGl0IG1heSBzdGlsbCBiZSBjb25zaWRlcmVkIGFuIGludGVyc2VjdGlvbi48XC9wPlxyXG5cclxuPHByZT5cclxuIyNzIyMjXHJcbiMuLi4uI1xyXG4jdCMjIyM8XC9wcmU+XHJcblxyXG48cD5Db25hbiBlbnRlcnMgdGhlIGxhYnlyaW50aCBvbiB0aGUgcG9zaXRpb24gbWFya2VkICZxdW90O3MmcXVvdDsuIFRoZSBleGl0IG9mIHRoZSBsYWJ5cmludGggaXMgbWFya2VkICZxdW90O3QmcXVvdDsuIFRoZXJlIHdpbGwgYmUgZXhhY3RseSBvbmUgZW50cmFuY2UgYW5kIGV4YWN0bHkgb25lIGV4aXQuPFwvcD5cclxuXHJcbjxwPkluIHRoZSBhYm92ZSBleGFtcGxlLCBDb25hbiB3aWxsIGRvIG9uZSBzdGVwIHRvIHRoZSBzb3V0aC4gTm93IGhlIGhhcyB0byBkZWNpZGUgd2hldGhlciB0byBjb250aW51ZSBlYXN0d2FyZCBvciB0byB0aGUgd2VzdC4gSWYgaGUgZ29lcyB0byB0aGUgZWFzdCwgaGUgd2lsbCByZXR1cm4gYWZ0ZXIgZm91ciBzdGVwcyB0byBoaXMgcG9zaXRpb24uIElmIGhlIGdvZXMgdG8gdGhlIHdlc3QsIGhlIHdpbGwgZXhpdCB0aGUgbGFieXJpbnRoIGluIHR3byBzdGVwcy48XC9wPlxyXG5cclxuPHA+VGhlIGV4cGVjdGVkIG51bWJlciBvZiBzdGVwcyBpczo8XC9wPlxyXG5cclxuPHA+XFwoIDErXFxmcmFjezF9ezJ9XFxjZG90KDQrMikrXFxmcmFjezF9ezJ9XFxjZG90Mj01Jm5ic3A7XFwpPFwvcD5cclxuIiwiaW5wdXQiOiI8dWw+XHJcblx0PGxpPlRoZSZuYnNwO2ZpcnN0IGxpbmUgb2YgaW5wdXQgY29uc2lzdHMgb2YgdGhlIGludGVnZXIgbnVtYmVyIG4gKDAgJmx0OyBuICZsZTsgMTAwKSwgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzOzxcL2xpPlxyXG5cdDxsaT5UaGVuLCBmb3IgZWFjaCB0ZXN0IGNhc2U6XHJcblx0PHVsPlxyXG5cdFx0PGxpPk9uZSBsaW5lIHdpdGggdHdvIHBvc2l0aXZlIGludGVnZXJzOiAzICZsZTsgaDt3ICZsZTsgOTYsIHRoZSBzaXplIG9mIHRoZSBsYWJ5cmludGg7PFwvbGk+XHJcblx0XHQ8bGk+aCBsaW5lcyB3aXRoIHcgY2hhcmFjdGVycyBlYWNoLCB3aXRoIHRoZSBmb2xsb3dpbmcgbWVhbmluZzpcclxuXHRcdDx1bD5cclxuXHRcdFx0PGxpPkEgY2hhcmFjdGVyICMgaXMgYSB3YWxsOzxcL2xpPlxyXG5cdFx0XHQ8bGk+VGhlIGNoYXJhY3RlcnMgcyBhbmQgdCBkZW5vdGUgdGhlIGVudHJhbmNlIGFuZCBleGl0IHJlc3BlY3RpdmVseTs8XC9saT5cclxuXHRcdFx0PGxpPkEgY2hhcmFjdGVyIC4gaXMgYSBwYXNzYWdlLjxcL2xpPlxyXG5cdFx0PFwvdWw+XHJcblx0XHQ8XC9saT5cclxuXHRcdDxsaT5UaGUgJnF1b3Q7Ym9yZGVyJnF1b3Q7IG9mIHRoZSBsYWJ5cmludGggd2lsbCBiZSBhIHdhbGwgKGFsbCBjaGFyYWN0ZXJzICMpLCBleGNlcHQgZm9yIHRoZSBlbnRyYW5jZSBhbmQgZXhpdCwgd2hpY2ggd2lsbCBhbHdheXMgYmUgb24gdGhpcyBib3JkZXIuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UsIHRoZSBvdXRwdXQgY29udGFpbnMgb25lIGxpbmUgd2l0aCBvbmUgbnVtYmVyOiB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHN0ZXBzIGZyb20gc3RhcnQgdG8gZXhpdCBvZiB0aGUgbGFieXJpbnRoLCByb3VuZGVkIHRvIGV4YWN0bHkgdHdvIGRlY2ltYWwgcGxhY2VzLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=