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

문제

마법사 이재환은 V개의 방과 V-1개의 문으로 이루어진 미로에 갇혀있다. 문은 방을 양방향으로 연결하고 있고, 한 방에서 다른 방으로 가는 경로는 항상 존재한다. 또, C개의 서로 다른 색상으로 이루어진 C개의 자물쇠와 C개의 열쇠가 있다. 문은 최대 한 개의 자물쇠로 잠겨있을 수 있고, 방에는 최대 한 개의 열쇠가 놓여져 있다.

재환이는 마법사이기 때문에, 자물쇠를 마법으로 풀면 된다. 하지만, 주문책을 놓고 왔기 때문에, 마법을 전혀 할 수 없다. 

재환이는 현재 방 X에 있고, 방 Y에 있는 주문북을 찾으러 가려고 한다. 재환이는 현재 있는 방과 인접한 방으로 문을 통해 한 번에 이동할 수 있다. 문이 잠겨있는 경우에는 자물쇠의 색상과 같은 색상의 열쇠가 있어야 문을 열 수 있다.

재환이는 한 번에 열쇠 하나만 들고 있을 수 있다. 또, 열쇠를 집은 이후에 나중에 다시 사용하기 위해서 열쇠를 다른 방에 내려 놓을 수 없다. 자물쇠로 잠겨있는 문을 열게 되면, 열쇠는 사라지게 된다.

미로와 열쇠 C개와 자물쇠 C개의 위치가 주어진다. 이 때, X에서 Y로 이동하는 것이 가능한지 알아내는 프로그램을 작성하시오. 경로의 길이는 4·(C+1)·V를 넘을 수 없다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

첫째 줄에는 네 정수가 주어진다. 방의 개수 V (1 ≤ V ≤ 1500), 자물쇠의 수 (0 ≤ C < V), 방 번호 X와 Y가 주어진다. 방 번호는 0번부터 V-1가지 번호가 매겨져 있다. 다음 C개 줄에는 색의 번호가 증가하는 순서대로 키가 들어있는 방의 번호가 주어진다. 그 다음 V-1개 줄에는 미로의 정보 A B L이 주어진다. 0 ≤ L < C인 경우에는 방 A와 B를 연결하는 문을 잠구는 자물쇠의 색은 L이라는 뜻이고, -1인 경우에는 잠겨있지 않다는 뜻이다.

입력의 마지막 줄은 V,C,X,Y = 0,0,0,0 이다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. 답이 없는 경우에는 Impossible을 출력한다. 그렇지 않으면 L: V0 ... VL 형식으로 경로를 출력한다. L ≤ 4(C+1)V 은 X에서 Y로 가는 경로이고, X=V0,V1,...,VL-1,VL = Y는 X에서 Y로 가기 위해 지나가야 하는 방의 번호 L+1개이다. 각 정점을 출력하기 전에 공백을 하나 출력해야 한다.

예제 입력 1

1 0 0 0

3 1 0 2
1
0 1 -1
0 2 0

3 2 0 2
1 2
0 1 1
0 2 0

5 3 0 4
2 0 3
0 1 0
0 2 -1
1 3 1
2 4 2

0 0 0 0

예제 출력 1

