Q29udGVudC1sYW5ndWFnZTogY3MKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1jcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImNzIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJDaHlibv0gcG++YWRhdmVrISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFbhuSBwcm9obO2+ZeggKG5lYm8gcHJveHkgc2VydmVyKSB2eXNsYWwgcG++YWRhdmVrLAogICAga3RlcultdSB0ZW50byBzZXJ2ZXIgbmVyb3p1bexsLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tY3MtLQoKQ29udGVudC1sYW5ndWFnZTogZGUKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1kZS0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImRlIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iRmVobGVyaGFmdGUgQW5mcmFnZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBJaHIgQnJvd3NlciAob2RlciBQcm94eSkgaGF0IGVpbmUgdW5nJnV1bWw7bHRpZ2UgQW5mcmFnZQogICAgZ2VzZW5kZXQsIGRpZSB2b20gU2VydmVyIG5pY2h0IGJlYW50d29ydGV0IHdlcmRlbiBrYW5uLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZGUtLQoKQ29udGVudC1sYW5ndWFnZTogZW4KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lbi0tCjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJCYWQgcmVxdWVzdCEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBZb3VyIGJyb3dzZXIgKG9yIHByb3h5KSBzZW50IGEgcmVxdWVzdCB0aGF0CiAgICB0aGlzIHNlcnZlciBjb3VsZCBub3QgdW5kZXJzdGFuZC4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWVuLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGVzCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tZXMtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJlcyIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IiZpZXhjbDtTb2xpY2l0dWQgZXJyJm9hY3V0ZTtuZWEhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgoJRWwgbmF2ZWdhZG9yIGhhIHNvbGljaXRhZG8gdW5hIG9wZXJhY2kmb2FjdXRlO24KCXF1ZSBubyBwdWVkZSBzZXIgcHJvY2VzYWRhIHBvciBlbCBzZXJ2aWRvci4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWVzLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGZyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tZnItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJmciIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkRlbWFuZGUgaW5jb3JyZWN0ZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBWb3RyZSBuYXZpZ2F0ZXVyIChvdSB2b3RyZSBwcm94eSkgYSBlbnZveSZlYWN1dGU7CiAgICB1bmUgZGVtYW5kZSBxdWUgY2Ugc2VydmV1ciBuJ2EgcGFzIGNvbXByaXNlLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPiAgCi0tLS0tLS0tLS1mci0tCgpDb250ZW50LWxhbmd1YWdlOiBnYSAKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1nYS0tCjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJJYXJyYXRhcyBtJmlhY3V0ZTtjaGVhcnQhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgU2VvbCBkbyBjaHVpZCBicmFiaHMmYWFjdXRlO2xhJmlhY3V0ZTsgKG4mb2FjdXRlOwogICAgc2VhY2hmaHJlYXN0YWxhJmlhY3V0ZTspIGZyZWFnYWlydCBuJmFhY3V0ZTtyYmggZmgmZWFjdXRlO2lkaXIgbGVpcyBhbgogICAgZmhyZWFzdGFsYSZpYWN1dGU7IHNlbyBhIHRodWlzY2VhbnQuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1nYS0tCgpDb250ZW50LWxhbmd1YWdlOiBpdApDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWl0LS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iaXQiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJSaWNoaWVzdGEgaW5jb21wcmVuc2liaWxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIElsIHR1byBicm93c2VyIChvIGlsIHByb3h5KSBoYSBpbnZpYXRvIGEKICAgIHF1ZXN0byBzZXJ2ZXIgdW5hIHJpY2hpZXN0YSBpbmNvbXByZW5zaWJpbGUuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1pdC0tCgpDb250ZW50LWxhbmd1YWdlOiBqYQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tMjAyMi1KUApCb2R5Oi0tLS0tLS0tLS1qYS0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImphIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9Imlzby0yMDIyLWpwIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iQmFkIHJlcXVlc3QhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgGyRCJCo7SCQkJE4lViVpJSYlNhsoQiAoGyRCJF4kPyRPJVclbSUvJTcbKEIpCiAgICAbJEIkLCEiJTUhPCVQJE5NfTJyJEckLSRKJCQlaiUvJSglOSVIJHJBdz8uJDckXiQ3JD8hIxsoQgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tamEtLQoKQ29udGVudC1sYW5ndWFnZToga28KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9RVVDLUtSCkJvZHk6LS0tLS0tLS0tLWtvLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ia28iCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSLA37j4tcggv+TDuyEiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iRVVDLUtSIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAguuq287/swPogtse0wiDHwbfPvcOwoQogICAgwMwgvK259rChIMOzuK7H0iC89iC++LTCIMDfuPi1yCC/5MO7wLsgurizwr3AtM+02S4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWtvLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IG5sCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tbmwtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJubCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlNsZWNodGUgdnJhYWchIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgVXcgYnJvd3NlciAob2YgcHJveHkpIHN0dXVyZGUgZWVuIHZyYWFnIGRpZQogICAgZGV6ZSBzZXJ2ZXIgbmlldCBrb24gYmVncmlqcGVuLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tbmwtLQoKQ29udGVudC1sYW5ndWFnZTogcGwKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1wbC0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InBsIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iTmllcHJhd2lks293ZSC/sWRhbmllISIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS0yIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgVHdvamEgcHJ6ZWdssWRhcmthIChsdWIgc2Vyd2VyIHBvtnJlZG5pY3qxY3kpIHd5c7NhsyC/sWRhbmllLAogICAga3TzcmVnbyB0ZW4gc2Vyd2VyIG5pZSBwb3RyYWZpIG9ic7N1v3nmLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tcGwtLQoKQ29udGVudC1sYW5ndWFnZTogcHQtYnIKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS1wdC1ici0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InB0LWJyIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iUmVxdWlzaSZjY2VkaWw7JmF0aWxkZTtvIEludiZhYWN1dGU7bGlkYSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBTZXUgImJyb3dzZXIiIChvdSBvIHNlcnZpZG9yIHByb3h5KSBlbnZpb3UgdW1hCiAgICByZXF1aXNpJmNjZWRpbDsmYXRpbGRlO28gaW52JmFhY3V0ZTtsaWRhIGFvIHNlcnZpZG9yLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tcHQtYnItLQoKQ29udGVudC1sYW5ndWFnZTogcm8KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1yby0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InJvIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iQ2VyZXJlIGluY29tcHJlbnNpYmlsYSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBCcm93c2VydWwgKHNhdSBwcm94eS11bCkgZHVtbmVhdm9hc3RyYSBhIHRyaW1pcwogICAgc2VydmVydWx1aSBvIGNlcmVyZSBjZSBudSBwb2F0ZSBmaSBwcm9jZXNhdGEuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1yby0tCgpDb250ZW50LWxhbmd1YWdlOiBzcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS01CkJvZHk6LS0tLS0tLS0tLXNyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ic3IiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktNSIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9Irve6CDX0OXi1dIhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgstDoIOfY4tDnICjY29gg397h4NXU3djn2tgg4dXg0tXgKSDf3uHb0N4g+NUg19Dl4tXSINre+NgKICAgIN7S0Pgg4dXg0tXgIN3Y+NUg3N7T0N4g1NAg4NDX49zVLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tc3ItLQoKQ29udGVudC1sYW5ndWFnZTogc3YKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1zdi0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InN2IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iRmVsYWt0aWcgZiZvdW1sO3JmciZhcmluZztnYW4hIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgRGluIHdlYmJsJmF1bWw7c2FyZSBlbGxlciBwcm94eSBza2lja2FkZSBlbiBmJm91bWw7cmZyJmFyaW5nO2dhbgogICAgc29tIGRlbm5hIHNlcnZlciBpbnRlIGt1bmRlIGYmb3VtbDtyc3QmYXJpbmc7LgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPiAgCi0tLS0tLS0tLS1zdi0tCgpDb250ZW50LWxhbmd1YWdlOiB0cgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS05CkJvZHk6LS0tLS0tLS0tLXRyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0idHIiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktOSIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkJhZCByZXF1ZXN0ISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIEdlemdpbmluaXogKHZleWEgdmVraWwgc3VudWN1bnV6KSBidSBzdW51Y3VudW4KICAgIHRhbiYjMzA1O21hZCYjMzA1OyYjMjg3OyYjMzA1OwogICAgYmlyIGlzdGVtZGUgYnVsdW5kdS4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXRyLS0K