{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tCiAgICDilZTilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZcKICAgIOKVkSAgQlJBTkRIQU5EU0hBS0UgT0ZGSUNJQUwgQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIEZJTEU6IGJyYW5kaGFuZHNoYWtlLWNvbXBsZXRlLXBheW1lbnQtU0xVRy1jb21wbGV0ZS1wYXltZW50LVYxLmh0bWwgICAgICAgICDilZEKICAgIOKVkSAgU0xVRzogL2NvbXBsZXRlLXBheW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBWRVJTSU9OOiBWLTEgT0ZGSUNJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIExBU1QgVVBEQVRFRDogSmFudWFyeSAyMDI2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgU1RBVFVTOiDinIUgTElWRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVoOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVowogICAg4pWRICBQVVJQT1NFOiBTaG93IHBheW1lbnQgaW5mbyBhZnRlciBkZXNpZ24gZm9ybSBzdWJtaXNzaW9uICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIFJFRElSRUNURUQgRlJPTTogL2Rlc2lnbi1uZXh0c3RlcHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgQU1CQVNTQURPUlM6IERhdmlzLCBUZW5kbywgRXpyYSAoVWdhbmRhKSB8IEFyYWZhdCwgT3NjYXIgKEtlbnlhKSAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIMKpIDIwMjYgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIPCflJAgUFJPVEVDVEVEIENPREUgLSBVbmF1dGhvcml6ZWQgY29weWluZyBwcm9oaWJpdGVkLiAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdCiAgICAtLT4KICAgIAogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgCiAgICA8IS0tID09PT09PT09PT0gU0VDVVJJVFkgSEVBREVSUyA9PT09PT09PT09IC0tPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1GcmFtZS1PcHRpb25zIiBjb250ZW50PSJTQU1FT1JJR0lOIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJmcmFtZS1hbmNlc3RvcnMgJ3NlbGYnIGh0dHBzOi8vKi5icmFuZGhhbmRzaGFrZS5jb20gaHR0cHM6Ly8qLmhhbmRzaGFrZS5hZnJpY2EiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1Db250ZW50LVR5cGUtT3B0aW9ucyIgY29udGVudD0ibm9zbmlmZiI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVhTUy1Qcm90ZWN0aW9uIiBjb250ZW50PSIxOyBtb2RlPWJsb2NrIj4KICAgIDxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIj4KICAgIDwhLS0gPT09PT09PT09PSBFTkQgU0VDVVJJVFkgPT09PT09PT09PSAtLT4KICAgIAogICAgPHRpdGxlPkNvbXBsZXRlIFlvdXIgUGF5bWVudCB8IEJyYW5kSGFuZHNoYWtlPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDb21wbGV0ZSB5b3VyIHBheW1lbnQgdG8gZ2V0IHlvdXIgZGlnaXRhbCBidXNpbmVzcyBjYXJkIGRlc2lnbmVkLiI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9jb21wbGV0ZS1wYXltZW50Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTp3Z2h0QDQwMDs1MDA7NjAwOzcwMDs4MDAmZmFtaWx5PU51bml0bzp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1uYXZ5OiAjMEQxQjJBOwogICAgICAgICAgICAtLWluZGlnbzogIzFDMUY0QTsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLWl2b3J5OiAjRjhGNEVDOwogICAgICAgICAgICAtLWRlZXBnb2xkOiAjQjg5NzJFOwogICAgICAgICAgICAtLWNoYXJjb2FsOiAjMGEwYTEyOwogICAgICAgICAgICAtLWdyZWVuOiAjMTBiOTgxOwogICAgICAgICAgICAtLWN5YW46ICMwNmI2ZDQ7CiAgICAgICAgICAgIC0tcHVycGxlOiAjOGI1Y2Y2OwogICAgICAgICAgICAtLWVsZWN0cmljOiAjODE4Y2Y4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hhcmNvYWwpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEFOSU1BVEVEIEJBQ0tHUk9VTkQgKi8KICAgICAgICAuYmctbWFzdGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSAxMCUsIHJnYmEoMTYsIDE4NSwgMTI5LCAwLjI1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSA5MCUsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDUwJSwgcmdiYSg2LCAxODIsIDIxMiwgMC4xNSkgMCUsIHRyYW5zcGFyZW50IDYwJSksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jaGFyY29hbCkgMCUsIHZhcigtLW5hdnkpIDUwJSwgdmFyKC0taW5kaWdvKSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2UtY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEhFQURFUiAqLwogICAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLmJyYW5kLWxvZ28gewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1jeWFuKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFNVQ0NFU1MgQkFER0UgKi8KICAgICAgICAuc3VjY2Vzcy1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ncmVlbik7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMzVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JlZW4pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgICAgICBhbmltYXRpb246IHN1Y2Nlc3NQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzdWNjZXNzUHVsc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpOyB9CiAgICAgICAgICAgIDUwJSB7IGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjUpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCA1dncsIDIuNXJlbSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5wYWdlLXRpdGxlIC5oaWdobGlnaHQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbikpOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIH0KICAgICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjgpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDU1MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU1RFUCBJTkRJQ0FUT1IgKi8KICAgICAgICAuc3RlcC1pbmRpY2F0b3IgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBtYXJnaW46IDQwcHggMDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAuc3RlcCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgICAgLnN0ZXAuY29tcGxldGVkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMik7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdyZWVuKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuKTsKICAgICAgICB9CiAgICAgICAgLnN0ZXAuY3VycmVudCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1kZWVwZ29sZCkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogY3VycmVudFB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgY3VycmVudFB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH0KICAgICAgICB9CiAgICAgICAgLnN0ZXAucGVuZGluZyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjMpOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuc3RlcC1hcnJvdyB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuMyk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQQVlNRU5UIFNFQ1RJT04gKi8KICAgICAgICAucGF5bWVudC1zZWN0aW9uIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1oZWFkZXIgaDIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtaGVhZGVyIHAgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQQVlNRU5UIENBUkRTICovCiAgICAgICAgLnBheW1lbnQtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDI4LCAzMSwgNzQsIDAuNyksIHJnYmEoMTMsIDI3LCA0MiwgMC45NSkpOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1jYXJkOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1jYXJkLnVnYW5kYSB7IGJvcmRlci1jb2xvcjogcmdiYSgxMzksIDkyLCAyNDYsIDAuNCk7IH0KICAgICAgICAucGF5bWVudC1jYXJkLnVnYW5kYTpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tcHVycGxlKTsgfQogICAgICAgIC5wYXltZW50LWNhcmQua2VueWEgeyBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjQpOyB9CiAgICAgICAgLnBheW1lbnQtY2FyZC5rZW55YTpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tZ3JlZW4pOyB9CiAgICAgICAgCiAgICAgICAgLnBheW1lbnQtZmxhZyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1jb3VudHJ5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtbWV0aG9kIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY3lhbik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWFtYmFzc2Fkb3JzIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuMSk7CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLW5hbWUgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1waG9uZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF5bWVudC13aGF0c2FwcCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyNUQzNjYsICMxMjhDN0UpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5wYXltZW50LXdoYXRzYXBwOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDM3LCAyMTEsIDEwMiwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLndoYXRzYXBwLWJ1dHRvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLndoYXRzYXBwLWJ1dHRvbnMgLnBheW1lbnQtd2hhdHNhcHAgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtd2hhdHNhcHAub3NjYXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTI4QzdFLCAjMDc1RTU0KTsKICAgICAgICB9CiAgICAgICAgLmFtYmFzc2Fkb3Itbm90ZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC40KTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBFbWFpbCBBbGVydHMgU2VjdGlvbiAqLwogICAgICAgIC5lbWFpbC1hbGVydHMtc2VjdGlvbiB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxNXB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjEpOwogICAgICAgIH0KICAgICAgICAuZW1haWwtYWxlcnQtbGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC42KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAuZW1haWwtYWxlcnQtYnV0dG9ucyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuaW5saW5lLWFsZXJ0LWZvcm0gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICB9CiAgICAgICAgLm1pbmktaW5wdXQgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2LCAxODIsIDIxMiwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgfQogICAgICAgIC5taW5pLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jeWFuKTsKICAgICAgICB9CiAgICAgICAgLm1pbmktaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuIHsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuLmRhdmlzIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhiNWNmNiwgIzZkMjhkOSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuLnRlbmRvIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzNiODJmNiwgIzFkNGVkOCk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuLmV6cmEgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDZiNmQ0LCAjMDg5MWIyKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAubWluaS1hbGVydC1idG4uYXJhZmF0IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwYjk4MSwgIzA1OTY2OSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuLm9zY2FyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y1OWUwYiwgI2Q5NzcwNik7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLm1pbmktYWxlcnQtYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRW1haWwgQWxlcnQgRm9ybSAqLwogICAgICAgIC5lbWFpbC1hbGVydC1mb3JtIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLmFsZXJ0LWlucHV0IHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDYsIDE4MiwgMjEyLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICB9CiAgICAgICAgLmFsZXJ0LWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jeWFuKTsKICAgICAgICB9CiAgICAgICAgLmFsZXJ0LWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1hbGVydC1idG4gewogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNiwgMTgyLCAyMTIsIDAuMik7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWN5YW4pOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY3lhbik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1hbGVydC1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jeWFuKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBDb3Jwb3JhdGUgQ2FyZHMgU2VjdGlvbiAqLwogICAgICAgIC5jb3Jwb3JhdGUtc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KSwgcmdiYSg2LCAxODIsIDIxMiwgMC4xKSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkOwogICAgICAgICAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1jeWFuKSkgMTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMzVweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAuY29ycG9yYXRlLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAuY29ycG9yYXRlLXNlY3Rpb24gaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5jb3Jwb3JhdGUtc2VjdGlvbiBoMyAuaGlnaGxpZ2h0IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgICAgLmNvcnBvcmF0ZS1zZWN0aW9uIHAgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIH0KICAgICAgICAuY29ycG9yYXRlLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMzVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzVweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAuY29ycG9yYXRlLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KSBzY2FsZSgxLjA1KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFBSSUNJTkcgUkVNSU5ERVIgKi8KICAgICAgICAucHJpY2luZy1yZW1pbmRlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNiwgMTgyLCAyMTIsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoNiwgMTgyLCAyMTIsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctcmVtaW5kZXIgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jeWFuKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctcm93IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMzBweDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1pdGVtIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy10aWVyIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1hbW91bnQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSU5TVFJVQ1RJT05TICovCiAgICAgICAgLmluc3RydWN0aW9ucy1zZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgyOCwgMzEsIDc0LCAwLjYpLCByZ2JhKDEzLCAyNywgNDIsIDAuOSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMzVweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLmluc3RydWN0aW9ucy1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5pbnN0cnVjdGlvbnMtaGVhZGVyIGgyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnN0cnVjdGlvbnMtbGlzdCB7CiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5pbnN0cnVjdGlvbnMtbGlzdCBsaSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMDsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC4xKTsKICAgICAgICB9CiAgICAgICAgLmluc3RydWN0aW9ucy1saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIH0KICAgICAgICAuc3RlcC1udW1iZXIgewogICAgICAgICAgICB3aWR0aDogMzVweDsKICAgICAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CiAgICAgICAgLnN0ZXAtdGV4dCB7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7CiAgICAgICAgfQogICAgICAgIC5zdGVwLXRleHQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWN5YW4pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBRlRFUiBQQVlNRU5UICovCiAgICAgICAgLmFmdGVyLXBheW1lbnQgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLmFmdGVyLXBheW1lbnQgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5hZnRlci1wYXltZW50IHAgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjgpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuYWZ0ZXItcGF5bWVudCAudGltZWxpbmUgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMzBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgfQogICAgICAgIC5hZnRlci1wYXltZW50IC50aW1lbGluZSBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTVVBQT1JUICovCiAgICAgICAgLnN1cHBvcnQtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1zZWN0aW9uIGgzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5zdXBwb3J0LWJ1dHRvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIC5zdXBwb3J0LWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1idG4ud2hhdHNhcHAgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjVEMzY2LCAjMTI4QzdFKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1idG4uZW1haWwgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDYsIDE4MiwgMjEyLCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jeWFuKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWN5YW4pOwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFJFV0FSRFMgVEVBU0VSICovCiAgICAgICAgLnJld2FyZHMtdGVhc2VyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSksIHJnYmEoNiwgMTgyLCAyMTIsIDAuMSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLnRlYXNlci1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAucmV3YXJkcy10ZWFzZXIgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLnJld2FyZHMtdGVhc2VyIHAgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4OwogICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIH0KICAgICAgICAudGVhc2VyLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKSwgcmdiYSg2LCAxODIsIDIxMiwgMC4yKSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXB1cnBsZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lbGVjdHJpYyk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnRlYXNlci1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wdXJwbGUpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRk9PVEVSICovCiAgICAgICAgLmZvb3RlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWJyYW5kIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbikpOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAuZm9vdGVyIHAgewogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC41KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5zdGVwLWluZGljYXRvciB7IGdhcDogMTBweDsgfQogICAgICAgICAgICAuc3RlcCB7IHBhZGRpbmc6IDhweCAxNXB4OyBmb250LXNpemU6IDAuNzVyZW07IH0KICAgICAgICAgICAgLnN0ZXAtYXJyb3cgeyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgICAgIC5wYXltZW50LWNhcmQgeyBwYWRkaW5nOiAyMHB4OyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9ImJnLW1hc3RlciI+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InBhZ2UtY29udGFpbmVyIj4KICAgICAgICA8IS0tIEhFQURFUiAtLT4KICAgICAgICA8aGVhZGVyIGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJyYW5kLWxvZ28iPvCfpJ0gQnJhbmRIYW5kc2hha2U8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3MtYmFkZ2UiPgogICAgICAgICAgICAgICAgPHNwYW4+4pyFPC9zcGFuPgogICAgICAgICAgICAgICAgRGV0YWlscyBSZWNlaXZlZCEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5vdyA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5Db21wbGV0ZSBZb3VyIFBheW1lbnQ8L3NwYW4+PC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPlNlbmQgcGF5bWVudCB0byB5b3VyIGFtYmFzc2Fkb3IgYmVsb3csIHRoZW4gc2l0IGJhY2sg4oCUIHlvdXIgY2FyZCB3aWxsIGJlIHJlYWR5IHdpdGhpbiAyNC03MiBob3VycyE8L3A+CiAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgCiAgICAgICAgPCEtLSBTVEVQIElORElDQVRPUiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwLWluZGljYXRvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXAgY29tcGxldGVkIj7inJMgQ2FyZCBEZXRhaWxzPC9kaXY+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLWFycm93Ij7ihpI8L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXAgY3VycmVudCI+8J+SsyBQYXltZW50PC9kaXY+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLWFycm93Ij7ihpI8L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXAgcGVuZGluZyI+8J+OqCBEZXNpZ248L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtYXJyb3ciPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcCBwZW5kaW5nIj7wn5qAIERlbGl2ZXJ5PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBQUklDSU5HIFJFTUlOREVSIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctcmVtaW5kZXIiPgogICAgICAgICAgICA8aDM+8J+SsCBQYWNrYWdlIFByaWNpbmc8L2gzPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctdGllciI+U3RhcnRlcjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctYW1vdW50Ij4kMTA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXRpZXIiPlByb2Zlc3Npb25hbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctYW1vdW50Ij4kMjU8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXRpZXIiPkV4ZWN1dGl2ZTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctYW1vdW50Ij4kNTA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFBBWU1FTlQgT1BUSU9OUyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icGF5bWVudC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPvCfk7EgUGF5IFlvdXIgQW1iYXNzYWRvciBEaXJlY3RseTwvaDI+CiAgICAgICAgICAgICAgICA8cD5DaG9vc2UgdGhlIGFtYmFzc2Fkb3IgeW91IGNvbm5lY3RlZCB3aXRoIG9yIHNlbGVjdCBieSBjb3VudHJ5PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JpZCI+CiAgICAgICAgICAgICAgICA8IS0tIFVHQU5EQSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtY2FyZCB1Z2FuZGEiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZmxhZyI+8J+HuvCfh6w8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWNvdW50cnkiPlVnYW5kYTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtbWV0aG9kIj5NVE4gTW9NbyAvIEFpcnRlbCBNb25leTwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtYW1iYXNzYWRvcnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYmFzc2Fkb3ItbmFtZSI+RGF2aXMgTHViZWdhPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYmFzc2Fkb3ItcGhvbmUiPjA3MDUgOTU1IDYwODwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1iYXNzYWRvci1uYW1lIj5UZW5kbyBUYWxpcTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWJhc3NhZG9yLXBob25lIj4wNzY5IDYyMyA3MTU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYmFzc2Fkb3ItbmFtZSI+RXpyYSBNdXdvbmdlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYmFzc2Fkb3ItcGhvbmUiPjA3NzMgODUwIDc1OTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hhdHNhcHAtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA1OTU1NjA4P3RleHQ9SGklMjBEYXZpcyElMjBJJTIwanVzdCUyMHN1Ym1pdHRlZCUyMG15JTIwY2FyZCUyMGRldGFpbHMlMjBhbmQlMjBJJ20lMjByZWFkeSUyMHRvJTIwcGF5LiIgY2xhc3M9InBheW1lbnQtd2hhdHNhcHAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+SrCBEYXZpcwogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA4ODc1NzM4P3RleHQ9SGklMjBUZW5kbyElMjBJJTIwanVzdCUyMHN1Ym1pdHRlZCUyMG15JTIwY2FyZCUyMGRldGFpbHMlMjBhbmQlMjBJJ20lMjByZWFkeSUyMHRvJTIwcGF5LiIgY2xhc3M9InBheW1lbnQtd2hhdHNhcHAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+SrCBUZW5kbwogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzczODUwNzU5P3RleHQ9SGklMjBFenJhISUyMEklMjBqdXN0JTIwc3VibWl0dGVkJTIwbXklMjBjYXJkJTIwZGV0YWlscyUyMGFuZCUyMEknbSUyMHJlYWR5JTIwdG8lMjBwYXkuIiBjbGFzcz0icGF5bWVudC13aGF0c2FwcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICDwn5KsIEV6cmEKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgQWxlcnRzIGZvciBVZ2FuZGEgQW1iYXNzYWRvcnMgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1haWwtYWxlcnRzLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZW1haWwtYWxlcnQtbGFiZWwiPvCfk6cgU2VuZCBFbWFpbCBBbGVydDo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWFsZXJ0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL2Zvcm1zdWJtaXQuY28vbHViZWdhZGF2aXM3MDcwQGdtYWlsLmNvbSIgbWV0aG9kPSJQT1NUIiBjbGFzcz0iaW5saW5lLWFsZXJ0LWZvcm0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9zdWJqZWN0IiB2YWx1ZT0i8J+SsCBQQVlNRU5UIElOQ09NSU5HIC0gQUkgQnl0ZXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il90ZW1wbGF0ZSIgdmFsdWU9InRhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfY2FwdGNoYSIgdmFsdWU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfbmV4dCIgdmFsdWU9Imh0dHBzOi8vYnJhbmRoYW5kc2hha2UuY29tL2NvbXBsZXRlLXBheW1lbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFsZXJ0IiB2YWx1ZT0iQSBjdXN0b21lciBpcyByZWFkeSB0byBwYXkhIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbWJhc3NhZG9yIiB2YWx1ZT0iRGF2aXMgTHViZWdhIC0gQUkgQnl0ZXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDdXN0b21lciBOYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBuYW1lIiByZXF1aXJlZCBjbGFzcz0ibWluaS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJtaW5pLWFsZXJ0LWJ0biBkYXZpcyI+8J+TpyBEYXZpczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL2Zvcm1zdWJtaXQuY28vdGVuZG90YWxpcTU1QGdtYWlsLmNvbSIgbWV0aG9kPSJQT1NUIiBjbGFzcz0iaW5saW5lLWFsZXJ0LWZvcm0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9zdWJqZWN0IiB2YWx1ZT0i8J+SsCBQQVlNRU5UIElOQ09NSU5HIC0gQUkgR2VuaXVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfdGVtcGxhdGUiIHZhbHVlPSJ0YWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NhcHRjaGEiIHZhbHVlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX25leHQiIHZhbHVlPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9jb21wbGV0ZS1wYXltZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbGVydCIgdmFsdWU9IkEgY3VzdG9tZXIgaXMgcmVhZHkgdG8gcGF5ISI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW1iYXNzYWRvciIgdmFsdWU9IlRlbmRvIFRhbGlxIC0gQUkgR2VuaXVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ3VzdG9tZXIgTmFtZSIgcGxhY2Vob2xkZXI9IllvdXIgbmFtZSIgcmVxdWlyZWQgY2xhc3M9Im1pbmktaW5wdXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ibWluaS1hbGVydC1idG4gdGVuZG8iPvCfk6cgVGVuZG88L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL2V6cmFtdXdvbmdlNjlAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiIGNsYXNzPSJpbmxpbmUtYWxlcnQtZm9ybSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn5KwIFBBWU1FTlQgSU5DT01JTkcgLSBBSSBOb3ZhIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfdGVtcGxhdGUiIHZhbHVlPSJ0YWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NhcHRjaGEiIHZhbHVlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX25leHQiIHZhbHVlPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9jb21wbGV0ZS1wYXltZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbGVydCIgdmFsdWU9IkEgY3VzdG9tZXIgaXMgcmVhZHkgdG8gcGF5ISI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW1iYXNzYWRvciIgdmFsdWU9IkV6cmEgTXV3b25nZSAtIEFJIE5vdmEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDdXN0b21lciBOYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBuYW1lIiByZXF1aXJlZCBjbGFzcz0ibWluaS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJtaW5pLWFsZXJ0LWJ0biBlenJhIj7wn5OnIEV6cmE8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBLRU5ZQSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtY2FyZCBrZW55YSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1mbGFnIj7wn4ew8J+HqjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtY291bnRyeSI+S2VueWE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LW1ldGhvZCI+TS1QZXNhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1hbWJhc3NhZG9ycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1iYXNzYWRvci1uYW1lIj5BcmFmYXQgTXVrYXNhPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFtYmFzc2Fkb3ItcGhvbmUiPjA3OTIgNTg1IDk1OTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYW1iYXNzYWRvci1uYW1lIj5Pc2NhciBNa2Fkbzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbWJhc3NhZG9yLXBob25lIj4wNzkwIDIyNSA0MjI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoYXRzYXBwLWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1NDc5MjU4NTk1OT90ZXh0PUhpJTIwQXJhZmF0ISUyMEklMjBqdXN0JTIwc3VibWl0dGVkJTIwbXklMjBjYXJkJTIwZGV0YWlscyUyMGFuZCUyMEknbSUyMHJlYWR5JTIwdG8lMjBwYXkuIiBjbGFzcz0icGF5bWVudC13aGF0c2FwcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICDwn5KsIEFyYWZhdAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU0MTA4MjQzNzg0P3RleHQ9SGklMjBPc2NhciElMjBJJTIwanVzdCUyMHN1Ym1pdHRlZCUyMG15JTIwY2FyZCUyMGRldGFpbHMlMjBhbmQlMjBJJ20lMjByZWFkeSUyMHRvJTIwcGF5LiIgY2xhc3M9InBheW1lbnQtd2hhdHNhcHAgb3NjYXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+SrCBPc2NhcgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPCEtLSBFbWFpbCBBbGVydHMgZm9yIEtlbnlhIEFtYmFzc2Fkb3JzIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWFsZXJ0cy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImVtYWlsLWFsZXJ0LWxhYmVsIj7wn5OnIFNlbmQgRW1haWwgQWxlcnQ6PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1hbGVydC1idXR0b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL212cGFzc29jaWF0ZXNAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiIGNsYXNzPSJpbmxpbmUtYWxlcnQtZm9ybSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn5KwIFBBWU1FTlQgSU5DT01JTkcgLSBIYW5kc2hha2UgQWZyaWNhIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfdGVtcGxhdGUiIHZhbHVlPSJ0YWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NhcHRjaGEiIHZhbHVlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX25leHQiIHZhbHVlPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9jb21wbGV0ZS1wYXltZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbGVydCIgdmFsdWU9IkEgY3VzdG9tZXIgaXMgcmVhZHkgdG8gcGF5IHZpYSBNLVBlc2EhIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbWJhc3NhZG9yIiB2YWx1ZT0iQXJhZmF0IE11a2FzYSAtIEtlbnlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ3VzdG9tZXIgTmFtZSIgcGxhY2Vob2xkZXI9IllvdXIgbmFtZSIgcmVxdWlyZWQgY2xhc3M9Im1pbmktaW5wdXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ibWluaS1hbGVydC1idG4gYXJhZmF0Ij7wn5OnIEFyYWZhdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL2Zvcm1zdWJtaXQuY28vc2hvcGxvY2FsYnVzaW5lc3NhZ2VuY3lAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiIGNsYXNzPSJpbmxpbmUtYWxlcnQtZm9ybSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn5KwIFBBWU1FTlQgSU5DT01JTkcgLSBBSSBIb3Jpem9ucyBPc2NhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3RlbXBsYXRlIiB2YWx1ZT0idGFibGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9jYXB0Y2hhIiB2YWx1ZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9uZXh0IiB2YWx1ZT0iaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20vY29tcGxldGUtcGF5bWVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWxlcnQiIHZhbHVlPSJBIGN1c3RvbWVyIGlzIHJlYWR5IHRvIHBheSB2aWEgTS1QZXNhISI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW1iYXNzYWRvciIgdmFsdWU9Ik9zY2FyIE1rYWRvIC0gQUkgSG9yaXpvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDdXN0b21lciBOYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBuYW1lIiByZXF1aXJlZCBjbGFzcz0ibWluaS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJtaW5pLWFsZXJ0LWJ0biBvc2NhciI+8J+TpyBPc2NhcjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBDT1JQT1JBVEUgQ0FSRFMgLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImNvcnBvcmF0ZS1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29ycG9yYXRlLWJhZGdlIj7wn4+iIEZvciBCdXNpbmVzc2VzICYgVGVhbXM8L2Rpdj4KICAgICAgICAgICAgPGgzPk5lZWQgPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+Q29ycG9yYXRlIENhcmRzPzwvc3Bhbj48L2gzPgogICAgICAgICAgICA8cD5Mb29raW5nIGZvciBjYXJkcyBmb3IgeW91ciBlbnRpcmUgdGVhbSwgY29tcGFueSwgb3Igb3JnYW5pemF0aW9uPyBXZSBvZmZlciBlbnRlcnByaXNlIHNvbHV0aW9ucyB3aXRoIGJ1bGsgcHJpY2luZyBhbmQgY3VzdG9tIGJyYW5kaW5nLjwvcD4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly92aXJ0dWFsLmhhbmRzaGFrZS5hZnJpY2EiIGNsYXNzPSJjb3Jwb3JhdGUtYnRuIj4KICAgICAgICAgICAgICAgIDxzcGFuPvCfjI08L3NwYW4+IEV4cGxvcmUgQ29ycG9yYXRlIFNvbHV0aW9ucwogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gSU5TVFJVQ1RJT05TIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJpbnN0cnVjdGlvbnMtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucy1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPvCfk4sgSG93IFRvIENvbXBsZXRlIFBheW1lbnQ8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxvbCBjbGFzcz0iaW5zdHJ1Y3Rpb25zLWxpc3QiPgogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLW51bWJlciI+MTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC10ZXh0Ij5PcGVuIHlvdXIgPHN0cm9uZz5Nb2JpbGUgTW9uZXkgYXBwPC9zdHJvbmc+IChNVE4gTW9NbywgQWlydGVsIE1vbmV5LCBvciBNLVBlc2EpPC9zcGFuPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1udW1iZXIiPjI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtdGV4dCI+U2VsZWN0IDxzdHJvbmc+IlNlbmQgTW9uZXkiPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1udW1iZXIiPjM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtdGV4dCI+RW50ZXIgeW91ciA8c3Ryb25nPmFtYmFzc2Fkb3IncyBwaG9uZSBudW1iZXI8L3N0cm9uZz4gZnJvbSBhYm92ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtbnVtYmVyIj40PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLXRleHQiPkVudGVyIHRoZSA8c3Ryb25nPmFtb3VudDwvc3Ryb25nPiBmb3IgeW91ciBjaG9zZW4gcGFja2FnZSAoJDEwLCAkMjUsIG9yICQ1MCBlcXVpdmFsZW50KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtbnVtYmVyIj41PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLXRleHQiPjxzdHJvbmc+V2hhdHNBcHAgeW91ciBhbWJhc3NhZG9yPC9zdHJvbmc+IHdpdGggeW91ciBwYXltZW50IGNvbmZpcm1hdGlvbiBjb2RlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RlcC1udW1iZXIiPjY8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0ZXAtdGV4dCI+PHN0cm9uZz5SZWxheCE8L3N0cm9uZz4gWW91ciBjYXJkIHdpbGwgYmUgZGVzaWduZWQgYW5kIGRlbGl2ZXJlZCB3aXRoaW4gMjQtNzIgaG91cnM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L29sPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIEFGVEVSIFBBWU1FTlQgLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFmdGVyLXBheW1lbnQiPgogICAgICAgICAgICA8aDM+8J+OqCBXaGF0IEhhcHBlbnMgQWZ0ZXIgUGF5bWVudD88L2gzPgogICAgICAgICAgICA8cD5PdXIgZGVzaWduIHRlYW0gd2lsbCBjcmVhdGUgeW91ciBzdHVubmluZyBkaWdpdGFsIGJ1c2luZXNzIGNhcmQgdXNpbmcgdGhlIGRldGFpbHMgeW91IHN1Ym1pdHRlZC4gV2UnbGwgY29udGFjdCB5b3UgdmlhIFdoYXRzQXBwIG9yIGVtYWlsIHdoZW4gaXQncyByZWFkeSE8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lIj4KICAgICAgICAgICAgICAgIOKPse+4jyBFeHBlY3RlZCBkZWxpdmVyeTogPHN0cm9uZz4yNC03MiBob3Vyczwvc3Ryb25nPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBTVVBQT1JUIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzdXBwb3J0LXNlY3Rpb24iPgogICAgICAgICAgICA8aDM+UXVlc3Rpb25zPyBXZSdyZSBIZXJlIHRvIEhlbHAhPC9oMz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VwcG9ydC1idXR0b25zIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMTY1MDk4MDkwMjAiIGNsYXNzPSJzdXBwb3J0LWJ0biB3aGF0c2FwcCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+SrDwvc3Bhbj4gV2hhdHNBcHAgU3VwcG9ydAogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iL2Nkbi1jZ2kvbC9lbWFpbC1wcm90ZWN0aW9uIzU5MmEyYzI5MjkzNjJiMmQxOTNiMmIzODM3M2QzMTM4MzczZDJhMzEzODMyM2M3NzNhMzYzNCIgY2xhc3M9InN1cHBvcnQtYnRuIGVtYWlsIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7wn5OnPC9zcGFuPiBFbWFpbCBVcwogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBSRUZFUlJBTCBSRVdBUkRTIFRFQVNFUiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icmV3YXJkcy10ZWFzZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZWFzZXItaWNvbiI+8J+OgTwvZGl2PgogICAgICAgICAgICA8aDM+V2FudCBGUkVFIFVwZ3JhZGVzPzwvaDM+CiAgICAgICAgICAgIDxwPkFmdGVyIHlvdSBnZXQgeW91ciBjYXJkLCBqb2luIG91ciBSZWZlcnJhbCBSZXdhcmRzIHByb2dyYW0gYW5kIGVhcm4gUVIgY29kZXMsIHZpZGVvcywgaG9zdGluZyAmIG1vcmUg4oCUIGp1c3QgYnkgc2hhcmluZyB3aXRoIGZyaWVuZHMhPC9wPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9yZWZlcnJhbC1yZXdhcmRzIiBjbGFzcz0idGVhc2VyLWJ0biIgaWQ9InJld2FyZHNMaW5rIj5MZWFybiBBYm91dCBSZXdhcmRzIOKGkjwvYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGT09URVIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWJyYW5kIj7wn6SdIEJyYW5kSGFuZHNoYWtlPC9kaXY+CiAgICAgICAgICAgIDxwPkRpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgZm9yIHRoZSBNb2Rlcm4gUHJvZmVzc2lvbmFsPC9wPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPsKpIDIwMjYgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLjwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIFJFRiBQQVJBTUVURVIgSEFORExJTkcgLS0+CiAgICA8c2NyaXB0PgogICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gR2V0IHJlZiBwYXJhbWV0ZXIgZnJvbSBVUkwKICAgICAgICAgICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICAgICAgICAgICAgY29uc3QgcmVmID0gdXJsUGFyYW1zLmdldCgncmVmJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAocmVmKSB7CiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgcmV3YXJkcyBsaW5rIHRvIHBhc3MgcmVmIGFsb25nCiAgICAgICAgICAgICAgICBjb25zdCByZXdhcmRzTGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXdhcmRzTGluaycpOwogICAgICAgICAgICAgICAgaWYgKHJld2FyZHNMaW5rKSB7CiAgICAgICAgICAgICAgICAgICAgcmV3YXJkc0xpbmsuaHJlZiA9ICdodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9yZWZlcnJhbC1yZXdhcmRzP3JlZj0nICsgcmVmOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHQgdGhlIGFwcHJvcHJpYXRlIGFtYmFzc2Fkb3IgY2FyZCBiYXNlZCBvbiByZWYKICAgICAgICAgICAgICAgIGNvbnN0IGFtYmFzc2Fkb3JDYXJkTWFwID0gewogICAgICAgICAgICAgICAgICAgICdhaWJ5dGVzJzogJ2RhdmlzJywKICAgICAgICAgICAgICAgICAgICAnYWlob3Jpem9ucyc6ICdvc2NhcicsCiAgICAgICAgICAgICAgICAgICAgJ2FpZ2VuaXVzJzogJ3RlbmRvJywKICAgICAgICAgICAgICAgICAgICAnYWlub3ZhJzogJ2V6cmEnLAogICAgICAgICAgICAgICAgICAgICdyb290cyc6ICdqb3ljZScsCiAgICAgICAgICAgICAgICAgICAgJ2Nhc2Vob3NwaXRhbCc6ICdldmVseW4nCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBUcnkgdG8gZmluZCBhbmQgaGlnaGxpZ2h0IHRoZSBtYXRjaGluZyBhbWJhc3NhZG9yIGNhcmQKICAgICAgICAgICAgICAgIGNvbnN0IGNhcmRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFtYmFzc2Fkb3ItY2FyZCcpOwogICAgICAgICAgICAgICAgY2FyZHMuZm9yRWFjaChjYXJkID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXJkTmFtZSA9IGNhcmQuZ2V0QXR0cmlidXRlKCdkYXRhLWFtYmFzc2Fkb3InKTsKICAgICAgICAgICAgICAgICAgICBpZiAoY2FyZE5hbWUgJiYgYW1iYXNzYWRvckNhcmRNYXBbcmVmXSA9PT0gY2FyZE5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FyZC5zdHlsZS5ib3JkZXIgPSAnM3B4IHNvbGlkICMxMGI5ODEnOwogICAgICAgICAgICAgICAgICAgICAgICBjYXJkLnN0eWxlLmJveFNoYWRvdyA9ICcwIDAgMjBweCByZ2JhKDE2LCAxODUsIDEyOSwgMC40KSc7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhcmQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pKCk7CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+PA==","embed":""}
π€ BrandHandshake
β
Details Received!
Now Complete Your Payment
Send payment to your ambassador below, then sit back β your card will be ready within 24-72 hours!
β Card Details
β
π³ Payment
β
π¨ Design
β
π Delivery
π° Package Pricing
Starter
$10
Professional
$25
Executive
$50
π± Pay Your Ambassador Directly
Choose the ambassador you connected with or select by country
πΊπ¬
Uganda
MTN MoMo / Airtel Money
Davis Lubega
0705 955 608
Tendo Taliq
0769 623 715
Ezra Muwonge
0773 850 759
π§ Send Email Alert:
π°πͺ
Kenya
M-Pesa
Arafat Mukasa
0792 585 959
Oscar Mkado
0790 225 422
π§ Send Email Alert:
π’ For Businesses & Teams
Need Corporate Cards?
Looking for cards for your entire team, company, or organization? We offer enterprise solutions with bulk pricing and custom branding.
π Explore Corporate Solutionsπ How To Complete Payment
- 1 Open your Mobile Money app (MTN MoMo, Airtel Money, or M-Pesa)
- 2 Select "Send Money"
- 3 Enter your ambassador's phone number from above
- 4 Enter the amount for your chosen package ($10, $25, or $50 equivalent)
- 5 WhatsApp your ambassador with your payment confirmation code
- 6 Relax! Your card will be designed and delivered within 24-72 hours
π¨ What Happens After Payment?
Our design team will create your stunning digital business card using the details you submitted. We'll contact you via WhatsApp or email when it's ready!
β±οΈ Expected delivery: 24-72 hours