0: 0
3: 0 1 0 2
Impossible
10: 0 2 0 1 0 1 3 1 0 2 4
W3sicHJvYmxlbV9pZCI6IjM4NTMiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM3OTBcdWJiM2NcdWMxZTBcdWM2NDAgXHVjNWY0XHVjMWUwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWI5YzhcdWJjOTVcdWMwYWMgXHVjNzc0XHVjN2FjXHVkNjU4XHVjNzQwIFZcdWFjMWNcdWM3NTggXHViYzI5XHVhY2ZjIFYtMVx1YWMxY1x1Yzc1OCBcdWJiMzhcdWM3M2NcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0IFx1YmJmOFx1Yjg1Y1x1YzVkMCBcdWFjMDdcdWQ2MDBcdWM3ODhcdWIyZTQuIFx1YmIzOFx1Yzc0MCBcdWJjMjlcdWM3NDQgXHVjNTkxXHViYzI5XHVkNWE1XHVjNzNjXHViODVjIFx1YzVmMFx1YWNiMFx1ZDU1OFx1YWNlMCBcdWM3ODhcdWFjZTAsIFx1ZDU1YyBcdWJjMjlcdWM1ZDBcdWMxMWMgXHViMmU0XHViOTc4IFx1YmMyOVx1YzczY1x1Yjg1YyBcdWFjMDBcdWIyOTQgXHVhY2JkXHViODVjXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWM4NzRcdWM3YWNcdWQ1NWNcdWIyZTQuIFx1YjYxMCwgQ1x1YWMxY1x1Yzc1OCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1YzBjOVx1YzBjMVx1YzczY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgQ1x1YWMxY1x1Yzc1OCBcdWM3OTBcdWJiM2NcdWMxZTBcdWM2NDAgQ1x1YWMxY1x1Yzc1OCBcdWM1ZjRcdWMxZTBcdWFjMDAgXHVjNzg4XHViMmU0LiBcdWJiMzhcdWM3NDAgXHVjZDVjXHViMzAwIFx1ZDU1YyBcdWFjMWNcdWM3NTggXHVjNzkwXHViYjNjXHVjMWUwXHViODVjIFx1YzdhMFx1YWNhOFx1Yzc4OFx1Yzc0NCBcdWMyMTggXHVjNzg4XHVhY2UwLCBcdWJjMjlcdWM1ZDBcdWIyOTQgXHVjZDVjXHViMzAwIFx1ZDU1YyBcdWFjMWNcdWM3NTggXHVjNWY0XHVjMWUwXHVhYzAwIFx1YjE5M1x1YzVlY1x1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzdhY1x1ZDY1OFx1Yzc3NFx1YjI5NCBcdWI5YzhcdWJjOTVcdWMwYWNcdWM3NzRcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwLCBcdWM3OTBcdWJiM2NcdWMxZTBcdWI5N2MgXHViOWM4XHViYzk1XHVjNzNjXHViODVjIFx1ZDQ4MFx1YmE3NCBcdWI0MWNcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYywgXHVjOGZjXHViYjM4XHVjYzQ1XHVjNzQ0IFx1YjE5M1x1YWNlMCBcdWM2NTRcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwLCBcdWI5YzhcdWJjOTVcdWM3NDQgXHVjODA0XHVkNjAwIFx1ZDU2MCBcdWMyMTggXHVjNWM2XHViMmU0LiZuYnNwOzxcL3A+XHJcblxyXG48cD5cdWM3YWNcdWQ2NThcdWM3NzRcdWIyOTQgXHVkNjA0XHVjN2FjIFx1YmMyOSBYXHVjNWQwIFx1Yzc4OFx1YWNlMCwgXHViYzI5IFlcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YzhmY1x1YmIzOFx1YmQ4MVx1Yzc0NCBcdWNjM2VcdWM3M2NcdWI3ZWMgXHVhYzAwXHViODI0XHVhY2UwIFx1ZDU1Y1x1YjJlNC4gXHVjN2FjXHVkNjU4XHVjNzc0XHViMjk0IFx1ZDYwNFx1YzdhYyBcdWM3ODhcdWIyOTQgXHViYzI5XHVhY2ZjIFx1Yzc3OFx1YzgxMVx1ZDU1YyBcdWJjMjlcdWM3M2NcdWI4NWMgXHViYjM4XHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWQ1NWMgXHViYzg4XHVjNWQwIFx1Yzc3NFx1YjNkOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWJiMzhcdWM3NzQgXHVjN2EwXHVhY2E4XHVjNzg4XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWM3OTBcdWJiM2NcdWMxZTBcdWM3NTggXHVjMGM5XHVjMGMxXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWMwYzlcdWMwYzFcdWM3NTggXHVjNWY0XHVjMWUwXHVhYzAwIFx1Yzc4OFx1YzViNFx1YzU3YyBcdWJiMzhcdWM3NDQgXHVjNWY0IFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzdhY1x1ZDY1OFx1Yzc3NFx1YjI5NCBcdWQ1NWMgXHViYzg4XHVjNWQwIFx1YzVmNFx1YzFlMCBcdWQ1NThcdWIwOThcdWI5Y2MgXHViNGU0XHVhY2UwIFx1Yzc4OFx1Yzc0NCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWI2MTAsIFx1YzVmNFx1YzFlMFx1Yjk3YyBcdWM5ZDFcdWM3NDAgXHVjNzc0XHVkNmM0XHVjNWQwIFx1YjA5OFx1YzkxMVx1YzVkMCBcdWIyZTRcdWMyZGMgXHVjMGFjXHVjNmE5XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExYyBcdWM1ZjRcdWMxZTBcdWI5N2MgXHViMmU0XHViOTc4IFx1YmMyOVx1YzVkMCBcdWIwYjRcdWI4MjQgXHViMTkzXHVjNzQ0IFx1YzIxOCBcdWM1YzZcdWIyZTQuIFx1Yzc5MFx1YmIzY1x1YzFlMFx1Yjg1YyBcdWM3YTBcdWFjYThcdWM3ODhcdWIyOTQgXHViYjM4XHVjNzQ0IFx1YzVmNFx1YWM4YyBcdWI0MThcdWJhNzQsIFx1YzVmNFx1YzFlMFx1YjI5NCBcdWMwYWNcdWI3N2NcdWM5YzBcdWFjOGMgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJiZjhcdWI4NWNcdWM2NDAgXHVjNWY0XHVjMWUwIENcdWFjMWNcdWM2NDAgXHVjNzkwXHViYjNjXHVjMWUwIENcdWFjMWNcdWM3NTggXHVjNzA0XHVjZTU4XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNzc0IFx1YjU0YywgWFx1YzVkMFx1YzExYyBZXHViODVjIFx1Yzc3NFx1YjNkOVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVhYzAwXHViMmE1XHVkNTVjXHVjOWMwIFx1YzU0Y1x1YzU0NFx1YjBiNFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LiBcdWFjYmRcdWI4NWNcdWM3NTggXHVhZTM4XHVjNzc0XHViMjk0IDQmbWlkZG90OyhDKzEpJm1pZGRvdDtWXHViOTdjIFx1YjExOFx1Yzc0NCBcdWMyMTggXHVjNWM2XHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzQwIFx1YzVlY1x1YjdlYyBcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjEyNCBcdWM4MTVcdWMyMThcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWJjMjlcdWM3NTggXHVhYzFjXHVjMjE4IFYgKDEgJmxlOyBWICZsZTsgMTUwMCksIFx1Yzc5MFx1YmIzY1x1YzFlMFx1Yzc1OCBcdWMyMTggKDAgJmxlOyBDICZsdDsgViksIFx1YmMyOSBcdWJjODhcdWQ2MzggWFx1YzY0MCBZXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHViYzI5IFx1YmM4OFx1ZDYzOFx1YjI5NCAwXHViYzg4XHViZDgwXHVkMTMwIFYtMVx1YWMwMFx1YzljMCBcdWJjODhcdWQ2MzhcdWFjMDAgXHViOWU0XHVhY2E4XHVjODM4IFx1Yzc4OFx1YjJlNC4gXHViMmU0XHVjNzRjIENcdWFjMWMgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzBjOVx1Yzc1OCBcdWJjODhcdWQ2MzhcdWFjMDAgXHVjOTlkXHVhYzAwXHVkNTU4XHViMjk0IFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWQwYTRcdWFjMDAgXHViNGU0XHVjNWI0XHVjNzg4XHViMjk0IFx1YmMyOVx1Yzc1OCBcdWJjODhcdWQ2MzhcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFkZjggXHViMmU0XHVjNzRjIFYtMVx1YWMxYyBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViYmY4XHViODVjXHVjNzU4IFx1YzgxNVx1YmNmNCBBIEIgTFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIDAgJmxlOyBMICZsdDsgQ1x1Yzc3OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHViYzI5IEFcdWM2NDAgQlx1Yjk3YyBcdWM1ZjBcdWFjYjBcdWQ1NThcdWIyOTQgXHViYjM4XHVjNzQ0IFx1YzdhMFx1YWQ2Y1x1YjI5NCBcdWM3OTBcdWJiM2NcdWMxZTBcdWM3NTggXHVjMGM5XHVjNzQwIExcdWM3NzRcdWI3N2NcdWIyOTQgXHViNzNiXHVjNzc0XHVhY2UwLCAtMVx1Yzc3OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHVjN2EwXHVhY2E4XHVjNzg4XHVjOWMwIFx1YzU0YVx1YjJlNFx1YjI5NCBcdWI3M2JcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjOTA0XHVjNzQwIFYsQyxYLFkgPSAwLDAsMCwwIFx1Yzc3NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjljOFx1YjJlNCBcdWQ1NWMgXHVjOTA0XHVjNTI5IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViMmY1XHVjNzc0IFx1YzVjNlx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgSW1wb3NzaWJsZVx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjgwN1x1YzljMCBcdWM1NGFcdWM3M2NcdWJhNzQgTDogVjxzdWI+MDxcL3N1Yj4gLi4uIFY8c3ViPkw8XC9zdWI+IFx1ZDYxNVx1YzJkZFx1YzczY1x1Yjg1YyBcdWFjYmRcdWI4NWNcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBMICZsZTsgNChDKzEpViBcdWM3NDAgWFx1YzVkMFx1YzExYyBZXHViODVjIFx1YWMwMFx1YjI5NCBcdWFjYmRcdWI4NWNcdWM3NzRcdWFjZTAsIFg9VjxzdWI+MDxcL3N1Yj4sVjxzdWI+MTxcL3N1Yj4sLi4uLFY8c3ViPkwtMTxcL3N1Yj4sVjxzdWI+TDxcL3N1Yj4gPSBZXHViMjk0IFhcdWM1ZDBcdWMxMWMgWVx1Yjg1YyBcdWFjMDBcdWFlMzAgXHVjNzA0XHVkNTc0IFx1YzljMFx1YjA5OFx1YWMwMFx1YzU3YyBcdWQ1NThcdWIyOTQgXHViYzI5XHVjNzU4IFx1YmM4OFx1ZDYzOCBMKzFcdWFjMWNcdWM3NzRcdWIyZTQuIFx1YWMwMSBcdWM4MTVcdWM4MTBcdWM3NDQgXHVjZDljXHViODI1XHVkNTU4XHVhZTMwIFx1YzgwNFx1YzVkMCBcdWFjZjVcdWJjMzFcdWM3NDQgXHVkNTU4XHViMDk4IFx1Y2Q5Y1x1YjgyNVx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMzg1MyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkxvY2tzIGFuZCBrZXlzIiwiZGVzY3JpcHRpb24iOiI8cD5BIHdpemFyZCBpcyBpbiBhIGxhYnlyaW50aCB3aGVyZSB0aGVyZSBhcmUgViByb29tcyBhbmQgViAtIDEgZG9vcnMgY29ubmVjdGluZyBzb21lIHBhaXJzIG9mIHJvb21zIGluIGJvdGggZGlyZWN0aW9ucywgaW4gc3VjaCBhIHdheSB0aGF0IHRoZXJlIGlzIGFsd2F5cyBhIHNlcXVlbmNlIG9mIGRvb3JzIG9uZSBjYW4gdHJhdmVyc2UgdG8gZ28gZnJvbSBhIHJvb20gdG8gYW55IG90aGVyIHJvb20uIEFkZGl0aW9uYWxseSwgdGhlcmUgYXJlIEMgbG9ja3MgYW5kIEMga2V5cyBvZiBDIGRpIGVyZW50IGNvbG91cnMgKG9uZSBvZiBlYWNoKSBpbiBzb21lIG9mIHRoZSBkb29ycyBhbmQgcm9vbXMgb2YgdGhlIG1hemUsIHJlc3BlY3RpdmVseTsgZWFjaCBkb29yIGhhcyBhdCBtb3N0IG9uZSBsb2NrLCBhbmQgdGhlcmUgaXMgYXQgbW9zdCBvbmUga2V5IHBsYWNlZCBpbiBlYWNoIHJvb20uIEl0IHNob3VsZCBiZSBhbiBlYXN5IG1hdHRlciBmb3IgdGhlIHdpemFyZCB0byBieXBhc3MgdGhlIGxvY2sgc3lzdGVtLCB3ZXJlIGl0IG5vdCBmb3IgdGhlIGZhY3QgdGhhdCBoZSBmb3Jnb3QgaGlzIHNwZWxsIGJvb2ssIHdpdGhvdXQgd2hpY2ggaGlzIHdpemFyZHJ5IGlzIHV0dGVybHkgdXNlbGVzcy4gVGhlIHdpemFyZCBpcyBjdXJyZW50bHkgaW4gcm9vbSBYLCBhbmQgaGUgd2FudHMgdG8gZ2V0IGhpcyBzcGVsbCBib29rLCBsb2NhdGVkIGluIHJvb20gWSAsIHdpdGhvdXQgdGFraW5nIHRvbyBsb25nLiBBdCBldmVyeSBzdGVwIGhlIG1heSBnbyB0byBhbiBhZGphY2VudCByb29tIHRocm91Z2ggb25lIG9mIHRoZSBkb29ycy4gT2YgY291cnNlLCBpZiB0aGUgZG9vciBpcyBsb2NrZWQsIGhlIG5lZWRzIHRvIGJlIGNhcnJ5aW5nIHRoZSBrZXkgb2YgdGhlIHNhbWUgY29sb3VyIGFzIHRoZSBsb2NrICh1bmxlc3MsIG9mIGNvdXJzZSwgdGhhdCBkb29yIGhhcyBhbHJlYWR5IGJlZW4gdW5sb2NrZWQpLiBUaGUgd2l6YXJkIGNhbiBjYXJyeSBvbmx5IG9uZSBrZXkgYXQgYSB0aW1lIGFuZCBhZnRlciBwaWNraW5nIHVwIGEga2V5IGl0IGlzIG5vdCBwb3NzaWJsZSBmb3IgaGltIHRvIGRyb3AgaXQgc29tZXdoZXJlIGluIHRoZSBtYXplIGluIG9yZGVyIHRvIHRha2UgaXQgYWdhaW4gYWZ0ZXJ3YXJkcy4gT25jZSBhIGRvb3IgaGFzIGJlZW4gdW5sb2NrZWQsIHRoZSBrZXkgaXMgdGhyb3duIGF3YXkgc2luY2UgaXQgaXMgbm8gbG9uZ2VyIGFueSB1c2UuPFwvcD5cclxuXHJcbjxwPkdpdmVuIHRoZSBtYXplIGFuZCB0aGUgcG9zaXRpb25zIG9mIHRoZSBDIGtleXMgYW5kIEMgbG9ja3MsIGRldGVybWluZSBob3cgdG8gcmVhY2ggWSBmcm9tIFgsIGlmIHBvc3NpYmxlLiBBbnkgcGF0aCB3aG9zZSBsZW5ndGggZG9lcyBub3QgZXhjZWVkIDQgJm1pZGRvdDsgKEMgKyAxKSAmbWlkZG90OyBWIGlzIGFjY2VwdGFibGUuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBlYWNoIGNhc2UgY29udGFpbnMgZm91ciBpbnRlZ2VyczogdGhlIG51bWJlciBWIG9mIHJvb21zIGluIHRoZSBtYXplICgxICZsZTsgViAmbGU7IDEgNTAwKSwgdGhlIG51bWJlciBDIG9mIGxvY2tzICgwICZsZTsgQyAmbHQ7IFYgKSwgYW5kIHJvb21zIFggYW5kIFkgbnVtYmVyZWQgMCwxLCAuLi4sIFYgLSAxLiBUaGVuIGNvbWVzIGEgKHBvc3NpYmx5IGVtcHR5KSBsaW5lIHdpdGggQyBpbnRlZ2VycyBpbmRpY2F0aW5nIHRoZSBsb2NhdGlvbiBvZiBlYWNoIG9mIHRoZSBrZXlzLCBpbiBvcmRlciBvZiBpbmNyZWFzaW5nIGNvbG91ci4gVGhlIG5leHQgViAtIDEgbGluZXMgZGVzY3JpYmUgdGhlIG1hemU6IGVhY2ggY29udGFpbnMgdGhyZWUgaW50ZWdlcnMgQSBCIEwsIG1lYW5pbmcgdGhhdCB0aGVyZSBpcyBhIGRvb3IgYmV0d2VlbiByb29tcyBBIGFuZCBCIHdoaWNoIGNhbiBiZSB1bmxvY2tlZCB3aXRoIHRoZSBrZXkgb2YgY29sb3VyIEwsIGlmIDAgJmxlOyBMICZsdDsgQywgYSB2YWx1ZSBvZiAxIGZvciBMIGluZGljYXRlcyB0aGF0IG5vIGxvY2sgaXMgbmVlZGVkLjxcL3A+XHJcblxyXG48cD5UaGUgbGFzdCBsaW5lIGhhcyBWLCBDLCBYLCBZID0gMCwwLDAsMC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5UaGVyZSBpcyBvbmUgbGluZSBvZiBvdXRwdXQgcGVyIHRlc3QgY2FzZS4gSWYgdGhlcmUgaXMgbm8gc29sdXRpb24sIG91dHB1dCBJbXBvc3NpYmxlLiBPdGhlcndpc2UgcHJpbnQgdGhlIGZ1bGwgcGF0aCBjb3JyZXNwb25kaW5nIHRvIHlvdXIgc29sdXRpb24gaW4gdGhlIGZvcm1hdCBMOiBWPHN1Yj4wPFwvc3ViPiAuLi4gVjxzdWI+TDxcL3N1Yj4sIHdoZXJlIEwgJmxlOyA0KEMgKyAxKVYgaXMgdGhlIGxlbmd0aCBvZiBhIHBhdGggZnJvbSBYIHRvIFksIGFuZCBYID0gVjxzdWI+MDxcL3N1Yj4sIFY8c3ViPjE8XC9zdWI+LCAuLi4sIFY8c3ViPkwtMTxcL3N1Yj4sIFZMID0gWSBpcyB0aGUgc2VxdWVuY2Ugb2YgTCArIDEgdmVydGljZXMgdmlzaXRlZCBpbiB0aGUgcmlnaHQgb3JkZXIuIEEgc2luZ2xlIHNwYWNlIG11c3QgcHJlY2VkZSBlYWNoIHZlcnRleCBpbiB0aGUgcGF0aDsgc2VlIHNhbXBsZSBvdXRwdXQgZm9yIGNsYXJpIGNhdGlvbi48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=