시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 6 2 1 100.000%

문제

농부 장길산은 자신의 밭을 감싸는 울타리를 관리하고 있다. 밭은 가로 세로 N미터인 정사각형 평지이다. (2<=N<=500000) 밭 경계의 한쪽 끝 좌표는 (0, 0)이며, 맞은편 끝 좌표는 (N, N)이다. 또한 경계는 x, y 축에 평행하다.

울타리를 나타내는 말뚝은 일단 밭의 네 모서리에 박혀 있고, 그 사이 네 변 구간에도 1미터 간격으로 박혀 있다. 따라서 말뚝은 총 4N개가 있다. 이 문제에서 말뚝은 땅 위로 솟아 있는 홀쭉한 선분이며 반지름, 즉 굵기가 없다고 가정한다. 길산은 밭 안 어느 위치에 서서 사방을 돌아볼 때, 거기서 밭의 끝 경계에 있는 말뚝을 몇 개까지 볼 수 있나 알고 싶어 한다.

그의 밭 안에는 R (1<=R<=30000)개의 커다란 바위가 있어서 그의 시야를 일부 가린다. 바위는 밑면과 윗면이 같은 볼록다각형으로 구성된 기둥이며, 높이가 충분히 높기 때문에 길산은 바위 너머로 있는 말뚝을 볼 수 없다. 바위들은 영역이 서로 겹치지 않으며, 꼭지점이나 선분이 접하지도 않는다. 한 바위가 다른 바위 안이나 위에 있지도 않다.
길산이 가진 밭(울타리)의 크기, 길산이 밭 안에 있는 위치, 그리고 각 바위들에 대한 정보가 들어왔을 때, 그가 그 위치에서 고개만 돌려서 볼 수 있는 울타리 말뚝의 총 개수를 계산하는 프로그램을 작성하시오. 바위를 구성하는 임의의 한 정점과 농부와 일직선을 이루는 말뚝은 농부에게 보이지 않는다.

입력

첫 줄에는 N과 R의 값이 순서대로 들어있다. 다음 줄에는 장길산의 x, y 위치가 순서대로 들어있다. 그리고 다음 줄에는 R개의 바위에 대한 정보가 순서대로 들어온다.
  바위에 대한 정보는 다각형을 기술하는 것과 같으므로, 가장 먼저 이 바위의 꼭지점 개수를 나타내는 p가 있다. (3<=p<=20) 그리고 다음 p 줄에는 다각형을 구성하는 x y 좌표가 순서대로 들어온다. 꼭지점의 좌표들은 모두 서로 값이 다르며 반시계 방향이다.
  아래 예제의 (70, 40), (75, 40), (80, 40)처럼, 정점 좌표가 일직선 상에 있는 경우도 있을 수 있다.

출력

길산이 그 위치에서 볼수 있는 말뚝의 개수를 한 줄에다 출력하면 된다. 아래의 예제를 살펴보면, 농부는 (60, 50) 위치에 있는데 (70, 40) 위치의 바위 꼭지점 때문에 (100, 10)부터. 또 (70, 60) 위치의 바위 꼭지점 때문에 (100, 90)까지, 경계에 있는 81개의 말뚝이보이지 않게 된다. 따라서 정답은 400에서 81을 뺀 319이다.

예제 입력 1

100 1
60 50
5
70 40
75 40
80 40
80 50
70 60

예제 출력 1

319

힌트

