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

문제

NTCIP(National Transportation Communications for ITS Protocol)는 고속 통신을 하기 위해 메시지를 MULTI(Markup Language for Transportation Information)을 사용한다. MULTI 문자열은 텍스트의 포맷 등을 묘사하는 내장된 태그와 함께 구성되어있다. 태그는 '[',']'로 열고 닫으며, 문자에 '['를 사용하기 위해서는 '[['를 이용하여 표시한다. (닫는 괄호도 마찬가지로 ']]') 각 문자는 배열의 한 칸씩 차지한다.

다음은 태그와 설명이다.

태그 설명
[nl] 새로운 행을 시작한다.
[sc<digit>] 각 문자마다 <digit>개의 공백을 추가한다.
[/sc] [sc0]과 같다. 공백을 추가하지 않는다.
[jl2] 왼쪽 정렬(left justified text), 첫번째 문자가 줄의 제일 왼쪽에 등장한다.
[jl3] 가운데 정렬(center justified text), 양쪽 공백의 수가 같거나 뒤쪽 공백의 수가 하나 더 많도록 한다.
[jl4] 오른쪽 정렬(right justified text), 마지막 문자가 줄의 가장 마지막에 등장한다.
[jl5] 양쪽 정렬(줄에 가득차도록 각 문자 사이 공백을 일정하게 최대로 많이 추가한다. 가운데 정렬한다.)

한 줄에 24글자가 있을 때의 예이다. (□는 빈 칸을 나타낸다)

MULTI 문자열 출력
[jl2]MESSAGE MESSAGE□□□□□□□□□□□□□□□□□
[jl3]MESSAGE □□□□□□□□MESSAGE□□□□□□□□
[jl4]MESSAGE □□□□□□□□□□□□□□□□□MESSAGE
[jl2][sc2]MESSAGE M□□E□□S□□S□□A□□G□□E□□□□□
[jl5]MESSAGE □□M□□E□□S□□S□□A□□G□□E□□□
[jl2]THIS[jl3]IS A[jl4]MESSAGE THIS□□□□□□IS A□□□MESSAGE

태그는 대소문자를 구분하지 않는다. [nl]=[NL]=[Nl]=[nL]

기본은 왼쪽 정렬, 공백숫자는 0이다.

정렬과 공백추가 태그는 [nl]태그 다음에도 유지된다.

[jl2]와 [l5] 태그는 줄에 다른 문자가 출력되지 않았을 때만 사용할 수 있다. 그렇지 않으면 에러 (TAG CONFLICT)

[jl5]가 사용되면, 다른 정렬 태그는 사용할 수 없다. 그렇지 않으면 에러 (TAG CONFLICT)

[jl3] 태그는 [jl4] 태그 다음에 사용할 수 없다. (TAG CONFLICT)

[jl?] 태그는 같은 정렬을 또 사용하더라도 TAG CONFLICT가 일어나지 않는다.

양쪽 정렬에서는 [sc]태그가 무시된다.

한 줄에 너무 많은 문자가 필요하거나 메시지에 너무 많은 줄이 필요하면 TOO BIG 에러가 발생한다.

[nl]태그는 다음 문자가 출력되기 전까지 작동하지 않는다.

왼쪽 정렬과 가운데 정렬이 한 줄에 동시에 등장하면, 왼쪽 정렬된 문자의 맨 뒤에 적어도 하나의 공백이 있어야 한다. 그렇지 않을 경우 TOO BIG 에러가 발생한다.

가운데 정렬과 오른쪽 정렬이 한 줄에 동시에 등장하면, 가운데 정렬된 문자의 맨 뒤에 적어도 하나의 공백이 있어야 한다. 그렇지 않을 경우 TOO BIG 에러가 발생한다.

왼쪽 정렬과 오른쪽 정렬이 한 줄에 동시에 등장하면, 왼쪽 정렬된 문자의 맨 뒤에 적어도 하나의 공백이 있어야 한다. 그렇지 않을 경우 TOO BIG 에러가 발생한다.

허용되는 태그는 위의 7개만 가능하다. 그렇지 않으면 BAD TAG 에러가 발생한다.

잘못된 태그 사용이나 괄호 쌍이 맞지 않은 경우도 BAD TAG 에러가 발생한다.

MULTI 문자열을 입력받아서 올바른 메시지 또는 에러 메시지를 출력하는 프로그램을 작성하시오

입력

첫째줄은 데이터 세트의 수 N(1 ≤ N ≤ 100)이 입력으로 들어온다.각 데이터 세트의 첫 줄은 R(1 ≤ R ≤ 25)과 C(1 ≤ C ≤ 80)가 공백으로 구분되어 들어온다. (R은 행 수, C는 열 수) 다음 R개의 줄에 MULTI 문자열이 들어온다.

출력

각 데이터 세트에 대해 데이터 세트 번호를 출력하고, 다음줄부터 R개의 줄에 에러 메시지 또는 메시지를 출력한다. (C개의 문자열을 정확히 출력해야 한다) 각 데이터 세트의 마지막 줄은 공백으로 구분한다. (채점의 편의를 위해, 에러가 있는 데이터 세트는 한 가지 타입의 에러만 가지고 있다)

예제 입력 1

7 
4 24 [jl2]MESSAGE[nl][jl3]MESSAGE[nl][jl4]MESSAGE 
2 24 This[jl3]is a[jl4]message 
2 24 This is a very long message which will not fit 
4 24 This[nl]message[nl]has[nl]too[nl]many[nl]lines 
2 32 [jl3]This message has a [[ and a ]] 
2 32 This is a bad tag[xy34] 
2 32 [jl3]This message [jl5] has a tag conflict.

