IiBNZW51IHRyYW5zbGF0aW9ucyBmb3IgQ2F0YWxhbgoiCiIgTWFpbnRhaW5lcjoJRXJuZXN0IEFkcm9ndekgPGVhZHJvZ3VlQGdteC5uZXQ+CiIgTGFzdCBDaGFuZ2U6CTE4IEphbiAyMDA0CiIKCiIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCmlmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQogIGZpbmlzaAplbmRpZgpsZXQgZGlkX21lbnVfdHJhbnMgPSAxCgoiIFRoZSB0cmFuc2xhdGlvbnMgYmVsb3cgYXJlIGluIGxhdGluMSwgYnV0IHRoZXkgd29yayBmb3IgY3AxMjUyLAoiIGlzby04ODU5LTE1IHdpdGhvdXQgY29udmVyc2lvbiBhcyB3ZWxsLgppZiAmZW5jICE9ICJjcDEyNTIiICYmICZlbmMgIT0gImlzby04ODU5LTE1IgogIHNjcmlwdGVuY29kaW5nIGxhdGluMQplbmRpZgoKCiIgbWVu+iBBanVkYQptZW51dHJhbnMgJkhlbHAJCQkJJkFqdWRhCm1lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JCSZJbnRyb2R1Y2Np8zxUYWI+PEYxPgptZW51dHJhbnMgJlVzZXJcIE1hbnVhbAkJCSZNYW51YWxcIGRlXCBsJ3VzdWFyaQptZW51dHJhbnMgJkhvdy10b1wgbGlua3MJCUNvbVwgJmZlclwuXC5cLj8KbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJkNlcmNhXC5cLlwuCm1lbnV0cmFucyAmQ3JlZGl0cwkJCSZBdXRvcnMKbWVudXRyYW5zIENvJnB5aW5nCQkJQ29uJmRpY2lvbnMKbWVudXRyYW5zIE8mcnBoYW5zCQkJJk9yZmVzCm1lbnV0cmFucyAmVmVyc2lvbgkJCSZWZXJzafMKbWVudXRyYW5zICZBYm91dAkJCSZRdWFudFwgYVwuXC5cLgoiIHRleHQgZGVsIGRp4GxlZyBBanVkYS9DZXJjYS4uLgpsZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiSW50cm9kde91IGVsIHRlcm1lIHNvYnJlIGVsIHF1YWwgbmVjZXNzaXRldSBhanVkYS5cblxuVXNldSBlbCBwcmVmaXggaV8gcGVyIG9yZHJlcyBkJ2VudHJhZGEgKHAuZXguOiBpX0NUUkwtWClcblVzZXUgZWwgcHJlZml4IGNfIHBlciBvcmRyZXMgZGUgbGEgbO1uaWEgZCdvcmRyZXMgKHAuZXguOiBjXzxEZWw+KVxuVXNldSBlbCBwcmVmaXggJyBwZXIgbm9tcyBkJ29wY2lvbnMgKHAuZXguOiAnc2hpZnR3aWR0aCcpIgoKCiIgbWVu+iBGaXR4ZXIKbWVudXRyYW5zICZGaWxlCQkJCSZGaXR4ZXIKbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkJJk9icmVcLlwuXC48VGFiPjplCm1lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCU9icmVcIGVuXCB1bmFcICZmaW5lc3RyYVwgbm92YVwuXC5cLjxUYWI+OnNwCm1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk5vdTxUYWI+OmVuZXcKbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCQkmVGFuY2E8VGFiPjpjbG9zZQptZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJkRlc2E8VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJJkFub21lbmFcIGlcIGRlc2FcLlwuXC48VGFiPjpzYXYKbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLgkmTW9zdHJhXCBsZXNcIGRpZmVy6G5jaWVzXCByZXNwZWN0ZVwuXC5cLgptZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLglBcGxpY2FcIGxlc1wgbW9kaWZpY2FjaW9uc1wgZGVcLlwuXC4KbWVudXRyYW5zICZQcmludAkJCSZJbXByaW1laXgKbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJCURlc2FcIGlcIHMmdXJ0PFRhYj46d3FhCm1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkJJlN1cnQ8VGFiPjpxYQoKCiIgbWVu+iBFZGl0YQptZW51dHJhbnMgJkVkaXQJCQkJJkVkaXRhCm1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZEZXNm6XM8VGFiPnUKbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZSZWbpczxUYWI+XlIKbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCQlSZSZwZXRlaXg8VGFiPlwuCm1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQlSZSZ0YWxsYTxUYWI+Iit4Cm1lbnV0cmFucyAmQ29weTxUYWI+Iit5CQkJJkNvcGlhPFRhYj4iK3kKbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJRW5nYW4meGE8VGFiPiIrZ1AKbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJCVBvc2FcICZhYmFuczxUYWI+W3AKbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkJUCZvc2FcIGRlc3By6XM8VGFiPl1wCm1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkJU3VwcmltZWl4PFRhYj54Cm1lbnV0cmFucyAmU2VsZWN0XCBhbGw8VGFiPmdnVkcJCSZTZWxlY2Npb25hLWhvXCB0b3Q8VGFiPmdnVkcKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJkNlcmNhXC5cLlwuCm1lbnV0cmFucyAmRmluZDxUYWI+LwkJCSZDZXJjYTxUYWI+LwptZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZQkJQ2VyY2FcIGlcIHMmdWJzdGl0dWVpeAptZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLglDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4XC5cLlwuCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46JXMJQ2VyY2FcIGlcIHMmdWJzdGl0dWVpeDxUYWI+OiVzCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46cwlDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4PFRhYj46cwptZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJCSZGaW5lc3RyYVwgZCdvcGNpb25zCm1lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkJT3BjaW9uc1wgJmdsb2JhbHMKIiBzdWJtZW76IEVkaXRhL09wY2lvbnMgR2xvYmFscwogIG1lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJUmVzc2FsdFwgZGVcICZwYXRyb25zPFRhYj46c2V0XCBobHMhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEJCVNlbnNpYmlsaXRhdFwgYVwgbGVzXCBtYSZq+nNjdWxlczxUYWI+OnNldFwgaWMhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hCQkmUmVzc2FsdFwgZGVcIGNvaW5jaWTobmNpZXM8VGFiPjpzZXRcIHNtIQogIG1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMJCQkJTO1uaWVzXCBkZVwgY28mbnRleHQKICBtZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJRWRpY2nzXCAmdmlydHVhbAoiIHN1Ym1lbvogRWRpdGEvT3BjaW9ucyBHbG9iYWxzL0VkaWNp8yB2aXJ0dWFsCiAgICBtZW51dHJhbnMgTmV2ZXIJCQkJCSZNYWkKICAgIG1lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uCQkJCSZTZWxlY2Np81wgZGVcIGJsb2NzCiAgICBtZW51dHJhbnMgSW5zZXJ0XCBtb2RlCQkJCU1vZGVcIGQnJmluc2VyY2nzCiAgICBtZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQkJJkJsb2NzIGkgaW5zZXJjafMKICAgIG1lbnV0cmFucyBBbHdheXMJCQkJCVMmZW1wcmUKICBtZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJCU1vZGVcIGQnJmluc2VyY2nzPFRhYj46c2V0XCBpbSEKICBtZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwIQlDbyZtcGF0aWJsZVwgYW1iXCBWaTxUYWI+OnNldFwgY3AhCiAgbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJJlViaWNhY2lvbnNcLlwuXC4KICBtZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4JCQkJRml0eGVyc1wgZCcmZXRpcXVldGVzXC5cLlwuCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIJCQkJJkJhcnJhXCBkJ2VpbmVzCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCQkJQmFycmFcIGRlXCAmZGVzcGxh52FtZW50XCBpbmZlcmlvcgogIG1lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJCQlCYXJyYVwgZGVcIGRlc3BsYedhbWVudFwgZSZzcXVlcnJhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJCQlCYXJyYVwgZGVcIGRlc3BsYedhbWVudFwgZHJlJnRhCm1lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJCQkJT3BjaW9uc1wgZGVsXCBmJml0eGVyCiIgc3VibWVu+iBFZGl0YS9PcGNpb25zIGRlbCBmaXR4ZXIKICBtZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJJkVubnVtZXJhXCBsZXNcIGztbmllczxUYWI+OnNldFwgbnUhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQlNb2RlXCAmbGxpc3RhPFRhYj46c2V0XCBsaXN0IQogIG1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkJQSZqdXN0YVwgbGVzXCBs7W5pZXNcIGxsYXJndWVzPFRhYj46c2V0XCB3cmFwIQogIG1lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyIQlBanVzdGFcIHNlbnNlXCBwYXJ0aXJcICZwYXJhdWxlczxUYWI+OnNldFwgbGJyIQogIG1lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJCUVzdOluXCBsZXNcIHRhJmJ1bGFjaW9uczxUYWI+OnNldFwgZXQhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJCSZTYWduaWFcIGF1dG9t4HRpY2E8VGFiPjpzZXRcIGFpIQogIG1lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkJU2FnbmlhXCBlc3RpbFwgJkM8VGFiPjpzZXRcIGNpbiEKICBtZW51dHJhbnMgJlNoaWZ0d2lkdGgJCQkJCVNhJmduaWEKICBtZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJCQkJQW1wbGFkYVwgZGVcICZ0YWJ1bGFjafMKICBtZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCQkJCSZBbXBsYWRhXCBkZWxcIHRleHRcLlwuXC4KICBtZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkJCQkmRm9ybWF0XCBkZWxcIGZpdHhlclwuXC5cLgptZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkJVGlwdXNcIGRlXCAmbGxldHJhXC5cLlwuCm1lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkJRXMmcXVlbWFcIGRlXCBjb2xvcnMKIiBzdWJtZW76IEVkaXRhL0VzcXVlbWEgZGUgY29sb3JzCiAgbWVudXRyYW5zIGJsdWUJCQlibGF1CiAgbWVudXRyYW5zIGRhcmtibHVlCQkJYmxhdVwgZm9zYwogIG1lbnV0cmFucyBkZWZhdWx0CQkJbm9ybWFsCiAgbWVudXRyYW5zIGRlc2VydAkJCWRlc2VydAogIG1lbnV0cmFucyBldmVuaW5nCQkJdmVzcHJhZGEKICBtZW51dHJhbnMgbW9ybmluZwkJCW1hdGluYWRhCiAgbWVudXRyYW5zIHBlYWNocHVmZgkJCXBy6XNzZWMKICBtZW51dHJhbnMgc2hpbmUJCQlicmlsbGFudAptZW51dHJhbnMgJktleW1hcAkJCSZNYXBhXCBkZVwgdGVjbGVzCiIgc3VibWVu+iBFZGl0YS9NYXBhIGRlIHRlY2xlcwogIG1lbnV0cmFucyBOb25lCQkJQ2FwCiAgbWVudXRyYW5zIGFjY2VudHMJCQlBY2NlbnRzCiAgbWVudXRyYW5zIGFyYWJpYwkJCcByYWIKICBtZW51dHJhbnMgY3plY2gJCQlUeGVjCiAgbWVudXRyYW5zIGVzcGVyYW50bwkJCUVzcGVyYW50bwogIG1lbnV0cmFucyBncmVlawkJCUdyZWMKICBtZW51dHJhbnMgaGVicmV3CQkJSGVicmV1CiAgbWVudXRyYW5zIGhlYnJld3AJCQlIZWJyZXVcIChmb27odGljKQogIG1lbnV0cmFucyBsaXRodWFuaWFuLWJhbHRpYwkJTGl0deBcIChi4Gx0aWMpCiAgbWVudXRyYW5zIHBpbnlpbgkJCU1hbmRhcu1cIChmb27odGljKQogIG1lbnV0cmFucyBydXNzaWFuLWpjdWtlbgkJUnVzXCAoamN1a2VuKQogIG1lbnV0cmFucyBydXNzaWFuLWpjdWtlbndpbgkJUnVzXCAoamN1a2Vud2luKQogIG1lbnV0cmFucyBydXNzaWFuLXlhd2VydHkJCVJ1c1wgKHlhd2VydHkpCiAgbWVudXRyYW5zIHNlcmJpYW4JCQlTZXJiaQogIG1lbnV0cmFucyBzZXJiaWFuLWxhdGluCQlTZXJiaVwgKGxsYXTtKQogIG1lbnV0cmFucyBzbG92YWsJCQlFc2xvdmFjCiIgdGV4dCBkZWwgZGngbGVnIEVkaXRhL09wY2lvbnMgZ2xvYmFscy9VYmljYWNpb25zLi4uCmxldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJJbnRyb2R173UgbGVzIHViaWNhY2lvbnMgb24gY2VyY2FyIGZpdHhlcnMuXG5TZXBhcmV1IGVscyBub21zIGRlbHMgZGlyZWN0b3JpcyBhbWIgdW5hIGNvbWEuIgoiIHRleHQgZGVsIGRp4GxlZyBFZGl0YS9PcGNpb25zIGdsb2JhbHMvRml0eGVycyBkJ2V0aXF1ZXRlcy4uLgpsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiSW50cm9kde91IGVscyBub21zIGRlbHMgZml0eGVycyBkJ2V0aXF1ZXRlcy5cblNlcGFyZXUgZWxzIG5vbXMgYW1iIHVuYSBjb21hLiIKIiB0ZXh0IGRlbCBkaeBsZWcgRWRpdGEvT3BjaW9ucyBkZWwgZml0eGVyL0FtcGxhZGEgZGVsIHRleHQuLi4KbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiSW50cm9kde91IGxhIG5vdmEgYW1wbGFkYSBkZWwgdGV4dCAoMCBwZXIgaW5maW5pdCk6ICIKIiB0ZXh0IGRlbCBkaeBsZWcgRWRpdGEvT3BjaW9ucyBkZWwgZml0eGVyL0Zvcm1hdCBkZWwgZml0eGVyLi4uCmxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJTZWxlY2Npb25ldSBlbCBmb3JtYXQgcGVyIGVzY3JpdXJlIGVsIGZpdHhlci4iCgoKIiBtZW76IEVpbmVzCm1lbnV0cmFucyAmVG9vbHMJCQlFaSZuZXMKbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JJlNhbHRhXCBhXCBhcXVlc3RhXCBldGlxdWV0YTxUYWI+Z15dCm1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJCVNhbHRhXCBlbiZyZXJlPFRhYj5eVAptZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQlDcmVhXCB1blwgZml0eGVyXCBkJ2V0aSZxdWV0ZXMKbWVudXRyYW5zICZGb2xkaW5nCQkJJlBsZWNzCiIgc3VibWVu+iBFaW5lcy9QbGVjcwogIG1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aSAgJkhhYmlsaXRhL0Rlc2hhYmlsaXRhXCBlbHNcIHBsZWNzPFRhYj56aQogIG1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkmTO1uaWFcIGRlbFwgY3Vyc29yXCB2aXNpYmxlPFRhYj56dgogIG1lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4ICAmTm9t6XNcIHZpc2libGVcIGxhXCBs7W5pYVwgZGVsXCBjdXJzb3I8VGFiPnpNengKICBtZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0JJlRhbmNhXCBt6XNcIHBsZWNzPFRhYj56bQogIG1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNCVRhbmNhXCB0Jm90c1wgZWxzXCBwbGVjczxUYWI+ek0KICBtZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56cglPYnJlXCAmbelzXCBwbGVjczxUYWI+enIKICBtZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCU8mYnJlXCB0b3RzXCBlbHNcIHBsZWNzPFRhYj56UgogIG1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQlN6HRvJmRlCiIgc3VibWVu+iBFaW5lcy9QbOhjcy9N6HRvZGUKICAgIG1lbnV0cmFucyBNJmFudWFsCQkJTSZhbnVhbAogICAgbWVudXRyYW5zIEkmbmRlbnQJCQkmU2FnbmlhCiAgICBtZW51dHJhbnMgRSZ4cHJlc3Npb24JCUUmeHByZXNzafMKICAgIG1lbnV0cmFucyBTJnludGF4CQkJUyZpbnRheGkKICAgIG1lbnV0cmFucyAmRGlmZgkJCSZEaWZlcuhuY2llcwogICAgbWVudXRyYW5zIE1hJnJrZXIJCQkmTWFycXVlcwogIG1lbnV0cmFucyBDcmVhdGVcICZGb2xkPFRhYj56ZgkmQ3JlYVwgdW5cIHBsZWM8VGFiPnpmCiAgbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCSZFbGltaW5hXCB1blwgcGxlYzxUYWI+emQKICBtZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJRWxpbWluYVwgdG90JnNcIGVsc1wgcGxlY3M8VGFiPnpECiAgbWVudXRyYW5zIEZvbGRcIGNvbCZ1bW5cIHdpZHRoCSZBbXBsYWRhXCBkZVwgbGFcIGNvbHVtbmFcIGRlXCBwbGVjcwptZW51dHJhbnMgJkRpZmYJCQkJJkRpZmVy6G5jaWVzCiIgc3VibWVu+iBFaW5lcy9EaWZlcuhuY2llcwogICAgbWVudXRyYW5zICZVcGRhdGUJCQkmQWN0dWFsaXR6YQogICAgbWVudXRyYW5zICZHZXRcIEJsb2NrCQkmT2J0aW5ndWVzXCB1blwgYmxvYwogICAgbWVudXRyYW5zICZQdXRcIEJsb2NrCQkmUG9zYVwgdW5cIGJsb2MKbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZQkJQ3JpZGFcIGFcICZtYWtlPFRhYj46bWFrZQptZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQlMbGlzdGFcIGQnJmVycm9yczxUYWI+OmNsCm1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJJkxsaXN0YVwgZGVcIG1pc3NhdGdlczxUYWI+OmNsIQptZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JCUVycm9yXCBzZSZn/GVudDxUYWI+OmNuCm1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJRXJyb3JcIGFuJnRlcmlvcjxUYWI+OmNwCm1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCUxsaXN0YVwgJmFudGlnYTxUYWI+OmNvbGQKbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJTGxpc3RhXCBubyZ2YTxUYWI+OmNuZXcKbWVudXRyYW5zIEVycm9yXCAmV2luZG93CQlGJmluZXN0cmFcIGQnZXJyb3JzCiIgc3VibWVu+iBFaW5lcy9GaW5lc3RyYSBkJ2Vycm9ycwogIG1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkJJkFjdHVhbGl0emE8VGFiPjpjd2luCiAgbWVudXRyYW5zICZPcGVuPFRhYj46Y29wZW4JCSZPYnJlPFRhYj46Y29wZW4KICBtZW51dHJhbnMgJkNsb3NlPFRhYj46Y2Nsb3NlCQkmVGFuY2E8VGFiPjpjY2xvc2UKbWVudXRyYW5zICZTZXRcIENvbXBpbGVyCQkmQ29tcGlsYWRvcgptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlDb252ZXJ0ZWl4XCBhXCAmSEVYPFRhYj46JSF4eGQKbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCVRvcm5hXCBhbFwgZm9ybWF0XCAmb3JpZ2luYWw8VGFiPjolIXh4ZFwgLXIKCgoiIG1lbvogQnVmZmVycwptZW51dHJhbnMgJkJ1ZmZlcnMJCQkmQnVmZmVycwptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJCSZSZWZyZXNjYVwgZWxcIG1lbvoKbWVudXRyYW5zICZEZWxldGUJCQkmRWxpbWluYQptZW51dHJhbnMgJkFsdGVybmF0ZQkJCSZBbHRlcm5hCm1lbnV0cmFucyAmTmV4dAkJCQkmU2Vn/GVudAptZW51dHJhbnMgJlByZXZpb3VzCQkJQSZudGVyaW9yCmxldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltDYXAgZml0eGVyXSIKCgoiIG1lbvogRmluZXN0cmEKbWVudXRyYW5zICZXaW5kb3cJCQlGJmluZXN0cmEKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCSZOb3ZhPFRhYj5eV24KbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkmRGl2aWRlaXg8VGFiPl5XcwptZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglEaXZpZGVpeFwgJmVuXCAjPFRhYj5eV15eCm1lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglEaXZpZGVpeFwgJnZlcnRpY2FsbWVudDxUYWI+Xld2Cm1lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCUUmeHBsb3JhZG9yXCBkZVwgZml0eGVycwptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZUYW5jYTxUYWI+XldjCm1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JVGFuY2FcIGxlc1wgYWx0cmUmczxUYWI+XldvCm1lbnV0cmFucyBNb3ZlXCAmVG8JCQlNJm91XCBhCiIgc3VibWVu+iBGaW5lc3RyYS9Nb3UKICBtZW51dHJhbnMgJlRvcDxUYWI+XldLCQkmRGFsdFwgZGVcIHRvdDxUYWI+XldLCiAgbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkJJkJhaXhcIGRlXCB0b3Q8VGFiPl5XSgogIG1lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICQlDb3N0YXRcICZlc3F1ZXJyYTxUYWI+XldICiAgbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCUNvc3RhdFwgZCZyZXQ8VGFiPl5XTAptZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkJQWx0ZXJuYVwgY2FwXCBhbSZ1bnQ8VGFiPl5XUgptZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyCQlBbHRlJnJuYVwgY2FwXCBhdmFsbDxUYWI+XldyCm1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJklndWFsYTxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJTeB4aW1hXCAmYWznYWRhPFRhYj5eV18KbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJTe1uaW1hXCBhJmznYWRhPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJTeB4aW1hXCBhJm1wbGFkYTxUYWI+XldcfAptZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQlN7W5pbWFcIGFtJnBsYWRhPFRhYj5eVzFcfAoKCiIgbWVu+iBlbWVyZ2VudAptZW51dHJhbnMgJlVuZG8JCQkJJkRlc2bpcwptZW51dHJhbnMgQ3UmdAkJCQkmUmV0YWxsYQptZW51dHJhbnMgJkNvcHkJCQkJJkNvcGlhCm1lbnV0cmFucyAmUGFzdGUJCQkmRW5nYW54YQptZW51dHJhbnMgJkRlbGV0ZQkJCSZTdXByaW1laXgKbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCQlTZSZsZWNjafMKbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCQlTZWxlY2Np81wgZGVcICZwYXJhdWxlcwptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJCVNlbGVjY2nzXCBkZVwgJmztbmllcwptZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCVNlbGVjY2nzXCBkZVwgYmwmb2NzCm1lbnV0cmFucyBTZWxlY3RcICZBbGwJCQlTZWxlY2Npb25hLWhvXCAmdG90CgoKIiBiYXJyYSBkJ2VpbmVzCmlmIGhhcygidG9vbGJhciIpCiAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCiAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQogIGVuZGlmCiAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQogICAgdG1lbnUgVG9vbEJhci5PcGVuCQlPYnJlIHVuIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlEZXNhIGVsIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsCURlc2EgdG90cyBlbHMgZml0eGVycwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJSW1wcmltZWl4CiAgICB0bWVudSBUb29sQmFyLlVuZG8JCURlc2bpcwogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlSZWbpcwogICAgdG1lbnUgVG9vbEJhci5DdXQJCVJldGFsbGEKICAgIHRtZW51IFRvb2xCYXIuQ29weQkJQ29waWEKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCUVuZ2FueGEKICAgIHRtZW51IFRvb2xCYXIuRmluZAkJQ2VyY2EKICAgIHRtZW51IFRvb2xCYXIuRmluZE5leHQJQ2VyY2EgZWwgc2Vn/GVudAogICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglDZXJjYSBsJ2FudGVyaW9yCiAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJQ2VyY2EgaSBzdWJzdGl0dWVpeAogICAgaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQogICAgICB0bWVudSBUb29sQmFyLk5ldwkJRmluZXN0cmEgbm92YQogICAgICB0bWVudSBUb29sQmFyLldpblNwbGl0CURpdmlkZWl4IGxhIGZpbmVzdHJhCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4CUFs52FkYSBt4HhpbWEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JQWznYWRhIG3tbmltYQogICAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdAlEaXZpZGVpeCBsYSBmaW5lc3RyYSB2ZXJ0aWNhbG1lbnQKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aAlBbXBsYWRhIG3geGltYQogICAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoCUFtcGxhZGEgbe1uaW1hCiAgICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UJVGFuY2EgbGEgZmluZXN0cmEKICAgIGVuZGlmCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCUNhcnJlZ2EgdW5hIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglEZXNhIGxhIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJRXhlY3V0YSB1biBzY3JpcHQKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJQ3JpZGEgYSBtYWtlCiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlPYnJlIGwnaW506HJwcmV0IGQnb3JkcmVzCiAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzCUNyZWEgdW4gZml0eGVyIGQnZXRpcXVldGVzCiAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJU2FsdGEgYSB1bmEgZXRpcXVldGEKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJQWp1ZGEKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJQ2VyY2EgYSBsJ2FqdWRhCiAgZW5kZnVuCmVuZGlmCgoKIiBtZW76IFNpbnRheGkKbWVudXRyYW5zICZTeW50YXgJCQkmU2ludGF4aQptZW51dHJhbnMgJk1hbnVhbAkJCSZNYW51YWwKbWVudXRyYW5zIEEmdXRvbWF0aWMJCQlBJnV0b23gdGljYQptZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlCUFjdGl2YS9EZXNhY3RpdmFcIGVuXCAmYXF1ZXN0XCBmaXR4ZXIKbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51CU1vc3RyYVwgdG90c1wgZWxzXCAmdGlwdXNcIGFsXCBtZW76Cm1lbnV0cmFucyAmT2ZmCQkJCSZEZXNhY3RpdmEKbWVudXRyYW5zIENvJmxvclwgdGVzdAkJCVByb3ZhXCBkZWxzXCAmY29sb3JzCm1lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0CQlQcm92YVwgZGVsXCAmcmVzc2FsdAptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MCQlDb252ZXJ0ZWl4XCBhXCAmSFRNTAptZW51dHJhbnMgQXNzZW1ibHkJCQlFbnNhbWJsYWRvcgptZW51dHJhbnMgQ29uZmlnCQkJQ29uZmlndXJhY2nzCm1lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkJTm9t6XNcIGVsXCByZXNzYWx0XCBkZVwgc2ludGF4aQptZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQlDYXJyZWdhXCB0YW1i6VwgZWxzXCBwbHVnaW5zCgo=