시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 199 106 91 55.152%

문제

종수는 새 마이크로프로세서를 구매했다. 새 프로세서에 예전 프로세서에서 작동하던 프로그램을 실행시키니 실행이 되지 않았다.

며칠동안 두 프로세서의 기술 문서를 살펴본 결과, 그 결과를 알게 되었다. 새 프로세서의 실행 속도를 향상시키기 위해서 프로그램 머신 코드에 제한이 새로 생겼다. 예전 프로세서에서는 제한이 없었다.

프로세서의 머신 코드는 명령을 실행할 순서대로 나열한 것이다. 각 명령은 메모리를 1바이트 사용한다. 또, 명령은 0개 또는 그 이상의 파라미터를 가질 수 있으며, 각 파라미터도 1바이트씩 메모리를 차지한다. 머신 코드에서 파라미터는 명령의 바로 뒤에 따라 나온다.

머신 코드를 명령은 대문자, 파라미터는 소문자로 나타낼 수 있다.

위의 프로그램은 명령 4개로 이루어져 있다. 첫 번째 명령은 파라미터 3개, 두 번째는 2개, 세 번째는 파라미터가 없고, 네 번째는 4개이다. 이 프로그램은 메모리를 13바이트 사용한다.

새 프로세서는 메모리를 4바이트 단위로 가져온다. 즉, 명령은 반드시 4로 나누어지는 위치에서 시작해야 한다. (메모리의 첫 바이트가 주소 0) 따라서, 새로운 명령 NOP(no operation)를 추가해 모든 명령이 시작하는 위치를 4로 나누어지는 곳으로 맞춰야 한다. 위의 프로그램을 새 프로세서용으로 변환한 머신 코드는 아래와 같다.

명령 A, B, C, D의 시작 위치는 0, 4, 8, 12로 모두 4로 나누어 떨어진다.

예전 프로세서의 머신 코드가 주어졌을 때, 새 프로세서에서 실행시키기 위해 삽입해야 하는 NOP 개수의 최솟값을 구하는 프로그램을 작성하시오.

입력

예전 프로세서용 머신 코드 프로그램이 주어진다. 프로그램은 최대 200글자로 이루어져 있다.

프로그램은 항상 명령으로 시작한다. (첫 글자가 대문자) 한 명령이 머신 코드에서 여러 번 나오는 경우에, 항상 같은 개수의 파라미터를 갖는다.

출력

삽입해야하는 NOP 개수의 최솟값을 출력한다.

예제 입력 1

EaEbFabG

예제 출력 1