예제 출력 1

1 
MESSAGE                 
        MESSAGE         
                 MESSAGE
                        
2
This      is a   message
                        
3
TOO BIG
4
TOO BIG
5
  This message has a [ and a ]  
                                
6
BAD TAG
7
TAG CONFLICT
W3sicHJvYmxlbV9pZCI6IjI3MjQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJhNTRcdWMyZGNcdWM5YzAgXHViY2MwXHVkNjU4XHVhZTMwIiwiZGVzY3JpcHRpb24iOiI8cD5cclxuXHROVENJUChOYXRpb25hbCBUcmFuc3BvcnRhdGlvbiBDb21tdW5pY2F0aW9ucyBmb3IgSVRTIFByb3RvY29sKVx1YjI5NCBcdWFjZTBcdWMxOGQgXHVkMWI1XHVjMmUwXHVjNzQ0IFx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHViYTU0XHVjMmRjXHVjOWMwXHViOTdjIE1VTFRJKE1hcmt1cCBMYW5ndWFnZSBmb3IgVHJhbnNwb3J0YXRpb24gSW5mb3JtYXRpb24pXHVjNzQ0IFx1YzBhY1x1YzZhOVx1ZDU1Y1x1YjJlNC4gTVVMVEkgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQwIFx1ZDE0ZFx1YzJhNFx1ZDJiOFx1Yzc1OCBcdWQzZWNcdWI5ZjcgXHViNGYxXHVjNzQ0IFx1YmIxOFx1YzBhY1x1ZDU1OFx1YjI5NCBcdWIwYjRcdWM3YTVcdWI0MWMgXHVkMGRjXHVhZGY4XHVjNjQwIFx1ZDU2OFx1YWVkOCBcdWFkNmNcdWMxMzFcdWI0MThcdWM1YjRcdWM3ODhcdWIyZTQuIFx1ZDBkY1x1YWRmOFx1YjI5NCAmIzM5O1smIzM5OywmIzM5O10mIzM5O1x1Yjg1YyBcdWM1ZjRcdWFjZTAgXHViMmViXHVjNzNjXHViYTcwLCBcdWJiMzhcdWM3OTBcdWM1ZDAgJiMzOTtbJiMzOTtcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExY1x1YjI5NCAmIzM5O1tbJiMzOTtcdWI5N2MgXHVjNzc0XHVjNmE5XHVkNTU4XHVjNWVjIFx1ZDQ1Y1x1YzJkY1x1ZDU1Y1x1YjJlNC4gKFx1YjJlYlx1YjI5NCBcdWFkMDRcdWQ2MzhcdWIzYzQgXHViOWM4XHVjYzJjXHVhYzAwXHVjOWMwXHViODVjICYjMzk7XV0mIzM5OykgXHVhYzAxIFx1YmIzOFx1Yzc5MFx1YjI5NCBcdWJjMzBcdWM1ZjRcdWM3NTggXHVkNTVjIFx1Y2U3OFx1YzUyOSBcdWNjMjhcdWM5YzBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuPHA+XHJcblx0XHViMmU0XHVjNzRjXHVjNzQwIFx1ZDBkY1x1YWRmOFx1YzY0MCBcdWMxMjRcdWJhODVcdWM3NzRcdWIyZTQuPFwvcD5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjcwJTtcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aCBzdHlsZT1cIndpZHRoOjEwJTtcIj5cclxuXHRcdFx0XHRcdWQwZGNcdWFkZjg8XC90aD5cclxuXHRcdFx0PHRoIHN0eWxlPVwid2lkdGg6NjAlO1wiPlxyXG5cdFx0XHRcdFx1YzEyNFx1YmE4NTxcL3RoPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGhlYWQ+XHJcblx0PHRib2R5PlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0W25sXTxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHVjMGM4XHViODVjXHVjNmI0IFx1ZDU4OVx1Yzc0NCBcdWMyZGNcdWM3OTFcdWQ1NWNcdWIyZTQuPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFtzYyZsdDtkaWdpdCZndDtdPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdWFjMDEgXHViYjM4XHVjNzkwXHViOWM4XHViMmU0ICZsdDtkaWdpdCZndDtcdWFjMWNcdWM3NTggXHVhY2Y1XHViYzMxXHVjNzQ0IFx1Y2Q5NFx1YWMwMFx1ZDU1Y1x1YjJlNC48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0W1wvc2NdPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRbc2MwXVx1YWNmYyBcdWFjMTlcdWIyZTQuIFx1YWNmNVx1YmMzMVx1Yzc0NCBcdWNkOTRcdWFjMDBcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRbamwyXTxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHVjNjdjXHVjYWJkIFx1YzgxNVx1YjgyYyhsZWZ0IGp1c3RpZmllZCB0ZXh0KSwgXHVjY2FiXHViYzg4XHVjOWY4IFx1YmIzOFx1Yzc5MFx1YWMwMCBcdWM5MDRcdWM3NTggXHVjODFjXHVjNzdjIFx1YzY3Y1x1Y2FiZFx1YzVkMCBcdWI0ZjFcdWM3YTVcdWQ1NWNcdWIyZTQuPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFtqbDNdPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdWFjMDBcdWM2YjRcdWIzNzAgXHVjODE1XHViODJjKGNlbnRlciBqdXN0aWZpZWQgdGV4dCksIFx1YzU5MVx1Y2FiZCBcdWFjZjVcdWJjMzFcdWM3NTggXHVjMjE4XHVhYzAwIFx1YWMxOVx1YWM3MFx1YjA5OCBcdWI0YTRcdWNhYmQgXHVhY2Y1XHViYzMxXHVjNzU4IFx1YzIxOFx1YWMwMCBcdWQ1NThcdWIwOTggXHViMzU0IFx1YjljZVx1YjNjNFx1Yjg1ZCBcdWQ1NWNcdWIyZTQuPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFtqbDRdPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdWM2MjRcdWI5NzhcdWNhYmQgXHVjODE1XHViODJjKHJpZ2h0IGp1c3RpZmllZCB0ZXh0KSwgXHViOWM4XHVjOWMwXHViOWM5IFx1YmIzOFx1Yzc5MFx1YWMwMCBcdWM5MDRcdWM3NTggXHVhYzAwXHVjN2E1IFx1YjljOFx1YzljMFx1YjljOVx1YzVkMCBcdWI0ZjFcdWM3YTVcdWQ1NWNcdWIyZTQuPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFtqbDVdPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdWM1OTFcdWNhYmQgXHVjODE1XHViODJjKFx1YzkwNFx1YzVkMCBcdWFjMDBcdWI0ZGRcdWNjMjhcdWIzYzRcdWI4NWQgXHVhYzAxIFx1YmIzOFx1Yzc5MCBcdWMwYWNcdWM3NzQgXHVhY2Y1XHViYzMxXHVjNzQ0IFx1Yzc3Y1x1YzgxNVx1ZDU1OFx1YWM4YyBcdWNkNWNcdWIzMDBcdWI4NWMgXHViOWNlXHVjNzc0IFx1Y2Q5NFx1YWMwMFx1ZDU1Y1x1YjJlNC4gXHVhYzAwXHVjNmI0XHViMzcwIFx1YzgxNVx1YjgyY1x1ZDU1Y1x1YjJlNC4pPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcbjxwPlxyXG5cdFx1ZDU1YyBcdWM5MDRcdWM1ZDAgMjRcdWFlMDBcdWM3OTBcdWFjMDAgXHVjNzg4XHVjNzQ0IFx1YjU0Y1x1Yzc1OCBcdWM2MDhcdWM3NzRcdWIyZTQuIChcdTI1YTFcdWIyOTQgXHViZTQ4IFx1Y2U3OFx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQpPFwvcD5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjcwJTtcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aCBzdHlsZT1cIndpZHRoOiAyNSU7XCI+XHJcblx0XHRcdFx0TVVMVEkgXHViYjM4XHVjNzkwXHVjNWY0PFwvdGg+XHJcblx0XHRcdDx0aCBzdHlsZT1cIndpZHRoOiA0NSU7XCI+XHJcblx0XHRcdFx0XHVjZDljXHViODI1PFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRbamwyXU1FU1NBR0U8XC90ZD5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdE1FU1NBR0VcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0W2psM11NRVNTQUdFPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFNRVNTQUdFXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFtqbDRdTUVTU0FHRTxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExTUVTU0FHRTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRbamwyXVtzYzJdTUVTU0FHRTxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0TVx1MjVhMVx1MjVhMUVcdTI1YTFcdTI1YTFTXHUyNWExXHUyNWExU1x1MjVhMVx1MjVhMUFcdTI1YTFcdTI1YTFHXHUyNWExXHUyNWExRVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRbamw1XU1FU1NBR0U8XC90ZD5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx1MjVhMVx1MjVhMU1cdTI1YTFcdTI1YTFFXHUyNWExXHUyNWExU1x1MjVhMVx1MjVhMVNcdTI1YTFcdTI1YTFBXHUyNWExXHUyNWExR1x1MjVhMVx1MjVhMUVcdTI1YTFcdTI1YTFcdTI1YTE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHJcblx0XHRcdFx0W2psMl1USElTW2psM11JUyBBW2psNF1NRVNTQUdFPFwvdGQ+XHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0XHRUSElTXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExSVMgQVx1MjVhMVx1MjVhMVx1MjVhMU1FU1NBR0U8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcblxyXG48cD5cclxuXHRcdWQwZGNcdWFkZjhcdWIyOTQgXHViMzAwXHVjMThjXHViYjM4XHVjNzkwXHViOTdjIFx1YWQ2Y1x1YmQ4NFx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIFtubF09W05MXT1bTmxdPVtuTF08XC9wPlxyXG5cclxuPHA+XHJcblx0XHVhZTMwXHViY2Y4XHVjNzQwIFx1YzY3Y1x1Y2FiZCBcdWM4MTVcdWI4MmMsIFx1YWNmNVx1YmMzMVx1YzIyYlx1Yzc5MFx1YjI5NCAwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cclxuXHRcdWM4MTVcdWI4MmNcdWFjZmMgXHVhY2Y1XHViYzMxXHVjZDk0XHVhYzAwIFx1ZDBkY1x1YWRmOFx1YjI5NCBbbmxdXHVkMGRjXHVhZGY4IFx1YjJlNFx1Yzc0Y1x1YzVkMFx1YjNjNCBcdWM3MjBcdWM5YzBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFtqbDJdXHVjNjQwIFtsNV0gXHVkMGRjXHVhZGY4XHViMjk0IFx1YzkwNFx1YzVkMCBcdWIyZTRcdWI5NzggXHViYjM4XHVjNzkwXHVhYzAwIFx1Y2Q5Y1x1YjgyNVx1YjQxOFx1YzljMCBcdWM1NGFcdWM1NThcdWM3NDQgXHViNTRjXHViOWNjIFx1YzBhY1x1YzZhOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0IFx1YzVkMFx1YjdlYyAoVEFHIENPTkZMSUNUKTxcL3A+XHJcblxyXG48cD5cclxuXHRbamw1XVx1YWMwMCBcdWMwYWNcdWM2YTlcdWI0MThcdWJhNzQsIFx1YjJlNFx1Yjk3OCBcdWM4MTVcdWI4MmMgXHVkMGRjXHVhZGY4XHViMjk0IFx1YzBhY1x1YzZhOVx1ZDU2MCBcdWMyMTggXHVjNWM2XHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0IFx1YzVkMFx1YjdlYyAoVEFHIENPTkZMSUNUKTxcL3A+XHJcblxyXG48cD5cclxuXHRbamwzXSBcdWQwZGNcdWFkZjhcdWIyOTQgW2psNF0gXHVkMGRjXHVhZGY4IFx1YjJlNFx1Yzc0Y1x1YzVkMCBcdWMwYWNcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YjJlNC4gKFRBRyBDT05GTElDVCk8XC9wPlxyXG5cclxuPHA+XHJcblx0W2psP10gXHVkMGRjXHVhZGY4XHViMjk0IFx1YWMxOVx1Yzc0MCBcdWM4MTVcdWI4MmNcdWM3NDQgXHViNjEwIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YjM1NFx1Yjc3Y1x1YjNjNCBUQUcgQ09ORkxJQ1RcdWFjMDAgXHVjNzdjXHVjNWI0XHViMDk4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjNTkxXHVjYWJkIFx1YzgxNVx1YjgyY1x1YzVkMFx1YzExY1x1YjI5NCBbc2NdXHVkMGRjXHVhZGY4XHVhYzAwIFx1YmIzNFx1YzJkY1x1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVkNTVjIFx1YzkwNFx1YzVkMCBcdWIxMDhcdWJiMzQgXHViOWNlXHVjNzQwIFx1YmIzOFx1Yzc5MFx1YWMwMCBcdWQ1NDRcdWM2OTRcdWQ1NThcdWFjNzBcdWIwOTggXHViYTU0XHVjMmRjXHVjOWMwXHVjNWQwIFx1YjEwOFx1YmIzNCBcdWI5Y2VcdWM3NDAgXHVjOTA0XHVjNzc0IFx1ZDU0NFx1YzY5NFx1ZDU1OFx1YmE3NCBUT08gQklHIFx1YzVkMFx1YjdlY1x1YWMwMCBcdWJjMWNcdWMwZGRcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFtubF1cdWQwZGNcdWFkZjhcdWIyOTQgXHViMmU0XHVjNzRjIFx1YmIzOFx1Yzc5MFx1YWMwMCBcdWNkOWNcdWI4MjVcdWI0MThcdWFlMzAgXHVjODA0XHVhZTRjXHVjOWMwIFx1Yzc5MVx1YjNkOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1YzY3Y1x1Y2FiZCBcdWM4MTVcdWI4MmNcdWFjZmMgXHVhYzAwXHVjNmI0XHViMzcwIFx1YzgxNVx1YjgyY1x1Yzc3NCBcdWQ1NWMgXHVjOTA0XHVjNWQwIFx1YjNkOVx1YzJkY1x1YzVkMCBcdWI0ZjFcdWM3YTVcdWQ1NThcdWJhNzQsIFx1YzY3Y1x1Y2FiZCBcdWM4MTVcdWI4MmNcdWI0MWMgXHViYjM4XHVjNzkwXHVjNzU4IFx1YjllOCBcdWI0YTRcdWM1ZDAgXHVjODAxXHVjNWI0XHViM2M0IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjZjVcdWJjMzFcdWM3NzQgXHVjNzg4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVhZGY4XHViODA3XHVjOWMwIFx1YzU0YVx1Yzc0NCBcdWFjYmRcdWM2YjAgVE9PIEJJRyBcdWM1ZDBcdWI3ZWNcdWFjMDAgXHViYzFjXHVjMGRkXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cclxuXHRcdWFjMDBcdWM2YjRcdWIzNzAgXHVjODE1XHViODJjXHVhY2ZjIFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWM4MTVcdWI4MmNcdWM3NzQgXHVkNTVjIFx1YzkwNFx1YzVkMCBcdWIzZDlcdWMyZGNcdWM1ZDAgXHViNGYxXHVjN2E1XHVkNTU4XHViYTc0LCBcdWFjMDBcdWM2YjRcdWIzNzAgXHVjODE1XHViODJjXHViNDFjIFx1YmIzOFx1Yzc5MFx1Yzc1OCBcdWI5ZTggXHViNGE0XHVjNWQwIFx1YzgwMVx1YzViNFx1YjNjNCBcdWQ1NThcdWIwOThcdWM3NTggXHVhY2Y1XHViYzMxXHVjNzc0IFx1Yzc4OFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjgwN1x1YzljMCBcdWM1NGFcdWM3NDQgXHVhY2JkXHVjNmIwIFRPTyBCSUcgXHVjNWQwXHViN2VjXHVhYzAwIFx1YmMxY1x1YzBkZFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjNjdjXHVjYWJkIFx1YzgxNVx1YjgyY1x1YWNmYyBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjODE1XHViODJjXHVjNzc0IFx1ZDU1YyBcdWM5MDRcdWM1ZDAgXHViM2Q5XHVjMmRjXHVjNWQwIFx1YjRmMVx1YzdhNVx1ZDU1OFx1YmE3NCwgXHVjNjdjXHVjYWJkIFx1YzgxNVx1YjgyY1x1YjQxYyBcdWJiMzhcdWM3OTBcdWM3NTggXHViOWU4IFx1YjRhNFx1YzVkMCBcdWM4MDFcdWM1YjRcdWIzYzQgXHVkNTU4XHViMDk4XHVjNzU4IFx1YWNmNVx1YmMzMVx1Yzc3NCBcdWM3ODhcdWM1YjRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzAgXHVjNTRhXHVjNzQ0IFx1YWNiZFx1YzZiMCBUT08gQklHIFx1YzVkMFx1YjdlY1x1YWMwMCBcdWJjMWNcdWMwZGRcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1ZDVjOFx1YzZhOVx1YjQxOFx1YjI5NCBcdWQwZGNcdWFkZjhcdWIyOTQgXHVjNzA0XHVjNzU4IDdcdWFjMWNcdWI5Y2MgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0IEJBRCBUQUcgXHVjNWQwXHViN2VjXHVhYzAwIFx1YmMxY1x1YzBkZFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjNzk4XHViYWJiXHViNDFjIFx1ZDBkY1x1YWRmOCBcdWMwYWNcdWM2YTlcdWM3NzRcdWIwOTggXHVhZDA0XHVkNjM4IFx1YzMwZFx1Yzc3NCBcdWI5ZGVcdWM5YzAgXHVjNTRhXHVjNzQwIFx1YWNiZFx1YzZiMFx1YjNjNCBCQUQgVEFHIFx1YzVkMFx1YjdlY1x1YWMwMCBcdWJjMWNcdWMwZGRcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdE1VTFRJIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWM3ODVcdWI4MjVcdWJjMWJcdWM1NDRcdWMxMWMgXHVjNjJjXHViYzE0XHViOTc4IFx1YmE1NFx1YzJkY1x1YzljMCBcdWI2MTBcdWIyOTQgXHVjNWQwXHViN2VjIFx1YmE1NFx1YzJkY1x1YzljMFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNDxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHJcblx0XHVjY2FiXHVjOWY4XHVjOTA0XHVjNzQwIFx1YjM3MFx1Yzc3NFx1ZDEzMCBcdWMxMzhcdWQyYjhcdWM3NTggXHVjMjE4IE4oMSAmbGU7IE4gJmxlOyAxMDApXHVjNzc0IFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWI0ZTRcdWM1YjRcdWM2MjhcdWIyZTQuXHVhYzAxIFx1YjM3MFx1Yzc3NFx1ZDEzMCBcdWMxMzhcdWQyYjhcdWM3NTggXHVjY2FiIFx1YzkwNFx1Yzc0MCBSKDEgJmxlOyBSICZsZTsgMjUpXHVhY2ZjIEMoMSAmbGU7IEMgJmxlOyA4MClcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWI0ZTRcdWM1YjRcdWM2MjhcdWIyZTQuIChSXHVjNzQwIFx1ZDU4OSBcdWMyMTgsIENcdWIyOTQgXHVjNWY0IFx1YzIxOCkgXHViMmU0XHVjNzRjIFJcdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwIE1VTFRJIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWI0ZTRcdWM1YjRcdWM2MjhcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHJcblx0XHVhYzAxIFx1YjM3MFx1Yzc3NFx1ZDEzMCBcdWMxMzhcdWQyYjhcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YjM3MFx1Yzc3NFx1ZDEzMCBcdWMxMzhcdWQyYjggXHViYzg4XHVkNjM4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWNlMCwgXHViMmU0XHVjNzRjXHVjOTA0XHViZDgwXHVkMTMwJm5ic3A7Ulx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDAgXHVjNWQwXHViN2VjIFx1YmE1NFx1YzJkY1x1YzljMCBcdWI2MTBcdWIyOTQgXHViYTU0XHVjMmRjXHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gKENcdWFjMWNcdWM3NTggXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWNkOWNcdWI4MjVcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0KSBcdWFjMDEgXHViMzcwXHVjNzc0XHVkMTMwIFx1YzEzOFx1ZDJiOFx1Yzc1OCBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjOTA0XHVjNzQwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWQ1NWNcdWIyZTQuIChcdWNjNDRcdWM4MTBcdWM3NTggXHVkM2I4XHVjNzU4XHViOTdjIFx1YzcwNFx1ZDU3NCwgXHVjNWQwXHViN2VjXHVhYzAwIFx1Yzc4OFx1YjI5NCBcdWIzNzBcdWM3NzRcdWQxMzAgXHVjMTM4XHVkMmI4XHViMjk0IFx1ZDU1YyBcdWFjMDBcdWM5YzAgXHVkMGMwXHVjNzg1XHVjNzU4IFx1YzVkMFx1YjdlY1x1YjljYyBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHViMmU0KTxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjI3MjQiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTaWduIE1lc3NhZ2UgRm9ybWF0dGluZyIsImRlc2NyaXB0aW9uIjoiPHA+VGhlIE5hdGlvbmFsIFRyYW5zcG9ydGF0aW9uIENvbW11bmljYXRpb25zIGZvciBJVFMgUHJvdG9jb2wgKE5UQ0lQKSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGhpZ2h3YXkgc2lnbnMgd2l0aCBkeW5hbWljIG1lc3NhZ2VzIGRlc2NyaWJlcyB0aGUgbWVzc2FnZXMgdXNpbmcgTWFya3VwIExhbmd1YWdlIGZvciBUcmFuc3BvcnRhdGlvbiBJbmZvcm1hdGlvbiAoTVVMVEkpLiBBIE1VTFRJIHN0cmluZyBjb25zaXN0cyBvZiB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0b2dldGhlciB3aXRoIGVtYmVkZGVkIHRhZ3Mgd2hpY2ggZGVzY3JpYmUgZm9ybWF0dGluZyBvZiB0aGUgdGV4dCBhbmQgaW5jbHVkZWQgZHluYW1pYyBlbGVtZW50cy4gVGFncyBiZWdpbiB3aXRoIHRoZSBvcGVuIGJyYWNrZXQgKCZsc3F1bztbJmxzcXVvOykgY2hhcmFjdGVyIGFuZCBlbmQgd2l0aCB0aGUgY2xvc2UgYnJhY2tldCAoJmxzcXVvO10mcnNxdW87KSBjaGFyYWN0ZXIuIElmIGFuIG9wZW4gYnJhY2tldCBjaGFyYWN0ZXIgaXMgdG8gYXBwZWFyIGluIHRoZSB0ZXh0LCBpdCBpcyByZXByZXNlbnRlZCBhcyB0d28gb3BlbiBicmFja2V0IGNoYXJhY3RlcnMuIFNpbWlsYXJseSwgaWYgYSBjbG9zZSBicmFja2V0IGNoYXJhY3RlciBpcyB0byBhcHBlYXIgaW4gdGhlIHRleHQsIGl0IGlzIHJlcHJlc2VudGVkIGFzIHR3byBjbG9zZSBicmFja2V0IGNoYXJhY3RlcnMuIFRoaXMgcHJvYmxlbSBpcyBjb25jZXJuZWQgd2l0aCBmb3JtYXR0aW5nIGZvciBjaGFyYWN0ZXIgY2VsbCBkaXNwbGF5cywgd2hpY2ggYXJlIHJlY3Rhbmd1bGFyIGFycmF5cyBvZiBjaGFyYWN0ZXIgY2VsbHMgZWFjaCBvZiB3aGljaCBjYW4gZGlzcGxheSBhIHNpbmdsZSBjaGFyYWN0ZXIuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSB0YWdzIHRvIGJlIHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9ibGVtIGFyZTombmJzcDs8XC9wPlxyXG5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjcwJVwiPlxyXG5cdDx0aGVhZD5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+VGFnPFwvdGg+XHJcblx0XHRcdDx0aCBzdHlsZT1cIndpZHRoOjYwJVwiPkRlc2NyaXB0aW9uPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5bbmxdPFwvdGQ+XHJcblx0XHRcdDx0ZD5TdGFydCBhIG5ldyByb3cgb2YgdGhlIGFycmF5PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPltzYyZsdDtkaWdpdCZndDtdPFwvdGQ+XHJcblx0XHRcdDx0ZD5JbnNlcnQgJmx0O2RpZ2l0Jmd0OyBibGFuayBjaGFyYWN0ZXIgY2VsbHMgYmV0d2VlbiBlYWNoIHBhaXIgb2YgdGV4dCBjaGFyYWN0ZXJzIGluIHRoZSBmb2xsb3dpbmcgc3RyaW5nIHVudGlsIGNoYW5nZWQuIDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5bXC9zY108XC90ZD5cclxuXHRcdFx0PHRkPlNldCBpbnRlci1jaGFyYWN0ZXIgc3BhY2luZyB0byB6ZXJvIChlcXVpdmFsZW50IHRvIFtzYzBdKS48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psMl08XC90ZD5cclxuXHRcdFx0PHRkPlNldCBsZWZ0IGp1c3RpZmllZCB0ZXh0ICh0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSB0ZXh0IGlzIHRoZSBsZWZ0bW9zdCBjaGFyYWN0ZXIgb2YgdGhlIGxpbmUpLjxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5bamwzXTxcL3RkPlxyXG5cdFx0XHQ8dGQ+U2V0IGNlbnRlciBqdXN0aWZpZWQgdGV4dCAodGhlIG51bWJlciBvZiBjaGFyYWN0ZXIgcG9zaXRpb25zIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRleHQgb24gdGhlIGxpbmUgaXMgdGhlIHNhbWUgb3IgdGhlIG51bWJlciBhZnRlciBpcyBvbmUgbW9yZSB0aGFuIHRoZSBudW1iZXIgYmVmb3JlKS48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psNF08XC90ZD5cclxuXHRcdFx0PHRkPlNldCByaWdodCBqdXN0aWZpZWQgdGV4dCAodGhlIGZpbmFsIGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nIGlzIHRoZSByaWdodG1vc3QgY2hhcmFjdGVyIG9uIHRoZSBsaW5lKS48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psNV08XC90ZD5cclxuXHRcdFx0PHRkPlNldCBmdWxseSBqdXN0aWZpZWQgdGV4dCAoYW4gZXF1YWwgbnVtYmVyIG9mIGJsYW5rIGNoYXJhY3RlciBzcGFjZXMsIGFzIGxhcmdlIGFzIHBvc3NpYmxlIGZvciB0aGUgbGluZSBsZW5ndGgsIGlzIHBsYWNlZCBiZXR3ZWVuIGVhY2ggcGFpciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0OyB0aGUgcmVzdWx0aW5nIHN0cmluZyBpcyBjZW50ZXJlZCBpbiB0aGUgbGluZSBhcyBmb3IgY2VudGVyZWQgdGV4dCkuIDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+Rm9yIGV4YW1wbGUsIG9uIGEgMjQgY2hhcmFjdGVyIGxpbmUgKFx1MjVhMSBpbmRpY2F0ZXMgYSBibGFuayBjaGFyYWN0ZXIgY2VsbCk6Jm5ic3A7PFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDo3MCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aCBzdHlsZT1cIndpZHRoOjI1JVwiPkZvcm1hdCBTdHJpbmc8XC90aD5cclxuXHRcdFx0PHRoIHN0eWxlPVwid2lkdGg6NDUlXCI+R2VuZXJhdGVkIE91dHB1dDxcL3RoPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGhlYWQ+XHJcblx0PHRib2R5PlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psMl1NRVNTQUdFPFwvdGQ+XHJcblx0XHRcdDx0ZD5NRVNTQUdFXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPltqbDNdTUVTU0FHRTxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExXHUyNWExTUVTU0FHRVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD5bamw0XU1FU1NBR0U8XC90ZD5cclxuXHRcdFx0PHRkPlx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMU1FU1NBR0U8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psMl1bc2MyXU1FU1NBR0U8XC90ZD5cclxuXHRcdFx0PHRkPk1cdTI1YTFcdTI1YTFFXHUyNWExXHUyNWExU1x1MjVhMVx1MjVhMVNcdTI1YTFcdTI1YTFBXHUyNWExXHUyNWExR1x1MjVhMVx1MjVhMUVcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTFcdTI1YTE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+W2psNV1NRVNTQUdFPFwvdGQ+XHJcblx0XHRcdDx0ZD5cdTI1YTFcdTI1YTFNXHUyNWExXHUyNWExRVx1MjVhMVx1MjVhMVNcdTI1YTFcdTI1YTFTXHUyNWExXHUyNWExQVx1MjVhMVx1MjVhMUdcdTI1YTFcdTI1YTFFXHUyNWExXHUyNWExXHUyNWExPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPltqbDJdVEhJU1tqbDNdSVMgQVtqbDRdTUVTU0FHRTxcL3RkPlxyXG5cdFx0XHQ8dGQ+VEhJU1x1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMVx1MjVhMUlTIEFcdTI1YTFcdTI1YTFcdTI1YTFNRVNTQUdFPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcblxyXG48cD5MZXR0ZXJzIHdpdGhpbiB0YWdzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLiBUaGF0IGlzIFtubF0gPSBbTkxdID0gW05sXSA9IFtuTF0uJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBkZWZhdWx0IGp1c3RpZmljYXRpb24gYXQgdGhlIGJlZ2lubmluZyBvZiBhIG1lc3NhZ2UgaXMgbGVmdCBqdXN0aWZpY2F0aW9uIGFuZCB0aGUgZGVmYXVsdCBjaGFyYWN0ZXIgc3BhY2luZyBpcyAwLiZuYnNwOzxcL3A+XHJcblxyXG48cD5KdXN0aWZpY2F0aW9uIGFuZCBjaGFyYWN0ZXIgc3BhY2luZyBhcmUgbWFpbnRhaW5lZCBhY3Jvc3MgW25sXSB0YWdzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGUgW2psMl0gYW5kIFtqbDVdIHRhZ3MgbWF5IG9ubHkgYmUgdXNlZCBiZWZvcmUgYW55IHRleHQgaGFzIGJlZW4gb3V0cHV0IG9uIGEgbGluZS4gT3RoZXJ3aXNlIGl0IGlzIGFuIGVycm9yIChUQUcgQ09ORkxJQ1QpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5PbmNlIFtqbDVdIHRleHQgaGFzIGJlZW4gb3V0cHV0IG9uIGEgbGluZSwgbm8gb3RoZXIganVzdGlmaWNhdGlvbiB0YWcgbWF5IGJlIHNldCBvbiB0aGF0IGxpbmUuIE90aGVyd2lzZSBpdCBpcyBhbiBlcnJvciAoVEFHIENPTkZMSUNUKS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIFtqbDNdIHRhZyBtYXkgbm90IGJlIHVzZWQgYWZ0ZXIgcmlnaHQganVzdGlmaWVkIHRleHQgKFtqbDRdKSBoYXMgYmVlbiBvdXRwdXQgb24gYSBsaW5lLiBPdGhlcndpc2UgaXQgaXMgYW4gZXJyb3IgKFRBRyBDT05GTElDVCkuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkEganVzdGlmaWNhdGlvbiB0YWcgW2psP10gd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgY3VycmVudCB2YWx1ZSBkb2VzIG5vdCBjYXVzZSBhIFRBRyBDT05GTElDVCBlcnJvci4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RXh0cmEgY2hhcmFjdGVyIHNwYWNpbmcgc3BlY2lmaWVkIGJ5IHRoZSBbc2M/XSB0YWcgaXMgaWdub3JlZCBvbiBsaW5lcyB3aXRoIGZ1bGx5IGp1c3RpZmllZCB0ZXh0LiBUaGUgZnVsbCBqdXN0aWZpY2F0aW9uIHJ1bGVzIGRldGVybWluZSB0aGUgZXh0cmEgc3BhY2VzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5JZiB0b28gbWFueSBjaGFyYWN0ZXJzIGFyZSByZXF1aXJlZCBvbiBhIGxpbmUgb3IgdG9vIG1hbnkgbGluZXMgYXJlIHJlcXVpcmVkIGluIGEgbWVzc2FnZSwgaXQgaXMgYW4gZXJyb3IgKFRPTyBCSUcpLiBBIFtubF0gdGFnIGRvZXMgbm90IGJlZ2luIGEgbmV3IGxpbmUgdW5sZXNzIGZvbGxvd2VkIGJ5IHRleHQgb3V0cHV0LiZuYnNwOzxcL3A+XHJcblxyXG48cD5JZiBsZWZ0IGp1c3RpZmllZCB0ZXh0IGFuZCBjZW50ZXIganVzdGlmaWVkIHRleHQgYXBwZWFyIG9uIHRoZSBzYW1lIGxpbmUsIHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGJsYW5rIGNoYXJhY3RlciBjZWxsIGJldHdlZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGxlZnQganVzdGlmaWVkIHRleHQgYW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgY2VudGVyIGp1c3RpZmllZCB0ZXh0LiBPdGhlcndpc2UgaXQgaXMgYW4gZXJyb3IgKFRPTyBCSUcpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5JZiBjZW50ZXIganVzdGlmaWVkIHRleHQgYW5kIHJpZ2h0IGp1c3RpZmllZCB0ZXh0IGFwcGVhciBvbiB0aGUgc2FtZSBsaW5lLCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBibGFuayBjaGFyYWN0ZXIgY2VsbCBiZXR3ZWVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBjZW50ZXIganVzdGlmaWVkIHRleHQgYW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgcmlnaHQganVzdGlmaWVkIHRleHQuIE90aGVyd2lzZSBpdCBpcyBhbiBlcnJvciAoVE9PIEJJRykuJm5ic3A7PFwvcD5cclxuXHJcbjxwPklmIGxlZnQganVzdGlmaWVkIHRleHQgYW5kIHJpZ2h0IGp1c3RpZmllZCB0ZXh0IGFwcGVhciBvbiB0aGUgc2FtZSBsaW5lLCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBibGFuayBjaGFyYWN0ZXIgY2VsbCBiZXR3ZWVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBsZWZ0IGp1c3RpZmllZCB0ZXh0IGFuZCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHJpZ2h0IGp1c3RpZmllZCB0ZXh0LiBPdGhlcndpc2UgaXQgaXMgYW4gZXJyb3IgKFRPTyBCSUcpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGUgb25seSB0YWdzIGFsbG93ZWQgaW4gYSBtZXNzYWdlIGFyZSB0aGUgc2V2ZW4gdGFncyBsaXN0ZWQgYWJvdmUgb3RoZXJ3aXNlIGl0IGlzIGFuIGVycm9yIChCQUQgVEFHKS4gQSBtYWxmb3JtZWQgdGFnIG9yIGFuIHVubWF0Y2hlZCBzaW5nbGUgb3BlbiBvciBjbG9zZWQgYnJhY2tldCBpcyBhIEJBRCBUQUcgZXJyb3IuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkZvciB0aGlzIHByb2JsZW0geW91IHdpbGwgd3JpdGUgYSBwcm9ncmFtIHdoaWNoIHRha2VzIGFzIGlucHV0IHRoZSBkaW1lbnNpb25zIG9mIHRoZSBjaGFyYWN0ZXIgY2VsbCBhcnJheSBhbmQgYSBNVUxUSSBzdHJpbmcgYW5kIGVpdGhlciBvdXRwdXRzIGFuIGVycm9yIHN0cmluZyBvciBhIGNvcnJlY3RseSBmb3JtYXR0ZWQgbWVzc2FnZTxcL3A+IiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCBjb250YWlucyBhIHNpbmdsZSBpbnRlZ2VyIE4sICgxICZsZTsgTiAmbGU7IDEwMCksIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZGF0YXNldHMgdGhhdCBmb2xsb3cuIEVhY2ggZGF0YXNldCBjb25zaXN0cyBvZiBhIHNpbmdsZSBsaW5lIGNvbnRhaW5pbmcgYW4gaW50ZWdlciBSLCAoMSAmbGU7IFIgJmxlOyAyNSksIGEgYmxhbmssIGFuIGludGVnZXIgQywgKDEgJmxlOyBDICZsZTsgODApLCBhIGJsYW5rLCBhbmQgdGhlIHJlbWFpbmRlciBvZiB0aGUgbGluZSBpcyBhIE1VTFRJLVRleHQgc3RyaW5nLiBSIGlzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiB0aGUgY2hhcmFjdGVyIGNlbGwgYXJyYXksIEMgaXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBjaGFyYWN0ZXIgY2VsbCBhcnJheSwgYW5kIHRoZSBNVUxUSS1UZXh0IGlzIHRoZSB0ZXh0IHRvIGJlIGZvcm1hdHRlZC4mbmJzcDs8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBkYXRhc2V0LCBvdXRwdXQgdGhlIGRhdGFzZXQgbnVtYmVyIG9uIGEgbGluZSBieSBpdHNlbGYsIGZvbGxvd2VkIGJ5IG9uZSBvZiB0aGUgZXJyb3Igc3RyaW5ncyAoVEFHIENPTkZMSUNULCBUT08gQklHLCBCQUQgVEFHKSBvbiBhIGxpbmUgYnkgaXRzZWxmIGluIHRoZSBjYXNlIG9mIGFuIGVycm9yLCBvciwgUiBsaW5lcyBlYWNoIG9mIHdoaWNoIGhhcyBleGFjdGx5IEMgY2hhcmFjdGVycyAob3RoZXIgdGhhbiB0ZXJtaW5hdGluZyBuZXdsaW5lcykgcmVwcmVzZW50aW5nIHRoZSBmb3JtYXR0ZWQgbWVzc2FnZSB1c2luZyBzcGFjZSBjaGFyYWN0ZXJzIGZvciBlbXB0eSBjaGFyYWN0ZXIgY2VsbHMuIFRoZSBsYXN0IGxpbmUgb2Ygb3V0cHV0IGZvciBhIGRhdGFzZXQgcmVzdWx0IHNob3VsZCBiZSBhIHNpbmdsZSBibGFuayBsaW5lLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Gb3IgZWFzZSBpbiBncmFkaW5nLCBhIGRhdGFzZXQgdGhhdCBjb250YWlucyBhbiBlcnJvciB3aWxsIG9ubHkgY29udGFpbiBvbmUgdHlwZSBvZiBlcnJvci48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=