W3sicHJvYmxlbV9pZCI6IjIwMTciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM2YjhcdWQwYzBcdWI5YWMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YjE4ZFx1YmQ4MCBcdWM3YTVcdWFlMzhcdWMwYjBcdWM3NDAgXHVjNzkwXHVjMmUwXHVjNzU4IFx1YmMyZFx1Yzc0NCBcdWFjMTBcdWMyZjhcdWIyOTQgXHVjNmI4XHVkMGMwXHViOWFjXHViOTdjIFx1YWQwMFx1YjlhY1x1ZDU1OFx1YWNlMCBcdWM3ODhcdWIyZTQuIFx1YmMyZFx1Yzc0MCBcdWFjMDBcdWI4NWMgXHVjMTM4XHViODVjIE5cdWJiZjhcdWQxMzBcdWM3NzggXHVjODE1XHVjMGFjXHVhYzAxXHVkNjE1IFx1ZDNjOVx1YzljMFx1Yzc3NFx1YjJlNC4gKDImbHQ7PU4mbHQ7PTUwMDAwMCkgXHViYzJkIFx1YWNiZFx1YWNjNFx1Yzc1OCBcdWQ1NWNcdWNhYmQgXHViMDVkIFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCAoMCwgMClcdWM3NzRcdWJhNzAsIFx1YjlkZVx1Yzc0MFx1ZDNiOCBcdWIwNWQgXHVjODhjXHVkNDVjXHViMjk0IChOLCBOKVx1Yzc3NFx1YjJlNC4gXHViNjEwXHVkNTVjIFx1YWNiZFx1YWNjNFx1YjI5NCB4LCB5IFx1Y2Q5NVx1YzVkMCBcdWQzYzlcdWQ1ODlcdWQ1NThcdWIyZTQuPFwvcD5cclxuPHA+XHVjNmI4XHVkMGMwXHViOWFjXHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWI5ZDBcdWI2OWRcdWM3NDAgXHVjNzdjXHViMmU4IFx1YmMyZFx1Yzc1OCBcdWIxMjQgXHViYWE4XHVjMTFjXHViOWFjXHVjNWQwIFx1YmMxNVx1ZDYwMCBcdWM3ODhcdWFjZTAsIFx1YWRmOCBcdWMwYWNcdWM3NzQgXHViMTI0IFx1YmNjMCBcdWFkNmNcdWFjMDRcdWM1ZDBcdWIzYzQgMVx1YmJmOFx1ZDEzMCBcdWFjMDRcdWFjYTlcdWM3M2NcdWI4NWMgXHViYzE1XHVkNjAwIFx1Yzc4OFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1YjlkMFx1YjY5ZFx1Yzc0MCBcdWNkMWQgNE5cdWFjMWNcdWFjMDAgXHVjNzg4XHViMmU0LiBcdWM3NzQgXHViYjM4XHVjODFjXHVjNWQwXHVjMTFjIFx1YjlkMFx1YjY5ZFx1Yzc0MCBcdWI1NDUgXHVjNzA0XHViODVjIFx1YzE5Zlx1YzU0NCBcdWM3ODhcdWIyOTQgXHVkNjQwXHVjYjQ5XHVkNTVjIFx1YzEyMFx1YmQ4NFx1Yzc3NFx1YmE3MCBcdWJjMThcdWM5YzBcdWI5ODQsIFx1Yzk4OSBcdWFkNzVcdWFlMzBcdWFjMDAgXHVjNWM2XHViMmU0XHVhY2UwIFx1YWMwMFx1YzgxNVx1ZDU1Y1x1YjJlNC4gXHVhZTM4XHVjMGIwXHVjNzQwIFx1YmMyZCBcdWM1NDggXHVjNWI0XHViMjkwIFx1YzcwNFx1Y2U1OFx1YzVkMCBcdWMxMWNcdWMxMWMgXHVjMGFjXHViYzI5XHVjNzQ0IFx1YjNjY1x1YzU0NFx1YmNmYyBcdWI1NGMsIFx1YWM3MFx1YWUzMFx1YzExYyBcdWJjMmRcdWM3NTggXHViMDVkIFx1YWNiZFx1YWNjNFx1YzVkMCBcdWM3ODhcdWIyOTQgXHViOWQwXHViNjlkXHVjNzQ0IFx1YmE4NyBcdWFjMWNcdWFlNGNcdWM5YzAgXHViY2ZjIFx1YzIxOCBcdWM3ODhcdWIwOTggXHVjNTRjXHVhY2UwIFx1YzJmNlx1YzViNCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuPHA+XHVhZGY4XHVjNzU4IFx1YmMyZCBcdWM1NDhcdWM1ZDBcdWIyOTQgUiAoMSZsdDs9UiZsdDs9MzAwMDApXHVhYzFjXHVjNzU4IFx1Y2VlNFx1YjJlNFx1Yjc4MCBcdWJjMTRcdWM3MDRcdWFjMDAgXHVjNzg4XHVjNWI0XHVjMTFjIFx1YWRmOFx1Yzc1OCBcdWMyZGNcdWM1N2NcdWI5N2MgXHVjNzdjXHViZDgwIFx1YWMwMFx1YjliMFx1YjJlNC4gXHViYzE0XHVjNzA0XHViMjk0IFx1YmMxMVx1YmE3NFx1YWNmYyBcdWM3MTdcdWJhNzRcdWM3NzQgXHVhYzE5XHVjNzQwIFx1YmNmY1x1Yjg1ZFx1YjJlNFx1YWMwMVx1ZDYxNVx1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWMgXHVhZTMwXHViNDY1XHVjNzc0XHViYTcwLCBcdWIxOTJcdWM3NzRcdWFjMDAgXHVjZGE5XHViZDg0XHVkNzg4IFx1YjE5Mlx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHVhZTM4XHVjMGIwXHVjNzQwIFx1YmMxNFx1YzcwNCBcdWIxMDhcdWJhMzhcdWI4NWMgXHVjNzg4XHViMjk0IFx1YjlkMFx1YjY5ZFx1Yzc0NCBcdWJjZmMgXHVjMjE4IFx1YzVjNlx1YjJlNC4gXHViYzE0XHVjNzA0XHViNGU0XHVjNzQwIFx1YzYwMVx1YzVlZFx1Yzc3NCBcdWMxMWNcdWI4NWMgXHVhY2I5XHVjZTU4XHVjOWMwIFx1YzU0YVx1YzczY1x1YmE3MCwgXHVhZjJkXHVjOWMwXHVjODEwXHVjNzc0XHViMDk4IFx1YzEyMFx1YmQ4NFx1Yzc3NCBcdWM4MTFcdWQ1NThcdWM5YzBcdWIzYzQgXHVjNTRhXHViMjk0XHViMmU0LiBcdWQ1NWMgXHViYzE0XHVjNzA0XHVhYzAwIFx1YjJlNFx1Yjk3OCBcdWJjMTRcdWM3MDQgXHVjNTQ4XHVjNzc0XHViMDk4IFx1YzcwNFx1YzVkMCBcdWM3ODhcdWM5YzBcdWIzYzQgXHVjNTRhXHViMmU0LjxiciBcLz5cclxuXHVhZTM4XHVjMGIwXHVjNzc0IFx1YWMwMFx1YzljNCBcdWJjMmQoXHVjNmI4XHVkMGMwXHViOWFjKVx1Yzc1OCBcdWQwNmNcdWFlMzAsIFx1YWUzOFx1YzBiMFx1Yzc3NCBcdWJjMmQgXHVjNTQ4XHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWM3MDRcdWNlNTgsIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWFjMDEgXHViYzE0XHVjNzA0XHViNGU0XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWM4MTVcdWJjZjRcdWFjMDAgXHViNGU0XHVjNWI0XHVjNjU0XHVjNzQ0IFx1YjU0YywgXHVhZGY4XHVhYzAwIFx1YWRmOCBcdWM3MDRcdWNlNThcdWM1ZDBcdWMxMWMgXHVhY2UwXHVhYzFjXHViOWNjIFx1YjNjY1x1YjgyNFx1YzExYyBcdWJjZmMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWM2YjhcdWQwYzBcdWI5YWMgXHViOWQwXHViNjlkXHVjNzU4IFx1Y2QxZCBcdWFjMWNcdWMyMThcdWI5N2MgXHVhY2M0XHVjMGIwXHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuIFx1YmMxNFx1YzcwNFx1Yjk3YyBcdWFkNmNcdWMxMzFcdWQ1NThcdWIyOTQgXHVjNzg0XHVjNzU4XHVjNzU4IFx1ZDU1YyBcdWM4MTVcdWM4MTBcdWFjZmMgXHViMThkXHViZDgwXHVjNjQwIFx1Yzc3Y1x1YzljMVx1YzEyMFx1Yzc0NCBcdWM3NzRcdWI4ZThcdWIyOTQgXHViOWQwXHViNjlkXHVjNzQwIFx1YjE4ZFx1YmQ4MFx1YzVkMFx1YWM4YyBcdWJjZjRcdWM3NzRcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3A+IiwiaW5wdXQiOiI8cD5cdWNjYWIgXHVjOTA0XHVjNWQwXHViMjk0IE5cdWFjZmMgUlx1Yzc1OCBcdWFjMTJcdWM3NzQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YjRlNFx1YzViNFx1Yzc4OFx1YjJlNC4gXHViMmU0XHVjNzRjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3YTVcdWFlMzhcdWMwYjBcdWM3NTggeCwgeSBcdWM3MDRcdWNlNThcdWFjMDAgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YjRlNFx1YzViNFx1Yzc4OFx1YjJlNC4gXHVhZGY4XHViOWFjXHVhY2UwIFx1YjJlNFx1Yzc0YyBcdWM5MDRcdWM1ZDBcdWIyOTQgUlx1YWMxY1x1Yzc1OCBcdWJjMTRcdWM3MDRcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YzgxNVx1YmNmNFx1YWMwMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHViNGU0XHVjNWI0XHVjNjI4XHViMmU0LjxiciBcLz5cclxuJm5ic3A7IFx1YmMxNFx1YzcwNFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHVjODE1XHViY2Y0XHViMjk0IFx1YjJlNFx1YWMwMVx1ZDYxNVx1Yzc0NCBcdWFlMzBcdWMyMjBcdWQ1NThcdWIyOTQgXHVhYzgzXHVhY2ZjIFx1YWMxOVx1YzczY1x1YmJjMFx1Yjg1YywgXHVhYzAwXHVjN2E1IFx1YmEzY1x1YzgwMCBcdWM3NzQgXHViYzE0XHVjNzA0XHVjNzU4IFx1YWYyZFx1YzljMFx1YzgxMCBcdWFjMWNcdWMyMThcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IHBcdWFjMDAgXHVjNzg4XHViMmU0LiAoMyZsdDs9cCZsdDs9MjApIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWIyZTRcdWM3NGMgcCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViMmU0XHVhYzAxXHVkNjE1XHVjNzQ0IFx1YWQ2Y1x1YzEzMVx1ZDU1OFx1YjI5NCB4IHkgXHVjODhjXHVkNDVjXHVhYzAwIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWI0ZTRcdWM1YjRcdWM2MjhcdWIyZTQuIFx1YWYyZFx1YzljMFx1YzgxMFx1Yzc1OCBcdWM4OGNcdWQ0NWNcdWI0ZTRcdWM3NDAgXHViYWE4XHViNDUwIFx1YzExY1x1Yjg1YyBcdWFjMTJcdWM3NzQgXHViMmU0XHViOTc0XHViYTcwIFx1YmMxOFx1YzJkY1x1YWNjNCBcdWJjMjlcdWQ1YTVcdWM3NzRcdWIyZTQuPGJyIFwvPlxyXG4mbmJzcDsgXHVjNTQ0XHViNzk4IFx1YzYwOFx1YzgxY1x1Yzc1OCAoNzAsIDQwKSwgKDc1LCA0MCksICg4MCwgNDApXHVjYzk4XHViN2ZjLCBcdWM4MTVcdWM4MTAgXHVjODhjXHVkNDVjXHVhYzAwIFx1Yzc3Y1x1YzljMVx1YzEyMCBcdWMwYzFcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YWNiZFx1YzZiMFx1YjNjNCBcdWM3ODhcdWM3NDQgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPiIsIm91dHB1dCI6IjxwPlx1YWUzOFx1YzBiMFx1Yzc3NCBcdWFkZjggXHVjNzA0XHVjZTU4XHVjNWQwXHVjMTFjIFx1YmNmY1x1YzIxOCBcdWM3ODhcdWIyOTQgXHViOWQwXHViNjlkXHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWQ1NWMgXHVjOTA0XHVjNWQwXHViMmU0IFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YmE3NCBcdWI0MWNcdWIyZTQuIFx1YzU0NFx1Yjc5OFx1Yzc1OCBcdWM2MDhcdWM4MWNcdWI5N2MgXHVjMGI0XHVkM2I0XHViY2Y0XHViYTc0LCBcdWIxOGRcdWJkODBcdWIyOTQgKDYwLCA1MCkgXHVjNzA0XHVjZTU4XHVjNWQwIFx1Yzc4OFx1YjI5NFx1YjM3MCAoNzAsIDQwKSBcdWM3MDRcdWNlNThcdWM3NTggXHViYzE0XHVjNzA0IFx1YWYyZFx1YzljMFx1YzgxMCBcdWI1NGNcdWJiMzhcdWM1ZDAgKDEwMCwgMTApXHViZDgwXHVkMTMwLiBcdWI2MTAgKDcwLCA2MCkgXHVjNzA0XHVjZTU4XHVjNzU4IFx1YmMxNFx1YzcwNCBcdWFmMmRcdWM5YzBcdWM4MTAgXHViNTRjXHViYjM4XHVjNWQwICgxMDAsIDkwKVx1YWU0Y1x1YzljMCwgXHVhY2JkXHVhY2M0XHVjNWQwIFx1Yzc4OFx1YjI5NCA4MVx1YWMxY1x1Yzc1OCBcdWI5ZDBcdWI2OWRcdWM3NzRcdWJjZjRcdWM3NzRcdWM5YzAgXHVjNTRhXHVhYzhjIFx1YjQxY1x1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1YzgxNVx1YjJmNVx1Yzc0MCA0MDBcdWM1ZDBcdWMxMWMgODFcdWM3NDQgXHViZTgwIDMxOVx1Yzc3NFx1YjJlNC48XC9wPiIsImhpbnQiOiI8cD48aW1nIHdpZHRoPVwiMzQ0XCIgaGVpZ2h0PVwiMjUwXCIgYWx0PVwiXCIgc3JjPVwiXC9KdWRnZU9ubGluZVwvdXBsb2FkXC8yMDEwMDdcL3NoZHFuLnBuZ1wiIFwvPjxcL3A+Iiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIyMDE3IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiU2VlaW5nIHRoZSBCb3VuZGFyeSIsImRlc2NyaXB0aW9uIjoiPHA+RmFybWVyIERvbiB3YXRjaGVzIHRoZSBmZW5jZSB0aGF0IHN1cnJvdW5kcyBoaXMgTiBtZXRlciBieSBOIG1ldGVyIHNxdWFyZSwgZmxhdCBmaWVsZCAoMiAmbGU7IE4gJmxlOyA1MDAsMDAwKS4gT25lIGZlbmNlIGNvcm5lciBpcyBhdCB0aGUgb3JpZ2luICgwLCAwKSBhbmQgdGhlIG9wcG9zaXRlIGNvcm5lciBpcyBhdCAoTiwgTik7IHRoZSBzaWRlcyBvZiBGYXJtZXIgRG9uJiMzOTtzIGZlbmNlIGFyZSBwYXJhbGxlbCB0byB0aGUgWCBhbmQgWSBheGVzLjxcL3A+XHJcblxyXG48cD5GZW5jZSBwb3N0cyBhcHBlYXIgYXQgYWxsIGZvdXIgY29ybmVycyBhbmQgYWxzbyBhdCBldmVyeSBtZXRlciBhbG9uZyBlYWNoIHNpZGUgb2YgdGhlIGZlbmNlLCBmb3IgYSB0b3RhbCBvZiA0JnRpbWVzO04gZmVuY2UgcG9zdHMuIFRoZSBmZW5jZSBwb3N0cyBhcmUgdmVydGljYWwgYW5kIGFyZSBjb25zaWRlcmVkIHRvIGhhdmUgbm8gcmFkaXVzLiBGYXJtZXIgRG9uIHdhbnRzIHRvIGRldGVybWluZSBob3cgbWFueSBvZiBoaXMgZmVuY2UgcG9zdHMgaGUgY2FuIHdhdGNoIHdoZW4gaGUgc3RhbmRzIGF0IGEgZ2l2ZW4gbG9jYXRpb24gd2l0aGluIGhpcyBmZW5jZS48XC9wPlxyXG5cclxuPHA+RmFybWVyIERvbiZyc3F1bztzIGZpZWxkIGNvbnRhaW5zIFIgKDEgJmxlOyBSICZsZTsgMzAsMDAwKSBodWdlIHJvY2tzIHRoYXQgb2JzY3VyZSBoaXMgdmlldyBvZiBzb21lIGZlbmNlIHBvc3RzLCBhcyBoZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gbG9vayBvdmVyIGFueSBvZiB0aGVzZSByb2Nrcy4gVGhlIGJhc2Ugb2YgZWFjaCByb2NrIGlzIGEgY29udmV4IHBvbHlnb24gd2l0aCBub256ZXJvIGFyZWEgd2hvc2UgdmVydGljZXMgYXJlIGF0IGludGVnZXIgY29vcmRpbmF0ZXMuIFRoZSByb2NrcyBzdGFuZCBjb21wbGV0ZWx5IHZlcnRpY2FsLiBSb2NrcyBkbyBub3Qgb3ZlcmxhcCwgZG8gbm90IHRvdWNoIG90aGVyIHJvY2tzLCBhbmQgZG8gbm90IHRvdWNoIEZhcm1lciBEb24gb3IgdGhlIGZlbmNlLiBGYXJtZXIgRG9uIGRvZXMgbm90IHRvdWNoIHRoZSBmZW5jZSwgZG9lcyBub3Qgc3RhbmQgd2l0aGluIGEgcm9jaywgYW5kIGRvZXMgbm90IHN0YW5kIG9uIGEgcm9jay48XC9wPlxyXG5cclxuPHA+R2l2ZW4gdGhlIHNpemUgb2YgRmFybWVyIERvbiYjMzk7cyBmZW5jZSwgdGhlIGxvY2F0aW9ucyBhbmQgc2hhcGVzIG9mIHRoZSByb2NrcyB3aXRoaW4gaXQsIGFuZCB0aGUgbG9jYXRpb24gd2hlcmUgRmFybWVyIERvbiBzdGFuZHMsIGNvbXB1dGUgdGhlIG51bWJlciBvZiBmZW5jZSBwb3N0cyB0aGF0IEZhcm1lciBEb24gY2FuIHNlZS4gSWYgYSB2ZXJ0ZXggb2YgYSByb2NrIGxpbmVzIHVwIHBlcmZlY3RseSB3aXRoIGEgZmVuY2UgcG9zdCBmcm9tIEZhcm1lciBEb24mIzM5O3MgbG9jYXRpb24sIGhlIGlzIG5vdCBhYmxlIHRvIHNlZSB0aGF0IGZlbmNlIHBvc3QuPFwvcD5cclxuIiwiaW5wdXQiOiI8dWw+XHJcblx0PGxpPlRoZSBmaXJzdCBsaW5lIG9mIGlucHV0IGNvbnRhaW5zIHR3byBzcGFjZS1zZXBhcmF0ZWQgaW50ZWdlcnM6IE4gYW5kIFIuPFwvbGk+XHJcblx0PGxpPlRoZSBuZXh0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgdHdvIHNwYWNlLXNlcGFyYXRlZCBpbnRlZ2VycyB0aGF0IHNwZWNpZnkgdGhlIFggYW5kIFkgY29vcmRpbmF0ZXMgb2YgRmFybWVyIERvbiYjMzk7cyBsb2NhdGlvbiBpbnNpZGUgdGhlIGZlbmNlLjxcL2xpPlxyXG5cdDxsaT5UaGUgcmVzdCBvZiB0aGUgaW5wdXQgZmlsZSBkZXNjcmliZXMgdGhlIFIgcm9ja3M6XHJcblx0PHVsPlxyXG5cdFx0PGxpPlJvY2sgaSZyc3F1bztzIGRlc2NyaXB0aW9uIHN0YXJ0cyB3aXRoIGEgbGluZSBjb250YWluaW5nIGEgc2luZ2xlIGludGVnZXIgcGkgKDMgJnBvdW5kOyBwaSAmcG91bmQ7IDIwKSwgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBpbiB0aGUgcm9jayYjMzk7cyBiYXNlLjxcL2xpPlxyXG5cdFx0PGxpPkVhY2ggb2YgdGhlIG5leHQgcGkgbGluZXMgY29udGFpbnMgYSBzcGFjZS1zZXBhcmF0ZWQgcGFpciBvZiBpbnRlZ2VycyB0aGF0IGFyZSB0aGUgWCBhbmQgWSBjb29yZGluYXRlcyBvZiBhIHZlcnRleC4gVGhlIHZlcnRpY2VzIG9mIGEgcm9jayZyc3F1bztzIGJhc2UgYXJlIGRpc3RpbmN0IGFuZCBnaXZlbiBpbiBjb3VudGVyY2xvY2t3aXNlIG9yZGVyLjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuIiwib3V0cHV0IjoiPHA+VGhlIG91dHB1dCBmaWxlIHNob3VsZCBjb250YWluIGEgc2luZ2xlIGxpbmUgd2l0aCBhIHNpbmdsZSBpbnRlZ2VyLCB0aGUgbnVtYmVyIG9mIGZlbmNlIHBvc3RzIHZpc2libGUgdG8gRmFybWVyIERvbi48XC9wPlxyXG4iLCJoaW50IjoiPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9mYXJtZXIucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MjE3cHg7IHdpZHRoOjMyMHB4XCIgXC8+PFwvcD5cclxuIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=