5
W3sicHJvYmxlbV9pZCI6IjI5MjkiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJhMzhcdWMyZTAgXHVjZjU0XHViNGRjIiwiZGVzY3JpcHRpb24iOiI8cD5cdWM4ODVcdWMyMThcdWIyOTQgXHVjMGM4IFx1YjljOFx1Yzc3NFx1ZDA2Y1x1Yjg1Y1x1ZDUwNFx1Yjg1Y1x1YzEzOFx1YzExY1x1Yjk3YyBcdWFkNmNcdWI5ZTRcdWQ1ODhcdWIyZTQuIFx1YzBjOCBcdWQ1MDRcdWI4NWNcdWMxMzhcdWMxMWNcdWM1ZDAgXHVjNjA4XHVjODA0IFx1ZDUwNFx1Yjg1Y1x1YzEzOFx1YzExY1x1YzVkMFx1YzExYyBcdWM3OTFcdWIzZDlcdWQ1NThcdWIzNTggXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1YzJlNFx1ZDU4OVx1YzJkY1x1ZDBhNFx1YjJjOCBcdWMyZTRcdWQ1ODlcdWM3NzQgXHViNDE4XHVjOWMwIFx1YzU0YVx1YzU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYTcwXHVjZTYwXHViM2Q5XHVjNTQ4IFx1YjQ1MCBcdWQ1MDRcdWI4NWNcdWMxMzhcdWMxMWNcdWM3NTggXHVhZTMwXHVjMjIwIFx1YmIzOFx1YzExY1x1Yjk3YyBcdWMwYjRcdWQzYjRcdWJjZjggXHVhY2IwXHVhY2ZjLCBcdWFkZjggXHVhY2IwXHVhY2ZjXHViOTdjIFx1YzU0Y1x1YWM4YyBcdWI0MThcdWM1YzhcdWIyZTQuIFx1YzBjOCBcdWQ1MDRcdWI4NWNcdWMxMzhcdWMxMWNcdWM3NTggXHVjMmU0XHVkNTg5IFx1YzE4ZFx1YjNjNFx1Yjk3YyBcdWQ1YTVcdWMwYzFcdWMyZGNcdWQwYTRcdWFlMzAgXHVjNzA0XHVkNTc0XHVjMTFjIFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOCBcdWJhMzhcdWMyZTAgXHVjZjU0XHViNGRjXHVjNWQwIFx1YzgxY1x1ZDU1Y1x1Yzc3NCBcdWMwYzhcdWI4NWMgXHVjMGRkXHVhY2JjXHViMmU0LiBcdWM2MDhcdWM4MDQgXHVkNTA0XHViODVjXHVjMTM4XHVjMTFjXHVjNWQwXHVjMTFjXHViMjk0IFx1YzgxY1x1ZDU1Y1x1Yzc3NCBcdWM1YzZcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDUwNFx1Yjg1Y1x1YzEzOFx1YzExY1x1Yzc1OCBcdWJhMzhcdWMyZTAgXHVjZjU0XHViNGRjXHViMjk0IFx1YmE4NVx1YjgzOVx1Yzc0NCBcdWMyZTRcdWQ1ODlcdWQ1NjAgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YjA5OFx1YzVmNFx1ZDU1YyBcdWFjODNcdWM3NzRcdWIyZTQuIFx1YWMwMSBcdWJhODVcdWI4MzlcdWM3NDAgXHViYTU0XHViYWE4XHViOWFjXHViOTdjIDFcdWJjMTRcdWM3NzRcdWQyYjggXHVjMGFjXHVjNmE5XHVkNTVjXHViMmU0LiBcdWI2MTAsIFx1YmE4NVx1YjgzOVx1Yzc0MCAwXHVhYzFjIFx1YjYxMFx1YjI5NCBcdWFkZjggXHVjNzc0XHVjMGMxXHVjNzU4IFx1ZDMwY1x1Yjc3Y1x1YmJmOFx1ZDEzMFx1Yjk3YyBcdWFjMDBcdWM5YzggXHVjMjE4IFx1Yzc4OFx1YzczY1x1YmE3MCwgXHVhYzAxIFx1ZDMwY1x1Yjc3Y1x1YmJmOFx1ZDEzMFx1YjNjNCAxXHViYzE0XHVjNzc0XHVkMmI4XHVjNTI5IFx1YmE1NFx1YmFhOFx1YjlhY1x1Yjk3YyBcdWNjMjhcdWM5YzBcdWQ1NWNcdWIyZTQuIFx1YmEzOFx1YzJlMCBcdWNmNTRcdWI0ZGNcdWM1ZDBcdWMxMWMgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwXHViMjk0IFx1YmE4NVx1YjgzOVx1Yzc1OCBcdWJjMTRcdWI4NWMgXHViNGE0XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWIwOThcdWM2MjhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmEzOFx1YzJlMCBcdWNmNTRcdWI0ZGNcdWI5N2MgXHViYTg1XHViODM5XHVjNzQwIFx1YjMwMFx1YmIzOFx1Yzc5MCwgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwXHViMjk0IFx1YzE4Y1x1YmIzOFx1Yzc5MFx1Yjg1YyBcdWIwOThcdWQwYzBcdWIwYmMgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9tYWNoaW5lY29kZS5wbmdcIiBzdHlsZT1cImhlaWdodDo0NnB4OyB3aWR0aDo0NjFweFwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM3MDRcdWM3NTggXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQwIFx1YmE4NVx1YjgzOSA0XHVhYzFjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHViYTg1XHViODM5XHVjNzQwIFx1ZDMwY1x1Yjc3Y1x1YmJmOFx1ZDEzMCAzXHVhYzFjLCBcdWI0NTAgXHViYzg4XHVjOWY4XHViMjk0IDJcdWFjMWMsIFx1YzEzOCBcdWJjODhcdWM5ZjhcdWIyOTQgXHVkMzBjXHViNzdjXHViYmY4XHVkMTMwXHVhYzAwIFx1YzVjNlx1YWNlMCwgXHViMTI0IFx1YmM4OFx1YzlmOFx1YjI5NCA0XHVhYzFjXHVjNzc0XHViMmU0LiBcdWM3NzQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQwIFx1YmE1NFx1YmFhOFx1YjlhY1x1Yjk3YyAxM1x1YmMxNFx1Yzc3NFx1ZDJiOCBcdWMwYWNcdWM2YTlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzBjOCBcdWQ1MDRcdWI4NWNcdWMxMzhcdWMxMWNcdWIyOTQgXHViYTU0XHViYWE4XHViOWFjXHViOTdjIDRcdWJjMTRcdWM3NzRcdWQyYjggXHViMmU4XHVjNzA0XHViODVjIFx1YWMwMFx1YzgzOFx1YzYyOFx1YjJlNC4gXHVjOTg5LCBcdWJhODVcdWI4MzlcdWM3NDAgXHViYzE4XHViNGRjXHVjMmRjIDRcdWI4NWMgXHViMDk4XHViMjA0XHVjNWI0XHVjOWMwXHViMjk0IFx1YzcwNFx1Y2U1OFx1YzVkMFx1YzExYyBcdWMyZGNcdWM3OTFcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiAoXHViYTU0XHViYWE4XHViOWFjXHVjNzU4IFx1Y2NhYiBcdWJjMTRcdWM3NzRcdWQyYjhcdWFjMDAgXHVjOGZjXHVjMThjIDApIFx1YjUzMFx1Yjc3Y1x1YzExYywgXHVjMGM4XHViODVjXHVjNmI0IFx1YmE4NVx1YjgzOSBOT1Aobm8gb3BlcmF0aW9uKVx1Yjk3YyBcdWNkOTRcdWFjMDBcdWQ1NzQgXHViYWE4XHViNGUwIFx1YmE4NVx1YjgzOVx1Yzc3NCBcdWMyZGNcdWM3OTFcdWQ1NThcdWIyOTQgXHVjNzA0XHVjZTU4XHViOTdjIDRcdWI4NWMgXHViMDk4XHViMjA0XHVjNWI0XHVjOWMwXHViMjk0IFx1YWNmM1x1YzczY1x1Yjg1YyBcdWI5ZGVcdWNkYjBcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWM3MDRcdWM3NTggXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1YzBjOCBcdWQ1MDRcdWI4NWNcdWMxMzhcdWMxMWNcdWM2YTlcdWM3M2NcdWI4NWMgXHViY2MwXHVkNjU4XHVkNTVjIFx1YmEzOFx1YzJlMCBcdWNmNTRcdWI0ZGNcdWIyOTQgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9tYWNoaW5lY29kZTIucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NDNweDsgd2lkdGg6NTkzcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHViYTg1XHViODM5IEEsIEIsIEMsIERcdWM3NTggXHVjMmRjXHVjNzkxIFx1YzcwNFx1Y2U1OFx1YjI5NCAwLCA0LCA4LCAxMlx1Yjg1YyBcdWJhYThcdWI0NTAgNFx1Yjg1YyBcdWIwOThcdWIyMDRcdWM1YjQgXHViNWE4XHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MDQgXHVkNTA0XHViODVjXHVjMTM4XHVjMTFjXHVjNzU4IFx1YmEzOFx1YzJlMCBcdWNmNTRcdWI0ZGNcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjMGM4IFx1ZDUwNFx1Yjg1Y1x1YzEzOFx1YzExY1x1YzVkMFx1YzExYyBcdWMyZTRcdWQ1ODlcdWMyZGNcdWQwYTRcdWFlMzAgXHVjNzA0XHVkNTc0IFx1YzBiZFx1Yzc4NVx1ZDU3NFx1YzU3YyBcdWQ1NThcdWIyOTQgTk9QIFx1YWMxY1x1YzIxOFx1Yzc1OCBcdWNkNWNcdWMxOWZcdWFjMTJcdWM3NDQgXHVhZDZjXHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM2MDhcdWM4MDQgXHVkNTA0XHViODVjXHVjMTM4XHVjMTFjXHVjNmE5IFx1YmEzOFx1YzJlMCBcdWNmNTRcdWI0ZGMgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQwIFx1Y2Q1Y1x1YjMwMCAyMDBcdWFlMDBcdWM3OTBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQwIFx1ZDU2ZFx1YzBjMSBcdWJhODVcdWI4MzlcdWM3M2NcdWI4NWMgXHVjMmRjXHVjNzkxXHVkNTVjXHViMmU0LiAoXHVjY2FiIFx1YWUwMFx1Yzc5MFx1YWMwMCBcdWIzMDBcdWJiMzhcdWM3OTApIFx1ZDU1YyBcdWJhODVcdWI4MzlcdWM3NzQgXHViYTM4XHVjMmUwIFx1Y2Y1NFx1YjRkY1x1YzVkMFx1YzExYyBcdWM1ZWNcdWI3ZWMgXHViYzg4IFx1YjA5OFx1YzYyNFx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDAsIFx1ZDU2ZFx1YzBjMSBcdWFjMTlcdWM3NDAgXHVhYzFjXHVjMjE4XHVjNzU4IFx1ZDMwY1x1Yjc3Y1x1YmJmOFx1ZDEzMFx1Yjk3YyBcdWFjMTZcdWIyOTRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjMGJkXHVjNzg1XHVkNTc0XHVjNTdjXHVkNTU4XHViMjk0IE5PUCBcdWFjMWNcdWMyMThcdWM3NTggXHVjZDVjXHVjMTlmXHVhYzEyXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIyOTI5IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiTk9QIiwiZGVzY3JpcHRpb24iOiI8cD5NaXJrbyBwdXJjaGFzZWQgYSBuZXcgbWljcm9wcm9jZXNzb3IuIFVuZm9ydHVuYXRlbHksIGhlIHNvb24gbGVhcm5lZCB0aGF0IG1hbnkgb2YgaGlzIHByb2dyYW1zIHRoYXQgaGUgd3JvdGUgZm9yIGhpcyBvbGQgcHJvY2Vzc29yIGRpZG4mIzM5O3Qgd29yayBvbiB0aGUgbmV3IHByb2Nlc3Nvci4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RGVlcCBpbnNpZGUgdGhlIHRlY2huaWNhbCBkb2N1bWVudGF0aW9uIGZvciBib3RoIHByb2Nlc3NvcnMsIGhlIGZvdW5kIGFuIGV4cGxhbmF0aW9uLiBJbiBvcmRlciB0byB3b3JrIGZhc3RlciwgdGhlIG5ldyBwcm9jZXNzb3IgaW1wb3NlcyBjZXJ0YWluIGNvbnN0cmFpbnRzIG9uIHRoZSBtYWNoaW5lIGNvZGUgb2YgcHJvZ3JhbXMsIGNvbnN0cmFpbnRzIHRoYXQgbmV2ZXIgZXhpc3RlZCBvbiB0aGUgcHJldmlvdXMgbW9kZWwuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBtYWNoaW5lIGNvZGUgb2YgYSBwcm9jZXNzb3IgY29uc2lzdHMgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlIGV4ZWN1dGVkIHNlcXVlbnRpYWxseS4gRWFjaCBpbnN0cnVjdGlvbiB1c2VzIGEgYnl0ZSBvZiBtZW1vcnkuIEFsc28sIGluc3RydWN0aW9ucyBjYW4gaGF2ZSB6ZXJvIG9yIG1vcmUgcGFyYW1ldGVycywgZWFjaCBvZiB3aGljaCB1c2VzIGFuIGFkZGl0aW9uYWwgYnl0ZSBvZiBtZW1vcnkuIEluIG1hY2hpbmUgY29kZSwgcGFyYW1ldGVycyBpbW1lZGlhdGVseSBmb2xsb3cgYW4gaW5zdHJ1Y3Rpb24uJm5ic3A7PFwvcD5cclxuXHJcbjxwPldoZW4gZm9ybWF0dGVkIGFzIHRleHQsIG1hY2hpbmUgY29kZSBpbnN0cnVjdGlvbnMgYXJlIHVwcGVyY2FzZSBsZXR0ZXJzLCB3aGlsZSBwYXJhbWV0ZXJzIGFyZSBsb3dlcmNhc2UgbGV0dGVycy4gRm9yIGV4YW1wbGU6Jm5ic3A7PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvbWFjaGluZWNvZGUucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NDZweDsgd2lkdGg6NDYxcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+VGhpcyBwcm9ncmFtIGNvbnNpc3RzIG9mIGZvdXIgaW5zdHJ1Y3Rpb25zOyB0aGUgZmlyc3QgdGFrZXMgdGhyZWUgcGFyYW1ldGVycywgdGhlIHNlY29uZCB0d28sIHRoZSB0aGlyZCBub25lIGFuZCB0aGUgZm91cnRoIHRha2VzIGZvdXIgcGFyYW1ldGVycy4gVGhlIHByb2dyYW0gdXNlcyAxMyBieXRlcyBvZiBtZW1vcnkuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBuZXcgcHJvY2Vzc29yIG1vZGVsIGZldGNoZXMgbWVtb3J5IGluIGZvdXItYnl0ZSBjaHVua3Mgc28gZWFjaCBpbnN0cnVjdGlvbiBtdXN0IHN0YXJ0IGF0IGEgbWVtb3J5IGFkZHJlc3MgdGhhdCBpcyBkaXZpc2libGUgYnkgZm91ciAodGhlIGZpcnN0IGJ5dGUgaW4gbWVtb3J5IGlzIGFkZHJlc3MgMCkuIFRvIGFjaGlldmUgdGhhdCwgd2UgY2FuIGluc2VydCBOT1AgKG5vIG9wZXJhdGlvbikgaW5zdHJ1Y3Rpb25zIGludG8gdGhlIG9sZCBwcm9ncmFtLCBpbnN0cnVjdGlvbnMgdGhhdCBkbyBub3RoaW5nIGFuZCBhcmUgbm90IGxpbWl0ZWQgdG8gbWVtb3J5IGxvY2F0aW9ucyBkaXZpc2libGUgYnkgZm91ci4gVGhlIGFib3ZlIHByb2dyYW0sIGFkYXB0ZWQgdG8gcnVuIG9uIHRoZSBuZXcgcHJvY2Vzc29yLCBjYW4gbG9vayBsaWtlIHRoaXM6Jm5ic3A7PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvbWFjaGluZWNvZGUyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjQzcHg7IHdpZHRoOjU5M3B4XCIgXC8+PFwvcD5cclxuXHJcbjxwPlRoZSBpbnN0cnVjdGlvbnMgQSwgQiwgQyBhbmQgRCBhcmUgbm93IGF0IG1lbW9yeSBsb2NhdGlvbnMgMCwgNCwgOCBhbmQgMTIsIHdoaWNoIHNhdGlzZmllcyB0aGUgcHJvY2Vzc29yJiMzOTtzIGNvbnN0cmFpbnRzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdGhhdCBkZXRlcm1pbmVzIHRoZSBzbWFsbGVzdCBudW1iZXIgb2YgTk9QIGluc3RydWN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgaW5zZXJ0ZWQgZm9yIHRoZSBnaXZlbiBwcm9ncmFtIHRvIHdvcmsgb24gdGhlIG5ldyBwcm9jZXNzb3IgbW9kZWwuJm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgY29udGFpbnMgdGhlIG1hY2hpbmUgY29kZSBvZiB0aGUgcHJvZ3JhbSB3cml0dGVuIGZvciB0aGUgb2xkIHByb2Nlc3NvciBtb2RlbC4gVGhlIHByb2dyYW0gd2lsbCBjb25zaXN0IG9mIGF0IG1vc3QgMjAwIEVuZ2xpc2ggbGV0dGVycy4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIHByb2dyYW0gd2lsbCBhbHdheXMgc3RhcnQgaW4gYW4gaW5zdHJ1Y3Rpb24gaS5lLiB0aGUgZmlyc3QgbGV0dGVyIGluIHRoZSBtYWNoaW5lIGNvZGUgd2lsbCBiZSB1cHBlcmNhc2UuJm5ic3A7PFwvcD5cclxuXHJcbjxwPklmIGFuIGluc3RydWN0aW9uIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIG1hY2hpbmUgY29kZSwgaXQgd2lsbCBhbHdheXMgdGFrZSB0aGUgc2FtZSBudW1iZXIgb2YgcGFyYW1ldGVycy4mbmJzcDs8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5PdXRwdXQgdGhlIHNtYWxsZXN0IG51bWJlciBvZiBOT1AgaW5zdHJ1Y3Rpb25zIG5lZWRlZCB0byBhZGFwdCB0aGUgcHJvZ3JhbSBmb3IgdGhlIG5ldyBwcm9jZXNzb3IuJm5ic3A7PFwvcD5cclxuXHJcbjxwPiZuYnNwOzxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==